tests: Fix http static test failing on retry
- test_http_static.py: If namespace creation fails, try to delete the namespace and create it again
- vpp_qemu_utils.py: Added "isinstance()" to "delete_namespace()" to match "create_namespace()"
Type: test
Change-Id: I88ff7a36f5d52816fee16283efba6af025496491
Signed-off-by: adrianvillin <avillin@cisco.com>
diff --git a/test/asf/test_http_static.py b/test/asf/test_http_static.py
index 1d87f4c..18e8ba5 100644
--- a/test/asf/test_http_static.py
+++ b/test/asf/test_http_static.py
@@ -28,7 +28,13 @@
cls.temp2 = tempfile.NamedTemporaryFile()
cls.temp2.write(b"Hello world2")
- create_namespace("HttpStatic")
+ try:
+ create_namespace("HttpStatic")
+ except Exception:
+ cls.logger.warning("Unable to create a namespace, retrying.")
+ delete_namespace("HttpStatic")
+ create_namespace("HttpStatic")
+
create_host_interface("vppHost", "vppOut", "HttpStatic", "10.10.1.1/24")
cls.vapi.cli("create host-interface name vppOut")
@@ -37,7 +43,7 @@
@classmethod
def tearDownClass(cls):
- delete_namespace(["HttpStatic"])
+ delete_namespace("HttpStatic")
delete_host_interfaces("vppHost")
cls.temp.close()
cls.temp2.close()
@@ -95,7 +101,13 @@
cls.temp2 = tempfile.NamedTemporaryFile()
cls.temp2.write(b"Hello world2")
- create_namespace("HttpStatic2")
+ try:
+ create_namespace("HttpStatic2")
+ except Exception:
+ cls.logger.warning("Unable to create namespace, retrying.")
+ delete_namespace("HttpStatic2")
+ create_namespace("HttpStatic2")
+
create_host_interface("vppHost2", "vppOut2", "HttpStatic2", "10.10.1.1/24")
cls.vapi.cli("create host-interface name vppOut2")
@@ -104,7 +116,7 @@
@classmethod
def tearDownClass(cls):
- delete_namespace(["HttpStatic2"])
+ delete_namespace("HttpStatic2")
delete_host_interfaces("vppHost2")
cls.temp.close()
cls.temp2.close()
diff --git a/test/vpp_qemu_utils.py b/test/vpp_qemu_utils.py
index e7e21a0..3a8fdc8 100644
--- a/test/vpp_qemu_utils.py
+++ b/test/vpp_qemu_utils.py
@@ -216,12 +216,16 @@
raise Exception("Error disabling gso:", e.output)
-def delete_namespace(namespaces):
+def delete_namespace(ns):
"""delete one or more namespaces.
arguments:
namespaces -- a list of namespace names
"""
+ if isinstance(ns, str):
+ namespaces = [ns]
+ else:
+ namespaces = ns
try:
for namespace in namespaces:
result = subprocess.run(