def provision_new_account()

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


def provision_new_account():
    '''Provision new SC account'''

    valid_items = get_items('VALID')
    result = "FAILED"
    prod_id = get_product_id()
    input_params = list()
    pa_id = get_provisioning_artifact_id(prod_id)
    port_id = get_portfolio_id(prod_id)
    associate_principal_portfolio(PRINCIPAL_ARN, port_id)

    if len(valid_items) > 0:
        item = valid_items[0]
        input_params = generate_input_params(item)
        prov_prod_name = generate_provisioned_product_name(input_params)
        try:
            output = SC.provision_product(
                ProductId=prod_id, ProvisioningArtifactId=pa_id,
                ProvisionedProductName=prov_prod_name,
                ProvisioningParameters=input_params,
                ProvisionToken=str(randint(1000000000000, 9999999999999)))
            result = output['RecordDetail']['ProvisionedProductId']
        except Exception as exe:
            LOGGER.error('SC product provisioning failed: %s', str(exe))
            sleep(60)
            result = str(exe)
    else:
        LOGGER.info('No more Account found to provision')

    return(result, input_params)