代码
#Author Kang
from __future__ import division
from pysphere import VIServer, MORTypes, VIProperty
from pysphere.resources import VimService_services as VI
import pysphere
import re
import pprint
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
HOST = '10.3.152.88'
USER = "[email protected]"
PASSWORD = "password"
stats = dict()
s = VIServer()
s.connect(HOST, USER, PASSWORD)
print '\033[32mVC connect successful...\033[0m'
for ds, dsname in s.get_datastores().items():
DatastoreCapacity = 0
DatastoreFreespace = 0
DatastoreUsagePercent = 0
props = s._retrieve_properties_traversal(property_names=['name', 'summary.capacity', 'summary.freeSpace'],
from_node=ds, obj_type="Datastore")
# print props
for prop_set in props:
for prop in prop_set.PropSet:
if prop.Name == "summary.capacity":
DatastoreCapacity = (prop.Val / 1073741824)
elif prop.Name == "summary.freeSpace":
DatastoreFreespace = (prop.Val / 1073741824)
UsedSpace = DatastoreCapacity - DatastoreFreespace
DatastoreUsagePercent = (((DatastoreCapacity - DatastoreFreespace) * 100) / DatastoreCapacity)
metricnameZoneDatastoreCapacity = dsname.lower() + 'Capacity'
metricnameZoneDatastoreFreespace = dsname.lower() + 'FreeSpace'
metricnameZoneDatastoreUsagePercent = dsname.lower() + 'UsagePercent'
volumes_dict = {'volumes': dsname.lower(), 'FreeSpace': DatastoreFreespace, 'UsedSpace': UsedSpace,
'capacity': DatastoreCapacity, 'usagePercent': DatastoreUsagePercent}
pprint.pprint(volumes_dict)
print '\033[32mVC disconnect successful...\033[0m'
s.disconnect()
结果:
{'FreeSpace': 199.25390625,
'UsedSpace': 3144.99609375,
'capacity': 3344.25,
'usagePercent': 94.0418956043956,
'volumes': 'esxi07-datastore'}
{'FreeSpace': 706.9873046875,
'UsedSpace': 1798.7626953125,
'capacity': 2505.75,
'usagePercent': 71.7854013893046,
'volumes': 'datastore1 (2)'}