def test_new_project_network_setup_no_id(self): """ No project id given, should do nothing. """ setup_identity_cache() setup_neutron_cache("RegionOne", "test_project_id") task = Task.objects.create(keystone_user={"roles": ["admin"]}) data = { "setup_network": True, "region": "RegionOne", } action = NewProjectDefaultNetworkAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) action.approve() self.assertEqual(action.valid, False) self.assertEqual(action.action.cache, {}) global neutron_cache self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 0) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 0)
def test_new_project_network_setup(self): """ Base case, setup network after a new project, no issues. """ setup_identity_cache() setup_neutron_cache("RegionOne", "test_project_id") task = Task.objects.create(keystone_user={"roles": ["admin"]}) data = { "setup_network": True, "region": "RegionOne", } action = NewProjectDefaultNetworkAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) # Now we add the project data as this is where the project # would be created: project = mock.Mock() project.id = "test_project_id" project.name = "test_project" project.domain = "default" project.roles = {} setup_identity_cache(projects=[project]) task.cache = {"project_id": "test_project_id"} action.approve() self.assertEqual(action.valid, True) self.assertEqual( action.action.cache, { "network_id": "net_id_0", "port_id": "port_id_3", "router_id": "router_id_2", "subnet_id": "subnet_id_1", }, ) global neutron_cache self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1)
def test_new_project_network_setup_no_setup(self): """ Told not to setup, should do nothing. """ setup_identity_cache() setup_neutron_cache("RegionOne", "test_project_id") task = Task.objects.create(keystone_user={"roles": ["admin"]}) data = { "setup_network": False, "region": "RegionOne", } action = NewProjectDefaultNetworkAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) # Now we add the project data as this is where the project # would be created: project = mock.Mock() project.id = "test_project_id" project.name = "test_project" project.domain = "default" project.roles = {} setup_identity_cache(projects=[project]) task.cache = {"project_id": "test_project_id"} action.approve() self.assertEqual(action.valid, True) self.assertEqual(action.action.cache, {}) global neutron_cache self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 0) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 0)
def test_new_project_network_setup_fail(self): """ Should fail, but on re_approve will continue where it left off. """ setup_identity_cache() setup_neutron_cache("RegionOne", "test_project_id") global neutron_cache task = Task.objects.create(keystone_user={"roles": ["admin"]}) data = { "setup_network": True, "region": "RegionOne", } action = NewProjectDefaultNetworkAction(data, task=task, order=1) action.prepare() self.assertEqual(action.valid, True) neutron_cache["RegionOne"]["test_project_id"]["routers"] = [] # Now we add the project data as this is where the project # would be created: project = mock.Mock() project.id = "test_project_id" project.name = "test_project" project.domain = "default" project.roles = {} setup_identity_cache(projects=[project]) task.cache = {"project_id": "test_project_id"} try: action.approve() self.fail("Shouldn't get here.") except Exception: pass self.assertEqual(action.action.cache, { "network_id": "net_id_0", "subnet_id": "subnet_id_1" }) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 0) neutron_cache["RegionOne"]["test_project_id"]["routers"] = {} action.approve() self.assertEqual( action.action.cache, { "network_id": "net_id_0", "port_id": "port_id_3", "router_id": "router_id_2", "subnet_id": "subnet_id_1", }, ) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["networks"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["routers"]), 1) self.assertEqual( len(neutron_cache["RegionOne"]["test_project_id"]["subnets"]), 1)