void RGWSetTempUrl::execute()
{
+ ret = get_params();
+ if (ret < 0)
+ return;
+
+ RGWUserAdminOpState user_op;
+ user_op.set_user_id(s->user.user_id);
+ map<int, string>::iterator iter;
+ for (iter = temp_url_keys.begin(); iter != temp_url_keys.end(); ++iter) {
+ user_op.set_temp_url_key(iter->second, iter->first);
+ }
+
+ RGWUser user;
+ ret = user.init(store, user_op);
+ if (ret < 0) {
+ ldout(store->ctx(), 0) << "ERROR: could not init user ret=" << ret << dendl;
+ return;
+ }
+ string err_msg;
+ ret = user.modify(user_op, &err_msg);
+ if (ret < 0) {
+ ldout(store->ctx(), 10) << "user.modify() returned " << ret << ": " << err_msg << dendl;
+ return;
+ }
}
class RGWSetTempUrl : public RGWOp {
protected:
int ret;
- string temp_url_key;
+ map<int, string> temp_url_keys;
public:
RGWSetTempUrl() : ret(0) {}
int RGWSetTempUrl_ObjStore_SWIFT::get_params()
{
- const char *temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL");
- if (temp_url)
- return -EINVAL;
+ const char *temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL_KEY");
+ if (temp_url) {
+ temp_url_keys[0] = temp_url;
+ }
+
+ temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL_KEY_2");
+ if (temp_url) {
+ temp_url_keys[1] = temp_url;
+ }
- temp_url_key = temp_url;
+ if (temp_url_keys.size() == 0)
+ return -EINVAL;
return 0;
}
RGWOp *RGWHandler_ObjStore_Service_SWIFT::op_post()
{
- const char *temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL");
+ const char *temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL_KEY");
+ if (temp_url) {
+ return new RGWSetTempUrl_ObjStore_SWIFT;
+ }
+ temp_url = s->info.env->get("HTTP_X_ACCOUNT_META_TEMP_URL_KEY_2");
if (temp_url) {
return new RGWSetTempUrl_ObjStore_SWIFT;
}