def _add_identity_and_resource_options_to_parser(parser): domain_or_project = parser.add_mutually_exclusive_group() domain_or_project.add_argument( '--domain', metavar='<domain>', help='Include <domain> (name or ID)', ) domain_or_project.add_argument( '--project', metavar='<project>', help='Include <project> (name or ID)', ) user_or_group = parser.add_mutually_exclusive_group() user_or_group.add_argument( '--user', metavar='<user>', help='Include <user> (name or ID)', ) user_or_group.add_argument( '--group', metavar='<group>', help='Include <group> (name or ID)', ) common.add_group_domain_option_to_parser(parser) common.add_project_domain_option_to_parser(parser) common.add_user_domain_option_to_parser(parser) common.add_inherited_option_to_parser(parser)
def get_parser(self, prog_name): parser = super(ListVolume, self).get_parser(prog_name) parser.add_argument( '--project', metavar='<project-id>', help='Filter results by project (name or ID) (admin only)') identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--user', metavar='<user-id>', help='Filter results by user (name or ID) (admin only)') identity_common.add_user_domain_option_to_parser(parser) parser.add_argument( '--name', metavar='<name>', help='Filter results by volume name', ) parser.add_argument( '--status', metavar='<status>', help='Filter results by status', ) parser.add_argument( '--all-projects', action='store_true', default=False, help='Include all projects (admin only)', ) parser.add_argument( '--long', action='store_true', default=False, help='List additional fields in output', ) return parser
def get_parser(self, prog_name): parser = super(CancelCopyImage, self).get_parser(prog_name) parser.add_argument( "job_id", metavar="<job_id>", help="job_id that has been paid out in the Copy API.", ) common.add_project_domain_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(CreateUser, self).get_parser(prog_name) parser.add_argument( 'name', metavar='<name>', help='New user name', ) parser.add_argument( '--domain', metavar='<domain>', help='Default domain (name or ID)', ) parser.add_argument( '--project', metavar='<project>', help='Default project (name or ID)', ) common.add_project_domain_option_to_parser(parser) parser.add_argument( '--password', metavar='<password>', help='Set user password', ) parser.add_argument( '--password-prompt', dest="password_prompt", action="store_true", help='Prompt interactively for password', ) parser.add_argument( '--email', metavar='<email-address>', help='Set user email address', ) parser.add_argument( '--description', metavar='<description>', help='User description', ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument( '--enable', action='store_true', help='Enable user (default)', ) enable_group.add_argument( '--disable', action='store_true', help='Disable user', ) parser.add_argument( '--or-show', action='store_true', help=_('Return existing user'), ) return parser
def get_parser(self, prog_name): parser = super(CreateTrust, self).get_parser(prog_name) parser.add_argument( 'trustor', metavar='<trustor-user>', help='User that is delegating authorization (name or ID)', ) parser.add_argument( 'trustee', metavar='<trustee-user>', help='User that is assuming authorization (name or ID)', ) parser.add_argument( '--project', metavar='<project>', required=True, help='Project being delegated (name or ID) (required)', ) parser.add_argument('--role', metavar='<role>', action='append', default=[], help='Roles to authorize (name or ID) ' '(repeat to set multiple values) (required)', required=True) parser.add_argument( '--impersonate', dest='impersonate', action='store_true', default=False, help='Tokens generated from the trust will represent <trustor>' ' (defaults to False)', ) parser.add_argument( '--expiration', metavar='<expiration>', help='Sets an expiration date for the trust' ' (format of YYYY-mm-ddTHH:MM:SS)', ) common.add_project_domain_option_to_parser(parser) parser.add_argument( '--trustor-domain', metavar='<trustor-domain>', help='Domain that contains <trustor> (name or ID)', ) parser.add_argument( '--trustee-domain', metavar='<trustee-domain>', help='Domain that contains <trustee> (name or ID)', ) return parser
def get_parser(self, prog_name): parser = super(AddProjectToImage, self).get_parser(prog_name) parser.add_argument( "image", metavar="<image>", help="Image to share (name or ID)", ) parser.add_argument( "project", metavar="<project>", help="Project to associate with image (name or ID)", ) common.add_project_domain_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(CopyImage, self).get_parser(prog_name) parser.add_argument( "image", metavar="<image>", help="An identifier for the image (name or ID).", ) parser.add_argument( "tenant_id", metavar="<tenant_id>", help="An identifier for the image tenant for destination region.", ) common.add_project_domain_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(ListRoleAssignment, self).get_parser(prog_name) parser.add_argument( '--effective', action="store_true", default=False, help='Returns only effective role assignments', ) parser.add_argument( '--role', metavar='<role>', help='Role to filter (name or ID)', ) parser.add_argument( '--names', action="store_true", help='Display names instead of IDs', ) user_or_group = parser.add_mutually_exclusive_group() user_or_group.add_argument( '--user', metavar='<user>', help='User to filter (name or ID)', ) common.add_user_domain_option_to_parser(parser) user_or_group.add_argument( '--group', metavar='<group>', help='Group to filter (name or ID)', ) common.add_group_domain_option_to_parser(parser) domain_or_project = parser.add_mutually_exclusive_group() domain_or_project.add_argument( '--domain', metavar='<domain>', help='Domain to filter (name or ID)', ) domain_or_project.add_argument( '--project', metavar='<project>', help='Project to filter (name or ID)', ) common.add_project_domain_option_to_parser(parser) common.add_inherited_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(CreateEC2Creds, self).get_parser(prog_name) parser.add_argument( '--project', metavar='<project>', help=_( 'Create credentials in project ' '(name or ID; default: current authenticated project)' ), ) parser.add_argument( '--user', metavar='<user>', help=_( 'Create credentials for user ' '(name or ID; default: current authenticated user)' ), ) common.add_user_domain_option_to_parser(parser) common.add_project_domain_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(UpdateImageMember, self).get_parser(prog_name) parser.add_argument( "image", metavar="<image>", help="Image to share (name or ID)", ) parser.add_argument( "project", metavar="<project>", help="Project to associate with image (name or ID)", ) parser.add_argument( "status", metavar="<member-status>", choices=['pending', 'accepted', 'rejected'], help="The status of this image member " "[pending, accepted, rejected]", ) common.add_project_domain_option_to_parser(parser) return parser
def get_parser(self, prog_name): parser = super(SetImage, self).get_parser(prog_name) # TODO(bunting): There are additional arguments that v1 supported # --size - does not exist in v2 # --store - does not exist in v2 # --location - maybe location add? # --copy-from - does not exist in v2 # --file - should be able to upload file # --volume - not possible with v2 as can't change id # --force - see `--volume` # --checksum - maybe could be done client side # --stdin - could be implemented parser.add_argument("image", metavar="<image>", help="Image to modify (name or ID)") parser.add_argument("--name", metavar="<name>", help="New image name") parser.add_argument( "--min-disk", type=int, metavar="<disk-gb>", help="Minimum disk size needed to boot image, in gigabytes") parser.add_argument( "--min-ram", type=int, metavar="<ram-mb>", help="Minimum RAM size needed to boot image, in megabytes", ) parser.add_argument( "--container-format", metavar="<container-format>", help="Image container format " "(default: %s)" % DEFAULT_CONTAINER_FORMAT, ) parser.add_argument( "--disk-format", metavar="<disk-format>", help="Image disk format " "(default: %s)" % DEFAULT_DISK_FORMAT, ) protected_group = parser.add_mutually_exclusive_group() protected_group.add_argument( "--protected", action="store_true", help="Prevent image from being deleted", ) protected_group.add_argument( "--unprotected", action="store_true", help="Allow image to be deleted (default)", ) public_group = parser.add_mutually_exclusive_group() public_group.add_argument( "--public", action="store_true", help="Image is accessible to the public", ) public_group.add_argument( "--private", action="store_true", help="Image is inaccessible to the public (default)", ) parser.add_argument( "--property", dest="properties", metavar="<key=value>", action=parseractions.KeyValueAction, help="Set a property on this image " "(repeat option to set multiple properties)", ) parser.add_argument( "--tag", dest="tags", metavar="<tag>", default=[], action='append', help="Set a tag on this image " "(repeat option to set multiple tags)", ) parser.add_argument( "--architecture", metavar="<architecture>", help="Operating system architecture", ) parser.add_argument( "--instance-id", metavar="<instance-id>", help="ID of server instance used to create this image", ) parser.add_argument( "--instance-uuid", metavar="<instance-id>", dest="instance_id", help=argparse.SUPPRESS, ) parser.add_argument( "--kernel-id", metavar="<kernel-id>", help="ID of kernel image used to boot this disk image", ) parser.add_argument( "--os-distro", metavar="<os-distro>", help="Operating system distribution name", ) parser.add_argument( "--os-version", metavar="<os-version>", help="Operating system distribution version", ) parser.add_argument( "--ramdisk-id", metavar="<ramdisk-id>", help="ID of ramdisk image used to boot this disk image", ) deactivate_group = parser.add_mutually_exclusive_group() deactivate_group.add_argument( "--deactivate", action="store_true", help="Deactivate the image", ) deactivate_group.add_argument( "--activate", action="store_true", help="Activate the image", ) # NOTE(dtroyer): --owner is deprecated in Jan 2016 in an early # 2.x release. Do not remove before Jan 2017 # and a 3.x release. project_group = parser.add_mutually_exclusive_group() project_group.add_argument( "--project", metavar="<project>", help="Set an alternate project on this image (name or ID)", ) project_group.add_argument( "--owner", metavar="<project>", help=argparse.SUPPRESS, ) common.add_project_domain_option_to_parser(parser) for deadopt in self.deadopts: parser.add_argument( "--%s" % deadopt, metavar="<%s>" % deadopt, dest=deadopt.replace('-', '_'), help=argparse.SUPPRESS, ) return parser
def get_parser(self, prog_name): parser = super(CreateImage, self).get_parser(prog_name) # TODO(bunting): There are additional arguments that v1 supported # that v2 either doesn't support or supports weirdly. # --checksum - could be faked clientside perhaps? # --location - maybe location add? # --size - passing image size is actually broken in python-glanceclient # --copy-from - does not exist in v2 # --store - does not exits in v2 parser.add_argument( "name", metavar="<image-name>", help="New image name", ) parser.add_argument( "--id", metavar="<id>", help="Image ID to reserve", ) parser.add_argument( "--container-format", default=DEFAULT_CONTAINER_FORMAT, metavar="<container-format>", help="Image container format " "(default: %s)" % DEFAULT_CONTAINER_FORMAT, ) parser.add_argument( "--disk-format", default=DEFAULT_DISK_FORMAT, metavar="<disk-format>", help="Image disk format " "(default: %s)" % DEFAULT_DISK_FORMAT, ) parser.add_argument( "--min-disk", metavar="<disk-gb>", type=int, help="Minimum disk size needed to boot image, in gigabytes", ) parser.add_argument( "--min-ram", metavar="<ram-mb>", type=int, help="Minimum RAM size needed to boot image, in megabytes", ) parser.add_argument( "--file", metavar="<file>", help="Upload image from local file", ) parser.add_argument( "--volume", metavar="<volume>", help="Create image from a volume", ) parser.add_argument( "--force", dest='force', action='store_true', default=False, help="Force image creation if volume is in use " "(only meaningful with --volume)", ) protected_group = parser.add_mutually_exclusive_group() protected_group.add_argument( "--protected", action="store_true", help="Prevent image from being deleted", ) protected_group.add_argument( "--unprotected", action="store_true", help="Allow image to be deleted (default)", ) public_group = parser.add_mutually_exclusive_group() public_group.add_argument( "--public", action="store_true", help="Image is accessible to the public", ) public_group.add_argument( "--private", action="store_true", help="Image is inaccessible to the public (default)", ) parser.add_argument( "--property", dest="properties", metavar="<key=value>", action=parseractions.KeyValueAction, help="Set a property on this image " "(repeat option to set multiple properties)", ) parser.add_argument( "--tag", dest="tags", metavar="<tag>", action='append', help="Set a tag on this image " "(repeat option to set multiple tags)", ) # NOTE(dtroyer): --owner is deprecated in Jan 2016 in an early # 2.x release. Do not remove before Jan 2017 # and a 3.x release. project_group = parser.add_mutually_exclusive_group() project_group.add_argument( "--project", metavar="<project>", help="Set an alternate project on this image (name or ID)", ) project_group.add_argument( "--owner", metavar="<project>", help=argparse.SUPPRESS, ) common.add_project_domain_option_to_parser(parser) for deadopt in self.deadopts: parser.add_argument( "--%s" % deadopt, metavar="<%s>" % deadopt, dest=deadopt.replace('-', '_'), help=argparse.SUPPRESS, ) return parser