From 6f979c970d2a52d5b0389f9484bb7b41b56ea6c2 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Fri, 22 Nov 2013 23:06:12 +0100 Subject: [PATCH] feature #2489: Size must be set for SOURCE based images (cherry picked from commit cd177e6ab0566641a0e8810ed5947cc9c2ddcdeb) --- src/cli/one_helper/oneimage_helper.rb | 5 +---- src/image/ImageManagerActions.cc | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) 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