[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Error getting VM-informations with Python on Xen 3.0.2
Hi all, I wrote a small python-script to monitor the status of the started VMs based on the xenmon.py and the following code I got from Anthony Liguori: ---------------------------------------- import sys sys.path.append('/usr/lib/python') sys.path.append('/usr/lib64/python') from xen.xend.XendClient import server from xen.xend import sxp def parse_doms_info(info): def get_info(n, t, d): return t(sxp.child_value(info, n, d)) return { 'dom' : get_info('domid', int, -1), 'name' : get_info('name', str, '??'), 'mem' : get_info('memory', int, 0), 'vcpus' : get_info('online_vcpus', int, 0), 'state' : get_info('state', str, '??'), 'cpu_time' : get_info('cpu_time', float, 0), 'ssidref' : get_info('ssidref', int, 0), } doms = server.xend_list_domains() print 'Name ID Mem(MiB) VCPUs State Time(s)' for dom in doms: d = parse_doms_info(dom) if (d['ssidref'] != 0): d['ssidstr'] = (" s:%04x/p:%04x" % ((d['ssidref'] >> 16) & 0xffff, d['ssidref'] & 0xffff)) else: d['ssidstr'] = "" print ("%(name)-32s %(dom)3d %(mem)8d %(vcpus)5d %(state)5s% (cpu_time)7.1f% (ssidstr)s" % d) ---------------------------------------- I wrote the script on SUSE SLES 10.0 Beta 3 with Xen 3.0_8659-2. Unfortunately this script (and therefor my one too) ist not running anymore with the latest SUSE SLES 10.0 Beta 9 that includes Xen 3.0.2_09434-2 :-( It breaks at line "doms = server.xend_list_domains()" with the following error: ---------------------------------------- Traceback (most recent call last): File "xentest1.py", line 22, in ? doms = server.xend_list_domains() File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request verbose=self.__verbose File "/usr/lib/python2.4/site-packages/xen/util/xmlrpclib2.py", line 46, in request return Transport.request(self, host, '/RPC2', request_body, verbose) File "/usr/lib/python2.4/xmlrpclib.py", line 1147, in request return self._parse_response(h.getfile(), sock) File "/usr/lib/python2.4/xmlrpclib.py", line 1286, in _parse_response return u.close() File "/usr/lib/python2.4/xmlrpclib.py", line 744, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/lib/python2.4/site-packages/xen/util/xmlrpclib2.py", line 74, in _marshaled_dispatch\n response = self._dispatch(method, params)\n File "/usr/lib/python2.4/SimpleXMLRPCServer.py", line 408, in _dispatch\n raise Exception(\'method "%s" is not supported\' % method)\nException: method "xend_list_domains" is not supported\n'> ---------------------------------------- If I see right it now uses "/usr/lib/python2.4/SimpleXMLRPCServer.py" (what does not exist in Xen 3.0_8659-2) and breaks because the method "xend_list_domains" is not supported anymore I use to get the domain-informations with the script. Is there a better way to get the VM-status like name, memory, state, CPU-usage etc. via Python than using the mechanism from xenmon.py and the above one? Thanks a lot for your answers, -- Chau y hasta luego, Thorolf ------------------------------------------------------------------ e-Mail: mailto:Thorolf@xxxxxxxxx \|/ /'~'\ Homepage: http://www.godawa.de ( o o ) --------------------------------------------------oOOO--(_)--OOOo- _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |