When we try to add a new user via Admin -> Users -> Create (http://localhost:8080/admin/user/new/?url=%2Fadmin%2Fuser%2F), we get a traceback
To reproduce:
docker-compose -f docker-compose-CeleryExecutor.yml up -d
docker logs -f dockerairflow_webserver_1
Docker image version: puckel/docker-airflow:1.9.0
Traceback:
[2018-01-17 13:03:43 +0000] [28] [INFO] Handling signal: ttin
[2018-01-17 13:03:43 +0000] [236] [INFO] Booting worker with pid: 236
[2018-01-17 13:03:43,229] {{__init__.py:45}} INFO - Using executor CeleryExecutor
[2018-01-17 13:03:43,479] {{models.py:189}} INFO - Filling up the DagBag from /usr/local/airflow/dags
/usr/local/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
[2018-01-17 13:03:43,627] ERROR in app: Exception on /admin/user/new/ [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 69, in inner
return self._run_view(f, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 368, in _run_view
return fn(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py", line 1947, in create_view
return_url=return_url)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 308, in render
return render_template(template, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template
context, ctx.app)
File "/usr/local/lib/python3.6/site-packages/flask/templating.py", line 116, in _render
rv = template.render(context)
File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 989, in render
return self.environment.handle_exception(exc_info, True)
File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 754, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/airflow/model_create.html", line 18, in top-level template code
{% extends 'admin/model/create.html' %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 3, in top-level template code
{% from 'admin/lib.html' import extra with context %} {# backward compatible #}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/admin/master.html", line 18, in top-level template code
{% extends 'admin/base.html' %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/base.html", line 30, in top-level template code
{% block page_body %}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/admin/master.html", line 104, in block "page_body"
{% block body %}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/airflow/model_create.html", line 28, in block "body"
{{ super() }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 22, in block "body"
{% block create_form %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 23, in block "create_form"
{{ lib.render_form(form, return_url, extra(), form_opts) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 202, in template
{% call form_tag(action=action) %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 182, in template
{{ caller() }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 203, in template
{{ render_form_fields(form, form_opts=form_opts) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 175, in template
{{ render_field(form, f, kwargs) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 130, in template
{{ field(**kwargs)|safe }}
File "/usr/local/lib/python3.6/site-packages/wtforms/fields/core.py", line 153, in __call__
return self.meta.render_field(self, kwargs)
File "/usr/local/lib/python3.6/site-packages/wtforms/meta.py", line 56, in render_field
return field.widget(field, **render_kw)
File "/usr/local/lib/python3.6/site-packages/flask_admin/form/widgets.py", line 28, in __call__
return super(Select2Widget, self).__call__(field, **kwargs)
File "/usr/local/lib/python3.6/site-packages/wtforms/widgets/core.py", line 287, in __call__
for val, label, selected in field.iter_choices():
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 169, in iter_choices
for pk, obj in self._get_object_list():
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 103, in _get_object_list
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 103, in <listcomp>
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 300, in get_pk_from_identity
cls, key = identity_key(instance=obj)
ValueError: too many values to unpack (expected 2)
[2018-01-17 13:03:43,627] {{app.py:1587}} ERROR - Exception on /admin/user/new/ [GET]
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 69, in inner
return self._run_view(f, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 368, in _run_view
return fn(self, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py", line 1947, in create_view
return_url=return_url)
File "/usr/local/lib/python3.6/site-packages/flask_admin/base.py", line 308, in render
return render_template(template, **kwargs)
File "/usr/local/lib/python3.6/site-packages/flask/templating.py", line 134, in render_template
context, ctx.app)
File "/usr/local/lib/python3.6/site-packages/flask/templating.py", line 116, in _render
rv = template.render(context)
File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 989, in render
return self.environment.handle_exception(exc_info, True)
File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 754, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/airflow/model_create.html", line 18, in top-level template code
{% extends 'admin/model/create.html' %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 3, in top-level template code
{% from 'admin/lib.html' import extra with context %} {# backward compatible #}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/admin/master.html", line 18, in top-level template code
{% extends 'admin/base.html' %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/base.html", line 30, in top-level template code
{% block page_body %}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/admin/master.html", line 104, in block "page_body"
{% block body %}
File "/usr/local/lib/python3.6/site-packages/airflow/www/templates/airflow/model_create.html", line 28, in block "body"
{{ super() }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 22, in block "body"
{% block create_form %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/model/create.html", line 23, in block "create_form"
{{ lib.render_form(form, return_url, extra(), form_opts) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 202, in template
{% call form_tag(action=action) %}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 182, in template
{{ caller() }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 203, in template
{{ render_form_fields(form, form_opts=form_opts) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 175, in template
{{ render_field(form, f, kwargs) }}
File "/usr/local/lib/python3.6/site-packages/flask_admin/templates/bootstrap3/admin/lib.html", line 130, in template
{{ field(**kwargs)|safe }}
File "/usr/local/lib/python3.6/site-packages/wtforms/fields/core.py", line 153, in __call__
return self.meta.render_field(self, kwargs)
File "/usr/local/lib/python3.6/site-packages/wtforms/meta.py", line 56, in render_field
return field.widget(field, **render_kw)
File "/usr/local/lib/python3.6/site-packages/flask_admin/form/widgets.py", line 28, in __call__
return super(Select2Widget, self).__call__(field, **kwargs)
File "/usr/local/lib/python3.6/site-packages/wtforms/widgets/core.py", line 287, in __call__
for val, label, selected in field.iter_choices():
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 169, in iter_choices
for pk, obj in self._get_object_list():
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 103, in _get_object_list
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 103, in <listcomp>
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 300, in get_pk_from_identity
cls, key = identity_key(instance=obj)
ValueError: too many values to unpack (expected 2)
172.22.0.1 - - [17/Jan/2018:13:03:43 +0000] "GET /admin/user/new/?url=%2Fadmin%2Fuser%2F HTTP/1.1" 500 7526 "http://localhost:8080/admin/user/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
Fix in Dockerfile (after pip install apache-airflow):
pip install 'sqlalchemy>=1.1.15, <1.2.0'
encountered same issue, curious when is this going to get merged ?
Most helpful comment
Fix in Dockerfile (after pip install apache-airflow):