示例#1
0
def create_user(o, db):
    added_gridmap = False
    try:
        # create canonical user
        user = User.get_user_by_friendly(db, o.emailaddr)
        if user != None:
            raise CLIError('EUSER', "The user already exists: %s" % (o.emailaddr))

        if o.canonical_id != None:
            user = User.get_user(db, o.canonical_id)
            if user != None:
                raise CLIError('EUSER', "The canonical user already exists: %s" % (o.canonical_id))

            user = User(db, friendly=o.emailaddr, uu=o.canonical_id, create=True)
        else:
            user = User(db, friendly=o.emailaddr, create=True)

        o.canonical_id = user.get_id()
        if not o.noaccess:
            if o.access_id == None:
                o.access_id = pynimbusauthz.random_string_gen(21)
                o.access_secret = pynimbusauthz.random_string_gen(42)

            # add to db
            ua1 = user.create_alias(o.access_id, pynimbusauthz.alias_type_s3, o.emailaddr, alias_data=o.access_secret)

        if not o.nocert:
            # if not give a dn we need to get it from the provided cert, or 
            # generate a cet key pair and get it from that
            if o.dn == None:
                if o.cert == None:            
                    # generate a cert
                    (o.cert, o.key) = generate_cert(o)
                # get dn 
                o.dn = get_dn(o.cert)
            ua2 = user.create_alias(o.dn, pynimbusauthz.alias_type_x509, o.emailaddr)
            # add dn to gridmap
            add_gridmap(o)
            added_gridmap = True

        cloud_props(o)
        if o.web:
            if o.web_id == None:
                o.web_id = o.emailaddr.split("@")[0]
            o.url = do_web_bidnes(o)

        do_group_bidnes(o)

        db.commit()
    except Exception, ex1:
        if added_gridmap:
            remove_gridmap(o.dn)
        db.rollback()
        if DEBUG:
            traceback.print_exc(file=sys.stdout)
        raise ex1
示例#2
0
def create_user(o, db):
    added_gridmap = False
    try:
        # create canonical user
        user = User.get_user_by_friendly(db, o.emailaddr)
        if user != None:
            raise CLIError('EUSER', "The user already exists: %s" % (o.emailaddr))

        if o.canonical_id != None:
            user = User.get_user(db, o.canonical_id)
            if user != None:
                raise CLIError('EUSER', "The canonical user already exists: %s" % (o.canonical_id))

            user = User(db, friendly=o.emailaddr, uu=o.canonical_id, create=True)
        else:
            user = User(db, friendly=o.emailaddr, create=True)

        o.canonical_id = user.get_id()
        if not o.noaccess:
            if o.access_id == None:
                o.access_id = pynimbusauthz.random_string_gen(21)
                o.access_secret = pynimbusauthz.random_string_gen(42)

            # add to db
            ua1 = user.create_alias(o.access_id, pynimbusauthz.alias_type_s3, o.emailaddr, alias_data=o.access_secret)

        if not o.nocert:
            # if not give a dn we need to get it from the provided cert, or 
            # generate a cet key pair and get it from that
            if o.dn == None:
                if o.cert == None:            
                    # generate a cert
                    (o.cert, o.key) = generate_cert(o)
                # get dn 
                o.dn = get_dn(o.cert)
            ua2 = user.create_alias(o.dn, pynimbusauthz.alias_type_x509, o.emailaddr)
            # add dn to gridmap
            add_gridmap(o)
            added_gridmap = True

        cloud_props(o)
        if o.web:
            if o.web_id == None:
                o.web_id = o.emailaddr.split("@")[0]
            o.url = do_web_bidnes(o)

        do_group_bidnes(o)

        db.commit()
    except Exception, ex1:
        if added_gridmap:
            remove_gridmap(o.dn)
        db.rollback()
        if DEBUG:
            traceback.print_exc(file=sys.stdout)
        raise ex1
示例#3
0
def main(argv=sys.argv[1:]):

    try:
        con_str = pynimbusauthz.get_db_connection_string()
        db_obj = DB(con_str=con_str)

        (opts, args) = setup_options(argv)

        user_uu = None
        if len(args) == 1:
            user_uu = args[0]
        if opts.new:
            user = User(db_obj,
                        user_uu,
                        friendly=opts.friendlyname,
                        create=True)
            pynimbusauthz.print_msg(opts, 0, "User %s added" % (user.get_id()))
        else:
            user = User(db_obj, user_uu)
            pynimbusauthz.print_msg(opts, 0, "User %s" % (user.get_id()))

        if opts.alias != None:
            user_alias = user.get_alias(opts.alias, opts.type)
            if user_alias == None:
                user_alias = user.create_alias(opts.alias, opts.type,
                                               opts.friendlyname)
                pynimbusauthz.print_msg(
                    opts, 0,
                    "Creating new alias %s:%s" % (opts.type, opts.alias))
            if opts.genkey:
                data = pynimbusauthz.random_string_gen(42)
                pynimbusauthz.print_msg(opts, 0, "Key generated %s" % (data))
                user_alias.set_data(data)
            elif opts.setkey != None:
                data = opts.setkey
                user_alias.set_data(data)
                pynimbusauthz.print_msg(opts, 0, "updated the alias key")

        if opts.remove_alias != None:
            user_alias = user.get_alias(opts.remove_alias, opts.type)
            user_alias.remove()

        if opts.remove:
            pynimbusauthz.print_msg(opts, 1,
                                    "Removing user %s" % (user.get_id()))
            if opts.force:
                pynimbusauthz.print_msg(opts, 1, "Removing all references")
                user.destroy_brutally()
            else:
                user.destroy()
        db_obj.commit()
    except AuthzException, ae:
        print ae
        return ae.get_rc()
示例#4
0
def main(argv=sys.argv[1:]):
    
    try:
        con_str = pynimbusauthz.get_db_connection_string()
        db_obj = DB(con_str=con_str)

        (opts,args) = setup_options(argv)

        user_uu = None
        if len(args) == 1:
            user_uu = args[0]
        if opts.new:
            user = User(db_obj, user_uu, friendly=opts.friendlyname, create=True)
            pynimbusauthz.print_msg(opts, 0, "User %s added" % (user.get_id()))
        else:
            user = User(db_obj, user_uu) 
            pynimbusauthz.print_msg(opts, 0, "User %s" % (user.get_id()))

        if opts.alias != None:
            user_alias = user.get_alias(opts.alias, opts.type)
            if user_alias == None:
                user_alias = user.create_alias(opts.alias, opts.type, opts.friendlyname)
                pynimbusauthz.print_msg(opts, 0, "Creating new alias %s:%s" % (opts.type,opts.alias))
            if opts.genkey:
                data = pynimbusauthz.random_string_gen(42)
                pynimbusauthz.print_msg(opts, 0, "Key generated %s" % (data))
                user_alias.set_data(data)
            elif opts.setkey != None:
                data = opts.setkey
                user_alias.set_data(data)
                pynimbusauthz.print_msg(opts, 0, "updated the alias key")

        if opts.remove_alias != None:
            user_alias = user.get_alias(opts.remove_alias, opts.type)
            user_alias.remove()

        if opts.remove:
            pynimbusauthz.print_msg(opts, 1, "Removing user %s" % (user.get_id()))
            if opts.force:
                pynimbusauthz.print_msg(opts, 1, "Removing all references")
                user.destroy_brutally()
            else:
                user.destroy() 
        db_obj.commit()
    except AuthzException, ae:
        print ae
        return ae.get_rc()