in src/scaler/scaler-core/index.js [125:154]
function getScalingMethod(cluster) {
const SCALING_METHODS_FOLDER = './scaling-methods/';
const DEFAULT_METHOD_NAME = 'STEPWISE';
// sanitize the method name before using
// to prevent risk of directory traversal.
const methodName = sanitize(cluster.scalingMethod);
let scalingMethod;
try {
scalingMethod = require(SCALING_METHODS_FOLDER + methodName.toLowerCase());
} catch (err) {
logger.warn({
message: `Unknown scaling method '${methodName}'`,
projectId: cluster.projectId,
regionId: cluster.regionId,
clusterId: cluster.clusterId,
});
scalingMethod = require(
SCALING_METHODS_FOLDER + DEFAULT_METHOD_NAME.toLowerCase(),
);
cluster.scalingMethod = DEFAULT_METHOD_NAME;
}
logger.info({
message: `Using scaling method: ${cluster.scalingMethod}`,
projectId: cluster.projectId,
regionId: cluster.regionId,
clusterId: cluster.clusterId,
});
return scalingMethod;
}