Returns a dictionary with the basic information for the given datastore:
        name, type, url, capacity, free, used, usage, hosts

    service_instance
        The Service Instance Object from which to obtain datastores.

    datastore
        Name of the datastore.

def list_datastore_full(service_instance, datastore):
    '''
    Returns a dictionary with the basic information for the given datastore:
        name, type, url, capacity, free, used, usage, hosts

    service_instance
        The Service Instance Object from which to obtain datastores.

    datastore
        Name of the datastore.
    '''
    datastore_object = get_mor_by_name(service_instance, vim.Datastore, datastore)

    if not datastore_object:
        raise salt.exceptions.VMwareObjectRetrievalError(
            'Datastore \'{0}\' does not exist.'.format(datastore)
        )

    items = {}
    items['name'] = str(datastore_object.summary.name).replace("'", "")
    items['type'] = str(datastore_object.summary.type).replace("'", "")
    items['url'] = str(datastore_object.summary.url).replace("'", "")
    items['capacity'] = datastore_object.summary.capacity / 1024 / 1024
    items['free'] = datastore_object.summary.freeSpace / 1024 / 1024
    items['used'] = items['capacity'] - items['free']
    items['usage'] = (float(items['used']) / float(items['capacity'])) * 100
    items['hosts'] = []

    for host in datastore_object.host:
        host_key = str(host.key).replace("'", "").split(":", 1)[1]
        host_object = get_mor_by_moid(service_instance, vim.HostSystem, host_key)
        items['hosts'].append(host_object.name)

    return items