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
----------------------------------------------------------------------