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";

Reply via email to