コード例 #1
0
 def swupdate(self):
     validate_method(('POST'))
     try:
         task = self.model.host_swupdate()
         cherrypy.response.status = 202
         return render("Task", task)
     except OperationFailed, e:
         raise cherrypy.HTTPError(500, e.message)
コード例 #2
0
ファイル: base.py プロジェクト: mprostko/kimchi
 def wrapper(*args, **kwargs):
     validate_method(('POST'))
     try:
         model_args = list(self.model_args)
         if action_args is not None:
             model_args.extend(parse_request()[key]
                               for key in action_args)
         fn = getattr(self.model, model_fn(self, action_name))
         fn(*model_args)
         uri_params = tuple(self.model_args)
         raise internal_redirect(self.uri_fmt % uri_params)
     except MissingParameter, param:
         error = "Missing parameter: '%s'" % param
         raise cherrypy.HTTPError(400, error)
コード例 #3
0
ファイル: base.py プロジェクト: EmperorBeezie/kimchi
 def index(self):
     method = validate_method(('GET', 'DELETE', 'PUT'))
     try:
         return {'GET': self.get,
                 'DELETE': self.delete,
                 'PUT': self.update}[method]()
     except InvalidOperation, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #4
0
ファイル: base.py プロジェクト: cbosdo/kimchi
        def wrapper(*args, **kwargs):
            validate_method(('POST'), self.role_key, self.admin_methods)
            try:
                self.lookup()
                if not self.is_authorized():
                    raise UnauthorizedError('KCHAPI0009E')

                model_args = list(self.model_args)
                if action_args is not None:
                    request = parse_request()
                    model_args.extend(request[key] for key in action_args)

                action_fn = getattr(self.model, model_fn(self, action_name))
                action_result = action_fn(*model_args)
                return render_fn(self, action_result)
            except MissingParameter, e:
                raise cherrypy.HTTPError(400, e.message)
コード例 #5
0
ファイル: base.py プロジェクト: mprostko/kimchi
 def index(self):
     method = validate_method(('GET', 'DELETE', 'PUT'))
     if method == 'GET':
         try:
             return self.get()
         except NotFoundError, msg:
             raise cherrypy.HTTPError(404, "Not found: '%s'" % msg)
         except InvalidOperation, msg:
             raise cherrypy.HTTPError(400, "Invalid operation: '%s'" % msg)
コード例 #6
0
ファイル: base.py プロジェクト: Brainiarc7/kimchi
 def index(self):
     method = validate_method(('GET', 'DELETE', 'PUT'))
     if method == 'GET':
         try:
             return self.get()
         except NotFoundError, e:
             raise cherrypy.HTTPError(404, e.message)
         except InvalidOperation, e:
             raise cherrypy.HTTPError(400, e.message)
コード例 #7
0
 def index(self):
     method = validate_method(('GET', 'DELETE', 'PUT'))
     if method == 'GET':
         try:
             return self.get()
         except NotFoundError, e:
             raise cherrypy.HTTPError(404, e.message)
         except InvalidOperation, e:
             raise cherrypy.HTTPError(400, e.message)
コード例 #8
0
ファイル: base.py プロジェクト: EmperorBeezie/kimchi
 def wrapper(*args, **kwargs):
     validate_method(('POST'))
     try:
         model_args = list(self.model_args)
         if action_args is not None:
             request = parse_request()
             model_args.extend(request[key] for key in action_args)
         fn = getattr(self.model, model_fn(self, action_name))
         ident = fn(*model_args)
         self._redirect(ident)
         uri_params = []
         for arg in self.model_args:
             if arg is None:
                 arg = ''
             uri_params.append(urllib2.quote(arg.encode('utf-8'),
                               safe=""))
         raise internal_redirect(self.uri_fmt % tuple(uri_params))
     except MissingParameter, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #9
0
ファイル: base.py プロジェクト: shaohef/kimchi
 def index(self):
     method = validate_method(('GET', 'DELETE', 'PUT'))
     try:
         return {
             'GET': self.get,
             'DELETE': self.delete,
             'PUT': self.update
         }[method]()
     except InvalidOperation, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #10
0
 def wrapper(*args, **kwargs):
     validate_method(('POST'))
     try:
         model_args = list(self.model_args)
         if action_args is not None:
             request = parse_request()
             model_args.extend(request[key] for key in action_args)
         fn = getattr(self.model, model_fn(self, action_name))
         ident = fn(*model_args)
         self._redirect(ident)
         uri_params = []
         for arg in self.model_args:
             if arg is None:
                 arg = ''
             uri_params.append(
                 urllib2.quote(arg.encode('utf-8'), safe=""))
         raise internal_redirect(self.uri_fmt % tuple(uri_params))
     except MissingParameter, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #11
