コード例 #1
0
 def end(self, data):
     log.msg("Sending data to client ",
             self.request.clientId,
             "data",
             str(data),
             system="rest handlers",
             logLevel=logging.DEBUG)
     r = ResponseGenerator(
         self.request,
         status=200,
         contentType="application/pollapli.eventList+json",
         resource="events",
         rootUri="/rest/config/events")
     r._build_response(data)
コード例 #2
0
    def render_POST(self, request):
        """
        Handler for POST requests of environments
        extract the data from the request body to add a new environment
        """
        @defer.inlineCallbacks
        def extract_args(result):
            name = result["name"] or ""
            description = result.get("description") or ""
            status = result.get("status") or "live"
            defer.returnValue((yield self.environmentManager.add_environment(
                name=name, description=description, status=status)))

        r = ResponseGenerator(
            request,
            status=201,
            contentType="application/pollapli.environment+json",
            resource="environment",
            rootUri=self.rootUri)
        d = RequestParser(request, "environment", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(extract_args, errback=r._build_response)
        d.addBoth(r._build_response)
        request._call = reactor.callLater(0, d.callback, None)
        return NOT_DONE_YET
コード例 #3
0
ファイル: task_handlers.py プロジェクト: kaosat-dev/Pollapli
    def render_POST(self, request):
        """
        Handler for POST requests of task status
        """
        @defer.inlineCallbacks
        def extract_args(result):
            start = result.get("start")
            pause = result.get("pause")
            stop = result.get("stop")
            print("task status: start", start, "pause", pause, "stop", stop)
            if start:
                defer.returnValue(
                    (yield self.environmentManager.get_environment(
                        self.envId).get_task(self.taskId).start()))
            elif pause:
                defer.returnValue(
                    (yield self.environmentManager.get_environment(
                        self.envId).get_task(self.taskId).pause()))
            elif stop:
                defer.returnValue(
                    (yield self.environmentManager.get_environment(
                        self.envId).get_task(self.taskId).stop()))

        r = ResponseGenerator(
            request,
            status=201,
            contentType="application/pollapli.task.status+json",
            resource="taskstatus",
            rootUri=self.rootUri)
        d = RequestParser(request, "task status", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(extract_args, errback=r._build_response)
        d.addBoth(r._build_response)
        request._call = reactor.callLater(0, d.callback, None)
        return NOT_DONE_YET
コード例 #4
0
    def render_PUT(self, request):
        """
        Handler for PUT requests of environment
        """
        @defer.inlineCallbacks
        def extract_args(result):
            print("in extract args", result)
            name = result["name"] or ""
            description = result.get("description") or ""
            status = result.get("status") or "live"
            id = self.envId
            defer.returnValue((yield
                               self.environmentManager.update_environment(
                                   id=id,
                                   name=name,
                                   description=description,
                                   status=status)))

        r = ResponseGenerator(
            request,
            status=200,
            contentType="application/pollapli.environment+json",
            resource="environment",
            rootUri=self.rootUri)
        d = RequestParser(request, "environment", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(extract_args, errback=r._build_response)
        d.addBoth(r._build_response)
        d.callback(None)
        return NOT_DONE_YET
コード例 #5
0
 def render_GET(self, request):
     """
     Handler for GET requests of driver types
     """
     r=ResponseGenerator(request,status=200,contentType="application/pollapli.driverTypeList+json",resource="driverTypes",rootUri=self.rootUri)
     d=RequestParser(request,"driverTypes",self.valid_contentTypes,self.validGetParams).ValidateAndParseParams()      
     d.addCallbacks(callback=lambda params:DriverManager.get_driver_types(params),errback=r._build_response)
     d.addBoth(r._build_response)
     request._call=reactor.callLater(0,d.callback,None)
     return NOT_DONE_YET
コード例 #6
0
 def render_DELETE(self, request):
     """ 
     Handler for DELETE requests of environment
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it deletes the
     current environment completely
     """
     r = ResponseGenerator(request, status=200, rootUri=self.rootUri)
     d = self.environmentManager.remove_environment(self.envId)
     d.addBoth(r._build_response)
     d.callback(None)
     return NOT_DONE_YET
コード例 #7
0
 def render_DELETE(self, request):
     """ 
     Handler for DELETE requests of environments
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it deletes ALL
     environments
     """
     r = ResponseGenerator(request, status=200, rootUri=self.rootUri)
     d = self.environmentManager.clear_environments()
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #8
0
 def render_DELETE(self,request):
     """ 
     Handler for DELETE requests for the driver
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it disconnects and
     removes the driver completely
     """
     r=ResponseGenerator(request,status=200,rootUri=self.rootUri)
     d=self.environmentManager.get_environment(self.envId).get_node(self.nodeId).delete_driver()
     d.addBoth(r._build_response)
     request._call=reactor.callLater(0,d.callback,None)
     return NOT_DONE_YET   
コード例 #9
0
 def render_GET(self, request):
     """
     Handler for GET requests of driver status
     """
     def extract_args(result):    
         return(self.environmentManager.get_environment(self.envId).get_node(self.nodeId).get_driver())            
     r=ResponseGenerator(request,contentType="application/pollapli.driver.status+json",resource="driver status",rootUri=self.rootUri)
     d=RequestParser(request,"driver status",self.valid_contentTypes,self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(extract_args,errback=r._build_response)
     d.addBoth(r._build_response)   
     request._call=reactor.callLater(0,d.callback,None)  
     return NOT_DONE_YET
コード例 #10
0
 def render_DELETE(self, request):
     """ 
     Handler for DELETE requests of files
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it deletes ALL
     files
     """
     r = ResponseGenerator(request, status=200)
     d = RequestParser(request, "files", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(callback=lambda params: FileManager.delete_files(),
                    errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #11
0
 def render_POST(self,request):
     """
     Handler for POST requests of driver
     """
     @defer.inlineCallbacks
     def extract_args(result):
        # print("in extract args",result)
         defer.returnValue((yield self.environmentManager.get_environment(self.envId).get_node(self.nodeId).set_driver(**result)))
     
     r=ResponseGenerator(request,status=201,contentType="application/pollapli.driver+json",resource="driver",rootUri=self.rootUri)
     d=RequestParser(request,"driver",self.valid_contentTypes,self.validGetParams).ValidateAndParseParams()    
     d.addCallbacks(extract_args,errback=r._build_response)    
     d.addBoth(r._build_response)
     request._call=reactor.callLater(0,d.callback,None)
     return NOT_DONE_YET
コード例 #12
0
ファイル: node_handlers.py プロジェクト: kaosat-dev/Pollapli
 def render_DELETE(self, request):
     """ 
     Handler for DELETE requests for the current node
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it deletes the
     current node completely
     """
     r = ResponseGenerator(request, status=200, rootUri=self.rootUri)
     d = RequestParser(request, "node", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(lambda params: self.environmentManager.get_environment(
         self.envId).delete_node(self.nodeId),
                    errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #13
0
ファイル: root_handlers.py プロジェクト: kaosat-dev/Pollapli
 def render_GET(self, request):
     """
     Handler for GET requests of node
     """
     r = ResponseGenerator(request,
                           status=200,
                           contentType="application/pollapli.node+json",
                           resource="node",
                           rootUri=self.rootUri)
     d = RequestParser(request, "node", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(lambda params: self.environmentManager.get_environment(
         self.envId).get_node(self.nodeId),
                    errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #14
0
 def render_PUT(self,request):
     """
     Handler for PUT requests for the driver 
     """
     @defer.inlineCallbacks
     def extract_args(result):
         name=result["name"] or ""
         description=result.get("description") or ""
         id=self.connectorId
         defer.returnValue((yield self.environmentManager.get_environment(self.envId).update_node(id=id,name=name,description=description)))
     
     r=ResponseGenerator(request,status=200,contentType="application/pollapli.driver+json",resource="driver",rootUri=self.rootUri)
     d=RequestParser(request,"driver",self.valid_contentTypes,self.validGetParams).ValidateAndParseParams()    
     d.addCallbacks(extract_args,errback=r._build_response)    
     d.addBoth(r._build_response)
     request._call=reactor.callLater(0,d.callback,None)
     return NOT_DONE_YET
コード例 #15
0
    def render_POST(self,request):
        """
        Handler for POST requests of connector status
        """
        @defer.inlineCallbacks
        def extract_args(result):  
            if result["connected"]:
                mode=result.get("mode") or 1
                defer.returnValue((yield self.environmentManager.get_environment(self.envId).get_node(self.nodeId).connect(mode=mode)))
            else:
                defer.returnValue((yield self.environmentManager.get_environment(self.envId).get_node(self.nodeId).disconnect()))

        r=ResponseGenerator(request,status=200,contentType="application/pollapli.driver.status+json",resource="driver status",rootUri=self.rootUri)
        d=RequestParser(request,"driver status",self.valid_contentTypes,self.validGetParams).ValidateAndParseParams()    
        d.addCallbacks(extract_args,errback=r._build_response)    
        d.addBoth(r._build_response)
        request._call=reactor.callLater(0,d.callback,None)
        return NOT_DONE_YET
コード例 #16
0
ファイル: task_handlers.py プロジェクト: kaosat-dev/Pollapli
 def render_POST(self, request):
     """
     Handler for POST requests of tasks
     extract the data from the request body to add a new task
     """
     r = ResponseGenerator(request,
                           status=201,
                           contentType="application/pollapli.task+json",
                           resource="task",
                           rootUri=self.rootUri)
     d = RequestParser(request, "task", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(callback=lambda params: self.environmentManager.
                    get_environment(self.envId).add_task(**params),
                    errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #17
0
 def render_GET(self, request):
     """
     Handler for GET requests for a single update
     """
     r = ResponseGenerator(
         request,
         status=200,
         contentType="application/pollapli.update.Status+json",
         resource="update status",
         rootUri=self.rootUri)
     d = RequestParser(request, "update status", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(
         lambda params: UpdateManager.get_update(id=self.updateId),
         errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #18
0
    def render_GET(self, request):
        """
        Handler for GET requests of events
        """
        r = ResponseGenerator(
            request,
            status=200,
            contentType="application/pollapli.eventList+json",
            resource="events",
            rootUri=self.rootUri)
        d = RequestParser(request, "events", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(self.clientHandler.add_delegate,
                       callbackArgs=[d, request],
                       errback=r._build_response)
        request._call = reactor.callLater(0, d.callback, None)

        return NOT_DONE_YET
コード例 #19
0
ファイル: node_handlers.py プロジェクト: kaosat-dev/Pollapli
 def render_DELETE(self, request):
     """ 
     Handler for DELETE requests of nodes
     WARNING !! needs to be used very carefully, with confirmation on the client side, as it deletes ALL
     nodes
     """
     print("NODE CLEARING")
     r = ResponseGenerator(request,
                           contentType="application/pollapli.nodeList+json",
                           status=200,
                           rootUri=self.rootUri)
     d = RequestParser(request, "node", self.valid_contentTypes,
                       self.validGetParams).ValidateAndParseParams()
     d.addCallbacks(callback=lambda params: self.environmentManager.
                    get_environment(self.envId).clear_nodes(),
                    errback=r._build_response)
     d.addBoth(r._build_response)
     request._call = reactor.callLater(0, d.callback, None)
     return NOT_DONE_YET
コード例 #20
0
    def render_POST(self, request):
        """
        Handler for POST requests of files
        """
        def save_file(result):
            def find_fileName():
                savedPosition = request.content.tell()
                try:
                    request.content.seek(0)
                    request.content.readline()
                    match = re.search(r'filename="([^"]+)"',
                                      request.content.readline())
                    if match:
                        return match.group(1)
                    else:
                        return None
                finally:
                    request.content.seek(savedPosition)

            fileName = find_fileName()
            saved_file = open(
                os.path.join(FileManager.dataPath, "printFiles", fileName),
                'w')
            saved_file.write(result.get("datafile")[0])
            saved_file.close()

        print("POST REQUESt", request, "content", str(request.content))
        r = ResponseGenerator(request,
                              status=201,
                              contentType="application/pollapli.fileList+json",
                              resource="files",
                              rootUri=self.rootUri)
        d = RequestParser(request, "files", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(callback=save_file, errback=r._build_response)
        d.addBoth(r._build_response)
        request._call = reactor.callLater(0, d.callback, None)
        return NOT_DONE_YET
コード例 #21
0
    def render_POST(self, request):
        """
        Handler for POST request for a specific update's status: this allows to start the download/setup process
        """
        def dostuff(result):
            if result["start"]:
                name = UpdateManager.get_update(id=self.updateId).name
                print("update to download", name)
                UpdateManager.downloadAndInstall_update(name)
            else:
                print("uh oh")

        r = ResponseGenerator(
            request,
            status=200,
            contentType="application/pollapli.update.status+json",
            resource="update status",
            rootUri=self.rootUri)
        d = RequestParser(request, "update status", self.valid_contentTypes,
                          self.validGetParams).ValidateAndParseParams()
        d.addCallbacks(callback=dostuff, errback=r._build_response)
        d.addBoth(r._build_response)
        request._call = reactor.callLater(0, d.callback, None)
        return NOT_DONE_YET
コード例 #22
0
 def render_DELETE(self,request):
     """Default DELETE handler"""
     log.msg("Using default DELETE handler", logLevel=logging.CRITICAL)
     r=ResponseGenerator(request,status=501)
     r._build_response("")
     return NOT_DONE_YET
コード例 #23
0
 def end(self, data):
     log.msg("Sending data to client ",self.request.clientId ,"data",str(data), system="rest handlers",logLevel=logging.DEBUG)
     r=ResponseGenerator(self.request,status=200,contentType="application/pollapli.eventList+json",resource="events",rootUri="/rest/config/events")
     r._build_response(data)
コード例 #24
0
 def render_DELETE(self, request):
     """Default DELETE handler"""
     log.msg("Using default DELETE handler", logLevel=logging.CRITICAL)
     r = ResponseGenerator(request, status=501)
     r._build_response("")
     return NOT_DONE_YET