cerr << " realm list-periods list all realm periods\n";
cerr << " realm remove remove a zonegroup from the realm\n";
cerr << " realm rename rename a realm\n";
+ cerr << " realm set set realm info (requires infile)\n";
cerr << " realm set-default set realm as default\n";
cerr << " zonegroup create create a new zone group info\n";
cerr << " zonegroup default set default zone group\n";
OPT_REALM_LIST_PERIODS,
OPT_REALM_REMOVE,
OPT_REALM_RENAME,
+ OPT_REALM_SET,
OPT_REALM_SET_DEFAULT,
OPT_PERIOD_PREPARE,
OPT_PERIOD_DELETE,
return OPT_REALM_REMOVE;
if (strcmp(cmd, "rename") == 0)
return OPT_REALM_RENAME;
+ if (strcmp(cmd, "set") == 0)
+ return OPT_REALM_SET;
if (strcmp(cmd, "set-default") == 0)
return OPT_REALM_SET_DEFAULT;
} else if (strcmp(prev_cmd, "zonegroup") == 0) {
opt_cmd == OPT_REALM_DELETE || opt_cmd == OPT_REALM_GET || opt_cmd == OPT_REALM_LIST ||
opt_cmd == OPT_REALM_LIST_PERIODS ||
opt_cmd == OPT_REALM_GET_DEFAULT || opt_cmd == OPT_REALM_REMOVE ||
- opt_cmd == OPT_REALM_RENAME || opt_cmd == OPT_REALM_SET_DEFAULT);
+ opt_cmd == OPT_REALM_RENAME || opt_cmd == OPT_REALM_SET ||
+ opt_cmd == OPT_REALM_SET_DEFAULT);
if (raw_storage_op) {
store = RGWStoreManager::get_raw_storage(g_ceph_context);
}
}
break;
+ case OPT_REALM_SET:
+ {
+ if (realm_id.empty() && realm_name.empty()) {
+ cerr << "no realm name or id provided" << std::endl;
+ return -EINVAL;
+ }
+ if (infile.empty()) {
+ cerr << "no realm input file provided" << std::endl;
+ return -EINVAL;
+ }
+ RGWRealm realm(realm_id, realm_name);
+ int ret = realm.init(g_ceph_context, store, false);
+ if (ret < 0) {
+ cerr << "failed to init realm: " << cpp_strerror(-ret) << std::endl;
+ return -ret;
+ }
+ ret = read_decode_json(infile, realm);
+ if (ret < 0) {
+ return 1;
+ }
+ ret = realm.update();
+ if (ret < 0) {
+ cerr << "ERROR: couldn't store realm info: " << cpp_strerror(-ret) << std::endl;
+ return 1;
+ }
+ encode_json("realm", realm, formatter);
+ formatter->flush(cout);
+ }
+ break;
+
case OPT_REALM_SET_DEFAULT:
{
RGWRealm realm(realm_id, realm_name);