def test_create_user(self): args = self.parser.parser.parse_args('create-user cjesop --password cjesop --name "ColonelJesop"'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.create_user)(login=args.login, user_name=args.name, \ password=args.password, envs=args.envs) self.assertTrue(any('created' in k for k in output)) self.delete_test_user()
def tearDown(self): # aparser = pamoney() setup_args = self.aparser.parser.parse_args( ('repo delete %s --in re qa' % self.rname).split()) pulp_admin = ja(setup_args) mute()(pulp_admin.delete_repo)(repo_name=setup_args.name, envs=setup_args.envs)
def test_list_repos(self): self.create_test_repo() args = self.parser.parser.parse_args(("repo list --in %s" % self._defaults['start_in']).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.list_repos)(envs=args.envs) self.assertTrue('test-repo-456' in output) self.delete_test_repo()
def test_create_user(self): args = self.parser.parser.parse_args(("user create cjesop --password cjesop --name 'ColonelJesop' --in %s" % self._defaults['start_in']).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.create_user)(login=args.login, user_name=args.name, \ password=args.password, envs=args.envs) self.assertTrue(any((('created' in k) or ('shares' in k)) for k in output)) self.delete_test_user()
def test_list_repos(self): self.create_test_repo() args = self.parser.parser.parse_args('list-repos'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.list_repos)(envs=args.envs) self.assertTrue('test-repo-456' in output) self.delete_test_repo()
def test_show_user(self): self.create_test_user() args = self.parser.parser.parse_args('show-user cjesop'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.show_user)(login=args.login, envs=args.envs) self.assertTrue(any('cjesop' in k for k in output)) self.delete_test_user()
def test_show_repo(self): self.create_test_repo() args = self.parser.parser.parse_args('show-repo test-repo-456'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.show_repo)(repo_name=args.name, envs=args.envs) self.assertTrue(any('test-repo-456' in k for k in output)) self.delete_test_repo()
def test_show_user(self): self.create_test_user() args = self.parser.parser.parse_args(("user show cjesop --in %s" % self._defaults['start_in']).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.show_user)(login=args.login, envs=args.envs) self.assertTrue(any('cjesop' in k for k in output)) self.delete_test_user()
def test_show_repo(self): self.create_test_repo() args = self.parser.parser.parse_args(("repo show test-repo-456 --in %s" % self._defaults['start_in']).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.show_repo)(repo_name=args.name, envs=args.envs) self.assertTrue(any('test-repo-456' in k for k in output)) self.delete_test_repo()
def _test_delete_user(self): self.create_test_user() args = self.parser.parser.parse_args(("user delete %s --in %s" % (self.testuser, self._defaults['start_in'])).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.delete_user)(login=args.login, envs=args.envs) self.assertTrue(any('deleted' in k for k in output))
def _test_delete_repo(self): self.create_test_repo() args = self.parser.parser.parse_args(("repo delete %s --in %s" % (self.testrepo, self._defaults['start_in'])).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.delete_repo)(repo_name=args.name, envs=args.envs) self.assertTrue(any('deleted' in k for k in output))
def list_repos(args): pulp = ja(args) repo_lists = pulp.list_repos(args.envs) if args.json: print juicer.utils.create_json_str(repo_lists, indent=4) else: for env, repos in repo_lists.iteritems(): print "%s(%d): %s" % (env, len(repos), " ".join(repos))
def test_role_add(self): self.create_test_user() args = self.parser.parser.parse_args('role-add --login cjesop \ --role super-users'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.role_add)(role=args.role, login=args.login, envs=args.envs) self.assertTrue(any('added' in k for k in output)) self.delete_test_user()
def list_repos(args): pulp = ja(args) repo_lists = pulp.list_repos(args.envs) if args.json: print juicer.utils.create_json_str(repo_lists, indent=4) else: for env, repos in repo_lists.iteritems(): print "%s(%d): %s" % (env, len(repos), ' '.join(repos))
def _test_role_add(self): self.create_test_user() args = self.parser.parser.parse_args(("role add --login %s --role super-users --in %s" % (self.testuser, self._defaults['start_in'])).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.role_add)(role=args.role, login=args.login, envs=args.envs) self.assertTrue(any('added' in k for k in output)) self.delete_test_user()
def create_test_user(self): args = self.parser.parser.parse_args(("user create %s --password %s --name '%s' --in %s" % (self.testuser, self.testuser, self.testuser, self._defaults['start_in'])).split()) pulp = ja(args) mute()(pulp.create_user)(login=args.login, user_name=args.name, password=args.password, \ envs=args.envs)
def _test_create_repo(self): args = self.parser.parser.parse_args(("repo create %s --in %s" % (self.testrepo, self._defaults['start_in'])).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.create_repo)(repo_name=args.name, envs=args.envs) self.assertTrue(any('created' in k for k in output), msg="'created' not in output: %s" % juicer.utils.create_json_str(output, indent=4, cls=juicer.common.Repo.RepoEncoder)) self.delete_test_repo()
def _test_create_user(self): args = self.parser.parser.parse_args(("user create %s --password %s --name '%s' --in %s" % (self.testuser, self.testuser, self.testuser, self._defaults['start_in'])).split()) pulp = ja(args) output = mute(returns_output=True)(pulp.create_user)(login=args.login, user_name=args.name, \ password=args.password, envs=args.envs) self.assertTrue(any((('created' in k) or ('shares' in k)) for k in output)) self.delete_test_user()
def _test_list_repos(self): self.create_test_repo() env = self._defaults['start_in'] args = self.parser.parser.parse_args(("repo list --in %s" % env).split()) pulp = ja(args) output = mute()(pulp.list_repos)(envs=args.envs) env_output = output[env] self.assertTrue(self.testrepo in env_output, msg="Expected to find %s in output: %s" % (self.testrepo, juicer.utils.create_json_str(output, indent=4, cls=juicer.common.Repo.RepoEncoder))) self.delete_test_repo()
def setUp(self): self.parser = pmoney() self.aparser = pamoney() self.cname = 'CHG0DAY' self.cpath = os.path.expanduser('~/.juicer-carts/%s.json' % self.cname) self.rname = 'hats' setup_args = self.aparser.parser.parse_args(\ ('create-repo %s --in re qa' % self.rname).split()) pulp_admin = ja(setup_args) mute()(pulp_admin.create_repo)(arch=setup_args.arch,\ repo_name=setup_args.name, envs=setup_args.envs)
def setUp(self): self.parser = pmoney() self.aparser = pamoney() self.cname = TESTCART self.cpath = os.path.expanduser('%s/%s.json' % (Constants.CART_LOCATION, self.cname)) self.rname = TESTREPO (self.connectors, self._defaults) = get_login_info() setup_args = self.aparser.parser.parse_args( ('repo create %s --in re qa' % self.rname).split()) pulp_admin = ja(setup_args) mute()(pulp_admin.create_repo)( repo_name=setup_args.name, envs=setup_args.envs)
def _test_show_repo(self): self.create_test_repo() env = self._defaults['start_in'] args = self.parser.parser.parse_args(("repo show %s --in %s" % (self.testrepo, env)).split()) pulp = ja(args) output = mute()(pulp.show_repo)(repo_names=args.name, envs=args.envs) env_output = output[env][0] self.assertEqual(self.testrepo, env_output['name'], msg="Expected to see %s in %s" % (self.testrepo, juicer.utils.create_json_str(env_output, indent=4, cls=juicer.common.Repo.RepoEncoder))) self.delete_test_repo()
def export_repo(args): pulp = ja(args) export_list = pulp.export_repos(args.envs) fmt_args = {} fmt_args['cls'] = juicer.common.Repo.RepoEncoder if args.pretty: fmt_args['indent'] = 4 if args.out == '-': writer = sys.stdout else: writer = open(args.out, 'w') export_str = juicer.utils.create_json_str(export_list, **fmt_args) writer.write(export_str) writer.flush()
def export_repo(args): pulp = ja(args) export_list = pulp.export_repos(args.envs) fmt_args = {} fmt_args["cls"] = juicer.common.Repo.RepoEncoder if args.pretty: fmt_args["indent"] = 4 if args.out == "-": writer = sys.stdout else: writer = open(args.out, "w") export_str = juicer.utils.create_json_str(export_list, **fmt_args) writer.write(export_str) writer.flush()
def show_repo(args): pulp = ja(args) repo_objects = pulp.show_repo(args.name, args.envs) if args.json: # JSON output requested print juicer.utils.create_json_str(repo_objects, indent=4, cls=juicer.common.Repo.RepoEncoder) else: found_repos = 0 for env, repos in repo_objects.iteritems(): found_repos += len(repos) if found_repos == 0: print "Could not locate repo(s) in any environment" return False # Human readable table-style output by default rows = [['Repo', 'Env', 'RPMs', 'SRPMs', 'Checksum', 'Feed']] # If feeds are set, things can get messy. Lets make this wider # if anybody has a feed found_feed = False for env, repos in repo_objects.iteritems(): # 'repos' contains a list of hashes for repo in repos: # each hash represents a repo repo_name = repo['name'] repo_rpm_count = repo['rpm_count'] repo_srpm_count = repo['srpm_count'] repo_checksum = repo['checksum_type'] repo_feed = repo['feed'] rows.append([ repo_name, env, repo_rpm_count, repo_srpm_count, repo_checksum, str(repo_feed) ]) if not repo_feed is None: juicer.utils.Log.log_debug( "Found a repo feed. Making the table wider.") found_feed = True if found_feed: print juicer.utils.table(rows, columns=0) else: print juicer.utils.table(rows)
def show_repo(args): pulp = ja(args) repo_objects = pulp.show_repo(args.name, args.envs) if args.json: # JSON output requested print juicer.utils.create_json_str(repo_objects, indent=4, cls=juicer.common.Repo.RepoEncoder) else: found_repos = 0 for env, repos in repo_objects.iteritems(): found_repos += len(repos) if found_repos == 0: print "Could not locate repo(s) in any environment" return False # Human readable table-style output by default rows = [["Repo", "Env", "RPMs", "SRPMs", "Checksum", "Feed"]] # If feeds are set, things can get messy. Lets make this wider # if anybody has a feed found_feed = False for env, repos in repo_objects.iteritems(): # 'repos' contains a list of hashes for repo in repos: # each hash represents a repo repo_name = repo["name"] repo_rpm_count = repo["rpm_count"] repo_srpm_count = repo["srpm_count"] repo_checksum = repo["checksum_type"] repo_feed = repo["feed"] rows.append([repo_name, env, repo_rpm_count, repo_srpm_count, repo_checksum, str(repo_feed)]) if not repo_feed is None: juicer.utils.Log.log_debug("Found a repo feed. Making the table wider.") found_feed = True if found_feed: print juicer.utils.table(rows, columns=0) else: print juicer.utils.table(rows)
def setup(args): pulp = ja(args) pulp.setup()
def update_user(args): pulp = ja(args) pulp.update_user(args.login, args.name, args.password, args.envs)
def list_roles(args): pulp = ja(args) pulp.list_roles(args.envs)
def role_add(args): pulp = ja(args) pulp.role_add(args.role, args.login, args.envs)
def delete_user(args): pulp = ja(args) pulp.delete_user(args.login, args.envs)
def delete_test_user(self): args = self.parser.parser.parse_args('delete-user cjesop'.split()) pulp = ja(args) mute()(pulp.delete_user)(login=args.login, envs=args.envs)
def import_repo(args): pulp = ja(args) # Get our TODO specs from juicer-admin (to_create, to_update) = pulp.import_repo(args.from_file, args.noop) if args.noop: num_to_create = 0 num_to_update = 0 if to_create: juicer.utils.Log.log_info( "NOOP: Would have created repos with definitions:") juicer.utils.Log.log_info( "%s", juicer.utils.create_json_str( to_create, indent=4, cls=juicer.common.Repo.RepoEncoder)) for repo in to_create: num_to_create += len(repo['missing_in_env']) for env, repos in to_update.iteritems(): for repo in repos: noop_msg = None debug_msg = False repo_diff_specs = repo['reality_check_in_env'] for diff_spec in repo_diff_specs: # [0] = env, [1] = RepoDiff, [2] = PulpRepo if diff_spec[0] == env: this_env_diff_spec = diff_spec # "{'distributor': {'distributor_config': {}}, 'importer': {'importer_config': {}}}" repo_diff = diff_spec[1] # Does the diff contain anything? whole_diff = {} rdist = repo_diff.diff( )['distributor']['distributor_config'] rimp = repo_diff.diff()['importer']['importer_config'] if not rdist == {}: whole_diff['distributor'] = rdist debug_msg = True if not rimp == {}: whole_diff['importer'] = rimp debug_msg = True if debug_msg: noop_msg = " %s" % juicer.utils.create_json_str( whole_diff, indent=4, cls=juicer.common.Repo.RepoEncoder) if debug_msg: juicer.utils.Log.log_info( "NOOP: Would have updated %s-%s with:", repo['name'], env) juicer.utils.Log.log_info(noop_msg) num_to_update += 1 juicer.utils.exit_with_code(num_to_create + num_to_update) else: for repo in to_create: pulp.create_repo(repo_name=repo['name'], feed=repo['feed'], envs=repo['missing_in_env'], checksum_type=repo['checksum_type']) for env, repos in to_update.iteritems(): for repo in repos: repo_diff_specs = repo['reality_check_in_env'] for diff_spec in repo_diff_specs: if diff_spec[0] == env: repo_diff = diff_spec[1] if repo_diff.diff()['distributor'][ 'distributor_config'] or repo_diff.diff( )['importer']['importer_config']: try: # TODO: This could benefit from some concurrency, like how export_repo goes... pulp._update_repo(repo, diff_spec[2], env, diff_spec[1]) except Exception: juicer.utils.Log.log_error( "Unable to update %s-%s", repo['name'], env) else: juicer.utils.Log.log_info( "Updated %s-%s with:", repo['name'], env) debug_msg = " %s\n" % juicer.utils.create_json_str( repo_diff.diff(), indent=4, cls=juicer.common.Repo.RepoEncoder) juicer.utils.Log.log_info(debug_msg)
def test_create_repo(self): args = self.parser.parser.parse_args('create-repo test-repo-456'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.create_repo)(arch=args.arch, repo_name=args.name, envs=args.envs) self.assertTrue(any('created' in k for k in output)) self.delete_test_repo()
def delete_test_repo(self): args = self.parser.parser.parse_args('delete-repo test-repo-456'.split()) pulp = ja(args) mute()(pulp.delete_repo)(repo_name=args.name, envs=args.envs)
def create_test_repo(self): args = self.parser.parser.parse_args('create-repo test-repo-456'.split()) pulp = ja(args) mute()(pulp.create_repo)(arch=args.arch, repo_name=args.name, envs=args.envs)
def create_repo(args): pulp = ja(args) pulp.create_repo(args.name, args.feed, args.envs, args.checksum_type)
def list_users(args): pulp = ja(args) pulp.list_users(args.envs)
def create_test_user(self): args = self.parser.parser.parse_args('create-user cjesop --password cjesop --name "ColonelJesop"'.split()) pulp = ja(args) mute()(pulp.create_user)(login=args.login, user_name=args.name, password=args.password, \ envs=args.envs)
def import_repo(args): pulp = ja(args) # Get our TODO specs from juicer-admin (to_create, to_update) = pulp.import_repo(args.from_file, args.noop) if args.noop: num_to_create = 0 num_to_update = 0 if to_create: juicer.utils.Log.log_info("NOOP: Would have created repos with definitions:") juicer.utils.Log.log_info( "%s", juicer.utils.create_json_str(to_create, indent=4, cls=juicer.common.Repo.RepoEncoder) ) for repo in to_create: num_to_create += len(repo["missing_in_env"]) for env, repos in to_update.iteritems(): for repo in repos: noop_msg = None debug_msg = False repo_diff_specs = repo["reality_check_in_env"] for diff_spec in repo_diff_specs: # [0] = env, [1] = RepoDiff, [2] = PulpRepo if diff_spec[0] == env: this_env_diff_spec = diff_spec # "{'distributor': {'distributor_config': {}}, 'importer': {'importer_config': {}}}" repo_diff = diff_spec[1] # Does the diff contain anything? whole_diff = {} rdist = repo_diff.diff()["distributor"]["distributor_config"] rimp = repo_diff.diff()["importer"]["importer_config"] if not rdist == {}: whole_diff["distributor"] = rdist debug_msg = True if not rimp == {}: whole_diff["importer"] = rimp debug_msg = True if debug_msg: noop_msg = " %s" % juicer.utils.create_json_str( whole_diff, indent=4, cls=juicer.common.Repo.RepoEncoder ) if debug_msg: juicer.utils.Log.log_info("NOOP: Would have updated %s-%s with:", repo["name"], env) juicer.utils.Log.log_info(noop_msg) num_to_update += 1 juicer.utils.exit_with_code(num_to_create + num_to_update) else: for repo in to_create: pulp.create_repo( repo_name=repo["name"], feed=repo["feed"], envs=repo["missing_in_env"], checksum_type=repo["checksum_type"], ) for env, repos in to_update.iteritems(): for repo in repos: repo_diff_specs = repo["reality_check_in_env"] for diff_spec in repo_diff_specs: if diff_spec[0] == env: repo_diff = diff_spec[1] if ( repo_diff.diff()["distributor"]["distributor_config"] or repo_diff.diff()["importer"]["importer_config"] ): try: # TODO: This could benefit from some concurrency, like how export_repo goes... pulp._update_repo(repo, diff_spec[2], env, diff_spec[1]) except Exception: juicer.utils.Log.log_error("Unable to update %s-%s", repo["name"], env) else: juicer.utils.Log.log_info("Updated %s-%s with:", repo["name"], env) debug_msg = " %s\n" % juicer.utils.create_json_str( repo_diff.diff(), indent=4, cls=juicer.common.Repo.RepoEncoder ) juicer.utils.Log.log_info(debug_msg)
def test_list_roles(self): args = self.parser.parser.parse_args('list-roles'.split()) pulp = ja(args) output = mute(returns_output=True)(pulp.list_roles)(envs=args.envs) self.assertTrue(any('super-users' in k for k in output))