opennebula-cli 4.5.80.beta → 4.5.85.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/oneacct +1 -1
- data/bin/onegroup +13 -17
- data/bin/oneuser +1 -1
- data/bin/onevm +10 -3
- data/lib/cli_helper.rb +4 -6
- data/lib/one_helper.rb +12 -19
- data/lib/one_helper/onegroup_helper.rb +6 -9
- data/lib/one_helper/onequota_helper.rb +23 -2
- metadata +43 -39
- checksums.yaml +0 -7
data/bin/oneacct
CHANGED
|
@@ -44,7 +44,7 @@ cmd = CommandParser::CmdParser.new(ARGV) do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
option AcctHelper::ACCT_OPTIONS + CommandParser::OPTIONS +
|
|
47
|
-
[OpenNebulaHelper::DESCRIBE, CLIHelper::LIST, CLIHelper::
|
|
47
|
+
[OpenNebulaHelper::DESCRIBE, CLIHelper::LIST, CLIHelper::CSV_OPT] +
|
|
48
48
|
OpenNebulaHelper::CLIENT_OPTIONS
|
|
49
49
|
|
|
50
50
|
main do
|
data/bin/onegroup
CHANGED
|
@@ -79,17 +79,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
79
79
|
|
|
80
80
|
Examples:
|
|
81
81
|
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
onegroup create group_description.tmpl
|
|
85
|
-
|
|
86
|
-
- create a group with admin group, admin user and allow group users
|
|
87
|
-
to only create new templates and VMs, and group admins to manage
|
|
82
|
+
- create a group with admin user and allow group users
|
|
83
|
+
to only create new templates and VMs, and group admin to manage
|
|
88
84
|
templates, vms, images and virtual networks
|
|
89
85
|
|
|
90
|
-
onegroup create --name groupA
|
|
86
|
+
onegroup create --name groupA
|
|
91
87
|
--admin_user admin_userA --admin_password somestr
|
|
92
|
-
--
|
|
88
|
+
--resources TEMPLATE+VM
|
|
93
89
|
--admin_resources TEMPLATE+VM+IMAGE+NET
|
|
94
90
|
|
|
95
91
|
EOT
|
|
@@ -110,12 +106,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
110
106
|
end
|
|
111
107
|
|
|
112
108
|
admin_user=Hash.new
|
|
113
|
-
admin_user[:name]
|
|
114
|
-
admin_user[:password]
|
|
115
|
-
if options[:admin_driver]
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
options[:
|
|
109
|
+
admin_user[:name] = options[:admin_user]
|
|
110
|
+
admin_user[:password] = options[:admin_password]
|
|
111
|
+
admin_user[:auth_driver]= options[:admin_driver] if options[:admin_driver]
|
|
112
|
+
admin_user[:resources] = options[:admin_resources] if options[:admin_resources]
|
|
113
|
+
|
|
114
|
+
options[:group_admin] = admin_user
|
|
119
115
|
end
|
|
120
116
|
|
|
121
117
|
if !options.empty?
|
|
@@ -142,7 +138,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
142
138
|
|
|
143
139
|
obj.update(str, options[:append])
|
|
144
140
|
end
|
|
145
|
-
end
|
|
141
|
+
end
|
|
146
142
|
|
|
147
143
|
delete_desc = <<-EOT.unindent
|
|
148
144
|
Deletes the given Group
|
|
@@ -193,7 +189,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
193
189
|
exit -1
|
|
194
190
|
end
|
|
195
191
|
end
|
|
196
|
-
end
|
|
192
|
+
end
|
|
197
193
|
|
|
198
194
|
batchquota_desc = <<-EOT.unindent
|
|
199
195
|
Sets the quota limits in batch for various groups. If a path is not
|
|
@@ -232,7 +228,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
232
228
|
exit(-1)
|
|
233
229
|
end
|
|
234
230
|
|
|
235
|
-
str = OneQuotaHelper.set_quota(default_quotas, args[0])
|
|
231
|
+
str = OneQuotaHelper.set_quota(default_quotas, args[0], true)
|
|
236
232
|
|
|
237
233
|
rc = system.set_group_quotas(str)
|
|
238
234
|
|
data/bin/oneuser
CHANGED
data/bin/onevm
CHANGED
|
@@ -91,6 +91,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
91
91
|
:description => "Recover a VM by failing the pending action"
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
CLONETEMPLATE={
|
|
95
|
+
:name => "clonetemplate",
|
|
96
|
+
:short => "-c",
|
|
97
|
+
:large => "--clonetemplate",
|
|
98
|
+
:description => "Clone original VM Template and replace disk with saved one"
|
|
99
|
+
}
|
|
100
|
+
|
|
94
101
|
########################################################################
|
|
95
102
|
# Global Options
|
|
96
103
|
########################################################################
|
|
@@ -297,7 +304,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
297
304
|
EOT
|
|
298
305
|
|
|
299
306
|
command :"disk-snapshot", disk_snapshot_desc, :vmid, :diskid, :img_name,
|
|
300
|
-
:options=>[TYPE, OneVMHelper::LIVE] do
|
|
307
|
+
:options=>[TYPE, OneVMHelper::LIVE, CLONETEMPLATE] do
|
|
301
308
|
disk_id = args[1].to_i
|
|
302
309
|
image_name = args[2]
|
|
303
310
|
image_type = options[:type] || ""
|
|
@@ -307,7 +314,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
307
314
|
|
|
308
315
|
helper.perform_action(args[0],options,verbose) do |vm|
|
|
309
316
|
res = vm.disk_snapshot(disk_id, image_name, image_type,
|
|
310
|
-
options[:live]==true)
|
|
317
|
+
options[:live]==true, options[:clonetemplate]==true)
|
|
311
318
|
|
|
312
319
|
if !OpenNebula.is_error?(res)
|
|
313
320
|
puts "Image ID: #{res}"
|
|
@@ -417,7 +424,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
|
|
|
417
424
|
States: PENDING
|
|
418
425
|
EOT
|
|
419
426
|
|
|
420
|
-
command :deploy, deploy_desc, [:range,:vmid_list], :hostid, [:datastoreid,nil],
|
|
427
|
+
command :deploy, deploy_desc, [:range,:vmid_list], :hostid, [:datastoreid,nil],
|
|
421
428
|
:options=>[ENFORCE] do
|
|
422
429
|
host_id = args[1]
|
|
423
430
|
verbose = "deploying in host #{host_id}"
|
data/lib/cli_helper.rb
CHANGED
|
@@ -25,7 +25,7 @@ module CLIHelper
|
|
|
25
25
|
:description => "Selects columns to display with list command"
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
CSV_OPT = {
|
|
29
29
|
:name => "csv",
|
|
30
30
|
:large => "--csv",
|
|
31
31
|
:description => "Write table in csv format"
|
|
@@ -64,7 +64,7 @@ module CLIHelper
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
#OPTIONS = [LIST, ORDER, FILTER, HEADER, DELAY]
|
|
67
|
-
OPTIONS = [LIST, DELAY, FILTER,
|
|
67
|
+
OPTIONS = [LIST, DELAY, FILTER, CSV_OPT]
|
|
68
68
|
|
|
69
69
|
# Sets bold font
|
|
70
70
|
def CLIHelper.scr_bold
|
|
@@ -268,10 +268,8 @@ module CLIHelper
|
|
|
268
268
|
|
|
269
269
|
begin
|
|
270
270
|
if options[:csv]
|
|
271
|
-
CSV(
|
|
272
|
-
|
|
273
|
-
res_data.each {|l| csv << l }
|
|
274
|
-
end
|
|
271
|
+
puts CSV.generate_line(@default_columns)
|
|
272
|
+
res_data.each {|l| puts CSV.generate_line(l) }
|
|
275
273
|
else
|
|
276
274
|
res_data.each{|l|
|
|
277
275
|
puts (0..ncolumns-1).collect{ |i|
|
data/lib/one_helper.rb
CHANGED
|
@@ -137,14 +137,6 @@ EOT
|
|
|
137
137
|
'Name for the new group',
|
|
138
138
|
:format => String
|
|
139
139
|
},
|
|
140
|
-
{
|
|
141
|
-
:name => 'admin_group',
|
|
142
|
-
:large => '--admin_group name',
|
|
143
|
-
:short => "-a",
|
|
144
|
-
:description =>
|
|
145
|
-
'Creates an admin group with name',
|
|
146
|
-
:format => String
|
|
147
|
-
},
|
|
148
140
|
{
|
|
149
141
|
:name => 'admin_user',
|
|
150
142
|
:large => '--admin_user name',
|
|
@@ -155,7 +147,7 @@ EOT
|
|
|
155
147
|
},
|
|
156
148
|
{
|
|
157
149
|
:name => 'admin_password',
|
|
158
|
-
:large => '--admin_password
|
|
150
|
+
:large => '--admin_password pass',
|
|
159
151
|
:short => "-p",
|
|
160
152
|
:description =>
|
|
161
153
|
'Password for the admin user of the group',
|
|
@@ -163,7 +155,7 @@ EOT
|
|
|
163
155
|
},
|
|
164
156
|
{
|
|
165
157
|
:name => 'admin_driver',
|
|
166
|
-
:large => '--admin_driver
|
|
158
|
+
:large => '--admin_driver driver',
|
|
167
159
|
:short => "-d",
|
|
168
160
|
:description =>
|
|
169
161
|
'Auth driver for the admin user of the group',
|
|
@@ -171,20 +163,20 @@ EOT
|
|
|
171
163
|
},
|
|
172
164
|
{
|
|
173
165
|
:name => 'resources',
|
|
174
|
-
:large => '--resources
|
|
166
|
+
:large => '--resources res_str',
|
|
175
167
|
:short => "-r",
|
|
176
168
|
:description =>
|
|
177
|
-
|
|
178
|
-
"(VM+NET+IMAGE+TEMPLATE by default)
|
|
169
|
+
"Which resources can be created by group users "<<
|
|
170
|
+
"(VM+NET+IMAGE+TEMPLATE by default)",
|
|
179
171
|
:format => String
|
|
180
172
|
},
|
|
181
173
|
{
|
|
182
174
|
:name => 'admin_resources',
|
|
183
|
-
:large => '--admin_resources
|
|
175
|
+
:large => '--admin_resources res_str',
|
|
184
176
|
:short => "-o",
|
|
185
177
|
:description =>
|
|
186
|
-
|
|
187
|
-
"(VM+NET+IMAGE+TEMPLATE by default)
|
|
178
|
+
"Which resources can be created by the admin user "<<
|
|
179
|
+
"(VM+NET+IMAGE+TEMPLATE by default)",
|
|
188
180
|
:format => String
|
|
189
181
|
}
|
|
190
182
|
]
|
|
@@ -482,9 +474,10 @@ EOT
|
|
|
482
474
|
array=pool.get_hash
|
|
483
475
|
return -1, array.message if OpenNebula.is_error?(array)
|
|
484
476
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
477
|
+
rname=self.class.rname
|
|
478
|
+
elements=array["#{rname}_POOL"][rname]
|
|
479
|
+
if options[:ids] && elements
|
|
480
|
+
elements.reject! do |element|
|
|
488
481
|
!options[:ids].include?(element['ID'].to_i)
|
|
489
482
|
end
|
|
490
483
|
end
|
|
@@ -50,17 +50,14 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper
|
|
|
50
50
|
|
|
51
51
|
def create_complete_resource(group_hash)
|
|
52
52
|
group = factory
|
|
53
|
-
|
|
53
|
+
rc = group.create(group_hash)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (exit_code.class==Fixnum and exit_code < 0) or OpenNebula.is_error?(exit_code)
|
|
58
|
-
puts exit_code.message if OpenNebula.is_error?(exit_code) && exit_code.message
|
|
59
|
-
return -1
|
|
60
|
-
else
|
|
61
|
-
puts "ID: #{group.id}"
|
|
62
|
-
return 0
|
|
55
|
+
if OpenNebula.is_error?(rc)
|
|
56
|
+
return -1, rc.message
|
|
63
57
|
end
|
|
58
|
+
|
|
59
|
+
puts "ID: #{group.id}"
|
|
60
|
+
return 0
|
|
64
61
|
end
|
|
65
62
|
|
|
66
63
|
def format_pool(options)
|
|
@@ -46,9 +46,12 @@ class OneQuotaHelper
|
|
|
46
46
|
# ID = <ID of the image>
|
|
47
47
|
# RVMS = <Max. number of VMs using the image>
|
|
48
48
|
# ]
|
|
49
|
+
EOT
|
|
50
|
+
|
|
51
|
+
HELP_QUOTA_FOOTER = <<-EOT.unindent
|
|
49
52
|
#
|
|
50
53
|
# In any quota:
|
|
51
|
-
# -1 means use the default limit ('defaultquota' command)
|
|
54
|
+
# -1 means use the default limit (set with the 'defaultquota' command)
|
|
52
55
|
# 0 means unlimited.
|
|
53
56
|
#
|
|
54
57
|
# The usage counters "*_USED" are shown for information
|
|
@@ -56,12 +59,23 @@ class OneQuotaHelper
|
|
|
56
59
|
#-----------------------------------------------------------------------
|
|
57
60
|
EOT
|
|
58
61
|
|
|
62
|
+
HELP_DEFAULT_QUOTA_FOOTER = <<-EOT.unindent
|
|
63
|
+
#
|
|
64
|
+
# In any quota:
|
|
65
|
+
# 0 means unlimited.
|
|
66
|
+
#
|
|
67
|
+
# The usage counters "*_USED" will always be 0 for the default
|
|
68
|
+
# quotas, and can be ignored.
|
|
69
|
+
#-----------------------------------------------------------------------
|
|
70
|
+
EOT
|
|
71
|
+
|
|
59
72
|
# Edits the quota template of a resource
|
|
60
73
|
# @param [XMLElement] resource to get the current info from
|
|
61
74
|
# @param [String] path to the new contents. If nil a editor will be
|
|
62
75
|
# used
|
|
76
|
+
# @param [True|False] is_default To change the help text
|
|
63
77
|
# @return [String] contents of the new quotas
|
|
64
|
-
def self.set_quota(resource, path)
|
|
78
|
+
def self.set_quota(resource, path, is_default=false)
|
|
65
79
|
str = ""
|
|
66
80
|
|
|
67
81
|
if path.nil?
|
|
@@ -71,6 +85,13 @@ class OneQuotaHelper
|
|
|
71
85
|
path = tmp.path
|
|
72
86
|
|
|
73
87
|
tmp << HELP_QUOTA
|
|
88
|
+
|
|
89
|
+
if (is_default)
|
|
90
|
+
tmp << HELP_DEFAULT_QUOTA_FOOTER
|
|
91
|
+
else
|
|
92
|
+
tmp << HELP_QUOTA_FOOTER
|
|
93
|
+
end
|
|
94
|
+
|
|
74
95
|
tmp << resource.template_like_str("DATASTORE_QUOTA") << "\n"
|
|
75
96
|
tmp << resource.template_like_str("VM_QUOTA") << "\n"
|
|
76
97
|
tmp << resource.template_like_str("NETWORK_QUOTA") << "\n"
|
metadata
CHANGED
|
@@ -1,103 +1,107 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opennebula-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.5.
|
|
4
|
+
version: 4.5.85.rc1
|
|
5
|
+
prerelease: 7
|
|
5
6
|
platform: ruby
|
|
6
7
|
authors:
|
|
7
8
|
- OpenNebula
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
12
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: opennebula
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
16
18
|
requirements:
|
|
17
19
|
- - '='
|
|
18
20
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 4.5.
|
|
21
|
+
version: 4.5.85.rc1
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
23
26
|
requirements:
|
|
24
27
|
- - '='
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 4.5.
|
|
29
|
+
version: 4.5.85.rc1
|
|
27
30
|
description: Commands used to talk to OpenNebula
|
|
28
31
|
email: contact@opennebula.org
|
|
29
32
|
executables:
|
|
30
|
-
- oneacct
|
|
31
33
|
- oneacl
|
|
32
|
-
- onecluster
|
|
33
|
-
- onedatastore
|
|
34
|
-
- oneflow
|
|
35
|
-
- oneflow-template
|
|
36
|
-
- onegroup
|
|
37
34
|
- onehost
|
|
35
|
+
- oneflow-template
|
|
36
|
+
- onevnet
|
|
38
37
|
- oneimage
|
|
38
|
+
- onedatastore
|
|
39
|
+
- onevm
|
|
40
|
+
- onegroup
|
|
41
|
+
- onecluster
|
|
39
42
|
- onetemplate
|
|
43
|
+
- oneflow
|
|
40
44
|
- oneuser
|
|
41
|
-
- onevm
|
|
42
|
-
- onevnet
|
|
43
45
|
- onezone
|
|
46
|
+
- oneacct
|
|
44
47
|
extensions: []
|
|
45
48
|
extra_rdoc_files: []
|
|
46
49
|
files:
|
|
47
|
-
- LICENSE
|
|
48
|
-
- NOTICE
|
|
49
|
-
- bin/oneacct
|
|
50
50
|
- bin/oneacl
|
|
51
|
-
- bin/onecluster
|
|
52
|
-
- bin/onedatastore
|
|
53
|
-
- bin/oneflow
|
|
54
|
-
- bin/oneflow-template
|
|
55
|
-
- bin/onegroup
|
|
56
51
|
- bin/onehost
|
|
52
|
+
- bin/oneflow-template
|
|
53
|
+
- bin/onevnet
|
|
57
54
|
- bin/oneimage
|
|
55
|
+
- bin/onedatastore
|
|
56
|
+
- bin/onevm
|
|
57
|
+
- bin/onegroup
|
|
58
|
+
- bin/onecluster
|
|
58
59
|
- bin/onetemplate
|
|
60
|
+
- bin/oneflow
|
|
59
61
|
- bin/oneuser
|
|
60
|
-
- bin/onevm
|
|
61
|
-
- bin/onevnet
|
|
62
62
|
- bin/onezone
|
|
63
|
-
-
|
|
64
|
-
- lib/command_parser.rb
|
|
63
|
+
- bin/oneacct
|
|
65
64
|
- lib/one_helper.rb
|
|
66
|
-
- lib/
|
|
67
|
-
- lib/
|
|
68
|
-
- lib/one_helper/onecluster_helper.rb
|
|
69
|
-
- lib/one_helper/onedatastore_helper.rb
|
|
70
|
-
- lib/one_helper/onegroup_helper.rb
|
|
71
|
-
- lib/one_helper/onehost_helper.rb
|
|
72
|
-
- lib/one_helper/oneimage_helper.rb
|
|
65
|
+
- lib/command_parser.rb
|
|
66
|
+
- lib/cli_helper.rb
|
|
73
67
|
- lib/one_helper/onequota_helper.rb
|
|
74
68
|
- lib/one_helper/onetemplate_helper.rb
|
|
75
|
-
- lib/one_helper/
|
|
76
|
-
- lib/one_helper/onevm_helper.rb
|
|
77
|
-
- lib/one_helper/onevnet_helper.rb
|
|
69
|
+
- lib/one_helper/onegroup_helper.rb
|
|
78
70
|
- lib/one_helper/onezone_helper.rb
|
|
71
|
+
- lib/one_helper/onevnet_helper.rb
|
|
72
|
+
- lib/one_helper/onevm_helper.rb
|
|
73
|
+
- lib/one_helper/oneuser_helper.rb
|
|
74
|
+
- lib/one_helper/onedatastore_helper.rb
|
|
75
|
+
- lib/one_helper/onecluster_helper.rb
|
|
76
|
+
- lib/one_helper/oneimage_helper.rb
|
|
77
|
+
- lib/one_helper/oneacl_helper.rb
|
|
78
|
+
- lib/one_helper/oneacct_helper.rb
|
|
79
|
+
- lib/one_helper/onehost_helper.rb
|
|
80
|
+
- NOTICE
|
|
81
|
+
- LICENSE
|
|
79
82
|
homepage: http://opennebula.org
|
|
80
83
|
licenses: []
|
|
81
|
-
metadata: {}
|
|
82
84
|
post_install_message:
|
|
83
85
|
rdoc_options: []
|
|
84
86
|
require_paths:
|
|
85
87
|
- lib
|
|
86
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
87
90
|
requirements:
|
|
88
|
-
- -
|
|
91
|
+
- - ! '>='
|
|
89
92
|
- !ruby/object:Gem::Version
|
|
90
93
|
version: '0'
|
|
91
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
|
+
none: false
|
|
92
96
|
requirements:
|
|
93
|
-
- -
|
|
97
|
+
- - ! '>'
|
|
94
98
|
- !ruby/object:Gem::Version
|
|
95
99
|
version: 1.3.1
|
|
96
100
|
requirements: []
|
|
97
101
|
rubyforge_project:
|
|
98
|
-
rubygems_version:
|
|
102
|
+
rubygems_version: 1.8.23
|
|
99
103
|
signing_key:
|
|
100
|
-
specification_version:
|
|
104
|
+
specification_version: 3
|
|
101
105
|
summary: OpenNebula Command Line Interface
|
|
102
106
|
test_files: []
|
|
103
107
|
has_rdoc:
|
checksums.yaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz: 0d0a7a6d4a5861896dcea19d5bd0901864e93cf8
|
|
4
|
-
data.tar.gz: 3348c3fbf038afce1e154ed5d17cf94819c663a1
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz: 30d8c96ff0feaffd28f8c13a180d4118e40e12c95f994d4336d72efff7a6fb2f58cd69aa28bb9955c17bba52d51e8c2a95386d33f2777e5997151279c2c94c89
|
|
7
|
-
data.tar.gz: 3f283c2538ee84ff6f5d4341f8b9f0ff854731de9e358489f73a9be7ba7a6a69dc7573b3340101ea12ae4ed3810c21944d4510a0863db77a1ad0193a89daf3c5
|