You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/04/30 12:09:26 UTC
git commit: maing remove-on-termination not mandatory
Repository: incubator-stratos
Updated Branches:
refs/heads/master 0b8613377 -> a2f393338
maing remove-on-termination not mandatory
Signed-off-by: Udara Liyanage <ud...@wso2.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/a2f39333
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/a2f39333
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/a2f39333
Branch: refs/heads/master
Commit: a2f393338448e229e64dc5a61cad5cce1ded1ad3
Parents: 0b86133
Author: Udara Liyanage <ud...@wso2.com>
Authored: Wed Apr 30 17:19:24 2014 +0000
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Wed Apr 30 19:33:47 2014 +0000
----------------------------------------------------------------------
.../impl/CloudControllerServiceImpl.java | 54 ++++++++++++--------
.../controller/util/CloudControllerUtil.java | 4 +-
2 files changed, 36 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a2f39333/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index b8386d5..4eb0ab3 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -20,7 +20,7 @@ package org.apache.stratos.cloud.controller.impl;
import com.google.common.collect.ImmutableSet;
import com.google.common.net.InetAddresses;
-
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.concurrent.PartitionValidatorCallable;
@@ -222,7 +222,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
@Override
public MemberContext startInstance(MemberContext memberContext) throws
UnregisteredCartridgeException, InvalidIaasProviderException {
-
+
if(log.isDebugEnabled()) {
log.debug("CloudControllerServiceImpl:startInstance");
}
@@ -347,11 +347,11 @@ public class CloudControllerServiceImpl implements CloudControllerService {
if(ctxt.isVolumeRequired()) {
if (ctxt.getVolumes() != null) {
for (Volume volume : ctxt.getVolumes()) {
-
+
if (volume.getId() == null) {
// create a new volume
createVolumeAndSetInClusterContext(volume, iaasProvider);
- }
+ }
}
}
}
@@ -381,7 +381,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
if(log.isDebugEnabled()) {
log.debug("Node id was set. "+memberContext.toString());
}
-
+
// attach volumes
if (ctxt.isVolumeRequired()) {
// remove region prefix
@@ -397,7 +397,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
} catch (Exception e) {
// continue without throwing an exception, since
// there is an instance already running
- log.error("Attaching Volume to Instance [ "
+ log.error("Attaching Volume " + volume.getId() + " to Instance [ "
+ instanceId + " ] failed!", e);
}
}
@@ -781,7 +781,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
ClusterContext clusterCtxt = dataHolder.getClusterContext(clusterId);
if (clusterCtxt.getVolumes() != null) {
for (Volume volume : clusterCtxt.getVolumes()) {
-
try {
String volumeId = volume.getId();
if (volumeId == null) {
@@ -885,18 +884,26 @@ public class CloudControllerServiceImpl implements CloudControllerService {
Persistence persistenceData = cartridge.getPersistence();
if(persistenceData != null) {
- Volume[] volumes = persistenceData.getVolumes();
+ Volume[] cartridge_volumes = persistenceData.getVolumes();
property = props.getProperty(Constants.SHOULD_DELETE_VOLUME);
- property = props.getProperty(Constants.VOLUME_SIZE);
-
- for (Volume volume : volumes) {
- int volumeSize = property != null ? Integer.parseInt(property) : volume.getSize();
- boolean shouldDeleteVolume = property != null ? Boolean.parseBoolean(property) : volume.isRemoveOntermination();
- volume.setSize(volumeSize);
- volume.setRemoveOntermination(shouldDeleteVolume);
+ String property_volume_zize = props.getProperty(Constants.VOLUME_SIZE);
+
+ List<Volume> cluster_volume_list = new LinkedList<Volume>();
+
+ for (Volume volume : cartridge_volumes) {
+ int volumeSize = StringUtils.isNotEmpty(property_volume_zize) ? Integer.parseInt(property_volume_zize) : volume.getSize();
+ boolean shouldDeleteVolume = StringUtils.isNotEmpty(property) ? Boolean.parseBoolean(property) : volume.isRemoveOntermination();
+
+ Volume volume_cluster = new Volume();
+ volume_cluster.setSize(volumeSize);
+ volume_cluster.setRemoveOntermination(shouldDeleteVolume);
+ volume_cluster.setDevice(volume.getDevice());
+ volume_cluster.setIaasType(volume.getIaasType());
+ volume_cluster.setMappingPath(volume.getMappingPath());
+ cluster_volume_list.add(volume_cluster);
}
- ctxt.setVolumes(volumes);
+ ctxt.setVolumes(cluster_volume_list.toArray(new Volume[cluster_volume_list.size()]));
} else {
// if we cannot find necessary data, we would not consider
// this as a volume required instance.
@@ -1024,14 +1031,19 @@ public class CloudControllerServiceImpl implements CloudControllerService {
for (Volume volume : ctxt.getVolumes()) {
if(volume.getId() != null) {
String iaasType = volume.getIaasType();
- Iaas iaas = dataHolder.getIaasProvider(iaasType).getIaas();
+ //Iaas iaas = dataHolder.getIaasProvider(iaasType).getIaas();
+ Iaas iaas = cartridge.getIaasProvider(iaasType).getIaas();
if(iaas != null) {
try {
- // delete the volume
- iaas.deleteVolume(volume.getId());
+ // delete the volumes if remove on unsubscription is true.
+ if(volume.isRemoveOntermination())
+ {
+ iaas.deleteVolume(volume.getId());
+ volume.setId(null);
+ }
} catch(Exception ignore) {
- if(log.isDebugEnabled()) {
- log.debug(ignore);
+ if(log.isErrorEnabled()) {
+ log.error("Error while deleting volume [id] "+ volume.getId(), ignore);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/a2f39333/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
index a213adf..e770fd1 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -296,7 +296,9 @@ public class CloudControllerUtil {
if (properties != null && properties.getProperties() != null) {
for (org.apache.stratos.cloud.controller.pojo.Property property : properties.getProperties()) {
- javaProps.put(property.getName(), property.getValue());
+ if(property.getValue() != null){
+ javaProps.put(property.getName(), property.getValue());
+ }
}
}