During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/sam/Documents/freenet/nifi-automation/src/compose.py", line 122, in <module>
compose_services(env_config, types, NIFI_VERSION, False, bench)
File "/home/sam/Documents/freenet/nifi-automation/src/compose.py", line 11, in compose_services
pg = ProcessorGroups(NIFI_VERSION)
File "/home/sam/Documents/freenet/nifi-automation/src/components/processor_group.py", line 9, in __init__
processor_groups = nipyapi.canvas.list_all_process_groups(pg_id='root')
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 178, in list_all_process_groups
root_flow = recurse_flow(pg_id)
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 64, in recurse_flow
return _walk_flow(get_flow(pg_id))
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 85, in get_flow
raise ValueError(err.body)
ValueError: No applicable policies could be found. Contact the system administrator.
Process finished with exit code 1
У меня есть несколько NIFI сценариев автоматизации, которые прекрасно работают, когда я работаю на незащищенном кластере (localhost / или somehwere), но я получаю эту ошибку, когда я запускаю URL-адрес, который находится за KNOX gateway .Я вижу несколько функций в nipyapi.access_api class
- def knox_callback (** kwargs)
- def knox_callback_with_http_info (self, ** kwargs):
- def knox_request (self, ** kwargs):
- def knox_request_with_http_info (self, ** kwargs):
Я не могу понять, как любой из них или в комбинациис какой-либо другой функцией из класса, которая / должна быть использована для преодоления этого?Любая идея?
EDIT1: IM с использованием функции security.py сначала является secure_login.В документах для его письменного входа в систему требуется безопасное соединение через https.Перед вызовом этого метода необходимо указать хост и настроить SSLContext (при необходимости). set_service_ssl_context эта функция служит цели, но я не уверен, нужна она мне или нет, так как для одностороннего TSL она не требуется.
Но у меня путаница.У меня есть два URL: один Knox URl с LDAP-входом, другой прямой URI (хотя он также перенаправляет на последовательность knox-Ldap). Когда я даю URL Knox, я получаю другую ошибку по сравнению с прямой.
от прямойURI я получаю
File /nipyapi/security.py", line 130, in service_login
username=username, password=password)
nipyapi.nifi.rest.ApiException: (409)
Reason: Conflict
HTTP response body: Username/Password login not supported by this NiFi.
И в случае Knox uri он выдает то же исключение ошибки соединения на тех же строках, но
nipyapi.nifi.rest.ApiException: (404)
Reason: Not Found
Так что я предполагаю, что мне нужно использовать прямой URL.во-вторых, почему он говорит, что пользователь не для.Я могу войти в систему вручную.из последовательности LDAP.Мой текущий запрос выполняется как анонимный пользователь, поэтому я собираюсь использовать Certs и попробовать функцию set_service_ssl_context с файлами PEM.
Кстати, ниже приведены два URL.
"nifi_host": "https://****.****.net:8443/nifi-api", ПРЯМОЙ URL
" nifi_host ":" https://**** -****. ****. net: 8443 / gateway / **** - sso / nifi-api ", URL-адрес knox
РЕДАКТИРОВАТЬ 2: мой запрос принимается на сервер как анонимный даже со следующим кодом.
nipyapi.security.set_service_ssl_context(service='nifi', ca_file=None, client_cert_file="bi.keystore", client_key_file=None, client_key_password="infraop6043")
nipyapi.security.service_login(username='myuser', password='mypass')
здесь выдается ошибка соединения
nipyapi.nifi.AccessApi (). create_access_token (username = username,пароль = пароль) И показать эту ошибку Тело HTTP-ответа: Имя пользователя / пароль не поддерживаются этим NiFi
Я не уверен, как правильно использовать set_service_ssl_context. Возможно, вместо bi.keystore я должен попробовать использовать напрямуюфайл letsencrypt-root-ca: letsencrypt.org/certs/isrgrootx1.pem.txt или мои локальные системные сертификаты.
мой файл свойств для toolkit-cli был
* baseUrl = https://svc -hadoop-utilities-pre-c3-02.jamba.net: 18443
хранилище ключей = / home / jread / nifi-toolkit / bi.keystore
keystoreType = JKS
keystorePasswd = infraop6043
keyPasswd =
truststore = / usr / lib / java / jre / lib / security / cacerts
truststoreType = JKS
truststorePasswd = changeit
proxiedEntity = CN = bijobs.jamba.net *