diff options
author | Alex Shatov <alexs@att.com> | 2018-03-20 10:55:03 -0400 |
---|---|---|
committer | Alex Shatov <alexs@att.com> | 2018-03-20 10:55:03 -0400 |
commit | 14411ac0ec0df8a32ab5d360c5a7fdb87ca51e26 (patch) | |
tree | b47d47616743f889678f4675c9cef8c7d867f360 /policyhandler/deploy_handler.py | |
parent | 7e220c8dd68a969885287689c15d8dc711a06f8a (diff) |
2.4.0 dns based discovery of deployment-handler
- policy-handler uses dns based discovery of
deployment-handler - driven by config
- new data structure for deploy_handler section of config
-- changed from string "deployment_handler" in 2.3.1
to structure in 2.4.0
deploy_handler :
# name of deployment-handler service
# used by policy-handler for logging
target_entity : "deployment_handler"
# url of the deployment-handler service
# for policy-handler to direct the policy-updates to
# - expecting dns to resolve the name
# deployment_handler to ip address
url : "http://deployment_handler:8188"
- logic is backwards compatible with 2.3.1 format
- removed import pip from audit
-- import pip broken in pip 9.0.2 (2018-03-19)
-- import pip conflicts with requests
-- pip API is not officially supported
-- see links for more
https://github.com/pypa/pip/issues/5079
https://github.com/pypa/pip/issues/5081
Change-Id: Ifcaba6cfd714f3099ab7a25fe979a3696a6460fc
Signed-off-by: Alex Shatov <alexs@att.com>
Issue-ID: DCAEGEN2-404
Diffstat (limited to 'policyhandler/deploy_handler.py')
-rw-r--r-- | policyhandler/deploy_handler.py | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/policyhandler/deploy_handler.py b/policyhandler/deploy_handler.py index f1a1294..139e660 100644 --- a/policyhandler/deploy_handler.py +++ b/policyhandler/deploy_handler.py @@ -24,9 +24,9 @@ import logging import requests from .config import Config +from .customize import CustomizerUser from .discovery import DiscoveryClient from .onap.audit import REQUEST_X_ECOMP_REQUESTID, Audit, AuditHttpCode -from .customize import CustomizerUser POOL_SIZE = 1 @@ -38,7 +38,7 @@ class DeployHandler(object): _requests_session = None _config = None _url = None - _url_path = None + _url_policy = None _target_entity = None _custom_kwargs = None _server_instance_uuid = None @@ -66,10 +66,30 @@ class DeployHandler(object): requests.adapters.HTTPAdapter(pool_connections=POOL_SIZE, pool_maxsize=POOL_SIZE) ) - DeployHandler._target_entity = Config.config.get("deploy_handler", "deploy_handler") - DeployHandler._url = DiscoveryClient.get_service_url(audit, DeployHandler._target_entity) - DeployHandler._url_path = (DeployHandler._url or "") + '/policy' - DeployHandler._logger.info("DeployHandler url(%s)", DeployHandler._url) + config_dh = Config.config.get("deploy_handler") + if config_dh and isinstance(config_dh, dict): + # dns based routing to deployment-handler + # config for policy-handler >= 2.4.0 + # "deploy_handler" : { + # "target_entity" : "deployment_handler", + # "url" : "http://deployment_handler:8188" + # } + DeployHandler._target_entity = config_dh.get("target_entity", "deployment_handler") + DeployHandler._url = config_dh.get("url") + DeployHandler._logger.info("dns based routing to %s: url(%s)", + DeployHandler._target_entity, DeployHandler._url) + + if not DeployHandler._url: + # discover routing to deployment-handler at consul-services + if not isinstance(config_dh, dict): + # config for policy-handler <= 2.3.1 + # "deploy_handler" : "deployment_handler" + DeployHandler._target_entity = str(config_dh or "deployment_handler") + DeployHandler._url = DiscoveryClient.get_service_url(audit, DeployHandler._target_entity) + + DeployHandler._url_policy = str(DeployHandler._url or "") + '/policy' + DeployHandler._logger.info( + "got %s policy url(%s)", DeployHandler._target_entity, DeployHandler._url_policy) @staticmethod def policy_update(audit, message): @@ -83,14 +103,14 @@ class DeployHandler(object): DeployHandler._lazy_init(audit) sub_aud = Audit(aud_parent=audit, targetEntity=DeployHandler._target_entity, - targetServiceName=DeployHandler._url_path) + targetServiceName=DeployHandler._url_policy) headers = {REQUEST_X_ECOMP_REQUESTID : sub_aud.request_id} msg_str = json.dumps(message) headers_str = json.dumps(headers) log_action = "post to {0} at {1}".format( - DeployHandler._target_entity, DeployHandler._url_path) + DeployHandler._target_entity, DeployHandler._url_policy) log_data = " msg={0} headers={1}".format(msg_str, headers_str) log_line = log_action + log_data DeployHandler._logger.info(log_line) @@ -107,7 +127,7 @@ class DeployHandler(object): res = None try: res = DeployHandler._requests_session.post( - DeployHandler._url_path, json=message, headers=headers, + DeployHandler._url_policy, json=message, headers=headers, **DeployHandler._custom_kwargs ) except requests.exceptions.RequestException as ex: |