@@ -78,17 +78,17 @@ def test_010_drive_cdrom(self):
78
78
self .app .expected_calls [
79
79
('some-vm' , 'admin.vm.CurrentState' , None , None )] = \
80
80
b'0\x00 power_state=Halted'
81
- self .app .expected_calls [
82
- ('dom0' , 'admin.vm.device.block.Available' , None , None )] = \
83
- b'0\x00 sr0\n '
84
81
self .app .expected_calls [
85
82
('some-vm' , 'admin.vm.Start' , None , None )] = b'0\x00 '
86
83
self .app .expected_calls [
87
- ('some-vm' , 'admin.vm.device.block.Attach' , 'dom0+sr0' ,
88
- b'devtype=cdrom required=True read-only=True' )] = b'0\x00 '
84
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'dom0+sr0' ,
85
+ b"required='yes' attach_automatically='yes' ident='sr0' "
86
+ b"devclass='block' backend_domain='dom0' "
87
+ b"frontend_domain='some-vm' _devtype='cdrom' "
88
+ b"_read-only='True'" )] = b'0\x00 '
89
89
self .app .expected_calls [
90
- ('some-vm' , 'admin.vm.device.block.Set.assignment ' , 'dom0+sr0' ,
91
- b'False' )] = b' 0\x00 '
90
+ ('some-vm' , 'admin.vm.device.block.Unassign ' , 'dom0+sr0' , None )] = \
91
+ b'0\x00 '
92
92
qubesadmin .tools .qvm_start .main (['--cdrom=dom0:sr0' , 'some-vm' ],
93
93
app = self .app )
94
94
self .assertAllCalled ()
@@ -101,17 +101,17 @@ def test_011_drive_disk(self):
101
101
self .app .expected_calls [
102
102
('some-vm' , 'admin.vm.CurrentState' , None , None )] = \
103
103
b'0\x00 power_state=Halted'
104
- self .app .expected_calls [
105
- ('dom0' , 'admin.vm.device.block.Available' , None , None )] = \
106
- b'0\x00 sdb1\n '
107
104
self .app .expected_calls [
108
105
('some-vm' , 'admin.vm.Start' , None , None )] = b'0\x00 '
109
106
self .app .expected_calls [
110
- ('some-vm' , 'admin.vm.device.block.Attach' , 'dom0+sdb1' ,
111
- b'devtype=disk required=True read-only=False' )] = b'0\x00 '
107
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'dom0+sdb1' ,
108
+ b"required='yes' attach_automatically='yes' ident='sdb1' "
109
+ b"devclass='block' backend_domain='dom0' "
110
+ b"frontend_domain='some-vm' _devtype='disk' "
111
+ b"_read-only='False'" )] = b'0\x00 '
112
112
self .app .expected_calls [
113
- ('some-vm' , 'admin.vm.device.block.Set.assignment ' , 'dom0+sdb1' ,
114
- b'False' )] = b'0\x00 '
113
+ ('some-vm' , 'admin.vm.device.block.Unassign ' , 'dom0+sdb1' ,
114
+ None )] = b'0\x00 '
115
115
qubesadmin .tools .qvm_start .main (['--hd=dom0:sdb1' , 'some-vm' ],
116
116
app = self .app )
117
117
self .assertAllCalled ()
@@ -124,17 +124,17 @@ def test_012_drive_disk(self):
124
124
self .app .expected_calls [
125
125
('some-vm' , 'admin.vm.CurrentState' , None , None )] = \
126
126
b'0\x00 power_state=Halted'
127
- self .app .expected_calls [
128
- ('dom0' , 'admin.vm.device.block.Available' , None , None )] = \
129
- b'0\x00 sdb1\n '
130
127
self .app .expected_calls [
131
128
('some-vm' , 'admin.vm.Start' , None , None )] = b'0\x00 '
132
129
self .app .expected_calls [
133
- ('some-vm' , 'admin.vm.device.block.Attach' , 'dom0+sdb1' ,
134
- b'devtype=disk required=True read-only=False' )] = b'0\x00 '
130
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'dom0+sdb1' ,
131
+ b"required='yes' attach_automatically='yes' ident='sdb1' "
132
+ b"devclass='block' backend_domain='dom0' "
133
+ b"frontend_domain='some-vm' _devtype='disk' "
134
+ b"_read-only='False'" )] = b'0\x00 '
135
135
self .app .expected_calls [
136
- ('some-vm' , 'admin.vm.device.block.Set.assignment ' , 'dom0+sdb1' ,
137
- b'False' )] = b'0\x00 '
136
+ ('some-vm' , 'admin.vm.device.block.Unassign ' , 'dom0+sdb1' ,
137
+ None )] = b'0\x00 '
138
138
qubesadmin .tools .qvm_start .main (['--drive=hd:dom0:sdb1' , 'some-vm' ],
139
139
app = self .app )
140
140
self .assertAllCalled ()
@@ -154,12 +154,15 @@ def test_013_drive_loop_local(self, mock_subprocess):
154
154
self .app .expected_calls [
155
155
('some-vm' , 'admin.vm.Start' , None , None )] = b'0\x00 '
156
156
self .app .expected_calls [
157
- ('some-vm' , 'admin.vm.device.block.Attach' , 'dom0+loop12' ,
158
- b'devtype=cdrom required=True read-only=True' )] = b'0\x00 '
157
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'dom0+loop12' ,
158
+ b"required='yes' attach_automatically='yes' ident='loop12' "
159
+ b"devclass='block' backend_domain='dom0' "
160
+ b"frontend_domain='some-vm' _devtype='cdrom' "
161
+ b"_read-only='True'" )] = b'0\x00 '
159
162
self .app .expected_calls [
160
- ('some-vm' , 'admin.vm.device.block.Set.assignment ' , 'dom0+loop12' ,
161
- b'False' )] = b'0\x00 '
162
- mock_subprocess .return_value = b' /dev/loop12'
163
+ ('some-vm' , 'admin.vm.device.block.Unassign ' , 'dom0+loop12' , None
164
+ )] = b'0\x00 loop12 \n '
165
+ mock_subprocess .return_value = b" /dev/loop12"
163
166
qubesadmin .tools .qvm_start .main ([
164
167
'--cdrom=dom0:/home/some/image.iso' ,
165
168
'some-vm' ],
@@ -183,12 +186,14 @@ def test_014_drive_loop_remote(self):
183
186
self .app .expected_calls [
184
187
('some-vm' , 'admin.vm.Start' , None , None )] = b'0\x00 '
185
188
self .app .expected_calls [
186
- ('some-vm' , 'admin.vm.device.block.Attach' , 'other-vm+loop7' ,
187
- b'devtype=cdrom required=True read-only=True' )] = b'0\x00 '
189
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'other-vm+loop7' ,
190
+ b"required='yes' attach_automatically='yes' ident='loop7' "
191
+ b"devclass='block' backend_domain='other-vm' "
192
+ b"frontend_domain='some-vm' _devtype='cdrom' "
193
+ b"_read-only='True'" )] = b'0\x00 '
188
194
self .app .expected_calls [
189
- ('some-vm' , 'admin.vm.device.block.Set.assignment' ,
190
- 'other-vm+loop7' ,
191
- b'False' )] = b'0\x00 '
195
+ ('some-vm' , 'admin.vm.device.block.Unassign' , 'other-vm+loop7' ,
196
+ None )] = b'0\x00 '
192
197
self .app .expected_calls [
193
198
('other-vm' , 'admin.vm.feature.CheckWithTemplate' , 'vmexec' ,
194
199
None )] = b'2\x00 QubesFeatureNotFoundError\x00 \x00 Feature \' vmexec\' not set\x00 '
@@ -215,8 +220,11 @@ def test_015_drive_failed_start(self):
215
220
('some-vm' , 'admin.vm.CurrentState' , None , None )] = \
216
221
b'0\x00 power_state=Halted'
217
222
self .app .expected_calls [
218
- ('some-vm' , 'admin.vm.device.block.Attach' , 'other-vm+loop7' ,
219
- b'devtype=cdrom required=True read-only=True' )] = b'0\x00 '
223
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'other-vm+loop7' ,
224
+ b"required='yes' attach_automatically='yes' ident='loop7' "
225
+ b"devclass='block' backend_domain='other-vm' "
226
+ b"frontend_domain='some-vm' _devtype='cdrom' "
227
+ b"_read-only='True'" )] = b'0\x00 '
220
228
self .app .expected_calls [
221
229
('some-vm' , 'admin.vm.Start' , None , None )] = \
222
230
b'2\x00 QubesException\x00 \x00 An error occurred\x00 '
@@ -239,8 +247,11 @@ def test_016_drive_failed_attach(self):
239
247
('some-vm' , 'admin.vm.CurrentState' , None , None )] = \
240
248
b'0\x00 power_state=Halted'
241
249
self .app .expected_calls [
242
- ('some-vm' , 'admin.vm.device.block.Attach' , 'other-vm+loop7' ,
243
- b'devtype=cdrom required=True read-only=True' )] = \
250
+ ('some-vm' , 'admin.vm.device.block.Assign' , 'other-vm+loop7' ,
251
+ b"required='yes' attach_automatically='yes' ident='loop7' "
252
+ b"devclass='block' backend_domain='other-vm' "
253
+ b"frontend_domain='some-vm' _devtype='cdrom' "
254
+ b"_read-only='True'" )] = \
244
255
b'2\x00 QubesException\x00 \x00 An error occurred\x00 '
245
256
retcode = qubesadmin .tools .qvm_start .main ([
246
257
'--cdrom=other-vm:loop7' ,
0 commit comments