Github user mcgilman commented on the issue:

    https://github.com/apache/nifi/pull/2509
  
    Hey @zenfenan... So I just checked out the updated PR. Things seem to be 
running as suggested, however, I'm wondering if it makes sense to improve it a 
little and in the process reduce the complexity of some of that code. 
    
    Specifically, I'm referring to when we show the Execution drop down. I just 
stood up a standalone instance. I dropped on two processors. One that had 
`@PrimaryNodeOnly` and one that did not. For the processor that was marked 
`@PrimaryNodeOnly` we showed the Execution drop down because it's configured 
value was `Primary node`. This verifies the existing behavior but is a little 
weird because previously the only way to get into this state was by having this 
node be part of a cluster. Now with this PR, it is the default value even in a 
standalone case. The other processor which was not marked with 
`@PrimaryNodeOnly` we did not show the Execution drop down. I think this 
distinction may be confusing to users since the context of this node previously 
being part of a cluster is no longer the case.
    
    I wanted to get your thoughts on taking a slightly different approach. What 
if we always showed the Execution drop down and `Primary node` was always an 
allowed option. We could either remove or disable the `All` option 
conditionally based on the presence of the `@PrimaryNodeOnly` annotation. This 
would allow us to remove the really confusing conditionals that drive the 
visibility of the Execution field.
    
    If we opted for this approach, we should probably update the tooltip/info 
icon for this field to indicate that when clustered, this drives which node(s) 
the processor will be scheduled on. The other benefit to this approach is that 
it will allow for users to build a flow on a standalone instance (including the 
appropriate execution nodes) before saving it to the Registry where the flow 
may be imported into a cluster.


---

Reply via email to