diff options
author | George Paraskevopoulos <geopar@intracom-telecom.com> | 2017-03-17 11:56:43 +0200 |
---|---|---|
committer | Manuel Buil <mbuil@suse.com> | 2017-03-18 10:29:03 +0000 |
commit | c94460eef60d18efc533adf30b49e7c56fa6b2ed (patch) | |
tree | b6c4a8f02a95d4c65662f5a0be67fa440721b7c9 /sfc/lib/cleanup.py | |
parent | 2aa568e857f459555e5d2e2deae773d15318468c (diff) |
Add ODL cleanup utilities
ODL does not clean all resources properly after tacker deletions, so we
add this as a post processing step
Change-Id: Ic485ee32b195f72235922ebe613af6c010cb57db
Signed-off-by: George Paraskevopoulos <geopar@intracom-telecom.com>
(cherry picked from commit e48b950bc77e37fbda611415577a7388e19c1ff6)
Diffstat (limited to 'sfc/lib/cleanup.py')
-rw-r--r-- | sfc/lib/cleanup.py | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/sfc/lib/cleanup.py b/sfc/lib/cleanup.py index cf3349d3..61f47b42 100644 --- a/sfc/lib/cleanup.py +++ b/sfc/lib/cleanup.py @@ -1,12 +1,22 @@ +import sys + import functest.utils.functest_logger as ft_logger import functest.utils.openstack_utils as os_utils import functest.utils.openstack_tacker as os_tacker -import utils +import sfc.lib.utils as utils logger = ft_logger.Logger(__name__).getLogger() +def delete_odl_resources(odl_ip, odl_port, resource): + rsrc_list = utils.get_odl_resource_list(odl_ip, odl_port, resource) + elem_names = utils.odl_resource_list_names(resource, rsrc_list) + for elem in elem_names: + logger.info("Removing ODL resource: {0}/{1}".format(resource, elem)) + utils.delete_odl_resource_elem(odl_ip, odl_port, resource, elem) + + def delete_vnfds(): t = os_tacker.get_tacker_client() for vnfd in os_tacker.list_vnfds(t): @@ -58,14 +68,26 @@ def delete_instances(): os_utils.delete_instance(n, inst.id) -def cleanup(): +def cleanup_odl(odl_ip, odl_port): + delete_odl_resources(odl_ip, odl_port, 'service-function-forwarder') + delete_odl_resources(odl_ip, odl_port, 'service-function-chain') + delete_odl_resources(odl_ip, odl_port, 'service-function-path') + delete_odl_resources(odl_ip, odl_port, 'service-function') + + +def cleanup(odl_ip=None, odl_port=None): delete_sfc_clfs() delete_sfcs() delete_vnfs() delete_stacks() delete_floating_ips() delete_instances() + if odl_ip is not None and odl_port is not None: + cleanup_odl(odl_ip, odl_port) if __name__ == '__main__': - cleanup() + if sys.argv > 2: + cleanup(sys.argv[1], sys.argv[2]) + else: + cleanup() |