def generate_env_file()

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


def generate_env_file(rg_prefix, user_data):
    subscription = user_data["subscription"]
    region = user_data["region"]

    create_jumpbox = user_data.get("createjumpbox", False)
    peer_vpn = user_data.get("peervpn", False)

    deployment_dir = os.path.join(hpcadvisor_dir, rg_prefix)

    if not os.path.exists(deployment_dir):
        log.debug("Create deployment dir: " + deployment_dir)
        os.makedirs(deployment_dir)

    env_file = os.path.join(deployment_dir, environment_filename)

    with open(env_file, "w") as f:
        f.write("SUBSCRIPTION=" + subscription + "\n")
        f.write("REGION=" + region + "\n")

        f.write("RG=" + rg_prefix + "\n")
        f.write("BATCHACCOUNT=" + rg_prefix + "ba\n")
        f.write("STORAGEACCOUNT=" + rg_prefix + "sa\n")
        f.write("ANFACCOUNT=" + rg_prefix + "anf\n")
        f.write("ANFVOLUMENAME=anfvolume\n")
        f.write("ANFPOOLNAME=anfpool\n")
        f.write("ANFMOUNTDIR="+anfmountdir+"\n")
        f.write("KEYVAULT=" + rg_prefix + "kv\n")
        f.write("VNETNAME=" + rg_prefix + "VNET\n")
        f.write("VSUBNETNAME=" + rg_prefix + "SUBNET\n")

        f.write("CREATEJUMPBOX=" + str(create_jumpbox) + "\n")
        f.write("PEERVPN=" + str(peer_vpn) + "\n")

        # TODO: some thougth is required here
        if "vpnrg" in user_data:
            f.write("VPNRG=" + user_data["vpnrg"] + "\n")
        if "vpnvnet" in user_data:
            f.write("VPNVNET=" + user_data["vpnvnet"] + "\n")
        if "vnetaddress" in user_data:
            f.write("VNETADDRESS=" + user_data["vnetaddress"] + "\n")
        else:
            # TODO: may improve this in future
            #
            # no particular reason for this range
            # this has some limitation as mask is fixed
            # and may conflict with other vnets for peering
            f.write(f"VNETADDRESS=10.{random.randint(35, 55)}.0.0\n")

    return env_file