opennebula-cli 5.8.5 → 5.9.80.pre

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 253bc8ebcbcfdc1139f455981da95a8043d44328
4
- data.tar.gz: b36d99d50d8a70e5456321bd68f8724dee3b44d3
3
+ metadata.gz: 7daaa3be3b192be84b9cddeba135a6e28622ccbf
4
+ data.tar.gz: 0400970ef76f852acd9c65d548df83a7b5705a06
5
5
  SHA512:
6
- metadata.gz: 2d1cae7a51028b7a8e0647b44d9a2d8a2db8483f80085db1dc6edd7e31ab9a5863abd936db5add7eeac421caa709a0de717d1c97200f998a1144c96f40255c96
7
- data.tar.gz: aae2915016a07cc0ffa13f9b9dfbeaab37154b62b893d72ee3299fc1d252524960b28feea5b59f02158a0e95d8d2c570d446776efbd605733d9614116500044a
6
+ metadata.gz: a0e4142161c7efdc5541cb9cd020a8ba384e5b9800ec62acebf151e74f9942ec3ff5398be3e63debb67a9a3d455d8b5791108632e11128abeed130d1e9d1e5fa
7
+ data.tar.gz: 283b1c11a82c8a29f74d575c03b096b7f3397c90dcf6f609e9485212f87850edbeca7310677d174721e052c3fd3d78b23d69565feee5c5c95f637845de6701aa
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
data/bin/oneacl CHANGED
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -94,7 +100,8 @@ CommandParser::CmdParser.new(ARGV) do
94
100
  Lists the ACL rule set
95
101
  EOT
96
102
 
