summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/utils
diff options
context:
space:
mode:
Diffstat (limited to 'snaps/openstack/utils')
-rw-r--r--snaps/openstack/utils/heat_utils.py7
-rw-r--r--snaps/openstack/utils/neutron_utils.py67
-rw-r--r--snaps/openstack/utils/nova_utils.py39
-rw-r--r--snaps/openstack/utils/settings_utils.py12
-rw-r--r--snaps/openstack/utils/tests/heat_utils_tests.py9
-rw-r--r--snaps/openstack/utils/tests/neutron_utils_tests.py63
-rw-r--r--snaps/openstack/utils/tests/nova_utils_tests.py23
-rw-r--r--snaps/openstack/utils/tests/settings_utils_tests.py2
8 files changed, 138 insertions, 84 deletions
diff --git a/snaps/openstack/utils/heat_utils.py b/snaps/openstack/utils/heat_utils.py
index e440717..6e54dc6 100644
--- a/snaps/openstack/utils/heat_utils.py
+++ b/snaps/openstack/utils/heat_utils.py
@@ -257,13 +257,14 @@ def get_stack_security_groups(heat_cli, neutron, stack):
return out
-def get_stack_servers(heat_cli, nova, neutron, stack):
+def get_stack_servers(heat_cli, nova, neutron, stack, project_id):
"""
Returns a list of VMInst domain objects associated with a Stack
:param heat_cli: the OpenStack heat client object
:param nova: the OpenStack nova client object
:param neutron: the OpenStack neutron client object
:param stack: the SNAPS-OO Stack domain object
+ :param project_id: the associated project ID
:return: a list of VMInst domain objects
"""
@@ -272,7 +273,7 @@ def get_stack_servers(heat_cli, nova, neutron, stack):
for resource in srvr_res:
try:
server = nova_utils.get_server_object_by_id(
- nova, neutron, resource.id)
+ nova, neutron, resource.id, project_id)
if server:
out.append(server)
except NotFound:
@@ -286,7 +287,7 @@ def get_stack_servers(heat_cli, nova, neutron, stack):
heat_cli, res_res.id, 'OS::Nova::Server')
for res_srvr in res_res_srvrs:
server = nova_utils.get_server_object_by_id(
- nova, neutron, res_srvr.id)
+ nova, neutron, res_srvr.id, project_id)
if server:
out.append(server)
diff --git a/snaps/openstack/utils/neutron_utils.py b/snaps/openstack/utils/neutron_utils.py
index d297c8c..a2957a6 100644
--- a/snaps/openstack/utils/neutron_utils.py
+++ b/snaps/openstack/utils/neutron_utils.py
@@ -102,7 +102,7 @@ def delete_network(neutron, network):
def get_network(neutron, network_settings=None, network_name=None,
- project_id=None):
+ project_id=None, os_creds=None):
"""
Returns Network SNAPS-OO domain object the first network found with
either the given attributes from the network_settings object if not None,
@@ -112,6 +112,7 @@ def get_network(neutron, network_settings=None, network_name=None,
:param network_settings: the NetworkConfig object used to create filter
:param network_name: the name of the network to retrieve
:param project_id: the id of the network's project
+ :param os_creds: the OpenStack credentials for retrieving the project
:return: a SNAPS-OO Network domain object
"""
net_filter = dict()
@@ -120,7 +121,10 @@ def get_network(neutron, network_settings=None, network_name=None,
elif network_name:
net_filter['name'] = network_name
- if project_id:
+ if network_settings and network_settings.project_name and os_creds:
+ net_filter['project_id'] = keystone_utils.get_project(
+ os_creds=os_creds, project_name=network_settings.project_name).id
+ elif project_id:
net_filter['project_id'] = project_id
networks = neutron.list_networks(**net_filter)
@@ -278,7 +282,7 @@ def get_subnets_by_network_id(neutron, network_id):
return out
-def create_router(neutron, os_creds, router_settings):
+def create_router(neutron, os_creds, router_settings, project_id):
"""
Creates a router for OpenStack
:param neutron: the client
@@ -286,10 +290,16 @@ def create_router(neutron, os_creds, router_settings):
:param router_settings: A dictionary containing the router configuration
and is responsible for creating the subnet request
JSON body
+ :param project_id: the associated project ID
:return: a SNAPS-OO Router domain object
"""
if neutron:
- json_body = router_settings.dict_for_neutron(neutron, os_creds)
+ if router_settings and router_settings.project_name:
+ keystone = keystone_utils.keystone_client(os_creds)
+ project_id = keystone_utils.get_project(
+ keystone=keystone, project_name=router_settings.project_name)
+ json_body = router_settings.dict_for_neutron(
+ neutron, os_creds, project_id)
logger.info('Creating router with name - ' + router_settings.name)
os_router = neutron.create_router(json_body)
return __map_router(neutron, os_router['router'])
@@ -460,10 +470,7 @@ def create_port(neutron, os_creds, port_settings):
logger.info('Creating port for network with name - %s',
port_settings.network_name)
os_port = neutron.create_port(body=json_body)['port']
- return Port(name=os_port['name'], id=os_port['id'],
- ips=os_port['fixed_ips'],
- mac_address=os_port['mac_address'],
- allowed_address_pairs=os_port['allowed_address_pairs'])
+ return Port(**os_port)
def delete_port(neutron, port):
@@ -476,13 +483,14 @@ def delete_port(neutron, port):
neutron.delete_port(port.id)
-def get_port(neutron, port_settings=None, port_name=None):
+def get_port(neutron, port_settings=None, port_name=None, project_id=None):
"""
Returns the first port object (dictionary) found for the given query
:param neutron: the client
:param port_settings: the PortConfig object used for generating the query
:param port_name: if port_settings is None, this name is the value to place
into the query
+ :param project_id: the associated project ID
:return: a SNAPS-OO Port domain object
"""
port_filter = dict()
@@ -497,13 +505,17 @@ def get_port(neutron, port_settings=None, port_name=None):
if port_settings.mac_address:
port_filter['mac_address'] = port_settings.mac_address
if port_settings.network_name:
- network = get_network(neutron,
- network_name=port_settings.network_name)
+ network = get_network(
+ neutron, network_name=port_settings.network_name,
+ project_id=project_id)
if network:
port_filter['network_id'] = network.id
elif port_name:
port_filter['name'] = port_name
+ if project_id:
+ port_filter['project_id'] = project_id
+
ports = neutron.list_ports(**port_filter)
for port in ports['ports']:
return Port(**port)
@@ -718,14 +730,11 @@ def get_external_networks(neutron):
return out
-def get_floating_ips(neutron, ports=None):
+def get_port_floating_ips(neutron, ports):
"""
- Returns all of the floating IPs
- When ports is not None, FIPs returned must be associated with one of the
- ports in the list and a tuple 2 where the first element being the port's
- ID and the second being the FloatingIp SNAPS-OO domain object.
- When ports is None, all known FloatingIp SNAPS-OO domain objects will be
- returned in a list
+ Returns all of the floating IPs associated with the ports returned in a
+ list of tuples where the port object is in the first position and the
+ floating IP object is in the second
:param neutron: the Neutron client
:param ports: a list of tuple 2 where index 0 is the port name and index 1
is the SNAPS-OO Port object
@@ -735,14 +744,22 @@ def get_floating_ips(neutron, ports=None):
out = list()
fips = neutron.list_floatingips()
for fip in fips['floatingips']:
- if ports:
- for port_name, port in ports:
- if port and port.id == fip['port_id']:
- out.append((port.id, FloatingIp(**fip)))
- break
- else:
- out.append(FloatingIp(**fip))
+ for port_name, port in ports:
+ if port and port.id == fip['port_id']:
+ out.append((port.id, FloatingIp(**fip)))
+ break
+ return out
+
+def get_floating_ips(neutron):
+ """
+ Returns a list of all of the floating IPs
+ :param neutron: the Neutron client
+ """
+ out = list()
+ fips = neutron.list_floatingips()
+ for fip in fips['floatingips']:
+ out.append(FloatingIp(**fip))
return out
diff --git a/snaps/openstack/utils/nova_utils.py b/snaps/openstack/utils/nova_utils.py
index ba902f9..b37e0a4 100644
--- a/snaps/openstack/utils/nova_utils.py
+++ b/snaps/openstack/utils/nova_utils.py
@@ -56,7 +56,7 @@ def nova_client(os_creds):
def create_server(nova, neutron, glance, instance_config, image_config,
- keypair_config=None):
+ project_id, keypair_config=None):
"""
Creates a VM instance
:param nova: the nova client (required)
@@ -64,6 +64,7 @@ def create_server(nova, neutron, glance, instance_config, image_config,
:param glance: the glance client (required)
:param instance_config: the VMInstConfig object (required)
:param image_config: the VM's ImageConfig object (required)
+ :param project_id: the associated project ID (required)
:param keypair_config: the VM's KeypairConfig object (optional)
:return: a snaps.domain.VmInst object
"""
@@ -71,7 +72,8 @@ def create_server(nova, neutron, glance, instance_config, image_config,
ports = list()
for port_setting in instance_config.port_settings:
- port = neutron_utils.get_port(neutron, port_settings=port_setting)
+ port = neutron_utils.get_port(
+ neutron, port_settings=port_setting, project_id=project_id)
if port:
ports.append(port)
else:
@@ -120,14 +122,15 @@ def create_server(nova, neutron, glance, instance_config, image_config,
server = nova.servers.create(**args)
- return __map_os_server_obj_to_vm_inst(neutron, server)
+ return __map_os_server_obj_to_vm_inst(neutron, server, project_id)
else:
raise NovaException(
'Cannot create instance, image cannot be located with name %s',
image_config.name)
-def get_server(nova, neutron, vm_inst_settings=None, server_name=None):
+def get_server(nova, neutron, vm_inst_settings=None, server_name=None,
+ project_id=None):
"""
Returns a VmInst object for the first server instance found.
:param nova: the Nova client
@@ -136,6 +139,7 @@ def get_server(nova, neutron, vm_inst_settings=None, server_name=None):
the query if not None
:param server_name: the server with this name to return if vm_inst_settings
is not None
+ :param project_id: the assocaited project ID
:return: a snaps.domain.VmInst object or None if not found
"""
search_opts = dict()
@@ -146,7 +150,7 @@ def get_server(nova, neutron, vm_inst_settings=None, server_name=None):
servers = nova.servers.list(search_opts=search_opts)
for server in servers:
- return __map_os_server_obj_to_vm_inst(neutron, server)
+ return __map_os_server_obj_to_vm_inst(neutron, server, project_id)
def get_server_connection(nova, vm_inst_settings=None, server_name=None):
@@ -170,7 +174,7 @@ def get_server_connection(nova, vm_inst_settings=None, server_name=None):
return server.links[0]
-def __map_os_server_obj_to_vm_inst(neutron, os_server):
+def __map_os_server_obj_to_vm_inst(neutron, os_server, project_id):
"""
Returns a VmInst object for an OpenStack Server object
:param neutron: the Neutron client (when None, ports will be empty)
@@ -187,7 +191,8 @@ def __map_os_server_obj_to_vm_inst(neutron, os_server):
out_ports = list()
if len(os_server.networks) > 0:
for net_name, ips in os_server.networks.items():
- network = neutron_utils.get_network(neutron, network_name=net_name)
+ network = neutron_utils.get_network(
+ neutron, network_name=net_name, project_id=project_id)
ports = neutron_utils.get_ports(neutron, network, ips)
for port in ports:
out_ports.append(port)
@@ -249,28 +254,30 @@ def get_server_console_output(nova, server):
return None
-def get_latest_server_object(nova, neutron, server):
+def get_latest_server_object(nova, neutron, server, project_id):
"""
Returns a server with a given id
:param nova: the Nova client
:param neutron: the Neutron client
:param server: the old server object
+ :param project_id: the associated project ID
:return: the list of servers or None if not found
"""
server = __get_latest_server_os_object(nova, server)
- return __map_os_server_obj_to_vm_inst(neutron, server)
+ return __map_os_server_obj_to_vm_inst(neutron, server, project_id)
-def get_server_object_by_id(nova, neutron, server_id):
+def get_server_object_by_id(nova, neutron, server_id, project_id):
"""
Returns a server with a given id
:param nova: the Nova client
:param neutron: the Neutron client
:param server_id: the server's id
+ :param project_id: the associated project ID
:return: an SNAPS-OO VmInst object or None if not found
"""
server = __get_latest_server_os_object_by_id(nova, server_id)
- return __map_os_server_obj_to_vm_inst(neutron, server)
+ return __map_os_server_obj_to_vm_inst(neutron, server, project_id)
def get_server_security_group_names(nova, server):
@@ -713,7 +720,7 @@ def update_quotas(nova, project_id, compute_quotas):
return nova.quotas.update(project_id, **update_values)
-def attach_volume(nova, neutron, server, volume, timeout=120):
+def attach_volume(nova, neutron, server, volume, project_id, timeout=120):
"""
Attaches a volume to a server. When the timeout parameter is used, a VmInst
object with the proper volume updates is returned unless it has not been
@@ -722,6 +729,7 @@ def attach_volume(nova, neutron, server, volume, timeout=120):
:param neutron: the neutron client
:param server: the VMInst domain object
:param volume: the Volume domain object
+ :param project_id: the associated project ID
:param timeout: denotes the amount of time to block to determine if the
has been properly attached.
:return: updated VmInst object
@@ -730,7 +738,7 @@ def attach_volume(nova, neutron, server, volume, timeout=120):
start_time = time.time()
while time.time() < start_time + timeout:
- vm = get_server_object_by_id(nova, neutron, server.id)
+ vm = get_server_object_by_id(nova, neutron, server.id, project_id)
for vol_dict in vm.volume_ids:
if volume.id == vol_dict['id']:
return vm
@@ -741,7 +749,7 @@ def attach_volume(nova, neutron, server, volume, timeout=120):
volume.id, server.id))
-def detach_volume(nova, neutron, server, volume, timeout=120):
+def detach_volume(nova, neutron, server, volume, project_id, timeout=120):
"""
Detaches a volume to a server. When the timeout parameter is used, a VmInst
object with the proper volume updates is returned unless it has not been
@@ -750,6 +758,7 @@ def detach_volume(nova, neutron, server, volume, timeout=120):
:param neutron: the neutron client
:param server: the VMInst domain object
:param volume: the Volume domain object
+ :param project_id: the associated project ID
:param timeout: denotes the amount of time to block to determine if the
has been properly detached.
:return: updated VmInst object
@@ -758,7 +767,7 @@ def detach_volume(nova, neutron, server, volume, timeout=120):
start_time = time.time()
while time.time() < start_time + timeout:
- vm = get_server_object_by_id(nova, neutron, server.id)
+ vm = get_server_object_by_id(nova, neutron, server.id, project_id)
if len(vm.volume_ids) == 0:
return vm
else:
diff --git a/snaps/openstack/utils/settings_utils.py b/snaps/openstack/utils/settings_utils.py
index 2cf6047..c14437d 100644
--- a/snaps/openstack/utils/settings_utils.py
+++ b/snaps/openstack/utils/settings_utils.py
@@ -224,7 +224,7 @@ def create_keypair_config(heat_cli, stack, keypair, pk_output_key):
return KeypairConfig(name=keypair.name)
-def create_vm_inst_config(nova, neutron, server):
+def create_vm_inst_config(nova, neutron, server, project_id):
"""
Returns a VmInstanceConfig object
note: if the server instance is not active, the PortSettings objects will
@@ -232,6 +232,7 @@ def create_vm_inst_config(nova, neutron, server):
:param nova: the nova client
:param neutron: the neutron client
:param server: a SNAPS-OO VmInst domain object
+ :param project_id: the associated project ID
:return:
"""
@@ -244,7 +245,7 @@ def create_vm_inst_config(nova, neutron, server):
kwargs['port_settings'] = __create_port_configs(neutron, server.ports)
kwargs['security_group_names'] = server.sec_grp_names
kwargs['floating_ip_settings'] = __create_floatingip_config(
- neutron, kwargs['port_settings'])
+ neutron, kwargs['port_settings'], project_id)
return VmInstanceConfig(**kwargs)
@@ -281,7 +282,7 @@ def __create_port_configs(neutron, ports):
return out
-def __create_floatingip_config(neutron, port_settings):
+def __create_floatingip_config(neutron, port_settings, project_id):
"""
Returns a list of FloatingIpConfig objects as they pertain to an
existing deployed server instance
@@ -296,7 +297,8 @@ def __create_floatingip_config(neutron, port_settings):
fip_ports = list()
for port_setting in port_settings:
- setting_port = neutron_utils.get_port(neutron, port_setting)
+ setting_port = neutron_utils.get_port(
+ neutron, port_setting, project_id=project_id)
if setting_port:
network = neutron_utils.get_network(
neutron, network_name=port_setting.network_name)
@@ -307,7 +309,7 @@ def __create_floatingip_config(neutron, port_settings):
fip_ports.append((port_setting.name, setting_port))
break
- floating_ips = neutron_utils.get_floating_ips(neutron, fip_ports)
+ floating_ips = neutron_utils.get_port_floating_ips(neutron, fip_ports)
for port_id, floating_ip in floating_ips:
router = neutron_utils.get_router_by_id(neutron, floating_ip.router_id)
diff --git a/snaps/openstack/utils/tests/heat_utils_tests.py b/snaps/openstack/utils/tests/heat_utils_tests.py
index 67fbdec..ee95a63 100644
--- a/snaps/openstack/utils/tests/heat_utils_tests.py
+++ b/snaps/openstack/utils/tests/heat_utils_tests.py
@@ -187,7 +187,7 @@ class HeatUtilsCreateSimpleStackTests(OSComponentTestCase):
nova = nova_utils.nova_client(self.os_creds)
servers = heat_utils.get_stack_servers(
- self.heat_client, nova, neutron, self.stack1)
+ self.heat_client, nova, neutron, self.stack1, self.project_id)
self.assertIsNotNone(servers)
self.assertEqual(1, len(servers))
self.assertEqual(self.vm_inst_name, servers[0].name)
@@ -311,10 +311,11 @@ class HeatUtilsCreateComplexStackTests(OSComponentTestCase):
neutron = neutron_utils.neutron_client(self.os_creds)
glance = glance_utils.glance_client(self.os_creds)
servers = heat_utils.get_stack_servers(
- self.heat_client, nova, neutron, self.stack)
+ self.heat_client, nova, neutron, self.stack,
+ self.project_id)
for server in servers:
vm_settings = settings_utils.create_vm_inst_config(
- nova, neutron, server)
+ nova, neutron, server, self.project_id)
img_settings = settings_utils.determine_image_config(
glance, server,
[self.image_creator1.image_settings,
@@ -383,7 +384,7 @@ class HeatUtilsCreateComplexStackTests(OSComponentTestCase):
glance = glance_utils.glance_client(self.os_creds)
servers = heat_utils.get_stack_servers(
- self.heat_client, nova, neutron, self.stack)
+ self.heat_client, nova, neutron, self.stack, self.project_id)
self.assertIsNotNone(servers)
self.assertEqual(2, len(servers))
diff --git a/snaps/openstack/utils/tests/neutron_utils_tests.py b/snaps/openstack/utils/tests/neutron_utils_tests.py
index 4dfff87..22c6a33 100644
--- a/snaps/openstack/utils/tests/neutron_utils_tests.py
+++ b/snaps/openstack/utils/tests/neutron_utils_tests.py
@@ -109,7 +109,8 @@ class NeutronUtilsNetworkTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
self.assertEqual(len(self.net_config.network_settings.subnet_settings),
len(self.network.subnets))
@@ -167,7 +168,8 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -193,7 +195,8 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
with self.assertRaises(Exception):
SubnetConfig(cidr=self.net_config.subnet_cidr)
@@ -208,7 +211,8 @@ class NeutronUtilsSubnetTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -525,7 +529,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
Tests the neutron_utils.create_router()
"""
self.router = neutron_utils.create_router(
- self.neutron, self.os_creds, self.net_config.router_settings)
+ self.neutron, self.os_creds, self.net_config.router_settings,
+ self.project_id)
validate_router(self.neutron, self.net_config.router_settings.name,
True)
@@ -541,7 +546,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.net_config.router_settings.name,
self.ext_net_name)
self.router = neutron_utils.create_router(
- self.neutron, self.os_creds, self.net_config.router_settings)
+ self.neutron, self.os_creds, self.net_config.router_settings,
+ self.project_id)
validate_router(self.neutron, self.net_config.router_settings.name,
True)
@@ -558,14 +564,16 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
self.neutron, subnet_setting.name, subnet_setting.cidr, True))
self.router = neutron_utils.create_router(
- self.neutron, self.os_creds, self.net_config.router_settings)
+ self.neutron, self.os_creds, self.net_config.router_settings,
+ self.project_id)
validate_router(self.neutron, self.net_config.router_settings.name,
True)
@@ -584,7 +592,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -604,10 +613,12 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
self.router = neutron_utils.create_router(
- self.neutron, self.os_creds, self.net_config.router_settings)
+ self.neutron, self.os_creds, self.net_config.router_settings,
+ self.project_id)
validate_router(self.neutron, self.net_config.router_settings.name,
True)
@@ -625,10 +636,12 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
self.router = neutron_utils.create_router(
- self.neutron, self.os_creds, self.net_config.router_settings)
+ self.neutron, self.os_creds, self.net_config.router_settings,
+ self.project_id)
validate_router(self.neutron, self.net_config.router_settings.name,
True)
@@ -648,7 +661,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -672,7 +686,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(self.neutron, subnet_setting.name,
@@ -696,7 +711,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -740,7 +756,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -766,7 +783,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -792,7 +810,8 @@ class NeutronUtilsRouterTests(OSComponentTestCase):
self.assertEqual(self.net_config.network_settings.name,
self.network.name)
self.assertTrue(validate_network(
- self.neutron, self.net_config.network_settings.name, True))
+ self.neutron, self.net_config.network_settings.name, True,
+ self.project_id))
subnet_setting = self.net_config.network_settings.subnet_settings[0]
self.assertTrue(validate_subnet(
@@ -1007,7 +1026,7 @@ Validation routines
"""
-def validate_network(neutron, name, exists):
+def validate_network(neutron, name, exists, project_id):
"""
Returns true if a network for a given name DOES NOT exist if the exists
parameter is false conversely true. Returns false if a network for a given
@@ -1015,9 +1034,11 @@ def validate_network(neutron, name, exists):
:param neutron: The neutron client
:param name: The expected network name
:param exists: Whether or not the network name should exist or not
+ :param project_id: the associated project ID
:return: True/False
"""
- network = neutron_utils.get_network(neutron, network_name=name)
+ network = neutron_utils.get_network(neutron, network_name=name,
+ project_id=project_id)
if exists and network:
return True
if not exists and not network:
diff --git a/snaps/openstack/utils/tests/nova_utils_tests.py b/snaps/openstack/utils/tests/nova_utils_tests.py
index 9383088..560a9f3 100644
--- a/snaps/openstack/utils/tests/nova_utils_tests.py
+++ b/snaps/openstack/utils/tests/nova_utils_tests.py
@@ -323,7 +323,7 @@ class NovaUtilsInstanceTests(OSComponentTestCase):
self.vm_inst = nova_utils.create_server(
self.nova, self.neutron, self.glance, self.instance_settings,
- self.image_creator.image_settings)
+ self.image_creator.image_settings, self.project_id)
self.assertIsNotNone(self.vm_inst)
@@ -341,7 +341,7 @@ class NovaUtilsInstanceTests(OSComponentTestCase):
self.assertTrue(active)
vm_inst = nova_utils.get_latest_server_object(
- self.nova, self.neutron, self.vm_inst)
+ self.nova, self.neutron, self.vm_inst, self.project_id)
self.assertEqual(self.vm_inst.name, vm_inst.name)
self.assertEqual(self.vm_inst.id, vm_inst.id)
@@ -453,7 +453,7 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
neutron = neutron_utils.neutron_client(self.os_creds)
self.assertIsNotNone(nova_utils.attach_volume(
self.nova, neutron, self.instance_creator.get_vm_inst(),
- self.volume_creator.get_volume()))
+ self.volume_creator.get_volume(), self.project_id))
vol_attach = None
attached = False
@@ -472,7 +472,8 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
self.assertIsNotNone(vol_attach)
vm_attach = nova_utils.get_server_object_by_id(
- self.nova, neutron, self.instance_creator.get_vm_inst().id)
+ self.nova, neutron, self.instance_creator.get_vm_inst().id,
+ self.project_id)
# Validate Attachment
self.assertIsNotNone(vol_attach)
@@ -484,12 +485,13 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
# Detach volume to VM
self.assertIsNotNone(nova_utils.detach_volume(
self.nova, neutron, self.instance_creator.get_vm_inst(),
- self.volume_creator.get_volume()))
+ self.volume_creator.get_volume(), self.project_id))
vol_detach = cinder_utils.get_volume_by_id(
self.cinder, self.volume_creator.get_volume().id)
vm_detach = nova_utils.get_server_object_by_id(
- self.nova, neutron, self.instance_creator.get_vm_inst().id)
+ self.nova, neutron, self.instance_creator.get_vm_inst().id,
+ self.project_id)
# Validate Detachment
self.assertIsNotNone(vol_detach)
@@ -517,7 +519,7 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
with self.assertRaises(NovaException):
nova_utils.attach_volume(
self.nova, neutron, self.instance_creator.get_vm_inst(),
- self.volume_creator.get_volume(), 0)
+ self.volume_creator.get_volume(), self.project_id, 0)
def test_detach_volume_nowait(self):
"""
@@ -533,11 +535,12 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
neutron = neutron_utils.neutron_client(self.os_creds)
nova_utils.attach_volume(
self.nova, neutron, self.instance_creator.get_vm_inst(),
- self.volume_creator.get_volume())
+ self.volume_creator.get_volume(), self.project_id)
# Check VmInst for attachment
latest_vm = nova_utils.get_server_object_by_id(
- self.nova, neutron, self.instance_creator.get_vm_inst().id)
+ self.nova, neutron, self.instance_creator.get_vm_inst().id,
+ self.project_id)
self.assertEqual(1, len(latest_vm.volume_ids))
# Check Volume for attachment
@@ -561,4 +564,4 @@ class NovaUtilsInstanceVolumeTests(OSComponentTestCase):
with self.assertRaises(NovaException):
nova_utils.detach_volume(
self.nova, neutron, self.instance_creator.get_vm_inst(),
- self.volume_creator.get_volume(), 0)
+ self.volume_creator.get_volume(), self.project_id, 0)
diff --git a/snaps/openstack/utils/tests/settings_utils_tests.py b/snaps/openstack/utils/tests/settings_utils_tests.py
index cbd78d8..5dabe38 100644
--- a/snaps/openstack/utils/tests/settings_utils_tests.py
+++ b/snaps/openstack/utils/tests/settings_utils_tests.py
@@ -327,7 +327,7 @@ class SettingsUtilsVmInstTests(OSComponentTestCase):
self.nova, self.neutron,
vm_inst_settings=self.inst_creator.instance_settings)
derived_vm_settings = settings_utils.create_vm_inst_config(
- self.nova, self.neutron, server)
+ self.nova, self.neutron, server, self.project_id)
self.assertIsNotNone(derived_vm_settings)
self.assertIsNotNone(derived_vm_settings.port_settings)
self.assertIsNotNone(derived_vm_settings.floating_ip_settings)