def process_user(
        acct_driver,
        username,
        quota=None,
        admin_user=False,
        dry_run=False):
    try:
        if not is_atmo_user(username):
            print "%s is not in the LDAP atmosphere group (atmo-user)." %\
                (username)
            return False
        if not dry_run:
            acct_driver.create_account(username,
                                       quota=quota,
                                       # Admin users get maximum quota
                                       max_quota=admin_user)
        if admin_user:
            if not dry_run:
                make_admin(username)
            print "%s added as admin." % (username)
        else:
            print "%s added." % (username)
        return True
    except Exception as e:
        raise e
        print "Problem adding %s." % (username)
        print e.message
        return False
Beispiel #2
0
def main():
    """
    Add a user to openstack.
    """
    parser = argparse.ArgumentParser()
    parser.add_argument('users', type=str, nargs='+')
    args = parser.parse_args()
    openstack_prov = Provider.objects.get(location='iPlant Cloud - Tucson')
    driver = AccountDriver(openstack_prov)
    success = 0
    for username in args.users:
        print "Adding username... %s" % username
        try:
            if not is_atmo_user(username):
                print "User is not in the atmo-user group.\n"\
                    + "User does not exist in Atmosphere."
                raise Exception("User does not exist in Atmosphere.")
            user = driver.get_user(username)
            if not user:
                identity = driver.create_account(username)
                credentials = identity.credential_set.all()
                print 'New OStack User - Credentials: %s ' % (credentials)
                send_new_provider_email(username, "Openstack")
            else:
                password = driver.hashpass(username)
                identity = driver.create_identity(user.name,
                                                  password,
                                                  project_name=username)
                credentials = identity.credential_set.all()
                print 'Found OStack User - Credentials: %s' % (credentials)
            # ASSERT: User exists on openstack, create an identity for them.
            success += 1
            print 'New OStack Identity - %s:%s' % (identity.id, identity)
        except Exception as e:
            print "Problem adding username: %s" % username
            print e
            raise

    print "Total users created:%s/%s" % (success, len(args.users))