mirror of https://github.com/apache/cloudstack.git
444 lines
12 KiB
Java
444 lines
12 KiB
Java
// Copyright 2012 Citrix Systems, Inc. Licensed under the
|
|
// Apache License, Version 2.0 (the "License"); you may not use this
|
|
// file except in compliance with the License. Citrix Systems, Inc.
|
|
// reserves all rights not expressly granted by the License.
|
|
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
// Automatically generated by addcopyright.py at 04/03/2012
|
|
package com.cloud.network.lb;
|
|
|
|
import java.util.List;
|
|
|
|
import com.cloud.network.as.AutoScalePolicy;
|
|
import com.cloud.network.as.AutoScaleVmGroup;
|
|
import com.cloud.network.as.AutoScaleVmProfile;
|
|
import com.cloud.network.as.Condition;
|
|
import com.cloud.network.as.Counter;
|
|
import com.cloud.network.rules.FirewallRule;
|
|
import com.cloud.network.rules.LoadBalancer;
|
|
import com.cloud.utils.Pair;
|
|
|
|
public class LoadBalancingRule implements FirewallRule, LoadBalancer{
|
|
private final LoadBalancer lb;
|
|
private final List<LbDestination> destinations;
|
|
private final List<LbStickinessPolicy> stickinessPolicies;
|
|
private LbAutoScaleVmGroup autoScaleVmGroup;
|
|
|
|
public LoadBalancingRule(LoadBalancer lb, List<LbDestination> destinations, List<LbStickinessPolicy> stickinessPolicies) {
|
|
this.lb = lb;
|
|
this.destinations = destinations;
|
|
this.stickinessPolicies = stickinessPolicies;
|
|
}
|
|
|
|
@Override
|
|
public long getId() {
|
|
return lb.getId();
|
|
}
|
|
|
|
@Override
|
|
public long getAccountId() {
|
|
return lb.getAccountId();
|
|
}
|
|
|
|
@Override
|
|
public long getDomainId() {
|
|
return lb.getDomainId();
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return lb.getName();
|
|
}
|
|
|
|
@Override
|
|
public String getDescription() {
|
|
return lb.getDescription();
|
|
}
|
|
|
|
@Override
|
|
public int getDefaultPortStart() {
|
|
return lb.getDefaultPortStart();
|
|
}
|
|
|
|
@Override
|
|
public int getDefaultPortEnd() {
|
|
return lb.getDefaultPortEnd();
|
|
}
|
|
|
|
@Override
|
|
public String getAlgorithm() {
|
|
return lb.getAlgorithm();
|
|
}
|
|
|
|
@Override
|
|
public String getXid() {
|
|
return lb.getXid();
|
|
}
|
|
|
|
@Override
|
|
public Long getSourceIpAddressId() {
|
|
return lb.getSourceIpAddressId();
|
|
}
|
|
|
|
@Override
|
|
public Integer getSourcePortStart() {
|
|
return lb.getSourcePortStart();
|
|
}
|
|
|
|
@Override
|
|
public Integer getSourcePortEnd() {
|
|
return lb.getSourcePortEnd();
|
|
}
|
|
|
|
@Override
|
|
public String getProtocol() {
|
|
return lb.getProtocol();
|
|
}
|
|
|
|
@Override
|
|
public Purpose getPurpose() {
|
|
return Purpose.LoadBalancing;
|
|
}
|
|
|
|
@Override
|
|
public State getState() {
|
|
return lb.getState();
|
|
}
|
|
|
|
@Override
|
|
public long getNetworkId() {
|
|
return lb.getNetworkId();
|
|
}
|
|
|
|
public LoadBalancer getLb() {
|
|
return lb;
|
|
}
|
|
|
|
public List<LbDestination> getDestinations() {
|
|
return destinations;
|
|
}
|
|
|
|
public List<LbStickinessPolicy> getStickinessPolicies() {
|
|
return stickinessPolicies;
|
|
}
|
|
|
|
|
|
public interface Destination {
|
|
String getIpAddress();
|
|
int getDestinationPortStart();
|
|
int getDestinationPortEnd();
|
|
boolean isRevoked();
|
|
}
|
|
|
|
public static class LbStickinessPolicy {
|
|
private final String _methodName;
|
|
private final List<Pair<String, String>> _params;
|
|
private final boolean _revoke;
|
|
|
|
public LbStickinessPolicy(String methodName, List<Pair<String, String>> params, boolean revoke) {
|
|
this._methodName = methodName;
|
|
this._params = params;
|
|
this._revoke = revoke;
|
|
}
|
|
|
|
public LbStickinessPolicy(String methodName, List<Pair<String, String>> params) {
|
|
this._methodName = methodName;
|
|
this._params = params;
|
|
this._revoke = false;
|
|
}
|
|
|
|
public String getMethodName() {
|
|
return _methodName;
|
|
}
|
|
|
|
public List<Pair<String, String>> getParams() {
|
|
return _params;
|
|
}
|
|
|
|
public boolean isRevoked() {
|
|
return _revoke;
|
|
}
|
|
}
|
|
|
|
public static class LbDestination implements Destination {
|
|
private final int portStart;
|
|
private final int portEnd;
|
|
private final String ip;
|
|
boolean revoked;
|
|
|
|
public LbDestination(int portStart, int portEnd, String ip, boolean revoked) {
|
|
this.portStart = portStart;
|
|
this.portEnd = portEnd;
|
|
this.ip = ip;
|
|
this.revoked = revoked;
|
|
}
|
|
|
|
@Override
|
|
public String getIpAddress() {
|
|
return ip;
|
|
}
|
|
@Override
|
|
public int getDestinationPortStart() {
|
|
return portStart;
|
|
}
|
|
@Override
|
|
public int getDestinationPortEnd() {
|
|
return portEnd;
|
|
}
|
|
|
|
@Override
|
|
public boolean isRevoked() {
|
|
return revoked;
|
|
}
|
|
|
|
public void setRevoked(boolean revoked) {
|
|
this.revoked = revoked;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Integer getIcmpCode() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Integer getIcmpType() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<String> getSourceCidrList() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Long getRelated() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public FirewallRuleType getType() {
|
|
return FirewallRuleType.User;
|
|
}
|
|
|
|
@Override
|
|
public TrafficType getTrafficType() {
|
|
return null;
|
|
}
|
|
|
|
public LbAutoScaleVmGroup getAutoScaleVmGroup() {
|
|
return autoScaleVmGroup;
|
|
}
|
|
|
|
public boolean isAutoScaleConfig() {
|
|
return this.autoScaleVmGroup != null;
|
|
}
|
|
|
|
public void setAutoScaleVmGroup(LbAutoScaleVmGroup autoScaleVmGroup) {
|
|
this.autoScaleVmGroup = autoScaleVmGroup;
|
|
}
|
|
|
|
|
|
public static class LbCondition {
|
|
private final Condition condition;
|
|
private final Counter counter;
|
|
public LbCondition(Counter counter, Condition condition) {
|
|
this.condition = condition;
|
|
this.counter = counter;
|
|
}
|
|
public Condition getCondition() {
|
|
return condition;
|
|
}
|
|
public Counter getCounter() {
|
|
return counter;
|
|
}
|
|
}
|
|
|
|
public static class LbAutoScalePolicy {
|
|
private final List<LbCondition> conditions;
|
|
private final AutoScalePolicy policy;
|
|
private boolean revoked;
|
|
public LbAutoScalePolicy(AutoScalePolicy policy, List<LbCondition> conditions)
|
|
{
|
|
this.policy = policy;
|
|
this.conditions = conditions;
|
|
}
|
|
public List<LbCondition> getConditions() {
|
|
return conditions;
|
|
}
|
|
public AutoScalePolicy getPolicy() {
|
|
return policy;
|
|
}
|
|
|
|
public boolean isRevoked() {
|
|
return revoked;
|
|
}
|
|
public void setRevoked(boolean revoked) {
|
|
this.revoked = revoked;
|
|
}
|
|
}
|
|
|
|
public static class LbAutoScaleVmProfile {
|
|
AutoScaleVmProfile profile;
|
|
private final String cloudStackApiUrl;
|
|
private final String autoScaleUserApiKey;
|
|
private final String autoScaleUserSecretKey;
|
|
|
|
public LbAutoScaleVmProfile(AutoScaleVmProfile profile, String cloudStackApiUrl, String autoScaleUserApiKey, String autoScaleUserSecretKey) {
|
|
this.profile = profile;
|
|
this.cloudStackApiUrl = cloudStackApiUrl;
|
|
this.autoScaleUserApiKey = autoScaleUserApiKey;
|
|
this.autoScaleUserSecretKey = autoScaleUserSecretKey;
|
|
}
|
|
public AutoScaleVmProfile getProfile() {
|
|
return profile;
|
|
}
|
|
public String getCloudStackApiUrl() {
|
|
return cloudStackApiUrl;
|
|
}
|
|
public String getAutoScaleUserApiKey() {
|
|
return autoScaleUserApiKey;
|
|
}
|
|
public String getAutoScaleUserSecretKey() {
|
|
return autoScaleUserSecretKey;
|
|
}
|
|
}
|
|
|
|
public static class LbAutoScaleVmGroup {
|
|
AutoScaleVmGroup vmGroup;
|
|
private final List<LbAutoScalePolicy> policies;
|
|
private final LbAutoScaleVmProfile profile;
|
|
|
|
public LbAutoScaleVmGroup(AutoScaleVmGroup vmGroup, List<LbAutoScalePolicy> policies, LbAutoScaleVmProfile profile) {
|
|
this.vmGroup = vmGroup;
|
|
this.policies = policies;
|
|
this.profile = profile;
|
|
}
|
|
|
|
public AutoScaleVmGroup getVmGroup() {
|
|
return vmGroup;
|
|
}
|
|
|
|
public List<LbAutoScalePolicy> getPolicies() {
|
|
return policies;
|
|
}
|
|
|
|
public LbAutoScaleVmProfile getProfile() {
|
|
return profile;
|
|
}
|
|
}
|
|
//public static class LbCounter{
|
|
//private String name;
|
|
//private String source;
|
|
//private String value;
|
|
//
|
|
//public LbCounter(String name, String source, String value)
|
|
//{
|
|
// this.name = name;
|
|
// this.source = source;
|
|
// this.value = value;
|
|
//}
|
|
//
|
|
//public String getName() {
|
|
// return name;
|
|
//}
|
|
//public String getSource() {
|
|
// return source;
|
|
//}
|
|
//public String getValue() {
|
|
// return value;
|
|
//}
|
|
//}
|
|
//
|
|
//public static class LbCondition{
|
|
//private long threshold;
|
|
//private String relationalOperator;
|
|
//private LbCounter counter;
|
|
//public LbCondition(int threshold, String relationalOperator, LbCounter counter)
|
|
//{
|
|
// this.threshold = threshold;
|
|
// this.relationalOperator = relationalOperator;
|
|
// this.counter = counter;
|
|
//}
|
|
//public long getThreshold() {
|
|
// return threshold;
|
|
//}
|
|
//public String getRelationalOperator() {
|
|
// return relationalOperator;
|
|
//}
|
|
//public LbCounter getCounter() {
|
|
// return counter;
|
|
//}
|
|
//}
|
|
//
|
|
//public static class AutoScaleVmGroup {
|
|
//private int minMembers;
|
|
//private int maxMembers;
|
|
//private List<AutoscalePolicy> scaleUpPolicies;
|
|
//private List<AutoscalePolicy> scaleDownPolicies;
|
|
//private List<AutoScaleVmProfile> profile;
|
|
//private boolean revoked;
|
|
//
|
|
//public boolean isRevoked() {
|
|
// return revoked;
|
|
//}
|
|
//
|
|
//public void setRevoked(boolean revoked) {
|
|
// this.revoked = revoked;
|
|
//}
|
|
//}
|
|
//
|
|
//public static class AutoScaleVmProfile {
|
|
//private Long zoneId;
|
|
//private long domainId;
|
|
//private long accountId;
|
|
//private Long serviceOfferingId;
|
|
//private Long templateId;
|
|
//private String otherDeployParams;
|
|
//private String snmpCommunity;
|
|
//private Integer snmpPort;
|
|
//
|
|
//}
|
|
//
|
|
//public static class AutoscalePolicy {
|
|
//private int interval;
|
|
//
|
|
//private int duration;
|
|
//private int quietTime;
|
|
//private String action;
|
|
//private List<LbCondition> conditions;
|
|
//
|
|
//public AutoscalePolicy(int interval, int duration, int quietTime, String action, List<LbCondition> conditions) {
|
|
// this.interval = interval;
|
|
// this.duration = duration;
|
|
// this.quietTime = quietTime;
|
|
// this.conditions = conditions;
|
|
//}
|
|
//
|
|
//public int getInterval() {
|
|
// return interval;
|
|
//}
|
|
//
|
|
//public int getDuration() {
|
|
// return duration;
|
|
//}
|
|
//
|
|
//public int getQuietTime() {
|
|
// return quietTime;
|
|
//}
|
|
//
|
|
//public String getAction() {
|
|
// return action;
|
|
//}
|
|
//
|
|
//public List<LbCondition> getConditions() {
|
|
// return conditions;
|
|
//}
|
|
//}
|
|
}
|