Up_One
Up_One

Reputation: 5271

Apache NiFi Controller Start not working with nipyapi client

I have been using nipyapi client to manage new Apache NiFi deployments and is working great, but i am getting an issue when trying to ENABLE a Controller Services.

My Setup:

I run NiFi in docker and every time a container starts there is a series of steps such as :

import nipyapi
nipyapi.config.nifi_config.host = 'http://localhost:9999/nifi-api'
nipyapi.canvas.get_controller('MariaDB', identifier_type='name', bool_response=False)
#Enable Controler
headers = {'Content-Type': 'application/json'}
url = 'http://localhost:9999/nifi-api/flow/process-groups/'+nipyapi.canvas.get_root_pg_id()+'/controller-services'
r = requests.get(url)
reponse = json.loads(r.text)
controllerId = reponse['controllerServices'][0]['id']

nipyapi.canvas.schedule_controller(controllerId, 'True', refresh=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/nipyapi/canvas.py", line 1222, in schedule_controller
    assert isinstance(controller, nipyapi.nifi.ControllerServiceEntity)
AssertionError

Not sure what i am missing !

PS - i have been trying nifi-toolkit but is not working as well

 ./cli.sh nifi pg-enable-services --processGroupId 2b8b54ca-016b-1000-0655-c3ec484fd81d -u http://localhost:9999 --verbose

Sometimes it works sometimes does not work !

I would like to stick with one tool eg: toolkit or nipyapi (faster)

Any Help would be great ! thx

Upvotes: 0

Views: 490

Answers (1)

Chaffelson
Chaffelson

Reputation: 1269

Per the error, NiPyAPI expects to be passed the Controller object, not just the ID.

Upvotes: 3

Related Questions