1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-19 06:50:07 +03:00

Ruby code formatting: CLI Part II

This commit is contained in:
Tino Vazquez 2018-10-26 19:05:22 +02:00
parent 6455fe784d
commit 102a7e132d
7 changed files with 856 additions and 752 deletions

View File

@ -16,16 +16,16 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
require 'command_parser'
require 'one_helper/oneuser_helper'
@ -33,8 +33,8 @@ require 'one_helper/onequota_helper'
require 'uri'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`oneuser` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`oneuser` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneUserHelper.new
@ -43,7 +43,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
if ![:key].include?(@comm_name)
begin
helper.set_client(options)
rescue Exception => e
rescue StandardError => e
STDERR.puts e.message
if e.message != OpenNebula::Client::NO_ONE_AUTH_ERROR
@ -58,149 +58,149 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
list_options = CLIHelper::OPTIONS
list_options << OpenNebulaHelper::XML
list_options << OpenNebulaHelper::NUMERIC
list_options << OpenNebulaHelper::DESCRIBE
READ_FILE={
:name => "read_file",
:short => "-r",
:large => "--read-file",
:description => "Read password from file"
READ_FILE = {
:name => 'read_file',
:short => '-r',
:large => '--read-file',
:description => 'Read password from file'
}
SHA1={
:name => "sha1",
:large => "--sha1",
:description => "The password will be hashed using the sha1\n"<<
" "*31<<"algorithm"
SHA1 = {
:name => 'sha1',
:large => '--sha1',
:description => "The password will be hashed using the sha1\n" \
' ' * 31 << 'algorithm'
}
SSH={
:name => "ssh",
:large => "--ssh",
:description => "SSH Auth system",
:proc => lambda { |o, options|
SSH = {
:name => 'ssh',
:large => '--ssh',
:description => 'SSH Auth system',
:proc => lambda {|_, options|
options[:driver] = OpenNebula::User::SSH_AUTH
}
}
X509={
:name => "x509",
:large => "--x509",
:description => "x509 Auth system for x509 certificates",
:proc => lambda { |o, options|
X509 = {
:name => 'x509',
:large => '--x509',
:description => 'x509 Auth system for x509 certificates',
:proc => lambda {|_, options|
options[:driver] = OpenNebula::User::X509_AUTH
}
}
X509_PROXY={
:name => "x509_proxy",
:large => "--x509_proxy",
:description => "x509 Auth system based on x509 proxy certificates",
:proc => lambda { |o, options|
X509_PROXY = {
:name => 'x509_proxy',
:large => '--x509_proxy',
:description => 'x509 Auth system based on x509 proxy certificates',
:proc => lambda {|_, options|
options[:driver] = OpenNebula::User::X509_PROXY_AUTH
}
}
KEY={
:name => "key",
:short => "-k path_to_private_key_pem",
:large => "--key path_to_private_key_pem",
KEY = {
:name => 'key',
:short => '-k path_to_private_key_pem',
:large => '--key path_to_private_key_pem',
:format => String,
:description => "Path to the Private Key of the User"
:description => 'Path to the Private Key of the User'
}
CERT={
:name => "cert",
:short => "-c path_to_user_cert_pem",
:large => "--cert path_to_user_cert_pem",
CERT = {
:name => 'cert',
:short => '-c path_to_user_cert_pem',
:large => '--cert path_to_user_cert_pem',
:format => String,
:description => "Path to the Certificate of the User"
:description => 'Path to the Certificate of the User'
}
PROXY={
:name => "proxy",
:large => "--proxy path_to_user_proxy_pem",
PROXY = {
:name => 'proxy',
:large => '--proxy path_to_user_proxy_pem',
:format => String,
:description => "Path to the user proxy certificate"
:description => 'Path to the user proxy certificate'
}
TIME={
:name => "time",
:large => "--time x",
TIME = {
:name => 'time',
:large => '--time x',
:format => Integer,
:description => "Token duration in seconds, defaults to 36000 (10 h). "\
"To reset the token set time to 0." \
"To generate a non-expiring token use -1"\
" (not valid for ssh and x509 tokens). "\
:description => 'Token duration in seconds, defaults to 36000 (10 h). '\
'To reset the token set time to 0.' \
'To generate a non-expiring token use -1'\
' (not valid for ssh and x509 tokens). '\
}
DRIVER={
:name => "driver",
:large => "--driver driver",
DRIVER = {
:name => 'driver',
:large => '--driver driver',
:format => String,
:description => "Driver to authenticate this user"
:description => 'Driver to authenticate this user'
}
FORCE = {
:name => "force",
:large => "--force" ,
:description => "Force one_auth file rewrite"
:name => 'force',
:large => '--force',
:description => 'Force one_auth file rewrite'
}
TOKEN = {
:name => "token",
:large => "--token token_hint",
:name => 'token',
:large => '--token token_hint',
:format => String,
:description => "The Token to be loaded."
:description => 'The Token to be loaded.'
}
GROUP = {
:name => "group",
:large => "--group id|name" ,
:description => "Effective GID to use with this token.",
:name => 'group',
:large => '--group id|name',
:description => 'Effective GID to use with this token.',
:format => String,
:proc => lambda { |o, options|
OpenNebulaHelper.rname_to_id(o, "GROUP")
:proc => lambda {|o, _|
OpenNebulaHelper.rname_to_id(o, 'GROUP')
}
}
GROUP_CREATE = {
:name => "group",
:large => "--group id|name" ,
:description => "Comma-separated list of Groups for the new User. "\
"The first Group will be the main one.",
:name => 'group',
:large => '--group id|name',
:description => 'Comma-separated list of Groups for the new User. '\
'The first Group will be the main one.',
:format => String,
:proc => lambda { |o, options|
gids = o.split(",").map { |g|
id = OpenNebulaHelper.rname_to_id(g, "GROUP")
:proc => lambda {|o, _|
gids = o.split(',').map do |g|
id = OpenNebulaHelper.rname_to_id(g, 'GROUP')
if (id[0] == -1)
if id[0] == -1
puts id[1]
exit -1
exit(-1)
end
id[1]
}
end
[0, gids]
}
}
GLOBAL = {
:name => "global",
:large => "--global" ,
:description => "Find a global Token."
:name => 'global',
:large => '--global',
:description => 'Find a global Token.'
}
STDIN_PASSWORD = {
:name => "stdin_password",
:large => "--stdin_password",
:description => "enable stdin password"
:name => 'stdin_password',
:large => '--stdin_password',
:description => 'enable stdin password'
}
auth_options = [READ_FILE, SHA1, SSH, X509, KEY, CERT, DRIVER]
@ -223,8 +223,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.rname_to_id(arg, "GROUP")
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc('GROUP') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'GROUP')
end
set :format, :userid, OneUserHelper.to_id_desc do |arg|
@ -255,15 +255,15 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :create, create_desc, :username, [:password, nil],
:options=>create_options do
:options => create_options do
if args[1]
pass = args[1]
else
rc = helper.password(options)
if rc.first == 0
if rc.first.zero?
pass = rc[1]
else
exit_with_code *rc
exit_with_code(*rc)
end
end
@ -282,8 +282,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :update, update_desc, :userid, [:file, nil],
:options=>OpenNebulaHelper::APPEND do
helper.perform_action(args[0],options,"modified") do |obj|
: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
@ -303,12 +303,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :quota, quota_desc, :userid, [:file, nil] do
helper.perform_action(args[0], options, "modified") do |user|
helper.perform_action(args[0], options, 'modified') do |user|
rc = user.info
if OpenNebula.is_error?(rc)
puts rc.message
exit -1
exit(-1)
end
str = OneQuotaHelper.set_quota(user, args[1])
@ -316,11 +316,11 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.set_client(options)
user = helper.retrieve_resource(user.id)
rc = user.set_quota(str)
rc = user.set_quota(str)
if OpenNebula.is_error?(rc)
puts rc.message
exit -1
exit(-1)
end
end
end
@ -334,8 +334,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
[:file, nil] do
batch_str = OneQuotaHelper.get_batch_quota(args[1])
helper.set_client(options)
helper.perform_actions(args[0], options, "modified") do |user|
helper.set_client(options)
helper.perform_actions(args[0], options, 'modified') do |user|
str = OneQuotaHelper.merge_quota(user, batch_str)
if OpenNebula.is_error?(str)
@ -354,7 +354,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
command :defaultquota, defaultquota_desc, [:file, nil] do
system = System.new(OneUserHelper.get_client(options))
default_quotas = system.get_user_quotas()
default_quotas = system.get_user_quotas
if OpenNebula.is_error?(default_quotas)
puts default_quotas.message
@ -364,7 +364,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
str = OneQuotaHelper.set_quota(default_quotas, args[0], true)
system = System.new(OneUserHelper.get_client(options, true))
rc = system.set_user_quotas(str)
rc = system.set_user_quotas(str)
if OpenNebula.is_error?(rc)
puts rc.message
@ -385,21 +385,21 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :umask, umask_desc, [:range, :userid_list], [:mask, nil] do
helper.perform_actions(args[0],options,
"umask changed") do |user|
helper.perform_actions(args[0], options,
'umask changed') do |user|
rc = user.info
if OpenNebula.is_error?(rc)
puts rc.message
exit -1
exit(-1)
end
user.delete_element('/USER/TEMPLATE/UMASK')
tmp_str = user.template_str
if !args[1].nil? && args[1] != ""
if !args[1].nil? && args[1] != ''
tmp_str << "\nUMASK = #{args[1]}"
end
@ -411,7 +411,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Alias of token-create.
EOT
command :login, login_desc, [:username, nil], :options=>login_options do
command :login, login_desc, [:username, nil], :options => login_options do
helper.token_create(args, options)
end
@ -420,15 +420,15 @@ cmd=CommandParser::CmdParser.new(ARGV) do
for the SSH authentication mechanism.
EOT
command :key, key_desc, :options=>[KEY] do
command :key, key_desc, :options => [KEY] do
require 'opennebula/ssh_auth'
options[:key] ||= ENV['HOME']+'/.ssh/id_rsa'
options[:key] ||= ENV['HOME'] + '/.ssh/id_rsa'
begin
sshauth = SshAuth.new(:private_key=>options[:key])
rescue Exception => e
exit_with_code -1, e.message
sshauth = SshAuth.new(:private_key => options[:key])
rescue StandardError => e
exit_with_code(-1, e.message)
end
puts sshauth.password
@ -440,7 +440,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :delete, delete_desc, [:range, :userid_list] do
helper.perform_actions(args[0], options, "deleted") do |user|
helper.perform_actions(args[0], options, 'deleted') do |user|
user.delete
end
end
@ -450,19 +450,19 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :passwd, passwd_desc, [:userid], [:password, nil],
:options=>auth_options do
:options => auth_options do
if args[1]
pass = args[1]
else
rc = helper.password(options)
if rc.first == 0
if rc.first.zero?
pass = rc[1]
else
exit_with_code *rc
exit_with_code(*rc)
end
end
helper.perform_action(args[0],options,"Password changed") do |user|
helper.perform_action(args[0], options, 'Password changed') do |user|
user.passwd(pass)
end
end
@ -472,7 +472,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chgrp, chgrp_desc, [:range, :userid_list], :groupid do
helper.perform_actions(args[0],options,"Group changed") do |user|
helper.perform_actions(args[0], options, 'Group changed') do |user|
user.chgrp(args[1].to_i)
end
end
@ -484,8 +484,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
command :addgroup, addgroup_desc, [:range, :userid_list], :groupid do
gid = args[1]
helper.perform_actions(args[0],options,"group added") do |user|
user.addgroup( gid )
helper.perform_actions(args[0], options, 'group added') do |user|
user.addgroup(gid)
end
end
@ -496,8 +496,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
command :delgroup, delgroup_desc, [:range, :userid_list], :groupid do
gid = args[1]
helper.perform_actions(args[0],options,"group deleted") do |user|
user.delgroup( gid )
helper.perform_actions(args[0], options, 'group deleted') do |user|
user.delgroup(gid)
end
end
@ -513,29 +513,29 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chauth, chauth_desc, :userid, [:auth, nil], [:password, nil],
:options=>auth_options do
:options => auth_options do
if options[:driver]
driver = options[:driver]
elsif args[1]
driver = args[1]
else
exit_with_code 0, "An Auth driver should be specified"
exit_with_code 0, 'An Auth driver should be specified'
end
if args[2]
pass = args[2]
else
rc = helper.password(options)
if rc.first == 0
if rc.first.zero?
pass = rc[1]
else
pass = ""
pass = ''
end
end
helper.perform_action(args[0],
options,
"Auth driver and password changed") do |user|
options,
'Auth driver and password changed') do |user|
user.chauth(driver, pass)
end
end
@ -544,7 +544,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Lists Users in the pool
EOT
command :list, list_desc, :options=>list_options do
command :list, list_desc, :options => list_options do
helper.list_pool(options)
end
@ -553,9 +553,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :show, show_desc, [:userid, nil],
:options=>OpenNebulaHelper::XML do
user=args[0] || OpenNebula::User::SELF
helper.show_resource(user,options)
:options => OpenNebulaHelper::XML do
user = args[0] || OpenNebula::User::SELF
helper.show_resource(user, options)
end
show_desc = <<-EOT.unindent
@ -563,15 +563,15 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :encode, show_desc, :username, [:password, nil] do
ar=args.compact
ar = args.compact
if defined?(URI::Parser)
parser=URI::Parser.new
parser = URI::DEFAULT_PARSER
else
parser=URI
parser = URI
end
puts ar.map{|a| parser.escape(a) }.join(':')
puts ar.map {|a| parser.escape(a) }.join(':')
0
end
@ -582,9 +582,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :passwdsearch, passwdsearch_desc, :driver, :password,
:options=>[CLIHelper::CSV_OPT, OpenNebulaHelper::XML] do
:options => [CLIHelper::CSV_OPT, OpenNebulaHelper::XML] do
options[:list] = ["ID", "NAME", "AUTH", "PASSWORD"]
options[:list] = %w[ID NAME AUTH PASSWORD]
options[:filter] = ["AUTH=#{args[0]}", "PASSWORD=#{args[1]}"]
helper.list_pool(options)
@ -618,7 +618,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"token-create", token_add_desc, [:username, nil],
:options=>login_options do
:options => login_options do
helper.token_create(args, options)
end
@ -648,13 +648,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"token-set", token_set_desc, [:username, nil],
:options=>login_options+set_options do
:options => login_options + set_options do
username = args[0]
if username
if username =~ /^\d+$/
exit_with_code 1, "The argument should be the username, not the ID."
exit_with_code(
1,
'The argument should be the username, not the ID.'
)
end
helper.client = helper.get_login_client(username, options)
@ -679,14 +682,17 @@ cmd=CommandParser::CmdParser.new(ARGV) do
token_hint = nil
group = -1
else
exit_with_code 1, "One of these options must be supplied:\n" <<
"[--token <token>] [--group <id|group>] [--global]"
exit_with_code(
1,
"One of these options must be supplied:\n" \
'[--token <token>] [--group <id|group>] [--global]'
)
end
tokens = helper.find_token(user, token_hint, group, false)
if tokens.length == 0
exit_with_code 1, "No valid tokens found."
if tokens.length.zero?
exit_with_code 1, 'No valid tokens found.'
end
if token_hint && tokens.length > 1
@ -694,25 +700,27 @@ cmd=CommandParser::CmdParser.new(ARGV) do
exit_with_code 1, msg
end
token = tokens[0]["TOKEN"]
token = tokens[0]['TOKEN']
egid = user["LOGIN_TOKEN[TOKEN='#{token}']/EGID"]
auth_string = "#{user['NAME']}:#{token}"
auth_file = helper.auth_file(auth_string)
# rubocop:disable HandleExceptions
begin
FileUtils.mkdir_p(File.dirname(auth_file))
rescue Errno::EEXIST
end
# rubocop:enable HandleExceptions
file = File.open(auth_file, "w")
file = File.open(auth_file, 'w')
file.write(auth_string)
file.close
File.chmod(0600, auth_file)
File.chmod(0o0600, auth_file)
msg ="export ONE_AUTH=" + auth_file
msg = 'export ONE_AUTH=' + auth_file
msg << "; export ONE_EGID=#{egid}" if egid
exit_with_code 0, msg
@ -723,7 +731,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"token-delete", token_delete_desc, [:username, nil], :token,
:options=>login_options do
:options => login_options do
if args.length == 1
token_hint = args[0]
@ -746,12 +754,15 @@ cmd=CommandParser::CmdParser.new(ARGV) do
token = helper.find_token(user, token_hint, nil, true)
if token.count > 1
exit_with_code 1, "More than one token starting with '#{token_hint}' found."
elsif token.count == 0
exit_with_code 1, "No tokens found."
exit_with_code(
1,
"More than one token starting with '#{token_hint}' found."
)
elsif token.count.zero?
exit_with_code 1, 'No tokens found.'
end
token = token[0]["TOKEN"]
token = token[0]['TOKEN']
rc = user.login(user['NAME'], token, 0)
@ -759,17 +770,19 @@ cmd=CommandParser::CmdParser.new(ARGV) do
puts rc.message
exit_with_code 1, rc.message
else
puts "Token removed."
puts 'Token removed.'
end
auth_string = "#{user['NAME']}:#{token}"
auth_file = helper.auth_file(auth_string)
# rubocop:disable HandleExceptions
begin
File.unlink(auth_file)
puts "Removing #{auth_file}"
rescue Errno::ENOENT
end
# rubocop:enable HandleExceptions
0
end
@ -780,16 +793,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"token-delete-all", token_delete_all, :username,
:options=>login_options do
:options => login_options do
username = args[0]
if username =~ /^\d+$/
exit_with_code 1, "The argument should be the username, not the ID."
exit_with_code 1, 'The argument should be the username, not the ID.'
end
helper.perform_action(username, options, "Tokens expired") do |user|
user.login(username, "", 0)
helper.perform_action(username, options, 'Tokens expired') do |user|
user.login(username, '', 0)
end
end
end

View File

@ -16,27 +16,26 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
REMOTES_LOCATION="/var/lib/one/remotes/"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
REMOTES_LOCATION = '/var/lib/one/remotes/'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
REMOTES_LOCATION=ONE_LOCATION+"/var/remotes/"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
REMOTES_LOCATION = ONE_LOCATION + '/var/remotes/'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$: << REMOTES_LOCATION+"vmm/vcenter/"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
$LOAD_PATH << REMOTES_LOCATION + 'vmm/vcenter/'
require 'command_parser'
require 'one_helper/onevcenter_helper'
require 'vcenter_driver'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onevcenter` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`onevcenter` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneVcenterHelper.new
@ -45,83 +44,78 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.set_client(options)
end
OBJECT = {
:name => "object",
:short => "-o object",
:large => "--object object ",
:name => 'object',
:short => '-o object',
:large => '--object object ',
:format => String,
:description => "vCenter object: [datastores, templates, networks, datastores, images]"
:description => 'vCenter object: [datastores, templates,'\
'networks, datastores, images]'
}
HOST = {
:name => "host",
:short => "-h host_id",
:large => "--host host_id",
:name => 'host',
:short => '-h host_id',
:large => '--host host_id',
:format => String,
:description => "OpenNebula host used to authenticate the operation"
:description => 'OpenNebula host used to authenticate the operation'
}
DATASTORE = {
:name => "datastore",
:short => "-d datastore_id",
:large => "--datastore datastore_id",
:name => 'datastore',
:short => '-d datastore_id',
:large => '--datastore datastore_id',
:format => String,
:description => "OpenNebula datastore used"
:description => 'OpenNebula datastore used'
}
CONFIG = {
:name => "configuration",
:large => "--config file",
:name => 'configuration',
:large => '--config file',
:format => String,
:description => "Configuration file for custom options"
:description => 'Configuration file for custom options'
}
VCENTER = {
:name => "vcenter",
:large => "--vcenter vCenter" ,
:description => "The vCenter hostname",
:name => 'vcenter',
:large => '--vcenter vCenter',
:description => 'The vCenter hostname',
:format => String
}
USER = {
:name => "vuser",
:large => "--vuser username" ,
:description => "The username to interact with vCenter",
:name => 'vuser',
:large => '--vuser username',
:description => 'The username to interact with vCenter',
:format => String
}
PASS = {
:name => "vpass",
:large => "--vpass password",
:description => "The password for the user",
:name => 'vpass',
:large => '--vpass password',
:description => 'The password for the user',
:format => String
}
USE_DEFAULTS = {
:name => "defaults",
:large => "--use-defaults",
:description => "Use defaults for answers to questions",
:name => 'defaults',
:large => '--use-defaults',
:description => 'Use defaults for answers to questions',
:format => String
}
ALL = {
:name => "all",
:large => "--all",
:description => "Import all list",
:name => 'all',
:large => '--all',
:description => 'Import all list',
:format => String
}
############################################################################
# Global Options
############################################################################
cmd_options=CommandParser::OPTIONS-[CommandParser::VERBOSE]
set :option, cmd_options+OpenNebulaHelper::CLIENT_OPTIONS
#format :oid, "vCenter Object identifier" do |arg|
# puts arg
#end
cmd_options = CommandParser::OPTIONS - [CommandParser::VERBOSE]
set :option, cmd_options + OpenNebulaHelper::CLIENT_OPTIONS
############################################################################
# list resources
@ -138,16 +132,20 @@ cmd=CommandParser::CmdParser.new(ARGV) do
onevcenter list -o datastores -h <host_id> -d <ds-img_id>
EOT
command :list, list_desc, :options=>[ OBJECT, HOST, DATASTORE, VCENTER, USER, PASS ] do
command :list,
list_desc,
:options => [OBJECT, HOST, DATASTORE, VCENTER, USER, PASS] do
begin
args = helper.parse_opts(options)
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
importer = VCenterDriver::VcImporter.new_child(helper.client, vi_client, options[:object])
importer = VCenterDriver::VcImporter
.new_child(helper.client, vi_client, options[:object])
list = importer.retrieve_resources(args)
helper.list_object(options, list)
rescue Exception => e
rescue StandardError => e
puts e.message
end
@ -171,11 +169,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
onevcenter import 0..10 -o images -h <host_id> -d <ds-img_id>
EOT
command :import, import_desc, [:oid, nil], :options=>[ OBJECT, HOST, DATASTORE ] do
command :import,
import_desc, [:oid, nil],
:options => [OBJECT, HOST, DATASTORE] do
begin
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
importer = VCenterDriver::VcImporter.new_child(helper.client, vi_client, options[:object])
importer = VCenterDriver::VcImporter.new_child(helper.client,
vi_client,
options[:object])
importer.retrieve_resources(helper.parse_opts(options))
indexes = importer.get_indexes(args.first)
@ -185,25 +186,29 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
importer.stdout
rescue Exception => e
rescue StandardError => e
puts e.message
end
exit 0
end
command :import_defaults, import_desc, [:oid, nil] , :options=>[ OBJECT, HOST, DATASTORE, CONFIG ] do
command :import_defaults,
import_desc,
[:oid, nil],
:options => [OBJECT, HOST, DATASTORE, CONFIG] do
begin
vi_client = VCenterDriver::VIClient.new_from_host(options[:host])
importer = VCenterDriver::VcImporter.new_child(helper.client, vi_client, options[:object])
importer = VCenterDriver::VcImporter.new_child(helper.client,
vi_client,
options[:object])
importer.retrieve_resources(helper.parse_opts(options))
indexes = importer.get_indexes(args.first)
importer.process_import(indexes)
importer.stdout
rescue Exception => e
rescue StandardError => e
puts e.message
end
@ -221,12 +226,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
onevcenter hosts --vcenter <vcenter> --vuser <vcenter_user> --vpass <password>
EOT
command :hosts, host_desc, :options=>[ VCENTER, USER, PASS, USE_DEFAULTS ] do
con_ops = helper.connection_options("Hosts", options)
command :hosts,
host_desc,
:options => [VCENTER, USER, PASS, USE_DEFAULTS] do
con_ops = helper.connection_options('Hosts', options)
VCenterDriver::VcImporter.import_clusters(con_ops, options)
exit 0
end
end

File diff suppressed because it is too large Load Diff

View File

@ -16,22 +16,22 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
require 'command_parser'
require 'one_helper/onevmgroup_helper'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onevmgroup` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`onevmgroup` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneVMGroupHelper.new
@ -40,34 +40,34 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.set_client(options)
end
USE={
:name => "use",
:large => "--use",
:description => "lock use actions"
USE = {
:name => 'use',
:large => '--use',
:description => 'lock use actions'
}
MANAGE={
:name => "manage",
:large => "--manage",
:description => "lock manage actions"
MANAGE = {
:name => 'manage',
:large => '--manage',
:description => 'lock manage actions'
}
ADMIN={
:name => "admin",
:large => "--admin",
:description => "lock admin actions"
ADMIN = {
:name => 'admin',
:large => '--admin',
:description => 'lock admin actions'
}
ALL={
:name => "all",
:large => "--all",
:description => "lock all actions"
ALL = {
:name => 'all',
:large => '--all',
:description => 'lock all actions'
}
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
list_options = CLIHelper::OPTIONS
list_options << OpenNebulaHelper::XML
@ -77,12 +77,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.rname_to_id(arg, "GROUP")
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc('GROUP') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'GROUP')
end
set :format, :userid, OpenNebulaHelper.rname_to_id_desc("USER") do |arg|
OpenNebulaHelper.rname_to_id(arg, "USER")
set :format, :userid, OpenNebulaHelper.rname_to_id_desc('USER') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'USER')
end
set :format, :vmgroupid, OneVMGroupHelper.to_id_desc do |arg|
@ -111,9 +111,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
template = File.read(args[0])
obj.allocate(template)
rescue => e
STDERR.puts e.messsage
exit -1
rescue StandardError => e
STDERR.puts "Error creating VM Group: #{e.messsage}"
exit(-1)
end
end
end
@ -123,7 +123,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :delete, delete_desc, [:range, :vmgroupid_list] do
helper.perform_actions(args[0],options,"deleted") do |obj|
helper.perform_actions(args[0], options, 'deleted') do |obj|
obj.delete
end
end
@ -132,7 +132,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Lists VM Group in the pool
EOT
command :list, list_desc, [:filterflag, nil], :options=>list_options do
command :list, list_desc, [:filterflag, nil], :options => list_options do
helper.list_pool(options, false, args[0])
end
@ -140,16 +140,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Shows information for the given VM Group
EOT
command :show, show_desc, :vmgroupid, :options=>OpenNebulaHelper::XML do
helper.show_resource(args[0],options)
command :show, show_desc, :vmgroupid, :options => OpenNebulaHelper::XML do
helper.show_resource(args[0], options)
end
chgrp_desc = <<-EOT.unindent
Changes the VM Group's group
EOT
command :chgrp, chgrp_desc,[:range, :vmgroupid_list], :groupid do
helper.perform_actions(args[0],options,"Group changed") do |obj|
command :chgrp, chgrp_desc, [:range, :vmgroupid_list], :groupid do
helper.perform_actions(args[0], options, 'Group changed') do |obj|
obj.chown(-1, args[1].to_i)
end
end
@ -159,9 +159,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chown, chown_desc, [:range, :vmgroupid_list], :userid,
[:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_i
helper.perform_actions(args[0],options,"Owner/Group changed") do |obj|
[:groupid, nil] do
args[2].nil? ? gid = -1 : gid = args[2].to_i
helper.perform_actions(args[0], options, 'Owner/Group changed') do |obj|
obj.chown(args[1].to_i, gid)
end
end
@ -171,7 +171,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chmod, chmod_desc, [:range, :vmgroupid_list], :octet do
helper.perform_actions(args[0],options, "Permissions changed") do |t|
helper.perform_actions(args[0], options, 'Permissions changed') do |t|
t.chmod_octet(args[1])
end
end
@ -182,8 +182,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :update, update_desc, :vmgroupid, [:file, nil],
:options=>OpenNebulaHelper::APPEND do
helper.perform_action(args[0],options,"modified") do |obj|
: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
@ -202,7 +202,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rename, rename_desc, :vmgroupid, :name do
helper.perform_action(args[0],options,"renamed") do |o|
helper.perform_action(args[0], options, 'renamed') do |o|
o.rename(args[1])
end
end
@ -218,8 +218,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :lock, lock_desc, :vmgroupid,
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0],options,"VMGroup locked") do |vmg|
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0], options, 'VMGroup locked') do |vmg|
if !options[:use].nil?
level = 1
elsif !options[:manage].nil?
@ -241,7 +241,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :unlock, unlock_desc, :vmgroupid do
helper.perform_action(args[0],options,"VMGroup unlocked") do |vmg|
helper.perform_action(args[0], options, 'VMGroup unlocked') do |vmg|
vmg.unlock
end
end

View File

@ -16,23 +16,23 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
require 'command_parser'
require 'one_helper/onevnet_helper'
require 'one_helper/onecluster_helper'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onevnet` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`onevnet` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneVNetHelper.new
@ -41,34 +41,34 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.set_client(options)
end
USE={
:name => "use",
:large => "--use",
:description => "lock use actions"
USE = {
:name => 'use',
:large => '--use',
:description => 'lock use actions'
}
MANAGE={
:name => "manage",
:large => "--manage",
:description => "lock manage actions"
MANAGE = {
:name => 'manage',
:large => '--manage',
:description => 'lock manage actions'
}
ADMIN={
:name => "admin",
:large => "--admin",
:description => "lock admin actions"
ADMIN = {
:name => 'admin',
:large => '--admin',
:description => 'lock admin actions'
}
ALL={
:name => "all",
:large => "--all",
:description => "lock all actions"
ALL = {
:name => 'all',
:large => '--all',
:description => 'lock all actions'
}
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
CREATE_OPTIONS = [OneClusterHelper::CLUSTER]
STD_OPTIONS = CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
@ -76,12 +76,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.rname_to_id(arg, "GROUP")
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc('GROUP') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'GROUP')
end
set :format, :userid, OpenNebulaHelper.rname_to_id_desc("USER") do |arg|
OpenNebulaHelper.rname_to_id(arg, "USER")
set :format, :userid, OpenNebulaHelper.rname_to_id_desc('USER') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'USER')
end
set :format, :vnetid, OneVNetHelper.to_id_desc do |arg|
@ -96,7 +96,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.filterflag_to_i(arg)
end
set :format, :ar_id, "Integer" do |arg|
set :format, :ar_id, 'Integer' do |arg|
format_int(arg)
end
@ -108,16 +108,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Creates a new Virtual Network from the given template file
EOT
command :create, create_desc, :file, :options=>CREATE_OPTIONS do
command :create, create_desc, :file, :options => CREATE_OPTIONS do
cid = options[:cluster] || ClusterPool::NONE_CLUSTER_ID
helper.create_resource(options) do |vn|
begin
template=File.read(args[0])
template = File.read(args[0])
vn.allocate(template, cid)
rescue => e
STDERR.puts e.message
exit -1
rescue StandardError => e
STDERR.puts "Error creating network: #{e.message}"
exit(-1)
end
end
end
@ -127,7 +127,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :delete, delete_desc, [:range, :vnetid_list] do
helper.perform_actions(args[0],options,"deleted") do |vn|
helper.perform_actions(args[0], options, 'deleted') do |vn|
vn.delete
end
end
@ -138,41 +138,41 @@ cmd=CommandParser::CmdParser.new(ARGV) do
command :addar, addar_desc, :vnetid, [:file, nil],
:options => STD_OPTIONS + OneVNetHelper::ADDAR_OPTIONS do
helper.perform_action(args[0],options,"lease added") do |vn|
helper.perform_action(args[0], options, 'lease added') do |vn|
if args[1]
ar = File.read(args[1])
else
ar = "AR = [ "
ar = 'AR = [ '
if options[:ip]
if options[:ip6_global] || options[:ip6_ula]
ar << "TYPE=\"IP4_6\""
ar << 'TYPE="IP4_6"'
elsif options[:ip6]
ar << "TYPE=\"IP4_6_STATIC\""
ar << 'TYPE="IP4_6_STATIC"'
else
ar << "TYPE=\"IP4\""
ar << 'TYPE="IP4"'
end
elsif options[:ip6]
ar << "TYPE=\"IP6_STATIC\""
ar << 'TYPE="IP6_STATIC"'
elsif options[:ip6_global] || options[:ip6_ula]
ar << "TYPE=\"IP6\""
ar << 'TYPE="IP6"'
else
ar << "TYPE=\"ETHER\""
ar << 'TYPE="ETHER"'
end
if options[:size]
ar << ", SIZE = " << options[:size]
ar << ', SIZE = ' << options[:size]
else
STDERR.puts "Address range needs to specify size (-s size)"
exit -1
STDERR.puts 'Address range needs to specify size (-s size)'
exit(-1)
end
if options[:ip6]
m = /([\h:]*)\/(\d.*)$/.match(options[:ip6])
m = %r{/([\h:]*)\/(\d.*)$/}.match(options[:ip6])
if m.nil? || m[1].nil?
STDERR.puts "Missing or wrong IP6"
exit -1
STDERR.puts 'Missing or wrong IP6'
exit(-1)
else
begin
require 'ipaddr'
@ -180,19 +180,19 @@ cmd=CommandParser::CmdParser.new(ARGV) do
ip = IPAddr.new(m[1])
if !ip.ipv6?
STDERR.puts "Wrong IP6 format address"
exit -1
STDERR.puts 'Wrong IP6 format address'
exit(-1)
end
rescue
STDERR.puts "Wrong IP6 format address"
exit -1
rescue StandardError
STDERR.puts 'Wrong IP6 format address'
exit(-1)
end
end
if m[2].nil?
STDERR.puts "IP6 address need to set the prefix length"
exit -1
STDERR.puts 'IP6 address need to set the prefix length'
exit(-1)
end
ar << ", PREFIX_LENGTH=\"#{m[2]}\""
@ -200,19 +200,21 @@ cmd=CommandParser::CmdParser.new(ARGV) do
options[:ip6] = m[1]
end
ar << ", IP = " << options[:ip] if options[:ip]
ar << ", IP6 = " << options[:ip6] if options[:ip6]
ar << ", MAC = " << options[:mac] if options[:mac]
ar << ", GLOBAL_PREFIX = " <<
options[:ip6_global] if options[:ip6_global]
ar << ", ULA_PREFIX = " <<
options[:ip6_ula] if options[:ip6_ula]
ar << ", GATEWAY = " << options[:gateway] if options[:gateway]
ar << ", MASK = " << options[:netmask] if options[:netmask]
ar << ", VN_MAD = " << options[:vn_mad] if options[:vn_mad]
ar << ", VLAN_ID = " << options[:vlanid] if options[:vlanid]
ar << ', IP = ' << options[:ip] if options[:ip]
ar << ', IP6 = ' << options[:ip6] if options[:ip6]
ar << ', MAC = ' << options[:mac] if options[:mac]
if options[:ip6_global]
ar << ', GLOBAL_PREFIX = ' << options[:ip6_global]
end
if options[:ip6_ula]
ar << ', ULA_PREFIX = ' << options[:ip6_ula]
end
ar << ', GATEWAY = ' << options[:gateway] if options[:gateway]
ar << ', MASK = ' << options[:netmask] if options[:netmask]
ar << ', VN_MAD = ' << options[:vn_mad] if options[:vn_mad]
ar << ', VLAN_ID = ' << options[:vlanid] if options[:vlanid]
ar << "]"
ar << ']'
end
vn.add_ar(ar)
@ -224,7 +226,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :addleases, addleases_desc, :vnetid, :ip, [:mac, nil] do
helper.perform_action(args[0],options,"lease added") do |vn|
helper.perform_action(args[0], options, 'lease added') do |vn|
vn.addleases(args[1], args[2])
end
end
@ -234,7 +236,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rmar, rmar_desc, :vnetid, :ar_id do
helper.perform_action(args[0],options,"address range removed") do |vn|
helper.perform_action(args[0], options, 'address range removed') do |vn|
vn.rm_ar(args[1])
end
end
@ -244,7 +246,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rmleases, rmleases_desc, :vnetid, :ip do
helper.perform_action(args[0],options,"lease removed") do |vn|
helper.perform_action(args[0], options, 'lease removed') do |vn|
vn.rmleases(args[1])
end
end
@ -254,7 +256,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :free, free_desc, :vnetid, :ar_id do
helper.perform_action(args[0],options,"address range freed") do |vn|
helper.perform_action(args[0], options, 'address range freed') do |vn|
vn.free(args[1])
end
end
@ -264,8 +266,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :hold, hold_desc, :vnetid, :ip,
:options=>STD_OPTIONS + [OneVNetHelper::AR] do
helper.perform_action(args[0],options,"lease on hold") do |vn|
:options => STD_OPTIONS + [OneVNetHelper::AR] do
helper.perform_action(args[0], options, 'lease on hold') do |vn|
ar = options[:address_range] || -1
vn.hold(args[1], ar)
@ -277,9 +279,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :release, release_desc, :vnetid, :ip,
:options=>STD_OPTIONS + [OneVNetHelper::AR] do
helper.perform_action(args[0],options,"lease released") do |vn|
ar = options[:address_range] || -1
:options => STD_OPTIONS + [OneVNetHelper::AR] do
helper.perform_action(args[0], options, 'lease released') do |vn|
ar = options[:address_range] || -1
vn.release(args[1], ar)
end
@ -293,10 +295,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :reserve, reserve_desc, :vnetid, [:vnetid, nil],
:options=>STD_OPTIONS + [OneVNetHelper::AR, OneVNetHelper::NAME,
OneVNetHelper::SIZE, OneVNetHelper::MAC, OneVNetHelper::IP,
OneVNetHelper::IP6 ] do
helper.perform_action(args[0],options,"reservation made") do |vn|
:options => STD_OPTIONS + [OneVNetHelper::AR,
OneVNetHelper::NAME,
OneVNetHelper::SIZE,
OneVNetHelper::MAC,
OneVNetHelper::IP,
OneVNetHelper::IP6] do
helper.perform_action(args[0], options, 'reservation made') do |vn|
size = options[:size] || -1
name = options[:name] || -1
@ -306,13 +311,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
addr = options[:ip6] if options[:ip6]
if size == -1
STDERR.puts "Specify a size (-s size) for the reservation"
exit -1
STDERR.puts 'Specify a size (-s size) for the reservation'
exit(-1)
end
if name == -1 && args[1].nil?
STDERR.puts "Specify a name (-n name) for the reservation"
exit -1
STDERR.puts 'Specify a name (-n name) for the reservation'
exit(-1)
end
res = vn.reserve(name, size, options[:address_range], addr, args[1])
@ -325,13 +330,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
end
chgrp_desc = <<-EOT.unindent
Changes the Virtual Network group
EOT
command :chgrp, chgrp_desc,[:range, :vnetid_list], :groupid do
helper.perform_actions(args[0],options,"Group changed") do |vn|
command :chgrp, chgrp_desc, [:range, :vnetid_list], :groupid do
helper.perform_actions(args[0], options, 'Group changed') do |vn|
vn.chown(-1, args[1].to_i)
end
end
@ -341,9 +345,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chown, chown_desc, [:range, :vnetid_list], :userid,
[:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_i
helper.perform_actions(args[0],options,"Owner/Group changed") do |vn|
[:groupid, nil] do
args[2].nil? ? gid = -1 : gid = args[2].to_i
helper.perform_actions(args[0], options, 'Owner/Group changed') do |vn|
vn.chown(args[1].to_i, gid)
end
end
@ -353,7 +357,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chmod, chmod_desc, [:range, :vnetid_list], :octet do
helper.perform_actions(args[0],options, "Permissions changed") do |vn|
helper.perform_actions(args[0], options, 'Permissions changed') do |vn|
vn.chmod_octet(args[1])
end
end
@ -363,8 +367,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :list, list_desc, [:filterflag, nil],
:options=>CLIHelper::OPTIONS+OpenNebulaHelper::OPTIONS+
[OpenNebulaHelper::DESCRIBE] do
:options => CLIHelper::OPTIONS + OpenNebulaHelper::OPTIONS +
[OpenNebulaHelper::DESCRIBE] do
helper.list_pool(options, false, args[0])
end
@ -373,8 +377,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :show, show_desc, :vnetid,
:options=>[OpenNebulaHelper::XML, OneVNetHelper::SHOW_AR] do
helper.show_resource(args[0],options)
:options => [OpenNebulaHelper::XML, OneVNetHelper::SHOW_AR] do
helper.show_resource(args[0], options)
end
update_desc = <<-EOT.unindent
@ -383,8 +387,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :update, update_desc, :vnetid, [:file, nil],
:options=>OpenNebulaHelper::APPEND do
helper.perform_action(args[0],options,"modified") do |obj|
: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
@ -403,32 +407,36 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :updatear, update_ar_desc, :vnetid, :ar_id, [:file, nil] do
helper.perform_action(args[0],options,"modified") do |obj|
helper.perform_action(args[0], options, 'modified') do |obj|
rc = obj.info
if OpenNebula.is_error?(rc)
puts rc.message
exit -1
exit(-1)
end
obj.delete_element("AR_POOL/AR[AR_ID!=#{args[1]}]")
obj.delete_element("AR_POOL/AR/LEASES")
obj.delete_element("AR_POOL/AR/USED_LEASES")
obj.delete_element("AR_POOL/AR/MAC_END")
obj.delete_element("AR_POOL/AR/IP_END")
obj.delete_element("AR_POOL/AR/IP6_ULA")
obj.delete_element("AR_POOL/AR/IP6_ULA_END")
obj.delete_element("AR_POOL/AR/IP6_GLOBAL")
obj.delete_element("AR_POOL/AR/IP6_GLOBAL_END")
obj.delete_element('AR_POOL/AR/LEASES')
obj.delete_element('AR_POOL/AR/USED_LEASES')
obj.delete_element('AR_POOL/AR/MAC_END')
obj.delete_element('AR_POOL/AR/IP_END')
obj.delete_element('AR_POOL/AR/IP6_ULA')
obj.delete_element('AR_POOL/AR/IP6_ULA_END')
obj.delete_element('AR_POOL/AR/IP6_GLOBAL')
obj.delete_element('AR_POOL/AR/IP6_GLOBAL_END')
if obj.template_like_str("AR_POOL").empty?
puts "Address Range #{args[1]} does not exist for "<<
"Virtual Network #{args[0]}"
exit -1
if obj.template_like_str('AR_POOL').empty?
puts "Address Range #{args[1]} does not exist for " \
"Virtual Network #{args[0]}"
exit(-1)
end
str = OpenNebulaHelper.update_template_helper(false, args[0], obj,
args[2], "AR_POOL", false)
str = OpenNebulaHelper.update_template_helper(false,
args[0],
obj,
args[2],
'AR_POOL',
false)
helper.set_client(options)
obj = helper.retrieve_resource(obj.id)
@ -442,7 +450,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rename, rename_desc, :vnetid, :name do
helper.perform_action(args[0],options,"renamed") do |o|
helper.perform_action(args[0], options, 'renamed') do |o|
o.rename(args[1])
end
end
@ -458,8 +466,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :lock, lock_desc, :vnetid,
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0],options,"VNet locked") do |vnet|
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0], options, 'VNet locked') do |vnet|
if !options[:use].nil?
level = 1
elsif !options[:manage].nil?
@ -481,7 +489,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :unlock, unlock_desc, :vnetid do
helper.perform_action(args[0],options,"VNet unlocked") do |vnet|
helper.perform_action(args[0], options, 'VNet unlocked') do |vnet|
vnet.unlock
end
end

View File

@ -16,24 +16,24 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
require 'command_parser'
require 'one_helper/onevrouter_helper'
require 'one_helper/onetemplate_helper'
require 'one_helper/onevm_helper'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onevrouter` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`onevrouter` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneVirtualRouterHelper.new
@ -42,34 +42,34 @@ cmd=CommandParser::CmdParser.new(ARGV) do
helper.set_client(options)
end
USE={
:name => "use",
:large => "--use",
:description => "lock use actions"
USE = {
:name => 'use',
:large => '--use',
:description => 'lock use actions'
}
MANAGE={
:name => "manage",
:large => "--manage",
:description => "lock manage actions"
MANAGE = {
:name => 'manage',
:large => '--manage',
:description => 'lock manage actions'
}
ADMIN={
:name => "admin",
:large => "--admin",
:description => "lock admin actions"
ADMIN = {
:name => 'admin',
:large => '--admin',
:description => 'lock admin actions'
}
ALL={
:name => "all",
:large => "--all",
:description => "lock all actions"
ALL = {
:name => 'all',
:large => '--all',
:description => 'lock all actions'
}
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
list_options = CLIHelper::OPTIONS
list_options << OpenNebulaHelper::XML
@ -79,28 +79,31 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Formatters for arguments
########################################################################
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc("GROUP") do |arg|
OpenNebulaHelper.rname_to_id(arg, "GROUP")
set :format, :groupid, OpenNebulaHelper.rname_to_id_desc('GROUP') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'GROUP')
end
set :format, :userid, OpenNebulaHelper.rname_to_id_desc("USER") do |arg|
OpenNebulaHelper.rname_to_id(arg, "USER")
set :format, :userid, OpenNebulaHelper.rname_to_id_desc('USER') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'USER')
end
set :format, :vrouterid, OneVirtualRouterHelper.to_id_desc do |arg|
helper.to_id(arg)
end
set :format, :vrouterid_list, OneVirtualRouterHelper.list_to_id_desc do |arg|
set :format, :vrouterid_list,
OneVirtualRouterHelper.list_to_id_desc do |arg|
helper.list_to_id(arg)
end
set :format, :filterflag, OneVirtualRouterHelper.filterflag_to_i_desc do |arg|
set :format, :filterflag,
OneVirtualRouterHelper.filterflag_to_i_desc do |arg|
helper.filterflag_to_i(arg)
end
set :format, :templateid, OpenNebulaHelper.rname_to_id_desc("VMTEMPLATE") do |arg|
OpenNebulaHelper.rname_to_id(arg, "VMTEMPLATE")
set :format, :templateid,
OpenNebulaHelper.rname_to_id_desc('VMTEMPLATE') do |arg|
OpenNebulaHelper.rname_to_id(arg, 'VMTEMPLATE')
end
########################################################################
@ -117,9 +120,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
template = File.read(args[0])
obj.allocate(template)
rescue => e
rescue StandardError => e
STDERR.puts e.messsage
exit -1
exit(-1)
end
end
end
@ -139,27 +142,28 @@ cmd=CommandParser::CmdParser.new(ARGV) do
OneVMHelper::HOLD
]
command :instantiate, instantiate_desc, :vrouterid, :templateid, [:file, nil],
:options=>instantiate_options+OpenNebulaHelper::TEMPLATE_OPTIONS do
exit_code=0
command :instantiate, instantiate_desc,
:vrouterid, :templateid, [:file, nil],
:options => instantiate_options +
OpenNebulaHelper::TEMPLATE_OPTIONS do
if args[2] && OpenNebulaHelper.create_template_options_used?(options)
STDERR.puts "You cannot use both template file and template"<<
" creation options."
next -1
STDERR.puts 'You cannot use both template file and template' \
' creation options.'
exit(-1)
end
number = options[:multiple] || 1
user_inputs = nil
helper.perform_action(args[0], options, "instantiated") do |vr|
name = options[:name] || ""
helper.perform_action(args[0], options, 'instantiated') do |vr|
name = options[:name] || ''
t = OpenNebula::Template.new_with_id(args[1], helper.client)
on_hold = options[:hold] != nil
on_hold = !options[:hold].nil?
extra_template = ""
extra_template = ''
rc = t.info
if OpenNebula.is_error?(rc)
@ -180,7 +184,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
extra_template = res.last
end
user_inputs = OneTemplateHelper.get_user_inputs(t.to_hash) unless user_inputs
user_inputs ||= OneTemplateHelper.get_user_inputs(t.to_hash)
extra_template << "\n" << user_inputs
@ -193,7 +197,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :delete, delete_desc, [:range, :vrouterid_list] do
helper.perform_actions(args[0],options,"deleted") do |obj|
helper.perform_actions(args[0], options, 'deleted') do |obj|
obj.delete
end
end
@ -202,8 +206,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Changes the Virtual Router group
EOT
command :chgrp, chgrp_desc,[:range, :vrouterid_list], :groupid do
helper.perform_actions(args[0],options,"Group changed") do |obj|
command :chgrp, chgrp_desc, [:range, :vrouterid_list], :groupid do
helper.perform_actions(args[0], options, 'Group changed') do |obj|
obj.chown(-1, args[1].to_i)
end
end
@ -213,9 +217,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chown, chown_desc, [:range, :vrouterid_list], :userid,
[:groupid,nil] do
gid = args[2].nil? ? -1 : args[2].to_i
helper.perform_actions(args[0],options,"Owner/Group changed") do |obj|
[:groupid, nil] do
args[2].nil? ? gid = -1 : gid = args[2].to_i
helper.perform_actions(args[0], options, 'Owner/Group changed') do |obj|
obj.chown(args[1].to_i, gid)
end
end
@ -225,7 +229,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :chmod, chmod_desc, [:range, :vrouterid_list], :octet do
helper.perform_actions(args[0],options, "Permissions changed") do |obj|
helper.perform_actions(args[0], options, 'Permissions changed') do |obj|
obj.chmod_octet(args[1])
end
end
@ -236,8 +240,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :update, update_desc, :vrouterid, [:file, nil],
:options=>OpenNebulaHelper::APPEND do
helper.perform_action(args[0],options,"modified") do |obj|
: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
@ -253,7 +257,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rename, rename_desc, :vrouterid, :name do
helper.perform_action(args[0],options,"renamed") do |obj|
helper.perform_action(args[0], options, 'renamed') do |obj|
obj.rename(args[1])
end
end
@ -267,14 +271,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"nic-attach", nic_attach_desc, :vrouterid,
:options => [OneVMHelper::FILE, OneVMHelper::NETWORK, OneVMHelper::IP,
:options => [OneVMHelper::FILE,
OneVMHelper::NETWORK,
OneVMHelper::IP,
OneVirtualRouterHelper::FLOAT] do
if options[:file].nil? and options[:network].nil?
STDERR.puts "Provide a template file or a network:"
if options[:file].nil? && options[:network].nil?
STDERR.puts 'Provide a template file or a network:'
STDERR.puts "\t--file <file>"
STDERR.puts "\t--network <network>"
exit -1
exit(-1)
end
if options[:file]
@ -291,13 +297,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
end
if float
template += ", FLOATING_IP =\"yes\""
template += ', FLOATING_IP ="yes"'
end
template += " ]"
template += ' ]'
end
helper.perform_action(args[0],options,"Attach NIC") do |vr|
helper.perform_action(args[0], options, 'Attach NIC') do |vr|
vr.nic_attach(template)
end
end
@ -309,7 +315,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
command :"nic-detach", nic_detach_desc, :vrouterid, :nicid do
nicid = args[1].to_i
helper.perform_action(args[0],options,"Detach NIC") do |vr|
helper.perform_action(args[0], options, 'Detach NIC') do |vr|
vr.nic_detach(nicid)
end
end
@ -318,7 +324,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Lists the Virtual Routers in the pool
EOT
command :list, list_desc, [:filterflag, nil], :options=>list_options do
command :list, list_desc, [:filterflag, nil], :options => list_options do
helper.list_pool(options, false, args[0])
end
@ -327,15 +333,15 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :show, show_desc, :vrouterid,
:options=>[OpenNebulaHelper::XML, OneVMHelper::ALL_TEMPLATE] do
helper.show_resource(args[0],options)
:options => [OpenNebulaHelper::XML, OneVMHelper::ALL_TEMPLATE] do
helper.show_resource(args[0], options)
end
top_desc = <<-EOT.unindent
Lists Virtual Routers continuously
EOT
command :top, top_desc, [:filterflag, nil], :options=>list_options do
command :top, top_desc, [:filterflag, nil], :options => list_options do
helper.list_pool(options, true, args[0])
end
@ -350,8 +356,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :lock, lock_desc, :vrouterid,
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0],options,"VRouter locked") do |vr|
:options => [USE, MANAGE, ADMIN, ALL] do
helper.perform_action(args[0], options, 'VRouter locked') do |vr|
if !options[:use].nil?
level = 1
elsif !options[:manage].nil?
@ -373,7 +379,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :unlock, unlock_desc, :vrouterid do
helper.perform_action(args[0],options,"VRouter unlocked") do |vr|
helper.perform_action(args[0], options, 'VRouter unlocked') do |vr|
vr.unlock
end
end

View File

@ -16,31 +16,32 @@
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
ONE_LOCATION = ENV['ONE_LOCATION']
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
$LOAD_PATH << RUBY_LIB_LOCATION
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
require 'command_parser'
require 'one_helper/onezone_helper'
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onezone` <command> [<args>] [<options>]"
CommandParser::CmdParser.new(ARGV) do
usage '`onezone` <command> [<args>] [<options>]'
version OpenNebulaHelper::ONE_VERSION
helper = OneZoneHelper.new
ENDPOINT = {
:name => "keep",
:short => "-k",
:large => "--keep",
:description => "Don't overwrite endpoint file located in home folder, use it as a temporary zone.",
:name => 'keep',
:short => '-k',
:large => '--keep',
:description => "Don't overwrite endpoint file located in home folder,"\
' use it as a temporary zone.',
:format => String
}
@ -51,7 +52,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS+OpenNebulaHelper::CLIENT_OPTIONS
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
list_options = CLIHelper::OPTIONS
list_options << OpenNebulaHelper::XML
@ -82,9 +83,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
begin
template = File.read(args[0])
zone.allocate(template)
rescue => e
rescue StandardError => e
STDERR.puts e.message
exit -1
exit(-1)
end
end
end
@ -94,7 +95,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :rename, rename_desc, :zoneid, :name do
helper.perform_action(args[0],options,"renamed") do |o|
helper.perform_action(args[0], options, 'renamed') do |o|
o.rename(args[1])
end
end
@ -104,13 +105,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"server-add", addserver_desc, :zoneid, :options =>
[ OneZoneHelper::SERVER_NAME, OneZoneHelper::SERVER_ENDPOINT] do
[OneZoneHelper::SERVER_NAME, OneZoneHelper::SERVER_ENDPOINT] do
if options[:server_name].nil? || options[:server_rpc].nil?
STDERR.puts "To add a server set:"
STDERR.puts 'To add a server set:'
STDERR.puts "\t-n <server name>"
STDERR.puts "\t-r <RPC endpoint>"
exit -1
exit(-1)
end
template = <<-EOT
@ -120,10 +121,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
]
EOT
helper.perform_action(args[0], options, "server added") do |o|
helper.perform_action(args[0], options, 'server added') do |o|
o.add_servers(template)
end
end
delserver_desc = <<-EOT.unindent
@ -131,10 +131,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"server-del", delserver_desc, :zoneid, :serverid do
helper.perform_action(args[0], options, "server deleted") do |o|
helper.perform_action(args[0], options, 'server deleted') do |o|
o.delete_servers(args[1].to_i)
end
end
resetserver_desc = <<-EOT.unindent
@ -143,7 +142,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :"server-reset", resetserver_desc, :zoneid, :serverid do
helper.perform_action(args[0], options, "server reset") do |o|
helper.perform_action(args[0], options, 'server reset') do |o|
o.reset_server(args[1].to_i)
end
end
@ -154,8 +153,8 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :update, update_desc, :zoneid, [:file, nil],
:options=>OpenNebulaHelper::APPEND do
helper.perform_action(args[0],options,"modified") do |obj|
: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
@ -174,7 +173,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
EOT
command :delete, delete_desc, [:range, :zoneid_list] do
helper.perform_actions(args[0],options,"deleted") do |obj|
helper.perform_actions(args[0], options, 'deleted') do |obj|
obj.delete
end
end
@ -183,7 +182,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Lists Zones in the pool
EOT
command :list, list_desc, :options=>list_options do
command :list, list_desc, :options => list_options do
helper.list_pool(options)
end
@ -191,16 +190,16 @@ cmd=CommandParser::CmdParser.new(ARGV) do
Shows information for the given Zone
EOT
command :show, show_desc,:zoneid, :options=>OpenNebulaHelper::XML do
helper.show_resource(args[0],options)
command :show, show_desc, :zoneid, :options => OpenNebulaHelper::XML do
helper.show_resource(args[0], options)
end
set_desc = <<-EOT.unindent
Set shell session access point for the CLI to the given Zone
EOT
command :set, set_desc,:zoneid, :options=>ENDPOINT do
if options.has_key? :keep
command :set, set_desc, :zoneid, :options => ENDPOINT do
if options.key? :keep
helper.set_zone(args[0], true)
else
helper.set_zone(args[0], false)