Repository: cloudstack Updated Branches: refs/heads/master 3d6c64d26 -> d28da9d98
CLOUDSTACK-7212: Failed creating LB rule on public port 8081 for VR as LB provider Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d28da9d9 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d28da9d9 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d28da9d9 Branch: refs/heads/master Commit: d28da9d98673d73e3f455199735a8e3e09cb00a4 Parents: 79fcbd4 Author: Jayapal <[email protected]> Authored: Fri Aug 1 12:35:45 2014 +0530 Committer: Jayapal <[email protected]> Committed: Fri Aug 1 15:54:17 2014 +0530 ---------------------------------------------------------------------- .../command/user/loadbalancer/CreateLoadBalancerRuleCmd.java | 2 ++ server/src/com/cloud/network/element/VirtualRouterElement.java | 6 ++++++ .../com/cloud/network/lb/LoadBalancingRulesManagerImpl.java | 5 +++++ utils/src/com/cloud/utils/net/NetUtils.java | 1 + 4 files changed, 14 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d28da9d9/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java index e33e584..132bf88 100644 --- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java @@ -323,6 +323,8 @@ public class CreateLoadBalancerRuleCmd extends BaseAsyncCreateCmd /*implements L } catch (InsufficientAddressCapacityException e) { s_logger.warn("Exception: ", e); throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, e.getMessage()); + } catch (InvalidParameterValueException e) { + throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.getMessage()); } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d28da9d9/server/src/com/cloud/network/element/VirtualRouterElement.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/element/VirtualRouterElement.java b/server/src/com/cloud/network/element/VirtualRouterElement.java index bdebd39..dc6ffc8 100755 --- a/server/src/com/cloud/network/element/VirtualRouterElement.java +++ b/server/src/com/cloud/network/element/VirtualRouterElement.java @@ -25,6 +25,7 @@ import java.util.Set; import javax.ejb.Local; import javax.inject.Inject; +import com.cloud.utils.net.NetUtils; import org.apache.log4j.Logger; import com.google.gson.Gson; @@ -303,6 +304,11 @@ NetworkMigrationResponder, AggregatedCommandExecutor { public static boolean validateHAProxyLBRule(LoadBalancingRule rule) { String timeEndChar = "dhms"; + if (rule.getSourcePortStart() == NetUtils.HAPROXY_STATS_PORT) { + s_logger.debug("Can't create LB on port 8081, haproxy is listening for LB stats on this port"); + return false; + } + for (LbStickinessPolicy stickinessPolicy : rule.getStickinessPolicies()) { List<Pair<String, String>> paramsList = stickinessPolicy.getParams(); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d28da9d9/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index 9238f50..427e3ec 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -1637,6 +1637,11 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements if (ex instanceof NetworkRuleConflictException) { throw (NetworkRuleConflictException)ex; } + + if (ex instanceof InvalidParameterValueException) { + throw (InvalidParameterValueException)ex; + } + } finally { if (result == null && systemIp != null) { s_logger.debug("Releasing system IP address " + systemIp + " as corresponding lb rule failed to create"); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d28da9d9/utils/src/com/cloud/utils/net/NetUtils.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/net/NetUtils.java b/utils/src/com/cloud/utils/net/NetUtils.java index 1b2c0e8..874bf79 100755 --- a/utils/src/com/cloud/utils/net/NetUtils.java +++ b/utils/src/com/cloud/utils/net/NetUtils.java @@ -58,6 +58,7 @@ public class NetUtils { public final static int VPN_PORT = 500; public final static int VPN_NATT_PORT = 4500; public final static int VPN_L2TP_PORT = 1701; + public final static int HAPROXY_STATS_PORT = 8081; public final static String UDP_PROTO = "udp"; public final static String TCP_PROTO = "tcp";
