X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Ftests%2Ftest.py;h=c70e384d52b151457c7e27d4301e692e116233a5;hp=6f30cfeae719ac92197d4edec452f6f9c1a7bdb5;hb=refs%2Fchanges%2F51%2F7851%2F2;hpb=65ca36d13f895d0a361d59a5962029d6e3ef7a99 diff --git a/osm_nbi/tests/test.py b/osm_nbi/tests/test.py index 6f30cfe..c70e384 100755 --- a/osm_nbi/tests/test.py +++ b/osm_nbi/tests/test.py @@ -346,7 +346,7 @@ class TestRest: vim_data = "{schema_version: '1.0', name: fakeVim, vim_type: openstack, vim_url: 'http://10.11.12.13/fake'"\ ", vim_tenant_name: 'vimtenant', vim_user: vimuser, vim_password: vimpassword}" self.test("Create VIM", "POST", "/admin/v1/vim_accounts", headers_yaml, vim_data, - (201), {"Location": "/admin/v1/vim_accounts/", "Content-Type": "application/yaml"}, "yaml") + (201, 202), {"Location": "/admin/v1/vim_accounts/", "Content-Type": "application/yaml"}, "yaml") return self.last_id def print_results(self): @@ -604,6 +604,13 @@ class TestProjectsDescriptors: vnfd_ids = [] engine.set_test_name("ProjectDescriptors") engine.get_autorization() + + project_admin_id = None + res = engine.test("Get my project Padmin", "GET", "/admin/v1/projects/{}".format(engine.project), headers_json, + None, 200, r_header_json, "json") + if res: + response = res.json() + project_admin_id = response["_id"] engine.test("Create project Padmin", "POST", "/admin/v1/projects", headers_json, {"name": "Padmin", "admin": True}, (201, 204), {"Location": "/admin/v1/projects/", "Content-Type": "application/json"}, "json") @@ -613,8 +620,11 @@ class TestProjectsDescriptors: (201, 204), {"Location": "/admin/v1/projects/", "Content-Type": "application/json"}, "json") engine.test("Create user U1", "POST", "/admin/v1/users", headers_json, - {"username": "U1", "projects": ["Padmin", "P2", "P3"], "password": "pw1"}, 201, - {"Location": "/admin/v1/users/", "Content-Type": "application/json"}, "json") + {"username": "U1", "password": "pw1", + "project_role_mappings": [{"project": "Padmin", "role": "system_admin"}, + {"project": "P2", "role": "project_admin"}, + {"project": "P3", "role": "project_admin"}], + }, 201, {"Location": "/admin/v1/users/", "Content-Type": "application/json"}, "json") engine.test("Onboard VNFD id1", "POST", "/vnfpkgm/v1/vnf_packages_content?id=id1", headers_yaml, TestDescriptors.vnfd_empty, 201, r_headers_yaml_location_vnfd, "yaml") @@ -658,7 +668,8 @@ class TestProjectsDescriptors: engine.failed_tests += 1 # list vnfds belonging to project "admin" - res = engine.test("List VNFD of admin project", "GET", "/vnfpkgm/v1/vnf_packages?ADMIN=admin", + res = engine.test("List VNFD of admin project", "GET", + "/vnfpkgm/v1/vnf_packages?ADMIN={}".format(project_admin_id), headers_json, None, 200, r_header_json, "json") response = res.json() if len(response) != 3: @@ -769,7 +780,7 @@ class TestFakeVim: engine.set_test_name("FakeVim") engine.get_autorization() - engine.test("Create VIM", "POST", "/admin/v1/vim_accounts", headers_json, self.vim, (201, 204), + engine.test("Create VIM", "POST", "/admin/v1/vim_accounts", headers_json, self.vim, (201, 202), {"Location": "/admin/v1/vim_accounts/", "Content-Type": "application/json"}, "json") vim_id = engine.last_id engine.test("Create VIM without name, bad schema", "POST", "/admin/v1/vim_accounts", headers_json, @@ -814,28 +825,28 @@ class TestVIMSDN(TestFakeVim): engine.set_test_name("VimSdn") engine.get_autorization() # Added SDN - engine.test("Create SDN", "POST", "/admin/v1/sdns", headers_json, self.sdn, (201, 204), + engine.test("Create SDN", "POST", "/admin/v1/sdns", headers_json, self.sdn, (201, 202), {"Location": "/admin/v1/sdns/", "Content-Type": "application/json"}, "json") sdnc_id = engine.last_id # sleep(5) # Edit SDN engine.test("Edit SDN", "PATCH", "/admin/v1/sdns/{}".format(sdnc_id), headers_json, {"name": "new_sdn_name"}, - 204, None, None) + (202, 204), None, None) # sleep(5) # VIM with SDN self.vim["config"]["sdn-controller"] = sdnc_id self.vim["config"]["sdn-port-mapping"] = self.port_mapping - engine.test("Create VIM", "POST", "/admin/v1/vim_accounts", headers_json, self.vim, (200, 204, 201), + engine.test("Create VIM", "POST", "/admin/v1/vim_accounts", headers_json, self.vim, (200, 202, 201), {"Location": "/admin/v1/vim_accounts/", "Content-Type": "application/json"}, "json"), vim_id = engine.last_id self.port_mapping[0]["compute_node"] = "compute node XX" engine.test("Edit VIM change port-mapping", "PUT", "/admin/v1/vim_accounts/{}".format(vim_id), headers_json, - {"config": {"sdn-port-mapping": self.port_mapping}}, 204, None, None) + {"config": {"sdn-port-mapping": self.port_mapping}}, (202, 204), None, None) engine.test("Edit VIM remove port-mapping", "PUT", "/admin/v1/vim_accounts/{}".format(vim_id), headers_json, - {"config": {"sdn-port-mapping": None}}, 204, None, None) + {"config": {"sdn-port-mapping": None}}, (202, 204), None, None) - engine.test("Create WIM", "POST", "/admin/v1/wim_accounts", headers_json, self.wim, (200, 204, 201), + engine.test("Create WIM", "POST", "/admin/v1/wim_accounts", headers_json, self.wim, (200, 202, 201), {"Location": "/admin/v1/wim_accounts/", "Content-Type": "application/json"}, "json"), wim_id = engine.last_id @@ -991,14 +1002,14 @@ class TestDeploy: ns_data_text = yaml.safe_dump(ns_data, default_flow_style=True, width=256) # create NS Two steps r = engine.test("Create NS step 1", "POST", "/nslcm/v1/ns_instances", - headers_yaml, ns_data_text, 201, + headers_yaml, ns_data_text, (201, 202), {"Location": "nslcm/v1/ns_instances/", "Content-Type": "application/yaml"}, "yaml") if not r: return self.ns_id = engine.last_id engine.test("Instantiate NS step 2", "POST", "/nslcm/v1/ns_instances/{}/instantiate".format(self.ns_id), headers_yaml, ns_data_text, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop_id = engine.last_id if test_osm: @@ -1010,7 +1021,7 @@ class TestDeploy: # remove deployment if test_osm: engine.test("Terminate NS", "POST", "/nslcm/v1/ns_instances/{}/terminate".format(self.ns_id), headers_yaml, - None, 201, r_headers_yaml_location_nslcmop, "yaml") + None, (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_id = engine.last_id # Wait until status is Ok engine.wait_operation_ready("ns", nslcmop2_id, timeout_deploy) @@ -1249,9 +1260,6 @@ class TestDeployHackfestCirrosScaling(TestDeploy): self.test_name = "CIRROS-SCALE" self.vnfd_filenames = ("cirros_vnf.tar.gz",) self.nsd_filename = "cirros_2vnf_ns.tar.gz" - - def create_descriptors(self, engine): - super().create_descriptors(engine) # Modify VNFD to add scaling and count=2 self.descriptor_edit = { "vnfd0": { @@ -1278,7 +1286,7 @@ class TestDeployHackfestCirrosScaling(TestDeploy): for i in range(0, 2): engine.test("Execute scale action over NS", "POST", "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_scale_out = engine.last_id engine.wait_operation_ready("ns", nslcmop2_scale_out, timeout_deploy) if manual_check: @@ -1291,7 +1299,7 @@ class TestDeployHackfestCirrosScaling(TestDeploy): for i in range(0, 2): engine.test("Execute scale IN action over NS", "POST", "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_scale_in = engine.last_id engine.wait_operation_ready("ns", nslcmop2_scale_in, timeout_deploy) if manual_check: @@ -1301,7 +1309,7 @@ class TestDeployHackfestCirrosScaling(TestDeploy): # perform scale in that must fail as reached limit engine.test("Execute scale IN out of limit action over NS", "POST", "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_scale_in = engine.last_id engine.wait_operation_ready("ns", nslcmop2_scale_in, timeout_deploy, expected_fail=True) @@ -1481,7 +1489,7 @@ class TestDeployHackfest3Charmed(TestDeploy): payload = '{member_vnf_index: "2", primitive: touch, primitive_params: { filename: /home/ubuntu/OSMTESTNBI }}' engine.test("Exec service primitive over NS", "POST", "/nslcm/v1/ns_instances/{}/action".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_action = engine.last_id # Wait until status is Ok engine.wait_operation_ready("ns", nslcmop2_action, timeout_deploy) @@ -1500,7 +1508,7 @@ class TestDeployHackfest3Charmed(TestDeploy): # '{scaling-group-descriptor: scale_dataVM, member-vnf-index: "1"}}}' # engine.test("Execute scale action over NS", "POST", # "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - # 201, r_headers_yaml_location_nslcmop, "yaml") + # (201, 202), r_headers_yaml_location_nslcmop, "yaml") # nslcmop2_scale_out = engine.last_id # engine.wait_operation_ready("ns", nslcmop2_scale_out, timeout_deploy) # if manual_check: @@ -1512,7 +1520,7 @@ class TestDeployHackfest3Charmed(TestDeploy): # '{scaling-group-descriptor: scale_dataVM, member-vnf-index: "1"}}}' # engine.test("Execute scale action over NS", "POST", # "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - # 201, r_headers_yaml_location_nslcmop, "yaml") + # (201, 202), r_headers_yaml_location_nslcmop, "yaml") # nslcmop2_scale_in = engine.last_id # engine.wait_operation_ready("ns", nslcmop2_scale_in, timeout_deploy) # if manual_check: @@ -1667,7 +1675,7 @@ class TestDeployHackfest3Charmed3(TestDeployHackfest3Charmed): '{scaling-group-descriptor: scale_dataVM, member-vnf-index: "1"}}}' engine.test("Execute scale action over NS", "POST", "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_scale_out = engine.last_id engine.wait_operation_ready("ns", nslcmop2_scale_out, timeout_deploy) if manual_check: @@ -1682,7 +1690,7 @@ class TestDeployHackfest3Charmed3(TestDeployHackfest3Charmed): '{scaling-group-descriptor: scale_dataVM, member-vnf-index: "1"}}}' engine.test("Execute scale action over NS", "POST", "/nslcm/v1/ns_instances/{}/scale".format(self.ns_id), headers_yaml, payload, - 201, r_headers_yaml_location_nslcmop, "yaml") + (201, 202), r_headers_yaml_location_nslcmop, "yaml") nslcmop2_scale_in = engine.last_id engine.wait_operation_ready("ns", nslcmop2_scale_in, timeout_deploy) if manual_check: @@ -2241,7 +2249,7 @@ class TestNetSliceInstances: def create_slice(self, engine, nsi_data, name): ns_data_text = yaml.safe_dump(nsi_data, default_flow_style=True, width=256) r = engine.test(name, "POST", "/nsilcm/v1/netslice_instances", - headers_yaml, ns_data_text, 201, + headers_yaml, ns_data_text, (201, 202), {"Location": "nsilcm/v1/netslice_instances/", "Content-Type": "application/yaml"}, "yaml") return r @@ -2249,11 +2257,11 @@ class TestNetSliceInstances: ns_data_text = yaml.safe_dump(nsi_data, default_flow_style=True, width=256) engine.test(name, "POST", "/nsilcm/v1/netslice_instances/{}/instantiate".format(nsi_id), headers_yaml, ns_data_text, - 201, r_headers_yaml_location_nsilcmop, "yaml") + (201, 202), r_headers_yaml_location_nsilcmop, "yaml") def terminate_slice(self, engine, nsi_id, name): engine.test(name, "POST", "/nsilcm/v1/netslice_instances/{}/terminate".format(nsi_id), - headers_yaml, None, 201, r_headers_yaml_location_nsilcmop, "yaml") + headers_yaml, None, (201, 202), r_headers_yaml_location_nsilcmop, "yaml") def delete_slice(self, engine, nsi_id, name): engine.test(name, "DELETE", "/nsilcm/v1/netslice_instances/{}".format(nsi_id), headers_yaml, None,