we should be able to disable object verioning by removing its X-Versions-Location
metadata header by sending an empty key value. this description can be found at
No.8 in http://docs.openstack.org/user-guide/cli-swift-set-object-versions.html.
Fixes: http://tracker.ceph.com/issues/18852
Signed-off-by: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
(cherry picked from commit
17c5a0edd2227703cec867f0f588d4eae36dfe1c)
swift_ver_location = boost::in_place(std::string());
}
- std::string vloc = s->info.env->get("HTTP_X_VERSIONS_LOCATION", "");
- if (vloc.size()) {
+ if (s->info.env->exists("HTTP_X_VERSIONS_LOCATION")) {
/* If the Swift's versioning is globally disabled but someone wants to
* enable it for a given container, new version of Swift will generate
* the precondition failed error. */
return -ERR_PRECONDITION_FAILED;
}
- swift_ver_location = std::move(vloc);
+ swift_ver_location = s->info.env->get("HTTP_X_VERSIONS_LOCATION", "");
}
return 0;