Repository: incubator-stratos Updated Branches: refs/heads/master ab383d81b -> 535a64556
STRATOS-646: Floating IP allocation fails if we don't pre-allocate floating IPs Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/535a6455 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/535a6455 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/535a6455 Branch: refs/heads/master Commit: 535a645561f75d98d6d79acd2506a9651d8b64f9 Parents: ab383d8 Author: Jeffrey Nguyen <[email protected]> Authored: Tue May 20 16:42:26 2014 -0700 Committer: Jeffrey Nguyen <[email protected]> Committed: Tue May 20 16:42:26 2014 -0700 ---------------------------------------------------------------------- .../stratos/cloud/controller/iaases/OpenstackNovaIaas.java | 8 +++++++- .../cloud/controller/util/CloudControllerConstants.java | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/535a6455/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java index cc6f376..7dd1e99 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java @@ -256,7 +256,13 @@ public class OpenstackNovaIaas extends Iaas { // if no unassigned IP is available, we'll try to allocate an IP. if (ip == null || ip.isEmpty()) { - FloatingIP allocatedFloatingIP = floatingIp.create(); + String defaultFloatingIpPool = iaasInfo.getProperty(CloudControllerConstants.DEFAULT_FLOATING_IP_POOL); + FloatingIP allocatedFloatingIP; + if ((defaultFloatingIpPool == null) || "".equals(defaultFloatingIpPool)) { + allocatedFloatingIP = floatingIp.create(); + } else { + allocatedFloatingIP = floatingIp.allocateFromPool(defaultFloatingIpPool); + } if (allocatedFloatingIP == null) { String msg = "Failed to allocate an IP address."; log.error(msg); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/535a6455/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java index 3b81dc8..b96ea28 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java @@ -142,6 +142,7 @@ public final class CloudControllerConstants { public static final String INSTANCE_TOPIC = "instance-status"; // pre define a floating ip public static final String FLOATING_IP_PROPERTY = "floatingIp"; + public static final String DEFAULT_FLOATING_IP_POOL = "defaultFloatingIpPool"; /**
