{
RGWDataAccess::ObjectRef obj;
+ CephContext *cct = store->ctx();
+
int ret = params.bucket->get_object(params.key, &obj);
if (ret < 0) {
- cerr << "ERROR: failed to get object: " << cpp_strerror(-ret) << std::endl;
+ lderr(cct) << "ERROR: failed to get object: " << cpp_strerror(-ret) << dendl;
return -ret;
}
ret = obj->put(params.data, params.attrs);
if (ret < 0) {
- cerr << "ERROR: put object returned error: " << cpp_strerror(-ret) << std::endl;
+ lderr(cct) << "ERROR: put object returned error: " << cpp_strerror(-ret) << dendl;
+ }
+
+ return 0;
+}
+
+template<>
+int RGWBucketLifecycleConfigCR::Request::_send_request()
+{
+ CephContext *cct = store->ctx();
+
+ RGWLC *lc = store->get_lc();
+ if (!lc) {
+ lderr(cct) << "ERROR: lifecycle object is not initialized!" << dendl;
+ return -EIO;
+ }
+
+ int ret = lc->set_bucket_config(params.bucket_info,
+ params.bucket_attrs,
+ ¶ms.config);
+ if (ret < 0) {
+ lderr(cct) << "ERROR: failed to set lifecycle on bucke: " << cpp_strerror(-ret) << dendl;
+ return -ret;
}
return 0;
#include "rgw_cr_rados.h"
#include "rgw_tools.h"
+#include "rgw_lc.h"
struct rgw_user_create_params {
using RGWObjectSimplePutCR = RGWSimpleWriteOnlyAsyncCR<rgw_object_simple_put_params>;
+struct rgw_bucket_lifecycle_config_params {
+ RGWBucketInfo bucket_info;
+ map<string, bufferlist> bucket_attrs;
+ RGWLifecycleConfiguration config;
+};
+
+using RGWBucketLifecycleConfigCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_lifecycle_config_params>;
+
#endif