You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by Russell Bateman <ru...@windofkeltia.com> on 2020/12/30 18:22:56 UTC
Safely updating custom processors in existing flows...
I have a custom processor actively used in customer flows. I need to
enhance it, but avoid invalidating it when I update custom's existing
NiFi installations.
I know that the processor properties, in particular, the conflict
between the property .name()and .displayName(), is a good way to get
myself into trouble by changing the wording, correcting spelling, etc.
Also, adding to or subtracting properties and/or relationships is a
good way to blow it all up.
How does versioning the processor solve any of this?
Etc.
Can anyone share canonical advice on this?
Thanks,
Russ
Re: Safely updating custom processors in existing flows...
Posted by Chris Sampson <ch...@naimuri.com.INVALID>.
I understand you can have multiple versions of a processor loaded at once
(from separate NARs).
Existing flows should continue to use the already configured version, then
you can right-click the processor in the UI and change its version when
you're ready and fix any issues at that time. This should allow you to
manage the roll-out per flow when appropriate.
The extensions/ directory can be used to auto load new NARs into a running
instance (but removing a NAR doesn't auto unload it). Adding anything to
the lib/ directory will require a restart.
Once all flows are updated, the old version NAR can be removed and nifi
restarted to unload the resources.
Cheers,
Chris Sampson
On Wed, 30 Dec 2020, 18:23 Russell Bateman, <ru...@windofkeltia.com> wrote:
> I have a custom processor actively used in customer flows. I need to
> enhance it, but avoid invalidating it when I update custom's existing
> NiFi installations.
>
> I know that the processor properties, in particular, the conflict
> between the property .name()and .displayName(), is a good way to get
> myself into trouble by changing the wording, correcting spelling, etc.
>
> Also, adding to or subtracting properties and/or relationships is a
> good way to blow it all up.
>
> How does versioning the processor solve any of this?
>
> Etc.
>
> Can anyone share canonical advice on this?
>
> Thanks,
> Russ
>
Re: Safely updating custom processors in existing flows...
Posted by Mark Payne <ma...@hotmail.com>.
Russ,
You can change the property descriptors display name without a problem. You should *not* change the name of the property. If a property exists with no display name specified, you can introduce a display name. This just dictates what the UI will call it. So that can be changed to improve usability.
Sent from my iPhone
> On Dec 30, 2020, at 3:20 PM, Russell Bateman <ru...@windofkeltia.com> wrote:
>
> I will be very happy to read what others contribute. Chris' suggestion, which has huge implications, I think, for my IDE and project structure, will be something to look into.
>
> However, I was hoping someone would articulate the difference between *property names* and *property display names*, which of the two can be changed without invalidating the processor when simply replaced with the new one, etc. I have read a lot about this topic, but I'm still confused. Is display name supposed to be what shows up in the UI? Can it be changed without screwing up the processor? Is it the name that can be fixed? Which is the safe thing to modify?
>
> I was hoping for some advice on taking quantum leaps (such as Chris discussed), but also on baby steps that must have been more common back in the days before processor versioning was supported.
>
> Thanks
Re: Safely updating custom processors in existing flows...
Posted by Russell Bateman <ru...@windofkeltia.com>.
I will be very happy to read what others contribute. Chris' suggestion,
which has huge implications, I think, for my IDE and project structure,
will be something to look into.
However, I was hoping someone would articulate the difference between
*property names* and *property display names*, which of the two can be
changed without invalidating the processor when simply replaced with the
new one, etc. I have read a lot about this topic, but I'm still
confused. Is display name supposed to be what shows up in the UI? Can it
be changed without screwing up the processor? Is it the name that can be
fixed? Which is the safe thing to modify?
I was hoping for some advice on taking quantum leaps (such as Chris
discussed), but also on baby steps that must have been more common back
in the days before processor versioning was supported.
Thanks