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

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

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

    https://github.com/apache/cloudstack/pull/795#discussion_r39164669
  
    --- Diff: utils/src/main/java/com/cloud/utils/storage/QCOW2Utils.java ---
    @@ -0,0 +1,60 @@
    +//
    +// Licensed to the Apache Software Foundation (ASF) under one
    +// or more contributor license agreements.  See the NOTICE file
    +// distributed with this work for additional information
    +// regarding copyright ownership.  The ASF licenses this file
    +// to you under the Apache License, Version 2.0 (the
    +// "License"); you may not use this file except in compliance
    +// with the License.  You may obtain a copy of the License at
    +//
    +//   http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing,
    +// software distributed under the License is distributed on an
    +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +// KIND, either express or implied.  See the License for the
    +// specific language governing permissions and limitations
    +// under the License.
    +//
    +
    +package com.cloud.utils.storage;
    +
    +import java.io.IOException;
    +import java.io.InputStream;
    +
    +import com.cloud.utils.NumbersUtil;
    +
    +public final class QCOW2Utils {
    +    private static final int VIRTUALSIZE_HEADER_LOCATION = 24;
    +    private static final int VIRTUALSIZE_HEADER_LENGTH = 8;
    +
    +    /**
    +     * Private constructor ->  This utility class cannot be instantiated.
    +     */
    +    private QCOW2Utils() {}
    +
    +    /**
    +     * @return the header location of the virtual size field.
    +     */
    +    public static int getVirtualSizeHeaderLocation() {
    +        return VIRTUALSIZE_HEADER_LOCATION;
    +    }
    +
    +    /**
    +     * @param inputStream The QCOW2 object in stream format.
    +     * @return The virtual size of the QCOW2 object.
    +     */
    +    public static long getVirtualSize(InputStream inputStream) throws 
IOException {
    +        byte[] b = new byte[8];
    +
    +        if (inputStream.skip(VIRTUALSIZE_HEADER_LOCATION) != 
VIRTUALSIZE_HEADER_LOCATION) {
    +            throw new IOException("Unable to skip to the virtual size 
header");
    +        }
    +
    +        if (inputStream.read(b) != 8) {
    --- End diff --
    
    Should you use VIRTUALSIZE_HEADER_LENGTH here?


> Virtual Template size is not correct when using S3 as image store.
> ------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-8819
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8819
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: Secondary Storage
>            Reporter: Boris Schrijver
>            Assignee: Boris Schrijver
>
> The virtual size is the same as the physical size of the template. See: 
> https://github.com/apache/cloudstack/blob/master/services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java#L300



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

Reply via email to