def create_rafay_org()

in functions/source/aws_qs_create_org/aws_qs_create_org.py [0:0]


def create_rafay_org(email, org_name, first_name, last_name):
    try:
        endpoint = ssm_client.get_parameter(Name='/quickstart/rafay/endpoint')['Parameter']['Value']
    except ssm_client.exceptions.ParameterNotFound:
        endpoint = "rafay.dev"
    rafay_ops_console = f"ops.{endpoint}"
    rafay_console = f"console.{endpoint}"
    rafay_signup_url = "https://" + rafay_ops_console + \
                       "/auth/v1/signup/" \
                       "QVdTLVFTLVJBRkFZLVNJR05VUC1BUEktT1JJR0lOLUxBTUJEQS1VU0EtU1VOTllWQUxFLUNBLVZFUlNJT04tMDAwMQ/"
    rafay_login_url = "https://" + rafay_console + "/auth/v1/login/"
    rafay_users_url = "https://" + rafay_console + "/auth/v1/users/"
    # generate password for user
    user_password = generate_password()
    user_login_data = json.dumps({'username': email, 'password': user_password})
    signup_data = json.dumps({"username": email, "organization_name": org_name, "first_name": first_name,
                              "last_name": last_name, "password": user_password, "repeatPassword": user_password})

    # create new organization in Rafay SaaS controller
    r = requests.post(rafay_signup_url, headers={'content-type': 'application/json;charset=UTF-8'},
                      data=signup_data)
    assert_request(r, 'failed to create rafay org')

    # login to Rafay console
    r = requests.post(rafay_login_url, headers={'content-type': 'application/json;charset=UTF-8'},
                      data=user_login_data)
    assert_request(r, 'failed to login to rafay')
    user = requests.get(rafay_users_url,
                        headers={'content-type': 'application/json;charset=UTF-8',
                                 'cookie': 'rsid=' + r.cookies['rsid'] + ';csrftoken=' + r.cookies['csrftoken'],
                                 'x-csrftoken': r.cookies['csrftoken']})
    user_id = user.json()['users'][0]['account']['id']

    # get Rafay API key
    rafay_apikey_url = "https://" + rafay_console + "/auth/v1/users/" + user_id + "/apikey/"
    r = requests.post(rafay_apikey_url,
                      headers={'referer': "https://" + rafay_console,'content-type': 'application/json;charset=UTF-8',
                               'cookie': 'rsid=' + r.cookies['rsid'] + ';csrftoken=' + r.cookies['csrftoken'],
                               'x-csrftoken': r.cookies['csrftoken']},
                      data=json.dumps({"name": "dynamic"}))
    assert_request(r, 'failed to retreive api keys')
    return r.json()['key'], r.json()['secret']