openstack-swift

Swift TempAuth returned 404 when HEAD the account


I am a newbie to Swift, but was trying to install it on my CentOS 6.5 VM. I have done

  1. Installing lasted Swift release (1.12.0) and python-swiftclient (2.0.2) and their dependencies
  2. Preparing and mounting my drive (a separated device formated as xfs) at /svr/node/d1
  3. Creating the rings and adding the device to the rings (account, container, object)
  4. Building the rings, which generates one .ring.gz file for each ring. Placed them in /etc/swift
  5. Configuring hash_path_prefix for proxy
  6. Setting up TempAuth and adding a new user 'myaccount:me' with password 'pa'
  7. Starting proxy and account.

I would expect to successfully do

swift -A http://localhost:8080/auth/v1.0 -U myaccount:me -K pa stat

but the command told me 'Account not found'. To see detailed information, I did

swift --debug -v -A http://localhost:8080/auth/v1.0 -U myaccount:me -K pa stat

the output is

INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
DEBUG:requests.packages.urllib3.connectionpool:"GET /auth/v1.0 HTTP/1.1" 200 0
DEBUG:swiftclient:REQ: curl -i http://localhost:8080/auth/v1.0 -X GET
DEBUG:swiftclient:RESP STATUS: 200 OK
DEBUG:swiftclient:RESP HEADERS: [('content-length', '0'), ('x-trans-id', 'tx88b6b6b71ec14c3393248-00530de039'), ('x-auth-token', 'AUTH_tkdc7e842046e9469da324f2ec82c80a92'), ('x-storage-token', 'AUTH_tkdc7e842046e9469da324f2ec82c80a92'), ('date', 'Wed, 26 Feb 2014 12:38:17 GMT'), ('x-storage-url', 'http://localhost:8080/v1/AUTH_myaccount'), ('content-type', 'text/html; charset=UTF-8')]
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): localhost
DEBUG:requests.packages.urllib3.connectionpool:"HEAD /v1/AUTH_myaccount HTTP/1.1" 404 0
INFO:swiftclient:REQ: curl -i http://localhost:8080/v1/AUTH_myaccount -I -H "X-Auth-Token: AUTH_tkdc7e842046e9469da324f2ec82c80a92"
INFO:swiftclient:RESP STATUS: 404 Not Found
INFO:swiftclient:RESP HEADERS: [('date', 'Wed, 26 Feb 2014 12:38:17 GMT'), ('content-length', '0'), ('content-type', 'text/html; charset=UTF-8'), ('x-trans-id', 'tx553c40e63c69470e9d146-00530de039')]
ERROR:swiftclient:Account HEAD failed: http://localhost:8080:8080/v1/AUTH_myaccount 404 Not Found
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/swiftclient/client.py", line 1192, in _retry
    rv = func(self.url, self.token, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/swiftclient/client.py", line 469, in head_account
    http_response_content=body)
ClientException: Account HEAD failed: http://localhost:8080:8080/v1/AUTH_myaccount 404 Not Found
Account not found

Solution

  • I figured out my self: in proxy-server.conf, add these two lines

    allow_account_management = true
    account_autocreate = true