mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
Revert "bug 6876: netscaler integration"
This reverts commit 72a267b69f80cd0accf455c7c3444e2e1f30e123.
This commit is contained in:
parent
42a3f0041a
commit
9225e8d2d4
@ -211,8 +211,6 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
return execute((LoadBalancerConfigCommand) cmd, numRetries);
|
||||
} else if (cmd instanceof ExternalNetworkResourceUsageCommand) {
|
||||
return execute((ExternalNetworkResourceUsageCommand) cmd);
|
||||
} else if (cmd instanceof MaintainCommand) {
|
||||
return execute((MaintainCommand) cmd);
|
||||
} else {
|
||||
return Answer.createUnsupportedCommandAnswer(cmd);
|
||||
}
|
||||
@ -223,7 +221,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
|
||||
protected Answer execute(MaintainCommand cmd) {
|
||||
return new MaintainAnswer(cmd, "Put host in maintaince");
|
||||
return new MaintainAnswer(cmd);
|
||||
}
|
||||
|
||||
private synchronized Answer execute(IpAssocCommand cmd, int numRetries) {
|
||||
@ -261,14 +259,33 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
|
||||
private synchronized Answer execute(LoadBalancerConfigCommand cmd, int numRetries) {
|
||||
try {
|
||||
try {
|
||||
String lbProtocol;
|
||||
String lbMethod;
|
||||
LoadBalancerTO[] loadBalancers = cmd.getLoadBalancers();
|
||||
|
||||
for (LoadBalancerTO loadBalancer : loadBalancers) {
|
||||
|
||||
if (loadBalancer.getProtocol() == null) {
|
||||
lbProtocol = "TCP";
|
||||
} else if (loadBalancer.getProtocol().equals(NetUtils.TCP_PROTO)){
|
||||
lbProtocol = "TCP";
|
||||
} else if (loadBalancer.getProtocol().equals(NetUtils.UDP_PROTO)) {
|
||||
lbProtocol = "UDP";
|
||||
} else {
|
||||
throw new ExecutionException("Got invalid protocol: " + loadBalancer.getProtocol());
|
||||
}
|
||||
|
||||
if (loadBalancer.getAlgorithm().equals("roundrobin")) {
|
||||
lbMethod = "ROUNDROBIN";
|
||||
} else if (loadBalancer.getAlgorithm().equals("leastconn")) {
|
||||
lbMethod = "LEASTCONNECTION";
|
||||
} else {
|
||||
throw new ExecutionException("Got invalid load balancing algorithm: " + loadBalancer.getAlgorithm());
|
||||
}
|
||||
|
||||
String srcIp = loadBalancer.getSrcIp();
|
||||
int srcPort = loadBalancer.getSrcPort();
|
||||
String lbProtocol = loadBalancer.getProtocol();
|
||||
String lbAlgorithm = loadBalancer.getAlgorithm();
|
||||
int srcPort = loadBalancer.getSrcPort();
|
||||
String nsVirtualServerName = generateNSVirtualServerName(srcIp, srcPort, lbProtocol);
|
||||
|
||||
boolean destinationsToAdd = false;
|
||||
@ -282,7 +299,10 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
if (!loadBalancer.isRevoked() && destinationsToAdd) {
|
||||
|
||||
// create a load balancing virtual server
|
||||
addLBVirtualServer(nsVirtualServerName, srcIp, srcPort, lbAlgorithm, lbProtocol);
|
||||
addLBVirtualServer(nsVirtualServerName, srcIp, srcPort, lbMethod, lbProtocol);
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Created load balancing virtual server " + nsVirtualServerName + " on the Netscaler device");
|
||||
}
|
||||
|
||||
for (DestinationTO destination : loadBalancer.getDestinations()) {
|
||||
|
||||
@ -340,13 +360,13 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
// delete the binding
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.delete(nsService, binding);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to delete the binding between the virtual server: " + nsVirtualServerName + " and service:" + nsServiceName + " due to" + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to delete the binding between the virtual server: " + nsVirtualServerName + " and service:" + nsServiceName);
|
||||
}
|
||||
|
||||
// delete the service
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.service.delete(nsService, nsServiceName);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to delete service: " + nsServiceName + " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to delete service: " + nsServiceName);
|
||||
}
|
||||
|
||||
// delete the server if there is no associated services
|
||||
@ -354,7 +374,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
if ((services == null) || (services.length == 0)) {
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.delete(nsService, nsServerName);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to remove server:" + nsServerName + " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to remove server:" + nsServerName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -363,8 +383,8 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// delete the implemented load balancing rule and its destinations
|
||||
lbvserver lbserver = getVirtualServerIfExisits(nsVirtualServerName);
|
||||
// delete the deployed load balancing rule and its destinations
|
||||
lbvserver lbserver = lbvserver.get(nsService, nsVirtualServerName);
|
||||
if (lbserver == null) {
|
||||
throw new ExecutionException("Failed to find virtual server with name:" + nsVirtualServerName);
|
||||
}
|
||||
@ -376,7 +396,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
String serviceName = binding.get_servicename();
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.lb.lbvserver_service_binding.delete(nsService, binding);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to unbind service from the lb virtual server: " + nsVirtualServerName + " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to unbind servic from the lb virtual server: " + nsVirtualServerName);
|
||||
}
|
||||
|
||||
com.citrix.netscaler.nitro.resource.config.basic.service svc = com.citrix.netscaler.nitro.resource.config.basic.service.get(nsService, serviceName);
|
||||
@ -390,7 +410,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
if ((services == null) || (services.length == 0)) {
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.delete(nsService, nsServerName);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to remove server:" + nsServerName + " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to remove server:" + nsServerName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -526,10 +546,9 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
}
|
||||
} catch (nitro_exception e) {
|
||||
throw new ExecutionException("Failed to delete guest vlan network on the Netscaler device");
|
||||
throw new ExecutionException("Failed to delete guest vlan network on the Netscaler device due to " + e.getMessage());
|
||||
} catch (Exception e) {
|
||||
s_logger.error(e);
|
||||
throw new ExecutionException(e.getMessage());
|
||||
throw new ExecutionException("Failed to delete guest vlan network on the Netscaler device due to " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -562,20 +581,6 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
}
|
||||
|
||||
private lbvserver getVirtualServerIfExisits(String lbVServerName ) throws ExecutionException {
|
||||
try {
|
||||
return lbvserver.get(nsService, lbVServerName);
|
||||
} catch (nitro_exception e) {
|
||||
if (e.getErrorCode() == NitroError.NS_RESOURCE_NOT_EXISTS) {
|
||||
return null;
|
||||
} else {
|
||||
throw new ExecutionException(e.getMessage());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new ExecutionException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean nsServiceExists(String serviceName) throws ExecutionException {
|
||||
try {
|
||||
if (com.citrix.netscaler.nitro.resource.config.basic.service.get(nsService, serviceName) != null) {
|
||||
@ -639,7 +644,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
// remove the server
|
||||
apiCallResult = com.citrix.netscaler.nitro.resource.config.basic.server.delete(nsService, server.get_name());
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to remove server:" + server.get_name()+ " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to remove server:" + server.get_name());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -650,45 +655,15 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
|
||||
private void addLBVirtualServer(String virtualServerName, String srcIp, int srcPort, String lbMethod, String lbProtocol) throws ExecutionException {
|
||||
try {
|
||||
|
||||
if (lbProtocol == null) {
|
||||
lbProtocol = "TCP";
|
||||
} else if (lbProtocol.equals(NetUtils.TCP_PROTO)){
|
||||
lbProtocol = "TCP";
|
||||
} else if (lbProtocol.equals(NetUtils.UDP_PROTO)) {
|
||||
lbProtocol = "UDP";
|
||||
} else {
|
||||
throw new ExecutionException("Got invalid protocol: " + lbProtocol);
|
||||
}
|
||||
|
||||
if (lbMethod.equals("roundrobin")) {
|
||||
lbMethod = "ROUNDROBIN";
|
||||
} else if (lbMethod.equals("leastconn")) {
|
||||
lbMethod = "LEASTCONNECTION";
|
||||
} else {
|
||||
throw new ExecutionException("Got invalid load balancing algorithm: " + lbMethod);
|
||||
}
|
||||
|
||||
boolean vserverExisis = false;
|
||||
lbvserver vserver = getVirtualServerIfExisits(virtualServerName);
|
||||
if (vserver == null) {
|
||||
vserver = new lbvserver();
|
||||
} else {
|
||||
vserverExisis = true;
|
||||
}
|
||||
lbvserver vserver = new lbvserver();
|
||||
vserver.set_name(virtualServerName);
|
||||
vserver.set_ipv46(srcIp);
|
||||
vserver.set_port(srcPort);
|
||||
vserver.set_servicetype(lbProtocol);
|
||||
vserver.set_lbmethod(lbMethod);
|
||||
|
||||
if (vserverExisis) {
|
||||
apiCallResult = lbvserver.update(nsService,vserver);
|
||||
} else {
|
||||
apiCallResult = lbvserver.add(nsService,vserver);
|
||||
}
|
||||
apiCallResult = lbvserver.add(nsService,vserver);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to create new virtual server:" + virtualServerName+ " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to create new virtual server:" + virtualServerName);
|
||||
}
|
||||
} catch (nitro_exception e) {
|
||||
if (e.getErrorCode() != NitroError.NS_RESOURCE_EXISTS) {
|
||||
@ -707,14 +682,10 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
}
|
||||
apiCallResult = lbvserver.delete(nsService, vserver);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Failed to remove virtual server:" + virtualServerName + " due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Failed to remove virtual server:" + virtualServerName);
|
||||
}
|
||||
} catch (nitro_exception e) {
|
||||
if (e.getErrorCode() == NitroError.NS_RESOURCE_NOT_EXISTS) {
|
||||
return;
|
||||
} else {
|
||||
throw new ExecutionException("Failed remove virtual server:" + virtualServerName +" due to " + e.getMessage());
|
||||
}
|
||||
throw new ExecutionException("Failed to remove virtual server:" + virtualServerName +" due to " + e.getMessage());
|
||||
} catch (Exception e) {
|
||||
throw new ExecutionException("Failed to remove virtual server:" + virtualServerName +" due to " + e.getMessage());
|
||||
}
|
||||
@ -724,7 +695,7 @@ public class NetscalerMPXResource implements ServerResource {
|
||||
try {
|
||||
apiCallResult = nsconfig.save(nsService);
|
||||
if (apiCallResult.errorcode != 0) {
|
||||
throw new ExecutionException("Error occured while saving configuration changes to Netscaler device due to " + apiCallResult.message);
|
||||
throw new ExecutionException("Error occured while saving configuration changes to Netscaler device due to error:" + apiCallResult.errorcode);
|
||||
}
|
||||
} catch (nitro_exception e) {
|
||||
throw new ExecutionException("Failed to save configuration changes to Netscaler device due to " + e.getMessage());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user