could not translate host name "dt-db-main" to address: Temporary failure in name resolution
Request Method: | GET |
---|---|
Request URL: | http://dt-main.dev.ietf.org/accounts/login/?next=/doc/rfc3140/referencedby/ |
Django Version: | 4.2.11 |
Exception Type: | OperationalError |
Exception Value: | could not translate host name "dt-db-main" to address: Temporary failure in name resolution |
Exception Location: | /usr/local/lib/python3.9/site-packages/psycopg2/__init__.py, line 122, in connect |
Raised during: | ietf.ietfauth.views.login |
Python Executable: | /usr/local/bin/python |
Python Version: | 3.9.18 |
Python Path: | ['/workspace', '/workspace', '/workspace/ietf', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages', '/workspace'] |
Server time: | Fri, 29 Mar 2024 02:06:49 -0700 |
In template /workspace/ietf/templates/base/menu.html
, error at line 29
19 | <span class="fw-bolder">Groups</span> |
---|---|
20 | </li> |
21 | {% endif %} |
22 | {% if flavor == 'top' %}<li class="dropdown-header">By area/parent</li>{% endif %} |
23 | {% wg_menu flavor %} |
24 | <li class="dropend"> |
25 | <a class="dropdown-item dropdown-toggle {% if flavor != 'top' %}text-wrap{% endif %}" |
26 | href="{% url "ietf.group.views.active_groups" %}"> |
27 | Other |
28 | </a> |
29 | {% active_groups_menu flavor %} |
30 | </li> |
31 | {% if flavor == 'top' %}<li><hr class="dropdown-divider"></li>{% endif %} |
32 | <li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>New work</li> |
33 | <li> |
34 | <a class="dropdown-item {% if flavor != 'top' %}text-wrap{% endif %}" |
35 | href="{% url "ietf.group.views.chartering_groups" %}"> |
36 | Chartering groups |
37 | </a> |
38 | </li> |
39 | <li> |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 289, in ensure_connection
)
@async_unsafe
def ensure_connection(self):
"""Guarantee 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 _prepare_cursor(self, cursor):
"""
Validate the connection is usable and perform database cursor wrapping.
Variable | Value |
---|---|
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>,) |
func | <function BaseDatabaseWrapper.connect at 0x7f8294120c10> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 270, in connect
self.close_at = None if max_age is None else time.monotonic() + max_age
self.closed_in_transaction = False
self.errors_occurred = False
# New connections are healthy.
self.health_check_done = True
# 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 | {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
max_age | 0 |
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>, {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'}) |
func | <function DatabaseWrapper.get_new_connection at 0x7f829372d940> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/postgresql/base.py
, line 275, in get_new_connection
self.isolation_level = IsolationLevel(isolation_level_value)
set_isolation_level = True
except ValueError:
raise ImproperlyConfigured(
f"Invalid transaction isolation level {isolation_level_value} "
f"specified. Use one of the psycopg.IsolationLevel values."
)
connection = self.Database.connect(**conn_params)…
if set_isolation_level:
connection.isolation_level = self.isolation_level
if not is_psycopg3:
# Register dummy loads() to avoid a round trip from psycopg2's
# decode to json.dumps() to json.loads(), when using a custom
# decoder in JSONField.
Variable | Value |
---|---|
conn_params | {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
options | {} |
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
set_isolation_level | False |
/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py
, line 122, in connect
kwasync = {}
if 'async' in kwargs:
kwasync['async'] = kwargs.pop('async')
if 'async_' in kwargs:
kwasync['async_'] = kwargs.pop('async_')
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 | <class 'psycopg2.extensions.cursor'> |
dsn | ('dbname=datatracker client_encoding=UTF8 user=django password=RkTkDPFnKpko ' 'host=dt-db-main port=5432') |
kwargs | {'client_encoding': 'UTF8', 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
kwasync | {} |
/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@wraps(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('could not translate host name "dt-db-main" to address: Temporary failure in name resolution\n') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f82949eff10>> |
request | <WSGIRequest: GET '/accounts/login/?next=/doc/rfc3140/referencedby/'> |
/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py
, line 220, in _get_response
self.check_response(
response,
middleware_method,
name="%s.process_template_response"
% (middleware_method.__self__.__class__.__name__,),
)
try:
response = response.render()…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
return response
Variable | Value |
---|---|
callback | <function login at 0x7f828f8d8550> |
callback_args | () |
callback_kwargs | {} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/accounts/login/?next=/doc/rfc3140/referencedby/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f82949eff10> |
wrapped_callback | <function login at 0x7f828f8d8550> |
/usr/local/lib/python3.9/site-packages/django/template/response.py
, line 114, in render
If the content has already been rendered, this is a no-op.
Return the baked response instance.
"""
retval = self
if not self._is_rendered:
self.content = self.rendered_content…
for post_callback in self._post_render_callbacks:
newretval = post_callback(retval)
if newretval is not None:
retval = newretval
return retval
Variable | Value |
---|---|
retval | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
/usr/local/lib/python3.9/site-packages/django/template/response.py
, line 92, in rendered_content
This *does not* set the final content of the response. To set the
response content, you must either call render(), or set the
content explicitly using the value of this property.
"""
template = self.resolve_template(self.template_name)
context = self.resolve_context(self.context_data)
return template.render(context, self._request)…
def add_post_render_callback(self, callback):
"""Add a new post-rendering callback.
If the response has already been rendered,
invoke the callback immediately.
Variable | Value |
---|---|
context | {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org', 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f8277d6e820> |
/usr/local/lib/python3.9/site-packages/django/template/backends/django.py
, line 61, in render
return self.template.origin
def render(self, context=None, request=None):
context = make_context(
context, request, autoescape=self.backend.engine.autoescape
)
try:
return self.template.render(context)…
except TemplateDoesNotExist as exc:
reraise(exc, self.backend)
def copy_exception(exc, backend=None):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
request | <WSGIRequest: GET '/accounts/login/?next=/doc/rfc3140/referencedby/'> |
self | <django.template.backends.django.Template object at 0x7f8277d6e820> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 175, in render
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)…
else:
return self._render(context)
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <Template template_string="{# Copyright The IET..."> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 167, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <Template template_string="{# Copyright The IET..."> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | [<TextNode: '\n'>, <ExtendsNode: extends "base.html">] |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f82850db880> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <ExtendsNode: extends "base.html"> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 966, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <ExtendsNode: extends "base.html"> |
/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py
, line 157, in render
}
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
with context.render_context.push_state(compiled_parent, isolated_context=False):
return compiled_parent._render(context)…
class IncludeNode(Node):
context_key = "__include_context"
def __init__(
Variable | Value |
---|---|
block_context | <BlockContext: blocks=defaultdict(<class 'list'>, {'title': [<Block Node: title. Contents: [<TextNode: 'No title'>]>, <Block Node: title. Contents: [<TextNode: 'Sign in'>]>], 'content': [<Block Node: content. Contents: [<Variable Node: content|safe>]>, <Block Node: content. Contents: [<TextNode: '\n '>, <ietf.utils.templatetags.origin.OriginNode object at 0x7f81859ce070>, <TextNode: '\n <h1>Sign in</h1>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7f81859ce490>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f82486cbcd0>, <TextNode: '\n <div class="mt-4'>, <django.template.library.SimpleNode object at 0x7f82486cbbb0>, <TextNode: '\n '>, <URLNode view_name=''ietf.ietfauth.views.password_reset'' args=[] kwargs={} as='reset_url'>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f82486cbbe0>, <TextNode: '\n </div>\n D'>, <URLNode view_name=''ietf.ietfauth.views.create_account'' args=[] kwargs={} as=None>, <TextNode: '">Create an account</a>.\n'>]>], 'js': [<Block Node: js. Contents: [<TextNode: '\n '>]>, <Block Node: js. Contents: [<TextNode: '\n <script src="'>, StaticNode(varname=None, path=<FilterExpression "'ietf/js/login.js'">), <TextNode: '"></script>\n'>]>], 'html_attrs': [<Block Node: html_attrs. Contents: []>], 'morecss': [<Block Node: morecss. Contents: []>], 'pagehead': [<Block Node: pagehead. Contents: []>], 'bodyAttrs': [<Block Node: bodyAttrs. Contents: []>], 'precontent': [<Block Node: precontent. Contents: []>], 'content_end': [<Block Node: content_end. Contents: []>], 'footer': [<Block Node: footer. Contents: [<TextNode: '\n <footer clas'>, <IfNode>, <TextNode: '\n <spa'>, <IfNode>, <TextNode: '\n </sp'>, <IfNode>, <TextNode: '\n </div>\n '>]>]})> |
blocks | {'bodyAttrs': <Block Node: bodyAttrs. Contents: []>, 'content': <Block Node: content. Contents: [<Variable Node: content|safe>]>, 'content_end': <Block Node: content_end. Contents: []>, 'footer': <Block Node: footer. Contents: [<TextNode: '\n <footer clas'>, <IfNode>, <TextNode: '\n <spa'>, <IfNode>, <TextNode: '\n </sp'>, <IfNode>, <TextNode: '\n </div>\n '>]>, 'html_attrs': <Block Node: html_attrs. Contents: []>, 'js': <Block Node: js. Contents: [<TextNode: '\n '>]>, 'morecss': <Block Node: morecss. Contents: []>, 'pagehead': <Block Node: pagehead. Contents: []>, 'precontent': <Block Node: precontent. Contents: []>, 'title': <Block Node: title. Contents: [<TextNode: 'No title'>]>} |
compiled_parent | <Template template_string="{# Copyright The IET..."> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <django.template.defaulttags.LoadNode object at 0x7f8264677850> |
self | <ExtendsNode: extends "base.html"> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 167, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <Template template_string="{# Copyright The IET..."> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | [<TextNode: '\n<!DOCTYPE html>\n'>, <django.template.defaulttags.LoadNode object at 0x7f8264677850>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f8264677d90>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f8284e877f0>, <TextNode: '\n'>, <ietf.utils.templatetags.origin.OriginNode object at 0x7f8284e87820>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f827684dd30>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f8276020e80>, <TextNode: '\n<html data-bs-theme="aut'>, <Block Node: html_attrs. Contents: []>, <TextNode: '>\n <head>\n '>, <analytical.templatetags.analytical.AnalyticalNode object at 0x7f824bb37400>, <TextNode: '\n <meta charset="u'>, <Block Node: title. Contents: [<TextNode: 'No title'>]>, <TextNode: '\n </title>\n '>, <Variable Node: settings.STATIC_IETF_ORG>, <TextNode: '/fonts/inter/import.css" '>, <Variable Node: settings.STATIC_IETF_ORG>, <TextNode: '/fonts/noto-sans-mono/imp'>, StaticNode(varname=None, path=<FilterExpression "'ietf/css/ietf.css'">), <TextNode: '">\n <link rel="sty'>, StaticNode(varname=None, path=<FilterExpression "'ietf/css/select2.css'">), <TextNode: '">\n '>, <TextNode: '\n <script src="'>, StaticNode(varname=None, path=<FilterExpression "'ietf/js/theme.js'">), <TextNode: '"></script>\n <styl'>, <Block Node: morecss. Contents: []>, <TextNode: '\n </style>\n '>, <django.template.library.SimpleNode object at 0x7f827684d940>, <TextNode: '\n '>, <Block Node: pagehead. Contents: []>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f827684d6d0>, <TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"base/icons.html"'>>, <TextNode: '\n <script src="'>, StaticNode(varname=None, path=<FilterExpression "'ietf/js/ietf.js'">), <TextNode: '"></script>\n '>, <analytical.templatetags.analytical.AnalyticalNode object at 0x7f827684dc70>, <TextNode: '\n </head>\n <body '>, <Block Node: bodyAttrs. Contents: []>, <TextNode: ' class="navbar-offset pos'>, <URLNode view_name=''ietf.group.views.group_menu_data'' args=[] kwargs={} as=None>, <TextNode: '">\n '>, <analytical.templatetags.analytical.AnalyticalNode object at 0x7f8277328c40>, <TextNode: '\n <a class="visual'>, <IfNode>, <TextNode: '">\n <div class'>, <IncludeNode: template=<FilterExpression '"logo.html"'>>, <TextNode: '\n Data'>, <IfNode>, <TextNode: '\n </a>\n '>, <IncludeNode: template=<FilterExpression '"base/menu.html"'>>, <TextNode: '\n </ul'>, <IfNode>, <TextNode: '\n\n <la'>, <URLNode view_name=''ietf.doc.views_search.ajax_select2_search_docs'' args=[] kwargs={'model_name': <FilterExpression "'document'">, 'doc_type': <FilterExpression "'all'">} as=None>, <TextNode: '"\n '>, <Block Node: precontent. Contents: []>, <TextNode: '\n <div class="pt-3'>, <IfNode>, <TextNode: '\n <div cla'>, <ForNode: for message in messages, tail_len: 7>, <TextNode: '\n '>, <Block Node: content. Contents: [<Variable Node: content|safe>]>, <TextNode: '\n '>, <Block Node: content_end. Contents: []>, <TextNode: '\n </div>\n '>, <Block Node: footer. Contents: [<TextNode: '\n <footer clas'>, <IfNode>, <TextNode: '\n <spa'>, <IfNode>, <TextNode: '\n </sp'>, <IfNode>, <TextNode: '\n </div>\n '>]>, <TextNode: '\n '>, <Block Node: js. Contents: [<TextNode: '\n '>]>, <TextNode: '\n <script src="'>, StaticNode(varname=None, path=<FilterExpression "'ietf/js/select2.js'">), <TextNode: '"></script>\n <scri'>, <analytical.templatetags.analytical.AnalyticalNode object at 0x7f82778d3ee0>, <TextNode: '\n </body>\n</html>'>] |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f82851db2e0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <IncludeNode: template=<FilterExpression '"base/menu.html"'>> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 966, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <IncludeNode: template=<FilterExpression '"base/menu.html"'>> |
/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py
, line 208, in render
template = template.template
values = {
name: var.resolve(context) for name, var in self.extra_context.items()
}
if self.isolated_context:
return template.render(context.new(values))
with context.push(**values):
return template.render(context)…
@register.tag("block")
def do_block(parser, token):
"""
Define a block that can be overridden by child templates.
Variable | Value |
---|---|
cache | {('base/menu.html',): <Template template_string="{# Copyright The IET...">} |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <IncludeNode: template=<FilterExpression '"base/menu.html"'>> |
template | <Template template_string="{# Copyright The IET..."> |
template_name | ('base/menu.html',) |
values | {'flavor': 'top'} |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 177, in render
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context)
else:
return self._render(context)…
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
is True and an exception occurs during parsing, the exception is
annotated with contextual line information where it occurred in the
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <Template template_string="{# Copyright The IET..."> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 167, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context)…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <Template template_string="{# Copyright The IET..."> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | [<TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f819850c8b0>, <TextNode: '\n'>, <ietf.utils.templatetags.origin.OriginNode object at 0x7f819850c730>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f819850c250>, <TextNode: '\n'>, <IfNode>, <TextNode: '\n<li class="nav-item drop'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f827643e6a0>, <TextNode: '\n <li class="dropend">'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.active_groups"' args=[] kwargs={} as=None>, <TextNode: '">\n Other\n '>, <django.template.library.SimpleNode object at 0x7f827643e070>, <TextNode: '\n </li>\n '>, <IfNode>, <TextNode: '\n <li '>, <IfNode>, <TextNode: '>New work</li>\n <li>\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.chartering_groups"' args=[] kwargs={} as=None>, <TextNode: '">\n Chartering'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.bofs"' args=[] kwargs={'group_type': <FilterExpression '"wg"'>} as=None>, <TextNode: '">\n BOFs\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.doc.views_bofreq.bof_requests"' args=[] kwargs={} as=None>, <TextNode: '">\n BOF Reques'>, <IfNode>, <TextNode: '\n <li '>, <IfNode>, <TextNode: '>Other groups</li>\n <l'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.concluded_groups"' args=[] kwargs={} as=None>, <TextNode: '">\n Concluded '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name=''ietf.mailinglists.views.nonwg'' args=[] kwargs={} as=None>, <TextNode: '">\n Non-WG lis'>, <IfNode>, <TextNode: '\n<li class="nav-item drop'>, <IfNode>, <TextNode: '\n <li>\n <a clas'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.doc.views_search.search"' args=[] kwargs={} as=None>, <TextNode: '">\n Search\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.doc.views_search.recent_drafts"' args=[] kwargs={} as=None>, <TextNode: '">\n Recent I-D'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.submit.views.upload_submission"' args=[] kwargs={} as=None>, <TextNode: '">\n I-D submis'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name=''ietf.doc.views_search.ad_workload'' args=[] kwargs={} as=None>, <TextNode: '">\n IESG dashb'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n <li '>, <IfNode>, <TextNode: '>\n RFC streams\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.stream_documents"' args=[] kwargs={'acronym': <FilterExpression '"iab"'>} as=None>, <TextNode: '">\n IAB\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.stream_documents"' args=[] kwargs={'acronym': <FilterExpression '"irtf"'>} as=None>, <TextNode: '">\n IRTF\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.stream_documents"' args=[] kwargs={'acronym': <FilterExpression '"ise"'>} as=None>, <TextNode: '">\n ISE\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.group.views.stream_documents"' args=[] kwargs={'acronym': <FilterExpression '"editorial"'>} as=None>, <TextNode: '">\n Editorial\n'>, <IfNode>, <TextNode: '\n <li '>, <IfNode>, <TextNode: '>\n Subseries\n <'>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.doc.views_search.index_subseries"' args=[] kwargs={'type_id': <FilterExpression '"std"'>} as=None>, <TextNode: '">\n STD\n '>, <IfNode>, <TextNode: '"\n href="'>, <URLNode view_name='"ietf.doc.views_search.inde… <trimmed 8315 bytes string> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 1005, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7f82663e2550> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <django.template.library.SimpleNode object at 0x7f827643e070> |
/usr/local/lib/python3.9/site-packages/django/template/base.py
, line 966, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <django.template.library.SimpleNode object at 0x7f827643e070> |
/usr/local/lib/python3.9/site-packages/django/template/library.py
, line 237, in render
def __init__(self, func, takes_context, args, kwargs, target_var):
super().__init__(func, takes_context, args, kwargs)
self.target_var = target_var
def render(self, context):
resolved_args, resolved_kwargs = self.get_resolved_arguments(context)
output = self.func(*resolved_args, **resolved_kwargs)…
if self.target_var is not None:
context[self.target_var] = output
return ""
if context.autoescape:
output = conditional_escape(output)
return output
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82777df0a0>, 'next': '/doc/rfc3140/referencedby/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
resolved_args | ['top'] |
resolved_kwargs | {} |
self | <django.template.library.SimpleNode object at 0x7f827643e070> |
/workspace/ietf/doc/templatetags/active_groups_menu.py
, line 16, in active_groups_menu
register = template.Library()
@register.simple_tag
def active_groups_menu(flavor):
parents = GroupTypeName.objects.filter(slug__in=["ag", "area", "rag", "team", "dir", "program", "iabworkshop"])
others = []
for group in Group.objects.filter(acronym__in=("rsoc",), state_id="active"):…
group.menu_url = reverse("ietf.group.views.group_home", kwargs=dict(acronym=group.acronym)) # type: ignore
# could use group.about_url() instead
others.append(group)
for p in parents:
p.menu_url = "/%s/" % p.slug
Variable | Value |
---|---|
flavor | 'top' |
others | [] |
parents | Error in formatting: OperationalError: could not translate host name "dt-db-main" to address: Temporary failure in name resolution |
/usr/local/lib/python3.9/site-packages/django/db/models/query.py
, line 398, in __iter__
2. sql.compiler.results_iter()
- Returns one row at time. At this point the rows are still just
tuples. In some cases the return values are converted to
Python values at this location.
3. self.iterator()
- Responsible for turning the rows into model objects.
"""
self._fetch_all()…
return iter(self._result_cache)
def __aiter__(self):
# Remember, __aiter__ itself is synchronous, it's the thing it returns
# that is async!
async def generator():
Variable | Value |
---|---|
self | Error in formatting: OperationalError: could not translate host name "dt-db-main" to address: Temporary failure in name resolution |
/usr/local/lib/python3.9/site-packages/django/db/models/query.py
, line 1881, in _fetch_all
c._known_related_objects = self._known_related_objects
c._iterable_class = self._iterable_class
c._fields = self._fields
return c
def _fetch_all(self):
if self._result_cache is None:
self._result_cache = list(self._iterable_class(self))…
if self._prefetch_related_lookups and not self._prefetch_done:
self._prefetch_related_objects()
def _next_is_sticky(self):
"""
Indicate that the next filter call and the one following that should
Variable | Value |
---|---|
self | Error in formatting: OperationalError: could not translate host name "dt-db-main" to address: Temporary failure in name resolution |
/usr/local/lib/python3.9/site-packages/django/db/models/query.py
, line 91, 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(…
chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size
)
select, klass_info, annotation_col_map = (
compiler.select,
compiler.klass_info,
compiler.annotation_col_map,
Variable | Value |
---|---|
compiler | <SQLCompiler model=Group connection=<DatabaseWrapper vendor='postgresql' alias='default'> using='default'> |
db | 'default' |
queryset | Error in formatting: OperationalError: could not translate host name "dt-db-main" to address: Temporary failure in name resolution |
self | <django.db.models.query.ModelIterable object at 0x7f82641276a0> |
/usr/local/lib/python3.9/site-packages/django/db/models/sql/compiler.py
, line 1560, in execute_sql
if result_type == MULTI:
return iter([])
else:
return
if chunked_fetch:
cursor = self.connection.chunked_cursor()
else:
cursor = self.connection.cursor()…
try:
cursor.execute(sql, params)
except Exception:
# Might fail for server-side cursors (e.g. connection closed)
cursor.close()
raise
Variable | Value |
---|---|
chunk_size | 100 |
chunked_fetch | False |
params | ('rsoc', 'active') |
result_type | 'multi' |
self | <SQLCompiler model=Group connection=<DatabaseWrapper vendor='postgresql' alias='default'> using='default'> |
sql | ('SELECT "group_group"."id", "group_group"."time", "group_group"."name", ' '"group_group"."state_id", "group_group"."type_id", ' '"group_group"."parent_id", "group_group"."description", ' '"group_group"."list_email", "group_group"."list_subscribe", ' '"group_group"."list_archive", "group_group"."comments", ' '"group_group"."meeting_seen_as_area", "group_group"."used_roles", ' '"group_group"."uses_milestone_dates", "group_group"."acronym", ' '"group_group"."charter_id" FROM "group_group" WHERE ("group_group"."acronym" ' 'IN (%s) AND "group_group"."state_id" = %s)') |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>,) |
func | <function BaseDatabaseWrapper.cursor at 0x7f82941251f0> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 330, in cursor
return self.connection.close()
# ##### Generic wrappers for PEP-249 connection methods #####
@async_unsafe
def cursor(self):
"""Create a cursor, opening a connection if necessary."""
return self._cursor()…
@async_unsafe
def commit(self):
"""Commit a transaction and reset the dirty flag."""
self.validate_thread_sharing()
self.validate_no_atomic_block()
Variable | Value |
---|---|
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 306, in _cursor
wrapped_cursor = self.make_debug_cursor(cursor)
else:
wrapped_cursor = self.make_cursor(cursor)
return wrapped_cursor
def _cursor(self, name=None):
self.close_if_health_check_failed()
self.ensure_connection()…
with self.wrap_database_errors:
return self._prepare_cursor(self.create_cursor(name))
def _commit(self):
if self.connection is not None:
with debug_transaction(self, "COMMIT"), self.wrap_database_errors:
Variable | Value |
---|---|
name | None |
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>,) |
func | <function BaseDatabaseWrapper.ensure_connection at 0x7f8294120dc0> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 289, in ensure_connection
)
@async_unsafe
def ensure_connection(self):
"""Guarantee 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 _prepare_cursor(self, cursor):
"""
Validate the connection is usable and perform database cursor wrapping.
Variable | Value |
---|---|
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/db/utils.py
, line 91, in __exit__
db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
if issubclass(exc_type, db_exc_type):
dj_exc_value = dj_exc_type(*exc_value.args)
# 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
raise dj_exc_value.with_traceback(traceback) from exc_value…
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('could not translate host name "dt-db-main" to address: Temporary failure in name resolution\n') |
exc_type | <class 'psycopg2.OperationalError'> |
exc_value | OperationalError('could not translate host name "dt-db-main" to address: Temporary failure in name resolution\n') |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7f81caf2a790> |
traceback | <traceback object at 0x7f8277f907c0> |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 289, in ensure_connection
)
@async_unsafe
def ensure_connection(self):
"""Guarantee 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 _prepare_cursor(self, cursor):
"""
Validate the connection is usable and perform database cursor wrapping.
Variable | Value |
---|---|
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>,) |
func | <function BaseDatabaseWrapper.connect at 0x7f8294120c10> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/base/base.py
, line 270, in connect
self.close_at = None if max_age is None else time.monotonic() + max_age
self.closed_in_transaction = False
self.errors_occurred = False
# New connections are healthy.
self.health_check_done = True
# 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 | {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
max_age | 0 |
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
/usr/local/lib/python3.9/site-packages/django/utils/asyncio.py
, line 26, in inner
get_running_loop()
except RuntimeError:
pass
else:
if not os.environ.get("DJANGO_ALLOW_ASYNC_UNSAFE"):
raise SynchronousOnlyOperation(message)
# Pass onward.
return func(*args, **kwargs)…
return inner
# If the message is actually a function, then be a no-arguments decorator.
if callable(message):
func = message
Variable | Value |
---|---|
args | (<DatabaseWrapper vendor='postgresql' alias='default'>, {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'}) |
func | <function DatabaseWrapper.get_new_connection at 0x7f829372d940> |
kwargs | {} |
message | 'You cannot call this from an async context - use a thread or sync_to_async.' |
/usr/local/lib/python3.9/site-packages/django/db/backends/postgresql/base.py
, line 275, in get_new_connection
self.isolation_level = IsolationLevel(isolation_level_value)
set_isolation_level = True
except ValueError:
raise ImproperlyConfigured(
f"Invalid transaction isolation level {isolation_level_value} "
f"specified. Use one of the psycopg.IsolationLevel values."
)
connection = self.Database.connect(**conn_params)…
if set_isolation_level:
connection.isolation_level = self.isolation_level
if not is_psycopg3:
# Register dummy loads() to avoid a round trip from psycopg2's
# decode to json.dumps() to json.loads(), when using a custom
# decoder in JSONField.
Variable | Value |
---|---|
conn_params | {'client_encoding': 'UTF8', 'cursor_factory': <class 'psycopg2.extensions.cursor'>, 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
options | {} |
self | <DatabaseWrapper vendor='postgresql' alias='default'> |
set_isolation_level | False |
/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py
, line 122, in connect
kwasync = {}
if 'async' in kwargs:
kwasync['async'] = kwargs.pop('async')
if 'async_' in kwargs:
kwasync['async_'] = kwargs.pop('async_')
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 | <class 'psycopg2.extensions.cursor'> |
dsn | ('dbname=datatracker client_encoding=UTF8 user=django password=RkTkDPFnKpko ' 'host=dt-db-main port=5432') |
kwargs | {'client_encoding': 'UTF8', 'dbname': 'datatracker', 'host': 'dt-db-main', 'password': 'RkTkDPFnKpko', 'port': 5432, 'user': 'django'} |
kwasync | {} |
AnonymousUser
Variable | Value |
---|---|
next | '/doc/rfc3140/referencedby/' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '' |
CONTENT_TYPE | 'text/plain' |
DBUS_SESSION_BUS_ADDRESS | '/dev/null' |
DEBIAN_FRONTEND | 'noninteractive' |
DJANGO_SETTINGS_MODULE | 'settings_local' |
GATEWAY_INTERFACE | 'CGI/1.1' |
GPG_KEY | '********************' |
HOME | '/root' |
HOSTNAME | 'dt-app-main' |
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip, br' |
HTTP_CDN_LOOP | 'cloudflare' |
HTTP_CF_CONNECTING_IP | '34.231.109.23' |
HTTP_CF_IPCOUNTRY | 'US' |
HTTP_CF_RAY | '86beb4c1fd780736-IAD' |
HTTP_CF_VISITOR | '{"scheme":"https"}' |
HTTP_CF_WARP_TAG_ID | 'd94c47bb-8219-432c-a6ea-053fb526c5cf' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'dt-main.dev.ietf.org' |
HTTP_REFERER | 'https://sandbox.ietf.org/accounts/login/?next=/doc/rfc3140/referencedby/' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '34.231.109.23, 172.17.0.1' |
HTTP_X_FORWARDED_HOST | 'dt-main.dev.ietf.org' |
HTTP_X_FORWARDED_PORT | '80' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_FORWARDED_SSL | 'on' |
HTTP_X_ORIGINAL_URI | '/accounts/login/?next=/doc/rfc3140/referencedby/' |
HTTP_X_REAL_IP | '172.17.0.1' |
LANG | 'C.UTF-8' |
LC_ALL | 'en_US.UTF-8' |
NODE_MAJOR | '16' |
PATH | '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' |
PATH_INFO | '/accounts/login/' |
PGHOST | 'dt-db-main' |
PWD | '/workspace' |
PYTHON_GET_PIP_SHA256 | 'dfe9fd5c28dc98b5ac17979a953ea550cec37ae1b47a5116007395bfacff2ab9' |
PYTHON_GET_PIP_URL | 'https://github.com/pypa/get-pip/raw/dbf0c85f76fb6e1ab42aa672ffca6f0a675d9ee4/public/get-pip.py' |
PYTHON_PIP_VERSION | '23.0.1' |
PYTHON_SETUPTOOLS_VERSION | '58.1.0' |
PYTHON_VERSION | '3.9.18' |
QUERY_STRING | 'next=/doc/rfc3140/referencedby/' |
REMOTE_ADDR | '172.18.0.26' |
REMOTE_HOST | '' |
REQUEST_METHOD | 'GET' |
RUN_MAIN | 'true' |
SCRIPT_NAME | '' |
SERVER_NAME | 'dt-app-main' |
SERVER_PORT | '8000' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'WSGIServer/0.2' |
SHLVL | '1' |
TZ | 'PST8PDT' |
VIRTUAL_HOST | 'dt-main.dev.ietf.org' |
VIRTUAL_PORT | '8000' |
_ | './ietf/manage.py' |
npm_config_fund | 'false' |
npm_config_loglevel | 'warn' |
npm_config_unsafe_perm | 'true' |
wsgi.errors | <colorama.ansitowin32.StreamWrapper object at 0x7f8295bdbe80> |
wsgi.file_wrapper | <class 'wsgiref.util.FileWrapper'> |
wsgi.input | <django.core.handlers.wsgi.LimitedStream object at 0x7f8277691940> |
wsgi.multiprocess | False |
wsgi.multithread | True |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
settings_local
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ACCOUNT_REQUEST_EMAIL | 'account-request@ietf.org' |
ADMINS | [('Tools Help', 'tools-help@ietf.org')] |
AGENDA_PATH | '/assets/www6s/proceedings/' |
ALLOWED_HOSTS | ['*'] |
API_KEY_TYPE | '********************' |
API_PRIVATE_KEY_PEM | '********************' |
API_PUBLIC_KEY_PEM | '********************' |
APPEND_SLASH | True |
AUDIO_IMPORT_EMAIL | ['ietf@meetecho.com'] |
AUTHENTICATION_BACKENDS | ('ietf.ietfauth.backends.CaseInsensitiveModelBackend',) |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BADNESS_BETHERE | 200000 |
BADNESS_CALC_LOG | 0 |
BADNESS_CONFLICT_1 | 100000 |
BADNESS_CONFLICT_2 | 10000 |
BADNESS_CONFLICT_3 | 1000 |
BADNESS_MUCHTOOBIG | 500 |
BADNESS_TOOBIG | 100 |
BADNESS_TOOSMALL_100 | 50000 |
BADNESS_TOOSMALL_50 | 5000 |
BADNESS_UNPLACED | 1000000 |
BASE_DIR | '/workspace/ietf' |
BIBXML_BASE_PATH | '/assets/ietfdata/derived/bibxml' |
BOFREQ_PATH | '/assets/ietf-ftp/bofreq/' |
BOOTSTRAP5 | {'error_css_class': 'is-invalid', 'field_renderers': {'default': 'ietf.utils.bootstrap.SeparateErrorsFromHelpTextFieldRenderer'}, 'horizontal_field_class': 'col-md-10', 'horizontal_field_offset_class': 'offset-md-2', 'horizontal_label_class': 'col-md-2 fw-bold', 'required_css_class': 'required', 'set_placeholder': False, 'success_css_class': 'is-valid'} |
BUG_REPORT_EMAIL | 'tools-help@ietf.org' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 'KEY_PREFIX': '********************', 'VERSION': '12.0.0-dev.562'}, 'htmlized': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 'LOCATION': '/var/cache/datatracker/htmlized', 'OPTIONS': {'MAX_ENTRIES': 1000}}, 'pdfized': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 'LOCATION': '/var/cache/datatracker/pdfized', 'OPTIONS': {'MAX_ENTRIES': 1000}}, 'sessions': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}, 'slowpages': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 'LOCATION': '/var/cache/datatracker/', 'OPTIONS': {'MAX_ENTRIES': 5000}}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 300 |
CELERY_BEAT_SCHEDULER | 'django_celery_beat.schedulers:DatabaseScheduler' |
CELERY_BEAT_SYNC_EVERY | 1 |
CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP | True |
CELERY_BROKER_URL | 'amqp://datatracker:72zn33d2kOedXMYa@dt-mq-main/dt' |
CELERY_RESULT_BACKEND | 'rpc://' |
CELERY_TASK_IGNORE_RESULT | True |
CELERY_TIMEZONE | 'UTC' |
CHARTER_PATH | '/assets/ietf-ftp/charter/' |
CHART_TYPE_ACTIVITY_OPTIONS | {'chart': {'type': 'column'}, 'credits': {'enabled': False}, 'exporting': {'fallbackToExportServer': False}, 'navigation': {'buttonOptions': {'enabled': False}}, 'navigator': {'enabled': False}, 'rangeSelector': {'enabled': False}, 'scrollbar': {'enabled': False}, 'series': [{'animation': False, 'data': [], 'dataGrouping': {'units': [['year', [1]]]}, 'name': None, 'pointIntervalUnit': 'day', 'pointPadding': -0.2, 'turboThreshold': 1, 'type': 'column'}], 'title': {'text': None}, 'xAxis': {'ordinal': False, 'type': 'datetime'}, 'yAxis': {'labels': {'enabled': False}}} |
CHART_TYPE_COLUMN_OPTIONS | {'chart': {'type': 'column'}, 'credits': {'enabled': False}, 'exporting': {'fallbackToExportServer': False}, 'rangeSelector': {'allButtonsEnabled': True, 'selected': 5}, 'series': [{'data': [], 'dataGrouping': {'units': [['week', [1]], ['month', [1, 4]]]}, 'name': 'Items', 'pointIntervalUnit': 'day', 'pointPadding': 0.05, 'turboThreshold': 1, 'type': 'column'}], 'title': {'text': 'Items over time'}, 'xAxis': {'ordinal': False, 'type': 'datetime'}} |
CHAT_URL_PATTERN | 'https://zulip.ietf.org/#narrow/stream/{chat_room_name}' |
CHECKS_LIBRARY_PATCHES_TO_APPLY | ['patch/change-oidc-provider-field-sizes-228.patch', 'patch/fix-oidc-access-token-post.patch', 'patch/fix-jwkest-jwt-logging.patch', 'patch/django-cookie-delete-with-all-settings.patch', 'patch/tastypie-django22-fielderror-response.patch'] |
CONFLICT_REVIEW_PATH | '/assets/ietf-ftp/conflict-reviews/' |
CORS_ALLOW_METHODS | ('GET', 'OPTIONS') |
CORS_ORIGIN_ALLOW_ALL | True |
CORS_URLS_REGEX | '^(/api/.*|.*\\.json|.*/json/?)$' |
CSP_DEFAULT_SRC | ("'self'", "'unsafe-inline'", 'data: https://datatracker.ietf.org http://ietf.org/ https://www.ietf.org/ ' 'https://analytics.ietf.org/ https://static.ietf.org') |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_MASKED | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | ['https://ietf.org', 'https://*.ietf.org', 'https://meetecho.com', 'https://*.meetecho.com', 'http://localhost:8000', 'http://127.0.0.1:8000', 'http://[::1]:8000'] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'dt-db-main', 'NAME': 'datatracker', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': 5432, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'django'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'Y-m-d H:i T' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
DATE_FORMAT | 'Y-m-d' |
DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
DAYS_TO_EXPIRE_NOMINATION_LINK | '' |
DAYS_TO_EXPIRE_REGISTRATION_LINK | 3 |
DEBUG | True |
DEBUG_AGENDA | False |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'IETF Secretariat <ietf-secretariat-reply@ietf.org>' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_REQUESTS_TIMEOUT | 20 |
DEFAULT_TABLESPACE | '' |
DERIVED_DIR | '/a/ietfdata/derived' |
DEV_APPS | [] |
DEV_MIDDLEWARE | () |
DEV_PRE_APPS | [] |
DEV_TEMPLATE_CONTEXT_PROCESSORS | [] |
DE_GFM_BINARY | '/usr/local/bin/de-gfm' |
DISALLOWED_USER_AGENTS | [] |
DJANGO_VITE_ASSETS_PATH | '/workspace/ietf/static/dist-neue' |
DJANGO_VITE_MANIFEST_PATH | '/workspace/ietf/static/dist-neue/manifest.json' |
DOCUMENT_FORMAT_ALLOWLIST | ['txt', 'ps', 'pdf', 'xml', 'html'] |
DOCUMENT_PATH_PATTERN | '/assets/ietfdata/doc/{doc.type_id}/' |
DOC_ACTION_HOLDER_AGE_LIMIT_DAYS | 20 |
DOC_HREFS | {'charter': 'https://www.ietf.org/charter/{doc.name}-{doc.rev}.txt', 'conflrev': 'https://www.ietf.org/cr/{doc.name}-{doc.rev}.txt', 'draft': 'https://www.ietf.org/archive/id/{doc.name}-{doc.rev}.txt', 'liai-att': 'https://www.ietf.org/lib/dt/documents/LIAISON/{doc.uploaded_filename}', 'liaison': 'https://www.ietf.org/lib/dt/documents/LIAISON/{doc.uploaded_filename}', 'procmaterials': 'https://www.ietf.org/procmaterials/{doc.name}-{doc.rev}', 'rfc': 'https://www.rfc-editor.org/rfc/rfc{doc.rfc_number}.txt', 'slides': 'https://www.ietf.org/slides/{doc.name}-{doc.rev}', 'statchg': 'https://www.ietf.org/sc/{doc.name}-{doc.rev}.txt'} |
DOC_TEXT_FILE_VALID_UPLOAD_MIME_TYPES | ('text/plain', 'text/markdown', 'text/x-rst', 'text/x-markdown') |
DRAFT_ALIASES_PATH | '/workspace/test/data/draft-aliases' |
DRAFT_ALIAS_DOMAIN | 'ietf.org' |
DRAFT_VIRTUAL_DOMAIN | 'virtual.ietf.org' |
DRAFT_VIRTUAL_PATH | '/workspace/test/data/draft-virtual' |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 2025 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
EXCLUDED_PERSONAL_EMAIL_REGEX_PATTERNS | ['@ietf.org$'] |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FLOORPLAN_DIR | '/workspace/media/floor' |
FLOORPLAN_MEDIA_DIR | 'floor' |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoDivFormRenderer' |
GHOSTSCRIPT_COMMAND | '/usr/bin/gs' |
GLOBAL_TEST_FIXTURES | ['names', 'ietf.utils.test_data.make_immutable_base_data', 'nomcom_templates', 'proceedings_templates'] |
GROUP_ALIASES_PATH | '/workspace/test/data/group-aliases' |
GROUP_ALIAS_DOMAIN | 'ietf.org' |
GROUP_REVIEW_DAYS_TO_SHOW_IN_REVIEWER_LIST | 365 |
GROUP_REVIEW_MAX_ITEMS_TO_SHOW_IN_REVIEWER_LIST | 10 |
GROUP_STATES_WITH_EXTRA_PROCESSING | ['sub-pub', 'rfc-edit'] |
GROUP_VIRTUAL_DOMAIN | 'virtual.ietf.org' |
GROUP_VIRTUAL_PATH | '/workspace/test/data/group-virtual' |
HTMLIZER_CACHE_TIME | 1209600 |
HTMLIZER_URL_PREFIX | '/doc/html' |
HTMLIZER_VERSION | 1 |
HTPASSWD_COMMAND | '********************' |
HTPASSWD_FILE | '********************' |
IANA_SYNC_CHANGES_URL | 'https://datatracker.iana.org:4443/data-tracker/changes' |
IANA_SYNC_PASSWORD | '********************' |
IANA_SYNC_PROTOCOLS_URL | 'https://www.iana.org/protocols/' |
IDNITS_BASE_URL | 'https://author-tools.ietf.org/api/idnits' |
IDNITS_SERVICE_URL | 'https://author-tools.ietf.org/idnits' |
IDSUBMIT_ANNOUNCE_FROM_EMAIL | 'internet-drafts@ietf.org' |
IDSUBMIT_ANNOUNCE_LIST_EMAIL | 'i-d-announce@ietf.org' |
IDSUBMIT_CHECKER_CLASSES | ('ietf.submit.checkers.DraftIdnitsChecker', 'ietf.submit.checkers.DraftYangChecker') |
IDSUBMIT_DEFAULT_CUTOFF_DAY_OFFSET_00 | 13 |
IDSUBMIT_DEFAULT_CUTOFF_DAY_OFFSET_01 | 13 |
IDSUBMIT_DEFAULT_CUTOFF_TIME_UTC | datetime.timedelta(seconds=86399) |
IDSUBMIT_DEFAULT_CUTOFF_WARNING_DAYS | datetime.timedelta(days=21) |
IDSUBMIT_FILE_TYPES | ('txt', 'html', 'xml', 'pdf', 'ps') |
IDSUBMIT_FROM_EMAIL | 'IETF I-D Submission Tool <idsubmission@ietf.org>' |
IDSUBMIT_IDNITS_BINARY | '/usr/local/bin/idnits' |
IDSUBMIT_MANUAL_STAGING_DIR | '/tmp/' |
IDSUBMIT_MAX_DAILY_SAME_DRAFT_NAME | 20 |
IDSUBMIT_MAX_DAILY_SAME_DRAFT_NAME_SIZE | 50 |
IDSUBMIT_MAX_DAILY_SAME_GROUP | 150 |
IDSUBMIT_MAX_DAILY_SAME_GROUP_SIZE | 450 |
IDSUBMIT_MAX_DAILY_SAME_SUBMITTER | 50 |
IDSUBMIT_MAX_DAILY_SAME_SUBMITTER_SIZE | 150 |
IDSUBMIT_MAX_DAILY_SUBMISSIONS | 1000 |
IDSUBMIT_MAX_DAILY_SUBMISSIONS_SIZE | 2000 |
IDSUBMIT_MAX_DRAFT_SIZE | {'html': 4194304, 'pdf': 6291456, 'ps': 6291456, 'txt': 2097152, 'xml': 3145728} |
IDSUBMIT_MAX_VALIDATION_TIME | datetime.timedelta(seconds=1200) |
IDSUBMIT_REPOSITORY_PATH | '/assets/ietf-ftp/internet-drafts/' |
IDSUBMIT_STAGING_PATH | '/test/staging/' |
IDSUBMIT_STAGING_URL | '//www.ietf.org/staging/' |
IDTRACKER_BASE_URL | 'https://datatracker.ietf.org' |
IETF_AUDIO_URL | 'https://www.ietf.org/audio/' |
IETF_DOMAIN | 'ietf.org' |
IETF_HOST_URL | 'https://www.ietf.org/' |
IETF_ID_ARCHIVE_URL | 'https://www.ietf.org/archive/id/' |
IETF_ID_URL | 'https://www.ietf.org/id/' |
IETF_NOTES_URL | 'https://notes.ietf.org/' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.admindocs', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.humanize', 'django.contrib.messages', 'django.contrib.sessions', 'django.contrib.sitemaps', 'django.contrib.sites', 'django.contrib.staticfiles', 'analytical', 'django_vite', 'django_bootstrap5', 'django_celery_beat', 'corsheaders', 'django_markup', 'oidc_provider', 'simple_history', 'tastypie', 'widget_tweaks', 'ietf.api', 'ietf.community', 'ietf.dbtemplate', 'ietf.doc', 'ietf.group', 'ietf.idindex', 'ietf.iesg', 'ietf.ietfauth', 'ietf.ipr', 'ietf.liaisons', 'ietf.mailinglists', 'ietf.mailtrigger', 'ietf.meeting', 'ietf.message', 'ietf.name', 'ietf.nomcom', 'ietf.person', 'ietf.redirects', 'ietf.release', 'ietf.review', 'ietf.stats', 'ietf.submit', 'ietf.sync', 'ietf.utils', 'ietf.secr.announcement', 'ietf.secr.meetings', 'ietf.secr.rolodex', 'ietf.secr.sreq', 'ietf.secr.telechat'] |
INTERIM_ANNOUNCE_FROM_EMAIL_DEFAULT | 'IESG Secretary <iesg-secretary@ietf.org>' |
INTERIM_ANNOUNCE_FROM_EMAIL_PROGRAM | 'IAB Executive Administrative Manager <execd@iab.org>' |
INTERIM_SESSION_MAXIMUM_MINUTES | 300 |
INTERIM_SESSION_MINIMUM_MINUTES | 30 |
INTERNAL_IPS | ['172.18.0.1'] |
INTERNET_ALL_DRAFTS_ARCHIVE_DIR | '/assets/archive/id' |
INTERNET_DRAFT_ARCHIVE_DIR | '/assets/archive/id' |
INTERNET_DRAFT_DAYS_TO_EXPIRE | 185 |
INTERNET_DRAFT_PATH | '/assets/ietf-ftp/internet-drafts/' |
INTERNET_DRAFT_PDF_PATH | '/a/www/ietf-datatracker/pdf/' |
IPR_DOCUMENT_PATH | '/a/www/ietf-ftp/ietf/IPR/' |
IPR_EMAIL_FROM | 'ietf-ipr@ietf.org' |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LIAISON_ATTACH_PATH | '/a/www/ietf-datatracker/documents/LIAISON/' |
LIAISON_ATTACH_URL | 'https://www.ietf.org/lib/dt/documents/LIAISON/' |
LIAISON_UNIVERSAL_FROM | 'Liaison Statement Management Tool <statements@ietf.org>' |
LIST_ACCOUNT_DELAY | 90000 |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}, 'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}, 'skip_suspicious_operations': {'()': 'django.utils.log.CallbackFilter', 'callback': <function skip_suspicious_operations at 0x7f8294be2310>}, 'skip_unreadable_posts': {'()': 'django.utils.log.CallbackFilter', 'callback': <function skip_unreadable_post at 0x7f8294be23a0>}}, 'formatters': {'django.server': {'()': 'django.utils.log.ServerFormatter', 'format': '[%(server_time)s] %(message)s'}, 'plain': {'format': '{levelname}: {name}:{lineno}: {message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'plain', 'level': 'DEBUG'}, 'debug_console': {'class': 'logging.StreamHandler', 'filters': ['require_debug_true'], 'formatter': 'plain', 'level': 'DEBUG'}, 'django.server': {'class': 'logging.StreamHandler', 'formatter': 'django.server', 'level': 'INFO'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false', 'skip_suspicious_operations', 'skip_unreadable_posts'], 'include_html': True, 'level': 'ERROR'}, 'syslog': {'address': '/dev/log', 'class': 'logging.handlers.SysLogHandler', 'facility': 'user', 'formatter': 'plain', 'level': 'DEBUG'}}, 'loggers': {'django': {'handlers': ['debug_console', 'mail_admins'], 'level': 'INFO'}, 'django.request': {'handlers': ['debug_console'], 'level': 'ERROR'}, 'django.security': {'handlers': ['debug_console'], 'level': 'INFO'}, 'django.server': {'handlers': ['django.server'], 'level': 'INFO'}, 'oidc_provider': {'handlers': ['debug_console'], 'level': 'DEBUG'}}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MAILING_LIST_ARCHIVE_URL | 'https://mailarchive.ietf.org' |
MAILING_LIST_INFO_URL | 'https://www.ietf.org/mailman/listinfo/%(list_addr)s' |
MAILMAN_LIB_DIR | '/usr/lib/mailman' |
MANAGERS | [('Tools Help', 'tools-help@ietf.org')] |
MARKUP_SETTINGS | {'restructuredtext': {'settings_overrides': {'default_reference_context': 'view', 'doctitle_xform': False, 'footnote_references': 'superscript', 'initial_header_level': 3, 'link_base': '', 'trim_footnote_reference_space': True}}} |
MAX_WG_DELEGATES | 3 |
MEDIA_BASE_DIR | '/assets' |
MEDIA_ROOT | '/assets/media/' |
MEDIA_URL | '/media/' |
MEETECHO_AUDIO_STREAM_URL | 'https://mp3.conf.meetecho.com/ietf{session.meeting.number}/{session.pk}.m3u' |
MEETECHO_ONSITE_TOOL_URL | 'https://meetings.conf.meetecho.com/onsite{session.meeting.number}/?session={session.pk}' |
MEETECHO_SESSION_RECORDING_URL | 'https://www.meetecho.com/ietf{session.meeting.number}/recordings#{session.group.acronym_upper}' |
MEETECHO_VIDEO_STREAM_URL | 'https://meetings.conf.meetecho.com/ietf{session.meeting.number}/?session={session.pk}' |
MEETINGHOST_LOGO_MAX_DISPLAY_HEIGHT | 120 |
MEETINGHOST_LOGO_MAX_DISPLAY_WIDTH | 120 |
MEETINGHOST_LOGO_MAX_UPLOAD_HEIGHT | 400 |
MEETINGHOST_LOGO_MAX_UPLOAD_WIDTH | 400 |
MEETINGHOST_LOGO_PATH | '/assets/www6s/proceedings/' |
MEETING_APPLICATION_OCTET_STREAM_OVERRIDES | {'.md': 'text/markdown'} |
MEETING_DOC_CDN_HREFS | {'agenda': 'https://www.ietf.org/proceedings/{meeting.number}/agenda/{doc.name}-{doc.rev}', 'bluesheets': 'https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.uploaded_filename}', 'minutes': 'https://www.ietf.org/proceedings/{meeting.number}/minutes/{doc.name}-{doc.rev}', 'narrativeminutes': 'https://www.ietf.org/proceedings/{meeting.number}/narrative-minutes/{doc.name}-{doc.rev}', 'procmaterials': 'https://www.ietf.org/proceedings/{meeting.number}/procmaterials/{doc.name}-{doc.rev}', 'recording': '{doc.external_url}', 'slides': 'https://www.ietf.org/proceedings/{meeting.number}/slides/{doc.name}-{doc.rev}'} |
MEETING_DOC_GREFS | {'agenda': '/meeting/{meeting.number}/materials/{doc.name}', 'bluesheets': 'https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.uploaded_filename}', 'minutes': '/meeting/{meeting.number}/materials/{doc.name}', 'narrativeminutes': '/meeting/{meeting.number}/materials/{doc.name}', 'procmaterials': '/meeting/{meeting.number}/materials/{doc.name}', 'recording': '{doc.external_url}', 'slides': '/meeting/{meeting.number}/materials/{doc.name}'} |
MEETING_DOC_HREFS | {'agenda': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'bluesheets': 'https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.uploaded_filename}', 'chatlog': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'minutes': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'narrativeminutes': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'polls': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'procmaterials': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'recording': '{doc.external_url}', 'slides': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}'} |
MEETING_DOC_LOCAL_HREFS | {'agenda': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'bluesheets': 'https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.uploaded_filename}', 'chatlog': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'minutes': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'narrativeminutes': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'polls': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'procmaterials': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}', 'recording': '{doc.external_url}', 'slides': '/meeting/{meeting.number}/materials/{doc.name}-{doc.rev}'} |
MEETING_DOC_OLD_HREFS | {'agenda': '/meeting/{meeting.number}/materials/{doc.name}', 'bluesheets': 'https://www.ietf.org/proceedings/{meeting.number}/bluesheets/{doc.uploaded_filename}', 'minutes': '/meeting/{meeting.number}/materials/{doc.name}', 'narrativeminutes': '/meeting/{meeting.number}/materials/{doc.name}', 'recording': '{doc.external_url}', 'slides': '/meeting/{meeting.number}/materials/{doc.name}'} |
MEETING_LEGACY_OFFICE_HOURS_END | 112 |
MEETING_MATERIALS_DEFAULT_SUBMISSION_CORRECTION_DAYS | 50 |
MEETING_MATERIALS_DEFAULT_SUBMISSION_CUTOFF_DAYS | 26 |
MEETING_MATERIALS_DEFAULT_SUBMISSION_START_DAYS | 90 |
MEETING_MATERIALS_SERVE_LOCALLY | True |
MEETING_RECORDINGS_DIR | '/a/www/audio' |
MEETING_SESSION_LOCK_TIME | datetime.timedelta(seconds=600) |
MEETING_VALID_MIME_TYPE_EXTENSIONS | {'application/pdf': ['.pdf'], 'text/html': ['.html', '.htm'], 'text/markdown': ['.txt', '.md'], 'text/plain': ['.txt', '.md'], 'text/x-markdown': ['.txt', '.md']} |
MEETING_VALID_UPLOAD_EXTENSIONS | {'agenda': ['.txt', '.html', '.htm', '.md'], 'bluesheets': ['.pdf', '.txt'], 'meetinghostlogo': ['.png', '.jpg', '.jpeg'], 'minutes': ['.txt', '.html', '.htm', '.md', '.pdf'], 'narrativeminutes': ['.txt', '.html', '.htm', '.md', '.pdf'], 'procmaterials': ['.pdf'], 'slides': ['.doc', '.docx', '.pdf', '.ppt', '.pptx', '.txt']} |
MEETING_VALID_UPLOAD_MIME_FOR_OBSERVED_MIME | {'application/pdf': ['application/pdf'], 'text/html': ['text/html'], 'text/plain': ['text/plain', 'text/markdown', 'text/x-markdown']} |
MEETING_VALID_UPLOAD_MIME_TYPES | {'agenda': ['text/plain', 'text/html', 'text/markdown', 'text/x-markdown'], 'bluesheets': ['application/pdf', 'text/plain'], 'meetinghostlogo': ['image/jpeg', 'image/png'], 'minutes': ['text/plain', 'text/html', 'application/pdf', 'text/markdown', 'text/x-markdown'], 'narrativeminutes': ['text/plain', 'text/html', 'application/pdf', 'text/markdown', 'text/x-markdown'], 'procmaterials': ['application/pdf'], 'slides': []} |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.csrf.CsrfViewMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.http.ConditionalGetMiddleware', 'simple_history.middleware.HistoryRequestMiddleware', 'ietf.middleware.SMTPExceptionMiddleware', 'ietf.middleware.Utf8ExceptionMiddleware', 'ietf.middleware.redirect_trailing_period_middleware', 'django_referrer_policy.middleware.ReferrerPolicyMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'ietf.middleware.unicode_nfkc_normalization_middleware'] |
MIGRATION_MODULES | {} |
MINUTES_TO_EXPIRE_RESET_PASSWORD_LINK | '********************' |
MONTH_DAY_FORMAT | 'F j' |
NOMCOM_APP_SECRET | '********************' |
NOMCOM_FROM_EMAIL | 'nomcom-chair-{year}@ietf.org' |
NOMCOM_PUBLIC_KEYS_DIR | '********************' |
NOMINEE_FEEDBACK_TYPES | ['comment', 'questio', 'nomina', 'obe'] |
NUMBER_GROUPING | 0 |
OIDC_EXTRA_SCOPE_CLAIMS | 'ietf.ietfauth.utils.OidcExtraScopeClaims' |
OIDC_USERINFO | 'ietf.ietfauth.utils.openid_userinfo' |
OLD_PHOTO_DIRS | ['/a/www/www6/wg/images', '/a/www/www6/iesg/bio/photo', '/a/www/iab/wp-content/IAB-uploads/2010/10/', '/a/www/iab/wp-content/IAB-uploads/2011/05/', '/a/www/iab/wp-content/IAB-uploads/2014/02/', '/a/www/iab/wp-content/IAB-uploads/2015/02/', '/a/www/iab/wp-content/IAB-uploads/2015/03/', '/a/www/iab/wp-content/IAB-uploads/2015/06/', '/a/www/iab/wp-content/IAB-uploads/2015/08/', '/a/www/iab/wp-content/IAB-uploads/2016/03/'] |
OPENSSL_COMMAND | '/usr/bin/openssl' |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PDFIZER_CACHE_TIME | 1209600 |
PDFIZER_URL_PREFIX | 'https://datatracker.ietf.org/doc/pdf' |
PHOTOS_DIR | '/assets/media/photo' |
PHOTOS_DIRNAME | 'photo' |
POSTCONFIRM_PATH | '/a/postconfirm/wrapper' |
PREFERENCES_COOKIE_AGE | 1576800000 |
PREPEND_WWW | False |
PROCEEDINGS_V1_BASE_URL | 'https://www.ietf.org/proceedings/{meeting.number}' |
PROCEEDINGS_VERSION_CHANGES | [0, 97, 111] |
PROD_PRE_APPS | [] |
PUBLISH_IPR_STATES | ['posted', 'removed', 'removed_objfalse'] |
PYFLAKES_DEFAULT_ARGS | ['ietf'] |
REFERRER_POLICY | 'strict-origin-when-cross-origin' |
RFCDIFF_BASE_URL | 'https://author-tools.ietf.org/iddiff' |
RFC_EDITOR_ERRATA_JSON_URL | 'https://www.rfc-editor.org/errata.json' |
RFC_EDITOR_ERRATA_URL | 'https://www.rfc-editor.org/errata_search.php?rfc={rfc_number}' |
RFC_EDITOR_GROUP_NOTIFICATION_EMAIL | 'webmaster@rfc-editor.org' |
RFC_EDITOR_INDEX_URL | 'https://www.rfc-editor.org/rfc/rfc-index.xml' |
RFC_EDITOR_INFO_BASE_URL | 'https://www.rfc-editor.org/info/' |
RFC_EDITOR_INLINE_ERRATA_URL | 'https://www.rfc-editor.org/rfc/inline-errata/rfc{rfc_number}.html' |
RFC_EDITOR_QUEUE_URL | 'https://www.rfc-editor.org/queue2.xml' |
RFC_EDITOR_SYNC_NOTIFICATION_URL | 'https://www.rfc-editor.org/parser/parser.php' |
RFC_EDITOR_SYNC_PASSWORD | '********************' |
RFC_FILE_TYPES | ('txt', 'html', 'xml', 'pdf', 'ps') |
RFC_PATH | '/assets/ietf-ftp/rfc/' |
RFC_TEXT_RSYNC_SOURCE | 'ftp.rfc-editor.org::rfcs-text-only' |
ROLODEX_URL | '' |
ROOT_URLCONF | 'ietf.urls' |
RSYNC_BINARY | '/usr/bin/rsync' |
SECRETARIAT_ACTION_EMAIL | '********************' |
SECRETARIAT_INFO_EMAIL | '********************' |
SECRETARIAT_SUPPORT_EMAIL | '********************' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECR_BLUE_SHEET_PATH | '/a/www/ietf-datatracker/documents/blue_sheet.rtf' |
SECR_BLUE_SHEET_URL | 'https://datatracker.ietf.org/documents/blue_sheet.rtf' |
SECR_INTERIM_LISTING_DIR | '/a/www/www6/meeting/interim' |
SECR_MAX_UPLOAD_SIZE | 40960000 |
SECR_PPT2PDF_COMMAND | ['/usr/bin/soffice', '--headless', '--convert-to', 'pdf:writer_globaldocument_pdf_Export', '--outdir'] |
SECR_PROCEEDINGS_DIR | '/a/www/www6s/proceedings/' |
SECURE_BROWSER_XSS_FILTER | True |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'unsafe-none' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | True |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 3600 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'Django Server <django-project@ietf.org>' |
SERVER_MODE | 'development' |
SERVE_CDN_FILES_LOCALLY_IN_DEV_MODE | True |
SERVE_CDN_PHOTOS | True |
SESSION_CACHE_ALIAS | 'sessions' |
SESSION_COOKIE_AGE | 2419200 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_REQUEST_FROM_EMAIL | 'IETF Meeting Session Request Tool <session-request@ietf.org>' |
SESSION_SAVE_EVERY_REQUEST | True |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'settings_local' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | ['fields.W342', 'fields.W905'] |
SITE_ID | 1 |
SITE_URL | 'https://dt-main.dev.ietf.org' |
SLIDE_STAGING_PATH | '/test/staging/' |
SLIDE_STAGING_URL | 'https://www.ietf.org/staging/' |
STATICFILES_DIRS | ('/workspace/ietf/static/dist-neue', '/workspace/ietf/static/dist', '/workspace/ietf/secr/static/dist') |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_IETF_ORG | 'https://static.ietf.org' |
STATIC_IETF_ORG_INTERNAL | 'https://static.ietf.org' |
STATIC_ROOT | '/workspace/static' |
STATIC_URL | '/static/' |
STATS_NAMES_LIMIT | 25 |
STATS_REGISTRATION_ATTENDEES_JSON_URL | 'https://registration.ietf.org/{number}/attendees/' |
STATUS_CHANGE_PATH | '/assets/ietf-ftp/status-changes/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
SUBMIT_PYANG_COMMAND | 'pyang --verbose --ietf -p {libs} {model}' |
SUBMIT_YANGLINT_COMMAND | ('yanglint --verbose -p {tmplib} -p {rfclib} -p {draftlib} -p {ianalib} -p ' '{cataloglib} {model} -i') |
SUBMIT_YANG_CATALOG_CHECKER_URL | 'https://yangcatalog.org/yangvalidator/api/v1/datatracker/{type}' |
SUBMIT_YANG_CATALOG_IMPACT_DESC | 'Yang impact analysis for {draft}' |
SUBMIT_YANG_CATALOG_IMPACT_URL | 'https://www.yangcatalog.org/yang-search/impact_analysis.php?{moduleargs}&recurse=0&rfcs=1&show_subm=1&show_dir=both' |
SUBMIT_YANG_CATALOG_MODEL_DIR | '/assets/ietf-ftp/yang/catalogmod/' |
SUBMIT_YANG_CATALOG_MODULEARG | 'modules[]={module}' |
SUBMIT_YANG_CATALOG_MODULE_DESC | 'Yang catalog entry for {module}' |
SUBMIT_YANG_CATALOG_MODULE_URL | 'https://www.yangcatalog.org/yang-search/module_details.php?module={module}' |
SUBMIT_YANG_DRAFT_MODEL_DIR | '/assets/ietf-ftp/yang/draftmod/' |
SUBMIT_YANG_IANA_MODEL_DIR | '/assets/ietf-ftp/yang/ianamod/' |
SUBMIT_YANG_INVAL_MODEL_DIR | '/assets/ietf-ftp/yang/invalmod/' |
SUBMIT_YANG_RFC_MODEL_DIR | '/assets/ietf-ftp/yang/rfcmod/' |
TEMPLATES | [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/workspace/ietf/templates', '/workspace/ietf/secr/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.request', 'django.template.context_processors.media', 'django.contrib.messages.context_processors.messages', 'ietf.context_processors.server_mode', 'ietf.context_processors.revision_info', 'ietf.context_processors.settings_info', 'ietf.secr.context_processors.secr_revision_info', 'ietf.context_processors.rfcdiff_base_url', 'ietf.context_processors.timezone_now'], 'loaders': ('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'ietf.dbtemplate.template.Loader'), 'string_if_invalid': "** No value found for '%s' **"}}] |
TEST_CODE_COVERAGE_CHECKER | <coverage.control.Coverage object at 0x7f8295b7fe20> |
TEST_CODE_COVERAGE_EXCLUDE_FILES | ['*/tests*', '*/admin.py', '*/factories.py', '*/migrations/*', '*/management/commands/*', 'docker/*', 'idindex/generate_all_id2_txt.py', 'idindex/generate_all_id_txt.py', 'idindex/generate_id_abstracts_txt.py', 'idindex/generate_id_index_txt.py', 'ietf/checks.py', 'ietf/manage.py', 'ietf/virtualenv-manage.py', 'ietf/meeting/timedeltafield.py', 'ietf/settings*', 'ietf/utils/templatetags/debug_filters.py', 'ietf/utils/test_runner.py', 'ietf/name/generate_fixtures.py', 'ietf/review/import_from_review_tool.py', 'ietf/utils/patch.py', 'ietf/utils/test_data.py'] |
TEST_CODE_COVERAGE_EXCLUDE_LINES | ['coverage: *ignore', 'debug', 'unreachable\\([^)]*\\)', 'if settings.DEBUG', 'if settings.TEST_CODE_COVERAGE_CHECKER', 'if __name__ == .__main__.:'] |
TEST_CODE_COVERAGE_REPORT_DIR | '/workspace/ietf/static/coverage/' |
TEST_CODE_COVERAGE_REPORT_FILE | '/workspace/ietf/static/coverage/index.html' |
TEST_CODE_COVERAGE_REPORT_PATH | 'coverage/' |
TEST_CODE_COVERAGE_REPORT_URL | '/static/coverage/index.html' |
TEST_COVERAGE_LATEST_FILE | '/workspace/ietf/../latest-coverage.json' |
TEST_COVERAGE_MAIN_FILE | '/workspace/ietf/../release-coverage.json' |
TEST_DATA_DIR | '/workspace/test/data' |
TEST_DIFF_FAILURE_DIR | '/tmp/test/failure/' |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'ietf.utils.test_runner.IetfTestRunner' |
TEST_TEMPLATE_IGNORE | ['.*', '*~', '#*', '500.html'] |
TEST_URL_COVERAGE_EXCLUDE | ['^\\^admin/'] |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'PST8PDT' |
TOOLS_SERVER | 'tools.ietf.org' |
TZDATA_ICS_PATH | '/workspace/ietf/../vzic/zoneinfo/' |
URL_REGEXPS | {'acronym': '(?P<acronym>[-a-z0-9]+)', 'bofreq': '(?P<name>bofreq-[-a-z0-9]+)', 'charter': '(?P<name>charter-[-a-z0-9]+)', 'date': '(?P<date>\\d{4}-\\d{2}-\\d{2})', 'document': '(?P<document>[a-z][-a-z0-9]+)', 'name': '(?P<name>[A-Za-z0-9._+-]+?)', 'owner': "(?P<owner>[-A-Za-z0-9\\'+._]+@[A-Za-z0-9-._]+)", 'rev': '(?P<rev>[0-9]{1,2}(-[0-9]{2})?)', 'schedule_name': '(?P<name>[A-Za-z0-9-:_]+)', 'statement': '(?P<name>statement-[-a-z0-9]+)'} |
USER_PREFERENCE_DEFAULTS | {'expires_soon': '14', 'full_draft': 'on', 'left_menu': 'off', 'new_enough': '14'} |
USE_DEPRECATED_PYTZ | True |
USE_I18N | False |
USE_L10N | False |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
USING_DEBUG_EMAIL_SERVER | True |
UTILS_APIKEY_GUI_LOGIN_LIMIT_DAYS | '********************' |
UTILS_FROM_EMAIL_DOMAINS | ['ietf.org', 'iab.org'] |
UTILS_LOGGER_LEVELS | {} |
UTILS_MEETING_CONFERENCE_DOMAINS | ['webex.com', 'zoom.us', 'jitsi.org', 'meetecho.com', 'gather.town'] |
UTILS_ON_BEHALF_EMAIL | 'noreply@ietf.org' |
UTILS_TEST_RANDOM_STATE_FILE | '.factoryboy_random_state' |
VIRTUAL_INTERIMS_REQUIRE_APPROVAL | False |
VULTURE_DEFAULT_ARGS | ['ietf'] |
WSGI_APPLICATION | 'ietf.wsgi.application' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
YANGLINT_BINARY | '/usr/bin/yanglint' |
YEAR_MONTH_FORMAT | 'F Y' |
YOUTUBE_API_KEY | '********************' |
YOUTUBE_API_SERVICE_NAME | '********************' |
YOUTUBE_API_VERSION | '********************' |
YOUTUBE_BASE_URL | 'https://www.youtube.com/watch' |
YOUTUBE_IETF_CHANNEL_ID | 'UC8dtK9njBLdFnBahHFp0eZQ' |
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.