Пример #1
0
def get_datastore_info(ds_obj):
    """
    Gets a human-readable summary of a Datastore.

    :param ds_obj: The datastore to get information on
    :type ds_obj: vim.Datastore
    :return: The datastore's information
    :rtype: str
    """
    if not ds_obj:
        logging.error("No Datastore was given to get_datastore_info")
        return ""
    from adles.utils import sizeof_fmt
    info_string = "\n"
    summary = ds_obj.summary
    ds_capacity = summary.capacity
    ds_freespace = summary.freeSpace
    ds_uncommitted = summary.uncommitted if summary.uncommitted else 0
    ds_provisioned = ds_capacity - ds_freespace + ds_uncommitted
    ds_overp = ds_provisioned - ds_capacity
    ds_overp_pct = (ds_overp * 100) / ds_capacity if ds_capacity else 0

    info_string += "Name                  : %s\n" % summary.name
    info_string += "URL                   : %s\n" % summary.url
    info_string += "Capacity              : %s\n" % sizeof_fmt(ds_capacity)
    info_string += "Free Space            : %s\n" % sizeof_fmt(ds_freespace)
    info_string += "Uncommitted           : %s\n" % sizeof_fmt(ds_uncommitted)
    info_string += "Provisioned           : %s\n" % sizeof_fmt(ds_provisioned)
    if ds_overp > 0:
        info_string += "Over-provisioned      : %s / %s %%\n" \
                       % (sizeof_fmt(ds_overp), ds_overp_pct)
    info_string += "Hosts                 : %d\n" % len(ds_obj.host)
    info_string += "Virtual Machines      : %d" % len(ds_obj.vm)
    return info_string
Пример #2
0
def test_sizeof_fmt():
    from adles.utils import sizeof_fmt

    assert sizeof_fmt(0) == '0.0bytes'
    assert sizeof_fmt(10.12345) == '10.1bytes'
    assert sizeof_fmt(10.19) == '10.2bytes'
    assert sizeof_fmt(1023) == '1023.0bytes'
    assert sizeof_fmt(1024) == '1.0KB'
    assert sizeof_fmt(10000) == '9.8KB'
    assert sizeof_fmt(1000000000) == '953.7MB'
    assert sizeof_fmt(100000000000000000) == '90949.5TB'
Пример #3
0
 def snapshot_disk_usage(self):
     """Determines the total disk usage of a VM's snapshots.
     :return: Human-readable disk usage of the snapshots
     :rtype: str
     """
     from re import search
     disk_list = self._vm.layoutEx.file
     size = 0
     for disk in disk_list:
         if disk.type == 'snapshotData':
             size += disk.size
         ss_disk = search(r'0000\d\d', disk.name)
         if ss_disk:
             size += disk.size
     return utils.sizeof_fmt(size)