cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas Vazquez (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CLOUDSTACK-9438) Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI
Date Thu, 21 Jul 2016 20:23:20 GMT
Nicolas Vazquez created CLOUDSTACK-9438:
-------------------------------------------

             Summary: Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI
                 Key: CLOUDSTACK-9438
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9438
             Project: CloudStack
          Issue Type: Improvement
      Security Level: Public (Anyone can view this level - this is the default.)
            Reporter: Nicolas Vazquez
            Assignee: Nicolas Vazquez


h3. Introduction

>From [9252|https://issues.apache.org/jira/browse/CLOUDSTACK-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.

h3. 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.

h4. 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message