The command 'ceilometer event-list -q "outcome=string::success;eventType=string::activity;action=string::authenticate" ' fails
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ceilometer |
Fix Released
|
Low
|
gordon chung | ||
Kilo |
Fix Released
|
Medium
|
Xia Linjuan |
Bug Description
If the number of select conditions is larger than 2, the command 'ceilometer event-list -q "outcome=
ERROR wsme.api [-] Server-side error: "'traits'". Detail: Traceback (most recent call last):
File "/usr/lib/
result = f(self, *args, **kwargs)
File "/usr/lib/
pecan.
File "/usr/lib/
q = pymongo_
File "/usr/lib/
if q['traits'] is None:
KeyError: 'traits'
From the following ceilometer code:
if event_filter.
for trait_filter in event_filter.
op = trait_filter.
for k, v in six.iteritems(
if v is not None:
104 if q['traits'] is None:
105 q['traits'] = dict_query
106 elif q.get('$and') is None:
107 q.setdefault(
else:
It seems like a ceilometer bug, if the for loop over than 3 times:
1. Go to 104, and q['traits'] has value dict_query
2. Go to 107, and q got poped 'traits'
3. Error! This is because in 2, 'traits' has been popped, KeyError raise on 104.
Changed in ceilometer: | |
assignee: | nobody → Zi Lian Ji (jizilian) |
Changed in ceilometer: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in ceilometer: | |
assignee: | Zi Lian Ji (jizilian) → nobody |
Changed in ceilometer: | |
assignee: | nobody → Xia Linjuan (ljxiash) |
Changed in ceilometer: | |
milestone: | none → liberty-rc1 |
importance: | Undecided → Low |
Changed in ceilometer: | |
status: | Fix Committed → Fix Released |
Changed in ceilometer: | |
milestone: | liberty-rc1 → 5.0.0 |
Hi Lin Juan
We found this issue in the Kilo release. Please fix it in that release and check whether it exists in the L release.
Thanks