[
https://issues.apache.org/jira/browse/AIRFLOW-940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16442167#comment-16442167
]
Daniel Lamblin commented on AIRFLOW-940:
----------------------------------------
Close; I can confirm that v1.9.0 release shows an "invalid" tag for any value
that does not decrypt.
> 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
> Assignee: Edgar Rodriguez
> Priority: Major
> Labels: beginner, starter
>
> 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
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)