Add DeviceAssignment
This commit is contained in:
parent
e52898972d
commit
211e018268
@ -57,6 +57,30 @@ class DeviceAlreadyAttached(qubes.exc.QubesException, KeyError):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceAssignment(object): # pylint: disable=too-few-public-methods
|
||||||
|
''' Maps a device to a frontend_domain. '''
|
||||||
|
|
||||||
|
def __init__(self, backend_domain, ident, options=None, persistent=False,
|
||||||
|
frontend_domain=None):
|
||||||
|
self.backend_domain = backend_domain
|
||||||
|
self.ident = ident
|
||||||
|
self.options = options or []
|
||||||
|
self.persistent = persistent
|
||||||
|
self.frontend_domain = frontend_domain
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return "[%s]:%s" % (self.backend_domain, self.ident)
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash((self.backend_domain, self.ident))
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
if not isinstance(self, other.__class__):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
return self.backend_domain == other.backend_domain \
|
||||||
|
and self.ident == other.ident
|
||||||
|
|
||||||
class DeviceCollection(object):
|
class DeviceCollection(object):
|
||||||
'''Bag for devices.
|
'''Bag for devices.
|
||||||
|
|
||||||
@ -302,3 +326,4 @@ class BlockDevice(object):
|
|||||||
self.script = script
|
self.script = script
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
self.devtype = devtype
|
self.devtype = devtype
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user