Updated Branches: refs/heads/master f8dc515cd -> 256cb0a50
Added logs in cloud controller client to trace service calls made to cloud controller Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f913a9eb Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f913a9eb Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f913a9eb Branch: refs/heads/master Commit: f913a9ebef8729eb86629b79fe7b670fc74772d8 Parents: 533665a Author: Imesh Gunaratne <[email protected]> Authored: Wed Dec 18 11:54:11 2013 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Wed Dec 18 11:54:11 2013 +0530 ---------------------------------------------------------------------- .../autoscaler/api/AutoScalerServiceImpl.java | 3 +- .../cloud/controller/CloudControllerClient.java | 92 ++++++++++++-------- .../stratos/autoscaler/util/AutoscalerUtil.java | 6 +- 3 files changed, 57 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f913a9eb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java index ce5292e..e88ca82 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java @@ -23,7 +23,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.NetworkPartitionContext; import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; -import org.apache.stratos.autoscaler.exception.AutoScalerException; import org.apache.stratos.autoscaler.exception.InvalidPartitionException; import org.apache.stratos.autoscaler.exception.InvalidPolicyException; import org.apache.stratos.autoscaler.exception.NonExistingLBException; @@ -65,7 +64,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface{ Partition[] policyPartitions = deploymentPolicy.getAllPartitions(); try { // call CC API - CloudControllerClient.getInstance().validatePartitionsOfPolicy(cartridgeType, policyPartitions); + CloudControllerClient.getInstance().validateDeploymentPolicy(cartridgeType, deploymentPolicy); // if this deployment policy is valid for this cartridge, add it. validPolicies.add(deploymentPolicy); } catch (PartitionValidationException ignoredException) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f913a9eb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java index 904b38d..c4ac81a 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java @@ -23,11 +23,13 @@ import org.apache.commons.configuration.XMLConfiguration; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy; import org.apache.stratos.autoscaler.exception.PartitionValidationException; import org.apache.stratos.autoscaler.exception.SpawningException; import org.apache.stratos.autoscaler.exception.TerminationException; import org.apache.stratos.autoscaler.util.ConfUtil; import org.apache.stratos.cloud.controller.deployment.partition.Partition; +import org.apache.stratos.cloud.controller.pojo.MemberContext; import org.apache.stratos.cloud.controller.stub.*; import java.rmi.RemoteException; @@ -67,28 +69,23 @@ public class CloudControllerClient { log.error("Stub init error", e); } } - -// public void spawnInstances(Partition partition, String clusterId, int memberCountToBeIncreased) throws SpawningException { -// //call CC spawnInstances method -// -// -// log.info("Calling CC for spawning instances in cluster " + clusterId); -// log.info("Member count to be increased: " + memberCountToBeIncreased); -// -// for(int i =0; i< memberCountToBeIncreased; i++){ -// spawnAnInstance(partition, clusterId); -// } -// -// } /* * This will validate the given partitions against the given cartridge type. */ - public boolean validatePartitionsOfPolicy(String cartridgeType, Partition[] partitions) throws PartitionValidationException{ - + public boolean validateDeploymentPolicy(String cartridgeType, DeploymentPolicy deploymentPolicy) throws PartitionValidationException{ try { - return stub.validateDeploymentPolicy(cartridgeType, partitions); + if(log.isInfoEnabled()) { + log.info(String.format("Validating partitions of policy via cloud controller: [id] %s", deploymentPolicy.getId())); + } + long startTime = System.currentTimeMillis(); + boolean result = stub.validateDeploymentPolicy(cartridgeType, deploymentPolicy.getAllPartitions()); + if(log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call validateDeploymentPolicy() returned in %dms", (endTime - startTime))); + } + return result; } catch (RemoteException e) { log.error(e.getMessage()); throw new PartitionValidationException(e); @@ -108,9 +105,17 @@ public class CloudControllerClient { public boolean validatePartition(Partition partition) throws PartitionValidationException{ try { - return stub.validatePartition(partition); + if(log.isInfoEnabled()) { + log.info(String.format("Validating partition via cloud controller: [id] %s", partition.getId())); + } + long startTime = System.currentTimeMillis(); + boolean result = stub.validatePartition(partition); + if(log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call validatePartition() returned in %dms", (endTime - startTime))); + } + return result; } catch (RemoteException e) { - log.error(e.getMessage()); throw new PartitionValidationException(e); } catch (CloudControllerServiceInvalidPartitionExceptionException e) { throw new PartitionValidationException(e.getMessage(),e); @@ -120,6 +125,11 @@ public class CloudControllerClient { public org.apache.stratos.cloud.controller.pojo.MemberContext spawnAnInstance(Partition partition, String clusterId, String lbClusterId, String networkPartitionId) throws SpawningException { try { + if(log.isInfoEnabled()) { + log.info(String.format("Trying to spawn an instance via cloud controller: [cluster] %s [partition] %s [lb-cluster] %s [network-partition-id] %s", + clusterId, partition.getId(), lbClusterId, networkPartitionId)); + } + org.apache.stratos.cloud.controller.pojo.MemberContext member = new org.apache.stratos.cloud.controller.pojo.MemberContext(); member.setClusterId(clusterId); member.setPartition(partition); @@ -127,26 +137,34 @@ public class CloudControllerClient { member.setInitTime(System.currentTimeMillis()); member.setNetworkPartitionId(networkPartitionId); - log.info("Trying to spawn an instance of [cluster] "+clusterId+" [partition] "+partition.getId()+ - " [lb cluster] "+lbClusterId+" [Network Partition Id] "+networkPartitionId); - return stub.startInstance(member); + long startTime = System.currentTimeMillis(); + MemberContext memberContext = stub.startInstance(member); + if(log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call startInstance() returned in %dms", (endTime - startTime))); + } + return memberContext; } catch (CloudControllerServiceIllegalArgumentExceptionException e) { - log.error(e.getMessage()); throw new SpawningException(e); } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { - log.error(e.getMessage()); throw new SpawningException(e); } catch (RemoteException e) { - String msg = "Error occurred in cloud controller side while spawning instance"; - log.error(msg); - throw new SpawningException(msg, e); + throw new SpawningException(String.format("Error occurred in cloud controller while spawning instance: [cluster] %s [partition] %s [lb-cluster] %s [network-partition-id] %s", + clusterId, partition.getId(), lbClusterId, networkPartitionId), e); } } public void terminateAllInstances(String clusterId) throws TerminationException { try { + if(log.isInfoEnabled()) { + log.info(String.format("Terminating all instances of cluster via cloud controller: %s", clusterId)); + } + long startTime = System.currentTimeMillis(); stub.terminateAllInstances(clusterId); - + if(log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateAllInstances() returned in %dms", (endTime - startTime))); + } } catch (RemoteException e) { String msg = "Error occurred in cloud controller side while terminating instance"; log.error(msg, e); @@ -162,25 +180,23 @@ public class CloudControllerClient { } public void terminate(String memberId) throws TerminationException { - //call CC terminate method - - log.info("Calling CC for terminating member with id: " + memberId); - try { + if(log.isInfoEnabled()) { + log.info(String.format("Calling cloud controller to terminate instance: [member] %s", memberId)); + } + long startTime = System.currentTimeMillis(); stub.terminateInstance(memberId); + if(log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateInstance() returned in %dms", (endTime - startTime))); + } } catch (RemoteException e) { - String msg = "Error occurred in cloud controller side while terminating instance"; - log.error(msg, e); - throw new TerminationException(msg, e); - + throw new TerminationException("Could not terminate instance", e); } catch (CloudControllerServiceIllegalArgumentExceptionException e) { - log.error(e.getMessage()); throw new TerminationException(e); } catch (CloudControllerServiceInvalidMemberExceptionException e) { - log.error(e.getMessage()); throw new TerminationException(e); } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { - log.error(e.getMessage()); throw new TerminationException(e); } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f913a9eb/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java index b3358af..fbafea1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java @@ -102,9 +102,7 @@ public class AutoscalerUtil { throw new PolicyValidationException(msg); } - CloudControllerClient.getInstance() - .validatePartitionsOfPolicy(cluster.getServiceName(), - allPartitions); + CloudControllerClient.getInstance().validateDeploymentPolicy(cluster.getServiceName(), deploymentPolicy); ClusterMonitor clusterMonitor = new ClusterMonitor(cluster.getClusterId(), @@ -338,7 +336,7 @@ public class AutoscalerUtil { // } // // CloudControllerClient.getInstance() -// .validatePartitionsOfPolicy(cluster.getServiceName(), +// .validateDeploymentPolicy(cluster.getServiceName(), // allPartitions); // // LbClusterMonitor clusterMonitor =
