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:12:49 UTC
[03/50] [abbrv] git commit: Temporarily fixing Kubernetes cluster
monitor to work with new CC APIs.
Temporarily fixing Kubernetes cluster monitor to work with new CC APIs.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c02907b7
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c02907b7
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c02907b7
Branch: refs/heads/master
Commit: c02907b7b172611d42dafaa2a149d7f0e7994b1a
Parents: faf532c
Author: Nirmal Fernando <ni...@gmail.com>
Authored: Wed Oct 8 19:11:43 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Sat Oct 11 09:30:55 2014 +0530
----------------------------------------------------------------------
.../cloud/controller/CloudControllerClient.java | 2 +-
.../KubernetesServiceClusterMonitor.java | 61 +++++++++++---------
2 files changed, 36 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/c02907b7/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 296182f..eaa80c4 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
@@ -238,7 +238,7 @@ public class CloudControllerClient {
* @return
* @throws SpawningException
*/
- public synchronized MemberContext[] createContainer(String kubernetesClusterId, String clusterId) throws SpawningException {
+ public synchronized MemberContext[] createContainers(String kubernetesClusterId, String clusterId) throws SpawningException {
try {
KubernetesManager kubernetesManager = KubernetesManager.getInstance();
http://git-wip-us.apache.org/repos/asf/stratos/blob/c02907b7/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 6e14ce0..6362fc4 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
@@ -91,49 +91,58 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
TopologyManager.releaseReadLock();
}
- // is container created successfully?
- boolean success = false;
String kubernetesClusterId = getKubernetesClusterCtxt().getKubernetesClusterID();
int activeMembers = getKubernetesClusterCtxt().getActiveMembers().size();
int pendingMembers = getKubernetesClusterCtxt().getPendingMembers().size();
int nonTerminatedMembers = activeMembers + pendingMembers;
+ log.info(KubernetesServiceClusterMonitor.class.getName()+" is running.... Active Members: "+activeMembers
+ + " Pending Members: "+pendingMembers);
+
+ if (nonTerminatedMembers > 0 && nonTerminatedMembers < minReplicas) {
+ // update
+ int requiredReplicas = minReplicas - nonTerminatedMembers;
+ log.info("Required replicas : "+requiredReplicas);
+
+ } else if (nonTerminatedMembers >= minReplicas) {
+ // TODO autoscale
+ log.info("Current member count : "+nonTerminatedMembers);
+ } else {
+ try {
+ CloudControllerClient ccClient = CloudControllerClient.getInstance();
+ MemberContext[] memberContexts = ccClient.createContainers(kubernetesClusterId,
+ getClusterId());
+ for (MemberContext memberContext : memberContexts) {
- if (nonTerminatedMembers == 0) {
- while (!success) {
- try {
- CloudControllerClient ccClient = CloudControllerClient.getInstance();
- MemberContext memberContext = ccClient.createContainer(kubernetesClusterId, getClusterId());
if (null != memberContext) {
getKubernetesClusterCtxt().addPendingMember(memberContext);
- success = true;
- numberOfReplicasInServiceCluster = minReplicas;
if (log.isDebugEnabled()) {
- log.debug(String.format("Pending member added, [member] %s [kub cluster] %s",
- memberContext.getMemberId(), kubernetesClusterId));
+ 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 "
- + (retryInterval / 1000) + "s";
- log.debug(message, spawningException);
- }
- } catch (Exception exception) {
- if (log.isDebugEnabled()) {
- String message = "Error while creating containers, will retry in "
- + (retryInterval / 1000) + "s";
- log.debug(message, exception);
- }
}
- try {
- Thread.sleep(retryInterval);
- } catch (InterruptedException ignored) {
+ } catch (SpawningException spawningException) {
+ if (log.isDebugEnabled()) {
+ String message = "Cannot create containers, will retry in "
+ + (retryInterval / 1000) + "s";
+ log.debug(message, spawningException);
+ }
+ } catch (Exception exception) {
+ if (log.isDebugEnabled()) {
+ String message = "Error while creating containers, will retry in "
+ + (retryInterval / 1000) + "s";
+ log.debug(message, exception);
}
}
+ try {
+ Thread.sleep(retryInterval);
+ } catch (InterruptedException ignored) {
+ }
}
}