Also in the cluster monitor we are getting status change from[1]. AFAIU that process logic is not execute ever and stateChanged will be always false.Is n't?
// Checking the current status of the cluster instance boolean stateChanged = ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain() .process("", cluster.getClusterId(), clusterInstance.getInstanceId()); AFAIU we have to listen to all the cluster events[2] for decide the current status of the cluster. [1] https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java#L1498 [2] https://github.com/apache/stratos/tree/stratos-4.1.x/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/cluster/status Thanks, Gayan On Wed, Nov 18, 2015 at 6:52 PM, Isuru Haththotuwa <isu...@apache.org> wrote: > Hi, > > In ClusterMonitor [1] and AutoscalerTopologyEventReceiver [2] classes, > there are two occasions where we are sending a message through the > ClusterStatusProcessorChain with type set to an empty String [3, 4]. AFAIK > the processor chain will determine which processor to use based on this > type, and since its empty, the message will not update the ClusterStatus. > Any particular reason to do this? > > [1]. org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor > [2]. > org.apache.stratos.autoscaler.event.receiver.topology.AutoscalerTopologyEventReceiver > [3]. > ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain(). > * process("", clusterId, clusterInstanceId);* > > [4]. > ServiceReferenceHolder.getInstance().getClusterStatusProcessorChain(). > * process("", cluster.getClusterId(), > clusterInstance.getInstanceId());* > > > > -- > Thanks and Regards, > > Isuru H. > +94 716 358 048* <http://wso2.com/>* > > > -- Gayan Gunarathne Technical Lead, WSO2 Inc. (http://wso2.com) Committer & PMC Member, Apache Stratos email : gay...@wso2.com | mobile : +94 775030545 <%2B94%20766819985>