def test_get_repos(self): self._stub_content() repo_action_invoker = RepoActionInvoker() repos = repo_action_invoker.get_repos() if len(repos) == 0: self.fail( "get_repos() should have a set of Repo's, but the set is empty." )
def test_get_repos(self): self._stub_content(include_content_access=True) repo_action_invoker = RepoActionInvoker() repos = repo_action_invoker.get_repos() self.assertEqual(2, len(repos), 'Should produce two repos') matching_repos = [repo for repo in repos if repo.id == 'a_test_repo'] self.assertEqual(1, len(matching_repos), 'Should only produce one repo for "a_test_repo"') repo = matching_repos[0] certpath = repo.get('sslclientcert') self.assertNotEqual(certpath, self.stub_content_access_cert.path)
def _set_enable_for_yum_repositories(setting, *repo_ids): invoker = RepoActionInvoker() repos = invoker.get_repos() repos_to_change = [] for r in repo_ids: matches = set([repo for repo in repos if fnmatch.fnmatch(repo.id, r)]) repos_to_change.extend(matches) if len(repos_to_change) == 0: return 0 # The cache should be primed at this point by the invoker.get_repos() cache = inj.require(inj.OVERRIDE_STATUS_CACHE) identity = inj.require(inj.IDENTITY) cp_provider = inj.require(inj.CP_PROVIDER) if identity.is_valid() and cp_provider.get_consumer_auth_cp( ).supports_resource('content_overrides'): overrides = [{ 'contentLabel': repo.id, 'name': 'enabled', 'value': setting } for repo in repos_to_change] cp = cp_provider.get_consumer_auth_cp() results = cp.setContentOverrides(identity.uuid, overrides) cache = inj.require(inj.OVERRIDE_STATUS_CACHE) # Update the cache with the returned JSON cache.server_status = results cache.write_cache() invoker.update() else: for repo in repos_to_change: repo['enabled'] = setting repo_file = RepoFile() repo_file.read() for repo in repos_to_change: repo_file.update(repo) repo_file.write() return len(repos_to_change)
def _set_enable_for_yum_repositories(setting, *repo_ids): invoker = RepoActionInvoker() repos = invoker.get_repos() repos_to_change = [] for r in repo_ids: matches = set([repo for repo in repos if fnmatch.fnmatch(repo.id, r)]) repos_to_change.extend(matches) if len(repos_to_change) == 0: return 0 # The cache should be primed at this point by the invoker.get_repos() cache = inj.require(inj.OVERRIDE_STATUS_CACHE) identity = inj.require(inj.IDENTITY) cp_provider = inj.require(inj.CP_PROVIDER) if identity.is_valid() and cp_provider.get_consumer_auth_cp().supports_resource('content_overrides'): overrides = [{'contentLabel': repo.id, 'name': 'enabled', 'value': setting} for repo in repos_to_change] cp = cp_provider.get_consumer_auth_cp() results = cp.setContentOverrides(identity.uuid, overrides) cache = inj.require(inj.OVERRIDE_STATUS_CACHE) # Update the cache with the returned JSON cache.server_status = results cache.write_cache() invoker.update() else: for repo in repos_to_change: repo['enabled'] = setting repo_file = YumRepoFile() repo_file.read() for repo in repos_to_change: repo_file.update(repo) repo_file.write() return len(repos_to_change)
def test_get_repos_empty_dirs(self): repo_action_invoker = RepoActionInvoker() repos = repo_action_invoker.get_repos() if repos: self.fail("get_repos() should have returned an empty set but did not.")
def test_get_repos(self): self._stub_content() repo_action_invoker = RepoActionInvoker() repos = repo_action_invoker.get_repos() if len(repos) == 0: self.fail("get_repos() should have a set of Repo's, but the set is empty.")
def _do_command(self): self._reconcile_list_options() rc = 0 if not manage_repos_enabled(): print(_("Repositories disabled by configuration.")) return rc # Pull down any new entitlements and refresh the entitlements directory if self.identity.is_valid(): cert_action_client = ActionClient(skips=[PackageProfileActionInvoker]) cert_action_client.update() self._request_validity_check() if self.is_registered(): supported_resources = get_supported_resources() self.use_overrides = "content_overrides" in supported_resources else: self.use_overrides = False # specifically, yum repos, for now. rl = RepoActionInvoker() repos = rl.get_repos() if self.options.repo_actions is not None: rc = self._set_repo_status(repos, rl, self.options.repo_actions) if self.identity.is_valid(): profile_action_client = ProfileActionClient() profile_action_client.update() if self.list: if len(repos): # TODO: Perhaps this should be abstracted out as well...? def filter_repos(repo): disabled_values = ["false", "0"] repo_enabled = repo["enabled"].lower() show_enabled = self.list_enabled and repo_enabled not in disabled_values show_disabled = self.list_disabled and repo_enabled in disabled_values return show_enabled or show_disabled repos = list(filter(filter_repos, repos)) if len(repos): print("+----------------------------------------------------------+") print(_(" Available Repositories in {file}").format(file=rl.get_repo_file())) print("+----------------------------------------------------------+") for repo in repos: print( columnize( REPOS_LIST, echo_columnize_callback, repo.id, repo["name"], repo["baseurl"], repo["enabled"], ) + "\n" ) else: print(_("There were no available repositories matching the specified criteria.")) else: print(_("This system has no repositories available through subscriptions.")) return rc