diff --git a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java b/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java index 4d3fca11fc2..6a9a65fa969 100644 --- a/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java +++ b/server/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java @@ -38,7 +38,9 @@ import com.cloud.api.commands.ListExternalLoadBalancersCmd; import com.cloud.api.commands.ListF5LoadBalancerNetworksCmd; import com.cloud.api.commands.ListF5LoadBalancersCmd; import com.cloud.api.response.F5LoadBalancerResponse; +import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; +import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; @@ -80,6 +82,7 @@ import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType; import com.cloud.offering.NetworkOffering; import com.cloud.resource.ServerResource; import com.cloud.server.api.response.ExternalLoadBalancerResponse; +import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Inject; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.NicProfile; @@ -103,6 +106,7 @@ public class F5ExternalLoadBalancerElement extends ExternalLoadBalancerDeviceMan @Inject NetworkExternalLoadBalancerDao _networkLBDao; @Inject NetworkDao _networkDao; @Inject HostDetailsDao _detailsDao; + @Inject ConfigurationDao _configDao; private boolean canHandle(Network config) { if (config.getGuestType() != Network.GuestType.Isolated || config.getTrafficType() != TrafficType.Guest) { @@ -434,7 +438,12 @@ public class F5ExternalLoadBalancerElement extends ExternalLoadBalancerDeviceMan response.setPublicInterface(lbDetails.get("publicInterface")); response.setPrivateInterface(lbDetails.get("privateInterface")); response.setDeviceName(lbDeviceVO.getDeviceName()); - response.setDeviceCapacity(lbDeviceVO.getCapacity()); + if (lbDeviceVO.getCapacity() == 0) { + long defaultLbCapacity = NumbersUtil.parseLong(_configDao.getValue(Config.DefaultExternalLoadBalancerCapacity.key()), 50); + response.setDeviceCapacity(defaultLbCapacity); + } else { + response.setDeviceCapacity(lbDeviceVO.getCapacity()); + } response.setInlineMode(lbDeviceVO.getIsInLineMode()); response.setDedicatedLoadBalancer(lbDeviceVO.getIsDedicatedDevice()); response.setProvider(lbDeviceVO.getProviderName()); diff --git a/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java b/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java index 3eaf2bfd7f5..d779a98624e 100644 --- a/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java +++ b/server/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java @@ -37,7 +37,9 @@ import com.cloud.api.commands.ListExternalFirewallsCmd; import com.cloud.api.commands.ListSrxFirewallNetworksCmd; import com.cloud.api.commands.ListSrxFirewallsCmd; import com.cloud.api.response.SrxFirewallResponse; +import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; +import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenter.NetworkType; @@ -80,6 +82,7 @@ import com.cloud.offering.NetworkOffering; import com.cloud.offerings.dao.NetworkOfferingDao; import com.cloud.resource.ServerResource; import com.cloud.server.api.response.ExternalFirewallResponse; +import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Inject; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.NicProfile; @@ -107,7 +110,8 @@ public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceMan @Inject NetworkDao _networkDao; @Inject NetworkServiceMapDao _ntwkSrvcDao; @Inject HostDetailsDao _hostDetailDao; - + @Inject ConfigurationDao _configDao; + private boolean canHandle(Network network, Service service) { DataCenter zone = _configMgr.getZone(network.getDataCenterId()); if ((zone.getNetworkType() == NetworkType.Advanced && network.getGuestType() != Network.GuestType.Isolated) || (zone.getNetworkType() == NetworkType.Basic && network.getGuestType() != Network.GuestType.Shared)) { @@ -490,7 +494,12 @@ public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceMan response.setId(fwDeviceVO.getId()); response.setPhysicalNetworkId(fwDeviceVO.getPhysicalNetworkId()); response.setDeviceName(fwDeviceVO.getDeviceName()); - response.setDeviceCapacity(fwDeviceVO.getCapacity()); + if (fwDeviceVO.getCapacity() == 0) { + long defaultFwCapacity = NumbersUtil.parseLong(_configDao.getValue(Config.DefaultExternalFirewallCapacity.key()), 50); + response.setDeviceCapacity(defaultFwCapacity); + } else { + response.setDeviceCapacity(fwDeviceVO.getCapacity()); + } response.setProvider(fwDeviceVO.getProviderName()); response.setDeviceState(fwDeviceVO.getDeviceState().name()); response.setIpAddress(fwHost.getPrivateIpAddress()); diff --git a/server/src/com/cloud/network/element/NetscalerElement.java b/server/src/com/cloud/network/element/NetscalerElement.java index 68f890eed25..913dfcd5962 100644 --- a/server/src/com/cloud/network/element/NetscalerElement.java +++ b/server/src/com/cloud/network/element/NetscalerElement.java @@ -47,7 +47,9 @@ import com.cloud.api.commands.DeleteNetscalerLoadBalancerCmd; import com.cloud.api.commands.ListNetscalerLoadBalancerNetworksCmd; import com.cloud.api.commands.ListNetscalerLoadBalancersCmd; import com.cloud.api.response.NetscalerLoadBalancerResponse; +import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; +import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenter.NetworkType; @@ -94,6 +96,7 @@ import com.cloud.network.rules.LbStickinessMethod.StickinessMethodType; import com.cloud.network.rules.StaticNat; import com.cloud.offering.NetworkOffering; import com.cloud.resource.ServerResource; +import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Inject; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -122,6 +125,7 @@ public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl impl @Inject PhysicalNetworkDao _physicalNetworkDao; @Inject NetworkDao _networkDao; @Inject HostDetailsDao _detailsDao; + @Inject ConfigurationDao _configDao; private boolean canHandle(Network config, Service service) { DataCenter zone = _dcDao.findById(config.getDataCenterId()); @@ -462,7 +466,12 @@ public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl impl response.setPublicInterface(lbDetails.get("publicInterface")); response.setPrivateInterface(lbDetails.get("privateInterface")); response.setDeviceName(lbDeviceVO.getDeviceName()); - response.setDeviceCapacity(lbDeviceVO.getCapacity()); + if (lbDeviceVO.getCapacity() == 0) { + long defaultLbCapacity = NumbersUtil.parseLong(_configDao.getValue(Config.DefaultExternalLoadBalancerCapacity.key()), 50); + response.setDeviceCapacity(defaultLbCapacity); + } else { + response.setDeviceCapacity(lbDeviceVO.getCapacity()); + } response.setInlineMode(lbDeviceVO.getIsInLineMode()); response.setDedicatedLoadBalancer(lbDeviceVO.getIsDedicatedDevice()); response.setProvider(lbDeviceVO.getProviderName());