Updated OSM wrapper 56/11356/2
authorveleza <axel.velez@etsi.org>
Tue, 16 Nov 2021 11:23:47 +0000 (11:23 +0000)
committerbeierlm <mark.beierl@canonical.com>
Mon, 22 Nov 2021 21:01:36 +0000 (22:01 +0100)
Change-Id: I9e5c1eb5eddd55d4258a81a274141e0ea7ed1bf1
Signed-off-by: veleza <axel.velez@etsi.org>
conformance-tests/osm_client.py

index 70831e4..9dd7f19 100644 (file)
@@ -15,6 +15,8 @@
 
 from subprocess import run, PIPE
 import requests
+import time
+import os
 
 class OSMException(Exception):
     """A base class for MyProject exceptions."""
@@ -25,8 +27,9 @@ class ResourceException(OSMException):
         self.message = kwargs.get('message')
 
 class OSM:
-    def __init__(self, osm_hostname):
+    def __init__(self, osm_hostname, port):
         self.osm_hostname = osm_hostname
+        self.port = port
 
     def run_command(self, command):
         p = run(["osm {}".format(command)], shell=True, stdout=PIPE, stderr=PIPE)
@@ -38,7 +41,8 @@ class OSM:
             return self.clean_output(p.stdout)
 
     def get_auth_token(self):
-        r = requests.post("https://{}:9999/osm/admin/v1/tokens".format(self.osm_hostname), verify=False, headers={"Accept":"application/json"}, json={
+
+        r = requests.post("https://{}:{}/osm/admin/v1/tokens".format(self.osm_hostname, self.port), verify=False, headers={"Accept":"application/json"}, json={
                 "username": "admin",
                 "password": "admin",
                 "project": "admin"
@@ -54,8 +58,17 @@ class OSM:
     def create_vnfd(self, filename):
         return self.run_command("vnfd-create {}".format(filename))
 
+    def create_ns(self, name, nsd, vim):
+        return self.run_command("ns-create --ns_name {} --nsd_name {} --vim_account {}".format(name, nsd, vim))
+
     def delete_nsd(self, id):
         return self.run_command("nsd-delete {}".format(id))
 
     def delete_vnfd(self, id):
-        return self.run_command("vnfd-delete {}".format(id))
\ No newline at end of file
+        return self.run_command("vnfd-delete {}".format(id))
+
+    def delete_ns(self, id):
+        self.run_command("ns-delete {}".format(id))
+        while (requests.get("https://{}:{}/osm/nslcm/v1/ns_instances/{}".format(self.osm_hostname, self.port, id), verify=False, headers={"Accept":"application/json", "Authorization":"Bearer {}".format(os.environ["AUTH_TOKEN"])}).status_code != 404):
+            print("Deleting NS...")
+            time.sleep(5)