Fix docstrings
[functest.git] / functest / opnfv_tests / vnf / ims / orchestra_clearwaterims.py
index 5b2e585..96b526a 100644 (file)
@@ -17,31 +17,27 @@ import time
 import pkg_resources
 import yaml
 
-from snaps.openstack.create_image import OpenStackImage, ImageSettings
-from snaps.openstack.create_flavor import OpenStackFlavor, FlavorSettings
-from snaps.openstack.create_security_group import (
-    OpenStackSecurityGroup,
-    SecurityGroupSettings,
-    SecurityGroupRuleSettings,
-    Direction,
-    Protocol)
-from snaps.openstack.create_network import (
-    OpenStackNetwork,
-    NetworkSettings,
-    SubnetSettings,
-    PortSettings)
-from snaps.openstack.create_router import OpenStackRouter, RouterSettings
-from snaps.openstack.create_instance import (
-    VmInstanceSettings,
-    OpenStackVmInstance)
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-
 import functest.core.vnf as vnf
 import functest.utils.openstack_utils as os_utils
+from functest.opnfv_tests.openstack.snaps import snaps_utils
 from functest.utils.constants import CONST
 
 from org.openbaton.cli.errors.errors import NfvoException
 from org.openbaton.cli.agents.agents import MainAgent
+from snaps.config.flavor import FlavorConfig
+from snaps.config.image import ImageConfig
+from snaps.config.network import NetworkConfig, PortConfig, SubnetConfig
+from snaps.config.router import RouterConfig
+from snaps.config.security_group import (
+    Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
+from snaps.config.vm_inst import VmInstanceConfig
+from snaps.openstack.utils import keystone_utils
+from snaps.openstack.create_flavor import OpenStackFlavor
+from snaps.openstack.create_image import OpenStackImage
+from snaps.openstack.create_instance import OpenStackVmInstance
+from snaps.openstack.create_network import OpenStackNetwork
+from snaps.openstack.create_router import OpenStackRouter
+from snaps.openstack.create_security_group import OpenStackSecurityGroup
 
 
 __author__ = "Pauls, Michael <michael.pauls@fokus.fraunhofer.de>"
@@ -164,6 +160,7 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
                 'vnf_{}_config'.format(self.case_name))
         except BaseException:
             raise Exception("Orchestra VNF config file not found")
+
         config_file = self.case_dir + self.config
 
         self.mano = dict(
@@ -210,11 +207,14 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
 
         self.logger.info("Additional pre-configuration steps")
 
+        public_auth_url = keystone_utils.get_endpoint(
+            self.snaps_creds, 'identity')
+
         self.creds = {
-                "tenant": self.tenant_name,
-                "username": self.tenant_name,
-                "password": self.tenant_name,
-                "auth_url": os_utils.get_credentials()['auth_url']
+                "tenant": self.snaps_creds.project_name,
+                "username": self.snaps_creds.username,
+                "password": self.snaps_creds.password,
+                "auth_url": public_auth_url
                 }
         self.prepare_images()
         self.prepare_flavor()
@@ -230,11 +230,11 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
             if image_file and image_name:
                 image = OpenStackImage(
                     self.snaps_creds,
-                    ImageSettings(name=image_name,
-                                  image_user='cloud',
-                                  img_format='qcow2',
-                                  image_file=image_file,
-                                  public=True))
+                    ImageConfig(name=image_name,
+                                image_user='cloud',
+                                img_format='qcow2',
+                                image_file=image_file,
+                                public=True))
                 image.create()
                 # self.created_resources.append(image);
 
