You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/10/11 06:13:03 UTC
[17/50] [abbrv] git commit: calling createContainers() from drool
calling createContainers() from drool
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a7c01349
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a7c01349
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a7c01349
Branch: refs/heads/master
Commit: a7c013495692b0450a6509256af2f84919144840
Parents: 0e605f5
Author: R-Rajkumar <rr...@gmail.com>
Authored: Thu Oct 9 18:57:43 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Sat Oct 11 09:30:56 2014 +0530
----------------------------------------------------------------------
.../KubernetesServiceClusterMonitor.java | 50 +-------------------
.../autoscaler/rule/RuleTasksDelegator.java | 10 ++--
.../src/main/conf/container-mincheck.drl | 14 ++++--
.../src/main/conf/container-scaling.drl | 4 +-
4 files changed, 19 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/a7c01349/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
index 068f21e..fdff259 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
@@ -22,13 +22,10 @@ import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.KubernetesClusterContext;
-import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient;
-import org.apache.stratos.autoscaler.exception.SpawningException;
import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
import org.apache.stratos.autoscaler.util.AutoScalerConstants;
import org.apache.stratos.autoscaler.util.ConfUtil;
-import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
import org.apache.stratos.common.constants.StratosConstants;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
@@ -75,51 +72,8 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
@Override
protected void monitor() {
-
- String kubernetesClusterId = getKubernetesClusterCtxt().getKubernetesClusterID();
- int activeMembers = getKubernetesClusterCtxt().getActiveMembers().size();
- int pendingMembers = getKubernetesClusterCtxt().getPendingMembers().size();
- int nonTerminatedMembers = getKubernetesClusterCtxt().getNonTerminatedMemberCount();
- log.info(KubernetesServiceClusterMonitor.class.getName()+" is running.... Active Members: "+activeMembers
- + " Pending Members: "+pendingMembers);
-
- if (nonTerminatedMembers == 0) {
- try {
- CloudControllerClient ccClient = CloudControllerClient.getInstance();
- MemberContext[] memberContexts = ccClient.createContainers(kubernetesClusterId,
- getClusterId());
- for (MemberContext memberContext : memberContexts) {
-
- if (null != memberContext) {
- getKubernetesClusterCtxt().addPendingMember(memberContext);
- if (log.isDebugEnabled()) {
- log.debug(String.format(
- "Pending member added, [member] %s [kub cluster] %s",
- memberContext.getMemberId(), kubernetesClusterId));
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Returned member context is null, did not add to pending members");
- }
- }
- }
- } catch (SpawningException spawningException) {
- if (log.isDebugEnabled()) {
- String message = "Cannot create containers, will retry in "
- + (getMonitorIntervalMilliseconds() / 1000) + "s";
- log.debug(message, spawningException);
- }
- } catch (Exception exception) {
- if (log.isDebugEnabled()) {
- String message = "Error while creating containers, will retry in "
- + (getMonitorIntervalMilliseconds() / 1000) + "s";
- log.debug(message, exception);
- }
- }
- } else {
- minCheck();
- scaleCheck();
- }
+ minCheck();
+ scaleCheck();
}
private void scaleCheck() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a7c01349/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 b062913..416aa31 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
@@ -202,12 +202,11 @@ public class RuleTasksDelegator {
public void delegateCreateContainers(KubernetesClusterContext kubernetesClusterContext) {
try {
+ String kubernetesClusterId = kubernetesClusterContext.getKubernetesClusterID();
+ String clusterId = kubernetesClusterContext.getClusterId();
CloudControllerClient ccClient = CloudControllerClient.getInstance();
- String kubernetesClusterId = kubernetesClusterContext.getKubernetesClusterID();
- String clusterId = kubernetesClusterContext.getClusterId();
MemberContext[] memberContexts = ccClient.createContainers(kubernetesClusterId, clusterId);
for (MemberContext memberContext : memberContexts) {
-
if (null != memberContext) {
kubernetesClusterContext.addPendingMember(memberContext);
if (log.isDebugEnabled()) {
@@ -221,12 +220,13 @@ public class RuleTasksDelegator {
}
}
}
- } catch (Exception e) {
+ } catch (Throwable e) {
log.error("Cannot create containers ", e);
}
}
- public void delegateExpandCluster(String clusterId, int replicas) {
+ public void delegateExpandCluster(KubernetesClusterContext kubernetesClusterContext, int replicas) {
+ String clusterId = kubernetesClusterContext.getClusterId();
try {
CloudControllerClient.getInstance().updateKubernetesController(clusterId, replicas);
} catch (Throwable e) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/a7c01349/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl b/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
index edea3cf..9c3cf0f 100644
--- a/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
+++ b/products/stratos/modules/distribution/src/main/conf/container-mincheck.drl
@@ -39,10 +39,16 @@ dialect "mvel"
+ " [cluster] " + clusterId + " Non terminated member count: " + nonTerminatedReplicas))
eval(log.debug("[min-check] [kub-cluster] " + kubernetesClusterId
+ " [cluster] " + clusterId + " Minimum member count: " + minReplicas))
- eval (nonTerminatedReplicas < minReplicas)
+ eval(nonTerminatedReplicas < minReplicas)
then
- log.info("[min-check] [kub-cluster] " + kubernetesClusterId
- + " [cluster] " + clusterId + " : min-rule not satisfied, creating more containers")
- $delegator.delegateExpandCluster($kubernetesClusterContext.getClusterId(), minReplicas);
+ if (nonTerminatedReplicas == 0) {
+ log.info("[min-check] [kub-cluster] " + kubernetesClusterId
+ + " [cluster] " + clusterId + " : min-rule not satisfied, no containers created yet, creating minReplicas : " + minReplicas);
+ $delegator.delegateCreateContainers($kubernetesClusterContext);
+ } else {
+ log.info("[min-check] [kub-cluster] " + kubernetesClusterId
+ + " [cluster] " + clusterId + " : min-rule not satisfied, expanding cluster to minReplicas : " + minReplicas);
+ $delegator.delegateExpandCluster($kubernetesClusterContext, minReplicas);
+ }
end
http://git-wip-us.apache.org/repos/asf/stratos/blob/a7c01349/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
index c773264..6f20274 100644
--- a/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/container-scaling.drl
@@ -136,11 +136,11 @@ dialect "mvel"
}
//expand the cluster
log.info("[scaling] " + " [cluster] " + clusterId + " valid number of replicas to expand : " + requiredReplicas);
- $delegator.delegateExpandCluster(clusterId, requiredReplicas);
+ $delegator.delegateExpandCluster($kubernetesClusterContext, requiredReplicas);
} else if (scaleDown) {
log.debug("[scale-down] Decided to scale down : [kub-cluster] " + kubernetesClusterId + " [cluster] " + clusterId);
//shrink the cluster to minReplicas
- $delegator.delegateExpandCluster(clusterId, minReplicas);
+ $delegator.delegateExpandCluster($kubernetesClusterContext, minReplicas);
} else {
log.debug("[scaling] No decision made to either scale up or down ... ");
}