jueves, 24 de febrero de 2011

XenServer Pyhton phaser

Phaser python para extraer info de servidores XenServer mediante la api XenApi.py
#!/usr/bin/env python import sys, time import XenAPI def read_os_name(vm): vgm = session.xenapi.VM.get_guest_metrics(vm) try: os = session.xenapi.VM_guest_metrics.get_os_version(vgm) if "name" in os.keys(): return str(os["name"].encode('utf-8')) return None except: return None def main(session): c=0 pool=session.xenapi.pool.get_all()[0] print session.xenapi.pool.get_name_label(pool) for s in session.xenapi.host.get_all(): print "*",session.xenapi.host.get_name_label(s) vms_in_host=session.xenapi.host.get_resident_VMs(s) for vm in vms_in_host: if not session.xenapi.VM.get_is_a_template(vm) and not session.xenapi.VM.get_is_control_domain(vm): nom=session.xenapi.VM.get_name_label(vm) desc=session.xenapi.VM.get_name_description(vm) vmm=session.xenapi.VM.get_guest_metrics(vm) os=read_os_name(vm) print " --" , nom , "->", os, "-->" , desc.encode('utf-8') session.xenapi.session.logout() if __name__ == "__main__": if len(sys.argv) <> 4: print "Usage:" print sys.argv[0], " " sys.exit(1) url = sys.argv[1] username = sys.argv[2] password = sys.argv[3] # First acquire a valid session by logging in: session = XenAPI.Session(url) session.xenapi.login_with_password(username, password) try: main(session) except Exception, e: print str(e) raise

No hay comentarios:

Publicar un comentario