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