Bryan,

I’ve been working through this and I have it working - mostly. My flows have 
been registered successfully, and I’ve been able to instantiate the parent flow 
via the NiFi API to create a new process group.

The final piece - I think - is figuring out how to properly configure the 
controller services referenced by my flows using the APIs. I know I can use the 
API to create a new controller service and generate an ID for each new 
controller service. But how do I update all of my NiFi components that 
reference the controller service by ID. Is there a straightforward way to do 
this?

Thanks

-Tim


> On Feb 1, 2019, at 11:09 AM, Bryan Bende <[email protected]> wrote:
> 
> Tim,
> 
> For moving between registries the approach you described sounds
> correct, admittedly it would be nice if there was an easier way.
> 
> In your case it is only two levels, but in general you'd have to start
> at the lowest level, and work your way up the levels, applying the
> correct ids from the level below.
> 
> -Bryan
> 
> 
> On Fri, Feb 1, 2019 at 11:44 AM Tim Dean <[email protected]> wrote:
>> 
>> Thanks Bryan -
>> 
>> If I use a nested versioned process group, it appears that the parent group 
>> will reference its child process groups by ID. If I am populating my 
>> registry in a new environment using the API, those IDs will be dynamically 
>> generated as I make the API calls, correct?
>> 
>> In that case, do I need to POST the child process groups first, get their 
>> bucket and flow IDs back from the registry API, and then manipulate the JSON 
>> for the parent process group to replace the contents of the 
>> “versionedFlowCoordinates” JSON object’s identifiers with the new IDs?
>> 
>> Or is there a better way to insert parent and child process groups via my 
>> scripts?
>> 
>> -Tim
>> 
>> On Jan 31, 2019, at 6:25 PM, Bryan Bende <[email protected]> wrote:
>> 
>> Hi Tim,
>> 
>> I think the second option is the correct approach. The higher level 
>> versioned PG is the way of saying that the lower level PGs work together as 
>> a cohesive unit.
>> 
>> -Bryan
>> 
>> On Thu, Jan 31, 2019 at 7:00 PM Tim Dean <[email protected]> wrote:
>>> 
>>> I am trying to automate deployment of a NiFi flow with several versioned 
>>> process groups using the NiFi APIs. The basic setup I have is this:
>>> 
>>> I have a dozen or so process groups, each of which has been versioned 
>>> within a NiFi registry
>>> My root process group contains each of those process groups, with various 
>>> connections between their ports as well as a few variable definitions and 
>>> controller service instances.
>>> 
>>> 
>>> My goal is to deploy this flow, including the root process group that links 
>>> the versioned PGs as well as the versioned PGs themselves. So far, I’ve 
>>> managed to use the registry API to create a bucket and to add the versioned 
>>> flows into the registry. Now I’m trying to use the NiFi APIs to instantiate 
>>> the root PG and link together all the versioned PGs that I have just 
>>> inserted into the registry.
>>> 
>>> The approach I have been trying is to capture my root PG as a template, and 
>>> then use the NiFi APIs to import and then instantiate that template. I have 
>>> gotten this much working, but unfortunately that leaves the PGs 
>>> disconnected from the versioned flows in the registry. I was hoping there 
>>> was a way to transform the template to insert the appropriate bucket and 
>>> flow IDs but I have been unable to figure out if this is possible.
>>> 
>>> Alternatively, I suspect I could create an intermediate process group to 
>>> contain all my “real” PGs, and then version that intermediate PG. I could 
>>> then use the APIs to instantiate a new PG at the root level that is 
>>> imported from the intermediate PG. I suspect that this could work, but it 
>>> is less than ideal because I’m creating an artificial intermediate PG to 
>>> contain all of my real contents, which will be a distraction for users who 
>>> come into the NiFi data flow manager to monitor this process.
>>> 
>>> Am I looking at this approach correctly? Are there other options I should 
>>> be considering?
>>> 
>>> Thanks in advance,
>>> 
>>> -Tim
>> 
>> --
>> Sent from Gmail Mobile
>> 
>> 

Reply via email to