Trove Mgmt List Commands Failing (Storage, Hosts, etc.)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack DBaaS (Trove) |
Invalid
|
Medium
|
Unassigned |
Bug Description
The management command 'storage' raises an error when being used.
Storage list returns a 'Client' object has no attribute 'rdstorage' (HTTP 500) from the client.
In the reddwarf-api log, the following error is observed:
2013-02-20 13:55:15 61161 INFO reddwarf.
2013-02-20 13:55:15 61161 ERROR reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 TRACE reddwarf.
2013-02-20 13:55:15 61161 ERROR reddwarf.
2013-02-20 13:55:15 61161 INFO eventlet.wsgi [-] 127.0.0.1 - - [20/Feb/2013 13:55:15] "GET /v1.0/bf58af4d8
Changed in trove: | |
assignee: | nobody → Kevin Conway (kevinconway) |
Changed in trove: | |
assignee: | Kevin Conway (kevinconway) → nobody |
information type: | Public → Public Security |
``` fbf0-4d50- bbac-c743d86e7a c6) (HTTP 500)
$ trove-mgmt-cli storage list
Internal Server Error. Please keep this ID to help us figure out what went wrong: (fddc7a8f-
OK
```
Log from API:
``` c321-4716- 984d-5183db0f11 17 radmin 89f6c273df2142e 8abf4fcd36df3cb df] fddc7a8f- fbf0-4d50- bbac-c743d86e7a c6: 'Client' object has no attribute 'rdstorage' trove/trove/ common/ wsgi.py" , line 323, in execute_action trove/trove/ openstack/ common/ wsgi.py" , line 395, in execute_action self.controller , action, request, **action_args) trove/trove/ openstack/ common/ wsgi.py" , line 404, in dispatch trove/trove/ common/ auth.py" , line 87, in wrapper trove/trove/ extensions/ mgmt/volume/ service. py", line 40, in index StorageDevices. load(context) trove/trove/ extensions/ mgmt/volume/ models. py", line 48, in load rdstorage. list() c321-4716- 984d-5183db0f11 17 radmin 89f6c273df2142e 8abf4fcd36df3cb df] unserializable result detected! Exception type: <type 'exceptions. ValueError' > Message: Circular reference detected c321-4716- 984d-5183db0f11 17 radmin 89f6c273df2142e 8abf4fcd36df3cb df] 10.9.243.180 - - [28/Jun/2013 02:47:17] "GET /v1.0/89f6c273d f2142e8abf4fcd3 6df3cbdf/ mgmt/storage HTTP/1.1" 500 310 0.016310
2013-06-28 02:47:17.489 1282 ERROR trove.common.wsgi [req-0185c824-
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi Traceback (most recent call last):
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi **action_args)
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi return self.dispatch(
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi return method(*args, **kwargs)
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi return f(*args, **kwargs)
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi storages = models.
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi File "/opt/stack/
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi rdstorages = client.
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi AttributeError: 'Client' object has no attribute 'rdstorage'
2013-06-28 02:47:17.489 1282 TRACE trove.common.wsgi
2013-06-28 02:47:17.490 1282 ERROR trove.common.wsgi [req-0185c824-
2013-06-28 02:47:17.498 1282 INFO eventlet.wsgi [req-0185c824-
```
In looking at the code:
https:/ /github. com/openstack/ trove/blob/ 7ab80b554dde5f1 f1e61b6a8c45492 c5ac27ed6b/ trove/extension s/mgmt/ volume/ models. py#L48
It becomes clear that nothing is setting the client.rdstorage attribute.
But if you grep (or GitHub) search trove + trove-integration + python-troveclient, nothing ever sets it. The only reference is in Tests, in which it used to mock api requests:
https:/ /github. com/openstack/ trove/blob/ 7ab80b554dde5f1 f1e61b6a8c45492 c5ac27ed6b/ trove/tests/ fakes/nova. py#L750
This problems exists for "quotas list", "hosts list", "storage list", etc.