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

[2/2] stratos git commit: Refining error messages in cloud controller

Refining error messages in cloud controller

Signed-off-by: Imesh Gunaratne <im...@apache.org>


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

Branch: refs/heads/4.1.0-test
Commit: 2f7d4aaf8439fd542d0bfa1e786851066e9a4357
Parents: a21e9aa
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Dec 13 08:28:43 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Dec 13 09:28:52 2014 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        | 60 +++++++-------------
 .../controller/util/CloudControllerUtil.java    |  3 +-
 .../cartridge/DefaultCartridgeDeployer.java     | 10 +---
 .../rest/endpoint/api/StratosApiV41Utils.java   | 11 ++--
 4 files changed, 31 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2f7d4aaf/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 3c71f16..4cb8591 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
@@ -82,7 +82,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     public void deployCartridgeDefinition(CartridgeConfig cartridgeConfig) throws InvalidCartridgeDefinitionException,
             InvalidIaasProviderException {
 
-        handleNullObject(cartridgeConfig, "Invalid Cartridge Definition: Definition is null.");
+        handleNullObject(cartridgeConfig, "Cartridge definition is null");
 
         if (log.isDebugEnabled()) {
             log.debug("Cartridge definition: " + cartridgeConfig.toString());
@@ -90,7 +90,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 
         Cartridge cartridge = null;
         try {
-            // cartridge can never be null
             cartridge = CloudControllerUtil.toCartridge(cartridgeConfig);
         } catch (Exception e) {
             String msg = "Invalid cartridge definition: Cartridge type: " + cartridgeConfig.getType() +
@@ -117,20 +116,19 @@ public class CloudControllerServiceImpl implements CloudControllerService {
 
         // TODO transaction begins
         String cartridgeType = cartridge.getType();
+        // Undeploy if already deployed
         if (cloudControllerContext.getCartridge(cartridgeType) != null) {
             Cartridge cartridgeToBeRemoved = cloudControllerContext.getCartridge(cartridgeType);
             // undeploy
             try {
                 undeployCartridgeDefinition(cartridgeToBeRemoved.getType());
-            } catch (InvalidCartridgeTypeException e) {
-                //ignore
+            } catch (InvalidCartridgeTypeException ignore) {
             }
-            populateNewCartridge(cartridge, cartridgeToBeRemoved);
+            copyIaasProviders(cartridge, cartridgeToBeRemoved);
         }
 
+        // Add cartridge to the cloud controller context and persist
         CloudControllerContext.getInstance().addCartridge(cartridge);
-
-        // persist
         CloudControllerContext.getInstance().persist();
 
         List<Cartridge> cartridgeList = new ArrayList<Cartridge>();
@@ -139,16 +137,18 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         TopologyBuilder.handleServiceCreated(cartridgeList);
         // transaction ends
 
-        log.info("Successfully deployed the Cartridge definition: " + cartridgeType);
+        if(log.isInfoEnabled()) {
+            log.info("Successfully deployed the cartridge: [type] " + cartridgeType);
+        }
     }
 
-    private void populateNewCartridge(Cartridge cartridge,
-                                      Cartridge cartridgeToBeRemoved) {
+    private void copyIaasProviders(Cartridge destCartridge,
+                                   Cartridge sourceCartridge) {
 
-        List<IaasProvider> newIaasProviders = cartridge.getIaases();
-        Map<String, IaasProvider> oldPartitionToIaasMap = cartridgeToBeRemoved.getPartitionToIaasProvider();
+        List<IaasProvider> newIaasProviders = destCartridge.getIaases();
+        Map<String, IaasProvider> iaasProviderMap = sourceCartridge.getPartitionToIaasProvider();
 
-        for (Entry<String, IaasProvider> entry : oldPartitionToIaasMap.entrySet()) {
+        for (Entry<String, IaasProvider> entry : iaasProviderMap.entrySet()) {
             if (entry == null) {
                 continue;
             }
@@ -157,12 +157,11 @@ public class CloudControllerServiceImpl implements CloudControllerService {
             if (newIaasProviders.contains(oldIaasProvider)) {
                 if (log.isDebugEnabled()) {
                     log.debug("Copying a partition from the Cartridge that is undeployed, to the new Cartridge. "
-                            + "[partition id] : " + partitionId + " [cartridge type] " + cartridge.getType());
+                            + "[partition id] : " + partitionId + " [cartridge type] " + destCartridge.getType());
                 }
-                cartridge.addIaasProvider(partitionId, newIaasProviders.get(newIaasProviders.indexOf(oldIaasProvider)));
+                destCartridge.addIaasProvider(partitionId, newIaasProviders.get(newIaasProviders.indexOf(oldIaasProvider)));
             }
         }
-
     }
 
     public void undeployCartridgeDefinition(String cartridgeType) throws InvalidCartridgeTypeException {
@@ -741,19 +740,13 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     }
 
     @Override
-    public CartridgeInfo getCartridgeInfo(String cartridgeType)
-            throws UnregisteredCartridgeException {
-        Cartridge cartridge = CloudControllerContext.getInstance()
-                .getCartridge(cartridgeType);
-
+    public CartridgeInfo getCartridgeInfo(String cartridgeType) throws UnregisteredCartridgeException {
+        Cartridge cartridge = CloudControllerContext.getInstance().getCartridge(cartridgeType);
         if (cartridge != null) {
-
             return CloudControllerUtil.toCartridgeInfo(cartridge);
-
         }
 
-        String msg = "Cannot find a Cartridge having a type of "
-                + cartridgeType + ". Hence unable to find information.";
+        String msg = "Could not find cartridge: [type] " + cartridgeType;
         log.error(msg);
         throw new UnregisteredCartridgeException(msg);
     }
@@ -763,16 +756,14 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         final String clusterId_ = clusterId;
 
         ClusterContext ctxt = CloudControllerContext.getInstance().getClusterContext(clusterId_);
-
         handleNullObject(ctxt, "Service unregistration failed. Invalid cluster id: " + clusterId);
 
         String cartridgeType = ctxt.getCartridgeType();
-
         Cartridge cartridge = CloudControllerContext.getInstance().getCartridge(cartridgeType);
 
         if (cartridge == null) {
             String msg =
-                    "Service unregistration failed. No matching Cartridge found [type] " + cartridgeType + ". ";
+                    "Service unregistration failed. No matching cartridge found: [type] " + cartridgeType;
             log.error(msg);
             throw new UnregisteredClusterException(msg);
         }
@@ -780,17 +771,13 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         // if it's a kubernetes cluster
         if (StratosConstants.KUBERNETES_DEPLOYER_TYPE.equals(cartridge.getDeployerType())) {
             unregisterDockerService(clusterId_);
-
         } else {
-
-//	        TopologyBuilder.handleClusterMaintenanceMode(CloudControllerContext.getInstance().getClusterContext(clusterId_));
-
             Runnable terminateInTimeout = new Runnable() {
                 @Override
                 public void run() {
                     ClusterContext ctxt = CloudControllerContext.getInstance().getClusterContext(clusterId_);
                     if (ctxt == null) {
-                        String msg = "Service unregistration failed. Cluster not found: " + clusterId_;
+                        String msg = "Service unregistration failed. Cluster not found: [cluster-id] " + clusterId_;
                         log.error(msg);
                         return;
                     }
@@ -832,14 +819,12 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                         lock = CloudControllerContext.getInstance().acquireClusterContextWriteLock();
                         ClusterContext ctxt = CloudControllerContext.getInstance().getClusterContext(clusterId_);
                         if (ctxt == null) {
-                            String msg = "Service unregistration failed. Cluster not found: " + clusterId_;
+                            String msg = "Service unregistration failed. Cluster not found: [cluster-id] " + clusterId_;
                             log.error(msg);
                             return;
                         }
                         Collection<Member> members = TopologyManager.getTopology().
                                 getService(ctxt.getCartridgeType()).getCluster(clusterId_).getMembers();
-                        // TODO why end time is needed?
-                        // long endTime = System.currentTimeMillis() + ctxt.getTimeoutInMillis() * members.size();
 
                         while (members.size() > 0) {
                             //waiting until all the members got removed from the Topology/ timed out
@@ -867,7 +852,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                                 for (Volume volume : ctxt.getVolumes()) {
                                     if (volume.getId() != null) {
                                         String iaasType = volume.getIaasType();
-                                        //Iaas iaas = CloudControllerContext.getInstance().getIaasProvider(iaasType).buildComputeServiceAndTemplate();
                                         Iaas iaas = cartridge.getIaasProvider(iaasType).getIaas();
                                         if (iaas != null) {
                                             try {
@@ -923,7 +907,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     }
 
     /**
-     * FIXME: A validate method shouldn't persist any data
+     * FIXME: A validate method shouldn't persist data
      */
     @Override
     public boolean validateDeploymentPolicy(String cartridgeType, Partition[] partitions)

http://git-wip-us.apache.org/repos/asf/stratos/blob/2f7d4aaf/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 c833911..c58eedc 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
@@ -176,8 +176,7 @@ public class CloudControllerUtil {
                         iaasProvider.setPayload(payload);
                     }
 
-                    org.apache.stratos.common.Properties props1 =
-                                                                                 iaasConfig.getProperties();
+                    org.apache.stratos.common.Properties props1 = iaasConfig.getProperties();
                     if (props1 != null) {
                         for (Property prop : props1.getProperties()) {
                             iaasProvider.addProperty(prop.getName(), prop.getValue());

http://git-wip-us.apache.org/repos/asf/stratos/blob/2f7d4aaf/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/cartridge/DefaultCartridgeDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/cartridge/DefaultCartridgeDeployer.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/cartridge/DefaultCartridgeDeployer.java
index b080a9f..6d3e8a5 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/cartridge/DefaultCartridgeDeployer.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/cartridge/DefaultCartridgeDeployer.java
@@ -24,19 +24,16 @@ import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
 import org.apache.stratos.manager.client.CloudControllerServiceClient;
 import org.apache.stratos.manager.exception.ADCException;
 
-public class DefaultCartridgeDeployer extends CartridgeDeployer{
+public class DefaultCartridgeDeployer extends CartridgeDeployer {
 
 	private static Log log = LogFactory.getLog(DefaultCartridgeDeployer.class);
 	
 	@Override
 	protected void preDeployment() {
-				
 	}
 
 	@Override
 	protected void postDeployment() {
-		// TODO Auto-generated method stub
-		
 	}
 
 	@Override
@@ -45,10 +42,9 @@ public class DefaultCartridgeDeployer extends CartridgeDeployer{
 			CloudControllerServiceClient cloudControllerServiceClient = CloudControllerServiceClient.getServiceClient();
 			cloudControllerServiceClient.deployCartridgeDefinition(cartridgeConfig);
 		} catch (Exception e) {
-			String msg = "Exception in deploying the cartridge. ";
-			log.error(msg + e.getMessage());
+			String msg = "Could not deploy cartridge";
+			log.error(msg, e);
 			throw new ADCException(msg);
 		}	
 	}
-
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2f7d4aaf/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 52a69eb..8e57154 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -88,7 +88,7 @@ public class StratosApiV41Utils {
     public static void createCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean, ConfigurationContext ctxt,
                                        String userName, String tenantDomain) throws RestAPIException {
 
-        log.info("Starting to deploy a cartridge [type] " + cartridgeDefinitionBean.type);
+        log.info("Starting to deploy a cartridge: [type] " + cartridgeDefinitionBean.type);
 
         CartridgeConfig cartridgeConfig = PojoConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
         if (cartridgeConfig == null) {
@@ -102,7 +102,7 @@ public class StratosApiV41Utils {
         } catch (ADCException e) {
             throw new RestAPIException(e);
         }
-        log.info("Successfully deployed cartridge [type] " + cartridgeDefinitionBean.type);
+        log.info("Successfully deployed cartridge: [type] " + cartridgeDefinitionBean.type);
     }
     
     public static void deleteCartridgeDefinition(String cartridgeType) throws RestAPIException {
@@ -113,18 +113,17 @@ public class StratosApiV41Utils {
             CartridgeInfo cartridgeInfo = null;
             try {
                 cartridgeInfo = cloudControllerServiceClient.getCartridgeInfo(cartridgeType);
-
             } catch (RemoteException e) {
-                log.error("Error in getting Cartridge details for type " + cartridgeType);
+                log.error("Could not find cartridge: [type] " + cartridgeType);
                 throw new RestAPIException(e);
 
             } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) {
-                log.error("Error in getting Cartridge details for type " + cartridgeType);
+                log.error("Could not find cartridge: [type] " + cartridgeType);
                 throw new RestAPIException(e);
             }
 
             if (cartridgeInfo == null) {
-                String errorMsg = "Cartridge information not found for type " + cartridgeType;
+                String errorMsg = "Could not find cartridge: [type] " + cartridgeType;
                 log.error(errorMsg);
                 throw new RestAPIException(errorMsg);
             }