You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/07/12 18:55:04 UTC

git commit: REST API format PUT and DELETE

Repository: stratos
Updated Branches:
  refs/heads/master 061a2359c -> 4e6ec2846


REST API format PUT and DELETE


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

Branch: refs/heads/master
Commit: 4e6ec2846b94ce8fb9a59c3ef4ac4514b851d6d2
Parents: 061a235
Author: Udara Liyanage <ud...@wso2.com>
Authored: Sat Jul 12 22:24:14 2014 +0530
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Sat Jul 12 22:24:14 2014 +0530

----------------------------------------------------------------------
 .../service/ServiceDeploymentManager.java       |  4 +-
 .../manager/CartridgeSubscriptionManager.java   |  4 +-
 .../subscription/LBCartridgeSubscription.java   | 12 +--
 .../utils/CartridgeSubscriptionUtils.java       |  1 -
 .../bean/util/converter/PojoConverter.java      |  3 +-
 .../stratos/rest/endpoint/mock/MockContext.java | 16 ++--
 .../rest/endpoint/services/ServiceUtils.java    | 31 +++-----
 .../rest/endpoint/services/StratosAdmin.java    | 78 ++++++++++++--------
 8 files changed, 73 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
index 0909a77..9264c2f 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
@@ -432,7 +432,7 @@ public class ServiceDeploymentManager {
         }
     }
 
