def _process_kickstart(self, ks_in): """Process the kickstart.""" storage_module = StorageService() handler = storage_module.get_kickstart_handler() parser = storage_module.get_kickstart_parser(handler) parser.readKickstartFromString(ks_in) self.module.process_kickstart(handler)
def unsupported_partitioning_test(self): """Test the UnsupportedPartitioningError.""" # Forget imported modules from pyanaconda and blivetgui. for name in list(sys.modules): if name.startswith('pyanaconda') or name.startswith('blivetgui'): sys.modules.pop(name) # Disable the blivetgui package. sys.modules['blivetgui'] = None # Import the StorageModule again. from pyanaconda.modules.storage.storage import StorageService # We should be able to create the Storage module storage_module = StorageService() self.assertIsNotNone(storage_module.storage) # We should be able to create the Blivet module. from pyanaconda.modules.storage.partitioning.constants import PartitioningMethod blivet_module = storage_module.create_partitioning(PartitioningMethod.BLIVET) self.assertIsNotNone(blivet_module.storage) # Import the exception again. from pyanaconda.modules.common.errors.storage import UnsupportedPartitioningError # Handle the missing support. with self.assertRaises(UnsupportedPartitioningError): self.assertFalse(blivet_module.storage_handler) with self.assertRaises(UnsupportedPartitioningError): self.assertFalse(blivet_module.request_handler) with self.assertRaises(UnsupportedPartitioningError): request = pickle.dumps(("call", "get_disks", [])) blivet_module.send_request(request)
def _setup_kickstart(self): """Set up the kickstart.""" storage_module = StorageService() handler = storage_module.get_kickstart_handler() self.module.setup_kickstart(handler) return handler
def setUp(self): self.maxDiff = None self.storage_module = StorageService() self.nvdimm_module = self.storage_module._nvdimm_module self.nvdimm_interface = NVDIMMInterface(self.nvdimm_module)
class NVDIMMKickstartTestCase(unittest.TestCase): """Test updating of nvdimm command from UI. The update is done: - always by disk selection in UI. - optionally by reconfiguring NVDIMM in UI. """ def setUp(self): self.maxDiff = None self.storage_module = StorageService() self.nvdimm_module = self.storage_module._nvdimm_module self.nvdimm_interface = NVDIMMInterface(self.nvdimm_module) def _read(self, input_ks): """Read the kickstart string.""" with patch("pyanaconda.modules.storage.kickstart.nvdimm") as nvdimm: # Fake the existence of the namespaces. nvdimm.namespaces = ["namespace0.0", "namespace1.0"] # Parse the kickstart now. self.storage_module.read_kickstart(input_ks) def _use(self, namespaces): """Represents update for NVDIMM disks selected in UI.""" storage = create_storage() self.storage_module._set_storage(storage) for number, namespace in enumerate(namespaces): device = NVDIMMNamespaceDevice("dev{}".format(number), fmt=get_format("disklabel"), size=Size("10 GiB"), mode="sector", devname=namespace, sector_size=512, id_path="pci-0000:00:00.0-bla-1", exists=True) storage.devicetree._add_device(device) def _reconfigure(self, namespace, sector_size): """Represents update for NVDIMM disk reconfigured in UI.""" self.nvdimm_module.update_action(namespace=namespace, mode=NVDIMM_MODE_SECTOR, sector_size=sector_size) def _check(self, expected_ks): """Check the generated kickstart.""" assert clear_version_from_kickstart_string(self.storage_module.generate_kickstart()).strip() == \ dedent(expected_ks).strip() def _check_ignored(self, expected_devices): """Check the ignored devices.""" with patch( "pyanaconda.modules.storage.nvdimm.nvdimm.nvdimm") as nvdimm: nvdimm.namespaces = { "namespace0.0": Mock(blockdev="pmem0", mode=blockdev.NVDIMMNamespaceMode.SECTOR), "namespace1.0": Mock(blockdev="pmem1", mode=blockdev.NVDIMMNamespaceMode.SECTOR), "namespace2.0": Mock(blockdev="pmem2", mode=blockdev.NVDIMMNamespaceMode.MEMORY), "namespace3.0": Mock(blockdev=None, mode=blockdev.NVDIMMNamespaceMode.DEVDAX), } ignored_devices = self.nvdimm_module.get_devices_to_ignore() assert sorted(ignored_devices) == expected_devices # Test setting use from UI def test_ksuse_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksuse_use2(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def test_ksuse_use_none(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use([]) self._check(expected_ks) def test_ksnone_use2(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def test_ksnone_repeated_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0"]) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksnone_use_none(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use([]) self._check(expected_ks) def test_ksnone_repeated_use_2(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0"]) # Next use should override the previous self._use(["namespace1.0"]) self._check(expected_ks) def test_ksuse_another_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksuse_none(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace1.0 """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem0", "pmem2"]) self._use([]) self._check(expected_ks) def test_ksreconfigure_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksreconfigure_use_none(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) # Even when not used, the reconfiguration should go to generated kicksart self._use([]) self._check(expected_ks) def test_ksreconfigure_another_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace1.0"]) self._check(expected_ks) def test_ksreconfigure_ksuse_another_use(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksreconfigure_2_use_1(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) # Test reconfigure and use in UI # (if _reconfigure is done in UI, _use is always done as well) def test_ksnone_reconfigure_use(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksnone_repeated_reconfigure_use(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=4096 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._reconfigure("namespace0.0", 4096) self._use(["namespace0.0"]) self._check(expected_ks) def test_ksnone_repeated_reconfigure_repeated_use(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._use(["namespace0.0"]) self._reconfigure("namespace1.0", 512) # Even when not used, reconfiguration goes to generated ks self._use(["namespace1.0"]) self._check(expected_ks) def test_ksuse_reconfigure_other_use_other(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._reconfigure("namespace1.0", 512) self._use(["namespace1.0"]) self._check(expected_ks) def test_ksuse_2_reconfigure_1_use_2(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._reconfigure("namespace1.0", 512) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def test_ksuse_reconfigure_other_use_none(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._reconfigure("namespace1.0", 512) # Even when not used, the reconfiguration should go to generated kickstart. self._use([]) self._check(expected_ks) @patch("pyanaconda.modules.storage.kickstart.device_matches") def test_ksuse_blockdevs(self, device_matches): """Test using blockdevs.""" input_ks = """ nvdimm use --blockdev=pmem0,pmem2 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ device_matches.return_value = ["pmem0", "pmem2"] self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks)
from pyanaconda.modules.common import init init("/tmp/storage.log") from pyanaconda.modules.storage.storage import StorageService service = StorageService() service.run()
class NVDIMMKickstartTestCase(unittest.TestCase): """Test updating of nvdimm command from UI. The update is done: - always by disk selection in UI. - optionally by reconfiguring NVDIMM in UI. """ def setUp(self): self.storage_module = StorageService() self.nvdimm_module = self.storage_module._nvdimm_module self.nvdimm_interface = NVDIMMInterface(self.nvdimm_module) def _read(self, input_ks): """Read the kickstart string.""" with patch("pyanaconda.modules.storage.kickstart.nvdimm") as nvdimm: # Fake the existence of the namespaces. nvdimm.namespaces = ["namespace0.0", "namespace1.0"] # Parse the kickstart now. self.storage_module.read_kickstart(input_ks) def _use(self, namespaces): """Represents update for NVDIMM disks selected in UI.""" self.nvdimm_module.set_namespaces_to_use(namespaces=namespaces) def _reconfigure(self, namespace, sector_size): """Represents update for NVDIMM disk reconfigured in UI.""" self.nvdimm_module.update_action(namespace=namespace, mode=NVDIMM_MODE_SECTOR, sector_size=sector_size) def _check(self, expected_ks): """Check the generated kickstart.""" self.assertEqual( clear_version_from_kickstart_string( self.storage_module.generate_kickstart()).strip(), dedent(expected_ks).strip()) def _check_ignored(self, expected_devices): """Check the ignored devices.""" with patch( "pyanaconda.modules.storage.nvdimm.nvdimm.nvdimm") as nvdimm: nvdimm.namespaces = { "namespace0.0": Mock(blockdev="pmem0", mode=blockdev.NVDIMMNamespaceMode.SECTOR), "namespace1.0": Mock(blockdev="pmem1", mode=blockdev.NVDIMMNamespaceMode.SECTOR), "namespace2.0": Mock(blockdev="pmem2", mode=blockdev.NVDIMMNamespaceMode.MEMORY), } ignored_devices = self.nvdimm_module.get_devices_to_ignore() self.assertEqual(sorted(ignored_devices), expected_devices) # Test setting use from UI def ksuse_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def ksuse_use2_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def ksuse_use_none_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use([]) self._check(expected_ks) def ksnone_use2_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def ksnone_repeated_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0"]) self._use(["namespace0.0"]) self._check(expected_ks) def ksnone_use_none_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use([]) self._check(expected_ks) def ksnone_repeated_use_2_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._use(["namespace0.0"]) # Next use should override the previous self._use(["namespace1.0"]) self._check(expected_ks) def ksuse_another_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def ksuse_none_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm use --namespace=namespace1.0 """ expected_ks = """ """ self._read(input_ks) self._check_ignored(["pmem0", "pmem2"]) self._use([]) self._check(expected_ks) def ksreconfigure_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def ksreconfigure_use_none_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) # Even when not used, the reconfiguration should go to generated kicksart self._use([]) self._check(expected_ks) def ksreconfigure_another_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace1.0 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace1.0"]) self._check(expected_ks) def ksreconfigure_ksuse_another_use_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) def ksreconfigure_2_use_1_test(self): """Test updating of nvdimm commands based on device selection in UI.""" input_ks = """ nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks) # Test reconfigure and use in UI # (if _reconfigure is done in UI, _use is always done as well) def ksnone_reconfigure_use_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._use(["namespace0.0"]) self._check(expected_ks) def ksnone_repeated_reconfigure_use_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=4096 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._reconfigure("namespace0.0", 4096) self._use(["namespace0.0"]) self._check(expected_ks) def ksnone_repeated_reconfigure_repeated_use_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace0.0 --mode=sector --sectorsize=512 nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem0", "pmem1", "pmem2"]) self._reconfigure("namespace0.0", 512) self._use(["namespace0.0"]) self._reconfigure("namespace1.0", 512) # Even when not used, reconfiguration goes to generated ks self._use(["namespace1.0"]) self._check(expected_ks) def ksuse_reconfigure_other_use_other_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._reconfigure("namespace1.0", 512) self._use(["namespace1.0"]) self._check(expected_ks) def ksuse_2_reconfigure_1_use_2_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 nvdimm use --namespace=namespace1.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 nvdimm use --namespace=namespace0.0 """ self._read(input_ks) self._check_ignored(["pmem2"]) self._reconfigure("namespace1.0", 512) self._use(["namespace0.0", "namespace1.0"]) self._check(expected_ks) def ksuse_reconfigure_other_use_none_test(self): """Test updating of nvdimm commands based on device reconfiguration in UI.""" input_ks = """ nvdimm use --namespace=namespace0.0 """ expected_ks = """ # NVDIMM devices setup nvdimm reconfigure --namespace=namespace1.0 --mode=sector --sectorsize=512 """ self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._reconfigure("namespace1.0", 512) # Even when not used, the reconfiguration should go to generated kickstart. self._use([]) self._check(expected_ks) @patch("pyanaconda.modules.storage.kickstart.device_matches") def ksuse_blockdevs_test(self, device_matches): """Test using blockdevs.""" input_ks = """ nvdimm use --blockdev=pmem0,pmem2 """ expected_ks = """ # NVDIMM devices setup nvdimm use --namespace=namespace0.0 """ device_matches.return_value = ["pmem0", "pmem2"] self._read(input_ks) self._check_ignored(["pmem1", "pmem2"]) self._use(["namespace0.0"]) self._check(expected_ks)