return os.value_or(string());
}
+void init_realm_param(CephContext *cct, string& var, std::optional<string>& opt_var, const string& conf_name)
+{
+ var = cct->_conf.get_val<string>(conf_name);
+ if (!var.empty()) {
+ opt_var = var;
+ }
+}
+
int main(int argc, const char **argv)
{
vector<const char*> args;
g_conf().set_val_or_die("rgw_zonegroup", g_conf()->rgw_region.c_str());
}
- common_init_finish(g_ceph_context);
-
rgw_user user_id_arg;
std::unique_ptr<rgw::sal::User> user;
string tenant;
std::optional<std::string> rgw_obj_fs; // radoslist field separator
+ init_realm_param(cct.get(), realm_id, opt_realm_id, "rgw_realm_id");
+ init_realm_param(cct.get(), zonegroup_id, opt_zonegroup_id, "rgw_zonegroup_id");
+ init_realm_param(cct.get(), zone_id, opt_zone_id, "rgw_zone_id");
+
for (std::vector<const char*>::iterator i = args.begin(); i != args.end(); ) {
if (ceph_argparse_double_dash(args, i)) {
break;
} else if (ceph_argparse_witharg(args, i, &val, "--realm-id", (char*)NULL)) {
realm_id = val;
opt_realm_id = val;
+ g_conf().set_val("rgw_realm_id", val);
} else if (ceph_argparse_witharg(args, i, &val, "--realm-new-name", (char*)NULL)) {
realm_new_name = val;
} else if (ceph_argparse_witharg(args, i, &val, "--zonegroup-id", (char*)NULL)) {
zonegroup_id = val;
opt_zonegroup_id = val;
+ g_conf().set_val("rgw_zonegroup_id", val);
} else if (ceph_argparse_witharg(args, i, &val, "--zonegroup-new-name", (char*)NULL)) {
zonegroup_new_name = val;
} else if (ceph_argparse_witharg(args, i, &val, "--placement-id", (char*)NULL)) {
} else if (ceph_argparse_witharg(args, i, &val, "--zone-id", (char*)NULL)) {
zone_id = val;
opt_zone_id = val;
+ g_conf().set_val("rgw_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)) {
}
}
+ /* common_init_finish needs to be called after g_conf().set_val() */
+ common_init_finish(g_ceph_context);
+
if (args.empty()) {
usage();
exit(1);
return zonegroup_names_oid_prefix;
}
+string RGWZoneGroup::get_predefined_id(CephContext *cct) const {
+ return cct->_conf.get_val<string>("rgw_zonegroup_id");
+}
+
const string& RGWZoneGroup::get_predefined_name(CephContext *cct) const {
return cct->_conf->rgw_zonegroup;
}
id = name;
}
+ if (id.empty()) {
+ id = get_predefined_id(cct);
+ }
+
if (id.empty()) {
int r;
if (name.empty()) {
delete error_logger;
}
+string RGWRealm::get_predefined_id(CephContext *cct) const {
+ return cct->_conf.get_val<string>("rgw_realm_id");
+}
+
const string& RGWRealm::get_predefined_name(CephContext *cct) const {
return cct->_conf->rgw_realm;
}
return zone_info_oid_prefix;
}
+string RGWZoneParams::get_predefined_id(CephContext *cct) const {
+ return cct->_conf.get_val<string>("rgw_zone_id");
+}
+
const string& RGWZoneParams::get_predefined_name(CephContext *cct) const {
return cct->_conf->rgw_zone;
}
virtual const std::string get_default_oid(bool old_format = false) const = 0;
virtual const std::string& get_names_oid_prefix() const = 0;
virtual const std::string& get_info_oid_prefix(bool old_format = false) const = 0;
+ virtual std::string get_predefined_id(CephContext *cct) const = 0;
virtual const std::string& get_predefined_name(CephContext *cct) const = 0;
void dump(Formatter *f) const;
const std::string get_default_oid(bool old_format = false) const override;
const std::string& get_names_oid_prefix() const override;
const std::string& get_info_oid_prefix(bool old_format = false) const override;
+ std::string get_predefined_id(CephContext *cct) const override;
const std::string& get_predefined_name(CephContext *cct) const override;
int init(const DoutPrefixProvider *dpp,
const std::string get_default_oid(bool old_region_format = false) const override;
const std::string& get_info_oid_prefix(bool old_region_format = false) const override;
const std::string& get_names_oid_prefix() const override;
+ std::string get_predefined_id(CephContext *cct) const override;
const std::string& get_predefined_name(CephContext *cct) const override;
void dump(Formatter *f) const;
const std::string get_default_oid(bool old_format = false) const override;
const std::string& get_names_oid_prefix() const override;
const std::string& get_info_oid_prefix(bool old_format = false) const override;
+ std::string get_predefined_id(CephContext *cct) const override;
const std::string& get_predefined_name(CephContext *cct) const override;
using RGWSystemMetaObj::read_id; // expose as public for radosgw-admin