-    public void undeployService (String type) throws ADCException {
+    public void undeployService (String type) throws ADCException, ServiceDoesNotExistException {
 
         DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager();
 
@@ -443,7 +443,7 @@ public class ServiceDeploymentManager {
                 // can't undeploy; there are existing Subscriptions
                 String errorMsg = "Cannot undeploy Service since existing Subscriptions are found";
                 log.error(errorMsg);
-                throw new ADCException(errorMsg);
+                throw new ServiceDoesNotExistException(errorMsg, type);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index b1ce517..784962b 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -429,13 +429,13 @@ public class CartridgeSubscriptionManager {
     }
 
     public void removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName)
-            throws ADCException {
+            throws ADCException, DomainSubscriptionDoesNotExist {
 
         CartridgeSubscription cartridgeSubscription;
         try {
             cartridgeSubscription = getCartridgeSubscription(tenantId, subscriptionAlias);
             if(cartridgeSubscription == null) {
-                throw new ADCException("Cartridge subscription not found");
+                throw new DomainSubscriptionDoesNotExist("Cartridge subscription not found", domainName);
             }
             cartridgeSubscription.removeSubscriptionDomain(domainName);
             new DataInsertionAndRetrievalManager().cacheAndUpdateSubscription(cartridgeSubscription);

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
index f6555f8..f92dac4 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
@@ -25,17 +25,7 @@ import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
 import org.apache.stratos.cloud.controller.stub.pojo.Properties;
 import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.manager.exception.ADCException;
-import org.apache.stratos.manager.exception.AlreadySubscribedException;
-import org.apache.stratos.manager.exception.DuplicateCartridgeAliasException;
-import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
-import org.apache.stratos.manager.exception.InvalidRepositoryException;
-import org.apache.stratos.manager.exception.NotSubscribedException;
-import org.apache.stratos.manager.exception.PolicyException;
-import org.apache.stratos.manager.exception.RepositoryCredentialsRequiredException;
-import org.apache.stratos.manager.exception.RepositoryRequiredException;
-import org.apache.stratos.manager.exception.RepositoryTransportException;
-import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+import org.apache.stratos.manager.exception.*;
 import org.apache.stratos.manager.lb.category.LoadBalancerCategory;
 import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.subscriber.Subscriber;

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
index bd575ce..9bd36c9 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
@@ -44,7 +44,6 @@ import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
 import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent;
 import org.apache.stratos.messaging.util.Constants;
 
-import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.regex.Pattern;

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
index dc77ad5..ee3145c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
@@ -529,8 +529,7 @@ public class PojoConverter {
                                                                            deploymentPolicies) {
         DeploymentPolicy[] deploymentPolicyBeans;
         if(deploymentPolicies == null) {
-            deploymentPolicyBeans = new DeploymentPolicy[0];
-            return deploymentPolicyBeans;
+            return null;
         }
 
         deploymentPolicyBeans = new DeploymentPolicy[deploymentPolicies.length];

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
index a20dd8f..7046f70 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/MockContext.java
@@ -105,8 +105,8 @@ public class MockContext {
         while(it.hasNext()){
             Map.Entry pairs = (Map.Entry)it.next();
             Cartridge cartridge = (Cartridge)pairs.getValue();
-            if(cartridge.getCartridgeType().equals("lb")){
-                availableLbCartridges.put(cartridge.getCartridgeType(),cartridge);
+            if(cartridge.getSubscriptionDomain().equals("lb")){
+                availableLbCartridges.put(cartridge.getSubscriptionDomain(),cartridge);
             }
             it.remove();
         }
@@ -115,8 +115,8 @@ public class MockContext {
         while(it.hasNext()){
             Map.Entry pairs = (Map.Entry)it.next();
             Cartridge cartridge = (Cartridge)pairs.getValue();
-            if(cartridge.getCartridgeType().equals("lb")){
-                availableLbCartridges.put(cartridge.getCartridgeType(),cartridge);
+            if(cartridge.getSubscriptionDomain().equals("lb")){
+                availableLbCartridges.put(cartridge.getSubscriptionDomain(),cartridge);
             }
             it.remove();
         }
@@ -130,8 +130,8 @@ public class MockContext {
         while(it.hasNext()){
             Map.Entry pairs = (Map.Entry)it.next();
             Cartridge cartridge = (Cartridge)pairs.getValue();
-            if(!cartridge.getCartridgeType().equals("lb")){
-                availableCartridges.put(cartridge.getCartridgeType(),cartridge);
+            if(!cartridge.getSubscriptionDomain().equals("lb")){
+                availableCartridges.put(cartridge.getSubscriptionDomain(),cartridge);
             }
             it.remove();
         }
@@ -140,8 +140,8 @@ public class MockContext {
         while(it.hasNext()){
             Map.Entry pairs = (Map.Entry)it.next();
             Cartridge cartridge = (Cartridge)pairs.getValue();
-            if(!cartridge.getCartridgeType().equals("lb")){
-                availableCartridges.put(cartridge.getCartridgeType(),cartridge);
+            if(!cartridge.getSubscriptionDomain().equals("lb")){
+                availableCartridges.put(cartridge.getSubscriptionDomain(),cartridge);
             }
             it.remove();
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/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 21cf22b..0a92371 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
@@ -143,7 +143,7 @@ public class ServiceUtils {
         return commonPolicies.toArray(new DeploymentPolicy[0]);
     }
 
-    static StratosAdminResponse undeployCartridge(String cartridgeType) throws RestAPIException {
+    static void undeployCartridge(String cartridgeType) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
@@ -159,10 +159,6 @@ public class ServiceUtils {
             }
 
         }
-
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully undeployed cartridge definition with type " + cartridgeType);
-        return stratosAdminResponse;
     }
 
 
@@ -654,11 +650,11 @@ public class ServiceUtils {
             throw new RestAPIException(msg, e);
         }
 
-        if (service != null) {
+        if (service == null) {
+            return null;
+        }else{
             return PojoConverter.convertToServiceDefinitionBean(service);
         }
-
-        return new ServiceDefinitionBean();
     }
 
     public static List<Cartridge> getActiveDeployedServiceInformation(ConfigurationContext configurationContext) throws RestAPIException {
@@ -1129,20 +1125,17 @@ public class ServiceUtils {
         }
     }
 
-    static StratosAdminResponse undeployService(String serviceType) throws RestAPIException {
+    static void undeployService(String serviceType) throws RestAPIException, ServiceDoesNotExistException {
 
         try {
             serviceDeploymentManager.undeployService(serviceType);
-
-        } catch (Exception e) {
+        }catch(ServiceDoesNotExistException ex){
+            throw ex;
+        }catch (Exception e) {
             String msg = "Failed to undeploy service cluster definition of type " + serviceType + " Cause: " + e.getMessage();
             log.error(msg, e);
             throw new RestAPIException(msg, e);
         }
-
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully undeployed service cluster definition for service type " + serviceType);
-        return stratosAdminResponse;
     }
 
     static void getGitRepositoryNotification(Payload payload) throws RestAPIException {
@@ -1252,8 +1245,8 @@ public class ServiceUtils {
 		}
 	}
 
-    public static StratosAdminResponse removeSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType,
-                                                                String subscriptionAlias, String domain) throws RestAPIException {
+    public static void removeSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType,
+                                                                String subscriptionAlias, String domain) throws RestAPIException, DomainMappingExistsException {
         try {
             int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
             cartridgeSubsciptionManager.removeSubscriptionDomain(tenantId, subscriptionAlias, domain);
@@ -1261,10 +1254,6 @@ public class ServiceUtils {
             log.error(e.getMessage(), e);
             throw new RestAPIException(e.getMessage(), e);
         }
-
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully removed domains from cartridge subscription");
-        return stratosAdminResponse;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4e6ec284/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 313c71a..6d06cbd 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -27,6 +27,8 @@ import org.apache.stratos.common.util.ClaimsMgtUtil;
 import org.apache.stratos.common.util.CommonUtil;
 import org.apache.stratos.manager.dto.Cartridge;
 import org.apache.stratos.manager.dto.SubscriptionInfo;
+import org.apache.stratos.manager.exception.DomainMappingExistsException;
+import org.apache.stratos.manager.exception.ServiceDoesNotExistException;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
 import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import org.apache.stratos.rest.endpoint.ServiceHolder;
@@ -46,6 +48,7 @@ import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payl
 import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
 import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+import org.apache.stratos.rest.endpoint.exception.TenantNotFoundException;
 import org.apache.stratos.tenant.mgt.core.TenantPersistor;
 import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
@@ -138,9 +141,10 @@ public class StratosAdmin extends AbstractAdmin {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public StratosAdminResponse unDeployCartridgeDefinition (@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+    public Response unDeployCartridgeDefinition (@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
 
-        return ServiceUtils.undeployCartridge(cartridgeType);
+        ServiceUtils.undeployCartridge(cartridgeType);
+        return Response.noContent().build();
     }
 
     @POST
@@ -547,18 +551,23 @@ public class StratosAdmin extends AbstractAdmin {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public StratosAdminResponse updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
+    public Response updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
 
         try {
-            return updateExistingTenant(tenantInfoBean);
-        } catch (Exception e) {
+            updateExistingTenant(tenantInfoBean);
+
+        } catch(TenantNotFoundException ex){
+            Response.status(Response.Status.NOT_FOUND).build();
+        }catch (Exception e) {
             String msg = "Error in updating tenant " + tenantInfoBean.getTenantDomain();
             log.error(msg, e);
             throw new RestAPIException(msg);
         }
+
+        return Response.noContent().build();
     }
 
-    private StratosAdminResponse updateExistingTenant(TenantInfoBean tenantInfoBean) throws Exception {
+    private void updateExistingTenant(TenantInfoBean tenantInfoBean) throws Exception {
 
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         UserStoreManager userStoreManager;
@@ -586,7 +595,7 @@ public class StratosAdmin extends AbstractAdmin {
             String msg = "Error in retrieving the tenant id for the tenant domain: " +
                     tenantDomain + ".";
             log.error(msg, e);
-            throw new Exception(msg, e);
+            throw new TenantNotFoundException(msg,e);
         }
 
         // filling the first and last name values
@@ -677,10 +686,6 @@ public class StratosAdmin extends AbstractAdmin {
             log.error(msg, e);
             throw new Exception(msg, e);
         }
-
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully updated the tenant " + tenantDomain);
-        return stratosAdminResponse;
     }
 
     @GET
@@ -749,7 +754,7 @@ public class StratosAdmin extends AbstractAdmin {
     @Produces("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public StratosAdminResponse deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+    public Response deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         int tenantId = 0;
         try {
@@ -757,7 +762,8 @@ public class StratosAdmin extends AbstractAdmin {
         } catch (org.wso2.carbon.user.api.UserStoreException e) {
             String msg = "Error in deleting tenant " + tenantDomain;
             log.error(msg, e);
-            throw new RestAPIException(msg);
+            //throw new RestAPIException(msg);
+            return Response.status(Response.Status.NOT_FOUND).build();
         }
         try {
             //TODO: billing related info cleanup
@@ -773,9 +779,7 @@ public class StratosAdmin extends AbstractAdmin {
             throw new RestAPIException(msg);
         }
 
-        StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
-        stratosAdminResponse.setMessage("Successfully deleted tenant " + tenantDomain);
-        return stratosAdminResponse;
+        return Response.noContent().build();
     }
 
     @GET
@@ -858,15 +862,16 @@ public class StratosAdmin extends AbstractAdmin {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public boolean isDomainAvailable(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+    public Response isDomainAvailable(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+        boolean available;
         try {
-            return CommonUtil.isDomainNameAvailable(tenantDomain);
+            available = CommonUtil.isDomainNameAvailable(tenantDomain);
         } catch (Exception e) {
             String msg = "Error in checking domain " + tenantDomain + " is available";
             log.error(msg, e);
             throw new RestAPIException(msg);
         }
-
+        return Response.ok(available).build();
     }
 
     @POST
@@ -947,9 +952,15 @@ public class StratosAdmin extends AbstractAdmin {
     @Produces("application/json")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public ServiceDefinitionBean getService(@PathParam("serviceType") String serviceType)throws RestAPIException {
-
-        return ServiceUtils.getDeployedServiceInformation(serviceType);
+    public Response getService(@PathParam("serviceType") String serviceType)throws RestAPIException {
+        ResponseBuilder rb;
+        ServiceDefinitionBean serviceDefinitionBean = ServiceUtils.getDeployedServiceInformation(serviceType);
+        if(serviceDefinitionBean == null){
+            rb = Response.status(Response.Status.NOT_FOUND);
+        }else{
+            rb = Response.ok(serviceDefinitionBean);
+        }
+        return rb.build();
     }
 
     @GET
@@ -968,10 +979,13 @@ public class StratosAdmin extends AbstractAdmin {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public StratosAdminResponse unDeployService (@PathParam("serviceType") String serviceType)
-            throws RestAPIException {
-
-        return ServiceUtils.undeployService(serviceType);
+    public Response unDeployService (@PathParam("serviceType") String serviceType) throws RestAPIException {
+        try {
+            ServiceUtils.undeployService(serviceType);
+        } catch (ServiceDoesNotExistException e) {
+           return Response.status(Response.Status.NOT_FOUND).build();
+        }
+        return Response.noContent().build();
     }
 
     @POST
@@ -979,9 +993,10 @@ public class StratosAdmin extends AbstractAdmin {
     @Produces("application/json")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public void getRepoNotification(Payload payload) throws RestAPIException {
+    public Response getRepoNotification(Payload payload) throws RestAPIException {
 
         ServiceUtils.getGitRepositoryNotification(payload);
+        return Response.noContent().build();
     }
     
 	@POST
@@ -1085,10 +1100,15 @@ public class StratosAdmin extends AbstractAdmin {
     @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+    public Response removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
                                                          @PathParam("subscriptionAlias") String subscriptionAlias,
                                                          @PathParam("domainName") String domainName) throws RestAPIException {
-        return ServiceUtils.removeSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName);
+        try {
+            ServiceUtils.removeSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName);
+        } catch (DomainMappingExistsException e) {
+            return Response.status(Response.Status.NOT_FOUND).build();
+        }
+        return Response.noContent().build();
     }
 
     @GET