1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

feature #661: Add name_to_id

This commit is contained in:
Daniel Molina 2011-06-14 15:15:11 +02:00
parent eb0b1f518b
commit 8054196be7
6 changed files with 88 additions and 30 deletions

View File

@ -149,30 +149,14 @@ EOT
########################################################################
# Formatters for arguments
########################################################################
def to_id(name, pool=nil)
def to_id(name)
return 0, name if name.match(/^[0123456789]+$/)
user_flag = -2
pool = pool ? pool : factory_pool(user_flag)
pool = factory_pool(user_flag)
poolname = self.class.rname
rc = pool.info
return -1, rc.message if OpenNebula.is_error?(rc)
objects=pool.select {|object| object.name==name }
if objects.length>0
if objects.length>1
rname = Object.const_get(self.class.name)::RESOURCE
return -1, "There are multiple #{rname}s with name #{name}."
else
result = objects.first.id
end
else
rname=Object.const_get(self.class.name)::RESOURCE
return -1, "#{rname} named #{name} not found."
end
return 0, result
id_to_name(name, pool, poolname)
end
def self.to_id_desc
@ -241,6 +225,25 @@ EOT
private
def self.id_to_name(name, pool, ename)
rc = pool.info
return -1, rc.message if OpenNebula.is_error?(rc)
objects=pool.select {|object| object.name==name }
if objects.length>0
if objects.length>1
return -1, "There are multiple #{ename}s with name #{name}."
else
result = objects.first.id
end
else
return -1, "#{ename} named #{name} not found."
end
return 0, result
end
def retrieve_resource(id)
resource = factory(id)
@ -277,6 +280,21 @@ EOT
end
end
def OpenNebulaHelper.name_to_id(name, poolname, user_flag=-2)
client = OpenNebula::Client.new
# TBD user_flag
pool = case poolname
when "HOST" then OpenNebula::HostPool.new(client)
when "GROUP" then OpenNebula::GroupPool.new(client)
when "USER" then OpenNebula::UserPool.new(client)
end
OneHelper.id_to_name(name, pool, poolname)
end
def OpenNebulaHelper.name_to_id_desc(poolname)
"OpenNebula #{poolname} name or id"
end
def OpenNebulaHelper.public_to_str(str)
if str.to_i == 1
public_str = "Y"

View File

@ -48,6 +48,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.name_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.name_to_id(arg, "GROUP")
end
set :format, :userid, OpenNebulaHelper.name_to_id_desc("USER") do |arg|
OpenNebulaHelper.name_to_id(arg, "USER")
end
set :format, :imageid, OneImageHelper.to_id_desc do |arg|
helper.to_id(arg)
end
@ -63,13 +71,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Commands
########################################################################
command :chgrp, 'Changes the Image group',[:range, :imageid_list], :text do
command :chgrp, 'Changes the Image group',[:range, :imageid_list], :groupid do
helper.perform_actions(args[0],options,"User/Group changed") do |image|
image.chown(-1, args[1].to_i)
end
end
command :chown, 'Changes the Image owner and group', [:range, :imageid_list], :text, [:text,nil] do
command :chown, 'Changes the Image owner and group', [:range, :imageid_list], :userid, [:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_id
helper.perform_actions(args[0],options,"Group changed") do |image|
image.chown(args[1].to_i, gid)

View File

@ -48,6 +48,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.name_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.name_to_id(arg, "GROUP")
end
set :format, :userid, OpenNebulaHelper.name_to_id_desc("USER") do |arg|
OpenNebulaHelper.name_to_id(arg, "USER")
end
set :format, :templateid, OneTemplateHelper.to_id_desc do |arg|
helper.to_id(arg)
end
@ -63,13 +71,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Commands
########################################################################
command :chgrp, 'Changes the Template group',[:range, :templateid_list], :text do
command :chgrp, 'Changes the Template group',[:range, :templateid_list], :groupid do
helper.perform_actions(args[0],options,"User/Group changed") do |t|
t.chown(-1, args[1].to_i)
end
end
command :chown, 'Changes the Template owner and group', [:range, :templateid_list], :text, [:text,nil] do
command :chown, 'Changes the Template owner and group', [:range, :templateid_list], :userid, [:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_id
helper.perform_actions(args[0],options,"Group changed") do |t|
t.chown(args[1].to_i, gid)

View File

@ -64,6 +64,10 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.name_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.name_to_id(arg, "GROUP")
end
set :format, :userid, OneUserHelper.to_id_desc do |arg|
helper.to_id(arg)
end
@ -83,7 +87,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Commands
########################################################################
command :chgrp, 'Changes the User group',[:range, :userid_list], :text do
command :chgrp, 'Changes the User group',[:range, :userid_list], :groupid do
helper.perform_actions(args[0],options,"User/Group changed") do |user|
user.chown(-1, args[1].to_i)
end

View File

@ -44,6 +44,18 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :hostid, OpenNebulaHelper.name_to_id_desc("HOST") do |arg|
OpenNebulaHelper.name_to_id(arg, "HOST")
end
set :format, :groupid, OpenNebulaHelper.name_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.name_to_id(arg, "GROUP")
end
set :format, :userid, OpenNebulaHelper.name_to_id_desc("USER") do |arg|
OpenNebulaHelper.name_to_id(arg, "USER")
end
set :format, :vmid, OneVMHelper.to_id_desc do |arg|
helper.to_id(arg)
end
@ -65,13 +77,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
end
command :chgrp, 'Changes the Virtual Machine group',[:range, :vmid_list], :text do
command :chgrp, 'Changes the Virtual Machine group',[:range, :vmid_list], :groupid do
helper.perform_actions(args[0],options,"User/Group changed") do |vm|
vm.chown(-1, args[1].to_i)
end
end
command :chown, 'Changes the Virtual Machine owner and group', [:range, :vmid_list], :text, [:text,nil] do
command :chown, 'Changes the Virtual Machine owner and group', [:range, :vmid_list], :userid, [:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_id
helper.perform_actions(args[0],options,"Group changed") do |vm|
vm.chown(args[1].to_i, gid)
@ -92,7 +104,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
# TBD hostid instead of text in the second argument
command :deploy, 'Deploy a Virtual Machine', [:range,:vmid_list], :text do
command :deploy, 'Deploy a Virtual Machine', [:range,:vmid_list], :hostid do
host_id = args[1]
verbose = "deploying in host #{host_id}"

View File

@ -44,6 +44,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.name_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.name_to_id(arg, "GROUP")
end
set :format, :userid, OpenNebulaHelper.name_to_id_desc("USER") do |arg|
OpenNebulaHelper.name_to_id(arg, "USER")
end
set :format, :vnetid, OneVNetHelper.to_id_desc do |arg|
helper.to_id(arg)
end
@ -66,13 +74,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
end
command :chgrp, 'Changes the Virtual Network group',[:range, :vnid_list], :text do
command :chgrp, 'Changes the Virtual Network group',[:range, :vnid_list], :groupid do
helper.perform_actions(args[0],options,"User/Group changed") do |vn|
vn.chown(-1, args[1].to_i)
end
end
command :chown, 'Changes the Virtual Network owner and group', [:range, :vnid_list], :text, [:text,nil] do
command :chown, 'Changes the Virtual Network owner and group', [:range, :vnid_list], :userid, [:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_id
helper.perform_actions(args[0],options,"Group changed") do |vn|
vn.chown(args[1].to_i, gid)