Skip to content

Commit

Permalink
[DM] Fixing the vnc load init data test cases
Browse files Browse the repository at this point in the history
Changes to the vnc test load init data file to fix failures
Closes-Bug: #1779426

Change-Id: I0539300059c63101a615ceebb6ae2e26ab2f26d8
(cherry picked from commit 42a2668)
  • Loading branch information
sahanaspc authored and jnpr-tjiang committed Jul 5, 2018
1 parent 883ac6c commit 1582d20
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 55 deletions.
100 changes: 49 additions & 51 deletions src/config/api-server/vnc_cfg_api_server/tests/test_vnc_load_data.py
Expand Up @@ -9,6 +9,7 @@
import os
import logging
import json
import time

sys.path.append('../common/tests')
import test_case
Expand All @@ -18,54 +19,6 @@
logger.setLevel(logging.DEBUG)


# Positive test case - using the actual json & schema files
# Tags and Job templates should be created
class TestInitData1(test_case.ApiServerTestCase):
@classmethod
def setUpClass(cls, *args, **kwargs):
cls.console_handler = logging.StreamHandler()
cls.console_handler.setLevel(logging.DEBUG)
logger.addHandler(cls.console_handler)
super(TestInitData1, cls).setUpClass(
extra_config_knobs=[('DEFAULTS', 'fabric_ansible_dir',
"../fabric-ansible/ansible-playbooks/")])

# end setUpClass

@classmethod
def tearDownClass(cls, *args, **kwargs):
logger.removeHandler(cls.console_handler)
super(TestInitData1, cls).tearDownClass(*args, **kwargs)

# end tearDownClass

def test_load_init_data1(self):
expected_jb_count = 0
expected_tag_count = 0
exepected_object_type_count = 0

# read the conf file to get the actual count
with open("../fabric-ansible/ansible-playbooks/conf/predef_payloads.json", "r") as f:
json_data = json.load(f)

if json_data:
data = json_data.get("data")
exepected_object_type_count = len(data)
for d in data:
if d.get("object_type") == 'job_template':
expected_jb_count = len(d.get("objects"))
if d.get("object_type") == 'tag':
expected_tag_count = len(d.get("objects"))

self.assertEqual(exepected_object_type_count, 3)
jb_list = self._vnc_lib.job_templates_list()
self.assertTrue(jb_list)
self.assertEqual(len(jb_list.get('job-templates')), expected_jb_count)
tags = self._vnc_lib.tags_list()
self.assertTrue(tags)
self.assertEqual(len(tags.get('tags')), expected_tag_count)


# Testing when schema file is empty for the job template, tags and
# job templates should still be created
class TestInitData2(test_case.ApiServerTestCase):
Expand Down Expand Up @@ -119,6 +72,14 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_2(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while (True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertTrue(len(jb_list.get('job-templates')) > 0)
tags = self._vnc_lib.tags_list()
Expand Down Expand Up @@ -175,6 +136,14 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_01(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while (True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertEquals(len(jb_list.get('job-templates')), 0)
tags = self._vnc_lib.tags_list()
Expand Down Expand Up @@ -229,6 +198,14 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_02(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while (True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertEquals(len(jb_list.get('job-templates')), 0)
tags = self._vnc_lib.tags_list()
Expand Down Expand Up @@ -280,12 +257,19 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_03(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while (True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertEquals(len(jb_list.get('job-templates')), 0)
tags = self._vnc_lib.tags_list()
self.assertEquals(len(tags.get('tags')), 0)


# Testing when json is invalid
class TestInitDataError4(test_case.ApiServerTestCase):
@classmethod
Expand Down Expand Up @@ -314,12 +298,19 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_04(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while (True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertEquals(len(jb_list.get('job-templates')), 0)
tags = self._vnc_lib.tags_list()
self.assertEquals(len(tags.get('tags')), 0)


# Testing when tag type is unknown
class TestInitDataError5(test_case.ApiServerTestCase):
@classmethod
Expand Down Expand Up @@ -367,8 +358,15 @@ def tearDownClass(cls, *args, **kwargs):
# end tearDownClass

def test_load_init_data_05(self):
ipam_fq_name = ['default-domain', 'default-project',
'default-network-ipam']
ipam_obj = self._vnc_lib.network_ipam_read(fq_name=ipam_fq_name)
while(True):
if (ipam_obj.get_perms2().global_access != 5):
time.sleep(10)
else:
break
jb_list = self._vnc_lib.job_templates_list()
self.assertEquals(len(jb_list.get('job-templates')), 0)
tags = self._vnc_lib.tags_list()
self.assertEquals(len(tags.get('tags')), 0)

Expand Up @@ -3300,6 +3300,10 @@ def _db_init_entries(self):
if int(self._args.worker_id) == 0:
self._db_conn.db_resync()

# Load init data for job playbooks like JobTemplates, Tags, etc
if self._args.enable_fabric_ansible:
self._load_init_data()

# make default ipam available across tenants for backward compatability
obj_type = 'network_ipam'
fq_name = ['default-domain', 'default-project', 'default-network-ipam']
Expand All @@ -3309,9 +3313,6 @@ def _db_init_entries(self):
obj_dict['perms2']['global_access'] = PERMS_RX
self._db_conn.dbe_update(obj_type, obj_uuid, obj_dict)

# Load init data for job playbooks like JobTemplates, Tags, etc
if self._args.enable_fabric_ansible:
self._load_init_data()
# end _db_init_entries

# Load init data for job playbooks like JobTemplates, Tags, etc
Expand Down Expand Up @@ -4728,4 +4729,3 @@ def server_main(args_str=None):

if __name__ == "__main__":
server_main()

0 comments on commit 1582d20

Please sign in to comment.