[Openstack] Running swift got stuck!

Xuyun Zhang xyzhanggz at gmail.com
Thu Jan 19 09:24:42 UTC 2012


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20120119/7fe3d2c3/attachment.html>


More information about the Openstack mailing list