[Openstack] [Trove] Unable to list databases and other api calls in Ubuntu 14.04 packaged install

Mark Kirkwood mark.kirkwood at catalyst.net.nz
Fri May 23 02:54:51 UTC 2014


Hi,

I've been trying to get Trove working using the packages in Ubuntu 14.04.

While I've had some success (I can create a mysql instance that gets to 
ACTIVE), I am stuck on an issue that makes all the subsequent API calls 
fail:

$ trove create db0 2 --size 2 --databases db --users user:pass
$ trove list
+--------------------------------------+------+--------+-----------+------+
|                  id                  | name | status | flavor_id | size |
+--------------------------------------+------+--------+-----------+------+
| 5d5f1a47-973d-4e11-8937-73b971a94688 | db1  | ACTIVE |     2     |  2   |
+--------------------------------------+------+--------+-----------+------+

$ trove database-list 5d5f1a47-973d-4e11-8937-73b971a94688
ERROR: The resource could not be found.

This seems to be due to missing routes:

2014-05-23 14:34:08.386 1376 DEBUG routes.middleware [-] No route 
matched for GET 
/51f1e3dd3c1d4124ae26cdcd85030eb5/instances/5d5f1a47-973d-4e11-8937-73b971a94688/databases 
__call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97
2014-05-23 14:34:08.386 1376 DEBUG routes.middleware [-] No route 
matched for GET 
/51f1e3dd3c1d4124ae26cdcd85030eb5/instances/5d5f1a47-973d-4e11-8937-73b971a94688/databases 
__call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:97
2014-05-23 14:34:08.389 1376 INFO eventlet.wsgi 
[req-6ff08fd3-90e6-4893-aaab-e645f6b82407 
3a0eb39ed587491aba95b5ca15e167be 51f1e3dd3c1d4124ae26cdcd85030eb5 - - -] 
192.168.122.33 - - [23/May/2014 14:34:08] "GET 
/v1.0/51f1e3dd3c1d4124ae26cdcd85030eb5/instances/5d5f1a47-973d-4e11-8937-73b971a94688/databases 
HTTP/1.1" 404 208 0.052359

I have an equivalent-ish devstack system configured the same (but 
slightly later openstack version), and that works fine viz:

$ trove database-list f164a72e-e627-427e-b962-f12b795499c0

2014-05-23 14:28:59.331 DEBUG routes.middleware [-] Matched GET 
/c081f35aa9d94dda8dc4f2686f855b37/instances/f164a72e-e627-427e-b962-f12b795499c0/databases 
from (pid=21402) __call__ 
/usr/lib/python2.7/dist-packages/routes/middleware.py:100
2014-05-23 14:28:59.332 DEBUG routes.middleware [-] Route path: 
'/{tenant_id}/instances/:instance_id/databases', defaults: {'action': 
u'index', 'controller': <trove.common.wsgi.Resource object at 
0x4515190>} from (pid=21402) __call__ 
/usr/lib/python2.7/dist-packages/routes/middleware.py:102
2014-05-23 14:28:59.332 DEBUG routes.middleware [-] Match dict: 
{'instance_id': u'f164a72e-e627-427e-b962-f12b795499c0', 'tenant_id': 
u'c081f35aa9d94dda8dc4f2686f855b37', 'controller': 
<trove.common.wsgi.Resource object at 0x4515190>, 'action': u'index'} 
from (pid=21402) __call__ 
/usr/lib/python2.7/dist-packages/routes/middleware.py:103

I've attached the config files from the 14.04 trove install - any 
thoughts welcome!

Regards

Mark


-------------- next part --------------
[composite:trove]
use = call:trove.common.wsgi:versioned_urlmap
/: versions
/v1.0: troveapi

[app:versions]
paste.app_factory = trove.versions:app_factory

[pipeline:troveapi]
pipeline = faultwrapper authtoken authorization contextwrapper ratelimit extensions troveapp
#pipeline = debug extensions troveapp

[filter:extensions]
paste.filter_factory = trove.common.extensions:factory

[filter:authtoken]
signing_dir = /var/cache/trove
admin_password = password
admin_user = trove
admin_tenant_name = service
admin_token = ADMIN
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 192.168.122.33
auth_port = 35357
auth_protocol = http

[filter:authorization]
paste.filter_factory = trove.common.auth:AuthorizationMiddleware.factory

[filter:contextwrapper]
paste.filter_factory = trove.common.wsgi:ContextMiddleware.factory

[filter:faultwrapper]
paste.filter_factory = trove.common.wsgi:FaultWrapper.factory

[filter:ratelimit]
paste.filter_factory = trove.common.limits:RateLimitingMiddleware.factory

[app:troveapp]
paste.app_factory = trove.common.api:app_factory

#Add this filter to log request and response for debugging
[filter:debug]
paste.filter_factory = trove.common.wsgi:Debug
-------------- next part --------------
[DEFAULT]
use_syslog = False
debug = True
default_datastore = mysql
log_dir = /var/log/trove
#trove_auth_url = http://192.168.122.33:5000/v2.0
nova_compute_url = http://192.168.122.33:8774/v2
cinder_url = http://192.168.122.33:8776/v1
swift_url = http://192.168.122.33:8080/v1/AUTH_
sql_connection = mysql://trove:password@192.168.122.33/trove
#notifier_queue_hostname = 192.168.122.33
add_addresses = True
#network_label_regex = ^NETWORK_LABEL$
-------------- next part --------------
[DEFAULT]
use_syslog = False
debug = True
control_exchange = trove
trove_auth_url = http://192.168.122.33:5000/v2.0
#nova_compute_url = http://192.168.122.33:8774/v2
#cinder_url = http://192.168.122.33:8776/v1
#swift_url = http://192.168.122.33:8080/v1/AUTH_
nova_proxy_admin_user = admin
nova_proxy_admin_tenant_name = service
nova_proxy_admin_pass = ADMIN
sql_connection = mysql://trove:password@192.168.122.33/trove
#notifier_queue_hostname = 192.168.122.33
-------------- next part --------------
[DEFAULT]
log_dir = /var/log/trove
use_syslog = False
debug = True
taskmanager_manager = trove.taskmanager.manager.Manager
trove_auth_url = http://192.168.122.33:5000/v2.0
nova_compute_url = http://192.168.122.33:8774/v2
cinder_url = http://192.168.122.33:8776/v1
swift_url = http://192.168.122.33:8080/v1/AUTH_
sql_connection = mysql://trove:password@192.168.122.33/trove
#notifier_queue_hostname = 192.168.122.33
nova_proxy_admin_user = admin
nova_proxy_admin_tenant_name = service
nova_proxy_admin_pass = ADMIN


More information about the Openstack mailing list