Removal of deprecated SNAPS-OO classes in juju_epc
[functest.git] / functest / opnfv_tests / vnf / epc / juju_epc.py
index be0f3ab..ada11c3 100644 (file)
@@ -23,13 +23,14 @@ from functest.utils.constants import CONST
 import functest.utils.openstack_utils as os_utils
 
 import pkg_resources
-from snaps.openstack.os_credentials import OSCreds
-from snaps.openstack.create_network import (NetworkSettings,
-                                            SubnetSettings, OpenStackNetwork)
-from snaps.openstack.create_router import (RouterSettings, OpenStackRouter)
-from snaps.openstack.create_flavor import (FlavorSettings, OpenStackFlavor)
-from snaps.openstack.create_image import (ImageSettings, OpenStackImage)
-from snaps.openstack.tests import openstack_tests
+from snaps.config.flavor import FlavorConfig
+from snaps.config.image import ImageConfig
+from snaps.config.network import NetworkConfig, SubnetConfig
+from snaps.config.router import RouterConfig
+from snaps.openstack.create_flavor import OpenStackFlavor
+from snaps.openstack.create_image import OpenStackImage
+from snaps.openstack.create_network import OpenStackNetwork
+from snaps.openstack.create_router import OpenStackRouter
 from snaps.openstack.utils import keystone_utils
 import yaml
 
@@ -43,6 +44,8 @@ class JujuEpc(vnf.VnfOnBoarding):
 
     __logger = logging.getLogger(__name__)
 
+    default_region_name = "RegionOne"
+
     def __init__(self, **kwargs):
         if "case_name" not in kwargs:
             kwargs["case_name"] = "juju_epc"
@@ -62,11 +65,7 @@ class JujuEpc(vnf.VnfOnBoarding):
         )
 
         self.created_object = []
-        self.snaps_creds = ''
-
-        self.os_creds = openstack_tests.get_credentials(
-            os_env_file=CONST.__getattribute__('openstack_creds'))
-
+        self.snaps_creds = snaps_utils.get_credentials()
         self.details['orchestrator'] = dict(
             name=get_config("orchestrator.name", config_file),
             version=get_config("orchestrator.version", config_file),
@@ -122,18 +121,13 @@ class JujuEpc(vnf.VnfOnBoarding):
             "auth_url": os_utils.get_credentials()['auth_url']
             }
 
-        self.snaps_creds = OSCreds(
-            username=self.creds['username'],
-            password=self.creds['password'],
-            auth_url=self.creds['auth_url'],
-            project_name=self.creds['tenant'],
-            identity_api_version=int(os_utils.get_keystone_client_version()))
-
         cloud_data = {
             'url': self.public_auth_url,
             'pass': self.tenant_name,
             'tenant_n': self.tenant_name,
-            'user_n': self.tenant_name
+            'user_n': self.tenant_name,
+            'region': os.environ.get(
+                "OS_REGION_NAME", self.default_region_name)
         }
         self.__logger.info("Cloud DATA:  %s", cloud_data)
         self.filename = os.path.join(self.case_dir, 'abot-epc.yaml')
@@ -141,10 +135,10 @@ class JujuEpc(vnf.VnfOnBoarding):
         write_config(self.filename, CLOUD_TEMPLATE, **cloud_data)
 
         if self.snaps_creds.identity_api_version == 3:
-            append_config(self.filename, '{}'.format(
-                os_utils.get_credentials()['project_domain_name']),
-                          '{}'.format(os_utils.get_credentials()
-                                      ['user_domain_name']))
+            append_config(
+                self.filename, '{}'.format(
+                    os_utils.get_credentials()['project_domain_name']),
+                '{}'.format(os_utils.get_credentials()['user_domain_name']))
 
         self.__logger.info("Upload some OS images if it doesn't exist")
         for image_name, image_file in self.images.iteritems():
