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"]
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
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
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
def glusterVolumeInfo(self, volumeName=None, remoteServer=None): raise ge.GlusterCmdExecFailedException()