Exemplo n.º 1
0
def md_present(mdname):
    """Check if mdname is present in /proc/mdstat"""
    if not mdname:
        raise ValueError('md_present requires a valid md name')

    try:
        mdstat = util.load_file('/proc/mdstat')
    except IOError as e:
        if util.is_file_not_found_exc(e):
            LOG.warning('Failed to read /proc/mdstat; '
                        'md modules might not be loaded')
            return False
        else:
            raise e

    md_kname = dev_short(mdname)
    # Find lines like:
    # md10 : active raid1 vdc1[1] vda2[0]
    present = [
        line for line in mdstat.splitlines()
        if line.split(":")[0].rstrip() == md_kname
    ]
    if len(present) > 0:
        return True
    return False
Exemplo n.º 2
0
 def test_md_sysfs_attr(self, mock_isfile, mock_sysblock):
     mdname = "/dev/md0"
     attr_name = 'array_state'
     sysfs_path = '/sys/class/block/{}/md/{}'.format(dev_short(mdname),
                                                     attr_name)
     mock_sysblock.side_effect = ['/sys/class/block/md0/md']
     mock_isfile.side_effect = [True]
     mdadm.md_sysfs_attr(mdname, attr_name)
     self.mock_util.load_file.assert_called_with(sysfs_path)
     mock_sysblock.assert_called_with(mdname, 'md')
     mock_isfile.assert_called_with(sysfs_path)
Exemplo n.º 3
0
def md_device_key_dev(devname):
    if not devname:
        raise ValueError('Missing parameter devname')
    return 'MD_DEVICE_' + dev_short(devname) + '_DEV'