From fbbf10950ac9dbcdc9b3452309336f741c8fca96 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Fri, 9 Mar 2012 22:43:44 +0100 Subject: [PATCH] feature #1112: Image command includes datastore information --- src/cli/etc/oneimage.yaml | 17 +++++++++++------ src/cli/one_helper/onedatastore_helper.rb | 6 +++++- src/cli/one_helper/oneimage_helper.rb | 19 +++++++++---------- src/cli/oneimage | 23 ++++++++++++++++------- 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/cli/etc/oneimage.yaml b/src/cli/etc/oneimage.yaml index c8ddff7956..235d7e8ca9 100644 --- a/src/cli/etc/oneimage.yaml +++ b/src/cli/etc/oneimage.yaml @@ -3,11 +3,6 @@ :desc: ONE identifier for the Image :size: 4 -:NAME: - :desc: Name of the Image - :size: 12 - :left: true - :USER: :desc: Username of the Virtual Machine owner :size: 8 @@ -18,6 +13,16 @@ :size: 8 :left: true +:NAME: + :desc: Name of the Image + :size: 12 + :left: true + +:DATASTORE: + :desc: Name of the Datastore + :size: 10 + :left: true + :SIZE: :desc: Size of the Image :size: 7 @@ -47,9 +52,9 @@ - :USER - :GROUP - :NAME +- :DATASTORE - :SIZE - :TYPE -- :REGTIME - :PERSISTENT - :STAT - :RVMS diff --git a/src/cli/one_helper/onedatastore_helper.rb b/src/cli/one_helper/onedatastore_helper.rb index 16f68d6e6b..4f524bbd71 100644 --- a/src/cli/one_helper/onedatastore_helper.rb +++ b/src/cli/one_helper/onedatastore_helper.rb @@ -59,7 +59,11 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper end column :IMAGES, "Number of Images", :left, :size=>6 do |d| - d["IMAGES"].size + if d["IMAGES"]["ID"].nil? + "0" + else + d["IMAGES"]["ID"].size + end end column :TYPE, "Datastore driver", :left, :size=>6 do |d| diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb index 4d13ae95dc..b02ea356d9 100644 --- a/src/cli/one_helper/oneimage_helper.rb +++ b/src/cli/one_helper/oneimage_helper.rb @@ -45,10 +45,6 @@ class OneImageHelper < OpenNebulaHelper::OneHelper d["ID"] end - column :NAME, "Name of the Image", :left, :size=>12 do |d| - d["NAME"] - end - column :USER, "Username of the Virtual Machine owner", :left, :size=>8 do |d| helper.user_name(d, options) @@ -59,13 +55,16 @@ class OneImageHelper < OpenNebulaHelper::OneHelper helper.group_name(d, options) end - column :TYPE, "Type of the Image", :size=>4 do |d,e| - OneImageHelper.type_to_str(d["TYPE"]) + column :NAME, "Name of the Image", :left, :size=>12 do |d| + d["NAME"] end - column :REGTIME, "Registration time of the Image", - :size=>20 do |d| - OpenNebulaHelper.time_to_str(d["REGTIME"]) + column :DATASTORE, "Name of the Image", :left, :size=>10 do |d| + d["DATASTORE"] + end + + column :TYPE, "Type of the Image", :size=>4 do |d,e| + OneImageHelper.type_to_str(d["TYPE"]) end column :PERSISTENT, "Whether the Image is persistent or not", @@ -87,7 +86,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper OpenNebulaHelper.unit_to_str(d['SIZE'].to_i,options,"M") end - default :ID, :USER, :GROUP, :NAME, :SIZE, :TYPE, :REGTIME, + default :ID, :USER, :GROUP, :NAME, :DATASTORE, :SIZE, :TYPE, :PERSISTENT , :STAT, :RVMS end diff --git a/src/cli/oneimage b/src/cli/oneimage index bb8635f5db..fca548c8ce 100755 --- a/src/cli/oneimage +++ b/src/cli/oneimage @@ -29,6 +29,7 @@ $: << RUBY_LIB_LOCATION+"/cli" require 'command_parser' require 'one_helper/oneimage_helper' +require 'one_helper/onedatastore_helper' cmd=CommandParser::CmdParser.new(ARGV) do usage "`oneimage` [] []" @@ -45,6 +46,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do list_options << OpenNebulaHelper::XML list_options << OpenNebulaHelper::NUMERIC + CREATE_OPTIONS = [OneDatastoreHelper::DATASTORE] + ######################################################################## # Formatters for arguments ######################################################################## @@ -56,10 +59,6 @@ cmd=CommandParser::CmdParser.new(ARGV) do OpenNebulaHelper.rname_to_id(arg, "USER") end - set :format, :datastoreid, OpenNebulaHelper.rname_to_id_desc("DATASTORE") do |arg| - OpenNebulaHelper.rname_to_id(arg, "DATASTORE") - end - set :format, :imageid, OneImageHelper.to_id_desc do |arg| helper.to_id(arg) end @@ -80,10 +79,20 @@ cmd=CommandParser::CmdParser.new(ARGV) do Creates a new Image from the given template file EOT - command :create, create_desc, :file, :datastoreid do + command :create, create_desc, :file, :options=>CREATE_OPTIONS do + if options[:datastore].nil? + STDERR.puts "Datastore to save the image is mandatory: " + STDERR.puts "\t -d datastore_id" + exit -1 + end helper.create_resource(options) do |image| - template=File.read(args[0]) - image.allocate(template, args[1]) + begin + template=File.read(args[0]) + image.allocate(template, options[:datastore] ) + rescue => e + STDERR.puts e.messsage + exit -1 + end end end