def get_parser(self, prog_name): parser = super(CreateVerification, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar='<provider_id>', help=_('The UUID of the provider.') ) parser.add_argument( 'checkpoint_id', metavar='<checkpoint_id>', help=_('The UUID of the checkpoint.') ) parser.add_argument( '--parameters-json', type=str, dest='parameters_json', metavar='<parameters>', default=None, help=_('Verification parameters in json format.') ) parser.add_argument( '--parameters', action='append', metavar='resource_type=<type>[,resource_id=<id>,key=val,...]', default=[], help=_("Verification parameters, may be specified multiple times. " "resource_type: type of resource to apply parameters. " "resource_id: limit the parameters to a specific resource. " "Other keys and values: according to provider\'s " "verification schema.") ) return parser
def get_parser(self, prog_name): parser = super(UpdatePlan, self).get_parser(prog_name) parser.add_argument( "plan_id", metavar="<PLAN ID>", help=_("Id of plan to update.") ) parser.add_argument( "--name", metavar="<name>", help=_("A name to which the plan will be renamed.") ) parser.add_argument( "--description", metavar="<description>", help=_("Description to which the plan will be updated.") ) parser.add_argument( "--resources", metavar="<id=type=name,id=type=name>", help=_("Resources to which the plan will be updated.") ) parser.add_argument( "--status", metavar="<suspended|started>", help=_("status to which the plan will be updated.") ) return parser
def get_parser(self, prog_name): parser = super(ListProviders, self).get_parser(prog_name) parser.add_argument( '--name', metavar='<name>', help=_('Filters results by a name. Default=None.'), ) parser.add_argument( '--description', metavar='<description>', help=_('Filters results by a description. Default=None.'), ) parser.add_argument( '--marker', metavar='<provider>', help=_('The last provider ID of the previous page'), ) parser.add_argument( '--limit', type=int, metavar='<num-providers>', help=_('Maximum number of providers to display'), ) parser.add_argument( '--sort', metavar="<key>[:<direction>]", default=None, help=_("Sort output by selected keys and directions(asc or desc) " "(default: name:asc), multiple keys and directions can be " "specified separated by comma"), ) return parser
def get_parser(self, prog_name): parser = super(ListCheckpoints, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar='<provider_id>', help=_('ID of provider.'), ) parser.add_argument( '--all-projects', action='store_true', default=False, help=_('Include all projects (admin only)'), ) parser.add_argument( '--plan_id', metavar='<plan_id>', default=None, help=_('Filters results by a plan ID. Default=None.'), ) parser.add_argument( '--start_date', type=str, metavar='<start_date>', default=None, help=_('Filters results by a start date("Y-m-d"). Default=None.'), ) parser.add_argument( '--end_date', type=str, metavar='<end_date>', default=None, help=_('Filters results by a end date("Y-m-d"). Default=None.'), ) parser.add_argument( '--project_id', metavar='<project_id>', default=None, help=_('Filters results by a project ID. Default=None.'), ) parser.add_argument( '--marker', metavar='<checkpoint>', help=_('The last checkpoint ID of the previous page.'), ) parser.add_argument( '--limit', type=int, metavar='<num-checkpoints>', help=_('Maximum number of checkpoints to display.'), ) parser.add_argument( '--sort', metavar="<key>[:<direction>]", default=None, help=_("Sort output by selected keys and directions(asc or desc), " "multiple keys and directions can be " "specified separated by comma"), ) return parser
def get_parser(self, prog_name): parser = super(ListServices, self).get_parser(prog_name) parser.add_argument( '--host', metavar='<host>', help=_('Filter results by host'), ) parser.add_argument( '--binary', metavar='<binary>', help=_('Filter results by binary'), ) return parser
def get_parser(self, prog_name): parser = super(ShowCheckpoint, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar="<provider_id>", help=_('Id of provider.') ) parser.add_argument( 'checkpoint_id', metavar="<checkpoint_id>", help=_('Id of checkpoint.') ) return parser
def get_parser(self, prog_name): parser = super(DisableService, self).get_parser(prog_name) parser.add_argument( 'service_id', metavar='<service_id>', help=_('The ID of the service.'), ) parser.add_argument( '--reason', metavar='<reason>', help=_('Reason for disabling the service.') ) return parser
def get_parser(self, prog_name): parser = super(ListScheduledOperations, self).get_parser(prog_name) parser.add_argument( '--all-projects', action='store_true', default=False, help=_('Shows details for all tenants. Admin only.'), ) parser.add_argument( '--name', metavar='<name>', help=_('Filters results by a name. Default=None.'), ) parser.add_argument( '--operation_type', metavar='<operation_type>', default=None, help=_('Filters results by a type. Default=None.'), ) parser.add_argument( '--trigger_id', metavar='<trigger_id>', default=None, help=_('Filters results by a trigger id. Default=None.'), ) parser.add_argument( '--operation_definition', metavar='<operation_definition>', default=None, help=_('Filters results by a operation definition. Default=None.'), ) parser.add_argument( '--marker', metavar='<scheduled_operations>', help=_('The last scheduled_operations ID of the previous page'), ) parser.add_argument( '--limit', type=int, metavar='<num-scheduled_operations>', help=_('Maximum number of scheduled_operations to display'), ) parser.add_argument( '--sort', metavar="<key>[:<direction>]", default=None, help=_("Sort output by selected keys and directions(asc or desc) " "(default: name:asc), multiple keys and directions can be " "specified separated by comma"), ) parser.add_argument( '--project', metavar='<project>', help=_('Filter results by a project(admin only)') ) return parser
def get_parser(self, prog_name): parser = super(DeleteCheckpoint, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar='<provider_id>', help=_('Id of provider.') ) parser.add_argument( 'checkpoint', metavar='<checkpoint>', nargs="+", help=_('Id of checkpoint.') ) return parser
class HttpServerError(HttpError): """Server-side HTTP error. Exception for cases in which the server is aware that it has erred or is incapable of performing the request. """ message = _("HTTP Server Error")
class BadRequest(HTTPClientError): """HTTP 400 - Bad Request. The request cannot be fulfilled due to bad syntax. """ http_status = 400 message = _("Bad Request")
def find(self, base_url=None, **kwargs): """Find a single item with attributes matching ``**kwargs``. :param base_url: if provided, the generated URL will be appended to it """ kwargs = self._filter_kwargs(kwargs) rl = self._list( '%(base_url)s%(query)s' % { 'base_url': self.build_url(base_url=base_url, **kwargs), 'query': '?%s' % parse.urlencode(kwargs) if kwargs else '', }, self.collection_key) num = len(rl) if num == 0: msg = _("No %(name)s matching %(args)s.") % { 'name': self.resource_class.__name__, 'args': kwargs } raise exceptions.NotFound(404, msg) elif num > 1: raise exceptions.NoUniqueMatch else: return rl[0]
class RequestTimeout(HTTPClientError): """HTTP 408 - Request Timeout. The server timed out waiting for the request. """ http_status = 408 message = _("Request Timeout")
class PaymentRequired(HTTPClientError): """HTTP 402 - Payment Required. Reserved for future use. """ http_status = 402 message = _("Payment Required")
class ProxyAuthenticationRequired(HTTPClientError): """HTTP 407 - Proxy Authentication Required. The client must first authenticate itself with the proxy. """ http_status = 407 message = _("Proxy Authentication Required")
def get_parser(self, prog_name): parser = super(EnableService, self).get_parser(prog_name) parser.add_argument( 'service_id', metavar='<service_id>', help=_('The ID of the service.') ) return parser
def get_parser(self, prog_name): parser = super(ShowPlan, self).get_parser(prog_name) parser.add_argument( 'plan', metavar="<plan>", help=_('The UUID of the plan.') ) return parser
class Gone(HTTPClientError): """HTTP 410 - Gone. Indicates that the resource requested is no longer available and will not be available again. """ http_status = 410 message = _("Gone")
class Conflict(HTTPClientError): """HTTP 409 - Conflict. Indicates that the request could not be processed because of conflict in the request, such as an edit conflict. """ http_status = 409 message = _("Conflict")
class NotAcceptable(HTTPClientError): """HTTP 406 - Not Acceptable. The requested resource is only capable of generating content not acceptable according to the Accept headers sent in the request. """ http_status = 406 message = _("Not Acceptable")
class MethodNotAllowed(HTTPClientError): """HTTP 405 - Method Not Allowed. A request was made of a resource using a request method not supported by that resource. """ http_status = 405 message = _("Method Not Allowed")
class NotFound(HTTPClientError): """HTTP 404 - Not Found. The requested resource could not be found but may be available again in the future. """ http_status = 404 message = _("Not Found")
class Forbidden(HTTPClientError): """HTTP 403 - Forbidden. The request was a valid request, but the server is refusing to respond to it. """ http_status = 403 message = _("Forbidden")
class MultipleChoices(HTTPRedirection): """HTTP 300 - Multiple Choices. Indicates multiple options for the resource that the client may follow. """ http_status = 300 message = _("Multiple Choices")
def get_parser(self, prog_name): parser = super(ShowOperationLog, self).get_parser(prog_name) parser.add_argument( 'operation_log', metavar="<operation_log>", help=_('The UUID of the operation_log.') ) return parser
class Unauthorized(HTTPClientError): """HTTP 401 - Unauthorized. Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. """ http_status = 401 message = _("Unauthorized")
def get_parser(self, prog_name): parser = super(ShowProtectable, self).get_parser(prog_name) parser.add_argument( 'protectable_type', metavar="<protectable_type>", help=_('Protectable type.') ) return parser
def get_parser(self, prog_name): parser = super(ShowScheduledOperation, self).get_parser(prog_name) parser.add_argument( 'scheduledoperation', metavar="<scheduledoperation>", help=_('The UUID of the scheduledoperation.') ) return parser
def get_parser(self, prog_name): parser = super(ShowTrigger, self).get_parser(prog_name) parser.add_argument( 'trigger', metavar="<trigger>", help=_('The UUID of the trigger.') ) return parser
def get_parser(self, prog_name): parser = super(ShowRestore, self).get_parser(prog_name) parser.add_argument( 'restore', metavar="<restore>", help=_('The UUID of the restore.') ) return parser
def get_parser(self, prog_name): parser = super(ShowVerification, self).get_parser(prog_name) parser.add_argument( 'verification', metavar="<verification>", help=_('The UUID of the verification.') ) return parser
def get_parser(self, prog_name): parser = super(DeleteTrigger, self).get_parser(prog_name) parser.add_argument( 'trigger', metavar='<trigger>', nargs="+", help=_('ID of trigger.') ) return parser
def get_parser(self, prog_name): parser = super(UpdateTrigger, self).get_parser(prog_name) parser.add_argument( "trigger_id", metavar="<TRIGGER ID>", help=_("Id of trigger to update.") ) parser.add_argument( "--name", metavar="<name>", help=_("A name to which the trigger will be renamed.") ) parser.add_argument( "--properties", metavar="<key=value,key=value>", help=_("Properties of trigger which will be updated.") ) return parser
def get_parser(self, prog_name): parser = super(CreateTrigger, self).get_parser(prog_name) parser.add_argument( 'name', metavar='<name>', help=_('The name of the trigger.') ) parser.add_argument( 'type', metavar='<type>', help=_('Type of trigger.') ) parser.add_argument( 'properties', metavar='<key=value,key=value>', help=_('Properties of trigger.') ) return parser
def get_parser(self, prog_name): parser = super(DeletePlan, self).get_parser(prog_name) parser.add_argument( 'plan', metavar='<plan>', nargs="+", help=_('ID of plan.') ) return parser
def get_parser(self, prog_name): parser = super(DeleteScheduledOperation, self).get_parser(prog_name) parser.add_argument( 'scheduledoperation', metavar='<scheduledoperation>', nargs="+", help=_('ID of scheduled operation.') ) return parser
def get_parser(self, prog_name): parser = super(ListTriggers, self).get_parser(prog_name) parser.add_argument( '--all-projects', action='store_true', default=False, help=_('Shows details for all tenants. Admin only.'), ) parser.add_argument( '--name', metavar='<name>', default=None, help=_('Filters results by a name. Default=None.'), ) parser.add_argument( '--type', metavar='<type>', default=None, help=_('Filters results by a type. Default=None.'), ) parser.add_argument( '--properties', metavar='<properties>', default=None, help=_('Filters results by a properties. Default=None.'), ) parser.add_argument( '--marker', metavar='<trigger>', help=_('The last trigger ID of the previous page'), ) parser.add_argument( '--limit', type=int, metavar='<num-triggers>', help=_('Maximum number of triggers to display'), ) parser.add_argument( '--sort', metavar="<key>[:<direction>]", default=None, help=_("Sort output by selected keys and directions(asc or desc) " "(default: name:asc), multiple keys and directions can be " "specified separated by comma"), ) parser.add_argument( '--project', metavar='<project>', help=_('Display information from single tenant (Admin only).') ) return parser
def get_parser(self, prog_name): parser = super(ResetCheckpointState, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar='<provider_id>', help=_('Id of provider.') ) parser.add_argument( 'checkpoint', metavar='<checkpoint>', nargs="+", help=_('Id of checkpoint.') ) parser.add_argument( '--available', action='store_const', dest='state', default='error', const='available', help=_('Request the checkpoint be reset to "available" state ' 'instead of "error" state(the default).'), ) return parser
def get_parser(self, prog_name): parser = super(CreateCheckpoint, self).get_parser(prog_name) parser.add_argument( 'provider_id', metavar='<provider_id>', help=_('ID of provider.') ) parser.add_argument( 'plan_id', metavar='<plan_id>', help=_('ID of plan.') ) parser.add_argument( '--extra_info', type=str, nargs='*', metavar='<key=value>', default=None, help=_('The extra info of a checkpoint.') ) return parser
def get_parser(self, prog_name): parser = super(ShowProtectableInstance, self).get_parser(prog_name) parser.add_argument( 'protectable_type', metavar="<protectable_type>", help=_('Protectable type.') ) parser.add_argument( 'protectable_id', metavar="<protectable_id>", help=_('Protectable instance id.') ) parser.add_argument( '--parameters', type=str, nargs='*', metavar="<key=value>", default=None, help=_('Show a instance by parameters key and value pair. ' 'Default=None.') ) return parser
def get_parser(self, prog_name): parser = super(ListPlans, self).get_parser(prog_name) parser.add_argument( '--all-projects', action='store_true', default=False, help=_('Include all projects (admin only)'), ) parser.add_argument( '--name', metavar='<name>', help=_('Filter results by plan name'), ) parser.add_argument( '--description', metavar='<description>', help=_('Filter results by plan description'), ) parser.add_argument( '--status', metavar='<status>', help=_('Filter results by status'), ) parser.add_argument( '--marker', metavar='<plan>', help=_('The last plan ID of the previous page'), ) parser.add_argument( '--limit', type=int, metavar='<num-plans>', help=_('Maximum number of plans to display'), ) parser.add_argument( '--sort', metavar="<key>[:<direction>]", default=None, help=_("Sort output by selected keys and directions(asc or desc) " "(default: name:asc), multiple keys and directions can be " "specified separated by comma"), ) parser.add_argument( '--project', metavar='<project>', help=_('Filter results by a project(admin only)') ) return parser
def get_parser(self, prog_name): parser = super(CreateScheduledOperation, self).get_parser(prog_name) parser.add_argument( 'name', metavar='<name>', help=_('The name of the scheduled operation.') ) parser.add_argument( 'operation_type', metavar='<operation_type>', help=_('Operation Type of scheduled operation.') ) parser.add_argument( 'trigger_id', metavar='<trigger_id>', help=_('Trigger id of scheduled operation.') ) parser.add_argument( 'operation_definition', metavar='<key=value,key=value>', help=_('Operation definition of scheduled operation.') ) return parser
def find(self, **kwargs): """Find a single item with attributes matching ``**kwargs``. This isn't very efficient: it loads the entire list then filters on the Python side. """ matches = self.findall(**kwargs) num_matches = len(matches) if num_matches == 0: msg = _("No %(name)s matching %(args)s.") % { 'name': self.resource_class.__name__, 'args': kwargs } raise exceptions.NotFound(msg) elif num_matches > 1: raise exceptions.NoUniqueMatch() else: return matches[0]
class HttpError(ClientException): """The base exception class for all HTTP exceptions.""" http_status = 0 message = _("HTTP Error") def __init__(self, message=None, details=None, response=None, request_id=None, url=None, method=None, http_status=None): self.http_status = http_status or self.http_status self.message = message or self.message self.details = details self.request_id = request_id self.response = response self.url = url self.method = method formatted_string = "%s (HTTP %s)" % (self.message, self.http_status) if request_id: formatted_string += " (Request-ID: %s)" % request_id super(HttpError, self).__init__(formatted_string)