// 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.agent.api.to;
import java.util.List;
import com.cloud.utils.Pair;
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
import com.cloud.network.lb.LoadBalancingRule.LbStickinessPolicy;
public class LoadBalancerTO {
String srcIp;
int srcPort;
String protocol;
String algorithm;
boolean revoked;
boolean alreadyAdded;
DestinationTO[] destinations;
private StickinessPolicyTO[] stickinessPolicies;
final static int MAX_STICKINESS_POLICIES = 1;
public LoadBalancerTO (String srcIp, int srcPort, String protocol, String algorithm, boolean revoked, boolean alreadyAdded, List<LbDestination> destinations) {
this.srcIp = srcIp;
this.srcPort = srcPort;
this.protocol = protocol;
this.algorithm = algorithm;
this.revoked = revoked;
this.alreadyAdded = alreadyAdded;
this.destinations = new DestinationTO[destinations.size()];
this.stickinessPolicies = null;
int i = 0;
for (LbDestination destination : destinations) {
this.destinations[i++] = new DestinationTO(destination.getIpAddress(), destination.getDestinationPortStart(), destination.isRevoked(), false);
}
}
public LoadBalancerTO (String srcIp, int srcPort, String protocol, String algorithm, boolean revoked, boolean alreadyAdded, List<LbDestination> arg_destinations, List<LbStickinessPolicy> stickinessPolicies) {
this(srcIp, srcPort, protocol, algorithm, revoked, alreadyAdded, arg_destinations);
this.stickinessPolicies = null;
if (stickinessPolicies != null && stickinessPolicies.size()>0) {
this.stickinessPolicies = new StickinessPolicyTO[MAX_STICKINESS_POLICIES];
int index = 0;
for (LbStickinessPolicy stickinesspolicy : stickinessPolicies) {
if (!stickinesspolicy.isRevoked()) {
this.stickinessPolicies[index] = new StickinessPolicyTO(stickinesspolicy.getMethodName(), stickinesspolicy.getParams());
index++;
if (index == MAX_STICKINESS_POLICIES) break;
}
}
if (index == 0) this.stickinessPolicies = null;
}
}
protected LoadBalancerTO() {
}
public String getSrcIp() {
return srcIp;
}
public int getSrcPort() {
return srcPort;
}
public String getAlgorithm() {
return algorithm;
}
public String getProtocol() {
return protocol;
}
public boolean isRevoked() {
return revoked;
}
public boolean isAlreadyAdded() {
return alreadyAdded;
}
public StickinessPolicyTO[] getStickinessPolicies() {
return stickinessPolicies;
}
public DestinationTO[] getDestinations() {
return destinations;
}
public static class StickinessPolicyTO {
private String _methodName;
private List<Pair<String, String>> _paramsList;
public String getMethodName() {
return _methodName;
}
public List<Pair<String, String>> getParams() {
return _paramsList;
}
public StickinessPolicyTO(String methodName, List<Pair<String, String>> paramsList) {
this._methodName = methodName;
this._paramsList = paramsList;
}
}
public static class DestinationTO {
String destIp;
int destPort;
boolean revoked;
boolean alreadyAdded;
public DestinationTO(String destIp, int destPort, boolean revoked, boolean alreadyAdded) {
this.destIp = destIp;
this.destPort = destPort;
this.revoked = revoked;
this.alreadyAdded = alreadyAdded;
}
protected DestinationTO() {
}
public String getDestIp() {
return destIp;
}
public int getDestPort() {
return destPort;
}
public boolean isRevoked() {
return revoked;
}
public boolean isAlreadyAdded() {
return alreadyAdded;
}
}
}