From 422c4ce513c17d2380f36b19fe5afd3e5978c1f0 Mon Sep 17 00:00:00 2001 From: Murali reddy Date: Sat, 23 Jun 2012 14:15:33 -0700 Subject: [PATCH] moving out F5 code from server into plugins/network-elements/f5/ --- build/build-cloud.xml | 10 +- client/tomcatconf/components.xml.in | 1 + plugins/network-elements/f5/.classpath | 11 ++ plugins/network-elements/f5/.project | 17 +++ plugins/network-elements/f5/build.xml | 129 ++++++++++++++++++ .../api}/AddExternalLoadBalancerCmd.java | 0 .../api}/DeleteExternalLoadBalancerCmd.java | 0 .../api}/ListExternalLoadBalancersCmd.java | 0 .../api/commands/AddF5LoadBalancerCmd.java | 0 .../commands/ConfigureF5LoadBalancerCmd.java | 0 .../api/commands/DeleteF5LoadBalancerCmd.java | 0 .../ListF5LoadBalancerNetworksCmd.java | 0 .../api/commands/ListF5LoadBalancersCmd.java | 0 .../api/response/F5LoadBalancerResponse.java | 0 .../F5ExternalLoadBalancerElement.java | 0 .../F5ExternalLoadBalancerElementService.java | 0 .../network/resource/F5BigIpResource.java | 0 plugins/network-elements/netscaler/.classpath | 3 +- .../DefaultComponentLibrary.java | 3 - .../ExternalNetworkDeviceManagerImpl.java | 32 +---- 20 files changed, 169 insertions(+), 37 deletions(-) create mode 100644 plugins/network-elements/f5/.classpath create mode 100644 plugins/network-elements/f5/.project create mode 100755 plugins/network-elements/f5/build.xml rename {server/src/com/cloud/api/commands => plugins/network-elements/f5/src/com/cloud/api}/AddExternalLoadBalancerCmd.java (100%) rename {server/src/com/cloud/api/commands => plugins/network-elements/f5/src/com/cloud/api}/DeleteExternalLoadBalancerCmd.java (100%) rename {server/src/com/cloud/api/commands => plugins/network-elements/f5/src/com/cloud/api}/ListExternalLoadBalancersCmd.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/api/commands/ListF5LoadBalancerNetworksCmd.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/api/commands/ListF5LoadBalancersCmd.java (100%) rename {api => plugins/network-elements/f5}/src/com/cloud/api/response/F5LoadBalancerResponse.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java (100%) rename {server => plugins/network-elements/f5}/src/com/cloud/network/element/F5ExternalLoadBalancerElementService.java (100%) rename {core => plugins/network-elements/f5}/src/com/cloud/network/resource/F5BigIpResource.java (100%) diff --git a/build/build-cloud.xml b/build/build-cloud.xml index 38f228807e2..5eabf8c3a5d 100755 --- a/build/build-cloud.xml +++ b/build/build-cloud.xml @@ -479,7 +479,7 @@ - + @@ -586,7 +586,7 @@ - + @@ -610,4 +610,10 @@ + + + + + + diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in index 861a622c58c..884e9545534 100755 --- a/client/tomcatconf/components.xml.in +++ b/client/tomcatconf/components.xml.in @@ -159,6 +159,7 @@ + diff --git a/plugins/network-elements/f5/.classpath b/plugins/network-elements/f5/.classpath new file mode 100644 index 00000000000..a3f5d12a4c8 --- /dev/null +++ b/plugins/network-elements/f5/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/plugins/network-elements/f5/.project b/plugins/network-elements/f5/.project new file mode 100644 index 00000000000..d9cfdd7ade4 --- /dev/null +++ b/plugins/network-elements/f5/.project @@ -0,0 +1,17 @@ + + + f5 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/plugins/network-elements/f5/build.xml b/plugins/network-elements/f5/build.xml new file mode 100755 index 00000000000..47fcb1c6181 --- /dev/null +++ b/plugins/network-elements/f5/build.xml @@ -0,0 +1,129 @@ + + + + + + + Cloud Stack ant build file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/src/com/cloud/api/commands/AddExternalLoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/AddExternalLoadBalancerCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/AddExternalLoadBalancerCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/AddExternalLoadBalancerCmd.java diff --git a/server/src/com/cloud/api/commands/DeleteExternalLoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/DeleteExternalLoadBalancerCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/DeleteExternalLoadBalancerCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/DeleteExternalLoadBalancerCmd.java diff --git a/server/src/com/cloud/api/commands/ListExternalLoadBalancersCmd.java b/plugins/network-elements/f5/src/com/cloud/api/ListExternalLoadBalancersCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/ListExternalLoadBalancersCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/ListExternalLoadBalancersCmd.java diff --git a/server/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/commands/AddF5LoadBalancerCmd.java diff --git a/server/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/commands/ConfigureF5LoadBalancerCmd.java diff --git a/server/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/commands/DeleteF5LoadBalancerCmd.java diff --git a/server/src/com/cloud/api/commands/ListF5LoadBalancerNetworksCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/ListF5LoadBalancerNetworksCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/ListF5LoadBalancerNetworksCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/commands/ListF5LoadBalancerNetworksCmd.java diff --git a/server/src/com/cloud/api/commands/ListF5LoadBalancersCmd.java b/plugins/network-elements/f5/src/com/cloud/api/commands/ListF5LoadBalancersCmd.java similarity index 100% rename from server/src/com/cloud/api/commands/ListF5LoadBalancersCmd.java rename to plugins/network-elements/f5/src/com/cloud/api/commands/ListF5LoadBalancersCmd.java diff --git a/api/src/com/cloud/api/response/F5LoadBalancerResponse.java b/plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java similarity index 100% rename from api/src/com/cloud/api/response/F5LoadBalancerResponse.java rename to plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java diff --git a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java similarity index 100% rename from server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java rename to plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java diff --git a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElementService.java b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElementService.java similarity index 100% rename from server/src/com/cloud/network/element/F5ExternalLoadBalancerElementService.java rename to plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElementService.java diff --git a/core/src/com/cloud/network/resource/F5BigIpResource.java b/plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java similarity index 100% rename from core/src/com/cloud/network/resource/F5BigIpResource.java rename to plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java diff --git a/plugins/network-elements/netscaler/.classpath b/plugins/network-elements/netscaler/.classpath index 1c573a61400..a3f5d12a4c8 100644 --- a/plugins/network-elements/netscaler/.classpath +++ b/plugins/network-elements/netscaler/.classpath @@ -1,10 +1,11 @@ - + + diff --git a/server/src/com/cloud/configuration/DefaultComponentLibrary.java b/server/src/com/cloud/configuration/DefaultComponentLibrary.java index 2da961246b7..97cb6aa1410 100755 --- a/server/src/com/cloud/configuration/DefaultComponentLibrary.java +++ b/server/src/com/cloud/configuration/DefaultComponentLibrary.java @@ -96,8 +96,6 @@ import com.cloud.network.dao.VirtualRouterProviderDaoImpl; import com.cloud.network.dao.VpnUserDaoImpl; import com.cloud.network.element.CiscoNexusVSMElement; import com.cloud.network.element.CiscoNexusVSMElementService; -import com.cloud.network.element.F5ExternalLoadBalancerElement; -import com.cloud.network.element.F5ExternalLoadBalancerElementService; import com.cloud.network.element.JuniperSRXExternalFirewallElement; import com.cloud.network.element.JuniperSRXFirewallElementService; import com.cloud.network.element.VirtualRouterElement; @@ -416,7 +414,6 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com protected void populateServices() { addService("VirtualRouterElementService", VirtualRouterElementService.class, VirtualRouterElement.class); - addService("F5LoadBalancerElementService", F5ExternalLoadBalancerElementService.class, F5ExternalLoadBalancerElement.class); addService("JuniperSRXFirewallElementService", JuniperSRXFirewallElementService.class, JuniperSRXExternalFirewallElement.class); addService("CiscoNexusVSMElementService", CiscoNexusVSMElementService.class, CiscoNexusVSMElement.class); } diff --git a/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java index f0f403ebc2f..640b216d9ad 100755 --- a/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java +++ b/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java @@ -54,9 +54,7 @@ import com.cloud.network.dao.NetworkExternalLoadBalancerDao; import com.cloud.network.dao.PhysicalNetworkDao; import com.cloud.network.dao.PhysicalNetworkServiceProviderDao; import com.cloud.network.dao.VpnUserDao; -import com.cloud.network.element.F5ExternalLoadBalancerElementService; import com.cloud.network.element.JuniperSRXFirewallElementService; -import com.cloud.network.resource.F5BigIpResource; import com.cloud.network.resource.JuniperSrxResource; import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.offerings.dao.NetworkOfferingDao; @@ -104,7 +102,6 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa @Inject NetworkExternalLoadBalancerDao _networkExternalLBDao; @Inject NetworkExternalFirewallDao _networkExternalFirewallDao; - @PlugService F5ExternalLoadBalancerElementService _f5LbElementService; @PlugService JuniperSRXFirewallElementService _srxElementService; ScheduledExecutorService _executor; @@ -184,19 +181,6 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa } else { throw new CloudRuntimeException("Failed to add SRX firewall device due to internal error"); } - } else if (cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.F5BigIpLoadBalancer.getName())) { - Long physicalNetworkId = (params.get(ApiConstants.PHYSICAL_NETWORK_ID)==null)?Long.parseLong((String)params.get(ApiConstants.PHYSICAL_NETWORK_ID)):null; - String url = (String) params.get(ApiConstants.URL); - String username = (String) params.get(ApiConstants.USERNAME); - String password = (String) params.get(ApiConstants.PASSWORD); - ExternalLoadBalancerDeviceManager lbDeviceMgr = (ExternalLoadBalancerDeviceManager) _f5LbElementService; - ExternalLoadBalancerDeviceVO lbDeviceVO = lbDeviceMgr.addExternalLoadBalancer(physicalNetworkId, url, username, password, - cmd.getDeviceType(), (ServerResource) new F5BigIpResource()); - if (lbDeviceVO != null) { - return _hostDao.findById(lbDeviceVO.getHostId()); - } else { - throw new CloudRuntimeException("Failed to add Netscaler load balancer device due to internal error"); - } } else { throw new CloudRuntimeException("Unsupported network device type:" + cmd.getDeviceType()); } @@ -229,9 +213,6 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa } else { throw new CloudRuntimeException("Unsupported PXE server type:" + pxeType); } - } else if (host.getType() == Host.Type.ExternalLoadBalancer) { - ExternalLoadBalancerDeviceManager lbDeviceMgr = (ExternalLoadBalancerDeviceManager) _f5LbElementService; - response = _f5LbElementService.createExternalLoadBalancerResponse(host); } else if (host.getType() == Host.Type.ExternalFirewall) { response = _srxElementService.createExternalFirewallResponse(host); } else { @@ -278,14 +259,6 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID)); Long podId = Long.parseLong((String)params.get(ApiConstants.POD_ID)); res = listNetworkDevice(zoneId, null, podId, Host.Type.PxeServer); - } else if (cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerMPXLoadBalancer.getName()) || - cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerVPXLoadBalancer.getName()) || - cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.NetscalerSDXLoadBalancer.getName()) || - cmd.getDeviceType().equalsIgnoreCase(NetworkDevice.F5BigIpLoadBalancer.getName())) { - Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID)); - Long physicalNetworkId = (params.get(ApiConstants.PHYSICAL_NETWORK_ID)==null)?Long.parseLong((String)params.get(ApiConstants.PHYSICAL_NETWORK_ID)):null; - ExternalLoadBalancerDeviceManager lbDeviceMgr = (ExternalLoadBalancerDeviceManager) _f5LbElementService; - return lbDeviceMgr.listExternalLoadBalancers(physicalNetworkId, cmd.getDeviceType()); } else if (NetworkDevice.JuniperSRXFirewall.getName().equalsIgnoreCase(cmd.getDeviceType())) { Long zoneId = Long.parseLong((String) params.get(ApiConstants.ZONE_ID)); Long physicalNetworkId = (params.get(ApiConstants.PHYSICAL_NETWORK_ID)==null)?Long.parseLong((String)params.get(ApiConstants.PHYSICAL_NETWORK_ID)):null; @@ -315,10 +288,7 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa @Override public boolean deleteNetworkDevice(DeleteNetworkDeviceCmd cmd) { HostVO device = _hostDao.findById(cmd.getId()); - if (device.getType() == Type.ExternalLoadBalancer) { - ExternalLoadBalancerDeviceManager lbDeviceMgr = (ExternalLoadBalancerDeviceManager) _f5LbElementService; - return lbDeviceMgr.deleteExternalLoadBalancer(cmd.getId()); - } else if (device.getType() == Type.ExternalLoadBalancer) { + if (device.getType() == Type.ExternalFirewall) { ExternalFirewallDeviceManager fwDeviceManager = (ExternalFirewallDeviceManager) _srxElementService; return fwDeviceManager.deleteExternalFirewall(cmd.getId()); }