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/19 12:23:29 UTC
[3/5] stratos git commit: Removed kubernetes cluster
monitors/contexts and renamed vm cluster monitor to cluster monitor
http://git-wip-us.apache.org/repos/asf/stratos/blob/d9c323a2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
deleted file mode 100644
index 659751f..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.autoscaler.monitor.cluster;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.context.cluster.KubernetesClusterContext;
-import org.apache.stratos.autoscaler.context.member.MemberStatsContext;
-import org.apache.stratos.autoscaler.client.CloudControllerClient;
-import org.apache.stratos.autoscaler.exception.cartridge.TerminationException;
-import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
-import org.apache.stratos.common.constants.StratosConstants;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import org.apache.stratos.messaging.domain.topology.Member;
-import org.apache.stratos.messaging.domain.topology.Service;
-import org.apache.stratos.messaging.event.health.stat.AverageLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.AverageMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.AverageRequestsInFlightEvent;
-import org.apache.stratos.messaging.event.health.stat.GradientOfLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.GradientOfMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.GradientOfRequestsInFlightEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberAverageLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberAverageMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberFaultEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberGradientOfLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberGradientOfMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberSecondDerivativeOfLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.MemberSecondDerivativeOfMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.SecondDerivativeOfLoadAverageEvent;
-import org.apache.stratos.messaging.event.health.stat.SecondDerivativeOfMemoryConsumptionEvent;
-import org.apache.stratos.messaging.event.health.stat.SecondDerivativeOfRequestsInFlightEvent;
-import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
-import org.apache.stratos.messaging.event.topology.MemberActivatedEvent;
-import org.apache.stratos.messaging.event.topology.MemberMaintenanceModeEvent;
-import org.apache.stratos.messaging.event.topology.MemberReadyToShutdownEvent;
-import org.apache.stratos.messaging.event.topology.MemberStartedEvent;
-import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.drools.runtime.StatefulKnowledgeSession;
-
-/*
- * Every kubernetes cluster monitor should extend this class
- */
-public class KubernetesClusterMonitor extends VMClusterMonitor {
-
- private static final Log log = LogFactory.getLog(KubernetesClusterMonitor.class);
-
-// private StatefulKnowledgeSession dependentScaleCheckKnowledgeSession;
-
- protected KubernetesClusterMonitor(Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree) {
-
- super(cluster, hasScalingDependents, groupScalingEnabledSubtree);
-
- autoscalerRuleEvaluator = new AutoscalerRuleEvaluator();
- autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.CONTAINER_OBSOLETE_CHECK_DROOL_FILE);
- autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.CONTAINER_SCALE_CHECK_DROOL_FILE);
- autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.CONTAINER_MIN_CHECK_DROOL_FILE);
- autoscalerRuleEvaluator.parseAndBuildKnowledgeBaseForDroolsFile(StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);
-
- this.obsoleteCheckKnowledgeSession = autoscalerRuleEvaluator.getStatefulSession(
- StratosConstants.CONTAINER_OBSOLETE_CHECK_DROOL_FILE);
- this.scaleCheckKnowledgeSession = autoscalerRuleEvaluator.getStatefulSession(
- StratosConstants.CONTAINER_SCALE_CHECK_DROOL_FILE);
- this.minCheckKnowledgeSession = autoscalerRuleEvaluator.getStatefulSession(
- StratosConstants.CONTAINER_MIN_CHECK_DROOL_FILE);
- this.dependentScaleCheckKnowledgeSession = autoscalerRuleEvaluator.getStatefulSession(
- StratosConstants.DEPENDENT_SCALE_CHECK_DROOL_FILE);
-
- //this.kubernetesClusterCtxt = kubernetesClusterContext;
- }
-
-// @Override
-// public void handleAverageLoadAverageEvent(
-// AverageLoadAverageEvent averageLoadAverageEvent) {
-//
-// String clusterId = averageLoadAverageEvent.getClusterId();
-// float value = averageLoadAverageEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Avg load avg event: [cluster] %s [value] %s",
-// clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setAverageLoadAverage(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-//
-// }
-//
-// @Override
-// public void handleGradientOfLoadAverageEvent(
-// GradientOfLoadAverageEvent gradientOfLoadAverageEvent) {
-//
-// String clusterId = gradientOfLoadAverageEvent.getClusterId();
-// float value = gradientOfLoadAverageEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Grad of load avg event: [cluster] %s [value] %s",
-// clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setLoadAverageGradient(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleSecondDerivativeOfLoadAverageEvent(
-// SecondDerivativeOfLoadAverageEvent secondDerivativeOfLoadAverageEvent) {
-//
-// String clusterId = secondDerivativeOfLoadAverageEvent.getClusterId();
-// float value = secondDerivativeOfLoadAverageEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Second Derivation of load avg event: [cluster] %s "
-// + "[value] %s", clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setLoadAverageSecondDerivative(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleAverageMemoryConsumptionEvent(
-// AverageMemoryConsumptionEvent averageMemoryConsumptionEvent) {
-//
-// String clusterId = averageMemoryConsumptionEvent.getClusterId();
-// float value = averageMemoryConsumptionEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Avg Memory Consumption event: [cluster] %s "
-// + "[value] %s", averageMemoryConsumptionEvent.getClusterId(), value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setAverageMemoryConsumption(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleGradientOfMemoryConsumptionEvent(
-// GradientOfMemoryConsumptionEvent gradientOfMemoryConsumptionEvent) {
-//
-// String clusterId = gradientOfMemoryConsumptionEvent.getClusterId();
-// float value = gradientOfMemoryConsumptionEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Grad of Memory Consumption event: [cluster] %s "
-// + "[value] %s", clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setMemoryConsumptionGradient(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleSecondDerivativeOfMemoryConsumptionEvent(
-// SecondDerivativeOfMemoryConsumptionEvent secondDerivativeOfMemoryConsumptionEvent) {
-//
-// String clusterId = secondDerivativeOfMemoryConsumptionEvent.getClusterId();
-// float value = secondDerivativeOfMemoryConsumptionEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Second Derivation of Memory Consumption event: [cluster] %s "
-// + "[value] %s", clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setMemoryConsumptionSecondDerivative(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleAverageRequestsInFlightEvent(
-// AverageRequestsInFlightEvent averageRequestsInFlightEvent) {
-//
-// float value = averageRequestsInFlightEvent.getValue();
-// String clusterId = averageRequestsInFlightEvent.getClusterId();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Average Rif event: [cluster] %s [value] %s",
-// clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setAverageRequestsInFlight(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleGradientOfRequestsInFlightEvent(
-// GradientOfRequestsInFlightEvent gradientOfRequestsInFlightEvent) {
-//
-// String clusterId = gradientOfRequestsInFlightEvent.getClusterId();
-// float value = gradientOfRequestsInFlightEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Gradient of Rif event: [cluster] %s [value] %s",
-// clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setRequestsInFlightGradient(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleSecondDerivativeOfRequestsInFlightEvent(
-// SecondDerivativeOfRequestsInFlightEvent secondDerivativeOfRequestsInFlightEvent) {
-//
-// String clusterId = secondDerivativeOfRequestsInFlightEvent.getClusterId();
-// float value = secondDerivativeOfRequestsInFlightEvent.getValue();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Second derivative of Rif event: [cluster] %s "
-// + "[value] %s", clusterId, value));
-// }
-// KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterCtxt();
-// if (null != kubernetesClusterContext) {
-// kubernetesClusterContext.setRequestsInFlightSecondDerivative(value);
-// } else {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Kubernetes cluster context is not available for :" +
-// " [cluster] %s", clusterId));
-// }
-// }
-// }
-//
-// @Override
-// public void handleMemberAverageMemoryConsumptionEvent(
-// MemberAverageMemoryConsumptionEvent memberAverageMemoryConsumptionEvent) {
-//
-// String memberId = memberAverageMemoryConsumptionEvent.getMemberId();
-// KubernetesClusterContext kubernetesClusterCtxt = getKubernetesClusterCtxt();
-// MemberStatsContext memberStatsContext = kubernetesClusterCtxt.getMemberStatsContext(memberId);
-// if (null == memberStatsContext) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member context is not available for : [member] %s", memberId));
-// }
-// return;
-// }
-// float value = memberAverageMemoryConsumptionEvent.getValue();
-// memberStatsContext.setAverageMemoryConsumption(value);
-// }
-//
-// @Override
-// public void handleMemberGradientOfMemoryConsumptionEvent(
-// MemberGradientOfMemoryConsumptionEvent memberGradientOfMemoryConsumptionEvent) {
-//
-// String memberId = memberGradientOfMemoryConsumptionEvent.getMemberId();
-// KubernetesClusterContext kubernetesClusterCtxt = getKubernetesClusterCtxt();
-// MemberStatsContext memberStatsContext = kubernetesClusterCtxt.getMemberStatsContext(memberId);
-// if (null == memberStatsContext) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member context is not available for : [member] %s", memberId));
-// }
-// return;
-// }
-// float value = memberGradientOfMemoryConsumptionEvent.getValue();
-// memberStatsContext.setGradientOfMemoryConsumption(value);
-// }
-//
-// @Override
-// public void handleMemberSecondDerivativeOfMemoryConsumptionEvent(
-// MemberSecondDerivativeOfMemoryConsumptionEvent memberSecondDerivativeOfMemoryConsumptionEvent) {
-//
-// }
-//
-// @Override
-// public void handleMemberAverageLoadAverageEvent(
-// MemberAverageLoadAverageEvent memberAverageLoadAverageEvent) {
-//
-// KubernetesClusterContext kubernetesClusterCtxt = getKubernetesClusterCtxt();
-// String memberId = memberAverageLoadAverageEvent.getMemberId();
-// float value = memberAverageLoadAverageEvent.getValue();
-// MemberStatsContext memberStatsContext = kubernetesClusterCtxt.getMemberStatsContext(memberId);
-// if (null == memberStatsContext) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member context is not available for : [member] %s", memberId));
-// }
-// return;
-// }
-// memberStatsContext.setAverageLoadAverage(value);
-// }
-//
-// @Override
-// public void handleMemberGradientOfLoadAverageEvent(
-// MemberGradientOfLoadAverageEvent memberGradientOfLoadAverageEvent) {
-//
-// String memberId = memberGradientOfLoadAverageEvent.getMemberId();
-// KubernetesClusterContext kubernetesClusterCtxt = getKubernetesClusterCtxt();
-// MemberStatsContext memberStatsContext = kubernetesClusterCtxt.getMemberStatsContext(memberId);
-// if (null == memberStatsContext) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member context is not available for : [member] %s", memberId));
-// }
-// return;
-// }
-// float value = memberGradientOfLoadAverageEvent.getValue();
-// memberStatsContext.setGradientOfLoadAverage(value);
-// }
-//
-// @Override
-// public void handleMemberSecondDerivativeOfLoadAverageEvent(
-// MemberSecondDerivativeOfLoadAverageEvent memberSecondDerivativeOfLoadAverageEvent) {
-//
-// String memberId = memberSecondDerivativeOfLoadAverageEvent.getMemberId();
-// KubernetesClusterContext kubernetesClusterCtxt = getKubernetesClusterCtxt();
-// MemberStatsContext memberStatsContext = kubernetesClusterCtxt.getMemberStatsContext(memberId);
-// if (null == memberStatsContext) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member context is not available for : [member] %s", memberId));
-// }
-// return;
-// }
-// float value = memberSecondDerivativeOfLoadAverageEvent.getValue();
-// memberStatsContext.setSecondDerivativeOfLoadAverage(value);
-// }
-//
-// @Override
-// public void handleMemberFaultEvent(MemberFaultEvent memberFaultEvent) {
-// // kill the container
-// String memberId = memberFaultEvent.getMemberId();
-// Member member = getMemberByMemberId(memberId);
-// if (null == member) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member not found in the Topology: [member] %s", memberId));
-// }
-// return;
-// }
-// if (!member.isActive()) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member activated event has not received for the member %s. "
-// + "Therefore ignoring" + " the member fault health stat", memberId));
-// }
-// return;
-// }
-//
-// if (!getKubernetesClusterCtxt().activeMemberExist(memberId)) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Could not find the active member in kubernetes cluster context, "
-// + "[member] %s ", memberId));
-// }
-// return;
-// }
-//
-// // move member to obsolete list
-// getKubernetesClusterCtxt().moveMemberToObsoleteList(memberId);
-// if (log.isInfoEnabled()) {
-// String clusterId = memberFaultEvent.getClusterId();
-// String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
-// log.info(String.format("Faulty member is moved to obsolete list and removed from the active members list: "
-// + "[member] %s [kub-cluster] %s [cluster] %s ", memberId, kubernetesClusterID, clusterId));
-// }
-// }
-//
-// @Override
-// public void handleMemberStartedEvent(
-// MemberStartedEvent memberStartedEvent) {
-//
-// }
-//
-// @Override
-// public void handleMemberActivatedEvent(
-// MemberActivatedEvent memberActivatedEvent) {
-//
-// KubernetesClusterContext kubernetesClusterContext;
-// kubernetesClusterContext = getKubernetesClusterCtxt();
-// String memberId = memberActivatedEvent.getMemberId();
-// kubernetesClusterContext.addMemberStatsContext(new MemberStatsContext(memberId));
-// if (log.isInfoEnabled()) {
-// log.info(String.format("Member stat context has been added successfully: "
-// + "[member] %s", memberId));
-// }
-// kubernetesClusterContext.movePendingMemberToActiveMembers(memberId);
-// }
-//
-// @Override
-// public void handleMemberMaintenanceModeEvent(
-// MemberMaintenanceModeEvent maintenanceModeEvent) {
-//
-// // no need to do anything here
-// // we will not be receiving this event for containers
-// // we will only receive member terminated event
-// }
-//
-// @Override
-// public void handleMemberReadyToShutdownEvent(
-// MemberReadyToShutdownEvent memberReadyToShutdownEvent) {
-//
-// // no need to do anything here
-// // we will not be receiving this event for containers
-// // we will only receive member terminated event
-// }
-//
-// @Override
-// public void handleMemberTerminatedEvent(
-// MemberTerminatedEvent memberTerminatedEvent) {
-//
-// String memberId = memberTerminatedEvent.getMemberId();
-// if (getKubernetesClusterCtxt().removeTerminationPendingMember(memberId)) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member is removed from termination pending members list: "
-// + "[member] %s", memberId));
-// }
-// } else if (getKubernetesClusterCtxt().removePendingMember(memberId)) {
-// if (log.isDebugEnabled()) {
-// log.debug(String.format("Member is removed from pending members list: "
-// + "[member] %s", memberId));
-// }
-// } else if (getKubernetesClusterCtxt().removeActiveMemberById(memberId)) {
-// log.warn(String.format("Member is in the wrong list and it is removed from "
-// + "active members list: %s", memberId));
-// } else if (getKubernetesClusterCtxt().removeObsoleteMember(memberId)) {
-// log.warn(String.format("Obsolete member has either been terminated or its obsolete time out has expired and"
-// + " it is removed from obsolete members list: %s", memberId));
-// } else {
-// log.warn(String.format("Member is not available in any of the list active, "
-// + "pending and termination pending: %s", memberId));
-// }
-//
-// if (log.isInfoEnabled()) {
-// log.info(String.format("Member stat context has been removed successfully: "
-// + "[member] %s", memberId));
-// }
-// }
-//
-// @Override
-// public void handleClusterRemovedEvent(
-// ClusterRemovedEvent clusterRemovedEvent) {
-// getKubernetesClusterCtxt().getPendingMembers().clear();
-// getKubernetesClusterCtxt().getActiveMembers().clear();
-// getKubernetesClusterCtxt().getTerminationPendingMembers().clear();
-// getKubernetesClusterCtxt().getObsoletedMembers().clear();
-// }
-//
-// public KubernetesClusterContext getKubernetesClusterCtxt() {
-// return (KubernetesClusterContext) getClusterContext();
-// }
-//
-// private Member getMemberByMemberId(String memberId) {
-// try {
-// TopologyManager.acquireReadLock();
-// for (Service service : TopologyManager.getTopology().getServices()) {
-// for (Cluster cluster : service.getClusters()) {
-// if (cluster.memberExists(memberId)) {
-// return cluster.getMember(memberId);
-// }
-// }
-// }
-// return null;
-// } finally {
-// TopologyManager.releaseReadLock();
-// }
-// }
-
- @Override
- public void terminateAllMembers(String instanceId, String networkPartitionId) {
- try {
- CloudControllerClient.getInstance().terminateAllContainers(getClusterId());
- } catch (TerminationException e) {
- log.error(String.format("Could not terminate containers: [cluster-id] %s",
- getClusterId()), e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d9c323a2/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
deleted file mode 100644
index f09f440..0000000
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesServiceClusterMonitor.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.autoscaler.monitor.cluster;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-
-/*
- * It is monitoring a kubernetes service cluster periodically.
- */
-public final class KubernetesServiceClusterMonitor extends KubernetesClusterMonitor {
-
- private static final Log log = LogFactory.getLog(KubernetesServiceClusterMonitor.class);
-
- private String lbReferenceType;
-
- public KubernetesServiceClusterMonitor(Cluster cluster, boolean hasScalingDependents, boolean groupScalingEnabledSubtree) {
- super(cluster, hasScalingDependents, groupScalingEnabledSubtree);
- readConfigurations();
- }
-
- @Override
- public void run() {
-
- if (log.isDebugEnabled()) {
- log.debug("KubernetesServiceClusterMonitor is running..." + this.toString());
- }
- try {
-
- //TODO to get status from correct instance if (!ClusterStatus.Active.getNextStates().contains(getStatus())) {
- monitor();
- /*} else {
- if (log.isDebugEnabled()) {
- log.debug("KubernetesServiceClusterMonitor is suspended as the cluster is in "
- + getStatus() + "state");
- }
- }*/
- } catch (Exception e) {
- log.error("KubernetesServiceClusterMonitor: Monitor failed." + this.toString(),
- e);
- }
- }
-
-// @Override
-// public void monitor() {
-// final String instanceId = this.getKubernetesClusterCtxt().getInstanceId();
-// Runnable monitoringRunnable = new Runnable() {
-//
-// @Override
-// public void run() {
-// obsoleteCheck();
-// minCheck();
-// scaleCheck(instanceId);
-// }
-// };
-// monitoringRunnable.run();
-// }
-//
-//
-// private void scaleCheck(String instanceId) {
-// boolean rifReset = getKubernetesClusterCtxt().isRifReset();
-// boolean memoryConsumptionReset = getKubernetesClusterCtxt().isMemoryConsumptionReset();
-// boolean loadAverageReset = getKubernetesClusterCtxt().isLoadAverageReset();
-// if (log.isDebugEnabled()) {
-// log.debug("flag of rifReset : " + rifReset
-// + " flag of memoryConsumptionReset : "
-// + memoryConsumptionReset + " flag of loadAverageReset : "
-// + loadAverageReset);
-// }
-// String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
-// String clusterId = getClusterId();
-// if (rifReset || memoryConsumptionReset || loadAverageReset) {
-// getScaleCheckKnowledgeSession().setGlobal("clusterId", clusterId);
-// getScaleCheckKnowledgeSession().setGlobal("autoscalePolicy", getAutoscalePolicy(instanceId));
-// getScaleCheckKnowledgeSession().setGlobal("rifReset", rifReset);
-// getScaleCheckKnowledgeSession().setGlobal("mcReset", memoryConsumptionReset);
-// getScaleCheckKnowledgeSession().setGlobal("laReset", loadAverageReset);
-// if (log.isDebugEnabled()) {
-// log.debug(String.format(
-// "Running scale check for [kub-cluster] : %s [cluster] : %s ", kubernetesClusterID, getClusterId()));
-// }
-// scaleCheckFactHandle = AutoscalerRuleEvaluator.evaluate(
-// getScaleCheckKnowledgeSession(), scaleCheckFactHandle, getKubernetesClusterCtxt());
-// getKubernetesClusterCtxt().setRifReset(false);
-// getKubernetesClusterCtxt().setMemoryConsumptionReset(false);
-// getKubernetesClusterCtxt().setLoadAverageReset(false);
-// } else if (log.isDebugEnabled()) {
-// log.debug(String.format("Scale check will not run since none of the statistics have not received yet for "
-// + "[kub-cluster] : %s [cluster] : %s", kubernetesClusterID, clusterId));
-// }
-// }
-//
-// private AutoscalePolicy getAutoscalePolicy(String instanceId) {
-// KubernetesClusterContext kubernetesClusterContext = (KubernetesClusterContext) this.clusterContext;
-// return kubernetesClusterContext.getAutoscalePolicy();
-// }
-//
-// private void minCheck() {
-// getMinCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
-// String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format(
-// "Running min check for [kub-cluster] : %s [cluster] : %s ", kubernetesClusterID, getClusterId()));
-// }
-// minCheckFactHandle = AutoscalerRuleEvaluator.evaluate(
-// getMinCheckKnowledgeSession(), minCheckFactHandle,
-// getKubernetesClusterCtxt());
-// }
-//
-// private void obsoleteCheck() {
-// getObsoleteCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
-// String kubernetesClusterID = getKubernetesClusterCtxt().getKubernetesClusterID();
-// if (log.isDebugEnabled()) {
-// log.debug(String.format(
-// "Running obsolete check for [kub-cluster] : %s [cluster] : %s ", kubernetesClusterID, getClusterId()));
-// }
-// obsoleteCheckFactHandle = AutoscalerRuleEvaluator.evaluate(
-// getObsoleteCheckKnowledgeSession(), obsoleteCheckFactHandle,
-// getKubernetesClusterCtxt());
-// }
-//
-// @Override
-// public void destroy() {
-// getMinCheckKnowledgeSession().dispose();
-// getObsoleteCheckKnowledgeSession().dispose();
-// getScaleCheckKnowledgeSession().dispose();
-// setDestroyed(true);
-// stopScheduler();
-// if (log.isDebugEnabled()) {
-// log.debug("KubernetesServiceClusterMonitor Drools session has been disposed. " + this.toString());
-// }
-// }
-//
-// @Override
-// protected void readConfigurations() {
-// XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
-// int monitorInterval = conf.getInt(AutoScalerConstants.KubernetesService_Cluster_MONITOR_INTERVAL, 60000);
-// setMonitorIntervalMilliseconds(monitorInterval);
-// if (log.isDebugEnabled()) {
-// log.debug("KubernetesServiceClusterMonitor task interval set to : " + getMonitorIntervalMilliseconds());
-// }
-// }
-//
-// @Override
-// public String toString() {
-// return "KubernetesServiceClusterMonitor for " + "[ clusterId=" + getClusterId() + "]";
-// }
-//
-// public String getLbReferenceType() {
-// return lbReferenceType;
-// }
-//
-// public void setLbReferenceType(String lbReferenceType) {
-// this.lbReferenceType = lbReferenceType;
-// }
-//
-// @Override
-// public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
-//
-// if (properties != null) {
-// Property[] propertyArray = properties.getProperties();
-// if (propertyArray == null) {
-// return;
-// }
-// List<Property> propertyList = Arrays.asList(propertyArray);
-//
-// for (Property property : propertyList) {
-// String key = property.getName();
-// String value = property.getValue();
-//
-// if (StratosConstants.KUBERNETES_MIN_REPLICAS.equals(key)) {
-// int min = Integer.parseInt(value);
-// int max = getKubernetesClusterCtxt().getMaxReplicas();
-// if (min > max) {
-// String msg = String.format("%s should be less than %s . But %s is not less than %s.",
-// StratosConstants.KUBERNETES_MIN_REPLICAS, StratosConstants.KUBERNETES_MAX_REPLICAS, min, max);
-// log.error(msg);
-// throw new InvalidArgumentException(msg);
-// }
-// getKubernetesClusterCtxt().setMinReplicas(min);
-// break;
-// }
-// }
-//
-// }
-// }
-//
-// @Override
-// public void terminateAllMembers(String instanceId, String networkPartitionId) {
-//
-// }
-//
-// @Override
-// public void onChildScalingEvent(MonitorScalingEvent scalingEvent) {
-//
-// }
-//
-// @Override
-// public void onParentScalingEvent(MonitorScalingEvent scalingEvent) {
-//
-// }
-}