You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2021/02/25 18:29:52 UTC
[nifi] branch support/nifi-1.13 updated: NIFI-8261: When gathering
the states of affected components,
make sure that we properly obtain the state of Input Ports and Output Ports
This is an automated email from the ASF dual-hosted git repository.
mattyb149 pushed a commit to branch support/nifi-1.13
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.13 by this push:
new 68c27ac NIFI-8261: When gathering the states of affected components, make sure that we properly obtain the state of Input Ports and Output Ports
68c27ac is described below
commit 68c27acb945ea3966bc46cd1ea12e4efae3411d9
Author: Mark Payne <ma...@hotmail.com>
AuthorDate: Thu Feb 25 11:26:24 2021 -0500
NIFI-8261: When gathering the states of affected components, make sure that we properly obtain the state of Input Ports and Output Ports
Signed-off-by: Pierre Villard <pi...@gmail.com>
This closes #4844.
---
.../apache/nifi/web/StandardNiFiServiceFacade.java | 37 +++++++++++++++++++---
1 file changed, 33 insertions(+), 4 deletions(-)
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 828c800..e7e13f7 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -142,6 +142,7 @@ import org.apache.nifi.registry.flow.diff.StandardFlowComparator;
import org.apache.nifi.registry.flow.diff.StaticDifferenceDescriptor;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedComponent;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedControllerService;
+import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedPort;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedProcessGroup;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedProcessor;
import org.apache.nifi.registry.flow.mapping.InstantiatedVersionedRemoteGroupPort;
@@ -4769,12 +4770,22 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
state = processorDAO.getProcessor(processorId).getPhysicalScheduledState().name();
break;
case REMOTE_INPUT_PORT:
- final InstantiatedVersionedRemoteGroupPort inputPort = (InstantiatedVersionedRemoteGroupPort) localComponent;
- state = remoteProcessGroupDAO.getRemoteProcessGroup(inputPort.getInstanceGroupId()).getInputPort(inputPort.getInstanceId()).getScheduledState().name();
+ final InstantiatedVersionedRemoteGroupPort remoteInputPort = (InstantiatedVersionedRemoteGroupPort) localComponent;
+ state = remoteProcessGroupDAO.getRemoteProcessGroup(remoteInputPort.getInstanceGroupId()).getInputPort(remoteInputPort.getInstanceId()).getScheduledState().name();
break;
case REMOTE_OUTPUT_PORT:
- final InstantiatedVersionedRemoteGroupPort outputPort = (InstantiatedVersionedRemoteGroupPort) localComponent;
- state = remoteProcessGroupDAO.getRemoteProcessGroup(outputPort.getInstanceGroupId()).getOutputPort(outputPort.getInstanceId()).getScheduledState().name();
+ final InstantiatedVersionedRemoteGroupPort remoteOutputPort = (InstantiatedVersionedRemoteGroupPort) localComponent;
+ state = remoteProcessGroupDAO.getRemoteProcessGroup(remoteOutputPort.getInstanceGroupId()).getOutputPort(remoteOutputPort.getInstanceId()).getScheduledState().name();
+ break;
+ case INPUT_PORT:
+ final InstantiatedVersionedPort versionedInputPort = (InstantiatedVersionedPort) localComponent;
+ final Port inputPort = getInputPort(versionedInputPort);
+ state = inputPort == null ? null : inputPort.getScheduledState().name();
+ break;
+ case OUTPUT_PORT:
+ final InstantiatedVersionedPort versionedOutputPort = (InstantiatedVersionedPort) localComponent;
+ final Port outputPort = getOutputPort(versionedOutputPort);
+ state = outputPort == null ? null : outputPort.getScheduledState().name();
break;
default:
state = null;
@@ -4908,6 +4919,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return affectedComponents;
}
+ private Port getInputPort(final InstantiatedVersionedPort port) {
+ final ProcessGroup processGroup = processGroupDAO.getProcessGroup(port.getInstanceGroupId());
+ if (processGroup == null) {
+ return null;
+ }
+
+ return processGroup.getInputPort(port.getInstanceId());
+ }
+
+ private Port getOutputPort(final InstantiatedVersionedPort port) {
+ final ProcessGroup processGroup = processGroupDAO.getProcessGroup(port.getInstanceGroupId());
+ if (processGroup == null) {
+ return null;
+ }
+
+ return processGroup.getOutputPort(port.getInstanceId());
+ }
+
private void mapToConnectableId(final Collection<? extends Connectable> connectables, final Map<String, List<Connectable>> destination) {
for (final Connectable connectable : connectables) {
final Optional<String> versionedIdOption = connectable.getVersionedComponentId();