Fix state in xm list; add state to VM_metrics class.

Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
This commit is contained in:
Ewan Mellor committed 2007-03-23 11:04:51 +00:00
1 parent a24516689f
commit 761bc92430
3 files changed
+41 -1

No files matched your search

+4
View File
@@ -1608,6 +1608,7 @@ class XendAPI(object):
'VCPUs_CPU',
'VCPUs_flags',
'VCPUs_params',
'state',
'start_time']
VM_metrics_attr_rw = []
VM_metrics_methods = []
@@ -1642,6 +1643,9 @@ class XendAPI(object):
def VM_metrics_get_start_time(self, _, ref):
return xen_api_success(self._VM_metrics_get(ref).get_start_time())
def VM_metrics_get_state(self, _, ref):
return xen_api_success(self._VM_metrics_get(ref).get_state())
# Xen API: Class VBD
# ----------------------------------------------------------------
+25
View File
@@ -97,6 +97,30 @@ class XendVMMetrics:
else:
return {}
def get_state(self):
try:
domid = self.xend_domain_instance.getDomid()
domlist = xc.domain_getinfo(domid, 1)
if domlist and domid == domlist[0]['domid']:
dominfo = domlist[0]
states = []
def addState(key):
if dominfo[key] == 1:
states.append(key)
addState("running")
addState("blocked")
addState("paused")
addState("dying")
addState("crashed")
addState("shutdown")
return ",".join(states)
except Exception, err:
# ignore missing domain
log.trace("domain_getinfo(%d) failed, ignoring: %s", domid, str(err))
return ""
def get_VCPUs_params(self):
domid = self.xend_domain_instance.getDomid()
if domid is not None:
@@ -125,4 +149,5 @@ class XendVMMetrics:
'VCPUs_flags' : self.get_VCPUs_flags(),
'VCPUs_params' : self.get_VCPUs_params(),
'start_time' : self.get_start_time(),
'state' : self.get_state(),
}
+12 -1
View File
@@ -715,10 +715,21 @@ def getDomains(domain_names, state, full = 0):
dom_rec = server.xenapi.VM.get_record(dom_ref)
dom_metrics_ref = server.xenapi.VM.get_metrics(dom_ref)
dom_metrics = server.xenapi.VM_metrics.get_record(dom_metrics_ref)
states = ('running', 'blocked', 'paused', 'shutdown',
'crashed', 'dying')
def state_on_off(state):
if dom_metrics['state'].find(state) > -1:
return state[0]
else:
return "-"
state_str = "".join([state_on_off(state)
for state in states])
dom_rec.update({'name': dom_rec['name_label'],
'memory_actual': int(dom_metrics['memory_actual'])/1024,
'vcpus': dom_metrics['VCPUs_number'],
'state': '-----',
'state': state_str,
'cpu_time': dom_metrics['VCPUs_utilisation'],
'start_time': dom_metrics['start_time']})
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.