-
Notifications
You must be signed in to change notification settings - Fork 1.3k
CLOUDSTACK-9438: Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI #1615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
aa02196 to
f3a5e12
Compare
| @@ -16,7 +16,7 @@ | |||
| * specific language governing permissions and limitations | |||
| * under the License. | |||
| */ | |||
| package org.apache.cloudstack.storage.image.db; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason for moving this file to a new location?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @koushik-das, the reason was to avoid a dependency cycle on Maven poms, I tried explaining it under Important section in this PR's description
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missed that out previously, thanks
|
LGTM based on code review |
|
Thanks @koushik-das! |
|
Ping for second review -- @GabrielBrascher, @rhtyd, @wido, @rafaelweingartner |
|
Alright, your PR did not break packaging! Packages built and available at: http://packages.shapeblue.com/cloudstack/custom/github-1615 |
bb5c7c0 to
a8b856c
Compare
|
@blueorangutan kick |
|
A Trillian-Jenkins job has been kicked to build packages and start testing. I'll keep you posted as I make progress. |
| } | ||
| if (getImageStoreId() != null) { | ||
| response.setScope("imagestore"); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove this check and adding validations = PositiveNumber to the imageStoreId @Parameter annotation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, done
|
Packaging result: ✔centos6 ✔centos7 ✔debian repo: http://packages.shapeblue.com/cloudstack/pr/1615 |
|
@nvazquez looking good. One small item on the |
|
Done, thanks @jburwell for your review! |
|
@nvazquez thanks for updates. The Jenkins build failed. It appears to be caused by a timeout (91 minutes). Could you please force a rebuild by executing |
|
Sure, done |
|
@blueorangutan help |
|
@jburwell Was there a discussion thread for this on dev@, didn't remember seeing one which mentions about freezing master. These issues of test stability are known and were raised multiple times in the past as well, so not sure what you mean by severity of the situation. Anyways lets wait for the next 24 hours and after that merge the commits that have the required LGTMs. |
|
@koushik-das please see this thread regarding the testing freeze discussion. Also, per our community release schedule, the 4.8, 4.9, and master branches are frozen for testing pre-RC. |
|
@blueorangutan help |
|
@karuturi I understand these words: "help", "hello", "thanks", "package", "test" |
|
@blueorangutan test centos7 vmware-60u2 |
|
@karuturi a Trillian-Jenkins test job (centos7 mgmt + vmware-60u2) has been kicked to run smoke tests |
|
@blueorangutan @rhtyd any update on the tests? Is the job running? |
|
@karuturi there was a capacity issue at the backend, the tests have been re-fired. |
|
@rhtyd any update on the tests? |
|
@karuturi tests are about to finish |
|
ok. Thank you. |
|
@blueorangutan test |
|
@karuturi a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
|
Trillian test result (tid-191)
|
|
Trillian test result (tid-193)
|
ACS CI BVT RunSumarry: Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0 Failed tests:
Skipped tests: Passed test suits: |
|
reran the test for delete account and it passes. |
CLOUDSTACK-9438: Fix for CLOUDSTACK-9252 - Make NFS version changeable in UIJIRA TICKET: https://issues.apache.org/jira/browse/CLOUDSTACK-9438 ### Introduction From #1361 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 `ImageStoreDetailsDao` 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 * pr/1615: CLOUDSTACK-9438: Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI Signed-off-by: Rajani Karuturi <[email protected]>
|
Hello @nvazquez |
|
@milamberspace Column details is supposed to be added during 4.8 to 4.9 schema upgrade. Most likely when you upgraded to 4.9 this PR hadn't been merged yet. You can simply apply this statement before starting the 4.9 to 4.10 upgrade: |
|
@serg38 My CS 4.9.1.0 installation is a fresh installation not an upgrade from 4.8. |
|
@milamberspace Can you check if file /usr/share/cloudstack-management/setup/db/schema-481to490.sql in your installation has the SQL alter image_store_details table line ? |
|
@serg38 Root cause of the issue found. |
|
Hi @milamberspace, sorry for my late response, I'm out of work this week but please let me know if there's something I can do to help. |
- Fixes issue of failing upgrade paths - Moves schema changes from PR apache#1615 in the 4.9.1.0 to 4.10.0.0 sql path Signed-off-by: Rohit Yadav <[email protected]>
CLOUDSTACK-9671: Fix sql change to corresponding version paths- Fixes issue of failing upgrade paths - Moves schema changes from PR #1615 in the 4.9.1.0 to 4.10.0.0 sql path * pr/1831: CLOUDSTACK-9671: Fix sql change to corresponding version paths Signed-off-by: Rohit Yadav <[email protected]>
JIRA TICKET: https://issues.apache.org/jira/browse/CLOUDSTACK-9438
Introduction
From #1361 it was possible to configure NFS version for secondary storage mount.
However, changing NFS version requires inserting an new detail on
image_store_detailstable, withname = 'nfs.version'andvalue = Xwhere 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:
ImageStoreDetailsDaoclass to extendResourceDetailsDaoBaseandImageStoreDetailVOimplementResourceDetail'display'column onimage_store_detailstableListCfgsCmdandUpdateCfgCmdto support ImageStore scope, which implied:** Injecting
ImageStoreDetailsDaoandImageStoreDaoonConfigurationManagerImplclass, oncloud-servermodule.Important
It is important to mention that
ImageStoreDaoImplandImageStoreDetailsDaoImplclasses were moved fromcloud-engine-storagetocloud-engine-schemamodule in order to Spring find those beans to inject onConfigurationManagerImplincloud-servermodule.We had this maven dependencies between modules:
cloud-server --> cloud-engine-schemacloud-engine-storage --> cloud-secondary-storage --> cloud-serverAs
ImageStoreDaoImplandImageStoreDetailsDaowere defined incloud-engine-storage, and they needed incloud-servermodule, to be injected onConfigurationManagerImpl, if we added dependency fromcloud-servertocloud-engine-storagewe would introduce a dependency cycle. To avoid this cycle, we moved those classes tocloud-engine-schemamodule