コード例 #1
0
def physicalVolumeList():
    rc, out, err = commands.execCmd([
        _pvsCommandPath.cmd, "--reportformat", "json", "--units", "b",
        "--nosuffix", "-o", "pv_name,vg_name"
    ])
    if rc:
        raise ge.GlusterCmdExecFailedException(rc, out, err)
    return json.loads("".join(out))["report"][0]["pv"]
コード例 #2
0
def vdoVolumeList():
    rc, out, err = commands.execCmd([_vdoCommandPath.cmd, "status"])
    if rc:
        raise ge.GlusterCmdExecFailedException(rc, out, err)
    vdoData = _parseVdoOutput(out, 0)

    result = []
    for vdo, data in iteritems(vdoData["VDOs"]):
        entry = {}
        entry["device"] = data["Storagedevice"]
        for mapper, stats in iteritems(data["VDOstatistics"]):
            entry["name"] = mapper
            entry["size"] = int(stats["1K-blocks"]) * 1024
            entry["free"] = int(stats["1K-blocksavailable"]) * 1024
        result.append(entry)

    return result
コード例 #3
0
def logicalVolumeList():
    rc, out, err = commands.execCmd([
        _lvsCommandPath.cmd, "--reportformat", "json", "--units", "b",
        "--nosuffix", "-o", "lv_size,data_percent,"
        "lv_name,vg_name,pool_lv"
    ])
    if rc:
        raise ge.GlusterCmdExecFailedException(rc, out, err)

    volumes = []
    for lv in json.loads("".join(out))["report"][0]["lv"]:
        lv["lv_size"] = int(lv["lv_size"])
        if not lv["pool_lv"] and lv["data_percent"]:
            lv["lv_free"] = int(
                (1 - float(lv.pop("data_percent")) / 100) * lv["lv_size"])
        else:
            lv["lv_free"] = 0
            lv.pop("data_percent")
        volumes.append(lv)
    return volumes
コード例 #4
0
def vdoVolumeList():
    rc, out, err = commands.execCmd([_vdoCommandPath.cmd, "status"], raw=True)
    if rc:
        raise ge.GlusterCmdExecFailedException(rc, out, err)
    vdoData = yaml.safe_load(out)

    result = []
    for vdo, data in iteritems(vdoData["VDOs"]):
        entry = {}
        entry["device"] = data["Storage device"]
        for mapper, stats in iteritems(data["VDO statistics"]):
            blockSize = stats["block size"]
            entry["name"] = mapper
            entry["size"] = stats["1K-blocks"] * 1024
            entry["free"] = stats["1K-blocks available"] * 1024
            entry["logicalBytesUsed"] = (stats["logical blocks used"] *
                                         blockSize)
            entry["physicalBytesUsed"] = (stats["data blocks used"] *
                                          blockSize)
        result.append(entry)

    return result
コード例 #5
0
 def glusterVolumeInfo(self, volumeName=None, remoteServer=None):
     raise ge.GlusterCmdExecFailedException()