Commit 1d3379c7d1b9f925e639bbfeaf8ae78107540e75

Authored by Sergio Oliveira
1 parent d0f0ebd9

Temporary work around to access solr behind proxy

This fix won't work well on production environments since
another request might occour while socket.socket still
configured to use proxy. This is not a big deal because
proxy here is meant only for test porpouses and more over
solrutils.py will be replaced by haystack.
Showing 1 changed file with 10 additions and 2 deletions   Show diff stats
src/colab/deprecated/solrutils.py
@@ -13,6 +13,10 @@ from dateutil.parser import parse as parse_timestamp @@ -13,6 +13,10 @@ from dateutil.parser import parse as parse_timestamp
13 from django.conf import settings 13 from django.conf import settings
14 14
15 from super_archives.models import EmailAddress 15 from super_archives.models import EmailAddress
  16 +from . import socks
  17 +
  18 +
  19 +DEFAULT_SOCKET = socket.socket
16 20
17 21
18 def build_query(user_query, filters=None): 22 def build_query(user_query, filters=None):
@@ -181,7 +185,6 @@ def select(query, results_per_page=None, page_number=None, sort=None, fields=Non @@ -181,7 +185,6 @@ def select(query, results_per_page=None, page_number=None, sort=None, fields=Non
181 # if the solr server is behind a firewall. 185 # if the solr server is behind a firewall.
182 socks_server = getattr(settings, "SOCKS_SERVER", None) 186 socks_server = getattr(settings, "SOCKS_SERVER", None)
183 if socks_server: 187 if socks_server:
184 - import socks  
185 logging.debug('Socks enabled: %s:%s', settings.SOCKS_SERVER, 188 logging.debug('Socks enabled: %s:%s', settings.SOCKS_SERVER,
186 settings.SOCKS_PORT) 189 settings.SOCKS_PORT)
187 190
@@ -196,6 +199,8 @@ def select(query, results_per_page=None, page_number=None, sort=None, fields=Non @@ -196,6 +199,8 @@ def select(query, results_per_page=None, page_number=None, sort=None, fields=Non
196 except socket.error as err: 199 except socket.error as err:
197 solr_response = None 200 solr_response = None
198 logging.exception(err) 201 logging.exception(err)
  202 + finally:
  203 + reset_defaultproxy()
199 204
200 if solr_response and solr_response.status == 200: 205 if solr_response and solr_response.status == 200:
201 #TODO: Log error connecting to solr 206 #TODO: Log error connecting to solr
@@ -266,4 +271,7 @@ def count_types(sample=100, filters=None): @@ -266,4 +271,7 @@ def count_types(sample=100, filters=None):
266 271
267 return type_count 272 return type_count
268 273
269 - 274 +
  275 +def reset_defaultproxy():
  276 + socket.socket = DEFAULT_SOCKET
  277 + socks._defaultproxy = None