def main(self): from keystone.common.sql import nova if len(self.argv) < 2: return self.missing_param('dump_file') dump_file = self.argv[1] dump_data = jsonutils.loads(open(dump_file).read()) nova.import_auth(dump_data)
def main(): from keystone.common.sql import nova dump_data = jsonutils.loads(open(CONF.command.dump_file).read()) nova.import_auth(dump_data)
def test_import(self): self._create_role('role1') nova.import_auth(FIXTURE) users = {} for user in ['user1', 'user2', 'user3', 'user4']: users[user] = self.identity_api.get_user_by_name(user) tenants = {} for tenant in ['proj1', 'proj2', 'proj4']: tenants[tenant] = self.identity_api.get_tenant_by_name(tenant) membership_map = { 'user1': ['proj1'], 'user2': ['proj1', 'proj2'], 'user3': ['proj1'], 'user4': ['proj4'], } for (old_user, old_tenants) in membership_map.iteritems(): user = users[old_user] membership = self.identity_api.get_tenants_for_user(user['id']) expected = [tenants[t]['id'] for t in old_tenants] self.assertEqual(set(expected), set(membership)) for tenant_id in membership: password = None for _user in FIXTURE['users']: if _user['id'] == old_user: password = _user['password'] self.identity_api.authenticate(user['id'], tenant_id, password) for ec2_cred in FIXTURE['ec2_credentials']: user_id = users[ec2_cred['user_id']]['id'] for tenant_id in self.identity_api.get_tenants_for_user(user_id): access = '%s:%s' % (tenant_id, ec2_cred['access_key']) cred = self.ec2_api.get_credential(access) actual = cred['secret'] expected = ec2_cred['secret_key'] self.assertEqual(expected, actual) roles = self.identity_api.list_roles() role_names = set([role['name'] for role in roles]) self.assertEqual(role_names, set(['role2', 'role1', 'role3'])) assignment_map = { 'user1': { 'proj1': ['role1', 'role2'] }, 'user2': { 'proj1': ['role1'], 'proj2': ['role1', 'role2'] }, 'user3': { 'proj1': ['role3'] }, 'user4': { 'proj4': ['role1'] }, } for (old_user, old_tenant_map) in assignment_map.iteritems(): tenant_names = ['proj1', 'proj2', 'proj4'] for tenant_name in tenant_names: user = users[old_user] tenant = tenants[tenant_name] roles = self.identity_api.get_roles_for_user_and_tenant( user['id'], tenant['id']) actual = [ self.identity_api.get_role(role_id)['name'] for role_id in roles ] expected = old_tenant_map.get(tenant_name, []) self.assertEqual(set(actual), set(expected))
def test_import(self): self._create_role('role1') nova.import_auth(FIXTURE) users = {} for user in ['user1', 'user2', 'user3', 'user4']: users[user] = self.identity_api.get_user_by_name(user) tenants = {} for tenant in ['proj1', 'proj2', 'proj4']: tenants[tenant] = self.identity_api.get_tenant_by_name(tenant) membership_map = { 'user1': ['proj1'], 'user2': ['proj1', 'proj2'], 'user3': ['proj1'], 'user4': ['proj4'], } for (old_user, old_tenants) in membership_map.iteritems(): user = users[old_user] membership = self.identity_api.get_tenants_for_user(user['id']) expected = [tenants[t]['id'] for t in old_tenants] self.assertEqual(set(expected), set(membership)) for tenant_id in membership: password = None for _user in FIXTURE['users']: if _user['id'] == old_user: password = _user['password'] self.identity_api.authenticate(user['id'], tenant_id, password) for ec2_cred in FIXTURE['ec2_credentials']: user_id = users[ec2_cred['user_id']]['id'] for tenant_id in self.identity_api.get_tenants_for_user(user_id): access = '%s:%s' % (tenant_id, ec2_cred['access_key']) cred = self.ec2_api.get_credential(access) actual = cred['secret'] expected = ec2_cred['secret_key'] self.assertEqual(expected, actual) roles = self.identity_api.list_roles() role_names = set([role['name'] for role in roles]) self.assertEqual(role_names, set(['role2', 'role1', 'role3'])) assignment_map = { 'user1': {'proj1': ['role1', 'role2']}, 'user2': {'proj1': ['role1'], 'proj2': ['role1', 'role2']}, 'user3': {'proj1': ['role3']}, 'user4': {'proj4': ['role1']}, } for (old_user, old_tenant_map) in assignment_map.iteritems(): tenant_names = ['proj1', 'proj2', 'proj4'] for tenant_name in tenant_names: user = users[old_user] tenant = tenants[tenant_name] roles = self.identity_api.get_roles_for_user_and_tenant( user['id'], tenant['id']) actual = [self.identity_api.get_role(role_id)['name'] for role_id in roles] expected = old_tenant_map.get(tenant_name, []) self.assertEqual(set(actual), set(expected))