Added handling for 'force' option in vm shutdown
To be more precise: just allowed using it, as the option was actually implemented previously. references QubesOS/qubes-issues#5591
This commit is contained in:
		
							parent
							
								
									686f66bb85
								
							
						
					
					
						commit
						284fbe1d44
					
				| @ -899,9 +899,9 @@ class QubesAdminAPI(qubes.api.AbstractQubesAPI): | |||||||
|         scope='local', execute=True) |         scope='local', execute=True) | ||||||
|     @asyncio.coroutine |     @asyncio.coroutine | ||||||
|     def vm_shutdown(self): |     def vm_shutdown(self): | ||||||
|         self.enforce(not self.arg) |         force = (self.arg == 'force') | ||||||
|         self.fire_event_for_permission() |         self.fire_event_for_permission(force=force) | ||||||
|         yield from self.dest.shutdown() |         yield from self.dest.shutdown(force=force) | ||||||
| 
 | 
 | ||||||
|     @qubes.api.method('admin.vm.Pause', no_payload=True, |     @qubes.api.method('admin.vm.Pause', no_payload=True, | ||||||
|         scope='local', execute=True) |         scope='local', execute=True) | ||||||
|  | |||||||
| @ -1004,7 +1004,18 @@ netvm default=True type=vm | |||||||
|         self.vm.shutdown = coroutine_mock |         self.vm.shutdown = coroutine_mock | ||||||
|         value = self.call_mgmt_func(b'admin.vm.Shutdown', b'test-vm1') |         value = self.call_mgmt_func(b'admin.vm.Shutdown', b'test-vm1') | ||||||
|         self.assertIsNone(value) |         self.assertIsNone(value) | ||||||
|         func_mock.assert_called_once_with() |         func_mock.assert_called_once_with(force=False) | ||||||
|  | 
 | ||||||
|  |     def test_231_shutdown_force(self): | ||||||
|  |         func_mock = unittest.mock.Mock() | ||||||
|  | 
 | ||||||
|  |         @asyncio.coroutine | ||||||
|  |         def coroutine_mock(*args, **kwargs): | ||||||
|  |             return func_mock(*args, **kwargs) | ||||||
|  |         self.vm.shutdown = coroutine_mock | ||||||
|  |         value = self.call_mgmt_func(b'admin.vm.Shutdown', b'test-vm1', b'force') | ||||||
|  |         self.assertIsNone(value) | ||||||
|  |         func_mock.assert_called_once_with(force=True) | ||||||
| 
 | 
 | ||||||
|     def test_240_pause(self): |     def test_240_pause(self): | ||||||
|         func_mock = unittest.mock.Mock() |         func_mock = unittest.mock.Mock() | ||||||
| @ -2699,7 +2710,6 @@ netvm default=True type=vm | |||||||
|             b'admin.vm.firewall.Reload', |             b'admin.vm.firewall.Reload', | ||||||
|             b'admin.vm.volume.List', |             b'admin.vm.volume.List', | ||||||
|             b'admin.vm.Start', |             b'admin.vm.Start', | ||||||
|             b'admin.vm.Shutdown', |  | ||||||
|             b'admin.vm.Pause', |             b'admin.vm.Pause', | ||||||
|             b'admin.vm.Unpause', |             b'admin.vm.Unpause', | ||||||
|             b'admin.vm.Kill', |             b'admin.vm.Kill', | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marta Marczykowska-Górecka
						Marta Marczykowska-Górecka