errose28 opened a new pull request, #10206: URL: https://github.com/apache/ozone/pull/10206
## What changes were proposed in this pull request? The new versioning framework decouples the versions, version manager, and upgrade actions for each component. Because of this, we should give SCM and Datanodes their own specific upgrade action types instead of using typing on the generic `HDDSUpgradeAction` which we currently have. This change also adds Datanode and SCM specific upgrade action provider classes, similar to what was already added to OM in [HDDS-14826](https://issues.apache.org/jira/browse/HDDS-14826). These have been connected to `HDDSLayoutVersionManager` using a somewhat hacky change for now. `HDDSLayoutVersionManager` will be deleted when HDDS-15129 and HDDS-15195 are complete, so I did not put much effort into cleaner handling. `HDDSLayoutFeature.add{Scm,Datanode}Action` will also be deleted in the new framework because the version manager will contain the binding of upgrade actions to versions (see existing `OMVersionManager`). Therefore the existing generic action workaround in `HDDSLayoutFeature` is only temporary. LayoutFeature and UpgradeAction related classes have been moved out of hdds-common (a client side dependency) and into hdds-server-framework (server side only dependency). This means that `LayoutFeature`s should not be referenced in client facing classes like `DatanodeDetails`. This PR just removes the `LayoutFeature` referenced from `DatanodeDetails`, but #10205 makes a change to handle this properly. ## What is the link to the Apache JIRA HDDS-15196 ## How was this patch tested? All existing tests should pass to validate the refactoring. The new SCM and Datanode action providers will be tested in HDDS-15129 and HDDS-15195 respectively when they are used in the new SCM and Datanode version managers. This matches the current testing pattern with OM, where action loading is tested in `TestOMVersionManager`. -- 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]
