in backend/bms_app/source_db/parsers.py [0:0]
def _parse_asm_diskgroup_data(self, df):
"""Parse oracle asm diskgroup data."""
asm_columns = {
'ALLOC_SIZE': 'au_size',
'DG_NAME': 'diskgroup',
'REDUNDANCY': 'redundancy',
}
misc_columns = {
'COMPAT': 'compatible_asm',
'DB_COMPAT': 'compatible_rdbms',
}
redundancy_names = {
'EXTEND': 'EXTENDED',
'EXTERN': 'EXTERNAL'
}
data = {
'asm': []
}
asm_dg_df = df[df['Feature'] == self.ASM_DISKGROUPS]
if not asm_dg_df.empty:
for row in list(asm_dg_df.Value):
asm_item = {}
for key_value in row.split():
key, value = key_value.split(':')
key = key.strip()
value = value.strip()
if key in asm_columns:
if key == 'ALLOC_SIZE':
value = convert_to_mb(value)
elif key == 'REDUNDANCY':
value = redundancy_names.get(value, value)
asm_item[asm_columns[key]] = value
if key in misc_columns:
# later this data will go to asm too
data[misc_columns[key]] = value
if asm_item:
data['asm'].append(asm_item)
return data