diff --git a/fixtures/ipam_test.py b/fixtures/ipam_test.py index cbf82b939..6efb3d374 100644 --- a/fixtures/ipam_test.py +++ b/fixtures/ipam_test.py @@ -25,7 +25,7 @@ def __init__(self, name=None, project_obj=None, ipamtype =IpamType("dhcp")): self.cn_inspect= self.connections.cn_inspect self.agent_inspect= self.connections.agent_inspect self.verify_is_run=False - self.project_name=project_obj.inputs.project_name + self.project_name=project_obj.project_name self.ri_name=None #end __init__ @@ -38,7 +38,7 @@ def setUp(self): ipam_list= self.project_fixture_obj.vnc_lib_h.network_ipams_list()['network-ipams'] for ipam in ipam_list: - if self.name in ipam['fq_name']: + if self.name in ipam['fq_name'] and self.project_name in ipam['fq_name']: self.fq_name = ipam['fq_name'] self.already_present= True self.ipam_id = ipam['uuid'] diff --git a/scripts/analytics_tests.py b/scripts/analytics_tests.py index 55067f7e3..2343d99fb 100644 --- a/scripts/analytics_tests.py +++ b/scripts/analytics_tests.py @@ -1923,6 +1923,81 @@ def get_names_from_table(self,lst): names = el['name'] return names + def verify_message_table(self,start_time = None,end_time='now'): + + result = True + result1 =True + res2 = None + ret = None + objects = None + query_table_failed = [] + query_table_passed = [] + message_table = None + table_name = 'MessageTable' + if not start_time: + self.logger.warn("start_time must be passed...") + return + ret = self.get_all_uves(uve= 'tables') + tables = self.get_table_schema(ret) + for elem in tables: + for k,v in elem.items(): + if table_name in k: + schema = self.get_schema_from_table(v) + break + for elem in tables: + if 'MessageTable' in str(elem): + message_table = elem + break + if message_table: + source = None + mduleid = None + for k,v in message_table.items(): + for elem in v: + if 'Source' in elem.keys(): + source = elem['Source'] + if 'ModuleId' in elem.keys(): + moduleid = elem['ModuleId'] + + if source and moduleid: + for src in source: + if src in self.inputs.compute_names: + if 'VRouterAgent' in moduleid: + query='(Source=%s AND ModuleId = VRouterAgent)'%(src) + res=self.ops_inspect[self.inputs.collector_ips[0]].post_query(table_name, + start_time=start_time,end_time=end_time + ,select_fields=schema,where_clause=query, + sort=2,limit=5,sort_fields= ["MessageTS"]) + for el in res: + if 'Source' not in str(el): + self.logger.warn("Logs from MessageTable not having source \n%"%(str(el))) + return False + + if src in self.inputs.collector_names: + if 'Collector' in moduleid: + query='(Source=%s AND ModuleId = Collector)'%(src) + res=self.ops_inspect[self.inputs.collector_ips[0]].post_query(table_name, + start_time=start_time,end_time=end_time + ,select_fields=schema,where_clause=query, + sort=2,limit=5,sort_fields= ["MessageTS"]) + for el in res: + if 'Source' not in str(el): + self.logger.warn("Logs from MessageTable not having source \n%"%(str(el))) + return False + + if src in self.inputs.cfgm_names: + if 'ApiServer' in moduleid: + query='(Source=%s AND ModuleId = ApiServer)'%(src) + res=self.ops_inspect[self.inputs.collector_ips[0]].post_query(table_name, + start_time=start_time,end_time=end_time + ,select_fields=schema,where_clause=query, + sort=2,limit=5,sort_fields= ["MessageTS"]) + for el in res: + if 'Source' not in str(el): + self.logger.warn("Logs from MessageTable not having source \n%"%(str(el))) + return False + return True + + def verify_object_tables(self,table_name= None,start_time = None,end_time='now',skip_tables = []): diff --git a/scripts/analytics_tests_with_setup.py b/scripts/analytics_tests_with_setup.py index f9d425d6d..b1b9ee76a 100644 --- a/scripts/analytics_tests_with_setup.py +++ b/scripts/analytics_tests_with_setup.py @@ -1407,6 +1407,14 @@ def test_object_tables(self): return True + @preposttest_wrapper + def test_message_table(self): + '''Test MessageTable. + ''' + start_time=self.analytics_obj.get_time_since_uptime(self.inputs.cfgm_ip) + assert self.analytics_obj.verify_message_table(start_time= start_time) + return True + @preposttest_wrapper def test_object_tables_parallel_query(self): '''Test object tables.