Use Zun's API to cleanup network after test
Starting from API version 1.27, there is an API to delete docker network. This commit modifies the tests to use this new API. Depends-On: https://review.openstack.org/#/c/615402/ Change-Id: Ib979d911a15818bdadce025db569c24c5dbb49e0
This commit is contained in:
parent
50ec15fd93
commit
a3ed016af4
|
@ -178,6 +178,19 @@ class ZunClient(rest_client.RestClient):
|
|||
|
||||
return url
|
||||
|
||||
@classmethod
|
||||
def networks_uri(cls):
|
||||
url = "/networks/"
|
||||
return url
|
||||
|
||||
@classmethod
|
||||
def network_uri(cls, network_id, params=None):
|
||||
url = "{0}/{1}".format(cls.networks_uri(), network_id)
|
||||
if params:
|
||||
url = cls.add_params(url, params)
|
||||
|
||||
return url
|
||||
|
||||
def post_container(self, model, **kwargs):
|
||||
"""Makes POST /container request
|
||||
|
||||
|
@ -344,6 +357,9 @@ class ZunClient(rest_client.RestClient):
|
|||
def delete_capsule(self, capsule_id, params=None):
|
||||
return self.delete(self.capsule_uri(capsule_id, params=params))
|
||||
|
||||
def delete_network(self, network_id, params=None):
|
||||
return self.delete(self.network_uri(network_id, params=params))
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def docker_client(docker_auth_url):
|
||||
|
|
|
@ -14,8 +14,10 @@
|
|||
|
||||
from oslo_log import log as logging
|
||||
from tempest import config
|
||||
from tempest.lib.common import api_version_request
|
||||
from tempest.lib.common import api_version_utils
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
from zun_tempest_plugin.tests.tempest.api import api_microversion_fixture
|
||||
|
@ -74,7 +76,14 @@ class BaseZunTest(api_version_utils.BaseMicroversionTest,
|
|||
|
||||
@classmethod
|
||||
def clear_credentials(cls):
|
||||
cls.cleanup_network()
|
||||
try:
|
||||
clients.set_container_service_api_microversion(
|
||||
cls.request_microversion)
|
||||
cls.cleanup_network()
|
||||
except lib_exc.NotFound:
|
||||
LOG.exception("Error on network cleanup.")
|
||||
finally:
|
||||
clients.reset_container_service_api_microversion()
|
||||
super(BaseZunTest, cls).clear_credentials()
|
||||
|
||||
@classmethod
|
||||
|
@ -85,12 +94,17 @@ class BaseZunTest(api_version_utils.BaseMicroversionTest,
|
|||
if not network:
|
||||
return
|
||||
|
||||
docker_url = 'tcp://localhost:2375'
|
||||
networks = cls.docker_client.list_networks(
|
||||
network['id'], docker_auth_url=docker_url)
|
||||
for network in networks:
|
||||
cls.docker_client.remove_network(
|
||||
network['Id'], docker_auth_url=docker_url)
|
||||
req_version = api_version_request.APIVersionRequest(
|
||||
cls.request_microversion)
|
||||
if req_version >= api_version_request.APIVersionRequest('1.27'):
|
||||
cls.os_admin.container_client.delete_network(network['id'])
|
||||
else:
|
||||
docker_url = 'tcp://localhost:2375'
|
||||
networks = cls.docker_client.list_networks(
|
||||
network['id'], docker_auth_url=docker_url)
|
||||
for network in networks:
|
||||
cls.docker_client.remove_network(
|
||||
network['Id'], docker_auth_url=docker_url)
|
||||
|
||||
def setUp(self):
|
||||
super(BaseZunTest, self).setUp()
|
||||
|
|
Loading…
Reference in New Issue