Beispiel #1
0
    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
Beispiel #2
0
    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