You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/04/01 12:20:31 UTC

[2/4] git commit: in Openstack you need to make a blocking call to IaaS in order to retrieve private IP addresses

in Openstack you need to make a blocking call to IaaS in order to retrieve private IP addresses


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/8102ac90
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/8102ac90
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/8102ac90

Branch: refs/heads/master
Commit: 8102ac90f16e9e94f37b07f5a1ddbe5a87a8d0cd
Parents: 9c4e89c
Author: Nirmal Fernando <ni...@apache.org>
Authored: Tue Apr 1 15:49:39 2014 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Tue Apr 1 15:49:39 2014 +0530

----------------------------------------------------------------------
 .../controller/iaases/OpenstackNovaIaas.java    | 24 ++++++++------------
 .../cloud/controller/interfaces/Iaas.java       | 10 ++++----
 .../util/CloudControllerConstants.java          |  1 +
 3 files changed, 14 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8102ac90/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 6a5d221..dccbb2e 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
@@ -37,16 +37,12 @@ import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.cloud.controller.validate.OpenstackNovaPartitionValidator;
 import org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
-import org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions;
 import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.NodeMetadataBuilder;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
 import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
 import org.jclouds.openstack.nova.v2_0.NovaApi;
 import org.jclouds.openstack.nova.v2_0.NovaApiMetadata;
 import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;
@@ -72,6 +68,7 @@ import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
+@SuppressWarnings("deprecation")
 public class OpenstackNovaIaas extends Iaas {
 
 	private static final Log log = LogFactory.getLog(OpenstackNovaIaas.class);
@@ -124,12 +121,13 @@ public class OpenstackNovaIaas extends Iaas {
 
 		Template template = templateBuilder.build();
 
-		// if you wish to auto assign IPs, instance spawning call should be
-		// blocking, but if you
-		// wish to assign IPs manually, it can be non-blocking.
-		// is auto-assign-ip mode or manual-assign-ip mode?
-		boolean blockUntilRunning = Boolean.parseBoolean(iaasInfo
-				.getProperty(CloudControllerConstants.AUTO_ASSIGN_IP));
+		// In Openstack the call to IaaS should be blocking, in order to retrieve 
+		// IP addresses.
+		boolean blockUntilRunning = true;
+		if(iaasInfo.getProperty(CloudControllerConstants.BLOCK_UNTIL_RUNNING) != null) {
+			blockUntilRunning = Boolean.parseBoolean(iaasInfo.getProperty(
+					CloudControllerConstants.BLOCK_UNTIL_RUNNING));
+		}
 		template.getOptions().as(TemplateOptions.class)
 				.blockUntilRunning(blockUntilRunning);
 
@@ -265,7 +263,6 @@ public class OpenstackNovaIaas extends Iaas {
 
 		// wait till the fixed IP address gets assigned - this is needed before
 		// we associate a public IP
-
 		while (node.getPrivateAddresses() == null) {
 			CloudControllerUtil.sleep(1000);
 		}
@@ -289,9 +286,6 @@ public class OpenstackNovaIaas extends Iaas {
 			retries++;
 		}
 
-		NodeMetadataBuilder.fromNodeMetadata(node)
-				.publicAddresses(ImmutableSet.of(ip)).build();
-
 		log.info("Successfully associated an IP address " + ip
 				+ " for node with id: " + node.getId());
 
@@ -336,7 +330,7 @@ public class OpenstackNovaIaas extends Iaas {
 		boolean isAvailable = false;
 		for (FloatingIP fip : unassignedIps) {
 			if(log.isDebugEnabled()) {
-				log.debug("penstackNovaIaas:associatePredefinedAddress:iterating over available floatingip:" + fip);
+				log.debug("OpenstackNovaIaas:associatePredefinedAddress:iterating over available floatingip:" + fip);
 			}
 			if (ip.equals(fip.getIp())) {
 				if(log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8102ac90/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java
index 56be59c..492171d 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/interfaces/Iaas.java
@@ -77,8 +77,7 @@ public abstract class Iaas {
      * @ip preallocated floating Ip
      * @return associated public IP.
      */
-
-    abstract public String associatePredefinedAddress(NodeMetadata node, String ip);
+    public abstract String associatePredefinedAddress(NodeMetadata node, String ip);
     
     /**
      * This will deallocate/release the given IP address back to pool.
@@ -166,10 +165,9 @@ public abstract class Iaas {
      */
     public abstract void deleteVolume(String volumeId);
 
-    /*
-    This returns the device of the volume specified by the user. This is depends on IAAS.
-    For an instance /dev/sdf maps to /dev/xvdf in EC2
+    /**
+     * This returns the device of the volume specified by the user. This is depends on IAAS. 
+     * For an instance /dev/sdf maps to /dev/xvdf in EC2.
      */
-
     public abstract String getIaasDevice(String device);
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8102ac90/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 c7c77a2..eaa4d60 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
@@ -249,6 +249,7 @@ public final class CloudControllerConstants {
     public static final String SUBNET_ID = "subnetId";
     public static final String TAGS = "tags";
     public static final String AUTO_ASSIGN_IP = "autoAssignIp";
+    public static final String BLOCK_UNTIL_RUNNING = "blockUntilRunning";
     public static final String INSTANCE_TYPE = "instanceType";
     public static final String ASSOCIATE_PUBLIC_IP_ADDRESS = "associatePublicIpAddress";
     public static final String LB_CLUSTER_ID_COL = "lbclusterId";