X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_lcm%2Ftests%2Ftest_ns.py;h=aa3933fc45cc9e4f5bfbc9824365c4246f071a4b;hb=6cf25f56ffb3945c2eb0ce4806ccec34cc03a312;hp=dcf502069d0e10803cde3633f97bbeb08c88c8ef;hpb=7ab529a15d7b441e5338eaea0f2f567fe67cd34c;p=osm%2FLCM.git diff --git a/osm_lcm/tests/test_ns.py b/osm_lcm/tests/test_ns.py index dcf5020..aa3933f 100644 --- a/osm_lcm/tests/test_ns.py +++ b/osm_lcm/tests/test_ns.py @@ -34,8 +34,10 @@ __author__ = "Alfonso Tierno " """ Perform unittests using asynctest of osm_lcm.ns module It allows, if some testing ENV are supplied, testing without mocking some external libraries for debugging: OSMLCMTEST_NS_PUBKEY: public ssh-key returned by N2VC to inject to VMs + OSMLCMTEST_NS_NAME: change name of NS OSMLCMTEST_PACKAGES_PATH: path where the vnf-packages are stored (de-compressed), each one on a 'vnfd_id' folder OSMLCMTEST_NS_IPADDRESS: IP address where emulated VMs are reached. Comma separate list + OSMLCMTEST_RO_VIMID: VIM id of RO target vim IP. Obtain it with openmano datcenter-list on RO container OSMLCMTEST_VCA_NOMOCK: Do no mock the VCA, N2VC library, for debugging it OSMLCMTEST_RO_NOMOCK: Do no mock the ROClient library, for debugging it OSMLCMTEST_DB_NOMOCK: Do no mock the database library, for debugging it @@ -233,6 +235,10 @@ db_vnfds_text = """ vcpu-count: 1 version: '1.0' vnf-configuration: + config-access: + ssh-access: + required: True + default-user: ubuntu config-primitive: - name: touch parameter: @@ -1083,6 +1089,7 @@ class TestMyNS(asynctest.TestCase): self.my_ns.RO.get_list = asynctest.CoroutineMock(self.my_ns.RO.get_list, return_value=[]) self.my_ns.RO.create = asynctest.CoroutineMock(self.my_ns.RO.create, side_effect=self._ro_create()) self.my_ns.RO.show = asynctest.CoroutineMock(self.my_ns.RO.show, side_effect=self._ro_show()) + self.my_ns.RO.create_action = asynctest.CoroutineMock(self.my_ns.RO.create_action) @asynctest.fail_on(active_handles=True) # all async tasks must be completed async def test_instantiate(self): @@ -1099,6 +1106,10 @@ class TestMyNS(asynctest.TestCase): for db_vdur in db_vnfr["vdur"]: db_vdur.pop("ip_address", None) db_vdur.pop("mac_address", None) + if getenv("OSMLCMTEST_RO_VIMID"): + self.db_content["vim_accounts"][0]["_admin"]["deployed"]["RO"] = getenv("OSMLCMTEST_RO_VIMID") + if getenv("OSMLCMTEST_RO_VIMID"): + self.db_content["nsrs"][0]["_admin"]["deployed"]["RO"] = getenv("OSMLCMTEST_RO_VIMID") await self.my_ns.instantiate(nsr_id, nslcmop_id) @@ -1120,6 +1131,32 @@ class TestMyNS(asynctest.TestCase): # TODO add more checks of called methods # TODO add a terminate + def test_ns_params_2_RO(self): + vim = self._db_get_list("vim_accounts")[0] + vim_id = vim["_id"] + ro_vim_id = vim["_admin"]["deployed"]["RO"] + ns_params = {"vimAccountId": vim_id} + mgmt_interface = {"cp": "cp"} + vdu = [{"id": "vdu_id", "interface": [{"external-connection-point-ref": "cp"}]}] + vnfd_dict = { + "1": {"vdu": vdu, "mgmt-interface": mgmt_interface}, + "2": {"vdu": vdu, "mgmt-interface": mgmt_interface, "vnf-configuration": None}, + "3": {"vdu": vdu, "mgmt-interface": mgmt_interface, "vnf-configuration": {"config-access": None}}, + "4": {"vdu": vdu, "mgmt-interface": mgmt_interface, + "vnf-configuration": {"config-access": {"ssh-access": None}}}, + "5": {"vdu": vdu, "mgmt-interface": mgmt_interface, + "vnf-configuration": {"config-access": {"ssh-access": {"required": True, "default_user": "U"}}}}, + } + nsd = {"constituent-vnfd": []} + for k in vnfd_dict.keys(): + nsd["constituent-vnfd"].append({"vnfd-id-ref": k, "member-vnf-index": k}) + + n2vc_key_list = ["key"] + ro_ns_params = self.my_ns.ns_params_2_RO(ns_params, nsd, vnfd_dict, n2vc_key_list) + ro_params_expected = {'wim_account': None, "datacenter": ro_vim_id, + "vnfs": {"5": {"vdus": {"vdu_id": {"mgmt_keys": n2vc_key_list}}}}} + self.assertEqual(ro_ns_params, ro_params_expected) + @asynctest.fail_on(active_handles=True) # all async tasks must be completed async def test_scale(self): pass