From a86243058c2daa560aebaecdb096ff63788a6f44 Mon Sep 17 00:00:00 2001 From: PrakashH Date: Mon, 28 Jan 2019 20:49:02 +0000 Subject: Heartbeat Microservice Support Heartbeat service monitors missing HB notification Issue-ID: DCAEGEN2-267 Change-Id: I0fd191b2a3495202e22f633ada4a1350a97557ad Signed-off-by: PrakashH --- miss_htbt_service/mod/trapd_get_cbs_config.py | 10 +- miss_htbt_service/mod/trapd_vnf_table.py | 135 +++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 8 deletions(-) (limited to 'miss_htbt_service/mod') diff --git a/miss_htbt_service/mod/trapd_get_cbs_config.py b/miss_htbt_service/mod/trapd_get_cbs_config.py index d2b615f..47ba223 100644 --- a/miss_htbt_service/mod/trapd_get_cbs_config.py +++ b/miss_htbt_service/mod/trapd_get_cbs_config.py @@ -58,9 +58,9 @@ def get_cbs_config(): # See if we are in a config binding service (CBS) /controller environment try: + msg = "Unable to fetch CBS config or it is erroneously empty - trying override/simulator config" 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 @@ -69,15 +69,15 @@ def get_cbs_config(): stdout_logger(msg) try: + msg = "CBS_HTBT_JSON not defined - FATAL ERROR, exiting" _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 + msg = "CBS_HTBT_JSON not defined - FATAL ERROR, exiting" if _cbs_sim_json_file == "None": - msg = "CBS_HTBT_JSON not defined - FATAL ERROR, exiting" stdout_logger(msg) cleanup(1,None) return False @@ -85,11 +85,11 @@ def get_cbs_config(): msg = ("ONAP controller override specified via CBS_HTBT_JSON: %s" % _cbs_sim_json_file) stdout_logger(msg) + msg = "Unable to load CBS_HTBT_JSON " + _cbs_sim_json_file + \ + " (invalid json?) - FATAL ERROR, exiting" 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(0,None) diff --git a/miss_htbt_service/mod/trapd_vnf_table.py b/miss_htbt_service/mod/trapd_vnf_table.py index a76c886..b180bf5 100644 --- a/miss_htbt_service/mod/trapd_vnf_table.py +++ b/miss_htbt_service/mod/trapd_vnf_table.py @@ -35,9 +35,16 @@ import logging import get_logger import yaml import os.path as path +import db_monitoring as dbmon +import json +from onap_dcae_cbs_docker_client.client import get_config +import unittest +import time +import subprocess prog_name = os.path.basename(__file__) hb_properties_file = path.abspath(path.join(__file__, "../../config/hbproperties.yaml")) +_logger = get_logger.get_logger(__name__) def hb_properties(): #Read the hbproperties.yaml for postgress and CBS related data @@ -54,7 +61,6 @@ def hb_properties(): s.close() return ip_address, port_num, user_name, password, db_name, cbs_polling_required, cbs_polling_interval -ip_address, port_num, user_name, password, db_name, cbs_polling_required, cbs_polling_interval = hb_properties() def verify_DB_creation_1(user_name,password,ip_address,port_num,db_name): connection_db = pm.postgres_db_open(user_name,password,ip_address,port_num,db_name) @@ -90,17 +96,140 @@ def verify_DB_creation_hb_common(user_name,password,ip_address,port_num,db_name) def verify_cbsPolling_required(): + _cbspolling_status = True + os.environ['pytest']='test' + #os.environ['CONSUL_HOST']='10.12.6.50' # Used this IP during testing + os.environ['CONSUL_HOST']='localhost' + os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' try: _cbspolling_status=cf.config_notif_run() except Exception as e: - return None + print("Config_notify error - ",e) + #return None + os.unsetenv('pytest') + os.unsetenv('CONSUL_HOST') + os.unsetenv('SERVICE_NAME') return _cbspolling_status def verify_cbspolling(): + os.environ['pytest']='test' + os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' try: - _cbspolling=cbs.currentpidMain(10) + _cbspolling=cbs.pollCBS(10) except Exception as e: + #print("CBSP error - ",e) return None + os.unsetenv('pytest') + os.unsetenv('SERVICE_NAME') return _cbspolling + +def verify_fetch_json_file(): + os.environ['pytest']='test' + os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' + #os.environ['CONSUL_HOST']='10.12.6.50' # Used this IP during testing + os.environ['CONSUL_HOST']='localhost' + os.environ['HOSTNAME']='mvp-dcaegen2-heartbeat-static' + try: + db.fetch_json_file() + result = True + except Exception as e: + result = False + print(result) + os.unsetenv('pytest') + os.unsetenv('SERVICE_NAME') + os.unsetenv('CONSUL_HOST') + os.unsetenv('HOSTNAME') + return result + +def verify_misshtbtdmain(): + os.environ['pytest']='test' + os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' + #os.environ['CONSUL_HOST']='10.12.6.50' + os.environ['CONSUL_HOST']='localhost' + os.environ['HOSTNAME']='mvp-dcaegen2-heartbeat-static' + + try: + db.main() + result = True + except Exception as e: + result = False + print(result) + os.unsetenv('pytest') + os.unsetenv('SERVICE_NAME') + os.unsetenv('CONSUL_HOST') + os.unsetenv('HOSTNAME') + return result + +def verify_dbmonitoring(): + os.environ['pytest']='test' + os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' + #os.environ['CONSUL_HOST']='10.12.6.50' + os.environ['CONSUL_HOST']='localhost' + os.environ['HOSTNAME']='mvp-dcaegen2-heartbeat-static' + try: + jsfile = db.fetch_json_file() + ip_address, port_num, user_name, password, db_name, cbs_polling_required, cbs_polling_interval = hb_properties() + hbc_pid, hbc_state, hbc_srcName, hbc_time = db.read_hb_common(user_name,password,ip_address,port_num,db_name) + dbmon.db_monitoring(hbc_pid,jsfile,user_name,password,ip_address,port_num,db_name) + result = True + except Exception as e: + print("Message process error - ",e) + result = False + print(result) + os.unsetenv('pytest') + os.unsetenv('SERVICE_NAME') + os.unsetenv('CONSUL_HOST') + os.unsetenv('HOSTNAME') + return result + +def verify_dbmon_startup(): + try: + p = subprocess.Popen(['./miss_htbt_service/db_monitoring.py'], stdout=subprocess.PIPE,shell=True) + time.sleep(1) + except Exception as e: + #print( "Message process error - ",e) + return None + return True + +def verify_sendControlLoop_VNF_ONSET(): + try: +# _CL_return = sendControlLoopEvent(CLType, pol_url, policy_version, policy_name, policy_scope, target_type, srcName, epoc_time, closed_control_loop_name, version, target) + pol_url = "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/" + _CL_return = dbmon.sendControlLoopEvent("ONSET", pol_url, "1.0", "vFireWall", "pscope", "VNF", "srcname1", 1541234567, "SampleCLName", "1.0", "genVnfName") + except Exception as e: + #msg = "Message process error - ",err + #_logger.error(msg) + return None + return _CL_return + +def verify_sendControlLoop_VM_ONSET(): + try: + pol_url = "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/" + _CL_return = dbmon.sendControlLoopEvent("ONSET", pol_url, "1.0", "vFireWall", "pscope", "VM", "srcname1", 1541234567, "SampleCLName", "1.0", "genVnfName") + except Exception as e: + #msg = "Message process error - ",err + #_logger.error(msg) + return None + return _CL_return + +def verify_sendControlLoop_VNF_ABATED(): + try: + pol_url = "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/" + _CL_return = dbmon.sendControlLoopEvent("ABATED", pol_url, "1.0", "vFireWall", "pscope", "VNF", "srcname1", 1541234567, "SampleCLName", "1.0", "genVnfName") + except Exception as e: + #msg = "Message process error - ",err + #_logger.error(msg) + return None + return _CL_return + +def verify_sendControlLoop_VM_ABATED(): + try: + pol_url = "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/" + _CL_return = dbmon.sendControlLoopEvent("ABATED", pol_url, "1.0", "vFireWall", "pscope", "VM", "srcname1", 1541234567, "SampleCLName", "1.0", "genVnfName") + except Exception as e: +# msg = "Message process error - ",err +# _logger.error(msg) + return None + return _CL_return -- cgit 1.2.3-korg