1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

F #4913: Add vmdk disk capacity when retrieving size in datastore/stat action

This commit is contained in:
mcabrerizo 2017-04-04 09:44:03 +02:00
parent 7beab339e9
commit 993a5e8e63

View File

@ -363,12 +363,17 @@ class Datastore < Storage
search_task.wait_for_completion
file_size = search_task.info.result[0].file[0].fileSize rescue nil
size = 0
raise "Could not get file size" if file_size.nil?
# Try to get vmdk capacity as seen by VM
size = search_task.info.result[0].file[0].capacityKb / 1024 rescue nil
(file_size / 1024) / 1024
# Try to get file size
size = search_task.info.result[0].file[0].fileSize / 1024 / 1024 rescue nil if !size
raise "Could not get file size or capacity" if size.nil?
size
rescue
raise "Could not find file."
end
@ -376,7 +381,14 @@ class Datastore < Storage
def get_search_params(ds_name, img_path=nil, img_name=nil)
spec = RbVmomi::VIM::HostDatastoreBrowserSearchSpec.new
spec.query = [RbVmomi::VIM::VmDiskFileQuery.new,
vmdisk_query = RbVmomi::VIM::VmDiskFileQuery.new
vmdisk_query.details = RbVmomi::VIM::VmDiskFileQueryFlags(:diskType => true,
:capacityKb => true,
:hardwareVersion => true,
:controllerType => true)
spec.query = [vmdisk_query,
RbVmomi::VIM::IsoImageFileQuery.new]
spec.details = RbVmomi::VIM::FileQueryFlags(:fileOwner => true,
:fileSize => true,