diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb index 9628e4ed8b..a02ac25fe4 100644 --- a/src/cli/one_helper/oneimage_helper.rb +++ b/src/cli/one_helper/oneimage_helper.rb @@ -124,12 +124,9 @@ class OneImageHelper < OpenNebulaHelper::OneHelper { :name => "size", :large => "--size size", - :description => "Size in MB. Used for DATABLOCK type", + :description => "Size in MB. Used for DATABLOCK type or SOURCE based images.", :format => String, :proc => lambda do |o, options| - if !options[:type] || !(options[:type].upcase=='DATABLOCK') - next [-1, "Size is only used for DATABLOCK type images"] - end m=o.strip.match(/^(\d+(?:\.\d+)?)(m|mb|g|gb)?$/i) diff --git a/src/image/ImageManagerActions.cc b/src/image/ImageManagerActions.cc index ab6697b6e3..a067ac7c0c 100644 --- a/src/image/ImageManagerActions.cc +++ b/src/image/ImageManagerActions.cc @@ -770,7 +770,16 @@ int ImageManager::stat_image(Template* img_tmpl, if (!res.empty()) { - res = "0"; + long long size_l; + + if (!img_tmpl->get("SIZE", size_l)) + { + res = "Wrong number or missing SIZE attribute."; + return -1; + } + + img_tmpl->get("SIZE", res); + return 0; } @@ -790,14 +799,16 @@ int ImageManager::stat_image(Template* img_tmpl, if (res.empty())//no PATH { - img_tmpl->get("SIZE", res); + long long size_l; - if (res.empty()) + if (!img_tmpl->get("SIZE", size_l)) { - res = "Either SIZE or PATH are mandatory for DATABLOCK."; + res = "Wrong number or missing SIZE attribute."; return -1; } + img_tmpl->get("SIZE", res); + return 0; } else