http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java new file mode 100644 index 0000000..6496b6a --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/StratosApiResponse.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.stratos.rest.endpoint.bean; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class StratosApiResponse { + + private String message; + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +}
http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java index eaed606..d37fdd1 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/handlers/StratosAuthorizingHandler.java @@ -151,8 +151,8 @@ public class StratosAuthorizingHandler implements RequestHandler { if (method != null) { return method; } - log.error("The requested resource is not found. Please check the resource path etc.."); - throw new AccessDeniedException("Method is not available : Unauthorized"); + log.error("The requested resource is not found. Please check the resource path, etc"); + throw new AccessDeniedException("Method is not available: Unauthorized"); } /** http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/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 648e4cd..c90f6d4 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 @@ -24,7 +24,7 @@ import org.apache.stratos.manager.dto.SubscriptionInfo; import org.apache.stratos.manager.subscription.SubscriptionDomain; import org.apache.stratos.manager.user.mgt.beans.UserInfoBean; import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; -import org.apache.stratos.rest.endpoint.bean.StratosAdminResponse; +import org.apache.stratos.rest.endpoint.bean.StratosApiResponse; 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; @@ -68,7 +68,7 @@ public class MockContext { return mockContext; } - public StratosAdminResponse addCartirdgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean){ + public StratosApiResponse addCartirdgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean){ int tenantId = getTenantId(); List<CartridgeDefinitionBean> tenantCartridges; @@ -147,9 +147,9 @@ public class MockContext { System.out.println(cartridges.size()); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deployed cartridge definition with type "); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deployed cartridge definition with type "); + return stratosApiResponse; } public Cartridge[] getAvailableMultiTenantCartridges() throws RestAPIException{ @@ -315,7 +315,7 @@ public class MockContext { } - public StratosAdminResponse unsubscribe(String alias) throws RestAPIException{ + public StratosApiResponse unsubscribe(String alias) throws RestAPIException{ int tenantId = getTenantId(); if(subscribedCartridges.containsKey(tenantId)){ if((subscribedCartridges.get(tenantId)).containsKey(alias)){ @@ -324,9 +324,9 @@ public class MockContext { }else{ throw new RestAPIException(Status.NO_CONTENT,"Unable to un-subscribe"); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully un-subscribed"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully un-subscribed"); + return stratosApiResponse; } public Cartridge getCartridgeInfo(String alias) throws RestAPIException{ @@ -374,13 +374,13 @@ public class MockContext { return (availableMultiTenantCartridges.get(tenantId)).get(cartridgeType); } - public StratosAdminResponse deleteCartridgeDefinition(String cartridgeType) throws RestAPIException{ + public StratosApiResponse deleteCartridgeDefinition(String cartridgeType) throws RestAPIException{ if(!deleteFromAvailableSingleTenantCartridgeDefinitions(cartridgeType) && !deleteFromAvailableMultiTenantCartridgeDefinitions(cartridgeType)){ throw new RestAPIException(Status.NO_CONTENT,"No cartridges defined for tenant"); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully delete cartridge definition"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully delete cartridge definition"); + return stratosApiResponse; } private boolean deleteFromAvailableSingleTenantCartridgeDefinitions(String cartridgeType){ @@ -421,7 +421,7 @@ public class MockContext { return true; } - public StratosAdminResponse addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException{ + public StratosApiResponse addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException{ try{ tenantMap.put(tenantInfoBean.getTenantDomain(),tenantInfoBean); tenantInfoBean.setTenantId(tenantIdCount); @@ -429,9 +429,9 @@ public class MockContext { }catch (Exception e){ throw new RestAPIException(Status.INTERNAL_SERVER_ERROR,e.getMessage()); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully added new Tenant"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully added new Tenant"); + return stratosApiResponse; } public TenantInfoBean getTenant(String tenantDomain) throws RestAPIException{ @@ -441,16 +441,16 @@ public class MockContext { return tenantMap.get(tenantDomain); } - public StratosAdminResponse deleteTenant(String tenantDomain) { + public StratosApiResponse deleteTenant(String tenantDomain) { if(tenantMap.containsKey(tenantDomain)){ TenantInfoBean tenant=tenantMap.get(tenantDomain); tenantMap.remove(tenantDomain); tenantIdMap.remove(tenant.getTenantId()); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deleted tenant"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deleted tenant"); + return stratosApiResponse; } public TenantInfoBean[] getTenants() throws RestAPIException{ @@ -467,29 +467,29 @@ public class MockContext { return searchResult.toArray(new TenantInfoBean[0]); } - public StratosAdminResponse activateTenant(String tenantDomain) throws RestAPIException{ + public StratosApiResponse activateTenant(String tenantDomain) throws RestAPIException{ if(tenantMap.containsKey(tenantDomain)){ tenantMap.get(tenantDomain).setActive(true); } else{ throw new RestAPIException(Status.BAD_REQUEST,"Invalid tenant domain"); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully activated Tenant"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully activated Tenant"); + return stratosApiResponse; } - public StratosAdminResponse deactivateTenant(String tenantDomain) throws RestAPIException{ + public StratosApiResponse deactivateTenant(String tenantDomain) throws RestAPIException{ if(tenantMap.containsKey(tenantDomain)){ tenantMap.get(tenantDomain).setActive(false); } else{ throw new RestAPIException(Status.BAD_REQUEST,"Invalid tenant domain"); } - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deactivated Tenant"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deactivated Tenant"); + return stratosApiResponse; } - public StratosAdminResponse addPartition(Partition partition) { + public StratosApiResponse addPartition(Partition partition) { int tenantId = getTenantId(); Map<String,Partition> partitions; @@ -513,12 +513,12 @@ public class MockContext { } partitions.put(partition.id, partition); - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deployed partition"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deployed partition"); + return stratosApiResponse; } - public StratosAdminResponse addAutoScalingPolicyDefinition(AutoscalePolicy autoscalePolicy) { + public StratosApiResponse addAutoScalingPolicyDefinition(AutoscalePolicy autoscalePolicy) { int tenantId = getTenantId(); Map<String,AutoscalePolicy> policies; @@ -542,12 +542,12 @@ public class MockContext { } policies.put(autoscalePolicy.getId(), autoscalePolicy); - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deployed auto scaling policy definition"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deployed auto scaling policy definition"); + return stratosApiResponse; } - public StratosAdminResponse addDeploymentPolicyDefinition(DeploymentPolicy deploymentPolicy) { + public StratosApiResponse addDeploymentPolicyDefinition(DeploymentPolicy deploymentPolicy) { int tenantId = getTenantId(); Map<String,DeploymentPolicy> policies; @@ -571,9 +571,9 @@ public class MockContext { } policies.put(deploymentPolicy.getId(),deploymentPolicy); - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deployed deployment policy definition"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deployed deployment policy definition"); + return stratosApiResponse; } public Partition[] getPartitions() throws RestAPIException{ @@ -726,7 +726,7 @@ public class MockContext { } } - public StratosAdminResponse deployService(ServiceDefinitionBean serviceDefinitionBean) { + public StratosApiResponse deployService(ServiceDefinitionBean serviceDefinitionBean) { int tenantId = getTenantId(); Map<String,ServiceDefinitionBean> serviceDefinitions; @@ -750,9 +750,9 @@ public class MockContext { } serviceDefinitions.put(serviceDefinitionBean.getCartridgeType(),serviceDefinitionBean); - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully deployed service"); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully deployed service"); + return stratosApiResponse; } @@ -841,7 +841,7 @@ public class MockContext { } } - public StratosAdminResponse addSubscriptionDomains(int tenantId, String alias, SubscriptionDomainRequest request) { + public StratosApiResponse addSubscriptionDomains(int tenantId, String alias, SubscriptionDomainRequest request) { // populate new alias List<String> aliasList; if(tenantIdToAliasesMap.containsKey(tenantId)) { @@ -867,9 +867,9 @@ public class MockContext { subscriptionAliasToDomainMap.put(alias, list); - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully added subscription domain/s."); - return stratosAdminResponse; + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully added subscription domain/s."); + return stratosApiResponse; } public List<SubscriptionDomainBean> getSubscriptionDomains(int tenantId, String alias) { @@ -899,9 +899,9 @@ public class MockContext { throw new RestAPIException(Status.NOT_FOUND, message); } - public StratosAdminResponse removeSubscriptionDomain(int tenantId, + public StratosApiResponse removeSubscriptionDomain(int tenantId, String subscriptionAlias, String domainName) { - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); + StratosApiResponse stratosApiResponse = new StratosApiResponse(); List<String> tenantAliases = tenantIdToAliasesMap.get(tenantId); if(tenantAliases != null && tenantAliases.contains(subscriptionAlias)) { @@ -910,14 +910,14 @@ public class MockContext { SubscriptionDomain subscriptionDomain = (SubscriptionDomain) iterator.next(); if (subscriptionDomain.getDomainName().equals(domainName)) { iterator.remove(); - stratosAdminResponse.setMessage("Successfully removed the subscription domain: "+domainName); + stratosApiResponse.setMessage("Successfully removed the subscription domain: "+domainName); } } } else { - stratosAdminResponse.setMessage("Failed to remove the subscription domain: "+domainName); + stratosApiResponse.setMessage("Failed to remove the subscription domain: "+domainName); } - return stratosAdminResponse; + return stratosApiResponse; } public void addUser(UserInfoBean user) { http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java new file mode 100644 index 0000000..34ddc40 --- /dev/null +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosApiV40Mock.java @@ -0,0 +1,578 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.rest.endpoint.mock; + + +import java.net.URI; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.beans.TenantInfoBean; +import org.apache.stratos.manager.dto.Cartridge; +import org.apache.stratos.manager.dto.SubscriptionInfo; +import org.apache.stratos.manager.exception.ADCException; +import org.apache.stratos.manager.user.mgt.beans.UserInfoBean; +import org.apache.stratos.rest.endpoint.Utils; +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.StratosApiResponse; +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.SubscriptionDomainBean; +import org.apache.stratos.rest.endpoint.bean.topology.Cluster; +import org.apache.stratos.rest.endpoint.exception.RestAPIException; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; + +@Path("/") +public class StratosApiV40Mock { + private static Log log = LogFactory.getLog(StratosApiV40Mock.class); + @Context + HttpServletRequest httpServletRequest; + @Context + UriInfo uriInfo; + + @POST + @Path("/init") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public StratosApiResponse initialize () + throws RestAPIException { + + StratosApiResponse stratosApiResponse = new StratosApiResponse(); + stratosApiResponse.setMessage("Successfully logged in"); + return stratosApiResponse; + } + + + @GET + @Path("/cookie") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Response getCookie(){ + HttpSession httpSession = httpServletRequest.getSession(true);//create session if not found + String sessionId = httpSession.getId(); + return Response.ok().header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON). + entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build(); + } + + @GET + @Path("/cartridge/tenanted/list") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge[] getAvailableMultiTenantCartridges() throws RestAPIException { + return MockContext.getInstance().getAvailableMultiTenantCartridges(); + } + + @GET + @Path("/cartridge/list") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge[] getAvailableSingleTenantCartridges() throws RestAPIException { + return MockContext.getInstance().getAvailableSingleTenantCartridges(); + } + + @GET + @Path("/cartridge/available/list") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge[] getAvailableCartridges() throws RestAPIException { + return MockContext.getInstance().getAvailableCartridges(); + } + + @GET + @Path("/cartridge/list/subscribed") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge[] getSubscribedCartridges() throws RestAPIException { + return MockContext.getInstance().getSubscribedCartridges(); + } + + @POST + @Path("/cartridge/subscribe") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) throws RestAPIException{ + return MockContext.getInstance().subscribeToCartridge(cartridgeInfoBean); + } + + + @GET + @Path("/cartridge/info/{subscriptionAlias}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge getCartridgeInfo(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { + return MockContext.getInstance().getCartridgeInfo(subscriptionAlias); + } + + + @POST + @Path("/cartridge/unsubscribe") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public StratosApiResponse unsubscribe(String alias) throws RestAPIException{ + return MockContext.getInstance().unsubscribe(alias); + } + + @POST + @Path("/tenant") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException { + return MockContext.getInstance().addTenant(tenantInfoBean); + } + + + @PUT + @Path("/tenant") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException { + return MockContext.getInstance().addTenant(tenantInfoBean); + } + + @GET + @Path("/tenant/{tenantDomain}") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public TenantInfoBean getTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { + return MockContext.getInstance().getTenant(tenantDomain); + } + + @DELETE + @Path("/tenant/{tenantDomain}") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { + return MockContext.getInstance().deleteTenant(tenantDomain); + } + + + @GET + @Path("/tenant/list") + @Produces("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public TenantInfoBean[] retrieveTenants() throws RestAPIException { + return MockContext.getInstance().getTenants(); + } + + @GET + @Path("tenant/search/{domain}") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public TenantInfoBean[] retrievePartialSearchTenants(@PathParam("domain")String domain) throws RestAPIException { + return MockContext.getInstance().retrievePartialSearchTenants(domain); + } + + + @POST + @Path("tenant/activate/{tenantDomain}") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public void activateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { + MockContext.getInstance().activateTenant(tenantDomain); + } + + @POST + @Path("tenant/deactivate/{tenantDomain}") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deactivateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { + return MockContext.getInstance().deactivateTenant(tenantDomain); + } + + @POST + @Path("/service/definition") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deployService(ServiceDefinitionBean serviceDefinitionBean) + throws RestAPIException { + + log.info("Service definition request.. : " + serviceDefinitionBean.getServiceName()); + return MockContext.getInstance().deployService(serviceDefinitionBean); + } + @GET + @Path("/service") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public ServiceDefinitionBean[] getServices () throws RestAPIException { + return MockContext.getInstance().getServices(); + + } + + @GET + @Path("/service/{serviceType}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public ServiceDefinitionBean getService(@PathParam("serviceType") String serviceType)throws RestAPIException { + + return MockContext.getInstance().getServiceType(serviceType); + } + + @POST + @Path("/cartridge/definition/") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deployCartridgeDefinition (CartridgeDefinitionBean cartridgeDefinitionBean) + throws RestAPIException { + return MockContext.getInstance().addCartirdgeDefinition(cartridgeDefinitionBean); + } + + @DELETE + @Path("/cartridge/definition/{cartridgeType}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public void unDeployCartridgeDefinition (@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { + MockContext.getInstance().deleteCartridgeDefinition(cartridgeType); + } + + @GET + @Path("/cartridge/available/info/{cartridgeType}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge getAvailableSingleTenantCartridgeInfo(@PathParam("cartridgeType") String cartridgeType) + throws ADCException, RestAPIException { + return MockContext.getInstance().getAvailableSingleTenantCartridgeInfo(cartridgeType); + } + + @GET + @Path("/cartridge/lb") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cartridge[] getAvailableLbCartridges() throws RestAPIException { + return MockContext.getInstance().getAvailableLbCartridges(); + } + + + + @POST + @Path("/policy/deployment/partition") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deployPartition (Partition partition) + throws RestAPIException { + return MockContext.getInstance().addPartition(partition); + } + + @POST + @Path("/policy/autoscale") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deployAutoscalingPolicyDefintion (AutoscalePolicy autoscalePolicy) + throws RestAPIException { + return MockContext.getInstance().addAutoScalingPolicyDefinition(autoscalePolicy); + + } + + @POST + @Path("/policy/deployment") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + @SuperTenantService(true) + public StratosApiResponse deployDeploymentPolicyDefinition (DeploymentPolicy deploymentPolicy) + throws RestAPIException { + return MockContext.getInstance().addDeploymentPolicyDefinition(deploymentPolicy); + + } + + @GET + @Path("/partition") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Partition[] getPartitions () throws RestAPIException { + return MockContext.getInstance().getPartitions(); + + } + + @GET + @Path("/partition/{partitionId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Partition getPartition (@PathParam("partitionId") String partitionId) throws RestAPIException { + return MockContext.getInstance().getPartition(partitionId); + + } + + @GET + @Path("/partition/group/{deploymentPolicyId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public PartitionGroup[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId) + throws RestAPIException { + return MockContext.getInstance().getPartitionGroups(deploymentPolicyId); + + } + + @GET + @Path("/partition/{deploymentPolicyId}/{partitionGroupId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Partition[] getPartitions (@PathParam("deploymentPolicyId") String deploymentPolicyId, + @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException { + return MockContext.getInstance().getPartitions(deploymentPolicyId, partitionGroupId); + + } + + @GET + @Path("/partition/{deploymentPolicyId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Partition [] getPartitionsOfPolicy (@PathParam("deploymentPolicyId") String deploymentPolicyId) + throws RestAPIException { + return MockContext.getInstance().getPartitionsOfPolicy(deploymentPolicyId); + + } + + @GET + @Path("/policy/autoscale") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public AutoscalePolicy[] getAutoscalePolicies () throws RestAPIException { + return MockContext.getInstance().getAutoscalePolicies(); + + } + + @GET + @Path("/policy/autoscale/{autoscalePolicyId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public AutoscalePolicy getAutoscalePolicies (@PathParam("autoscalePolicyId") String autoscalePolicyId) + throws RestAPIException { + return MockContext.getInstance().getAutoscalePolicies(autoscalePolicyId); + + } + + @GET + @Path("/policy/deployment") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public DeploymentPolicy[] getDeploymentPolicies () throws RestAPIException { + return MockContext.getInstance().getDeploymentPolicies(); + + } + + @GET + @Path("/policy/deployment/{deploymentPolicyId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public DeploymentPolicy getDeploymentPolicies (@PathParam("deploymentPolicyId") String deploymentPolicyId) + throws RestAPIException { + return MockContext.getInstance().getDeploymentPolicies(deploymentPolicyId); + + } + + @GET + @Path("/cluster/") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cluster[] getClustersForTenant() throws RestAPIException { + + return MockContext.getInstance().getClusters(); + } + + @GET + @Path("/cluster/{cartridgeType}/") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cluster[] getClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { + + return MockContext.getInstance().getClusters(); + } + + @GET + @Path("/cluster/{cartridgeType}/{subscriptionAlias}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cluster[] getCluster(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException, RestAPIException { + + return MockContext.getInstance().getClusters(); + } + + @GET + @Path("/cluster/clusterId/{clusterId}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Cluster[] getCluster(@PathParam("clusterId") String clusterId) throws RestAPIException { + return MockContext.getInstance().getClusters(); + } + + @GET + @Path("{cartridgeType}/policy/deployment") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public DeploymentPolicy[] getValidDeploymentPolicies (@PathParam("cartridgeType") String cartridgeType) + throws RestAPIException { + + return MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType); + } + + @POST + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public StratosApiResponse addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias, + SubscriptionDomainRequest request) throws RestAPIException { + + return MockContext.getInstance().addSubscriptionDomains(2, subscriptionAlias, request); + } + + @GET + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public SubscriptionDomainBean[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { + + return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); + } + + @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public SubscriptionDomainBean 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}/domains/{domainName}") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public StratosApiResponse removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias, + @PathParam("domainName") String domainName) throws RestAPIException { + + return MockContext.getInstance().removeSubscriptionDomain(2, subscriptionAlias, domainName); + } + + @POST + @Path("/cartridge/sync") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Response synchronizeRepository(String alias) throws RestAPIException { + return Response.noContent().build(); + } + + @POST + @Path("/user") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/admin/manage/add/users") + public Response addUser(UserInfoBean userInfoBean) throws RestAPIException { + MockContext.getInstance().addUser(userInfoBean); + URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build(); + return Response.created(url).build(); + } + + @DELETE + @Path("/user/{userName}") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/admin/manage/add/users") + public Response deleteUser(@PathParam("userName") String userName) throws RestAPIException { + MockContext.getInstance().deleteUser(userName); + return Response.noContent().build(); + } + + @PUT + @Path("/user") + @Consumes("application/json") + @Produces("application/json") + @AuthorizationAction("/permission/admin/manage/add/users") + public Response updateUser(UserInfoBean userInfoBean) throws RestAPIException { + MockContext.getInstance().updateUser(userInfoBean); + URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build(); + return Response.created(url).build(); + } + + @GET + @Path("/user/list") + @Produces("application/json") + @AuthorizationAction("/permission/admin/manage/add/users") + public UserInfoBean[] retrieveUsers() throws RestAPIException { + List<UserInfoBean> userList = null; + userList = MockContext.getInstance().getAllUsers(); + return userList.toArray(new UserInfoBean[userList.size()]); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/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 deleted file mode 100644 index 0b94641..0000000 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/mock/StratosTestAdmin.java +++ /dev/null @@ -1,593 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.rest.endpoint.mock; - - -import java.net.URI; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.common.beans.TenantInfoBean; -import org.apache.stratos.common.exception.StratosException; -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.ADCException; -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.manager.user.mgt.beans.UserInfoBean; -import org.apache.stratos.rest.endpoint.ServiceHolder; -import org.apache.stratos.rest.endpoint.Utils; -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.SubscriptionDomainBean; -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 org.apache.stratos.tenant.mgt.core.TenantPersistor; -import org.apache.stratos.tenant.mgt.util.TenantMgtUtil; -import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.context.RegistryType; -import org.wso2.carbon.registry.core.exceptions.RegistryException; -import org.wso2.carbon.registry.core.session.UserRegistry; -import org.wso2.carbon.user.core.tenant.Tenant; -import org.wso2.carbon.utils.multitenancy.MultitenantConstants; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.*; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; - -@Path("/admin/") -public class StratosTestAdmin { - private static Log log = LogFactory.getLog(StratosTestAdmin.class); - @Context - HttpServletRequest httpServletRequest; - @Context - UriInfo uriInfo; - - @POST - @Path("/init") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public StratosAdminResponse initialize () - throws RestAPIException { - - StratosAdminResponse stratosAdminResponse = new StratosAdminResponse(); - stratosAdminResponse.setMessage("Successfully logged in"); - return stratosAdminResponse; - } - - - @GET - @Path("/cookie") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Response getCookie(){ - HttpSession httpSession = httpServletRequest.getSession(true);//create session if not found - String sessionId = httpSession.getId(); - return Response.ok().header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON). - entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build(); - } - - @GET - @Path("/cartridge/tenanted/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge[] getAvailableMultiTenantCartridges() throws RestAPIException { - return MockContext.getInstance().getAvailableMultiTenantCartridges(); - } - - @GET - @Path("/cartridge/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge[] getAvailableSingleTenantCartridges() throws RestAPIException { - return MockContext.getInstance().getAvailableSingleTenantCartridges(); - } - - @GET - @Path("/cartridge/available/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge[] getAvailableCartridges() throws RestAPIException { - return MockContext.getInstance().getAvailableCartridges(); - } - - @GET - @Path("/cartridge/list/subscribed") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge[] getSubscribedCartridges() throws RestAPIException { - return MockContext.getInstance().getSubscribedCartridges(); - } - - @POST - @Path("/cartridge/subscribe") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) throws RestAPIException{ - return MockContext.getInstance().subscribeToCartridge(cartridgeInfoBean); - } - - - @GET - @Path("/cartridge/info/{subscriptionAlias}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge getCartridgeInfo(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - return MockContext.getInstance().getCartridgeInfo(subscriptionAlias); - } - - - @POST - @Path("/cartridge/unsubscribe") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public StratosAdminResponse unsubscribe(String alias) throws RestAPIException{ - return MockContext.getInstance().unsubscribe(alias); - } - - @POST - @Path("/tenant") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException { - return MockContext.getInstance().addTenant(tenantInfoBean); - } - - - @PUT - @Path("/tenant") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException { - return MockContext.getInstance().addTenant(tenantInfoBean); - } - - @GET - @Path("/tenant/{tenantDomain}") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public TenantInfoBean getTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { - return MockContext.getInstance().getTenant(tenantDomain); - } - - @DELETE - @Path("/tenant/{tenantDomain}") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { - return MockContext.getInstance().deleteTenant(tenantDomain); - } - - - @GET - @Path("/tenant/list") - @Produces("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public TenantInfoBean[] retrieveTenants() throws RestAPIException { - return MockContext.getInstance().getTenants(); - } - - @GET - @Path("tenant/search/{domain}") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public TenantInfoBean[] retrievePartialSearchTenants(@PathParam("domain")String domain) throws RestAPIException { - return MockContext.getInstance().retrievePartialSearchTenants(domain); - } - - - @POST - @Path("tenant/activate/{tenantDomain}") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public void activateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { - MockContext.getInstance().activateTenant(tenantDomain); - } - - @POST - @Path("tenant/deactivate/{tenantDomain}") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deactivateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { - return MockContext.getInstance().deactivateTenant(tenantDomain); - } - - @POST - @Path("/service/definition") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deployService(ServiceDefinitionBean serviceDefinitionBean) - throws RestAPIException { - - log.info("Service definition request.. : " + serviceDefinitionBean.getServiceName()); - return MockContext.getInstance().deployService(serviceDefinitionBean); - } - @GET - @Path("/service") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public ServiceDefinitionBean[] getServices () throws RestAPIException { - return MockContext.getInstance().getServices(); - - } - - @GET - @Path("/service/{serviceType}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public ServiceDefinitionBean getService(@PathParam("serviceType") String serviceType)throws RestAPIException { - - return MockContext.getInstance().getServiceType(serviceType); - } - - @POST - @Path("/cartridge/definition/") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deployCartridgeDefinition (CartridgeDefinitionBean cartridgeDefinitionBean) - throws RestAPIException { - return MockContext.getInstance().addCartirdgeDefinition(cartridgeDefinitionBean); - } - - @DELETE - @Path("/cartridge/definition/{cartridgeType}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public void unDeployCartridgeDefinition (@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { - MockContext.getInstance().deleteCartridgeDefinition(cartridgeType); - } - - @GET - @Path("/cartridge/available/info/{cartridgeType}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge getAvailableSingleTenantCartridgeInfo(@PathParam("cartridgeType") String cartridgeType) - throws ADCException, RestAPIException { - return MockContext.getInstance().getAvailableSingleTenantCartridgeInfo(cartridgeType); - } - - @GET - @Path("/cartridge/lb") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cartridge[] getAvailableLbCartridges() throws RestAPIException { - return MockContext.getInstance().getAvailableLbCartridges(); - } - - - - @POST - @Path("/policy/deployment/partition") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deployPartition (Partition partition) - throws RestAPIException { - return MockContext.getInstance().addPartition(partition); - } - - @POST - @Path("/policy/autoscale") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deployAutoscalingPolicyDefintion (AutoscalePolicy autoscalePolicy) - throws RestAPIException { - return MockContext.getInstance().addAutoScalingPolicyDefinition(autoscalePolicy); - - } - - @POST - @Path("/policy/deployment") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - @SuperTenantService(true) - public StratosAdminResponse deployDeploymentPolicyDefinition (DeploymentPolicy deploymentPolicy) - throws RestAPIException { - return MockContext.getInstance().addDeploymentPolicyDefinition(deploymentPolicy); - - } - - @GET - @Path("/partition") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Partition[] getPartitions () throws RestAPIException { - return MockContext.getInstance().getPartitions(); - - } - - @GET - @Path("/partition/{partitionId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Partition getPartition (@PathParam("partitionId") String partitionId) throws RestAPIException { - return MockContext.getInstance().getPartition(partitionId); - - } - - @GET - @Path("/partition/group/{deploymentPolicyId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public PartitionGroup[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId) - throws RestAPIException { - return MockContext.getInstance().getPartitionGroups(deploymentPolicyId); - - } - - @GET - @Path("/partition/{deploymentPolicyId}/{partitionGroupId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Partition[] getPartitions (@PathParam("deploymentPolicyId") String deploymentPolicyId, - @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException { - return MockContext.getInstance().getPartitions(deploymentPolicyId, partitionGroupId); - - } - - @GET - @Path("/partition/{deploymentPolicyId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Partition [] getPartitionsOfPolicy (@PathParam("deploymentPolicyId") String deploymentPolicyId) - throws RestAPIException { - return MockContext.getInstance().getPartitionsOfPolicy(deploymentPolicyId); - - } - - @GET - @Path("/policy/autoscale") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public AutoscalePolicy[] getAutoscalePolicies () throws RestAPIException { - return MockContext.getInstance().getAutoscalePolicies(); - - } - - @GET - @Path("/policy/autoscale/{autoscalePolicyId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public AutoscalePolicy getAutoscalePolicies (@PathParam("autoscalePolicyId") String autoscalePolicyId) - throws RestAPIException { - return MockContext.getInstance().getAutoscalePolicies(autoscalePolicyId); - - } - - @GET - @Path("/policy/deployment") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public DeploymentPolicy[] getDeploymentPolicies () throws RestAPIException { - return MockContext.getInstance().getDeploymentPolicies(); - - } - - @GET - @Path("/policy/deployment/{deploymentPolicyId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public DeploymentPolicy getDeploymentPolicies (@PathParam("deploymentPolicyId") String deploymentPolicyId) - throws RestAPIException { - return MockContext.getInstance().getDeploymentPolicies(deploymentPolicyId); - - } - - @GET - @Path("/cluster/") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cluster[] getClustersForTenant() throws RestAPIException { - - return MockContext.getInstance().getClusters(); - } - - @GET - @Path("/cluster/{cartridgeType}/") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cluster[] getClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { - - return MockContext.getInstance().getClusters(); - } - - @GET - @Path("/cluster/{cartridgeType}/{subscriptionAlias}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cluster[] getCluster(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException, RestAPIException { - - return MockContext.getInstance().getClusters(); - } - - @GET - @Path("/cluster/clusterId/{clusterId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Cluster[] getCluster(@PathParam("clusterId") String clusterId) throws RestAPIException { - return MockContext.getInstance().getClusters(); - } - - @GET - @Path("{cartridgeType}/policy/deployment") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public DeploymentPolicy[] getValidDeploymentPolicies (@PathParam("cartridgeType") String cartridgeType) - throws RestAPIException { - - return MockContext.getInstance().getDeploymentPoliciesForCartridgeType(cartridgeType); - } - - @POST - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public StratosAdminResponse addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias, - SubscriptionDomainRequest request) throws RestAPIException { - - return MockContext.getInstance().addSubscriptionDomains(2, subscriptionAlias, request); - } - - @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomainBean[] getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - - return MockContext.getInstance().getSubscriptionDomains(2, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); - } - - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public SubscriptionDomainBean 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}/domains/{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); - } - - @POST - @Path("/cartridge/sync") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Response synchronizeRepository(String alias) throws RestAPIException { - return Response.noContent().build(); - } - - @POST - @Path("/user") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/admin/manage/add/users") - public Response addUser(UserInfoBean userInfoBean) throws RestAPIException { - MockContext.getInstance().addUser(userInfoBean); - URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build(); - return Response.created(url).build(); - } - - @DELETE - @Path("/user/{userName}") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/admin/manage/add/users") - public Response deleteUser(@PathParam("userName") String userName) throws RestAPIException { - MockContext.getInstance().deleteUser(userName); - return Response.noContent().build(); - } - - @PUT - @Path("/user") - @Consumes("application/json") - @Produces("application/json") - @AuthorizationAction("/permission/admin/manage/add/users") - public Response updateUser(UserInfoBean userInfoBean) throws RestAPIException { - MockContext.getInstance().updateUser(userInfoBean); - URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build(); - return Response.created(url).build(); - } - - @GET - @Path("/user/list") - @Produces("application/json") - @AuthorizationAction("/permission/admin/manage/add/users") - public UserInfoBean[] retrieveUsers() throws RestAPIException { - List<UserInfoBean> userList = null; - userList = MockContext.getInstance().getAllUsers(); - return userList.toArray(new UserInfoBean[userList.size()]); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java deleted file mode 100644 index 37b1905..0000000 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.rest.endpoint.services; - -import org.apache.axis2.context.ConfigurationContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.context.CarbonContext; -import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils; -import org.wso2.carbon.utils.ConfigurationContextService; -import org.wso2.carbon.utils.multitenancy.MultitenantConstants; - -/** - * The abstract class for service beans. If the admin service want to get {@link ConfigurationContext} etc, - * they should acquire them through this class' methods. - */ -public class AbstractAdmin { - private static Log log = LogFactory.getLog(AbstractAdmin.class); - - protected ConfigurationContext getConfigContext() { - - // If a tenant has been set, then try to get the ConfigurationContext of that tenant - PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - ConfigurationContextService configurationContextService = - (ConfigurationContextService) carbonContext.getOSGiService(ConfigurationContextService.class); - ConfigurationContext mainConfigContext = configurationContextService.getServerConfigContext(); - String domain = carbonContext.getTenantDomain(); - if (domain != null && !MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(domain)) { - return TenantAxisUtils.getTenantConfigurationContext(domain, mainConfigContext); - } else if (carbonContext.getTenantId() == MultitenantConstants.SUPER_TENANT_ID) { - return mainConfigContext; - } else { - throw new UnsupportedOperationException("Tenant domain unidentified. " + - "Upstream code needs to identify & set the tenant domain & tenant ID. " + - " The TenantDomain SOAP header could be set by the clients or " + - "tenant authentication should be carried out."); - } - } - - protected String getTenantDomain(){ - return CarbonContext.getThreadLocalCarbonContext().getTenantDomain(); - } - - protected String getUsername(){ - return CarbonContext.getThreadLocalCarbonContext().getUsername(); - } - - protected int getTenantId(){ - return CarbonContext.getThreadLocalCarbonContext().getTenantId(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java deleted file mode 100644 index 7a2fd3d..0000000 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AuthenticationAdmin.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.rest.endpoint.services; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.rest.endpoint.Utils; -import org.apache.stratos.rest.endpoint.annotation.AuthorizationAction; -import org.wso2.carbon.context.PrivilegedCarbonContext; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.*; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -@Path("/auth/") -public class AuthenticationAdmin extends AbstractAdmin { - Log log = LogFactory.getLog(AuthenticationAdmin.class); - // TODO: investigate on the thread safety of this apprach... - @Context - HttpServletRequest httpServletRequest; - - - /* - This method gets called by the client who are interested in using session mechanism to authenticate themselves in - subsequent calls. This method call get authenticated by the basic authenticator. - Once the authenticated call received, the method creates a session. - - */ - @GET - @Path("/cookie") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Response getCookie(){ - HttpSession httpSession = httpServletRequest.getSession(true);//create session if not found - PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - httpSession.setAttribute("userName",carbonContext.getUsername()); - httpSession.setAttribute("tenantDomain",carbonContext.getTenantDomain()); - httpSession.setAttribute("tenantId",carbonContext.getTenantId()); - - String sessionId = httpSession.getId(); - return Response.ok().header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON). - entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build(); - } - - -}
