@@ -52,6 +52,7 @@ def device_list_change(
52
52
# send events about devices detached/attached outside by themselves
53
53
for port_id , front_vm in detached .items ():
54
54
dev = device_class (vm , port_id )
55
+ ext .ensure_detach (front_vm , dev .port )
55
56
asyncio .ensure_future (
56
57
front_vm .fire_event_async (
57
58
f"device-detach:{ devclass } " , port = dev .port
@@ -63,8 +64,8 @@ def device_list_change(
63
64
for port_id in added :
64
65
device = device_class (vm , port_id )
65
66
vm .fire_event (f"device-added:{ devclass } " , device = device )
66
- for dev_ident , front_vm in attached .items ():
67
- dev = device_class (vm , dev_ident )
67
+ for port_id , front_vm in attached .items ():
68
+ dev = device_class (vm , port_id )
68
69
# options are unknown, device already attached
69
70
asyncio .ensure_future (
70
71
front_vm .fire_event_async (
@@ -167,6 +168,7 @@ async def confirm_device_attachment(device, frontends) -> str:
167
168
print (str (exc .__class__ .__name__ ) + ":" , str (exc ), file = sys .stderr )
168
169
return ""
169
170
171
+
170
172
async def _do_confirm_device_attachment (device , frontends ):
171
173
socket = "device-agent.GUI"
172
174
@@ -189,23 +191,24 @@ async def _do_confirm_device_attachment(device, frontends):
189
191
"targets" : front_names ,
190
192
"default_target" : front_names [0 ] if number_of_targets == 1 else "" ,
191
193
"icons" : {
192
- dom .name
193
- if dom .klass != "DispVM" else f'@dispvm:{ dom .name } ' :
194
- dom .icon for dom in doms .values ()
194
+ (
195
+ dom .name if dom .klass != "DispVM" else f"@dispvm:{ dom .name } "
196
+ ): dom .icon
197
+ for dom in doms .values ()
195
198
},
196
199
}
197
200
198
- socked_call = asyncio .create_task (call_socket_service (
199
- guivm , socket , "dom0" , params , SOCKET_PATH
200
- ))
201
+ socked_call = asyncio .create_task (
202
+ call_socket_service ( guivm , socket , "dom0" , params , SOCKET_PATH )
203
+ )
201
204
202
205
while not socked_call .done ():
203
206
await asyncio .sleep (0.1 )
204
207
205
208
ask_response = await socked_call
206
209
207
210
if ask_response .startswith ("allow:" ):
208
- chosen = ask_response [len ("allow:" ):]
211
+ chosen = ask_response [len ("allow:" ) :]
209
212
if chosen in front_names :
210
213
return chosen
211
214
return ""
0 commit comments