merging trunk
This commit is contained in:
@@ -81,7 +81,7 @@ class DbDriver(object):
|
||||
user_ref = db.user_create(context.get_admin_context(), values)
|
||||
return self._db_user_to_auth_user(user_ref)
|
||||
except exception.Duplicate, e:
|
||||
raise exception.Duplicate(_('User %s already exists') % name)
|
||||
raise exception.UserExists(user=name)
|
||||
|
||||
def _db_user_to_auth_user(self, user_ref):
|
||||
return {'id': user_ref['id'],
|
||||
@@ -128,8 +128,7 @@ class DbDriver(object):
|
||||
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)
|
||||
raise exception.ProjectExists(project=name)
|
||||
|
||||
for member in members:
|
||||
db.project_add_member(context.get_admin_context(),
|
||||
|
@@ -171,7 +171,7 @@ class LdapDriver(object):
|
||||
def create_user(self, name, access_key, secret_key, is_admin):
|
||||
"""Create a user"""
|
||||
if self.__user_exists(name):
|
||||
raise exception.Duplicate(_("LDAP user %s already exists") % name)
|
||||
raise exception.LDAPUserExists(user=name)
|
||||
if FLAGS.ldap_user_modify_only:
|
||||
if self.__ldap_user_exists(name):
|
||||
# Retrieve user by name
|
||||
@@ -225,8 +225,7 @@ class LdapDriver(object):
|
||||
description=None, member_uids=None):
|
||||
"""Create a project"""
|
||||
if self.__project_exists(name):
|
||||
raise exception.Duplicate(_("Project can't be created because "
|
||||
"project %s already exists") % name)
|
||||
raise exception.ProjectExists(project=name)
|
||||
if not self.__user_exists(manager_uid):
|
||||
raise exception.LDAPUserNotFound(user_id=manager_uid)
|
||||
manager_dn = self.__uid_to_dn(manager_uid)
|
||||
@@ -464,8 +463,7 @@ class LdapDriver(object):
|
||||
description, member_uids=None):
|
||||
"""Create a group"""
|
||||
if self.__group_exists(group_dn):
|
||||
raise exception.Duplicate(_("Group can't be created because "
|
||||
"group %s already exists") % name)
|
||||
raise exception.LDAPGroupExists(group=name)
|
||||
members = []
|
||||
if member_uids is not None:
|
||||
for member_uid in member_uids:
|
||||
@@ -500,8 +498,7 @@ class LdapDriver(object):
|
||||
if not self.__group_exists(group_dn):
|
||||
raise exception.LDAPGroupNotFound(group_id=group_dn)
|
||||
if self.__is_in_group(uid, group_dn):
|
||||
raise exception.Duplicate(_("User %(uid)s is already a member of "
|
||||
"the group %(group_dn)s") % locals())
|
||||
raise exception.LDAPMembershipExists(uid=uid, group_dn=group_dn)
|
||||
attr = [(self.ldap.MOD_ADD, 'member', self.__uid_to_dn(uid))]
|
||||
self.conn.modify_s(group_dn, attr)
|
||||
|
||||
|
@@ -549,6 +549,43 @@ class LibvirtConnTestCase(test.TestCase):
|
||||
db.volume_destroy(self.context, volume_ref['id'])
|
||||
db.instance_destroy(self.context, instance_ref['id'])
|
||||
|
||||
def test_spawn_with_network_info(self):
|
||||
# Skip if non-libvirt environment
|
||||
if not self.lazy_load_library_exists():
|
||||
return
|
||||
|
||||
# Preparing mocks
|
||||
def fake_none(self, instance):
|
||||
return
|
||||
|
||||
self.create_fake_libvirt_mock()
|
||||
instance = db.instance_create(self.context, self.test_instance)
|
||||
|
||||
# Start test
|
||||
self.mox.ReplayAll()
|
||||
conn = libvirt_conn.LibvirtConnection(False)
|
||||
conn.firewall_driver.setattr('setup_basic_filtering', fake_none)
|
||||
conn.firewall_driver.setattr('prepare_instance_filter', fake_none)
|
||||
|
||||
network = db.project_get_network(context.get_admin_context(),
|
||||
self.project.id)
|
||||
ip_dict = {'ip': self.test_ip,
|
||||
'netmask': network['netmask'],
|
||||
'enabled': '1'}
|
||||
mapping = {'label': network['label'],
|
||||
'gateway': network['gateway'],
|
||||
'mac': instance['mac_address'],
|
||||
'dns': [network['dns']],
|
||||
'ips': [ip_dict]}
|
||||
network_info = [(network, mapping)]
|
||||
|
||||
try:
|
||||
conn.spawn(instance, network_info)
|
||||
except Exception, e:
|
||||
count = (0 <= e.message.find('Unexpected method call'))
|
||||
|
||||
self.assertTrue(count)
|
||||
|
||||
def tearDown(self):
|
||||
self.manager.delete_project(self.project)
|
||||
self.manager.delete_user(self.user)
|
||||
|
Reference in New Issue
Block a user