Пример #1
0
 def PUT(self, name, attrib=None):
     session = cherrypy.request.db
     cherrypy.response.headers["content-type"] = "text/plain"
     body = cherrypy.request.body.read().decode()
     if cherrypy.request.process_request_body == True:
         if attrib == None:
             element = Monitor.import_one(session, body, name=name)
             if isinstance(element, Monitor):
                 element = Monitor.add_one(session, element)
                 if isinstance(element, Monitor):
                     client_com.send_requests_process(
                         {"backend": None}, "PUT", "monitor", name, attrib, body, "text/xml"
                     )
                     return "Monitor %s added" % name
                 elif element == Monitor.ERROR_ELEMENT_ALREADY_EXISTS:
                     raise cherrypy.HTTPError("403", "Monitor %s alread exists" % name)
             elif element == Monitor.ERROR_TAG_NOT_VALID:
                 raise cherrypy.HTTPError("400", "Tag not valid")
         else:
             if not isinstance(cherrypy.request.role, str):
                 element = Monitor.get_one(session, name)
                 if isinstance(element, Monitor):
                     element = Monitor.edit_one(session, element, attrib, body)
                     if isinstance(element, Monitor):
                         client_com.send_requests_process(
                             {"backend": None}, "PUT", "monitor", name, attrib, body, "text/plain"
                         )
                         return "Monitor %s attribute %s value %s changed" % (name, attrib, body)
                     elif element == Monitor.ERROR_ATTRIB_NOT_VALID:
                         raise cherrypy.HTTPError("404", "Attribute %s not found" % attrib)
                 elif element == Monitor.ERROR_ELEMENT_NOT_EXISTS:
                     raise cherrypy.HTTPError("404", "Monitor %s not found" % name)
             else:
                 raise cherrypy.HTTPError("401", "You are not allowed to access this resource.")
     else:
         raise cherrypy.HTTPError("400", "No body specified")