def setup_environment()

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


def setup_environment(filename):
    global batch_client
    global anf_client

    if not os.path.exists(filename):
        log.critical(f"Environment file does not exist: {filename}")
        sys.exit(1)

    with open(filename) as f:
        lines = f.readlines()
        for line in lines:
            if "#" in line or "=" not in line:
                continue
            line = line.strip()

            variable = line.split("=")[0]
            value = line.split("=")[1]
            env[variable] = value

    required_env_vars = [
        "SUBSCRIPTION",
        "RG",
        "BATCHACCOUNT",
        "STORAGEACCOUNT",
        "VNETNAME",
        "VSUBNETNAME",
        "REGION",
    ]

    for var in required_env_vars:
        if var not in env:
            log.critical(f"{filename}: Environment variable {var} is not set")
            log.critical("Perhaps environment deployer script was not run?")
            sys.exit(1)

    # TODO: need more testing here
    # perhaps create subscription and subscriptionid variables
    env["SUBSCRIPTION"] = get_subscription_id(env["SUBSCRIPTION"])

    if not resource_group_exists(env["SUBSCRIPTION"], env["RG"]):
        return False

    env["SUBVNETID"] = _get_subnet_id(
        env["SUBSCRIPTION"], env["RG"], env["VNETNAME"], env["VSUBNETNAME"]
    )

    batch_client = _get_batch_client(env["SUBSCRIPTION"], env["RG"])
    anf_client = _get_anf_client(env["SUBSCRIPTION"], env["RG"])

    env["NODEAGENTSKU"] = _get_node_agent_sku(VMIMAGE)

    # TODO: need to check if environment is indeed setup
    log.debug(f"Environment setup finished: {env}")

    return True