mirror of
https://github.com/OpenNebula/one.git
synced 2026-11-09 22:14:13 +09:00
Feature #2124: Template append action in CLI
This commit is contained in:
1 parent
d1e6b4acb2
commit
7df46bb3b0
9 files changed
+102
-38
No files matched your search
+24
-7
@@ -67,6 +67,13 @@ EOT
|
||||
:description => "Describe list columns"
|
||||
}
|
||||
|
||||
APPEND = {
|
||||
:name => "append",
|
||||
:short => "-a",
|
||||
:large => "--append",
|
||||
:description => "Append new attributes to the current template"
|
||||
}
|
||||
|
||||
# Command line VM template options
|
||||
TEMPLATE_NAME_VM={
|
||||
:name => 'name',
|
||||
@@ -655,22 +662,32 @@ EOT
|
||||
end
|
||||
|
||||
def OpenNebulaHelper.update_template(id, resource, path=nil, xpath='TEMPLATE')
|
||||
return update_template_helper(false, id, resource, path=nil, xpath='TEMPLATE')
|
||||
end
|
||||
|
||||
def OpenNebulaHelper.append_template(id, resource, path=nil, xpath='TEMPLATE')
|
||||
return update_template_helper(true, id, resource, path=nil, xpath='TEMPLATE')
|
||||
end
|
||||
|
||||
def OpenNebulaHelper.update_template_helper(append, id, resource, path=nil, xpath='TEMPLATE')
|
||||
unless path
|
||||
require 'tempfile'
|
||||
|
||||
tmp = Tempfile.new(id.to_s)
|
||||
path = tmp.path
|
||||
|
||||
rc = resource.info
|
||||
if !append
|
||||
rc = resource.info
|
||||
|
||||
if OpenNebula.is_error?(rc)
|
||||
puts rc.message
|
||||
exit -1
|
||||
if OpenNebula.is_error?(rc)
|
||||
puts rc.message
|
||||
exit -1
|
||||
end
|
||||
|
||||
tmp << resource.template_like_str(xpath)
|
||||
tmp.flush
|
||||
end
|
||||
|
||||
tmp << resource.template_like_str(xpath)
|
||||
tmp.flush
|
||||
|
||||
editor_path = ENV["EDITOR"] ? ENV["EDITOR"] : EDITOR_PATH
|
||||
system("#{editor_path} #{path}")
|
||||
|
||||
|
||||
+9
-3
@@ -185,10 +185,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :clusterid, [:file, nil] do
|
||||
command :update, update_desc, :clusterid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
obj.update(str)
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -162,10 +162,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :datastoreid, [:file, nil] do
|
||||
command :update, update_desc, :datastoreid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
obj.update(str)
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
end
|
||||
+10
-4
@@ -148,10 +148,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :hostid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"updated") do |host|
|
||||
str = OpenNebulaHelper.update_template(args[0], host, args[1])
|
||||
host.update(str)
|
||||
command :update, update_desc, :hostid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"updated") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+10
-4
@@ -212,10 +212,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :imageid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"modified") do |image|
|
||||
str = OpenNebulaHelper.update_template(args[0], image, args[1])
|
||||
image.update(str)
|
||||
command :update, update_desc, :imageid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+10
-4
@@ -259,10 +259,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :templateid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"modified") do |template|
|
||||
str = OpenNebulaHelper.update_template(args[0], template, args[1])
|
||||
template.update(str)
|
||||
command :update, update_desc, :templateid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+10
-4
@@ -192,10 +192,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :userid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"modified") do |user|
|
||||
str = OpenNebulaHelper.update_template(args[0], user, args[1])
|
||||
user.update(str)
|
||||
command :update, update_desc, :userid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+10
-5
@@ -208,11 +208,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
editor will be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :vmid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"modified") do |vm|
|
||||
str = OpenNebulaHelper.update_template(args[0], vm, args[1],
|
||||
'USER_TEMPLATE')
|
||||
vm.update(str)
|
||||
command :update, update_desc, :vmid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1], 'USER_TEMPLATE')
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1], 'USER_TEMPLATE')
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+10
-4
@@ -199,10 +199,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
||||
be launched to modify the current content.
|
||||
EOT
|
||||
|
||||
command :update, update_desc, :vnetid, [:file, nil] do
|
||||
helper.perform_action(args[0],options,"modified") do |vnet|
|
||||
str = OpenNebulaHelper.update_template(args[0], vnet, args[1])
|
||||
vnet.update(str)
|
||||
command :update, update_desc, :vnetid, [:file, nil],
|
||||
:options=>OpenNebulaHelper::APPEND do
|
||||
helper.perform_action(args[0],options,"modified") do |obj|
|
||||
if options[:append]
|
||||
str = OpenNebulaHelper.append_template(args[0], obj, args[1])
|
||||
else
|
||||
str = OpenNebulaHelper.update_template(args[0], obj, args[1])
|
||||
end
|
||||
|
||||
obj.update(str, options[:append])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in new issue
Block a user