Skip to content

Commit 5a49429

Browse files
contrib/sync-places: migrate to gRPC
Signed-off-by: Bastian Krause <[email protected]>
1 parent b589897 commit 5a49429

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

contrib/sync-places.py

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
# limitations under the License.
1616

1717
import argparse
18+
import asyncio
1819
from contextlib import contextmanager
1920
from labgrid.remote.client import start_session
21+
from labgrid.remote.generated import labgrid_coordinator_pb2
2022
from labgrid.util.proxy import proxymanager
2123
import os
2224
import sys
@@ -51,14 +53,20 @@ async def do_sync(session, args):
5153
for name in remove_places:
5254
print(f"Removing place {name}")
5355
if not args.dry_run:
54-
await session.call("org.labgrid.coordinator.del_place", name)
56+
request = labgrid_coordinator_pb2.DeletePlaceRequest(name=name)
57+
await session.stub.DeletePlace(request)
58+
await session.sync_with_coordinator()
59+
5560
changed = True
5661

5762
for name in config["places"]:
5863
if not name in seen_places:
5964
print(f"Adding place {name}")
6065
if not args.dry_run:
61-
await session.call("org.labgrid.coordinator.add_place", name)
66+
request = labgrid_coordinator_pb2.AddPlaceRequest(name=name)
67+
await session.stub.AddPlace(request)
68+
await session.sync_with_coordinator()
69+
6270
changed = True
6371

6472
for name in config["places"]:
@@ -89,9 +97,10 @@ async def do_sync(session, args):
8997
else:
9098
print(f"Deleting match '{match}' for place {name}")
9199
if not args.dry_run:
92-
await session.call(
93-
"org.labgrid.coordinator.del_place_match", name, match, rename
94-
)
100+
request = labgrid_coordinator_pb2.DeletePlaceMatchRequest(placename=name, pattern=match)
101+
await session.stub.DeletePlaceMatch(request)
102+
await session.sync_with_coordinator()
103+
95104
changed = True
96105

97106
for m in matches:
@@ -103,9 +112,9 @@ async def do_sync(session, args):
103112
print(f"Adding match '{match}' for place {name}")
104113

105114
if not args.dry_run:
106-
await session.call(
107-
"org.labgrid.coordinator.add_place_match", name, match, rename
108-
)
115+
request = labgrid_coordinator_pb2.AddPlaceMatchRequest(placename=name, pattern=match, rename=rename)
116+
await session.stub.AddPlaceMatch(request)
117+
await session.sync_with_coordinator()
109118
changed = True
110119

111120
tags = config["places"][name].get("tags", {}).copy()
@@ -131,9 +140,10 @@ async def do_sync(session, args):
131140
tags[k] = ""
132141

133142
if not args.dry_run:
134-
await session.call(
135-
"org.labgrid.coordinator.set_place_tags", name, tags
136-
)
143+
request = labgrid_coordinator_pb2.SetPlaceTagsRequest(placename=name, tags=tags)
144+
await session.stub.SetPlaceTags(request)
145+
await session.sync_with_coordinator()
146+
137147
changed = True
138148

139149
async def do_dump(session, args):
@@ -174,11 +184,11 @@ async def do_dump(session, args):
174184
formatter_class=argparse.RawDescriptionHelpFormatter,
175185
)
176186
parser.add_argument(
177-
"--crossbar",
187+
"--coordinator",
178188
"-x",
179-
metavar="URL",
180-
default=os.environ.get("LG_CROSSBAR", "ws://127.0.0.1:20408/ws"),
181-
help="Crossbar websocket URL (default: %(default)s)",
189+
metavar="ADDRESS",
190+
default=os.environ.get("LG_COORDINATOR", "127.0.0.1:20408"),
191+
help="Coordinator address as HOST[:PORT] (default: %(default)s)",
182192
)
183193
parser.add_argument("--proxy", "-P", help="Proxy connections via given ssh host")
184194

@@ -219,11 +229,19 @@ async def do_dump(session, args):
219229
if args.proxy:
220230
proxymanager.force_proxy(args.proxy)
221231

232+
loop = asyncio.new_event_loop()
233+
asyncio.set_event_loop(loop)
234+
222235
session = start_session(
223-
args.crossbar, os.environ.get("LG_CROSSBAR_REALM", "realm1"), {}
236+
args.coordinator,
237+
loop=loop,
224238
)
225239

226-
return session.loop.run_until_complete(args.func(session, args))
240+
try:
241+
return loop.run_until_complete(args.func(session, args))
242+
finally:
243+
loop.run_until_complete(session.stop())
244+
loop.run_until_complete(session.close())
227245

228246

229247
if __name__ == "__main__":

0 commit comments

Comments
 (0)