diff --git a/nova/auth/manager.py b/nova/auth/manager.py index fc9aec07..e4d4afb7 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -524,8 +524,11 @@ class AuthManager(object): member_users) if project_dict: project = Project(**project_dict) - # FIXME(ja): EVIL HACK - db.network_create(context, {'project_id': project.id}) + try: + db.network_allocate(context, project.id) + except: + drv.delete_project(project.id) + raise return project def add_to_project(self, user, project): @@ -574,7 +577,6 @@ class AuthManager(object): def delete_project(self, project, context=None): """Deletes a project""" - # FIXME(ja): EVIL HACK network_ref = db.project_get_network(context, Project.safe_id(project)) try: diff --git a/nova/tests/network_unittest.py b/nova/tests/network_unittest.py index 3552a77b..afa21767 100644 --- a/nova/tests/network_unittest.py +++ b/nova/tests/network_unittest.py @@ -179,18 +179,17 @@ class NetworkTestCase(test.TrialTestCase): FLAGS.num_networks) def test_too_many_networks(self): - """Ensure error is raised if we run out of vpn ports""" + """Ensure error is raised if we run out of networks""" projects = [] + # TODO(vish): use data layer for count networks_left = FLAGS.num_networks - models.Network.count() for i in range(networks_left): project = self.manager.create_project('many%s' % i, self.user) - self.service.set_network_host(project.id) projects.append(project) - project = self.manager.create_project('boom' , self.user) self.assertRaises(db.NoMoreNetworks, - self.service.set_network_host, - project.id) - self.manager.delete_project(project) + self.manager.create_project, + 'boom', + self.user) for project in projects: self.manager.delete_project(project)