You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/05/17 21:36:09 UTC

[4/4] stratos git commit: Introducing custom exceptions for application policy

Introducing custom exceptions for application policy


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

Branch: refs/heads/master
Commit: 1ff37ab5bded48de8ebd18f061b0525bb8d1a5db
Parents: 1fb43bc
Author: Pubudu Gunatilaka <pu...@gmail.com>
Authored: Mon May 18 00:09:12 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon May 18 01:06:00 2015 +0530

----------------------------------------------------------------------
 ...ApplicationPolicyAlreadyExistsException.java |  32 +
 .../autoscaler/services/AutoscalerService.java  |   4 +-
 .../services/impl/AutoscalerServiceImpl.java    |  17 +-
 .../common/client/AutoscalerServiceClient.java  |   2 +-
 .../rest/endpoint/api/StratosApiV41.java        |  13 +-
 .../rest/endpoint/api/StratosApiV41Utils.java   |   2 +-
 .../src/main/resources/AutoscalerService.wsdl   | 802 ++++++++++---------
 7 files changed, 470 insertions(+), 402 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/ApplicationPolicyAlreadyExistsException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/ApplicationPolicyAlreadyExistsException.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/ApplicationPolicyAlreadyExistsException.java
new file mode 100644
index 0000000..eae5eb2
--- /dev/null
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/exception/policy/ApplicationPolicyAlreadyExistsException.java
@@ -0,0 +1,32 @@
+/*
+ * 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.policy;
+
+/**
+ * Application Policy Already Exists
+ */
+public class ApplicationPolicyAlreadyExistsException extends Exception {
+
+    public ApplicationPolicyAlreadyExistsException(String message)
+    {
+        super(message);
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
index 7a1f2c1..10fad76 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java
@@ -148,8 +148,10 @@ public interface AutoscalerService {
      * @throws InvalidApplicationPolicyException
      * @throws RemoteException
      * @throws InvalidPolicyException
+     * @throws ApplicationPolicyAlreadyExistsException
      */
-    public boolean addApplicationPolicy(ApplicationPolicy applicationPolicy) throws RemoteException, InvalidApplicationPolicyException, InvalidPolicyException;
+    public boolean addApplicationPolicy(ApplicationPolicy applicationPolicy) throws RemoteException,
+            InvalidApplicationPolicyException, InvalidPolicyException,ApplicationPolicyAlreadyExistsException;
 
     /**
      * Get application policy by application id

http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index 390a402..7dc8668 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -807,10 +807,25 @@ public class AutoscalerServiceImpl implements AutoscalerService {
 
     @Override
     public boolean addApplicationPolicy(ApplicationPolicy applicationPolicy)
-            throws RemoteException, InvalidApplicationPolicyException {
+            throws RemoteException, InvalidApplicationPolicyException,ApplicationPolicyAlreadyExistsException {
 
         // validating application policy
         AutoscalerUtil.validateApplicationPolicy(applicationPolicy);
+
+        if (log.isInfoEnabled()) {
+            log.info("Adding application policy: [application-policy-id] " + applicationPolicy.getId());
+        }
+        if (log.isDebugEnabled()) {
+            log.debug("Application policy definition: " + applicationPolicy.toString());
+        }
+
+        String applicationPolicyID = applicationPolicy.getId();
+        if (PolicyManager.getInstance().getApplicationPolicy(applicationPolicyID) != null) {
+            String message = "Application policy already exists: [application-policy-id] " + applicationPolicyID;
+            log.error(message);
+            throw new ApplicationPolicyAlreadyExistsException(message);
+        }
+
         // Add application policy to the registry
         PolicyManager.getInstance().addApplicationPolicy(applicationPolicy);
         return true;

http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
index cbf0183..f6a97e7 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java
@@ -119,7 +119,7 @@ public class AutoscalerServiceClient {
 
     public void addApplicationPolicy(ApplicationPolicy applicationPolicy)
             throws RemoteException,
-            AutoscalerServiceRemoteExceptionException, AutoscalerServiceInvalidApplicationPolicyExceptionException {
+            AutoscalerServiceRemoteExceptionException, AutoscalerServiceInvalidApplicationPolicyExceptionException,AutoscalerServiceApplicationPolicyAlreadyExistsExceptionException {
         stub.addApplicationPolicy(applicationPolicy);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 057ce75..a87a61a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -21,6 +21,9 @@ package org.apache.stratos.rest.endpoint.api;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.stub.*;
+import org.apache.stratos.autoscaler.stub.impl.AutoscalerServiceApplicatioinPolicyNotExistsException;
+import org.apache.stratos.autoscaler.stub.impl.AutoscalerServiceApplicationPolicyAlreadyExistsException;
+import org.apache.stratos.autoscaler.stub.impl.AutoscalerServiceAutoScalingPolicyAlreadyExistException;
 import org.apache.stratos.cloud.controller.stub.*;
 import org.apache.stratos.common.beans.ResponseMessageBean;
 import org.apache.stratos.common.beans.TenantInfoBean;
@@ -817,12 +820,18 @@ public class StratosApiV41 extends AbstractApi {
             return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application policy added successfully: [application-policy] %s",
                             applicationPolicy.getId()))).build();
-        } catch (RestAPIException e) {
-            throw e;
         } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, "Invalid application policy")).build();
+        } catch(AutoscalerServiceApplicationPolicyAlreadyExistsExceptionException e){
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application policy already exists")).build();
+
+        }catch (RestAPIException e) {
+            throw e;
         }
+
+
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/1ff37ab5/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index d86ab0c..f73a4a2 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -699,7 +699,7 @@ public class StratosApiV41Utils {
      * @throws RestAPIException
      */
     public static void addApplicationPolicy(ApplicationPolicyBean applicationPolicyBean) throws RestAPIException,
-            AutoscalerServiceInvalidApplicationPolicyExceptionException {
+            AutoscalerServiceInvalidApplicationPolicyExceptionException,AutoscalerServiceApplicationPolicyAlreadyExistsExceptionException {
 
         if (applicationPolicyBean == null) {
             String msg = "Application policy bean is null";