summaryrefslogtreecommitdiffstats
path: root/snaps/openstack/tests
diff options
context:
space:
mode:
authorspisarski <s.pisarski@cablelabs.com>2017-07-24 11:27:59 -0600
committerspisarski <s.pisarski@cablelabs.com>2017-07-24 11:27:59 -0600
commit3d6ec1eeaf70ae4e46042946f8bd35d5b5380401 (patch)
tree9d2881a2f73de6e779d266ceb6798ec3930d42ea /snaps/openstack/tests
parentfeae63d11f8295a0d9327496f42949ad5b67fca4 (diff)
Fixed problems when setting the OpenStack project ID.
There were several calls to retrieve the project ID that required named parameters which was causing the utility function to always return None. Additionally, when creating the dict() required by the Neutron create API 'body' parameter key 'project_id' is not supported and still uses 'tenant_id'. As these problems should have been found earlier, this patch also extends the tests for networks, subnets, ports, and security groups to use 'tenant_id' rather than 'project_id'. JIRA: SNAPS-143 Change-Id: Ic69e56145ea6070718d821edd22a1d0f9970995d Signed-off-by: spisarski <s.pisarski@cablelabs.com>
Diffstat (limited to 'snaps/openstack/tests')
-rw-r--r--snaps/openstack/tests/create_network_tests.py60
-rw-r--r--snaps/openstack/tests/create_router_tests.py86
-rw-r--r--snaps/openstack/tests/create_security_group_tests.py57
-rw-r--r--snaps/openstack/tests/os_source_file_test.py3
4 files changed, 182 insertions, 24 deletions
diff --git a/snaps/openstack/tests/create_network_tests.py b/snaps/openstack/tests/create_network_tests.py
index 322d383..bd373f1 100644
--- a/snaps/openstack/tests/create_network_tests.py
+++ b/snaps/openstack/tests/create_network_tests.py
@@ -464,6 +464,66 @@ class CreateNetworkSuccessTests(OSIntegrationTestCase):
self.assertEqual(self.net_creator.get_network().id,
self.net_creator2.get_network().id)
+ def test_create_network_router_admin_user_to_new_project(self):
+ """
+ Tests the creation of an OpenStack network and router with the current
+ user to the admin project.
+ """
+ # Create Network/Subnet where the project names have been changed
+ admin_project_name = self.admin_os_creds.project_name
+ self.net_config.network_settings.project_name = admin_project_name
+ self.net_config.network_settings.subnet_settings[0].project_name = \
+ admin_project_name
+ self.net_creator = OpenStackNetwork(self.os_creds,
+ self.net_config.network_settings)
+ self.net_creator.create()
+
+ retrieved_net = neutron_utils.get_network(
+ self.neutron, self.net_config.network_settings.name)
+
+ self.assertEqual(self.net_creator.get_network().id, retrieved_net.id)
+
+ # Create Router
+ self.net_config.router_settings.project_name = admin_project_name
+ self.router_creator = create_router.OpenStackRouter(
+ self.os_creds, self.net_config.router_settings)
+ self.router_creator.create()
+
+ retrieved_router = neutron_utils.get_router_by_name(
+ self.neutron, self.router_creator.get_router().name)
+ self.assertEqual(
+ self.router_creator.get_router().id, retrieved_router.id)
+
+ def test_create_network_router_new_user_to_admin_project(self):
+ """
+ Tests the creation of an OpenStack network and router with the admin
+ user to the new project.
+ """
+ # Create Network/Subnet where the project names have been changed
+ new_project_name = self.os_creds.project_name
+ self.net_config.network_settings.project_name = new_project_name
+ self.net_config.network_settings.subnet_settings[0].project_name = \
+ new_project_name
+ self.net_creator = OpenStackNetwork(self.admin_os_creds,
+ self.net_config.network_settings)
+ self.net_creator.create()
+
+ retrieved_net = neutron_utils.get_network(
+ self.neutron, self.net_config.network_settings.name)
+
+ self.assertEqual(self.net_creator.get_network().id, retrieved_net.id)
+
+ # Create Router
+ self.net_config.router_settings.project_name = new_project_name
+ self.router_creator = create_router.OpenStackRouter(
+ self.admin_os_creds, self.net_config.router_settings)
+ self.router_creator.create()
+
+ retrieved_router = neutron_utils.get_router_by_name(
+ self.neutron, self.router_creator.get_router().name)
+ self.assertEqual(
+ self.router_creator.get_router().id, retrieved_router.id)
+
class CreateNetworkTypeTests(OSComponentTestCase):
"""
diff --git a/snaps/openstack/tests/create_router_tests.py b/snaps/openstack/tests/create_router_tests.py
index efa0993..6e10d66 100644
--- a/snaps/openstack/tests/create_router_tests.py
+++ b/snaps/openstack/tests/create_router_tests.py
@@ -21,7 +21,7 @@ from snaps.openstack.create_network import (
NetworkSettings, PortSettings)
from snaps.openstack.create_network import OpenStackNetwork
from snaps.openstack.create_router import (
- RouterSettings, RouterSettingsError, RouterCreationError)
+ RouterSettings, RouterSettingsError)
from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
from snaps.openstack.utils import neutron_utils
@@ -169,6 +169,46 @@ class CreateRouterSuccessTests(OSIntegrationTestCase):
self.assertTrue(verify_router_attributes(
router, self.router_creator, ext_gateway=self.ext_net_name))
+ def test_create_router_admin_user_to_new_project(self):
+ """
+ Test creation of a most basic router with the admin user pointing
+ to the new project.
+ """
+ router_settings = RouterSettings(
+ name=self.guid + '-pub-router', external_gateway=self.ext_net_name,
+ project_name=self.os_creds.project_name)
+
+ self.router_creator = create_router.OpenStackRouter(
+ self.admin_os_creds, router_settings)
+ self.router_creator.create()
+
+ router = neutron_utils.get_router_by_name(self.neutron,
+ router_settings.name)
+ self.assertIsNotNone(router)
+
+ self.assertTrue(verify_router_attributes(
+ router, self.router_creator, ext_gateway=self.ext_net_name))
+
+ def test_create_router_new_user_to_admin_project(self):
+ """
+ Test creation of a most basic router with the new user pointing
+ to the admin project.
+ """
+ router_settings = RouterSettings(
+ name=self.guid + '-pub-router', external_gateway=self.ext_net_name,
+ project_name=self.admin_os_creds.project_name)
+
+ self.router_creator = create_router.OpenStackRouter(
+ self.os_creds, router_settings)
+ self.router_creator.create()
+
+ router = neutron_utils.get_router_by_name(self.neutron,
+ router_settings.name)
+ self.assertIsNotNone(router)
+
+ self.assertTrue(verify_router_attributes(
+ router, self.router_creator, ext_gateway=self.ext_net_name))
+
def test_create_delete_router(self):
"""
Test that clean() will not raise an exception if the router is deleted
@@ -257,14 +297,23 @@ class CreateRouterSuccessTests(OSIntegrationTestCase):
self.network_creator2.create()
port_settings = [
- create_network.PortSettings(name=self.guid + '-port1', ip_addrs=[
- {'subnet_name': network_settings1.subnet_settings[0].name,
- 'ip': static_gateway_ip1}],
- network_name=network_settings1.name),
- create_network.PortSettings(name=self.guid + '-port2', ip_addrs=[
- {'subnet_name': network_settings2.subnet_settings[0].name,
- 'ip': static_gateway_ip2}],
- network_name=network_settings2.name)]
+ create_network.PortSettings(
+ name=self.guid + '-port1',
+ ip_addrs=[{
+ 'subnet_name':
+ network_settings1.subnet_settings[0].name,
+ 'ip': static_gateway_ip1
+ }],
+ network_name=network_settings1.name,
+ project_name=self.os_creds.project_name),
+ create_network.PortSettings(
+ name=self.guid + '-port2',
+ ip_addrs=[{
+ 'subnet_name': network_settings2.subnet_settings[0].name,
+ 'ip': static_gateway_ip2
+ }],
+ network_name=network_settings2.name,
+ project_name=self.os_creds.project_name)]
router_settings = RouterSettings(name=self.guid + '-pub-router',
port_settings=port_settings)
@@ -293,14 +342,17 @@ class CreateRouterSuccessTests(OSIntegrationTestCase):
self.network_creator1.create()
port_settings = [
- create_network.PortSettings(name=self.guid + '-port1', ip_addrs=[
- {'subnet_name': network_settings.subnet_settings[0].name,
- 'ip': static_gateway_ip1}],
- network_name=network_settings.name)]
-
- router_settings = RouterSettings(name=self.guid + '-pub-router',
- external_gateway=self.ext_net_name,
- port_settings=port_settings)
+ create_network.PortSettings(
+ name=self.guid + '-port1',
+ ip_addrs=[{
+ 'subnet_name': network_settings.subnet_settings[0].name,
+ 'ip': static_gateway_ip1}],
+ network_name=network_settings.name,
+ project_name=self.os_creds.project_name)]
+
+ router_settings = RouterSettings(
+ name=self.guid + '-pub-router', external_gateway=self.ext_net_name,
+ port_settings=port_settings)
self.router_creator = create_router.OpenStackRouter(self.os_creds,
router_settings)
self.router_creator.create()
diff --git a/snaps/openstack/tests/create_security_group_tests.py b/snaps/openstack/tests/create_security_group_tests.py
index dd28d7d..7cae62b 100644
--- a/snaps/openstack/tests/create_security_group_tests.py
+++ b/snaps/openstack/tests/create_security_group_tests.py
@@ -16,12 +16,9 @@ import unittest
import uuid
from snaps.openstack import create_security_group
-from snaps.openstack.create_security_group import (SecurityGroupSettings,
- SecurityGroupRuleSettings,
- Direction, Ethertype,
- Protocol,
- SecurityGroupRuleSettingsError,
- SecurityGroupSettingsError)
+from snaps.openstack.create_security_group import (
+ SecurityGroupSettings, SecurityGroupRuleSettings, Direction, Ethertype,
+ Protocol, SecurityGroupRuleSettingsError, SecurityGroupSettingsError)
from snaps.openstack.tests import validation_utils
from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
from snaps.openstack.utils import neutron_utils
@@ -212,6 +209,54 @@ class CreateSecurityGroupTests(OSIntegrationTestCase):
validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(),
rules)
+ def test_create_group_admin_user_to_new_project(self):
+ """
+ Tests the creation of an OpenStack Security Group without custom rules.
+ """
+ # Create Image
+ sec_grp_settings = SecurityGroupSettings(
+ name=self.sec_grp_name, description='hello group',
+ project_name=self.admin_os_creds.project_name)
+ self.sec_grp_creator = create_security_group.OpenStackSecurityGroup(
+ self.os_creds, sec_grp_settings)
+ self.sec_grp_creator.create()
+
+ sec_grp = neutron_utils.get_security_group(self.neutron,
+ self.sec_grp_name)
+ self.assertIsNotNone(sec_grp)
+
+ validation_utils.objects_equivalent(
+ self.sec_grp_creator.get_security_group(), sec_grp)
+ rules = neutron_utils.get_rules_by_security_group(
+ self.neutron, self.sec_grp_creator.get_security_group())
+ self.assertEqual(len(self.sec_grp_creator.get_rules()), len(rules))
+ validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(),
+ rules)
+
+ def test_create_group_new_user_to_admin_project(self):
+ """
+ Tests the creation of an OpenStack Security Group without custom rules.
+ """
+ # Create Image
+ sec_grp_settings = SecurityGroupSettings(
+ name=self.sec_grp_name, description='hello group',
+ project_name=self.os_creds.project_name)
+ self.sec_grp_creator = create_security_group.OpenStackSecurityGroup(
+ self.admin_os_creds, sec_grp_settings)
+ self.sec_grp_creator.create()
+
+ sec_grp = neutron_utils.get_security_group(self.neutron,
+ self.sec_grp_name)
+ self.assertIsNotNone(sec_grp)
+
+ validation_utils.objects_equivalent(
+ self.sec_grp_creator.get_security_group(), sec_grp)
+ rules = neutron_utils.get_rules_by_security_group(
+ self.neutron, self.sec_grp_creator.get_security_group())
+ self.assertEqual(len(self.sec_grp_creator.get_rules()), len(rules))
+ validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(),
+ rules)
+
def test_create_delete_group(self):
"""
Tests the creation of an OpenStack Security Group without custom rules.
diff --git a/snaps/openstack/tests/os_source_file_test.py b/snaps/openstack/tests/os_source_file_test.py
index 2ccee3f..da474a2 100644
--- a/snaps/openstack/tests/os_source_file_test.py
+++ b/snaps/openstack/tests/os_source_file_test.py
@@ -31,6 +31,7 @@ dev_os_env_file = pkg_resources.resource_filename(
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
class OSComponentTestCase(unittest.TestCase):
def __init__(self, method_name='runTest', os_creds=None, ext_net_name=None,
@@ -82,7 +83,7 @@ class OSComponentTestCase(unittest.TestCase):
class OSIntegrationTestCase(OSComponentTestCase):
def __init__(self, method_name='runTest', os_creds=None, ext_net_name=None,
- use_keystone=False, flavor_metadata=None, image_metadata=None,
+ use_keystone=True, flavor_metadata=None, image_metadata=None,
log_level=logging.DEBUG):
"""
Super for integration tests requiring a connection to OpenStack