diff --git a/qubesadmin/tools/qvm_device.py b/qubesadmin/tools/qvm_device.py index a200f71..bb99015 100644 --- a/qubesadmin/tools/qvm_device.py +++ b/qubesadmin/tools/qvm_device.py @@ -81,17 +81,22 @@ def list_devices(args): app = args.app devices = set() - if hasattr(args, 'domains') and args.domains: - for domain in args.domains: - for dev in domain.devices[args.devclass].attached(): - devices.add(dev) - for dev in domain.devices[args.devclass].available(): - devices.add(dev) + try: + if hasattr(args, 'domains') and args.domains: + for domain in args.domains: + for dev in domain.devices[args.devclass].attached(): + devices.add(dev) + for dev in domain.devices[args.devclass].available(): + devices.add(dev) - else: - for domain in app.domains: - for dev in domain.devices[args.devclass].available(): - devices.add(dev) + else: + for domain in app.domains: + for dev in domain.devices[args.devclass].available(): + devices.add(dev) + except qubesadmin.exc.QubesDaemonAccessError: + raise qubesadmin.exc.QubesException( + "Failed to list '%s' devices, this device type either " + "does not exist or you do not have access to it.", args.devclass) result = {dev: Line(dev) for dev in devices}