Reverting last set of commits which were merged from pr/403 to master branch by mistake
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2ff059db Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2ff059db Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2ff059db Branch: refs/heads/master Commit: 2ff059db4e22baa48ab86f27c9829f89c4e0fc7f Parents: 9ceab96 Author: Imesh Gunaratne <[email protected]> Authored: Thu Jul 23 19:08:21 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Thu Jul 23 19:08:21 2015 +0530 ---------------------------------------------------------------------- .../client/AutoscalerCloudControllerClient.java | 41 +- .../autoscaler/rule/RuleTasksDelegator.java | 86 ++-- .../messaging/topology/TopologyBuilder.java | 325 +++++++------ .../impl/CloudControllerServiceImpl.java | 276 +++++------ .../impl/CloudControllerServiceUtil.java | 27 +- .../services/impl/InstanceCreator.java | 11 + .../publisher/BAMUsageDataPublisher.java | 41 +- .../util/CloudControllerConstants.java | 102 ++-- .../common/constants/StratosConstants.java | 33 +- .../modules/event/eventhandler.py | 1 + .../modules/healthstatspublisher/healthstats.py | 6 +- .../rest/endpoint/api/StratosApiV41.java | 3 + .../streamdefinitions/stream-manager-config.xml | 486 +++++++++---------- extensions/das/artifacts/CCEventReceiver.xml | 29 -- extensions/das/artifacts/SparkQuery.txt | 19 - ...g.apache.stratos.cloud.controller_1.0.0.json | 112 ----- .../org_apache_stratos_cloud_controller.xml | 1 - extensions/das/spark-time-udf/pom.xml | 12 - .../stratos/das/spark/udf/time/TimeUDF.java | 49 -- .../src/main/conf/drools/dependent-scaling.drl | 5 +- .../src/main/conf/drools/mincheck.drl | 4 +- .../src/main/conf/drools/scaling.drl | 13 +- .../main/resources/CloudControllerService.wsdl | 450 ++++++++--------- 23 files changed, 948 insertions(+), 1184 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/2ff059db/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java index f478ee9..f944a9f 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/AutoscalerCloudControllerClient.java @@ -52,8 +52,8 @@ public class AutoscalerCloudControllerClient { private static CloudControllerServiceStub stub; - /* An instance of a CloudControllerClient is created when the class is loaded. - * Since the class is loaded only once, it is guaranteed that an object of + /* An instance of a CloudControllerClient is created when the class is loaded. + * Since the class is loaded only once, it is guaranteed that an object of * CloudControllerClient is created only once. Hence it is singleton. */ private static class InstanceHolder { @@ -67,30 +67,29 @@ public class AutoscalerCloudControllerClient { private AutoscalerCloudControllerClient() { try { XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); - int port = - conf.getInt("autoscaler.cloudController.port", AutoscalerConstants.CLOUD_CONTROLLER_DEFAULT_PORT); + int port = conf.getInt("autoscaler.cloudController.port", AutoscalerConstants.CLOUD_CONTROLLER_DEFAULT_PORT); String hostname = conf.getString("autoscaler.cloudController.hostname", "localhost"); String epr = "https://" + hostname + ":" + port + "/" + AutoscalerConstants.CLOUD_CONTROLLER_SERVICE_SFX; int cloudControllerClientTimeout = conf.getInt("autoscaler.cloudController.clientTimeout", 180000); stub = new CloudControllerServiceStub(epr); stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, cloudControllerClientTimeout); - stub._getServiceClient().getOptions() - .setProperty(HTTPConstants.CONNECTION_TIMEOUT, cloudControllerClientTimeout); + stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, + cloudControllerClientTimeout); } catch (Exception e) { log.error("Could not initialize cloud controller client", e); } } - public synchronized MemberContext startInstance(PartitionRef partition, String clusterId, String clusterInstanceId, - String networkPartitionId, boolean isPrimary, int minMemberCount, - String autoscalingReason, long scalingTime) - throws SpawningException { + public synchronized MemberContext startInstance(PartitionRef partition, + String clusterId, String clusterInstanceId, + String networkPartitionId, boolean isPrimary, + int minMemberCount) throws SpawningException { try { if (log.isInfoEnabled()) { log.info(String.format("Trying to spawn an instance via cloud controller: " + - "[cluster] %s [partition] %s [network-partition-id] %s", clusterId, - partition.getId(), networkPartitionId)); + "[cluster] %s [partition] %s [network-partition-id] %s", + clusterId, partition.getId(), networkPartitionId)); } XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); @@ -116,18 +115,8 @@ public class AutoscalerCloudControllerClient { minCountProp.setName(StratosConstants.MIN_COUNT); minCountProp.setValue(String.valueOf(minMemberCount)); - Property autoscalingReasonProp = new Property(); - autoscalingReasonProp.setName(StratosConstants.SCALING_REASON); - autoscalingReasonProp.setValue(autoscalingReason); - - Property scalingTimeProp = new Property(); - scalingTimeProp.setName(StratosConstants.SCALING_TIME); - scalingTimeProp.setValue(String.valueOf(scalingTime)); - memberContextProps.addProperty(isPrimaryProp); memberContextProps.addProperty(minCountProp); - memberContextProps.addProperty(autoscalingReasonProp); - memberContextProps.addProperty(scalingTimeProp); instanceContext.setProperties(AutoscalerUtil.toStubProperties(memberContextProps)); long startTime = System.currentTimeMillis(); @@ -198,6 +187,7 @@ public class AutoscalerCloudControllerClient { } } + private Volume[] convertVolumesToStubVolumes(VolumeContext[] volumeContexts) { ArrayList<Volume> volumes = new ArrayList<Volume>(); @@ -235,11 +225,10 @@ public class AutoscalerCloudControllerClient { stub.terminateInstanceForcefully(memberId); } - public void terminateAllInstances(String clusterId) - throws RemoteException, CloudControllerServiceInvalidClusterExceptionException { + public void terminateAllInstances(String clusterId) throws RemoteException, + CloudControllerServiceInvalidClusterExceptionException { if (log.isInfoEnabled()) { - log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", - clusterId)); + log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", clusterId)); } long startTime = System.currentTimeMillis(); stub.terminateInstances(clusterId); http://git-wip-us.apache.org/repos/asf/stratos/blob/2ff059db/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index d569ed2..51443a1 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -36,6 +36,7 @@ import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetwo import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; +import org.apache.stratos.common.client.CloudControllerServiceClient; import org.apache.stratos.common.constants.StratosConstants; /** @@ -47,10 +48,9 @@ public class RuleTasksDelegator { private static final Log log = LogFactory.getLog(RuleTasksDelegator.class); - public double getPredictedValueForNextMinute(float average, float gradient, float secondDerivative, - int timeInterval) { + public double getPredictedValueForNextMinute(float average, float gradient, float secondDerivative, int timeInterval) { double predictedValue; - // s = u * t + 0.5 * a * t * t +// s = u * t + 0.5 * a * t * t if (log.isDebugEnabled()) { log.debug(String.format("Predicting the value, [average]: %s , [gradient]: %s , [second derivative] " + ": %s , [time intervals]: %s ", average, gradient, secondDerivative, timeInterval)); @@ -60,6 +60,7 @@ public class RuleTasksDelegator { return predictedValue; } + public int getNumberOfInstancesRequiredBasedOnRif(float rifPredictedValue, float rifThreshold) { if (rifThreshold != 0) { @@ -73,8 +74,8 @@ public class RuleTasksDelegator { } - public int getNumberOfInstancesRequiredBasedOnMemoryConsumption(float threshold, double predictedValue, int min, - int max) { + public int getNumberOfInstancesRequiredBasedOnMemoryConsumption(float threshold, double predictedValue, + int min, int max) { double numberOfAdditionalInstancesRequired = 0; if (predictedValue != threshold) { @@ -96,7 +97,8 @@ public class RuleTasksDelegator { return (int) Math.ceil(min + numberOfAdditionalInstancesRequired); } - public int getNumberOfInstancesRequiredBasedOnLoadAverage(float threshold, double predictedValue, int min) { + public int getNumberOfInstancesRequiredBasedOnLoadAverage(float threshold, double predictedValue, + int min) { double numberOfInstances; if (threshold != 0) { @@ -109,8 +111,9 @@ public class RuleTasksDelegator { } public int getMaxNumberOfInstancesRequired(int numberOfInstancesRequiredBasedOnRif, - int numberOfInstancesRequiredBasedOnMemoryConsumption, boolean mcReset, - int numberOfInstancesReuquiredBasedOnLoadAverage, boolean laReset) { + int numberOfInstancesRequiredBasedOnMemoryConsumption, + boolean mcReset, int numberOfInstancesReuquiredBasedOnLoadAverage, + boolean laReset) { int numberOfInstances = 0; int rifBasedRequiredInstances = 0; @@ -126,8 +129,7 @@ public class RuleTasksDelegator { laBasedRequiredInstances = numberOfInstancesReuquiredBasedOnLoadAverage; } numberOfInstances = Math.max(Math.max(numberOfInstancesRequiredBasedOnMemoryConsumption, - numberOfInstancesReuquiredBasedOnLoadAverage), - numberOfInstancesRequiredBasedOnRif); + numberOfInstancesReuquiredBasedOnLoadAverage), numberOfInstancesRequiredBasedOnRif); return numberOfInstances; } @@ -175,7 +177,7 @@ public class RuleTasksDelegator { * @param isPrimary Is a primary member */ public void delegateSpawn(ClusterLevelPartitionContext clusterMonitorPartitionContext, String clusterId, - String clusterInstanceId, boolean isPrimary, String autoscalingReason, long scalingTime) { + String clusterInstanceId, boolean isPrimary) { try { String nwPartitionId = clusterMonitorPartitionContext.getNetworkPartitionId(); @@ -188,24 +190,24 @@ public class RuleTasksDelegator { clusterContext.getNetworkPartitionCtxt(nwPartitionId); ClusterInstanceContext clusterInstanceContext = (ClusterInstanceContext) clusterLevelNetworkPartitionContext. - getInstanceContext( - clusterInstanceId); + getInstanceContext(clusterInstanceId); minimumCountOfNetworkPartition = clusterInstanceContext.getMinInstanceCount(); - MemberContext memberContext = AutoscalerCloudControllerClient.getInstance().startInstance( - clusterMonitorPartitionContext.getPartition(), clusterId, clusterInstanceId, - clusterMonitorPartitionContext.getNetworkPartitionId(), isPrimary, minimumCountOfNetworkPartition, - autoscalingReason, scalingTime); + MemberContext memberContext = + AutoscalerCloudControllerClient.getInstance() + .startInstance(clusterMonitorPartitionContext.getPartition(), + clusterId, + clusterInstanceId, clusterMonitorPartitionContext.getNetworkPartitionId(), + isPrimary, + minimumCountOfNetworkPartition); if (memberContext != null) { ClusterLevelPartitionContext partitionContext = clusterInstanceContext. - getPartitionCtxt( - clusterMonitorPartitionContext - .getPartitionId()); + getPartitionCtxt(clusterMonitorPartitionContext.getPartitionId()); partitionContext.addPendingMember(memberContext); partitionContext.addMemberStatsContext(new MemberStatsContext(memberContext.getMemberId())); if (log.isDebugEnabled()) { - log.debug(String.format("Pending member added, [member] %s [partition] %s", - memberContext.getMemberId(), memberContext.getPartition().getId())); + log.debug(String.format("Pending member added, [member] %s [partition] %s", memberContext.getMemberId(), + memberContext.getPartition().getId())); } } else { @@ -214,8 +216,8 @@ public class RuleTasksDelegator { } } } catch (Exception e) { - String message = String.format("Could not start instance: [cluster-id] %s [instance-id] %s", clusterId, - clusterInstanceId); + String message = String.format("Could not start instance: [cluster-id] %s [instance-id] %s", + clusterId, clusterInstanceId); log.error(message, e); throw new RuntimeException(message, e); } @@ -243,8 +245,7 @@ public class RuleTasksDelegator { clusterMonitor.sendScalingOverMaxEvent(networkPartitionId, instanceId); } - public void delegateScalingDownBeyondMinNotification(String clusterId, String networkPartitionId, - String instanceId) { + public void delegateScalingDownBeyondMinNotification(String clusterId, String networkPartitionId, String instanceId) { if (log.isDebugEnabled()) { log.debug("Scaling down lower min notification is going to the [parentInstance] " + instanceId); } @@ -267,8 +268,7 @@ public class RuleTasksDelegator { clusterMonitorPartitionContext.removeMemberStatsContext(memberId); } else if (clusterMonitorPartitionContext.pendingMemberAvailable(memberId)) { - log.info(String.format( - "[scale-down] Moving pending member to termination pending list [member id] %s " + + log.info(String.format("[scale-down] Moving pending member to termination pending list [member id] %s " + "[partition] %s [network partition] %s", memberId, clusterMonitorPartitionContext.getPartitionId(), clusterMonitorPartitionContext.getNetworkPartitionId())); @@ -280,14 +280,15 @@ public class RuleTasksDelegator { } } - public void delegateTerminateDependency(ClusterLevelPartitionContext clusterMonitorPartitionContext, - String memberId) { + public void delegateTerminateDependency(ClusterLevelPartitionContext clusterMonitorPartitionContext, String memberId) { try { //calling SM to send the instance notification event. if (log.isDebugEnabled()) { log.debug("delegateTerminateDependency:memberId:" + memberId); } - + //InstanceNotificationClient.getInstance().sendMemberCleanupEvent(memberId); + //partitionContext.moveActiveMemberToTerminationPendingMembers(memberId); + //CloudControllerClient.getInstance().terminate(memberId); } catch (Exception e) { log.error("Cannot terminate instance", e); } @@ -334,14 +335,14 @@ public class RuleTasksDelegator { float memberGredientLoadAverage = memberStatsContext.getLoadAverage().getGradient(); float memberSecondDerivativeLoadAverage = memberStatsContext.getLoadAverage().getSecondDerivative(); - double memberPredictedLoadAverage = - getPredictedValueForNextMinute(memberAverageLoadAverage, memberGredientLoadAverage, - memberSecondDerivativeLoadAverage, 1); + double memberPredictedLoadAverage = getPredictedValueForNextMinute(memberAverageLoadAverage, + memberGredientLoadAverage, memberSecondDerivativeLoadAverage, 1); if (log.isDebugEnabled()) { - log.debug(String.format("[cluster-instance-id] %s [member-id] %s " + "[predicted load average] %s ", - clusterInstanceContext.getId(), memberStatsContext.getMemberId(), - memberPredictedLoadAverage)); + log.debug(String.format("[cluster-instance-id] %s [member-id] %s " + + "[predicted load average] %s " + , clusterInstanceContext.getId(), memberStatsContext.getMemberId() + , memberPredictedLoadAverage)); } loadAveragePredicted += memberPredictedLoadAverage; ++totalMemberCount; @@ -364,16 +365,15 @@ public class RuleTasksDelegator { float memberMemoryConsumptionAverage = memberStatsContext.getMemoryConsumption().getAverage(); float memberMemoryConsumptionGredient = memberStatsContext.getMemoryConsumption().getGradient(); - float memberMemoryConsumptionSecondDerivative = - memberStatsContext.getMemoryConsumption().getSecondDerivative(); + float memberMemoryConsumptionSecondDerivative = memberStatsContext.getMemoryConsumption().getSecondDerivative(); - double memberPredictedMemoryConsumption = - getPredictedValueForNextMinute(memberMemoryConsumptionAverage, memberMemoryConsumptionGredient, - memberMemoryConsumptionSecondDerivative, 1); + double memberPredictedMemoryConsumption = getPredictedValueForNextMinute(memberMemoryConsumptionAverage, + memberMemoryConsumptionGredient, memberMemoryConsumptionSecondDerivative, 1); if (log.isDebugEnabled()) { log.debug(String.format("[member-id] %s [predicted memory consumption] %s ", - memberStatsContext.getMemberId(), memberPredictedMemoryConsumption)); + memberStatsContext.getMemberId() + , memberPredictedMemoryConsumption)); } memoryConsumptionPredicted += memberPredictedMemoryConsumption; ++totalMemberCount; http://git-wip-us.apache.org/repos/asf/stratos/blob/2ff059db/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java index 618f2f9..f04a11f 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java @@ -31,7 +31,6 @@ import org.apache.stratos.cloud.controller.messaging.publisher.TopologyEventPubl import org.apache.stratos.cloud.controller.statistics.publisher.BAMUsageDataPublisher; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.common.Property; -import org.apache.stratos.common.constants.StratosConstants; import org.apache.stratos.messaging.domain.application.ClusterDataHolder; import org.apache.stratos.messaging.domain.instance.ClusterInstance; import org.apache.stratos.messaging.domain.topology.*; @@ -54,6 +53,7 @@ import java.util.*; public class TopologyBuilder { private static final Log log = LogFactory.getLog(TopologyBuilder.class); + public static void handleServiceCreated(List<Cartridge> cartridgeList) { Service service; Topology topology = TopologyManager.getTopology(); @@ -67,8 +67,7 @@ public class TopologyBuilder { TopologyManager.acquireWriteLock(); for (Cartridge cartridge : cartridgeList) { if (!topology.serviceExists(cartridge.getType())) { - ServiceType serviceType = - cartridge.isMultiTenant() ? ServiceType.MultiTenant : ServiceType.SingleTenant; + ServiceType serviceType = cartridge.isMultiTenant() ? ServiceType.MultiTenant : ServiceType.SingleTenant; service = new Service(cartridge.getType(), serviceType); Properties properties = new Properties(); @@ -100,8 +99,8 @@ public class TopologyBuilder { Port port; //adding ports to the event for (PortMapping portMapping : portMappings) { - port = new Port(portMapping.getProtocol(), portMapping.getPort(), - portMapping.getProxyPort()); + port = new Port(portMapping.getProtocol(), + portMapping.getPort(), portMapping.getProxyPort()); service.addPort(port); } } @@ -139,8 +138,8 @@ public class TopologyBuilder { log.warn(String.format("Service %s does not exist..", cartridge.getType())); } } else { - log.warn("Subscription already exists. Hence not removing the service:" + cartridge.getType() + - " from the topology"); + log.warn("Subscription already exists. Hence not removing the service:" + cartridge.getType() + + " from the topology"); } } } @@ -162,7 +161,8 @@ public class TopologyBuilder { log.warn("Cluster " + event.getClusterId() + " is already in the Topology "); return; } else { - cluster = new Cluster(event.getServiceName(), event.getClusterId(), event.getDeploymentPolicyName(), + cluster = new Cluster(event.getServiceName(), + event.getClusterId(), event.getDeploymentPolicyName(), event.getAutosScalePolicyName(), event.getAppId()); //cluster.setStatus(Status.Created); cluster.setHostNames(event.getHostNames()); @@ -186,8 +186,8 @@ public class TopologyBuilder { for (Cluster cluster : appClusters) { Service service = topology.getService(cluster.getServiceName()); if (service == null) { - log.error("Service " + cluster.getServiceName() + - " not found in Topology, unable to create Application cluster"); + log.error("Service " + cluster.getServiceName() + + " not found in Topology, unable to create Application cluster"); } else { service.addCluster(cluster); log.info("Application Cluster " + cluster.getClusterId() + " created in CC topology"); @@ -199,18 +199,17 @@ public class TopologyBuilder { } log.debug("Creating cluster port mappings: [appication-id] " + appId); - for (Cluster cluster : appClusters) { + for(Cluster cluster : appClusters) { String cartridgeType = cluster.getServiceName(); Cartridge cartridge = CloudControllerContext.getInstance().getCartridge(cartridgeType); - if (cartridge == null) { + if(cartridge == null) { throw new CloudControllerException("Cartridge not found: [cartridge-type] " + cartridgeType); } - for (PortMapping portMapping : cartridge.getPortMappings()) { - ClusterPortMapping clusterPortMapping = - new ClusterPortMapping(appId, cluster.getClusterId(), portMapping.getName(), - portMapping.getProtocol(), portMapping.getPort(), - portMapping.getProxyPort()); + for(PortMapping portMapping : cartridge.getPortMappings()) { + ClusterPortMapping clusterPortMapping = new ClusterPortMapping(appId, + cluster.getClusterId(), portMapping.getName(), portMapping.getProtocol(), portMapping.getPort(), + portMapping.getProxyPort()); CloudControllerContext.getInstance().addClusterPortMapping(clusterPortMapping); log.debug("Cluster port mapping created: " + clusterPortMapping.toString()); } @@ -223,7 +222,8 @@ public class TopologyBuilder { TopologyEventPublisher.sendApplicationClustersCreated(appId, appClusters); } - public static void handleApplicationClustersRemoved(String appId, Set<ClusterDataHolder> clusterData) { + public static void handleApplicationClustersRemoved(String appId, + Set<ClusterDataHolder> clusterData) { TopologyManager.acquireWriteLock(); List<Cluster> removedClusters = new ArrayList<Cluster>(); @@ -299,23 +299,25 @@ public class TopologyBuilder { log.info("Cluster Created adding status started for" + cluster.getClusterId()); TopologyManager.updateTopology(topology); //publishing data - TopologyEventPublisher - .sendClusterResetEvent(event.getAppId(), event.getServiceName(), event.getClusterId(), - event.getInstanceId()); + TopologyEventPublisher.sendClusterResetEvent(event.getAppId(), event.getServiceName(), + event.getClusterId(), event.getInstanceId()); } else { log.warn(String.format("Cluster state transition is not valid: [cluster-id] %s " + " [instance-id] %s [current-status] %s [status-requested] %s", - event.getClusterId(), event.getInstanceId(), context.getStatus(), status)); + event.getClusterId(), event.getInstanceId(), + context.getStatus(), status)); } } finally { TopologyManager.releaseWriteLock(); } + } - public static void handleClusterInstanceCreated(String serviceType, String clusterId, String alias, - String instanceId, String partitionId, String networkPartitionId) { + public static void handleClusterInstanceCreated(String serviceType, String clusterId, + String alias, String instanceId, String partitionId, + String networkPartitionId) { TopologyManager.acquireWriteLock(); @@ -348,7 +350,8 @@ public class TopologyBuilder { TopologyManager.updateTopology(topology); ClusterInstanceCreatedEvent clusterInstanceCreatedEvent = - new ClusterInstanceCreatedEvent(serviceType, clusterId, clusterInstance); + new ClusterInstanceCreatedEvent(serviceType, clusterId, + clusterInstance); clusterInstanceCreatedEvent.setPartitionId(partitionId); TopologyEventPublisher.sendClusterInstanceCreatedEvent(clusterInstanceCreatedEvent); @@ -357,17 +360,20 @@ public class TopologyBuilder { } } + public static void handleClusterRemoved(ClusterContext ctxt) { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(ctxt.getCartridgeType()); String deploymentPolicy; if (service == null) { - log.warn(String.format("Service %s does not exist", ctxt.getCartridgeType())); + log.warn(String.format("Service %s does not exist", + ctxt.getCartridgeType())); return; } if (!service.clusterExists(ctxt.getClusterId())) { - log.warn(String.format("Cluster %s does not exist for service %s", ctxt.getClusterId(), + log.warn(String.format("Cluster %s does not exist for service %s", + ctxt.getClusterId(), ctxt.getCartridgeType())); return; } @@ -400,10 +406,6 @@ public class TopologyBuilder { String partitionId = memberContext.getPartition().getId(); String lbClusterId = memberContext.getLbClusterId(); long initTime = memberContext.getInitTime(); - String autoscalingReason = - memberContext.getProperties().getProperty(StratosConstants.SCALING_REASON).getValue(); - long scalingTime = - Long.parseLong(memberContext.getProperties().getProperty(StratosConstants.SCALING_TIME).getValue()); if (cluster.memberExists(memberId)) { log.warn(String.format("Member %s already exists", memberId)); @@ -412,22 +414,13 @@ public class TopologyBuilder { try { TopologyManager.acquireWriteLock(); - Member member = - new Member(service.getServiceName(), clusterId, memberId, clusterInstanceId, networkPartitionId, - partitionId, memberContext.getLoadBalancingIPType(), initTime); + Member member = new Member(service.getServiceName(), clusterId, memberId, clusterInstanceId, + networkPartitionId, partitionId, memberContext.getLoadBalancingIPType(), initTime); member.setStatus(MemberStatus.Created); member.setLbClusterId(lbClusterId); member.setProperties(CloudControllerUtil.toJavaUtilProperties(memberContext.getProperties())); cluster.addMember(member); TopologyManager.updateTopology(topology); - //Member created time - Long timeStamp = System.currentTimeMillis(); - //publishing to BAM - BAMUsageDataPublisher.publish(memberContext.getMemberId(), memberContext.getPartition().getId(), - memberContext.getNetworkPartitionId(), memberContext.getClusterId(), - memberContext.getClusterInstanceId(), memberContext.getCartridgeType(), - MemberStatus.Created.toString(), timeStamp, autoscalingReason, scalingTime, - null); } finally { TopologyManager.releaseWriteLock(); } @@ -444,11 +437,13 @@ public class TopologyBuilder { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(memberContext.getCartridgeType()); if (service == null) { - log.warn(String.format("Service %s does not exist", memberContext.getCartridgeType())); + log.warn(String.format("Service %s does not exist", + memberContext.getCartridgeType())); return; } if (!service.clusterExists(memberContext.getClusterId())) { - log.warn(String.format("Cluster %s does not exist in service %s", memberContext.getClusterId(), + log.warn(String.format("Cluster %s does not exist in service %s", + memberContext.getClusterId(), memberContext.getCartridgeType())); return; } @@ -456,7 +451,8 @@ public class TopologyBuilder { Member member = service.getCluster(memberContext.getClusterId()). getMember(memberContext.getMemberId()); if (member == null) { - log.warn(String.format("Member %s does not exist", memberContext.getMemberId())); + log.warn(String.format("Member %s does not exist", + memberContext.getMemberId())); return; } @@ -483,15 +479,16 @@ public class TopologyBuilder { log.info("Member status updated to initialized"); TopologyManager.updateTopology(topology); - //member initialized time - Long timeStamp = System.currentTimeMillis(); TopologyEventPublisher.sendMemberInitializedEvent(memberContext); //publishing data - BAMUsageDataPublisher.publish(memberContext.getMemberId(), memberContext.getPartition().getId(), - memberContext.getNetworkPartitionId(), memberContext.getClusterId(), - memberContext.getClusterInstanceId(), memberContext.getCartridgeType(), - MemberStatus.Initialized.toString(), timeStamp, null, null, null); + BAMUsageDataPublisher.publish(memberContext.getMemberId(), + memberContext.getPartition().getId(), + memberContext.getNetworkPartitionId(), + memberContext.getClusterId(), + memberContext.getCartridgeType(), + MemberStatus.Initialized.toString(), + null); } } finally { TopologyManager.releaseWriteLock(); @@ -505,8 +502,8 @@ public class TopologyBuilder { return kubernetesService.getPort(); } } - throw new RuntimeException( - "Kubernetes service port not found: [cluster-id] " + clusterId + " [port] " + portMapping.getPort()); + throw new RuntimeException("Kubernetes service port not found: [cluster-id] " + clusterId + " [port] " + + portMapping.getPort()); } public static void handleMemberStarted(InstanceStartedEvent instanceStartedEvent) { @@ -514,11 +511,13 @@ public class TopologyBuilder { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(instanceStartedEvent.getServiceName()); if (service == null) { - log.warn(String.format("Service %s does not exist", instanceStartedEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + instanceStartedEvent.getServiceName())); return; } if (!service.clusterExists(instanceStartedEvent.getClusterId())) { - log.warn(String.format("Cluster %s does not exist in service %s", instanceStartedEvent.getClusterId(), + log.warn(String.format("Cluster %s does not exist in service %s", + instanceStartedEvent.getClusterId(), instanceStartedEvent.getServiceName())); return; } @@ -526,7 +525,8 @@ public class TopologyBuilder { Cluster cluster = service.getCluster(instanceStartedEvent.getClusterId()); Member member = cluster.getMember(instanceStartedEvent.getMemberId()); if (member == null) { - log.warn(String.format("Member %s does not exist", instanceStartedEvent.getMemberId())); + log.warn(String.format("Member %s does not exist", + instanceStartedEvent.getMemberId())); return; } @@ -542,25 +542,24 @@ public class TopologyBuilder { log.info("member started event adding status started"); TopologyManager.updateTopology(topology); - //member starting time - Long timeStamp = System.currentTimeMillis(); //memberStartedEvent. TopologyEventPublisher.sendMemberStartedEvent(instanceStartedEvent); //publishing data - BAMUsageDataPublisher - .publish(instanceStartedEvent.getMemberId(), instanceStartedEvent.getPartitionId(), - instanceStartedEvent.getNetworkPartitionId(), instanceStartedEvent.getClusterId(), - instanceStartedEvent.getClusterInstanceId(), instanceStartedEvent.getServiceName(), - MemberStatus.Starting.toString(), timeStamp, null, null, null); + BAMUsageDataPublisher.publish(instanceStartedEvent.getMemberId(), + instanceStartedEvent.getPartitionId(), + instanceStartedEvent.getNetworkPartitionId(), + instanceStartedEvent.getClusterId(), + instanceStartedEvent.getServiceName(), + MemberStatus.Starting.toString(), + null); } } finally { TopologyManager.releaseWriteLock(); } } catch (Exception e) { - String message = String.format( - "Could not handle member started event: [application-id] %s " + "[service-name] %s [member-id] %s", - instanceStartedEvent.getApplicationId(), instanceStartedEvent.getServiceName(), - instanceStartedEvent.getMemberId()); + String message = String.format("Could not handle member started event: [application-id] %s " + + "[service-name] %s [member-id] %s", instanceStartedEvent.getApplicationId(), + instanceStartedEvent.getServiceName(), instanceStartedEvent.getMemberId()); log.warn(message, e); } } @@ -569,28 +568,32 @@ public class TopologyBuilder { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(instanceActivatedEvent.getServiceName()); if (service == null) { - log.warn(String.format("Service %s does not exist", instanceActivatedEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + instanceActivatedEvent.getServiceName())); return; } Cluster cluster = service.getCluster(instanceActivatedEvent.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", instanceActivatedEvent.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + instanceActivatedEvent.getClusterId())); return; } Member member = cluster.getMember(instanceActivatedEvent.getMemberId()); if (member == null) { - log.warn(String.format("Member %s does not exist", instanceActivatedEvent.getMemberId())); + log.warn(String.format("Member %s does not exist", + instanceActivatedEvent.getMemberId())); return; } - MemberActivatedEvent memberActivatedEvent = - new MemberActivatedEvent(instanceActivatedEvent.getServiceName(), instanceActivatedEvent.getClusterId(), - instanceActivatedEvent.getClusterInstanceId(), - instanceActivatedEvent.getMemberId(), - instanceActivatedEvent.getNetworkPartitionId(), - instanceActivatedEvent.getPartitionId()); + MemberActivatedEvent memberActivatedEvent = new MemberActivatedEvent( + instanceActivatedEvent.getServiceName(), + instanceActivatedEvent.getClusterId(), + instanceActivatedEvent.getClusterInstanceId(), + instanceActivatedEvent.getMemberId(), + instanceActivatedEvent.getNetworkPartitionId(), + instanceActivatedEvent.getPartitionId()); // grouping - set grouid //TODO @@ -599,8 +602,7 @@ public class TopologyBuilder { TopologyManager.acquireWriteLock(); // try update lifecycle state if (!member.isStateTransitionValid(MemberStatus.Active)) { - log.error( - "Invalid state transition from [" + member.getStatus() + "] to [" + MemberStatus.Active + "]"); + log.error("Invalid state transition from [" + member.getStatus() + "] to [" + MemberStatus.Active + "]"); return; } else { member.setStatus(MemberStatus.Active); @@ -609,8 +611,8 @@ public class TopologyBuilder { try { Cartridge cartridge = CloudControllerContext.getInstance().getCartridge(service.getServiceName()); if (cartridge == null) { - throw new RuntimeException( - String.format("Cartridge not found: [cartridge-type] %s", service.getServiceName())); + throw new RuntimeException(String.format("Cartridge not found: [cartridge-type] %s", + service.getServiceName())); } Port port; @@ -632,8 +634,7 @@ public class TopologyBuilder { } } catch (Exception e) { String message = String.format("Could not add member ports: [service-name] %s [member-id] %s", - memberActivatedEvent.getServiceName(), - memberActivatedEvent.getMemberId()); + memberActivatedEvent.getServiceName(), memberActivatedEvent.getMemberId()); log.error(message, e); } @@ -644,19 +645,17 @@ public class TopologyBuilder { memberActivatedEvent.setMemberPublicIPs(member.getMemberPublicIPs()); TopologyManager.updateTopology(topology); - //member activated time - Long timeStamp = System.currentTimeMillis(); - // Publish member activated event TopologyEventPublisher.sendMemberActivatedEvent(memberActivatedEvent); // Publish statistics data - BAMUsageDataPublisher.publish(memberActivatedEvent.getMemberId(), memberActivatedEvent.getPartitionId(), + BAMUsageDataPublisher.publish(memberActivatedEvent.getMemberId(), + memberActivatedEvent.getPartitionId(), memberActivatedEvent.getNetworkPartitionId(), memberActivatedEvent.getClusterId(), - memberActivatedEvent.getClusterInstanceId(), - memberActivatedEvent.getServiceName(), MemberStatus.Active.toString(), - timeStamp, null, null, null); + memberActivatedEvent.getServiceName(), + MemberStatus.Active.toString(), + null); } } finally { TopologyManager.releaseWriteLock(); @@ -669,30 +668,32 @@ public class TopologyBuilder { Service service = topology.getService(instanceReadyToShutdownEvent.getServiceName()); //update the status of the member if (service == null) { - log.warn(String.format("Service %s does not exist", instanceReadyToShutdownEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + instanceReadyToShutdownEvent.getServiceName())); return; } Cluster cluster = service.getCluster(instanceReadyToShutdownEvent.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", instanceReadyToShutdownEvent.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + instanceReadyToShutdownEvent.getClusterId())); return; } + Member member = cluster.getMember(instanceReadyToShutdownEvent.getMemberId()); if (member == null) { - log.warn(String.format("Member %s does not exist", instanceReadyToShutdownEvent.getMemberId())); + log.warn(String.format("Member %s does not exist", + instanceReadyToShutdownEvent.getMemberId())); return; } - MemberReadyToShutdownEvent memberReadyToShutdownEvent = - new MemberReadyToShutdownEvent(instanceReadyToShutdownEvent.getServiceName(), - instanceReadyToShutdownEvent.getClusterId(), - instanceReadyToShutdownEvent.getClusterInstanceId(), - instanceReadyToShutdownEvent.getMemberId(), - instanceReadyToShutdownEvent.getNetworkPartitionId(), - instanceReadyToShutdownEvent.getPartitionId()); - //get the time of ReadyToShutdown state change - Long timeStamp = null; + MemberReadyToShutdownEvent memberReadyToShutdownEvent = new MemberReadyToShutdownEvent( + instanceReadyToShutdownEvent.getServiceName(), + instanceReadyToShutdownEvent.getClusterId(), + instanceReadyToShutdownEvent.getClusterInstanceId(), + instanceReadyToShutdownEvent.getMemberId(), + instanceReadyToShutdownEvent.getNetworkPartitionId(), + instanceReadyToShutdownEvent.getPartitionId()); try { TopologyManager.acquireWriteLock(); @@ -705,20 +706,18 @@ public class TopologyBuilder { log.info("Member Ready to shut down event adding status started"); TopologyManager.updateTopology(topology); - - timeStamp = System.currentTimeMillis(); } finally { TopologyManager.releaseWriteLock(); } TopologyEventPublisher.sendMemberReadyToShutdownEvent(memberReadyToShutdownEvent); //publishing data - BAMUsageDataPublisher - .publish(instanceReadyToShutdownEvent.getMemberId(), instanceReadyToShutdownEvent.getPartitionId(), - instanceReadyToShutdownEvent.getNetworkPartitionId(), - instanceReadyToShutdownEvent.getClusterId(), - instanceReadyToShutdownEvent.getClusterInstanceId(), - instanceReadyToShutdownEvent.getServiceName(), MemberStatus.ReadyToShutDown.toString(), - timeStamp, null, null, null); + BAMUsageDataPublisher.publish(instanceReadyToShutdownEvent.getMemberId(), + instanceReadyToShutdownEvent.getPartitionId(), + instanceReadyToShutdownEvent.getNetworkPartitionId(), + instanceReadyToShutdownEvent.getClusterId(), + instanceReadyToShutdownEvent.getServiceName(), + MemberStatus.ReadyToShutDown.toString(), + null); //termination of particular instance will be handled by autoscaler } @@ -728,34 +727,39 @@ public class TopologyBuilder { Service service = topology.getService(instanceMaintenanceModeEvent.getServiceName()); //update the status of the member if (service == null) { - log.warn(String.format("Service %s does not exist", instanceMaintenanceModeEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + instanceMaintenanceModeEvent.getServiceName())); return; } Cluster cluster = service.getCluster(instanceMaintenanceModeEvent.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", instanceMaintenanceModeEvent.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + instanceMaintenanceModeEvent.getClusterId())); return; } Member member = cluster.getMember(instanceMaintenanceModeEvent.getMemberId()); if (member == null) { - log.warn(String.format("Member %s does not exist", instanceMaintenanceModeEvent.getMemberId())); + log.warn(String.format("Member %s does not exist", + instanceMaintenanceModeEvent.getMemberId())); return; } - MemberMaintenanceModeEvent memberMaintenanceModeEvent = - new MemberMaintenanceModeEvent(instanceMaintenanceModeEvent.getServiceName(), - instanceMaintenanceModeEvent.getClusterId(), - instanceMaintenanceModeEvent.getClusterInstanceId(), - instanceMaintenanceModeEvent.getMemberId(), - instanceMaintenanceModeEvent.getNetworkPartitionId(), - instanceMaintenanceModeEvent.getPartitionId()); + + MemberMaintenanceModeEvent memberMaintenanceModeEvent = new MemberMaintenanceModeEvent( + instanceMaintenanceModeEvent.getServiceName(), + instanceMaintenanceModeEvent.getClusterId(), + instanceMaintenanceModeEvent.getClusterInstanceId(), + instanceMaintenanceModeEvent.getMemberId(), + instanceMaintenanceModeEvent.getNetworkPartitionId(), + instanceMaintenanceModeEvent.getPartitionId()); try { TopologyManager.acquireWriteLock(); // try update lifecycle state if (!member.isStateTransitionValid(MemberStatus.In_Maintenance)) { - log.error("Invalid State Transition from " + member.getStatus() + " to " + MemberStatus.In_Maintenance); + log.error("Invalid State Transition from " + member.getStatus() + " to " + + MemberStatus.In_Maintenance); return; } member.setStatus(MemberStatus.In_Maintenance); @@ -779,24 +783,28 @@ public class TopologyBuilder { * @param partitionId * @param memberId */ - public static void handleMemberTerminated(String serviceName, String clusterId, String networkPartitionId, - String partitionId, String memberId) { + public static void handleMemberTerminated(String serviceName, String clusterId, + String networkPartitionId, String partitionId, + String memberId) { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(serviceName); Properties properties; if (service == null) { - log.warn(String.format("Service %s does not exist", serviceName)); + log.warn(String.format("Service %s does not exist", + serviceName)); return; } Cluster cluster = service.getCluster(clusterId); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", clusterId)); + log.warn(String.format("Cluster %s does not exist", + clusterId)); return; } Member member = cluster.getMember(memberId); if (member == null) { - log.warn(String.format("Member %s does not exist", memberId)); + log.warn(String.format("Member %s does not exist", + memberId)); return; } @@ -812,9 +820,9 @@ public class TopologyBuilder { } /* @TODO leftover from grouping_poc*/ String groupAlias = null; - TopologyEventPublisher - .sendMemberTerminatedEvent(serviceName, clusterId, memberId, clusterInstanceId, networkPartitionId, - partitionId, properties, groupAlias); + TopologyEventPublisher.sendMemberTerminatedEvent(serviceName, clusterId, memberId, + clusterInstanceId, networkPartitionId, + partitionId, properties, groupAlias); } public static void handleMemberSuspended() { @@ -826,20 +834,21 @@ public class TopologyBuilder { } } - public static void handleClusterActivatedEvent( - ClusterStatusClusterActivatedEvent clusterStatusClusterActivatedEvent) { + public static void handleClusterActivatedEvent(ClusterStatusClusterActivatedEvent clusterStatusClusterActivatedEvent) { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(clusterStatusClusterActivatedEvent.getServiceName()); //update the status of the cluster if (service == null) { - log.warn(String.format("Service %s does not exist", clusterStatusClusterActivatedEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + clusterStatusClusterActivatedEvent.getServiceName())); return; } Cluster cluster = service.getCluster(clusterStatusClusterActivatedEvent.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", clusterStatusClusterActivatedEvent.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + clusterStatusClusterActivatedEvent.getClusterId())); return; } @@ -851,7 +860,8 @@ public class TopologyBuilder { } ClusterInstanceActivatedEvent clusterInstanceActivatedEvent = - new ClusterInstanceActivatedEvent(clusterStatusClusterActivatedEvent.getAppId(), + new ClusterInstanceActivatedEvent( + clusterStatusClusterActivatedEvent.getAppId(), clusterStatusClusterActivatedEvent.getServiceName(), clusterStatusClusterActivatedEvent.getClusterId(), clusterStatusClusterActivatedEvent.getInstanceId()); @@ -878,9 +888,8 @@ public class TopologyBuilder { } else { log.error(String.format("Cluster state transition is not valid: [cluster-id] %s " + " [instance-id] %s [current-status] %s [status-requested] %s", - clusterStatusClusterActivatedEvent.getClusterId(), - clusterStatusClusterActivatedEvent.getInstanceId(), context.getStatus(), - status)); + clusterStatusClusterActivatedEvent.getClusterId(), clusterStatusClusterActivatedEvent.getInstanceId(), + context.getStatus(), status)); return; } } finally { @@ -889,23 +898,27 @@ public class TopologyBuilder { } - public static void handleClusterInactivateEvent(ClusterStatusClusterInactivateEvent clusterInactivateEvent) { + public static void handleClusterInactivateEvent( + ClusterStatusClusterInactivateEvent clusterInactivateEvent) { Topology topology = TopologyManager.getTopology(); Service service = topology.getService(clusterInactivateEvent.getServiceName()); //update the status of the cluster if (service == null) { - log.warn(String.format("Service %s does not exist", clusterInactivateEvent.getServiceName())); + log.warn(String.format("Service %s does not exist", + clusterInactivateEvent.getServiceName())); return; } Cluster cluster = service.getCluster(clusterInactivateEvent.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", clusterInactivateEvent.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + clusterInactivateEvent.getClusterId())); return; } ClusterInstanceInactivateEvent clusterInactivatedEvent1 = - new ClusterInstanceInactivateEvent(clusterInactivateEvent.getAppId(), + new ClusterInstanceInactivateEvent( + clusterInactivateEvent.getAppId(), clusterInactivateEvent.getServiceName(), clusterInactivateEvent.getClusterId(), clusterInactivateEvent.getInstanceId()); @@ -937,6 +950,7 @@ public class TopologyBuilder { } } + private static void deleteAppResourcesFromMetadataService(ApplicationInstanceTerminatedEvent event) { try { MetaDataServiceClient metadataClient = new DefaultMetaDataServiceClient(); @@ -956,13 +970,15 @@ public class TopologyBuilder { //update the status of the cluster if (service == null) { - log.warn(String.format("Service %s does not exist", event.getServiceName())); + log.warn(String.format("Service %s does not exist", + event.getServiceName())); return; } Cluster cluster = service.getCluster(event.getClusterId()); if (cluster == null) { - log.warn(String.format("Cluster %s does not exist", event.getClusterId())); + log.warn(String.format("Cluster %s does not exist", + event.getClusterId())); return; } @@ -976,26 +992,27 @@ public class TopologyBuilder { ClusterStatus status = ClusterStatus.Terminated; if (context.isStateTransitionValid(status)) { context.setStatus(status); - log.info("Cluster Terminated adding status started for and removing the cluster instance" + - cluster.getClusterId()); + log.info("Cluster Terminated adding status started for and removing the cluster instance" + + cluster.getClusterId()); cluster.removeInstanceContext(event.getInstanceId()); TopologyManager.updateTopology(topology); //publishing data - ClusterInstanceTerminatedEvent clusterTerminatedEvent = - new ClusterInstanceTerminatedEvent(event.getAppId(), event.getServiceName(), - event.getClusterId(), event.getInstanceId()); + ClusterInstanceTerminatedEvent clusterTerminatedEvent = new ClusterInstanceTerminatedEvent(event.getAppId(), + event.getServiceName(), event.getClusterId(), event.getInstanceId()); TopologyEventPublisher.sendClusterTerminatedEvent(clusterTerminatedEvent); } else { log.error(String.format("Cluster state transition is not valid: [cluster-id] %s " + " [instance-id] %s [current-status] %s [status-requested] %s", - event.getClusterId(), event.getInstanceId(), context.getStatus(), status)); + event.getClusterId(), event.getInstanceId(), + context.getStatus(), status)); return; } } finally { TopologyManager.releaseWriteLock(); } + } public static void handleClusterTerminatingEvent(ClusterStatusClusterTerminatingEvent event) { @@ -1024,22 +1041,22 @@ public class TopologyBuilder { log.info("Cluster Terminating started for " + cluster.getClusterId()); TopologyManager.updateTopology(topology); //publishing data - ClusterInstanceTerminatingEvent clusterTerminaingEvent = - new ClusterInstanceTerminatingEvent(event.getAppId(), event.getServiceName(), - event.getClusterId(), event.getInstanceId()); + ClusterInstanceTerminatingEvent clusterTerminaingEvent = new ClusterInstanceTerminatingEvent(event.getAppId(), + event.getServiceName(), event.getClusterId(), event.getInstanceId()); TopologyEventPublisher.sendClusterTerminatingEvent(clusterTerminaingEvent); // Remove kubernetes services if available ClusterContext clusterContext = CloudControllerContext.getInstance().getClusterContext(event.getClusterId()); - if (StringUtils.isNotBlank(clusterContext.getKubernetesClusterId())) { + if(StringUtils.isNotBlank(clusterContext.getKubernetesClusterId())) { KubernetesIaas.removeKubernetesServices(event.getAppId(), event.getClusterId()); } } else { log.error(String.format("Cluster state transition is not valid: [cluster-id] %s " + " [instance-id] %s [current-status] %s [status-requested] %s", - event.getClusterId(), event.getInstanceId(), context.getStatus(), status)); + event.getClusterId(), event.getInstanceId(), + context.getStatus(), status)); } } finally { TopologyManager.releaseWriteLock();
