Hey Ivan -- Do you have any examples of calling this object? I can't get it to work in Jira's script runner for example.
This seems to get me the info I want in Script Runner (still playing with it -- but the raw data of the nodes and their state get returned)
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.cluster.ClusterManager
def componentAccessor = ComponentAccessor.newInstance()
def clusterManager = componentAccessor.getOSGiComponentInstanceOfType(ClusterManager.class)
def clusterInfo = clusterManager.getAllNodes()
And this will get the same info via rest endpoint. Just add '/rest/scriptrunner/latest/custom/getClusterStatus' to the end of your base url. It may need some polish -- it works, but I am not super strong in java/groovy.
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.cluster.ClusterManager
import groovy.transform.BaseScript
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
def componentAccessor = ComponentAccessor.newInstance()
def clusterManager = componentAccessor.getOSGiComponentInstanceOfType(ClusterManager.class)
Set clusterInfo = clusterManager.getAllNodes()
@BaseScript CustomEndpointDelegate delegate
getSessionCount(httpMethod: "GET") { MultivaluedMap queryParams, String body ->
return Response.ok(new JsonBuilder([clusterInfo]).toString()).build();
}
Documentation can be found at the Adaptavist site here: https://scriptrunner.adaptavist.com/latest/jira/rest-endpoints.html