Repository: stratos
Updated Branches:
  refs/heads/master 7347ebddb -> e97d336ea


Adding specific error messages to specific case and handling few new exceptions


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

Branch: refs/heads/master
Commit: e97d336ea8a4c02100ad9dc1df0679666821d8b8
Parents: 8a99633
Author: Lahiru Sandaruwan <[email protected]>
Authored: Wed Apr 29 23:04:58 2015 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Wed Apr 29 23:05:18 2015 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV41.java        | 152 +++++++++++++------
 .../rest/endpoint/api/StratosApiV41Utils.java   |  23 +--
 2 files changed, 116 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e97d336e/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 88e48fd..5120efc 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,8 @@ 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.cloud.controller.stub.CloudControllerServiceInvalidKubernetesClusterExceptionException;
+import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException;
 import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException;
 import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceNetworkPartitionNotExistsExceptionException;
 import org.apache.stratos.common.beans.*;
@@ -42,6 +44,7 @@ import 
org.apache.stratos.common.beans.policy.deployment.DeploymentPolicyBean;
 import org.apache.stratos.common.beans.topology.ApplicationInfoBean;
 import org.apache.stratos.common.beans.topology.ClusterBean;
 import org.apache.stratos.common.exception.InvalidEmailException;
+import 
org.apache.stratos.manager.service.stub.StratosManagerServiceApplicationSignUpExceptionException;
 import 
org.apache.stratos.manager.service.stub.StratosManagerServiceDomainMappingExceptionException;
 import org.apache.stratos.rest.endpoint.Utils;
 import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
@@ -833,9 +836,13 @@ public class StratosApiV41 extends AbstractApi {
                     String.format("Application policy deleted successfully: 
[application-policy] %s",
                             applicationPolicyId))).build();
         } catch (ApplicationPolicyIdIsEmptyException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling 
policy id is empty"))
+                    .build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling 
policy is invalid"))
+                    .build();
         }
     }
 
@@ -857,9 +864,13 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateApplicationPolicy(applicationPolicy);
         } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException 
e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid 
application policy"))
+                    .build();
         } catch 
(AutoscalerServiceApplicatioinPolicyNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Application 
policy does not exist"))
+                    .build();
         }
         return Response.ok().entity(new 
SuccessResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Application policy updated successfully: 
[application-policy] %s",
@@ -884,7 +895,9 @@ public class StratosApiV41 extends AbstractApi {
         if (appNetworkPartitionsBean == null ||
                 (appNetworkPartitionsBean.getNetworkPartitionIds().size() == 1 
&&
                         
appNetworkPartitionsBean.getNetworkPartitionIds().get(0) == null)) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "No network 
partitions used in the application"))
+                    .build();
         }
 
         return Response.ok(appNetworkPartitionsBean).build();
@@ -925,17 +938,22 @@ public class StratosApiV41 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/getApplicationSignUp")
     public Response getApplicationSignUp(
-            @PathParam("applicationId") String applicationId) throws 
RestAPIException {
+            @PathParam("applicationId") String applicationId) throws 
RestAPIException,
+            StratosManagerServiceApplicationSignUpExceptionException {
         ApplicationSignUpBean applicationSignUpBean;
         try {
             applicationSignUpBean = 
StratosApiV41Utils.getApplicationSignUp(applicationId);
             if (applicationSignUpBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                        Response.Status.NOT_FOUND.getStatusCode(), "No 
Application sign ups found for application"))
+                        .build();
             }
 
             return Response.ok(applicationSignUpBean).build();
-        } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+        } catch (ApplicationSignUpRestAPIException e) {
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect 
request to get application sign ups"))
+                    .build();
         }
     }
 
@@ -976,7 +994,9 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addApplicationDomainMappings(applicationId, 
domainMappingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect 
request to add domain mapping for " +
+                    "application")).build();
         }
         List<DomainMappingBean> mappings = 
domainMappingsBean.getDomainMappings();
         List<String> domainMappingList = new ArrayList<String>();
@@ -1008,7 +1028,9 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeApplicationDomainMappings(applicationId, 
domainMapppingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect 
request to delete domain mapping of " +
+                    "application")).build();
         }
         List<DomainMappingBean> mappings = 
domainMapppingsBean.getDomainMappings();
         List<String> domainMappingList = new ArrayList<String>();
@@ -1038,10 +1060,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             domainMappingsBeanList = 
StratosApiV41Utils.getApplicationDomainMappings(applicationId);
             if (domainMappingsBeanList == null || 
domainMappingsBeanList.isEmpty()) {
-                return Response.status(Response.Status.NOT_FOUND).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                        Response.Status.NOT_FOUND.getStatusCode(), "No domain 
mappings found for the application"))
+                        .build();
             }
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect 
request to get domain mapping of application"))
+                    .build();
         }
 
         DomainMappingBean[] domainMappingsBeans = domainMappingsBeanList
