Example #1
0
 def test__lvm_report_returns_empty_list_on_invalid_json(self, m_run):
     cmd_out = "This is not json"
     cp = subprocess.CompletedProcess(args=[random_string()],
                                      returncode=0,
                                      stdout=cmd_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     self.assertEqual([], lvm._lvm_report(random_string(), random_string()))
Example #2
0
 def test_get_dasd_info_returns_none_if_bad_blocksize(
         self, m_dview, m_block):
     devname = random_string()
     id_path = random_string()
     device = {'DEVNAME': devname, 'ID_PATH': 'ccw-' + id_path}
     m_dview.return_value = self._load_test_data('dasdd.view')
     m_block.return_value = None
     self.assertIsNone(dasd.get_dasd_info(device))
Example #3
0
 def test_get_dasd_info(self, m_dview):
     devname = random_string()
     id_path = random_string()
     device = {'DEVNAME': devname, 'ID_PATH': 'ccw-' + id_path}
     m_dview.return_value = self._load_test_data('dasdd.view')
     self.assertEqual(
         update_probe_data(expected_probe_data['/dev/dasdd'],
                           name=devname,
                           device_id=id_path), dasd.get_dasd_info(device))
Example #4
0
 def test_multipath_probe_collects_maps_and_paths(self, m_maps, m_paths):
     path_string = MP_SEP.join([random_string() for x in range(0, 8)])
     paths = multipath.MPath(*path_string.split(MP_SEP))._asdict()
     maps_string = MP_SEP.join([random_string() for x in range(0, 3)])
     maps = multipath.MMap(*maps_string.split(MP_SEP))._asdict()
     m_maps.return_value = [maps]
     m_paths.return_value = [paths]
     result = multipath.probe()
     self.assertDictEqual({'maps': [maps], 'paths': [paths]}, result)
Example #5
0
 def test_get_dasd_info(self, m_dview):
     devname = random_string()
     id_path = random_string()
     device = {'DEVNAME': devname, 'ID_PATH': 'ccw-' + id_path}
     m_dview.return_value = self._load_test_data('dasdd.view')
     self.assertEqual(
         {
             'name': devname,
             'device_id': id_path,
             'disk_layout': 'cdl',
             'blocksize': 4096
         }, dasd.get_dasd_info(device))
Example #6
0
 def test__lvm_report_returns_found_reports(self, m_run):
     report_key = random_string()
     report_data = [{random_string(): random_string()}]
     cmd_out = json.dumps({"report": [{report_key: report_data}]})
     cp = subprocess.CompletedProcess(args=[random_string()],
                                      returncode=0,
                                      stdout=cmd_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     expected_result = report_data
     result = lvm._lvm_report(random_string(), report_key)
     self.assertEqual(expected_result, result)
Example #7
0
 def test_dasdview_returns_stdout(self, m_run, m_exists):
     devname = random_string()
     dasdview_out = random_string()
     cp = subprocess.CompletedProcess(args=['foo'],
                                      returncode=0,
                                      stdout=dasdview_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     m_exists.return_value = True
     result = dasd.dasdview(devname)
     self.assertEqual(dasdview_out, result)
     m_run.assert_called_with(['dasdview', '--extended', devname],
                              stdout=subprocess.PIPE,
                              stderr=subprocess.DEVNULL)
Example #8
0
 def test_multipath_show_maps_skips_unparsable_output(self, m_run):
     lines = [
         MP_SEP.join([random_string() for x in range(0, 3)]),
         "",
         MP_SEP.join([random_string() for x in range(0, 3)]),
     ]
     mp_out = "\n".join(lines)
     cp = subprocess.CompletedProcess(args=['foo'], returncode=0,
                                      stdout=mp_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     expected_result = [multipath.MMap(*lines[0].split(MP_SEP))._asdict(),
                        multipath.MMap(*lines[2].split(MP_SEP))._asdict()]
     result = multipath.multipath_show_maps()
     self.assertEqual(expected_result, result)
Example #9
0
 def test_lvmetad_running_env_get(self, m_path, m_env, m_run):
     pidfile = random_string()
     m_env.return_value = pidfile
     m_path.return_value = True
     self.assertTrue(lvm.lvmetad_running())
     m_env.assert_called_with('LVM_LVMETAD_PIDFILE', '/run/lvmetad.pid')
     m_path.assert_called_with(pidfile)
Example #10
0
 def test_multipath_show_maps(self, m_run):
     mp_out = MP_SEP.join([random_string() for x in range(0, 3)])
     cp = subprocess.CompletedProcess(args=['foo'], returncode=0,
                                      stdout=mp_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     expected_result = [multipath.MMap(*mp_out.split(MP_SEP))._asdict()]
     result = multipath.multipath_show_maps()
     self.assertEqual(expected_result, result)
Example #11
0
 def test_utils_read_sys_block_size_bytes_strips_value(self):
     devname = random_string()
     expected_fname = '/sys/class/block/%s/size' % devname
     expected_bytes = 10737418240
     content = ' 20971520 \n '
     with simple_mocked_open(content=content) as m_open:
         result = utils.read_sys_block_size_bytes(devname)
         self.assertEqual(expected_bytes, result)
         self.assertEqual([call(expected_fname)], m_open.call_args_list)
Example #12
0
 def test_multipath_show_paths_serial_with_spaces(self, m_run):
     mp_out = MP_SEP.join(['sda', 'IPR-0 1234567890'] +
                          [random_string() for x in range(0, 6)])
     cp = subprocess.CompletedProcess(args=['foo'], returncode=0,
                                      stdout=mp_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     expected_result = [multipath.MPath(*mp_out.split(MP_SEP))._asdict()]
     result = multipath.multipath_show_paths()
     self.assertEqual(expected_result, result)
Example #13
0
    def test_dasd_probe_virtio_non_dasd(self, m_machine, m_open, m_run):
        m_machine.return_value = 's390x'

        virtio_major = random_string()
        devname = random_string()

        m_open.return_value = ['{} virtblk\n'.format(virtio_major)]
        m_run.return_value.returncode = 1

        context = mock.MagicMock()
        context.list_devices.side_effect = iter([
            [{
                "MAJOR": virtio_major,
                "DEVNAME": devname
            }],
        ])
        self.assertEqual({}, dasd.probe(context=context))
        m_run.assert_called_once_with(['fdasd', '-i', devname],
                                      stdout=subprocess.DEVNULL,
                                      stderr=subprocess.DEVNULL)
Example #14
0
 def test__lvm_report_returns_specific_reports(self, m_run):
     report_key = 'report-1'
     report_data = [{random_string(): random_string()}]
     extra_data1 = [list(range(0, 10))]
     extra_data2 = ""
     cmd_out = json.dumps({
         "report": [
             {
                 report_key: report_data
             },
             {
                 random_string(): extra_data1
             },
             {
                 random_string(): extra_data2
             },
         ]
     })
     cp = subprocess.CompletedProcess(args=[random_string()],
                                      returncode=0,
                                      stdout=cmd_out.encode('utf-8'),
                                      stderr="")
     m_run.return_value = cp
     expected_result = report_data
     result = lvm._lvm_report(random_string(), report_key)
     self.assertEqual(expected_result, result)
Example #15
0
 def test_dasdview_returns_none_on_subprocess_error(self, m_run, m_exists):
     devname = random_string()
     m_exists.return_value = True
     m_run.side_effect = subprocess.CalledProcessError(
         cmd=[random_string()], returncode=1)
     self.assertEqual(None, dasd.dasdview(devname))
Example #16
0
 def test__lvm_report_returns_empty_list_on_err(self, m_run):
     m_run.side_effect = subprocess.CalledProcessError(
         cmd=[random_string()], returncode=1)
     result = lvm._lvm_report(random_string(), random_string())
     self.assertEqual([], result)
Example #17
0
 def test_dasd_blocksize_returns_none_on_invalid_output(self):
     self.assertIsNone(dasd.find_val_int(dasd.DASD_BLKSIZE,
                                         random_string()))
Example #18
0
 def test_dasd_probe_returns_empty_dict_non_s390x_arch(self, m_machine):
     machine = random_string()
     self.assertNotEqual("s390x", machine)
     m_machine.return_value = machine
     self.assertEqual({}, dasd.probe())
Example #19
0
 def test_get_dasd_info_returns_none_if_not_all(self, m_dview):
     devname = random_string()
     id_path = random_string()
     device = {'DEVNAME': devname, 'ID_PATH': 'ccw-' + id_path}
     m_dview.return_value = random_string()
     self.assertIsNone(dasd.get_dasd_info(device))
Example #20
0
 def test_dasdview_raises_valueerror(self, m_run, m_exists):
     devname = random_string()
     m_exists.return_value = False
     self.assertRaises(ValueError, dasd.dasdview, devname)
     self.assertEqual(0, m_run.call_count)
Example #21
0
 def test_dasd_disk_format_returns_none_on_invalid_output(self):
     self.assertIsNone(dasd.disk_format(random_string()))
Example #22
0
 def test_dasd_blocksize_returns_none_on_invalid_output(self):
     self.assertIsNone(dasd.blocksize(random_string()))