if not self.name or len(self.name) < 1:
             raise NetworkSettingsError('Name required for networks')
-            raise NetworkSettingsError('Name required for networks')
 
     def get_project_id(self, os_creds):
         """
         else:
             if self.project_name:
                 keystone = keystone_utils.keystone_client(os_creds)
-                project = keystone_utils.get_project(keystone,
-                                                     self.project_name)
+                project = keystone_utils.get_project(
+                    keystone=keystone, project_name=self.project_name)
                 if project:
                     return project.id
 
         if self.project_name:
             project_id = self.get_project_id(os_creds)
             if project_id:
-                out['project_id'] = project_id
+                out['tenant_id'] = project_id
             else:
                 raise NetworkSettingsError(
                     'Could not find project ID for project named - ' +
             out['name'] = self.name
         if self.project_name:
             keystone = keystone_utils.keystone_client(os_creds)
-            project = keystone_utils.get_project(keystone, self.project_name)
+            project = keystone_utils.get_project(
+                keystone=keystone, project_name=self.project_name)
             project_id = None
             if project:
                 project_id = project.id
             if project_id:
-                out['project_id'] = project_id
+                out['tenant_id'] = project_id
             else:
                 raise SubnetSettingsError(
                     'Could not find project ID for project named - ' +
         project_id = None
         if self.project_name:
             keystone = keystone_utils.keystone_client(os_creds)
-            project = keystone_utils.get_project(keystone, self.project_name)
+            project = keystone_utils.get_project(
+                keystone=keystone, project_name=self.project_name)
             if project:
                 project_id = project.id
 
             out['name'] = self.name
         if self.project_name:
             if project_id:
-                out['project_id'] = project_id
+                out['tenant_id'] = project_id
             else:
                 raise PortSettingsError(
                     'Could not find project ID for project named - ' +
 
             out['name'] = self.name
         if self.project_name:
             keystone = keystone_utils.keystone_client(os_creds)
-            project = keystone_utils.get_project(keystone, self.project_name)
+            project = keystone_utils.get_project(
+                keystone=keystone, project_name=self.project_name)
             project_id = None
             if project:
                 project_id = project.id
             if project_id:
-                out['project_id'] = project_id
+                out['tenant_id'] = project_id
             else:
                 raise RouterSettingsError(
                     'Could not find project ID for project named - ' +
 
         if self.description:
             out['description'] = self.description
         if self.project_name:
-            project = keystone_utils.get_project(keystone, self.project_name)
+            project = keystone_utils.get_project(
+                keystone=keystone, project_name=self.project_name)
             project_id = None
             if project:
                 project_id = project.id
             if project_id:
-                out['project_id'] = project_id
+                out['tenant_id'] = project_id
             else:
                 raise SecurityGroupSettingsError(
                     'Could not find project ID for project named - ' +
 
         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):
     """
 
     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
 
         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
         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)
         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()
 
 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
         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.
 
 
 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 
+
 class OSComponentTestCase(unittest.TestCase):
 
     def __init__(self, method_name='runTest', os_creds=None, ext_net_name=None,
 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