@@ -1063,17 +1089,22 @@ public class StratosApiV41 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/undeployApplication")
     public Response undeployApplication(
-            @PathParam("applicationId") String applicationId, 
@QueryParam("force") @DefaultValue("false") boolean force) throws 
RestAPIException {
+            @PathParam("applicationId") String applicationId, 
@QueryParam("force") @DefaultValue("false") boolean force)
+            throws RestAPIException {
 
         ApplicationBean applicationDefinition = 
StratosApiV41Utils.getApplication(applicationId);
         if (applicationDefinition == null) {
-            log.info(String.format("Application does not exist 
[application-id] %s", applicationId));
-            return Response.status(Response.Status.NOT_FOUND).build();
+            String msg = String.format("Application does not exist 
[application-id] %s", applicationId);
+            log.info(msg);
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), msg)).build();
         }
         if 
(!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_DEPLOYED))
 {
-            String message = String.format("Could not undeploy since 
application is not in DEPLOYED status [application-id] %s [current status] %S", 
applicationId, applicationDefinition.getStatus());
+            String message = String.format("Could not undeploy since 
application is not in DEPLOYED status " +
+                    "[application-id] %s [current status] %S", applicationId, 
applicationDefinition.getStatus());
             log.info(message);
-            return 
Response.status(Response.Status.CONFLICT).entity(message).build();
+            return Response.status(Response.Status.CONFLICT).entity(new 
ErrorResponseBean(
+                    Response.Status.CONFLICT.getStatusCode(), 
message)).build();
         }
         StratosApiV41Utils.undeployApplication(applicationId, force);
         return Response.accepted().entity(new 
SuccessResponseBean(Response.Status.ACCEPTED.getStatusCode(),
@@ -1097,7 +1128,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws 
RestAPIException {
         ApplicationInfoBean applicationRuntime = 
StratosApiV41Utils.getApplicationRuntime(applicationId);
         if (applicationRuntime == null) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Application 
runtime not found")).build();
         } else {
             return Response.ok().entity(applicationRuntime).build();
         }
@@ -1121,12 +1153,14 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws 
RestAPIException {
         ApplicationBean applicationDefinition = 
StratosApiV41Utils.getApplication(applicationId);
         if (applicationDefinition == null) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Application 
not found")).build();
         }
 
         if 
(!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_CREATED))
 {
-            return Response.status(Response.Status.CONFLICT).entity(new 
SuccessResponseBean(Response.Status.CONFLICT.getStatusCode(),
-                    String.format("Could not delete since application is not 
in CREATED state : [application] %s [current-status] %S", applicationId, 
applicationDefinition.getStatus()))).build();
+            return Response.status(Response.Status.CONFLICT).entity(new 
SuccessResponseBean(Response.Status.CONFLICT.
+                    getStatusCode(), String.format("Could not delete since 
application is not in CREATED state :" +
+                    " [application] %s [current-status] %S", applicationId, 
applicationDefinition.getStatus()))).build();
         }
 
         StratosApiV41Utils.removeApplication(applicationId);
@@ -1151,7 +1185,8 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         AutoscalePolicyBean[] autoScalePolicies = 
StratosApiV41Utils.getAutoScalePolicies();
         if (autoScalePolicies == null || autoScalePolicies.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "No Autoscaling 
policies found")).build();
         }
 
         return Response.ok().entity(autoScalePolicies).build();
@@ -1173,7 +1208,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("autoscalePolicyId") String autoscalePolicyId) throws 
RestAPIException {
         AutoscalePolicyBean autoScalePolicy = 
StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId);
         if (autoScalePolicy == null) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling 
policy not found")).build();
         }
         return Response.ok().entity(autoScalePolicy).build();
     }
@@ -1200,9 +1236,11 @@ public class StratosApiV41 extends AbstractApi {
                     String.format("Autoscaling policy added successfully: 
[autoscale-policy] %s",
                             autoscalePolicy.getId()))).build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Provided 
Autoscaling policy is invalid")).build();
         } catch 
(AutoscalerServiceAutoScalingPolicyAlreadyExistExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).build();
+            return Response.status(Response.Status.CONFLICT).entity(new 
ErrorResponseBean(
+                    Response.Status.CONFLICT.getStatusCode(), "Autoscaling 
policy already exists")).build();
         } catch (RestAPIException e) {
             throw e;
         }
@@ -1226,7 +1264,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateAutoscalingPolicy(autoscalePolicy);
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling 
policy is invalid")).build();
         }
         return Response.ok().entity(new 
SuccessResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Autoscaling policy updated successfully: 
[autoscale-policy] %s",
@@ -1251,7 +1290,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateNetworkPartition(networkPartition);
         } catch 
(CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Network 
partition not found")).build();
         }
         return Response.ok().entity(new 
SuccessResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Network Partition updated successfully: 
[network-partition] %s",
@@ -1277,9 +1317,10 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.removeAutoscalingPolicy(autoscalingPolicyId);
         } catch (AutoscalerServiceUnremovablePolicyExceptionException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
-                    Response.Status.NOT_ACCEPTABLE.getStatusCode(), 
"Autoscaling policy is in use")).build();
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling 
policy is in use")).build();
         } catch (AutoscalerServicePolicyDoesNotExistExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling 
policy not found")).build();
         }
         return Response.ok().entity(new 
SuccessResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Autoscaling policy deleted successfully: 
[autoscale-policy] %s",
@@ -1304,7 +1345,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             ClusterBean clusterBean = 
StratosApiV41Utils.getClusterInfo(clusterId);
             if (clusterBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                        Response.Status.NOT_FOUND.getStatusCode(), "Cluster 
not found")).build();
             } else {
                 return Response.ok().entity(clusterBean).build();
             }
@@ -1336,9 +1378,11 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addTenant(tenantInfoBean);
 
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid 
email")).build();
         } catch (InvalidDomainException e) {
-            Response.status(Response.Status.BAD_REQUEST).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid 
domain")).build();
         }
         URI url = 
