from cloudshell.api.cloudshell_api import CloudShellAPISession user = "******" password = "******" server = "localhost" domain = "Global" api = CloudShellAPISession(host=server, username=user, password=password, domain=domain) users = api.GetAllUsersDetails().Users print(f"total users in system: {len(users)}") pass
api.WriteMessageToReservationOutput(reservationContext["id"], "1. Creating New Domain") domain_name = '.'.join(new_username.split('.')[:-1]).replace('@', '-') if domain_name in [domain.Name for domain in api.GetResourceDetails("AWS us-east-1", True).Domains]: id_suffix = 1 while domain_name + str(id_suffix) in [domain.Name for domain in api.GetResourceDetails("AWS us-east-1", True).Domains]: id_suffix += 1 domain_name = domain_name + str(id_suffix) api.WriteMessageToReservationOutput(reservationContext["id"], "The requested domain already exists, appending {} to new domain name, please contact system admin at [email protected]".format(id_suffix)) api.AddNewDomain(domainName=domain_name, description="Domain for {0} {1}'s Trial".format(first_name, last_name)) else: api.AddNewDomain(domainName=domain_name, description="Domain for {0} {1}'s Trial".format(first_name, last_name)) # Create User Account api.WriteMessageToReservationOutput(reservationContext["id"], "2. Creating trial user") 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)
reservationContext["id"], "The requested domain already exists, appending {} to new domain name, please contact system admin at [email protected]" .format(id_suffix)) api.AddNewDomain(domainName=domain_name, description="Domain for {0} {1}'s Trial".format( first_name, last_name)) else: api.AddNewDomain(domainName=domain_name, description="Domain for {0} {1}'s Trial".format( first_name, last_name)) # Create User Account api.WriteMessageToReservationOutput(reservationContext["id"], "Creating trial user") 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, please contact system 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,