You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ch...@apache.org on 2015/04/17 16:56:29 UTC

stratos git commit: REST API - Return 404 for empty results on GET operations Remove unwanted stack traces from being logged for GET operations

Repository: stratos
Updated Branches:
  refs/heads/master f6630b258 -> 2a822d99d


REST API - Return 404 for empty results on GET operations
Remove unwanted stack traces from being logged for GET operations


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

Branch: refs/heads/master
Commit: 2a822d99d8b2c68c667476f79ce11395cf78fa2f
Parents: f6630b2
Author: Chamila de Alwis <ch...@apache.org>
Authored: Fri Apr 17 20:24:53 2015 +0530
Committer: Chamila de Alwis <ch...@apache.org>
Committed: Fri Apr 17 20:25:17 2015 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV41.java        | 122 +++++++++++++++----
 .../rest/endpoint/api/StratosApiV41Utils.java   |  20 ++-
 2 files changed, 112 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2a822d99/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 9c8b8c7..bf1ceec 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
@@ -215,6 +215,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getDeploymentPolicies()
             throws RestAPIException {
         DeploymentPolicyBean[] deploymentPolicies = StratosApiV41Utils.getDeployementPolicies();
+        if (deploymentPolicies == null || deploymentPolicies.length == 0){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         return Response.ok(deploymentPolicies).build();
     }
 
@@ -301,12 +305,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getCartridges()
             throws RestAPIException {
         List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, null, getConfigContext());
-        if (cartridges == null) {
+        if (cartridges == null ||  cartridges.isEmpty()) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        CartridgeBean[] cartridgeArray = cartridges.isEmpty() ?
-                new CartridgeBean[0] :
-                cartridges.toArray(new CartridgeBean[cartridges.size()]);
+        CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
         return Response.ok().entity(cartridgeArray).build();
     }
 
@@ -323,11 +325,13 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/manage/getCartridge")
     public Response getCartridge(
             @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
-        CartridgeBean cartridge = StratosApiV41Utils.getCartridge(cartridgeType);
-        if (cartridge == null) {
+        CartridgeBean cartridge;
+        try {
+            cartridge = StratosApiV41Utils.getCartridge(cartridgeType);
+            return Response.ok().entity(cartridge).build();
+        } catch (RestAPIException e) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        return Response.ok().entity(cartridge).build();
     }
 
     /**
@@ -348,12 +352,11 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         List<CartridgeBean> cartridges = StratosApiV41Utils.
                 getCartridgesByFilter(filter, criteria, getConfigContext());
-        if (cartridges == null) {
+        if (cartridges == null || cartridges.isEmpty()) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        CartridgeBean[] cartridgeArray = cartridges.isEmpty() ?
-                new CartridgeBean[0] :
-                cartridges.toArray(new CartridgeBean[cartridges.size()]);
+
+        CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
         return Response.ok().entity(cartridgeArray).build();
     }
 
@@ -373,11 +376,13 @@ public class StratosApiV41 extends AbstractApi {
     public Response getCartridgeByFilter(
             @PathParam("cartridgeType") String cartridgeType, @DefaultValue("") @PathParam("filter") String filter)
             throws RestAPIException {
-        CartridgeBean cartridge = StratosApiV41Utils.getCartridgeByFilter(filter, cartridgeType, getConfigContext());
-        if (cartridge == null) {
+        CartridgeBean cartridge;
+        try {
+            cartridge = StratosApiV41Utils.getCartridgeByFilter(filter, cartridgeType, getConfigContext());
+            return Response.ok().entity(cartridge).build();
+        } catch (RestAPIException e) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        return Response.ok().entity(cartridge).build();
     }
 
     /**
@@ -541,6 +546,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getNetworkPartitions()
             throws RestAPIException {
         NetworkPartitionBean[] networkPartitions = StratosApiV41Utils.getNetworkPartitions();
+        if (networkPartitions == null || networkPartitions.length == 0){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         return Response.ok(networkPartitions).build();
     }
 
@@ -558,6 +567,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getNetworkPartition(
             @PathParam("networkPartitionId") String networkPartitionId) throws RestAPIException {
         NetworkPartitionBean networkPartition = StratosApiV41Utils.getNetworkPartition(networkPartitionId);
+        if (networkPartition == null){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         return Response.ok(networkPartition).build();
     }
 
@@ -619,6 +632,10 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/protected/manage/getApplications")
     public Response getApplications() throws RestAPIException {
         List<ApplicationBean> applicationDefinitions = StratosApiV41Utils.getApplications();
+        if (applicationDefinitions == null || applicationDefinitions.isEmpty()){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         ApplicationBean[] applicationDefinitionsArray = applicationDefinitions
                 .toArray(new ApplicationBean[applicationDefinitions.size()]);
         return Response.ok(applicationDefinitionsArray).build();
@@ -701,6 +718,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getApplicationPolicy(
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         ApplicationPolicyBean applicationPolicyBean = StratosApiV41Utils.getApplicationPolicy(applicationPolicyId);
+        if (applicationPolicyBean == null){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         return Response.ok(applicationPolicyBean).build();
     }
 
@@ -717,7 +738,12 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/manage/getApplicationPolicies")
     public Response getApplicationPolicies()
             throws RestAPIException {
-        return Response.ok().entity(StratosApiV41Utils.getApplicationPolicies()).build();
+        ApplicationPolicyBean[] applicationPolicies = StratosApiV41Utils.getApplicationPolicies();
+        if (applicationPolicies == null || applicationPolicies.length == 0){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
+        return Response.ok().entity(applicationPolicies).build();
     }
 
     /**
@@ -777,6 +803,12 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationNetworkPartitionIdListBean appNetworkPartitionsBean = StratosApiV41Utils
                 .getApplicationNetworkPartitions(applicationId);
+        if (appNetworkPartitionsBean == null ||
+                (appNetworkPartitionsBean.getNetworkPartitionIds().size() == 1 &&
+                        appNetworkPartitionsBean.getNetworkPartitionIds().get(0) == null)){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         return Response.ok(appNetworkPartitionsBean).build();
     }
 
@@ -815,11 +847,17 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/protected/manage/getApplicationSignUp")
     public Response getApplicationSignUp(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
-        ApplicationSignUpBean applicationSignUpBean = StratosApiV41Utils.getApplicationSignUp(applicationId);
-        if (applicationSignUpBean == null) {
+        ApplicationSignUpBean applicationSignUpBean = null;
+        try {
+            applicationSignUpBean = StratosApiV41Utils.getApplicationSignUp(applicationId);
+            if (applicationSignUpBean == null) {
+                return Response.status(Response.Status.NOT_FOUND).build();
+            }
+
+            return Response.ok(applicationSignUpBean).build();
+        } catch (RestAPIException e) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
-        return Response.ok(applicationSignUpBean).build();
     }
 
     /**
@@ -909,6 +947,10 @@ public class StratosApiV41 extends AbstractApi {
     public Response getDomainMappings(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         List<DomainMappingBean> domainMappingsBeanList = StratosApiV41Utils.getApplicationDomainMappings(applicationId);
+        if (domainMappingsBeanList == null || domainMappingsBeanList.isEmpty()){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
         DomainMappingBean[] domainMappingsBeans = domainMappingsBeanList
                 .toArray(new DomainMappingBean[domainMappingsBeanList.size()]);
         return Response.ok(domainMappingsBeans).build();
@@ -1014,7 +1056,12 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/manage/getAutoscalingPolicies")
     public Response getAutoscalingPolicies()
             throws RestAPIException {
-        return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicies()).build();
+        AutoscalePolicyBean[] autoScalePolicies = StratosApiV41Utils.getAutoScalePolicies();
+        if (autoScalePolicies == null || autoScalePolicies.length == 0){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
+        return Response.ok().entity(autoScalePolicies).build();
     }
 
     /**
@@ -1416,11 +1463,13 @@ public class StratosApiV41 extends AbstractApi {
 
         try {
             TenantInfoBean tenantInfo = getTenantByDomain(tenantDomain);
+            if (tenantInfo == null){
+                return Response.status(Response.Status.NOT_FOUND).build();
+            }
+
             return Response.ok().entity(tenantInfo).build();
         } catch (Exception e) {
-            String msg = "Error in getting tenant information for tenant " + tenantDomain;
-            log.error(msg, e);
-            throw new RestAPIException(msg);
+            return Response.status(Response.Status.NOT_FOUND).build();
         }
     }
 
@@ -1446,8 +1495,14 @@ public class StratosApiV41 extends AbstractApi {
             throw new Exception(msg, e);
         }
 
-        org.apache.stratos.common.beans.TenantInfoBean bean = ObjectConverter
-                .convertCarbonTenantInfoBeanToTenantInfoBean(TenantMgtUtil.initializeTenantInfoBean(tenantId, tenant));
+        TenantInfoBean bean;
+        try {
+            bean = ObjectConverter
+                    .convertCarbonTenantInfoBeanToTenantInfoBean(TenantMgtUtil.initializeTenantInfoBean(tenantId, tenant));
+        } catch (NullPointerException e) {
+            log.error(String.format("Couldn't find tenant for provided tenant domain. [Tenant Domain] %s", tenantDomain));
+            return null;
+        }
 
         // retrieve first and last names from the UserStoreManager
         bean.setFirstname(ClaimsMgtUtil.getFirstNamefromUserStoreManager(ServiceHolder.getRealmService(), tenantId));
@@ -1503,6 +1558,10 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         try {
             List<org.apache.stratos.common.beans.TenantInfoBean> tenantList = getAllTenants();
+            if (tenantList == null || tenantList.isEmpty()){
+                return Response.status(Response.Status.NOT_FOUND).build();
+            }
+
             return Response.ok().entity(tenantList.toArray(
                     new org.apache.stratos.common.beans.TenantInfoBean[tenantList.size()])).build();
         } catch (Exception e) {
@@ -1551,6 +1610,10 @@ public class StratosApiV41 extends AbstractApi {
 
         try {
             List<org.apache.stratos.common.beans.TenantInfoBean> tenantList = searchPartialTenantsDomains(tenantDomain);
+            if (tenantList == null || tenantList.isEmpty()){
+                return Response.status(Response.Status.NOT_FOUND).build();
+            }
+
             return Response.ok().entity(tenantList.toArray(new org.apache.stratos.common.beans.TenantInfoBean[tenantList.size()])).build();
         } catch (Exception e) {
             String msg = "Error in getting information for tenant " + tenantDomain;
@@ -1803,6 +1866,10 @@ public class StratosApiV41 extends AbstractApi {
 
         try {
             List<UserInfoBean> userList = stratosUserManager.getAllUsers(getTenantUserStoreManager());
+            if (userList == null || userList.isEmpty()){
+                return Response.status(Response.Status.NOT_FOUND).build();
+            }
+
             return Response.ok().entity(userList.toArray(new UserInfoBean[userList.size()])).build();
         } catch (UserManagerException e) {
             throw new RestAPIException(e.getMessage());
@@ -1939,7 +2006,12 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/manage/getKubernetesHostClusters")
     public Response getKubernetesHostClusters()
             throws RestAPIException {
-        return Response.ok().entity(StratosApiV41Utils.getAvailableKubernetesClusters()).build();
+        KubernetesClusterBean[] availableKubernetesClusters = StratosApiV41Utils.getAvailableKubernetesClusters();
+        if (availableKubernetesClusters == null || availableKubernetesClusters.length == 0){
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+
+        return Response.ok().entity(availableKubernetesClusters).build();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/stratos/blob/2a822d99/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 987f147..166da5b 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
@@ -940,7 +940,7 @@ public class StratosApiV41Utils {
         try {
             AutoscalerServiceClient asServiceClient = AutoscalerServiceClient.getInstance();
             ServiceGroup[] serviceGroups = asServiceClient.getServiceGroups();
-            if (serviceGroups == null || serviceGroups.length == 0) {
+            if (serviceGroups == null || serviceGroups.length == 0 || (serviceGroups.length == 1 && serviceGroups[0] == null)) {
                 return null;
             }
 
@@ -1587,6 +1587,11 @@ public class StratosApiV41Utils {
             try {
                 org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster[]
                         kubernetesClusters = cloudControllerServiceClient.getAvailableKubernetesClusters();
+                if (kubernetesClusters == null) {
+                    log.error("Could not find any Kubernetes Clusters.");
+                    return null;
+                }
+
                 return ObjectConverter.convertStubKubernetesClustersToKubernetesClusters(kubernetesClusters);
 
             } catch (RemoteException e) {
@@ -1611,7 +1616,7 @@ public class StratosApiV41Utils {
                 throw new RestAPIException(e.getMessage(), e);
             } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
                 String message = e.getFaultMessage().getNonExistingKubernetesClusterException().getMessage();
-                log.error(message, e);
+                log.error(message);
                 throw new RestAPIException(message, e);
             }
         }
@@ -1674,7 +1679,7 @@ public class StratosApiV41Utils {
                 throw new RestAPIException(e.getMessage(), e);
             } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
                 String message = e.getFaultMessage().getNonExistingKubernetesClusterException().getMessage();
-                log.error(message, e);
+                log.error(message);
                 throw new RestAPIException(message, e);
             }
         }
@@ -1694,7 +1699,7 @@ public class StratosApiV41Utils {
                 throw new RestAPIException(e.getMessage(), e);
             } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
                 String message = e.getFaultMessage().getNonExistingKubernetesClusterException().getMessage();
-                log.error(message, e);
+                log.error(message);
                 throw new RestAPIException(message, e);
             }
         }
@@ -2226,6 +2231,11 @@ public class StratosApiV41Utils {
             throw new RestAPIException("Cluster Id can not be empty");
         }
 
-        return ObjectConverter.convertClusterToClusterBean(TopologyManager.getTopology().getCluster(clusterId), clusterId);
+        Cluster cluster = TopologyManager.getTopology().getCluster(clusterId);
+        if (cluster == null){
+            return null;
+        }
+
+        return ObjectConverter.convertClusterToClusterBean(cluster, clusterId);
     }
 }