[jira] [Updated] (NIFI-3393) REST API - Inconsistency on /controller/cluster/nodes/{id}

2017-01-25 Thread Matt Gilman (JIRA)

 [ 
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)


[jira] [Updated] (NIFI-3393) REST API - Inconsistency on /controller/cluster/nodes/{id}

2017-01-25 Thread Pierre Villard (JIRA)

 [ 
https://issues.apache.org/jira/browse/NIFI-3393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-3393:
-
Assignee: Pierre Villard
  Status: Patch Available  (was: Open)

> 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
>
> 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)