Chaffelson / nipyapi

A convenient Python wrapper for Apache NiFi
Other
244 stars 76 forks source link

Connect to nifi inside docker container #212

Closed NonaryR closed 4 years ago

NonaryR commented 4 years ago

Description

I'm using nifi at docker-compose and when I try to connect to nifi from another container -- first, simple step, I'm getting this error.

>>> import nipyapi
>>> nipyapi.config.nifi_config.host = 'http://nifi:8080/nifi'
>>> nipyapi.canvas.get_root_pg_id()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/canvas.py", line 41, in get_root_pg_id
    return nipyapi.nifi.FlowApi().get_process_group_status('root') \
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2723, in get_process_group_status
    (data) = self.get_process_group_status_with_http_info(id, **kwargs)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2813, in get_process_group_status_with_http_info
    collection_formats=collection_formats)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 326, in call_api
    _return_http_data_only, collection_formats, _preload_content, _request_timeout)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 153, in __call_api
    _request_timeout=_request_timeout)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 349, in request
    headers=headers)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 233, in GET
    query_params=query_params)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 224, in request
    raise ApiException(http_resp=r)
nipyapi.nifi.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Date': 'Fri, 17 Jul 2020 17:57:59 GMT', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Security-Policy': "frame-ancestors 'self'", 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Length': '0', 'Server': 'Jetty(9.4.19.v20190610)'})

http://nifi:8080/nifi - it's totally valid address, I can ping it from same container

root@66863ca8e7ac:/app# ping -c 2 nifi
PING nifi (192.168.32.10) 56(84) bytes of data.
64 bytes from nifi.dataflow-demo_default (192.168.32.10): icmp_seq=1 ttl=64 time=0.132 ms
64 bytes from nifi.dataflow-demo_default (192.168.32.10): icmp_seq=2 ttl=64 time=0.139 ms

--- nifi ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.132/0.135/0.139/0.012 ms

And if I pass ports in docker-compose, like 8080:8080 and then connect from my host python interpreter, everything works fine

>>> import nipyapi
>>> nipyapi.config.nifi_config.host = 'http://localhost:8080/nifi'
>>> nipyapi.canvas.get_root_pg_id()
'5dd021c8-0173-1000-e4e2-50d8f5a018e4'
Chaffelson commented 4 years ago

You need to use 'http://nifi:8080/nifi-api'

On Fri, Jul 17, 2020 at 7:05 PM NonaryR notifications@github.com wrote:

  • Nipyapi version:0.14.3
  • NiFi version:1.11
  • Python version:3.7.7
  • Operating System:os x

Description

I'm using nifi at docker-compose and when I try to connect to nifi from another container -- first, simple step, I'm getting this error.

import nipyapi nipyapi.config.nifi_config.host = 'http://nifi:8080/nifi' nipyapi.canvas.get_root_pg_id() Traceback (most recent call last): File "", line 1, in File "/opt/conda/lib/python3.7/site-packages/nipyapi/canvas.py", line 41, in get_root_pg_id return nipyapi.nifi.FlowApi().get_process_group_status('root') \ File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2723, in get_process_group_status (data) = self.get_process_group_status_with_http_info(id, **kwargs) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2813, in get_process_group_status_with_http_info collection_formats=collection_formats) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 326, in call_api _return_http_data_only, collection_formats, _preload_content, _request_timeout) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 153, in __call_api _request_timeout=_request_timeout) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 349, in request headers=headers) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 233, in GET query_params=query_params) File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 224, in request raise ApiException(http_resp=r) nipyapi.nifi.rest.ApiException: (404) Reason: Not Found HTTP response headers: HTTPHeaderDict({'Date': 'Fri, 17 Jul 2020 17:57:59 GMT', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Security-Policy': "frame-ancestors 'self'", 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Length': '0', 'Server': 'Jetty(9.4.19.v20190610)'})

http://nifi:8080/nifi - it's totally valid address, I can ping it from same container

root@66863ca8e7ac:/app# ping -c 2 nifi PING nifi (192.168.32.10) 56(84) bytes of data. 64 bytes from nifi.dataflow-demo_default (192.168.32.10): icmp_seq=1 ttl=64 time=0.132 ms 64 bytes from nifi.dataflow-demo_default (192.168.32.10): icmp_seq=2 ttl=64 time=0.139 ms

--- nifi ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.132/0.135/0.139/0.012 ms

And if I pass ports in docker-compose, like 8080:8080 and then connect from my host python interpreter, everything works fine

import nipyapi nipyapi.config.nifi_config.host = 'http://localhost:8080/nifi' nipyapi.canvas.get_root_pg_id() '5dd021c8-0173-1000-e4e2-50d8f5a018e4'

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Chaffelson/nipyapi/issues/212, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACZAZOHYAFM5KWZQT7IK44LR4CHFBANCNFSM4O6UZYKQ .

NonaryR commented 4 years ago

no, I've tried it already

>>> nipyapi.config.nifi_config.host = 'http://nifi:8080/nifi-api'
>>> nipyapi.canvas.get_root_pg_id()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/canvas.py", line 41, in get_root_pg_id
    return nipyapi.nifi.FlowApi().get_process_group_status('root') \
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2723, in get_process_group_status
    (data) = self.get_process_group_status_with_http_info(id, **kwargs)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/apis/flow_api.py", line 2813, in get_process_group_status_with_http_info
    collection_formats=collection_formats)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 326, in call_api
    _return_http_data_only, collection_formats, _preload_content, _request_timeout)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 153, in __call_api
    _request_timeout=_request_timeout)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/api_client.py", line 349, in request
    headers=headers)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 233, in GET
    query_params=query_params)
  File "/opt/conda/lib/python3.7/site-packages/nipyapi/nifi/rest.py", line 224, in request
    raise ApiException(http_resp=r)
nipyapi.nifi.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Date': 'Fri, 17 Jul 2020 18:15:48 GMT', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Security-Policy': "frame-ancestors 'self'", 'X-XSS-Protection': '1; mode=block', 'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Length': '0', 'Server': 'Jetty(9.4.19.v20190610)'})
NonaryR commented 4 years ago

So, if I reattach to my container, and this is worked! Thx! And sorry for bothering