def cmd_init_account()

in sam/app-s3-athena-dataprocessing/ctl.py [0:0]


def cmd_init_account(cli_args):

    iteration_count = 1
    try:
        iteration_count = int(cli_args[0])
    except:
        iteration_count = 1

    profile = get_parameter('profile')
    region = get_parameter('region')

    state_machine_arn = get_output_value('StateMachineInitializeAccount')

    if state_machine_arn == '':
        print("Error: Failed to find statemachine arn in output: {}".format(get_stack_output()))
        exit()
    else:
        print("statemachine arn is {}".format(state_machine_arn))

    exec_input = {}
    exec_name = "initalize__{}".format(int(time.time()))
    try:
        boto3.setup_default_session(profile_name=profile,region_name=region)
        client = boto3.client('stepfunctions')
        start_time = time.time()
        init_execution = client.start_execution(stateMachineArn=state_machine_arn,input=json.dumps(exec_input),name=exec_name)
        print("Started execution to initalize account {} at {} with input {}".format(init_execution['executionArn'],start_time,exec_input))
        print(".", end="",flush=True)

        # Poll for completion
        while 1==1:
            time.sleep(2)
            try:
                execution_description = client.describe_execution(executionArn=init_execution['executionArn'])
                if not execution_description['status'] == 'RUNNING':
                    # Then this finished
                    print("")
                    print("Initialization execution complete after {} seconds with result:".format(int(time.time() - start_time)))
                    print(json.dumps(process_execution_description(execution_description),indent=2,default=handler_datetime))
                    break
                else:
                    print(".", end="",flush=True)
            except:
                print("\nError: Failure describing execution for {}: {}".format(init_execution['executionArn'],sys.exc_info()))
    except:
        # Just pring an error and continue
        print("Error: Failed to execute {}: {}".format(init_execution['executionArn'],sys.exc_info()))