if (rule.get_filter().has_tags()){
op.obj_tags = rule.get_filter().get_tags();
}
- auto ret = prefix_map.emplace(std::move(prefix), std::move(op));
- return ret.second;
+ prefix_map.emplace(std::move(prefix), std::move(op));
+ return true;
}
int RGWLifecycleConfiguration::check_and_add_rule(const LCRule& rule)
return (timediff >= cmp);
}
-int RGWLC::handle_multipart_expiration(RGWRados::Bucket *target, const map<string, lc_op>& prefix_map)
+int RGWLC::handle_multipart_expiration(
+ RGWRados::Bucket *target, const multimap<string, lc_op>& prefix_map)
{
MultipartMetaFilter mp_filter;
vector<rgw_bucket_dir_entry> objs;
return -1;
}
- map<string, lc_op>& prefix_map = config.get_prefix_map();
+ multimap<string, lc_op>& prefix_map = config.get_prefix_map();
+
+ ldpp_dout(this, 10) << __func__ << "() prefix_map size="
+ << prefix_map.size()
+ << dendl;
+
rgw_obj_key pre_marker;
rgw_obj_key next_marker;
for(auto prefix_iter = prefix_map.begin(); prefix_iter != prefix_map.end(); ++prefix_iter) {
{
protected:
CephContext *cct;
- map<string, lc_op> prefix_map;
+ multimap<string, lc_op> prefix_map;
multimap<string, LCRule> rule_map;
bool _add_rule(const LCRule& rule);
bool has_same_action(const lc_op& first, const lc_op& second);
bool valid();
multimap<string, LCRule>& get_rule_map() { return rule_map; }
- map<string, lc_op>& get_prefix_map() { return prefix_map; }
+ multimap<string, lc_op>& get_prefix_map() { return prefix_map; }
/*
void create_default(string id, string name) {
ACLGrant grant;
private:
- int handle_multipart_expiration(RGWRados::Bucket *target, const map<string, lc_op>& prefix_map);
+ int handle_multipart_expiration(RGWRados::Bucket *target,
+ const multimap<string, lc_op>& prefix_map);
};
namespace rgw::lc {