Comment 2 for bug 988748

Revision history for this message
Pierre Amadio (pierre-amadio) wrote :

i have the same problem on a test install.
When changing /etc/openstack-dashboard/local_settings.py so i have debug, this is the kind of error i have:

[Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/forms/base.py", line 99, in maybe_handle
[Fri Jul 20 10:04:28 2012] [error] return form, form.handle(request, form.cleaned_data)
[Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py", line 88, in handle
[Fri Jul 20 10:04:28 2012] [error] redirect=request.build_absolute_uri())
[Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py", line 81, in handle
[Fri Jul 20 10:04:28 2012] [error] 's3_url': api.url_for(request, 's3'),
[Fri Jul 20 10:04:28 2012] [error] File "/usr/lib/python2.7/dist-packages/horizon/api/base.py", line 112, in url_for
[Fri Jul 20 10:04:28 2012] [error] raise exceptions.ServiceCatalogException(service_type)
[Fri Jul 20 10:04:28 2012] [error] ServiceCatalogException: Invalid service catalog service: s3

I do not have swift installed, but my "manager node" runs nova-storage with some s3 thingy.
Excerpt from my nova.conf:
--s3_host=192.168.122.4
--s3_port=3333

Looks like horizon is not able to get the value of s3_url ( api.url_for(request, 's3')).

As a workaround, if i change
/usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py so i hard code the s3 url in the code, it "works":

ubuntu@messaging:~$ diff -u /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py-vanilla /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py
--- /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py-vanilla 2012-07-20 10:57:02.000000000 +0100
+++ /usr/lib/python2.7/dist-packages/horizon/dashboards/settings/juju/forms.py 2012-07-20 10:58:02.000000000 +0100
@@ -78,7 +78,7 @@
             context = {'ec2_access_key': keys.access,
                        'ec2_secret_key': keys.secret,
                        'ec2_url': api.url_for(request, 'ec2'),
- 's3_url': api.url_for(request, 's3'),
+ 's3_url': 'http://192.168.122.4:3333',
                        'juju_admin_secret': uuid.uuid4().hex,
                        'control_bucket': control_bucket
                       }

I do not know exactly how horizon is getting service catalog entry, but it looks like there s one missing on mine.

This is what keystone service-list tells:

ubuntu@messaging:~$ keystone service-list
+----------------------------------+----------+--------------+----------------------------+
| id | name | type | description |
+----------------------------------+----------+--------------+----------------------------+
| 1585378098384e00a6db821ca638ecc6 | glance | image | OpenStack Image Service |
| 2b66256adc5e4282afd631b58c15ad57 | keystone | identity | OpenStack Identity Service |
| 7f22b61afcce43be80252083fbc21341 | nova | compute | OpenStack Compute Service |
| 99eab6fe63774934ad4dee5709c57187 | ec2 | ec2 | OpenStack EC2 Service |
| 9f46367719dd4505984d0f35fd3347db | volume | volume | Openstack Volume Service |
| ca32c592aac74d4b9e1d26da43b74a2d | swift | object-store | OpenStack Storage Service |
+----------------------------------+----------+--------------+----------------------------+

now, i have a swift endpoint (that i defined in case i would install it) but no swift is installed.