/usr/bin/onezone is in opennebula 3.2.1-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | #!/usr/bin/env ruby
# -------------------------------------------------------------------------- #
# Copyright 2002-2012, OpenNebula Project Leads (OpenNebula.org) #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. You may obtain #
# a copy of the License at #
# #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
#--------------------------------------------------------------------------- #
ONE_LOCATION=ENV["ONE_LOCATION"]
if !ONE_LOCATION
RUBY_LIB_LOCATION="/usr/lib/one/ruby"
else
RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
end
$: << RUBY_LIB_LOCATION
$: << RUBY_LIB_LOCATION+"/cli"
require 'command_parser'
require 'ozones_helper/zones_helper.rb'
class Hash
def self.transform_keys_to_strings(value)
return value if not value.is_a?(Hash)
hash = value.inject({}){|memo,(k,v)| memo[k.to_s] = Hash.transform_keys_to_strings(v); memo}
return hash
end
end
cmd=CommandParser::CmdParser.new(ARGV) do
usage "`onezone` <command> [<args>] [<options>]"
version OpenNebulaHelper::ONE_VERSION
set :format, :zoneid, "Zone ID" do |arg|
arg.match(/^[0123456789]+$/) ? [0,arg] : [-1]
end
########################################################################
# Global Options
########################################################################
set :option, CommandParser::OPTIONS
begin
helper = ZonesHelper.new "zone"
rescue Exception => e
warn e.message
exit -1
end
command :create, 'Create a new Zone', :file do
helper.create_resource(args[0])
end
show_desc = <<-EOT.unindent
Show information of a particular Zone
Available resources: host, vm, image, vnet, vmtemplate, user
Examples:
onezone show 4
onezone show 4 host
EOT
command :show, show_desc, :zoneid, [:resource, nil] do
zone=helper.show_resource(args[0],options)[1]
case args[1]
when "host"
aux_helper = OneHostHelper.new
when "vm"
aux_helper = OneVMHelper.new
when "image"
aux_helper = OneImageHelper.new
when "vnet"
aux_helper = OneVNetHelper.new
when "vmtemplate"
aux_helper = OneTemplateHelper.new
when "user"
aux_helper = OneUserHelper.new
else
puts "\n:!: Pool #{args[1]} doesn't exist or is not supported\n\n"
next 0
end
pool_hash_data = helper.get_resource_pool("zone", zone[:ID], args[1])
if pool_hash_data[0] != 0
puts "\nError retrieving information for pool #{args[1]}. Reason: " + pool_hash_data[1] + "\n\n"
next 0
end
if !pool_hash_data[1]
next 0
end
if pool_hash_data[1].is_a?(Hash)
pool_hash_data[1]=[Hash.transform_keys_to_strings(pool_hash_data[1])]
else
pool_hash_data[1].each{|hash| hash.replace(Hash.transform_keys_to_strings(hash))}
end
table = aux_helper.format_pool(options)
table.show(pool_hash_data[1])
0
end
command :list, 'Lists Zones in the pool' do
helper.list_pool(options)
end
command :delete, 'Deletes a Zone', :zoneid do
helper.delete_resource(args[0],options)
end
end
|