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/14 06:35:34 UTC

[2/2] git commit: Implementing https://issues.apache.org/jira/browse/STRATOS-892

Implementing https://issues.apache.org/jira/browse/STRATOS-892


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/da2c7920
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/da2c7920
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/da2c7920

Branch: refs/heads/master
Commit: da2c792059a40c2d0b873c347acbbf4db4d2b274
Parents: 8105f27
Author: Nirmal Fernando <ni...@gmail.com>
Authored: Tue Oct 14 10:04:51 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Tue Oct 14 10:04:51 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   |    2 +-
 .../exception/InvalidArgumentException.java     |   46 +
 .../interfaces/AutoScalerServiceInterface.java  |    2 +-
 .../monitor/AbstractClusterMonitor.java         |    3 +-
 .../KubernetesServiceClusterMonitor.java        |   13 +-
 .../autoscaler/monitor/VMLbClusterMonitor.java  |    3 +-
 .../monitor/VMServiceClusterMonitor.java        |    3 +-
 .../manager/client/AutoscalerServiceClient.java |    2 +-
 .../rest/endpoint/services/ServiceUtils.java    |    9 +-
 .../src/main/resources/AutoScalerService.wsdl   | 1222 +++++++++---------
 10 files changed, 695 insertions(+), 610 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index 69532b1..4b6b897 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -327,7 +327,7 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
 
     }
 
-    public void updateClusterMonitor(String clusterId, Properties properties) {
+    public void updateClusterMonitor(String clusterId, Properties properties) throws InvalidArgumentException {
         if (log.isDebugEnabled()) {
             log.debug(String.format("Updating Cluster monitor [Cluster id] %s ", clusterId));
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidArgumentException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidArgumentException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidArgumentException.java
new file mode 100644
index 0000000..79492a7
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/InvalidArgumentException.java
@@ -0,0 +1,46 @@
+/*
+ * 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.exception;
+
+public class InvalidArgumentException extends Exception {
+
+    private static final long serialVersionUID = -43882156675116287L;
+    private String message;
+	
+	public InvalidArgumentException(String message) {
+		super(message);
+		this.message = message;
+	}
+	
+	public InvalidArgumentException(String message,Throwable e) {
+		super(message,e);
+		this.message = message;
+	}
+	
+	public InvalidArgumentException(Throwable e) {
+		super(e);
+	}
+	
+	@Override
+	public String getMessage() {
+		return message;
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index fe2801d..2f88581 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -184,5 +184,5 @@ public interface AutoScalerServiceInterface {
      * @param clusterId id of the cluster.
      * @param properties updated properties.
      */
-    void updateClusterMonitor(String clusterId, Properties properties);
+    void updateClusterMonitor(String clusterId, Properties properties) throws InvalidArgumentException;
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
index 774fd2e..972ddad 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/AbstractClusterMonitor.java
@@ -22,6 +22,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.stratos.cloud.controller.stub.pojo.Properties;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
@@ -159,7 +160,7 @@ public abstract class AbstractClusterMonitor implements Runnable {
 
     public abstract void handleClusterRemovedEvent(ClusterRemovedEvent clusterRemovedEvent);
     
-    public abstract void handleDynamicUpdates(Properties properties);
+    public abstract void handleDynamicUpdates(Properties properties) throws InvalidArgumentException;
 
     public String getClusterId() {
         return clusterId;

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/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 3d47296..8abcf33 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
@@ -27,6 +27,7 @@ import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.KubernetesClusterContext;
+import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.stratos.autoscaler.util.AutoScalerConstants;
@@ -168,7 +169,7 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
     }
 
     @Override
-    public void handleDynamicUpdates(Properties properties) {
+    public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
         
         if (properties != null) {
             Property[] propertyArray = properties.getProperties();
@@ -182,7 +183,15 @@ public final class KubernetesServiceClusterMonitor extends KubernetesClusterMoni
                 String value = property.getValue();
                 
                 if (StratosConstants.KUBERNETES_MIN_REPLICAS.equals(key)) {
-                    getKubernetesClusterCtxt().setMinReplicas(Integer.parseInt(value));
+                    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;
                 }
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMLbClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMLbClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMLbClusterMonitor.java
index 112f7ba..af8cf47 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMLbClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMLbClusterMonitor.java
@@ -28,6 +28,7 @@ import org.apache.stratos.autoscaler.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.NetworkPartitionLbHolder;
 import org.apache.stratos.autoscaler.PartitionContext;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
 import org.apache.stratos.autoscaler.partition.PartitionManager;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
@@ -167,7 +168,7 @@ public class VMLbClusterMonitor extends VMClusterMonitor {
     }
 
     @Override
-    public void handleDynamicUpdates(Properties properties) {
+    public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
         // TODO 
         
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMServiceClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMServiceClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMServiceClusterMonitor.java
index e102ee9..6492490 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMServiceClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/VMServiceClusterMonitor.java
@@ -28,6 +28,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.NetworkPartitionContext;
 import org.apache.stratos.autoscaler.PartitionContext;
 import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.exception.InvalidArgumentException;
 import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator;
 import org.apache.stratos.autoscaler.util.AutoScalerConstants;
@@ -227,7 +228,7 @@ public class VMServiceClusterMonitor extends VMClusterMonitor {
     }
 
     @Override
-    public void handleDynamicUpdates(Properties properties) {
+    public void handleDynamicUpdates(Properties properties) throws InvalidArgumentException {
         // TODO 
         
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
index 8445095..cd35075 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
@@ -265,7 +265,7 @@ public class AutoscalerServiceClient {
         return stub.updateKubernetesHost(kubernetesHost);
     }
     
-    public void updateClusterMonitor(String clusterId, Properties properties) throws RemoteException {
+    public void updateClusterMonitor(String clusterId, Properties properties) throws RemoteException, AutoScalerServiceInvalidArgumentExceptionException {
         stub.updateClusterMonitor(clusterId, properties);
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/da2c7920/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 461a5f7..14c5331 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -1491,8 +1491,13 @@ public class ServiceUtils {
                 if (property != null) {
                     autoscalerServiceClient.updateClusterMonitor(cluster.getClusterId(), PojoConverter.getProperties(property));
                 }
-            } catch(Exception e) {
-                log.error(e.getMessage(), e);
+            } catch(AutoScalerServiceInvalidArgumentExceptionException e) {
+                String message = e.getFaultMessage().getInvalidArgumentException().getMessage();
+                log.error(message, e);
+                throw new RestAPIException(message, e);
+            } catch (RemoteException e) {
+                String msg = "Error while connecting to Autoscaler Service. "+e.getMessage();
+                log.error(msg, e);
                 throw new RestAPIException(e.getMessage(), e);
             }
         }