コード例 #1
0
    def get_class_by_platform_test(self):
        """Test get_class_by_platform."""
        # Test unknown platform.
        cls = BootLoaderFactory.get_class_by_platform(Mock())
        self.assertEqual(cls, None)

        # Test known platforms.
        boot_loader_by_platform = {
            platform.X86: GRUB2,
            platform.EFI: EFIGRUB,
            platform.MacEFI: MacEFIGRUB,
            platform.PPC: GRUB2,
            platform.IPSeriesPPC: IPSeriesGRUB2,
            platform.PowerNV: PowerNVGRUB2,
            platform.S390: ZIPL,
            platform.Aarch64EFI: Aarch64EFIGRUB,
            platform.ARM: EXTLINUX,
            platform.ArmEFI: ArmEFIGRUB
        }

        for platform_type, boot_loader_class in boot_loader_by_platform.items(
        ):
            # Get the boot loader class.
            cls = BootLoaderFactory.get_class_by_platform(platform_type)
            self.assertEqual(cls, boot_loader_class)

            # Get the boot loader instance.
            obj = cls()
            self.assertIsInstance(obj, BootLoader)
コード例 #2
0
    def test_get_class_by_name(self):
        """Test get_class_by_name."""
        cls = BootLoaderFactory.get_class_by_name("EXTLINUX")
        assert cls == EXTLINUX

        cls = BootLoaderFactory.get_class_by_name("DEFAULT")
        assert cls is None
コード例 #3
0
    def get_class_by_name_test(self):
        """Test get_class_by_name."""
        cls = BootLoaderFactory.get_class_by_name("EXTLINUX")
        self.assertEqual(cls, EXTLINUX)

        cls = BootLoaderFactory.get_class_by_name("DEFAULT")
        self.assertEqual(cls, None)
コード例 #4
0
    def get_default_class_test(self):
        """Test get_default_class."""
        cls = BootLoaderFactory.get_default_class()
        self.assertEqual(cls, None)

        BootLoaderFactory.set_default_class(EXTLINUX)
        cls = BootLoaderFactory.get_default_class()
        self.assertEqual(cls, EXTLINUX)
コード例 #5
0
    def test_get_default_class(self):
        """Test get_default_class."""
        cls = BootLoaderFactory.get_default_class()
        assert cls is None

        BootLoaderFactory.set_default_class(EXTLINUX)
        cls = BootLoaderFactory.get_default_class()
        assert cls == EXTLINUX
コード例 #6
0
    def set_default_type(self, default_type):
        """Set the default type of the boot loader.

        :param default_type: an instance of BootloaderType
        """
        # Set up the bootloader factory.
        cls = BootLoaderFactory.get_class_by_name(default_type.value)
        BootLoaderFactory.set_default_class(cls)

        # Set up the property.
        self._default_type = default_type
        log.debug("The default type is set to '%s'.", default_type)
コード例 #7
0
    def _validate_grub2_configuration(self, data):
        """Validate the GRUB2 configuration.

        :raise: KickstartParseError if not valid
        """
        # Skip other types of the boot loader.
        if not issubclass(BootLoaderFactory.get_class(), GRUB2):
            return

        # Check the location support.
        if self.preferred_location == BOOTLOADER_LOCATION_PARTITION:
            raise KickstartParseError(_("GRUB2 does not support installation to a partition."),
                                      lineno=data.bootloader.lineno)

        # Check the password format.
        if self.password_is_set \
                and self.password_is_encrypted \
                and not self.password.startswith("grub.pbkdf2."):
            raise KickstartParseError(_("GRUB2 encrypted password must be in grub.pbkdf2 format."),
                                      lineno=data.bootloader.lineno)
コード例 #8
0
 def get_generic_class_test(self):
     """Test get_generic_class."""
     cls = BootLoaderFactory.get_generic_class()
     self.assertEqual(cls, BootLoader)
コード例 #9
0
 def create_boot_loader_test(self):
     """Test create_boot_loader."""
     boot_loader = BootLoaderFactory.create_boot_loader()
     self.assertIsNotNone(boot_loader)
     self.assertIsInstance(boot_loader, BootLoader)
コード例 #10
0
 def __exit__(self, *exc):
     from pyanaconda.modules.storage.bootloader import BootLoaderFactory
     BootLoaderFactory.set_default_class(None)
     return False
コード例 #11
0
 def __enter__(self):
     from pyanaconda.modules.storage.bootloader import BootLoaderFactory
     BootLoaderFactory.set_default_class(self._default_type)
     return self
コード例 #12
0
    def bootloader(self):
        if self._bootloader is None:
            self._bootloader = BootLoaderFactory.create_boot_loader()

        return self._bootloader
コード例 #13
0
 def test_get_generic_class(self):
     """Test get_generic_class."""
     cls = BootLoaderFactory.get_generic_class()
     assert cls == BootLoader
コード例 #14
0
 def test_create_boot_loader(self):
     """Test create_boot_loader."""
     boot_loader = BootLoaderFactory.create_boot_loader()
     assert boot_loader is not None
     assert isinstance(boot_loader, BootLoader)