[ 
https://issues.apache.org/jira/browse/NIFI-15341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18046417#comment-18046417
 ] 

David Handermann commented on NIFI-15341:
-----------------------------------------

Thanks for linking the prototype approach [~jgresock]. I am concerned about 
introducing this level of complexity into a process that is already very 
complex. For that fundamental reason, I don't think going down the road of a 
multi-pass property substitution strategy is going to be reliable or 
maintainable going forward.

[~pgrey] You are correct that more complicated logic would not be possible to 
express in a simple CSV substitution approach. I brought up the simple 
substitution as a way to address the somewhat more targeted concern renamed 
references.

It could be possible to define a more complex migration manifest to express 
more concepts, but that starts to get more difficult to maintain.

It comes back to the source of responsibility. The framework is responsible for 
supporting upgrading of what it knows, which is the flow configuration. 
However, it is not responsible for component configuration outside of its 
control. With that framing, I'm open to ideas for ways to make it easier for 
programmatic clients to support migration strategies, through options such as 
publishing formatted information that describes changes. However, I don't think 
introducing an additional layer of on-the-fly migration for new requests is a 
workable approach.

> External Controller Service resolution can break with property migration
> ------------------------------------------------------------------------
>
>                 Key: NIFI-15341
>                 URL: https://issues.apache.org/jira/browse/NIFI-15341
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 2.7.1
>            Reporter: Joe Gresock
>            Assignee: Joe Gresock
>            Priority: Minor
>         Attachments: CS_Resolution.json
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When importing or replacing a Process Group, External Controller Services can 
> fail to resolve if a component property was renamed between the versioned 
> flow and the currently installed bundle using property migration.
> To reproduce in 2.4.0 or later, download attached JSON file representing a 
> Process Group Replace request.  Then log into NiFi and copy the Bearer token. 
>  Then create a new blank process group in NiFi and copy its identifier for 
> below.
> Next, create a new StandardRestrictedSSLContextService at the root canvas and 
> name it "SSL Context Service".
> {code:java}
> BEARER_TOKEN=<paste bearer token>
> PG_ID=<pg id>
> curl -k -vv -X POST 
> https://localhost:8443/nifi-api/process-groups/$PG_ID/replace-requests -H 
> "Content-Type: application/json" -H "Authorization: Bearer $BEARER_TOKEN" -d 
> @CS_Resolution.json
> {code}
> Observe that the SSL Context Service property in the MongoDBControllerService 
> now references a UUID instead of the "SSL Context Service" service.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to