Bug 1264002 - if updated_time was set to Null, parse_isotime will raise an exception
Summary: if updated_time was set to Null, parse_isotime will raise an exception
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-django-horizon
Version: 5.0 (RHEL 6)
Hardware: x86_64
OS: Linux
low
low
Target Milestone: ---
: 8.0 (Liberty)
Assignee: Matthias Runge
QA Contact: Ido Ovadia
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-09-17 09:48 UTC by Felix Dewaleyne
Modified: 2019-08-15 05:27 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-10-13 19:34:32 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
heat cli.out (28.51 KB, text/plain)
2015-09-17 09:48 UTC, Felix Dewaleyne
no flags Details

Description Felix Dewaleyne 2015-09-17 09:48:15 UTC
Created attachment 1074378 [details]
heat cli.out

Description of problem:
if updated_time was set to Null, parse_isotime will raise an exception

Version-Release number of selected component (if applicable):
python-django-horizon-2013.2.3-3.el6ost.noarch
openstack-heat-api-2014.1.4-1.el6ost.noarch
python-heatclient-0.2.9-1.el6ost.noarch
openstack-heat-common-2014.1.4-1.el6ost.noarch
openstack-heat-api-cloudwatch-2014.1.4-1.el6ost.noarch
openstack-heat-engine-2014.1.4-1.el6ost.noarch
openstack-heat-templates-0-0.3.20140407git.el6ost.noarch
openstack-heat-api-cfn-2014.1.4-1.el6ost.noarch

How reproducible:
all the time

Steps to Reproduce:
1. find in the database a network element that has no updated_time set ( set to Null)
2. try to display the stacks for a tenant affected.

Actual results:

