export function createPoolToData()

in desktop/src/app/models/forms/create-pool-model.ts [58:121]


export function createPoolToData(output: CreatePoolModel): PoolCreateDto {
    const outputScale: PoolScaleSelection = output.scale || {} as any;
    const data: any = {
        id: output.id,
        displayName: output.displayName,
        vmSize: output.vmSize,
        enableAutoScale: outputScale.enableAutoScale,
        taskSlotsPerNode: Number(output.taskSlotsPerNode),
        enableInterNodeCommunication: output.enableInterNodeCommunication,
        taskSchedulingPolicy: {
            nodeFillType: output.taskSchedulingPolicy,
        },
        startTask: output.startTask,
        userAccounts: output.userAccounts,
        metadata: output.metadata,
    };

    if (outputScale.enableAutoScale) {
        data.autoScaleFormula = outputScale.autoScaleFormula;
        data.autoScaleEvaluationInterval = outputScale.autoScaleEvaluationInterval;
    } else {
        data.targetDedicatedNodes = outputScale.targetDedicatedNodes;
        data.targetLowPriorityNodes = outputScale.targetLowPriorityNodes;
        data.resizeTimeout = outputScale.resizeTimeout;
    }

    if (output.os.source === PoolOsSources.PaaS) {
        data.cloudServiceConfiguration = output.os.cloudServiceConfiguration;
    } else {
        data.virtualMachineConfiguration = output.os.virtualMachineConfiguration;
        // if (output.os.virtualMachineConfiguration.osType !== "windows") {
        //     delete data.virtualMachineConfiguration.windowsConfiguration;
        // }
    }

    if (output.appLicenses && output.appLicenses.length > 0) {
        data.applicationLicenses = output.appLicenses;
    }

    if (output.appPackages && output.appPackages.length > 0) {
        data.applicationPackageReferences = output.appPackages;
    }

    if (output.inboundNATPools && output.inboundNATPools.length > 0) {
        data.networkConfiguration = {
            endpointConfiguration: {
                inboundNATPools: output.inboundNATPools,
            },
        };
    }

    if (output.subnetId) {
        data.networkConfiguration = {
            subnetId: output.subnetId,
            ...data.networkConfiguration,
        };
    }

    if (output.certificateReferences) {
        data.certificateReferences = output.certificateReferences;
    }

    return new PoolCreateDto(data);
}