From 2b44a9d060d33dca9768c758e1908365488aac2a Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Mon, 31 Aug 2020 11:19:34 -0400 Subject: [PATCH] radosgw-admin: period pull command is not always a raw_storage_op if a --url is given, 'period pull' does not depend on any zone/period configuration and can be a raw_storage_op. if we get a --remote instead, we do need to initialize the zone/period configuration to find the correct endpoint/access keys Fixes: https://tracker.ceph.com/issues/47217 Signed-off-by: Casey Bodley --- src/rgw/rgw_admin.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index f550afac0e2..24e47b7d9bc 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -3772,6 +3772,9 @@ int main(int argc, const char **argv) // not a raw op if 'period update' needs to commit to master bool raw_period_update = opt_cmd == OPT::PERIOD_UPDATE && !commit; + // not a raw op if 'period pull' needs to read zone/period configuration + bool raw_period_pull = opt_cmd == OPT::PERIOD_PULL && !url.empty(); + std::set raw_storage_ops_list = {OPT::ZONEGROUP_ADD, OPT::ZONEGROUP_CREATE, OPT::ZONEGROUP_DELETE, OPT::ZONEGROUP_GET, OPT::ZONEGROUP_LIST, OPT::ZONEGROUP_SET, OPT::ZONEGROUP_DEFAULT, @@ -3789,7 +3792,6 @@ int main(int argc, const char **argv) OPT::ZONE_PLACEMENT_GET, OPT::REALM_CREATE, OPT::PERIOD_DELETE, OPT::PERIOD_GET, - OPT::PERIOD_PULL, OPT::PERIOD_GET_CURRENT, OPT::PERIOD_LIST, OPT::GLOBAL_QUOTA_GET, OPT::GLOBAL_QUOTA_SET, OPT::GLOBAL_QUOTA_ENABLE, OPT::GLOBAL_QUOTA_DISABLE, @@ -3864,7 +3866,7 @@ int main(int argc, const char **argv) bool raw_storage_op = (raw_storage_ops_list.find(opt_cmd) != raw_storage_ops_list.end() || - raw_period_update); + raw_period_update || raw_period_pull); bool need_cache = readonly_ops_list.find(opt_cmd) == readonly_ops_list.end(); if (raw_storage_op) {