[Openstack] Running swift got stuck!

Ziad Sawalha ziad.sawalha at rackspace.com
Thu Jan 19 16:35:49 UTC 2012


Hi Xuyun -

Object-store is the correct type based on the API spec (it's defined in the XSDs for Keystone as well). Can you point me at documentation that lists any other type?

IANA assigned port 35357 to Keystone last year and we've been using that for a while. 5001 is no longer in use.

Hope this helps,
Z

From: Xuyun Zhang <xyzhanggz at gmail.com<mailto:xyzhanggz at gmail.com>>
Date: Thu, 19 Jan 2012 20:24:42 +1100
To: <openstack at lists.launchpad.net<mailto:openstack at lists.launchpad.net>>
Subject: [Openstack] Running swift got stuck!

Dear all,

After I ran the command "swift -A http://127.0.0.1:5000/v2.0/ -U demo-tenant:demo -K secrete -V 2.0 stat -v", the swift command got stuck and nothing appeared. I even had to login from other tty to kill this swift process.

I have already used curl -i http://127.0.0.1:5000/v2.0/tokens -H "Content-type: application/json" -d '{"auth": {"passwordCredentials": {"username": "demo", "password": "secrete"}, "tenantName": "demo-tenant"}}' to generate the corresponding token. The returned token shows it owns tenants and service catalog. details:
{"access": {"token": {"expires": "2012-01-20T20:19:26.838644", "tenants": [{"id": "239624b0fdf14043b415224c7a2a4b02", "name": "demo-tenant"}], "id": "09033fab-97c2-433f-a506-d3e623bf48b5", "tenant": {"id": "239624b0fdf14043b415224c7a2a4b02", "name": "demo-tenant"}}, "serviceCatalog": [{"endpoints": [{"id": "1", "region": "RegionOne", "internalURL": "http://138.25.61.81:8774/v1.1/239624b0fdf14043b415224c7a2a4b02", "publicURL": "http://138.25.61.81:8774/v1.1/239624b0fdf14043b415224c7a2a4b02"}], "type": "compute", "name": "nova"}, {"endpoints": [{"id": "2", "region": "RegionOne", "internalURL": "http://138.25.61.81:9292/v1", "publicURL": "http://138.25.61.81:9292/v1"}], "type": "image", "name": "glance"}, {"endpoints": [{"id": "3", "region": "RegionOne", "internalURL": "http://127.0.0.1:8888/v1/AUTH_239624b0fdf14043b415224c7a2a4b02", "publicURL": "http://127.0.0.1:8888/v1/AUTH_239624b0fdf14043b415224c7a2a4b02"}], "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "4", "region": "RegionOne", "internalURL": "http://138.25.61.81:5000/v2.0", "publicURL": "http://138.25.61.81:5000/v2.0"}], "type": "identity", "name": "keystone"}], "user": {"id": "cccf764ca22d4abb96230c76ba08a219", "roles": [{"name": "Member", "id": "3", "tenantId": "239624b0fdf14043b415224c7a2a4b02"}], "name": "demo"}}}

I'm sure that the authentication was OK, because I have met a error said that something wrong with endpoint when I ran "swift..." command. Then the error was fixed by modifying the swift endpointTemplate type from "storage" to "object-store". (these two types appeared in different documentations, it seems "object-store" works for current version of keystone).

I guess the reason why swift got stuck is that swift doesn't get the right URL from keystone after authentication or the swift-proxy server is listening on the right port.

When I use "keystone-manage endpointTemplates list" command, it showed the id of swift is 3. But when running "keystone-manage endpointTemplates list demo-tenant", I got the "ERROR: URLs not found, ...., IndexError: URLs not found". However, I'm not sure whether this is a bug of keystone-manage command. I had already added a endpoint that associating demo-tenant and swift template (keystone-manage endpoint add demo-tenant 3). I'm sure that the pair (2,3) already exists in table endpoints(tenant_id, endpoint_template_id).
I post the details of my data sample below:
#!/bin/bash
service keystone stop
rm -f /var/lib/keystone/keystone.db
service keystone start
keystone-manage database version_control
keystone-manage database goto 10
keystone-manage database sync
chown keystone:nogroup /var/lib/keystone/keystone.db
keystone-manage tenant add admin-tenant
keystone-manage user add admin secrete admin-tenant
keystone-manage role add Admin
keystone-manage role add KeystoneServiceAdmin
keystone-manage role grant Admin admin admin-tenant
keystone-manage role grant KeystoneServiceAdmin admin admin-tenant
keystone-manage service add nova compute "Nova-Compute-Service"
keystone-manage service add glance image "Glance-Image-Service"
keystone-manage service add swift object-store "Swift-Ojbect-Storage-Service"
keystone-manage service add keystone identity "Keystone-Identity-Service"
keystone-manage endpointTemplates add RegionOne nova http://138.25.61.81:8774/v1.1/%tenant_id% http://127.0.0.1:8774/v1.1/%tenant_id% http://138.25.61.81:8774/v1.1/%tenant_id% 1 1
keystone-manage endpointTemplates add RegionOne glance http://138.25.61.81:9292/v1 http://127.0.0.1:9292/v1 http://138.25.61.81:9292/v1 1 1
keystone-manage endpointTemplates add RegionOne swift http://127.0.0.1:8888/v1/AUTH_%tenant_id% http://127.0.0.1:8888/v1.0/ http://127.0.0.1:8888/v1/AUTH_%tenant_id% 1 1
keystone-manage endpointTemplates add RegionOne keystone http://138.25.61.81:5000/v2.0 http://127.0.0.1:5001/v2.0 http://138.25.61.81:5000/v2.0 1 1
keystone-manage token add 999888777666 admin admin-tenant 2015-02-05T00:00
keystone-manage tenant add demo-tenant
keystone-manage user add demo secrete demo-tenant
keystone-manage role add Member
keystone-manage role grant Member demo demo-tenant
keystone-manage role grant Admin admin demo-tenant
keystone-manage endpoint add admin-tenant 1
keystone-manage endpoint add admin-tenant 2
keystone-manage endpoint add admin-tenant 3
keystone-manage endpoint add admin-tenant 4
keystone-manage endpoint add demo-tenant 1
keystone-manage endpoint add demo-tenant 2
keystone-manage endpoint add demo-tenant 3
keystone-manage endpoint add demo-tenant 4


part of the swift-proxy.conf which is relevant to the ports:
bind_port = 8888
[filter:keystone]
use = egg:keystone#tokenauth
auth_protocol = http
auth_host = 127.0.0.1
auth_port = 5001
admin_token = 999888777666
delay_auth_decision = 0
service_protocol = http
service_host = 127.0.0.1
service_port = 5000
service_pass = dTpw

But in most documentations, the auth_port is set to 35357, service_port is set to 8100. So I'm not sure whether these settings matter.

part of the keystone.conf which is relevant to the ports:
service_host  = 127.0.0.1
service_port = 5000

admin_host = 127.0.0.1
admin_port = 5001

admin_port is usually set to 35357 in most documentations. It seems that auth_port, service_port and adim_port are different. But they confused me to set up them. Could you please tell me what's the relationship among them?

Your help will be highly appreciated.
Best wishes,
Sean
_______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openstack at lists.launchpad.net<mailto:openstack at lists.launchpad.net> Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120119/06352417/attachment.html>


More information about the Openstack mailing list