@@ -152,10 +146,10 @@ class JujuEpc(vnf.VnfOnBoarding):
             if image_file and image_name:
                 image_creator = OpenStackImage(
                     self.snaps_creds,
-                    ImageSettings(name=image_name,
-                                  image_user='cloud',
-                                  img_format='qcow2',
-                                  image_file=image_file))
+                    ImageConfig(name=image_name,
+                                image_user='cloud',
+                                img_format='qcow2',
+                                image_file=image_file))
                 image_creator.create()
                 self.created_object.append(image_creator)
 
@@ -180,11 +174,11 @@ class JujuEpc(vnf.VnfOnBoarding):
             'vnf_{}_external_network_name'.format(self.case_name))
 
         self.__logger.info("Creating full network ...")
-        subnet_settings = SubnetSettings(name=private_subnet_name,
-                                         cidr=private_subnet_cidr,
-                                         dns_nameservers=dns_nameserver)
-        network_settings = NetworkSettings(name=private_net_name,
-                                           subnet_settings=[subnet_settings])
+        subnet_settings = SubnetConfig(name=private_subnet_name,
+                                       cidr=private_subnet_cidr,
+                                       dns_nameservers=dns_nameserver)
+        network_settings = NetworkConfig(name=private_net_name,
+                                         subnet_settings=[subnet_settings])
         network_creator = OpenStackNetwork(self.snaps_creds, network_settings)
         network_creator.create()
         self.created_object.append(network_creator)
@@ -193,14 +187,14 @@ class JujuEpc(vnf.VnfOnBoarding):
         self.__logger.info("Creating network Router ....")
         router_creator = OpenStackRouter(
             self.snaps_creds,
-            RouterSettings(
+            RouterConfig(
                 name=abot_router,
                 external_gateway=ext_net_name,
                 internal_subnets=[subnet_settings.name]))
         router_creator.create()
         self.created_object.append(router_creator)
         self.__logger.info("Creating Flavor ....")
-        flavor_settings = FlavorSettings(
+        flavor_settings = FlavorConfig(
             name=self.orchestrator['requirements']['flavor']['name'],
             ram=self.orchestrator['requirements']['flavor']['ram_min'],
             disk=10,
@@ -231,17 +225,19 @@ class JujuEpc(vnf.VnfOnBoarding):
         for image_name in self.images.keys():
             self.__logger.info("Generating Metadata for %s", image_name)
             image_id = os_utils.get_image_id(self.glance_client, image_name)
-            os.system('juju metadata generate-image -d ~ -i {} -s {} -r '
-                      'RegionOne -u {}'.format(image_id,
-                                               image_name,
-                                               self.public_auth_url))
+            os.system(
+                'juju metadata generate-image -d ~ -i {} -s {} -r '
+                '{} -u {}'.format(
+                    image_id, image_name,
+                    os.environ.get("OS_REGION_NAME", self.default_region_name),
+                    self.public_auth_url))
         net_id = os_utils.get_network_id(self.neutron_client, private_net_name)
         self.__logger.info("Credential information  : %s", net_id)
         juju_bootstrap_command = ('juju bootstrap abot-epc abot-controller '
                                   '--config network={} --metadata-source ~  '
                                   '--config ssl-hostname-verification=false '
                                   '--constraints mem=2G --bootstrap-series '
-                                  'trusty '
+                                  'xenial '
                                   '--config use-floating-ip=true --debug'.
                                   format(net_id))
         os.system(juju_bootstrap_command)
@@ -252,7 +248,7 @@ class JujuEpc(vnf.VnfOnBoarding):
         self.__logger.info("Upload VNFD")
         descriptor = self.vnf['descriptor']
         self.__logger.info("Get or create flavor for all Abot-EPC")
-        flavor_settings = FlavorSettings(
+        flavor_settings = FlavorConfig(
             name=self.vnf['requirements']['flavor']['name'],
             ram=self.vnf['requirements']['flavor']['ram_min'],
             disk=10,
@@ -487,7 +483,7 @@ CLOUD_TEMPLATE = """clouds:
       auth-types: [userpass]
       endpoint: {url}
       regions:
-        RegionOne:
+        {region}:
           endpoint: {url}
 credentials:
   abot-epc: