cloudstack/api/src/com/cloud/network/lb/LoadBalancingRule.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;
//}
//}
}