[Wed Sep 16 09:36:07 2015] [error] HTTP/1.1 200 OK
[Wed Sep 16 09:36:07 2015] [error] date: Wed, 16 Sep 2015 09:36:07 GMT
[Wed Sep 16 09:36:07 2015] [error] content-length: 3151
[Wed Sep 16 09:36:07 2015] [error] content-type: application/json; charset=UTF-8
[Wed Sep 16 09:36:07 2015] [error] 
[Wed Sep 16 09:36:07 2015] [error] {"stacks": [{"description": "Network template\\n", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/network/d7d22045-c3e3-4c09-9912-19d2967e8566", "rel": "self"}], "stack_status_reason": "Resource CREATE failed: OverLimit: 409-{u'NeutronError': {u'message': u\\"Quota exceeded for resources: ['security_group']\\", u'type': u'OverQuota', u'detail': u''}} (HTTP 413) (Request-ID: req-e701860a-cbbb-4d80-8ed5-160679f7c228)", "stack_name": "network", "creation_time": "2015-07-09T15:38:25Z", "updated_time": null, "stack_status": "CREATE_FAILED", "id": "d7d22045-c3e3-4c09-9912-19d2967e8566"}, {"description": "Mongo Stack PhoneDrive Pre\\n", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/stack_pre_mongo/be13983c-93dc-417f-b37e-d3eadbcf2fc6", "rel": "self"}], "stack_status_reason": "Stack create completed successfully", "stack_name": "stack_pre_mongo", "creation_time": "2015-06-08T11:07:34Z", "updated_time": "2015-06-08T11:08:35Z", "stack_status": "CREATE_COMPLETE", "id": "be13983c-93dc-417f-b37e-d3eadbcf2fc6"}, {"description": "Web PhoneDrive Pre\\n", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/stack_pre_web/83c590b6-fc50-48ed-b982-49d45cbe3893", "rel": "self"}], "stack_status_reason": "Stack create completed successfully", "stack_name": "stack_pre_web", "creation_time": "2015-05-29T12:56:24Z", "updated_time": "2015-05-29T12:56:45Z", "stack_status": "CREATE_COMPLETE", "id": "83c590b6-fc50-48ed-b982-49d45cbe3893"}, {"description": "Loadbalancer PhoneDrive Pre\\n", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/stack_pre_loadbalancer/85e44502-cdc6-494a-8308-284e2ddb3615", "rel": "self"}], "stack_status_reason": "Stack create completed successfully", "stack_name": "stack_pre_loadbalancer", "creation_time": "2015-05-18T15:46:02Z", "updated_time": "2015-05-18T15:46:39Z", "stack_status": "CREATE_COMPLETE", "id": "85e44502-cdc6-494a-8308-284e2ddb3615"}, {"description": "PhoneDrive BackOffice Resources\\n", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/BackOffice_del_pre/acca9718-17e7-4439-b74b-446449b424ae", "rel": "self"}], "stack_status_reason": "Stack create completed successfully", "stack_name": "BackOffice_del_pre", "creation_time": "2015-03-10T17:10:50Z", "updated_time": "2015-03-10T17:11:09Z", "stack_status": "CREATE_COMPLETE", "id": "acca9718-17e7-4439-b74b-446449b424ae"}, {"description": "PhoneDrive Neutron Resources", "links": [{"href": "https://ost-controller-lb-del.service-l.dsn.inet:8004/v1/9f5e58afbe4843cf80fa801a191021fc/stacks/PhoneDrive_NetWork/f10eb4d3-2073-4b96-ae22-637e50501ceb", "rel": "self"}], "stack_status_reason": "Stack create completed successfully", "stack_name": "PhoneDrive_NetWork", "creation_time": "2015-01-28T17:38:36Z", "updated_time": "2015-01-28T17:38:42Z", "stack_status": "CREATE_COMPLETE", "id": "f10eb4d3-2073-4b96-ae22-637e50501ceb"}]}
[Wed Sep 16 09:36:07 2015] [error] 
[Wed Sep 16 09:36:07 2015] [error] Error while rendering table rows.
[Wed Sep 16 09:36:07 2015] [error] Traceback (most recent call last):
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 1360, in get_rows
[Wed Sep 16 09:36:07 2015] [error]     row = self._meta.row_class(self, datum)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 438, in __init__
[Wed Sep 16 09:36:07 2015] [error]     self.load_cells()
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 475, in load_cells
[Wed Sep 16 09:36:07 2015] [error]     data = column.get_data(datum)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 319, in get_data
[Wed Sep 16 09:36:07 2015] [error]     data = filter_func(data)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/utils/filters.py", line 36, in parse_isotime
[Wed Sep 16 09:36:07 2015] [error]     raise ValueError(e.message)
[Wed Sep 16 09:36:07 2015] [error] ValueError: Expecting a string None
[Wed Sep 16 09:36:07 2015] [error] Internal Server Error: /project/stacks/
[Wed Sep 16 09:36:07 2015] [error] Traceback (most recent call last):
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 136, in get_response
[Wed Sep 16 09:36:07 2015] [error]     response = response.render()
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/response.py", line 104, in render
[Wed Sep 16 09:36:07 2015] [error]     self._set_content(self.rendered_content)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/response.py", line 81, in rendered_content
[Wed Sep 16 09:36:07 2015] [error]     content = template.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 140, in render
[Wed Sep 16 09:36:07 2015] [error]     return self._render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 134, in _render
[Wed Sep 16 09:36:07 2015] [error]     return self.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 123, in render
[Wed Sep 16 09:36:07 2015] [error]     return compiled_parent._render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 134, in _render
[Wed Sep 16 09:36:07 2015] [error]     return self.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 62, in render
[Wed Sep 16 09:36:07 2015] [error]     result = block.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/loader_tags.py", line 62, in render
[Wed Sep 16 09:36:07 2015] [error]     result = block.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 874, in render
[Wed Sep 16 09:36:07 2015] [error]     output = self.filter_expression.resolve(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 571, in resolve
[Wed Sep 16 09:36:07 2015] [error]     obj = self.var.resolve(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 721, in resolve
[Wed Sep 16 09:36:07 2015] [error]     value = self._resolve_lookup(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 772, in _resolve_lookup
[Wed Sep 16 09:36:07 2015] [error]     current = current()
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 1021, in render
[Wed Sep 16 09:36:07 2015] [error]     return table_template.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 140, in render
[Wed Sep 16 09:36:07 2015] [error]     return self._render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 134, in _render
[Wed Sep 16 09:36:07 2015] [error]     return self.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py", line 478, in render
[Wed Sep 16 09:36:07 2015] [error]     output = self.nodelist.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 823, in render
[Wed Sep 16 09:36:07 2015] [error]     bit = self.render_node(node, context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 837, in render_node
[Wed Sep 16 09:36:07 2015] [error]     return node.render(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/defaulttags.py", line 476, in render
[Wed Sep 16 09:36:07 2015] [error]     self.extra_context.iteritems()])
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 571, in resolve
[Wed Sep 16 09:36:07 2015] [error]     obj = self.var.resolve(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 721, in resolve
[Wed Sep 16 09:36:07 2015] [error]     value = self._resolve_lookup(context)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/django/template/base.py", line 772, in _resolve_lookup
[Wed Sep 16 09:36:07 2015] [error]     current = current()
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 1360, in get_rows
[Wed Sep 16 09:36:07 2015] [error]     row = self._meta.row_class(self, datum)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 438, in __init__
[Wed Sep 16 09:36:07 2015] [error]     self.load_cells()
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 475, in load_cells
[Wed Sep 16 09:36:07 2015] [error]     data = column.get_data(datum)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/tables/base.py", line 319, in get_data
[Wed Sep 16 09:36:07 2015] [error]     data = filter_func(data)
[Wed Sep 16 09:36:07 2015] [error]   File "/usr/lib/python2.6/site-packages/horizon/utils/filters.py", line 36, in parse_isotime
[Wed Sep 16 09:36:07 2015] [error]     raise ValueError(e.message)
[Wed Sep 16 09:36:07 2015] [error] TemplateSyntaxError: Expecting a string None

Expected results:
Display of the stack even through updated_time is null

Additional info:
- heat command line tools do not have this issue (see attachment)
- Heat on RHOS4.0 but Horizon in RHOS5.0


Note You need to log in before you can comment on or make changes to this bug.