Prevent 'qubesd' for crashing if any device backend is not available

This commit is contained in:
Frédéric Pierret (fepitre) 2019-07-20 15:27:09 +02:00
parent aa931fdbf7
commit 74f8d4531e
No known key found for this signature in database
GPG Key ID: 484010B5CDC576E2

View File

@ -268,13 +268,19 @@ class BaseVM(qubes.PropertyHolder):
for option in node.xpath('./option'):
options[option.get('name')] = option.text
device_assignment = qubes.devices.DeviceAssignment(
self.app.domains[node.get('backend-domain')],
node.get('id'),
options,
persistent=True
)
self.devices[devclass].load_persistent(device_assignment)
try:
device_assignment = qubes.devices.DeviceAssignment(
self.app.domains[node.get('backend-domain')],
node.get('id'),
options,
persistent=True
)
self.devices[devclass].load_persistent(device_assignment)
except KeyError:
msg = "{}: Cannot find backend domain '{}' for device type {} '{}'".format(self.name, node.get(
'backend-domain'), devclass, node.get('id'))
self.log.info(msg)
continue
# tags
for node in self.xml.xpath('./tags/tag'):