Merge "Tacker objects in openstack snapshot"
authorMorgan Richomme <morgan.richomme@orange.com>
Tue, 6 Dec 2016 12:36:13 +0000 (12:36 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Tue, 6 Dec 2016 12:36:13 +0000 (12:36 +0000)
functest/utils/openstack_snapshot.py

index 4be1af4..d6e7fe0 100755 (executable)
@@ -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))