(
existing_rule: &mut NetworkPolicyRule,
incoming_rule: &NetworkPolicyRule,
warnings: &mut Vec<PolicyMergeWarning>,
)
| 442 | } |
| 443 | |
| 444 | fn merge_rules( |
| 445 | existing_rule: &mut NetworkPolicyRule, |
| 446 | incoming_rule: &NetworkPolicyRule, |
| 447 | warnings: &mut Vec<PolicyMergeWarning>, |
| 448 | ) -> Result<(), PolicyMergeError> { |
| 449 | append_unique_binaries(&mut existing_rule.binaries, &incoming_rule.binaries); |
| 450 | |
| 451 | for incoming_endpoint in &incoming_rule.endpoints { |
| 452 | let mut incoming_endpoint = incoming_endpoint.clone(); |
| 453 | normalize_endpoint(&mut incoming_endpoint); |
| 454 | if let Some(existing_endpoint) = |
| 455 | find_matching_endpoint_mut(&mut existing_rule.endpoints, &incoming_endpoint) |
| 456 | { |
| 457 | merge_endpoint(existing_endpoint, &incoming_endpoint, warnings)?; |
| 458 | } else { |
| 459 | existing_rule.endpoints.push(incoming_endpoint); |
| 460 | } |
| 461 | } |
| 462 | |
| 463 | Ok(()) |
| 464 | } |
| 465 | |
| 466 | fn merge_endpoint( |
| 467 | existing: &mut NetworkEndpoint, |
no test coverage detected