conflict resolution
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/da145aad Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/da145aad Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/da145aad Branch: refs/heads/master Commit: da145aad2cbf3f629e3db92baf965535d16dd9eb Parents: 0818d34 237c0bb Author: Nirmal Fernando <[email protected]> Authored: Tue Feb 18 10:29:46 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Tue Feb 18 10:29:46 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/partition/PartitionManager.java | 5 +- .../stratos/cartridge/agent/CartridgeAgent.java | 6 +- .../agent/data/publisher/DataPublisher.java | 6 +- .../data/publisher/GenericDataPublisher.java | 29 +++++++ .../publisher/CartridgeAgentEventPublisher.java | 28 +++++++ .../stratos/cli/RestCommandLineService.java | 4 +- .../cli/beans/cartridge/CartridgeInfoBean.java | 9 +++ .../stratos/cli/commands/SubscribeCommand.java | 22 +++++- .../apache/stratos/cli/utils/CliConstants.java | 3 + .../impl/CloudControllerServiceImpl.java | 13 +++- .../InstanceStatusEventMessageDelegator.java | 6 ++ .../controller/topology/TopologyBuilder.java | 44 ++++++++++- .../topology/TopologyEventPublisher.java | 11 ++- .../controllers/cartridgeSubscribeSubmit.jag | 4 +- .../theme1/partials/subscribe_cartridge.hbs | 14 +--- .../SubscriptionSingleTenantBehaviour.java | 19 ++--- .../messaging/domain/topology/MemberStatus.java | 3 +- .../status/InstanceMaintenanceModeEvent.java | 59 +++++++++++++++ .../topology/MemberMaintenanceModeEvent.java | 79 ++++++++++++++++++++ .../topology/MemberReadyToShutdownEvent.java | 18 +++++ .../rest/endpoint/services/ServiceUtils.java | 26 +++++-- .../rest/endpoint/services/StratosAdmin.java | 16 ++-- 22 files changed, 363 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/da145aad/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --cc components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java index e016928,5852795..cf3d978 --- 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 @@@ -246,9 -246,11 +246,11 @@@ public class CloudControllerServiceImp addToPayload(payload, "LB_CLUSTER_ID", memberContext.getLbClusterId()); addToPayload(payload, "NETWORK_PARTITION_ID", memberContext.getNetworkPartitionId()); addToPayload(payload, "PARTITION_ID", partitionId); - - addToPayload(payload, "PERSISTENCE_MAPPING", getPersistencePayload(cartridge).toString()); + + if(ctxt.isVolumeRequired()){ + addToPayload(payload, "PERSISTENCE_MAPPING", getPersistencePayload(cartridge).toString()); + } - + if (log.isDebugEnabled()) { log.debug("Payload: " + payload.toString()); } @@@ -340,12 -337,13 +342,16 @@@ .substring(nodeId.indexOf('/') + 1, nodeId.length()) : nodeId; memberContext.setInstanceId(instanceId); - try { - iaas.attachVolume(instanceId, ctxt.getVolumeId(), - ctxt.getDeviceName()); - } catch (Exception e) { + if (!ctxt.getListOfVolumes().isEmpty()) { + for (Volume volume : ctxt.getListOfVolumes()) { - ++ try { + iaas.attachVolume(instanceId, volume.getId(), volume.getDevice()); ++ } catch (Exception e) { + //continue without throwing an exception, since there is an instance already running + log.error("Attaching Volume to Instance [ " + instanceId + " ] failed!", e); + } + } + } } log.info("Instance is successfully starting up. "+memberContext.toString()); @@@ -1050,36 -1009,23 +1056,37 @@@ } log.info("Unregistration of service cluster: " + clusterId_); - if(ctxt.shouldDeleteVolume()) { + deleteVolumes(ctxt); + TopologyBuilder.handleClusterRemoved(ctxt); + dataHolder.removeClusterContext(clusterId_); + dataHolder.removeMemberContextsOfCluster(clusterId_); + persist(); + } + + private void deleteVolumes(ClusterContext ctxt) { + if(ctxt.isVolumeRequired()) { Cartridge cartridge = dataHolder.getCartridge(ctxt.getCartridgeType()); - if(cartridge != null && cartridge.getIaases() != null) { - for (IaasProvider prov : cartridge.getIaases()) { - if (prov != null) { - Iaas iaas = prov.getIaas(); - iaas.deleteVolume(ctxt.getVolumeId()); + if(cartridge != null && cartridge.getIaases() != null && !ctxt.getListOfVolumes().isEmpty()) { + for (Volume volume : ctxt.getListOfVolumes()) { + if(volume.getId() != null) { + String iaasType = volume.getIaasType(); + Iaas iaas = dataHolder.getIaasProvider(iaasType).getIaas(); + if(iaas != null) { + try { + // delete the volume + iaas.deleteVolume(volume.getId()); + } catch(Exception ignore) { + if(log.isDebugEnabled()) { + log.debug(ignore); + } + } + } } } + } } - TopologyBuilder.handleClusterRemoved(ctxt); - dataHolder.removeClusterContext(clusterId_); - dataHolder.removeMemberContextsOfCluster(clusterId_); - persist(); - } + } }; new Thread(r).start();
