def invoke(self, context): try: # Raise NotImplemented exception for Admin specific request if # admin flag is set to false in nova.conf if (isinstance(self.controller, AdminController) and (not FLAGS.allow_ec2_admin_api)): ## Raise InvalidRequest exception for EC2 Admin interface ## LOG.exception("Unsupported API request") raise exception.InvalidRequest() method = getattr(self.controller, ec2utils.camelcase_to_underscore(self.action)) except AttributeError: controller = self.controller action = self.action _error = _('Unsupported API request: controller = %(controller)s,' ' action = %(action)s') % locals() LOG.exception(_error) # TODO: Raise custom exception, trap in apiserver, # and reraise as 400 error. raise exception.InvalidRequest() args = ec2utils.dict_from_dotted_str(self.args.items()) for key in args.keys(): # NOTE(vish): Turn numeric dict keys into lists if isinstance(args[key], dict): if args[key] != {} and args[key].keys()[0].isdigit(): s = args[key].items() s.sort() args[key] = [v for k, v in s] result = method(context, **args) return self._render_response(result, context.request_id)
def invoke(self, context): try: method = getattr(self.controller, ec2utils.camelcase_to_underscore(self.action)) except AttributeError: LOG.debug('Unsupported API request: controller = ' '%(controller)s, action = %(action)s', {'controller': self.controller, 'action': self.action}) # TODO(gundlach): Raise custom exception, trap in apiserver, # and reraise as 400 error. raise exception.InvalidRequest() args = ec2utils.dict_from_dotted_str(self.args.items()) for key in args.keys(): # NOTE(vish): Turn numeric dict keys into lists if isinstance(args[key], dict): if args[key] != {} and args[key].keys()[0].isdigit(): s = args[key].items() s.sort() args[key] = [v for k, v in s] result = method(context, **args) return self._render_response(result, context.request_id)
def invoke(self, context): try: # Raise NotImplemented exception for Admin specific request if # admin flag is set to false in nova.conf if (isinstance(self.controller, AdminController) and (not FLAGS.allow_ec2_admin_api)): ## Raise InvalidRequest exception for EC2 Admin interface ## LOG.exception("Unsupported API request") raise exception.InvalidRequest() method = getattr(self.controller, ec2utils.camelcase_to_underscore(self.action)) except AttributeError: controller = self.controller action = self.action _error = _('Unsupported API request: controller = %(controller)s,' ' action = %(action)s') % locals() LOG.exception(_error) # TODO: Raise custom exception, trap in apiserver, # and reraise as 400 error. raise exception.InvalidRequest() args = ec2utils.dict_from_dotted_str(self.args.items()) for key in args.keys(): # NOTE(vish): Turn numeric dict keys into lists if isinstance(args[key], dict): if args[key] != {} and args[key].keys()[0].isdigit(): s = args[key].items() s.sort() args[key] = [v for k, v in s] result = method(context, **args) return self._render_response(result, context.request_id)