const string& zonegroup_id,
const rgw_placement_rule& placement_rule,
const string& swift_ver_location,
+ bool obj_lock_enabled,
const RGWQuotaInfo * pquota_info,
map<std::string, bufferlist>& attrs,
RGWBucketInfo& info,
info.placement_rule = selected_placement_rule;
info.swift_ver_location = swift_ver_location;
info.swift_versioning = (!swift_ver_location.empty());
+ if (obj_lock_enabled) {
+ info.flags |= BUCKET_VERSIONED | BUCKET_OBJ_LOCK_ENABLED;
+ }
init_default_bucket_layout(cct, info.layout, svc.zone->get_zone(),
rule_info.index_type);
const std::string& zonegroup_id,
const rgw_placement_rule& placement_rule,
const std::string& swift_ver_location,
+ bool obj_lock_enabled,
const RGWQuotaInfo * pquota_info,
std::map<std::string,bufferlist>& attrs,
RGWBucketInfo& bucket_info,
int ret;
bufferlist in_data;
RGWBucketInfo master_info;
- rgw_bucket* pmaster_bucket;
+ rgw_bucket* pmaster_bucket = nullptr;
real_time creation_time;
std::unique_ptr<Bucket> bucket;
obj_version objv,* pobjv = NULL;
pmaster_bucket= &master_info.bucket;
creation_time = master_info.creation_time;
pobjv = &objv;
- if (master_info.obj_lock_enabled()) {
- info.flags = BUCKET_VERSIONED | BUCKET_OBJ_LOCK_ENABLED;
- }
- } else {
- pmaster_bucket = NULL;
- if (obj_lock_enabled)
- info.flags = BUCKET_VERSIONED | BUCKET_OBJ_LOCK_ENABLED;
+ obj_lock_enabled = master_info.obj_lock_enabled();
}
std::string zid = zonegroup_id;
} else {
ret = store->getRados()->create_bucket(this->get_info(), bucket->get_key(),
- zid, placement_rule, swift_ver_location, pquota_info,
+ zid, placement_rule, swift_ver_location,
+ obj_lock_enabled, pquota_info,
attrs, info, pobjv, &ep_objv, creation_time,
pmaster_bucket, y, dpp, exclusive);
if (ret == -EEXIST) {