uriInfo.getAbsolutePathBuilder().path(tenantInfoBean.getTenantDomain()).build();
         return Response.created(url).entity(
@@ -1364,9 +1408,11 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateExistingTenant(tenantInfoBean);
         } catch (TenantNotFoundException ex) {
-            Response.status(Response.Status.NOT_FOUND).build();
+            Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Tenant not 
found")).build();
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid 
email")).build();
         } catch (Exception e) {
             String msg = "Error in updating tenant " + 
tenantInfoBean.getTenantDomain();
             log.error(msg, e);
@@ -1398,7 +1444,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             TenantInfoBean tenantInfo = 
StratosApiV41Utils.getTenantByDomain(tenantDomain);
             if (tenantInfo == null) {
-                return Response.status(Response.Status.NOT_FOUND).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                        Response.Status.NOT_FOUND.getStatusCode(), "Tenant 
information not found")).build();
             }
 
             return Response.ok().entity(tenantInfo).build();
@@ -1666,11 +1713,13 @@ public class StratosApiV41 extends AbstractApi {
                     String.format("Kubernetes Host Cluster added successfully: 
[kub-host-cluster] %s",
                             kubernetesCluster.getClusterId()))).build();
         } catch (RestAPIException e) {
-            if (e.getMessage().contains("already exists")) {
-                return Response.status(Response.Status.CONFLICT).build();
-            } else {
-                throw e;
-            }
+            throw e;
+        } catch 
(CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException e) {
+            return Response.status(Response.Status.CONFLICT).entity(new 
ErrorResponseBean(
+                    Response.Status.CONFLICT.getStatusCode(), "Kubernetes 
cluster already exists")).build();
+        } catch 
(CloudControllerServiceInvalidKubernetesClusterExceptionException e) {
+            return Response.status(Response.Status.BAD_REQUEST).entity(new 
ErrorResponseBean(
+                    Response.Status.BAD_REQUEST.getStatusCode(), "Kubernetes 
cluster is invalid")).build();
         }
     }
 
@@ -1719,7 +1768,8 @@ public class StratosApiV41 extends AbstractApi {
                     String.format("Kubernetes Master updated successfully: 
[kub-master] %s",
                             kubernetesMaster.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
cluster not found")).build();
         }
     }
 
@@ -1738,7 +1788,8 @@ public class StratosApiV41 extends AbstractApi {
                     String.format("Kubernetes Host updated successfully: 
[kub-host] %s",
                             kubernetesHost.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
host not found")).build();
         }
     }
 
@@ -1757,7 +1808,8 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         KubernetesClusterBean[] availableKubernetesClusters = 
StratosApiV41Utils.getAvailableKubernetesClusters();
         if (availableKubernetesClusters == null || 
availableKubernetesClusters.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
cluster not found")).build();
         }
 
         return Response.ok().entity(availableKubernetesClusters).build();
@@ -1780,7 +1832,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return 
Response.ok().entity(StratosApiV41Utils.getKubernetesCluster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
cluster not found")).build();
         }
     }
 
@@ -1801,7 +1854,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return 
Response.ok().entity(StratosApiV41Utils.getKubernetesHosts(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
hosts not found")).build();
         }
     }
 
@@ -1822,7 +1876,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return 
Response.ok().entity(StratosApiV41Utils.getKubernetesMaster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
cluster not found")).build();
         }
     }
 
@@ -1871,7 +1926,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeKubernetesHost(kubernetesHostId);
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new 
ErrorResponseBean(
+                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes 
cluster not found")).build();
         }
         return Response.ok().entity(new 
SuccessResponseBean(Response.Status.OK.getStatusCode(),
                 String.format("Kubernetes Host removed successfully: 
[kub-host] %s", kubernetesHostId)))

http://git-wip-us.apache.org/repos/asf/stratos/blob/e97d336e/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 aafaf66..47b72fc 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
@@ -60,6 +60,8 @@ import 
org.apache.stratos.common.client.StratosManagerServiceClient;
 import org.apache.stratos.common.exception.InvalidEmailException;
 import org.apache.stratos.common.util.ClaimsMgtUtil;
 import org.apache.stratos.common.util.CommonUtil;
+import org.apache.stratos.manager.exception.ApplicationSignUpException;
+import 
org.apache.stratos.manager.service.stub.StratosManagerServiceApplicationSignUpExceptionException;
 import 
org.apache.stratos.manager.service.stub.StratosManagerServiceDomainMappingExceptionException;
 import 
org.apache.stratos.manager.service.stub.domain.application.signup.ApplicationSignUp;
 import 
org.apache.stratos.manager.service.stub.domain.application.signup.ArtifactRepository;
@@ -1554,7 +1556,9 @@ public class StratosApiV41Utils {
 
     // Util methods for Kubernetes clusters
 
-    public static boolean addKubernetesCluster(KubernetesClusterBean 
kubernetesClusterBean) throws RestAPIException {
+    public static boolean addKubernetesCluster(KubernetesClusterBean 
kubernetesClusterBean) throws RestAPIException,
+            CloudControllerServiceInvalidKubernetesClusterExceptionException,
+            
CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException {
 
         CloudControllerServiceClient cloudControllerServiceClient = 
getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
@@ -1566,10 +1570,6 @@ public class StratosApiV41Utils {
             } catch (RemoteException e) {
                 log.error(e.getMessage(), e);
                 throw new RestAPIException(e.getMessage(), e);
-            } catch 
(CloudControllerServiceInvalidKubernetesClusterExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidKubernetesClusterException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
             }
         }
         return false;
@@ -1880,18 +1880,19 @@ public class StratosApiV41Utils {
         }
     }
 
-    public static ApplicationSignUpBean getApplicationSignUp(String 
applicationId) throws RestAPIException {
+    public static ApplicationSignUpBean getApplicationSignUp(String 
applicationId) throws RestAPIException,
+            StratosManagerServiceApplicationSignUpExceptionException {
         if (StringUtils.isBlank(applicationId)) {
-            throw new RestAPIException("Application id is null");
+            throw new ApplicationSignUpRestAPIException("Application id is 
null");
         }
 
         ApplicationBean application = getApplication(applicationId);
         if (application == null) {
-            throw new RestAPIException("Application does not exist: 
[application-id] " + applicationId);
+            throw new ApplicationSignUpRestAPIException("Application does not 
exist: [application-id] " + applicationId);
         }
 
         if (!application.isMultiTenant()) {
-            throw new RestAPIException("Application singups not available for 
single-tenant applications");
+            throw new ApplicationSignUpRestAPIException("Application sign ups 
not available for single-tenant applications");
         }
 
         int tenantId = 
CarbonContext.getThreadLocalCarbonContext().getTenantId();
@@ -1903,7 +1904,7 @@ public class StratosApiV41Utils {
                 return 
ObjectConverter.convertStubApplicationSignUpToApplicationSignUpBean(applicationSignUp);
             }
             return null;
-        } catch (Exception e) {
+        } catch (RemoteException e) {
             String message = String.format("Could not get application signup: 
[application-id] %s [tenant-id] %d",
                     applicationId, tenantId);
             log.error(message, e);
@@ -2155,7 +2156,7 @@ public class StratosApiV41Utils {
     public static void addDeploymentPolicy(DeploymentPolicyBean 
deployementPolicyDefinitionBean)
             throws RestAPIException,
             AutoscalerServiceDeploymentPolicyAlreadyExistsExceptionException,
-            AutoscalerServiceInvalidDeploymentPolicyExceptionException{
+            AutoscalerServiceInvalidDeploymentPolicyExceptionException {
         try {
             if (log.isDebugEnabled()) {
                 log.debug(String.format("Adding deployment policy: 
[deployment-policy-id] %s ",

Reply via email to