Skip to content

Commit 091596b

Browse files
committed
q-dev: Set.assignment
1 parent 2c58376 commit 091596b

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

qubesadmin/devices.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ class is implemented by an extension.
3636

3737
import qubesadmin.exc
3838
from qubesadmin.device_protocol import (Port, DeviceInfo, UnknownDevice,
39-
DeviceAssignment, VirtualDevice)
39+
DeviceAssignment, VirtualDevice,
40+
AssignmentMode)
4041

4142

4243
DEVICE_DENY_LIST = "/etc/qubes/device-deny.list"
@@ -195,7 +196,7 @@ def get_exposed_devices(self) -> Iterable[DeviceInfo]:
195196
expected_devclass=self._class,
196197
)
197198

198-
def update_assignment(self, device: Port, required: Optional[bool]):
199+
def update_assignment(self, device: Port, required: AssignmentMode):
199200
"""
200201
Update assignment of already attached device.
201202
@@ -208,7 +209,7 @@ def update_assignment(self, device: Port, required: Optional[bool]):
208209
self._vm.qubesd_call(
209210
None,
210211
'admin.vm.device.{}.Set.assignment'.format(self._class),
211-
repr(device), repr(required).encode('utf-8')
212+
repr(device), required.value.encode('utf-8')
212213
)
213214

214215
__iter__ = get_exposed_devices

qubesadmin/tests/devices.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
import qubesadmin.tests
2222
import qubesadmin.device_protocol
2323

24-
from qubesadmin.device_protocol import (DeviceAssignment, Port, VirtualDevice,
25-
DeviceInfo, UnknownDevice)
24+
from qubesadmin.device_protocol import (
25+
DeviceAssignment, Port, VirtualDevice, DeviceInfo, UnknownDevice,
26+
AssignmentMode)
2627

2728

2829
serialized_test_device = (
@@ -288,38 +289,38 @@ def test_060_attached(self):
288289
self.assertEqual(devs[1].port_id, 'dev2')
289290
self.assertAllCalled()
290291

291-
def test_070_update_assignment(self):
292+
def test_070_update_assignment_required(self):
292293
self.app.expected_calls[
293294
('test-vm', 'admin.vm.device.test.Set.assignment',
294-
'test-vm2+dev1:*', b'True')] = b'0\0'
295+
'test-vm2+dev1:*', b'required')] = b'0\0'
295296
dev = DeviceAssignment(
296297
VirtualDevice(
297298
Port(
298299
self.app.domains['test-vm2'],
299300
devclass='test',
300301
port_id='dev1'),
301302
))
302-
self.vm.devices['test'].update_assignment(dev, True)
303+
self.vm.devices['test'].update_assignment(dev, AssignmentMode.REQUIRED)
303304
self.assertAllCalled()
304305

305-
def test_071_update_assignment_false(self):
306+
def test_071_update_assignment_ask(self):
306307
self.app.expected_calls[
307308
('test-vm', 'admin.vm.device.test.Set.assignment',
308-
'test-vm2+dev1:*', b'False')] = b'0\0'
309+
'test-vm2+dev1:*', b'ask-to-attach')] = b'0\0'
309310
dev = DeviceAssignment(
310311
VirtualDevice(
311312
Port(
312313
self.app.domains['test-vm2'],
313314
devclass='test',
314315
port_id='dev1'),
315316
))
316-
self.vm.devices['test'].update_assignment(dev, False)
317+
self.vm.devices['test'].update_assignment(dev, AssignmentMode.ASK)
317318
self.assertAllCalled()
318319

319-
def test_072_update_assignment_none(self):
320+
def test_072_update_assignment_auto(self):
320321
self.app.expected_calls[
321322
('test-vm', 'admin.vm.device.test.Set.assignment',
322-
'test-vm2+dev1:*', b'None')] = b'0\0'
323+
'test-vm2+dev1:*', b'auto-attach')] = b'0\0'
323324
dev = DeviceAssignment(
324325
VirtualDevice(
325326
Port(
@@ -328,7 +329,7 @@ def test_072_update_assignment_none(self):
328329
port_id='dev1',
329330
)
330331
))
331-
self.vm.devices['test'].update_assignment(dev, None)
332+
self.vm.devices['test'].update_assignment(dev, AssignmentMode.AUTO)
332333
self.assertAllCalled()
333334

334335
def test_073_list(self):

0 commit comments

Comments
 (0)