cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CLOUDSTACK-9438) Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI
Date Tue, 09 Aug 2016 14:28:20 GMT


ASF GitHub Bot commented on CLOUDSTACK-9438:

Github user nvazquez commented on a diff in the pull request:
    --- Diff: server/src/com/cloud/storage/ ---
    @@ -20,48 +20,68 @@
     import javax.inject.Inject;
    +import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
    +import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
     public class ImageStoreDetailsUtil {
         protected ImageStoreDao imageStoreDao;
         protected ImageStoreDetailsDao imageStoreDetailsDao;
    +    @Inject
    +    protected ConfigurationDao configurationDao;
    -     * Obtain NFS protocol version (if provided) for a store id.<br/>
    -     * It can be set by adding an entry in {@code image_store_details} table, providing
{@code name=nfs.version} and {@code value=X} (e.g. 3)
    +     * Retrieve global secondary storage NFS version default value
    +     * @return global default value
    +     */
    +    protected Integer getGlobalDefaultNfsVersion(){
    +        ConfigurationVO globalNfsVersion = configurationDao.findByName(CapacityManager.ImageStoreNFSVersion.key());
    +        String value = globalNfsVersion.getValue();
    --- End diff --
    @jburwell I didn't consider it because configuration will be added and it will be present
unless it is explicitly deleted from db. Anyways, I can add `Preconditions.checkState(globalNfsVersion
!= null)` do you agree?

> Fix for CLOUDSTACK-9252 - Make NFS version changeable in UI
> -----------------------------------------------------------
>                 Key: CLOUDSTACK-9438
>                 URL:
>             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|] 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
> 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
> ** 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}}

This message was sent by Atlassian JIRA

View raw message