summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Pisarski <s.pisarski@cablelabs.com>2017-08-07 14:33:18 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-08-07 14:33:18 +0000
commitf3bfd3d092cf7122ade96b645c59101b9de3074d (patch)
tree4151e47b0265b2292f8ad246bdb3cd9b0f510469
parent2ac22f4647ab776f0c19180886bf3fc04e687368 (diff)
parenta5c556141ec9123422a5f372545219b5bb0a59ee (diff)
Merge "Refactored port retrieval to include PortSettigs."
-rw-r--r--snaps/openstack/create_instance.py4
-rw-r--r--snaps/openstack/create_router.py4
-rw-r--r--snaps/openstack/tests/create_router_tests.py7
-rw-r--r--snaps/openstack/utils/neutron_utils.py28
-rw-r--r--snaps/openstack/utils/nova_utils.py4
5 files changed, 34 insertions, 13 deletions
diff --git a/snaps/openstack/create_instance.py b/snaps/openstack/create_instance.py
index 252f2fe..ef8b4f3 100644
--- a/snaps/openstack/create_instance.py
+++ b/snaps/openstack/create_instance.py
@@ -259,8 +259,8 @@ class OpenStackVmInstance:
ports = list()
for port_setting in port_settings:
- port = neutron_utils.get_port_by_name(self.__neutron,
- port_setting.name)
+ port = neutron_utils.get_port(
+ self.__neutron, port_settings=port_setting)
if port:
ports.append((port_setting.name, port))
elif not cleanup:
diff --git a/snaps/openstack/create_router.py b/snaps/openstack/create_router.py
index 3e0d904..6bbfcf9 100644
--- a/snaps/openstack/create_router.py
+++ b/snaps/openstack/create_router.py
@@ -89,8 +89,8 @@ class OpenStackRouter:
'Subnet not found with name ' + internal_subnet_name)
for port_setting in self.router_settings.port_settings:
- port = neutron_utils.get_port_by_name(self.__neutron,
- port_setting.name)
+ port = neutron_utils.get_port(
+ self.__neutron, port_settings=port_setting)
logger.info(
'Retrieved port %s for router - %s', port_setting.name,
self.router_settings.name)
diff --git a/snaps/openstack/tests/create_router_tests.py b/snaps/openstack/tests/create_router_tests.py
index 6e10d66..6f37445 100644
--- a/snaps/openstack/tests/create_router_tests.py
+++ b/snaps/openstack/tests/create_router_tests.py
@@ -326,6 +326,13 @@ class CreateRouterSuccessTests(OSIntegrationTestCase):
self.assertTrue(verify_router_attributes(router, self.router_creator))
+ # Instantiate second identical creator to ensure a second router
+ # has not been created
+ router_creator2 = create_router.OpenStackRouter(
+ self.os_creds, router_settings)
+ router2 = router_creator2.create()
+ self.assertIsNotNone(self.router_creator.get_router(), router2)
+
def test_create_router_external_network(self):
"""
Test creation of a router connected to an external network and a
diff --git a/snaps/openstack/utils/neutron_utils.py b/snaps/openstack/utils/neutron_utils.py
index 2de3586..d892504 100644
--- a/snaps/openstack/utils/neutron_utils.py
+++ b/snaps/openstack/utils/neutron_utils.py
@@ -307,18 +307,32 @@ def delete_port(neutron, port):
neutron.delete_port(port.id)
-def get_port_by_name(neutron, port_name):
+def get_port(neutron, port_settings=None, port_name=None):
"""
- Returns the first port object (dictionary) found with a given name
+ Returns the first port object (dictionary) found for the given query
:param neutron: the client
- :param port_name: the name of the port to retrieve
+ :param port_settings: the PortSettings object used for generating the query
+ :param port_name: if port_settings is None, this name is the value to place
+ into the query
:return: a SNAPS-OO Port domain object
"""
- ports = neutron.list_ports(**{'name': port_name})
+ port_filter = dict()
+
+ if port_settings:
+ port_filter['name'] = port_settings.name
+ if port_settings.admin_state_up:
+ port_filter['admin_state_up'] = port_settings.admin_state_up
+ if port_settings.device_id:
+ port_filter['device_id'] = port_settings.device_id
+ if port_settings.mac_address:
+ port_filter['mac_address'] = port_settings.mac_address
+ elif port_name:
+ port_filter['name'] = port_name
+
+ ports = neutron.list_ports(**port_filter)
for port in ports['ports']:
- if port['name'] == port_name:
- return Port(name=port['name'], id=port['id'],
- ips=port['fixed_ips'], mac_address=port['mac_address'])
+ return Port(name=port['name'], id=port['id'],
+ ips=port['fixed_ips'], mac_address=port['mac_address'])
return None
diff --git a/snaps/openstack/utils/nova_utils.py b/snaps/openstack/utils/nova_utils.py
index a0c028a..d6a8e02 100644
--- a/snaps/openstack/utils/nova_utils.py
+++ b/snaps/openstack/utils/nova_utils.py
@@ -65,8 +65,8 @@ def create_server(nova, neutron, glance, instance_settings, image_settings,
ports = list()
for port_setting in instance_settings.port_settings:
- ports.append(neutron_utils.get_port_by_name(
- neutron, port_setting.name))
+ ports.append(neutron_utils.get_port(
+ neutron, port_settings=port_setting))
nics = []
for port in ports:
kv = dict()