def get_volumes(cls, sr): cfg = ConfigHelper._get_config() sr_key = urlparse.urlparse(sr).path[1:] kv = linstor.KV(XENKV, namespace=os.path.join(SRNS, sr_key), uri=cfg.controller) return [json.dumps(v) for v in kv.values()]
def get_volume(cls, sr, vol_key): cfg = ConfigHelper._get_config() sr_key = urlparse.urlparse(sr).path[1:] kv = linstor.KV(XENKV, namespace=os.path.join(SRNS, sr_key), uri=cfg.controller) return json.loads(kv[vol_key])
def delete_volume(cls, sr, vol_meta): vol_key = vol_meta['key'] sr_key = urlparse.urlparse(sr).path[1:] cfg = ConfigHelper._get_config() kv = linstor.KV(XENKV, namespace=os.path.join(SRNS, sr_key), uri=cfg.controller) del (kv[vol_key])
def delete_stat(cls, sr, namespace=SRNS): key = urlparse.urlparse(sr).path[1:] cfg = ConfigHelper._get_config() kv = linstor.KV(XENKV, namespace=namespace, uri=cfg.controller) try: del (kv[key]) except KeyError: # assume it is already gone pass
def read_stat(cls, sr): key = urlparse.urlparse(sr).path[1:] cfg = ConfigHelper._get_config() kv = linstor.KV(XENKV, namespace=SRNS, uri=cfg.controller) stat = {} try: stat = json.loads(kv[key]) except KeyError: pass return stat
def write_stat(cls, meta, namespace=SRNS): key = meta['key'] cfg = ConfigHelper._get_config() kv = linstor.KV(XENKV, namespace=namespace, uri=cfg.controller) kv[key] = json.dumps(meta)