def test_write_partition_image(self, image_mb_mock, work_on_disk_mock, execute_mock, open_mock): image_info = _build_fake_partition_image_info() device = '/dev/sda' root_mb = image_info['root_mb'] swap_mb = image_info['swap_mb'] ephemeral_mb = image_info['ephemeral_mb'] ephemeral_format = image_info['ephemeral_format'] node_uuid = image_info['node_uuid'] pr_ep = image_info['preserve_ephemeral'] configdrive = image_info['configdrive'] boot_mode = image_info['deploy_boot_mode'] boot_option = image_info['boot_option'] disk_label = image_info['disk_label'] image_path = standby._image_location(image_info) uuids = {'root uuid': 'root_uuid'} expected_uuid = {'root uuid': 'root_uuid'} image_mb_mock.return_value = 1 work_on_disk_mock.return_value = uuids standby._write_image(image_info, device) image_mb_mock.assert_called_once_with(image_path) work_on_disk_mock.assert_called_once_with(device, root_mb, swap_mb, ephemeral_mb, ephemeral_format, image_path, node_uuid, configdrive=configdrive, preserve_ephemeral=pr_ep, boot_mode=boot_mode, boot_option=boot_option, disk_label=disk_label) self.assertEqual(expected_uuid, work_on_disk_mock.return_value)
def test_write_partition_image_exception_image_mb(self, work_on_disk_mock, image_mb_mock, execute_mock, open_mock): image_info = _build_fake_partition_image_info() device = '/dev/sda' image_path = standby._image_location(image_info) image_mb_mock.return_value = 20 exc = errors.InvalidCommandParamsError self.assertRaises(exc, standby._write_image, image_info, device) image_mb_mock.assert_called_once_with(image_path) self.assertFalse(work_on_disk_mock.called)
def test_write_image(self, execute_mock, open_mock): image_info = self._build_fake_image_info() device = '/dev/sda' location = standby._image_location(image_info) script = standby._path_to_script('shell/write_image.sh') command = ['/bin/bash', script, location, device] execute_mock.return_value = ('', '') standby._write_image(image_info, device) execute_mock.assert_called_once_with(*command, check_exit_code=[0]) execute_mock.reset_mock() execute_mock.return_value = ('', '') execute_mock.side_effect = processutils.ProcessExecutionError self.assertRaises(errors.ImageWriteError, standby._write_image, image_info, device) execute_mock.assert_called_once_with(*command, check_exit_code=[0])
def test_write_image(self, execute_mock, open_mock): image_info = _build_fake_image_info() device = '/dev/sda' location = standby._image_location(image_info) script = standby._path_to_script('shell/write_image.sh') command = ['/bin/bash', script, location, device] execute_mock.return_value = ('', '') standby._write_image(image_info, device) execute_mock.assert_called_once_with(*command, check_exit_code=[0]) execute_mock.reset_mock() execute_mock.return_value = ('', '') execute_mock.side_effect = processutils.ProcessExecutionError self.assertRaises(errors.ImageWriteError, standby._write_image, image_info, device) execute_mock.assert_called_once_with(*command, check_exit_code=[0])
def test_write_partition_image_exception(self, work_on_disk_mock, image_mb_mock, execute_mock, open_mock, dispatch_mock): image_info = _build_fake_partition_image_info() device = '/dev/sda' root_mb = image_info['root_mb'] swap_mb = image_info['swap_mb'] ephemeral_mb = image_info['ephemeral_mb'] ephemeral_format = image_info['ephemeral_format'] node_uuid = image_info['node_uuid'] pr_ep = image_info['preserve_ephemeral'] configdrive = image_info['configdrive'] boot_mode = image_info['deploy_boot_mode'] boot_option = image_info['boot_option'] disk_label = image_info['disk_label'] cpu_arch = self.fake_cpu.architecture image_path = standby._image_location(image_info) image_mb_mock.return_value = 1 dispatch_mock.return_value = self.fake_cpu exc = errors.ImageWriteError Exception_returned = processutils.ProcessExecutionError work_on_disk_mock.side_effect = Exception_returned self.assertRaises(exc, standby._write_image, image_info, device) image_mb_mock.assert_called_once_with(image_path) work_on_disk_mock.assert_called_once_with(device, root_mb, swap_mb, ephemeral_mb, ephemeral_format, image_path, node_uuid, configdrive=configdrive, preserve_ephemeral=pr_ep, boot_mode=boot_mode, boot_option=boot_option, disk_label=disk_label, cpu_arch=cpu_arch)
def test_write_partition_image_exception(self, work_on_disk_mock, image_mb_mock, execute_mock, open_mock): image_info = _build_fake_partition_image_info() device = '/dev/sda' root_mb = image_info['root_mb'] swap_mb = image_info['swap_mb'] ephemeral_mb = image_info['ephemeral_mb'] ephemeral_format = image_info['ephemeral_format'] node_uuid = image_info['node_uuid'] pr_ep = image_info['preserve_ephemeral'] configdrive = image_info['configdrive'] boot_mode = image_info['deploy_boot_mode'] boot_option = image_info['boot_option'] disk_label = image_info['disk_label'] image_path = standby._image_location(image_info) image_mb_mock.return_value = 1 exc = errors.ImageWriteError Exception_returned = processutils.ProcessExecutionError work_on_disk_mock.side_effect = Exception_returned self.assertRaises(exc, standby._write_image, image_info, device) image_mb_mock.assert_called_once_with(image_path) work_on_disk_mock.assert_called_once_with(device, root_mb, swap_mb, ephemeral_mb, ephemeral_format, image_path, node_uuid, configdrive=configdrive, preserve_ephemeral=pr_ep, boot_mode=boot_mode, boot_option=boot_option, disk_label=disk_label)
def test_image_location(self): image_info = _build_fake_image_info() location = standby._image_location(image_info) self.assertEqual('/tmp/fake_id', location)