FATAL: remaining connection slots are reserved for non-replication superuser connections
Request Method: | GET |
---|---|
Request URL: | https://catalogue.harpercollins.co.uk/api/?path=gsd&isbn=9780007214617 |
Django Version: | 1.10.8 |
Exception Type: | OperationalError |
Exception Value: | FATAL: remaining connection slots are reserved for non-replication superuser connections |
Exception Location: | /var/www/venv/local/lib/python2.7/site-packages/psycopg2/__init__.py in connect, line 127 |
Python Executable: | /var/www/venv/bin/uwsgi |
Python Version: | 2.7.17 |
Python Path: | ['.', '', '/var/www/venv/lib/python2.7', '/var/www/venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/www/venv/lib/python2.7/lib-tk', '/var/www/venv/lib/python2.7/lib-old', '/var/www/venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/www/venv/local/lib/python2.7/site-packages', '/var/www/venv/lib/python2.7/site-packages', '/var/www/code/catalogue_app/settings', '/var/www/code/catalogue_app/catalogue_app', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf', '/var/www/venv/local/lib/python2.7/site-packages/odf'] |
Server time: | Sun, 30 May 2021 06:00:52 +0100 |
/var/www/venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py
in inner
This decorator is automatically applied to all middleware to ensure that
no middleware leaks an exception and that the next middleware in the stack
can rely on getting a response instead of an exception.
"""
@wraps(get_response, assigned=available_attrs(get_response))
def inner(request):
try:
response = get_response(request)...
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',) |
get_response | <bound method WSGIHandler._legacy_get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f3472c3cb50>> |
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
/var/www/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py
in _legacy_get_response
# Apply request middleware
for middleware_method in self._request_middleware:
response = middleware_method(request)
if response:
break
if response is None:
response = self._get_response(request)...
return response
Variable | Value |
---|---|
middleware_method | <FunctionWrapper at 0x7f346b97c520 for instancemethod at 0x7f346bf929b0> |
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f3472c3cb50> |
/var/www/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py
in _get_response
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
except Exception as e:
response = self.process_exception_by_middleware(e, request)...
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
view_name = callback.__name__
else: # CBV
Variable | Value |
---|---|
callback | <FunctionWrapper at 0x7f346a626ad0 for function at 0x7f346ce10f50> |
callback_args | () |
callback_kwargs | {} |
e | OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',) |
middleware_method | <FunctionWrapper at 0x7f346b97c440 for instancemethod at 0x7f346bf920a0> |
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
resolver | <RegexURLResolver 'catalogue_app.urls' (None:None) ^/> |
resolver_match | ResolverMatch(func=catalogue_api.views.catalogue_api, args=(), kwargs={}, url_name=catalogue-apis, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f3472c3cb50> |
wrapped_callback | <FunctionWrapper at 0x7f346a626ad0 for function at 0x7f346ce10f50> |
/var/www/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py
in _get_response
response = middleware_method(request, callback, callback_args, callback_kwargs)
if response:
break
if response is None:
wrapped_callback = self.make_view_atomic(callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)...
except Exception as e:
response = self.process_exception_by_middleware(e, request)
# Complain if the view returned None (a common error).
if response is None:
if isinstance(callback, types.FunctionType): # FBV
Variable | Value |
---|---|
callback | <FunctionWrapper at 0x7f346a626ad0 for function at 0x7f346ce10f50> |
callback_args | () |
callback_kwargs | {} |
e | OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',) |
middleware_method | <FunctionWrapper at 0x7f346b97c440 for instancemethod at 0x7f346bf920a0> |
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
resolver | <RegexURLResolver 'catalogue_app.urls' (None:None) ^/> |
resolver_match | ResolverMatch(func=catalogue_api.views.catalogue_api, args=(), kwargs={}, url_name=catalogue-apis, app_names=[], namespaces=[]) |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f3472c3cb50> |
wrapped_callback | <FunctionWrapper at 0x7f346a626ad0 for function at 0x7f346ce10f50> |
/var/www/venv/local/lib/python2.7/site-packages/newrelic/hooks/framework_django.py
in wrapper
if transaction is None:
return wrapped(*args, **kwargs)
transaction.set_transaction_name(name, priority=priority)
with FunctionTrace(name=name):
try:
return wrapped(*args, **kwargs)...
except: # Catch all
exc_info = sys.exc_info()
try:
# Store exc_info on the request to check response code
# prior to reporting
Variable | Value |
---|---|
args | (<WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'>,) |
exc_info | (<class 'django.db.utils.OperationalError'>, OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',), <traceback object at 0x7f34689fc050>) |
instance | None |
kwargs | {} |
name | 'catalogue_api.views:catalogue_api' |
priority | 5 |
transaction | <newrelic.api.web_transaction.WSGIWebTransaction object at 0x7f34686c4950> |
wrapped | <function catalogue_api at 0x7f346ce10f50> |
./catalogue_api/views.py
in catalogue_api
# @cache_page(settings.API_CACHE_TIMEOUT_SECS)
def catalogue_api(request):
""" Return API data in a variety of formats, specified in the API object
Note the use of 'token required' decorator means we use this wrapper view style
"""
api = get_api_definition(request)...
api.es_search_index = settings.ELASTICSEARCH_INDEX
if api.secure:
return secure_catalogue_response(request, api)
else:
return insecure_catalogue_response(request, api)
Variable | Value |
---|---|
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
./catalogue_api/views.py
in get_api_definition
return insecure_catalogue_response(request, api)
def get_api_definition(request):
path = request.GET.get('path')
logging_details("info", 'API call for: %s' % str(path))
try:
api = ApiDefinition.objects.get(path=path)...
logging_details('info', 'Api name: ' + api.name + ' [' + str(api.id) + ']')
return api
except (ApiDefinition.DoesNotExist, ApiDefinition.MultipleObjectsReturned):
logging_details("critical", 'That API end-point does not exist, or has an error: %s' % str(path))
raise Http404('That API end-point does not exist, or has an error')
Variable | Value |
---|---|
path | u'gsd' |
request | <WSGIRequest: GET '/api/?path=gsd&isbn=9780007214617'> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/manager.py
in manager_method
def check(self, **kwargs):
return []
@classmethod
def _get_queryset_methods(cls, queryset_class):
def create_method(name, method):
def manager_method(self, *args, **kwargs):
return getattr(self.get_queryset(), name)(*args, **kwargs)...
manager_method.__name__ = method.__name__
manager_method.__doc__ = method.__doc__
return manager_method
new_methods = {}
# Refs http://bugs.python.org/issue1785.
Variable | Value |
---|---|
args | () |
kwargs | {'path': u'gsd'} |
name | 'get' |
self | <django.db.models.manager.Manager object at 0x7f346a504e10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/query.py
in get
"""
Performs the query and returns a single object matching the given
keyword arguments.
"""
clone = self.filter(*args, **kwargs)
if self.query.can_filter() and not self.query.distinct_fields:
clone = clone.order_by()
num = len(clone)...
if num == 1:
return clone._result_cache[0]
if not num:
raise self.model.DoesNotExist(
"%s matching query does not exist." %
self.model._meta.object_name
Variable | Value |
---|---|
args | () |
clone | Error in formatting: OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections |
kwargs | {'path': u'gsd'} |
self | Error in formatting: OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/query.py
in __len__
def __repr__(self):
data = list(self[:REPR_OUTPUT_SIZE + 1])
if len(data) > REPR_OUTPUT_SIZE:
data[-1] = "...(remaining elements truncated)..."
return '<QuerySet %r>' % data
def __len__(self):
self._fetch_all()...
return len(self._result_cache)
def __iter__(self):
"""
The queryset iterator protocol uses three nested iterators in the
default case:
Variable | Value |
---|---|
self | Error in formatting: OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/query.py
in _fetch_all
clone._fields = self._fields
clone.__dict__.update(kwargs)
return clone
def _fetch_all(self):
if self._result_cache is None:
self._result_cache = list(self.iterator())...
if self._prefetch_related_lookups and not self._prefetch_done:
self._prefetch_related_objects()
def _next_is_sticky(self):
"""
Indicates that the next filter call and the one following that should
Variable | Value |
---|---|
self | Error in formatting: OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/query.py
in __iter__
def __iter__(self):
queryset = self.queryset
db = queryset.db
compiler = queryset.query.get_compiler(using=db)
# Execute the query. This will also fill compiler.select, klass_info,
# and annotations.
results = compiler.execute_sql()...
select, klass_info, annotation_col_map = (compiler.select, compiler.klass_info,
compiler.annotation_col_map)
if klass_info is None:
return
model_cls = klass_info['model']
select_fields = klass_info['select_fields']
Variable | Value |
---|---|
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7f34689f7b90> |
db | 'default' |
queryset | Error in formatting: OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections |
self | <django.db.models.query.ModelIterable object at 0x7f34689f7c10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py
in execute_sql
raise EmptyResultSet
except EmptyResultSet:
if result_type == MULTI:
return iter([])
else:
return
cursor = self.connection.cursor()...
try:
cursor.execute(sql, params)
except Exception:
cursor.close()
raise
Variable | Value |
---|---|
params | (u'gsd',) |
result_type | 'multi' |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7f34689f7b90> |
sql | u'SELECT "catalogue_api_apidefinition"."id", "catalogue_api_apidefinition"."name", "catalogue_api_apidefinition"."path", "catalogue_api_apidefinition"."product_filter_id", "catalogue_api_apidefinition"."api_template_id", "catalogue_api_apidefinition"."secure", "catalogue_api_apidefinition"."paged", "catalogue_api_apidefinition"."delta_enabled", "catalogue_api_apidefinition"."custom_metadata", "catalogue_api_apidefinition"."definition_description", "catalogue_api_apidefinition"."created", "catalogue_api_apidefinition"."modified" FROM "catalogue_api_apidefinition" WHERE "catalogue_api_apidefinition"."path" = %s' |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py
in cursor
def cursor(self):
"""
Creates a cursor, opening a connection if necessary.
"""
self.validate_thread_sharing()
if self.queries_logged:
cursor = self.make_debug_cursor(self._cursor())...
else:
cursor = self.make_cursor(self._cursor())
return cursor
def commit(self):
"""
Variable | Value |
---|---|
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py
in _cursor
if self.connection is None:
with self.wrap_database_errors:
self.connect()
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _cursor(self):
self.ensure_connection()...
with self.wrap_database_errors:
return self.create_cursor()
def _commit(self):
if self.connection is not None:
with self.wrap_database_errors:
Variable | Value |
---|---|
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py
in ensure_connection
def ensure_connection(self):
"""
Guarantees that a connection to the database is established.
"""
if self.connection is None:
with self.wrap_database_errors:
self.connect()...
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _cursor(self):
self.ensure_connection()
with self.wrap_database_errors:
Variable | Value |
---|---|
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/utils.py
in __exit__
dj_exc_value.__cause__ = exc_value
if not hasattr(exc_value, '__traceback__'):
exc_value.__traceback__ = traceback
# Only set the 'errors_occurred' flag for errors that may make
# the connection unusable.
if dj_exc_type not in (DataError, IntegrityError):
self.wrapper.errors_occurred = True
six.reraise(dj_exc_type, dj_exc_value, traceback)...
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
Variable | Value |
---|---|
db_exc_type | <class 'psycopg2.OperationalError'> |
dj_exc_type | <class 'django.db.utils.OperationalError'> |
dj_exc_value | OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',) |
exc_type | <class 'psycopg2.OperationalError'> |
exc_value | OperationalError('FATAL: remaining connection slots are reserved for non-replication superuser connectionsn',) |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7f346a512410> |
traceback | <traceback object at 0x7f3468611140> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py
in ensure_connection
def ensure_connection(self):
"""
Guarantees that a connection to the database is established.
"""
if self.connection is None:
with self.wrap_database_errors:
self.connect()...
# ##### Backend-specific wrappers for PEP-249 connection methods #####
def _cursor(self):
self.ensure_connection()
with self.wrap_database_errors:
Variable | Value |
---|---|
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/base/base.py
in connect
# Reset parameters defining when to close the connection
max_age = self.settings_dict['CONN_MAX_AGE']
self.close_at = None if max_age is None else time.time() + max_age
self.closed_in_transaction = False
self.errors_occurred = False
# Establish the connection
conn_params = self.get_connection_params()
self.connection = self.get_new_connection(conn_params)...
self.set_autocommit(self.settings_dict['AUTOCOMMIT'])
self.init_connection_state()
connection_created.send(sender=self.__class__, connection=self)
self.run_on_commit = []
Variable | Value |
---|---|
conn_params | {'database': 'cat_app', 'host': 'localhost', 'password': 'password', 'user': 'cat_app_user'} |
max_age | 0 |
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/django/db/backends/postgresql/base.py
in get_new_connection
if settings_dict['HOST']:
conn_params['host'] = settings_dict['HOST']
if settings_dict['PORT']:
conn_params['port'] = settings_dict['PORT']
return conn_params
def get_new_connection(self, conn_params):
connection = Database.connect(**conn_params)...
# self.isolation_level must be set:
# - after connecting to the database in order to obtain the database's
# default when no value is explicitly specified in options.
# - before calling _set_autocommit() because if autocommit is on, that
# will set connection.isolation_level to ISOLATION_LEVEL_AUTOCOMMIT.
Variable | Value |
---|---|
conn_params | {'database': 'cat_app', 'host': 'localhost', 'password': 'password', 'user': 'cat_app_user'} |
self | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7f34726b8b10> |
/var/www/venv/local/lib/python2.7/site-packages/newrelic/hooks/database_psycopg2.py
in __call__
__connection_wrapper__ = ConnectionWrapper
def __call__(self, *args, **kwargs):
if _bind_connect(*args, **kwargs):
self.__connection_wrapper__ = ConnectionSaveParamsWrapper
return super(ConnectionFactory, self).__call__(*args, **kwargs)...
def instance_info(args, kwargs):
p_host, p_hostaddr, p_port, p_dbname = _parse_connect_params(args, kwargs)
host, port, db_name = _add_defaults(p_host, p_hostaddr, p_port, p_dbname)
Variable | Value |
---|---|
args | () |
kwargs | {'database': 'cat_app', 'host': 'localhost', 'password': 'password', 'user': 'cat_app_user'} |
self | <ConnectionFactory at 0x7f346dce9370 for function at 0x7f346dccf0d0> |
/var/www/venv/local/lib/python2.7/site-packages/newrelic/hooks/database_dbapi2.py
in __call__
rollup.append('Datastore/all')
rollup.append('Datastore/%s/all' %
self._nr_dbapi2_module._nr_database_product)
with FunctionTrace(callable_name(self.__wrapped__),
terminal=True, rollup=rollup):
return self.__connection_wrapper__(self.__wrapped__(
*args, **kwargs), self._nr_dbapi2_module, (args, kwargs))...
def instrument(module):
register_database_client(module, 'DBAPI2', 'single')
wrap_object(module, 'connect', ConnectionFactory, (module,))
Variable | Value |
---|---|
args | () |
kwargs | {'database': 'cat_app', 'host': 'localhost', 'password': 'password', 'user': 'cat_app_user'} |
rollup | ['Datastore/all', 'Datastore/Postgres/all'] |
self | <ConnectionFactory at 0x7f346dce9370 for function at 0x7f346dccf0d0> |
settings | {'app_name': 'Catalogue app production', 'serverless_mode': {'enabled': False}, 'audit_log_file': None, 'shutdown_timeout': 2.5, 'compressed_content_encoding': 'gzip', 'js_agent_file': None, 'console': {'allow_interpreter_cmd': False, 'listener_socket': None}, 'proxy_host': None, 'ignored_params': [], 'high_security': False, 'sampling_target_period_in_seconds': 60, 'sampling_rate': 0, 'api_key': None, 'span_events': {'attributes': {'exclude': [], 'include': [], 'enabled': True}, 'enabled': True}, 'labels': [], 'account_id': None, 'request_headers_map': {}, 'ssl': True, 'cross_application_tracer': {'enabled': True}, 'collect_errors': True, 'capture_environ': True, 'slow_sql': {'enabled': True}, 'message_tracer': {'segment_parameters_enabled': True}, 'distributed_tracing': {'enabled': False, 'exclude_newrelic_header': False}, 'collect_analytics_events': True, 'max_payload_size_in_bytes': 1000000, 'transaction_segment_terms': [], 'debug': {'log_autorum_middleware': False, 'log_untrusted_distributed_trace_keys': False, 'log_malformed_json_data': False, 'disable_harvest_until_shutdown': False, 'ignore_all_server_settings': False, 'connect_span_stream_in_developer_mode': False, 'log_transaction_trace_payload': False, 'log_data_collector_calls': False, 'explain_plan_obfuscation': 'simple', 'log_raw_metric_data': False, 'enable_coroutine_profiling': False, 'record_transaction_failure': False, 'log_normalized_metric_data': False, 'log_data_collector_payloads': False, 'log_agent_initialization': False, 'log_normalization_rules': False, 'local_settings_overrides': [], 'disable_certificate_validation': False, 'disable_api_supportability_metrics': False, 'log_thread_profile_payload': False, 'log_explain_plan_queries': False}, 'transaction_name': {'limit': None, 'naming_scheme': None}, 'event_loop_visibility': {'blocking_threshold': 0.1, 'enabled': True}, 'include_environ': ['REQUEST_METHOD', 'HTTP_USER_AGENT', 'HTTP_REFERER', 'CONTENT_TYPE', 'CONTENT_LENGTH', 'HTTP_HOST', 'HTTP_ACCEPT'], 'transaction_tracer': {'top_n': 20, 'explain_threshold': 0.5, 'enabled': True, 'function_trace': [], 'record_sql': 'obfuscated', 'generator_trace': [], 'attributes': {'exclude': [], 'include': [], 'enabled': True}, 'explain_enabled': True, 'transaction_threshold': None, 'stack_trace_threshold': 0.5}, 'datastore_tracer': {'database_name_reporting': {'enabled': True}, 'instance_reporting': {'enabled': True}}, 'trusted_account_ids': [], 'thread_profiler': {'enabled': True}, 'port': 0, 'proxy_pass': None, 'entity_guid': None, 'proxy_scheme': None, 'synthetics': {'enabled': True}, 'rum': {}, 'browser_monitoring': {'enabled': True, 'ssl_for_http': None, 'loader': 'rum', 'content_type': ['text/html'], 'debug': False, 'attributes': {'exclude': [], 'include': [], 'enabled': False}, 'auto_instrument': True, 'loader_version': None}, 'monitor_mode': True, 'beacon': None, 'strip_exception_messages': {'whitelist': [], 'enabled': False}, 'primary_application_id': 'Unknown', 'error_beacon': None, 'proxy_port': 0, 'proxy_user': None, 'agent_run_id': None, 'host': 'collector.newrelic.com', 'attributes': {'exclude': [], 'include': [], 'enabled': True}, 'startup_timeout': 100.0, 'encoding_key': None, 'error_collector': {'ignore_status_codes': set([200, 201, 202, 203, 204, 205, 206, 207, 208, 404, 226, 100, 101, 102, 300, 301, 302, 303, 304, 305, 306, 307, 308]), 'capture_events': True, 'enabled': True, 'capture_source': False, 'ignore_errors': [], 'attributes': {'exclude': [], 'include': [], 'enabled': True}}, 'capture_params': None, 'infinite_tracing': {'ssl': True, 'span_queue_size': 10000, '_trace_observer_host': None, 'trace_observer_port': 443}, 'transaction_name_rules': [], 'environment': 'production', 'metric_name_rules': [], 'agent_limits': {'slow_sql_data': 10, 'max_sql_connections': 4, 'sql_query_length_maximum': 16384, 'slow_sql_stack_trace': 30, 'thread_profiler_nodes': 20000, 'data_compression_level': None, 'transaction_traces_nodes': 2000, 'data_compression_threshold': 65536, 'merge_stats_maximum': None, 'synthetics_transactions': 20, 'slow_transaction_dry... <trimmed 5822 bytes string> |
transaction | <newrelic.api.web_transaction.WSGIWebTransaction object at 0x7f34686c4950> |
/var/www/venv/local/lib/python2.7/site-packages/psycopg2/__init__.py
in connect
if 'async_' in kwargs:
kwasync['async_'] = kwargs.pop('async_')
if dsn is None and not kwargs:
raise TypeError('missing dsn and no parameters')
dsn = _ext.make_dsn(dsn, **kwargs)
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)...
if cursor_factory is not None:
conn.cursor_factory = cursor_factory
return conn
Variable | Value |
---|---|
connection_factory | None |
cursor_factory | None |
dsn | 'host=localhost password=password user=cat_app_user dbname=cat_app' |
kwargs | {'database': 'cat_app', 'host': 'localhost', 'password': 'password', 'user': 'cat_app_user'} |
kwasync | {} |
AnonymousUser
Variable | Value |
---|---|
path | u'gsd' |
isbn | u'9780007214617' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | '' |
DOCUMENT_ROOT | '/etc/nginx/html' |
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'deflate, gzip' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'catalogue.harpercollins.co.uk' |
HTTP_REFERER | 'https://catalogue.harpercollins.co.uk/api/?path=gsd&isbn=9780007214617' |
HTTP_USER_AGENT | 'WordPress/5.7.2; http://www.4thestate.co.uk' |
HTTP_X_NEWRELIC_ID | 'VQYAWV5UChACXFZaDwADUA==' |
HTTP_X_NEWRELIC_TRANSACTION | 'PxQPBFNSWwVSAANaA1RWUVAHFB8EBw8RVU4aWl0NBVEFB10DCVVWA1MCAUNKQQABBAUEV1MJFTs=' |
PATH_INFO | u'/api/' |
QUERY_STRING | 'path=gsd&isbn=9780007214617' |
REMOTE_ADDR | '52.17.236.86' |
REMOTE_PORT | '42422' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/api/?path=gsd&isbn=9780007214617' |
SCRIPT_NAME | u'' |
SERVER_NAME | 'catalogue.harpercollins.co.uk' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
uwsgi.node | 'hcukazprocatap01' |
uwsgi.version | '2.0.19.1' |
wsgi.errors | <open file 'wsgi_errors', mode 'w' at 0x7f346b975660> |
wsgi.file_wrapper | '' |
wsgi.input | <newrelic.api.wsgi_application._WSGIInputWrapper object at 0x7f34689f7390> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
catalogue_app.settings.production_settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ADMIN_GENERAL_COLOUR | '#ff0000' |
ALLOWED_HOSTS | ['hcukazprocatap01', '.harpercollins.co.uk', '52.169.113.201'] |
API_CACHE_TIMEOUT_SECS | u'********************' |
API_DEFAULT_PAGE_LENGTH | u'********************' |
APPEND_SLASH | True |
APPLICATION_DESCRIPTION | 'Not on used yet' |
APPLICATION_VERSION | 1.2 |
ASSET_IMAGE_DOMAIN | 'https://i.harperapps.com' |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend', 'tokenapi.backends.TokenBackend'] |
AUTHOR_IMAGE_DEFAULT_SIZE | 'x500.JPG' |
AUTHOR_IMAGE_PERSON_BASEPATH | '/hcuk/authors/' |
AUTH_PASSWORD_VALIDATORS | u'********************' |
AUTH_USER_MODEL | u'auth.User' |
BASE_DIR | '/var/www/code/catalogue_app' |
BASE_FOLDER_SHARE | '/servicecatalogue/' |
BINDING_NEWLY_FOUND | 'new unknown' |
BINDING_NO_DESCRIPTION | 'unknown' |
BLOG_PUSH_JOB_NUMBER | 10 |
CACHES | {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://10.197.162.242:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}}} |
CACHE_MIDDLEWARE_ALIAS | u'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | u'********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CALCULATED_TEXT_SEPARATOR | '; ' |
CATALOGUE_DESTINATIONS | {'Kitaboo': {'batch_size': {'shop_push': 500}, 'concurrent_jobs': {'Basic': 1, 'Pro': 5}}, 'Shopify': {'batch_size': {'shop_push': 500}, 'concurrent_jobs': {'Basic': 2, 'Pro': 10}}, 'Unknown': {'batch_size': {'shop_push': 500}, 'concurrent_jobs': {'Basic': 3, 'Pro': 5}}} |
CHANGES_DEFAULT_TIME_WINDOW | '15d' |
COLLECTION_FROM_ELASTICSEARCH_FREQUENCY | [('Unknown', 'Unknown'), ('Once', 'once'), ('Re-run once', 're-run once'), ('Daily', 'daily'), ('Weekly Monday', 'monday'), ('Weekly Tuesday', 'tuesday'), ('Weekly Wednesday', 'wednesday'), ('Weekly Thursday', 'thursday'), ('Weekly Friday', 'friday'), ('Weekly Saturday', 'saturday'), ('Weekly Sunday', 'sunday')] |
CONTRIBUTOR_COLLECTION_NAME_PREFIX | 'Books by' |
CONTRIBUTOR_COLLECTION_PREFIX | 'books-by-' |
CONTRIBUTOR_ID_TYPE | '01' |
CONTRIBUTOR_ROLES | {'A01': 'Author', 'A02': 'Author', 'A03': 'Author', 'A04': 'Author', 'A05': 'Author', 'A06': 'Author', 'A07': 'Author', 'A08': 'Author', 'A09': 'Author', 'A10': 'Author', 'A11': 'Author', 'A12': 'Illustrator', 'A13': 'Author', 'A14': 'Author', 'A15': 'Author', 'A16': 'Author', 'A17': 'Author', 'A18': 'Author', 'A19': 'Author', 'A20': 'Author', 'A21': 'Author', 'A22': 'Author', 'A23': 'Author', 'A24': 'Author', 'A25': 'Author', 'A26': 'Author', 'A27': 'Author', 'A29': 'Author', 'A30': 'Author', 'A31': 'Author', 'A32': 'Author', 'A33': 'Author', 'A34': 'Author', 'A35': 'Author', 'A36': 'Author', 'A37': 'Author', 'A38': 'Author', 'A39': 'Author', 'A40': 'Author', 'A41': 'Author', 'A42': 'Author', 'A43': 'Author', 'A44': 'Author', 'A45': 'Author', 'A46': 'Author', 'A47': 'Author', 'A48': 'Author', 'A99': 'Author', 'B01': 'Editor', 'B02': 'Editor', 'B03': 'Editor', 'B04': 'Audio_abridger', 'B05': 'Author', 'B06': 'Translator', 'B07': 'Translator', 'B08': 'Editor', 'B09': 'Editor', 'B10': 'Editor', 'B11': 'Editor', 'B12': 'Editor', 'B13': 'Editor', 'B14': 'Editor', 'B15': 'Editor', 'B16': 'Editor', 'B17': 'Editor', 'B18': 'Editor', 'B19': 'Editor', 'B20': 'Editor', 'B21': 'Editor', 'B22': 'Editor', 'B23': 'Editor', 'B24': 'Editor', 'B25': 'Editor', 'B26': 'Editor', 'B27': 'Editor', 'B28': 'Editor', 'B29': 'Editor', 'B99': 'Editor', 'C01': 'Author', 'C02': 'Author', 'C03': 'Author', 'C04': 'Author', 'C99': 'Author', 'D01': 'Author', 'D02': 'Author', 'D03': 'Author', 'D99': 'Author', 'E01': 'Author', 'E02': 'Author', 'E03': 'Author', 'E04': 'Author', 'E05': 'Author', 'E06': 'Author', 'E07': 'Audio_reader', 'E08': 'Author', 'E09': 'Author', 'E10': 'Author', 'E99': 'Author', 'F01': 'Author', 'F02': 'Author', 'F99': 'Author', 'Z01': 'Author', 'Z02': 'Author', 'Z98': 'Author', 'Z99': 'Author'} |
CREATE_REDIRECTS | [('No', 'No'), ('Yes always', 'Yes always'), ('Yes new only', 'Yes new only'), ('Other', 'Other')] |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | u'csrftoken' |
CSRF_COOKIE_PATH | u'/' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | u'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | u'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CUSTOMER_DETAILS | {'au': {'audio': {'base_path': 'https://d2wawpwx3aybf6.cloudfront.net/hc-audio/'}, 'author_base_path': '/authors/', 'author_default_image': '', 'author_image_size': 'x500.JPG', 'price_types': {'ebook': '42', 'physical': '01'}, 'product_base_path': '/covers/', 'product_default_image': '', 'product_image_size': '', 'weight': {'unit': 'OUNCES'}}, 'hq': {'audio': {'base_path': 'https://d2wawpwx3aybf6.cloudfront.net/hc-audio/'}, 'author_base_path': '/hqna/authors/', 'author_default_image': '', 'author_image_size': 'x500.JPG', 'price_types': {'ebook': '41', 'physical': '01'}, 'product_base_path': '/hqna/covers/', 'product_default_image': '', 'product_image_size': '', 'weight': {'unit': 'OUNCES'}}, 'nl': {'audio': {'base_path': 'https://images.harpercollins.co.uk/hcwebimages/hccovers/', 'internal_base_path': 'http://plan-g.harpercollins.co.uk/imagestore/Titles/'}, 'author_base_path': '/hcuk/authors/', 'author_default_image': 'no-image-author.jpg', 'author_image_size': 'x500.JPG', 'price_types': {'ebook': '42', 'physical': '02'}, 'product_base_path': '/hcuk/covers/', 'product_default_image': 'no-image-fullsize.png', 'product_image_size': 'x500.JPG', 'weight': {'unit': 'GRAMS'}}, 'uk': {'audio': {'base_path': 'https://images.harpercollins.co.uk/hcwebimages/hccovers/', 'internal_base_path': 'http://plan-g.harpercollins.co.uk/imagestore/Titles/'}, 'author_base_path': '/hcuk/authors/', 'author_default_image': 'no-image-author.jpg', 'author_image_size': 'x500.JPG', 'price_types': {'ebook': '42', 'physical': '02'}, 'product_base_path': '/hcuk/covers/', 'product_default_image': 'no-image-fullsize.png', 'product_image_size': 'x500.JPG', 'weight': {'unit': 'GRAMS'}}, 'us': {'audio': {'base_path': 'https://d2wawpwx3aybf6.cloudfront.net/hc-audio/'}, 'author_base_path': '/authors/', 'author_default_image': '', 'author_image_size': 'x500.JPG', 'price_types': {'ebook': '41', 'physical': '01'}, 'product_base_path': '/covers/', 'product_default_image': '', 'product_image_size': '', 'weight': {'unit': 'OUNCES'}}} |
CUSTOMER_NAMES | [('Unknown', 'Unknown'), ('UK', 'UK'), ('US', 'US'), ('AUS', 'AUS'), ('NL', 'NL'), ('Other', 'Other')] |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'localhost', 'NAME': 'cat_app', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'cat_app_user'}} |
DATABASE_ROUTERS | [] |
DATADOG_SETTINGS | {'metrics': True} |
DATA_IMPORT_JOB_NUMBER | 5 |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATETIME_FORMAT | u'N j, Y, P' |
DATETIME_INPUT_FORMATS | [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] |
DATE_FORMAT | u'N j, Y' |
DATE_INPUT_FORMATS | [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DEBUG_TOOLBAR_PATCH_SETTINGS | False |
DECIMAL_SEPARATOR | u'.' |
DEFAULT_CHARSET | u'utf-8' |
DEFAULT_CONTENT_TYPE | u'text/html' |
DEFAULT_EXCEPTION_REPORTER_FILTER | u'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | u'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | u'webmaster@localhost' |
DEFAULT_INDEX_TABLESPACE | u'' |
DEFAULT_TABLESPACE | u'' |
DEFINITION_TYPE | [('Queue', 'Queue'), ('Bulk', 'Bulk'), ('Other', 'Other')] |
DELTA_DEFAULT_TIME_WINDOW | '15d' |
DESTINATION_PLANS | [('Unknown', 'Unknown'), ('Basic', 'Basic'), ('Pro', 'Pro'), ('Other', 'Other')] |
DESTINATION_PROVIDER | [('Unknown', 'Unknown'), ('Shopify', 'Shopify'), ('Kitaboo', 'Kitaboo'), ('Advantage', 'Advantage'), ('Sailthru', 'Sailthru'), ('Other', 'Other')] |
DISALLOWED_USER_AGENTS | [] |
DJANGO_QUEUE_ID | 'django_queue' |
DO_GPC_CALL | True |
DO_NOT_UPDATE_TAG | 'manual-noupdate' |
ELASTICSEARCH_CHANGE_PRODUCT_LOG_PREFIX | 'cat_log' |
ELASTICSEARCH_CHANGE_PRODUCT_SET_LOG_PREFIX | 'cat_product-set-log' |
ELASTICSEARCH_CHANGE_SET_BATCH | 500 |
ELASTICSEARCH_CONTRIBUTOR_INDEX | 'cat_contributor' |
ELASTICSEARCH_HOSTS | ['https://elasticsearch-node.uk.harpercollins.org:9200'] |
ELASTICSEARCH_HOSTS_DOMAIN | 'elasticsearch-node.uk.harpercollins.org' |
ELASTICSEARCH_HOSTS_PORT | 9200 |
ELASTICSEARCH_HOSTS_PROTOCOL | 'https' |
ELASTICSEARCH_ID_PREFIX | 'isbn' |
ELASTICSEARCH_INDEX | 'cat_product' |
ELASTICSEARCH_INDEX_BATCH_SIZE | 750 |
ELASTICSEARCH_INDEX_META_PREFIX | 'cat_' |
ELASTICSEARCH_INDEX_SCROLL_SIZE | 150 |
ELASTICSEARCH_INDEX_SHARE_COUNT | 1 |
ELASTICSEARCH_MAX_RESULTS | 10000 |
ELASTICSEARCH_SHOP_RESPONSE | 'cat_shop-response' |
ELASTICSEARCH_VERIFY_CERTS | False |
ELASTICSEARCH_VERSION | '6.8.0' |
ELASTICSEARCH_VERSION_ORIGINAL | '2.0' |
ELASTICSEARCH_VERSION_UPDATED | '6.8.0' |
EMAIL_BACKEND | u'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | u'localhost' |
EMAIL_HOST_PASSWORD | u'********************' |
EMAIL_HOST_USER | u'' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | u'********************' |
EMAIL_SUBJECT_PREFIX | u'[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
ENVIRONMENT | 'production' |
ENVIRONMENT_DOMAIN | 'https://catalogue.harpercollins.co.uk' |
ES_MAX_RETRIES | 5 |
FILE_CHARSET | u'utf-8' |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | None |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | 'fixtures/' |
FIXTURE_DIRS_EXPORT | '/home/mohammad_ayub/' |
FIXTURE_DIRS_TEMP | '/tmp/' |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FQDN_HC_AUTHORS_ASSETS | 'https://images.harpercollins.co.uk/hcwebimages/hcauthors/' |
FQDN_HC_COVERS_ASSETS | 'https://images.harpercollins.co.uk/hcwebimages/hccovers/' |
FROM_EMAIL | 'digital-technology-support@harpercollins.co.uk' |
GPC_API_DOMAIN | u'********************' |
GRAPHQL_VERSION | '2020-04' |
GRAPH_QUERY_TIMEPERIOD | 30 |
HARPER_COLLINS_SUPPLIER_ROLE | '01' |
HOLDING_IMAGES | {'hq': {'authors': {'HQN Books': {'placeholder': 'HQN_author.jpg'}, 'Hanover Square': {'placeholder': 'HS_author.jpg'}, 'Harlequin Teen': {'placeholder': 'TEEN_author.jpg'}, 'HarperCollins': {'placeholder': 'GH_Author.jpg'}, 'Inkyard Press': {'placeholder': 'IP_author.jpg'}, 'Mira': {'placeholder': 'MIRA_author.jpg'}, 'NonFiction': {'placeholder': 'NF_author.jpg'}, 'Park Row': {'placeholder': 'PR_author.jpg'}, 'Silhouette': {'placeholder': 'SIL_author.jpg'}}, 'covers': {'Graydon House': {'placeholder': 'GH_Cover.jpg'}, 'HQN Books': {'placeholder': 'HQN_cover.jpg'}, 'Hanover Square': {'placeholder': 'HS_cover.jpg'}, 'Harlequin Teen': {'placeholder': 'TEEN_cover.jpg'}, 'Inkyard Press': {'placeholder': 'IP_cover.jpg'}, 'Mira': {'placeholder': 'MIRA_cover.jpg'}, 'NonFiction': {'placeholder': 'NF_cover.jpg'}, 'Park Row': {'placeholder': 'PR_cover.jpg'}, 'Silhouette': {'placeholder': 'SIL_cover.jpg'}}}} |
IGNORABLE_404_URLS | [] |
IMPLEMENTATION | 'full tenant' |
IMPORTED_FROM_FILE_ES_FIELD_SUFFIX | '_imported' |
INDEXING_JOB_NUMBER | 20 |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'catalogue_app', 'catalogue_api', 'catalogue_data_import', 'compute_deltas', 'import_export', 'shop_push', 'management_tools', 'django_extensions', 'prettyjson', 'tokenapi', 'taggit', 'utils.elasticsearch'] |
INTERNAL_IPS | ('127.0.0.1', '172.17.0.1') |
LANGUAGES | [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokmxe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] |
LANGUAGES_BIDI | [u'he', u'ar', u'fa', u'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_NAME | u'django_language' |
LANGUAGE_COOKIE_PATH | u'/' |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'formatters': {'defaultFormatter': {'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/log/harpercollinscatalogue/general-log.log', 'formatter': 'defaultFormatter', 'level': 'CRITICAL'}, 'rotatingfile': {'backupCount': 2, 'class': 'logging.handlers.RotatingFileHandler', 'filename': '/var/log/harpercollinscatalogue/general-log.log', 'formatter': 'defaultFormatter', 'level': 'CRITICAL', 'maxBytes': 20240}}, 'loggers': {'django': {'handlers': ['rotatingfile'], 'level': 'CRITICAL', 'propagate': True}, 'django.db.backends': {'level': 'CRITICAL'}, 'django.template': {'handlers': ['rotatingfile'], 'level': 'CRITICAL', 'propagate': True}}, 'version': 1} |
LOGGING_CONFIG | u'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/' |
LOGIN_URL | '/superadmin/' |
LOGOUT_REDIRECT_URL | None |
LOG_DIR | '/var/log/harpercollinscatalogue/' |
LOG_GPC_CALLS | False |
LOG_LEVEL | 'info' |
MANAGERS | [] |
MANAGE_URL | 'manage' |
MEDIA_ROOT | '/var/www/code/catalogue_app/media' |
MEDIA_URL | u'' |
MESSAGE_DOWNLOAD_BATCH | 750 |
MESSAGE_LISTENER_JOB_NUMBER | 20 |
MESSAGE_QUEUE_BATCH | 100 |
MESSAGE_STORAGE | u'django.contrib.messages.storage.fallback.FallbackStorage' |
METADATA_SOURCE_SUFFIX | '_metadata' |
MIDDLEWARE | None |
MIDDLEWARE_CLASSES | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | u'F j' |
MS_TEAM_CHANNEL | 'catalogue-service' |
MS_TEAM_DOMAIN | 'outlook.office.com' |
NEWRELIC_SETTINGS | {'app': 'production', 'appname': 'Catalogue app production', 'events': True, 'metrics': True} |
NEW_RELIC_APP | 'production' |
NEW_RELIC_APP_NAME | 'Catalogue app production' |
NEW_RELIC_INI_PATH | 'catalogue_app/newrelic.ini' |
NO_HARPERCOLLINS_SUPPLIER_DATA | '??' |
NUMBER_GROUPING | 0 |
ONIX_WEBSITE_CODES | {'06': {'gpc_api_names': u'********************', 'text': 'Website for', 'type': 'website:own'}, '42': {'gpc_api_names': u'********************', 'text': 'for', 'type': 'social'}} |
PASSWORD_HASHERS | u'********************' |
PASSWORD_RESET_TIMEOUT_DAYS | u'********************' |
PREPEND_WWW | False |
PRODUCT_IMAGE_COVERS_BASEPATH | '/hcuk/covers/' |
PRODUCT_IMAGE_DEFAULT_SIZE | 'x500.JPG' |
PROTECTED_TAGS_PREFIX | 'manual-' |
PURGE_DJANGO_LOG_OLDER_THAN_DAYS | 4 |
PURGE_PRODUCTS_OLDER_THAN_DAYS | 60 |
PURGE_SHOPIFY_QUEUE_OLDER_THAN_DAYS | 14 |
PYTHON_VERSION | 2.7 |
QA_FEATURES | {'SHOPIFYUSA-1062': {'description': 'Order of variants'}} |
READ_ONLY_API_TEMPLATES | u'********************' |
RECOGNIZED_TOKENS | u'********************' |
RECONCILIATION_EXTRA_DATA_HEADERS | ['shortTitleStatement', 'isbn', 'stock_imported', 'stock_report_calculated', 'restricted_general_calculated', 'list_calculated', 'imprint', 'from_queue_name', 'customer_name'] |
RECORD_OWNER_DETAILS | {'HCANZ': {'author_base_path': '/authors/hcanz/', 'name': 'United States'}, 'HCCA': {'author_base_path': '/authors/', 'name': 'United States'}, 'HCCP': {'author_base_path': '/authors/', 'name': 'United States'}, 'HCIN': {'author_base_path': '/authors/', 'name': 'United States'}, 'HCUK': {'author_base_path': '/hcuk/authors/', 'name': 'United States'}, 'HCUS': {'author_base_path': '/authors/', 'name': 'United States'}, 'HQNA': {'author_base_path': '/hqna/authors/', 'name': 'Australia'}} |
REPORT_INDEXING_ON | True |
REPORT_PRODUCTS_STATUS_SHOW | 7 |
REPORT_QUERY_SHOP_TIMEPERIOD | 1 |
REPORT_QUERY_TIMEPERIOD | 1 |
REST_FRAMEWORK | {'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PARSER_CLASSES': ('rest_framework_xml.parsers.XMLParser',), 'DEFAULT_RENDERER_CLASSES': ('rest_framework_xml.renderers.XMLRenderer',), 'PAGE_SIZE': 100} |
ROOT_URLCONF | 'catalogue_app.urls' |
SECRET_KEY | u'********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | False |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SEND_TO_STOMP_HOST | 'nginx.uk.harpercollins.org' |
SEND_TO_STOMP_HOST_STAGING | 'hcukazluswr01.uk.harpercollins.org' |
SERIES_COLLECTION_PREFIX | 'books-series-' |
SERVER_EMAIL | u'root@localhost' |
SESSION_CACHE_ALIAS | u'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | u'sessionid' |
SESSION_COOKIE_PATH | u'/' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | u'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | True |
SESSION_FILE_PATH | None |
SESSION_RENDER_PREFIX | 'catalogue' |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | u'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'catalogue_app.settings.production_settings' |
SHOPIFY_DELTA_DEFAULT_TIME_WINDOW | '1h' |
SHOPIFY_PUSH_BATCH_SIZE | 500 |
SHORT_DATETIME_FORMAT | u'm/d/Y P' |
SHORT_DATE_FORMAT | u'm/d/Y' |
SIGNING_BACKEND | u'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
SLACK_CHANNEL | 'catalogue-service' |
STATICFILES_DIRS | ('/var/www/code/catalogue_app/static',) |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.AppDirectoriesFinder', 'django.contrib.staticfiles.finders.FileSystemFinder') |
STATICFILES_STORAGE | u'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/var/www/code/catalogue_app/assets/static/' |
STATIC_URL | '/static/' |
STOCK_BULK_IMPORT | {'Basic': {'batches_of': 100, 'inventory_per_page': 50, 'sleep_for': 3}, 'Pro': {'batches_of': 100, 'inventory_per_page': 75, 'sleep_for': 1}} |
STOMP_HOST | 'hcukazprodkaf01.uk.harpercollins.org' |
STOMP_PASSWORD | u'********************' |
STOMP_PORT | 61613 |
STOMP_QUEUE | 'ProductEventCatalogueQueuePROD' |
STOMP_SLEEP | 0.1 |
STOMP_TIMEOUT | 5 |
STOMP_USERNAME | 'na' |
SUPERVISOR_RUN_DELTA_PROCESS | True |
SUPERVISOR_RUN_ES_INDEX | True |
SUPERVISOR_RUN_MESSAGE_LISTENER | True |
SUPERVISOR_RUN_PURGE | True |
SUPERVISOR_RUN_PUSH_TO_SHOP | True |
SUPERVISOR_RUN_SHOP_CHANGESET | True |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/www/code/catalogue_app/templates'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TENANT_DETAILS | {'ProductEventCatalogueQueue360PROD': {'customer_name': 'US', 'extractcontributor': True, 'ignore_from_api_record_owner': u'********************', 'listening': True, 'maunualpromo': True, 'maunualruleset': 'notdigitalpreorder-20%off', 'source': 'uk', 'type': 'products'}, 'ProductEventCatalogueQueuePROD': {'customer_name': 'UK', 'extractcontributor': True, 'listening': True, 'source': 'uk', 'type': 'products'}, 'ProductGPCEventCatalogueQueuePROD': {'customer_name': 'US', 'extractcontributor': True, 'listening': True, 'source': 'us', 'type': 'products'}, 'ProductHarlequinEventCatalogueQueuePROD': {'customer_name': 'US', 'extractcontributor': True, 'listening': True, 'shadow_customer_detail': 'hq', 'source': 'us', 'type': 'products'}} |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | u'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | u',' |
TIME_FORMAT | u'P' |
TIME_INPUT_FORMATS | [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] |
TIME_ZONE | 'Europe/London' |
TOKEN_TIMEOUT_DAYS | u'********************' |
USER_CALCULATION_HAS_ERROR | 'calc error' |
USE_ETAGS | False |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WARNING_CHECK_COUNT | 25 |
WARNING_QUERY_TIMEPERIOD | 1 |
WSGI_APPLICATION | 'catalogue_app.wsgi.application' |
X_FRAME_OPTIONS | u'SAMEORIGIN' |
YEAR_MONTH_FORMAT | u'F Y' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.