def _parse_asm_diskgroup_data()

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