Updated Branches: refs/heads/master 9b1bd2c51 -> 263e2f75c
Fixing public ip issue not getting set in InstanceSpawnedMessageProcessor. Modify CLI output to remove table structures for some commands. Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/3ac05f5b Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/3ac05f5b Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/3ac05f5b Branch: refs/heads/master Commit: 3ac05f5be898e52b64379e08286b76e6a8b689fc Parents: 989be9c Author: Sajith Kariyawasam <[email protected]> Authored: Wed Feb 5 18:55:56 2014 +0530 Committer: Sajith Kariyawasam <[email protected]> Committed: Wed Feb 5 18:55:56 2014 +0530 ---------------------------------------------------------------------- .../stratos/cli/RestCommandLineService.java | 160 +++++++------------ .../stratos/cli/beans/cartridge/Cartridge.java | 9 ++ .../controller/topology/TopologyBuilder.java | 2 +- .../topology/TopologyEventPublisher.java | 5 +- .../StratosManagerTopologyReceiver.java | 39 +++++ .../event/topology/InstanceSpawnedEvent.java | 19 +++ .../InstanceSpawnedMessageProcessor.java | 2 + .../rest/endpoint/services/StratosAdmin.java | 1 + 8 files changed, 137 insertions(+), 100 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java index 4b87d8b..8456e71 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java @@ -444,50 +444,36 @@ public class RestCommandLineService { final Set<String> lbFloatingIpSet = lbIpMap.get("floating"); Cartridge[] cartridges = new Cartridge[1]; cartridges[0] = cartridge; - - RowMapper<Cartridge> cartridgeMapper = new RowMapper<Cartridge>() { - - public String[] getData(Cartridge cartridge) { - - String[] data = lbFloatingIpSet != null ? new String[13] : new String[12]; - data[0] = cartridge.getCartridgeType(); - data[1] = cartridge.getDisplayName(); - data[2] = cartridge.getVersion(); - data[3] = cartridge.isMultiTenant() ? "Multi-Tenant" : "Single-Tenant"; - data[4] = cartridge.getCartridgeAlias(); - data[5] = cartridge.getStatus(); - data[6] = cartridge.isMultiTenant() ? "N/A" : String.valueOf(cartridge.getActiveInstances()); - data[7] = getAccessURLs(cartridge); - data[8] = cartridge.getRepoURL() != null ? cartridge.getRepoURL() : ""; - data[9] = lbPrivateIpSet.toString(); - if (lbFloatingIpSet != null) { - data[10] = lbFloatingIpSet.toString(); - } - data[11] = cartridge.getDbUserName(); - data[12] = cartridge.getPassword(); - return data; - } - }; - - List<String> headers = new ArrayList<String>(); - headers.add("Type"); - headers.add("Name"); - headers.add("Version"); - headers.add("Tenancy Model"); - headers.add("Alias"); - headers.add("Status"); - headers.add("Running Instances"); - headers.add("Access URL(s)"); - headers.add("Repo URL"); - headers.add("LB Private Ip"); + + + System.out.println("\nSubscribed Cartridges Info :"); + System.out.println("\tType : " + cartridge.getCartridgeType()); + System.out.println("\tName : " + cartridge.getDisplayName()); + System.out.println("\tVersion : " + cartridge.getVersion()); + String tenancy = cartridge.isMultiTenant() ? "Multi-Tenant" : "Single-Tenant"; + System.out.println("\tTenancy Model : " + tenancy); + System.out.println("\tAlias : " + cartridge.getCartridgeAlias()); + System.out.println("\tStatus : " + cartridge.getStatus()); + String instanceCount = cartridge.isMultiTenant() ? "N/A" : String.valueOf(cartridge.getActiveInstances()); + System.out.println("\tRunning Instances : " + instanceCount); + System.out.println("\tAccess URL(s) : " + getAccessURLs(cartridge)); + if (cartridge.getRepoURL() != null) { + System.out.println("\tRepo URL : " + cartridge.getRepoURL()); + } + System.out.println("\tLB Private ip : " + lbPrivateIpSet.toString()); if (lbFloatingIpSet != null) { - headers.add("LB Floating Ip"); + System.out.println("\tLB Floating Ip : " + lbFloatingIpSet.toString()); } - headers.add("DB username"); - headers.add("DB password"); - - System.out.println("Subscribed Cartridges Info ************ : [TODO database info]"); - CommandLineUtils.printTable(cartridges, cartridgeMapper, headers.toArray(new String[headers.size()])); + if (cartridge.getProvider().equals("data")) { + System.out.println("\tDB-username : " +cartridge.getDbUserName()); + System.out.println("\tDB-password : " +cartridge.getPassword()); + System.out.println("\tDB-HostIP (private) : " +cartridge.getIp()); + if (cartridge.getPublicIp() != null) { + System.out.println("\tDB-HostIP (floating) : " + + cartridge.getPublicIp()); + } + } + //CommandLineUtils.printTable(cartridges, cartridgeMapper, headers.toArray(new String[headers.size()])); System.out.println(); } catch (Exception e) { handleException("Exception in listing subscribe cartridges", e); @@ -508,6 +494,8 @@ public class RestCommandLineService { for (Member member : members) { lbClusterIdSet.add(member.getLbClusterId()); + cartridge.setIp(member.getMemberIp()); + cartridge.setPublicIp(member.getMemberPublicIp()); } // Invoke cluster/{clusterId} @@ -553,36 +541,24 @@ public class RestCommandLineService { return; } - RowMapper<Member> memberMapper = new RowMapper<Member>() { - - public String[] getData(Member member) { - String[] data = new String[8]; - data[0] = member.getServiceName(); - data[1] = member.getClusterId(); - data[2] = member.getNetworkPartitionId(); - data[3] = member.getPartitionId(); - data[4] = member.getMemberIp(); - data[5] = member.getStatus().toString(); - data[6] = member.getLbClusterId() != null ? member.getLbClusterId() : ""; - data[7] = member.getMemberPublicIp().toString(); - return data; - } - }; - - List<String> headers = new ArrayList<String>(); - headers.add("ServiceName"); - headers.add("ClusterId"); - headers.add("NewtworkPartitionId"); - headers.add("PartitionId"); - headers.add("MemberIp"); - headers.add("Status"); - headers.add("LBCluster"); - headers.add("MemberPublicIp"); - - System.out.println("List of members in the [cluster]: " + alias); - CommandLineUtils.printTable(members, memberMapper, headers.toArray(new String[headers.size()])); - System.out.println("List of LB members for the [cluster]: " + "TODO" ); + System.out.println("\nList of members in the [cluster]: " + alias); + for (Member member : members) { + System.out.println("\n\tServiceName : "+member.getServiceName()); + System.out.println("\tClusterId : "+member.getClusterId()); + System.out.println("\tNewtworkPartitionId : "+member.getNetworkPartitionId()); + System.out.println("\tPartitionId : "+member.getPartitionId()); + System.out.println("\tStatus : "+member.getStatus()); + if(member.getLbClusterId() != null) { + System.out.println("\tLBCluster : "+member.getLbClusterId()); + } + System.out.println("\tMemberPrivateIp : "+member.getMemberIp()); + System.out.println("\tMemberFloatingIp : "+member.getMemberPublicIp()); + System.out.println("\t-----------------------"); + } + //CommandLineUtils.printTable(members, memberMapper, headers.toArray(new String[headers.size()])); + System.out.println("=================================================="); + System.out.println("List of LB members for the [cluster]: " + alias ); // Invoke cluster/{clusterId} for (Member m : members) { @@ -657,34 +633,22 @@ public class RestCommandLineService { System.out.println("There are no subscribed cartridges"); return; } - - RowMapper<Member> memberMapper = new RowMapper<Member>() { - - public String[] getData(Member member) { - String[] data = new String[8]; - data[0] = member.getServiceName(); - data[1] = member.getClusterId(); - data[2] = member.getNetworkPartitionId(); - data[3] = member.getPartitionId(); - data[4] = member.getMemberIp(); - data[5] = member.getStatus().toString(); - data[6] = member.getLbClusterId() != null ? member.getLbClusterId() : ""; - data[7] = member.getMemberPublicIp().toString(); - return data; - } - }; - - List<String> headers = new ArrayList<String>(); - headers.add("ServiceName"); - headers.add("ClusterId"); - headers.add("NewtworkPartitionId"); - headers.add("PartitionId"); - headers.add("MemberIp"); - headers.add("Status"); - headers.add("LBCluster"); - headers.add("MemberPublicIp"); - CommandLineUtils.printTable(members, memberMapper, headers.toArray(new String[headers.size()])); + for (Member member : members) { + System.out.println("\n\tServiceName : "+member.getServiceName()); + System.out.println("\tClusterId : "+member.getClusterId()); + System.out.println("\tNewtworkPartitionId : "+member.getNetworkPartitionId()); + System.out.println("\tPartitionId : "+member.getPartitionId()); + System.out.println("\tStatus : "+member.getStatus()); + if(member.getLbClusterId() != null) { + System.out.println("\tLBCluster : "+member.getLbClusterId()); + } + System.out.println("\tMemberPrivateIp : "+member.getMemberIp()); + System.out.println("\tMemberFloatingIp : "+member.getMemberPublicIp()); + System.out.println("\t-----------------------"); + } + + //CommandLineUtils.printTable(members, memberMapper, headers.toArray(new String[headers.size()])); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/Cartridge.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/Cartridge.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/Cartridge.java index 976ee72..d5d9825 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/Cartridge.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/Cartridge.java @@ -43,6 +43,7 @@ public class Cartridge implements Comparable<Cartridge> { private String dbUserName; private String mappedDomain; private String dbHost; + private String publicIp; private String[] accessURLs; private PortMapping[] portMappings; @@ -206,6 +207,14 @@ public class Cartridge implements Comparable<Cartridge> { public void setDbHost(String dbHost) { this.dbHost = dbHost; } + + public String getPublicIp() { + return publicIp; + } + + public void setPublicIp(String publicIp) { + this.publicIp = publicIp; + } public int compareTo(Cartridge o) { int compare = 0; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java index 353d15c..f98327b 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java @@ -194,7 +194,7 @@ public class TopologyBuilder { } finally { TopologyManager.releaseWriteLock(); } - TopologyEventPublisher.sendInstanceSpawnedEvent(serviceName, clusterId, networkPartitionId, partitionId, memberId, lbClusterId); + TopologyEventPublisher.sendInstanceSpawnedEvent(serviceName, clusterId, networkPartitionId, partitionId, memberId, lbClusterId, publicIp, privateIp); } public static void handleMemberStarted(InstanceStartedEvent instanceStartedEvent) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java index d88aa47..7a9120a 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java @@ -95,9 +95,12 @@ public class TopologyEventPublisher { } - public static void sendInstanceSpawnedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId, String lbClusterId) { + public static void sendInstanceSpawnedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId, + String lbClusterId, String publicIp, String privateIp) { InstanceSpawnedEvent instanceSpawnedEvent = new InstanceSpawnedEvent(serviceName, clusterId, networkPartitionId, partitionId, memberId); instanceSpawnedEvent.setLbClusterId(lbClusterId); + instanceSpawnedEvent.setMemberIp(privateIp); + instanceSpawnedEvent.setMemberPublicIp(publicIp); if(log.isInfoEnabled()) { log.info(String.format("Publishing instance spawned event: [service] %s [cluster] %s [network-partition] %s [partition] %s [member] %s [lb-cluster-id] %s", serviceName, clusterId, networkPartitionId, partitionId, memberId, lbClusterId)); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java index 128d7bc..e23b2d4 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java @@ -150,6 +150,45 @@ public class StratosManagerTopologyReceiver implements Runnable { } } }); + + + //Instance Spawned event listner + processorChain.addEventListener(new InstanceSpawnedEventListener() { + + @Override + protected void onEvent(Event event) { + + log.info("********** [InstanceSpawnedEventListener] Received: " + event.getClass() + " **********"); + + InstanceSpawnedEvent instanceSpawnedEvent = (InstanceSpawnedEvent) event; + + String clusterDomain = instanceSpawnedEvent.getClusterId(); + Set<CartridgeSubscription> cartridgeSubscriptions = getCartridgeSubscription(clusterDomain); + + if(cartridgeSubscriptions != null) { + + Cluster cluster; + //acquire read lock + TopologyManager.acquireReadLock(); + + try { + for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) { + + cluster = TopologyManager.getTopology(). + getService(cartridgeSubscription.getType()).getCluster(cartridgeSubscription.getClusterDomain()); + + TopologyClusterInformationModel.getInstance().addCluster(cartridgeSubscription.getSubscriber().getTenantId(), + cartridgeSubscription.getType(), cartridgeSubscription.getAlias(), cluster); + } + + } finally { + //release read lock + TopologyManager.releaseReadLock(); + } + } + + } + }); //Member Started event listner processorChain.addEventListener(new MemberStartedEventListener() { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java index 86067dd..f42dda8 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java @@ -34,6 +34,8 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable private final String partitionId; private final String memberId; private String lbClusterId; + private String memberPublicIp; + private String memberIp; public InstanceSpawnedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId) { this.serviceName = serviceName; @@ -70,4 +72,21 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable public void setLbClusterId(String lbClusterId) { this.lbClusterId = lbClusterId; } + + public String getMemberPublicIp() { + return memberPublicIp; + } + + public void setMemberPublicIp(String memberPublicIp) { + this.memberPublicIp = memberPublicIp; + } + + public String getMemberIp() { + return memberIp; + } + + public void setMemberIp(String memberIp) { + this.memberIp = memberIp; + } + } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java index cd106eb..2d8bdc1 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java @@ -112,6 +112,8 @@ public class InstanceSpawnedMessageProcessor extends MessageProcessor { // Apply changes to the topology Member member = new Member(event.getServiceName(), event.getClusterId(), event.getNetworkPartitionId(), event.getPartitionId(), event.getMemberId()); member.setStatus(MemberStatus.Created); + member.setMemberPublicIp(event.getMemberPublicIp()); + member.setMemberIp(event.getMemberIp()); member.setLbClusterId(event.getLbClusterId()); cluster.addMember(member); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ac05f5b/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 c5cc172..8e6f14b 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 @@ -70,6 +70,7 @@ public class StratosAdmin extends AbstractAdmin { @POST @Path("/init") + @AuthorizationAction("/permission/protected/manage/monitor/tenants") public void initialize () throws RestAPIException {
