From 2860eea272c32a8e28d392724ced68669db81618 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Tue, 23 Mar 2010 15:08:13 -0700 Subject: [PATCH] rados: add interface to change pool owners --- src/rados.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/rados.cc b/src/rados.cc index eeebf09a2c0c1..fb0155428478a 100644 --- a/src/rados.cc +++ b/src/rados.cc @@ -44,8 +44,9 @@ void usage() cerr << " put objname -- write object\n"; cerr << " rm objname -- remove object\n"; cerr << " ls -- list objects in pool\n\n"; + cerr << " chown 123 -- change the pool owner to auid 123"; - cerr << " mkpool foo -- create pool 'foo'\n"; + cerr << " mkpool foo [123] -- create pool 'foo' [with auid 123]\n"; cerr << " rmpool foo -- remove pool 'foo'\n"; cerr << " lssnap -- list snaps\n"; cerr << " mksnap foo -- create snap 'foo'\n"; @@ -218,6 +219,18 @@ int main(int argc, const char **argv) if (!stdout) delete outstream; } + else if (strcmp(nargs[0], "chown") == 0) { + if (!pool || nargs.size() < 2) + usage(); + + __u64 new_auid = strtol(nargs[1], 0, 10); + ret = rados.change_pool_auid(p, new_auid); + if (ret < 0) { + cerr << "error changing auid on pool " << pool << ':' + << strerror_r(-ret, buf, sizeof(buf)) << std::endl; + } else cerr << "changed auid on pool " << pool + << " to " << new_auid << std::endl; + } else if (strcmp(nargs[0], "get") == 0) { if (!pool || nargs.size() < 3) usage(); -- 2.39.5