Python 之 获取所有存储使用情况

代码

#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)'}

Python 之 获取所有存储使用情况

猜你喜欢

转载自blog.51cto.com/12965094/2350960