コード例 #1
0
ファイル: obj.py プロジェクト: iostackproject/vertigo
    def GET(self):
        """
        GET handler on Object
        """
        response = self.request.get_response(self.app)

        start = time.time()

        if self.obj.endswith("/"):
            # is a pseudo-folder, for the moment the microcontrollers are
            # not executed over a psudo-folder
            mc_list = None
        else:
            mc_list = get_microcontroller_list_object(response.headers, self.method)

        if mc_list:
            self.logger.info("Vertigo - There are microcontrollers" + " to execute: " + str(mc_list))
            self._setup_docker_gateway(response)
            mc_data = self.mc_docker_gateway.execute_microcontrollers(mc_list)
            response = self._process_mc_data(response, mc_data)
        else:
            self.logger.info("Vertigo - No microcontrollers to execute")

        end = time.time() - start
        self.logger.info("---")
        self.logger.info("Total execution time: " + str(int(round(end * 1000))) + "ms")
        self.logger.info("---")
        # f = open('/home/lab144/josep/middleware_get_tstamp.log','a')
        # f.write(str(end)+'\n') # python will convert \n to os.linesep
        # f.close()

        return response
コード例 #2
0
ファイル: obj.py プロジェクト: cy0713/vertigo
    def GET(self):
        """
        GET handler on Object
        """
        response = self.request.get_response(self.app)

        # start = time.time()

        if self.obj.endswith('/'):
            # is a pseudo-folder
            mc_list = None
        else:
            mc_list = get_microcontroller_list_object(response.headers,
                                                      self.method)

        if mc_list:
            self.logger.info('Vertigo - There are microcontrollers' +
                             ' to execute: ' + str(mc_list))
            self._setup_docker_gateway(response)
            mc_data = self.mc_docker_gateway.execute_microcontrollers(mc_list)
            response = self._process_mc_data(response, mc_data)
        else:
            self.logger.info('Vertigo - No microcontrollers to execute')

        # end = time.time() - start
        # f = open("/tmp/vertigo/vertigo_get_overhead.log", 'a')
        # f.write(str(int(round(end * 1000)))+'\n')
        # f.close()

        return response
コード例 #3
0
ファイル: proxy.py プロジェクト: cy0713/vertigo
    def PUT(self):
        """
        PUT handler on Proxy
        """
        if self.is_trigger_assignation or self.is_trigger_deletion:
            response = self._process_trigger_assignation_deletion_request()
        elif self.is_object_grouping:
            pass
        elif self.is_object_move:
            response = self._process_object_move_and_link()
        else:
            # When a users puts an object, the microcontrollers assigned to the
            # parent container or pseudo-folder are assigned by default to
            # the new object. Onput microcontrollers are executed here.
            # start = time.time()
            mc_metadata = self._get_parent_vertigo_metadata()
            self.request.headers.update(mc_metadata)
            mc_list = get_microcontroller_list_object(mc_metadata, self.method)
            if mc_list:
                self.logger.info('Vertigo - There are microcontrollers' +
                                 ' to execute: ' + str(mc_list))
                self._setup_docker_gateway()
                mc_data = self.mc_docker_gateway.execute_microcontrollers(
                    mc_list)
                # end = time.time() - start
                response = self._process_mc_data(mc_data)
                # f = open("/tmp/vertigo/vertigo_put_overhead.log", 'a')
                # f.write(str(int(round(end * 1000)))+'\n')
                # f.close()
            else:
                response = self.request.get_response(self.app)

        return response
コード例 #4
0
ファイル: proxy.py プロジェクト: iostackproject/vertigo
    def PUT(self):
        """
        PUT handler on Proxy
        """
        if self.is_trigger_assignation or self.is_trigger_deletion:
            response = self._process_trigger_assignation_deletion_request()
        elif self.is_object_grouping:
            pass
        elif self.is_object_move:
            response = self._process_object_move_and_link()
        else:
            # When a users puts an object, the microcontrollers assigned to the
            # parent container or pseudo-folder are assigned by default to
            # the new object. Onput microcontrollers are executed here.
            mc_metadata = self._get_parent_vertigo_metadata()
            self.request.headers.update(mc_metadata)
            mc_list = get_microcontroller_list_object(mc_metadata, self.method)
            if mc_list:
                # TODO: Execute MC on PUT
                pass
            response = self.request.get_response(self.app)

        return response