示例#1
0
 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()
示例#2
0
    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)
示例#3
0
 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()
示例#4
0
 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()
示例#5
0
 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()
示例#6
0
    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)
示例#7
0
 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()
示例#8
0
 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()
示例#9
0
 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()
示例#10
0
 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()
示例#11
0
 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))
示例#12
0
 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))
示例#13
0
文件: __init__.py 项目: RoUS/juicer
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))
示例#14
0
 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()
示例#15
0
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))
示例#16
0
 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()
示例#17
0
 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)
示例#18
0
 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()
示例#19
0
 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()
示例#20
0
 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()
示例#21
0
    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)
示例#22
0
    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)
示例#23
0
    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)
示例#24
0
 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()
示例#25
0
    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)
示例#26
0
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()
示例#27
0
文件: __init__.py 项目: RoUS/juicer
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()
示例#28
0
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)
示例#29
0
文件: __init__.py 项目: RoUS/juicer
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)
示例#30
0
文件: __init__.py 项目: RoUS/juicer
def setup(args):
    pulp = ja(args)
    pulp.setup()
示例#31
0
文件: __init__.py 项目: RoUS/juicer
def update_user(args):
    pulp = ja(args)
    pulp.update_user(args.login, args.name, args.password, args.envs)
示例#32
0
文件: __init__.py 项目: RoUS/juicer
def list_roles(args):
    pulp = ja(args)
    pulp.list_roles(args.envs)
示例#33
0
文件: __init__.py 项目: RoUS/juicer
def role_add(args):
    pulp = ja(args)
    pulp.role_add(args.role, args.login, args.envs)
示例#34
0
文件: __init__.py 项目: RoUS/juicer
def delete_user(args):
    pulp = ja(args)
    pulp.delete_user(args.login, args.envs)
示例#35
0
 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)
示例#36
0
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)
示例#37
0
 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()
示例#38
0
def list_roles(args):
    pulp = ja(args)
    pulp.list_roles(args.envs)
示例#39
0
 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)
示例#40
0
 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)
示例#41
0
文件: __init__.py 项目: RoUS/juicer
def create_repo(args):
    pulp = ja(args)
    pulp.create_repo(args.name, args.feed, args.envs, args.checksum_type)
示例#42
0
def update_user(args):
    pulp = ja(args)
    pulp.update_user(args.login, args.name, args.password, args.envs)
示例#43
0
文件: __init__.py 项目: RoUS/juicer
def list_users(args):
    pulp = ja(args)
    pulp.list_users(args.envs)
示例#44
0
 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)
示例#45
0
文件: __init__.py 项目: RoUS/juicer
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)
示例#46
0
def list_users(args):
    pulp = ja(args)
    pulp.list_users(args.envs)
示例#47
0
 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))
示例#48
0
def setup(args):
    pulp = ja(args)
    pulp.setup()