cerr << " --rgw-zonegroup=<zonegroup> zonegroup name\n";
cerr << " --zone=<zone> zone name\n";
cerr << " --rgw-zone=<zone> zone in which radosgw is running\n";
+ cerr << " --endpoints=<list> zone endpoints\n";
cerr << " --fix besides checking bucket index, will also fix it\n";
cerr << " --check-objects bucket check: rebuilds bucket index according to\n";
cerr << " actual objects state\n";
std::string realm_name, realm_id, realm_new_name;
std::string zone_name, zone_id, zone_new_name;
std::string zonegroup_name, zonegroup_id, zonegroup_new_name;
+ list<string> endpoints;
std::string master_url;
int is_master = false;
int key_type = KEY_TYPE_UNDEFINED;
zone_id = val;
} else if (ceph_argparse_witharg(args, i, &val, "--zone-new-name", (char*)NULL)) {
zone_new_name = val;
+ } else if (ceph_argparse_witharg(args, i, &val, "--endpoints", (char*)NULL)) {
+ list<string>::iterator iter;
+ get_str_list(val, endpoints);
} else if (ceph_argparse_witharg(args, i, &val, "--source-zone", (char*)NULL)) {
source_zone = val;
} else if (strncmp(*i, "-", 1) == 0) {
cerr << "unable to initialize zone: " << cpp_strerror(-ret) << std::endl;
return -ret;
}
- ret = zonegroup.add_zone(zone, is_master);
+ ret = zonegroup.add_zone(zone, is_master, endpoints);
if (ret < 0) {
cerr << "failed to add zone " << zone_name << " to zonegroup " << zonegroup.get_name() << ": "
<< cpp_strerror(-ret) << std::endl;
cerr << "ERROR: couldn't init realm:" << cpp_strerror(-ret) << std::endl;
return ret;
}
- ret = zonegroup.add_zone(zone, is_master);
+ ret = zonegroup.add_zone(zone, is_master, endpoints);
if (ret < 0) {
cerr << "failed to add zone " << zone_name << " to zonegroup " << zonegroup.get_name()
<< ": " << cpp_strerror(-ret) << std::endl;
return -ret;
}
- ret = zonegroup.add_zone(zone, is_master);
+ ret = zonegroup.add_zone(zone, is_master, endpoints);
if (ret < 0) {
cerr << "failed to update zonegroup: " << cpp_strerror(-ret) << std::endl;
return -ret;
return (id == other_zonegroup);
}
-int RGWZoneGroup::add_zone(const RGWZoneParams& zone_params, bool is_master)
+int RGWZoneGroup::add_zone(const RGWZoneParams& zone_params, bool is_master, const list<string>& endpoints)
{
if (is_master) {
if (!master_zone.empty() && master_zone != zone_params.get_id()) {
RGWZone& zone = zones[zone_params.get_id()];
zone.name = zone_params.get_name();
zone.id = zone_params.get_id();
-
+ if (!endpoints.empty()) {
+ zone.endpoints = endpoints;
+ }
return update();
}