Skip to content

Commit b589897

Browse files
contrib/labgrid-webapp: migrate to gRPC
Signed-off-by: Bastian Krause <[email protected]>
1 parent 394864e commit b589897

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

contrib/README.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ Quick Start
1313
$ source venv/bin/activate
1414
venv $ pip install -r contrib/requirements-webapp.txt
1515
venv $ ./contrib/labgrid-webapp --help
16-
usage: labgrid-webapp [-h] [--crossbar URL] [--port PORT] [--proxy PROXY]
16+
usage: labgrid-webapp [-h] [--coordinator ADDRESS] [--port PORT] [--proxy PROXY]
1717
1818
Labgrid webapp
1919
2020
options:
2121
-h, --help show this help message and exit
22-
--crossbar URL, -x URL
23-
Crossbar websocket URL (default: ws://127.0.0.1:20408/ws)
22+
--coordinator ADDRESS, -x ADDRESS
23+
Coordinator address as HOST[:PORT] (default: 127.0.0.1:20408)
2424
--port PORT Port to serve on
2525
--proxy PROXY, -P PROXY
2626

contrib/labgrid-webapp

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env python3
22
import argparse
3+
import asyncio
34
import logging
45
import os
56
import sys
@@ -118,11 +119,11 @@ def main():
118119
formatter_class=argparse.RawDescriptionHelpFormatter,
119120
)
120121
parser.add_argument(
121-
'--crossbar',
122+
'--coordinator',
122123
'-x',
123124
metavar='URL',
124-
default=os.environ.get('LG_CROSSBAR', 'ws://127.0.0.1:20408/ws'),
125-
help='Crossbar websocket URL (default: %(default)s)',
125+
default=os.environ.get('LG_COORDINATOR', '127.0.0.1:20408'),
126+
help='Coordinator address as HOST[:PORT] (default: %(default)s)',
126127
)
127128
parser.add_argument('--port', type=int, default=8800, help='Port to serve on')
128129
parser.add_argument('--proxy', '-P', help='Proxy connections via given ssh host')
@@ -132,16 +133,20 @@ def main():
132133
if args.proxy:
133134
proxymanager.force_proxy(args.proxy)
134135

136+
loop = asyncio.new_event_loop()
137+
asyncio.set_event_loop(loop)
138+
135139
try:
136140
session = start_session(
137-
args.crossbar, os.environ.get('LG_CROSSBAR_REALM', 'realm1'), {},
141+
args.coordinator,
142+
loop=loop,
138143
)
139144
except ConnectionRefusedError:
140-
logger.fatal('Unable to connect to labgrid crossbar')
145+
logger.fatal('Unable to connect to labgrid coordinator')
141146
return
142147

143148
server = uvicorn.Server(config=uvicorn.Config(
144-
loop=session.loop,
149+
loop=loop,
145150
host='0.0.0.0',
146151
port=args.port,
147152
app=app,
@@ -153,7 +158,11 @@ def main():
153158
if route.path not in reserved_routes:
154159
logger.info(f' - {route.path}')
155160

156-
session.loop.run_until_complete(server.serve())
161+
try:
162+
loop.run_until_complete(server.serve())
163+
finally:
164+
loop.run_until_complete(session.stop())
165+
loop.run_until_complete(session.close())
157166

158167

159168
if __name__ == '__main__':

0 commit comments

Comments
 (0)