You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/10/10 13:45:25 UTC
[06/14] git commit: Merge branch 'container-autoscaling' of
https://git-wip-us.apache.org/repos/asf/stratos into container-autoscaling
Merge branch 'container-autoscaling' of https://git-wip-us.apache.org/repos/asf/stratos into container-autoscaling
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/31daf2f3
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/31daf2f3
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/31daf2f3
Branch: refs/heads/container-autoscaling
Commit: 31daf2f328e4a9abe988d926a3fe32d2556f7693
Parents: fce7322 30e08c8
Author: R-Rajkumar <rr...@gmail.com>
Authored: Thu Oct 9 11:09:31 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Thu Oct 9 11:09:31 2014 +0530
----------------------------------------------------------------------
.../cloud/controller/CloudControllerClient.java | 14 +-
.../KubernetesServiceClusterMonitor.java | 61 +-
...inerClusterContextToKubernetesContainer.java | 141 +++
...tainerClusterContextToKubernetesService.java | 64 ++
...erClusterContextToReplicationController.java | 90 ++
.../MemberContextToKubernetesContainer.java | 147 ---
.../MemberContextToKubernetesService.java | 65 --
.../MemberContextToReplicationController.java | 90 --
.../functions/PodToMemberContext.java | 46 +
.../impl/CloudControllerServiceImpl.java | 209 +++--
.../interfaces/CloudControllerService.java | 8 +-
.../pojo/ContainerClusterContext.java | 87 ++
.../cloud/controller/pojo/MemberContext.java | 29 +-
.../pom.xml | 2 +-
.../kubernetes/client/KubernetesApiClient.java | 202 +++--
.../KubernetesAPIClientInterface.java | 8 +
.../client/rest/KubernetesResponse.java | 56 ++
.../client/rest/KubernetesResponseHandler.java | 71 ++
.../kubernetes/client/rest/RestClient.java | 88 +-
.../pom.xml | 19 +
.../modules/distribution/src/assembly/bin.xml | 6 +-
.../main/resources/CloudControllerService.wsdl | 898 ++++++++++---------
22 files changed, 1393 insertions(+), 1008 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/31daf2f3/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java
index 65035d0,eaa80c4..b7a476a
--- 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
@@@ -33,14 -31,9 +33,15 @@@ import org.apache.stratos.autoscaler.ex
import org.apache.stratos.autoscaler.exception.TerminationException;
import org.apache.stratos.autoscaler.kubernetes.KubernetesManager;
import org.apache.stratos.autoscaler.util.ConfUtil;
-import org.apache.stratos.cloud.controller.stub.*;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidClusterExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidIaasProviderExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidMemberExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidPartitionExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceStub;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
+ import org.apache.stratos.cloud.controller.stub.pojo.ContainerClusterContext;
import org.apache.stratos.cloud.controller.stub.pojo.MemberContext;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
http://git-wip-us.apache.org/repos/asf/stratos/blob/31daf2f3/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesServiceClusterMonitor.java
index 1688df1,6362fc4..d0d7668
--- 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
@@@ -119,75 -125,28 +128,75 @@@ public final class KubernetesServiceClu
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) {
+ }
}
+
+ minCheck();
+ scaleCheck();
}
- @Override
+ private void scaleCheck() {
+ 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", autoscalePolicy);
+ 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 ", kubernetesClusterID));
+ }
+ scaleCheckFactHandle = AutoscalerRuleEvaluator.evaluateScaleCheck(
+ 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 void minCheck() {
+ getMinCheckKnowledgeSession().setGlobal("clusterId", getClusterId());
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Running minimum check for cluster %s ",
+ getClusterId()));
+ }
+ minCheckFactHandle = AutoscalerRuleEvaluator.evaluateMinCheck(
+ getMinCheckKnowledgeSession(), minCheckFactHandle,
+ getKubernetesClusterCtxt());
+ }
+
+ @Override
public void destroy() {
getMinCheckKnowledgeSession().dispose();
getScaleCheckKnowledgeSession().dispose();
http://git-wip-us.apache.org/repos/asf/stratos/blob/31daf2f3/products/stratos/modules/distribution/src/assembly/bin.xml
----------------------------------------------------------------------