You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Mike Tutkowski (JIRA)" <ji...@apache.org> on 2014/09/18 04:17:34 UTC
[jira] [Updated] (CLOUDSTACK-7406) Templates using Swift provider
reports physical size, and not the virtual size in the template list
[ https://issues.apache.org/jira/browse/CLOUDSTACK-7406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Tutkowski updated CLOUDSTACK-7406:
---------------------------------------
Assignee: punith
> Templates using Swift provider reports physical size, and not the virtual size in the template list
> ---------------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-7406
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-7406
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the default.)
> Affects Versions: 4.4.1
> Reporter: Francois Gaudreault
> Assignee: punith
> Priority: Critical
>
> Looks like the post-download tasks for normal NFS vs. S3/Swift are not the same. Might have some good reasons (if any?), but a side effect of this is the virtualSize is not properly reported to CloudStack, which leads to other problems (e.g SolidFire storage plugin creating LUNs with the wrong size)
> Code snippet of
> services/secondary-storage/server/src/org/apache/cloudstack/storage/template/DownloadManagerImpl.java
> case DOWNLOAD_FINISHED:
> if (!(td instanceof S3TemplateDownloader)) {
> // we currently only create template.properties for NFS by
> // running some post download script
> td.setDownloadError("Download success, starting install ");
> String result = postDownload(jobId);
> if (result != null) {
> s_logger.error("Failed post download script: " + result);
> td.setStatus(Status.UNRECOVERABLE_ERROR);
> td.setDownloadError("Failed post download script: " + result);
> } else {
> td.setStatus(Status.POST_DOWNLOAD_FINISHED);
> td.setDownloadError("Install completed successfully at " + new SimpleDateFormat().format(new Date()));
> }
> } else {
> // for s3 and swift, we skip post download step and just set
> // status to trigger callback.
> td.setStatus(Status.POST_DOWNLOAD_FINISHED);
> // set template size for S3
> S3TemplateDownloader std = (S3TemplateDownloader)td;
> long size = std.totalBytes;
> DownloadJob dnld = jobs.get(jobId);
> dnld.setTemplatesize(size);
> dnld.setTemplatePhysicalSize(size);
> dnld.setTmpltPath(std.getDownloadLocalPath()); // update template path to include file name.
> }
> So as you can see, the code simply used the downloaded bytes, not the actual virtual drive size within the vhd.
> If we could do a PostDownload sub with the proper steps (e.g get file extension, and grab the virtualSize) I think it would be sufficient.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)