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

Reply via email to