opennebula-cli 7.2.0 → 7.3.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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/bin/oneflow +52 -1
  3. data/bin/onegroup +33 -0
  4. data/bin/oneimage +7 -2
  5. data/bin/onesecgroup +2 -1
  6. data/bin/onevm +27 -8
  7. data/bin/onevnet +6 -21
  8. data/bin/onevntemplate +3 -3
  9. data/lib/command_parser.rb +134 -125
  10. data/lib/load_opennebula_paths.rb +5 -0
  11. data/lib/ods_helper.rb +724 -0
  12. data/lib/one_helper/oneacct_helper.rb +116 -108
  13. data/lib/one_helper/onedatastore_helper.rb +86 -79
  14. data/lib/one_helper/onegroup_helper.rb +20 -0
  15. data/lib/one_helper/onehost_helper.rb +10 -1
  16. data/lib/one_helper/oneimage_helper.rb +9 -2
  17. data/lib/one_helper/onemarket_helper.rb +58 -57
  18. data/lib/one_helper/onequota_helper.rb +239 -189
  19. data/lib/one_helper/onesecgroup_helper.rb +86 -84
  20. data/lib/one_helper/onetemplate_helper.rb +63 -63
  21. data/lib/one_helper/onevdc_helper.rb +44 -44
  22. data/lib/one_helper/onevm_helper.rb +5 -12
  23. data/lib/one_helper/onevmgroup_helper.rb +65 -64
  24. data/lib/one_helper/onevnet_helper.rb +6 -2
  25. data/lib/one_helper/onevntemplate_helper.rb +42 -39
  26. data/lib/one_helper/onevrouter_helper.rb +85 -86
  27. data/lib/one_helper/onezone_helper.rb +97 -100
  28. data/lib/one_helper.rb +102 -70
  29. data/share/schemas/xsd/acct.xsd +3 -104
  30. data/share/schemas/xsd/backupjob.xsd +1 -0
  31. data/share/schemas/xsd/cluster.xsd +4 -21
  32. data/share/schemas/xsd/datastore.xsd +4 -29
  33. data/share/schemas/xsd/document.xsd +3 -25
  34. data/share/schemas/xsd/group.xsd +17 -13
  35. data/share/schemas/xsd/group_pool.xsd +18 -14
  36. data/share/schemas/xsd/hook.xsd +2 -0
  37. data/share/schemas/xsd/host.xsd +5 -7
  38. data/share/schemas/xsd/image.xsd +2 -25
  39. data/share/schemas/xsd/marketplace.xsd +3 -22
  40. data/share/schemas/xsd/marketplaceapp.xsd +3 -25
  41. data/share/schemas/xsd/opennebula_configuration.xsd +2 -0
  42. data/share/schemas/xsd/requirements.xsd +3 -21
  43. data/share/schemas/xsd/security_group.xsd +6 -43
  44. data/share/schemas/xsd/shared.xsd +3 -3
  45. data/share/schemas/xsd/vdc.xsd +2 -7
  46. data/share/schemas/xsd/vm.xsd +2 -0
  47. data/share/schemas/xsd/vm_group.xsd +3 -25
  48. data/share/schemas/xsd/vm_pool.xsd +2 -0
  49. data/share/schemas/xsd/vmtemplate.xsd +3 -25
  50. data/share/schemas/xsd/vnet.xsd +13 -67
  51. data/share/schemas/xsd/vnet_pool.xsd +13 -58
  52. data/share/schemas/xsd/vntemplate.xsd +3 -25
  53. data/share/schemas/xsd/vrouter.xsd +4 -32
  54. metadata +8 -6
@@ -135,13 +135,13 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
135
135
  }
136
136
 
137
137
  POFF = {
138
- :name => 'poweroff',
138
+ :name => 'poff',
139
139
  :large => '--poff',
140
140
  :description => 'Do the migrate by poweringoff the vm'
141
141
  }
142
142
 
143
143
  POFFHARD = {
144
- :name => 'poweroff_hard',
144
+ :name => 'poff-hard',
145
145
  :large => '--poff-hard',
146
146
  :description => 'Do the migrate by poweringoff hard the vm'
147
147
  }
@@ -558,9 +558,9 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
558
558
  end
559
559
 
560
560
  def get_migration_type(options)
561
- if options[:poweroff]
561
+ if options[:poff]
562
562
  1
