output_user_info = false;
break;
case OPT_USER_RENAME:
+ if (yes_i_really_mean_it) {
+ user_op.set_overwrite_new_user(true);
+ }
ret = user.rename(user_op, &err_msg);
if (ret < 0) {
+ if (ret == -EEXIST) {
+ err_msg += ". to overwrite this user, add --yes-i-really-mean-it";
+ }
cerr << "could not rename user: " << err_msg << std::endl;
return -ret;
}
stub_user_info.user_id = uid;
RGWObjVersionTracker objv;
+ const bool exclusive = !op_state.get_overwrite_new_user(); // overwrite if requested
- ret = rgw_store_user_info(store, stub_user_info, nullptr, &objv, real_time(), true);
+ ret = rgw_store_user_info(store, stub_user_info, nullptr, &objv, real_time(), exclusive);
if (ret == -EEXIST) {
set_err_msg(err_msg, "user name given by --new-uid already exists");
return ret;
std::string user_email;
std::string display_name;
rgw_user new_user_id;
+ bool overwrite_new_user = false;
int32_t max_buckets;
__u8 suspended;
__u8 admin;
new_user_id = id;
}
+ void set_overwrite_new_user(bool b) {
+ overwrite_new_user = b;
+ }
void set_user_email(std::string& email) {
/* always lowercase email address */
std::string get_user_email() { return user_email; }
std::string get_display_name() { return display_name; }
rgw_user& get_new_uid() { return new_user_id; }
+ bool get_overwrite_new_user() const { return overwrite_new_user; }
map<int, std::string>& get_temp_url_keys() { return temp_url_keys; }
RGWUserInfo& get_user_info() { return info; }