From: Casey Bodley Date: Wed, 30 Nov 2016 18:43:28 +0000 (-0500) Subject: radosgw-admin: add 'zonegroup placement default' command X-Git-Tag: v10.2.6~60^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7cfc346cf1427e37be38ebb92ad9518afa982b83;p=ceph.git radosgw-admin: add 'zonegroup placement default' command Signed-off-by: Casey Bodley (cherry picked from commit 711cc132528f2dfeb6c1f8defb19493ffe7cb9be) --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 377d675522a5..99bfe8d5eee0 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -109,6 +109,7 @@ void _usage() cout << " zonegroup placement add add a placement target id to a zonegroup\n"; cout << " zonegroup placement modify modify a placement target of a specific zonegroup\n"; cout << " zonegroup placement rm remove a placement target from a zonegroup\n"; + cout << " zonegroup placement default set a zonegroup's default placement target\n"; cout << " zonegroup-map get show zonegroup-map\n"; cout << " zonegroup-map set set zonegroup-map (requires infile)\n"; cout << " zone create create a new zone\n"; @@ -332,6 +333,7 @@ enum { OPT_ZONEGROUP_PLACEMENT_MODIFY, OPT_ZONEGROUP_PLACEMENT_RM, OPT_ZONEGROUP_PLACEMENT_LIST, + OPT_ZONEGROUP_PLACEMENT_DEFAULT, OPT_ZONEGROUPMAP_GET, OPT_ZONEGROUPMAP_SET, OPT_ZONEGROUPMAP_UPDATE, @@ -611,6 +613,8 @@ static int get_cmd(const char *cmd, const char *prev_cmd, const char *prev_prev_ return OPT_ZONEGROUP_PLACEMENT_RM; if (strcmp(cmd, "list") == 0) return OPT_ZONEGROUP_PLACEMENT_LIST; + if (strcmp(cmd, "default") == 0) + return OPT_ZONEGROUP_PLACEMENT_DEFAULT; } else if (strcmp(prev_cmd, "zonegroup") == 0 || strcmp(prev_cmd, "region") == 0) { if (strcmp(cmd, "add") == 0) @@ -2497,6 +2501,7 @@ int main(int argc, char **argv) OPT_ZONEGROUP_REMOVE, OPT_ZONEGROUP_PLACEMENT_ADD, OPT_ZONEGROUP_PLACEMENT_RM, OPT_ZONEGROUP_PLACEMENT_MODIFY, OPT_ZONEGROUP_PLACEMENT_LIST, + OPT_ZONEGROUP_PLACEMENT_DEFAULT, OPT_ZONEGROUPMAP_GET, OPT_ZONEGROUPMAP_SET, OPT_ZONEGROUPMAP_UPDATE, OPT_ZONE_CREATE, OPT_ZONE_DELETE, @@ -3263,6 +3268,7 @@ int main(int argc, char **argv) case OPT_ZONEGROUP_PLACEMENT_ADD: case OPT_ZONEGROUP_PLACEMENT_MODIFY: case OPT_ZONEGROUP_PLACEMENT_RM: + case OPT_ZONEGROUP_PLACEMENT_DEFAULT: { if (placement_id.empty()) { cerr << "ERROR: --placement-id not specified" << std::endl; @@ -3300,6 +3306,13 @@ int main(int argc, char **argv) } } else if (opt_cmd == OPT_ZONEGROUP_PLACEMENT_RM) { zonegroup.placement_targets.erase(placement_id); + } else if (opt_cmd == OPT_ZONEGROUP_PLACEMENT_DEFAULT) { + if (!zonegroup.placement_targets.count(placement_id)) { + cerr << "failed to find a zonegroup placement target named '" + << placement_id << "'" << std::endl; + return -ENOENT; + } + zonegroup.default_placement = placement_id; } zonegroup.post_process_params(); diff --git a/src/test/cli/radosgw-admin/help.t b/src/test/cli/radosgw-admin/help.t index 82ec467cc9fc..ead81ca47ef4 100644 --- a/src/test/cli/radosgw-admin/help.t +++ b/src/test/cli/radosgw-admin/help.t @@ -61,6 +61,7 @@ zonegroup placement add add a placement target id to a zonegroup zonegroup placement modify modify a placement target of a specific zonegroup zonegroup placement rm remove a placement target from a zonegroup + zonegroup placement default set a zonegroup's default placement target zonegroup-map get show zonegroup-map zonegroup-map set set zonegroup-map (requires infile) zone create create a new zone