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] Add *.get_all_records to XenAPI, make use

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Add *.get_all_records to XenAPI, make use of this for xm list
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 18 Apr 2007 07:30:23 -0700
Delivery-date: Wed, 18 Apr 2007 07:32:24 -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 Tom Wilkie <tom.wilkie@xxxxxxxxx>
# Date 1176760692 -3600
# Node ID 338820b7ea4588c743df9524fc863644957886c0
# Parent  4538426ae5fd9abc6e1f160a567ce56548e62066
Add *.get_all_records to XenAPI, make use of this for xm list

signed-off-by: Tom Wilkie <tom.wilkie@xxxxxxxxx>
---
 tools/python/xen/xend/XendAPI.py |   14 ++++++++++++--
 tools/python/xen/xm/main.py      |   11 ++++++-----
 2 files changed, 18 insertions(+), 7 deletions(-)

diff -r 4538426ae5fd -r 338820b7ea45 tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Mon Apr 16 17:02:52 2007 -0400
+++ b/tools/python/xen/xend/XendAPI.py  Mon Apr 16 22:58:12 2007 +0100
@@ -575,15 +575,25 @@ class XendAPI(object):
             
             get_by_uuid = '%s_get_by_uuid' % api_cls
             get_uuid = '%s_get_uuid' % api_cls
+            get_all_records = '%s_get_all_records' % api_cls    
+
             def _get_by_uuid(_1, _2, ref):
                 return xen_api_success(ref)
 
             def _get_uuid(_1, _2, ref):
                 return xen_api_success(ref)
 
+            def unpack(v):
+                return v['Value']
+
+            def _get_all_records(_api_cls):
+                return lambda s, session: \
+                    xen_api_success([unpack(getattr(cls, '%s_get_record' % 
_api_cls)(s, session, ref))\
+                                     for ref in unpack(getattr(cls, 
'%s_get_all' % _api_cls)(s, session))])
+
             setattr(cls, get_by_uuid, _get_by_uuid)
             setattr(cls, get_uuid,    _get_uuid)
-
+            setattr(cls, get_all_records, _get_all_records(api_cls))
 
         # Autoplugging classes
         # --------------------
@@ -721,7 +731,7 @@ class XendAPI(object):
     Base_attr_ro = ['uuid']
     Base_attr_rw = []
     Base_methods = [('get_record', 'Struct')]
-    Base_funcs   = [('get_all', 'Set'), ('get_by_uuid', None)]
+    Base_funcs   = [('get_all', 'Set'), ('get_by_uuid', None), 
('get_all_records', 'Set')]
 
     # Xen API: Class Session
     # ----------------------------------------------------------------
diff -r 4538426ae5fd -r 338820b7ea45 tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Mon Apr 16 17:02:52 2007 -0400
+++ b/tools/python/xen/xm/main.py       Mon Apr 16 22:58:12 2007 +0100
@@ -741,11 +741,12 @@ def getDomains(domain_names, state, full
     if serverType == SERVER_XEN_API:
         doms_sxp = []
         doms_dict = []
-        dom_refs = server.xenapi.VM.get_all()
-        for dom_ref in dom_refs:
-            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)
+
+        dom_recs = server.xenapi.VM.get_all_records()
+        dom_metrics_recs = dict(map(lambda x: (x['uuid'], x), 
server.xenapi.VM_metrics.get_all_records()))
+
+        for dom_rec in dom_recs:
+            dom_metrics  = dom_metrics_recs[dom_rec['metrics']]
 
             states = ('running', 'blocked', 'paused', 'shutdown',
                       'crashed', 'dying')

_______________________________________________
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] Add *.get_all_records to XenAPI, make use of this for xm list, Xen patchbot-unstable <=