コード例 #1
0
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
コード例 #2
0
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
コード例 #3
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))
コード例 #4
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--provider",
                        type=int,
                        help="Atmosphere provider ID"
                        " to use when importing users.")
    parser.add_argument("users",
                        help="LDAP usernames to import. (comma separated)")
    parser.add_argument("--admin",
                        action="store_true",
                        help="Users addded as admin and staff users.")
    args = parser.parse_args()
    users = None
    added = 0
    if args.provider:
        os_driver = OSAccountDriver(Provider.objects.get(id=args.provider))
    else:
        os_driver = OSAccountDriver(
            Provider.objects.get(location='iPlant Workshop Cloud - Tucson'))
    users = args.users.split(",")
    for user in users:
        # Then add the Openstack Identity
        try:
            if is_atmo_user(user):
                os_driver.create_account(user, max_quota=args.admin)
                added += 1
            else:
                print "%s is not in the ldap atmosphere group (atmo-user)." % (
                    user)
                continue
            if args.admin:
                make_admin(user)
                print "%s added as admin." % (user)
            else:
                print "%s added." % (user)
        except Exception as e:
            print "Problem adding %s." % (user)
            print e.message
    print "Total users added:%s" % (added)
コード例 #5
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='OPENSTACK')
    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))
コード例 #6
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--provider", type=int,
                        help="Atmosphere provider ID"
                        " to use when importing users.")
    parser.add_argument("users",
                        help="LDAP usernames to import. (comma separated)")
    parser.add_argument("--admin", action="store_true",
                        help="Users addded as admin and staff users.")
    args = parser.parse_args()
    users = None
    added = 0
    if args.provider:
        os_driver = OSAccountDriver(Provider.objects.get(id=args.provider))
    else:
        os_driver = OSAccountDriver(
            Provider.objects.get(location='iPlant Workshop Cloud - Tucson'))
    users = args.users.split(",")
    for user in users:
        # Then add the Openstack Identity
        try:
            if is_atmo_user(user):
                os_driver.create_account(user, max_quota=args.admin)
                added += 1
            else:
                print "%s is not in the ldap atmosphere group (atmo-user)." % (user)
                continue
            if args.admin:
                make_admin(user)
                print "%s added as admin." % (user)
            else:
                print "%s added." % (user)
        except Exception as e:
            print "Problem adding %s." % (user)
            print e.message
    print "Total users added:%s" % (added)
コード例 #7
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--provider",
                        type=int,
                        help="Atmosphere provider ID"
                        " to use when importing users.")
    parser.add_argument("--groups",
                        help="LDAP groups to import. (comma separated)")
    parser.add_argument("--dry-run",
                        action="store_true",
                        help="A 'dry-run' so you know what will happen,"
                        " before it happens")
    parser.add_argument("--users",
                        help="LDAP usernames to import. (comma separated)")
    parser.add_argument("--admin",
                        action="store_true",
                        help="Users addded as admin and staff users.")
    args = parser.parse_args()
    make_admins = args.admin
    dry_run = args.dry_run
    users = None
    added = 0
    if dry_run:
        print "Dry run initialized"
    if args.provider:
        provider = Provider.objects.get(id=args.provider)
        print "Provider Selected:%s" % provider
        acct_driver = get_account_driver(provider)
    else:
        provider = Provider.objects.get(
            location='iPlant Workshop Cloud - Tucson')
        print "No Provider Selected, using default provider: %s" % provider
        acct_driver = get_account_driver(provider)

    groups = args.groups.split(",")
    for groupname in groups:
        group_add = 0
        users = get_members(groupname)
        print "Total users in group %s:%s" % (groupname, len(users))
        for user in users:
            try:
                if is_atmo_user(user):
                    if not dry_run:
                        acct_driver.create_account(user, max_quota=make_admins)
                    group_add += 1
                else:
                    print "%s is not in the ldap atmosphere group (atmo-user)." % (
                        user)
                    continue
                if make_admins:
                    if not dry_run:
                        make_admin(user)
                    print "%s added as admin." % (user)
                else:
                    print "%s added." % (user)
            except Exception as e:
                print "Problem adding %s." % (user)
                print e.message
        print "Added %s users from group %s." % (group_add, groupname)
        added += group_add
    user_list = args.users
    users = user_list.split(",") if user_list else []
    for user in users:
        # Then add the Openstack Identity
        try:
            if is_atmo_user(user):
                if not dry_run:
                    acct_driver.create_account(user, max_quota=make_admins)
                added += 1
            else:
                print "%s is not in the ldap atmosphere group (atmo-user)." % (
                    user)
                continue
            if make_admins:
                if not dry_run:
                    make_admin(user)
                print "%s added as admin." % (user)
            else:
                print "%s added." % (user)
        except Exception as e:
            print "Problem adding %s." % (user)
            print e.message
    print "Total users added:%s" % (added)
コード例 #8
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--provider", type=int,
                        help="Atmosphere provider ID"
                        " to use when importing users.")
    parser.add_argument("--groups",
                        help="LDAP groups to import. (comma separated)")
    parser.add_argument("--dry-run", action="store_true",
                        help="A 'dry-run' so you know what will happen,"
                             " before it happens")
    parser.add_argument("--users",
                        help="LDAP usernames to import. (comma separated)")
    parser.add_argument("--admin", action="store_true",
                        help="Users addded as admin and staff users.")
    args = parser.parse_args()
    make_admins = args.admin
    dry_run = args.dry_run
    users = None
    added = 0
    if dry_run:
        print "Dry run initialized"
    if args.provider:
        provider = Provider.objects.get(id=args.provider)
        print "Provider Selected:%s" % provider
        acct_driver = get_account_driver(provider)
    else:
        provider = Provider.objects.get(location='iPlant Workshop Cloud - Tucson')
        print "No Provider Selected, using default provider: %s" % provider
        acct_driver = get_account_driver(provider)

    group_list = args.groups
    groups = group_list.split(",") if group_list else []
    for groupname in groups:
        group_add = 0
        users = get_members(groupname)
        print "Total users in group %s:%s" % (groupname, len(users))
        for user in users:
            try:
                if is_atmo_user(user):
                    if not dry_run:
                        acct_driver.create_account(user, max_quota=make_admins)
                    group_add += 1
                else:
                    print "%s is not in the ldap atmosphere group (atmo-user)." % (user)
                    continue
                if make_admins:
                    if not dry_run:
                        make_admin(user)
                    print "%s added as admin." % (user)
                else:
                    print "%s added." % (user)
            except Exception as e:
                print "Problem adding %s." % (user)
                print e.message
        print "Added %s users from group %s." % (group_add, groupname)
        added += group_add
    user_list = args.users
    users = user_list.split(",") if user_list else []
    for user in users:
        # Then add the Openstack Identity
        try:
            if is_atmo_user(user):
                if not dry_run:
                    acct_driver.create_account(user, max_quota=make_admins)
                added += 1
            else:
                print "%s is not in the ldap atmosphere group (atmo-user)." % (user)
                continue
            if make_admins:
                if not dry_run:
                    make_admin(user)
                print "%s added as admin." % (user)
            else:
                print "%s added." % (user)
        except Exception as e:
            print "Problem adding %s." % (user)
            print e.message
    print "Total users added:%s" % (added)