def main()

in run_example.py [0:0]


def main(args):
    session = boto3.session.Session(profile_name=args.profile)

    CLUSTER_NAME = "SatCompCluster"
    cf = Cloudformation(session.client("cloudformation"))
    stack_outputs = cf.get_outputs(f"job-queue-{args.project_name}")
    output = subprocess.check_output(['./run-solver-main.sh', args.profile, CLUSTER_NAME, stack_outputs["SolverProjectDefinition"], stack_outputs["Subnet"], stack_outputs["SecurityGroupId"], args.file, '2', args.project_name])
    task_output = json.loads(output)
    print(task_output)
    task_arn = task_output['tasks'][0]['taskArn']
    task_id = task_arn.split('/')[2]

    main_task = Task(ecs_client=session.client("ecs"), cluster_name=CLUSTER_NAME, task_arn=task_arn)

    log_client = session.client("logs")
    log_analyzer = LogAnalyzer(log_client)
    ip_fetcher = IpFetch(log_analyzer)
    ip_addr = ip_fetcher.fetch_ip(args.project_name, task_id)

    worker_task = None
    if args.cloud == None or args.cloud == "True":
        output2 = subprocess.check_output(['./run-worker.sh', args.profile, CLUSTER_NAME, stack_outputs["SolverProjectDefinition"], stack_outputs["Subnet"], stack_outputs["SecurityGroupId"], args.file, '2', ip_addr, args.project_name])
        task_output2 = json.loads(output2)

        task_arn2 = task_output2['tasks'][0]['taskArn']
        task_id2 = task_arn2.split('/')[2]
        worker_task = Task(ecs_client=session.client("ecs"), cluster_name=CLUSTER_NAME, task_arn=task_id2)
    main_task.wait_for_task_complete()

    if  args.cloud == None or args.cloud == "True" and worker_task is not None:
        worker_task.kill()
    logs = log_analyzer.fetch_logs(args.project_name, task_id)
    print(logs)