object of type 'generator' has no len()
Request Method: | GET |
---|---|
Request URL: | http://10.3.12.190/nova/images_and_snapshots/ |
Django Version: | 1.4 |
Exception Type: | TypeError |
Exception Value: | object of type 'generator' has no len() |
Exception Location: | /opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/api/glance.py in image_list_detailed, line 63 |
Python Executable: | /usr/bin/python |
Python Version: | 2.7.3 |
Python Path: | ['/opt/stack/horizon/openstack_dashboard/wsgi/../..', '/opt/stack/python-keystoneclient', '/usr/local/lib/python2.7/dist-packages', '/opt/stack/python-novaclient', '/opt/stack/python-openstackclient', '/opt/stack/keystone', '/opt/stack/glance', '/opt/stack/python-glanceclient', '/opt/stack/nova', '/opt/stack/horizon', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/pymodules/python2.7', '/opt/stack/horizon/openstack_dashboard'] |
Server time: | 星期六, 21 七月 2012 07:39:12 -0500 |
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py
in get_response
response = callback(request, *callback_args, **callback_kwargs)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py
in dec
return view_func(request, *args, **kwargs)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py
in dec
return view_func(request, *args, **kwargs)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py
in dec
return view_func(request, *args, **kwargs)...
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py
in view
return self.dispatch(request, *args, **kwargs)...
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py
in dispatch
return handler(request, *args, **kwargs)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py
in get
handled = self.construct_tables()...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py
in construct_tables
handled = self.handle_table(table)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py
in handle_table
data = self._get_data_dict()...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py
in _get_data_dict
self._data[table._meta.name] = data_func()...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/dashboards/nova/images_and_snapshots/views.py
in get_images_data
exceptions.handle(self.request, _("Unable to retrieve images."))...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/dashboards/nova/images_and_snapshots/views.py
in get_images_data
marker=marker)...
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/api/glance.py
in image_list_detailed
if(len(images) > limit):...
No GET data
No POST data
No FILES data
Variable | Value |
---|---|
csrftoken | '5ba0545704dc6ff5749c7d6e0ea8ccf4' |
horizon.tabs | '%7B%22instance_details%22%3A%22%23instance_details__overview%22%7D' |
sessionid | '437b06d43f52d9a3de7b375d51983a86' |
Variable | Value |
---|---|
mod_wsgi.listener_port | '80' |
HTTP_REFERER | 'http://10.3.12.190/nova/instances/' |
mod_wsgi.listener_host | '' |
SERVER_SOFTWARE | 'Apache/2.2.22 (Ubuntu)' |
SCRIPT_NAME | u'' |
mod_wsgi.handler_script | '' |
SERVER_SIGNATURE | '<address>Apache/2.2.22 (Ubuntu) Server at 10.3.12.190 Port 80</address>\n' |
REQUEST_METHOD | 'GET' |
PATH_INFO | u'/nova/images_and_snapshots/' |
SERVER_PROTOCOL | 'HTTP/1.1' |
QUERY_STRING | '' |
HTTP_ACCEPT_CHARSET | 'GBK,utf-8;q=0.7,*;q=0.3' |
HTTP_USER_AGENT | 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11' |
HTTP_CONNECTION | 'keep-alive' |
HTTP_COOKIE | 'horizon.tabs=%7B%22instance_details%22%3A%22%23instance_details__overview%22%7D; sessionid=437b06d43f52d9a3de7b375d51983a86; csrftoken=5ba0545704dc6ff5749c7d6e0ea8ccf4' |
SERVER_NAME | '10.3.12.190' |
REMOTE_ADDR | '10.3.11.212' |
mod_wsgi.request_handler | 'wsgi-script' |
wsgi.url_scheme | 'http' |
APACHE_RUN_GROUP | 'user' |
PATH_TRANSLATED | '/opt/stack/horizon/openstack_dashboard/wsgi/django.wsgi/nova/images_and_snapshots/' |
SERVER_PORT | '80' |
wsgi.multiprocess | True |
mod_wsgi.input_chunked | '0' |
SERVER_ADDR | '10.3.12.190' |
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 0x7fb38149ce70> |
HTTP_HOST | '10.3.12.190' |
wsgi.multithread | True |
mod_wsgi.callable_object | 'application' |
HTTP_CACHE_CONTROL | 'max-age=0' |
REQUEST_URI | '/nova/images_and_snapshots/' |
HTTP_ACCEPT | 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' |
wsgi.version | (1, 1) |
GATEWAY_INTERFACE | 'CGI/1.1' |
wsgi.run_once | False |
APACHE_RUN_USER | 'user' |
wsgi.errors | <mod_wsgi.Log object at 0x7fb38149cef0> |
REMOTE_PORT | '52290' |
HTTP_ACCEPT_LANGUAGE | 'zh-CN,zh;q=0.8' |
mod_wsgi.version | (3, 3) |
mod_wsgi.application_group | '' |
mod_wsgi.script_reloading | '1' |
wsgi.file_wrapper | '' |
CSRF_COOKIE | '5ba0545704dc6ff5749c7d6e0ea8ccf4' |
HTTP_ACCEPT_ENCODING | 'gzip,deflate,sdch' |
openstack_dashboard.settings
Setting | Value |
---|---|
COMPRESS_URL | '/static/' |
COMPRESS_OUTPUT_DIR | 'dashboard' |
MAILER_EMAIL_BACKEND | 'django.core.mail.backends.console.EmailBackend' |
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' |
DEFAULT_CHARSET | 'utf-8' |
STATIC_ROOT | '/opt/stack/horizon/static' |
COMPRESS_CLOSURE_COMPILER_ARGUMENTS | '' |
USE_THOUSAND_SEPARATOR | False |
COMPRESS_OFFLINE_MANIFEST | 'manifest.json' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.cookie.CookieStorage' |
WSGI_APPLICATION | None |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
SEND_BROKEN_LINK_EMAILS | False |
URL_VALIDATOR_USER_AGENT | 'Django/1.4 (https://www.djangoproject.com)' |
STATICFILES_FINDERS | ('compressor.finders.CompressorFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
COMPRESS_CSSTIDY_ARGUMENTS | '--template=highest' |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_NAME | 'sessionid' |
ADMIN_FOR | () |
TIME_INPUT_FORMATS | ('%H:%M:%S', '%H:%M') |
DATABASES | {'default': {'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/opt/stack/horizon/openstack_dashboard/local/dashboard_openstack.sqlite3', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST_CHARSET': None, 'TEST_COLLATION': None, 'TEST_MIRROR': None, 'TEST_NAME': '/opt/stack/horizon/openstack_dashboard/local/test.sqlite3', 'TIME_ZONE': 'UTC', 'USER': ''}} |
SITE_BRANDING | 'OpenStack Dashboard' |
COMPRESS_YUI_BINARY | '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 | 'compressor.css.CssCompressor' |
APPEND_SLASH | True |
FIRST_DAY_OF_WEEK | 0 |
DATABASE_ROUTERS | [] |
YEAR_MONTH_FORMAT | 'F Y' |
COMPRESS_OFFLINE_TIMEOUT | 31536000 |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache', 'LOCATION': ''}} |
SERVER_EMAIL | 'root@localhost' |
SESSION_COOKIE_PATH | '/' |
SWIFT_PAGINATE_LIMIT | 100 |
COMPRESS_PARSER | 'compressor.parser.HtmlParser' |
COMPRESS_OFFLINE_CONTEXT | {'MEDIA_URL': '/media/', 'STATIC_URL': '/static/'} |
COMPRESS_CACHE_BACKEND | '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') |
USE_I18N | True |
THOUSAND_SEPARATOR | ',' |
SECRET_KEY | u'********************' |
LANGUAGE_COOKIE_NAME | 'django_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' |
TEMPLATE_LOADERS | ('django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'horizon.loaders.TemplateLoader') |
OPENSTACK_KEYSTONE_ADMIN_URL | u'********************' |
TEMPLATE_DEBUG | True |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
CSRF_COOKIE_NAME | 'csrftoken' |
FORCE_SCRIPT_NAME | None |
CACHE_BACKEND | 'dummy://' |
COMPRESS_CSSTIDY_BINARY | 'csstidy' |
USE_X_FORWARDED_HOST | False |
SESSION_COOKIE_SECURE | False |
COMPRESS_DEBUG_TOGGLE | 'None' |
CACHE_MIDDLEWARE_KEY_PREFIX | u'********************' |
COMPRESS_VERBOSE | False |
CSRF_COOKIE_DOMAIN | None |
FILE_CHARSET | 'utf-8' |
DEBUG | True |
USE_SSL | False |
SESSION_FILE_PATH | None |
COMPRESS_JS_FILTERS | ['compressor.filters.jsmin.JSMinFilter'] |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
INSTALLED_APPS | ('openstack_dashboard', 'django.contrib.contenttypes', 'django.contrib.auth', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'compressor', 'horizon', 'horizon.dashboards.nova', 'horizon.dashboards.syspanel', 'horizon.dashboards.settings', 'openstack_auth') |
LANGUAGES_BIDI | ('he', 'ar', 'fa') |
COMMENTS_ALLOW_PROFANITIES | False |
COMPRESS_YUI_CSS_ARGUMENTS | '' |
STATICFILES_DIRS | () |
PREPEND_WWW | False |
SECURE_PROXY_SSL_HEADER | None |
LOCAL_PATH | '/opt/stack/horizon/openstack_dashboard/local' |
SESSION_COOKIE_HTTPONLY | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
PROD | False |
MONTH_DAY_FORMAT | 'F j' |
LOGIN_URL | '/auth/login/' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | True |
OPENSTACK_KEYSTONE_URL | u'********************' |
TIME_FORMAT | 'P' |
COMPRESS_STORAGE | 'compressor.storage.CompressorFileStorage' |
HORIZON_CONFIG | {'dashboards': ('nova', 'syspanel', 'settings'), 'default_dashboard': 'nova', 'user_home': 'openstack_dashboard.views.user_home'} |
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 |
ADMIN_MEDIA_PREFIX | '/static/admin/' |
NUMBER_GROUPING | 0 |
SESSION_ENGINE | 'django.contrib.sessions.backends.cached_db' |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_COOKIE_PATH | '/' |
COMPRESS_CACHE_KEY_FUNCTION | u'********************' |
LOGIN_REDIRECT_URL | '/' |
DECIMAL_SEPARATOR | '.' |
COMPRESS_PRECOMPILERS | (('text/less', '/opt/stack/horizon/bin/less/lessc {infile} {outfile}'),) |
COMPRESS_MTIME_DELAY | 10 |
SITE_ID | 1 |
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' |
MEDIA_ROOT | '/opt/stack/horizon/media' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'horizon.exceptions.HorizonReporterFilter' |
ADMINS | () |
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 | '' |
OPENSTACK_KEYSTONE_BACKEND | u'********************' |
OPENSTACK_KEYSTONE_DEFAULT_ROLE | u'********************' |
COMPRESS_JS_COMPRESSOR | 'compressor.js.JsCompressor' |
DISALLOWED_USER_AGENTS | () |
ALLOWED_INCLUDE_ROOTS | () |
COMPRESS_MINT_DELAY | 30 |
LOGGING | {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}}, 'version': 1} |
SHORT_DATE_FORMAT | 'm/d/Y' |
TEST_RUNNER | 'django_nose.NoseTestSuiteRunner' |
COMPRESS_ENABLED | True |
IGNORABLE_404_URLS | () |
COMPRESS_OFFLINE | False |
TIME_ZONE | 'America/Chicago' |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
EMAIL_BACKEND | 'django.core.mail.backends.console.EmailBackend' |
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_HOST | '127.0.0.1' |
SESSION_COOKIE_AGE | 1209600 |
SETTINGS_MODULE | 'openstack_dashboard.settings' |
USE_ETAGS | False |
LANGUAGES | (('en', 'English'), ('it', 'Italiano'), ('es', 'Spanish'), ('fr', 'French'), ('ja', 'Japanese'), ('pt', 'Portuguese'), ('pl', 'Polish'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese')) |
COMPRESS_CLOSURE_COMPILER_BINARY | '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 |
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') |
EMAIL_HOST_USER | '' |
PROFANITIES_LIST | u'********************' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard 500 page.