From c2f950adc4391d312f84da016e7443758506cf8c Mon Sep 17 00:00:00 2001 From: George Paraskevopoulos Date: Mon, 5 Dec 2016 11:50:10 +0200 Subject: Tacker objects in openstack snapshot Add VNFD, VNF, SFC and SFC classifier snapshoting capabilities DEPENDS ON: https://gerrit.opnfv.org/gerrit/#/c/25485/ Change-Id: Ic89ab5be348cbe0cca2180c43352cfa4dac0f327 Signed-off-by: George Paraskevopoulos --- functest/utils/openstack_snapshot.py | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/functest/utils/openstack_snapshot.py b/functest/utils/openstack_snapshot.py index 4be1af443..d6e7fe006 100755 --- a/functest/utils/openstack_snapshot.py +++ b/functest/utils/openstack_snapshot.py @@ -9,6 +9,8 @@ # - Neutron networks, subnets and ports # - Routers # - Users and tenants +# - Tacker VNFDs and VNFs +# - Tacker SFCs and SFC classifiers # # Author: # jose.lausuch@ericsson.com @@ -22,6 +24,7 @@ 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 yaml import functest.utils.functest_constants as ft_constants @@ -127,6 +130,51 @@ def get_tenants(keystone_client): return {'tenants': dic_tenants} +def get_tacker_vnfds(tacker_client): + logger.debug("Getting Tacker VNFDs...") + dic_vnfds = {} + vnfds = os_tacker.list_vnfds(tacker_client, verbose=True)['vnfds'] + if not (vnfds is None or len(vnfds) == 0): + for vnfd in vnfds: + dic_vnfds.update({vnfd['id']: + vnfd['name']}) + return {'vnfds': dic_vnfds} + + +def get_tacker_vnfs(tacker_client): + logger.debug("Getting Tacker VNFs...") + dic_vnfs = {} + vnfs = os_tacker.list_vnfs(tacker_client, verbose=True)['vnfs'] + if not (vnfs is None or len(vnfs) == 0): + for vnf in vnfs: + dic_vnfs.update({vnf['id']: + vnf['name']}) + return {'vnfs': dic_vnfs} + + +def get_tacker_sfcs(tacker_client): + logger.debug("Getting Tacker SFCs...") + dic_sfcs = {} + sfcs = os_tacker.list_sfcs(tacker_client, verbose=True)['sfcs'] + if not (sfcs is None or len(sfcs) == 0): + for sfc in sfcs: + dic_sfcs.update({sfc['id']: + sfc['name']}) + return {'sfcs': dic_sfcs} + + +def get_tacker_sfc_classifiers(tacker_client): + logger.debug("Getting Tacker SFC classifiers...") + dic_sfc_clfs = {} + sfc_clfs = os_tacker.list_sfc_clasifiers( + tacker_client, verbose=True)['sfc_classifiers'] + if not (sfc_clfs is None or len(sfc_clfs) == 0): + for sfc_clf in sfc_clfs: + dic_sfc_clfs.update({sfc_clf['id']: + sfc_clf['name']}) + return {'sfc_classifiers': dic_sfc_clfs} + + def main(): logger.info("Generating OpenStack snapshot...") @@ -134,6 +182,7 @@ def main(): neutron_client = os_utils.get_neutron_client() keystone_client = os_utils.get_keystone_client() cinder_client = os_utils.get_cinder_client() + tacker_client = os_tacker.get_tacker_client() if not os_utils.check_credentials(): logger.error("Please source the openrc credentials and run the" + @@ -150,6 +199,10 @@ def main(): snapshot.update(get_floatinips(nova_client)) snapshot.update(get_users(keystone_client)) snapshot.update(get_tenants(keystone_client)) + snapshot.update(get_tacker_vnfds(tacker_client)) + snapshot.update(get_tacker_vnfs(tacker_client)) + snapshot.update(get_tacker_sfcs(tacker_client)) + snapshot.update(get_tacker_sfc_classifiers(tacker_client)) with open(OS_SNAPSHOT_FILE, 'w+') as yaml_file: yaml_file.write(yaml.safe_dump(snapshot, default_flow_style=False)) -- cgit 1.2.3-korg