• このエントリーをはてなブックマークに追加

【openstack】horizonのタイムアウト後にログインできない

  • このエントリーをはてなブックマークに追加

openstacklogo
zaco muraです。

以前horizonへのログインエラーの記事を書きましたが、その後も頻繁に起こりうっとうしいため根本解決を探しました。

一応解決したようなのでメモしておきます。

環境

・CentOS7.1.1503
・OpenStack kilo

事象

どうやら、ログインしたまま放置しておくことでセッションがタイムアウトするようなのですが、その後同じIDで再ログインすると以下の画面になりログインできなくなります。
Screenshot from 2015-10-15 15:25:08

手がかりを探すためにログを見ると以下のようなメッセージを発見しました。

# tail -f /var/log/httpd/error_log
[Thu Nov 19 10:08:00.240630 2015] [:error] [pid 30108] Login successful for user "admin".
[Thu Nov 19 10:08:00.241485 2015] [:error] [pid 30108] Internal Server Error: /dashboard/auth/login/
[Thu Nov 19 10:08:00.241494 2015] [:error] [pid 30108] Traceback (most recent call last):
[Thu Nov 19 10:08:00.241497 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
[Thu Nov 19 10:08:00.241499 2015] [:error] [pid 30108]     response = wrapped_callback(request, *callback_args, **callback_kwargs)
[Thu Nov 19 10:08:00.241502 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
[Thu Nov 19 10:08:00.241505 2015] [:error] [pid 30108]     return view(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241507 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
[Thu Nov 19 10:08:00.241509 2015] [:error] [pid 30108]     response = view_func(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241512 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
[Thu Nov 19 10:08:00.241514 2015] [:error] [pid 30108]     response = view_func(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241516 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/openstack_auth/views.py", line 111, in login
[Thu Nov 19 10:08:00.241518 2015] [:error] [pid 30108]     **kwargs)
[Thu Nov 19 10:08:00.241520 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
[Thu Nov 19 10:08:00.241523 2015] [:error] [pid 30108]     return view(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241525 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
[Thu Nov 19 10:08:00.241527 2015] [:error] [pid 30108]     response = view_func(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241529 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
[Thu Nov 19 10:08:00.241531 2015] [:error] [pid 30108]     response = view_func(request, *args, **kwargs)
[Thu Nov 19 10:08:00.241533 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/contrib/auth/views.py", line 51, in login
[Thu Nov 19 10:08:00.241536 2015] [:error] [pid 30108]     auth_login(request, form.get_user())
[Thu Nov 19 10:08:00.241538 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 102, in login
[Thu Nov 19 10:08:00.241540 2015] [:error] [pid 30108]     if _get_user_session_key(request) != user.pk or (
[Thu Nov 19 10:08:00.241558 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 59, in _get_user_session_key
[Thu Nov 19 10:08:00.241561 2015] [:error] [pid 30108]     return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
[Thu Nov 19 10:08:00.241564 2015] [:error] [pid 30108]   File "/usr/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 969, in to_python
[Thu Nov 19 10:08:00.241566 2015] [:error] [pid 30108]     params={'value': value},
[Thu Nov 19 10:08:00.241568 2015] [:error] [pid 30108] ValidationError: [u"'8c636ac359764b9289daa005cc7a29ae' \\u306f\\u6574\\u6570\\u5024\\u306b\\u3057\\u306a\\u3051\\u308c\\u3070\\u306a\\u308a\\u307e\\u305b\\u3093\\u3002"]

ログインに成功した、と言いつつ実際には失敗している模様です。
エラーメッセージの最後 “ValidationError: [u”の辺りをググったところ、こんな記事を発見しました。

https://bugzilla.redhat.com/show_bug.cgi?id=1221117

どうやらhorizonのバグらしく、現在は修正済みなのかな?

とりあえず記事に書かれている通りに以下を編集

# vim /usr/share/openstack-dashboard/openstack_dashboard/settings.py
#--------------------- 以下の辺り(170行前後)を編集---------------------------
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
AUTHENTICATION_BACKENDS = ('openstack_auth.backend.KeystoneBackend',)
AUTHENTICATION_URLS = ['openstack_auth.urls']
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'

AUTH_USER_MODEL = 'openstack_auth.User' ### <= これを追記する

そしてhttpdを再起動

# systemctl restart httpd.service

一応これでログインできました。
openstackはまだまだ文献が少なく、トラブルに苦労します。。。

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link