563
- elsif options[:poweroff_hard]
563
+ elsif options[:'poff-hard']
564
564
  2
565
565
  else
566
566
  0
@@ -644,9 +644,7 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
644
644
  end
645
645
  end
646
646
 
647
- # rubocop:disable Style/SpecialGlobalVars
648
- $?.exitstatus
649
- # rubocop:enable Style/SpecialGlobalVars
647
+ $CHILD_STATUS.exitstatus
650
648
  end
651
649
 
652
650
  def get_backup_mode(vm_id)
@@ -659,11 +657,6 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
659
657
  end
660
658
  end
661
659
 
662
- def set_backup_mode(vm_ref, backup_mode)
663
- vm = retrieve_resource(vm_ref)
664
- vm.updateconf("BACKUP_CONFIG = [\"MODE\"=\"#{backup_mode}\"]")
665
- end
666
-
667
660
  private
668
661
 
669
662
  def factory(id = nil)
@@ -18,69 +18,69 @@ require 'one_helper'
18
18
  require 'opennebula/vm_group'
19
19
  require 'opennebula/vm_group_pool'
20
20
 
21
+ # Helper class for VMGroup commands
21
22
  class OneVMGroupHelper < OpenNebulaHelper::OneHelper
23
+
22
24
  def self.rname
23
- "VM_GROUP"
25
+ 'VM_GROUP'
24
26
  end
25
27
 
26
28
  def self.conf_file
27
- "onevmgroup.yaml"
29
+ 'onevmgroup.yaml'
28
30
  end
29
31
 
30
32
  def format_pool(options)
31
33
  config_file = self.class.table_conf
32
34
 
33
- table = CLIHelper::ShowTable.new(config_file, self) do
34
- column :ID, "ONE identifier for the VM Group", :size=>4 do |d|
35
- d["ID"]
35
+ CLIHelper::ShowTable.new(config_file, self) do
36
+ column :ID, 'ONE identifier for the VM Group', :size=>4 do |d|
37
+ d['ID']
36
38
  end
37
39
 
38
- column :NAME, "Name of the VM Group", :left, :size=>15 do |d|
39
- d["NAME"]
40
+ column :NAME, 'Name of the VM Group', :left, :size=>15 do |d|
41
+ d['NAME']
40
42
  end
41
43
 
42
- column :USER, "Username of the VM Group owner", :left,
43
- :size=>8 do |d|
44
+ column :USER, 'Username of the VM Group owner', :left,
45
+ :size=>8 do |d|
44
46
  helper.user_name(d, options)
45
47
  end
46
48
 
47
- column :GROUP, "Group of the VM Group", :left, :size=>8 do |d|
49
+ column :GROUP, 'Group of the VM Group', :left, :size=>8 do |d|
48
50
  helper.group_name(d, options)
49
51
  end
50
52
 
51
- column :VMS, "Number of VMs in the VM Group", :left, :size=>4 do |d|
52
- vms = 0
53
+ column :VMS, 'Number of VMs in the VM Group', :left, :size=>4 do |d|
54
+ vms = 0
53
55
 
54
- if !d["ROLES"]["ROLE"].nil?
55
- roles = [d["ROLES"]["ROLE"]].flatten
56
- roles.each { |r|
57
- vms += r["VMS"].split(',').size if !r["VMS"].nil?
58
- }
56
+ if !d['ROLES']['ROLE'].nil?
57
+ roles = [d['ROLES']['ROLE']].flatten
58
+ roles.each do |r|
59
+ vms += r['VMS'].split(',').size unless r['VMS'].nil?
60
+ end
59
61
  end
60
62
 
61
63
  vms
62
64
  end
63
65
 
64
- column :ROLES, "Roles in the VM Group", :left, :size=>36 do |d|
66
+ column :ROLES, 'Roles in the VM Group', :left, :size=>36 do |d|
65
67
  begin
66
- roles = [d["ROLES"]["ROLE"]].flatten
67
- roles_names = ""
68
+ roles = [d['ROLES']['ROLE']].flatten
69
+ roles_names = ''
68
70
 
69
71
  if !roles.nil?
70
- rnames = roles.collect { |i| i["NAME"] }
71
- roles_names = rnames.join(", ") if !rnames.empty?
72
+ rnames = roles.collect {|i| i['NAME'] }
73
+ roles_names = rnames.join(', ') unless rnames.empty?
72
74
  end
