import requests import time import json US_CP_orgName = "" EMEA_CP_orgName = "', US_PWD)) groupsLst = json.loads( response.text ) for group in groupsLst['groups']: print( "Process group:", group ) ############################################# # Get group information ############################################# response = requests.get('https://cdn.elastic.snaplogic.com/api/1/rest/public/groups/' + US_CP_orgName + "/" + group, headers=headers, auth=('', US_PWD)) groupInfo = json.loads( response.text ) groupInfo['organization'] = EMEA_CP_orgName groupData = json.dumps( groupInfo ) ############################################# # Create group in EMEA CP ############################################# print( "Create group:", group ) groupData = { "organization" : EMEA_CP_orgName, "name" : group } response = requests.post('https://cdn.emea.snaplogic.com/api/1/rest/public/groups', headers=headers, json=groupData, auth=('', EMEA_PWD)) if response.status_code == 200 : print( group, "created" ) elif response.status_code == 409 : print( group, "already exists" ) else : print( "Status:", response.status_code, response.reason, response.text ) ############################################# # Create the users of the group ############################################# for email in groupInfo['members']: print( "Create user:", email ) # Retrieve user from NA CP org response = requests.get('https://cdn.elastic.snaplogic.com/api/1/rest/public/users/' + email, headers=headers, auth=('', US_PWD)) userInfo = json.loads( response.text ) # print( userInfo ) # Create user in EMEA CP admin = "False" for org in userInfo['organizations']: if org['name'] == US_CP_orgName : admin = org['administrator'] break userData = { "email" : email, "first_name" : userInfo['first_name'], "last_name" : userInfo['last_name'], "organization" : EMEA_CP_orgName, "administrator" : admin, "allow_password_login" : userInfo['allow_password_login'], "ui_access" : userInfo['ui_access'], "create_home_directory" : "True" } # print( userData ) response = requests.post('https://cdn.emea.snaplogic.com/api/1/rest/public/users', headers=headers, json=userData, auth=('', EMEA_PWD)) if response.status_code == 409 : # User already exists, update it print( "Rather update existing user", email ) userData = { "send_email" : "True", "create_home_directory" : "True" } response = requests.put('https://cdn.emea.snaplogic.com/api/1/rest/public/users/' + email + '/org/' + EMEA_CP_orgName, headers=headers, json=userData, auth=('', EMEA_PWD)) if response.status_code == 200 : print( email, "created" ) else : print( "Status:", response.status_code, response.reason, response.text ) ############################################# # Add user to group ############################################# groupData = { "add_user" : email } response = requests.patch('https://cdn.emea.snaplogic.com/api/1/rest/public/groups/' + EMEA_CP_orgName + '/' + group, headers=headers, json=groupData, auth=('', EMEA_PWD)) if response.status_code == 200 : print( email, "added to group" ) else : print( "Status:", response.status_code, response.reason, response.text ) print( "Groups and users successfully migrated" ) except Exception as e: print(e) input("Error... press enter") exit() input("Process completed... press enter to close this window")