+ test_rest.test("Delete NSD", "DELETE", "/nsd/v1/ns_descriptors/{}".format(self.nsd_id), headers_yaml, None, 204,
+ None, 0)
+
+
+class TestNetSliceTemplates:
+ description = "Upload a NST to OSM"
+
+ def __init__(self):
+ self.nst_filenames = ("@./cirros_slice/cirros_slice_vld.yaml")
+
+ def run(self, engine, test_osm, manual_check, test_params=None):
+ # nst CREATE
+ engine.set_test_name("NST")
+ engine.get_autorization()
+ engine.test("Onboard NST", "POST", "/nst/v1/netslice_templates_content", headers_yaml, self.nst_filenames,
+ 201, r_headers_yaml_location_nst, "yaml")
+ nst_id = engine.last_id
+
+ # nstd SHOW OSM format
+ engine.test("Show NSTD OSM format", "GET", "/nst/v1/netslice_templates/{}".format(nst_id), headers_json, None,
+ 200, r_header_json, "json")
+
+ # nstd DELETE
+ engine.test("Delete NSTD", "DELETE", "/nst/v1/netslice_templates/{}".format(nst_id), headers_json, None,
+ 204, None, 0)
+
+
+class TestNetSliceInstances:
+ description = "Upload a NST to OSM"
+
+ def __init__(self):
+ self.vim_id = None
+ self.nst_filenames = ("@./cirros_slice/cirros_slice.yaml")
+
+ def run(self, engine, test_osm, manual_check, test_params=None):
+ # nst CREATE
+ engine.set_test_name("NSI")
+ engine.get_autorization()
+ engine.test("Onboard NST", "POST", "/nst/v1/netslice_templates_content", headers_yaml, self.nst_filenames, 201,
+ r_headers_yaml_location_nst, "yaml")
+ nst_id = engine.last_id
+
+ # nsi CREATE
+ self.vim_id = engine.get_create_vim(test_osm)
+
+ ns_data = {"nsiDescription": "default description", "nsiName": "my_slice", "nstId": nst_id,
+ "vimAccountId": self.vim_id}
+ ns_data_text = yaml.safe_dump(ns_data, default_flow_style=True, width=256)
+
+ engine.test("Onboard NSI", "POST", "/nsilcm/v1/netslice_instances_content", headers_yaml, ns_data_text, 201,
+ r_headers_yaml_location_nst, "yaml")
+ nsi_id = engine.last_id
+
+ # TODO: Improve the wait with a polling if NSI was deployed
+ wait = 120
+ sleep(wait)
+
+ # Check deployment
+ engine.test("Wait until NSI is deployed", "GET", "/nsilcm/v1/netslice_instances_content/{}".format(nsi_id),
+ headers_json, None, 200, r_header_json, "json")
+
+ # nsi DELETE
+ engine.test("Delete NSI", "DELETE", "/nsilcm/v1/netslice_instances_content/{}".format(nsi_id), headers_json,
+ None, 202, r_header_json, "json")
+
+ sleep(60)
+
+ # nstd DELETE
+ engine.test("Delete NSTD", "DELETE", "/nst/v1/netslice_templates/{}".format(nst_id), headers_json, None,
+ 204, None, 0)