def get(self): """This method handles the GET requests to retrieve status on instances from the Cloud Verifier. Currently, only instances resources are available for GETing, i.e. /v1/instances. All other GET uri's will return errors. instances requests require a single instance_id parameter which identifies the instance to be returned. If the instance_id is not found, a 404 response is returned. If the instance_id was not found, it either completed successfully, or failed. If found, the instance_id is still polling to contact the Cloud Node. """ instance_id = self.get_argument("instance_id", default=None, strip=True) if instance_id is not None: instance = cloud_verifier_common.get_instance(instance_id) if instance != None: response = cloud_verifier_common.process_get_status(instance) self.set_status(200) self.write(response) logger.info('GET returning 200 response for instance_id: ' + instance_id) else: logger.info('GET returning 404 response. instance_id: ' + instance_id + ' not found.') self.set_status(404) else: # return the available keys in the DB json_response = cloud_verifier_common.get_instance_ids() self.set_status(200) #Since the data is essentially a string, set the content type explicitly self.set_header('Content-Type', 'application/json') print json_response self.write(json_response) logger.info('GET returning 200 response for instance_id list')
def get(self): """This method handles the GET requests to retrieve status on instances from the Cloud Verifier. Currently, only instances resources are available for GETing, i.e. /v2/instances. All other GET uri's will return errors. instances requests require a single instance_id parameter which identifies the instance to be returned. If the instance_id is not found, a 404 response is returned. If the instance_id was not found, it either completed successfully, or failed. If found, the instance_id is still polling to contact the Cloud Node. """ rest_params = common.get_restful_params(self.request.path) if rest_params is None: common.echo_json_response( self, 405, "Not Implemented: Use /v2/instances/ interface") return if "instances" not in rest_params: common.echo_json_response(self, 400, "uri not supported") logger.warning('GET returning 400 response. uri not supported: ' + self.request.path) return instance_id = rest_params["instances"] if instance_id is not None: instance = self.db.get_instance(instance_id) if instance != None: response = cloud_verifier_common.process_get_status(instance) common.echo_json_response(self, 200, "Success", response) #logger.info('GET returning 200 response for instance_id: ' + instance_id) else: #logger.info('GET returning 404 response. instance id: ' + instance_id + ' not found.') common.echo_json_response(self, 404, "instance id not found") else: # return the available keys in the DB json_response = self.db.get_instance_ids() common.echo_json_response(self, 200, "Success", {'uuids': json_response}) logger.info('GET returning 200 response for instance_id list')