You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Dan Davydov (JIRA)" <ji...@apache.org> on 2017/03/03 22:51:45 UTC
[jira] [Created] (AIRFLOW-940) Failing to unencrypt one variable
shouldn't break the admin/variable page
Dan Davydov created AIRFLOW-940:
-----------------------------------
Summary: Failing to unencrypt one variable shouldn't break the admin/variable page
Key: AIRFLOW-940
URL: https://issues.apache.org/jira/browse/AIRFLOW-940
Project: Apache Airflow
Issue Type: Bug
Components: webserver
Reporter: Dan Davydov
At the moment failing to decrypt one of the airflow variables in the database using the fernet key will cause the admin/variable page to crash. Instead there should be an error message for only the broken variables at the top of the page, and the other ones should still be loaded and displayed.
This is what the trace on admin/variable currently looks like:
{code}
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 68, in inner
return self._run_view(f, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 367, in _run_view
return fn(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask_admin/model/base.py", line 1814, in index_view
return_url=self._get_list_url(view_args),
File "/usr/local/lib/python2.7/dist-packages/flask_admin/base.py", line 307, in render
return render_template(template, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 128, in render_template
context, ctx.app)
File "/usr/local/lib/python2.7/dist-packages/flask/templating.py", line 110, in _render
rv = template.render(context)
File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 989, in render
return self.environment.handle_exception(exc_info, True)
File "/usr/local/lib/python2.7/dist-packages/jinja2/environment.py", line 754, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/airflow/www/templates/airflow/variable_list.html", line 18, in top-level template code
{% extends 'admin/model/list.html' %}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/model/list.html", line 5, in top-level template code
{% import 'admin/actions.html' as actionlib with context %}
File "/usr/local/lib/python2.7/dist-packages/airflow/www/templates/admin/master.html", line 18, in top-level template code
{% extends 'admin/base.html' %}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/base.html", line 30, in top-level template code
{% block page_body %}
File "/usr/local/lib/python2.7/dist-packages/airflow/www/templates/admin/master.html", line 96, in block "page_body"
{% block body %}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/model/list.html", line 62, in block "body"
{% block model_list_table %}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/model/list.html", line 110, in block "model_list_table"
{% block list_row scoped %}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/templates/bootstrap3/admin/model/list.html", line 165, in block "list_row"
{{ get_value(row, c) }}
File "/usr/local/lib/python2.7/dist-packages/flask_admin/model/base.py", line 1666, in get_list_value
self.column_type_formatters,
File "/usr/local/lib/python2.7/dist-packages/flask_admin/model/base.py", line 1631, in _get_list_value
value = column_fmt(self, context, model, name)
File "/usr/local/lib/python2.7/dist-packages/airflow/www/views.py", line 2146, in hidden_field_formatter
return getattr(model, name)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/attributes.py", line 293, in __get__
return self.descriptor.__get__(instance, owner)
File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 3487, in get_val
return FERNET.decrypt(bytes(self._val, 'utf-8')).decode()
File "/usr/local/lib/python2.7/dist-packages/cryptography/fernet.py", line 82, in decrypt
raise InvalidToken
InvalidToken
{quote}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)