From 678e65fa7938114bf7d66f212b16cef8633db214 Mon Sep 17 00:00:00 2001 From: Gokul Singaraju Date: Mon, 21 May 2018 15:32:52 -0400 Subject: Miss HB CBS integration Issue-ID: DCAEGEN2-279 Change-Id: I3f78e0870d4c620a304fb8d218f1d30187b4fbef Signed-off-by: Gokul Singaraju --- miss_htbt_service/mod/trapd_get_cbs_config.py | 120 ++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100755 miss_htbt_service/mod/trapd_get_cbs_config.py (limited to 'miss_htbt_service/mod/trapd_get_cbs_config.py') diff --git a/miss_htbt_service/mod/trapd_get_cbs_config.py b/miss_htbt_service/mod/trapd_get_cbs_config.py new file mode 100755 index 0000000..c108107 --- /dev/null +++ b/miss_htbt_service/mod/trapd_get_cbs_config.py @@ -0,0 +1,120 @@ +# ============LICENSE_START======================================================= +# org.onap.dcae +# ================================================================================ +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +""" +Look for CBS broker and return application config; if not present, look for +env variable that specifies JSON equiv of CBS config (typically used for +testing purposes) +""" + +__docformat__ = 'restructuredtext' + +import json +import os +import sys +import string +import time +import traceback +import collections + +import mod.trapd_settings as tds +from onap_dcae_cbs_docker_client.client import get_config +from mod.trapd_exit import cleanup,cleanup_and_exit +from mod.trapd_io import stdout_logger + +prog_name = os.path.basename(__file__) + + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# function: trapd_get_config_sim +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + + +def get_cbs_config(): + """ + Get config values from CBS or JSON file (fallback) + :Parameters: + none + :Exceptions: + """ + + tds.c_config = {} + + # See if we are in a config binding service (CBS) /controller environment + try: + tds.c_config = get_config() + if tds.c_config == {}: + msg = "Unable to fetch CBS config or it is erroneously empty - trying override/simulator config" + stdout_logger(msg) + + # if no CBS present, default to JSON config specified via CBS_HTBT_JSON env var + except Exception as e: + msg = "ONAP controller not present, trying json config override via CBS_HTBT_JSON env variable" + stdout_logger(msg) + + try: + _cbs_sim_json_file = os.getenv("CBS_HTBT_JSON", "None") + except Exception as e: + msg = "CBS_HTBT_JSON not defined - FATAL ERROR, exiting" + stdout_logger(msg) + cleanup(1,None) + return False + + if _cbs_sim_json_file == "None": + msg = "CBS_HTBT_JSON not defined - FATAL ERROR, exiting" + stdout_logger(msg) + cleanup(1,None) + return False + else: + msg = ("ONAP controller override specified via CBS_HTBT_JSON: %s" % + _cbs_sim_json_file) + stdout_logger(msg) + try: + tds.c_config = json.load(open(_cbs_sim_json_file)) + except Exception as e: + msg = "Unable to load CBS_HTBT_JSON " + _cbs_sim_json_file + \ + " (invalid json?) - FATAL ERROR, exiting" + stdout_logger(msg) + cleanup_and_exit(1,None) + + # recalc timeout, set default if not present + try: + tds.timeout_seconds = tds.c_config['publisher.http_timeout_milliseconds'] / 1000.0 + except Exception as e: + tds.timeout_seconds = 1.5 + + # recalc seconds_between_retries, set default if not present + try: + tds.seconds_between_retries = tds.c_config['publisher.http_milliseconds_between_retries'] / 1000.0 + except Exception as e: + tds.seconds_between_retries = .750 + + # recalc min_severity_to_log, set default if not present + try: + tds.minimum_severity_to_log = tds.c_config['files.minimum_severity_to_log'] + except Exception as e: + tds.minimum_severity_to_log = 3 + + try: + tds.publisher_retries = tds.c_config['publisher.http_retries'] + except Exception as e: + tds.publisher_retries = 3 + + return True -- cgit 1.2.3-korg