(self, block)
return array_status_dict_sanitizied
Parse the status of the md array.

        >>> block = 'md0 : active raid1 sdd2[0] sdb2[2](S) sdc2[1]\n'
        >>>         '      100171776 blocks super 1.2 [2/2] [UU]\n'
        >>>         '      bitmap: 1/1 pages [4KB], 65536KB chunk\n\n'
        >>> print _parse_array_status(block)
        {
            'total_members': '2',
            'actual_members': '2',
            'superblock_version': '1.2',
            'blocks': '100171776'
        }

        :return: dictionary of status information
        :rtype: dict
Parse the status of the md array.
Parse the status of the md array .
def _parse_array_status(self, block):
        """
        Parse the status of the md array.

        >>> block = 'md0 : active raid1 sdd2[0] sdb2[2](S) sdc2[1]\n'
        >>>         '      100171776 blocks super 1.2 [2/2] [UU]\n'
        >>>         '      bitmap: 1/1 pages [4KB], 65536KB chunk\n\n'
        >>> print _parse_array_status(block)
        {
            'total_members': '2',
            'actual_members': '2',
            'superblock_version': '1.2',
            'blocks': '100171776'
        }

        :return: dictionary of status information
        :rtype: dict
        """
        array_status_regexp = re.compile(
            '^ *(?P<blocks>\d*) blocks '
            '(?:super (?P<superblock_version>\d\.\d) )?'
            '(?:level (?P<raid_level>\d), '
            '(?P<chunk_size>\d*)k chunk, '
            'algorithm (?P<algorithm>\d) )?'
            '(?:\[(?P<total_members>\d*)/(?P<actual_members>\d*)\])?'
            '(?:(?P<rounding_factor>\d*)k rounding)?.*$'
        )

        array_status_dict = \
            array_status_regexp.match(block.split('\n')[1]).groupdict()

        array_status_dict_sanitizied = {}

        # convert all non None values to float
        for key, value in array_status_dict.iteritems():
            if not value:
                continue
            if key == 'superblock_version':
                array_status_dict_sanitizied[key] = float(value)
            else:
                array_status_dict_sanitizied[key] = int(value)

        if 'chunk_size' in array_status_dict_sanitizied:
            # convert chunk size from kBytes to Bytes
            array_status_dict_sanitizied['chunk_size'] *= 1024

        if 'rounding_factor' in array_status_dict_sanitizied:
            # convert rounding_factor from kBytes to Bytes
            array_status_dict_sanitizied['rounding_factor'] *= 1024

        return array_status_dict_sanitizied
def _parse_array_status ( self , block ) : array_status_regexp = re . compile ( '^ *(?P<blocks>\d*) blocks ' '(?:super (?P<superblock_version>\d\.\d) )?' '(?:level (?P<raid_level>\d), ' '(?P<chunk_size>\d*)k chunk, ' 'algorithm (?P<algorithm>\d) )?' '(?:\[(?P<total_members>\d*)/(?P<actual_members>\d*)\])?' '(?:(?P<rounding_factor>\d*)k rounding)?.*$' ) array_status_dict = array_status_regexp . match ( block . split ( '\n' ) [ 1 ] ) . groupdict ( ) array_status_dict_sanitizied = { } # convert all non None values to float for key , value in array_status_dict . iteritems ( ) : if not value : continue if key == 'superblock_version' : array_status_dict_sanitizied [ key ] = float ( value ) else : array_status_dict_sanitizied [ key ] = int ( value ) if 'chunk_size' in array_status_dict_sanitizied : # convert chunk size from kBytes to Bytes array_status_dict_sanitizied [ 'chunk_size' ] *= 1024 if 'rounding_factor' in array_status_dict_sanitizied : # convert rounding_factor from kBytes to Bytes array_status_dict_sanitizied [ 'rounding_factor' ] *= 1024 return array_status_dict_sanitizied