97
- command :list, list_desc, :options => [OpenNebulaHelper::XML,
103
+ command :list, list_desc, :options => [CLIHelper::OPTIONS,
104
+ OpenNebulaHelper::XML,
98
105
  OpenNebulaHelper::DESCRIBE] do
99
106
  helper.list_pool(options)
100
107
  end
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -110,7 +116,8 @@ CommandParser::CmdParser.new(ARGV) do
110
116
  Shows information for the given Cluster
111
117
  EOT
112
118
 
113
- command :show, show_desc, :clusterid, :options => OpenNebulaHelper::XML do
119
+ command :show, show_desc, :clusterid,
120
+ :options => [OpenNebulaHelper::XML, OpenNebulaHelper::DECRYPT] do
114
121
  helper.show_resource(args[0], options)
115
122
  end
116
123
 
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -152,7 +158,8 @@ CommandParser::CmdParser.new(ARGV) do
152
158
  Shows information for the given Datastore
153
159
  EOT
154
160
 
155
- command :show, show_desc, :datastoreid, :options => OpenNebulaHelper::XML do
161
+ command :show, show_desc, :datastoreid,
162
+ :options => [OpenNebulaHelper::XML, OpenNebulaHelper::DECRYPT] do
156
163
  helper.show_resource(args[0], options)
157
164
  end
158
165
 
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -224,16 +230,17 @@ def show_service(client, args, options)
224
230
  'INFORMATION'
225
231
  CLIHelper.print_header(str_h1 % str_header)
226
232
 
227
- puts format(str, ['ID', document_hash['DOCUMENT']['ID']])
228
- puts format(str, ['NAME', document_hash['DOCUMENT']['NAME']])
229
- puts format(str, ['USER', document_hash['DOCUMENT']['UNAME']])
230
- puts format(str, ['GROUP', document_hash['DOCUMENT']['GNAME']])
233
+ puts Kernel.format(str, 'ID', document_hash['DOCUMENT']['ID'])
234
+ puts Kernel.format(str, 'NAME', document_hash['DOCUMENT']['NAME'])
235
+ puts Kernel.format(str, 'USER', document_hash['DOCUMENT']['UNAME'])
236
+ puts Kernel.format(str, 'GROUP', document_hash['DOCUMENT']['GNAME'])
231
237
 
232
- puts format(str, ['STRATEGY', template['deployment']])
233
- puts format(str,
234
- ['SERVICE STATE', Service.state_str(template['state'])])
238
+ puts Kernel.format(str, 'STRATEGY', template['deployment'])
239
+ puts Kernel.format(str,
240
+ 'SERVICE STATE',
241
+ Service.state_str(template['state']))
235
242
  if template['shutdown_action']
236
- puts format(str, ['SHUTDOWN', template['shutdown_action']])
243
+ puts Kernel.format(str, 'SHUTDOWN', template['shutdown_action'])
237
244
  end
238
245
 
239
246
  puts
@@ -247,7 +254,7 @@ def show_service(client, args, options)
247
254
  mask[1] = 'm' if permissions_hash["#{e}_M"] == '1'
248
255
  mask[2] = 'a' if permissions_hash["#{e}_A"] == '1'
249
256
 
250
- puts format(str, [e, mask])
257
+ puts Kernel.format(str, e, mask)
251
258
  end
252
259
 
253
260
  puts
@@ -255,23 +262,27 @@ def show_service(client, args, options)
255
262
  template['roles'].each do |role|
256
263
  CLIHelper.print_header("ROLE #{role['name']}", false)
257
264
 
258
- puts format(str, ['ROLE STATE', Role.state_str(role['state'])])
265
+ puts Kernel.format(str,
266
+ 'ROLE STATE',
267
+ Role.state_str(role['state']))
259
268
  if role['parents']
260
- puts format(str, ['PARENTS', role['parents'].join(', ')])
269
+ puts Kernel.format(str,
270
+ 'PARENTS',
271
+ role['parents'].join(', '))
261
272
  end
262
- puts format(str, ['VM TEMPLATE', role['vm_template']])
263
- puts format(str, ['CARDINALITY', role['cardinality']])
273
+ puts Kernel.format(str, 'VM TEMPLATE', role['vm_template'])
274
+ puts Kernel.format(str, 'CARDINALITY', role['cardinality'])
264
275
  if role['min_vms']
265
- puts format(str, ['MIN VMS', role['min_vms']])
276
+ puts Kernel.format(str, 'MIN VMS', role['min_vms'])
266
277
  end
267
278
  if role['max_vms']
268
- puts format(str, ['MAX VMS', role['max_vms']])
279
+ puts Kernel.format(str, 'MAX VMS', role['max_vms'])
269
280
  end
270
281
  if role['coolddown']
271
- puts format(str, ['COOLDOWN', "#{role['cooldown']}s"])
282
+ puts Kernel.format(str, 'COOLDOWN', "#{role['cooldown']}s")
272
283
  end
273
284
  if role['shutdown_action']
274
- puts format(str, ['SHUTDOWN', role['shutdown_action']])
285
+ puts Kernel.format(str, 'SHUTDOWN', role['shutdown_action'])
275
286
  end
276
287
 
277
288
  puts 'NODES INFORMATION'
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -20,8 +20,14 @@ ONE_LOCATION = ENV['ONE_LOCATION']
20
20
 
21
21
  if !ONE_LOCATION
22
22
  RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
23
24
  else
24
25
  RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
25
31
  end
26
32
 
27
33
  $LOAD_PATH << RUBY_LIB_LOCATION
@@ -0,0 +1,303 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # -------------------------------------------------------------------------- #
4
+ # Copyright 2002-2019, OpenNebula Project, OpenNebula Systems #
5
+ # #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may #
7
+ # not use this file except in compliance with the License. You may obtain #
8
+ # a copy of the License at #
9
+ # #
10
+ # http://www.apache.org/licenses/LICENSE-2.0 #
11
+ # #
12
+ # Unless required by applicable law or agreed to in writing, software #
13
+ # distributed under the License is distributed on an "AS IS" BASIS, #
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
15
+ # See the License for the specific language governing permissions and #
16
+ # limitations under the License. #
17
+ #--------------------------------------------------------------------------- #
18
+
19
+ ONE_LOCATION = ENV['ONE_LOCATION']
20
+
21
+ if !ONE_LOCATION
22
+ RUBY_LIB_LOCATION = '/usr/lib/one/ruby'
23
+ GEMS_LOCATION = '/usr/share/one/gems'
24
+ else
25
+ RUBY_LIB_LOCATION = ONE_LOCATION + '/lib/ruby'
26
+ GEMS_LOCATION = ONE_LOCATION + '/share/gems'
27
+ end
28
+
29
+ if File.directory?(GEMS_LOCATION)
30
+ Gem.use_paths(GEMS_LOCATION)
31
+ end
32
+
33
+ $LOAD_PATH << RUBY_LIB_LOCATION
34
+ $LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
35
+
36
+ require 'command_parser'
37
+ require 'one_helper'
38
+ require 'one_helper/onehook_helper'
39
+
40
+ CommandParser::CmdParser.new(ARGV) do
41
+ usage '`onehook` <command> [<args>] [<options>]'
42
+ version OpenNebulaHelper::ONE_VERSION
43
+
44
+ helper = OneHookHelper.new
45
+
46
+ before_proc do
47
+ helper.set_client(options)
48
+ end
49
+
50
+ USE = {
51
+ :name => 'use',
52
+ :large => '--use',
53
+ :description => 'lock use actions'
54
+ }
55
+
56
+ MANAGE = {
57
+ :name => 'manage',
58
+ :large => '--manage',
59
+ :description => 'lock manage actions'
60
+ }
61
+
62
+ ADMIN = {
63
+ :name => 'admin',
64
+ :large => '--admin',
65
+ :description => 'lock admin actions'
66
+ }
67
+
68
+ ALL = {
69
+ :name => 'all',
70
+ :large => '--all',
71
+ :description => 'lock all actions'
72
+ }
73
+
74
+ EXECUTION = {
75
+ :name => 'execution',
76
+ :large => '--execution exeid',
77
+ :short => '-e exeid',
78
+ :format => String,
79
+ :description => 'execution ID'
80
+ }
81
+
82
+ set :format, :hookid, OpenNebulaHelper.rname_to_id_desc('HOOK') do |arg|
83
+ OpenNebulaHelper.rname_to_id(arg, 'HOOK')
84
+ end
85
+
86
+ ########################################################################
87
+ # Hook log Options
88
+ ########################################################################
89
+
90
+ ERROR = {
91
+ :name => 'error',
92
+ :large => '--error',
93
+ :description => 'Show only fail executions'
94
+ }
95
+
96
+ SUCCESS = {
97
+ :name => 'success',
98
+ :large => '--success',
99
+ :description => 'Show only success executions'
100
+ }
101
+
102
+ HOOK_ID = {
103
+ :name => 'hook_id',
104
+ :large => '--hook-id id',
105
+ :description => 'Hook ID to check logs',
106
+ :format => Integer
107
+ }
108
+
109
+ SINCE = {
110
+ :name => 'since',
111
+ :large => '--since date',
112
+ :description => 'First date to take logs',
113
+ :format => String
114
+ }
115
+
116
+ UNTIL = {
117
+ :name => 'until',
118
+ :large => '--until date',
119
+ :description => 'Last date to take logs',
120
+ :format => String
121
+ }
122
+
123
+ LOG_OPTIONS = [ERROR, SUCCESS, HOOK_ID, SINCE, UNTIL]
124
+
125
+ ########################################################################
126
+ # Global Options
127
+ ########################################################################
128
+ set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
129
+
130
+ list_options = CLIHelper::OPTIONS
131
+ list_options << OpenNebulaHelper::XML
132
+ list_options << OpenNebulaHelper::NUMERIC
133
+ list_options << OpenNebulaHelper::DESCRIBE
134
+
135
+ ########################################################################
136
+ # Commands
137
+ ########################################################################
138
+
139
+ create_desc = <<-EOT.unindent
140
+ Creates a new Hook from the given description
141
+
142
+ Examples:
143
+ - using a Hook description file:
144
+
145
+ onehook create hook.tmpl
146
+
147
+ EOT
148
+
149
+ command :create, create_desc, :file, :options =>
150
+ [OpenNebulaHelper::DRY] do
151
+ helper.create_resource(options) do |tmpl|
152
+ begin
153
+ if args[0]
154
+ template = File.read(args[0])
155
+ end
156
+
157
+ if options[:dry]
158
+ puts template
159
+ exit 0
160
+ else
161
+ tmpl.allocate(template)
162
+ end
163
+ rescue StandardError => e
164
+ STDERR.puts e.messsage
165
+ exit(-1)
166
+ end
167
+ end
168
+ end
169
+
170
+ delete_desc = <<-EOT.unindent
171
+ Deletes the given Hook
172
+ EOT
173
+
174
+ command :delete, delete_desc, [:range, :hookid_list] do
175
+ helper.perform_actions(args[0], options, 'deleted') do |t|
176
+ t.delete
177
+ end
178
+ end
179
+
180
+ update_desc = <<-EOT.unindent
181
+ Update the Hook contents. If a path is not provided the editor will
182
+ be launched to modify the current content.
183
+ EOT
184
+
185
+ command :update, update_desc, :hookid, [:file, nil],
186
+ :options => OpenNebulaHelper::APPEND do
187
+ helper.perform_action(args[0], options, 'modified') do |obj|
188
+ if options[:append]
189
+ str = OpenNebulaHelper.append_template(args[0], obj, args[1])
190
+ else
191
+ str = OpenNebulaHelper.update_template(args[0], obj, args[1])
192
+ end
193
+
194
+ helper.set_client(options)
195
+ obj = helper.retrieve_resource(obj.id)
196
+
197
+ obj.update(str, options[:append])
198
+ end
199
+ end
200
+
201
+ rename_desc = <<-EOT.unindent
202
+ Renames the Hook
203
+ EOT
204
+
205
+ command :rename, rename_desc, :hookid, :name do
206
+ helper.perform_action(args[0], options, 'renamed') do |o|
207
+ o.rename(args[1])
208
+ end
209
+ end
210
+
211
+ list_desc = <<-EOT.unindent
212
+ Lists Hooks in the pool
213
+ EOT
214
+
215
+ command :list, list_desc, [:filterflag, nil], :options => list_options do
216
+ helper.list_pool(options, false, args[0])
217
+ end
218
+
219
+ show_desc = <<-EOT.unindent
220
+ Shows information for the given Hook. An execution ID can be given to
221
+ obtain detailed information of a given hook execution
222
+ EOT
223
+
224
+ command :show, show_desc, :hookid,
225
+ :options => [OpenNebulaHelper::XML, OpenNebulaHelper::EXTENDED,
226
+ EXECUTION] do
227
+ helper.show_resource(args[0], options)
228
+ end
229
+
230
+ top_desc = <<-EOT.unindent
231
+ Lists Hooks continuously
232
+ EOT
233
+
234
+ command :top, top_desc, [:filterflag, nil], :options => list_options do
235
+ helper.list_pool(options, true, args[0])
236
+ end
237
+
238
+ lock_desc = <<-EOT.unindent
239
+ Locks a Hook with differents levels for lock any actions with this Hook,
240
+ show and monitoring never will be locked.
241
+ Valid states are: All.
242
+ Levels:
243
+ [Use]: locks Admin, Manage and Use actions.
244
+ [Manage]: locks Manage and Use actions.
245
+ [Admin]: locks only Admin actions.
246
+ EOT
247
+
248
+ command :lock, lock_desc, :hookid,
249
+ :options => [USE, MANAGE, ADMIN, ALL] do
250
+ helper.perform_action(args[0], options, 'Hook locked') do |t|
251
+ if !options[:use].nil?
252
+ level = 1
253
+ elsif !options[:manage].nil?
254
+ level = 2
255
+ elsif !options[:admin].nil?
256
+ level = 3
257
+ elsif !options[:all].nil?
258
+ level = 4
259
+ else
260
+ level = 1
261
+ end
262
+ t.lock(level)
263
+ end
264
+ end
265
+
266
+ unlock_desc = <<-EOT.unindent
267
+ Unlocks a Hook for unlock any actions with this Hook.
268
+ Valid states are: All.
269
+ EOT
270
+
271
+ command :unlock, unlock_desc, :hookid do
272
+ helper.perform_action(args[0], options, 'Hook unlocked') do |t|
273
+ t.unlock
274
+ end
275
+ end
276
+
277
+ retry_desc = <<-EOT.unindent
278
+ Retry a previous hook execution.
279
+ EOT
280
+
281
+ command :retry, retry_desc, :hookid, :execid do
282
+ helper.perform_action(args[0], options, 'Retry executed') do |t|
283
+ t.retry args[1].to_i
284
+ end
285
+ end
286
+
287
+ log_desc = <<-EOT.unindent
288
+ Get logs about hook executions
289
+
290
+ Examples:
291
+
292
+ ~ $ onehook log --since 09/19/19 # returns all logs since that date
293
+ ~ $ onehook log --error # returns all failing execs logs
294
+ ~ $ onehook log --hook-id 0 # returns all logs from hook 0
295
+
296
+ EOT
297
+
298
+ command :log, log_desc, :options => [LOG_OPTIONS, OpenNebulaHelper::XML] do
299
+ helper.hook_logs(options)
300
+
301
+ 0
302
+ end
303
+ end