opennebula-cli 5.12.13 → 5.13.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 +5 -5
- data/bin/oneacct +5 -14
- data/bin/oneacl +4 -15
- data/bin/onecluster +6 -17
- data/bin/onedatastore +6 -17
- data/bin/oneflow +81 -23
- data/bin/oneflow-template +51 -27
- data/bin/onegroup +6 -17
- data/bin/onehook +6 -17
- data/bin/onehost +4 -15
- data/bin/oneimage +95 -18
- data/bin/onemarket +6 -17
- data/bin/onemarketapp +113 -20
- data/bin/onesecgroup +9 -17
- data/bin/oneshowback +14 -20
- data/bin/onetemplate +8 -18
- data/bin/oneuser +26 -17
- data/bin/onevcenter +6 -28
- data/bin/onevdc +6 -17
- data/bin/onevm +142 -21
- data/bin/onevmgroup +9 -17
- data/bin/onevnet +4 -15
- data/bin/onevntemplate +7 -17
- data/bin/onevrouter +6 -17
- data/bin/onezone +6 -17
- data/lib/cli_helper.rb +7 -10
- data/lib/command_parser.rb +1 -1
- data/lib/one_helper/oneacct_helper.rb +9 -22
- data/lib/one_helper/oneacl_helper.rb +1 -1
- data/lib/one_helper/onecluster_helper.rb +1 -1
- data/lib/one_helper/onedatastore_helper.rb +11 -1
- data/lib/one_helper/oneflow_helper.rb +20 -5
- data/lib/one_helper/oneflowtemplate_helper.rb +28 -2
- data/lib/one_helper/onegroup_helper.rb +1 -1
- data/lib/one_helper/onehook_helper.rb +1 -1
- data/lib/one_helper/onehost_helper.rb +1 -5
- data/lib/one_helper/oneimage_helper.rb +7 -7
- data/lib/one_helper/onemarket_helper.rb +1 -1
- data/lib/one_helper/onemarketapp_helper.rb +494 -96
- data/lib/one_helper/onequota_helper.rb +1 -1
- data/lib/one_helper/onesecgroup_helper.rb +1 -1
- data/lib/one_helper/onetemplate_helper.rb +12 -1
- data/lib/one_helper/oneuser_helper.rb +11 -3
- data/lib/one_helper/onevcenter_helper.rb +176 -146
- data/lib/one_helper/onevdc_helper.rb +1 -1
- data/lib/one_helper/onevm_helper.rb +9 -9
- data/lib/one_helper/onevmgroup_helper.rb +1 -1
- data/lib/one_helper/onevnet_helper.rb +1 -1
- data/lib/one_helper/onevntemplate_helper.rb +1 -1
- data/lib/one_helper/onevrouter_helper.rb +1 -20
- data/lib/one_helper/onezone_helper.rb +12 -1
- data/lib/one_helper.rb +398 -37
- data/share/schemas/xsd/acct.xsd +179 -0
- data/share/schemas/xsd/acl_pool.xsd +22 -0
- data/share/schemas/xsd/api_info.xsd +43 -0
- data/share/schemas/xsd/cluster.xsd +34 -0
- data/share/schemas/xsd/cluster_pool.xsd +12 -0
- data/share/schemas/xsd/datastore.xsd +67 -0
- data/share/schemas/xsd/datastore_pool.xsd +12 -0
- data/share/schemas/xsd/document.xsd +42 -0
- data/share/schemas/xsd/document_pool.xsd +12 -0
- data/share/schemas/xsd/group.xsd +179 -0
- data/share/schemas/xsd/group_pool.xsd +194 -0
- data/share/schemas/xsd/hook.xsd +59 -0
- data/share/schemas/xsd/hook_message_api.xsd +14 -0
- data/share/schemas/xsd/hook_message_retry.xsd +12 -0
- data/share/schemas/xsd/hook_message_state.xsd +25 -0
- data/share/schemas/xsd/hook_pool.xsd +12 -0
- data/share/schemas/xsd/host.xsd +164 -0
- data/share/schemas/xsd/host_pool.xsd +12 -0
- data/share/schemas/xsd/image.xsd +123 -0
- data/share/schemas/xsd/image_pool.xsd +12 -0
- data/share/schemas/xsd/index.xsd +49 -0
- data/share/schemas/xsd/marketplace.xsd +44 -0
- data/share/schemas/xsd/marketplace_pool.xsd +12 -0
- data/share/schemas/xsd/marketplaceapp.xsd +56 -0
- data/share/schemas/xsd/marketplaceapp_pool.xsd +12 -0
- data/share/schemas/xsd/opennebula_configuration.xsd +412 -0
- data/share/schemas/xsd/raftstatus.xsd +18 -0
- data/share/schemas/xsd/security_group.xsd +74 -0
- data/share/schemas/xsd/security_group_pool.xsd +12 -0
- data/share/schemas/xsd/showback.xsd +29 -0
- data/share/schemas/xsd/user.xsd +186 -0
- data/share/schemas/xsd/user_pool.xsd +201 -0
- data/share/schemas/xsd/vdc.xsd +76 -0
- data/share/schemas/xsd/vdc_pool.xsd +12 -0
- data/share/schemas/xsd/vm.xsd +251 -0
- data/share/schemas/xsd/vm_group.xsd +59 -0
- data/share/schemas/xsd/vm_group_pool.xsd +12 -0
- data/share/schemas/xsd/vm_pool.xsd +114 -0
- data/share/schemas/xsd/vmtemplate.xsd +52 -0
- data/share/schemas/xsd/vmtemplate_pool.xsd +12 -0
- data/share/schemas/xsd/vnet.xsd +137 -0
- data/share/schemas/xsd/vnet_pool.xsd +85 -0
- data/share/schemas/xsd/vntemplate.xsd +50 -0
- data/share/schemas/xsd/vntemplate_pool.xsd +12 -0
- data/share/schemas/xsd/vrouter.xsd +49 -0
- data/share/schemas/xsd/vrouter_pool.xsd +12 -0
- data/share/schemas/xsd/zone.xsd +40 -0
- data/share/schemas/xsd/zone_pool.xsd +36 -0
- metadata +92 -30
- data/lib/one_helper/oneprovision_helper.rb +0 -362
data/bin/onehost
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -28,25 +28,14 @@ else
|
|
|
28
28
|
REMOTES_LOCATION = ONE_LOCATION + '/var/remotes/'
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
32
31
|
if File.directory?(GEMS_LOCATION)
|
|
33
32
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
34
33
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
35
34
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
39
|
-
begin
|
|
40
|
-
verb = $VERBOSE
|
|
41
|
-
$VERBOSE = nil
|
|
42
|
-
require 'rubygems'
|
|
43
|
-
Gem.use_paths(real_gems_path)
|
|
44
|
-
ensure
|
|
45
|
-
$VERBOSE = verb
|
|
46
|
-
end
|
|
35
|
+
require 'rubygems'
|
|
36
|
+
Gem.use_paths(real_gems_path)
|
|
47
37
|
end
|
|
48
38
|
end
|
|
49
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
50
39
|
|
|
51
40
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
52
41
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -297,7 +286,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
297
286
|
EOT
|
|
298
287
|
|
|
299
288
|
command :show, show_desc, :hostid,
|
|
300
|
-
:options => [OpenNebulaHelper::
|
|
289
|
+
:options => [OpenNebulaHelper::FORMAT, OpenNebulaHelper::DECRYPT] do
|
|
301
290
|
helper.show_resource(args[0], options)
|
|
302
291
|
end
|
|
303
292
|
|
data/bin/oneimage
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -26,29 +26,19 @@ else
|
|
|
26
26
|
GEMS_LOCATION = ONE_LOCATION + '/share/gems'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
30
29
|
if File.directory?(GEMS_LOCATION)
|
|
31
30
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
32
31
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
33
32
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
37
|
-
begin
|
|
38
|
-
verb = $VERBOSE
|
|
39
|
-
$VERBOSE = nil
|
|
40
|
-
require 'rubygems'
|
|
41
|
-
Gem.use_paths(real_gems_path)
|
|
42
|
-
ensure
|
|
43
|
-
$VERBOSE = verb
|
|
44
|
-
end
|
|
33
|
+
require 'rubygems'
|
|
34
|
+
Gem.use_paths(real_gems_path)
|
|
45
35
|
end
|
|
46
36
|
end
|
|
47
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
48
37
|
|
|
49
38
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
50
39
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
51
40
|
|
|
41
|
+
require 'tempfile'
|
|
52
42
|
require 'command_parser'
|
|
53
43
|
require 'one_helper/oneimage_helper'
|
|
54
44
|
require 'one_helper/onedatastore_helper'
|
|
@@ -87,17 +77,25 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
87
77
|
:description => 'lock all actions'
|
|
88
78
|
}
|
|
89
79
|
|
|
80
|
+
NO_CONTEXT = {
|
|
81
|
+
:name => 'no_context',
|
|
82
|
+
:large => '--no-context',
|
|
83
|
+
:description => 'Do not add context when building from Dockerfile'
|
|
84
|
+
}
|
|
85
|
+
|
|
90
86
|
########################################################################
|
|
91
87
|
# Global Options
|
|
92
88
|
########################################################################
|
|
93
89
|
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
|
|
94
90
|
|
|
95
|
-
list_options
|
|
96
|
-
list_options
|
|
91
|
+
list_options = CLIHelper::OPTIONS
|
|
92
|
+
list_options += OpenNebulaHelper::FORMAT
|
|
97
93
|
list_options << OpenNebulaHelper::NUMERIC
|
|
98
94
|
list_options << OpenNebulaHelper::DESCRIBE
|
|
99
95
|
|
|
100
|
-
CREATE_OPTIONS = [OneDatastoreHelper::DATASTORE,
|
|
96
|
+
CREATE_OPTIONS = [OneDatastoreHelper::DATASTORE,
|
|
97
|
+
OneImageHelper::IMAGE,
|
|
98
|
+
NO_CONTEXT]
|
|
101
99
|
|
|
102
100
|
########################################################################
|
|
103
101
|
# Formatters for arguments
|
|
@@ -182,6 +180,15 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
182
180
|
next -1
|
|
183
181
|
end
|
|
184
182
|
|
|
183
|
+
# Add context information when building image (just working on Docker)
|
|
184
|
+
if (options.key? :no_context) && options[:path]
|
|
185
|
+
if options[:path].include?('?')
|
|
186
|
+
options[:path] << '&context=no'
|
|
187
|
+
else
|
|
188
|
+
options[:path] << '?context=no'
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
185
192
|
helper.create_resource(options) do |image|
|
|
186
193
|
begin
|
|
187
194
|
if args[0]
|
|
@@ -404,7 +411,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
404
411
|
Shows information for the given Image
|
|
405
412
|
EOT
|
|
406
413
|
|
|
407
|
-
command :show, show_desc, :imageid,
|
|
414
|
+
command :show, show_desc, :imageid,
|
|
415
|
+
:options => [OpenNebulaHelper::FORMAT, OpenNebulaHelper::DECRYPT] do
|
|
408
416
|
helper.show_resource(args[0], options)
|
|
409
417
|
end
|
|
410
418
|
|
|
@@ -464,4 +472,73 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
464
472
|
|
|
465
473
|
return 0
|
|
466
474
|
end
|
|
475
|
+
|
|
476
|
+
dockerfile_desc = <<-EOT.unindent
|
|
477
|
+
Create an image based on a Dockerfile
|
|
478
|
+
EOT
|
|
479
|
+
|
|
480
|
+
command :dockerfile,
|
|
481
|
+
dockerfile_desc,
|
|
482
|
+
:options => CREATE_OPTIONS +
|
|
483
|
+
OneImageHelper::TEMPLATE_OPTIONS do
|
|
484
|
+
# Check user options
|
|
485
|
+
unless options[:datastore]
|
|
486
|
+
STDERR.puts 'Datastore to save the image is mandatory: '
|
|
487
|
+
STDERR.puts '\t -d datastore_id'
|
|
488
|
+
exit(-1)
|
|
489
|
+
end
|
|
490
|
+
|
|
491
|
+
unless options[:name]
|
|
492
|
+
STDERR.puts 'No name provided'
|
|
493
|
+
exit(-1)
|
|
494
|
+
end
|
|
495
|
+
|
|
496
|
+
unless options[:size]
|
|
497
|
+
STDERR.puts 'No size given'
|
|
498
|
+
exit(-1)
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
# Prepare editor
|
|
502
|
+
tmp = Tempfile.new('dockerfile')
|
|
503
|
+
|
|
504
|
+
if ENV['EDITOR']
|
|
505
|
+
editor_path = ENV['EDITOR']
|
|
506
|
+
else
|
|
507
|
+
editor_path = EDITOR_PATH
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
system("#{editor_path} #{tmp.path}")
|
|
511
|
+
|
|
512
|
+
unless $CHILD_STATUS.exitstatus.zero?
|
|
513
|
+
STDERR.puts('Editor not defined')
|
|
514
|
+
exit(-1)
|
|
515
|
+
end
|
|
516
|
+
|
|
517
|
+
tmp.close
|
|
518
|
+
|
|
519
|
+
# Create image
|
|
520
|
+
helper.create_resource(options) do |image|
|
|
521
|
+
begin
|
|
522
|
+
b64 = Base64.strict_encode64(File.read(tmp.path))
|
|
523
|
+
options[:path] = "dockerfile:///?fileb64=#{b64}&" \
|
|
524
|
+
"size=#{options[:size]}"
|
|
525
|
+
|
|
526
|
+
options[:path] << '&context=no' if options.key?(:no_context)
|
|
527
|
+
|
|
528
|
+
res = OneImageHelper.create_image_template(options)
|
|
529
|
+
|
|
530
|
+
if res.first != 0
|
|
531
|
+
STDERR.puts res.last
|
|
532
|
+
next -1
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
template = res.last
|
|
536
|
+
|
|
537
|
+
image.allocate(template, options[:datastore], false)
|
|
538
|
+
rescue StandardError => e
|
|
539
|
+
STDERR.puts e.message
|
|
540
|
+
exit(-1)
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
end
|
|
467
544
|
end
|
data/bin/onemarket
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -26,25 +26,14 @@ else
|
|
|
26
26
|
GEMS_LOCATION = ONE_LOCATION + '/share/gems'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
30
29
|
if File.directory?(GEMS_LOCATION)
|
|
31
30
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
32
31
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
33
32
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
37
|
-
begin
|
|
38
|
-
verb = $VERBOSE
|
|
39
|
-
$VERBOSE = nil
|
|
40
|
-
require 'rubygems'
|
|
41
|
-
Gem.use_paths(real_gems_path)
|
|
42
|
-
ensure
|
|
43
|
-
$VERBOSE = verb
|
|
44
|
-
end
|
|
33
|
+
require 'rubygems'
|
|
34
|
+
Gem.use_paths(real_gems_path)
|
|
45
35
|
end
|
|
46
36
|
end
|
|
47
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
48
37
|
|
|
49
38
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
50
39
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -67,8 +56,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
67
56
|
########################################################################
|
|
68
57
|
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
|
|
69
58
|
|
|
70
|
-
list_options
|
|
71
|
-
list_options
|
|
59
|
+
list_options = CLIHelper::OPTIONS
|
|
60
|
+
list_options += OpenNebulaHelper::FORMAT
|
|
72
61
|
list_options << OpenNebulaHelper::NUMERIC
|
|
73
62
|
list_options << OpenNebulaHelper::DESCRIBE
|
|
74
63
|
|
|
@@ -168,7 +157,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
168
157
|
EOT
|
|
169
158
|
|
|
170
159
|
command :show, show_desc,
|
|
171
|
-
:marketplaceid, :options => OpenNebulaHelper::
|
|
160
|
+
:marketplaceid, :options => OpenNebulaHelper::FORMAT do
|
|
172
161
|
helper.show_resource(args[0], options)
|
|
173
162
|
end
|
|
174
163
|
|
data/bin/onemarketapp
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -28,25 +28,14 @@ else
|
|
|
28
28
|
VAR_LOCATION = ONE_LOCATION + '/var'
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
32
31
|
if File.directory?(GEMS_LOCATION)
|
|
33
32
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
34
33
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
35
34
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
39
|
-
begin
|
|
40
|
-
verb = $VERBOSE
|
|
41
|
-
$VERBOSE = nil
|
|
42
|
-
require 'rubygems'
|
|
43
|
-
Gem.use_paths(real_gems_path)
|
|
44
|
-
ensure
|
|
45
|
-
$VERBOSE = verb
|
|
46
|
-
end
|
|
35
|
+
require 'rubygems'
|
|
36
|
+
Gem.use_paths(real_gems_path)
|
|
47
37
|
end
|
|
48
38
|
end
|
|
49
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
50
39
|
|
|
51
40
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
52
41
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -56,6 +45,9 @@ require 'one_helper/onemarketapp_helper'
|
|
|
56
45
|
require 'one_helper/onemarket_helper'
|
|
57
46
|
require 'one_helper/onedatastore_helper'
|
|
58
47
|
|
|
48
|
+
require 'vcenter_driver'
|
|
49
|
+
CONFIG = VCenterConf.new
|
|
50
|
+
|
|
59
51
|
CommandParser::CmdParser.new(ARGV) do
|
|
60
52
|
usage '`onemarket` <command> [<args>] [<options>]'
|
|
61
53
|
version OpenNebulaHelper::ONE_VERSION
|
|
@@ -97,20 +89,56 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
97
89
|
:description => 'DockerHub image tag (default latest)'
|
|
98
90
|
}
|
|
99
91
|
|
|
92
|
+
YES = {
|
|
93
|
+
:name => 'yes',
|
|
94
|
+
:large => '--yes',
|
|
95
|
+
:description => 'Import associated VM templates/images',
|
|
96
|
+
:proc => lambda do |_, options|
|
|
97
|
+
options[:yes] = 'yes'
|
|
98
|
+
end
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
NO = {
|
|
102
|
+
:name => 'no',
|
|
103
|
+
:large => '--no',
|
|
104
|
+
:description => 'Do not import/export associated VM templates/images',
|
|
105
|
+
:proc => lambda do |_, options|
|
|
106
|
+
options[:no] = 'no'
|
|
107
|
+
end
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
TEMPLATE = {
|
|
111
|
+
:name => 'template',
|
|
112
|
+
:large => '--template template_id ',
|
|
113
|
+
:description => 'Associate with VM template',
|
|
114
|
+
:format => Integer
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
MARKET = {
|
|
118
|
+
:name => 'market',
|
|
119
|
+
:large => '--market market_id',
|
|
120
|
+
:format => Integer,
|
|
121
|
+
:description => 'Market to import all objects'
|
|
122
|
+
}
|
|
123
|
+
|
|
100
124
|
########################################################################
|
|
101
125
|
# Global Options
|
|
102
126
|
########################################################################
|
|
103
127
|
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
|
|
104
128
|
|
|
105
|
-
list_options
|
|
106
|
-
list_options
|
|
129
|
+
list_options = CLIHelper::OPTIONS
|
|
130
|
+
list_options += OpenNebulaHelper::FORMAT
|
|
107
131
|
list_options << OpenNebulaHelper::NUMERIC
|
|
108
132
|
list_options << OpenNebulaHelper::DESCRIBE
|
|
109
133
|
|
|
110
134
|
CREATE_OPTIONS = [OneMarketPlaceHelper::MARKETPLACE]
|
|
111
135
|
EXPORT_OPTIONS = [OneDatastoreHelper::DATASTORE,
|
|
136
|
+
OneDatastoreHelper::FILE_DATASTORE,
|
|
112
137
|
OneMarketPlaceAppHelper::VMNAME,
|
|
113
|
-
TAG
|
|
138
|
+
TAG,
|
|
139
|
+
NO,
|
|
140
|
+
TEMPLATE]
|
|
141
|
+
IMPORT_OPTIONS = [YES, NO, MARKET, OneMarketPlaceAppHelper::VMNAME]
|
|
114
142
|
|
|
115
143
|
########################################################################
|
|
116
144
|
# Formatters for arguments
|
|
@@ -189,6 +217,60 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
189
217
|
end
|
|
190
218
|
end
|
|
191
219
|
|
|
220
|
+
import_desc = <<-EOT.unindent
|
|
221
|
+
Imports a service template into the marketplace
|
|
222
|
+
EOT
|
|
223
|
+
|
|
224
|
+
command [:'service-template', :import],
|
|
225
|
+
import_desc,
|
|
226
|
+
:service_template_id,
|
|
227
|
+
:options => IMPORT_OPTIONS do
|
|
228
|
+
helper.import(args[0], ServiceTemplate) do |id|
|
|
229
|
+
helper.import_service_template(id, options)
|
|
230
|
+
end
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
vm_import_desc = <<-EOT.unindent
|
|
234
|
+
Imports a VM template into the marketplace
|
|
235
|
+
EOT
|
|
236
|
+
|
|
237
|
+
command [:'vm-template', :import],
|
|
238
|
+
vm_import_desc,
|
|
239
|
+
:vm_template_id,
|
|
240
|
+
:options => IMPORT_OPTIONS do
|
|
241
|
+
helper.import(args[0], TemplatePool) do |id|
|
|
242
|
+
helper.import_vm_template(id, options)
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
vm_import_desc = <<-EOT.unindent
|
|
247
|
+
Imports a VM into the marketplace
|
|
248
|
+
EOT
|
|
249
|
+
|
|
250
|
+
command [:vm, :import],
|
|
251
|
+
vm_import_desc,
|
|
252
|
+
:vm_id,
|
|
253
|
+
:options => IMPORT_OPTIONS do
|
|
254
|
+
t_id = helper.save_as_template(
|
|
255
|
+
helper.get_obj_id(args[0], VirtualMachinePool)
|
|
256
|
+
)
|
|
257
|
+
|
|
258
|
+
if OpenNebula.is_error?(t_id)
|
|
259
|
+
STDERR.puts t_id.message
|
|
260
|
+
exit(-1)
|
|
261
|
+
else
|
|
262
|
+
helper.import(t_id, TemplatePool) do |id|
|
|
263
|
+
helper.import_vm_template(id, options)
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
puts
|
|
268
|
+
puts 'To delete saved template use: ' \
|
|
269
|
+
"`onetemplate delete #{t_id} --recursive`"
|
|
270
|
+
|
|
271
|
+
0
|
|
272
|
+
end
|
|
273
|
+
|
|
192
274
|
export_desc = <<-EOT.unindent
|
|
193
275
|
Exports the marketplace app to the OpenNebula cloud
|
|
194
276
|
EOT
|
|
@@ -197,20 +279,31 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
197
279
|
helper.perform_action(args[0], options, 'exported') do |obj|
|
|
198
280
|
tag ="tag=#{options[:tag]}" if options[:tag]
|
|
199
281
|
|
|
282
|
+
obj.extend(MarketPlaceAppExt)
|
|
283
|
+
|
|
200
284
|
rc = obj.export(
|
|
201
285
|
:dsid => options[:datastore],
|
|
202
286
|
:name => args[1],
|
|
203
287
|
:vmtemplate_name => options[:vmname],
|
|
204
|
-
:url_args => tag
|
|
288
|
+
:url_args => tag,
|
|
289
|
+
:notemplate => options[:no] == 'no',
|
|
290
|
+
:template => options[:template],
|
|
291
|
+
:default_template => CONFIG[:default_template]
|
|
205
292
|
)
|
|
206
293
|
|
|
207
|
-
|
|
294
|
+
if OpenNebula.is_error?(rc)
|
|
295
|
+
STDERR.puts rc.message
|
|
296
|
+
exit(-1)
|
|
297
|
+
end
|
|
208
298
|
|
|
209
299
|
rc.each do |key, value|
|
|
300
|
+
next if value.nil? || value.empty? || key == :image_type
|
|
301
|
+
|
|
210
302
|
puts key.to_s.upcase
|
|
211
303
|
value.each do |id|
|
|
212
304
|
if OpenNebula.is_error?(id)
|
|
213
305
|
puts id.to_str
|
|
306
|
+
exit(-1)
|
|
214
307
|
else
|
|
215
308
|
puts " ID: #{id}"
|
|
216
309
|
end
|
|
@@ -314,7 +407,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
314
407
|
Shows information for the given marketplace app
|
|
315
408
|
EOT
|
|
316
409
|
|
|
317
|
-
command :show, show_desc, :appid, :options => OpenNebulaHelper::
|
|
410
|
+
command :show, show_desc, :appid, :options => OpenNebulaHelper::FORMAT do
|
|
318
411
|
helper.show_resource(args[0], options)
|
|
319
412
|
end
|
|
320
413
|
|
data/bin/onesecgroup
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -26,25 +26,14 @@ else
|
|
|
26
26
|
GEMS_LOCATION = ONE_LOCATION + '/share/gems'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
30
29
|
if File.directory?(GEMS_LOCATION)
|
|
31
30
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
32
31
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
33
32
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
37
|
-
begin
|
|
38
|
-
verb = $VERBOSE
|
|
39
|
-
$VERBOSE = nil
|
|
40
|
-
require 'rubygems'
|
|
41
|
-
Gem.use_paths(real_gems_path)
|
|
42
|
-
ensure
|
|
43
|
-
$VERBOSE = verb
|
|
44
|
-
end
|
|
33
|
+
require 'rubygems'
|
|
34
|
+
Gem.use_paths(real_gems_path)
|
|
45
35
|
end
|
|
46
36
|
end
|
|
47
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
48
37
|
|
|
49
38
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
50
39
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -67,8 +56,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
67
56
|
########################################################################
|
|
68
57
|
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
|
|
69
58
|
|
|
70
|
-
list_options
|
|
71
|
-
list_options
|
|
59
|
+
list_options = CLIHelper::OPTIONS
|
|
60
|
+
list_options += OpenNebulaHelper::FORMAT
|
|
72
61
|
list_options << OpenNebulaHelper::NUMERIC
|
|
73
62
|
list_options << OpenNebulaHelper::DESCRIBE
|
|
74
63
|
|
|
@@ -235,7 +224,10 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
235
224
|
Shows information for the given Security Group
|
|
236
225
|
EOT
|
|
237
226
|
|
|
238
|
-
command :show,
|
|
227
|
+
command :show,
|
|
228
|
+
show_desc,
|
|
229
|
+
:secgroupid,
|
|
230
|
+
:options => OpenNebulaHelper::FORMAT do
|
|
239
231
|
helper.show_resource(args[0], options)
|
|
240
232
|
end
|
|
241
233
|
end
|
data/bin/oneshowback
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -26,25 +26,14 @@ else
|
|
|
26
26
|
GEMS_LOCATION = ONE_LOCATION + '/share/gems'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
30
29
|
if File.directory?(GEMS_LOCATION)
|
|
31
30
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
32
31
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
33
32
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
37
|
-
begin
|
|
38
|
-
verb = $VERBOSE
|
|
39
|
-
$VERBOSE = nil
|
|
40
|
-
require 'rubygems'
|
|
41
|
-
Gem.use_paths(real_gems_path)
|
|
42
|
-
ensure
|
|
43
|
-
$VERBOSE = verb
|
|
44
|
-
end
|
|
33
|
+
require 'rubygems'
|
|
34
|
+
Gem.use_paths(real_gems_path)
|
|
45
35
|
end
|
|
46
36
|
end
|
|
47
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
48
37
|
|
|
49
38
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
50
39
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -106,27 +95,31 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
106
95
|
|
|
107
96
|
pool = OpenNebula::VirtualMachinePool.new(helper.client)
|
|
108
97
|
|
|
109
|
-
if options[:json] || options[:xml]
|
|
98
|
+
if options[:json] || options[:xml] || options[:yaml]
|
|
110
99
|
xml_str = pool.showback_xml(filter_flag, common_opts)
|
|
111
100
|
if OpenNebula.is_error?(xml_str)
|
|
112
101
|
puts xml_str.message
|
|
113
102
|
exit(-1)
|
|
114
103
|
end
|
|
115
104
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
xmldoc.initialize_xml(xml_str, 'SHOWBACK_RECORDS')
|
|
105
|
+
xmldoc = XMLElement.new
|
|
106
|
+
xmldoc.initialize_xml(xml_str, 'SHOWBACK_RECORDS')
|
|
119
107
|
|
|
108
|
+
if options[:json]
|
|
120
109
|
puts JSON.pretty_generate(xmldoc.to_hash)
|
|
110
|
+
elsif options[:yaml]
|
|
111
|
+
puts xmldoc.to_hash.to_yaml(:indent => 4)
|
|
121
112
|
elsif options[:xml]
|
|
122
113
|
puts xml_str
|
|
123
114
|
end
|
|
124
115
|
else
|
|
116
|
+
# rubocop:disable Naming/VariableNumber
|
|
125
117
|
order_by = {}
|
|
126
118
|
if !options[:csv]
|
|
127
119
|
order_by[:order_by_1] = 'YEAR'
|
|
128
120
|
order_by[:order_by_2] = 'MONTH'
|
|
129
121
|
end
|
|
122
|
+
# rubocop:enable Naming/VariableNumber
|
|
130
123
|
|
|
131
124
|
data_hash = pool.showback(filter_flag,
|
|
132
125
|
common_opts.merge(order_by))
|
|
@@ -186,8 +179,9 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
186
179
|
end_year)
|
|
187
180
|
|
|
188
181
|
if OpenNebula.is_error?(rc)
|
|
189
|
-
if rc.message.include?
|
|
190
|
-
warn
|
|
182
|
+
if rc.message.include? 'ReadTimeout'
|
|
183
|
+
warn 'Showback calculation takes too long, '\
|
|
184
|
+
'continuing in background'
|
|
191
185
|
exit_code 0
|
|
192
186
|
else
|
|
193
187
|
warn rc.message
|
data/bin/onetemplate
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
3
|
# -------------------------------------------------------------------------- #
|
|
4
|
-
# Copyright 2002-
|
|
4
|
+
# Copyright 2002-2021, OpenNebula Project, OpenNebula Systems #
|
|
5
5
|
# #
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
|
7
7
|
# not use this file except in compliance with the License. You may obtain #
|
|
@@ -26,25 +26,14 @@ else
|
|
|
26
26
|
GEMS_LOCATION = ONE_LOCATION + '/share/gems'
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
# %%RUBYGEMS_SETUP_BEGIN%%
|
|
30
29
|
if File.directory?(GEMS_LOCATION)
|
|
31
30
|
real_gems_path = File.realpath(GEMS_LOCATION)
|
|
32
31
|
if !defined?(Gem) || Gem.path != [real_gems_path]
|
|
33
32
|
$LOAD_PATH.reject! {|l| l =~ /vendor_ruby/ }
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# https://github.com/OpenNebula/one/issues/5379
|
|
37
|
-
begin
|
|
38
|
-
verb = $VERBOSE
|
|
39
|
-
$VERBOSE = nil
|
|
40
|
-
require 'rubygems'
|
|
41
|
-
Gem.use_paths(real_gems_path)
|
|
42
|
-
ensure
|
|
43
|
-
$VERBOSE = verb
|
|
44
|
-
end
|
|
33
|
+
require 'rubygems'
|
|
34
|
+
Gem.use_paths(real_gems_path)
|
|
45
35
|
end
|
|
46
36
|
end
|
|
47
|
-
# %%RUBYGEMS_SETUP_END%%
|
|
48
37
|
|
|
49
38
|
$LOAD_PATH << RUBY_LIB_LOCATION
|
|
50
39
|
$LOAD_PATH << RUBY_LIB_LOCATION + '/cli'
|
|
@@ -92,8 +81,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
92
81
|
########################################################################
|
|
93
82
|
set :option, CommandParser::OPTIONS + OpenNebulaHelper::CLIENT_OPTIONS
|
|
94
83
|
|
|
95
|
-
list_options
|
|
96
|
-
list_options
|
|
84
|
+
list_options = CLIHelper::OPTIONS
|
|
85
|
+
list_options += OpenNebulaHelper::FORMAT
|
|
97
86
|
list_options << OpenNebulaHelper::NUMERIC
|
|
98
87
|
list_options << OpenNebulaHelper::DESCRIBE
|
|
99
88
|
|
|
@@ -277,7 +266,7 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
277
266
|
else
|
|
278
267
|
optionals = OneTemplateHelper.get_user_inputs(
|
|
279
268
|
t.to_hash,
|
|
280
|
-
options[:user_inputs_keys]
|
|
269
|
+
options[:user_inputs_keys]
|
|
281
270
|
)
|
|
282
271
|
|
|
283
272
|
user_inputs = user_inputs + "\n" + optionals
|
|
@@ -383,7 +372,8 @@ CommandParser::CmdParser.new(ARGV) do
|
|
|
383
372
|
EOT
|
|
384
373
|
|
|
385
374
|
command :show, show_desc, :templateid,
|
|
386
|
-
:options => [OpenNebulaHelper::
|
|
375
|
+
:options => [OpenNebulaHelper::FORMAT,
|
|
376
|
+
OneTemplateHelper::EXTENDED] do
|
|
387
377
|
helper.show_resource(args[0], options)
|
|
388
378
|
end
|
|
389
379
|
|