Use admin.vm.CurrentState method for power state and memory
Depends on the method introduced in QubesOS/qubes-core-admin#307. Adding the get_mem() method using the same CurrentState admin method also fixes the bug with qvm-ls not showing memory, see QubesOS/qubes-issues#5166.
This commit is contained in:
		
							parent
							
								
									1b53de8365
								
							
						
					
					
						commit
						d5c9328a8c
					
				| @ -1,4 +1,4 @@ | ||||
| # -*- encoding: utf8 -*- | ||||
| # -*- encoding: utf-8 -*- | ||||
| # | ||||
| # The Qubes OS Project, http://www.qubes-os.org | ||||
| # | ||||
| @ -182,19 +182,20 @@ class QubesVM(qubesadmin.base.PropertyHolder): | ||||
|         ''' | ||||
| 
 | ||||
|         try: | ||||
|             vm_list_info = [line | ||||
|                 for line in self.qubesd_call( | ||||
|                     self._method_dest, 'admin.vm.List', None, None | ||||
|                 ).decode('ascii').split('\n') | ||||
|                 if line.startswith(self._method_dest+' ')] | ||||
|             return self._get_current_state()['power_state'] | ||||
|         except qubesadmin.exc.QubesDaemonNoResponseError: | ||||
|             return 'NA' | ||||
|         assert len(vm_list_info) == 1 | ||||
|         #  name class=... state=... other=... | ||||
|         # NOTE: when querying dom0, we get whole list | ||||
|         vm_state = vm_list_info[0].strip().partition('state=')[2].split(' ')[0] | ||||
|         return vm_state | ||||
| 
 | ||||
|     def get_mem(self): | ||||
|         return int(self._get_current_state()['mem']) | ||||
| 
 | ||||
|     def _get_current_state(self): | ||||
|         state = {} | ||||
|         response = self.qubesd_call(self._method_dest, 'admin.vm.CurrentState') | ||||
|         for part in response.decode('ascii').split(): | ||||
|             name, value = part.split('=', 1) | ||||
|             state[name] = value | ||||
|         return state | ||||
| 
 | ||||
|     def is_halted(self): | ||||
|         ''' Check whether this domain's state is 'Halted' | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Pawel Marczewski
						Pawel Marczewski