Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Commit fcac116

Browse files
committed
Fix adjustment logic
1 parent 88dc85c commit fcac116

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/Provisioner.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export default class Provisioner extends ProvisionerConfigurableBase {
180180
let isBelowMin = this.isBelowMin(adjustmentContext);
181181
let isAboveThreshold = this.isAboveThreshold(adjustmentContext);
182182
let isBelowThreshold = this.isBelowThreshold(adjustmentContext);
183-
let isAdjustmentWanted = (isAboveMax || isAboveMax || isAboveThreshold || isBelowThreshold);
183+
let isAdjustmentWanted = (isAboveMax || isBelowMin || isAboveThreshold || isBelowThreshold);
184184

185185
// Determine if an adjustment is allowed under the rate limiting rules
186186
let isAfterLastDecreaseGracePeriod = this.isAfterLastAdjustmentGracePeriod(
@@ -221,6 +221,12 @@ export default class Provisioner extends ProvisionerConfigurableBase {
221221
return false;
222222
}
223223

224+
if (context.CapacityConfig.Max != null &&
225+
context.ProvisionedValue >= context.CapacityConfig.Max) {
226+
// Already at maximum allowed ProvisionedValue
227+
return false;
228+
}
229+
224230
let utilisationPercent = (context.ConsumedValue / context.ProvisionedValue) * 100;
225231
return utilisationPercent > context.CapacityAdjustmentConfig.When.UtilisationIsAbovePercent;
226232
}
@@ -232,6 +238,12 @@ export default class Provisioner extends ProvisionerConfigurableBase {
232238
return false;
233239
}
234240

241+
let min = context.CapacityConfig.Min != null ? context.CapacityConfig.Min : 1;
242+
if (context.ProvisionedValue <= min) {
243+
// Already at minimum allowed ProvisionedValue
244+
return false;
245+
}
246+
235247
let utilisationPercent = (context.ConsumedValue / context.ProvisionedValue) * 100;
236248
return utilisationPercent < context.CapacityAdjustmentConfig.When.UtilisationIsBelowPercent;
237249
}
@@ -243,7 +255,7 @@ export default class Provisioner extends ProvisionerConfigurableBase {
243255
return false;
244256
}
245257

246-
return context.ConsumedValue > context.CapacityConfig.Max;
258+
return context.ProvisionedValue > context.CapacityConfig.Max;
247259
}
248260

249261
isBelowMin(context: AdjustmentContext): boolean {
@@ -253,7 +265,7 @@ export default class Provisioner extends ProvisionerConfigurableBase {
253265
return false;
254266
}
255267

256-
return context.ConsumedValue < context.CapacityConfig.Min;
268+
return context.ProvisionedValue < context.CapacityConfig.Min;
257269
}
258270

259271
isAfterLastAdjustmentGracePeriod(lastAdjustmentDateTime: string, afterLastAdjustmentMinutes?: number): boolean {

src/provisioning/ProvisionerLogging.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,15 @@ export default class ConfigLogging {
3939

4040
if (adjustmentData.isAdjustmentWanted) {
4141
logMessage += ' so an increment is WANTED';
42-
}
43-
44-
if (adjustmentData.isAdjustmentAllowed) {
45-
logMessage += ' and is ALLOWED';
46-
} else if (!adjustmentData.isAfterLastDecreaseGracePeriod) {
47-
logMessage += ' but is DISALLOWED due to \'AfterLastDecrementMinutes\' grace period';
48-
} else if (!adjustmentData.isAfterLastIncreaseGracePeriod) {
49-
logMessage += ' but is DISALLOWED due to \'AfterLastIncreaseMinutes\' grace period';
50-
} else {
51-
logMessage += ' but is DISALLOWED';
42+
if (adjustmentData.isAdjustmentAllowed) {
43+
logMessage += ' and is ALLOWED';
44+
} else if (!adjustmentData.isAfterLastDecreaseGracePeriod) {
45+
logMessage += ' but is DISALLOWED due to \'AfterLastDecrementMinutes\' grace period';
46+
} else if (!adjustmentData.isAfterLastIncreaseGracePeriod) {
47+
logMessage += ' but is DISALLOWED due to \'AfterLastIncreaseMinutes\' grace period';
48+
} else {
49+
logMessage += ' but is DISALLOWED';
50+
}
5251
}
5352

5453
log(logMessage);

0 commit comments

Comments
 (0)