Merge pull request #127 from keitaroinc/fix-solr-issue

rewrite ckan 2.10 prerun script to connect to solr
This commit is contained in:
KirilPoposki98 2024-03-07 14:55:31 +01:00 committed by GitHub
commit e04af272f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 10 deletions

View File

@ -13,16 +13,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from multiprocessing import connection
import os
import sys
import subprocess
import psycopg2
from sqlalchemy.engine.url import make_url
import urllib.request, urllib.error, urllib.parse
import urllib.request, urllib.error, urllib.parse, base64
import re
import json
import time
ckan_ini = os.environ.get('CKAN_INI', '/srv/app/production.ini')
@ -70,20 +70,18 @@ def check_solr_connection(retry=None):
sys.exit(1)
url = os.environ.get('CKAN_SOLR_URL', '')
username = os.environ.get('SOLR_ADMIN_USERNAME', 'admin')
password = os.environ.get('SOLR_ADMIN_PASSWORD', 'pass')
username = os.environ.get('CKAN_SOLR_USER', '')
password = os.environ.get('CKAN_SOLR_PASSWORD', '')
search_url = '{url}/schema/name?wt=json'.format(url=url)
try:
if not username:
connection = urllib.request.urlopen(search_url)
else:
passman = urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, search_url, username, password)
authhandler = urllib.request.HTTPBasicAuthHandler(passman)
opener = urllib.request.build_opener(authhandler)
urllib.request.install_opener(opener)
connection = urllib.request.urlopen(search_url)
request = urllib.request.Request(search_url)
base64string = base64.b64encode(bytes('%s:%s' % (username, password),'ascii'))
request.add_header("Authorization", "Basic %s" % base64string.decode('utf-8'))
connection = urllib.request.urlopen(request)
except urllib.error.URLError as e:
print('[prerun] Unable to connect to solr...try again in a while.')
import time