diff --git a/src/cli/one_helper.rb b/src/cli/one_helper.rb index fccddbd4c2..3165e7dab0 100644 --- a/src/cli/one_helper.rb +++ b/src/cli/one_helper.rb @@ -67,10 +67,10 @@ EOT @translation_hash = nil end - def create_resource(template, options) + def create_resource(options, &block) resource = factory - rc = resource.allocate(template) + rc = block.call(resource) if OpenNebula.is_error?(rc) return -1, rc.message else @@ -114,7 +114,7 @@ EOT if OpenNebula.is_error?(rc) return -1, rc.message else - puts "#{self.rname} #{id}: #{verbose}" if options[:verbose] + puts "#{self.class.rname} #{id}: #{verbose}" if options[:verbose] return 0 end end diff --git a/src/cli/one_helper/onehost_helper.rb b/src/cli/one_helper/onehost_helper.rb index d596acb5e9..51b22454df 100644 --- a/src/cli/one_helper/onehost_helper.rb +++ b/src/cli/one_helper/onehost_helper.rb @@ -19,18 +19,6 @@ require 'one_helper' class OneHostHelper < OpenNebulaHelper::OneHelper TABLE_CONF_FILE="#{OpenNebulaHelper::TABLE_CONF_PATH}/onehost.yaml" - def create_resource(args, options) - resource = factory - - rc = resource.allocate(args[0], args[1], args[2], args[3]) - if OpenNebula.is_error?(rc) - return -1, rc.message - else - puts "ID: #{resource.id.to_s}" if options[:verbose] - return 0 - end - end - def self.rname "HOST" end diff --git a/src/cli/one_helper/oneimage_helper.rb b/src/cli/one_helper/oneimage_helper.rb index d737aada3d..a84e0d8338 100644 --- a/src/cli/one_helper/oneimage_helper.rb +++ b/src/cli/one_helper/oneimage_helper.rb @@ -19,11 +19,6 @@ require 'one_helper' class OneImageHelper < OpenNebulaHelper::OneHelper TABLE_CONF_FILE="#{OpenNebulaHelper::TABLE_CONF_PATH}/oneimage.yaml" - def create_resource(template_file, options) - template=File.read(template_file) - super(template, options) - end - def self.rname "IMAGE" end diff --git a/src/cli/one_helper/onevm_helper.rb b/src/cli/one_helper/onevm_helper.rb index f8e268221b..a97e3b5e25 100644 --- a/src/cli/one_helper/onevm_helper.rb +++ b/src/cli/one_helper/onevm_helper.rb @@ -19,11 +19,6 @@ require 'one_helper' class OneVMHelper < OpenNebulaHelper::OneHelper TABLE_CONF_FILE="#{OpenNebulaHelper::TABLE_CONF_PATH}/onevm.yaml" - def create_resource(template_file, options) - template=File.read(template_file) - super(template, options) - end - def self.rname "VM" end diff --git a/src/cli/one_helper/onevnet_helper.rb b/src/cli/one_helper/onevnet_helper.rb index dc8d2de82f..dcb74e81a0 100644 --- a/src/cli/one_helper/onevnet_helper.rb +++ b/src/cli/one_helper/onevnet_helper.rb @@ -19,11 +19,6 @@ require 'one_helper' class OneVNetHelper < OpenNebulaHelper::OneHelper TABLE_CONF_FILE="#{OpenNebulaHelper::TABLE_CONF_PATH}/onevnet.yaml" - def create_resource(template_file, options) - template=File.read(template_file) - super(template, options) - end - def self.rname "VNET" end diff --git a/src/cli/onehost b/src/cli/onehost index d29ba36d4b..21b511488f 100755 --- a/src/cli/onehost +++ b/src/cli/onehost @@ -60,7 +60,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do # Commands ######################################################################## command :create, 'Create a new Virtual Network', :text, :text, :text, :text do - helper.create_resource(args, options) + helper.create_resource(options) do |host| + host.allocate(args[0], args[1], args[2], args[3]) + end end command :delete, 'Removes a Virtual Network', [:range, :vnetid_list] do diff --git a/src/cli/oneimage b/src/cli/oneimage index f64e4a3980..6eb7ed1ac5 100755 --- a/src/cli/oneimage +++ b/src/cli/oneimage @@ -64,7 +64,10 @@ cmd=CommandParser::CmdParser.new(ARGV) do # Commands ######################################################################## command :create, 'Registers an Image', :file do - helper.create_resource(args[0], options) + helper.create_resource(options) do |image| + template=File.read(args[0]) + image.allocate(template) + end end command :show, 'Gets info from an Image', :imageid, :options=>OpenNebulaHelper::XML do diff --git a/src/cli/onevm b/src/cli/onevm index 0c0ec7a9e0..996b33126e 100755 --- a/src/cli/onevm +++ b/src/cli/onevm @@ -66,7 +66,10 @@ cmd=CommandParser::CmdParser.new(ARGV) do end command :create, 'Create a new Virtual Machine', :file do - helper.create_resource(args.shift, options) + helper.create_resource(options) do |vm| + template=File.read(args[0]) + vm.allocate(template) + end end command :delete, 'Removes a Virtual Machine', [:range, :vmid_list] do diff --git a/src/cli/onevnet b/src/cli/onevnet index 596186e934..b6b2e92f3b 100755 --- a/src/cli/onevnet +++ b/src/cli/onevnet @@ -60,7 +60,10 @@ cmd=CommandParser::CmdParser.new(ARGV) do # Commands ######################################################################## command :create, 'Create a new Virtual Network', :file do - helper.create_resource(args[0], options) + helper.create_resource(options) do |vn| + template=File.read(args[0]) + vn.allocate(template) + end end command :show, 'Gets info from a Virtual Network', :vnetid,