implementing a new REST API operation - getSubscriptionDomain

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

Branch: refs/heads/master
Commit: 34d42058d50241f3ef165753460551f8a200bda7
Parents: 5d1fe10
Author: Nirmal Fernando <[email protected]>
Authored: Thu May 8 02:15:53 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Thu May 8 02:15:53 2014 +0530

----------------------------------------------------------------------
 .../rest/endpoint/services/ServiceUtils.java    | 38 ++++++++++++++------
 .../rest/endpoint/services/StratosAdmin.java    | 12 ++++---
 2 files changed, 35 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/34d42058/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 6b7eb66..f7b70f6 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
@@ -44,6 +44,7 @@ import 
org.apache.stratos.manager.subscription.CartridgeSubscription;
 import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
 import org.apache.stratos.manager.subscription.PersistenceContext;
 import org.apache.stratos.manager.subscription.SubscriptionData;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import 
org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
 import org.apache.stratos.manager.utils.CartridgeConstants;
@@ -64,6 +65,8 @@ import 
org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
 import java.rmi.RemoteException;
 import java.util.*;
 import java.util.regex.Pattern;
@@ -1200,7 +1203,7 @@ public class ServiceUtils {
         return stratosAdminResponse;
     }
 
-    public static List<String> getSubscriptionDomains(ConfigurationContext 
configurationContext, String cartridgeType,
+    public static List<SubscriptionDomain> 
getSubscriptionDomains(ConfigurationContext configurationContext, String 
cartridgeType,
                                                       String 
subscriptionAlias) throws RestAPIException {
         try {
             int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
@@ -1210,15 +1213,29 @@ public class ServiceUtils {
             throw new RestAPIException(e.getMessage(), e);
         }
     }
-
-    public static String isSubscriptionDomainValid(String domain) throws 
RestAPIException {
-        try {
-            return 
String.valueOf(cartridgeSubsciptionManager.isSubscriptionDomainValid(domain));
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-    }
+    
+       public static SubscriptionDomain 
getSubscriptionDomain(ConfigurationContext configurationContext, String 
cartridgeType,
+                       String subscriptionAlias, String domain) throws 
RestAPIException {
+               try {
+                       int tenantId = ApplicationManagementUtil
+                                       .getTenantId(configurationContext);
+                       SubscriptionDomain subscriptionDomain = 
cartridgeSubsciptionManager.getSubscriptionDomain(tenantId,
+                                       subscriptionAlias, domain);
+                       
+                       if (subscriptionDomain == null) {
+                               String message = "Could not find a subscription 
[domain] "+domain+ " for Cartridge [type] "
+                                                       +cartridgeType+ " and 
[alias] "+subscriptionAlias;
+                               log.error(message);
+                               throw new RestAPIException(Status.NOT_FOUND, 
message);
+                       }
+                       
+                       return subscriptionDomain;
+                       
+               } catch (Exception e) {
+                       log.error(e.getMessage(), e);
+                       throw new RestAPIException(e.getMessage(), e);
+               }
+       }
 
     public static StratosAdminResponse 
removeSubscriptionDomain(ConfigurationContext configurationContext, String 
cartridgeType,
                                                                 String 
subscriptionAlias, String domain) throws RestAPIException {
@@ -1234,4 +1251,5 @@ public class ServiceUtils {
         stratosAdminResponse.setMessage("Successfully removed domains from 
cartridge subscription");
         return stratosAdminResponse;
     }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/34d42058/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 a573225..5b39030 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,7 @@ 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.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import org.apache.stratos.rest.endpoint.ServiceHolder;
 import org.apache.stratos.rest.endpoint.Utils;
 import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
@@ -1034,19 +1035,20 @@ public class StratosAdmin extends AbstractAdmin {
     
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public String[] getSubscriptionDomains(@PathParam("cartridgeType") String 
cartridgeType,
+    public SubscriptionDomain[] 
getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
                                            @PathParam("subscriptionAlias") 
String subscriptionAlias) throws RestAPIException {
 
-        return (String[]) 
ServiceUtils.getSubscriptionDomains(getConfigContext(), cartridgeType, 
subscriptionAlias).toArray();
+        return ServiceUtils.getSubscriptionDomains(getConfigContext(), 
cartridgeType, subscriptionAlias).toArray(new SubscriptionDomain[0]);
     }
 
     @GET
-    @Path("/cartridge/subscription/domain/{domainName}/is-valid")
+    
@Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public String isSubscriptionDomainValid(@PathParam("domainName") String 
domainName) throws RestAPIException {
+    public SubscriptionDomain 
getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+            @PathParam("subscriptionAlias") String subscriptionAlias, 
@PathParam("domainName") String domainName) throws RestAPIException {
 
-        return ServiceUtils.isSubscriptionDomainValid(domainName);
+        return ServiceUtils.getSubscriptionDomain(getConfigContext(), 
cartridgeType, subscriptionAlias, domainName);
     }
 
     @DELETE

Reply via email to