[
https://issues.apache.org/jira/browse/NIFI-2028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15392222#comment-15392222
]
ASF GitHub Bot commented on NIFI-2028:
--------------------------------------
Github user markap14 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/529#discussion_r72096781
--- Diff:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java
---
@@ -366,6 +371,17 @@ private int receiveFlowFiles(final Transaction
transaction, final ProcessContext
return flowFilesReceived.size();
}
+ private String createTransitUri(final Transaction transaction, String
sourceFlowFileIdentifier) {
+ // Use actual uri as transitUri if this transport protocol has
meaningful uri.
+ switch (remoteGroup.getTransportProtocol()) {
--- End diff --
This feels wrong to me. We should be using the URI that the communicant
gives to us, regardless of which implementation is being used. If the URI
returned by the HTTP implementation is not meaningful, then we should update
the code so that we pass in a more meaningful URI
> Site-to-Site Transit URI is inconsistent
> ----------------------------------------
>
> Key: NIFI-2028
> URL: https://issues.apache.org/jira/browse/NIFI-2028
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core UI
> Affects Versions: 1.0.0
> Reporter: Koji Kawamura
> Assignee: Koji Kawamura
> Fix For: 1.0.0
>
> Attachments: send-to-the-same-box.png
>
>
> Site-to-Site client and server create provenance event at both end, and those
> have Transit URI in it to record how flow files are transferred. However, the
> URI formats are inconsistent among RAW vs HTTP.
> Test result as follows:
> - These port numbers are configurable in nifi.properties
> - 3080: Web API port (nifi.web.http.port)
> - 3081: Site-to-Site RAW Socket port (nifi.remote.input.socket.port)
> *Before Fix*
> PUSH - RAW
> |Client - SEND: | nifi://localhost:3081/flow-file-uuid |
> |Server - RECEIVE: | nifi://localhost:3081/flow-file-uuid|
> PULL - RAW
> |Client - RECEIVE:| nifi://localhost:3081flow-file-uuid|
> |Server - SEND: | nifi://localhost:3081/flow-file-uuid|
> PUSH - HTTP
> |Client - SEND: | http://127.0.0.1:3080/nifi-api/flow-file-uuid|
> |Server - RECEIVE:| nifi://127.0.0.1:57390|
> PULL - HTTP
> |Client - RECEIVE:| http://127.0.0.1:3080/flow-file-uuid|
> |Server - SEND: | nifi://127.0.0.1:57673|
> *Issues*
> - PULL - RAW, Client - RECEIVE: lacks '/' in between port and flow-file uuid
> - RAW uses server's host and port on both end (by transit url prefix), HTTP
> should follow this rule
> - HTTP transit uri looks like REST endpoint but it is not a real endpoint. It
> should be an actual endpoint URI
> - RAW uses hostname, while HTTP uses IP address
> *After Fix*
> PUSH - RAW
> |Client - SEND: | nifi://localhost:3081/flow-file-uuid |
> |Server - RECEIVE: | nifi://localhost:3081/flow-file-uuid|
> PULL - RAW
> |Client - RECEIVE: | nifi://localhost:3081/flow-file-uuid|
> |Server - SEND: | nifi://localhost:3081/flow-file-uuid|
> PUSH - HTTP
> |Client - SEND: |
> http://localhost:3080/nifi-api/data-transfer/input-ports/$port-id/transactions/$tx-id/flow-files|
> |Server - RECEIVE:|
> http://localhost:3080/nifi-api/data-transfer/input-ports/$port-id/transactions/$tx-id/flow-files|
> PULL - HTTP
> |Client - RECEIVE: |
> http://localhost:3080/nifi-api/data-transfer/output-ports/$port-id/transactions/$tx-id/flow-files|
> |Server - SEND: |
> http://localhost:3080/nifi-api/data-transfer/output-ports/$port-id/transactions/$tx-id/flow-files|
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)