You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2014/12/10 06:19:44 UTC
[1/8] stratos git commit: fixing group terminating calculation issue
Repository: stratos
Updated Branches:
refs/heads/4.1.0-test 3606da285 -> 04900bbda
fixing group terminating calculation issue
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e836eaaf
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e836eaaf
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e836eaaf
Branch: refs/heads/4.1.0-test
Commit: e836eaaf9f3e18293292fd707384716a6157f7ef
Parents: 9157af8
Author: reka <rt...@gmail.com>
Authored: Wed Dec 10 00:21:56 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Wed Dec 10 00:21:56 2014 +0530
----------------------------------------------------------------------
.../autoscaler/applications/topic/ApplicationBuilder.java | 3 ++-
.../processor/group/GroupStatusTerminatedProcessor.java | 3 ---
.../processor/group/GroupStatusTerminatingProcessor.java | 9 +++++----
3 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/e836eaaf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index 612a008..fc655b9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -426,7 +426,8 @@ public class ApplicationBuilder {
ApplicationHolder.persistApplication(application);
ApplicationsEventPublisher.sendGroupInstanceCreatedEvent(appId, groupId, null);
} else {
- log.warn("Group state transition is not valid: [group-id] " + groupId + " [current-state] " + group.getStatus(null)
+ log.warn("Group state transition is not valid: [group-id] " + groupId +
+ " [current-state] " + group.getStatus(null)
+ "[requested-state] " + status);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/e836eaaf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
index 30ce94b..b365d71 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatedProcessor.java
@@ -97,13 +97,10 @@ public class GroupStatusTerminatedProcessor extends GroupStatusProcessor {
ApplicationBuilder.handleApplicationInstanceTerminatedEvent(appId, instanceId);
return true;
} else if (component instanceof Group) {
- //send activation to the parent
- if (((Group) component).getStatus(null) != GroupStatus.Terminated) {
log.info("sending group terminated : " + component.getUniqueIdentifier());
ApplicationBuilder.handleGroupInstanceTerminatedEvent(appId,
component.getUniqueIdentifier(), instanceId);
return true;
- }
}
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/e836eaaf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
index fb18275..2fe0cd4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusTerminatingProcessor.java
@@ -94,17 +94,18 @@ public class GroupStatusTerminatingProcessor extends GroupStatusProcessor {
getAllGroupInSameState(groups, GroupStatus.Terminating, instanceId)) {
//send the terminated event
if (component instanceof Application) {
- log.info("sending app terminated: " + appId);
+ log.info("sending app terminating for [application] " + appId + " and for " +
+ " [instance] " + instanceId);
ApplicationBuilder.handleApplicationInstanceTerminatedEvent(appId, instanceId);
return true;
} else if (component instanceof Group) {
//send activation to the parent
- if (((Group) component).getStatus(null) != GroupStatus.Terminated) {
- log.info("sending group terminated : " + component.getUniqueIdentifier());
+ log.info("sending group terminating for [group] " +
+ component.getUniqueIdentifier() + " and for [instance] "
+ + instanceId);
ApplicationBuilder.handleGroupTerminatingEvent(appId,
component.getUniqueIdentifier(), instanceId);
return true;
- }
}
}
}
[6/8] stratos git commit: Merge branch '4.1.0-test' of
https://git-wip-us.apache.org/repos/asf/stratos into 4.1.0-test
Posted by re...@apache.org.
Merge branch '4.1.0-test' of https://git-wip-us.apache.org/repos/asf/stratos into 4.1.0-test
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8073d2af
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8073d2af
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8073d2af
Branch: refs/heads/4.1.0-test
Commit: 8073d2afaecf8701acb80e65a5542769b8289d0a
Parents: e836eaa 3606da2
Author: reka <rt...@gmail.com>
Authored: Wed Dec 10 10:38:16 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Wed Dec 10 10:38:16 2014 +0530
----------------------------------------------------------------------
.../context/cluster/ClusterInstanceContext.java | 3 +++
.../context/cluster/VMClusterContext.java | 20 ++++++--------------
.../partition/ClusterLevelPartitionContext.java | 1 -
.../monitor/cluster/VMClusterMonitor.java | 4 +++-
.../stratos/autoscaler/util/AutoscalerUtil.java | 17 +++++++++++++++--
5 files changed, 27 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
[7/8] stratos git commit: This closes #144
Posted by re...@apache.org.
This closes #144
Merge branch 'api_test' of https://github.com/shirolk/stratos into 4.1.0-test
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c87929da
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c87929da
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c87929da
Branch: refs/heads/4.1.0-test
Commit: c87929da7dab4ebc9409d553ed116d16c86d79fb
Parents: 8073d2a baa034d
Author: reka <rt...@gmail.com>
Authored: Wed Dec 10 10:38:38 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Wed Dec 10 10:38:38 2014 +0530
----------------------------------------------------------------------
.../autoscaler/api/AutoScalerServiceImpl.java | 21 +-
.../interfaces/AutoScalerServiceInterface.java | 2 +
.../manager/client/AutoscalerServiceClient.java | 11 +-
.../rest/endpoint/api/StratosApiV40Utils.java | 2 +-
.../rest/endpoint/api/StratosApiV41.java | 738 ++++----
.../rest/endpoint/api/StratosApiV41Utils.java | 1629 ++++++------------
.../src/main/resources/AutoScalerService.wsdl | 51 +
7 files changed, 1074 insertions(+), 1380 deletions(-)
----------------------------------------------------------------------
[8/8] stratos git commit: fixing group status calculation
Posted by re...@apache.org.
fixing group status calculation
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/04900bbd
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/04900bbd
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/04900bbd
Branch: refs/heads/4.1.0-test
Commit: 04900bbda5dd1424ce631c0efd96a2715afdfb60
Parents: c87929d
Author: reka <rt...@gmail.com>
Authored: Wed Dec 10 10:49:07 2014 +0530
Committer: reka <rt...@gmail.com>
Committed: Wed Dec 10 10:49:07 2014 +0530
----------------------------------------------------------------------
.../monitor/component/GroupMonitor.java | 2 +-
.../group/GroupStatusInActiveProcessor.java | 2 +-
.../processor/group/GroupStatusProcessor.java | 37 +++++++++++++-------
3 files changed, 26 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/04900bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
index 92d48f6..8cd6263 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java
@@ -205,7 +205,7 @@ public class GroupMonitor extends ParentComponentMonitor implements Runnable {
}
GroupInstance instance = (GroupInstance) this.instanceIdToInstanceMap.get(instanceId);
if (instance != null) {
- if (instance.getStatus() == GroupStatus.Terminating) {
+ if (instance.getStatus() == GroupStatus.Terminating || instance.getStatus() == GroupStatus.Terminated) {
ServiceReferenceHolder.getInstance().getGroupStatusProcessorChain().process(this.id,
appId, instanceId);
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/04900bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
index 2bf761c..652e08c 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
@@ -158,7 +158,7 @@ public class GroupStatusInActiveProcessor extends GroupStatusProcessor {
boolean groupStat = false;
for (Group group : groups.values()) {
GroupInstance context = group.getInstanceContexts(instanceId);
- if (context.getStatus() == GroupStatus.Inactive) {
+ if (context != null && context.getStatus() == GroupStatus.Inactive) {
groupStat = true;
return groupStat;
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/04900bbd/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
index 66fb838..e1b762d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
@@ -66,20 +66,27 @@ public abstract class GroupStatusProcessor extends StatusProcessor {
} else {
//Checking the minimum of the group instances to be satisfied
List<Instance> contexts = group.getInstanceContextsWithParentId(instanceId);
- int minGroupInstances = group.getGroupMinInstances();
- int sameStateInstances = 0;
- for(Instance context1 : contexts) {
- if(((GroupInstance)context1).getStatus().equals(status)) {
- sameStateInstances++;
- }
- }
- if(sameStateInstances >= minGroupInstances) {
+ //if no instances found and requested status is terminated,
+ // then considering this group as terminated
+ if(context == null && contexts.isEmpty() && status == GroupStatus.Terminated) {
groupStat = true;
} else {
- groupStat = false;
- return groupStat;
+ int minGroupInstances = group.getGroupMinInstances();
+ int sameStateInstances = 0;
+ for(Instance context1 : contexts) {
+ if(((GroupInstance)context1).getStatus().equals(status)) {
+ sameStateInstances++;
+ }
+ }
+ if(sameStateInstances >= minGroupInstances) {
+ groupStat = true;
+ } else {
+ groupStat = false;
+ return groupStat;
+ }
}
+
}
}
return groupStat;
@@ -103,11 +110,15 @@ public abstract class GroupStatusProcessor extends StatusProcessor {
Service service = TopologyManager.getTopology().getService(serviceName);
Cluster cluster = service.getCluster(clusterId);
ClusterInstance context = cluster.getInstanceContexts(instanceId);
- if (context.getStatus() == status) {
+ if (context != null && context.getStatus() == status) {
clusterStat = true;
} else {
- clusterStat = false;
- return clusterStat;
+ if(status == ClusterStatus.Terminated) {
+ clusterStat = true;
+ } else {
+ clusterStat = false;
+ return clusterStat;
+ }
}
} finally {
TopologyManager.releaseReadLockForCluster(serviceName, clusterId);
[5/8] stratos git commit: Refactoring the REST api
Posted by re...@apache.org.
Refactoring the REST api
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b0d91f7d
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b0d91f7d
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b0d91f7d
Branch: refs/heads/4.1.0-test
Commit: b0d91f7d320248e05aedd18ae568efd43007ccb6
Parents: 3606da2
Author: Shiro <sh...@wso2.com>
Authored: Tue Dec 9 15:30:09 2014 +0530
Committer: Shiro <sh...@wso2.com>
Committed: Wed Dec 10 10:09:40 2014 +0530
----------------------------------------------------------------------
.../autoscaler/api/AutoScalerServiceImpl.java | 21 +-
.../interfaces/AutoScalerServiceInterface.java | 2 +
.../manager/client/AutoscalerServiceClient.java | 11 +-
.../rest/endpoint/api/StratosApiV40Utils.java | 2 +-
.../rest/endpoint/api/StratosApiV41.java | 591 +++++--
.../rest/endpoint/api/StratosApiV41Utils.java | 1674 +++++++++---------
.../src/main/resources/AutoScalerService.wsdl | 51 +
7 files changed, 1330 insertions(+), 1022 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index 36edb03..ccb0e8d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -99,11 +99,16 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
}
return validPolicies.toArray(new DeploymentPolicy[0]);
}
-
+
@Override
- public String addDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws InvalidPolicyException {
- String policyId = PolicyManager.getInstance().deployDeploymentPolicy(deploymentPolicy);
- //Need to start the application Monitor after validation of the deployment policies.
+ public boolean deployDeploymentPolicy(DeploymentPolicy policy) {
+ // Get the deployment policy
+ DeploymentPolicy deploymentPolicy = this.getDeploymentPolicy(policy.getId());
+ if (deploymentPolicy == null) {
+ return false;
+ }
+
+ //Need to start the application Monitor after validation of the deployment policies.
//FIXME add validation
validateDeploymentPolicy(deploymentPolicy);
//Check whether all the clusters are there
@@ -133,6 +138,14 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
} else {
log.info("The application Monitor has already been created for [Application] " + appId);
}
+ //FIXME add proper return value when validation is done properly
+ return true;
+ }
+
+ @Override
+ public String addDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws InvalidPolicyException {
+ String policyId = PolicyManager.getInstance().deployDeploymentPolicy(deploymentPolicy);
+
return policyId;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index 84bda03..096450a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -35,6 +35,8 @@ public interface AutoScalerServiceInterface {
public DeploymentPolicy[] getAllDeploymentPolicies();
public String addDeploymentPolicy(DeploymentPolicy depPolicy) throws InvalidPolicyException;
+
+ public boolean deployDeploymentPolicy(DeploymentPolicy deploymentPolicy);
public boolean undeployDeploymentPolicy(String deploymentPolicyName);
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
index 223058b..545dcf5 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
@@ -141,10 +141,17 @@ public class AutoscalerServiceClient {
return deploymentPolicy;
}
- public String deployDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException,
+ public String addDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException,
+ AutoScalerServiceInvalidPolicyExceptionException {
+
+ return stub.addDeploymentPolicy(deploymentPolicy);
+
+ }
+
+ public boolean deployDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException,
AutoScalerServiceInvalidPolicyExceptionException {
- return stub.addDeploymentPolicy(deploymentPolicy);
+ return stub.deployDeploymentPolicy(deploymentPolicy);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
index fb28910..495ac28 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
@@ -238,7 +238,7 @@ public class StratosApiV40Utils {
DeploymentPolicy deploymentPolicy = PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
try {
- policyId = autoscalerServiceClient.deployDeploymentPolicy(deploymentPolicy);
+ policyId = autoscalerServiceClient.addDeploymentPolicy(deploymentPolicy);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/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 39244f6..3676660 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
@@ -92,6 +92,12 @@ public class StratosApiV41 extends AbstractApi {
@Context
UriInfo uriInfo;
+ /**
+ * This method is used by clients such as the CLI to verify the Stratos manager URL.
+ *
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/init")
@AuthorizationAction("/permission/admin/restlogin")
@@ -125,21 +131,36 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON).
entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build();
}
+
+ // API methods for cartridges
+ /**
+ * Creates the cartridge definition.
+ *
+ * @param cartridgeDefinitionBean the cartridge definition bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/cartridges")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition")
- public Response deployCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean)
+ public Response createCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean)
throws RestAPIException {
- StratosApiV41Utils.deployCartridge(cartridgeDefinitionBean, getConfigContext(), getUsername(),
+ StratosApiV41Utils.createCartridgeDefinition(cartridgeDefinitionBean, getConfigContext(), getUsername(),
getTenantDomain());
URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeDefinitionBean.type).build();
return Response.created(url).build();
}
+ /**
+ * Gets all available cartridges.
+ *
+ * @return the cartridges
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/cartridges")
@Produces("application/json")
@@ -151,98 +172,93 @@ public class StratosApiV41 extends AbstractApi {
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/{provider}")
- @Produces("application/json")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/cartridge")
- public Response getCartridgesByProvider(@PathParam("provider") String provider) throws RestAPIException {
- List<Cartridge> cartridges = StratosApiV41Utils.getAvailableCartridgesByProvider(provider, getConfigContext());
- ResponseBuilder rb = Response.ok();
- rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()]));
- return rb.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();
- }
-
+
+ /**
+ * Gets the cartridges by category.
+ *
+ * @param category the category
+ * @param criteria the criteria if required for further filtering
+ * @return the cartridges by category
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/cartridges/multiTenant")
+ @Path("/cartridges/{category}")
@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());
+ public Response getCartridgesByCategory(@DefaultValue("") @PathParam("category") String category, @QueryParam("criteria") String criteria) throws RestAPIException {
+ List<Cartridge> cartridges = StratosApiV41Utils.getCartridgesByCategory(category, criteria, getConfigContext());
ResponseBuilder rb = Response.ok();
rb.entity(cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()]));
return rb.build();
}
+ /**
+ * Gets a specific cartridge by category.
+ *
+ * @param category the category
+ * @param cartridgeType the cartridge type
+ * @return the cartridge by category
+ * @throws RestAPIException the rest api exception
+ */
@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")
+ @Path("/cartridges/{category}/{cartridgeType}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/cartridge")
- public Response getAvailableSingleTenantCartridge(@PathParam("cartridgeType") String cartridgeType)
- throws RestAPIException {
+ public Response getCartridgeByCategory(@DefaultValue("") @PathParam("category") String category, @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+ Cartridge cartridge = StratosApiV41Utils.getCartridgeByCategory(category, cartridgeType, getConfigContext());
ResponseBuilder rb = Response.ok();
- rb.entity(StratosApiV41Utils.getAvailableCartridgeInfo(cartridgeType, null, getConfigContext()));
+ rb.entity(cartridge);
return rb.build();
}
- @GET
- @Path("/cartridges/loadBalancer")
+ /**
+ * Deletes a cartridge definition.
+ *
+ * @param cartridgeType the cartridge type
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
+ @DELETE
+ @Path("/cartridges/{cartridgeType}")
@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();
+ @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition")
+ public Response deleteCartridgeDefinition(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+ StratosApiV41Utils.deleteCartridgeDefinition(cartridgeType);
+ return Response.noContent().build();
}
+ // API methods for service groups
+
+ /**
+ * Creates the service group definition.
+ *
+ * @param serviceGroupDefinition the service group definition
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/groups")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
@SuperTenantService(true)
- public Response deployServiceGroupDefinition(ServiceGroupDefinition serviceGroupDefinition)
+ public Response createServiceGroupDefinition(ServiceGroupDefinition serviceGroupDefinition)
throws RestAPIException {
- StratosApiV41Utils.deployServiceGroupDefinition(serviceGroupDefinition);
+ StratosApiV41Utils.createServiceGroupDefinition(serviceGroupDefinition);
URI url = uriInfo.getAbsolutePathBuilder().path(serviceGroupDefinition.getName()).build();
return Response.created(url).build();
}
+ /**
+ * Gets the service group definition.
+ *
+ * @param groupDefinitionName the group definition name
+ * @return the service group definition
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/groups/{groupDefinitionName}")
@Produces("application/json")
@@ -261,6 +277,12 @@ public class StratosApiV41 extends AbstractApi {
return rb.build();
}
+ /**
+ * Gets all service groups created.
+ *
+ * @return the service groups
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/groups")
@Produces("application/json")
@@ -279,73 +301,93 @@ public class StratosApiV41 extends AbstractApi {
return rb.build();
}
+ /**
+ * Delete service group definition.
+ *
+ * @param groupDefinitionName the group definition name
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
@Path("/groups/{groupDefinitionName}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
@SuperTenantService(true)
- public Response undeployServiceGroupDefinition(@PathParam("groupDefinitionName") String groupDefinitionName)
+ public Response deleteServiceGroupDefinition(@PathParam("groupDefinitionName") String groupDefinitionName)
throws RestAPIException {
- StratosApiV41Utils.undeployServiceGroupDefinition(groupDefinitionName);
+ StratosApiV41Utils.deleteServiceGroupDefinition(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("/partitions")
-// @Produces("application/json")
-// @Consumes("application/json")
-// @AuthorizationAction("/permission/admin/manage/add/partition")
-// public Response deployPartition(Partition partition)
-// throws RestAPIException {
-//
-// StratosApiV41Utils.deployPartition(partition);
-// URI url = uriInfo.getAbsolutePathBuilder().path(partition.id).build();
-// return Response.created(url).build();
-// }
-//
-// @GET
-// @Path("/partitions/{partitionId}")
-// @Produces("application/json")
-// @Consumes("application/json")
-// @AuthorizationAction("/permission/admin/manage/view/partition")
-// public Response getPartition(@PathParam("partitionId") String partitionId) throws RestAPIException {
-// return Response.ok().entity(StratosApiV41Utils.getPartition(partitionId)).build();
-// }
-
+ // API methods for application deployments
+
+ /**
+ * Deploy application.
+ *
+ * @param deploymentPolicy the deployment policy
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
- @Path("/deploymentPolicies")
+ @Path("/applicationDeployments")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/deploymentPolicy")
- public Response deployDeploymentPolicyDefinition(DeploymentPolicy deploymentPolicy)
+ public Response deployApplication(DeploymentPolicy deploymentPolicy)
throws RestAPIException {
- //TODO change the name to deployApplication
- String policyId = StratosApiV41Utils.deployDeploymentPolicy(deploymentPolicy);
- URI url = uriInfo.getAbsolutePathBuilder().path(policyId).build();
- return Response.created(url).build();
+ StratosApiV41Utils.deployApplication(deploymentPolicy);
+ //URI url = uriInfo.getAbsolutePathBuilder().path(policyId).build();
+ return Response.accepted().build();
}
-
+
+ /**
+ * Undeploy application.
+ *
+ * @param applicationId the application id
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
- @Path("/applications/{applicationId}")
+ @Path("/applicationDeployments/{applicationId}")
@Produces("application/json")
@Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition")
- public Response unDeployApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
+ @AuthorizationAction("/permission/admin/manage/add/deploymentPolicy")
+ public Response undeployApplication(@PathParam("applicationId") String applicationId)
+ throws RestAPIException {
StratosApiV41Utils.undeployApplication(applicationId);
- return Response.noContent().build();
+ return Response.accepted().build();
}
-
+
+ // API methods for deployment policies
+
+ /**
+ * Creates the deployment policy.
+ *
+ * @param deploymentPolicy the deployment policy
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
+ @POST
+ @Path("/deploymentPolicies")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/admin/manage/add/deploymentPolicy")
+ public Response createDeploymentPolicy(DeploymentPolicy deploymentPolicy)
+ throws RestAPIException {
+ String policyId = StratosApiV41Utils.createDeploymentPolicy(deploymentPolicy);
+ //URI url = uriInfo.getAbsolutePathBuilder().path(policyId).build();
+ return Response.accepted().build();
+ }
+
+ /**
+ * Update deployment policy definition.
+ *
+ * @param deploymentPolicy the deployment policy
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
@Path("/deploymentPolicies")
@Produces("application/json")
@@ -358,6 +400,12 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().build();
}
+ /**
+ * Gets the deployment policies.
+ *
+ * @return the deployment policies
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/deploymentPolicies")
@Produces("application/json")
@@ -367,6 +415,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicies()).build();
}
+ /**
+ * Gets a specific deployment policy.
+ *
+ * @param deploymentPolicyId the deployment policy id
+ * @return the deployment policy
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/deploymentPolicies/{deploymentPolicyId}")
@Produces("application/json")
@@ -377,6 +432,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(StratosApiV41Utils.getDeploymentPolicy(deploymentPolicyId)).build();
}
+ /**
+ * Gets the partition groups for the deployment policy.
+ *
+ * @param deploymentPolicyId the deployment policy id
+ * @return the partition groups
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/deploymentPolicies/{deploymentPolicyId}/partitionGroup")
@Produces("application/json")
@@ -386,7 +448,7 @@ public class StratosApiV41 extends AbstractApi {
throws RestAPIException {
return Response.ok().entity(StratosApiV41Utils.getPartitionGroups(deploymentPolicyId)).build();
}
-
+
// @GET
// @Path("/deploymentPolicies/{deploymentPolicyId}/partitionGroup/{partitionGroupId}")
// @Produces("application/json")
@@ -408,30 +470,69 @@ public class StratosApiV41 extends AbstractApi {
// return Response.ok().entity(StratosApiV41Utils.getPartitionsOfDeploymentPolicy(deploymentPolicyId)).build();
// }
+ // API methods for autoscaling policies
+
+ /**
+ * Gets the autoscaling policies.
+ *
+ * @return the autoscaling policies
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/autoscalePolicies")
+ @Path("/autoscalingPolicies")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy")
public Response getAutoscalingPolicies() throws RestAPIException {
return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicies()).build();
}
+
+ /**
+ * Gets the autoscaling policy.
+ *
+ * @param autoscalePolicyId the autoscale policy id
+ * @return the autoscaling policy
+ * @throws RestAPIException the rest api exception
+ */
+ @GET
+ @Path("/autoscalingPolicies/{autoscalePolicyId}")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy")
+ public Response getAutoscalingPolicy(@PathParam("autoscalePolicyId") String autoscalePolicyId)
+ throws RestAPIException {
+ return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId)).build();
+ }
+ /**
+ * Creates the autoscaling policy defintion.
+ *
+ * @param autoscalePolicy the autoscale policy
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
- @Path("/autoscalePolicies")
+ @Path("/autoscalingPolicies")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy")
- public Response deployAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy)
+ public Response createAutoscalingPolicyDefintion(AutoscalePolicy autoscalePolicy)
throws RestAPIException {
- StratosApiV41Utils.deployAutoscalingPolicy(autoscalePolicy);
+ StratosApiV41Utils.createAutoscalingPolicy(autoscalePolicy);
URI url = uriInfo.getAbsolutePathBuilder().path(autoscalePolicy.getId()).build();
return Response.created(url).build();
}
+ /**
+ * Update autoscaling policy defintion.
+ *
+ * @param autoscalePolicy the autoscale policy
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
- @Path("/autoscalePolicies")
+ @Path("/autoscalingPolicies")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/autoscalingPolicy")
@@ -442,16 +543,25 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().build();
}
- @GET
- @Path("/autoscalePolicies/{autoscalePolicyId}")
+ // API methods for applications
+
+ /* -- replaced above DELETE /applicationDeployments/{applicationId}
+ @DELETE
+ @Path("/applications/{applicationId}")
@Produces("application/json")
@Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/autoscalingPolicy")
- public Response getAutoscalingPolicy(@PathParam("autoscalePolicyId") String autoscalePolicyId)
- throws RestAPIException {
- return Response.ok().entity(StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId)).build();
- }
-
+ @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition")
+ public Response unDeployApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
+ StratosApiV41Utils.undeployApplication(applicationId);
+ return Response.noContent().build();
+ }*/
+
+ /**
+ * Gets details of all the applications.
+ *
+ * @return the applications
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/applications")
@Consumes("application/json")
@@ -474,13 +584,12 @@ public class StratosApiV41 extends AbstractApi {
* no application with given Id.
* @throws RestAPIException is thrown in case of failure occurs.
*/
-
@GET
@Path("/applications/{applicationId}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Response getApplicationInfo(@PathParam("applicationId") String applicationId) throws RestAPIException {
- ApplicationBean application = StratosApiV41Utils.getApplicationInfo(applicationId);
+ public Response getApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
+ ApplicationBean application = StratosApiV41Utils.getApplication(applicationId);
if (application == null) {
return Response.status(Response.Status.NOT_FOUND).build();
} else {
@@ -488,34 +597,35 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Creates the application definition.
+ *
+ * @param applicationDefinitionBean the application definition bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/applications")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
@SuperTenantService(true)
- public Response deployApplicationDefinition(ApplicationDefinition applicationDefinitionBean)
+ public Response createApplicationDefinition(ApplicationDefinition applicationDefinitionBean)
throws RestAPIException {
- StratosApiV41Utils.deployApplicationDefinition(applicationDefinitionBean, getConfigContext(),
+ StratosApiV41Utils.createApplicationDefinition(applicationDefinitionBean, getConfigContext(),
getUsername(), getTenantDomain());
URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinitionBean.getApplicationId()).build();
return Response.created(url).build();
}
-// @POST
-// @Path("/applications")
-// @Produces("application/json")
-// @Consumes("application/json")
-// @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-// @SuperTenantService(true)
-// public Response createApplication (ApplicationDefinition applicationDefinitionBean)
-// throws RestAPIException {
-// StratosApiV41Utils.createApplication(applicationDefinitionBean);
-// URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinitionBean.getApplicationId()).build();
-// return Response.created(url).build();
-// }
-
- @DELETE
+ /**
+ * Removes the application definition.
+ *
+ * @param applicationId the application id
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
+ @DELETE
@Path("/applications/{applicationId}")
@Produces("application/json")
@Consumes("application/json")
@@ -523,11 +633,20 @@ public class StratosApiV41 extends AbstractApi {
@SuperTenantService(true)
public Response removeApplicationDefinition(@PathParam("applicationId") String applicationId)
throws RestAPIException {
- StratosApiV41Utils.removeApplication(applicationId, getConfigContext(), getUsername(),
+ StratosApiV41Utils.removeApplicationDefinition(applicationId, getConfigContext(), getUsername(),
getTenantDomain());
return Response.noContent().build();
}
+
+ // API methods for subscriptions
+ /**
+ * Gets the subscriptions of application.
+ *
+ * @param applicationId the application id
+ * @return the subscriptions of application
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/subscriptions/{applicationId}")
@Produces("application/json")
@@ -541,6 +660,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(subscriptions).build();
}
+ /**
+ * Gets the subscribed cartridges of service group.
+ *
+ * @param serviceGroup the service group
+ * @return the subscribed cartridges of service group
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/subscriptions/cartridges/groups/{serviceGroup}")
@Produces("application/json")
@@ -554,6 +680,7 @@ public class StratosApiV41 extends AbstractApi {
return rb.build();
}
+ /*
@GET
@Path("/subscriptions/{subscriptionAlias}/cartridges")
@Produces("application/json")
@@ -641,7 +768,10 @@ public class StratosApiV41 extends AbstractApi {
}
return Response.noContent().build();
}
+ */
+ // API methods for clusters
+
@GET
@Path("/clusters")
@Produces("application/json")
@@ -663,6 +793,7 @@ public class StratosApiV41 extends AbstractApi {
return rb.build();
}
+ /*
@GET
@Path("/clusters/{subscriptionAlias}")
@Produces("application/json")
@@ -672,7 +803,7 @@ public class StratosApiV41 extends AbstractApi {
ResponseBuilder rb = Response.ok();
rb.entity(StratosApiV41Utils.getCluster(subscriptionAlias, getConfigContext()));
return rb.build();
- }
+ }*/
@GET
@Path("/clusters/{clusterId}")
@@ -700,6 +831,7 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(cluster).build();
}
+ /*
@GET
@Path("/clusters/{subscriptionAlias}/loadBalancer")
@Consumes("application/json")
@@ -717,8 +849,17 @@ public class StratosApiV41 extends AbstractApi {
Response.fromResponse(getCluster(lbClusterId));
}
return Response.status(Response.Status.NOT_FOUND).build();
- }
+ }*/
+ // API methods for tenants
+
+ /**
+ * Adds the tenant.
+ *
+ * @param tenantInfoBean the tenant info bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/tenants")
@Consumes("application/json")
@@ -807,6 +948,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.created(url).build();
}
+ /**
+ * Update tenant.
+ *
+ * @param tenantInfoBean the tenant info bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
@Path("/tenants")
@Consumes("application/json")
@@ -949,6 +1097,13 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Gets the tenant by domain.
+ *
+ * @param tenantDomain the tenant domain
+ * @return the tenant by domain
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/tenants/{tenantDomain}")
@Consumes("application/json")
@@ -1009,6 +1164,13 @@ public class StratosApiV41 extends AbstractApi {
return bean;
}
+ /**
+ * Delete tenant.
+ *
+ * @param tenantDomain the tenant domain
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
@Path("/tenants/{tenantDomain}")
@Consumes("application/json")
@@ -1043,6 +1205,12 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ /**
+ * Gets the tenants.
+ *
+ * @return the tenants
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/tenants")
@Produces("application/json")
@@ -1079,6 +1247,13 @@ public class StratosApiV41 extends AbstractApi {
return tenantList;
}
+ /**
+ * Gets the partial search tenants.
+ *
+ * @param tenantDomain the tenant domain
+ * @return the partial search tenants
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/tenants/search/{tenantDomain}")
@Consumes("application/json")
@@ -1117,6 +1292,13 @@ public class StratosApiV41 extends AbstractApi {
return tenantList;
}
+ /**
+ * Activate tenant.
+ *
+ * @param tenantDomain the tenant domain
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/tenants/activate/{tenantDomain}")
@Consumes("application/json")
@@ -1154,6 +1336,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ /**
+ * Deactivate tenant.
+ *
+ * @param tenantDomain the tenant domain
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/tenants/deactivate/{tenantDomain}")
@Consumes("application/json")
@@ -1192,6 +1381,8 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+
+ // API methods for repositories
@POST
@Path("/repo/notify")
@@ -1221,6 +1412,15 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ // API methods for users
+
+ /**
+ * Adds the user.
+ *
+ * @param userInfoBean the user info bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
@Path("/users")
@Consumes("application/json")
@@ -1241,6 +1441,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.created(url).build();
}
+ /**
+ * Delete user.
+ *
+ * @param userName the user name
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
@Path("/users/{userName}")
@Consumes("application/json")
@@ -1260,6 +1467,13 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ /**
+ * Update user.
+ *
+ * @param userInfoBean the user info bean
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
@Path("/users")
@Consumes("application/json")
@@ -1280,11 +1494,17 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ /**
+ * Gets the users.
+ *
+ * @return the users
+ * @throws RestAPIException the rest api exception
+ */
@GET
@Path("/users")
@Produces("application/json")
@AuthorizationAction("/permission/admin/manage/add/users")
- public UserInfoBean[] listUsers() throws RestAPIException {
+ public UserInfoBean[] getUsers() throws RestAPIException {
StratosUserManager stratosUserManager = new StratosUserManager();
List<UserInfoBean> userList;
@@ -1322,9 +1542,18 @@ public class StratosApiV41 extends AbstractApi {
return userStoreManager;
}
+
+ // API methods for Kubernetes clusters
+ /**
+ * Deploy kubernetes host cluster.
+ *
+ * @param kubernetesGroup the kubernetes group
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@POST
- @Path("/kubernetesCluster")
+ @Path("/kubernetesClusters")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/kubernetes")
@@ -1335,8 +1564,16 @@ public class StratosApiV41 extends AbstractApi {
return Response.created(url).build();
}
+ /**
+ * Deploy kubernetes host.
+ *
+ * @param kubernetesClusterId the kubernetes cluster id
+ * @param kubernetesHost the kubernetes host
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
- @Path("/kubernetesCluster/{kubernetesClusterId}/minion")
+ @Path("/kubernetesClusters/{kubernetesClusterId}/minion")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/kubernetes")
@@ -1348,8 +1585,15 @@ public class StratosApiV41 extends AbstractApi {
return Response.created(url).build();
}
+ /**
+ * Update kubernetes master.
+ *
+ * @param kubernetesMaster the kubernetes master
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@PUT
- @Path("/kubernetesCluster/{kubernetesClusterId}/master")
+ @Path("/kubernetesClusters/{kubernetesClusterId}/master")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/kubernetes")
@@ -1379,8 +1623,14 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Gets the kubernetes host clusters.
+ *
+ * @return the kubernetes host clusters
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/kubernetesCluster")
+ @Path("/kubernetesClusters")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/kubernetes")
@@ -1388,8 +1638,15 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(StratosApiV41Utils.getAvailableKubernetesGroups()).build();
}
+ /**
+ * Gets the kubernetes host cluster.
+ *
+ * @param kubernetesClusterId the kubernetes cluster id
+ * @return the kubernetes host cluster
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/kubernetesCluster/{kubernetesClusterId}")
+ @Path("/kubernetesClusters/{kubernetesClusterId}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/kubernetes")
@@ -1401,8 +1658,15 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Gets the kubernetes hosts of kubernetes cluster.
+ *
+ * @param kubernetesClusterId the kubernetes cluster id
+ * @return the kubernetes hosts of kubernetes cluster
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/kubernetesCluster/{kubernetesClusterId}/hosts")
+ @Path("/kubernetesClusters/{kubernetesClusterId}/hosts")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/kubernetes")
@@ -1414,8 +1678,15 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Gets the kubernetes master of kubernetes cluster.
+ *
+ * @param kubernetesClusterId the kubernetes cluster id
+ * @return the kubernetes master of kubernetes cluster
+ * @throws RestAPIException the rest api exception
+ */
@GET
- @Path("/kubernetesCluster/{kubernetesClusterId}/master")
+ @Path("/kubernetesClusters/{kubernetesClusterId}/master")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/kubernetes")
@@ -1427,8 +1698,15 @@ public class StratosApiV41 extends AbstractApi {
}
}
+ /**
+ * Un deploy kubernetes host cluster.
+ *
+ * @param kubernetesClusterId the kubernetes cluster id
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
- @Path("/kubernetesCluster/{kubernetesClusterId}")
+ @Path("/kubernetesClusters/{kubernetesClusterId}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/kubernetes")
@@ -1441,8 +1719,15 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
+ /**
+ * Undeploy kubernetes host of kubernetes cluster.
+ *
+ * @param kubernetesHostId the kubernetes host id
+ * @return the response
+ * @throws RestAPIException the rest api exception
+ */
@DELETE
- @Path("/kubernetesCluster/{kubernetesClusterId}/hosts/{hostId}")
+ @Path("/kubernetesClusters/{kubernetesClusterId}/hosts/{hostId}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/kubernetes")
[3/8] stratos git commit: Refactoring the REST api
Posted by re...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoScalerService.wsdl
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoScalerService.wsdl b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoScalerService.wsdl
index 8c436b1..61c8faa 100644
--- a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoScalerService.wsdl
+++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoScalerService.wsdl
@@ -455,6 +455,20 @@
</xs:sequence>
</xs:complexType>
</xs:element>
+ <xs:element name="deployDeploymentPolicy">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="deploymentPolicy" nillable="true" type="ax28:DeploymentPolicy"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="deployDeploymentPolicyResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
<xs:element name="deployApplicationDefinition">
<xs:complexType>
<xs:sequence>
@@ -591,6 +605,12 @@
<wsdl:message name="getAutoscalingPolicyResponse">
<wsdl:part name="parameters" element="ns:getAutoscalingPolicyResponse"/>
</wsdl:message>
+ <wsdl:message name="deployDeploymentPolicyRequest">
+ <wsdl:part name="parameters" element="ns:deployDeploymentPolicy"/>
+ </wsdl:message>
+ <wsdl:message name="deployDeploymentPolicyResponse">
+ <wsdl:part name="parameters" element="ns:deployDeploymentPolicyResponse"/>
+ </wsdl:message>
<wsdl:message name="updateAutoScalingPolicyRequest">
<wsdl:part name="parameters" element="ns:updateAutoScalingPolicy"/>
</wsdl:message>
@@ -688,6 +708,10 @@
<wsdl:input message="ns:getAutoscalingPolicyRequest" wsaw:Action="urn:getAutoscalingPolicy"/>
<wsdl:output message="ns:getAutoscalingPolicyResponse" wsaw:Action="urn:getAutoscalingPolicyResponse"/>
</wsdl:operation>
+ <wsdl:operation name="deployDeploymentPolicy">
+ <wsdl:input message="ns:deployDeploymentPolicyRequest" wsaw:Action="urn:deployDeploymentPolicy"/>
+ <wsdl:output message="ns:deployDeploymentPolicyResponse" wsaw:Action="urn:deployDeploymentPolicyResponse"/>
+ </wsdl:operation>
<wsdl:operation name="updateAutoScalingPolicy">
<wsdl:input message="ns:updateAutoScalingPolicyRequest" wsaw:Action="urn:updateAutoScalingPolicy"/>
<wsdl:output message="ns:updateAutoScalingPolicyResponse" wsaw:Action="urn:updateAutoScalingPolicyResponse"/>
@@ -857,6 +881,15 @@
<soap:fault use="literal" name="AutoScalerServiceInvalidPolicyException"/>
</wsdl:fault>
</wsdl:operation>
+ <wsdl:operation name="deployDeploymentPolicy">
+ <soap:operation soapAction="urn:deployDeploymentPolicy" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="addDeploymentPolicy">
<soap:operation soapAction="urn:addDeploymentPolicy" style="document"/>
<wsdl:input>
@@ -1055,6 +1088,15 @@
<soap12:fault use="literal" name="AutoScalerServiceInvalidPolicyException"/>
</wsdl:fault>
</wsdl:operation>
+ <wsdl:operation name="deployDeploymentPolicy">
+ <soap12:operation soapAction="urn:deployDeploymentPolicy" style="document"/>
+ <wsdl:input>
+ <soap12:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="addDeploymentPolicy">
<soap12:operation soapAction="urn:addDeploymentPolicy" style="document"/>
<wsdl:input>
@@ -1235,6 +1277,15 @@
<mime:content type="text/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="deployDeploymentPolicy">
+ <http:operation location="deployDeploymentPolicy"/>
+ <wsdl:input>
+ <mime:content type="text/xml" part="parameters"/>
+ </wsdl:input>
+ <wsdl:output>
+ <mime:content type="text/xml" part="parameters"/>
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="addDeploymentPolicy">
<http:operation location="addDeploymentPolicy"/>
<wsdl:input>
[4/8] stratos git commit: Refactoring the REST api
Posted by re...@apache.org.
http://git-wip-us.apache.org/repos/asf/stratos/blob/b0d91f7d/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index c377b08..4fdfb3c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -98,7 +98,7 @@ public class StratosApiV41Utils {
private static ServiceDeploymentManager serviceDeploymentManager = new ServiceDeploymentManager();
private static PersistenceManager persistenceManager = new RegistryBasedPersistenceManager();
- public static void deployCartridge(CartridgeDefinitionBean cartridgeDefinitionBean, ConfigurationContext ctxt,
+ public static void createCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean, ConfigurationContext ctxt,
String userName, String tenantDomain) throws RestAPIException {
log.info("Starting to deploy a Cartridge [type] " + cartridgeDefinitionBean.type);
@@ -114,141 +114,8 @@ public class StratosApiV41Utils {
}
log.info("Successfully deployed Cartridge [type] " + cartridgeDefinitionBean.type);
}
-
- public static void createApplication (ApplicationDefinition appDefinition) throws RestAPIException {
-
- try {
- if (persistenceManager.getApplication(appDefinition.getApplicationId()) != null) {
- String errorMsg = "Application Definition with id " + appDefinition.getApplicationId() +
- " already exists";
- log.error(errorMsg);
- throw new RestAPIException(errorMsg);
- }
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
-
- try {
- persistenceManager.createApplication(appDefinition);
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
- }
-
- public static void deleteApplication (String appId) throws RestAPIException {
-
- try {
- persistenceManager.removeApplication(appId);
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
- }
-
- public static void deployApplicationDefinition(ApplicationDefinition appDefinition, ConfigurationContext ctxt,
- String userName, String tenantDomain)
- throws RestAPIException {
-
- // check if an application with same id already exists
- // check if application with same appId / tenant already exists
- CartridgeSubscriptionManager subscriptionMgr = new CartridgeSubscriptionManager();
- int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
- String appId = appDefinition.getApplicationId();
-
- try {
- if (subscriptionMgr.getApplicationSubscription(appId, tenantId) != null) {
- String msg = "Duplicate application appId: " + appId + " for tenant " + tenantId;
- throw new RestAPIException(msg);
- }
- } catch (ApplicationSubscriptionException e1) {
- throw new RestAPIException(e1);
- }
-
- ApplicationContext applicationContext =
- PojoConverter.convertApplicationBeanToApplicationContext(appDefinition);
- applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
- applicationContext.setTenantDomain(tenantDomain);
- applicationContext.setTeantAdminUsername(userName);
-
- if (appDefinition.getProperty() != null) {
- org.apache.stratos.autoscaler.stub.Properties properties = new org.apache.stratos.autoscaler.stub.Properties();
- for (org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean : appDefinition.getProperty()) {
- org.apache.stratos.autoscaler.stub.Property property = new org.apache.stratos.autoscaler.stub.Property();
- property.setName(propertyBean.getName());
- property.setValue(propertyBean.getValue());
- properties.addProperties(property);
- }
- applicationContext.setProperties(properties);
- }
-
- try {
- AutoscalerServiceClient.getServiceClient().deployApplication(applicationContext);
- } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
- throw new RestAPIException(e);
- } catch (RemoteException e) {
- throw new RestAPIException(e);
- }
- }
-
- static ApplicationSubscription getApplicationSubscriptions(String appId, ConfigurationContext ctxt) throws RestAPIException {
- CartridgeSubscriptionManager subscriptionMgr = new CartridgeSubscriptionManager();
- try {
- return subscriptionMgr.getApplicationSubscription(appId, ApplicationManagementUtil.getTenantId(ctxt));
- } catch (ApplicationSubscriptionException e) {
- throw new RestAPIException(e);
- }
- }
-
- public static void removeApplication(String appId, ConfigurationContext ctxt,
- String userName, String tenantDomain) throws RestAPIException {
-
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
- //CloudControllerServiceClient.getServiceClient().undeployApplicationDefinition(appId, tenantId, tenantDomain);
- AutoscalerServiceClient.getServiceClient().undeployApplication(appId, tenantId, tenantDomain);
-
- } catch (RemoteException e) {
- throw new RestAPIException(e);
- } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
- throw new RestAPIException(e);
- }
-
- }
-
- @SuppressWarnings("unused")
- private static DeploymentPolicy[] intersection(
- DeploymentPolicy[] cartridgeDepPolicies,
- DeploymentPolicy[] lbCartridgeDepPolicies) {
-
- List<DeploymentPolicy> commonPolicies =
- new ArrayList<DeploymentPolicy>();
- for (DeploymentPolicy policy1
- : cartridgeDepPolicies) {
- for (DeploymentPolicy policy2
- : lbCartridgeDepPolicies) {
- if (policy1.equals(policy2)) {
- commonPolicies.add(policy1);
- }
- }
-
- }
- return commonPolicies.toArray(new DeploymentPolicy[0]);
- }
-
- public static void undeployApplication(String applicationId) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- try {
- autoscalerServiceClient.unDeployDeploymentPolicy(applicationId);
- } catch (RemoteException e) {
- log.error("Error while unDeploying the Deployment Policy for " + applicationId);
- throw new RestAPIException(e);
- }
- }
-
-
- }
-
- public static void undeployCartridge(String cartridgeType) throws RestAPIException {
+
+ public static void deleteCartridgeDefinition(String cartridgeType) throws RestAPIException {
CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
if (cloudControllerServiceClient != null) {
@@ -325,141 +192,324 @@ public class StratosApiV41Utils {
throw new RestAPIException(msg, e);
}
}
-
-
-// public static void deployPartition(Partition partitionBean) throws RestAPIException {
-//
-// //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
-//
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-//
-// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition partition =
-// PojoConverter.convertToCCPartitionPojo(partitionBean);
-//
-// try {
-// autoscalerServiceClient.deployPartition(partition);
-// } catch (RemoteException e) {
-// log.error(e.getMessage(), e);
-// throw new RestAPIException(e.getMessage(), e);
-// } catch (AutoScalerServiceInvalidPartitionExceptionException e) {
-// String message = e.getFaultMessage().getInvalidPartitionException().getMessage();
-// log.error(message, e);
-// throw new RestAPIException(message, e);
-// }
-//
-// }
-// }
-
- public static void deployAutoscalingPolicy(AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
-
- log.info(String.format("Deploying autoscaling policy: [id] %s", autoscalePolicyBean.getId()));
-
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
-
- org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
- convertToCCAutoscalerPojo(autoscalePolicyBean);
-
- try {
- autoscalerServiceClient
- .deployAutoscalingPolicy(autoscalePolicy);
- } catch (RemoteException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
- String message = e.getFaultMessage()
- .getInvalidPolicyException().getMessage();
- log.error(message, e);
- throw new RestAPIException(message, e);
+
+ public static List<Cartridge> getCartridgesByCategory(String category, String criteria, ConfigurationContext configurationContext)
+ throws RestAPIException {
+ List<Cartridge> cartridges = null;
+
+ if (category.equals("singleTenant")) {
+ cartridges = getAvailableCartridges(null, false, configurationContext);
+ } else if (category.equals("multiTenant")) {
+ cartridges = getAvailableCartridges(null, true, configurationContext);
+ } else if (category.equals("loadBalancer")) {
+ cartridges = getAvailableLbCartridges(false, configurationContext);
+ } else if (category.equals("provider")) {
+ cartridges = getAvailableCartridgesByProvider(criteria, configurationContext);
+ }
+
+ return cartridges;
+ }
+
+ public static Cartridge getCartridgeByCategory(String category, String cartridgeType, ConfigurationContext configurationContext)
+ throws RestAPIException {
+ List<Cartridge> cartridges = getCartridgesByCategory(category, null, configurationContext);
+
+ for (Cartridge cartridge : cartridges) {
+ if (cartridge.getCartridgeType().equals(cartridgeType)) {
+ return cartridge;
+ }
+ }
+ String msg = "Unavailable cartridge type: " + cartridgeType;
+ log.error(msg);
+ throw new RestAPIException(msg);
+ }
+
+ /*private static Cartridge getAvailableCartridgeInfo(String cartridgeType, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
+ List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant, configurationContext);
+ for (Cartridge cartridge : cartridges) {
+ if (cartridge.getCartridgeType().equals(cartridgeType)) {
+ return cartridge;
}
}
- }
-
- public static void updateAutoscalingPolicy(AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
-
- log.info(String.format("Updating autoscaling policy: [id] %s", autoscalePolicyBean.getId()));
-
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
-
- org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
- convertToCCAutoscalerPojo(autoscalePolicyBean);
+ String msg = "Unavailable cartridge type: " + cartridgeType;
+ log.error(msg);
+ throw new RestAPIException(msg);
+ }*/
- try {
- autoscalerServiceClient.updateAutoscalingPolicy(autoscalePolicy);
- } catch (RemoteException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
- String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
- log.error(message, e);
- throw new RestAPIException(message, e);
+ private static List<Cartridge> getAvailableLbCartridges(Boolean multiTenant,
+ ConfigurationContext configurationContext) throws RestAPIException {
+ List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant,
+ configurationContext);
+ List<Cartridge> lbCartridges = new ArrayList<Cartridge>();
+ for (Cartridge cartridge : cartridges) {
+ if (cartridge.isLoadBalancer()) {
+ lbCartridges.add(cartridge);
}
}
+
+ /*if(lbCartridges == null || lbCartridges.isEmpty()) {
+ String msg = "Load balancer Cartridges are not available.";
+ log.error(msg);
+ throw new RestAPIException(msg) ;
+ }*/
+ return lbCartridges;
}
- public static String deployDeploymentPolicy(
- org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
- throws RestAPIException {
+ private static List<Cartridge> getAvailableCartridgesByProvider(String provider, ConfigurationContext configurationContext) throws RestAPIException {
+ List<Cartridge> cartridges = new ArrayList<Cartridge>();
- String policyId = null;
+ if (log.isDebugEnabled()) {
+ log.debug("Getting available cartridges. Privider name : " + provider );
+ }
- if (log.isDebugEnabled()) {
- log.debug("Starting to deploy a deployment policy of application: "
- + deploymentPolicyBean.applicationPolicy.applicationId);
- }
+ boolean allowMultipleSubscription = new Boolean(
+ System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ try {
- org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
- PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
- try {
- policyId = autoscalerServiceClient.deployDeploymentPolicy(deploymentPolicy);
- } catch (RemoteException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
- String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
- log.error(message, e);
- throw new RestAPIException(message, e);
- }
+ String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
- log.info(String.format("Deployed deployment policy: [id] %s", policyId));
- }
-
- return policyId;
- }
+ if (availableCartridges != null) {
+ for (String cartridgeType : availableCartridges) {
+ CartridgeInfo cartridgeInfo = null;
+ try {
+ cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+ } catch (Exception e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
+ + e.getMessage());
+ }
+ }
+ if (cartridgeInfo == null) {
+ // This cannot happen. But continue
+ if (log.isDebugEnabled()) {
+ log.debug("Cartridge Info not found: " + cartridgeType);
+ }
+ continue;
+ }
- public static void updateDeploymentPolicy(
- org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
- throws RestAPIException {
- //FIXME we do not have any use-case now?? - Nirmal
-// log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.id));
-//
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-//
-// org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
-// PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
-//
-//
-// try {
-// autoscalerServiceClient.updateDeploymentPolicy(deploymentPolicy);
-// } catch (RemoteException e) {
-// log.error(e.getMessage(), e);
-// throw new RestAPIException(e.getMessage(), e);
-// } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
-// String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
-// log.error(message, e);
-// throw new RestAPIException(message, e);
-// }
-// }
+ if (!cartridgeInfo.getProvider().equals(provider)) {
+ continue;
+ }
+
+ Cartridge cartridge = new Cartridge();
+ cartridge.setCartridgeType(cartridgeType);
+ cartridge.setProvider(cartridgeInfo.getProvider());
+ cartridge.setDisplayName(cartridgeInfo.getDisplayName());
+ cartridge.setDescription(cartridgeInfo.getDescription());
+ cartridge.setVersion(cartridgeInfo.getVersion());
+ cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
+ cartridge.setHostName(cartridgeInfo.getHostName());
+ cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
+ cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
+ //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
+ cartridge.setCartridgeAlias("-");
+ cartridge.setPersistence(cartridgeInfo.getPersistence());
+ cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
+
+ if (cartridgeInfo.getProperties() != null) {
+ for (org.apache.stratos.cloud.controller.stub.Property property : cartridgeInfo
+ .getProperties()) {
+ if (property.getName().equals("load.balancer")) {
+ cartridge.setLoadBalancer(true);
+ }
+ }
+ }
+ //cartridge.setActiveInstances(0);
+ cartridges.add(cartridge);
+ }
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("There are no available cartridges");
+ }
+ }
+ } catch (Exception e) {
+ String msg = "Error while getting available cartridges. Cause: " + e.getMessage();
+ log.error(msg, e);
+ throw new RestAPIException(msg, e);
+ }
+
+ Collections.sort(cartridges);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Returning available cartridges " + cartridges.size());
+ }
+
+ return cartridges;
}
+ public static List<Cartridge> getAvailableCartridges(String cartridgeSearchString, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
+ List<Cartridge> cartridges = new ArrayList<Cartridge>();
+
+ if (log.isDebugEnabled()) {
+ log.debug("Getting available cartridges. Search String: " + cartridgeSearchString + ", Multi-Tenant: " + multiTenant);
+ }
+
+ boolean allowMultipleSubscription = new Boolean(
+ System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
+
+ try {
+ Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
+
+ String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
+
+ if (availableCartridges != null) {
+ for (String cartridgeType : availableCartridges) {
+ CartridgeInfo cartridgeInfo = null;
+ try {
+ cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+ } catch (Exception e) {
+ if (log.isWarnEnabled()) {
+ log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
+ + e.getMessage());
+ }
+ }
+ if (cartridgeInfo == null) {
+ // This cannot happen. But continue
+ if (log.isDebugEnabled()) {
+ log.debug("Cartridge Info not found: " + cartridgeType);
+ }
+ continue;
+ }
+
+ if (multiTenant != null && !multiTenant && cartridgeInfo.getMultiTenant()) {
+ // Need only Single-Tenant cartridges
+ continue;
+ } else if (multiTenant != null && multiTenant && !cartridgeInfo.getMultiTenant()) {
+ // Need only Multi-Tenant cartridges
+ continue;
+ }
+
+ if (!StratosApiV41Utils.cartridgeMatches(cartridgeInfo, searchPattern)) {
+ continue;
+ }
+
+ Cartridge cartridge = new Cartridge();
+ cartridge.setCartridgeType(cartridgeType);
+ cartridge.setProvider(cartridgeInfo.getProvider());
+ cartridge.setDisplayName(cartridgeInfo.getDisplayName());
+ cartridge.setDescription(cartridgeInfo.getDescription());
+ cartridge.setVersion(cartridgeInfo.getVersion());
+ cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
+ cartridge.setHostName(cartridgeInfo.getHostName());
+ cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
+ cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
+ //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
+ cartridge.setCartridgeAlias("-");
+ cartridge.setPersistence(cartridgeInfo.getPersistence());
+ cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
+
+ if (cartridgeInfo.getProperties() != null) {
+ for (org.apache.stratos.cloud.controller.stub.Property property : cartridgeInfo.getProperties()) {
+ if (property.getName().equals("load.balancer")) {
+ cartridge.setLoadBalancer(true);
+ }
+ }
+ }
+ //cartridge.setActiveInstances(0);
+ cartridges.add(cartridge);
+
+
+ if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
+ // If the cartridge is multi-tenant. We should not let users
+ // createSubscription twice.
+ if (isAlreadySubscribed(cartridgeType,
+ ApplicationManagementUtil.getTenantId(configurationContext))) {
+ if (log.isDebugEnabled()) {
+ log.debug("Already subscribed to " + cartridgeType
+ + ". This multi-tenant cartridge will not be available to createSubscription");
+ }
+ //cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
+ }
+ }
+ }
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("There are no available cartridges");
+ }
+ }
+ } catch (Exception e) {
+ String msg = "Error while getting available cartridges. Cause: " + e.getMessage();
+ log.error(msg, e);
+ throw new RestAPIException(msg, e);
+ }
+
+ Collections.sort(cartridges);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Returning available cartridges " + cartridges.size());
+ }
+
+ return cartridges;
+ }
+
+ private static boolean isAlreadySubscribed(String cartridgeType,
+ int tenantId) {
+
+ Collection<CartridgeSubscription> subscriptionList = CartridgeSubscriptionManager.isCartridgeSubscribed(tenantId, cartridgeType);
+ if (subscriptionList == null || subscriptionList.isEmpty()) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ private static Pattern getSearchStringPattern(String searchString) {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating search pattern for " + searchString);
+ }
+ if (searchString != null) {
+ // Copied from org.wso2.carbon.webapp.mgt.WebappAdmin.doesWebappSatisfySearchString(WebApplication, String)
+ String regex = searchString.toLowerCase().replace("..?", ".?").replace("..*", ".*").replaceAll("\\?", ".?")
+ .replaceAll("\\*", ".*?");
+ if (log.isDebugEnabled()) {
+ log.debug("Created regex: " + regex + " for search string " + searchString);
+ }
+
+ Pattern pattern = Pattern.compile(regex);
+ return pattern;
+ }
+ return null;
+ }
+
+ private static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, Pattern pattern) {
+ if (pattern != null) {
+ boolean matches = false;
+ if (cartridgeInfo.getDisplayName() != null) {
+ matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
+ }
+ if (!matches && cartridgeInfo.getDescription() != null) {
+ matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
+ }
+ return matches;
+ }
+ return true;
+ }
+
+ private static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, CartridgeSubscription cartridgeSubscription, Pattern pattern) {
+ if (pattern != null) {
+ boolean matches = false;
+ if (cartridgeInfo.getDisplayName() != null) {
+ matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
+ }
+ if (!matches && cartridgeInfo.getDescription() != null) {
+ matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
+ }
+ if (!matches && cartridgeSubscription.getType() != null) {
+ matches = pattern.matcher(cartridgeSubscription.getType().toLowerCase()).find();
+ }
+ if (!matches && cartridgeSubscription.getAlias() != null) {
+ matches = pattern.matcher(cartridgeSubscription.getAlias().toLowerCase()).find();
+ }
+ return matches;
+ }
+ return true;
+ }
+
+ // Util methods to get the service clients
+
private static CloudControllerServiceClient getCloudControllerServiceClient() throws RestAPIException {
try {
@@ -473,94 +523,66 @@ public class StratosApiV41Utils {
}
}
-// public static Partition[] getAvailablePartitions() throws RestAPIException {
-//
-// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-// try {
-// partitions = autoscalerServiceClient.getAvailablePartitions();
-//
-// } catch (RemoteException e) {
-// String errorMsg = "Error while getting available partitions. Cause : " + e.getMessage();
-// log.error(errorMsg, e);
-// throw new RestAPIException(errorMsg, e);
-// }
-// }
-//
-// return PojoConverter.populatePartitionPojos(partitions);
-// }
-//
-// public static Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId)
-// throws RestAPIException {
-//
-// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-// try {
-// partitions =
-// autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-//
-// } catch (RemoteException e) {
-// String errorMsg = "Error while getting available partitions for deployment policy id " +
-// deploymentPolicyId + ". Cause: " + e.getMessage();
-// log.error(errorMsg, e);
-// throw new RestAPIException(errorMsg, e);
-// }
-// }
-//
-// return PojoConverter.populatePartitionPojos(partitions);
-// }
-//
-// public static Partition[]
-// getPartitionsOfGroup(String deploymentPolicyId, String groupId) throws RestAPIException {
-//
-// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions = null;
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-// try {
-// partitions =
-// autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId);
-//
-// } catch (RemoteException e) {
-// String errorMsg = "Error while getting available partitions for deployment policy id " + deploymentPolicyId +
-// ", group id " + groupId + ". Cause: " + e.getMessage();
-// log.error(errorMsg, e);
-// throw new RestAPIException(errorMsg, e);
-// }
-// }
-//
-// return PojoConverter.populatePartitionPojos(partitions);
-// }
-//
-// public static Partition getPartition(String partitionId) throws RestAPIException {
-//
-// org.apache.stratos.cloud.controller.stub.deployment.partition.Partition partition = null;
-// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
-// if (autoscalerServiceClient != null) {
-// try {
-// partition = autoscalerServiceClient.getPartition(partitionId);
-//
-// } catch (RemoteException e) {
-// String errorMsg = "Error while getting partition for id " + partitionId + ". Cause: " + e.getMessage();
-// log.error(errorMsg, e);
-// throw new RestAPIException(errorMsg, e);
-// }
-// }
-//
-// return PojoConverter.populatePartitionPojo(partition);
-// }
+ private static AutoscalerServiceClient getAutoscalerServiceClient() throws RestAPIException {
+
+ try {
+ return AutoscalerServiceClient.getServiceClient();
+
+ } catch (AxisFault axisFault) {
+ String errorMsg = "Error while getting AutoscalerServiceClient instance to connect to the "
+ + "Autoscaler. Cause: " + axisFault.getMessage();
+ log.error(errorMsg, axisFault);
+ throw new RestAPIException(errorMsg, axisFault);
+ }
+ }
+
+ // Util methods for Autoscaling policies
+
+ public static void createAutoscalingPolicy(AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
+
+ log.info(String.format("Deploying autoscaling policy: [id] %s", autoscalePolicyBean.getId()));
+
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
+
+ org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
+ convertToCCAutoscalerPojo(autoscalePolicyBean);
+
+ try {
+ autoscalerServiceClient
+ .deployAutoscalingPolicy(autoscalePolicy);
+ } catch (RemoteException e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
+ String message = e.getFaultMessage()
+ .getInvalidPolicyException().getMessage();
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ }
+ }
+ }
+
+ public static void updateAutoscalingPolicy(AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
- private static AutoscalerServiceClient getAutoscalerServiceClient() throws RestAPIException {
+ log.info(String.format("Updating autoscaling policy: [id] %s", autoscalePolicyBean.getId()));
- try {
- return AutoscalerServiceClient.getServiceClient();
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
- } catch (AxisFault axisFault) {
- String errorMsg = "Error while getting AutoscalerServiceClient instance to connect to the "
- + "Autoscaler. Cause: " + axisFault.getMessage();
- log.error(errorMsg, axisFault);
- throw new RestAPIException(errorMsg, axisFault);
+ org.apache.stratos.autoscaler.stub.autoscale.policy.AutoscalePolicy autoscalePolicy = PojoConverter.
+ convertToCCAutoscalerPojo(autoscalePolicyBean);
+
+ try {
+ autoscalerServiceClient.updateAutoscalingPolicy(autoscalePolicy);
+ } catch (RemoteException e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
+ String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ }
}
}
@@ -599,331 +621,163 @@ public class StratosApiV41Utils {
return PojoConverter.populateAutoscalePojo(autoscalePolicy);
}
+
+ // Util methods for Deployment policies
+
+ public static String createDeploymentPolicy(
+ org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
+ throws RestAPIException {
+ String policyId = null;
- public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
- getDeploymentPolicies() throws RestAPIException {
-
- DeploymentPolicy[] deploymentPolicies = null;
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- try {
- deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies();
- } catch (RemoteException e) {
- String errorMsg = "Error getting available deployment policies. Cause : " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
- }
+ if (log.isDebugEnabled()) {
+ log.debug("Starting to create a deployment policy of application: "
+ + deploymentPolicyBean.applicationPolicy.applicationId);
}
-
-
- return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
- }
-
- public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
- getDeploymentPolicies(String cartridgeType) throws RestAPIException {
-
- DeploymentPolicy[] deploymentPolicies = null;
+
AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
if (autoscalerServiceClient != null) {
- try {
- deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies(cartridgeType);
-
- } catch (RemoteException e) {
- String errorMsg = "Error while getting available deployment policies for cartridge type " +
- cartridgeType + ". Cause: " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
- }
- }
-
- if (deploymentPolicies.length == 0) {
- String errorMsg = "Cannot find any matching deployment policy for Cartridge [type] " + cartridgeType;
- log.error(errorMsg);
- throw new RestAPIException(errorMsg);
- }
-
- return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
- }
- public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
- getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
+ org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
+ PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
- DeploymentPolicy deploymentPolicy = null;
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
try {
- deploymentPolicy = autoscalerServiceClient.getDeploymentPolicy(deploymentPolicyId);
-
+ policyId = autoscalerServiceClient.addDeploymentPolicy(deploymentPolicy);
} catch (RemoteException e) {
- String errorMsg = "Error while getting deployment policy with id " +
- deploymentPolicyId + ". Cause: " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
+ String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
+ log.error(message, e);
+ throw new RestAPIException(message, e);
}
- }
- if (deploymentPolicy == null) {
- String errorMsg = "Cannot find a matching deployment policy for [id] " + deploymentPolicyId;
- log.error(errorMsg);
- throw new RestAPIException(errorMsg);
+ log.info(String.format("Created deployment policy: [id] %s", policyId));
}
-
- return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
+
+ return policyId;
}
-
- public static ApplicationLevelNetworkPartition[] getPartitionGroups(String deploymentPolicyId)
+
+ public static void updateDeploymentPolicy(
+ org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
throws RestAPIException {
- org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups = null;
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- try {
- partitionGroups = autoscalerServiceClient.getApplicationLevelNetworkPartition(deploymentPolicyId);
-
- } catch (RemoteException e) {
- String errorMsg = "Error getting available partition groups for deployment policy id "
- + deploymentPolicyId + ". Cause: " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
- }
- }
-
- return PojoConverter.populatePartitionGroupPojos(partitionGroups);
- }
-
- static Cartridge getAvailableCartridgeInfo(String cartridgeType, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
- List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant, configurationContext);
- for (Cartridge cartridge : cartridges) {
- if (cartridge.getCartridgeType().equals(cartridgeType)) {
- return cartridge;
- }
- }
- String msg = "Unavailable cartridge type: " + cartridgeType;
- log.error(msg);
- throw new RestAPIException(msg);
- }
-
- static List<Cartridge> getAvailableLbCartridges(Boolean multiTenant,
- ConfigurationContext configurationContext) throws RestAPIException {
- List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant,
- configurationContext);
- List<Cartridge> lbCartridges = new ArrayList<Cartridge>();
- for (Cartridge cartridge : cartridges) {
- if (cartridge.isLoadBalancer()) {
- lbCartridges.add(cartridge);
- }
- }
-
- /*if(lbCartridges == null || lbCartridges.isEmpty()) {
- String msg = "Load balancer Cartridges are not available.";
- log.error(msg);
- throw new RestAPIException(msg) ;
- }*/
- return lbCartridges;
- }
-
- static List<Cartridge> getAvailableCartridgesByProvider(String provider, ConfigurationContext configurationContext) throws RestAPIException {
- List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
- if (log.isDebugEnabled()) {
- log.debug("Getting available cartridges. Privider name : " + provider );
- }
-
- boolean allowMultipleSubscription = new Boolean(
- System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
- try {
-
-
- String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
-
- if (availableCartridges != null) {
- for (String cartridgeType : availableCartridges) {
- CartridgeInfo cartridgeInfo = null;
- try {
- cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
- } catch (Exception e) {
- if (log.isWarnEnabled()) {
- log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
- + e.getMessage());
- }
- }
- if (cartridgeInfo == null) {
- // This cannot happen. But continue
- if (log.isDebugEnabled()) {
- log.debug("Cartridge Info not found: " + cartridgeType);
- }
- continue;
- }
-
-
- if (!cartridgeInfo.getProvider().equals(provider)) {
- continue;
- }
-
- Cartridge cartridge = new Cartridge();
- cartridge.setCartridgeType(cartridgeType);
- cartridge.setProvider(cartridgeInfo.getProvider());
- cartridge.setDisplayName(cartridgeInfo.getDisplayName());
- cartridge.setDescription(cartridgeInfo.getDescription());
- cartridge.setVersion(cartridgeInfo.getVersion());
- cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
- cartridge.setHostName(cartridgeInfo.getHostName());
- cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
- cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
- //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
- cartridge.setCartridgeAlias("-");
- cartridge.setPersistence(cartridgeInfo.getPersistence());
- cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
-
- if (cartridgeInfo.getProperties() != null) {
- for (org.apache.stratos.cloud.controller.stub.Property property : cartridgeInfo
- .getProperties()) {
- if (property.getName().equals("load.balancer")) {
- cartridge.setLoadBalancer(true);
- }
- }
- }
- //cartridge.setActiveInstances(0);
- cartridges.add(cartridge);
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("There are no available cartridges");
- }
- }
- } catch (Exception e) {
- String msg = "Error while getting available cartridges. Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
-
- Collections.sort(cartridges);
-
- if (log.isDebugEnabled()) {
- log.debug("Returning available cartridges " + cartridges.size());
- }
-
- return cartridges;
+ //FIXME we do not have any use-case now?? - Nirmal
+// log.info(String.format("Updating deployment policy: [id] %s", deploymentPolicyBean.id));
+//
+// AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+// if (autoscalerServiceClient != null) {
+//
+// org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
+// PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
+//
+//
+// try {
+// autoscalerServiceClient.updateDeploymentPolicy(deploymentPolicy);
+// } catch (RemoteException e) {
+// log.error(e.getMessage(), e);
+// throw new RestAPIException(e.getMessage(), e);
+// } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
+// String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
+// log.error(message, e);
+// throw new RestAPIException(message, e);
+// }
+// }
}
- static List<Cartridge> getAvailableCartridges(String cartridgeSearchString, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
- List<Cartridge> cartridges = new ArrayList<Cartridge>();
+ public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
+ getDeploymentPolicies() throws RestAPIException {
- if (log.isDebugEnabled()) {
- log.debug("Getting available cartridges. Search String: " + cartridgeSearchString + ", Multi-Tenant: " + multiTenant);
+ DeploymentPolicy[] deploymentPolicies = null;
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
+ try {
+ deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies();
+ } catch (RemoteException e) {
+ String errorMsg = "Error getting available deployment policies. Cause : " + e.getMessage();
+ log.error(errorMsg, e);
+ throw new RestAPIException(errorMsg, e);
+ }
}
- boolean allowMultipleSubscription = new Boolean(
- System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
- try {
- Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
+ return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
+ }
- String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
+ /*public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
+ getDeploymentPolicies(String cartridgeType) throws RestAPIException {
- if (availableCartridges != null) {
- for (String cartridgeType : availableCartridges) {
- CartridgeInfo cartridgeInfo = null;
- try {
- cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
- } catch (Exception e) {
- if (log.isWarnEnabled()) {
- log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
- + e.getMessage());
- }
- }
- if (cartridgeInfo == null) {
- // This cannot happen. But continue
- if (log.isDebugEnabled()) {
- log.debug("Cartridge Info not found: " + cartridgeType);
- }
- continue;
- }
+ DeploymentPolicy[] deploymentPolicies = null;
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
+ try {
+ deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies(cartridgeType);
- if (multiTenant != null && !multiTenant && cartridgeInfo.getMultiTenant()) {
- // Need only Single-Tenant cartridges
- continue;
- } else if (multiTenant != null && multiTenant && !cartridgeInfo.getMultiTenant()) {
- // Need only Multi-Tenant cartridges
- continue;
- }
+ } catch (RemoteException e) {
+ String errorMsg = "Error while getting available deployment policies for cartridge type " +
+ cartridgeType + ". Cause: " + e.getMessage();
+ log.error(errorMsg, e);
+ throw new RestAPIException(errorMsg, e);
+ }
+ }
- if (!StratosApiV41Utils.cartridgeMatches(cartridgeInfo, searchPattern)) {
- continue;
- }
+ if (deploymentPolicies.length == 0) {
+ String errorMsg = "Cannot find any matching deployment policy for Cartridge [type] " + cartridgeType;
+ log.error(errorMsg);
+ throw new RestAPIException(errorMsg);
+ }
- Cartridge cartridge = new Cartridge();
- cartridge.setCartridgeType(cartridgeType);
- cartridge.setProvider(cartridgeInfo.getProvider());
- cartridge.setDisplayName(cartridgeInfo.getDisplayName());
- cartridge.setDescription(cartridgeInfo.getDescription());
- cartridge.setVersion(cartridgeInfo.getVersion());
- cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
- cartridge.setHostName(cartridgeInfo.getHostName());
- cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
- cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
- //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
- cartridge.setCartridgeAlias("-");
- cartridge.setPersistence(cartridgeInfo.getPersistence());
- cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
+ return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
+ }*/
- if (cartridgeInfo.getProperties() != null) {
- for (org.apache.stratos.cloud.controller.stub.Property property : cartridgeInfo.getProperties()) {
- if (property.getName().equals("load.balancer")) {
- cartridge.setLoadBalancer(true);
- }
- }
- }
- //cartridge.setActiveInstances(0);
- cartridges.add(cartridge);
+ public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
+ getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
+ DeploymentPolicy deploymentPolicy = null;
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
+ try {
+ deploymentPolicy = autoscalerServiceClient.getDeploymentPolicy(deploymentPolicyId);
- if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
- // If the cartridge is multi-tenant. We should not let users
- // createSubscription twice.
- if (isAlreadySubscribed(cartridgeType,
- ApplicationManagementUtil.getTenantId(configurationContext))) {
- if (log.isDebugEnabled()) {
- log.debug("Already subscribed to " + cartridgeType
- + ". This multi-tenant cartridge will not be available to createSubscription");
- }
- //cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
- }
- }
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("There are no available cartridges");
- }
+ } catch (RemoteException e) {
+ String errorMsg = "Error while getting deployment policy with id " +
+ deploymentPolicyId + ". Cause: " + e.getMessage();
+ log.error(errorMsg, e);
+ throw new RestAPIException(errorMsg, e);
}
- } catch (Exception e) {
- String msg = "Error while getting available cartridges. Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
}
- Collections.sort(cartridges);
-
- if (log.isDebugEnabled()) {
- log.debug("Returning available cartridges " + cartridges.size());
+ if (deploymentPolicy == null) {
+ String errorMsg = "Cannot find a matching deployment policy for [id] " + deploymentPolicyId;
+ log.error(errorMsg);
+ throw new RestAPIException(errorMsg);
}
- return cartridges;
+ return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
}
- private static boolean isAlreadySubscribed(String cartridgeType,
- int tenantId) {
+ public static ApplicationLevelNetworkPartition[] getPartitionGroups(String deploymentPolicyId)
+ throws RestAPIException {
- Collection<CartridgeSubscription> subscriptionList = CartridgeSubscriptionManager.isCartridgeSubscribed(tenantId, cartridgeType);
- if (subscriptionList == null || subscriptionList.isEmpty()) {
- return false;
- } else {
- return true;
+ org.apache.stratos.autoscaler.stub.deployment.partition.ApplicationLevelNetworkPartition[] partitionGroups = null;
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
+ try {
+ partitionGroups = autoscalerServiceClient.getApplicationLevelNetworkPartition(deploymentPolicyId);
+
+ } catch (RemoteException e) {
+ String errorMsg = "Error getting available partition groups for deployment policy id "
+ + deploymentPolicyId + ". Cause: " + e.getMessage();
+ log.error(errorMsg, e);
+ throw new RestAPIException(errorMsg, e);
+ }
}
- }
- public static List<ServiceDefinitionBean> getdeployedServiceInformation() throws RestAPIException {
+ return PojoConverter.populatePartitionGroupPojos(partitionGroups);
+ }
+
+ // Util methods for services and subscriptions
+
+ /*public static List<ServiceDefinitionBean> getdeployedServiceInformation() throws RestAPIException {
Collection<Service> services = null;
@@ -941,9 +795,9 @@ public class StratosApiV41Utils {
}
return null;
- }
+ }*/
- public static ServiceDefinitionBean getDeployedServiceInformation(String type) throws RestAPIException {
+ /*public static ServiceDefinitionBean getDeployedServiceInformation(String type) throws RestAPIException {
Service service = null;
@@ -961,9 +815,9 @@ public class StratosApiV41Utils {
} else {
return PojoConverter.convertToServiceDefinitionBean(service);
}
- }
+ }*/
- public static List<Cartridge> getActiveDeployedServiceInformation(ConfigurationContext configurationContext) throws RestAPIException {
+ /*public static List<Cartridge> getActiveDeployedServiceInformation(ConfigurationContext configurationContext) throws RestAPIException {
Collection<Service> services = null;
@@ -1001,17 +855,16 @@ public class StratosApiV41Utils {
}
}
- /*if (availableMultitenantCartridges.isEmpty()) {
- String msg = "Cannot find any active deployed service for tenant [id] "+tenantId;
- log.error(msg);
- throw new RestAPIException(msg);
- }*/
+// if (availableMultitenantCartridges.isEmpty()) {
+// String msg = "Cannot find any active deployed service for tenant [id] "+tenantId;
+// log.error(msg);
+// throw new RestAPIException(msg);
+// }
return availableMultitenantCartridges;
- }
-
+ }*/
- static List<Cartridge> getSubscriptions(String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
+ public static List<Cartridge> getSubscriptions(String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
List<Cartridge> cartridges = new ArrayList<Cartridge>();
if (log.isDebugEnabled()) {
@@ -1088,8 +941,7 @@ public class StratosApiV41Utils {
return cartridges;
}
-
- static Cartridge getSubscription(String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
+ /*static Cartridge getSubscription(String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
Cartridge cartridge = getCartridgeFromSubscription(CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.
getTenantId(configurationContext), cartridgeAlias));
@@ -1121,9 +973,9 @@ public class StratosApiV41Utils {
cartridge.setStatus(cartridgeStatus);
return cartridge;
- }
+ }*/
- static int getActiveInstances(String cartridgeType, String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
+ /*static int getActiveInstances(String cartridgeType, String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
int noOfActiveInstances = 0;
Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext),
cartridgeAlias);
@@ -1140,7 +992,7 @@ public class StratosApiV41Utils {
}
}
return noOfActiveInstances;
- }
+ }*/
private static Cartridge getCartridgeFromSubscription(CartridgeSubscription subscription) throws RestAPIException {
@@ -1206,63 +1058,11 @@ public class StratosApiV41Utils {
}
- static Pattern getSearchStringPattern(String searchString) {
- if (log.isDebugEnabled()) {
- log.debug("Creating search pattern for " + searchString);
- }
- if (searchString != null) {
- // Copied from org.wso2.carbon.webapp.mgt.WebappAdmin.doesWebappSatisfySearchString(WebApplication, String)
- String regex = searchString.toLowerCase().replace("..?", ".?").replace("..*", ".*").replaceAll("\\?", ".?")
- .replaceAll("\\*", ".*?");
- if (log.isDebugEnabled()) {
- log.debug("Created regex: " + regex + " for search string " + searchString);
- }
-
- Pattern pattern = Pattern.compile(regex);
- return pattern;
- }
- return null;
- }
-
- static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, Pattern pattern) {
- if (pattern != null) {
- boolean matches = false;
- if (cartridgeInfo.getDisplayName() != null) {
- matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
- }
- if (!matches && cartridgeInfo.getDescription() != null) {
- matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
- }
- return matches;
- }
- return true;
- }
-
- static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, CartridgeSubscription cartridgeSubscription, Pattern pattern) {
- if (pattern != null) {
- boolean matches = false;
- if (cartridgeInfo.getDisplayName() != null) {
- matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
- }
- if (!matches && cartridgeInfo.getDescription() != null) {
- matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
- }
- if (!matches && cartridgeSubscription.getType() != null) {
- matches = pattern.matcher(cartridgeSubscription.getType().toLowerCase()).find();
- }
- if (!matches && cartridgeSubscription.getAlias() != null) {
- matches = pattern.matcher(cartridgeSubscription.getAlias().toLowerCase()).find();
- }
- return matches;
- }
- return true;
- }
-
public static CartridgeSubscription getCartridgeSubscription(String alias, ConfigurationContext configurationContext) {
return CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.getTenantId(configurationContext), alias);
}
- static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, ConfigurationContext configurationContext, String tenantUsername, String tenantDomain)
+ /*static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, ConfigurationContext configurationContext, String tenantUsername, String tenantDomain)
throws RestAPIException {
SubscriptionData subscriptionData = new SubscriptionData();
@@ -1288,32 +1088,173 @@ public class StratosApiV41Utils {
subscriptionData.setProperties(PojoConverter.getProperties(cartridgeInfoBean.getProperty()));
}
- /*
- if (cartridgeInfoBean.isPersistanceRequired()) {
- if (cartridgeInfoBean.getPersistence() != null) {
- // Add persistence related properties to PersistenceContext
- PersistenceContext persistenceContext = new PersistenceContext();
- persistenceContext.setPersistanceRequiredProperty(IS_VOLUME_REQUIRED, String.valueOf(cartridgeInfoBean.isPersistanceRequired()));
- persistenceContext.setSizeProperty(VOLUME_SIZE, cartridgeInfoBean.getSize());
- persistenceContext.setDeleteOnTerminationProperty(SHOULD_DELETE_VOLUME, String.valueOf(cartridgeInfoBean.isRemoveOnTermination()));
- if(cartridgeInfoBean.getVolumeId() != null) {
- persistenceContext.setVolumeIdProperty(VOLUME_ID, String.valueOf(cartridgeInfoBean.getVolumeId()));
- }
- subscriptionData.setPersistanceCtxt(persistenceContext);
- }
- */
+
+// if (cartridgeInfoBean.isPersistanceRequired()) {
+// if (cartridgeInfoBean.getPersistence() != null) {
+// // Add persistence related properties to PersistenceContext
+// PersistenceContext persistenceContext = new PersistenceContext();
+// persistenceContext.setPersistanceRequiredProperty(IS_VOLUME_REQUIRED, String.valueOf(cartridgeInfoBean.isPersistanceRequired()));
+// persistenceContext.setSizeProperty(VOLUME_SIZE, cartridgeInfoBean.getSize());
+// persistenceContext.setDeleteOnTerminationProperty(SHOULD_DELETE_VOLUME, String.valueOf(cartridgeInfoBean.isRemoveOnTermination()));
+// if(cartridgeInfoBean.getVolumeId() != null) {
+// persistenceContext.setVolumeIdProperty(VOLUME_ID, String.valueOf(cartridgeInfoBean.getVolumeId()));
+// }
+// subscriptionData.setPersistanceCtxt(persistenceContext);
+// }
+
//subscribe
SubscriptionInfo subscriptionInfo = null;
try {
subscriptionInfo = CartridgeSubscriptionManager.subscribeToCartridgeWithProperties(subscriptionData);
} catch (Exception e) {
- throw new RestAPIException(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+
+ return subscriptionInfo;
+ }*/
+
+ /*static void unsubscribe(String alias, String tenantDomain) throws RestAPIException {
+
+ try {
+ cartridgeSubsciptionManager.unsubscribeFromCartridge(tenantDomain, alias);
+
+ } catch (ADCException e) {
+ String msg = "Failed to unsubscribe from [alias] " + alias + ". Cause: " + e.getMessage();
+ log.error(msg, e);
+ throw new RestAPIException(msg, e);
+
+ } catch (NotSubscribedException e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+ }*/
+
+ /**
+ * Super tenant will deploy multitenant service.
+ * <p/>
+ * get domain , subdomain as well..
+ *
+ * @param clusterDomain
+ * @param clusterSubdomain
+ */
+ /*static void deployService(String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy,
+ String tenantDomain, String tenantUsername, int tenantId, String clusterDomain, String clusterSubdomain, String tenantRange, boolean isPublic) throws RestAPIException {
+ log.info("Deploying service..");
+ try {
+ serviceDeploymentManager.deployService(cartridgeType, autoscalingPolicy, deploymentPolicy, tenantId, tenantRange, tenantDomain, tenantUsername, isPublic);
+
+ } catch (Exception e) {
+ String msg = String.format("Failed to deploy the Service [Cartridge type] %s [alias] %s . Cause: %s", cartridgeType, alias, e.getMessage());
+ log.error(msg, e);
+ throw new RestAPIException(msg, e);
+ }
+ }*/
+
+ /*static void undeployService(String serviceType) throws RestAPIException, ServiceDoesNotExistException {
+
+ try {
+ serviceDeploymentManager.undeployService(serviceType);
+ } catch (ServiceDoesNotExistException ex) {
+ throw ex;
+ } catch (Exception e) {
+ String msg = "Failed to undeploy service cluster definition of type " + serviceType + " Cause: " + e.getMessage();
+ log.error(msg, e);
+ throw new RestAPIException(msg, e);
}
+ }*/
+
+ /*public static void addSubscriptionDomains(ConfigurationContext configurationContext,
+ String subscriptionAlias,
+ SubscriptionDomainRequest request)
+ throws RestAPIException {
+ try {
+ int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
+
+ for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
+ boolean isDomainExists = isSubscriptionDomainExists(configurationContext, subscriptionAlias, subscriptionDomain.domainName);
+ if (isDomainExists) {
+ String message = "Subscription domain " + subscriptionDomain.domainName + " exists";
+ throw new RestAPIException(Status.INTERNAL_SERVER_ERROR, message);
+ }
+ }
+
+ for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
+
+ CartridgeSubscriptionManager.addSubscriptionDomain(tenantId, subscriptionAlias,
+ subscriptionDomain.domainName, subscriptionDomain.applicationContext);
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+ }*/
- return subscriptionInfo;
- }
+ /*public static boolean isSubscriptionDomainExists(ConfigurationContext configurationContext,
+ String subscriptionAlias, String domain) throws RestAPIException {
+ try {
+ int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
+ SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
+ subscriptionAlias, domain));
+
+ if (subscriptionDomain.domainName != null) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+ }*/
+
+ /*public static List<SubscriptionDomainBean> getSubscriptionDomains(ConfigurationContext configurationContext,
+ String subscriptionAlias) throws RestAPIException {
+ try {
+ int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
+ return PojoConverter.populateSubscriptionDomainPojos(CartridgeSubscriptionManager.getSubscriptionDomains(tenantId, subscriptionAlias));
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+ }*/
+
+ /*public static SubscriptionDomainBean getSubscriptionDomain(ConfigurationContext configurationContext,
+ String subscriptionAlias, String domain) throws RestAPIException {
+ try {
+ int tenantId = ApplicationManagementUtil
+ .getTenantId(configurationContext);
+ SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
+ subscriptionAlias, domain));
+
+ if (subscriptionDomain == null) {
+ String message = "Could not find a subscription for [domain] " + domain + " and [alias] " + subscriptionAlias;
+ log.error(message);
+ throw new RestAPIException(Status.NOT_FOUND, message);
+ }
+
+ return subscriptionDomain;
+
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
+ }*/
+
+ /*public static void removeSubscriptionDomain(ConfigurationContext configurationContext,
+ String subscriptionAlias, String domain) throws RestAPIException, DomainMappingExistsException {
+ try {
+ int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
+ CartridgeSubscriptionManager.removeSubscriptionDomain(tenantId, subscriptionAlias, domain);
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ }
- public static org.apache.stratos.rest.endpoint.bean.topology.Cluster getCluster(String subscriptionAlias, ConfigurationContext configurationContext) throws RestAPIException {
+ }*/
+
+ // Util methods for clusters
+
+ /*public static org.apache.stratos.rest.endpoint.bean.topology.Cluster getCluster(String subscriptionAlias, ConfigurationContext configurationContext) throws RestAPIException {
Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext),
subscriptionAlias);
@@ -1322,7 +1263,7 @@ public class StratosApiV41Utils {
} else {
return PojoConverter.populateClusterPojos(cluster, null);
}
- }
+ }*/
public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] getClustersForTenant(ConfigurationContext configurationContext) {
@@ -1357,7 +1298,7 @@ public class StratosApiV41Utils {
}
- public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] getClustersForCartridgeType(String cartridgeType) {
+ /*public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] getClustersForCartridgeType(String cartridgeType) {
Set<Cluster> clusterSet = TopologyClusterInformationModel
.getInstance()
@@ -1371,7 +1312,7 @@ public class StratosApiV41Utils {
arrCluster = clusters.toArray(arrCluster);
return arrCluster;
- }
+ }*/
// return the cluster id for the lb. This is a temp fix.
/*private static String subscribeToLb(String cartridgeType, String loadBalancedCartridgeType, String lbAlias,
@@ -1419,224 +1360,232 @@ public class StratosApiV41Utils {
return cartridgeSubscription.getClusterDomain();
} */
- static void unsubscribe(String alias, String tenantDomain) throws RestAPIException {
+ // Util methods for repo actions
+ public static void getGitRepositoryNotification(Payload payload) throws RestAPIException {
try {
- cartridgeSubsciptionManager.unsubscribeFromCartridge(tenantDomain, alias);
- } catch (ADCException e) {
- String msg = "Failed to unsubscribe from [alias] " + alias + ". Cause: " + e.getMessage();
+ RepositoryNotification repoNotification = new RepositoryNotification();
+ repoNotification.updateRepository(payload.getRepository().getUrl());
+
+ } catch (Exception e) {
+ String msg = "Failed to get git repository notifications. Cause : " + e.getMessage();
log.error(msg, e);
throw new RestAPIException(msg, e);
-
- } catch (NotSubscribedException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
}
}
- /**
- * Super tenant will deploy multitenant service.
- * <p/>
- * get domain , subdomain as well..
- *
- * @param clusterDomain
- * @param clusterSubdomain
- */
- static void deployService(String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy,
- String tenantDomain, String tenantUsername, int tenantId, String clusterDomain, String clusterSubdomain, String tenantRange, boolean isPublic) throws RestAPIException {
- log.info("Deploying service..");
+ public static void synchronizeRepository(CartridgeSubscription cartridgeSubscription) throws RestAPIException {
try {
- serviceDeploymentManager.deployService(cartridgeType, autoscalingPolicy, deploymentPolicy, tenantId, tenantRange, tenantDomain, tenantUsername, isPublic);
-
+ RepositoryNotification repoNotification = new RepositoryNotification();
+ repoNotification.updateRepository(cartridgeSubscription);
} catch (Exception e) {
- String msg = String.format("Failed to deploy the Service [Cartridge type] %s [alias] %s . Cause: %s", cartridgeType, alias, e.getMessage());
+ String msg = "Failed to get git repository notifications. Cause : " + e.getMessage();
log.error(msg, e);
throw new RestAPIException(msg, e);
}
}
- static void undeployService(String serviceType) throws RestAPIException, ServiceDoesNotExistException {
+ // Util methods for service groups
+
+ public static void createServiceGroupDefinition(ServiceGroupDefinition serviceGroupDefinition) throws RestAPIException {
try {
- serviceDeploymentManager.undeployService(serviceType);
- } catch (ServiceDoesNotExistException ex) {
- throw ex;
- } catch (Exception e) {
- String msg = "Failed to undeploy service cluster definition of type " + serviceType + " Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
+ serviceGropingManager.deployServiceGroupDefinition(serviceGroupDefinition);
+
+ } catch (InvalidServiceGroupException e) {
+ throw new RestAPIException(e);
+ } catch (ServiceGroupDefinitioException e) {
+ throw new RestAPIException(e);
+ } catch (ADCException e) {
+ throw new RestAPIException(e);
+ } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) {
+ throw new RestAPIException(e);
}
+
+ log.info("Successfully created the Service Group Definition with name " + serviceGroupDefinition.getName());
}
- static void getGitRepositoryNotification(Payload payload) throws RestAPIException {
- try {
+ public static ServiceGroupDefinition getServiceGroupDefinition(String serviceGroupDefinitionName) throws RestAPIException {
- RepositoryNotification repoNotification = new RepositoryNotification();
- repoNotification.updateRepository(payload.getRepository().getUrl());
+ try {
+ return serviceGropingManager.getServiceGroupDefinition(serviceGroupDefinitionName);
- } catch (Exception e) {
- String msg = "Failed to get git repository notifications. Cause : " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
+ } catch (ServiceGroupDefinitioException e) {
+ throw new RestAPIException(e);
+ } catch (ADCException e) {
+ throw new RestAPIException(e);
}
}
- static void synchronizeRepository(CartridgeSubscription cartridgeSubscription) throws RestAPIException {
+ public static ServiceGroupDefinition[] getServiceGroupDefinitions() throws RestAPIException {
try {
- RepositoryNotification repoNotification = new RepositoryNotification();
- repoNotification.updateRepository(cartridgeSubscription);
- } catch (Exception e) {
- String msg = "Failed to get git repository notifications. Cause : " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
+ return serviceGropingManager.getServiceGroupDefinitions();
+ } catch (ADCException e) {
+ throw new RestAPIException(e);
+ } catch (ServiceGroupDefinitioException e) {
+ throw new RestAPIException(e);
}
}
- public static void addSubscriptionDomains(ConfigurationContext configurationContext,
- String subscriptionAlias,
- SubscriptionDomainRequest request)
- throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
-
- for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
- boolean isDomainExists = isSubscriptionDomainExists(configurationContext, subscriptionAlias, subscriptionDomain.domainName);
- if (isDomainExists) {
- String message = "Subscription domain " + subscriptionDomain.domainName + " exists";
- throw new RestAPIException(Status.INTERNAL_SERVER_ERROR, message);
- }
- }
+ public static void deleteServiceGroupDefinition(String serviceGroupDefinitionName) throws RestAPIException {
- for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
+ try {
+ serviceGropingManager.undeployServiceGroupDefinition(serviceGroupDefinitionName);
- CartridgeSubscriptionManager.addSubscriptionDomain(tenantId, subscriptionAlias,
- subscriptionDomain.domainName, subscriptionDomain.applicationContext);
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
+ } catch (ServiceGroupDefinitioException e) {
+ throw new RestAPIException(e);
+ } catch (ADCException e) {
+ throw new RestAPIException(e);
}
+
+ log.info("Successfully deleted the Service Group Definition with name " + serviceGroupDefinitionName);
}
- public static boolean isSubscriptionDomainExists(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
- subscriptionAlias, domain));
+ // Util methods for Applications
- if (subscriptionDomain.domainName != null) {
- return true;
- } else {
- return false;
+ /*public static void createApplication (ApplicationDefinition appDefinition) throws RestAPIException {
+
+ try {
+ if (persistenceManager.getApplication(appDefinition.getApplicationId()) != null) {
+ String errorMsg = "Application Definition with id " + appDefinition.getApplicationId() +
+ " already exists";
+ log.error(errorMsg);
+ throw new RestAPIException(errorMsg);
}
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
+ } catch (PersistenceManagerException e) {
+ throw new RestAPIException(e);
}
- }
-
- public static List<SubscriptionDomainBean> getSubscriptionDomains(ConfigurationContext configurationContext,
- String subscriptionAlias) throws RestAPIException {
try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- return PojoConverter.populateSubscriptionDomainPojos(CartridgeSubscriptionManager.getSubscriptionDomains(tenantId, subscriptionAlias));
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
+ persistenceManager.createApplication(appDefinition);
+ } catch (PersistenceManagerException e) {
+ throw new RestAPIException(e);
}
- }
+ }*/
+
+ /*public static void deleteApplication (String appId) throws RestAPIException {
- public static SubscriptionDomainBean getSubscriptionDomain(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException {
try {
- int tenantId = ApplicationManagementUtil
- .getTenantId(configurationContext);
- SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
- subscriptionAlias, domain));
-
- if (subscriptionDomain == null) {
- String message = "Could not find a subscription for [domain] " + domain + " and [alias] " + subscriptionAlias;
- log.error(message);
- throw new RestAPIException(Status.NOT_FOUND, message);
- }
+ persistenceManager.removeApplication(appId);
+ } catch (PersistenceManagerException e) {
+ throw new RestAPIException(e);
+ }
+ }*/
- return subscriptionDomain;
+ public static void createApplicationDefinition(ApplicationDefinition appDefinition, ConfigurationContext ctxt,
+ String userName, String tenantDomain)
+ throws RestAPIException {
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }
+ // check if an application with same id already exists
+ // check if application with same appId / tenant already exists
+ CartridgeSubscriptionManager subscriptionMgr = new CartridgeSubscriptionManager();
+ int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
+ String appId = appDefinition.getApplicationId();
- public static void removeSubscriptionDomain(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException, DomainMappingExistsException {
try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- CartridgeSubscriptionManager.removeSubscriptionDomain(tenantId, subscriptionAlias, domain);
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
+ if (subscriptionMgr.getApplicationSubscription(appId, tenantId) != null) {
+ String msg = "Duplicate application appId: " + appId + " for tenant " + tenantId;
+ throw new RestAPIException(msg);
+ }
+ } catch (ApplicationSubscriptionException e1) {
+ throw new RestAPIException(e1);
}
- }
+ ApplicationContext applicationContext =
+ PojoConverter.convertApplicationBeanToApplicationContext(appDefinition);
+ applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
+ applicationContext.setTenantDomain(tenantDomain);
+ applicationContext.setTeantAdminUsername(userName);
- public static void deployServiceGroupDefinition(ServiceGroupDefinition serviceGroupDefinition) throws RestAPIException {
+ if (appDefinition.getProperty() != null) {
+ org.apache.stratos.autoscaler.stub.Properties properties = new org.apache.stratos.autoscaler.stub.Properties();
+ for (org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean : appDefinition.getProperty()) {
+ org.apache.stratos.autoscaler.stub.Property property = new org.apache.stratos.autoscaler.stub.Property();
+ property.setName(propertyBean.getName());
+ property.setValue(propertyBean.getValue());
+ properties.addProperties(property);
+ }
+ applicationContext.setProperties(properties);
+ }
try {
- serviceGropingManager.deployServiceGroupDefinition(serviceGroupDefinition);
-
- } catch (InvalidServiceGroupException e) {
- throw new RestAPIException(e);
- } catch (ServiceGroupDefinitioException e) {
- throw new RestAPIException(e);
- } catch (ADCException e) {
+ AutoscalerServiceClient.getServiceClient().deployApplication(applicationContext);
+ } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
throw new RestAPIException(e);
- } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) {
+ } catch (RemoteException e) {
throw new RestAPIException(e);
}
-
- log.info("Successfully deployed the Service Group Definition with name " + serviceGroupDefinition.getName());
}
+
+ public static void deployApplication(
+ org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
+ throws RestAPIException {
- static ServiceGroupDefinition getServiceGroupDefinition(String serviceGroupDefinitionName) throws RestAPIException {
+ if (log.isDebugEnabled()) {
+ log.debug("Starting to deploy a deployment policy of application: "
+ + deploymentPolicyBean.applicationPolicy.applicationId);
+ }
- try {
- return serviceGropingManager.getServiceGroupDefinition(serviceGroupDefinitionName);
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ if (autoscalerServiceClient != null) {
- } catch (ServiceGroupDefinitioException e) {
- throw new RestAPIException(e);
- } catch (ADCException e) {
- throw new RestAPIException(e);
+ org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentP
<TRUNCATED>
[2/8] stratos git commit: Removed all commited out methods
Posted by re...@apache.org.
Removed all commited out methods
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/baa034d1
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/baa034d1
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/baa034d1
Branch: refs/heads/4.1.0-test
Commit: baa034d1027e7883a8e8fb2b2e07e79feccb71cc
Parents: b0d91f7
Author: Shiro <sh...@wso2.com>
Authored: Wed Dec 10 10:08:34 2014 +0530
Committer: Shiro <sh...@wso2.com>
Committed: Wed Dec 10 10:09:40 2014 +0530
----------------------------------------------------------------------
.../rest/endpoint/api/StratosApiV41.java | 185 +------
.../rest/endpoint/api/StratosApiV41Utils.java | 483 +------------------
2 files changed, 27 insertions(+), 641 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/baa034d1/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 3676660..93c2460 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
@@ -18,7 +18,6 @@
*/
package org.apache.stratos.rest.endpoint.api;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.common.beans.TenantInfoBean;
@@ -27,21 +26,16 @@ import org.apache.stratos.common.util.ClaimsMgtUtil;
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.grouping.definitions.ServiceGroupDefinition;
import org.apache.stratos.manager.subscription.ApplicationSubscription;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
import org.apache.stratos.manager.user.mgt.StratosUserManager;
import org.apache.stratos.manager.user.mgt.beans.UserInfoBean;
import org.apache.stratos.manager.user.mgt.exception.UserManagerException;
-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.ApplicationBean;
-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.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
@@ -49,10 +43,11 @@ 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;
import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload;
-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.exception.TenantNotFoundException;
+import org.apache.stratos.rest.endpoint.ServiceHolder;
+import org.apache.stratos.rest.endpoint.Utils;
import org.apache.stratos.tenant.mgt.core.TenantPersistor;
import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
import org.wso2.carbon.context.CarbonContext;
@@ -288,8 +283,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Response getServiceGroups()
- throws RestAPIException {
+ public Response getServiceGroups() throws RestAPIException {
ServiceGroupDefinition[] serviceGroups = StratosApiV41Utils.getServiceGroupDefinitions();
Response.ResponseBuilder rb;
if (serviceGroups != null) {
@@ -374,7 +368,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/add/deploymentPolicy")
- public Response createDeploymentPolicy(DeploymentPolicy deploymentPolicy)
+ public Response createDeploymentPolicyDefinition(DeploymentPolicy deploymentPolicy)
throws RestAPIException {
String policyId = StratosApiV41Utils.createDeploymentPolicy(deploymentPolicy);
//URI url = uriInfo.getAbsolutePathBuilder().path(policyId).build();
@@ -444,7 +438,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/partition")
- public Response getPartitionGroups(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+ public Response getPartitionGroupsForDeploymentPolicy(@PathParam("deploymentPolicyId") String deploymentPolicyId)
throws RestAPIException {
return Response.ok().entity(StratosApiV41Utils.getPartitionGroups(deploymentPolicyId)).build();
}
@@ -454,7 +448,7 @@ public class StratosApiV41 extends AbstractApi {
// @Produces("application/json")
// @Consumes("application/json")
// @AuthorizationAction("/permission/admin/manage/view/partition")
-// public Response getPartitionGroup(@PathParam("deploymentPolicyId") String deploymentPolicyId,
+// public Response getPartitionGroupForDeploymentPolicy(@PathParam("deploymentPolicyId") String deploymentPolicyId,
// @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException {
// return Response.ok().entity(StratosApiV41Utils.getPartitionsOfGroup(deploymentPolicyId, partitionGroupId)).build();
// }
@@ -464,7 +458,7 @@ public class StratosApiV41 extends AbstractApi {
// @Produces("application/json")
// @Consumes("application/json")
// @AuthorizationAction("/permission/admin/manage/view/partition")
-// public Response getPartitionsOfPolicy(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+// public Response getPartitionsForDeploymentPolicy(@PathParam("deploymentPolicyId") String deploymentPolicyId)
// throws RestAPIException {
//
// return Response.ok().entity(StratosApiV41Utils.getPartitionsOfDeploymentPolicy(deploymentPolicyId)).build();
@@ -544,18 +538,7 @@ public class StratosApiV41 extends AbstractApi {
}
// API methods for applications
-
- /* -- replaced above DELETE /applicationDeployments/{applicationId}
- @DELETE
- @Path("/applications/{applicationId}")
- @Produces("application/json")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/add/cartridgeDefinition")
- public Response unDeployApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
- StratosApiV41Utils.undeployApplication(applicationId);
- return Response.noContent().build();
- }*/
-
+
/**
* Gets details of all the applications.
*
@@ -631,7 +614,7 @@ public class StratosApiV41 extends AbstractApi {
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
@SuperTenantService(true)
- public Response removeApplicationDefinition(@PathParam("applicationId") String applicationId)
+ public Response deleteApplicationDefinition(@PathParam("applicationId") String applicationId)
throws RestAPIException {
StratosApiV41Utils.removeApplicationDefinition(applicationId, getConfigContext(), getUsername(),
getTenantDomain());
@@ -641,7 +624,7 @@ public class StratosApiV41 extends AbstractApi {
// API methods for subscriptions
/**
- * Gets the subscriptions of application.
+ * Gets the subscriptions of an application.
*
* @param applicationId the application id
* @return the subscriptions of application
@@ -652,7 +635,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
- public Response getSubscriptionsOfApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
+ public Response getSubscriptionsForApplication(@PathParam("applicationId") String applicationId) throws RestAPIException {
ApplicationSubscription subscriptions = StratosApiV41Utils.getApplicationSubscriptions(applicationId, getConfigContext());
if (subscriptions == null) {
return Response.status(Response.Status.NOT_FOUND).build();
@@ -672,7 +655,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/cartridge")
- public Response getSubscribedCartridgesOfServiceGroup(@PathParam("serviceGroup") String serviceGroup) throws RestAPIException {
+ public Response getSubscribedCartridgesForServiceGroup(@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();
@@ -680,96 +663,6 @@ public class StratosApiV41 extends AbstractApi {
return rb.build();
}
- /*
- @GET
- @Path("/subscriptions/{subscriptionAlias}/cartridges")
- @Produces("application/json")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/cartridge")
- public Response getSubscribedCartridgeInfo(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
- ResponseBuilder rb = Response.ok();
- rb.entity(StratosApiV41Utils.getSubscription(subscriptionAlias, getConfigContext()));
- return rb.build();
- }
-
- @GET
- @Path("/subscriptions/{subscriptionAlias}/cartridges/{cartridgeType}/active")
- @Produces("application/json")
- @Consumes("application/json")
- @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.getActiveInstances(cartridgeType, subscriptionAlias, getConfigContext()));
- return rb.build();
- }
-
- @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("subscriptionAlias") String subscriptionAlias,
- SubscriptionDomainRequest request) throws RestAPIException {
- StratosApiV41Utils.addSubscriptionDomains(getConfigContext(), subscriptionAlias, request);
- return Response.noContent().build();
- }
-
- @GET
- @Path("/subscriptions/{subscriptionAlias}/domains")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/domain")
- public Response getSubscriptionDomains(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
-
- SubscriptionDomainBean[] subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomains(getConfigContext(), 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("/subscriptions/{subscriptionAlias}/domains/{domainName}")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/domain")
- public Response getSubscriptionDomain(@PathParam("subscriptionAlias") String subscriptionAlias, @PathParam("domainName") String domainName) throws RestAPIException {
-
- SubscriptionDomainBean subscriptionDomainBean = StratosApiV41Utils.getSubscriptionDomain(getConfigContext(), 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("subscriptionAlias") String subscriptionAlias,
- @PathParam("domainName") String domainName) throws RestAPIException {
- try {
- StratosApiV41Utils.removeSubscriptionDomain(getConfigContext(), subscriptionAlias, domainName);
- } catch (DomainMappingExistsException e) {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- return Response.noContent().build();
- }
- */
-
// API methods for clusters
@GET
@@ -777,7 +670,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/cluster")
- public Response getClustersOfTenant() throws RestAPIException {
+ public Response getClustersForTenant() throws RestAPIException {
return Response.ok().entity(StratosApiV41Utils.getClustersForTenant(getConfigContext())).build();
}
@@ -786,31 +679,19 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/cluster")
- public Response getClustersOfCartridge(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+ public Response getClustersForCartridge(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
ResponseBuilder rb = Response.ok();
rb.entity(StratosApiV41Utils.getClustersForTenantAndCartridgeType(getConfigContext(), cartridgeType));
return rb.build();
}
- /*
- @GET
- @Path("/clusters/{subscriptionAlias}")
- @Produces("application/json")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/cluster")
- public Response getClusterOfSubscription(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
- ResponseBuilder rb = Response.ok();
- rb.entity(StratosApiV41Utils.getCluster(subscriptionAlias, getConfigContext()));
- return rb.build();
- }*/
-
@GET
@Path("/clusters/{clusterId}")
@Produces("application/json")
@Consumes("application/json")
@AuthorizationAction("/permission/admin/manage/view/cluster")
- public Response getCluster(@PathParam("clusterId") String clusterId) throws RestAPIException {
+ public Response getClusterForTenant(@PathParam("clusterId") String clusterId) throws RestAPIException {
Cluster cluster = null;
if (log.isDebugEnabled()) {
log.debug("Finding cluster for [id]: " + clusterId);
@@ -831,26 +712,6 @@ public class StratosApiV41 extends AbstractApi {
return Response.ok().entity(cluster).build();
}
- /*
- @GET
- @Path("/clusters/{subscriptionAlias}/loadBalancer")
- @Consumes("application/json")
- @AuthorizationAction("/permission/admin/manage/view/cluster")
- public Response getLoadBalancerCluster(@PathParam("subscriptionAlias") String subscriptionAlias) throws RestAPIException {
- if (log.isDebugEnabled()) {
- log.debug(String.format("GET /subscription/%s/load-balancer-cluster", 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();
- }*/
-
// API methods for tenants
/**
@@ -866,7 +727,7 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@AuthorizationAction("/permission/protected/manage/modify/tenants")
@SuperTenantService(true)
- public Response addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
+ public Response createTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
try {
CommonUtil.validateEmail(tenantInfoBean.getEmail());
} catch (Exception e) {
@@ -1110,10 +971,10 @@ public class StratosApiV41 extends AbstractApi {
@Produces("application/json")
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
@SuperTenantService(true)
- public TenantInfoBean getTenantByDomain(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+ public TenantInfoBean getTenantForDomain(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
try {
- return getTenantForDomain(tenantDomain);
+ return getTenantByDomain(tenantDomain);
} catch (Exception e) {
String msg = "Error in getting tenant information for tenant " + tenantDomain;
log.error(msg, e);
@@ -1121,7 +982,7 @@ public class StratosApiV41 extends AbstractApi {
}
}
- private TenantInfoBean getTenantForDomain(String tenantDomain) throws Exception {
+ private TenantInfoBean getTenantByDomain(String tenantDomain) throws Exception {
TenantManager tenantManager = ServiceHolder.getTenantManager();
@@ -1299,7 +1160,7 @@ public class StratosApiV41 extends AbstractApi {
* @return the response
* @throws RestAPIException the rest api exception
*/
- @POST
+ @PUT
@Path("/tenants/activate/{tenantDomain}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/modify/tenants")
@@ -1343,7 +1204,7 @@ public class StratosApiV41 extends AbstractApi {
* @return the response
* @throws RestAPIException the rest api exception
*/
- @POST
+ @PUT
@Path("/tenants/deactivate/{tenantDomain}")
@Consumes("application/json")
@AuthorizationAction("/permission/protected/manage/modify/tenants")
@@ -1426,7 +1287,7 @@ public class StratosApiV41 extends AbstractApi {
@Consumes("application/json")
@Produces("application/json")
@AuthorizationAction("/permission/admin/manage/add/users")
- public Response addUser(UserInfoBean userInfoBean) throws RestAPIException {
+ public Response createUser(UserInfoBean userInfoBean) throws RestAPIException {
StratosUserManager stratosUserManager = new StratosUserManager();
@@ -1740,4 +1601,4 @@ public class StratosApiV41 extends AbstractApi {
return Response.noContent().build();
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/baa034d1/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 4fdfb3c..90dc62b 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -96,8 +96,9 @@ public class StratosApiV41Utils {
private static CartridgeSubscriptionManager cartridgeSubsciptionManager = new CartridgeSubscriptionManager();
private static ServiceGroupingManager serviceGropingManager = new ServiceGroupingManager();
private static ServiceDeploymentManager serviceDeploymentManager = new ServiceDeploymentManager();
- private static PersistenceManager persistenceManager = new RegistryBasedPersistenceManager();
+ // Util methods for cartridges
+
public static void createCartridgeDefinition(CartridgeDefinitionBean cartridgeDefinitionBean, ConfigurationContext ctxt,
String userName, String tenantDomain) throws RestAPIException {
@@ -224,18 +225,6 @@ public class StratosApiV41Utils {
throw new RestAPIException(msg);
}
- /*private static Cartridge getAvailableCartridgeInfo(String cartridgeType, Boolean multiTenant, ConfigurationContext configurationContext) throws RestAPIException {
- List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant, configurationContext);
- for (Cartridge cartridge : cartridges) {
- if (cartridge.getCartridgeType().equals(cartridgeType)) {
- return cartridge;
- }
- }
- String msg = "Unavailable cartridge type: " + cartridgeType;
- log.error(msg);
- throw new RestAPIException(msg);
- }*/
-
private static List<Cartridge> getAvailableLbCartridges(Boolean multiTenant,
ConfigurationContext configurationContext) throws RestAPIException {
List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant,
@@ -262,9 +251,6 @@ public class StratosApiV41Utils {
log.debug("Getting available cartridges. Privider name : " + provider );
}
- boolean allowMultipleSubscription = new Boolean(
- System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
try {
@@ -703,32 +689,6 @@ public class StratosApiV41Utils {
return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
}
- /*public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
- getDeploymentPolicies(String cartridgeType) throws RestAPIException {
-
- DeploymentPolicy[] deploymentPolicies = null;
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- try {
- deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies(cartridgeType);
-
- } catch (RemoteException e) {
- String errorMsg = "Error while getting available deployment policies for cartridge type " +
- cartridgeType + ". Cause: " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
- }
- }
-
- if (deploymentPolicies.length == 0) {
- String errorMsg = "Cannot find any matching deployment policy for Cartridge [type] " + cartridgeType;
- log.error(errorMsg);
- throw new RestAPIException(errorMsg);
- }
-
- return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
- }*/
-
public static org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
@@ -776,93 +736,6 @@ public class StratosApiV41Utils {
}
// Util methods for services and subscriptions
-
- /*public static List<ServiceDefinitionBean> getdeployedServiceInformation() throws RestAPIException {
-
- Collection<Service> services = null;
-
- try {
- services = serviceDeploymentManager.getServices();
-
- } catch (ADCException e) {
- String msg = "Unable to get deployed service information. Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
-
- if (services != null && !services.isEmpty()) {
- return PojoConverter.convertToServiceDefinitionBeans(services);
- }
-
- return null;
- }*/
-
- /*public static ServiceDefinitionBean getDeployedServiceInformation(String type) throws RestAPIException {
-
- Service service = null;
-
- try {
- service = serviceDeploymentManager.getService(type);
-
- } catch (ADCException e) {
- String msg = "Unable to get deployed service information for [type]: " + type + ". Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
-
- if (service == null) {
- return null;
- } else {
- return PojoConverter.convertToServiceDefinitionBean(service);
- }
- }*/
-
- /*public static List<Cartridge> getActiveDeployedServiceInformation(ConfigurationContext configurationContext) throws RestAPIException {
-
- Collection<Service> services = null;
-
- try {
- services = serviceDeploymentManager.getServices();
-
- } catch (ADCException e) {
- String msg = "Unable to get deployed service information. Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
-
- List<Cartridge> availableMultitenantCartridges = new ArrayList<Cartridge>();
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- //getting the services for the tenantId
- for (Service service : services) {
- String tenantRange = service.getTenantRange();
- if (tenantRange.equals(TENANT_RANGE_ALL)) {
- //check whether any active instances found for this service in the Topology
-
- Cluster cluster = TopologyManager.getTopology().getService(service.getType()).
- getCluster(service.getClusterId());
- boolean activeMemberFound = false;
- for (Member member : cluster.getMembers()) {
- if (member.isActive()) {
- activeMemberFound = true;
- break;
- }
- }
- if (activeMemberFound) {
- availableMultitenantCartridges.add(getAvailableCartridgeInfo(null, true, configurationContext));
- }
- } else {
- //TODO have to check for the serivces which has correct tenant range
- }
- }
-
-// if (availableMultitenantCartridges.isEmpty()) {
-// String msg = "Cannot find any active deployed service for tenant [id] "+tenantId;
-// log.error(msg);
-// throw new RestAPIException(msg);
-// }
-
- return availableMultitenantCartridges;
- }*/
public static List<Cartridge> getSubscriptions(String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
List<Cartridge> cartridges = new ArrayList<Cartridge>();
@@ -940,60 +813,7 @@ public class StratosApiV41Utils {
return cartridges;
}
-
- /*static Cartridge getSubscription(String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
-
- Cartridge cartridge = getCartridgeFromSubscription(CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.
- getTenantId(configurationContext), cartridgeAlias));
-
- if (cartridge == null) {
- String message = "Unregistered [alias]: " + cartridgeAlias + "! Please enter a valid alias.";
- log.error(message);
- throw new RestAPIException(Response.Status.NOT_FOUND, message);
- }
- Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext),
- cartridge.getCartridgeAlias());
- String cartridgeStatus = "Inactive";
- int activeMemberCount = 0;
-
- // cluster might not be created yet, so need to check
- if (cluster != null) {
- Collection<Member> members = cluster.getMembers();
- if (members != null) {
- for (Member member : members) {
- if (member.isActive()) {
- cartridgeStatus = "Active";
- activeMemberCount++;
- }
- }
- }
- }
-
- cartridge.setActiveInstances(activeMemberCount);
- cartridge.setStatus(cartridgeStatus);
- return cartridge;
-
- }*/
-
- /*static int getActiveInstances(String cartridgeType, String cartridgeAlias, ConfigurationContext configurationContext) throws RestAPIException {
- int noOfActiveInstances = 0;
- Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext),
- cartridgeAlias);
-
- if (cluster == null) {
- String message = "No Cluster found for cartridge [type] " + cartridgeType + ", [alias] " + cartridgeAlias;
- log.error(message);
- throw new RestAPIException(message);
- }
-
- for (Member member : cluster.getMembers()) {
- if (member.getStatus().toString().equals(MemberStatus.Activated)) {
- noOfActiveInstances++;
- }
- }
- return noOfActiveInstances;
- }*/
-
+
private static Cartridge getCartridgeFromSubscription(CartridgeSubscription subscription) throws RestAPIException {
if (subscription == null) {
@@ -1061,210 +881,9 @@ public class StratosApiV41Utils {
public static CartridgeSubscription getCartridgeSubscription(String alias, ConfigurationContext configurationContext) {
return CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.getTenantId(configurationContext), alias);
}
-
- /*static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, ConfigurationContext configurationContext, String tenantUsername, String tenantDomain)
- throws RestAPIException {
-
- SubscriptionData subscriptionData = new SubscriptionData();
- subscriptionData.setCartridgeType(cartridgeInfoBean.getCartridgeType());
- subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim());
- subscriptionData.setAutoscalingPolicyName(cartridgeInfoBean.getAutoscalePolicy());
- subscriptionData.setDeploymentPolicyName(cartridgeInfoBean.getDeploymentPolicy());
- subscriptionData.setTenantDomain(tenantDomain);
- subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
- subscriptionData.setTenantAdminUsername(tenantUsername);
- subscriptionData.setRepositoryType("git");
- subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL());
- subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoUsername());
- subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
- subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
- subscriptionData.setServiceGroup(cartridgeInfoBean.getServiceGroup());
-
- PersistenceBean persistenceBean = cartridgeInfoBean.getPersistence();
- if (persistenceBean != null) {
- subscriptionData.setPersistence(PojoConverter.getPersistence(persistenceBean));
- }
- if (cartridgeInfoBean.getProperty() != null) {
- subscriptionData.setProperties(PojoConverter.getProperties(cartridgeInfoBean.getProperty()));
- }
-
-
-// if (cartridgeInfoBean.isPersistanceRequired()) {
-// if (cartridgeInfoBean.getPersistence() != null) {
-// // Add persistence related properties to PersistenceContext
-// PersistenceContext persistenceContext = new PersistenceContext();
-// persistenceContext.setPersistanceRequiredProperty(IS_VOLUME_REQUIRED, String.valueOf(cartridgeInfoBean.isPersistanceRequired()));
-// persistenceContext.setSizeProperty(VOLUME_SIZE, cartridgeInfoBean.getSize());
-// persistenceContext.setDeleteOnTerminationProperty(SHOULD_DELETE_VOLUME, String.valueOf(cartridgeInfoBean.isRemoveOnTermination()));
-// if(cartridgeInfoBean.getVolumeId() != null) {
-// persistenceContext.setVolumeIdProperty(VOLUME_ID, String.valueOf(cartridgeInfoBean.getVolumeId()));
-// }
-// subscriptionData.setPersistanceCtxt(persistenceContext);
-// }
-
- //subscribe
- SubscriptionInfo subscriptionInfo = null;
- try {
- subscriptionInfo = CartridgeSubscriptionManager.subscribeToCartridgeWithProperties(subscriptionData);
- } catch (Exception e) {
- throw new RestAPIException(e.getMessage(), e);
- }
-
- return subscriptionInfo;
- }*/
-
- /*static void unsubscribe(String alias, String tenantDomain) throws RestAPIException {
-
- try {
- cartridgeSubsciptionManager.unsubscribeFromCartridge(tenantDomain, alias);
-
- } catch (ADCException e) {
- String msg = "Failed to unsubscribe from [alias] " + alias + ". Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
-
- } catch (NotSubscribedException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }*/
-
- /**
- * Super tenant will deploy multitenant service.
- * <p/>
- * get domain , subdomain as well..
- *
- * @param clusterDomain
- * @param clusterSubdomain
- */
- /*static void deployService(String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy,
- String tenantDomain, String tenantUsername, int tenantId, String clusterDomain, String clusterSubdomain, String tenantRange, boolean isPublic) throws RestAPIException {
- log.info("Deploying service..");
- try {
- serviceDeploymentManager.deployService(cartridgeType, autoscalingPolicy, deploymentPolicy, tenantId, tenantRange, tenantDomain, tenantUsername, isPublic);
-
- } catch (Exception e) {
- String msg = String.format("Failed to deploy the Service [Cartridge type] %s [alias] %s . Cause: %s", cartridgeType, alias, e.getMessage());
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
- }*/
-
- /*static void undeployService(String serviceType) throws RestAPIException, ServiceDoesNotExistException {
-
- try {
- serviceDeploymentManager.undeployService(serviceType);
- } catch (ServiceDoesNotExistException ex) {
- throw ex;
- } catch (Exception e) {
- String msg = "Failed to undeploy service cluster definition of type " + serviceType + " Cause: " + e.getMessage();
- log.error(msg, e);
- throw new RestAPIException(msg, e);
- }
- }*/
-
- /*public static void addSubscriptionDomains(ConfigurationContext configurationContext,
- String subscriptionAlias,
- SubscriptionDomainRequest request)
- throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
-
- for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
- boolean isDomainExists = isSubscriptionDomainExists(configurationContext, subscriptionAlias, subscriptionDomain.domainName);
- if (isDomainExists) {
- String message = "Subscription domain " + subscriptionDomain.domainName + " exists";
- throw new RestAPIException(Status.INTERNAL_SERVER_ERROR, message);
- }
- }
-
- for (org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean subscriptionDomain : request.domains) {
-
- CartridgeSubscriptionManager.addSubscriptionDomain(tenantId, subscriptionAlias,
- subscriptionDomain.domainName, subscriptionDomain.applicationContext);
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }*/
-
- /*public static boolean isSubscriptionDomainExists(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
- subscriptionAlias, domain));
-
- if (subscriptionDomain.domainName != null) {
- return true;
- } else {
- return false;
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }*/
-
- /*public static List<SubscriptionDomainBean> getSubscriptionDomains(ConfigurationContext configurationContext,
- String subscriptionAlias) throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- return PojoConverter.populateSubscriptionDomainPojos(CartridgeSubscriptionManager.getSubscriptionDomains(tenantId, subscriptionAlias));
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }*/
-
- /*public static SubscriptionDomainBean getSubscriptionDomain(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException {
- try {
- int tenantId = ApplicationManagementUtil
- .getTenantId(configurationContext);
- SubscriptionDomainBean subscriptionDomain = PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
- subscriptionAlias, domain));
-
- if (subscriptionDomain == null) {
- String message = "Could not find a subscription for [domain] " + domain + " and [alias] " + subscriptionAlias;
- log.error(message);
- throw new RestAPIException(Status.NOT_FOUND, message);
- }
-
- return subscriptionDomain;
-
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
- }*/
-
- /*public static void removeSubscriptionDomain(ConfigurationContext configurationContext,
- String subscriptionAlias, String domain) throws RestAPIException, DomainMappingExistsException {
- try {
- int tenantId = ApplicationManagementUtil.getTenantId(configurationContext);
- CartridgeSubscriptionManager.removeSubscriptionDomain(tenantId, subscriptionAlias, domain);
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- }
-
- }*/
-
+
// Util methods for clusters
- /*public static org.apache.stratos.rest.endpoint.bean.topology.Cluster getCluster(String subscriptionAlias, ConfigurationContext configurationContext) throws RestAPIException {
-
- Cluster cluster = TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext),
- subscriptionAlias);
- if (cluster == null) {
- throw new RestAPIException("No matching cluster found for [alias] " + subscriptionAlias);
- } else {
- return PojoConverter.populateClusterPojos(cluster, null);
- }
- }*/
-
public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] getClustersForTenant(ConfigurationContext configurationContext) {
Set<Cluster> clusterSet = TopologyClusterInformationModel.getInstance().getClusters(ApplicationManagementUtil.
@@ -1298,68 +917,6 @@ public class StratosApiV41Utils {
}
- /*public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] getClustersForCartridgeType(String cartridgeType) {
-
- Set<Cluster> clusterSet = TopologyClusterInformationModel
- .getInstance()
- .getClusters(cartridgeType);
- List<org.apache.stratos.rest.endpoint.bean.topology.Cluster> clusters = new ArrayList<org.apache.stratos.rest.endpoint.bean.topology.Cluster>();
- for (Cluster cluster : clusterSet) {
- clusters.add(PojoConverter.populateClusterPojos(cluster, null));
- }
- org.apache.stratos.rest.endpoint.bean.topology.Cluster[] arrCluster = new org.apache.stratos.rest.endpoint.bean.topology.Cluster[clusters
- .size()];
- arrCluster = clusters.toArray(arrCluster);
- return arrCluster;
-
- }*/
-
- // return the cluster id for the lb. This is a temp fix.
- /*private static String subscribeToLb(String cartridgeType, String loadBalancedCartridgeType, String lbAlias,
- String defaultAutoscalingPolicy, String deploymentPolicy,
- ConfigurationContext configurationContext, String userName, String tenantDomain, Property[] props) throws ADCException {
-
- CartridgeSubscription cartridgeSubscription;
-
- try {
- if(log.isDebugEnabled()) {
- log.debug("Subscribing to a load balancer [cartridge] "+cartridgeType+" [alias] "+lbAlias);
- }
-
- SubscriptionData subscriptionData = new SubscriptionData();
- subscriptionData.setCartridgeType(cartridgeType);
- subscriptionData.setCartridgeAlias(lbAlias.trim());
- subscriptionData.setAutoscalingPolicyName(defaultAutoscalingPolicy);
- subscriptionData.setDeploymentPolicyName(deploymentPolicy);
- subscriptionData.setTenantDomain(tenantDomain);
- subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
- subscriptionData.setTenantAdminUsername(userName);
- subscriptionData.setRepositoryType("git");
- //subscriptionData.setPayloadProperties(props);
- subscriptionData.setPrivateRepository(false);
-
- cartridgeSubscription =
- cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
-
- //set a payload parameter to indicate the load balanced cartridge type
- cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", loadBalancedCartridgeType);
-
- Properties lbProperties = new Properties();
- lbProperties.setPayloadProperties(props);
- cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription, lbProperties);
-
- if(log.isDebugEnabled()) {
- log.debug("Successfully subscribed to a load balancer [cartridge] "+cartridgeType+" [alias] "+lbAlias);
- }
- } catch (Exception e) {
- String msg = "Error while subscribing to load balancer cartridge [type] "+cartridgeType+". Cause: "+e.getMessage();
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
-
- return cartridgeSubscription.getClusterDomain();
- } */
-
// Util methods for repo actions
public static void getGitRepositoryNotification(Payload payload) throws RestAPIException {
@@ -1444,35 +1001,6 @@ public class StratosApiV41Utils {
// Util methods for Applications
- /*public static void createApplication (ApplicationDefinition appDefinition) throws RestAPIException {
-
- try {
- if (persistenceManager.getApplication(appDefinition.getApplicationId()) != null) {
- String errorMsg = "Application Definition with id " + appDefinition.getApplicationId() +
- " already exists";
- log.error(errorMsg);
- throw new RestAPIException(errorMsg);
- }
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
-
- try {
- persistenceManager.createApplication(appDefinition);
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
- }*/
-
- /*public static void deleteApplication (String appId) throws RestAPIException {
-
- try {
- persistenceManager.removeApplication(appId);
- } catch (PersistenceManagerException e) {
- throw new RestAPIException(e);
- }
- }*/
-
public static void createApplicationDefinition(ApplicationDefinition appDefinition, ConfigurationContext ctxt,
String userName, String tenantDomain)
throws RestAPIException {
@@ -1548,7 +1076,6 @@ public class StratosApiV41Utils {
}
}
-
public static ApplicationSubscription getApplicationSubscriptions(String appId, ConfigurationContext ctxt) throws RestAPIException {
CartridgeSubscriptionManager subscriptionMgr = new CartridgeSubscriptionManager();
try {
@@ -1563,7 +1090,6 @@ public class StratosApiV41Utils {
try {
int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
- //CloudControllerServiceClient.getServiceClient().undeployApplicationDefinition(appId, tenantId, tenantDomain);
AutoscalerServiceClient.getServiceClient().undeployApplication(appId, tenantId, tenantDomain);
} catch (RemoteException e) {
@@ -1663,7 +1189,6 @@ public class StratosApiV41Utils {
private static void addClustersToGroupBean(Group group, GroupBean groupBean) {
Map<String, ClusterDataHolder> clustersDatamap = group.getClusterDataMap();
for (Map.Entry<String, ClusterDataHolder> x : clustersDatamap.entrySet()) {
- String alias = x.getKey();
ClusterDataHolder clusterHolder = x.getValue();
Cluster topLevelCluster = TopologyManager.getTopology().getService(clusterHolder.getServiceType()).getCluster(clusterHolder.getClusterId());
groupBean.addCluster(PojoConverter.populateClusterPojos(topLevelCluster, null));