yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #24388
[Bug 1383630] Re: TemplateSyntaxError at /identity/users/ when filter button is clicked in user panel under Identity dashboard
Please keep bugs FixCommitted until published in a milestone
** Changed in: horizon
Status: Fix Released => Fix Committed
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1383630
Title:
TemplateSyntaxError at /identity/users/ when filter button is
clicked in user panel under Identity dashboard
Status in OpenStack Dashboard (Horizon):
Fix Committed
Bug description:
Testing step :
1:git clone https://github.com/openstack-dev/devstack.git
2:cd devstack && ./stack.sh
3:login as admin and go to user panel under Identity dashboard
4:type demo and click filter button
5:browser report the following error
TemplateSyntaxError at /identity/users/
'NoneType' object has no attribute 'lower'
Request Method: POST
Request URL: http://192.168.1.101/identity/users/
Django Version: 1.6.5
Exception Type: TemplateSyntaxError
Exception Value:
'NoneType' object has no attribute 'lower'
Exception Location: /opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/identity/users/tables.py in filter, line 159
Python Executable: /usr/bin/python
Python Version: 2.7.6
Python Path:
['/opt/stack/horizon/openstack_dashboard/wsgi/../..',
'/opt/stack/python-keystoneclient',
'/opt/stack/python-glanceclient',
'/opt/stack/python-cinderclient',
'/opt/stack/python-novaclient',
'/opt/stack/python-swiftclient',
'/opt/stack/python-neutronclient',
'/opt/stack/python-heatclient',
'/opt/stack/python-openstackclient',
'/opt/stack/keystone',
'/opt/stack/glance',
'/opt/stack/cinder',
'/opt/stack/nova',
'/opt/stack/horizon',
'/opt/stack/heat',
'/opt/stack/tempest',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/opt/stack/horizon/openstack_dashboard']
Server time: Tue, 21 Oct 2014 09:15:45 +0000
Error during template rendering
In template /opt/stack/horizon/horizon/templates/horizon/common/_data_table.html, error at line 5
'NoneType' object has no attribute 'lower'
1 {% load i18n %}
2 {% with table.needs_form_wrapper as needs_form_wrapper %}
3 <div class="table_wrapper">
4 {% if needs_form_wrapper %}<form action="{{ table.get_full_url }}" method="POST">{% csrf_token %}{% endif %}
5 {% with columns=table.get_columns rows=table.get_rows %}
6 {% block table %}
7 <table id="{{ table.slugify_name }}" class="{% block table_css_classes %}table table-bordered table-striped datatable {{ table.css_classes }}{% endblock %}">
8 <thead>
9 {% block table_caption %}
10 <tr class='table_caption'>
11 <th class='table_header' colspan='{{ columns|length }}'>
12 <h3 class='table_title'>{{ table }}</h3>
13 {{ table.render_table_actions }}
14 </th>
15 </tr>
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response
response = response.render() ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/response.py in render
self.content = self.rendered_content ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/response.py in rendered_content
content = template.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
return self._render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py in render
return compiled_parent._render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py in render
result = block.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py in render
result = block.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render
output = self.filter_expression.resolve(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in resolve
obj = self.var.resolve(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in resolve
value = self._resolve_lookup(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in _resolve_lookup
current = current() ...
? Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/base.py in render
return table_template.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
return self._render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in _render
return self.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py in render
output = self.nodelist.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in render
bit = self.render_node(node, context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/debug.py in render_node
return node.render(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py in render
six.iteritems(self.extra_context)]) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in resolve
obj = self.var.resolve(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in resolve
value = self._resolve_lookup(context) ...
? Local vars
/usr/local/lib/python2.7/dist-packages/django/template/base.py in _resolve_lookup
current = current() ...
? Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/base.py in get_rows
exc_info[2]) ...
? Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/base.py in get_rows
for datum in self.filtered_data: ...
? Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/base.py in filtered_data
filter_string) ...
? Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/identity/users/tables.py in filter
or q in getattr(user, 'email', '').lower()] ...
? Local vars
Request information
GET
No GET data
POST
Variable Value
csrfmiddlewaretoken
u'ykIFbr6ReBRm34gUJ7yo6fRMW1OBKFX1'
users__filter__q
u'do'
FILES
No FILES data
COOKIES
Variable Value
csrftoken
'ykIFbr6ReBRm34gUJ7yo6fRMW1OBKFX1'
horizon_language
'en'
horizon_pagesize
'20'
sessionid
'.eJytV1tz20QULmkStw5JeqFJA6UNUIoLxN6LpJVKC_RCYYApM5lqxi8Zz2ovkYgteS0pbR80Ay_8TH4LR7IcCoxlQ_GMx7va1Tnn-863Z49_WSnMWx1_K49TkYyVHGTJiYr9faYVtzyNEREES0E9RxNsK8YkF0wI5LfyVE0Gkezvnzt3zlUBd5hCGCNsScZcbAUeCbSwEUFKMLPib0zUcZTEg5iPlL_1RGmeD7P9w-qhvzngeRYOapPhir9d71axHCdRnPVvgpcwy8b3ej3skS523C7ugrd7NkKod0q6yJz3t-H900iodDB9vX8R3pq6-ClWZtXfjUb8GJYHOhpm4GtgYKSGsr8KG8vI-m0YZCrNRJKcRKq_DtMXyeRESf_KazEGXABL0r8DlMVpBrNqsVs_7_6gXqVZEqtH9b7NIU-zARdZdBplr76_f_vpc3-tYlr8zUJpvv28XGmbtbu_mvXCtDr-ukxGPIrNhcJc7PgrkTTtZ_5qGbDZeJb7WzXuxzzjw-TYvH1kNjuF2epUBMw4TM32kblUmMud_gV4zOUoiv3DH82V_oN55LqMWUBuz1OESMeTzHaphS3PdeBLbc-xMZKu8iqeppybq-FqfwWmEOQ7lTg8zt1AI1cEWlvC1QEVCARFiC2V7XLR3yh3x5CPmA_LgK79DwGVwMd5MIxEaXHnzS3mvL_9OpmDYRSfpGb3qNJO9mqszPV-C4YiGY3zTJ1JyuxNh8kpzwvzbieELLxXmBudsJl4Z5mowqt_1Xg4pZw4yKaIC4tjzwpsx3M9jYQWjoftwJM0bKZ4OdfNpC5lI-fh7lF4vdLjaTLMR-qUhHvVVESxBFUT4Oz9irObhblVcnajOZN0DiXMlo60KZOUK0sRHmDiSE6UVJw6DHtAyULLOwu3zABd_FMI8N5edT5KBcCOwuxXeD4ozIclnr15Jil85oChLqdcChEwYNTxBMecaReSzpCmSDkAptnsTvP6DEZ5jtMy_ukAYv-oiv12YT5ujN0jHpkTO7alqylkXyNtcaZ4QAmIEgfCwohx3hR7ZbYh9nJ9FvtaWVXKcl_TfzzksVAA4U4F4ZPCdJrlVF0seN4JI8QRDAvKbccSlg5cW2KBkYU08VzLbZRTbblJTtMtMyxbpZyGSS51MhnxDCKpT0moeHYgdAyw7lawPi3MZ0tUFvxfK4utPe1SV2LkMcuhmgeQQEicJJJQzeTiyrKE64WVZbGNGXPrZ5WllsG0rgBfn1d8HRSmW_LVaXBIe7O-ovewvDTnUWMTy2GICsuzLYdoTyCsEVFCMUlEVXSX9PK4TDWw8G-2zwCfLy8pUVbRegRQexVUVBjcLA2ErDeQBvEC5EmOXItTy0WsbBklDaDuKu7gwGmUxrKum6SxpI0ZU5tgKJmIELq9yexMrdZnCkgjFWm0MFZJ2q255dKmNqsa0Hn1jnBOGLGhvBGoDkGAsUsJswjRRFGMgZbFzW24E55__bKMpIozaCXrMnBS95u58tcmyVClxj4yDrSADDaszZq9tDAuzC_VGAfTtjN5EatJCj151dlOG01owo3nt-S0Szf3_JZ6OY4mYPcLIXmmsmik2mcDc99vt35vX2uvWdUBSxO4inC3_m37mWibB3cPzZe_HZqv_NZ4kvysRGa-LszDTtie9ogLcmYehRtVcqQaJeZx7q-W0ZonhfkGTIQrsHoG0zzNqxb5W3_fdjSDfjOgtoOFy6BaKwHlGsqWwOBM-uuZinmcme_Ch3ngX_7H34P-boVoMknSA9SlXXLw0nUGjnWQK5F3_wB6239I:1XgVXY:bhv2HejeAfFWszWpeBAYDfWw3rg'
django_timezone
'Asia/Shanghai'
META
Variable Value
mod_wsgi.listener_port
'80'
HTTP_REFERER
'http://192.168.1.101/identity/users/'
mod_wsgi.listener_host
''
CONTEXT_DOCUMENT_ROOT
'/opt/stack/horizon/.blackhole/'
SERVER_SOFTWARE
'Apache/2.4.7 (Ubuntu)'
SCRIPT_NAME
u''
mod_wsgi.enable_sendfile
'0'
mod_wsgi.handler_script
''
SERVER_SIGNATURE
'<address>Apache/2.4.7 (Ubuntu) Server at 192.168.1.101 Port 80</address>\n'
REQUEST_METHOD
'POST'
PATH_INFO
u'/identity/users/'
HTTP_ORIGIN
'http://192.168.1.101'
SERVER_PROTOCOL
'HTTP/1.1'
QUERY_STRING
''
CONTENT_LENGTH
'72'
HTTP_USER_AGENT
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36'
HTTP_CONNECTION
'keep-alive'
HTTP_COOKIE
'horizon_language=en; django_timezone="Asia/Shanghai"; horizon_pagesize=20; csrftoken=ykIFbr6ReBRm34gUJ7yo6fRMW1OBKFX1; sessionid=".eJytV1tz20QULmkStw5JeqFJA6UNUIoLxN6LpJVKC_RCYYApM5lqxi8Zz2ovkYgteS0pbR80Ay_8TH4LR7IcCoxlQ_GMx7va1Tnn-863Z49_WSnMWx1_K49TkYyVHGTJiYr9faYVtzyNEREES0E9RxNsK8YkF0wI5LfyVE0Gkezvnzt3zlUBd5hCGCNsScZcbAUeCbSwEUFKMLPib0zUcZTEg5iPlL_1RGmeD7P9w-qhvzngeRYOapPhir9d71axHCdRnPVvgpcwy8b3ej3skS523C7ugrd7NkKod0q6yJz3t-H900iodDB9vX8R3pq6-ClWZtXfjUb8GJYHOhpm4GtgYKSGsr8KG8vI-m0YZCrNRJKcRKq_DtMXyeRESf_KazEGXABL0r8DlMVpBrNqsVs_7_6gXqVZEqtH9b7NIU-zARdZdBplr76_f_vpc3-tYlr8zUJpvv28XGmbtbu_mvXCtDr-ukxGPIrNhcJc7PgrkTTtZ_5qGbDZeJb7WzXuxzzjw-TYvH1kNjuF2epUBMw4TM32kblUmMud_gV4zOUoiv3DH82V_oN55LqMWUBuz1OESMeTzHaphS3PdeBLbc-xMZKu8iqeppybq-FqfwWmEOQ7lTg8zt1AI1cEWlvC1QEVCARFiC2V7XLR3yh3x5CPmA_LgK79DwGVwMd5MIxEaXHnzS3mvL_9OpmDYRSfpGb3qNJO9mqszPV-C4YiGY3zTJ1JyuxNh8kpzwvzbieELLxXmBudsJl4Z5mowqt_1Xg4pZw4yKaIC4tjzwpsx3M9jYQWjoftwJM0bKZ4OdfNpC5lI-fh7lF4vdLjaTLMR-qUhHvVVESxBFUT4Oz9irObhblVcnajOZN0DiXMlo60KZOUK0sRHmDiSE6UVJw6DHtAyULLOwu3zABd_FMI8N5edT5KBcCOwuxXeD4ozIclnr15Jil85oChLqdcChEwYNTxBMecaReSzpCmSDkAptnsTvP6DEZ5jtMy_ukAYv-oiv12YT5ujN0jHpkTO7alqylkXyNtcaZ4QAmIEgfCwohx3hR7ZbYh9nJ9FvtaWVXKcl_TfzzksVAA4U4F4ZPCdJrlVF0seN4JI8QRDAvKbccSlg5cW2KBkYU08VzLbZRTbblJTtMtMyxbpZyGSS51MhnxDCKpT0moeHYgdAyw7lawPi3MZ0tUFvxfK4utPe1SV2LkMcuhmgeQQEicJJJQzeTiyrKE64WVZbGNGXPrZ5WllsG0rgBfn1d8HRSmW_LVaXBIe7O-ovewvDTnUWMTy2GICsuzLYdoTyCsEVFCMUlEVXSX9PK4TDWw8G-2zwCfLy8pUVbRegRQexVUVBjcLA2ErDeQBvEC5EmOXItTy0WsbBklDaDuKu7gwGmUxrKum6SxpI0ZU5tgKJmIELq9yexMrdZnCkgjFWm0MFZJ2q255dKmNqsa0Hn1jnBOGLGhvBGoDkGAsUsJswjRRFGMgZbFzW24E55__bKMpIozaCXrMnBS95u58tcmyVClxj4yDrSADDaszZq9tDAuzC_VGAfTtjN5EatJCj151dlOG01owo3nt-S0Szf3_JZ6OY4mYPcLIXmmsmik2mcDc99vt35vX2uvWdUBSxO4inC3_m37mWibB3cPzZe_HZqv_NZ4kvysRGa-LszDTtie9ogLcmYehRtVcqQaJeZx7q-W0ZonhfkGTIQrsHoG0zzNqxb5W3_fdjSDfjOgtoOFy6BaKwHlGsqWwOBM-uuZinmcme_Ch3ngX_7H34P-boVoMknSA9SlXXLw0nUGjnWQK5F3_wB6239I:1XgVXY:bhv2HejeAfFWszWpeBAYDfWw3rg"'
SERVER_NAME
'192.168.1.101'
REMOTE_ADDR
'192.168.1.100'
mod_wsgi.queue_start
'1413882945308681'
mod_wsgi.request_handler
'wsgi-script'
wsgi.url_scheme
'http'
APACHE_RUN_GROUP
'whg'
PATH_TRANSLATED
'/opt/stack/horizon/openstack_dashboard/wsgi/django.wsgi/identity/users/'
SERVER_PORT
'80'
wsgi.multiprocess
True
mod_wsgi.input_chunked
'0'
SERVER_ADDR
'192.168.1.101'
DOCUMENT_ROOT
'/opt/stack/horizon/.blackhole/'
mod_wsgi.process_group
'horizon'
SCRIPT_FILENAME
'/opt/stack/horizon/openstack_dashboard/wsgi/django.wsgi'
SERVER_ADMIN
'[no address given]'
wsgi.input
<mod_wsgi.Input object at 0x7f894c6933b0>
HTTP_HOST
'192.168.1.101'
CONTEXT_PREFIX
''
wsgi.multithread
True
mod_wsgi.callable_object
'application'
HTTP_CACHE_CONTROL
'max-age=0'
REQUEST_URI
'/identity/users/'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
wsgi.version
(1, 0)
GATEWAY_INTERFACE
'CGI/1.1'
wsgi.run_once
False
APACHE_RUN_USER
'whg'
wsgi.errors
<mod_wsgi.Log object at 0x7f894c315a70>
REMOTE_PORT
'65469'
HTTP_ACCEPT_LANGUAGE
'en-US,zh-CN;q=0.8'
REQUEST_SCHEME
'http'
mod_wsgi.version
(3, 4)
CSRF_COOKIE_USED
True
CONTENT_TYPE
'application/x-www-form-urlencoded'
mod_wsgi.application_group
''
mod_wsgi.script_reloading
'1'
wsgi.file_wrapper
''
CSRF_COOKIE
u'ykIFbr6ReBRm34gUJ7yo6fRMW1OBKFX1'
HTTP_ACCEPT_ENCODING
'gzip,deflate'
Settings
Using settings module openstack_dashboard.settings
Setting Value
COMPRESS_URL
'/static/'
POLICY_FILES_PATH
'/opt/stack/horizon/openstack_dashboard/conf'
COMPRESS_OUTPUT_DIR
'dashboard'
COMPRESS_TEMPLATE_FILTER_CONTEXT
{u'STATIC_URL': '/static/'}
USE_L10N
True
COMPRESS_DATA_URI_MAX_SIZE
1024
CSRF_COOKIE_SECURE
False
LANGUAGE_CODE
'en'
ROOT_URLCONF
'openstack_dashboard.urls'
MANAGERS
()
COMPRESS_CSS_HASHING_METHOD
'hash'
SESSION_EXPIRE_AT_BROWSER_CLOSE
True
DEFAULT_CHARSET
'utf-8'
IGNORABLE_404_URLS
()
SESSION_SERIALIZER
'django.contrib.sessions.serializers.PickleSerializer'
STATIC_ROOT
'/opt/stack/horizon/static'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS
u''
USE_THOUSAND_SEPARATOR
False
COMPRESS_OFFLINE_MANIFEST
u'manifest.json'
ALLOWED_HOSTS
[]
MESSAGE_STORAGE
'django.contrib.messages.storage.cookie.CookieStorage'
EMAIL_SUBJECT_PREFIX
'[Django] '
IMAGE_RESERVED_CUSTOM_PROPERTIES
[]
STATICFILES_FINDERS
('compressor.finders.CompressorFinder',
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder')
SESSION_CACHE_ALIAS
'default'
COMPRESS_CSSTIDY_ARGUMENTS
u'--template=highest'
SESSION_COOKIE_DOMAIN
None
SESSION_COOKIE_NAME
'sessionid'
COMPRESS_YUGLIFY_JS_ARGUMENTS
u'--terminal'
ADMIN_FOR
()
TIME_INPUT_FORMATS
('%H:%M:%S', '%H:%M:%S.%f', '%H:%M')
DATABASES
{}
SITE_BRANDING
'OpenStack Dashboard'
COMPRESS_YUI_BINARY
u'java -jar yuicompressor.jar'
FILE_UPLOAD_PERMISSIONS
None
FILE_UPLOAD_HANDLERS
('django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler')
DEFAULT_CONTENT_TYPE
'text/html'
COMPRESS_CSS_COMPRESSOR
u'compressor.css.CssCompressor'
APPEND_SLASH
True
FIRST_DAY_OF_WEEK
0
DATABASE_ROUTERS
[]
OPENSTACK_NEUTRON_NETWORK
{'enable_distributed_router': True,
'enable_firewall': True,
'enable_ipv6': True,
'enable_lb': True,
'enable_quotas': True,
'enable_router': True,
'enable_vpn': True,
'profile_support': None,
'supported_provider_types': ['*']}
YEAR_MONTH_FORMAT
'F Y'
COMPRESS_OFFLINE_TIMEOUT
31536000
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
SERVER_EMAIL
'root@localhost'
SESSION_COOKIE_PATH
'/'
HORIZON_IMAGES_ALLOW_UPLOAD
True
COMPRESS_PARSER
'compressor.parser.HtmlParser'
COMPRESS_OFFLINE_CONTEXT
{'HORIZON_CONFIG': {'ajax_queue_limit': 10,
'angular_modules': [],
'auto_fade_alerts': {'delay': 3000,
'fade_duration': 1500,
'types': ['alert-success',
'alert-info']},
'dashboards': ('project',
'admin',
'settings',
'identity'),
'default_dashboard': 'project',
'exceptions': {'not_found': (<class 'keystoneclient.openstack.common.apiclient.exceptions.NotFound'>,
<class 'cinderclient.exceptions.NotFound'>,
<class 'novaclient.exceptions.NotFound'>,
<class 'glanceclient.exc.NotFound'>,
<class 'neutronclient.common.exceptions.NotFound'>,
<class 'heatclient.exc.HTTPNotFound'>,
<class 'troveclient.exceptions.NotFound'>),
'recoverable': (<class 'keystoneclient.openstack.common.apiclient.exceptions.ClientException'>,
<class 'keystoneclient.openstack.common.apiclient.exceptions.AuthorizationFailure'>,
<class 'keystoneclient.openstack.common.apiclient.exceptions.Forbidden'>,
<class 'cinderclient.exceptions.ClientException'>,
<class 'cinderclient.exceptions.ConnectionError'>,
<class 'cinderclient.exceptions.Forbidden'>,
<class 'novaclient.exceptions.ClientException'>,
<class 'novaclient.exceptions.Forbidden'>,
<class 'glanceclient.exc.ClientException'>,
<class 'neutronclient.common.exceptions.Forbidden'>,
<class 'neutronclient.common.exceptions.NeutronClientException'>,
<class 'swiftclient.exceptions.ClientException'>,
<class 'heatclient.exc.HTTPForbidden'>,
<class 'heatclient.exc.HTTPException'>,
<class 'troveclient.exceptions.ClientException'>,
<class 'saharaclient.api.base.APIException'>,
<class 'requests.exceptions.RequestException'>),
'unauthorized': (<class 'keystoneclient.openstack.common.apiclient.exceptions.Unauthorized'>,
<class 'cinderclient.exceptions.Unauthorized'>,
<class 'novaclient.exceptions.Unauthorized'>,
<class 'glanceclient.exc.Unauthorized'>,
<class 'neutronclient.common.exceptions.Unauthorized'>,
<class 'heatclient.exc.HTTPUnauthorized'>,
<class 'troveclient.exceptions.Unauthorized'>)},
'help_url': 'http://docs.openstack.org',
'js_files': [],
'panel_customization': [],
'user_home': 'openstack_dashboard.views.get_user_home'},
'STATIC_URL': '/static/'}
COMPRESS_CACHE_BACKEND
u'default'
MIDDLEWARE_CLASSES
('django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'horizon.middleware.HorizonMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
USE_I18N
True
THOUSAND_SEPARATOR
','
SECRET_KEY
u'********************'
LANGUAGE_COOKIE_NAME
'horizon_language'
DEFAULT_INDEX_TABLESPACE
''
BIN_DIR
'/opt/stack/horizon/bin'
TRANSACTIONS_MANAGED
False
LOGGING_CONFIG
'django.utils.log.dictConfig'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
SEND_BROKEN_LINK_EMAILS
False
TEMPLATE_LOADERS
('django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
'horizon.loaders.TemplateLoader')
WSGI_APPLICATION
None
TEMPLATE_DEBUG
True
X_FRAME_OPTIONS
'SAMEORIGIN'
CSRF_COOKIE_NAME
'csrftoken'
POLICY_FILES
{'compute': 'nova_policy.json',
'identity': 'keystone_policy.json',
'image': 'glance_policy.json',
'network': 'neutron_policy.json',
'orchestration': 'heat_policy.json',
'volume': 'cinder_policy.json'}
FORCE_SCRIPT_NAME
None
USE_X_FORWARDED_HOST
False
COMPRESS_CSSTIDY_BINARY
u'csstidy'
SESSION_COOKIE_SECURE
False
IMAGE_CUSTOM_PROPERTY_TITLES
{'architecture': <django.utils.functional.__proxy__ object at 0x7f894f6cec50>,
'image_state': <django.utils.functional.__proxy__ object at 0x7f894f6ced10>,
'image_type': <django.utils.functional.__proxy__ object at 0x7f894f6ced90>,
'kernel_id': <django.utils.functional.__proxy__ object at 0x7f894f6cec90>,
'project_id': <django.utils.functional.__proxy__ object at 0x7f894f6ced50>,
'ramdisk_id': <django.utils.functional.__proxy__ object at 0x7f894f6cecd0>}
COMPRESS_DEBUG_TOGGLE
None
COMPRESS_VERBOSE
False
CSRF_COOKIE_DOMAIN
None
FILE_CHARSET
'utf-8'
DEBUG
True
SESSION_FILE_PATH
None
COMPRESS_JS_FILTERS
[u'compressor.filters.jsmin.JSMinFilter']
DEFAULT_FILE_STORAGE
'django.core.files.storage.FileSystemStorage'
INSTALLED_APPS
['openstack_dashboard.dashboards.project',
'openstack_dashboard.dashboards.admin',
'openstack_dashboard.dashboards.identity',
'openstack_dashboard.dashboards.settings',
'openstack_dashboard',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django_pyscss',
'compressor',
'horizon',
'openstack_auth']
LANGUAGES_BIDI
('he', 'ar', 'fa', 'ur')
COMMENTS_ALLOW_PROFANITIES
False
COMPRESS_YUI_CSS_ARGUMENTS
u''
STATICFILES_DIRS
(('horizon/lib/angular',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/angular/data'),
('horizon/lib/angular',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/angular_cookies/data'),
('horizon/lib/angular',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/angular_mock/data'),
('horizon/lib/bootstrap_datepicker',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/bootstrap_datepicker/data'),
('horizon/lib', '/usr/local/lib/python2.7/dist-packages/xstatic/pkg/d3/data'),
('horizon/lib',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/hogan/data'),
('horizon/lib/font-awesome',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/font_awesome/data'),
('horizon/lib/jasmine-1.3.1',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jasmine/data'),
('horizon/lib/jquery',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jquery/data'),
('horizon/lib/jquery',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jquery_migrate/data'),
('horizon/lib/jquery',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jquery_quicksearch/data'),
('horizon/lib/jquery',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jquery_tablesorter/data'),
('horizon/lib/jsencrypt',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/jsencrypt/data'),
('horizon/lib/qunit',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/qunit/data'),
('horizon/lib',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/rickshaw/data'),
('horizon/lib',
'/usr/local/lib/python2.7/dist-packages/xstatic/pkg/spin/data'))
PREPEND_WWW
False
SECURE_PROXY_SSL_HEADER
None
LOCAL_PATH
'/opt/stack/horizon/openstack_dashboard/local'
SESSION_COOKIE_HTTPONLY
True
DEBUG_PROPAGATE_EXCEPTIONS
False
MONTH_DAY_FORMAT
'F j'
LOGIN_URL
'/auth/login/'
POLICY_CHECK_FUNCTION
''
OPENSTACK_KEYSTONE_URL
u'********************'
SECURITY_GROUP_RULES
{'all_icmp': {'from_port': '-1',
'ip_protocol': 'icmp',
'name': <django.utils.functional.__proxy__ object at 0x7f894f6cee50>,
'to_port': '-1'},
'all_tcp': {'from_port': '1',
'ip_protocol': 'tcp',
'name': <django.utils.functional.__proxy__ object at 0x7f894f6cedd0>,
'to_port': '65535'},
'all_udp': {'from_port': '1',
'ip_protocol': 'udp',
'name': <django.utils.functional.__proxy__ object at 0x7f894f6cee10>,
'to_port': '65535'},
'dns': {'from_port': '53',
'ip_protocol': 'tcp',
'name': 'DNS',
'to_port': '53'},
'http': {'from_port': '80',
'ip_protocol': 'tcp',
'name': 'HTTP',
'to_port': '80'},
'https': {'from_port': '443',
'ip_protocol': 'tcp',
'name': 'HTTPS',
'to_port': '443'},
'imap': {'from_port': '143',
'ip_protocol': 'tcp',
'name': 'IMAP',
'to_port': '143'},
'imaps': {'from_port': '993',
'ip_protocol': 'tcp',
'name': 'IMAPS',
'to_port': '993'},
'ldap': {'from_port': '389',
'ip_protocol': 'tcp',
'name': 'LDAP',
'to_port': '389'},
'ms_sql': {'from_port': '1433',
'ip_protocol': 'tcp',
'name': 'MS SQL',
'to_port': '1433'},
'mysql': {'from_port': '3306',
'ip_protocol': 'tcp',
'name': 'MYSQL',
'to_port': '3306'},
'pop3': {'from_port': '110',
'ip_protocol': 'tcp',
'name': 'POP3',
'to_port': '110'},
'pop3s': {'from_port': '995',
'ip_protocol': 'tcp',
'name': 'POP3S',
'to_port': '995'},
'rdp': {'from_port': '3389',
'ip_protocol': 'tcp',
'name': 'RDP',
'to_port': '3389'},
'smtp': {'from_port': '25',
'ip_protocol': 'tcp',
'name': 'SMTP',
'to_port': '25'},
'smtps': {'from_port': '465',
'ip_protocol': 'tcp',
'name': 'SMTPS',
'to_port': '465'},
'ssh': {'from_port': '22',
'ip_protocol': 'tcp',
'name': 'SSH',
'to_port': '22'}}
TIME_FORMAT
'P'
COMPRESS_STORAGE
u'compressor.storage.CompressorFileStorage'
HORIZON_CONFIG
{'ajax_queue_limit': 10,
'angular_modules': [],
'auto_fade_alerts': {'delay': 3000,
'fade_duration': 1500,
'types': ['alert-success', 'alert-info']},
'dashboards': ('project', 'admin', 'settings', 'identity'),
'default_dashboard': 'project',
'exceptions': {'not_found': (<class 'keystoneclient.openstack.common.apiclient.exceptions.NotFound'>,
<class 'cinderclient.exceptions.NotFound'>,
<class 'novaclient.exceptions.NotFound'>,
<class 'glanceclient.exc.NotFound'>,
<class 'neutronclient.common.exceptions.NotFound'>,
<class 'heatclient.exc.HTTPNotFound'>,
<class 'troveclient.exceptions.NotFound'>),
'recoverable': (<class 'keystoneclient.openstack.common.apiclient.exceptions.ClientException'>,
<class 'keystoneclient.openstack.common.apiclient.exceptions.AuthorizationFailure'>,
<class 'keystoneclient.openstack.common.apiclient.exceptions.Forbidden'>,
<class 'cinderclient.exceptions.ClientException'>,
<class 'cinderclient.exceptions.ConnectionError'>,
<class 'cinderclient.exceptions.Forbidden'>,
<class 'novaclient.exceptions.ClientException'>,
<class 'novaclient.exceptions.Forbidden'>,
<class 'glanceclient.exc.ClientException'>,
<class 'neutronclient.common.exceptions.Forbidden'>,
<class 'neutronclient.common.exceptions.NeutronClientException'>,
<class 'swiftclient.exceptions.ClientException'>,
<class 'heatclient.exc.HTTPForbidden'>,
<class 'heatclient.exc.HTTPException'>,
<class 'troveclient.exceptions.ClientException'>,
<class 'saharaclient.api.base.APIException'>,
<class 'requests.exceptions.RequestException'>),
'unauthorized': (<class 'keystoneclient.openstack.common.apiclient.exceptions.Unauthorized'>,
<class 'cinderclient.exceptions.Unauthorized'>,
<class 'novaclient.exceptions.Unauthorized'>,
<class 'glanceclient.exc.Unauthorized'>,
<class 'neutronclient.common.exceptions.Unauthorized'>,
<class 'heatclient.exc.HTTPUnauthorized'>,
<class 'troveclient.exceptions.Unauthorized'>)},
'help_url': 'http://docs.openstack.org',
'js_files': [],
'panel_customization': [],
'user_home': 'openstack_dashboard.views.get_user_home'}
AUTH_USER_MODEL
'auth.User'
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')
COMPRESS_CSS_FILTERS
('compressor.filters.css_default.CssAbsoluteFilter',)
AUTHENTICATION_BACKENDS
('openstack_auth.backend.KeystoneBackend',)
EMAIL_HOST_PASSWORD
u'********************'
COMPRESS_REBUILD_TIMEOUT
2592000
PASSWORD_RESET_TIMEOUT_DAYS
u'********************'
CACHE_MIDDLEWARE_ALIAS
'default'
ROOT_PATH
'/opt/stack/horizon/openstack_dashboard'
SESSION_SAVE_EVERY_REQUEST
False
NUMBER_GROUPING
0
SESSION_ENGINE
'django.contrib.sessions.backends.signed_cookies'
COMPRESS_YUGLIFY_BINARY
u'yuglify'
CSRF_FAILURE_VIEW
'django.views.csrf.csrf_failure'
CSRF_COOKIE_PATH
'/'
COMPRESS_CACHE_KEY_FUNCTION
u'********************'
LOGIN_REDIRECT_URL
'/'
DECIMAL_SEPARATOR
'.'
COMPRESS_PRECOMPILERS
(('text/scss', 'django_pyscss.compressor.DjangoScssFilter'),)
COMPRESS_MTIME_DELAY
10
LOCALE_PATHS
()
TEMPLATE_STRING_IF_INVALID
''
LOGOUT_URL
'/auth/logout/'
EMAIL_USE_TLS
False
TEMPLATE_DIRS
('/opt/stack/horizon/openstack_dashboard/templates',)
FIXTURE_DIRS
()
EMAIL_HOST
'localhost'
DATE_FORMAT
'N j, Y'
SESSION_COOKIE_MAX_SIZE
4093
MEDIA_ROOT
'/opt/stack/horizon/media'
DEFAULT_EXCEPTION_REPORTER_FILTER
'horizon.exceptions.HorizonReporterFilter'
ADMINS
()
SESSION_TIMEOUT
1800
FORMAT_MODULE_PATH
None
DEFAULT_FROM_EMAIL
'webmaster@localhost'
COMPRESS_ROOT
'/opt/stack/horizon/static'
MEDIA_URL
'/media/'
DATETIME_FORMAT
'N j, Y, P'
COMPRESS_YUI_JS_ARGUMENTS
u''
OPENSTACK_KEYSTONE_BACKEND
u'********************'
API_RESULT_PAGE_SIZE
u'********************'
OPENSTACK_KEYSTONE_DEFAULT_ROLE
u'********************'
COMPRESS_JS_COMPRESSOR
u'compressor.js.JsCompressor'
DISALLOWED_USER_AGENTS
()
ALLOWED_INCLUDE_ROOTS
()
COMPRESS_MINT_DELAY
30
LOGGING
{'disable_existing_loggers': False,
'handlers': {'console': {'class': 'logging.StreamHandler', 'level': 'INFO'},
'null': {'class': 'django.utils.log.NullHandler',
'level': 'DEBUG'}},
'loggers': {'ceilometerclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'cinderclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'django': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'django.db.backends': {'handlers': ['null'], 'propagate': False},
'glanceclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'heatclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'horizon': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'iso8601': {'handlers': ['null'], 'propagate': False},
'keystoneclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'neutronclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'nose.plugins.manager': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'novaclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'openstack_auth': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'openstack_dashboard': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'requests': {'handlers': ['null'], 'propagate': False},
'scss': {'handlers': ['null'], 'propagate': False},
'swiftclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False},
'troveclient': {'handlers': ['console'],
'level': 'DEBUG',
'propagate': False}},
'version': 1}
SHORT_DATE_FORMAT
'm/d/Y'
TEST_RUNNER
'django_nose.NoseTestSuiteRunner'
COMPRESS_ENABLED
True
OPENSTACK_HYPERVISOR_FEATURES
{'can_set_mount_point': False, 'can_set_password': False}
CACHE_MIDDLEWARE_KEY_PREFIX
u'********************'
COMPRESS_OFFLINE
False
TIME_ZONE
'UTC'
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
COMPRESS_YUGLIFY_CSS_ARGUMENTS
u'--terminal'
EMAIL_BACKEND
'django.core.mail.backends.console.EmailBackend'
COMPRESS_JINJA2_GET_ENVIRONMENT
<jinja2.environment.Environment object at 0x7f894c2ee990>
DEFAULT_TABLESPACE
''
TEMPLATE_CONTEXT_PROCESSORS
('django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.messages.context_processors.messages',
'horizon.context_processors.horizon',
'openstack_dashboard.context_processors.openstack')
OPENSTACK_IMAGE_BACKEND
{'image_formats': [('',
<django.utils.functional.__proxy__ object at 0x7f894f6a12d0>),
('aki',
<django.utils.functional.__proxy__ object at 0x7f894f6a13d0>),
('ami',
<django.utils.functional.__proxy__ object at 0x7f894f6a1410>),
('ari',
<django.utils.functional.__proxy__ object at 0x7f894f6a1450>),
('iso',
<django.utils.functional.__proxy__ object at 0x7f894f6a1a50>),
('qcow2',
<django.utils.functional.__proxy__ object at 0x7f894f6a1ad0>),
('raw',
<django.utils.functional.__proxy__ object at 0x7f894f6a1b10>),
('vdi',
<django.utils.functional.__proxy__ object at 0x7f894f6a1b50>),
('vhd',
<django.utils.functional.__proxy__ object at 0x7f894f6a1b90>),
('vmdk',
<django.utils.functional.__proxy__ object at 0x7f894f6a1bd0>)]}
OPENSTACK_HOST
'192.168.1.101'
SESSION_COOKIE_AGE
1209600
SETTINGS_MODULE
'openstack_dashboard.settings'
USE_ETAGS
False
LANGUAGES
(('de', 'German'),
('en', 'English'),
('en-au', 'Australian English'),
('en-gb', 'British English'),
('es', 'Spanish'),
('fr', 'French'),
('hi', 'Hindi'),
('ja', 'Japanese'),
('ko', 'Korean (Korea)'),
('nl', 'Dutch (Netherlands)'),
('pl', 'Polish'),
('pt-br', 'Portuguese (Brazil)'),
('sr', 'Serbian'),
('zh-cn', 'Simplified Chinese'),
('zh-tw', 'Chinese (Taiwan)'))
COMPRESS_CLOSURE_COMPILER_BINARY
u'java -jar compiler.jar'
FILE_UPLOAD_TEMP_DIR
None
INTERNAL_IPS
()
STATIC_URL
'/static/'
EMAIL_PORT
25
USE_TZ
True
SHORT_DATETIME_FORMAT
'm/d/Y P'
PASSWORD_HASHERS
u'********************'
ABSOLUTE_URL_OVERRIDES
{}
CACHE_MIDDLEWARE_SECONDS
600
CSRF_COOKIE_HTTPONLY
False
DATETIME_INPUT_FORMATS
('%Y-%m-%d %H:%M:%S',
'%Y-%m-%d %H:%M:%S.%f',
'%Y-%m-%d %H:%M',
'%Y-%m-%d',
'%m/%d/%Y %H:%M:%S',
'%m/%d/%Y %H:%M:%S.%f',
'%m/%d/%Y %H:%M',
'%m/%d/%Y',
'%m/%d/%y %H:%M:%S',
'%m/%d/%y %H:%M:%S.%f',
'%m/%d/%y %H:%M',
'%m/%d/%y')
API_RESULT_LIMIT
u'********************'
PROFANITIES_LIST
u'********************'
EMAIL_HOST_USER
''
OPENSTACK_CINDER_FEATURES
{'enable_backup': False}
To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1383630/+subscriptions
References