def setUp(self): super(QuantumNovaTestCase, self).setUp() # Create an actual project -- with this we will touch more of # the code in QuantumManager (related to fetching networks, etc) for x in ["fake_project1", "fake_project2"]: values = {"id": x, "name": x} project = db.project_create(context.get_admin_context(), values) self.net_man = quantum_manager.QuantumManager( ipam_lib="nova.network.quantum.nova_ipam_lib", q_conn=FakeQuantumClientConnection() ) # Tests seem to create some networks by default, which # we don't want. So we delete them. ctx = context.RequestContext("user1", "fake_project1").elevated() for n in db.network_get_all(ctx): db.network_delete_safe(ctx, n["id"]) # Other unit tests (e.g., test_compute.py) have a nasty # habit of of creating fixed IPs and not cleaning up, which # can confuse these tests, so we remove all existing fixed # ips before starting. session = get_session() result = session.query(models.FixedIp).all() with session.begin(): for fip_ref in result: session.delete(fip_ref)
def setUp(self): super(QuantumNovaTestCase, self).setUp() # Create an actual project -- with this we will touch more of # the code in QuantumManager (related to fetching networks, etc) for x in ['fake_project1', 'fake_project2']: values = {'id': x, 'name': x} project = db.project_create(context.get_admin_context(), values) self.net_man = quantum_manager.QuantumManager( ipam_lib="nova.network.quantum.nova_ipam_lib", q_conn=FakeQuantumClientConnection()) # Tests seem to create some networks by default, which # we don't want. So we delete them. ctx = context.RequestContext('user1', 'fake_project1').elevated() for n in db.network_get_all(ctx): db.network_delete_safe(ctx, n['id']) # Other unit tests (e.g., test_compute.py) have a nasty # habit of of creating fixed IPs and not cleaning up, which # can confuse these tests, so we remove all existing fixed # ips before starting. session = get_session() result = session.query(models.FixedIp).all() with session.begin(): for fip_ref in result: session.delete(fip_ref)
def create_project(context, project={}): project.setdefault('id', "some random project") project.setdefault('name', project['id']) if 'project_manager' not in project: project['project_manager'] = create_user(context) project.setdefault('description', "mock project created by testing framework") context.elevated() return db.project_create(context, project)['id']
def create_project(self, name, manager_uid, description=None, member_uids=None): """Create a project""" manager = db.user_get(context.get_admin_context(), manager_uid) if not manager: raise exception.NotFound( _("Project can't be created because " "manager %s doesn't exist") % manager_uid) # description is a required attribute if description is None: description = name # First, we ensure that all the given users exist before we go # on to create the project. This way we won't have to destroy # the project again because a user turns out to be invalid. members = set([manager]) if member_uids != None: for member_uid in member_uids: member = db.user_get(context.get_admin_context(), member_uid) if not member: raise exception.NotFound( _("Project can't be created " "because user %s doesn't exist") % member_uid) members.add(member) values = { 'id': name, 'name': name, 'project_manager': manager['id'], 'description': description } try: project = db.project_create(context.get_admin_context(), values) except exception.Duplicate: raise exception.Duplicate( _("Project can't be created because " "project %s already exists") % name) for member in members: db.project_add_member(context.get_admin_context(), project['id'], member['id']) # This looks silly, but ensures that the members element has been # correctly populated project_ref = db.project_get(context.get_admin_context(), project['id']) return self._db_project_to_auth_projectuser(project_ref)
def create_project(self, name, manager_uid, description=None, member_uids=None): """Create a project""" manager = db.user_get(context.get_admin_context(), manager_uid) if not manager: raise exception.NotFound(_("Project can't be created because " "manager %s doesn't exist") % manager_uid) # description is a required attribute if description is None: description = name # First, we ensure that all the given users exist before we go # on to create the project. This way we won't have to destroy # the project again because a user turns out to be invalid. members = set([manager]) if member_uids != None: for member_uid in member_uids: member = db.user_get(context.get_admin_context(), member_uid) if not member: raise exception.NotFound(_("Project can't be created " "because user %s doesn't exist") % member_uid) members.add(member) values = {'id': name, 'name': name, 'project_manager': manager['id'], 'description': description} try: project = db.project_create(context.get_admin_context(), values) except exception.Duplicate: raise exception.Duplicate(_("Project can't be created because " "project %s already exists") % name) for member in members: db.project_add_member(context.get_admin_context(), project['id'], member['id']) # This looks silly, but ensures that the members element has been # correctly populated project_ref = db.project_get(context.get_admin_context(), project['id']) return self._db_project_to_auth_projectuser(project_ref)