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 --- tests/HB_Array.json | 82 ++++++++++++++++++++++++++++++++ tests/test_binding.py | 67 +++----------------------- tests/test_trapd_vnf_table.py | 106 +++++++++++++++++++----------------------- 3 files changed, 136 insertions(+), 119 deletions(-) create mode 100644 tests/HB_Array.json (limited to 'tests') diff --git a/tests/HB_Array.json b/tests/HB_Array.json new file mode 100644 index 0000000..1b44802 --- /dev/null +++ b/tests/HB_Array.json @@ -0,0 +1,82 @@ +[{ "event": { "commonEventHeader": { "vesEventListenerVersion": "7.0.2", "domain": "heartbeat", "eventId": "mvfs10", "eventName": "Heartbeat_vDNS1", "lastEpochMicrosec": 1548653647392, "priority": "Normal", "reportingEntityName": "ibcx0001vm002oam001", "sequence": 1000, "sourceName": "SOURCE_NAME2", "startEpochMicrosec": 1548653647392, "version": "4.0.2", "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", "sourceId": "VNFA_SRC1", "eventType": "platform", "nfcNamingCode": "VNFA", "nfNamingCode": "VNFA", "timeZoneOffset": "UTC-05:30" }, "heartbeatFields": { "heartbeatInterval": 20, "heartbeatFieldsVersion": "3.0" } } }, +{ + "event": { + "commonEventHeader": { + "vesEventListenerVersion": "7.0.2", + "domain": "heartbeat", + "eventId": "mvfs10", + "eventName": "Heartbeat_vFW1", + "lastEpochMicrosec": 1548653647392, + "priority": "Normal", + "reportingEntityName": "ibcx0001vm002oam001", + "sequence": 1000, + "sourceName": "SOURCE_NAME3", + "startEpochMicrosec": 1548653647392, + "version": "4.0.2", + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", + "sourceId": "VNFB_SRC5", + "eventType": "platform", + "nfcNamingCode": "VNFB", + "nfNamingCode": "VNFB", + "timeZoneOffset": "UTC-05:30" + }, + "heartbeatFields": { + "heartbeatInterval": 20, + "heartbeatFieldsVersion": "3.0" + } + } +}, +{ + "event": { + "commonEventHeader": { + "vesEventListenerVersion": "7.0.2", + "domain": "heartbeat", + "eventId": "mvfs10", + "eventName": "Heartbeat_vFW1", + "lastEpochMicrosec": 1548653647392, + "priority": "Normal", + "reportingEntityName": "ibcx0001vm002oam001", + "sequence": 1000, + "sourceName": "SOURCE_NAME4", + "startEpochMicrosec": 1548653647392, + "version": "4.0.2", + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", + "sourceId": "VNFA_SRC3", + "eventType": "platform", + "nfcNamingCode": "VNFA", + "nfNamingCode": "VNFA", + "timeZoneOffset": "UTC-05:30" + }, + "heartbeatFields": { + "heartbeatInterval": 20, + "heartbeatFieldsVersion": "3.0" + } + } +}, +{ + "event": { + "commonEventHeader": { + "vesEventListenerVersion": "7.0.2", + "domain": "heartbeat", + "eventId": "mvfs10", + "eventName": "Heartbeat_xx", + "lastEpochMicrosec": 1548653647392, + "priority": "Normal", + "reportingEntityName": "ibcx0001vm002oam001", + "sequence": 1000, + "sourceName": "SOURCE_NAME5", + "startEpochMicrosec": 1548653647392, + "version": "4.0.2", + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", + "sourceId": "VNFA_SRC3", + "eventType": "platform", + "nfcNamingCode": "VNFA", + "nfNamingCode": "VNFA", + "timeZoneOffset": "UTC-05:30" + }, + "heartbeatFields": { + "heartbeatInterval": 20, + "heartbeatFieldsVersion": "3.0" + } + } +} diff --git a/tests/test_binding.py b/tests/test_binding.py index bfa13ba..56a5ece 100644 --- a/tests/test_binding.py +++ b/tests/test_binding.py @@ -21,12 +21,10 @@ import io import requests import httpretty import sys -#import miss_htbt_service from miss_htbt_service import htbtworker from miss_htbt_service import misshtbtd from miss_htbt_service import db_monitoring -from miss_htbt_service import config_notif -#from miss_htbt_service.htbtworker import get_collector_uri,get_policy_uri +#from miss_htbt_service import config_notif from trapd_vnf_table import hb_properties import subprocess import pytest @@ -88,66 +86,13 @@ def test_resolve_all(): def test_full(): p = subprocess.Popen(['./miss_htbt_service/misshtbtd.py'], stdout=subprocess.PIPE,shell=True) #time.sleep(30) - #r = requests.get('http://127.0.0.1:10002') - #r = requests.get('http://localhost:10001') + #r = requests.get('http://localhost:10002') #print(r.status_code) #assert(r.status_code == 200) - #r = requests.post('http://127.0.0.1:10001',data={'number': '12524', 'health': 'good', 'action': 'show'}) + #r = requests.post('http://127.0.0.1:10002',data={'number': '12524', 'health': 'good', 'action': 'show'}) + #r = requests.post('http://localhost:10002',data={'number': '12524', 'health': 'good', 'action': 'show'}) #print(r.status_code) #assert(r.status_code == 200) -def test_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: - misshtbtd.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') - - assert(result == True) - -def test_misshtbtdmain(): - os.environ['pytest']='test' - os.environ['SERVICE_NAME']='mvp-dcaegen2-heartbeat-static' - os.environ['CONSUL_HOST']='localhost' - os.environ['HOSTNAME']='mvp-dcaegen2-heartbeat-static' - - try: - misshtbtd.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') - assert(result == True) - -def test_dbmonitoring(): - ip_address, port_num, user_name, password, db_name, cbs_polling_required, cbs_polling_interval = hb_properties() - jsfile = misshtbtd.fetch_json_file() - hbc_pid, hbc_state, hbc_srcName, hbc_time = misshtbtd.read_hb_common(user_name,password,ip_address,port_num,db_name) - db_monitoring.db_monitoring(hbc_pid,jsfile,user_name,password,ip_address,port_num,db_name) - -def test_htbtworker(): - if os.environ['pytest'] == 'test': - print ('environ is set') - else: - print ('environ is not set') - ip_address, port_num, user_name, password, db_name, cbs_polling_required, cbs_polling_interval = hb_properties() - jsfile = "/home/ubuntu/HB_Nov5/etc/config.json" - hbc_pid, hbc_state, hbc_srcName, hbc_time = config_notif.read_hb_common(user_name,password,ip_address,port_num,db_name) - #htbtworker.process_msg(jsfile,user_name, password, ip_address, port_num, db_name) - -def test_conifg_notif(): - config_notif.config_notif_run() +#def test_conifg_notif(): + #config_notif.config_notif_run() diff --git a/tests/test_trapd_vnf_table.py b/tests/test_trapd_vnf_table.py index b924cca..9e11ce9 100644 --- a/tests/test_trapd_vnf_table.py +++ b/tests/test_trapd_vnf_table.py @@ -18,7 +18,7 @@ # # ECOMP is a trademark and service mark of AT&T Intellectual Property. # -## Author Kiran Mandal (km386e) +## Author Prakask H (ph553f) """ test_trapd_vnf_table contains test cases related to DB Tables and cbs polling. """ @@ -29,8 +29,9 @@ import pytest import logging import misshtbtd as db import htbtworker as pm +import db_monitoring as dbmon import get_logger -from trapd_vnf_table import verify_DB_creation_1,verify_DB_creation_2,verify_DB_creation_hb_common,verify_cbsPolling_required,hb_properties,verify_cbspolling +from trapd_vnf_table import verify_DB_creation_1,verify_DB_creation_2,verify_DB_creation_hb_common,verify_cbsPolling_required,hb_properties,verify_cbspolling,verify_sendControlLoop_VNF_ONSET, verify_sendControlLoop_VM_ONSET, verify_sendControlLoop_VNF_ABATED, verify_sendControlLoop_VM_ABATED, verify_fetch_json_file, verify_misshtbtdmain, verify_dbmonitoring, verify_dbmon_startup _logger = get_logger.get_logger(__name__) @@ -53,66 +54,55 @@ class test_vnf_tables(unittest.TestCase): result =verify_DB_creation_hb_common(user_name,password,ip_address,port_num,db_name) self.assertEqual(result, True) - # def test_validate_hbcommon_processId(self): - # result =verify_DB_creation_hb_common(user_name,password,ip_address,port_num,db_name) - # self.assertEqual(result, True) - # connection_db = pm.postgres_db_open(user_name,password,ip_address,port_num,db_name) - # #cur = connection_db.cursor() - # query_value = "SELECT process_id,source_name,last_accessed_time,current_state FROM hb_common;" - # cur.execute(query_value) - # rows = cur.fetchall() - # msg = "Common: row ", rows - # _logger.info(msg) - # hbc_pid = rows[0][0] - # pm.commit_and_close_db(connection_db) - # cur.close() - # self.assertNotEqual(hbc_pid, None , msg="Process ID is not Present is hb_common") - - # def test_validate_hbcommon_sourceName(self): - # result =verify_DB_creation_hb_common(user_name,password,ip_address,port_num,db_name) - # self.assertEqual(result, True) - - # connection_db = pm.postgres_db_open(user_name,password,ip_address,port_num,db_name) - # cur = connection_db.cursor() - # query_value = "SELECT process_id,source_name,last_accessed_time,current_state FROM hb_common;" - # cur.execute(query_value) - # rows = cur.fetchall() - # msg = "Common: row ", rows - # _logger.info(msg) - # hbc_srcName = rows[0][1] - # pm.commit_and_close_db(connection_db) - # cur.close() - # self.assertNotEqual(hbc_srcName, None , msg="Process ID is not Present is hb_common") - - ## def test_validate_sourceidcount_table1(self): - # result_connection =verify_DB_creation_1(user_name,password,ip_address,port_num,db_name) - # self.assertEqual(result_connection, True) - # #result=verify_sourceidcount_vnftable1(user_name,password,ip_address,port_num,db_name) - # connection_db = pm.postgres_db_open(user_name,password,ip_address,port_num,db_name) - # cur = connection_db.cursor() - # try: - # query = "select source_id_count from vnf_table_1;" - # cur.execute(query) - # rows = cur.fetchall() - # q_count = "SELECT COUNT(*) FROM vnf_table_1;" - # cur.execute(q_count) - # r_count = cur.fetchall() - # r_c = r_count[0][0] - # for r in r_c: - # output = rows[r][0] - # for res in output: - # self.assertNotEqual(output, 0) - # except Exception as e: - # return None def test_validate_cbspolling_required(self): result = verify_cbsPolling_required() self.assertEqual(result, True) -# def test_cbspolling(self): -# result= verify_cbspolling() -# _logger.info(result) -# self.assertEqual(result, True) - + def test_cbspolling(self): + result= verify_cbspolling() + _logger.info(result) + self.assertEqual(result, True) + + def test_fetch_json_file(self): + result= verify_fetch_json_file() + _logger.info(result) + self.assertEqual(result, True) + + def test_misshtbtdmain(self): + result= verify_misshtbtdmain() + _logger.info(result) + self.assertEqual(result, True) + + def test_dbmon_startup(self): + result= verify_dbmon_startup() + _logger.info(result) + self.assertEqual(result, True) + + def test_dbmonitoring(self): + result= verify_dbmonitoring() + _logger.info(result) + self.assertEqual(result, True) + + def test_sendControlLoop_VNF_ONSET(self): + result= verify_sendControlLoop_VNF_ONSET() + _logger.info(result) + self.assertEqual(result, True) + + def test_sendControlLoop_VM_ONSET(self): + result= verify_sendControlLoop_VM_ONSET() + _logger.info(result) + self.assertEqual(result, True) + + def test_sendControlLoop_VNF_ABATED(self): + result= verify_sendControlLoop_VNF_ABATED() + _logger.info(result) + self.assertEqual(result, True) + + def test_sendControlLoop_VM_ABATED(self): + result= verify_sendControlLoop_VM_ABATED() + _logger.info(result) + self.assertEqual(result, True) + #if __name__ == '__main__': # unittest.main() -- cgit 1.2.3-korg