rgw_sync_symmetric_group *flow_group;
- group.data_flow.find_symmetrical(*opt_flow_id, true, &flow_group);
+ group.data_flow.find_or_create_symmetrical(*opt_flow_id, &flow_group);
for (auto& z : *opt_zone_ids) {
flow_group->zones.insert(z);
rgw_sync_directional_rule *flow_rule;
- group.data_flow.find_directional(*opt_source_zone_id, *opt_dest_zone_id, true, &flow_rule);
+ group.data_flow.find_or_create_directional(*opt_source_zone_id, *opt_dest_zone_id, &flow_rule);
}
ret = sync_policy_ctx.write_policy();
if (z1.syncs_from(z2.name)) {
found = true;
rgw_sync_directional_rule *rule;
- group.data_flow.find_directional(id2,
- id1,
- true,
- &rule);
+ group.data_flow.find_or_create_directional(id2,
+ id1,
+ &rule);
}
}
}
}
}
-bool rgw_sync_data_flow_group::find_symmetrical(const string& flow_id, bool create, rgw_sync_symmetric_group **flow_group)
+bool rgw_sync_data_flow_group::find_or_create_symmetrical(const string& flow_id, rgw_sync_symmetric_group **flow_group)
{
- if (symmetrical.empty()) {
- if (!create) {
- return false;
- }
- }
-
for (auto& group : symmetrical) {
if (flow_id == group.id) {
*flow_group = &group;
}
}
- if (!create) {
- return false;
- }
-
auto& group = symmetrical.emplace_back();
*flow_group = &group;
(*flow_group)->id = flow_id;
}
}
-bool rgw_sync_data_flow_group::find_directional(const rgw_zone_id& source_zone, const rgw_zone_id& dest_zone, bool create, rgw_sync_directional_rule **flow_group)
+bool rgw_sync_data_flow_group::find_or_create_directional(const rgw_zone_id& source_zone, const rgw_zone_id& dest_zone, rgw_sync_directional_rule **flow_group)
{
- if (directional.empty()) {
- if (!create) {
- return false;
- }
- }
-
for (auto& rule : directional) {
if (source_zone == rule.source_zone &&
dest_zone == rule.dest_zone) {
}
}
- if (!create) {
- return false;
- }
-
auto& rule = directional.emplace_back();
*flow_group = &rule;
return (symmetrical.empty() && directional.empty());
}
- bool find_symmetrical(const string& flow_id, bool create, rgw_sync_symmetric_group **flow_group);
+ bool find_or_create_symmetrical(const string& flow_id, rgw_sync_symmetric_group **flow_group);
void remove_symmetrical(const string& flow_id, std::optional<std::vector<rgw_zone_id> > zones);
- bool find_directional(const rgw_zone_id& source_zone, const rgw_zone_id& dest_zone, bool create, rgw_sync_directional_rule **flow_group);
+ bool find_or_create_directional(const rgw_zone_id& source_zone, const rgw_zone_id& dest_zone, rgw_sync_directional_rule **flow_group);
void remove_directional(const rgw_zone_id& source_zone, const rgw_zone_id& dest_zone);
void init_default(const std::set<rgw_zone_id>& zones);