Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Security Level: Public (Anyone can view this level - this is the default.)
-
None
Description
Introduction
From 9252 it was possible to configure NFS version for secondary storage mount.
However, changing NFS version requires inserting an new detail on image_store_details table, with name = 'nfs.version' and value = X where X is desired NFS version, and then restarting management server for changes to take effect.
Our improvement aims to make NFS version changeable from UI, instead of previously described workflow.
Proposed solution
Basically, NFS version is defined as an image store ConfigKey, this implied:
- Adding a new Config scope: ImageStore
- Make ImageStoreDetailsDao class to extend ResourceDetailsDaoBase and ImageStoreDetailVO implement ResourceDetail
- Insert 'display' column on image_store_details table
- Extending ListCfgsCmd and UpdateCfgCmd to support ImageStore scope, which implied:
- Injecting ImageStoreDetailsDao and ImageStoreDao on ConfigurationManagerImpl class, on cloud-server module.
Important
It is important to mention that ImageStoreDaoImpl and ImageStoreDetailsDaoImpl classes were moved from cloud-engine-storage to cloud-engine-schema module in order to Spring find those beans to inject on ConfigurationManagerImpl in cloud-server module.
We had this maven dependencies between modules:
- cloud-server --> cloud-engine-schema
- cloud-engine-storage --> cloud-secondary-storage --> cloud-server
As ImageStoreDaoImpl and ImageStoreDetailsDaoImpl were defined in cloud-engine-storage, and they needed in cloud-server module, to be injected on ConfigurationManagerImpl, if we added dependency from cloud-server to cloud-engine-storage we would introduce a dependency cycle. To avoid this cycle, we moved those classes to cloud-engine-schema module
Attachments
Issue Links
- links to