73
75
 
74
76
  roles_names
75
- rescue
76
- "-"
77
+ rescue StandardError
78
+ '-'
77
79
  end
78
80
  end
79
81
 
80
82
  default :ID, :USER, :GROUP, :NAME, :VMS, :ROLES
81
83
  end
82
-
83
- table
84
84
  end
85
85
 
86
86
  def retrieve_role_id(vmg_id, id)
@@ -100,7 +100,7 @@ class OneVMGroupHelper < OpenNebulaHelper::OneHelper
100
100
 
101
101
  private
102
102
 
103
- def factory(id=nil)
103
+ def factory(id = nil)
104
104
  if id
105
105
  OpenNebula::VMGroup.new_with_id(id, @client)
106
106
  else
@@ -109,84 +109,85 @@ class OneVMGroupHelper < OpenNebulaHelper::OneHelper
109
109
  end
110
110
  end
111
111
 
112
- def factory_pool(user_flag=-2)
112
+ def factory_pool(user_flag = -2)
113
113
  OpenNebula::VMGroupPool.new(@client, user_flag)
114
114
  end
115
115
 
116
- def format_resource(vmgroup, options = {})
117
- str="%-15s: %-20s"
118
- str_h1="%-80s"
116
+ def format_resource(vmgroup, _options = {})
117
+ str='%-15s: %-20s'
118
+ str_h1='%-80s'
119
119
 
120
120
  CLIHelper.print_header(
121
- str_h1 % "VM GROUP #{vmgroup['ID']} INFORMATION")
122
- puts str % ["ID", vmgroup.id.to_s]
123
- puts str % ["NAME", vmgroup.name]
124
- puts str % ["USER", vmgroup['UNAME']]
125
- puts str % ["GROUP", vmgroup['GNAME']]
126
- puts str % ["LOCK", OpenNebulaHelper.level_lock_to_str(vmgroup['LOCK/LOCKED'])]
127
-
128
- CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
129
-
121
+ str_h1 % "VM GROUP #{vmgroup['ID']} INFORMATION"
122
+ )
123
+ puts format(str, 'ID', vmgroup.id.to_s)
124
+ puts format(str, 'NAME', vmgroup.name)
125
+ puts format(str, 'USER', vmgroup['UNAME'])
126
+ puts format(str, 'GROUP', vmgroup['GNAME'])
127
+ puts format(str, 'LOCK', OpenNebulaHelper.level_lock_to_str(vmgroup['LOCK/LOCKED']))
130
128
  puts
131
129
 
132
- ["OWNER", "GROUP", "OTHER"].each { |e|
133
- mask = "---"
134
- mask[0] = "u" if vmgroup["PERMISSIONS/#{e}_U"] == "1"
135
- mask[1] = "m" if vmgroup["PERMISSIONS/#{e}_M"] == "1"
136
- mask[2] = "a" if vmgroup["PERMISSIONS/#{e}_A"] == "1"
130
+ CLIHelper.print_header(str_h1 % 'PERMISSIONS', false)
131
+
132
+ ['OWNER', 'GROUP', 'OTHER'].each do |e|
133
+ mask = '---'
134
+ mask[0] = 'u' if vmgroup["PERMISSIONS/#{e}_U"] == '1'
135
+ mask[1] = 'm' if vmgroup["PERMISSIONS/#{e}_M"] == '1'
136
+ mask[2] = 'a' if vmgroup["PERMISSIONS/#{e}_A"] == '1'
137
137
 
138
- puts str % [e, mask]
139
- }
138
+ puts format(str, e, mask)
139
+ end
140
140
 
141
141
  puts
142
142
 
143
- CLIHelper.print_header(str_h1 % "ROLES", false)
143
+ CLIHelper.print_header(str_h1 % 'ROLES', false)
144
144
 
145
145
  if !vmgroup.to_hash['VM_GROUP']['ROLES']['ROLE'].nil?
146
146
  roles = [vmgroup.to_hash['VM_GROUP']['ROLES']['ROLE']].flatten
147
147
  end
148
148
 
149
149
  CLIHelper::ShowTable.new(nil, self) do
150
- column :ID, "", :left, :size=>4 do |d|
151
- d["ID"]
150
+ column :ID, '', :left, :size=>4 do |d|
151
+ d['ID']
152
152
  end
