hevinhsu opened a new pull request, #10598: URL: https://github.com/apache/ozone/pull/10598
## What changes were proposed in this pull request? Support rack and host topology awareness in `MiniOzoneCluster` and `MiniOzoneHAClusterImpl` (HDDS-14812). This enables integration tests to properly exercise topology-sensitive pipeline placement. Key changes: - Add `FixedHostMapping`, a `CachedDNSToSwitchMapping` implementation that resolves hostnames to rack locations via a static map, bypassing DNS lookups to handle synthetic or unresolvable test hostnames. - Pre-populate `DatanodeDetails` via the DN yaml file mechanism to bypass `validateDatanodeIpAddress()` during `DatanodeService` startup, which performs a native DNS lookup and would fail for synthetic hostnames. - Trigger pipeline recreation after all DataNodes are registered to ensure `PipelinePlacementPolicy` observes the full DN pool and produces rack-diverse pipelines. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-14812 ## How was this patch tested? CI was run on the changes in this PR: [MiniOzoneCluster topology tests](https://github.com/hevinhsu/ozone/actions/runs/28074036021) Additionally, integration tests covering three topology scenarios were added and verified in a [personal fork](https://github.com/hevinhsu/ozone/pull/27/changes/37018e4f6e55afc0c13b784ef33544ae01b6212c) and are not included in this PR: - Racks and hosts configured together - Racks only (hostnames auto-generated) - Hosts only (all nodes fall back to default rack) Tests were validated against existing HA test classes (TestSecretKeySnapshotWithRack, TestScmHAFinalizationWithRacks, TestRackAwarePlacement) with [green CI](https://github.com/hevinhsu/ozone/actions/runs/28074139438). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