0
        def wrapper(*args, **kwargs):
            validate_method(('POST'), self.role_key, self.admin_methods)
            try:
                self.lookup()
                if not self.is_authorized():
                    raise UnauthorizedError('KCHAPI0009E')

                model_args = list(self.model_args)
                if action_args is not None:
                    request = parse_request()
                    model_args.extend(request[key] for key in action_args)

                action_fn = getattr(self.model, model_fn(self, action_name))
                action_result = action_fn(*model_args)
                if destructive is False or \
                    ('persistent' in self.info.keys() and
                     self.info['persistent'] is True):
                    return render_fn(self, action_result)
            except MissingParameter, e:
                raise cherrypy.HTTPError(400, e.message)
コード例 #12
0
ファイル: base.py プロジェクト: Brainiarc7/kimchi
 def index(self, *args, **kwargs):
     method = validate_method(('GET', 'POST'))
     if method == 'GET':
         try:
             filter_params = cherrypy.request.params
             validate_params(filter_params, self, 'get_list')
             return self.get(filter_params)
         except InvalidOperation, e:
             raise cherrypy.HTTPError(400, e.message)
         except NotFoundError, e:
             raise cherrypy.HTTPError(404, e.message)
コード例 #13
0
ファイル: base.py プロジェクト: EmperorBeezie/kimchi
 def index(self, *args, **kwargs):
     method = validate_method(('GET', 'POST'))
     try:
         if method == 'GET':
             filter_params = cherrypy.request.params
             validate_params(filter_params, self, 'get_list')
             return self.get(filter_params)
         elif method == 'POST':
             return self.create(parse_request(), *args)
     except InvalidOperation, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #14
0
 def index(self, *args, **kwargs):
     method = validate_method(('GET', 'POST'))
     if method == 'GET':
         try:
             filter_params = cherrypy.request.params
             validate_params(filter_params, self, 'get_list')
             return self.get(filter_params)
         except InvalidOperation, e:
             raise cherrypy.HTTPError(400, e.message)
         except NotFoundError, e:
             raise cherrypy.HTTPError(404, e.message)
コード例 #15
0
ファイル: base.py プロジェクト: shaohef/kimchi
 def index(self, *args, **kwargs):
     method = validate_method(('GET', 'POST'))
     try:
         if method == 'GET':
             filter_params = cherrypy.request.params
             validate_params(filter_params, self, 'get_list')
             return self.get(filter_params)
         elif method == 'POST':
             return self.create(parse_request(), *args)
     except InvalidOperation, e:
         raise cherrypy.HTTPError(400, e.message)
コード例 #16
0
ファイル: base.py プロジェクト: mprostko/kimchi
 def index(self, *args, **kwargs):
     method = validate_method(('GET', 'POST'))
     if method == 'GET':
         try:
             filter_params = cherrypy.request.params
             validate_params(filter_params, self, 'get_list')
             return self.get(filter_params)
         except InvalidOperation, param:
             error = "Invalid operation: '%s'" % param
             raise cherrypy.HTTPError(400, error)
         except NotFoundError, param:
             raise cherrypy.HTTPError(404, "Not found: '%s'" % param)
コード例 #17
0
ファイル: base.py プロジェクト: cbosdo/kimchi
    def index(self):
        method = validate_method(('GET', 'DELETE', 'PUT'),
                                 self.role_key, self.admin_methods)

        try:
            self.lookup()
            if not self.is_authorized():
                raise UnauthorizedError('KCHAPI0009E')

            return {'GET': self.get,
                    'DELETE': self.delete,
                    'PUT': self.update}[method]()
        except InvalidOperation, e:
            raise cherrypy.HTTPError(400, e.message)
コード例 #18
0
    def index(self, *args, **kargs):
        method = validate_method(('GET', 'DELETE', 'PUT'), self.role_key,
                                 self.admin_methods)

        try:
            self.lookup()
            if not self.is_authorized():
                raise UnauthorizedError('KCHAPI0009E')

            return {
                'GET': self.get,
                'DELETE': self.delete,
                'PUT': self.update
            }[method](*args, **kargs)
        except InvalidOperation, e:
            raise cherrypy.HTTPError(400, e.message)