IATI / refresher

A Python application which has the responsibility of tracking IATI data from around the Web and refreshing the core IATI software's data stores
GNU Affero General Public License v3.0
2 stars 0 forks source link

Update Solr API Authentication with discrete username and password #17

Closed nosvalds closed 3 years ago

nosvalds commented 3 years ago

update auth to remove username password from url due to error with special characters in password

Error

2021-06-30 11:04:05,061 - refresh - ERROR - Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?
2021-06-30 11:04:05,061 - refresh - WARNING - Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?
2021-06-30 11:04:05,065 - refresh - INFO - Pinging Solr
2021-06-30 11:04:05,066 - refresh - ERROR - ERROR with Solrizing 5aba00d6c6d3a168888511f53988a7e511342f48
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 380, in prepare_url
    scheme, auth, host, port, path, query, fragment = parse_url(url)
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/url.py", line 392, in parse_url
    return six.raise_from(LocationParseError(source_url), None)
  File "<string>", line 3, in raise_from
urllib3.exceptions.LocationParseError: Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/code/library/solrize.py", line 38, in process_hash_list
    solr.ping()
  File "/usr/local/lib/python3.8/site-packages/pysolr.py", line 1265, in ping
    return self._send_request("get", path)
  File "/usr/local/lib/python3.8/site-packages/pysolr.py", line 416, in _send_request
    resp = requests_method(
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 516, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 449, in prepare_request
    p.prepare(
  File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 314, in prepare
    self.prepare_url(url, params)
  File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 382, in prepare_url
    raise InvalidURL(*e.args)
requests.exceptions.InvalidURL: Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?

2021-06-30 11:04:05,066 - refresh - ERROR - Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?
2021-06-30 11:04:05,066 - refresh - WARNING - Failed to parse: https://admin:PW@default-iati-prod-solrcloud.solr.iatistandard.org/solr/activity/admin/ping/?
2021-06-30 11:04:05,066 - refresh - INFO - Finished.

Following this suggested fix

https://stackoverflow.com/questions/26197494/authenticating-connection-in-pysolr

nosvalds commented 3 years ago

Will need to Update Secrets: SOLR_API_URL - careful not to break main.yml deployment that uses this... should be fine until next time this is pushed.

Will need to Add Secrets: SOLR_USER SOLR_PASSWORD