WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Fix state in xm list; add state to VM_met

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Fix state in xm list; add state to VM_metrics class.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Mar 2007 11:10:10 -0700
Delivery-date: Fri, 23 Mar 2007 11:09:28 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1174647891 0
# Node ID a34ab3f899c4150099697858b81b85d7684ba0f7
# Parent  5dfa9b09b07cd2e9c515f9dff0dc3a90af8dc80a
Fix state in xm list; add state to VM_metrics class.

Signed-off-by: Tom Wilkie <tom.wilkie@xxxxxxxxx>
---
 tools/python/xen/xend/XendAPI.py       |    4 ++++
 tools/python/xen/xend/XendVMMetrics.py |   25 +++++++++++++++++++++++++
 tools/python/xen/xm/main.py            |   13 ++++++++++++-
 3 files changed, 41 insertions(+), 1 deletion(-)

diff -r 5dfa9b09b07c -r a34ab3f899c4 tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Fri Mar 23 11:00:08 2007 +0000
+++ b/tools/python/xen/xend/XendAPI.py  Fri Mar 23 11:04:51 2007 +0000
@@ -1608,6 +1608,7 @@ class XendAPI(object):
                           'VCPUs_CPU',
                           'VCPUs_flags',
                           'VCPUs_params',
+                          'state',
                           'start_time']
     VM_metrics_attr_rw = []
     VM_metrics_methods = []
@@ -1641,6 +1642,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
diff -r 5dfa9b09b07c -r a34ab3f899c4 tools/python/xen/xend/XendVMMetrics.py
--- a/tools/python/xen/xend/XendVMMetrics.py    Fri Mar 23 11:00:08 2007 +0000
+++ b/tools/python/xen/xend/XendVMMetrics.py    Fri Mar 23 11:04:51 2007 +0000
@@ -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(),
                }
diff -r 5dfa9b09b07c -r a34ab3f899c4 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Fri Mar 23 11:00:08 2007 +0000
+++ b/tools/python/xen/xm/main.py       Fri Mar 23 11:04:51 2007 +0000
@@ -715,10 +715,21 @@ def getDomains(domain_names, state, full
             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']})
                        

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Fix state in xm list; add state to VM_metrics class., Xen patchbot-unstable <=