REST API refactoring by Udara
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2242e2fc Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2242e2fc Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2242e2fc Branch: refs/heads/master Commit: 2242e2fc6083129e3f0e5b08707250f5b1648a44 Parents: 8683ac9 Author: Shiro <[email protected]> Authored: Mon Nov 24 20:53:33 2014 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Thu Nov 27 15:21:59 2014 +0530 ---------------------------------------------------------------------- .../rest/endpoint/api/StratosApiV41.java | 619 ++++++++++--------- 1 file changed, 315 insertions(+), 304 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/2242e2fc/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index c22c640..e6fe876 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -28,7 +28,6 @@ import org.apache.stratos.common.util.CommonUtil; import org.apache.stratos.manager.composite.application.beans.ApplicationDefinition; import org.apache.stratos.manager.dto.Cartridge; import org.apache.stratos.manager.exception.DomainMappingExistsException; -import org.apache.stratos.manager.exception.ServiceDoesNotExistException; import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition; import org.apache.stratos.manager.subscription.ApplicationSubscription; import org.apache.stratos.manager.subscription.CartridgeSubscription; @@ -47,7 +46,6 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; 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.kubernetes.KubernetesGroup; import org.apache.stratos.rest.endpoint.bean.kubernetes.KubernetesHost; import org.apache.stratos.rest.endpoint.bean.kubernetes.KubernetesMaster; @@ -80,7 +78,6 @@ import javax.ws.rs.core.UriInfo; import java.net.URI; import java.util.ArrayList; import java.util.List; -import java.util.UUID; import static javax.ws.rs.core.Response.ResponseBuilder; @@ -131,7 +128,99 @@ public class StratosApiV41 extends AbstractApi { } @POST - @Path("/application/definition/") + @Path("/cartridges") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition") + public Response deployCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean) + throws RestAPIException { + StratosApiV41Utils.deployCartridge(cartridgeDefinitionBean, getConfigContext(), getUsername(), + getTenantDomain()); + URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeDefinitionBean.type).build(); + return Response.created(url).build(); + + } + + @GET + @Path("/cartridges") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/cartridge") + public Response getCartridges() throws RestAPIException { + List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, null, getConfigContext()); + ResponseBuilder rb = Response.ok(); + rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); + return rb.build(); + } + + @DELETE + @Path("/cartridges/{cartridgeType}") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition") + public Response unDeployCartridgeDefinition(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { + StratosApiV41Utils.undeployCartridge(cartridgeType); + return Response.noContent().build(); + } + + @GET + @Path("/cartridges/singleTenant") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/cartridge") + public Response getSingleTenantCartridges() throws RestAPIException { + List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, false, getConfigContext()); + ResponseBuilder rb = Response.ok(); + rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); + return rb.build(); + } + + @GET + @Path("/cartridges/multiTenant") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/cartridge") + public Response getMultiTenantCartridges() throws RestAPIException { + List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, true, getConfigContext()); + ResponseBuilder rb = Response.ok(); + rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); + return rb.build(); + } + + @GET + @Path("/cartridges/{cartridgeType}/deploymentPolicy") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") + public Response getValidDeploymentPoliciesOfCartridge(@PathParam("cartridgeType") String cartridgeType) + throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicies(cartridgeType)).build(); + } + + @GET + @Path("/cartridges/{cartridgeType}/singleTenant") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/cartridge") + public Response getAvailableSingleTenantCartridge(@PathParam("cartridgeType") String cartridgeType) + throws RestAPIException { + ResponseBuilder rb = Response.ok(); + rb.entity(StratosApiV41Utils.getAvailableCartridgeInfo(cartridgeType, null, getConfigContext())); + return rb.build(); + } + + @GET + @Path("/cartridges/loadBalancer") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/cartridge") + public Response getAvailableLbCartridges() throws RestAPIException { + List<Cartridge> lbCartridges = StratosApiV41Utils.getAvailableLbCartridges(false, getConfigContext()); + return Response.ok().entity(lbCartridges.isEmpty() ? new Cartridge[0] : lbCartridges.toArray(new Cartridge[lbCartridges.size()])).build(); + } + + @POST + @Path("/applications") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -147,7 +236,7 @@ public class StratosApiV41 extends AbstractApi { @DELETE - @Path("/application/definition/{applicationId}") + @Path("/applications/{applicationId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -162,31 +251,7 @@ public class StratosApiV41 extends AbstractApi { @POST - @Path("/cartridge/definition/") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition") - public Response deployCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean) - throws RestAPIException { - StratosApiV41Utils.deployCartridge(cartridgeDefinitionBean, getConfigContext(), getUsername(), - getTenantDomain()); - URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeDefinitionBean.type).build(); - return Response.created(url).build(); - - } - - @DELETE - @Path("/cartridge/definition/{cartridgeType}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition") - public Response unDeployCartridgeDefinition(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { - StratosApiV41Utils.undeployCartridge(cartridgeType); - return Response.noContent().build(); - } - - @POST - @Path("/group/definition/") + @Path("/groups") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -199,7 +264,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/group/definition/{groupDefinitionName}") + @Path("/groups/{groupDefinitionName}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -235,7 +300,7 @@ public class StratosApiV41 extends AbstractApi { } @DELETE - @Path("/group/definition/{groupDefinitionName}") + @Path("/groups/{groupDefinitionName}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -246,9 +311,18 @@ public class StratosApiV41 extends AbstractApi { StratosApiV41Utils.undeployServiceGroupDefinition(groupDefinitionName); return Response.noContent().build(); } + + @GET + @Path("/partitions") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/view/partition") + public Response getPartitions() throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getAvailablePartitions()).build(); + } @POST - @Path("/policy/deployment/partition") + @Path("/partitions") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/partition") @@ -260,33 +334,17 @@ public class StratosApiV41 extends AbstractApi { return Response.created(url).build(); } - @POST - @Path("/policy/autoscale") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy") - public Response deployAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy) - throws RestAPIException { - - StratosApiV41Utils.deployAutoscalingPolicy(autoscalePolicy); - URI url = uriInfo.getAbsolutePathBuilder().path(autoscalePolicy.getId()).build(); - return Response.created(url).build(); - } - - @PUT - @Path("/policy/autoscale") + @GET + @Path("/partitions/{partitionId}") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy") - public Response updateAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy) - throws RestAPIException { - - StratosApiV41Utils.updateAutoscalingPolicy(autoscalePolicy); - return Response.ok().build(); + @AuthorizationAction("/permission/admin/manage/view/partition") + public Response getPartition(@PathParam("partitiotnId") String partitionId) throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getPartition(partitionId)).build(); } @POST - @Path("/policy/deployment") + @Path("/deploymentPolicies") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/deploymentPolicy") @@ -298,8 +356,8 @@ public class StratosApiV41 extends AbstractApi { return Response.created(url).build(); } - @PUT - @Path("/policy/deployment") + /*@PUT + @Path("/deploymentPolicies") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/deploymentPolicy") @@ -308,28 +366,30 @@ public class StratosApiV41 extends AbstractApi { StratosApiV41Utils.updateDeploymentPolicy(deploymentPolicy); return Response.ok().build(); - } + }*/ @GET - @Path("/partition") + @Path("/deploymentPolicies") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/partition") - public Response getPartitions() throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getAvailablePartitions()).build(); + @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") + public Response getDeploymentPolicies() throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicies()).build(); } @GET - @Path("/partition/{partitionId}") + @Path("/deploymentPolicies/{deploymentPolicyId}") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/partition") - public Response getPartition(@PathParam("partitiotnId") String partitionId) throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getPartition(partitionId)).build(); + @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") + public Response getDeploymentPolicy(@PathParam("deploymentPolicyId") String deploymentPolicyId) + throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicy(deploymentPolicyId)).build(); } + //TODO : Check usage @GET - @Path("/partition/group/{deploymentPolicyId}") + @Path("/deploymentPolicies/{deploymentPolicyId}/partitionGroup") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/partition") @@ -338,18 +398,20 @@ public class StratosApiV41 extends AbstractApi { return Response.ok().entity(StratosApiV41Utils.getPartitionGroups(deploymentPolicyId)).build(); } + //TODO : Check usage @GET - @Path("/partition/{deploymentPolicyId}/{partitionGroupId}") + @Path("/deploymentPolicies/{deploymentPolicyId}/partitionGroup/{partitionGroupId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/partition") - public Response getPartitions(@PathParam("deploymentPolicyId") String deploymentPolicyId, - @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException { + public Response getPartitionGroup(@PathParam("deploymentPolicyId") String deploymentPolicyId, + @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException { return Response.ok().entity(StratosApiV41Utils.getPartitionsOfGroup(deploymentPolicyId, partitionGroupId)).build(); } + //TODO : Check usage @GET - @Path("/partition/{deploymentPolicyId}") + @Path("/deploymentPolicies/{deploymentPolicyId}/partition") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/partition") @@ -360,81 +422,51 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/policy/autoscale") + @Path("/autoscalePolicies") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy") - public Response getAutoscalePolicies() throws RestAPIException { + public Response getAutoscalingPolicies() throws RestAPIException { return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicies()).build(); } - @GET - @Path("/policy/autoscale/{autoscalePolicyId}") + @POST + @Path("/autoscalePolicies") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy") - public Response getAutoscalePolicies(@PathParam("autoscalePolicyId") String autoscalePolicyId) + @AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy") + public Response deployAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy) throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId)).build(); - } - @GET - @Path("/policy/deployment") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") - public Response getDeploymentPolicies() throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicies()).build(); - } - - @GET - @Path("/policy/deployment/{deploymentPolicyId}") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") - public Response getDeploymentPolicies(@PathParam("deploymentPolicyId") String deploymentPolicyId) - throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicy(deploymentPolicyId)).build(); + StratosApiV41Utils.deployAutoscalingPolicy(autoscalePolicy); + URI url = uriInfo.getAbsolutePathBuilder().path(autoscalePolicy.getId()).build(); + return Response.created(url).build(); } - @GET - @Path("{cartridgeType}/policy/deployment") + /*@PUT + @Path("/autoscalePolicies") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/deploymentPolicy") - public Response getValidDeploymentPolicies(@PathParam("cartridgeType") String cartridgeType) + @AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy") + public Response updateAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy) throws RestAPIException { - return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicies(cartridgeType)).build(); - } - - @GET - @Path("/cartridge/tenanted/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getAvailableMultiTenantCartridges() throws RestAPIException { - List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, true, getConfigContext()); - ResponseBuilder rb = Response.ok(); - rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); - return rb.build(); - } + StratosApiV41Utils.updateAutoscalingPolicy(autoscalePolicy); + return Response.ok().build(); + }*/ @GET - @Path("/subsscriptions/{application_id}") + @Path("/autoscalePolicies/{autoscalePolicyId}") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/protected/manage/monitor/tenants") - public Response getSubscriptionsOfApplication(@PathParam("application_id") String applicationId) throws RestAPIException { - ApplicationSubscription subscriptions = StratosApiV41Utils.getApplicationSubscriptions(applicationId, getConfigContext()); - if (subscriptions == null) { - return Response.status(Response.Status.NOT_FOUND).build(); - } - return Response.ok().entity(subscriptions).build(); + @AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy") + public Response getAutoscalingPolicy(@PathParam("autoscalePolicyId") String autoscalePolicyId) + throws RestAPIException { + return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId)).build(); } @GET - @Path("/application/") + @Path("/applications") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") public Response getApplications() throws RestAPIException { @@ -457,7 +489,7 @@ public class StratosApiV41 extends AbstractApi { */ @GET - @Path("/application/{appId}") + @Path("/applications/{appId}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") public Response getApplicationInfo(@PathParam("appId") String applicationId) throws RestAPIException { @@ -469,49 +501,42 @@ public class StratosApiV41 extends AbstractApi { } } - @GET - @Path("/cartridge/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getAvailableSingleTenantCartridges() throws RestAPIException { - List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, false, getConfigContext()); - ResponseBuilder rb = Response.ok(); - rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); - return rb.build(); - } - @GET - @Path("/cartridge/available/list") - @Produces("application/json") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getAvailableCartridges() throws RestAPIException { - List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridges(null, null, getConfigContext()); - ResponseBuilder rb = Response.ok(); - rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()])); - return rb.build(); - } + /** + * Commenting this API since it is no longer valid. + * + * @GET + * @Path("/cartridge/list/subscribed") + * @Produces("application/json") + * @Consumes("application/json") + * @AuthorizationAction("/permission/admin/manage/view/cartridge") public Response getSubscribedCartridges() throws RestAPIException { + * List<Cartridge> cartridgeList = StratosApiV41Utils.getSubscriptions(null, null, getConfigContext()); + * // Following is very important when working with axis2 + * ResponseBuilder rb = Response.ok(); + * rb.entity(cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()])); + * return rb.build(); + * } + */ @GET - @Path("/cartridge/list/subscribed") + @Path("/subsscriptions/{application_id}") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getSubscribedCartridges() throws RestAPIException { - List<Cartridge> cartridgeList = StratosApiV41Utils.getSubscriptions(null, null, getConfigContext()); - // Following is very important when working with axis2 - ResponseBuilder rb = Response.ok(); - rb.entity(cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()])); - return rb.build(); + @AuthorizationAction("/permission/protected/manage/monitor/tenants") + public Response getSubscriptionsOfApplication(@PathParam("application_id") String applicationId) throws RestAPIException { + ApplicationSubscription subscriptions = StratosApiV41Utils.getApplicationSubscriptions(applicationId, getConfigContext()); + if (subscriptions == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + return Response.ok().entity(subscriptions).build(); } - + @GET - @Path("/cartridge/list/subscribed/group/{serviceGroup}") + @Path("/subscriptions/cartridges/groups/{serviceGroup}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getSubscribedCartridgesForServiceGroup(@PathParam("serviceGroup") String serviceGroup) throws RestAPIException { + public Response getSubscribedCartridgesOfServiceGroup(@PathParam("serviceGroup") String serviceGroup) throws RestAPIException { List<Cartridge> cartridgeList = StratosApiV41Utils.getSubscriptions(null, serviceGroup, getConfigContext()); // Following is very important when working with axis2 ResponseBuilder rb = Response.ok(); @@ -520,48 +545,95 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/cartridge/info/{subscriptionAlias}") + @Path("/subscriptions/{subscriptionAlias}/cartridges") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getCartridgeInfo(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { + public Response getSubscribedCartridgeInfo(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { ResponseBuilder rb = Response.ok(); rb.entity(StratosApiV41Utils.getSubscription(subscriptionAlias, getConfigContext())); return rb.build(); } @GET - @Path("/cartridge/available/info/{cartridgeType}") + @Path("/subscriptions/{subscriptionAlias}/cartridges/{cartridgeType}/active") @Produces("application/json") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getAvailableSingleTenantCartridgeInfo(@PathParam("cartridgeType") String cartridgeType) - throws RestAPIException { + @AuthorizationAction("/permission/admin/manage/view/instance") + public Response getActiveMembersCountOfSubscription(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { ResponseBuilder rb = Response.ok(); - rb.entity(StratosApiV41Utils.getAvailableCartridgeInfo(cartridgeType, null, getConfigContext())); + rb.entity(StratosApiV41Utils.getActiveInstances(cartridgeType, subscriptionAlias, getConfigContext())); return rb.build(); } + + //TODO : Check usage + @PUT + @Path("/subscriptions/{subscriptionAlias}/properties") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/add/subscription") + public Response updateSubscriptionProperties(@PathParam("subscriptionAlias") String alias, CartridgeInfoBean cartridgeInfoBean) throws RestAPIException { + if (cartridgeInfoBean == null) { + Response.notModified().build(); + } + StratosApiV41Utils.updateSubscriptionProperties(getConfigContext(), alias, cartridgeInfoBean.getProperty()); + return Response.ok().build(); + } + + @POST + @Path("/subscriptions/{subscriptionAlias}/domains") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/add/domain") + public Response addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, + + @PathParam("subscriptionAlias") String subscriptionAlias, + SubscriptionDomainRequest request) throws RestAPIException { + StratosApiV41Utils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request); + return Response.noContent().build(); + } @GET - @Path("/cartridge/lb") - @Produces("application/json") + @Path("/subscriptions/{subscriptionAlias}/domains") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cartridge") - public Response getAvailableLbCartridges() throws RestAPIException { - List<Cartridge> lbCartridges = StratosApiV41Utils.getAvailableLbCartridges(false, getConfigContext()); - return Response.ok().entity(lbCartridges.isEmpty() ? new Cartridge[0] : lbCartridges.toArray(new Cartridge[lbCartridges.size()])).build(); + @AuthorizationAction("/permission/admin/manage/view/domain") + public Response getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { + + SubscriptionDomainBean[] subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); + + if (subscriptionDomainBean.length == 0) { + return Response.status(Response.Status.NOT_FOUND).build(); + } else { + return Response.ok().entity(subscriptionDomainBean).build(); + } } @GET - @Path("/cartridge/active/{cartridgeType}/{subscriptionAlias}") - @Produces("application/json") + @Path("/subscriptions/{subscriptionAlias}/domains/{domainName}") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/instance") - public Response getActiveInstances(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - ResponseBuilder rb = Response.ok(); - rb.entity(StratosApiV41Utils.getActiveInstances(cartridgeType, subscriptionAlias, getConfigContext())); - return rb.build(); + @AuthorizationAction("/permission/admin/manage/view/domain") + public Response getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException { + + SubscriptionDomainBean subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName); + if (subscriptionDomainBean.domainName == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } else { + return Response.ok().entity(subscriptionDomainBean).build(); + } + } + + @DELETE + @Path("/subscriptions/{subscriptionAlias}/domains/{domainName}") + @Consumes("application/json") + @AuthorizationAction("/permission/admin/manage/add/domain") + public Response removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias, + @PathParam("domainName") String domainName) throws RestAPIException { + try { + StratosApiV41Utils.removeSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName); + } catch (DomainMappingExistsException e) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + return Response.noContent().build(); } // @POST @@ -579,26 +651,28 @@ public class StratosApiV41 extends AbstractApi { // } @GET - @Path("/cluster/") + @Path("/clusters") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cluster") - public Response getClustersForTenant() throws RestAPIException { + public Response getClustersOfTenant() throws RestAPIException { return Response.ok().entity(StratosApiV41Utils.getClustersForTenant(getConfigContext())).build(); } @GET - @Path("/cluster/{cartridgeType}/") + @Path("/clusters/{cartridgeType}/") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cluster") - public Response getClusters(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { + public Response getClustersOfCartridge(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException { ResponseBuilder rb = Response.ok(); rb.entity(StratosApiV41Utils.getClustersForTenantAndCartridgeType(getConfigContext(), cartridgeType)); return rb.build(); } + // /clusters/{cartridgeType} seems to do the same + @Deprecated @GET @Path("/cluster/service/{cartridgeType}/") @Produces("application/json") @@ -611,19 +685,19 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/cluster/{cartridgeType}/{subscriptionAlias}") + @Path("/clusters/{subscriptionAlias}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cluster") - public Response getCluster(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException, RestAPIException { + public Response getClusterOfSubscription(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { ResponseBuilder rb = Response.ok(); rb.entity(StratosApiV41Utils.getCluster(cartridgeType, subscriptionAlias, getConfigContext())); return rb.build(); } @GET - @Path("/cluster/clusterId/{clusterId}") + @Path("/clusters/{clusterId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/cluster") @@ -648,20 +722,29 @@ public class StratosApiV41 extends AbstractApi { return Response.ok().entity(cluster).build(); } - @PUT - @Path("/subscriptions/{subscriptionAlias}/properties") + + @GET + @Path("/clusters/{subscriptionAlias}/loadBalancer") @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/subscription") - public Response updateSubscriptionProperties(@PathParam("subscriptionAlias") String alias, CartridgeInfoBean cartridgeInfoBean) throws RestAPIException { - if (cartridgeInfoBean == null) { - Response.notModified().build(); + @AuthorizationAction("/permission/admin/manage/view/cluster") + public Response getLoadBalancerCluster(@PathParam("cartridgeType") String cartridgeType, + @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { + if (log.isDebugEnabled()) { + log.debug(String.format("GET /cartridge/%s/subscription/%s/load-balancer-cluster", cartridgeType, subscriptionAlias)); } - StratosApiV41Utils.updateSubscriptionProperties(getConfigContext(), alias, cartridgeInfoBean.getProperty()); - return Response.ok().build(); + Cartridge subscription = StratosApiV41Utils.getSubscription(subscriptionAlias, getConfigContext()); + String lbClusterId = subscription.getLbClusterId(); + if (log.isDebugEnabled()) { + log.debug(String.format("Load balancer cluster-id found: %s", lbClusterId)); + } + if (StringUtils.isNotBlank(lbClusterId)) { + Response.fromResponse(getCluster(lbClusterId)); + } + return Response.status(Response.Status.NOT_FOUND).build(); } @POST - @Path("/tenant") + @Path("/tenants") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/protected/manage/modify/tenants") @@ -749,7 +832,7 @@ public class StratosApiV41 extends AbstractApi { } @PUT - @Path("/tenant") + @Path("/tenants") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/modify/tenants") @SuperTenantService(true) @@ -891,7 +974,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/tenant/{tenantDomain}") + @Path("/tenants/{tenantDomain}") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -951,7 +1034,7 @@ public class StratosApiV41 extends AbstractApi { } @DELETE - @Path("/tenant/{tenantDomain}") + @Path("/tenants/{tenantDomain}") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -985,7 +1068,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/tenant/list") + @Path("/tenants") @Produces("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @SuperTenantService(true) @@ -1002,7 +1085,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("tenant/search/{tenantDomain}") + @Path("/tenants/search/{tenantDomain}") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/protected/manage/monitor/tenants") @@ -1020,7 +1103,7 @@ public class StratosApiV41 extends AbstractApi { } @POST - @Path("tenant/activate/{tenantDomain}") + @Path("/tenants/activate/{tenantDomain}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/modify/tenants") @SuperTenantService(true) @@ -1056,12 +1139,12 @@ public class StratosApiV41 extends AbstractApi { return Response.noContent().build(); } - @POST - @Path("tenant/availability/{tenantDomain}") + @GET + @Path("/tenants/{tenantDomain}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/modify/tenants") @SuperTenantService(true) - public Response isDomainAvailable(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { + public Response getTenantByDomain(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException { boolean available; try { available = CommonUtil.isDomainNameAvailable(tenantDomain); @@ -1074,7 +1157,7 @@ public class StratosApiV41 extends AbstractApi { } @POST - @Path("tenant/deactivate/{tenantDomain}") + @Path("/tenants/deactivate/{tenantDomain}") @Consumes("application/json") @AuthorizationAction("/permission/protected/manage/modify/tenants") @SuperTenantService(true) @@ -1112,8 +1195,9 @@ public class StratosApiV41 extends AbstractApi { return Response.noContent().build(); } + /* @POST - @Path("/service/definition") + @Path("/services") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/service") @@ -1133,7 +1217,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/service") + @Path("/services") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/service") @@ -1144,7 +1228,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/service/{serviceType}") + @Path("/services/{serviceType}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/service") @@ -1159,6 +1243,7 @@ public class StratosApiV41 extends AbstractApi { return rb.build(); } + @GET @Path("/service/active") @Produces("application/json") @@ -1183,6 +1268,8 @@ public class StratosApiV41 extends AbstractApi { return Response.noContent().build(); } + */ + @POST @Path("/reponotification") @Produces("application/json") @@ -1251,83 +1338,7 @@ public class StratosApiV41 extends AbstractApi { } @POST - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/domain") - public Response addSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, - - @PathParam("subscriptionAlias") String subscriptionAlias, - SubscriptionDomainRequest request) throws RestAPIException { - StratosApiV41Utils.addSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias, request); - return Response.noContent().build(); - } - - @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/domain") - public Response getSubscriptionDomains(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - - SubscriptionDomainBean[] subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomains(getConfigContext(), cartridgeType, subscriptionAlias).toArray(new SubscriptionDomainBean[0]); - - if (subscriptionDomainBean.length == 0) { - return Response.status(Response.Status.NOT_FOUND).build(); - } else { - return Response.ok().entity(subscriptionDomainBean).build(); - } - } - - @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/domain") - public Response getSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, @PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException { - - SubscriptionDomainBean subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName); - if (subscriptionDomainBean.domainName == null) { - return Response.status(Response.Status.NOT_FOUND).build(); - } else { - return Response.ok().entity(subscriptionDomainBean).build(); - } - } - - @DELETE - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName}") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/add/domain") - public Response removeSubscriptionDomain(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias, - @PathParam("domainName") String domainName) throws RestAPIException { - try { - StratosApiV41Utils.removeSubscriptionDomain(getConfigContext(), cartridgeType, subscriptionAlias, domainName); - } catch (DomainMappingExistsException e) { - return Response.status(Response.Status.NOT_FOUND).build(); - } - return Response.noContent().build(); - } - - @GET - @Path("/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/load-balancer-cluster") - @Consumes("application/json") - @AuthorizationAction("/permission/admin/manage/view/cluster") - public Response getLoadBalancerCluster(@PathParam("cartridgeType") String cartridgeType, - @PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException { - if (log.isDebugEnabled()) { - log.debug(String.format("GET /cartridge/%s/subscription/%s/load-balancer-cluster", cartridgeType, subscriptionAlias)); - } - Cartridge subscription = StratosApiV41Utils.getSubscription(subscriptionAlias, getConfigContext()); - String lbClusterId = subscription.getLbClusterId(); - if (log.isDebugEnabled()) { - log.debug(String.format("Load balancer cluster-id found: %s", lbClusterId)); - } - if (StringUtils.isNotBlank(lbClusterId)) { - Response.fromResponse(getCluster(lbClusterId)); - } - return Response.status(Response.Status.NOT_FOUND).build(); - } - - @POST - @Path("/user") + @Path("/users") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/admin/manage/add/users") @@ -1347,7 +1358,7 @@ public class StratosApiV41 extends AbstractApi { } @DELETE - @Path("/user/{userName}") + @Path("/users/{userName}") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/admin/manage/add/users") @@ -1366,7 +1377,7 @@ public class StratosApiV41 extends AbstractApi { } @PUT - @Path("/user") + @Path("/users") @Consumes("application/json") @Produces("application/json") @AuthorizationAction("/permission/admin/manage/add/users") @@ -1386,7 +1397,7 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/user/list") + @Path("/users") @Produces("application/json") @AuthorizationAction("/permission/admin/manage/add/users") public UserInfoBean[] listUsers() throws RestAPIException { @@ -1429,11 +1440,11 @@ public class StratosApiV41 extends AbstractApi { } @POST - @Path("/kubernetes/deploy/group") + @Path("/kubernetesCluster") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/kubernetes") - public Response deployKubernetesGroup(KubernetesGroup kubernetesGroup) throws RestAPIException { + public Response deployKubernetesHostCluster(KubernetesGroup kubernetesGroup) throws RestAPIException { StratosApiV41Utils.deployKubernetesGroup(kubernetesGroup); URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesGroup.getGroupId()).build(); @@ -1441,7 +1452,7 @@ public class StratosApiV41 extends AbstractApi { } @PUT - @Path("/kubernetes/deploy/host/{kubernetesGroupId}") + @Path("/kubernetesCluster/{kubernetesClusterId}/minion") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/kubernetes") @@ -1454,7 +1465,7 @@ public class StratosApiV41 extends AbstractApi { } @PUT - @Path("/kubernetes/update/master") + @Path("/kubernetesCluster/{kubernetesClusterId}/master") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/kubernetes") @@ -1484,21 +1495,21 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/kubernetes/group") + @Path("/kubernetesCluster") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/kubernetes") - public Response getKubernetesGroups() throws RestAPIException { + public Response getKubernetesHostClusters() throws RestAPIException { return Response.ok().entity(StratosApiV41Utils.getAvailableKubernetesGroups()).build(); } @GET - @Path("/kubernetes/group/{kubernetesGroupId}") + @Path("/kubernetesCluster/{kubernetesClusterId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/kubernetes") - public Response getKubernetesGroup(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { + public Response getKubernetesHostCluster(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { try { return Response.ok().entity(StratosApiV41Utils.getKubernetesGroup(kubernetesGroupId)).build(); } catch (RestAPIException e) { @@ -1507,11 +1518,11 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/kubernetes/hosts/{kubernetesGroupId}") + @Path("/kubernetesCluster/{kubernetesClusterId}/hosts") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/kubernetes") - public Response getKubernetesHosts(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { + public Response getKubernetesHostsOfKubernetesCluster(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { try { return Response.ok().entity(StratosApiV41Utils.getKubernetesHosts(kubernetesGroupId)).build(); } catch (RestAPIException e) { @@ -1520,11 +1531,11 @@ public class StratosApiV41 extends AbstractApi { } @GET - @Path("/kubernetes/master/{kubernetesGroupId}") + @Path("/kubernetesCluster/{kubernetesClusterId}/master") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/view/kubernetes") - public Response getKubernetesMaster(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { + public Response getKubernetesMasterOfKubernetesCluster(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { try { return Response.ok().entity(StratosApiV41Utils.getKubernetesMaster(kubernetesGroupId)).build(); } catch (RestAPIException e) { @@ -1533,11 +1544,11 @@ public class StratosApiV41 extends AbstractApi { } @DELETE - @Path("/kubernetes/group/{kubernetesGroupId}") + @Path("/kubernetesCluster/{kubernetesClusterId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/kubernetes") - public Response unDeployKubernetesGroup(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { + public Response unDeployKubernetesHostCluster(@PathParam("kubernetesGroupId") String kubernetesGroupId) throws RestAPIException { try { StratosApiV41Utils.undeployKubernetesGroup(kubernetesGroupId); } catch (RestAPIException e) { @@ -1547,11 +1558,11 @@ public class StratosApiV41 extends AbstractApi { } @DELETE - @Path("/kubernetes/host/{kubernetesHostId}") + @Path("/kubernetesCluster/{kubernetesClusterId}/hosts/{hostId}") @Produces("application/json") @Consumes("application/json") @AuthorizationAction("/permission/admin/manage/add/kubernetes") - public Response unDeployKubernetesHost(@PathParam("kubernetesHostId") String kubernetesHostId) throws RestAPIException { + public Response unDeployKubernetesHostOfKubernetesCluster(@PathParam("kubernetesHostId") String kubernetesHostId) throws RestAPIException { try { StratosApiV41Utils.undeployKubernetesHost(kubernetesHostId); } catch (RestAPIException e) {
