You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/10/20 14:20:32 UTC
[3/4] git commit: getapplicationinfo rest api
getapplicationinfo rest api
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6804f41a
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6804f41a
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6804f41a
Branch: refs/heads/4.0.0-grouping
Commit: 6804f41ae45cf3d59a8216543cbecb8e14fb7aeb
Parents: ca43f8d
Author: Udara Liyanage <ud...@wso2.com>
Authored: Mon Oct 20 17:43:39 2014 +0530
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Mon Oct 20 17:43:39 2014 +0530
----------------------------------------------------------------------
.../autoscaler/monitor/group/GroupMonitor.java | 1 -
.../rest/endpoint/bean/ApplicationBean.java | 6 ++++
.../stratos/rest/endpoint/bean/GroupBean.java | 31 ++++++++++++++++++--
.../rest/endpoint/bean/topology/Cluster.java | 2 +-
.../rest/endpoint/services/ServiceUtils.java | 24 ++++++++++++++-
.../rest/endpoint/services/StratosAdmin.java | 6 +++-
6 files changed, 63 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
index 20dd003..5129e34 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
@@ -91,7 +91,6 @@ public class GroupMonitor extends ParentComponentMonitor implements EventHandler
log.error(e);
}
} else if (status1 == ClusterStatus.Inactive || status1 == GroupStatus.Inactive) {
-
//TODO if C1 depends on C2, then if C2 is in_active, then by getting killdepend as C1 and
//TODO need to send in_active for c1. When C1 in_active receives, get dependent and
//TODO check whether dependent in_active. Then kill c1.
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/ApplicationBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/ApplicationBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/ApplicationBean.java
index 024664b..dbcbe9c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/ApplicationBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/ApplicationBean.java
@@ -1,16 +1,22 @@
package org.apache.stratos.rest.endpoint.bean;
+import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
+
+import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
/**
* Created by udara on 10/17/14.
*/
+@XmlRootElement(name="applications")
public class ApplicationBean {
public List<GroupBean> groups = null;
+ public List<Cluster> clusters = null;
public String id;
public ApplicationBean(){
this.groups = new ArrayList<GroupBean>();
+ this.clusters = new ArrayList<Cluster>();
}
public void addGroup(GroupBean groupBean) {
this.groups.add(groupBean);
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/GroupBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/GroupBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/GroupBean.java
index 77736bd..b79265c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/GroupBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/GroupBean.java
@@ -18,18 +18,43 @@
*/
package org.apache.stratos.rest.endpoint.bean;
+import org.apache.stratos.rest.endpoint.bean.topology.Cluster;
+
+import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
+@XmlRootElement(name="groups")
public class GroupBean {
- List<GroupBean> subGroups = null;
+ private List<GroupBean> subGroups = null;
+ private List<Cluster> clusters = null;
public String alias;
public GroupBean(){
- this.subGroups = new ArrayList<GroupBean>();
+ this.setClusters(new ArrayList<Cluster>());
+ this.setSubGroups(new ArrayList<GroupBean>());
}
public void addGroup(GroupBean groupBean){
- subGroups.add(groupBean);
+ getSubGroups().add(groupBean);
+ }
+ public void addCluster(Cluster cluster){
+ getClusters().add(cluster);
+ }
+
+ public List<GroupBean> getSubGroups() {
+ return subGroups;
+ }
+
+ public void setSubGroups(List<GroupBean> subGroups) {
+ this.subGroups = subGroups;
+ }
+
+ public List<Cluster> getClusters() {
+ return clusters;
+ }
+
+ public void setClusters(List<Cluster> clusters) {
+ this.clusters = clusters;
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/topology/Cluster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/topology/Cluster.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/topology/Cluster.java
index 6b8af54..f2e5d73 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/topology/Cluster.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/topology/Cluster.java
@@ -21,7 +21,7 @@ package org.apache.stratos.rest.endpoint.bean.topology;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;
-@XmlRootElement
+@XmlRootElement(name="clusters")
public class Cluster {
@Override
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index e29fb4c..ff357b6 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -52,6 +52,8 @@ import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel
import org.apache.stratos.manager.utils.ApplicationManagementUtil;
import org.apache.stratos.manager.utils.CartridgeConstants;
import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.Member;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import org.apache.stratos.messaging.util.Constants;
import org.apache.stratos.rest.endpoint.bean.ApplicationBean;
@@ -66,6 +68,7 @@ import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBea
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
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.*;
import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
@@ -1591,6 +1594,7 @@ public class ServiceUtils {
ClusterDataHolder clusterDataHolder = entry.getValue();
String clusterId = clusterDataHolder.getClusterId();
Cluster topLevelCluster = TopologyManager.getTopology().getService(clusterDataHolder.getServiceType()).getCluster(clusterId);
+ applicationBean.clusters.add(toClusterBean(topLevelCluster));
}
Collection<Group> groups = application.getGroups();
@@ -1600,18 +1604,30 @@ public class ServiceUtils {
applicationBean.addGroup(groupBean);
}
TopologyManager.releaseReadLock();
- return null;
+ return applicationBean;
}
private static void setSubGroups(Group group, GroupBean groupBean) {
Collection<Group> subgroups = group.getGroups();
+ addClustersToGroupBean(group, groupBean);
for(Group subGroup : subgroups){
GroupBean subGroupBean = toGroupBean(subGroup);
+
setSubGroups(subGroup, subGroupBean);
groupBean.addGroup(subGroupBean);
}
}
+ 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(toClusterBean(topLevelCluster));
+ }
+ }
+
private static GroupBean toGroupBean(Group group) {
GroupBean groupBean = new GroupBean();
groupBean.alias = group.getUniqueIdentifier();
@@ -1623,4 +1639,10 @@ public class ServiceUtils {
applicationBean.id = application.getUniqueIdentifier();
return applicationBean;
}
+
+ private static org.apache.stratos.rest.endpoint.bean.topology.Cluster toClusterBean(Cluster cluster){
+ org.apache.stratos.rest.endpoint.bean.topology.Cluster clusterBean = new org.apache.stratos.rest.endpoint.bean.topology.Cluster();
+ clusterBean.serviceName=cluster.getServiceName();
+ return clusterBean;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/6804f41a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 668f9d6..fe4a696 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -456,7 +456,11 @@ public class StratosAdmin extends AbstractAdmin {
@AuthorizationAction("/permission/protected/manage/monitor/tenants")
public Response getApplicationInfo(@PathParam("appId") String applicationId) throws RestAPIException {
Object application = ServiceUtils.getApplicationInfo(applicationId, getConfigContext());
- return Response.status(Response.Status.NOT_FOUND).build();
+ if(application == null) {
+ return Response.status(Response.Status.NOT_FOUND).build();
+ }else{
+ return Response.ok().entity(application).build();
+ }
}
@GET