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/draft-ietf-ace-usecases/06/ |
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:52 -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/draft-ietf-ace-usecases/06/'> |
/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/draft-ietf-ace-usecases/06/'> |
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/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org', 'view': <django.contrib.auth.views.LoginView object at 0x7f82779a3100>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f8277d3cb80> |
/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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
request | <WSGIRequest: GET '/accounts/login/?next=/doc/draft-ietf-ace-usecases/06/'> |
self | <django.template.backends.django.Template object at 0x7f8277d3cb80> |
/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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a36d0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f8277d3c6a0>, <TextNode: '\n <h1>Sign in</h1>\n '>, <django.template.defaulttags.CsrfTokenNode object at 0x7f8277d3caf0>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f8277d3cf10>, <TextNode: '\n <div class="mt-4'>, <django.template.library.SimpleNode object at 0x7f8277d3c880>, <TextNode: '\n '>, <URLNode view_name=''ietf.ietfauth.views.password_reset'' args=[] kwargs={} as='reset_url'>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f826455e4f0>, <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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <django.template.defaulttags.LoadNode object at 0x7f8267431d00> |
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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | [<TextNode: '\n<!DOCTYPE html>\n'>, <django.template.defaulttags.LoadNode object at 0x7f8267431d00>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f8267431070>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f82674318e0>, <TextNode: '\n'>, <ietf.utils.templatetags.origin.OriginNode object at 0x7f82857840d0>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f828578dcd0>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f828578d520>, <TextNode: '\n<html data-bs-theme="aut'>, <Block Node: html_attrs. Contents: []>, <TextNode: '>\n <head>\n '>, <analytical.templatetags.analytical.AnalyticalNode object at 0x7f8285784940>, <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 0x7f8285784820>, <TextNode: '\n '>, <Block Node: pagehead. Contents: []>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f8285784e20>, <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 0x7f8285784b50>, <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 0x7f8285784df0>, <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 0x7f823a0aa340>, <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 0x7f8285277730> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', '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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | [<TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f82858d5a00>, <TextNode: '\n'>, <ietf.utils.templatetags.origin.OriginNode object at 0x7f82858d57c0>, <TextNode: '\n'>, <django.template.defaulttags.LoadNode object at 0x7f82858d5dc0>, <TextNode: '\n'>, <IfNode>, <TextNode: '\n<li class="nav-item drop'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7f8264eadd30>, <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 0x7f824957a1c0>, <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 0x7f8249249af0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'form': <AuthenticationForm bound=False, valid=Unknown, fields=(username;password)>, 'view': <django.contrib.auth.views.LoginView object at 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
node | <django.template.library.SimpleNode object at 0x7f824957a1c0> |
/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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
self | <django.template.library.SimpleNode object at 0x7f824957a1c0> |
/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 0x7f82779a3100>, 'next': '/doc/draft-ietf-ace-usecases/06/', 'site': <Site: datatracker.ietf.org>, 'site_name': 'datatracker.ietf.org'}] |
resolved_args | ['top'] |
resolved_kwargs | {} |
self | <django.template.library.SimpleNode object at 0x7f824957a1c0> |
/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 0x7f828516fe20> |
/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 0x7f82767baf40> |
traceback | <traceback object at 0x7f826673bec0> |
/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/draft-ietf-ace-usecases/06/' |
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 | '52.23.231.207' |
HTTP_CF_IPCOUNTRY | 'US' |
HTTP_CF_RAY | '86beb4d4ca4d3b80-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/draft-ietf-ace-usecases/06/' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '52.23.231.207, 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/draft-ietf-ace-usecases/06/' |
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/draft-ietf-ace-usecases/06/' |
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 0x7f828578d880> |
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.