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
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
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
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