153
153
 
154
- column :NAME, "", :left, :size=>8 do |d|
155
- d["NAME"]
154
+ column :NAME, '', :left, :size=>8 do |d|
155
+ d['NAME']
156
156
  end
157
157
 
158
- column :POLICY, "", :left, :size=>12 do |d|
159
- if d["POLICY"].nil?
158
+ column :POLICY, '', :left, :size=>12 do |d|
159
+ if d['POLICY'].nil?
160
160
  '-'
161
161
  else
162
- d["POLICY"]
162
+ d['POLICY']
163
163
  end
164
164
  end
165
165
 
166
- column :AFFINED_HOSTS, "", :left, :size=>18 do |d|
167
- if d["HOST_AFFINED"].nil?
166
+ column :AFFINED_HOSTS, '', :left, :size=>18 do |d|
167
+ if d['HOST_AFFINED'].nil?
168
168
  '-'
169
169
  else
170
- d["HOST_AFFINED"]
170
+ d['HOST_AFFINED']
171
171
  end
172
172
  end
173
173
 
174
- column :ANTI_AFFINED_HOST, "", :left, :size=>18 do |d|
175
- if d["HOST_ANTI_AFFINED"].nil?
174
+ column :ANTI_AFFINED_HOST, '', :left, :size=>18 do |d|
175
+ if d['HOST_ANTI_AFFINED'].nil?
176
176
  '-'
177
177
  else
178
- d["HOST_ANTI_AFFINED"]
178
+ d['HOST_ANTI_AFFINED']
179
179
  end
180
180
  end
181
181
 
182
- column :VIRTUAL_MACHINES, "", :left, :size=>20 do |d|
183
- d["VMS"]
182
+ column :VIRTUAL_MACHINES, '', :left, :size=>20 do |d|
183
+ d['VMS']
184
184
  end
185
185
  end.show(roles, {})
186
186
 
187
187
  puts
188
188
 
189
- CLIHelper.print_header(str_h1 % "TEMPLATE CONTENTS",false)
189
+ CLIHelper.print_header(str_h1 % 'TEMPLATE CONTENTS', false)
190
190
  puts vmgroup.template_str
191
191
  end
192
+
192
193
  end
@@ -17,6 +17,7 @@ require 'one_helper'
17
17
  require 'one_helper/onevm_helper'
18
18
  require 'opennebula/virtual_network'
19
19
  require 'opennebula/virtual_network_pool'
20
+ require 'opennebula/template_pool'
20
21
 
21
22
  # OneVnet Command Helper
22
23
  class OneVNetHelper < OpenNebulaHelper::OneHelper
@@ -238,8 +239,11 @@ class OneVNetHelper < OpenNebulaHelper::OneHelper
238
239
  pool = factory_pool
239
240
  tmpl_pool = OpenNebula::TemplatePool.new(@client, -2)
240
241
 
241
- pool.info
242
- tmpl_pool.info
242
+ rc = pool.info
243
+ return rc if OpenNebula.is_error?(rc)
244
+
245
+ rc = tmpl_pool.info
246
+ return rc if OpenNebula.is_error?(rc)
243
247
 
244
248
  pool.each do |img|
