Beispiel #1
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'user', 'user lifecycle (list, create, update, etc.) commands')

        self.context = context
        self.prompt = context.prompt # for easier access

        # Common Options
        login_option = PulpCliOption('--login', 'uniquely identifies the user; only alphanumeric, -, and _ allowed', required=True)
        name_option = PulpCliOption('--name', 'user-readable full name of the user', required=False)

        # Create command
        create_command = PulpCliCommand('create', 'creates a user', self.create)
        create_command.add_option(login_option)
        create_command.add_option(PulpCliOption('--password', 'password for the new user, if you do not want to be prompted for one', required=False))
        create_command.add_option(name_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand('update', 'changes metadata of an existing user', self.update)
        update_command.add_option(PulpCliOption('--login', 'identifies the user to be updated', required=True))
        update_command.add_option(name_option)
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', 'deletes a user', self.delete)
        delete_command.add_option(PulpCliOption('--login', 'identifies the user to be deleted', required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', 'lists summary of users registered to the Pulp server', self.list)
        list_command.add_option(PulpCliFlag('--details', 'if specified, all the user information is displayed'))
        list_command.add_option(PulpCliOption('--fields', 'comma-separated list of user fields; if specified, only the given fields will displayed', required=False))
        self.add_command(list_command)
Beispiel #2
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'server', _('display info about the server'))
        self.context = context

        self.add_command(PulpCliCommand('types', 'lists content types installed on the server', self.types))
        self.add_command(PulpCliCommand('importers', 'lists importers installed on the server', self.importers))
        self.add_command(PulpCliCommand('distributors', 'lists distributors installed on the server', self.distributors))
Beispiel #3
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'permission', 'permission lifecycle (list, grant, revoke, etc.) commands')

        self.context = context
        self.prompt = context.prompt # for easier access

        # List Command
        list_command = PulpCliCommand('list', 'lists permissions for a particular resource', self.list)
        list_command.add_option(PulpCliOption('--resource', 'uniquely identifies a resource', required=True))
        self.add_command(list_command)
        
        # Grant Command
        grant_command = PulpCliCommand('grant', 'grants resource permissions to given user or given role', self.grant)
        grant_command.add_option(PulpCliOption('--resource', 'resource REST API path whose permissions are being manipulated', required=True))
        grant_command.add_option(PulpCliOption('--login', 'login of the user to which access to given resource is being granted', required=False))
        grant_command.add_option(PulpCliOption('--role-id', 'id of the role to which access to given resource is being granted', required=False))
        grant_command.add_option(PulpCliOption('-o', 'type of permissions being granted, valid permissions: create, read, update, delete, execute', required=True, allow_multiple=True))
        self.add_command(grant_command)
        
        # Revoke Command
        revoke_command = PulpCliCommand('revoke', 'revokes resource permissions from given user or given role', self.revoke)
        revoke_command.add_option(PulpCliOption('--resource', 'resource REST API path whose permissions are being manipulated', required=True))
        revoke_command.add_option(PulpCliOption('--login', 'login of the user from which access to given resource is being revoked', required=False))
        revoke_command.add_option(PulpCliOption('--role-id', 'id of the role from which access to given resource is being revoked', required=False))
        revoke_command.add_option(PulpCliOption('-o', 'type of permissions being revoked, valid permissions: create, read, update, delete, execute', required=True, allow_multiple=True))
        self.add_command(revoke_command)
Beispiel #4
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'role', 'manage user roles')

        self.context = context
        self.prompt = context.prompt # for easier access

        # Common Options
        id_option = PulpCliOption('--role-id', 'uniquely identifies the role; only alphanumeric, -, and _ allowed', required=True, validate_func=validators.id_validator)

        # Create command
        create_command = PulpCliCommand('create', 'creates a role', self.create)
        create_command.add_option(id_option)
        create_command.add_option(PulpCliOption('--display-name', 'user-friendly name for the role', required=False))
        create_command.add_option(PulpCliOption('--description', 'user-friendly text describing the role', required=False))
        self.add_command(create_command)

        # Update command
        update_command = PulpCliCommand('update', 'updates a role', self.update)
        update_command.add_option(PulpCliOption('--role-id', 'identifies the role to be updated', required=True))
        update_command.add_option(PulpCliOption('--display-name', 'user-friendly name for the role', required=False))
        update_command.add_option(PulpCliOption('--description', 'user-friendly text describing the role', required=False))
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', 'deletes a role', self.delete)
        delete_command.add_option(PulpCliOption('--role-id', 'identifies the role to be deleted', required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', 'lists summary of roles on the Pulp server', self.list)
        list_command.add_option(PulpCliFlag('--details', 'if specified, all the role information is displayed'))
        list_command.add_option(PulpCliOption('--fields', 'comma-separated list of role fields; if specified, only the given fields will displayed', required=False))
        self.add_command(list_command)
Beispiel #5
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'permission', 'manage granting, revoking and listing permissions for resources')

        self.context = context
        self.prompt = context.prompt # for easier access

        # List Command
        list_command = PulpCliCommand('list', 'lists permissions for a particular resource', self.list)
        list_command.add_option(PulpCliOption('--resource', 'uniquely identifies a resource', required=True))
        self.add_command(list_command)

        # Grant Command
        usage_description = 'you can specify either login or role-id in this command; both cannot be specified at the same time'
        grant_command = PulpCliCommand('grant', 'grants resource permissions to given user or given role', self.grant, usage_description=usage_description)
        grant_command.add_option(PulpCliOption('--resource', 'resource REST API path whose permissions are being manipulated', required=True))
        grant_command.add_option(PulpCliOption('--login', 'login of the user to which access to given resource is being granted', required=False))
        grant_command.add_option(PulpCliOption('--role-id', 'id of the role to which access to given resource is being granted', required=False))
        grant_command.add_option(PulpCliOption('-o', 'type of permissions being granted, valid permissions: create, read, update, delete, execute', required=True, allow_multiple=True))
        self.add_command(grant_command)

        # Revoke Command
        revoke_command = PulpCliCommand('revoke', 'revokes resource permissions from given user or given role', self.revoke, usage_description=usage_description)
        revoke_command.add_option(PulpCliOption('--resource', 'resource REST API path whose permissions are being manipulated', required=True))
        revoke_command.add_option(PulpCliOption('--login', 'login of the user from which access to given resource is being revoked', required=False))
        revoke_command.add_option(PulpCliOption('--role-id', 'id of the role from which access to given resource is being revoked', required=False))
        revoke_command.add_option(PulpCliOption('-o', 'type of permissions being revoked, valid permissions: create, read, update, delete, execute', required=True, allow_multiple=True))
        self.add_command(revoke_command)
Beispiel #6
0
    def __init__(self, context, name, description):
        PulpCliSection.__init__(self, name, description)

        strategy = RepoSyncSchedulingStrategy(context)

        repo_id_option = PulpCliOption('--%s' % REPO_ID_ARG, _('identifies the repository'), required=True)

        list_command = ListScheduleCommand(context, strategy, 'list', _('list scheduled sync operations'))
        list_command.add_option(repo_id_option)

        create_command = CreateScheduleCommand(context, strategy, 'create', _('adds a new scheduled sync operation'))
        create_command.add_option(repo_id_option)

        delete_command = DeleteScheduleCommand(context, strategy, 'delete', _('delete a sync schedule'))
        delete_command.add_option(repo_id_option)

        update_command = UpdateScheduleCommand(context, strategy, 'update', _('updates an existing schedule'))
        update_command.add_option(repo_id_option)

        next_run_command = NextRunCommand(context, strategy, 'next', _('displays the next scheduled sync run for a repository'))
        next_run_command.add_option(repo_id_option)

        self.add_command(list_command)
        self.add_command(create_command)
        self.add_command(delete_command)
        self.add_command(update_command)
        self.add_command(next_run_command)
Beispiel #7
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'group', _('consumer group commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_subsection(ConsumerGroupMemberSection(context))

        # Common Options
        id_option = PulpCliOption('--consumer-group-id', _('uniquely identifies the consumer group; only alphanumeric, -, and _ allowed'),
                                  required=True, validate_func=validators.id_validator)
        name_option = PulpCliOption('--display-name', _('user-readable display name for the consumer group'), required=False)
        description_option = PulpCliOption('--description', _('user-readable description for the consumer group'), required=False)

        note_desc =  'adds/updates/deletes notes to programmatically identify the resource; '
        note_desc += 'key-value pairs must be separated by an equal sign (e.g. key=value); multiple notes can '
        note_desc += 'be changed by specifying this option multiple times; notes are deleted by '
        note_desc += 'specifying "" as the value'
        note_option = PulpCliOption('--note', _(note_desc), required=False, allow_multiple=True)

        # Create Command
        create_command = PulpCliCommand('create', _('creates a new consumer group'), self.create)
        create_command.add_option(id_option)
        create_command.add_option(name_option)
        create_command.add_option(description_option)
        create_command.add_option(note_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand('update', _('changes metadata on an existing consumer group'), self.update)
        update_command.add_option(id_option)
        update_command.add_option(name_option)
        update_command.add_option(description_option)
        update_command.add_option(note_option)
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', _('deletes a consumer group'), self.delete)
        delete_command.add_option(id_option)
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', _('lists summary of consumer groups registered to the Pulp server'), self.list)
        list_command.add_option(PulpCliFlag('--details', _('if specified, all the consumer group information is displayed')))
        list_command.add_option(PulpCliOption('--fields', _('comma-separated list of consumer group fields; if specified, only the given fields will displayed'), required=False))
        self.add_command(list_command)

        # Search Command
        self.add_command(CriteriaCommand(self.search, include_search=True))

        # Bind Command
        bind_command = PulpCliCommand('bind',
            _('binds each consumer in a consumer group to a repository '
              'distributor for consuming published content'),
            self.bind)
        bind_command.add_option(id_option)
        bind_command.add_option(PulpCliOption('--repo-id', 'repository id', required=True))
        bind_command.add_option(PulpCliOption('--distributor-id', 'distributor id', required=True))
        self.add_command(bind_command)
Beispiel #8
0
    def __init__(self, context):
        PulpCliSection.__init__(self, "user", "user lifecycle (list, create, update, etc.) commands")

        self.context = context
        self.prompt = context.prompt  # for easier access

        # Common Options
        login_option = PulpCliOption(
            "--login", "uniquely identifies the user; only alphanumeric, -, and _ allowed", required=True
        )
        name_option = PulpCliOption("--name", "user-readable full name of the user", required=False)

        # Create command
        create_command = PulpCliCommand("create", "creates a user", self.create)
        create_command.add_option(login_option)
        create_command.add_option(
            PulpCliOption(
                "--password", "password for the new user, if you do not want to be prompted for one", required=False
            )
        )
        create_command.add_option(name_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand("update", "changes metadata of an existing user", self.update)
        update_command.add_option(PulpCliOption("--login", "identifies the user to be updated", required=True))
        update_command.add_option(name_option)
        update_command.add_option(
            PulpCliOption(
                "--password",
                "new password for the user, use -p if you want to be prompted for the password",
                required=False,
            )
        )
        update_command.add_option(
            PulpCliFlag("-p", "if specified, you will be prompted to enter new password for the user")
        )
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand("delete", "deletes a user", self.delete)
        delete_command.add_option(PulpCliOption("--login", "identifies the user to be deleted", required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand("list", "lists summary of users registered to the Pulp server", self.list)
        list_command.add_option(PulpCliFlag("--details", "if specified, all the user information is displayed"))
        list_command.add_option(
            PulpCliOption(
                "--fields",
                "comma-separated list of user fields; if specified, only the given fields will displayed",
                required=False,
            )
        )
        self.add_command(list_command)

        # Search Command
        self.add_command(CriteriaCommand(self.search, include_search=True))
Beispiel #9
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'sync', _('run, schedule, or view the status of sync operations'))
        self.context = context
        self.prompt = context.prompt

        # Run an Immediate Sync
        run_command = PulpCliCommand('run', _('triggers an immediate sync of a specific repository'), self.run)
        run_command.add_option(PulpCliOption('--id', _('identifies the repository to sync'), required=True))
        self.add_command(run_command)
Beispiel #10
0
 def __init__(self, context):
     """
     :type  context: pulp.client.extensions.core.ClientContext
     """
     PulpCliSection.__init__(self, 'bindings', _('search consumer bindings'))
     self.context = context
     # search
     self.add_command(Search(context))
     # unconfirmed actions
     self.add_command(SearchUnconfirmed(context))
Beispiel #11
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'user', 'manage users')

        self.context = context
        self.prompt = context.prompt  # for easier access

        # Common Options
        login_option = PulpCliOption('--login', 'uniquely identifies the user; '
                                                'only alphanumeric, -, ., and _ allowed',
                                     required=True,
                                     validate_func=validators.id_validator_allow_dots)
        name_option = PulpCliOption('--name', 'user-readable full name of the user',
                                    required=False)

        # Create command
        create_command = PulpCliCommand('create', 'creates a user', self.create)
        create_command.add_option(login_option)
        create_command.add_option(PulpCliOption('--password', 'password for the new user, '
                                                'if you do not want to be prompted for one',
                                                required=False))
        create_command.add_option(name_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand('update', 'changes metadata of an existing user',
                                        self.update)
        update_command.add_option(PulpCliOption('--login', 'identifies the user to be updated',
                                                required=True))
        update_command.add_option(name_option)
        update_command.add_option(PulpCliOption('--password', 'new password for the user, use -p '
                                                'if you want to be prompted for the password',
                                                required=False))
        update_command.add_option(PulpCliFlag('-p', 'if specified, you will be prompted to enter '
                                              'new password for the user'))
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', 'deletes a user', self.delete)
        delete_command.add_option(PulpCliOption('--login', 'identifies the user to be deleted',
                                                required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', 'lists summary of users registered to the Pulp '
                                      'server', self.list)
        list_command.add_option(PulpCliFlag('--details', 'if specified, all the user information '
                                            'is displayed'))
        list_command.add_option(PulpCliOption('--fields', 'comma-separated list of user fields; '
                                                          'Example: "login,name". If specified, '
                                                          'only the given fields will be '
                                                          'displayed.', required=False))
        self.add_command(list_command)

        # Search Command
        self.add_command(CriteriaCommand(self.search, include_search=True))
Beispiel #12
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'importer', _('manage importers for existing repositories'))
        self.context = context
        self.prompt = context.prompt

        # Add Importer Command
        required_options = [
            ('--id', _('identifies the repository')),
            ('--type_id', _('identifies the type of importer being added')),
        ]
        add_parser = UnknownArgsParser(self.prompt, 'repo add', required_options)
        self.add_command(PulpCliCommand('add', _('adds an importer to a repository'), self.add_importer, parser=add_parser))
Beispiel #13
0
    def __init__(self, context):
        """
        @param context:
        @type  context: pulp.client.extensions.core.ClientContext
        """
        PulpCliSection.__init__(self, 'repo', _('repository lifecycle (create, delete, configure, etc.) commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        # Common Options
        id_option = PulpCliOption('--repo-id', _('uniquely identifies the repository; only alphanumeric, -, and _ allowed'), required=True)
        name_option = PulpCliOption('--display-name', _('user-readable display name for the repository'), required=False)
        description_option = PulpCliOption('--description', _('user-readable description for the repository'), required=False)

        # Create Command
        create_command = PulpCliCommand('create', _('creates a new repository'), self.create)
        create_command.add_option(id_option)
        create_command.add_option(name_option)
        create_command.add_option(description_option)
        create_command.add_option(note_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand('update', _('changes metadata on an existing repository'), self.update)
        update_command.add_option(id_option)
        update_command.add_option(name_option)
        update_command.add_option(description_option)
        update_command.add_option(note_option)
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', _('deletes a repository'), self.delete)
        delete_command.add_option(id_option)
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', _('lists repositories on the Pulp server'), self.list)
        list_command.add_option(PulpCliFlag('--summary', _('if specified, only a minimal amount of repository information is displayed')))
        list_command.add_option(PulpCliOption('--fields', _('comma-separated list of repository fields; if specified, only the given fields will displayed'), required=False))
        list_command.add_option(PulpCliFlag('--importers', _('if specified, importer configuration is displayed')))
        list_command.add_option(PulpCliFlag('--distributors', _('if specified, the list of distributors and their configuration is displayed')))
        self.add_command(list_command)

        # Search Command
        self.add_command(SearchCommand(self.search))

        # Subsections
        self.add_subsection(ImporterSection(context))
        self.add_subsection(SyncSection(context))
        self.add_subsection(RepoGroupSection(context))
        self.create_subsection('units', _('list/search for RPM-related content in a repository'))
Beispiel #14
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'group', _('repository group commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_subsection(RepoGroupMemberSection(context))

        self.add_command(group_commands.CreateRepositoryGroupCommand(context))
        self.add_command(group_commands.UpdateRepositoryGroupCommand(context))
        self.add_command(group_commands.DeleteRepositoryGroupCommand(context))
        self.add_command(group_commands.ListRepositoryGroupsCommand(context))
        self.add_command(group_commands.SearchRepositoryGroupsCommand(context))
Beispiel #15
0
    def __init__(self, context):
        """
        @param context:
        @type  context: pulp.client.extensions.core.ClientContext
        """
        PulpCliSection.__init__(self, 'repo', _('list repositories and manage repo groups'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_command(repo_commands.ListRepositoriesCommand(context, include_all_flag=False))

        # Subsections
        self.add_subsection(RepoGroupSection(context))
Beispiel #16
0
    def __init__(self, context):
        """
        @param context:
        @type  context: pulp.client.extensions.core.ClientContext
        """
        PulpCliSection.__init__(self, 'repo', _('general repository commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_command(repo_commands.ListRepositoriesCommand(context))

        # Subsections
        self.add_subsection(RepoGroupSection(context))
Beispiel #17
0
    def __init__(self, context, name, description):
        PulpCliSection.__init__(self, name, description)
        self.context = context

        # Store the command instances as instance variables so the subclasses
        # can manipulate them if necessary

        self.list_command = self.create_command('list', _('lists tasks queued or running in the server'), self.list)

        self.cancel_command = self.create_command('cancel', _('cancel one or more tasks'), self.cancel)
        self.cancel_command.create_option('--task-id', _('identifies the task to cancel'), required=True)

        self.details_command = self.create_command('details', _('displays more detailed information about a specific task'), self.details)
        self.details_command.create_option('--task-id', _('identifies the task'), required=True)
Beispiel #18
0
    def __init__(self, context):
        """
        @param context: pre-populated context that is given to the extensions by loader
        @type  context: pulp.client.extensions.core.ClientContext
        """
        PulpCliSection.__init__(self, 'auth', _('manage users, roles and permissions'))

        self.context = context
        self.prompt = context.prompt # for easier access

        # Subsections
        self.add_subsection(UserSection(context))
        role_section = RoleSection(context)
        role_section.add_subsection(RoleUserSection(context))
        self.add_subsection(role_section)
        self.add_subsection(PermissionSection(context))
Beispiel #19
0
    def __init__(self, context, name, description):
        PulpCliSection.__init__(self, name, description)
        self.context = context

        # Store the command instances as instance variables so the subclasses
        # can manipulate them if necessary

        self.list_command = self.create_command(
            "list", _("lists tasks queued (waiting) or running on the server"), self.list
        )

        self.cancel_command = self.create_command("cancel", _("cancel one or more tasks"), self.cancel)
        self.cancel_command.create_option("--task-id", _("identifies the task to cancel"), required=True)

        self.details_command = self.create_command(
            "details", _("displays more detailed information about a specific task"), self.details
        )
        self.details_command.create_option("--task-id", _("identifies the task"), required=True)
Beispiel #20
0
 def __init__(self, context):
     PulpCliSection.__init__(
         self,
         'package',
         _('package installation management'))
     for Command in (Install, Update, Uninstall):
         command = Command(context)
         command.create_option(
             '--consumer-id',
             _('identifies the consumer'),
             required=True)
         command.create_flag(
             '--no-commit',
             _('transaction not committed'))
         command.create_flag(
             '--reboot',
             _('reboot after successful transaction'))
         self.add_command(command)
Beispiel #21
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'group', _('repository group commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_subsection(RepoGroupMemberSection(context))

        # Common Options
        id_option = PulpCliOption('--group-id', _('uniquely identifies the repo group; only alphanumeric, -, and _ allowed'), required=True)
        name_option = PulpCliOption('--display-name', _('user-readable display name for the repo group'), required=False)
        description_option = PulpCliOption('--description', _('user-readable description for the repo group'), required=False)

        # Create Command
        create_command = PulpCliCommand('create', _('creates a new repository group'), self.create)
        create_command.add_option(id_option)
        create_command.add_option(name_option)
        create_command.add_option(description_option)
        create_command.add_option(note_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand('update', _('changes metadata on an existing repo group'), self.update)
        update_command.add_option(id_option)
        update_command.add_option(name_option)
        update_command.add_option(description_option)
        update_command.add_option(note_option)
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', _('deletes a repository group'), self.delete)
        delete_command.add_option(id_option)
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand('list', _('lists summary of repo groups registered to the Pulp server'), self.list)
        list_command.add_option(PulpCliFlag('--details', _('if specified, all the repo group information is displayed')))
        list_command.add_option(PulpCliOption('--fields', _('comma-separated list of repo group fields; if specified, only the given fields will displayed'), required=False))
        self.add_command(list_command)

        # Search Command
        self.add_command(SearchCommand(self.search))
Beispiel #22
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'user', _('add/remove user from the role'))

        self.context = context
        self.prompt = context.prompt # for easier access

        # Common Options
        id_option = PulpCliOption('--role-id', 'identifies the role', required=True)
        login_option = PulpCliOption('--login', 'identifies the user', required=True)

        # AddUser command
        add_user_command = PulpCliCommand('add', 'adds user to a role', self.add_user)
        add_user_command.add_option(id_option)
        add_user_command.add_option(login_option)
        self.add_command(add_user_command)

        # RemoveUser command
        remove_user_command = PulpCliCommand('remove', 'removes user from a role', self.remove_user)
        remove_user_command.add_option(id_option)
        remove_user_command.add_option(login_option)
        self.add_command(remove_user_command)
Beispiel #23
0
 def __init__(self, context):
     PulpCliSection.__init__(self, 'content', _('content unit installation management'))
     for Command in (InstallContent, UpdateContent, UninstallContent):
         command = Command(context)
         command.create_option(
             '--consumer-id',
             _('identifies the consumer'),
             required=True)
         command.create_option(
             '--type',
             _('content unit type ID'),
             required=True)
         command.create_option(
             '--name',
             _('content unit key (name)'),
             required=True,
             allow_multiple=True,
             aliases=['-n'])
         command.create_flag(
             '--no-commit',
             _('transaction not committed'))
         self.add_command(command)
Beispiel #24
0
    def __init__(self, context):
        """
        @param context:
        @type  context: pulp.client.extensions.core.ClientContext
        """
        PulpCliSection.__init__(self, 'repo', _('repository lifecycle (create, delete, configure, etc.) commands'))

        self.context = context
        self.prompt = context.prompt # for easier access

        self.add_command(repo_commands.CreateRepositoryCommand(context))
        self.add_command(repo_commands.DeleteRepositoryCommand(context))
        self.add_command(repo_commands.UpdateRepositoryCommand(context))
        self.add_command(repo_commands.ListRepositoriesCommand(context))

        # Search Command
        self.add_command(CriteriaCommand(self.search, include_search=True))

        # Subsections
        self.add_subsection(ImporterSection(context))
        self.add_subsection(SyncSection(context))
        self.add_subsection(RepoGroupSection(context))
        self.create_subsection('units', _('list/search for RPM-related content in a repository'))
Beispiel #25
0
    def __init__(self, context):
        PulpCliSection.__init__(
            self, 'permission', 'manage granting, revoking and listing '
            'permissions for resources')

        self.context = context
        self.prompt = context.prompt  # for easier access

        # List Command
        list_command = PulpCliCommand(
            'list', 'lists permissions for a particular resource', self.list)
        list_command.add_option(
            PulpCliOption('--resource',
                          'uniquely identifies a resource',
                          required=True))
        self.add_command(list_command)

        # Grant Command
        usage_description = 'you can specify either login or role-id in this command; '\
                            'both cannot be specified at the same time'
        grant_command = PulpCliCommand(
            'grant', 'grants resource permissions to given user or '
            'given role',
            self.grant,
            usage_description=usage_description)
        grant_command.add_option(
            PulpCliOption('--resource', 'resource REST API path whose '
                          'permissions are being manipulated',
                          required=True))
        grant_command.add_option(
            PulpCliOption('--login', 'login of the user to which access to '
                          'given resource is being granted',
                          required=False))
        grant_command.add_option(
            PulpCliOption('--role-id', 'id of the role to which access to '
                          'given resource is being granted',
                          required=False))
        grant_command.add_option(
            PulpCliOption('-o', 'type of permissions being granted, valid '
                          'permissions: create, read, update, delete, execute',
                          required=True,
                          allow_multiple=True))
        self.add_command(grant_command)

        # Revoke Command
        revoke_command = PulpCliCommand(
            'revoke', 'revokes resource permissions from given user or '
            'given role',
            self.revoke,
            usage_description=usage_description)
        revoke_command.add_option(
            PulpCliOption('--resource', 'resource REST API path whose '
                          'permissions are being manipulated',
                          required=True))
        revoke_command.add_option(
            PulpCliOption('--login', 'login of the user from which access to '
                          'given resource is being revoked',
                          required=False))
        revoke_command.add_option(
            PulpCliOption('--role-id', 'id of the role from which access to '
                          'given resource is being revoked',
                          required=False))
        revoke_command.add_option(
            PulpCliOption('-o', 'type of permissions being revoked, valid '
                          'permissions: create, read, update, delete, '
                          'execute',
                          required=True,
                          allow_multiple=True))
        self.add_command(revoke_command)
Beispiel #26
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'user', 'manage users')

        self.context = context
        self.prompt = context.prompt  # for easier access

        # Common Options
        login_option = PulpCliOption(
            '--login', 'uniquely identifies the user; '
            'only alphanumeric, -, ., and _ allowed',
            required=True,
            validate_func=validators.id_validator_allow_dots)
        name_option = PulpCliOption('--name',
                                    'user-readable full name of the user',
                                    required=False)

        # Create command
        create_command = PulpCliCommand('create', 'creates a user',
                                        self.create)
        create_command.add_option(login_option)
        create_command.add_option(
            PulpCliOption('--password', 'password for the new user, '
                          'if you do not want to be prompted for one',
                          required=False))
        create_command.add_option(name_option)
        self.add_command(create_command)

        # Update Command
        update_command = PulpCliCommand(
            'update', 'changes metadata of an existing user', self.update)
        update_command.add_option(
            PulpCliOption('--login',
                          'identifies the user to be updated',
                          required=True))
        update_command.add_option(name_option)
        update_command.add_option(
            PulpCliOption('--password', 'new password for the user, use -p '
                          'if you want to be prompted for the password',
                          required=False))
        update_command.add_option(
            PulpCliFlag(
                '-p', 'if specified, you will be prompted to enter '
                'new password for the user'))
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', 'deletes a user',
                                        self.delete)
        delete_command.add_option(
            PulpCliOption('--login',
                          'identifies the user to be deleted',
                          required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand(
            'list', 'lists summary of users registered to the Pulp '
            'server', self.list)
        list_command.add_option(
            PulpCliFlag(
                '--details', 'if specified, all the user information '
                'is displayed'))
        list_command.add_option(
            PulpCliOption('--fields', 'comma-separated list of user fields; '
                          'Example: "login,name". If specified, '
                          'only the given fields will be '
                          'displayed.',
                          required=False))
        self.add_command(list_command)

        # Search Command
        self.add_command(CriteriaCommand(self.search, include_search=True))
Beispiel #27
0
def initialize(context):

    section = PulpCliSection('section-1', 'Section 1')
    context.cli.add_section(section)
Beispiel #28
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'consumer', 'consumer lifecycle (list, update, etc.) commands')

        self.context = context
        self.prompt = context.prompt # for easier access

        # Common Options
        consumer_id_option = PulpCliOption('--consumer-id', 'uniquely identifies the consumer; only alphanumeric, -, and _ allowed', required=True)
        name_option = PulpCliOption('--display-name', 'user-readable display name for the consumer', required=False)
        description_option = PulpCliOption('--description', 'user-readable description for the consumer', required=False)

        # Update Command
        update_command = PulpCliCommand('update', 'changes metadata on an existing consumer', self.update)
        update_command.add_option(consumer_id_option)
        update_command.add_option(name_option)
        update_command.add_option(description_option)
        d =  'adds/updates/deletes notes to programmatically identify the consumer; '
        d += 'key-value pairs must be separated by an equal sign (e.g. key=value); multiple notes can '
        d += 'be changed by specifying this option multiple times; notes are deleted by '
        d += 'specifying "" as the value'
        update_command.add_option(PulpCliOption('--note', d, required=False, allow_multiple=True))
        self.add_command(update_command)

        # Unregister Command
        unregister_command = PulpCliCommand('unregister', 'unregisters a consumer', self.unregister)
        unregister_command.add_option(PulpCliOption('--consumer-id', 'identifies the consumer to be unregistered', required=True))
        self.add_command(unregister_command)

        # List Command
        list_command = PulpCliCommand('list', 'lists summary of consumers registered to the Pulp server', self.list)
        list_command.add_option(PulpCliFlag('--details', 'if specified, all the consumer information is displayed'))
        list_command.add_option(PulpCliFlag('--bindings', 'if specified, the bindings information is displayed'))
        list_command.add_option(PulpCliOption('--fields', 'comma-separated list of consumer fields; if specified, only the given fields will displayed', required=False))
        self.add_command(list_command)

        # Search Command
        self.add_command(CriteriaCommand(self.search))

        # Bind Command
        bind_command = PulpCliCommand('bind', 'binds a consumer to a repository distributor for consuming published content', self.bind)
        bind_command.add_option(PulpCliOption('--consumer-id', 'consumer id', required=True))
        bind_command.add_option(PulpCliOption('--repo-id', 'repository id', required=True))
        bind_command.add_option(PulpCliOption('--distributor-id', 'distributor id', required=True))
        self.add_command(bind_command)

        # Unbind Command
        unbind_command = PulpCliCommand('unbind', 'unbinds a consumer from a repository distributor', self.unbind)
        unbind_command.add_option(PulpCliOption('--consumer-id', 'consumer id', required=True))
        unbind_command.add_option(PulpCliOption('--repo-id', 'repository id', required=True))
        unbind_command.add_option(PulpCliOption('--distributor-id', 'distributor id', required=True))
        self.add_command(unbind_command)
        
        # History Retrieval Command
        history_command = PulpCliCommand('history', 'lists history of a consumer', self.history)
        history_command.add_option(PulpCliOption('--consumer-id', 'consumer id', required=True))
        d = 'limits displayed history entries to the given type;'
        d += 'supported types: ("consumer_registered", "consumer_unregistered", "repo_bound", "repo_unbound",'
        d += '"content_unit_installed", "content_unit_uninstalled", "unit_profile_changed", "added_to_group",'
        d += '"removed_from_group")'
        history_command.add_option(PulpCliOption('--event-type', d, required=False))
        history_command.add_option(PulpCliOption('--limit', 'limits displayed history entries to the given amount (must be greater than zero)', required=False))
        history_command.add_option(PulpCliOption('--sort', 'indicates the sort direction ("ascending" or "descending") based on the entry\'s timestamp', required=False))
        history_command.add_option(PulpCliOption('--start-date', 'only return entries that occur on or after the given date in iso8601 format (yyyy-mm-ddThh:mm:ssZ)', required=False))
        history_command.add_option(PulpCliOption('--end-date', 'only return entries that occur on or before the given date in iso8601 format (yyyy-mm-ddThh:mm:ssZ)', required=False))
        self.add_command(history_command)
Beispiel #29
0
    def __init__(self, context):
        PulpCliSection.__init__(self, 'role', 'manage user roles')

        self.context = context
        self.prompt = context.prompt  # for easier access

        # Common Options
        id_option = PulpCliOption(
            '--role-id', 'uniquely identifies the role; only alphanumeric, '
            ' -, and _ allowed',
            required=True,
            validate_func=validators.id_validator)

        # Create command
        create_command = PulpCliCommand('create', 'creates a role',
                                        self.create)
        create_command.add_option(id_option)
        create_command.add_option(
            PulpCliOption('--display-name',
                          'user-friendly name for the role',
                          required=False))
        create_command.add_option(
            PulpCliOption('--description', 'user-friendly text describing '
                          'the role',
                          required=False))
        self.add_command(create_command)

        # Update command
        update_command = PulpCliCommand('update', 'updates a role',
                                        self.update)
        update_command.add_option(
            PulpCliOption('--role-id',
                          'identifies the role to be updated',
                          required=True))
        update_command.add_option(
            PulpCliOption('--display-name',
                          'user-friendly name for the role',
                          required=False))
        update_command.add_option(
            PulpCliOption('--description', 'user-friendly text describing '
                          'the role',
                          required=False))
        self.add_command(update_command)

        # Delete Command
        delete_command = PulpCliCommand('delete', 'deletes a role',
                                        self.delete)
        delete_command.add_option(
            PulpCliOption('--role-id',
                          'identifies the role to be deleted',
                          required=True))
        self.add_command(delete_command)

        # List Command
        list_command = PulpCliCommand(
            'list', 'lists summary of roles on the Pulp server', self.list)
        list_command.add_option(
            PulpCliFlag(
                '--details', 'if specified, all the role information '
                'is displayed'))
        list_command.add_option(
            PulpCliOption('--fields', 'comma-separated list of role fields; '
                          'Example: "id,users". If specified, only '
                          'the given fields will be displayed.',
                          required=False))
        self.add_command(list_command)