vcenter Java接口,vcenter api 接口获取开发

#!/opt/python3/bin/python3#Author: zhaoyong

"""只用于模拟开发功能测试"""

from pyVmomi importvimfrom pyVim.connect importSmartConnect, Disconnect, SmartConnectNoSSLimportatexitimportargparsedefget_args():

parser=argparse.ArgumentParser(

description='Arguments for talking to vCenter')

parser.add_argument('-s', '--host',

required=True,

action='store',

help='vSpehre service to connect to')

parser.add_argument('-o', '--port',

type=int,

default=443,

action='store',

help='Port to connect on')

parser.add_argument('-u', '--user',

required=True,

action='store',

help='User name to use')

parser.add_argument('-p', '--password',

required=True,

action='store',

help='Password to use')

args=parser.parse_args()returnargsdef get_obj(content, vimtype, name=None):'''列表返回,name 可以指定匹配的对象'''container=content.viewManager.CreateContainerView(content.rootFolder, vimtype, True)

obj= [ view for view incontainer.view]returnobjdefmain():

esxi_host={}

args=get_args()#connect this thing

si =SmartConnectNoSSL(

host=args.host,

user=args.user,

pwd=args.password,

port=args.port)#disconnect this thing

atexit.register(Disconnect, si)

content=si.RetrieveContent()

esxi_obj=get_obj(content, [vim.HostSystem])for esxi inesxi_obj:

esxi_host[esxi.name]= {'esxi_info':{},'datastore':{}, 'network': {}, 'vm': {}}

esxi_host[esxi.name]['esxi_info']['厂商'] =esxi.summary.hardware.vendor

esxi_host[esxi.name]['esxi_info']['型号'] =esxi.summary.hardware.modelfor i inesxi.summary.hardware.otherIdentifyingInfo:ifisinstance(i, vim.host.SystemIdentificationInfo):

esxi_host[esxi.name]['esxi_info']['SN'] =i.identifierValue

esxi_host[esxi.name]['esxi_info']['处理器'] = '数量:%s 核数:%s 线程数:%s 频率:%s(%s)' %(esxi.summary.hardware.numCpuPkgs,

esxi.summary.hardware.numCpuCores,

esxi.summary.hardware.numCpuThreads,

esxi.summary.hardware.cpuMhz,

esxi.summary.hardware.cpuModel)

esxi_host[esxi.name]['esxi_info']['处理器使用率'] = '%.1f%%' % (esxi.summary.quickStats.overallCpuUsage /(esxi.summary.hardware.numCpuPkgs* esxi.summary.hardware.numCpuCores * esxi.summary.hardware.cpuMhz) * 100)

esxi_host[esxi.name]['esxi_info']['内存(MB)'] = esxi.summary.hardware.memorySize/1024/1024esxi_host[esxi.name]['esxi_info']['可用内存(MB)'] = '%.1f MB' % ((esxi.summary.hardware.memorySize/1024/1024) -esxi.summary.quickStats.overallMemoryUsage)

esxi_host[esxi.name]['esxi_info']['内存使用率'] = '%.1f%%' % ((esxi.summary.quickStats.overallMemoryUsage / (esxi.summary.hardware.memorySize/1024/1024)) * 100)

esxi_host[esxi.name]['esxi_info']['系统'] =esxi.summary.config.product.fullNamefor ds inesxi.datastore:

esxi_host[esxi.name]['datastore'][ds.name] ={}

esxi_host[esxi.name]['datastore'][ds.name]['总容量(G)'] = int((ds.summary.capacity)/1024/1024/1024)

esxi_host[esxi.name]['datastore'][ds.name]['空闲容量(G)'] = int((ds.summary.freeSpace)/1024/1024/1024)

esxi_host[esxi.name]['datastore'][ds.name]['类型'] =(ds.summary.type)for nt inesxi.network:

esxi_host[esxi.name]['network'][nt.name] ={}

esxi_host[esxi.name]['network'][nt.name]['标签ID'] =nt.namefor vm inesxi.vm:

esxi_host[esxi.name]['vm'][vm.name] ={}

esxi_host[esxi.name]['vm'][vm.name]['电源状态'] =vm.runtime.powerState

esxi_host[esxi.name]['vm'][vm.name]['CPU(内核总数)'] =vm.config.hardware.numCPU

esxi_host[esxi.name]['vm'][vm.name]['内存(总数MB)'] =vm.config.hardware.memoryMB

esxi_host[esxi.name]['vm'][vm.name]['系统信息'] =vm.config.guestFullNameifvm.guest.ipAddress:

esxi_host[esxi.name]['vm'][vm.name]['IP'] =vm.guest.ipAddresselse:

esxi_host[esxi.name]['vm'][vm.name]['IP'] = '服务器需要开机后才可以获取'

for d invm.config.hardware.device:ifisinstance(d, vim.vm.device.VirtualDisk):

esxi_host[esxi.name]['vm'][vm.name][d.deviceInfo.label] = str((d.capacityInKB)/1024/1024) + 'GB'f= open(args.host + '.txt', 'w')for host inesxi_host:print('ESXI IP:', host)

f.write('ESXI IP: %s \n' %host)for hd in esxi_host[host]['esxi_info']:print('%s: %s' % (hd, esxi_host[host]['esxi_info'][hd]))

f.write('%s: %s' % (hd, esxi_host[host]['esxi_info'][hd]))for ds in esxi_host[host]['datastore']:print('存储名称:', ds)

f.write('存储名称: %s \n' %ds)for k in esxi_host[host]['datastore'][ds]:print('%s: %s' % (k, esxi_host[host]['datastore'][ds][k]))

f.write('%s: %s \n' % (k, esxi_host[host]['datastore'][ds][k]))for nt in esxi_host[host]['network']:print('网络名称:', nt)

f.write('网络名称:%s \n' %nt)for k in esxi_host[host]['network'][nt]:print('%s: %s' % (k, esxi_host[host]['network'][nt][k]))

f.write('%s: %s \n' % (k, esxi_host[host]['network'][nt][k]))for vmachine in esxi_host[host]['vm']:print('虚拟机名称:', vmachine)

f.write('虚拟机名称:%s \n' %vmachine)for k in esxi_host[host]['vm'][vmachine]:print('%s: %s' % (k, esxi_host[host]['vm'][vmachine][k]))

f.write('%s: %s \n' % (k, esxi_host[host]['vm'][vmachine][k]))

f.close()if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值