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>
This commit is contained in:
adrianvillin
2023-11-08 15:17:14 +01:00
committed by Dave Wallace
parent e59761f721
commit 098ee3aaf1
2 changed files with 21 additions and 5 deletions

View File

@ -28,7 +28,13 @@ class TestHttpStaticVapi(VppAsfTestCase):
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 @@ class TestHttpStaticVapi(VppAsfTestCase):
@classmethod
def tearDownClass(cls):
delete_namespace(["HttpStatic"])
delete_namespace("HttpStatic")
delete_host_interfaces("vppHost")
cls.temp.close()
cls.temp2.close()
@ -95,7 +101,13 @@ class TestHttpStaticCli(VppAsfTestCase):
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 @@ class TestHttpStaticCli(VppAsfTestCase):
@classmethod
def tearDownClass(cls):
delete_namespace(["HttpStatic2"])
delete_namespace("HttpStatic2")
delete_host_interfaces("vppHost2")
cls.temp.close()
cls.temp2.close()

View File

@ -216,12 +216,16 @@ def disable_interface_gso(namespace, interface):
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(