Skip to content

Commit 3e32a29

Browse files
committed
Autoscale:Changes for addressing AutoScale bugs CS-15930, CS-15931, CS-15934, CS-15935
1 parent c1b4bc4 commit 3e32a29

7 files changed

Lines changed: 309 additions & 264 deletions

File tree

‎api/src/com/cloud/agent/api/to/LoadBalancerTO.java‎

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public class LoadBalancerTO {
4949
final static int MAX_STICKINESS_POLICIES = 1;
5050

5151
public LoadBalancerTO (Long id, String srcIp, int srcPort, String protocol, String algorithm, boolean revoked, boolean alreadyAdded, List<LbDestination> destinations) {
52-
if(destinations == null) { // for autoscaleconfig destinations will be null;
52+
if (destinations == null) { // for autoscaleconfig destinations will be null;
5353
destinations = new ArrayList<LbDestination>();
5454
}
5555
this.id = id;
@@ -70,7 +70,7 @@ public LoadBalancerTO (Long id, String srcIp, int srcPort, String protocol, Stri
7070
public LoadBalancerTO (Long id, String srcIp, int srcPort, String protocol, String algorithm, boolean revoked, boolean alreadyAdded, List<LbDestination> arg_destinations, List<LbStickinessPolicy> stickinessPolicies) {
7171
this(id, srcIp, srcPort, protocol, algorithm, revoked, alreadyAdded, arg_destinations);
7272
this.stickinessPolicies = null;
73-
if (stickinessPolicies != null && stickinessPolicies.size()>0) {
73+
if (stickinessPolicies != null && stickinessPolicies.size() > 0) {
7474
this.stickinessPolicies = new StickinessPolicyTO[MAX_STICKINESS_POLICIES];
7575
int index = 0;
7676
for (LbStickinessPolicy stickinesspolicy : stickinessPolicies) {
@@ -186,7 +186,7 @@ public boolean isAlreadyAdded() {
186186
return alreadyAdded;
187187
}
188188
}
189-
public static class CounterTO implements Serializable{
189+
public static class CounterTO implements Serializable {
190190
private final String name;
191191
private final String source;
192192
private final String value;
@@ -210,7 +210,7 @@ public String getValue() {
210210
}
211211
}
212212

213-
public static class ConditionTO implements Serializable{
213+
public static class ConditionTO implements Serializable {
214214
private final long threshold;
215215
private final String relationalOperator;
216216
private final CounterTO counter;
@@ -235,7 +235,7 @@ public CounterTO getCounter() {
235235
}
236236
}
237237

238-
public static class AutoScalePolicyTO implements Serializable{
238+
public static class AutoScalePolicyTO implements Serializable {
239239
private final long id;
240240
private final int duration;
241241
private final int quietTime;
@@ -277,7 +277,7 @@ public List<ConditionTO> getConditions() {
277277
}
278278
}
279279

280-
public static class AutoScaleVmProfileTO implements Serializable{
280+
public static class AutoScaleVmProfileTO implements Serializable {
281281
private final Long zoneId;
282282
private final Long domainId;
283283
private final Long serviceOfferingId;
@@ -350,16 +350,17 @@ public String getAutoScaleUserSecretKey() {
350350
}
351351
}
352352

353-
public static class AutoScaleVmGroupTO implements Serializable{
353+
public static class AutoScaleVmGroupTO implements Serializable {
354354
private final int minMembers;
355355
private final int maxMembers;
356356
private final int memberPort;
357357
private final int interval;
358358
private final List<AutoScalePolicyTO> policies;
359359
private final AutoScaleVmProfileTO profile;
360360
private final String state;
361+
private final String currentState;
361362

362-
AutoScaleVmGroupTO(int minMembers, int maxMembers, int memberPort, int interval, List<AutoScalePolicyTO> policies, AutoScaleVmProfileTO profile, String state)
363+
AutoScaleVmGroupTO(int minMembers, int maxMembers, int memberPort, int interval, List<AutoScalePolicyTO> policies, AutoScaleVmProfileTO profile, String state, String currentState)
363364
{
364365
this.minMembers = minMembers;
365366
this.maxMembers = maxMembers;
@@ -368,6 +369,7 @@ public static class AutoScaleVmGroupTO implements Serializable{
368369
this.policies = policies;
369370
this.profile = profile;
370371
this.state = state;
372+
this.currentState = currentState;
371373
}
372374

373375
public int getMinMembers() {
@@ -397,6 +399,10 @@ public AutoScaleVmProfileTO getProfile() {
397399
public String getState() {
398400
return state;
399401
}
402+
403+
public String getCurrentState() {
404+
return currentState;
405+
}
400406
}
401407

402408
public void setAutoScaleVmGroup(LbAutoScaleVmGroup lbAutoScaleVmGroup)
@@ -428,7 +434,7 @@ public void setAutoScaleVmGroup(LbAutoScaleVmGroup lbAutoScaleVmGroup)
428434

429435
AutoScaleVmGroup autoScaleVmGroup = lbAutoScaleVmGroup.getVmGroup();
430436
autoScaleVmGroupTO = new AutoScaleVmGroupTO(autoScaleVmGroup.getMinMembers(), autoScaleVmGroup.getMaxMembers(), autoScaleVmGroup.getMemberPort(),
431-
autoScaleVmGroup.getInterval(), autoScalePolicyTOs, autoScaleVmProfileTO, autoScaleVmGroup.getState());
437+
autoScaleVmGroup.getInterval(), autoScalePolicyTOs, autoScaleVmProfileTO, autoScaleVmGroup.getState(), lbAutoScaleVmGroup.getCurrentState());
432438
}
433439

434440
}

‎api/src/com/cloud/network/as/AutoScaleService.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.cloud.api.commands.UpdateAutoScaleVmGroupCmd;
3333
import com.cloud.api.commands.UpdateAutoScaleVmProfileCmd;
3434
import com.cloud.exception.ResourceInUseException;
35+
import com.cloud.exception.ResourceUnavailableException;
3536
import com.cloud.network.as.AutoScalePolicy;
3637
import com.cloud.network.as.AutoScaleVmGroup;
3738
import com.cloud.network.as.AutoScaleVmProfile;
@@ -58,7 +59,7 @@ public interface AutoScaleService {
5859

5960
AutoScaleVmGroup createAutoScaleVmGroup(CreateAutoScaleVmGroupCmd cmd);
6061

61-
boolean configureAutoScaleVmGroup(CreateAutoScaleVmGroupCmd cmd);
62+
boolean configureAutoScaleVmGroup(CreateAutoScaleVmGroupCmd cmd) throws ResourceUnavailableException;
6263

6364
boolean deleteAutoScaleVmGroup(long vmGroupId);
6465

‎api/src/com/cloud/network/lb/LoadBalancingRule.java‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import com.cloud.network.rules.LoadBalancer;
2828
import com.cloud.utils.Pair;
2929

30-
public class LoadBalancingRule implements FirewallRule, LoadBalancer{
30+
public class LoadBalancingRule implements FirewallRule, LoadBalancer {
3131
private LoadBalancer lb;
3232
private List<LbDestination> destinations;
3333
private List<LbStickinessPolicy> stickinessPolicies;
@@ -319,17 +319,19 @@ public String getAutoScaleUserSecretKey() {
319319
public String getCsUrl() {
320320
return csUrl;
321321
}
322-
}
322+
}
323323

324324
public static class LbAutoScaleVmGroup {
325325
AutoScaleVmGroup vmGroup;
326326
private final List<LbAutoScalePolicy> policies;
327327
private final LbAutoScaleVmProfile profile;
328+
private final String currentState;
328329

329-
public LbAutoScaleVmGroup(AutoScaleVmGroup vmGroup, List<LbAutoScalePolicy> policies, LbAutoScaleVmProfile profile) {
330+
public LbAutoScaleVmGroup(AutoScaleVmGroup vmGroup, List<LbAutoScalePolicy> policies, LbAutoScaleVmProfile profile, String currentState) {
330331
this.vmGroup = vmGroup;
331332
this.policies = policies;
332333
this.profile = profile;
334+
this.currentState = currentState;
333335
}
334336

335337
public AutoScaleVmGroup getVmGroup() {
@@ -343,5 +345,9 @@ public List<LbAutoScalePolicy> getPolicies() {
343345
public LbAutoScaleVmProfile getProfile() {
344346
return profile;
345347
}
348+
349+
public String getCurrentState() {
350+
return currentState;
351+
}
346352
}
347353
}

0 commit comments

Comments
 (0)