1
1
#!/usr/bin/env python3
2
2
import argparse
3
+ import asyncio
3
4
import logging
4
5
import os
5
6
import sys
@@ -118,11 +119,11 @@ def main():
118
119
formatter_class = argparse .RawDescriptionHelpFormatter ,
119
120
)
120
121
parser .add_argument (
121
- '--crossbar ' ,
122
+ '--coordinator ' ,
122
123
'-x' ,
123
124
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)' ,
126
127
)
127
128
parser .add_argument ('--port' , type = int , default = 8800 , help = 'Port to serve on' )
128
129
parser .add_argument ('--proxy' , '-P' , help = 'Proxy connections via given ssh host' )
@@ -132,16 +133,20 @@ def main():
132
133
if args .proxy :
133
134
proxymanager .force_proxy (args .proxy )
134
135
136
+ loop = asyncio .new_event_loop ()
137
+ asyncio .set_event_loop (loop )
138
+
135
139
try :
136
140
session = start_session (
137
- args .crossbar , os .environ .get ('LG_CROSSBAR_REALM' , 'realm1' ), {},
141
+ args .coordinator ,
142
+ loop = loop ,
138
143
)
139
144
except ConnectionRefusedError :
140
- logger .fatal ('Unable to connect to labgrid crossbar ' )
145
+ logger .fatal ('Unable to connect to labgrid coordinator ' )
141
146
return
142
147
143
148
server = uvicorn .Server (config = uvicorn .Config (
144
- loop = session . loop ,
149
+ loop = loop ,
145
150
host = '0.0.0.0' ,
146
151
port = args .port ,
147
152
app = app ,
@@ -153,7 +158,11 @@ def main():
153
158
if route .path not in reserved_routes :
154
159
logger .info (f' - { route .path } ' )
155
160
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 ())
157
166
158
167
159
168
if __name__ == '__main__' :
0 commit comments