def create_setup_task()

in src/hpcadvisor/batch_handler.py [0:0]


def create_setup_task(jobid, appsetupurl):
    log.info(f"Creating setup task for jobid={jobid}")

    if not batch_client:
        log.critical("batch_client is None")
        return

    app_setup_url = appsetupurl
    log.debug(f"application setup url: {app_setup_url}")

    random_code = utils.get_random_code()
    task_id = f"task-app-setup-{random_code}"

    if not jobid:
        log.critical(f"jobid is None and cannot create setup task {task_id}")
        return

    script_name = os.path.basename(app_setup_url)
    log.debug(f"script for application: {script_name}")

    anfmountdir = env["ANFMOUNTDIR"]

    if anfenabled:
        task_commands = [
            f"/bin/bash -c 'set ; cd {anfmountdir} ; curl -sLO {app_setup_url} ; source {script_name} ; {HPCADVISOR_FUNCTION_SETUP}'"
        ]
    else:
        task_commands = [
            f"/bin/bash -c 'set ; cd $AZ_BATCH_NODE_MOUNTS_DIR/data ; curl -sLO {app_setup_url} ; source {script_name} ; {HPCADVISOR_FUNCTION_SETUP}'"
        ]

    log.debug(f"task command: {task_commands}")

    user = batchmodels.UserIdentity(
        auto_user=batchmodels.AutoUserSpecification(
            scope=batchmodels.AutoUserScope.pool,
            elevation_level=batchmodels.ElevationLevel.admin,
        )
    )

    task = batchmodels.TaskAddParameter(
        id=task_id,
        user_identity=user,
        command_line=task_commands[0],
    )

    batch_client.task.add(job_id=jobid, task=task)
    log.info(f"Task [{task_id}] created!")