Merge "Refactor network retrieval API calls."
[snaps.git] / snaps / openstack / utils / tests / neutron_utils_tests.py
index 516628b..0b9559a 100644 (file)
@@ -24,6 +24,7 @@ from snaps.openstack.tests import validation_utils
 from snaps.openstack.tests.os_source_file_test import OSComponentTestCase
 from snaps.openstack.utils import keystone_utils
 from snaps.openstack.utils import neutron_utils
+from snaps.openstack.utils.neutron_utils import NeutronException
 
 __author__ = 'spisarski'
 
@@ -73,7 +74,7 @@ class NeutronSmokeTests(OSComponentTestCase):
         ext_networks = neutron_utils.get_external_networks(neutron)
         found = False
         for network in ext_networks:
-            if network['network']['name'] == self.ext_net_name:
+            if network.name == self.ext_net_name:
                 found = True
                 break
         self.assertTrue(found)
@@ -98,8 +99,7 @@ class NeutronUtilsNetworkTests(OSComponentTestCase):
         """
         if self.network:
             neutron_utils.delete_network(self.neutron, self.network)
-            validate_network(self.neutron, self.network['network']['name'],
-                             False)
+            validate_network(self.neutron, self.network.name, False)
 
     def test_create_network(self):
         """
@@ -108,10 +108,9 @@ class NeutronUtilsNetworkTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
     def test_create_network_empty_name(self):
         """
@@ -155,14 +154,13 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         """
         if self.subnet:
             neutron_utils.delete_subnet(self.neutron, self.subnet)
-            validate_subnet(self.neutron, self.subnet.get('name'),
+            validate_subnet(self.neutron, self.subnet.name,
                             self.net_config.network_settings.subnet_settings[
                                 0].cidr, False)
 
         if self.network:
             neutron_utils.delete_network(self.neutron, self.network)
-            validate_network(self.neutron, self.network['network']['name'],
-                             False)
+            validate_network(self.neutron, self.network.name, False)
 
     def test_create_subnet(self):
         """
@@ -171,19 +169,15 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
-            self.neutron, subnet_setting,
-            self.os_creds, network=self.network)
+            self.neutron, subnet_setting, self.os_creds, network=self.network)
         validate_subnet(
-            self.neutron,
-            subnet_setting.name,
-            subnet_setting.cidr, True)
+            self.neutron, subnet_setting.name, subnet_setting.cidr, True)
 
     def test_create_subnet_null_name(self):
         """
@@ -193,10 +187,9 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         with self.assertRaises(Exception):
             SubnetSettings(cidr=self.net_config.subnet_cidr)
@@ -209,17 +202,14 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         neutron_utils.create_subnet(
-            self.neutron, subnet_setting,
-            self.os_creds, network=self.network)
-        validate_subnet(self.neutron, '',
-                        subnet_setting.cidr, True)
+            self.neutron, subnet_setting, self.os_creds, network=self.network)
+        validate_subnet(self.neutron, '', subnet_setting.cidr, True)
 
     def test_create_subnet_null_cidr(self):
         """
@@ -229,16 +219,15 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         with self.assertRaises(Exception):
-            sub_sets = SubnetSettings(cidr=None,
-                                      name=self.net_config.subnet_name)
-            neutron_utils.create_subnet(self.neutron, sub_sets, self.os_creds,
-                                        network=self.network)
+            sub_sets = SubnetSettings(
+                cidr=None, name=self.net_config.subnet_name)
+            neutron_utils.create_subnet(
+                self.neutron, sub_sets, self.os_creds, network=self.network)
 
     def test_create_subnet_empty_cidr(self):
         """
@@ -248,14 +237,13 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         with self.assertRaises(Exception):
-            sub_sets = SubnetSettings(cidr='',
-                                      name=self.net_config.subnet_name)
+            sub_sets = SubnetSettings(
+                cidr='', name=self.net_config.subnet_name)
             neutron_utils.create_subnet(self.neutron, sub_sets, self.os_creds,
                                         network=self.network)
 
@@ -288,21 +276,21 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
 
         if self.router:
             neutron_utils.delete_router(self.neutron, self.router)
-            validate_router(self.neutron, self.router.get('name'), False)
+            validate_router(self.neutron, self.router.name, False)
 
         if self.port:
             neutron_utils.delete_port(self.neutron, self.port)
 
         if self.subnet:
             neutron_utils.delete_subnet(self.neutron, self.subnet)
-            validate_subnet(self.neutron, self.subnet.get('name'),
-                            self.net_config.network_settings.subnet_settings[
-                                0].cidr, False)
+            validate_subnet(
+                self.neutron, self.subnet.name,
+                self.net_config.network_settings.subnet_settings[0].cidr,
+                False)
 
         if self.network:
             neutron_utils.delete_network(self.neutron, self.network)
