Repository: stratos Updated Branches: refs/heads/4.0.0-grouping b040c6fe4 -> 217bc5476
changing the correct topic and code formatting Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/217bc547 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/217bc547 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/217bc547 Branch: refs/heads/4.0.0-grouping Commit: 217bc5476e5b1d574b0160ae257af55262f82459 Parents: b040c6f Author: reka <[email protected]> Authored: Thu Sep 25 13:04:04 2014 +0530 Committer: reka <[email protected]> Committed: Thu Sep 25 13:04:04 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/grouping/DependencyBuilder.java | 23 +- .../grouping/topic/StatusEventPublisher.java | 38 +-- .../controller/topology/TopologyBuilder.java | 250 ++----------------- 3 files changed, 50 insertions(+), 261 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/217bc547/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java index afec818..3887fa8 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/DependencyBuilder.java @@ -20,7 +20,6 @@ package org.apache.stratos.autoscaler.grouping; import org.apache.stratos.messaging.domain.topology.*; -import java.util.Collection; import java.util.LinkedList; import java.util.Queue; import java.util.Set; @@ -35,7 +34,7 @@ public class DependencyBuilder { Queue<String> startup = new LinkedList<String>(); DependencyOrder dependencyOrder = component.getDependencyOrder(); - if(dependencyOrder != null) { + if (dependencyOrder != null) { Set<StartupOrder> startupOrderSet = dependencyOrder.getStartupOrders(); for (StartupOrder startupOrder : startupOrderSet) { @@ -62,29 +61,29 @@ public class DependencyBuilder { //TODO adding all the missed groups or clusters as the top child to the list //TODO handle by application and group itself groupName and serviceName - if(component instanceof Application) { - for(Group group: component.getAliasToGroupMap().values()) { - if(!startup.contains("group." + group.getAlias())) { + if (component instanceof Application) { + for (Group group : component.getAliasToGroupMap().values()) { + if (!startup.contains("group." + group.getAlias())) { startup.add("group." + group.getAlias()); } } Set<String> cartridgeAliases = component.getClusterDataMap().keySet(); - for(String carAlias : cartridgeAliases) { - if(!startup.contains("cartridge." + carAlias)) { + for (String carAlias : cartridgeAliases) { + if (!startup.contains("cartridge." + carAlias)) { startup.add("cartridge." + carAlias); } } - } else if(component instanceof Group) { - for(Group group: component.getAliasToGroupMap().values()) { - if(!startup.contains("group." + group.getName())) { + } else if (component instanceof Group) { + for (Group group : component.getAliasToGroupMap().values()) { + if (!startup.contains("group." + group.getName())) { startup.add("group." + group.getName()); } } - for(ClusterDataHolder dataHolder : component.getClusterDataMap().values()) { - if(!startup.contains("cartridge." + dataHolder.getServiceType())) { + for (ClusterDataHolder dataHolder : component.getClusterDataMap().values()) { + if (!startup.contains("cartridge." + dataHolder.getServiceType())) { startup.add("cartridge." + dataHolder.getServiceType()); } http://git-wip-us.apache.org/repos/asf/stratos/blob/217bc547/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java index 13860fe..efd5eea 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/topic/StatusEventPublisher.java @@ -9,41 +9,41 @@ import org.apache.stratos.messaging.event.application.status.*; import org.apache.stratos.messaging.util.Constants; /** - * Created by reka on 9/21/14. + * This will publish application related events to application status topic. */ public class StatusEventPublisher { private static final Log log = LogFactory.getLog(StatusEventPublisher.class); - public static void sendClusterActivatedEvent (String appId, String serviceName, String clusterId) { + public static void sendClusterActivatedEvent(String appId, String serviceName, String clusterId) { - if(log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info("Publishing Cluster activated event for [application]: " + appId + - " [cluster]: " + clusterId ); + " [cluster]: " + clusterId); } - ClusterActivatedEvent clusterActivatedEvent = new ClusterActivatedEvent(appId,serviceName, clusterId); + ClusterActivatedEvent clusterActivatedEvent = new ClusterActivatedEvent(appId, serviceName, clusterId); publishEvent(clusterActivatedEvent); } - public static void sendClusterInMaintenanceEvent (String appId, String serviceName, String clusterId) { + public static void sendClusterInMaintenanceEvent(String appId, String serviceName, String clusterId) { - if(log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info("Publishing Cluster in_maintenance event for [application]: " + appId + - " [cluster]: " + clusterId ); + " [cluster]: " + clusterId); } ClusterMaintenanceModeEvent clusterInMaintenanceEvent = - new ClusterMaintenanceModeEvent(appId,serviceName, clusterId); + new ClusterMaintenanceModeEvent(appId, serviceName, clusterId); publishEvent(clusterInMaintenanceEvent); } - public static void sendGroupActivatedEvent (String appId, String groupId) { + public static void sendGroupActivatedEvent(String appId, String groupId) { - if(log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info("Publishing Group activated event for [application]: " + appId + - " [group]: " + groupId ); + " [group]: " + groupId); } GroupActivatedEvent groupActivatedEvent = new GroupActivatedEvent(appId, groupId); @@ -51,9 +51,9 @@ public class StatusEventPublisher { publishEvent(groupActivatedEvent); } - public static void sendApplicationActivatedEvent (String appId) { + public static void sendApplicationActivatedEvent(String appId) { - if(log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info("Publishing Application activated event for [application]: " + appId); } @@ -62,11 +62,11 @@ public class StatusEventPublisher { publishEvent(applicationActivatedEvent); } - public static void sendGroupInMaintenanceEvent (String appId, String groupId) { + public static void sendGroupInMaintenanceEvent(String appId, String groupId) { - if(log.isInfoEnabled()) { + if (log.isInfoEnabled()) { log.info("Publishing Group in_maintenance event for [application]: " + appId + - " [group]: " + groupId ); + " [group]: " + groupId); } GroupMaintenanceModeEvent groupMaintenanceModeEvent = @@ -76,8 +76,8 @@ public class StatusEventPublisher { } public static void publishEvent(Event event) { - //TODO change the topics for cluster and group accordingly - EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.INSTANCE_STATUS_TOPIC); + //publishing events to application status topic + EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.APPLICATION_STATUS_TOPIC); eventPublisher.publish(event); } http://git-wip-us.apache.org/repos/asf/stratos/blob/217bc547/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 5eb3f97..a0779e3 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 @@ -22,11 +22,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.exception.InvalidCartridgeTypeException; import org.apache.stratos.cloud.controller.exception.InvalidMemberException; -import org.apache.stratos.cloud.controller.pojo.Cartridge; -import org.apache.stratos.cloud.controller.pojo.ClusterContext; -import org.apache.stratos.cloud.controller.pojo.PortMapping; -import org.apache.stratos.cloud.controller.pojo.Registrant; import org.apache.stratos.cloud.controller.pojo.*; +import org.apache.stratos.cloud.controller.pojo.Cartridge; import org.apache.stratos.cloud.controller.pojo.payload.MetaDataHolder; import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublisher; import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; @@ -135,10 +132,10 @@ public class TopologyBuilder { // update the cluster cluster = service.getCluster(clusterId); cluster.addHostName(registrant.getHostName()); - if(service.getServiceType() == ServiceType.MultiTenant) { + if (service.getServiceType() == ServiceType.MultiTenant) { cluster.setTenantRange(registrant.getTenantRange()); } - if(service.getProperties().getProperty(Constants.IS_PRIMARY) != null) { + if (service.getProperties().getProperty(Constants.IS_PRIMARY) != null) { props.setProperty(Constants.IS_PRIMARY, service.getProperties().getProperty(Constants.IS_PRIMARY)); } cluster.setProperties(props); @@ -147,10 +144,10 @@ public class TopologyBuilder { cluster = new Cluster(cartridgeType, clusterId, registrant.getDeploymentPolicyName(), registrant.getAutoScalerPolicyName()); cluster.addHostName(registrant.getHostName()); - if(service.getServiceType() == ServiceType.MultiTenant) { + if (service.getServiceType() == ServiceType.MultiTenant) { cluster.setTenantRange(registrant.getTenantRange()); } - if(service.getProperties().getProperty(Constants.IS_PRIMARY) != null) { + if (service.getProperties().getProperty(Constants.IS_PRIMARY) != null) { props.setProperty(Constants.IS_PRIMARY, service.getProperties().getProperty(Constants.IS_PRIMARY)); } cluster.setProperties(props); @@ -297,10 +294,10 @@ public class TopologyBuilder { log.debug("TopologyBuilder found composite app for " + appAlias); } String clusterId = instanceStartedEvent.getClusterId(); - String groupAlias = app.extractClusterGroupFromClusterId(clusterId); + String groupAlias = app.extractClusterGroupFromClusterId(clusterId); instanceStartedEvent.setGroupId(groupAlias); if (log.isDebugEnabled()) { - log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance started event for cluster " + clusterId); + log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance started event for cluster " + clusterId); } } @@ -351,15 +348,14 @@ public class TopologyBuilder { log.debug("TopologyBuilder found composite app for member activated " + appAlias); } String clusterId = instanceActivatedEvent.getClusterId(); - String groupAlias = app.extractClusterGroupFromClusterId(clusterId); + String groupAlias = app.extractClusterGroupFromClusterId(clusterId); instanceActivatedEvent.setGroupId(groupAlias); if (log.isDebugEnabled()) { - log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance activated event for cluster " + clusterId); + log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance activated event for cluster " + clusterId); } } - Member member = cluster.getMember(instanceActivatedEvent.getMemberId()); if (member == null) { @@ -441,10 +437,10 @@ public class TopologyBuilder { log.debug("TopologyBuilder found composite app for " + appAlias); } String clusterId = instanceReadyToShutdownEvent.getClusterId(); - String groupAlias = app.extractClusterGroupFromClusterId(clusterId); + String groupAlias = app.extractClusterGroupFromClusterId(clusterId); instanceReadyToShutdownEvent.setGroupId(groupAlias); if (log.isDebugEnabled()) { - log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance ready shutdown event for cluster " + clusterId); + log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance ready shutdown event for cluster " + clusterId); } } @@ -522,10 +518,10 @@ public class TopologyBuilder { } String clusterId = instanceMaintenanceModeEvent.getClusterId(); - String groupAlias = app.extractClusterGroupFromClusterId(clusterId); + String groupAlias = app.extractClusterGroupFromClusterId(clusterId); instanceMaintenanceModeEvent.setGroupId(groupAlias); if (log.isDebugEnabled()) { - log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance ready shutdown event for cluster " + clusterId); + log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for instance ready shutdown event for cluster " + clusterId); } } @@ -583,14 +579,14 @@ public class TopologyBuilder { String appAlias = "compositeApplicationAlias"; CompositeApplication app = builder.buildCompositeApplication(topology, appAlias); - String groupAlias = null; + String groupAlias = null; if (app != null) { if (log.isDebugEnabled()) { log.debug("TopologyBuilder found composite app for " + appAlias); } - groupAlias = app.extractClusterGroupFromClusterId(clusterId); + groupAlias = app.extractClusterGroupFromClusterId(clusterId); if (log.isDebugEnabled()) { - log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for member terminated event for cluster " + clusterId); + log.debug("TopologyBuilder setting groupAlias " + groupAlias + " for member terminated event for cluster " + clusterId); } } @@ -619,7 +615,6 @@ public class TopologyBuilder { Set<MetaDataHolder> metaDataHolders) { - Topology topology = TopologyManager.getTopology(); try { TopologyManager.acquireWriteLock(); @@ -659,10 +654,10 @@ public class TopologyBuilder { } } - public static void handleApplicationUndeployed (String applicationId, int tenantId, String tenantDomain) { + public static void handleApplicationUndeployed(String applicationId, int tenantId, String tenantDomain) { Topology topology = TopologyManager.getTopology(); - + try { TopologyManager.acquireWriteLock(); @@ -708,10 +703,9 @@ public class TopologyBuilder { TopologyManager.acquireWriteLock(); String key = "compositeApplicationAlias"; //app.getAlias() - topology.addConfigCompositeApplication(key ,messConfigApp); + topology.addConfigCompositeApplication(key, messConfigApp); TopologyManager.updateTopology(topology); - } - finally { + } finally { TopologyManager.releaseWriteLock(); } TopologyEventPublisher.sendConfigApplicationCreatedEventEvent(messConfigApp); @@ -803,8 +797,6 @@ public class TopologyBuilder { return; } - - org.apache.stratos.messaging.event.topology.ApplicationActivatedEvent applicationActivatedEvent1 = new org.apache.stratos.messaging.event.topology.ApplicationActivatedEvent( applicationActivatedEvent.getAppId()); @@ -821,206 +813,4 @@ public class TopologyBuilder { TopologyEventPublisher.sendApplicationActivatedEvent(applicationActivatedEvent1); } - - - /*public static ConfigCompositeApplication convertCompositeApplication(CompositeApplicationDefinition compositeApplicationDefinition) { - ConfigCompositeApplication messApp = new ConfigCompositeApplication(); - String alias = compositeApplicationDefinition.getAlias(); - messApp.setAlias(alias); - String applicationId = compositeApplicationDefinition.getApplicationId(); - messApp.setApplicationId(applicationId); - org.apache.stratos.cloud.controller.pojo.ConfigCartridge[] arrayMessCartridges = compositeApplicationDefinition.getCartridges(); - org.apache.stratos.cloud.controller.pojo.ConfigGroup [] messConfigGroup = compositeApplicationDefinition.getComponents(); - - List<ConfigCartridge> cartridges = new ArrayList<ConfigCartridge>(); - List<ConfigGroup> messGroups = new ArrayList<ConfigGroup>(); - List<ConfigDependencies.Pair> messDependencies= new ArrayList<ConfigDependencies.Pair>(); - - for (org.apache.stratos.cloud.controller.pojo.ConfigCartridge cfg : arrayMessCartridges) { - ConfigCartridge cartridge = new ConfigCartridge(); - cartridge.setAlias(cfg.getAlias()); - - cartridges.add(cartridge); - } - messApp.setCartridges(cartridges); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: messConfigGroup size: " + messConfigGroup.length); - } - for (org.apache.stratos.cloud.controller.pojo.ConfigGroup gr : messConfigGroup) { - ConfigGroup group = new ConfigGroup(); - - // alias - group.setAlias(gr.getAlias()); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: messConfigGroup group alias " + gr.getAlias()); - } - // subscribables - String [] arraySub = gr.getSubscribables(); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: messConfigGroup group nr of subscribables " + arraySub.length); - } - List<String> subscribables = new ArrayList<String>(); - if (arraySub != null) { - int i = 0; - for (String sub : arraySub) { - subscribables.add(arraySub[i]); - i++; - } - } else { - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: messConfigGroup group nr no subscribables is null"); - } - } - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: adding subscribables to group: " + group.getAlias() + - " and nr of subscribables " + subscribables.size()); - } - group.setSubscribables(subscribables); - // dependencies - org.apache.stratos.cloud.controller.pojo.ConfigDependencies dep = gr.getDependencies(); - ConfigDependencies messDep = new ConfigDependencies(); - org.apache.stratos.cloud.controller.pojo.ConfigDependencyPair [] pairs = dep.getStartup_order(); - List<ConfigDependencies.Pair> startup_order; - if (pairs != null) { - log.debug("TopolgyBuilder: number of startup pairs " + pairs.length); - startup_order = new ArrayList<ConfigDependencies.Pair>(pairs.length); - //for (org.apache.stratos.cloud.controller.pojo.ConfigDependencyPair pair : pairs) { - for (int i = 0; i < pairs.length; i++) { - org.apache.stratos.cloud.controller.pojo.ConfigDependencyPair pair = pairs[i]; - if (pair != null) { - ConfigDependencies.Pair messPair = new ConfigDependencies.Pair(pair.getKey(), pair.getValue()); - startup_order.add(messPair); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: adding dep pairs to group: " + pair.getKey() + " / " + - pair.getValue() + " at " + i); - } - } else { - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: Error while adding pair, pair is null"); - } - } - } - } else { - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: no dependencies added"); - } - startup_order = new ArrayList<ConfigDependencies.Pair>(0); - } - - messDep.setStartup_order(startup_order); - messDep.setKill_behavior(dep.getKill_behavior()); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: added kill behavior " + dep.getKill_behavior()); - } - group.setDependencies(messDep); - - messGroups.add(group); - if (log.isDebugEnabled()) { - log.debug("TopolgyBuilder: number of groups " + messGroups.size()); - } - } - messApp.setComponents(messGroups); - if (log.isDebugEnabled()) { - if (messApp.getComponents() != null) { - log.debug("TopolgyBuilder: added total nr of groups to application " + messApp.getComponents().size()); - } - else { - log.debug("TopolgyBuilder: added total nr of groups to application is null"); - } - } - - - /* test - ConfigGroup grX = new ConfigGroup(); - grX.setAlias("hug"); - List<String> subX = new ArrayList<String>(); - subX.add("cone"); - grX.setSubscribables(subX); - ConfigDependencies cgX = new ConfigDependencies(); - cgX.setKill_behavior("kill-all"); - log.debug("verifying cgX object serialization : " + Util.ObjectToJson(cgX)); - ConfigDependencies.Pair startup_orderX = new ConfigDependencies.Pair("eins", "zwei"); - List<ConfigDependencies.Pair> depspairsX = new ArrayList<ConfigDependencies.Pair>(); - depspairsX.add(startup_orderX); - log.debug("verifying depspairsX object serialization : " + Util.ObjectToJson(depspairsX)); - cgX.setStartup_order(depspairsX); - grX.setDependencies(cgX); - log.debug("verifying grX object serialization : " + Util.ObjectToJson(grX)); - messGroups.add(grX); - messApp.setComponents(messGroups); - log.debug("verifying messApp object serialization : " + Util.ObjectToJson(messApp)); - // - test end */ - /* - return messApp; - }*/ - - /* - public boolean process(String type, String message, Object object) { - Topology topology = (Topology) object; - - if (log.isDebugEnabled()) { - log.debug("processing application event of type " + type + - " / topology:" + topology + " msg: " + message); - } - - if (CompositeApplicationCreatedEvent.class.getName().equals(type)) { - // Return if topology has not been initialized - if (!topology.isInitialized()) { - - if (log.isDebugEnabled()) { - log.debug("topology is not initialized .... need to add check ... Grouping"); - } - - //return false; - } - - // Parse complete message and build event - CompositeApplicationCreatedEvent event = - (CompositeApplicationCreatedEvent) Util.jsonToObject(message, CompositeApplicationCreatedEvent.class); - - if (log.isDebugEnabled()) { - log.debug("processing application created event with application id: " + event.getApplicationAlias()); - } - - // Validate event against the existing topology - if (topology.compositeApplicationExists(event.getApplicationAlias())) { - if (log.isWarnEnabled()) { - log.warn(String.format("CompositeApplication already created: [com app] %s", event.getApplicationAlias())); - } - } else { - - ConfigCompositeApplication configApp = event.getCompositeApplication(); - CompositeApplicationBuilder builder = new CompositeApplicationBuilder(configApp); - CompositeApplication app = new CompositeApplication(); - app.setAlias(configApp.getAlias()); - app.setTop_level(builder.buildApplication()); - String key = "compositeApplicationAlias"; //app.getAlias() - topology.addCompositeApplication(key ,app); - - if (log.isInfoEnabled()) { - log.info("CompositeApplication created with alias" +app.getAlias() + " and saved with key " + "compositeApplicationAlias" ); - log.info(String.format("CompositeApplication created: [app] %s", app.getTop_level())); - if (log.isDebugEnabled()) { - log.debug("verifying CompositeApplication object serialization : " + Util.ObjectToJson(app)); - } - } - } - - // Notify event listeners - notifyEventListeners(event); - return true; - - } else { - if (nextProcessor != null) { - // ask the next processor to take care of the message. - return nextProcessor.process(type, message, topology); - } else { - throw new RuntimeException(String.format("Failed to process message using available message processors: [type] %s [body] %s", type, message)); - } - } - } - */ - - }
