cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-9827) Storage tags stored in multiple places
Date Tue, 14 Mar 2017 16:36:41 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-9827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15924531#comment-15924531
] 

ASF GitHub Bot commented on CLOUDSTACK-9827:
--------------------------------------------

Github user rafaelweingartner commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1994#discussion_r105959564
  
    --- Diff: engine/schema/src/com/cloud/storage/dao/StoragePoolTagsDaoImpl.java ---
    @@ -77,4 +90,68 @@ public void deleteTags(long poolId) {
             txn.commit();
         }
     
    +    @Override
    +    public List<StoragePoolTagVO> searchByIds(Long... stIds) {
    +        final int detailsBatchSize = getDetailsBatchSize();
    +
    +        // query details by batches
    +        List<StoragePoolTagVO> uvList = new ArrayList<StoragePoolTagVO>();
    +        int curr_index = 0;
    +
    +        if (stIds.length > detailsBatchSize) {
    +            while ((curr_index + detailsBatchSize) <= stIds.length) {
    +                searchForStoragePoolIdsInternal(curr_index, detailsBatchSize, stIds,
uvList);
    +                curr_index += detailsBatchSize;
    +            }
    +        }
    +
    +        if (curr_index < stIds.length) {
    +            int batch_size = (stIds.length - curr_index);
    +            searchForStoragePoolIdsInternal(curr_index, batch_size, stIds, uvList);
    +        }
    +
    +        return uvList;
    +    }
    +
    +    /**
    +     * Search storage pools
    +     * @param currIndex current index
    +     * @param batchSize batch size
    +     * @param stIds storage tags array
    +     * @param uvList
    +     */
    +    protected void searchForStoragePoolIdsInternal(int currIndex, int batchSize, Long[]
stIds, List<StoragePoolTagVO> uvList) {
    +        Long[] ids = new Long[batchSize];
    +        for (int k = 0, j = currIndex; j < currIndex + batchSize; j++, k++) {
    +            ids[k] = stIds[j];
    +        }
    +        SearchCriteria<StoragePoolTagVO> sc = StoragePoolIdsSearch.create();
    +        sc.setParameters("idIN", (Object[])ids);
    +        List<StoragePoolTagVO> vms = searchIncludingRemoved(sc, null, null, false);
    +        if (vms != null) {
    +            uvList.addAll(vms);
    +        }
    +    }
    +
    +    /**
    +     * Retrieve {@code detail.batch.query.size} configuration value. If not available,
return the default value (2000)
    +     * @return detail.batch.query.size configuration value
    +     */
    +    protected int getDetailsBatchSize() {
    +        String batchCfg = _configDao.getValue("detail.batch.query.size");
    +        return batchCfg != null ? Integer.parseInt(batchCfg) : 2000;
    --- End diff --
    
    What about extracting the `2000` to a constant in the class?


> Storage tags stored in multiple places
> --------------------------------------
>
>                 Key: CLOUDSTACK-9827
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9827
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Management Server
>    Affects Versions: 4.10.0.0
>         Environment: N/A
>            Reporter: Mike Tutkowski
>            Assignee: Nicolas Vazquez
>            Priority: Blocker
>             Fix For: 4.10.0.0
>
>
> I marked this as a Blocker because it concerns me that we are not handling storage tags
correctly in 4.10 and, as such, VM storage might get placed in locations that users don't
want.
> From e-mails I sent to dev@ (most recent to oldest):
> If I add a new primary storage and give it a storage tag, the tag ends up in storage_pool_details.
> If I edit an existing storage pool’s storage tags, it places them in storage_pool_tags.
> **********
> I believe I have found another bug (one that we should either fix or examine in detail
before releasing 4.10).
> It looks like we have a new table: cloud.storage_pool_tags.
> The addition of this table seems to have broken the listStorageTags API command. When
this command runs, it doesn’t pick up any storage tags for me (and I know I have one storage
tag).
> This data used to be stored in the cloud.storage_pool_details table. It’s good to put
it in its own table, but will our upgrade process move the existing tags from storage_pool_details
to storage_pool_tags?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message