245
249
  attrs = { :id => img['ID'],
@@ -19,39 +19,41 @@ require 'one_helper/onetemplate_helper'
19
19
  require 'opennebula/vntemplate'
20
20
  require 'opennebula/vntemplate_pool'
21
21
 
22
+ # Helper class for VNTemplate commands
22
23
  class OneVNTemplateHelper < OneTemplateHelper
24
+
23
25
  VN_NAME={
24
- :name => "name",
25
- :large => "--name name",
26
+ :name => 'name',
27
+ :large => '--name name',
26
28
  :format => String,
27
- :description => <<-EOT.strip
28
- Name of the new VN TEMPLATE. When instantiating
29
- multiple VNs you can use the \"%i\" wildcard to produce
30
- different names such as vm-0, vm-1...
31
- EOT
29
+ :description => <<~EOT.strip
30
+ Name of the new VN TEMPLATE. When instantiating
31
+ multiple VNs you can use the \"%i\" wildcard to produce
32
+ different names such as vm-0, vm-1...
33
+ EOT
32
34
  }
33
35
 
34
36
  MULTIPLE={
35
- :name => "multiple",
36
- :short => "-m x",
37
- :large => "--multiple x",
37
+ :name => 'multiple',
38
+ :short => '-m x',
39
+ :large => '--multiple x',
38
40
  :format => Integer,
39
- :description => "Instance multiple VNs"
41
+ :description => 'Instance multiple VNs'
40
42
  }
41
43
 
42
44
  EXTENDED={
43
- :name => "extended",
44
- :large => "--extended",
45
- :description => "Process the template and included extended "+
46
- "information"
45
+ :name => 'extended',
46
+ :large => '--extended',
47
+ :description => 'Process the template and included extended '+
48
+ 'information'
47
49
  }
48
50
 
49
51
  def self.rname
50
- "VNTEMPLATE"
52
+ 'VNTEMPLATE'
51
53
  end
52
54
 
53
55
  def self.conf_file
54
- "onevntemplate.yaml"
56
+ 'onevntemplate.yaml'
55
57
  end
56
58
 
57
59
  INT_EXP = /^-?\d+$/
@@ -59,7 +61,7 @@ EOT
59
61
 
60
62
  private
61
63
 
62
- def factory(id=nil)
64
+ def factory(id = nil)
63
65
  if id
64
66
  OpenNebula::VNTemplate.new_with_id(id, @client)
65
67
  else
@@ -68,38 +70,39 @@ EOT
68
70
  end
69
71
  end
70
72
 
71
- def factory_pool(user_flag=-2)
73
+ def factory_pool(user_flag = -2)
72
74
  OpenNebula::VNTemplatePool.new(@client, user_flag)
73
75
  end
74
76
 
75
- def format_resource(template, options = {})
76
- str="%-15s: %-20s"
77
- str_h1="%-80s"
77
+ def format_resource(template, _options = {})
78
+ str='%-15s: %-20s'
79
+ str_h1='%-80s'
78
80
 
79
81
  CLIHelper.print_header(
80
- str_h1 % "TEMPLATE #{template['ID']} INFORMATION")
81
- puts str % ["ID", template.id.to_s]
82
- puts str % ["NAME", template.name]
83
- puts str % ["USER", template['UNAME']]
84
- puts str % ["GROUP", template['GNAME']]
85
- puts str % ["LOCK", OpenNebulaHelper.level_lock_to_str(template['LOCK/LOCKED'])]
86
- puts str % ["REGISTER TIME",
87
- OpenNebulaHelper.time_to_str(template['REGTIME'])]
82
+ str_h1 % "TEMPLATE #{template['ID']} INFORMATION"
83
+ )
84
+ puts format(str, 'ID', template.id.to_s)
85
+ puts format(str, 'NAME', template.name)
86
+ puts format(str, 'USER', template['UNAME'])
87
+ puts format(str, 'GROUP', template['GNAME'])
88
+ puts format(str, 'LOCK', OpenNebulaHelper.level_lock_to_str(template['LOCK/LOCKED']))
89
+ puts format(str, 'REGISTER TIME', OpenNebulaHelper.time_to_str(template['REGTIME']))
88
90
  puts
89
91
 
90
- CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
92
+ CLIHelper.print_header(str_h1 % 'PERMISSIONS', false)
91
93
 
92
- ["OWNER", "GROUP", "OTHER"].each { |e|
93
- mask = "---"
94
- mask[0] = "u" if template["PERMISSIONS/#{e}_U"] == "1"
95
- mask[1] = "m" if template["PERMISSIONS/#{e}_M"] == "1"
96
- mask[2] = "a" if template["PERMISSIONS/#{e}_A"] == "1"
94
+ ['OWNER', 'GROUP', 'OTHER'].each do |e|
95
+ mask = '---'
96
+ mask[0] = 'u' if template["PERMISSIONS/#{e}_U"] == '1'
97
+ mask[1] = 'm' if template["PERMISSIONS/#{e}_M"] == '1'
98
+ mask[2] = 'a' if template["PERMISSIONS/#{e}_A"] == '1'
97
99
 
98
- puts str % [e, mask]
99
- }
100
+ puts format(str, e, mask)
101
+ end
100
102
  puts
101
103
 
102
- CLIHelper.print_header(str_h1 % "TEMPLATE CONTENTS",false)
104
+ CLIHelper.print_header(str_h1 % 'TEMPLATE CONTENTS', false)
103
105
  puts template.template_str
104
106
  end
107
+
105
108
  end