You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/05/07 22:49:06 UTC
[3/5] git commit: implementing the mock REST API test cases for the
domain mapping implementation
implementing the mock REST API test cases for the domain mapping implementation
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/acdb17bf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/acdb17bf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/acdb17bf
Branch: refs/heads/master
Commit: acdb17bffc67bf4bb6c97c72892b41de824a9625
Parents: 34d4205
Author: Nirmal Fernando <ni...@apache.org>
Authored: Thu May 8 02:16:45 2014 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Thu May 8 02:16:45 2014 +0530
----------------------------------------------------------------------
.../stratos/rest/endpoint/mock/MockContext.java | 82 ++++++++++++++++++++
.../rest/endpoint/mock/StratosTestAdmin.java | 45 ++++++++++-
2 files changed, 126 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/acdb17bf/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 ec58da7..5cadb9a 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
@@ -29,13 +29,18 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.Autosca
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain;
import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
import java.util.*;
+import javax.ws.rs.core.Response.Status;
+
public class MockContext {
private static MockContext mockContext = new MockContext(); // singleton
+ private Map<String, List<SubscriptionDomain>> subscriptionAliasToDomainMap = new HashMap<String, List<SubscriptionDomain>>();
+ private Map<Integer, List<String>> tenantIdToAliasesMap = new HashMap<Integer, List<String>>();
private List<CartridgeDefinitionBean> cartridgeDefinitionBeanList = new LinkedList<CartridgeDefinitionBean>();
private Map<String,Cartridge> availableSingleTenantCartridges = new HashMap<String,Cartridge>();
private Map<String,Cartridge> availableMultiTenantCartridges = new HashMap<String,Cartridge>();
@@ -387,4 +392,81 @@ public class MockContext {
return deploymentPolicyMap.values().toArray(new DeploymentPolicy[0]);
}
+ public StratosAdminResponse addSubscriptionDomain(int tenantId, String alias, String domainName, String applicationContext) {
+ // populate new alias
+ List<String> aliasList;
+ if(tenantIdToAliasesMap.containsKey(tenantId)) {
+ aliasList = tenantIdToAliasesMap.get(tenantId);
+ } else {
+ aliasList = new ArrayList<String>();
+ }
+ aliasList.add(alias);
+ tenantIdToAliasesMap.put(tenantId, aliasList);
+
+ // populate domains
+ List<SubscriptionDomain> list;
+ if(subscriptionAliasToDomainMap.containsKey(alias)) {
+ list = subscriptionAliasToDomainMap.get(alias);
+ } else {
+ list = new ArrayList<SubscriptionDomain>();
+ }
+ SubscriptionDomain subscriptionDomain = new SubscriptionDomain();
+ subscriptionDomain.domainName = domainName;
+ subscriptionDomain.applicationContext = applicationContext;
+ list.add(subscriptionDomain);
+ subscriptionAliasToDomainMap.put(alias, list);
+
+ StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
+ stratosAdminResponse.setMessage("Successfully added subscription domain: "+domainName);
+ return stratosAdminResponse;
+ }
+
+ public List<SubscriptionDomain> getSubscriptionDomains(int tenantId, String alias) {
+ List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+ if(tenantAliases != null && tenantAliases.contains(alias)) {
+
+ return subscriptionAliasToDomainMap.get(alias);
+ }
+ return new ArrayList<SubscriptionDomain>();
+ }
+
+ public SubscriptionDomain getSubscriptionDomain(int tenantId, String cartridgeType,
+ String subscriptionAlias, String domainName) throws RestAPIException {
+ List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+ if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) {
+ for (SubscriptionDomain subscriptionDomain : subscriptionAliasToDomainMap.get(subscriptionAlias)) {
+ if(subscriptionDomain.domainName.equals(domainName)) {
+ return subscriptionDomain;
+ }
+ }
+ }
+
+ String message = "Could not find a subscription [domain] " + domainName
+ + " for Cartridge [type] " + cartridgeType + " and [alias] "
+ + subscriptionAlias;
+ throw new RestAPIException(Status.NOT_FOUND, message);
+ }
+
+ public StratosAdminResponse removeSubscriptionDomain(int tenantId,
+ String subscriptionAlias, String domainName) {
+ StratosAdminResponse stratosAdminResponse = new StratosAdminResponse();
+
+ List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId);
+ if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) {
+ for (Iterator<SubscriptionDomain> iterator = subscriptionAliasToDomainMap.get(subscriptionAlias).iterator(); iterator
+ .hasNext();) {
+ SubscriptionDomain subscriptionDomain = (SubscriptionDomain) iterator.next();
+ if (subscriptionDomain.domainName.equals(domainName)) {
+ iterator.remove();
+ stratosAdminResponse.setMessage("Successfully removed the subscription domain: "+domainName);
+ }
+ }
+ } else {
+
+ stratosAdminResponse.setMessage("Failed to remove the subscription domain: "+domainName);
+ }
+
+ return stratosAdminResponse;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/acdb17bf/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
index c31e3e3..3f16039 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java
@@ -18,7 +18,7 @@
*/
package org.apache.stratos.rest.endpoint.mock;
-import org.apache.catalina.tribes.membership.McastService;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.common.beans.TenantInfoBean;
@@ -30,14 +30,17 @@ import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse;
+import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomain;
import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+import org.apache.stratos.rest.endpoint.services.ServiceUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@@ -474,6 +477,46 @@ public class StratosTestAdmin {
return MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType);
}
+ @POST
+ @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ public StratosAdminResponse addSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias,
+ SubscriptionDomainRequest request) throws RestAPIException {
+
+ return MockContext.getInstance().addSubscriptionDomain(2, subscriptionAlias, request.getDomainName(), request.getApplicationContext());
+ }
+
+ @GET
+ @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ public SubscriptionDomain[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
+
+ return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomain[0]);
+ }
+ @GET
+ @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ public SubscriptionDomain getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
+
+ return MockContext.getInstance().getSubscriptionDomain(2, cartridgeType, subscriptionAlias, domainName);
+ }
+
+ @DELETE
+ @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/{domainName}")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ public StratosAdminResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType,
+ @PathParam("subscriptionAlias") String subscriptionAlias,
+ @PathParam("domainName") String domainName) throws RestAPIException {
+
+ return MockContext.getInstance().removeSubscriptionDomain(2, subscriptionAlias, domainName);
+ }
}