-            validate_network(self.neutron, self.network['network']['name'],
-                             False)
+            validate_network(self.neutron, self.network.name, False)
 
     def test_create_router_simple(self):
         """
@@ -330,7 +318,11 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
             self.neutron, self.os_creds, self.net_config.router_settings)
         validate_router(self.neutron, self.net_config.router_settings.name,
                         True)
-        # TODO - Add validation that the router gatway has been set
+
+        ext_net = neutron_utils.get_network(
+            self.neutron, network_name=self.ext_net_name)
+        self.assertEqual(
+            self.router.external_gateway_info['network_id'], ext_net.id)
 
     def test_create_router_empty_name(self):
         """
@@ -361,10 +353,9 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
@@ -393,21 +384,18 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
             self.neutron, subnet_setting,
             self.os_creds, self.network)
         validate_subnet(
-            self.neutron,
-            subnet_setting.name,
-            subnet_setting.cidr, True)
+            self.neutron, subnet_setting.name, subnet_setting.cidr, True)
 
-        with self.assertRaises(Exception):
+        with self.assertRaises(NeutronException):
             self.interface_router = neutron_utils.add_interface_router(
                 self.neutron, self.router, self.subnet)
 
@@ -419,17 +407,16 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         self.router = neutron_utils.create_router(
             self.neutron, self.os_creds, self.net_config.router_settings)
         validate_router(self.neutron, self.net_config.router_settings.name,
                         True)
 
-        with self.assertRaises(Exception):
+        with self.assertRaises(NeutronException):
             self.interface_router = neutron_utils.add_interface_router(
                 self.neutron, self.router, self.subnet)
 
@@ -440,10 +427,9 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
@@ -467,10 +453,9 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
@@ -495,10 +480,9 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
@@ -543,10 +527,9 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
@@ -575,16 +558,13 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
-            self.neutron,
-            subnet_setting,
-            self.os_creds, self.network)
+            self.neutron, subnet_setting, self.os_creds, self.network)
         validate_subnet(self.neutron,
                         subnet_setting.name,
                         subnet_setting.cidr, True)
@@ -607,19 +587,15 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
         self.network = neutron_utils.create_network(
             self.neutron, self.os_creds, self.net_config.network_settings)
         self.assertEqual(self.net_config.network_settings.name,
-                         self.network['network']['name'])
-        self.assertTrue(validate_network(self.neutron,
-                                         self.net_config.network_settings.name,
-                                         True))
+                         self.network.name)
+        self.assertTrue(validate_network(
+            self.neutron, self.net_config.network_settings.name, True))
 
         subnet_setting = self.net_config.network_settings.subnet_settings[0]
         self.subnet = neutron_utils.create_subnet(
-            self.neutron,
-            subnet_setting,
-            self.os_creds, self.network)
-        validate_subnet(self.neutron,
-                        subnet_setting.name,
-                        subnet_setting.cidr, True)
+            self.neutron, subnet_setting, self.os_creds, self.network)
+        validate_subnet(
+            self.neutron, subnet_setting.name, subnet_setting.cidr, True)
 
         with self.assertRaises(Exception):
             self.port = neutron_utils.create_port(
@@ -830,7 +806,7 @@ def validate_network(neutron, name, exists):
     :param exists: Whether or not the network name should exist or not
     :return: True/False
     """
-    network = neutron_utils.get_network(neutron, name)
+    network = neutron_utils.get_network(neutron, network_name=name)
     if exists and network:
         return True
     if not exists and not network:
@@ -851,7 +827,7 @@ def validate_subnet(neutron, name, cidr, exists):
     """
     subnet = neutron_utils.get_subnet_by_name(neutron, name)
     if exists and subnet:
-        return subnet.get('cidr') == cidr
+        return subnet.cidr == cidr
     if not exists and not subnet:
         return True
     return False
@@ -877,15 +853,15 @@ def validate_interface_router(interface_router, router, subnet):
     """
     Returns true if the router ID & subnet ID have been properly included into
     the interface router object
-    :param interface_router: the object to validate
+    :param interface_router: the SNAPS-OO InterfaceRouter domain object
     :param router: to validate against the interface_router
     :param subnet: to validate against the interface_router
     :return: True if both IDs match else False
     """
-    subnet_id = interface_router.get('subnet_id')
-    router_id = interface_router.get('port_id')
+    subnet_id = interface_router.subnet_id
+    router_id = interface_router.port_id
 
-    return subnet.get('id') == subnet_id and router.get('id') == router_id
+    return subnet.id == subnet_id and router.id == router_id
 
 
 def validate_port(neutron, port_obj, this_port_name):
@@ -898,9 +874,9 @@ def validate_port(neutron, port_obj, this_port_name):
     :param this_port_name: The expected router name
     :return: True/False
     """
-    ports = neutron.list_ports()
-    for port, port_insts in ports.items():
-        for inst in port_insts:
-            if inst['id'] == port_obj['port']['id']:
-                return inst['name'] == this_port_name
+    os_ports = neutron.list_ports()
+    for os_port, os_port_insts in os_ports.items():
+        for os_inst in os_port_insts:
+            if os_inst['id'] == port_obj.id:
+                return os_inst['name'] == this_port_name
     return False