if new_username in [user.Name.lower() for user in api.GetAllUsersDetails().Users]: generated_password = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8)) api.UpdateUser(username=new_username, email=email, isActive=True) api.UpdateUserPassword(username=new_username, password=generated_password) api.WriteMessageToReservationOutput(reservationContext["id"], "This user already had a trial, if this is an issue, please contact admin at [email protected]") else: generated_password = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8)) api.AddNewUser(username=new_username, password=generated_password, email=email, isActive=True) api.UpdateUsersLimitations([UserUpdateRequest(Username=email, MaxConcurrentReservations="2", MaxReservationDuration=str(4*60))]) # Create Group and add to domain api.WriteMessageToReservationOutput(reservationContext["id"], "3. Configuring new domain permissions") new_group_name = domain_name api.AddNewGroup(groupName=new_group_name, description="Regular Users Group for " + domain_name + " domain", groupRole="Regular") api.AddUsersToGroup(usernames=[new_username, owner_email], groupName=new_group_name) api.AddGroupsToDomain(domainName=domain_name, groupNames=[new_group_name]) # Import content api.WriteMessageToReservationOutput(reservationContext["id"], "4. Importing Content to new domain") api_root_url = 'http://{0}:{1}/Api'.format(connectivityContext["serverAddress"], connectivityContext["qualiAPIPort"]) blueprints_to_export = [blueprint.Name for blueprint in api.GetDomainDetails("Master").Topologies] blueprints_to_export_full_names = ["Master topologies\\" + blueprint for blueprint in blueprints_to_export] api.AddTopologiesToDomain(domain_name, blueprints_to_export_full_names) # TODO: Change hardcoded CP name to dynamically assumed name api.AddResourcesToDomain(domain_name, ["AWS us-east-1"]) login_result = requests.put(api_root_url + "/Auth/Login", {"token": connectivityContext["adminAuthToken"], "domain": "Master"}) master_domain_authcode = "Basic " + login_result.content[1:-1]
api = CloudShellAPISession(host="localhost", username="******", password="******", domain="Global") with open("user_emails.txt") as f: user_lines = [x.rstrip() for x in f.readlines()] user_emails = [x for x in user_lines if x] users = [] for email in user_emails: split = email.split("@") user = User(email=email, user_name=split[0]) users.append(user) for user in users: print(f"adding user: {user.user_name}...") try: api.AddNewUser(username=user.user_name, email=user.email, password=DEFAULT_PASSWORD, isActive=True, isAdmin=IS_ADMINS) except Exception as e: print(f"issue creating user {user.user_name}. Skipping. Error: {str(e)}") else: print("user created") print("==========") print("adding users to group...") user_names = [x.user_name for x in users] api.AddUsersToGroup(usernames=user_names, groupName=TARGET_GROUP) print("Script Done!")