@@ -244,61 +244,46 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
             "Creating security group for Open Baton if not yet existing...")
         sg_rules = list()
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.ingress,
                 protocol=Protocol.tcp,
                 port_range_min=1,
                 port_range_max=65535))
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.egress,
                 protocol=Protocol.tcp,
                 port_range_min=1,
                 port_range_max=65535))
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.ingress,
                 protocol=Protocol.udp,
                 port_range_min=1,
                 port_range_max=65535))
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.egress,
                 protocol=Protocol.udp,
                 port_range_min=1,
                 port_range_max=65535))
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.ingress,
                 protocol=Protocol.icmp))
         sg_rules.append(
-            SecurityGroupRuleSettings(
+            SecurityGroupRuleConfig(
                 sec_grp_name="orchestra-sec-group-allowall",
                 direction=Direction.egress,
                 protocol=Protocol.icmp))
-        # sg_rules.append(
-        #     SecurityGroupRuleSettings(
-        #         sec_grp_name="orchestra-sec-group-allowall",
-        #         direction=Direction.ingress,
-        #         protocol=Protocol.icmp,
-        #         port_range_min=-1,
-        #         port_range_max=-1))
-        # sg_rules.append(
-        #     SecurityGroupRuleSettings(
-        #         sec_grp_name="orchestra-sec-group-allowall",
-        #         direction=Direction.egress,
-        #         protocol=Protocol.icmp,
-        #         port_range_min=-1,
-        #         port_range_max=-1))
-
         security_group = OpenStackSecurityGroup(
             self.snaps_creds,
-            SecurityGroupSettings(
+            SecurityGroupConfig(
                 name="orchestra-sec-group-allowall",
                 rule_settings=sg_rules))
 
@@ -313,7 +298,7 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
         self.logger.info(
             "Create Flavor for Open Baton NFVO if not yet existing")
 
-        flavor_settings = FlavorSettings(
+        flavor_settings = FlavorConfig(
             name=self.mano['requirements']['flavor']['name'],
             ram=self.mano['requirements']['flavor']['ram_min'],
             disk=self.mano['requirements']['flavor']['disk'],
@@ -329,11 +314,11 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
         """Create network/subnet/router if they doen't exist yet"""
         self.logger.info(
             "Creating network/subnet/router if they doen't exist yet...")
-        subnet_settings = SubnetSettings(
+        subnet_settings = SubnetConfig(
             name='%s_subnet' %
             self.case_name,
             cidr="192.168.100.0/24")
-        network_settings = NetworkSettings(
+        network_settings = NetworkConfig(
             name='%s_net' %
             self.case_name,
             subnet_settings=[subnet_settings])
@@ -348,7 +333,7 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
         self.created_resources.append(orchestra_network)
         orchestra_router = OpenStackRouter(
             self.snaps_creds,
-            RouterSettings(
+            RouterConfig(
                 name='%s_router' %
                 self.case_name,
                 external_gateway=self.mano['details']['external_net_name'],
@@ -372,7 +357,6 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
         my_floating_ips = []
         # Filter Floating IPs with tenant id
         for floating_ip in floating_ips:
-            # self.logger.info("Floating IP: %s", floating_ip)
             if floating_ip.get('tenant_id') == tenant_id:
                 my_floating_ips.append(floating_ip.get('floating_ip_address'))
         # Select if Floating IP exist else create new one
@@ -452,21 +436,21 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
                          self.mano['details']['network']['id'])
         self.logger.debug("userdata: %s\n", userdata)
         # setting up image
-        image_settings = ImageSettings(
+        image_settings = ImageConfig(
             name=self.mano['requirements']['image'],
             image_user='ubuntu',
             exists=True)
         # setting up port
-        port_settings = PortSettings(
+        port_settings = PortConfig(
             name='%s_port' % self.case_name,
             network_name=self.mano['details']['network']['name'])
         # build configuration of vm
-        orchestra_settings = VmInstanceSettings(
+        orchestra_settings = VmInstanceConfig(
             name=self.case_name,
             flavor=self.mano['details']['flavor']['name'],
             port_settings=[port_settings],
             security_group_names=[self.mano['details']['sec_group']],
-            userdata=userdata)
+            userdata=str(userdata))
         orchestra_vm = OpenStackVmInstance(self.snaps_creds,
                                            orchestra_settings,
                                            image_settings)
@@ -494,7 +478,7 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
 
         self.logger.info("Waiting for Open Baton NFVO to be up and running...")
         timeout = 0
-        while timeout < 200:
+        while timeout < 20:
             if servertest(
                     self.mano['details']['fip'].ip,
                     "8080"):
@@ -502,11 +486,11 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
             else:
                 self.logger.info(
                     "Open Baton NFVO is not started yet (%ss)",
-                    (timeout * 5))
-                time.sleep(5)
+                    (timeout * 60))
+                time.sleep(60)
                 timeout += 1
 
-        if timeout >= 200:
+        if timeout >= 20:
             duration = time.time() - start_time
             self.details["orchestrator"].update(
                 status='FAIL', duration=duration)
@@ -534,7 +518,7 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
 
         self.logger.info(
             "Create %s Flavor if not existing", self.vnf['name'])
-        flavor_settings = FlavorSettings(
+        flavor_settings = FlavorConfig(
             name=self.vnf['requirements']['flavor']['name'],
             ram=self.vnf['requirements']['flavor']['ram_min'],
             disk=self.vnf['requirements']['flavor']['disk'],
@@ -599,13 +583,13 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
         while self.mano['details']['nsr'].get("status") != 'ACTIVE' \
                 and self.mano['details']['nsr'].get("status") != 'ERROR':
             timeout += 1
-            self.logger.info("NSR is not yet ACTIVE... (%ss)", 5 * timeout)
-            if timeout == 300:
-                self.logger.error("INACTIVE NSR after %s sec..", 5 * timeout)
+            self.logger.info("NSR is not yet ACTIVE... (%ss)", 60 * timeout)
+            if timeout == 30:
+                self.logger.error("INACTIVE NSR after %s sec..", 60 * timeout)
                 duration = time.time() - start_time
                 self.details["vnf"].update(status='FAIL', duration=duration)
                 return False
-            time.sleep(5)
+            time.sleep(60)
             self.mano['details']['nsr'] = json.loads(
                 nsr_agent.find(self.mano['details']['nsr'].get('id')))
 
@@ -665,19 +649,19 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding):
                 port_name='%s_port' % self.case_name)
             snaps_utils.neutron_utils.delete_port(neutron_client, port)
             time.sleep(10)
-        except Exception as exc:
+        except Exception as exc:  # pylint: disable=broad-except
             self.logger.error('Unexpected error cleaning - %s', exc)
         try:
             self.logger.info("Deleting Open Baton Floating IP...")
             snaps_utils.neutron_utils.delete_floating_ip(
                 neutron_client, self.mano['details']['fip'])
-        except Exception as exc:
+        except Exception as exc:  # pylint: disable=broad-except
             self.logger.error('Unexpected error cleaning - %s', exc)
 
         for resource in reversed(self.created_resources):
             try:
                 self.logger.info("Cleaning %s", str(resource))
                 resource.clean()
-            except Exception as exc:
+            except Exception as exc:  # pylint: disable=broad-except
                 self.logger.error('Unexpected error cleaning - %s', exc)
         super(ClearwaterImsVnf, self).clean()