def create_admin(provider, admin_info): REQUIRED_FIELDS = ["username", "password", "tenant"] if not has_fields(admin_info, REQUIRED_FIELDS): print "Please add missing admin information." sys.exit(1) username = admin_info["username"] password = admin_info["password"] tenant = admin_info["tenant"] (user, group) = Group.create_usergroup(username) try: new_identity = Identity.objects.get( provider=provider, created_by=user ) # FIXME: This will need to be more explicit, look for AccountProvider? except Identity.DoesNotExist: new_identity = Identity.objects.create( provider=provider, created_by=user, quota=Quota.default_quota() ) new_identity.credential_set.get_or_create(key='key', value=username) new_identity.credential_set.get_or_create(key='secret', value=password) new_identity.credential_set.get_or_create( key='ex_tenant_name', value=tenant ) new_identity.credential_set.get_or_create( key='ex_project_name', value=tenant ) quota = Quota.objects.filter(**Quota.default_dict()).first() if not quota: quota = Quota.default_quota() # TODO: Test why we do this here and not AFTER creating AccountProvider/IdentityMembership -- Then label the rationale. # Necessary for save hooks -- Default project, select an identity user.save() AccountProvider.objects.get_or_create( provider=provider, identity=new_identity ) IdentityMembership.objects.get_or_create( identity=new_identity, member=group ) return new_identity
def create_admin(provider, admin_info): REQUIRED_FIELDS = ["username", "password", "tenant"] if not has_fields(admin_info, REQUIRED_FIELDS): print "Please add missing admin information." sys.exit(1) username = admin_info["username"] password = admin_info["password"] tenant = admin_info["tenant"] (user, group) = Group.create_usergroup(username) new_identity = Identity.objects.get_or_create(provider=provider, created_by=user)[0] new_identity.credential_set.get_or_create(key='key', value=username) new_identity.credential_set.get_or_create(key='secret', value=password) new_identity.credential_set.get_or_create(key='ex_tenant_name', value=tenant) new_identity.credential_set.get_or_create(key='ex_project_name', value=tenant) quota = Quota.objects.filter(**Quota.default_dict()).first() if not quota: quota = Quota.default_quota() # TODO: Test why we do this here and not AFTER creating AccountProvider/IdentityMembership -- Then label the rationale. # Necessary for save hooks -- Default project, select an identity user.save() AccountProvider.objects.get_or_create( provider=provider, identity=new_identity) IdentityMembership.objects.get_or_create( identity=new_identity, member=group, quota=quota) return new_identity