def test_generate_treeinfo_repositories_custom(self, mock_conf): """Test the generate_treeinfo_repositories function with custom repos.""" mock_conf.payload.enabled_repositories_from_treeinfo = ["variant"] root_url = self._load_treeinfo(TREE_INFO_CUSTOM) original = RepoConfigurationData() original.name = "anaconda" original.url = root_url generated = generate_treeinfo_repositories(original, self.metadata) optional = RepoConfigurationData() optional.origin = REPO_ORIGIN_TREEINFO optional.name = "MyOptional" optional.enabled = False optional.url = root_url + "/optional" variant = RepoConfigurationData() variant.origin = REPO_ORIGIN_TREEINFO variant.name = "MyVariant" variant.enabled = True variant.url = root_url + "/variant" # Anaconda ignores addons and child variants. self._assert_repo_list_equal(generated, [optional, variant])
def test_generate_treeinfo_repositories_fedora(self): """Test the generate_treeinfo_repositories function with Fedora repos.""" root_url = self._load_treeinfo(TREE_INFO_FEDORA) original = RepoConfigurationData() original.name = "anaconda" original.url = root_url original.proxy = "http://proxy" original.cost = 50 original.excluded_packages = ["p1", "p2"] original.included_packages = ["p2", "p3"] original.ssl_verification_enabled = False original.ssl_configuration.ca_cert_path = "file.cert" original.ssl_configuration.client_key_path = "client.key" original.ssl_configuration.client_cert_path = "client.cert" original.installation_enabled = True generated = generate_treeinfo_repositories(original, self.metadata) everything = RepoConfigurationData() everything.origin = REPO_ORIGIN_TREEINFO everything.name = "Everything" everything.enabled = True everything.url = root_url everything.proxy = "http://proxy" everything.cost = 50 everything.excluded_packages = ["p1", "p2"] everything.included_packages = ["p2", "p3"] everything.ssl_verification_enabled = False everything.ssl_configuration.ca_cert_path = "file.cert" everything.ssl_configuration.client_key_path = "client.key" everything.ssl_configuration.client_cert_path = "client.cert" everything.installation_enabled = False self._assert_repo_list_equal(generated, [everything])
def convert_ks_repo_to_repo_data(ks_data): """Convert the kickstart command into a repo configuration. :param RepoData ks_data: a kickstart data :return RepoConfigurationData: a repo configuration """ if not isinstance(ks_data, RepoData): raise ValueError("Unexpected kickstart data: {}".format(type(ks_data))) repo_data = RepoConfigurationData() repo_data.name = ks_data.name repo_data.enabled = ks_data.enabled if ks_data.baseurl: repo_data.url = ks_data.baseurl repo_data.type = URL_TYPE_BASEURL elif ks_data.mirrorlist: repo_data.url = ks_data.mirrorlist repo_data.type = URL_TYPE_MIRRORLIST elif ks_data.metalink: repo_data.url = ks_data.metalink repo_data.type = URL_TYPE_METALINK else: # Handle the `repo --name=updates` use case. repo_data.url = "" repo_data.type = "NONE" if ks_data.treeinfo_origin: repo_data.origin = REPO_ORIGIN_TREEINFO elif not repo_data.url: repo_data.origin = REPO_ORIGIN_SYSTEM else: repo_data.origin = REPO_ORIGIN_USER repo_data.proxy = ks_data.proxy or "" repo_data.cost = ks_data.cost or DNF_DEFAULT_REPO_COST repo_data.included_packages = ks_data.includepkgs repo_data.excluded_packages = ks_data.excludepkgs repo_data.installation_enabled = ks_data.install repo_data.ssl_verification_enabled = not ks_data.noverifyssl repo_data.ssl_configuration.ca_cert_path = ks_data.sslcacert or "" repo_data.ssl_configuration.client_cert_path = ks_data.sslclientcert or "" repo_data.ssl_configuration.client_key_path = ks_data.sslclientkey or "" return repo_data
def test_generate_treeinfo_repositories_rhel(self): """Test the generate_treeinfo_repositories function with RHEL repos.""" root_url = self._load_treeinfo(TREE_INFO_RHEL) original = RepoConfigurationData() original.name = "anaconda" original.url = root_url generated = generate_treeinfo_repositories(original, self.metadata) appstream = RepoConfigurationData() appstream.origin = REPO_ORIGIN_TREEINFO appstream.name = "AppStream" appstream.enabled = True appstream.url = "file:///tmp/appstream" baseos = RepoConfigurationData() baseos.origin = REPO_ORIGIN_TREEINFO baseos.name = "BaseOS" baseos.enabled = True baseos.url = "file:///tmp/baseos" self._assert_repo_list_equal(generated, [appstream, baseos])