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
