summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-06-26 11:28:57 -0700
committerYehuda Sadeh <yehuda@inktank.com>2013-06-26 11:36:59 -0700
commit0d18dff25a542bb01b5a43f22cbbed4f3d30c120 (patch)
tree3e37a24d90309ed460077836347239ff61424a38
parentccb3dd5ad5533ca4e9b656b4e3df31025a5f2017 (diff)
downloadceph-wip-5455.tar.gz
rgw: fix radosgw-admin buckets listwip-5455
Fixes: #5455 Backport: cuttlefish This commit fixes a regression, where radosgw-admin buckets list operation wasn't returning any data. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/rgw/rgw_bucket.cc16
-rw-r--r--src/rgw/rgw_rados.cc4
2 files changed, 13 insertions, 7 deletions
diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc
index 2f05264778e..99de568d92a 100644
--- a/src/rgw/rgw_bucket.cc
+++ b/src/rgw/rgw_bucket.cc
@@ -863,11 +863,16 @@ int RGWBucketAdminOp::info(RGWRados *store, RGWBucketAdminOpState& op_state,
RGWFormatterFlusher& flusher)
{
RGWBucket bucket;
- int ret = bucket.init(store, op_state);
- if (ret < 0)
- return ret;
+ int ret;
+
string bucket_name = op_state.get_bucket_name();
+ if (!bucket_name.empty()) {
+ ret = bucket.init(store, op_state);
+ if (ret < 0)
+ return ret;
+ }
+
Formatter *formatter = flusher.get_formatter();
flusher.start(0);
@@ -911,7 +916,8 @@ int RGWBucketAdminOp::info(RGWRados *store, RGWBucketAdminOpState& op_state,
} else {
RGWAccessHandle handle;
- if (store->list_buckets_init(&handle) > 0) {
+ formatter->open_array_section("buckets");
+ if (store->list_buckets_init(&handle) >= 0) {
RGWObjEnt obj;
while (store->list_buckets_next(obj, &handle) >= 0) {
formatter->dump_string("bucket", obj.name);
@@ -919,6 +925,8 @@ int RGWBucketAdminOp::info(RGWRados *store, RGWBucketAdminOpState& op_state,
bucket_stats(store, obj.name, formatter);
}
}
+
+ formatter->close_section();
}
flusher.flush();
diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc
index 7d038639a74..5ca27a06a03 100644
--- a/src/rgw/rgw_rados.cc
+++ b/src/rgw/rgw_rados.cc
@@ -428,9 +428,7 @@ int RGWRados::list_buckets_next(RGWObjEnt& obj, RGWAccessHandle *handle)
obj.name = (*state)->first;
(*state)++;
- } while (obj.name[0] == '.');
-
- /* FIXME: should read mtime/size vals for bucket */
+ } while (obj.name[0] == '.'); /* skip all entries starting with '.' */
return 0;
}