function mergePassFailServerCriteria()

in src/Utils/CreateAndRunUtils.ts [286:315]


function mergePassFailServerCriteria(loadTestConfig: LoadtestConfig ,existingData:ExistingParams) : {
    [key: string]: PassFailServerMetric | null;
} {
    let existingServerCriteria = existingData.passFailServerMetrics;
    let existingServerCriteriaIds = Object.keys(existingServerCriteria);
    let numberOfExistingServerCriteria = existingServerCriteriaIds.length;
    let serverIndex = 0;

    let passFailServerCriteriaMerged : { [key: string]: PassFailServerMetric | null } = {};

    if (!isNullOrUndefined(loadTestConfig.serverFailureCriteria)) {
        for(let serverCriteria of loadTestConfig.serverFailureCriteria) {
            let criteriaId = serverIndex < numberOfExistingServerCriteria ? existingServerCriteriaIds[serverIndex++] : Util.getUniqueId();
            passFailServerCriteriaMerged[criteriaId] = {
                metricName: serverCriteria.metricName,
                aggregation: serverCriteria.aggregation,
                resourceId: serverCriteria.resourceId,
                condition: ConditionEnumToSignMap[serverCriteria.condition as ValidConditionsEnumValuesList ?? ValidConditionsEnumValuesList.LessThan],
                value: serverCriteria.value?.toString(),
                metricNameSpace: serverCriteria.metricNameSpace ?? Util.getResourceTypeFromResourceId(serverCriteria.resourceId),
            };
        }
    }

    for (; serverIndex < numberOfExistingServerCriteria; serverIndex++) {
        passFailServerCriteriaMerged[existingServerCriteriaIds[serverIndex]] = null;
    }

    return passFailServerCriteriaMerged;
}