Created 11-21-2018 08:50 AM
Hi, I have a processgroup which acts as a subroutine for many other processgroups. I started version control and imported this version into the other processgroups. Now I made changes which lead to a new version which should be substituted in all other processgroups.
Found in "NiFi Summary" -> "PROCESS GROUPS" the possibility to find all affected processgroups.
The question is: Is there an other possibility for substitution except going from here to every single processgroup for "Change version"?
Using NiFi 1.6.0
Thanks for any help!
Created on 05-10-2019 04:43 AM - edited 08-17-2019 04:30 PM
It seems no such function yet. I currently move all my stuff in a 'root' group and version control it. For example, let's assume there are two environments - dev and prod. And I just import the same version-controlled 'root' group twice and named them 'dev' and 'prod'. When 'root' group version changed, all processes and groups inside - including version-controlled groups - changed too.
dev has 2 version-controlled groups inside and prod has 1 currently
change prod version to 7 to sync
Created 11-19-2023 10:02 PM
Hi You have changed the version of prod from 5 to 7 manually by going to Ui, is it possible to do the same through nifi cli ? If yes then please share i dont want the manual intervention here to upgrade the version of process group
Thanks for the help
Created 05-13-2019 04:18 PM
https://raw.githubusercontent.com/archongum/NiFi-templates/master/VersioningUpdateFlowVer.xml
Apply "change version" of all process groups which share the same version-control flow(bucket/flow)
Some input attributes:
This template based on https://github.com/Chaffelson/nipyapi
Created 05-14-2019 06:52 AM
Hi, thanks for this awsome information! Something like this I was looking for but could not find...
Did you develope this solution?
Tested it on my local installation (1.9.1) and it worked perfect.
Now I have to prepare my offical DEV-Sytem with python and test it there (Cluster with 1.9.2) with more extensive flows.
I will let you know here whether the test was successfully.
Bye!
Created 05-14-2019 02:22 PM
Glad it works. I just wrote the nifi template and the python script inside it. Thanks to the `nipyapi` module.
Created on 05-15-2019 06:08 AM - edited 08-17-2019 04:30 PM
Hi, I was told Python 2.7.5 is already available on my DEV. Installed nipyapi and changed CommandPath in ExecuteStreamCommand. On execution this error happens:
Question: Is it absolutely necessary having Python3.x or can you see another cause for this exception?
Thanks for your help and this solution!
Created 05-29-2019 11:02 AM
Hi @Archon Gum
do you mind if I ask you one more time for your help?
I compared the bucket.py in Python37 (local) and Python275 (DEV-System with Cluster) but there is no difference.
Maybe you could give me a hint to solve this problem? Thanks!
Created on 05-30-2019 04:10 AM - edited 08-17-2019 04:30 PM
Hi
I tried but I can't reproduce it:
# 1. set identifier to None nipyapi.versioning.get_registry_bucket(identifier=None, identifier_type='name') # return: TypeError: 'in <string>' requires string as left operand, not NoneType # 2. empty all bucket in nifi-registry and try to get bucket nipyapi.versioning.get_registry_bucket(identifier='test', identifier_type='name') # return: None
I can't reach the code in quote:
1. If nifi-registry has buckets, each bucket's name will set to this 'name' parameter and can not be None at all.
2. If nifi-registry is empty(no bucket), the code won't be executed (because return a empty list)
My suggestions:
1. check `nipyapi.config.registry_config.host = 'http://your-server:18080/nifi-registry-api'`
2. try to use a new nifi-registry and run the code again to find out whether the error occurs. (I recommand using docker: https://hub.docker.com/r/apache/nifi-registry )
3. it seems python version is not the problem here.
Created 06-04-2019 06:20 AM
Hi @Archon Gum
thank you so much for your answer and your efforts!
Refering to your suggestions:
1. I checked the information and it is correct. BUT when I test to acces the REST-API of registry in an InvokeHTTP-Processor I have to type https.
So I changed this in "nipyapi.config.registry_config.host" and ended up with an certification failure. Here a part of it:
AttributeError: 'module' object has no attribute 'X509_up_ref' 2019-06-04 05:40:24,709 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),)': /nifi-registry-api/buckets 2019-06-04 05:40:24,709 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),)': /nifi-registry-api/buckets WARNING:urllib3.connectionpool:Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),)': /nifi-registry-api/buckets From cffi callback <function _verify_callback at 0x7f3a008085f0>
So I have to speak with the admin.
2. Because I'm not the "master of the installation" I can't do this just like that. But I will bear this in mind.
3. I agree.
If I get this work I will let you know. So long!