You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/04/10 11:21:35 UTC

stratos git commit: fixing STRATOS-1332

Repository: stratos
Updated Branches:
  refs/heads/master 91227eb06 -> fe52dfae0


fixing STRATOS-1332


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

Branch: refs/heads/master
Commit: fe52dfae024d6926cf46c1d19ff71c441c188b5c
Parents: 91227eb
Author: reka <rt...@gmail.com>
Authored: Fri Apr 10 14:51:10 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Fri Apr 10 14:51:10 2015 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        | 53 +++++++++++++-------
 1 file changed, 34 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fe52dfae/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index c7b9f91..2f5c8c9 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -136,7 +136,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         if (cloudControllerContext.getCartridge(cartridgeType) != null) {
             Cartridge cartridgeToBeRemoved = cloudControllerContext.getCartridge(cartridgeType);
             try {
-                removeCartridge(cartridgeToBeRemoved.getType());
+                removeCartridgeFromCC(cartridgeToBeRemoved.getType());
             } catch (InvalidCartridgeTypeException ignore) {
             }
             copyIaasProviders(cartridge, cartridgeToBeRemoved);
@@ -161,25 +161,38 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 
         Map<String, IaasProvider> iaasProviderMap = CloudControllerContext.getInstance().getPartitionToIaasProvider(sourceCartridge.getType());
 
-        for (Entry<String, IaasProvider> entry : iaasProviderMap.entrySet()) {
-            if (entry == null) {
-                continue;
-            }
-            String partitionId = entry.getKey();
-            IaasProvider iaasProvider = entry.getValue();
-            if (newIaasProviders.contains(iaasProvider)) {
-                if (log.isDebugEnabled()) {
-                    log.debug("Copying partition from the cartridge that is undeployed, to the new cartridge: "
-                            + "[partition-id] " + partitionId + " [cartridge-type] " + destCartridge.getType());
+        if(iaasProviderMap != null) {
+            for (Entry<String, IaasProvider> entry : iaasProviderMap.entrySet()) {
+                if (entry == null) {
+                    continue;
+                }
+                String partitionId = entry.getKey();
+                IaasProvider iaasProvider = entry.getValue();
+                if (newIaasProviders.contains(iaasProvider)) {
+                    if (log.isDebugEnabled()) {
+                        log.debug("Copying partition from the cartridge that is undeployed, to the new cartridge: "
+                                + "[partition-id] " + partitionId + " [cartridge-type] " + destCartridge.getType());
+                    }
+                    CloudControllerContext.getInstance().addIaasProvider(destCartridge.getType(), partitionId,
+                            newIaasProviders.get(newIaasProviders.indexOf(iaasProvider)));
                 }
-                CloudControllerContext.getInstance().addIaasProvider(destCartridge.getType(), partitionId,
-                        newIaasProviders.get(newIaasProviders.indexOf(iaasProvider)));
             }
         }
+
     }
 
     public void removeCartridge(String cartridgeType) throws InvalidCartridgeTypeException {
+        //Removing the cartridge from CC
+        Cartridge cartridge = removeCartridgeFromCC(cartridgeType);
+        //removing the cartridge from Topology
+        removeCartridgeFromTopology(cartridge);
 
+        if (log.isInfoEnabled()) {
+            log.info("Successfully removed cartridge: [cartridge-type] " + cartridgeType);
+        }
+    }
+
+    private Cartridge removeCartridgeFromCC(String cartridgeType) throws InvalidCartridgeTypeException {
         Cartridge cartridge = null;
         if ((cartridge = CloudControllerContext.getInstance().getCartridge(cartridgeType)) != null) {
             if (CloudControllerContext.getInstance().getCartridges().remove(cartridge)) {
@@ -192,15 +205,10 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 
                 CloudControllerContext.getInstance().persist();
 
-                // sends the service removed event
-                List<Cartridge> cartridgeList = new ArrayList<Cartridge>();
-                cartridgeList.add(cartridge);
-                TopologyBuilder.handleServiceRemoved(cartridgeList);
-
                 if (log.isInfoEnabled()) {
                     log.info("Successfully removed cartridge: [cartridge-type] " + cartridgeType);
                 }
-                return;
+                return cartridge;
             }
         }
         String msg = "Cartridge not found: [cartridge-type] " + cartridgeType;
@@ -208,6 +216,13 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         throw new InvalidCartridgeTypeException(msg);
     }
 
+    private void removeCartridgeFromTopology(Cartridge cartridge) throws InvalidCartridgeTypeException {
+        // sends the service removed event
+        List<Cartridge> cartridgeList = new ArrayList<Cartridge>();
+        cartridgeList.add(cartridge);
+        TopologyBuilder.handleServiceRemoved(cartridgeList);
+    }
+
     public void addServiceGroup(ServiceGroup servicegroup) throws InvalidServiceGroupException {
 
         if (servicegroup == null) {