openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #15413
Re: Swift account listing
On Thu, 19 Jul 2012 16:10:06 +0100
"Juan J. Martinez" <juan@xxxxxxxxxx> wrote:
> I guess you can use the list of current accounts from Keystone and
> translate that into the account ring hash.
> swift-get-nodes /etc/swift/account.ring.gz myKeyStoneAcct | grep Hash |
> cut -f2 5819de5a52d5813f5ce95c9121b97652
>
> Then you can look for hashes that are not in that list of hashes. Per
> storage node you should check:
>
> /srv/node/$0/accounts/$1/*/$2/
The point is to use Swift itself _and_ Keystone, in order to find
discrepancies or "orphan" accounts. I ended using listdir for now,
since our installation is very small, so directories fit in memory.
Code is here:
https://github.com/zaitcev/swift-report
Output looks like this:
15051/4a7/3acbbe2ab55b81269ff88490a1b574a7 SK zaitcev
60690/f22/ed125debcbadbac11ef93c40dede0f22 SK glance
5497/6ee/1579e4404e54e5edb53c00f1206696ee SK shared
52389/69e/cca50f1c92b3b7f2a15d6b8e2aaee69e S- -
3066/787/0bfa11e194ee8889ff1c797a718cf787 SK admin
56328/3d8/dc088209ed71d08a00493c95888583d8 SK testuser
"S" is for accounts found in Swift, "K" is for accounts found in Keystone.
I have a feeling though that I must be reinventing the bicycle here.
Surely someone, somewhere, have written a Swift consistency checker
before.
-- Pete
Follow ups
References