Skip to content

Commit 2e31a4b

Browse files
committed
q-dev: @marmarek comments
1 parent de0e882 commit 2e31a4b

File tree

2 files changed

+15
-26
lines changed

2 files changed

+15
-26
lines changed

qubesadmin/devices.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,6 @@ class is implemented by an extension.
3939
from typing import Optional, Dict, Any, List, Type, Iterable
4040

4141

42-
# TODO:
43-
# Proposed device events:
44-
# sometimes event can be fired twice, we can ignore it
45-
# e.g. if device is plugged out and in in short time we can have doubled
46-
# detaching and attaching...
47-
# - device-list-changed: device-added -> device-added{devclass}
48-
# - device-list-changed: device-remove -> device-removed{devclass}
49-
# - device-property-changed: property_name: TODO?
50-
# - device-assignment-changed: created -> device-assign:{devclass}
51-
# - device-assignment-changed: removed -> device-unassign:{devclass}
52-
# - device-assignment-changed: attached -> device-attach:{devclass}
53-
# - device-assignment-changed: detached -> device-detach:{devclass}
54-
# - device-assignment-changed: property-set -> device-assignment-changed:{devclass}
55-
5642
class UnexpectedDeviceProperty(qubesadmin.exc.QubesException, ValueError):
5743
"""
5844
Device has unexpected property such as backend_domain, devclass etc.

qubesadmin/tools/qvm_device.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,10 @@ def assign_device(args):
181181
options['identity'] = 'any'
182182
assignment.options = options
183183
vm.devices[args.devclass].assign(assignment)
184-
if vm.is_running() and not assignment.attached:
185-
print("Assigned. Now you can manually attach device or restart domain.")
184+
if vm.is_running() and not assignment.attached and not args.quiet:
185+
print("Assigned. To attach you can now restart domain or run: \n"
186+
f"\tqvm-{assignment.devclass} attach {vm} "
187+
f"{assignment.backend_domain}:{assignment.ident}")
186188

187189

188190
def unassign_device(args):
@@ -194,17 +196,18 @@ def unassign_device(args):
194196
device = args.device
195197
assignment = qubesadmin.devices.DeviceAssignment.from_device(
196198
device, frontend_domain=vm)
197-
vm.devices[args.devclass].unassign(assignment)
198-
if assignment.attached:
199-
print("Unassigned. Now you can manually detach device "
200-
"or restart domain.")
199+
_unassign_and_show_message(assignment, vm, args)
201200
else:
202-
for device_assignment in (
203-
vm.devices[args.devclass].get_assigned_devices()):
204-
vm.devices[args.devclass].unassign(device_assignment)
205-
if device_assignment.attached:
206-
print("Unassigned. Now you can manually detach device "
207-
"or restart domain.")
201+
for assignment in vm.devices[args.devclass].get_assigned_devices():
202+
_unassign_and_show_message(assignment, vm, args)
203+
204+
205+
def _unassign_and_show_message(assignment, vm, args):
206+
vm.devices[args.devclass].unassign(assignment)
207+
if assignment.attached and not args.quiet:
208+
print("Unassigned. To detach you can now restart domain or run: \n"
209+
f"\tqvm-{assignment.devclass} detach {vm} "
210+
f"{assignment.backend_domain}:{assignment.ident}")
208211

209212

210213
def info_device(args):

0 commit comments

Comments
 (0)