util: fix tracevol.py to manage config map created by Rook

If the config map is created by rook then there won't be any provision to
specify subvolumeGroup, tracevol.py should skip looking for subvolumeGroup
in such case.

Signed-off-by: Mudit Agarwal <muagarwa@redhat.com>
This commit is contained in:
Mudit Agarwal 2020-07-29 15:03:29 +05:30 committed by mergify[bot]
parent 3585b21e80
commit 6814f598ce

View File

@ -465,16 +465,19 @@ def get_subvol_group(arg):
except ValueError as err: except ValueError as err:
print(err, stdout) print(err, stdout)
sys.exit() sys.exit()
cm_data = config_map['data']['config.json']
subvol_group = "" subvol_group = ""
cm_data = config_map['data'].get('config.json')
# Absence of 'config.json' means that the configmap
# is created by Rook and there won't be any provision to
# specify subvolumeGroup
if cm_data:
if "subvolumeGroup" in cm_data: if "subvolumeGroup" in cm_data:
try: try:
cm_data_json = json.loads(cm_data) cm_data_list = json.loads(cm_data)
except ValueError as err: except ValueError as err:
print(err, stdout) print(err, stdout)
sys.exit() sys.exit()
for data in cm_data_json: subvol_group = cm_data_list[0]['cephFS']['subvolumeGroup']
subvol_group = data['cephFS']['subvolumeGroup']
return subvol_group return subvol_group
def is_rbd_pv(arg, pvname, pvdata): def is_rbd_pv(arg, pvname, pvdata):