Skip to content

Commit d28da9d

Browse files
author
Jayapal
committed
CLOUDSTACK-7212: Failed creating LB rule on public port 8081 for VR as LB provider
1 parent 79fcbd4 commit d28da9d

4 files changed

Lines changed: 14 additions & 0 deletions

File tree

api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLoadBalancerRuleCmd.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,8 @@ public void create() {
323323
} catch (InsufficientAddressCapacityException e) {
324324
s_logger.warn("Exception: ", e);
325325
throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, e.getMessage());
326+
} catch (InvalidParameterValueException e) {
327+
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.getMessage());
326328
}
327329
}
328330

server/src/com/cloud/network/element/VirtualRouterElement.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import javax.ejb.Local;
2626
import javax.inject.Inject;
2727

28+
import com.cloud.utils.net.NetUtils;
2829
import org.apache.log4j.Logger;
2930

3031
import com.google.gson.Gson;
@@ -303,6 +304,11 @@ private static boolean containsOnlyNumbers(String str, String endChar) {
303304
public static boolean validateHAProxyLBRule(LoadBalancingRule rule) {
304305
String timeEndChar = "dhms";
305306

307+
if (rule.getSourcePortStart() == NetUtils.HAPROXY_STATS_PORT) {
308+
s_logger.debug("Can't create LB on port 8081, haproxy is listening for LB stats on this port");
309+
return false;
310+
}
311+
306312
for (LbStickinessPolicy stickinessPolicy : rule.getStickinessPolicies()) {
307313
List<Pair<String, String>> paramsList = stickinessPolicy.getParams();
308314

server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1637,6 +1637,11 @@ public LoadBalancer createPublicLoadBalancerRule(String xId, String name, String
16371637
if (ex instanceof NetworkRuleConflictException) {
16381638
throw (NetworkRuleConflictException)ex;
16391639
}
1640+
1641+
if (ex instanceof InvalidParameterValueException) {
1642+
throw (InvalidParameterValueException)ex;
1643+
}
1644+
16401645
} finally {
16411646
if (result == null && systemIp != null) {
16421647
s_logger.debug("Releasing system IP address " + systemIp + " as corresponding lb rule failed to create");

utils/src/com/cloud/utils/net/NetUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class NetUtils {
5858
public final static int VPN_PORT = 500;
5959
public final static int VPN_NATT_PORT = 4500;
6060
public final static int VPN_L2TP_PORT = 1701;
61+
public final static int HAPROXY_STATS_PORT = 8081;
6162

6263
public final static String UDP_PROTO = "udp";
6364
public final static String TCP_PROTO = "tcp";

0 commit comments

Comments
 (0)