aboutsummaryrefslogtreecommitdiffstats
path: root/functest/utils
diff options
context:
space:
mode:
Diffstat (limited to 'functest/utils')
-rwxr-xr-xfunctest/utils/openstack_snapshot.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/functest/utils/openstack_snapshot.py b/functest/utils/openstack_snapshot.py
index 4be1af44..d6e7fe00 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))