[
https://issues.apache.org/jira/browse/NIFI-3393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Gilman updated NIFI-3393:
------------------------------
Resolution: Fixed
Fix Version/s: 1.2.0
Status: Resolved (was: Patch Available)
> REST API - Inconsistency on /controller/cluster/nodes/{id}
> ----------------------------------------------------------
>
> Key: NIFI-3393
> URL: https://issues.apache.org/jira/browse/NIFI-3393
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Reporter: Pierre Villard
> Assignee: Pierre Villard
> Priority: Minor
> Fix For: 1.2.0
>
>
> According to which node is requested through the REST API, the end point
> {noformat}
> /controller/cluster/nodes/{id}
> {noformat}
> will not return the same result. This is due to the fact that in
> {{ControllerResource}}, the request is not replicated to the cluster
> coordinator.
> If this is not the expected behavior, the following code should be added:
> {noformat}
> if (isReplicateRequest()) {
> return replicate(HttpMethod.GET, getClusterCoordinatorNode());
> }
> {noformat}
> At the moment, if requesting the cluster coordinator, I get something like:
> {noformat}
> {u'node': {u'status': u'CONNECTED', u'roles': [], u'nodeId':
> u'd403e2c0-44a7-4c1c-aaa4-fed2ee3d6993', u'apiPort': 8443, u'events':
> [.....], u'nodeStartTime': u'01/25/2017 10:21:38 CET', u'address': u'node-1',
> u'heartbeat': u'01/25/2017 11:24:47 CET', u'queued': u'0 / 0 bytes',
> u'activeThreadCount': 0}}
> {noformat}
> And, on another node:
> {noformat}
> {u'node': {u'status': u'CONNECTED', u'roles': [], u'nodeId':
> u'd403e2c0-44a7-4c1c-aaa4-fed2ee3d6993', u'apiPort': 8443, u'address':
> u'node-1', u'events': []}}
> {noformat}
> In other words, all this part is missing:
> {noformat}
> // only connected nodes have heartbeats
> if (nodeHeartbeat != null) {
> final Date heartbeat = new Date(nodeHeartbeat.getTimestamp());
> nodeDto.setHeartbeat(heartbeat);
> nodeDto.setNodeStartTime(new
> Date(nodeHeartbeat.getSystemStartTime()));
>
> nodeDto.setActiveThreadCount(nodeHeartbeat.getActiveThreadCount());
>
> nodeDto.setQueued(FormatUtils.formatCount(nodeHeartbeat.getFlowFileCount()) +
> " / " + FormatUtils.formatDataSize(nodeHeartbeat.getFlowFileBytes()));
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)