Capabilities API for SQL backends is broken
Bug #1292611 reported by
Ildiko Vancsa
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ceilometer |
Fix Released
|
High
|
Ildiko Vancsa |
Bug Description
Capabilities API is broken for SQL backends, it raises NotImplemented error:
For the request:
curl -H "X-Auth-Token: $TOKEN" --header "Content-
The following response is received with using MySQL as DB backend:
{
"error_message": {
"debuginfo": null,
"faultcode": "Server",
"faultstring": "Capabilities not implemented."
}
}
Changed in ceilometer: | |
assignee: | nobody → Ildiko Vancsa (ildiko-vancsa) |
Changed in ceilometer: | |
milestone: | none → icehouse-rc1 |
importance: | Undecided → High |
Changed in ceilometer: | |
status: | Fix Committed → Fix Released |
Changed in ceilometer: | |
milestone: | icehouse-rc1 → 2014.1 |
To post a comment you must log in.
Actually the whole capability reporting is broken because the ceilometer. utils.update_ nested function updates its first parameter in place (see https:/ /github. com/openstack/ ceilometer/ blob/master/ ceilometer/ utils.py# L144-L147) and every storage driver using the ceilometer. storage. base.Connection .DEFAULT_ CAPABILITIES directly as a first parameter for the update_nested function therefore modifying the base class level variable. (see for example https:/ /github. com/openstack/ ceilometer/ blob/master/ ceilometer/ storage/ impl_mongodb. py#L888)
So to make the capability reporting works we need to do a deep copy of the first parameter of update_nested or pass a deep copy of DEFAULT_ CAPABILITIES in ever storage driver to that function.