Updated Branches: refs/heads/master 2a58a7698 -> 9c0f9aceb
CLOUDSTACK-2285:[GSLB] addNetscalerLoadBalancer with GSLB functionality shouldn't be exposed in basic zone reverting the original fix for this bug. When you add network service provider instance into a physical network in a basic zone, its not necessary that a network has been provisioned into zone. So its no straight-forward to know if the basic zone network has EIP/ELB services enabled. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f84a2732 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f84a2732 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f84a2732 Branch: refs/heads/master Commit: f84a27324d2f0c586d825a20f02ebcb149078c84 Parents: 2a58a76 Author: Murali Reddy <muralimmre...@gmail.com> Authored: Fri May 31 10:25:12 2013 +0530 Committer: Murali Reddy <muralimmre...@gmail.com> Committed: Fri May 31 19:08:38 2013 +0530 ---------------------------------------------------------------------- .../ExternalLoadBalancerDeviceManagerImpl.java | 31 ++++---------- 1 files changed, 9 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f84a2732/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java index 04f9682..4b110e9 100644 --- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java +++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java @@ -138,8 +138,6 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase @Inject NetworkManager _networkMgr; @Inject - NetworkDao _networksDao = null; - @Inject InlineLoadBalancerNicMapDao _inlineLoadBalancerNicMapDao; @Inject NicDao _nicDao; @@ -210,34 +208,23 @@ public abstract class ExternalLoadBalancerDeviceManagerImpl extends AdapterBase } zoneId = pNetwork.getDataCenterId(); - DataCenter dc = _dcDao.findById(zoneId); - if (dc.getNetworkType() == DataCenter.NetworkType.Basic) { - List<com.cloud.network.dao.NetworkVO> guestNetworks = _networksDao.listByZoneAndTrafficType(dc.getId(), TrafficType.Guest); - com.cloud.network.dao.NetworkVO basicZoneNetwork = guestNetworks.get(0); - NetworkOfferingVO ntwkOff = _networkOfferingDao.findById(basicZoneNetwork.getNetworkOfferingId()); - if (!ntwkOff.getElasticIp() && !ntwkOff.getElasticLb()) { - throw new InvalidParameterValueException("Could not add external load balancer device in to basic zone " - + " with no Elastic IP and Elastic LB services."); - } - } - PhysicalNetworkServiceProviderVO ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), ntwkDevice.getNetworkServiceProvder()); + ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), ntwkDevice.getNetworkServiceProvder()); + if (ntwkSvcProvider == null) { + throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() + + " is not enabled in the physical network: " + physicalNetworkId + "to add this device"); + } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) { + throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() + + " is in shutdown state in the physical network: " + physicalNetworkId + "to add this device"); + } + if (gslbProvider) { ExternalLoadBalancerDeviceVO zoneGslbProvider = _externalLoadBalancerDeviceDao.findGslbServiceProvider( physicalNetworkId, ntwkDevice.getNetworkServiceProvder()); if (zoneGslbProvider != null) { throw new CloudRuntimeException("There is a GSLB service provider configured in the zone alredy."); } - } else { - ntwkSvcProvider = _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), ntwkDevice.getNetworkServiceProvder()); - if (ntwkSvcProvider == null) { - throw new CloudRuntimeException("Network Service Provider: " + ntwkDevice.getNetworkServiceProvder() + - " is not enabled in the physical network: " + physicalNetworkId + "to add this device"); - } else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) { - throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() + - " is in shutdown state in the physical network: " + physicalNetworkId + "to add this device"); - } } URI uri;