Skip to content

Commit 223c52c

Browse files
committed
PRcomments
1 parent deeb4c9 commit 223c52c

2 files changed

Lines changed: 20 additions & 5 deletions

File tree

SingularityService/src/main/java/com/hubspot/singularity/config/SingularityConfiguration.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ public class SingularityConfiguration extends Configuration {
237237

238238
private int maxUserIdSize = 100;
239239

240+
private int maxScaleDownWithoutAcknowledgement = 10;
241+
240242
private boolean storeAllMesosTaskInfoForDebugging = false;
241243

242244
@JsonProperty("historyPurging")
@@ -832,6 +834,10 @@ public int getMaxUserIdSize() {
832834
return maxUserIdSize;
833835
}
834836

837+
public int getMaxScaleDownWithoutAcknowledgement() {
838+
return maxScaleDownWithoutAcknowledgement;
839+
}
840+
835841
public int getMaxTasksPerOffer() {
836842
return maxTasksPerOffer;
837843
}
@@ -1245,6 +1251,12 @@ public void setMaxTasksPerOfferPerRequest(int maxTasksPerOfferPerRequest) {
12451251
this.maxTasksPerOfferPerRequest = maxTasksPerOfferPerRequest;
12461252
}
12471253

1254+
public void setMaxScaleDownWithoutAcknowledgement(
1255+
int maxScaleDownWithoutAcknowledgement
1256+
) {
1257+
this.maxScaleDownWithoutAcknowledgement = maxScaleDownWithoutAcknowledgement;
1258+
}
1259+
12481260
public void setMesosConfiguration(MesosConfiguration mesosConfiguration) {
12491261
this.mesosConfiguration = mesosConfiguration;
12501262
}

SingularityService/src/main/java/com/hubspot/singularity/data/SingularityValidator.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,18 +1241,21 @@ public void checkScale(SingularityRequest request, Optional<Integer> previousSca
12411241
}
12421242

12431243
if (previousScale.isPresent() && !request.getLargeScaleDownAcknowledged()) {
1244+
int absMaxScaleDown = singularityConfiguration.getMaxScaleDownWithoutAcknowledgement();
12441245
boolean scaleDownExceedsAbsoluteMax =
1245-
previousScale.get() - request.getInstancesSafe() > 10;
1246+
previousScale.get() - request.getInstancesSafe() > absMaxScaleDown;
12461247
boolean scaleDownExceedsRelativeMax =
12471248
request.getInstancesSafe() < (previousScale.get() / 2);
12481249
checkBadRequest(
12491250
!scaleDownExceedsAbsoluteMax,
1250-
"Cannot scale down by more than %s instances at a time",
1251-
10
1251+
"Cannot scale down by more than %s instances at a time without explicit " +
1252+
"acknowledgement (set the largeScaleDownAcknowledged field in the request)",
1253+
absMaxScaleDown
12521254
);
12531255
checkBadRequest(
1254-
!(previousScale.get() > 10 && scaleDownExceedsRelativeMax),
1255-
"Cannot scale down by more than half of current instances."
1256+
!(previousScale.get() > absMaxScaleDown && scaleDownExceedsRelativeMax),
1257+
"Cannot scale down by more than half of current instances without explicit " +
1258+
"acknowledgement (set the largeScaleDownAcknowledged field in the request)"
12561259
);
12571260
}
12581261
}

0 commit comments

Comments
 (0)