from suds.client import Clientfrom suds.sudsobject import Property#import logging#logging.basicConfig(level=logging.INFO)#logging.getLogger('suds.client').setLevel(logging.DEBUG)#logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)data_file = open("pass.txt", "r")for line in data_file: # strip white space from line line = line.strip() # ignore empty lines if not line: continue # split using your seperating character user, password = line.split(' ') # convert string to float valuesurl = 'xxxxxx'client = Client(url)client.set_options(location='xxxxxx')mo_ServiceInstance = Property('ServiceInstance')mo_ServiceInstance._type = 'ServiceInstance'ServiceContent = client.service.RetrieveServiceContent(mo_ServiceInstance)mo_SessionManager = Property(ServiceContent.sessionManager.value)mo_SessionManager._type = 'SessionManager'SessionManager = client.service.Login(mo_SessionManager, user, password)# Traversal SpecsFolderTraversalSpec = client.factory.create('ns0:TraversalSpec')DatacenterVMTraversalSpec = client.factory.create('ns0:TraversalSpec')FolderSelectionSpec = client.factory.create('ns0:SelectionSpec')DatacenterVMSelectionSpec = client.factory.create('ns0:SelectionSpec')FolderSelectionSpec.name = "FolderTraversalSpec"DatacenterVMSelectionSpec.name = "DatacenterVMTraversalSpec"DatacenterVMTraversalSpec.name = "DatacenterVMTraversalSpec"DatacenterVMTraversalSpec.type = "Datacenter"DatacenterVMTraversalSpec.path = "vmFolder"DatacenterVMTraversalSpec.skip = TrueFolderTraversalSpec.name = "FolderTraversalSpec"FolderTraversalSpec.type = "Folder"FolderTraversalSpec.path = "childEntity"FolderTraversalSpec.skip = TrueDatacenterVMTraversalSpec.selectSet = [FolderSelectionSpec]FolderTraversalSpec.selectSet = [DatacenterVMSelectionSpec, FolderSelectionSpec]# Property SpecpropSpec = client.factory.create('ns0:PropertySpec')propSpec.all = FalsepropSpec.pathSet = ["name", "runtime"]propSpec.type = "VirtualMachine"# Object Specmo_RootFolder = Property(ServiceContent.rootFolder.value)mo_RootFolder._type = 'Folder'objSpec = client.factory.create('ns0:ObjectSpec')objSpec.obj = mo_RootFolderobjSpec.selectSet = [ FolderTraversalSpec, DatacenterVMTraversalSpec ]# PropertyFilterSpecpropFilterSpec = client.factory.create('ns0:PropertyFilterSpec')propFilterSpec.propSet = [ propSpec ]propFilterSpec.objectSet = [ objSpec ]# RetrievePropertiesmo_PropertyCollector = Property(ServiceContent.propertyCollector.value)mo_PropertyCollector._type = 'PropertyCollector'objContent = client.service.RetrieveProperties(mo_PropertyCollector, propFilterSpec)# --# print resultsdef properties_to_dict(entity): props = {} props['_type'] = entity.obj._type props['mo_ref'] = entity.obj.value for dynProp in entity.propSet: props[dynProp.name] = dynProp.val return propsvirtual_machines = map(properties_to_dict, objContent)hname = ipaddr = Nonefor vm in virtual_machines: print "Virtual Machine: "+vm['name'] print "(PowerState : "+str(vm['runtime'])+")" print "\n"