BaseVM add DeviceAssignment xml serialization

Signed-off-by: Bahtiar `kalkin-` Gadimov <bahtiar@gadimov.de>
This commit is contained in:
Bahtiar `kalkin-` Gadimov 2017-04-08 04:09:56 +02:00
parent 990cfd8ab9
commit 2a6266887e
No known key found for this signature in database
GPG Key ID: 07799AE179ED4FD4

View File

@ -217,11 +217,17 @@ class BaseVM(qubes.PropertyHolder, metaclass=BaseVMMeta):
for parent in self.xml.xpath('./devices'):
devclass = parent.get('class')
for node in parent.xpath('./device'):
device = self.devices[devclass].devclass(
options = {}
if node.get('options'):
options = node.get('options').attribs(),
device_assignment = qubes.devices.DeviceAssignment(
self.app.domains[node.get('backend-domain')],
node.get('id')
node.get('id'),
options,
persistent=True
)
self.devices[devclass].attach(device)
self.devices[devclass].attach(device_assignment)
# tags
for node in self.xml.xpath('./tags/tag'):
@ -254,7 +260,10 @@ class BaseVM(qubes.PropertyHolder, metaclass=BaseVMMeta):
node = lxml.etree.Element('device')
node.set('backend-domain', device.backend_domain.name)
node.set('id', device.ident)
node.set('options', device.options)
options_node = lxml.etree.Element('options')
for key, val in device.options:
options_node.set(key, val)
node.append(options_node)
devices.append(node)
element.append(devices)