def loadbalance_undeploy(self, request_body): """ Remove loadbalancer configuration for a given API """ obj_to_store = self.read_json(request_body) self.validate_json(obj_to_store, ['api_id']) loadbalance_undeploy_result = loadbalance_undeploy(api_id=obj_to_store['api_id']) logging.info('Loadbalance undeploy result: {}'.format(loadbalance_undeploy_result)) return loadbalance_undeploy_result
def undeploy_api_by_host(self, db_object): """ Undeploy a single API on given app host """ self.validate_json(db_object, ['_id', '_data']) api = db_object['_data'] db_id = db_object['_id'] res = undeploy_api(api_id=api['api_id'], api_host=api['app_host']) logging.info("Undeploy API response is type={} and has content:{}".format(type(res), res)) if type(res) == UndeployConfirmationMessage: logging.info("Received UndeployConfirmationMessage for API ID:{}".format(api['api_id'])) undeploy_result = res.to_dict() elif type(res) == dict: logging.warn("Received Simple dictionary for API ID:{}".format(api['api_id'])) undeploy_result = res else: logging.warn("Received Empty message for API ID:{}".format(api['api_id'])) undeploy_result = {} logging.info("Undeploy result for API:{} on host:{}".format(api['api_id'], api['app_host'])) res = loadbalance_undeploy(api_id=api['api_id']) logging.info("Loadbalance update API response is type={} and has content:{}".format(type(res), res)) if type(res) == LoadbalanceUpdateConfirmationMessage: logging.info("Received LoadbalanceUpdateConfirmationMessage for API ID:{}".format(api['api_id'])) loadbalance_undeploy_result = res.to_dict() elif type(res) == dict: logging.warn("Received Simple dictionary on Loadbalance update for API ID:{}".format(api['api_id'])) loadbalance_undeploy_result = res else: logging.warn("Received Empty message on Loadbalance update for API ID:{}".format(api['api_id'])) loadbalance_undeploy_result = {} logging.info('Loadbalancer undeploy result for API:{} = {}'.format(api['api_id'], loadbalance_undeploy_result)) logging.debug('Deleting reference for API ID:{}'.format(api['api_id'])) self.repository.remove(db_id).get_data() undeploy_result.update(loadbalance_undeploy_result) logging.info('Merged result: {}'.format(undeploy_result)) return undeploy_result