Пример #1
0
    def test_repo_convert_invalid(self):
        """Test the conversion functions with an invalid input."""
        with pytest.raises(ValueError):
            convert_ks_repo_to_repo_data(None)

        with pytest.raises(ValueError):
            convert_repo_data_to_ks_repo(None)
Пример #2
0
    def test_convert_repo_origin(self):
        """Test the conversion of the repo origin."""
        ks_repo = RepoData()
        ks_repo.name = "repo-name"

        # Test the system origin.
        repo_data = convert_ks_repo_to_repo_data(ks_repo)
        assert repo_data.origin == REPO_ORIGIN_SYSTEM

        ks_repo = convert_repo_data_to_ks_repo(repo_data)
        assert ks_repo.treeinfo_origin is False

        # Test the user origin.
        ks_repo.baseurl = "http://url"

        repo_data = convert_ks_repo_to_repo_data(ks_repo)
        assert repo_data.origin == REPO_ORIGIN_USER

        ks_repo = convert_repo_data_to_ks_repo(repo_data)
        assert ks_repo.treeinfo_origin is False

        # Test the treeinfo origin.
        ks_repo.treeinfo_origin = True

        repo_data = convert_ks_repo_to_repo_data(ks_repo)
        assert repo_data.origin == REPO_ORIGIN_TREEINFO

        ks_repo = convert_repo_data_to_ks_repo(repo_data)
        assert ks_repo.treeinfo_origin is True
Пример #3
0
    def test_convert_repo_enabled(self):
        """Test the conversion of the enabled attribute."""
        ks_repo = RepoData()
        repo_data = convert_ks_repo_to_repo_data(ks_repo)
        assert repo_data.enabled is True

        ks_repo = convert_repo_data_to_ks_repo(repo_data)
        assert ks_repo.enabled is True

        ks_repo.enabled = False
        repo_data = convert_ks_repo_to_repo_data(ks_repo)
        assert repo_data.enabled is False

        ks_repo = convert_repo_data_to_ks_repo(repo_data)
        assert ks_repo.enabled is False
Пример #4
0
    def _add_repo_to_dnf(self, ksrepo):
        """Add a repo to the dnf repo object.

        :param ksrepo: Kickstart Repository to add
        :type ksrepo: Kickstart RepoData object.
        :returns: None
        """
        data = convert_ks_repo_to_repo_data(ksrepo)
        enabled = ksrepo.enabled

        # An existing repository can be only enabled or disabled.
        if self._is_existing_repo_configuration(data):
            self._dnf_manager.set_repository_enabled(data.name, enabled)
            return

        # Set up the NFS source with a substituted URL.
        if data.url.startswith("nfs://"):
            url = self._dnf_manager.substitute(data.url)
            (server, path) = url[6:].split(":", 1)
            mountpoint = "%s/%s.nfs" % (constants.MOUNT_DIR, data.name)
            self._setup_NFS(mountpoint, server, path, None)
            data.url = "file://" + mountpoint

        # Add a new repository.
        self._dnf_manager.add_repository(data)
Пример #5
0
    def _include_additional_repositories(self):
        """Add additional repositories to DNF."""
        for ks_repo in self.data.repo.dataList():
            # Convert the repository.
            data = convert_ks_repo_to_repo_data(ks_repo)
            log.debug("Add the '%s' repository (%s).", data.name, data)

            # A system repository can be only enabled or disabled.
            if data.origin == REPO_ORIGIN_SYSTEM:
                self._handle_system_repository(data)
                return

            # Set up additional sources.
            self._set_up_additional_repository(data)

            # Add a new repository.
            self._dnf_manager.add_repository(data)

            # Load an enabled repository to check its validity.
            self._dnf_manager.load_repository(data.name)