hammer_cli_foreman 0.17.2 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/doc/host_create.md +17 -17
  3. data/doc/release_notes.md +19 -6
  4. data/lib/hammer_cli_foreman/command_extensions.rb +2 -3
  5. data/lib/hammer_cli_foreman/command_extensions/fields.rb +13 -0
  6. data/lib/hammer_cli_foreman/command_extensions/hosts.rb +1 -0
  7. data/lib/hammer_cli_foreman/command_extensions/hosts/help.rb +2 -0
  8. data/lib/hammer_cli_foreman/command_extensions/hosts/help/compute_resources.rb +85 -0
  9. data/lib/hammer_cli_foreman/command_extensions/hosts/help/interfaces.rb +55 -0
  10. data/lib/hammer_cli_foreman/commands.rb +111 -0
  11. data/lib/hammer_cli_foreman/common_parameter.rb +4 -2
  12. data/lib/hammer_cli_foreman/compute_attribute.rb +20 -36
  13. data/lib/hammer_cli_foreman/compute_resource.rb +5 -25
  14. data/lib/hammer_cli_foreman/compute_resource/base.rb +6 -4
  15. data/lib/hammer_cli_foreman/compute_resource/ec2.rb +10 -9
  16. data/lib/hammer_cli_foreman/compute_resource/gce.rb +22 -8
  17. data/lib/hammer_cli_foreman/compute_resource/libvirt.rb +14 -15
  18. data/lib/hammer_cli_foreman/compute_resource/openstack.rb +11 -9
  19. data/lib/hammer_cli_foreman/compute_resource/ovirt.rb +22 -17
  20. data/lib/hammer_cli_foreman/compute_resource/rackspace.rb +9 -6
  21. data/lib/hammer_cli_foreman/compute_resource/register_compute_resources.rb +1 -2
  22. data/lib/hammer_cli_foreman/compute_resource/utils.rb +27 -0
  23. data/lib/hammer_cli_foreman/compute_resource/vmware.rb +46 -37
  24. data/lib/hammer_cli_foreman/host.rb +30 -7
  25. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +16 -1
  26. data/lib/hammer_cli_foreman/image.rb +1 -0
  27. data/lib/hammer_cli_foreman/option_builders.rb +46 -0
  28. data/lib/hammer_cli_foreman/option_sources.rb +2 -0
  29. data/lib/hammer_cli_foreman/option_sources/fields_params.rb +20 -0
  30. data/lib/hammer_cli_foreman/option_sources/new_params.rb +26 -0
  31. data/lib/hammer_cli_foreman/report_template.rb +6 -2
  32. data/lib/hammer_cli_foreman/version.rb +1 -1
  33. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  34. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  35. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  36. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  37. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  38. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  39. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  40. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  41. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  43. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  44. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  45. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  46. data/test/data/1.22/foreman_api.json +1 -1
  47. data/test/functional/host_test.rb +89 -0
  48. data/test/functional/report_template_test.rb +19 -0
  49. data/test/unit/commands_test.rb +24 -1
  50. metadata +13 -7
  51. data/lib/hammer_cli_foreman/compute_resource/help_utils.rb +0 -34
  52. data/lib/hammer_cli_foreman/hosts/common_update_help.rb +0 -47
@@ -32,9 +32,11 @@ module HammerCLIForeman
32
32
  :default => 'string',
33
33
  :format => HammerCLI::Options::Normalizers::Enum.new(Parameter::KEY_TYPES)
34
34
 
35
- def action
35
+ attr_reader :action
36
+
37
+ def execute
36
38
  @action ||= parameter_exist? ? :update : :create
37
- @action
39
+ super
38
40
  end
39
41
 
40
42
  def success_message
@@ -1,6 +1,6 @@
1
- require 'hammer_cli_foreman/image'
2
1
  require 'hammer_cli_foreman/compute_resource/register_compute_resources'
3
- require 'hammer_cli_foreman/compute_resource/help_utils'
2
+ require 'hammer_cli_foreman/compute_resource/utils'
3
+ require 'hammer_cli_foreman/image'
4
4
 
5
5
  module HammerCLIForeman
6
6
  class ComputeAttribute < HammerCLIForeman::Command
@@ -22,7 +22,7 @@ module HammerCLIForeman
22
22
  end
23
23
 
24
24
  class Create < HammerCLIForeman::CreateCommand
25
- desc _('Create compute profile set of values')
25
+ desc _('Create compute profile set of values')
26
26
 
27
27
  option '--compute-attributes', 'COMPUTE_ATTRS', _('Compute resource attributes'),
28
28
  :format => HammerCLI::Options::Normalizers::KeyValueList.new
@@ -31,10 +31,6 @@ module HammerCLIForeman
31
31
  option '--volume', 'VOLUME', _('Volume parameters, should be comma separated list of values'),
32
32
  :format => HammerCLI::Options::Normalizers::KeyValueList.new, :multivalued => true
33
33
 
34
- extend_help do |h|
35
- ::HammerCLIForeman::ComputeResources.extend_help(h, :all)
36
- end
37
-
38
34
  validate_options do
39
35
  any(:option_compute_profile_id, :option_compute_profile_name ).required
40
36
  any(:option_compute_resource_id, :option_compute_resource_name).required
@@ -42,7 +38,7 @@ module HammerCLIForeman
42
38
 
43
39
  def request_params
44
40
  params = super
45
- compute_resource_name = HammerCLIForeman.record_to_common_format(HammerCLIForeman.foreman_resource(:compute_resources).call(:show, 'id' => options["option_compute_resource_id"] ))["provider_friendly_name"].downcase
41
+ compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
46
42
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
47
43
  params['compute_attribute']['vm_attrs'] = option_compute_attributes || {}
48
44
  params['compute_attribute']['vm_attrs'][interfaces_attr_name]= HammerCLIForeman::ComputeAttribute.attribute_hash(option_interface_list) unless option_interface_list.empty?
@@ -53,6 +49,8 @@ module HammerCLIForeman
53
49
  success_message _('Compute profile attributes are set.')
54
50
  failure_message _('Could not set the compute profile attributes')
55
51
  build_options
52
+
53
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.new)
56
54
  end
57
55
 
58
56
  class Update < HammerCLIForeman::UpdateCommand
@@ -65,20 +63,15 @@ module HammerCLIForeman
65
63
  option '--volume', 'VOLUME', _('Volume parameters, should be comma separated list of values'),
66
64
  :format => HammerCLI::Options::Normalizers::KeyValueList.new, :multivalued => true
67
65
 
68
- extend_help do |h|
69
- ::HammerCLIForeman::ComputeResources.extend_help(h, :all)
70
- end
71
-
72
66
  validate_options do
73
67
  any(:option_compute_profile_id, :option_compute_profile_name ).required
74
68
  any(:option_compute_resource_id, :option_compute_resource_name).required
75
69
  end
76
70
 
77
-
78
71
  def request_params
79
72
 
80
73
  params = HammerCLIForeman::ComputeAttribute.get_params(options)
81
- compute_resource_name = HammerCLIForeman.record_to_common_format(HammerCLIForeman.foreman_resource(:compute_resources).call(:show, 'id' => options["option_compute_resource_id"] ))["provider_friendly_name"].downcase
74
+ compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
82
75
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
83
76
 
84
77
  raise ArgumentError, "Compute profile value to update does not exist yet; it needs to be created first" if !params['compute_attribute'].key?('id')
@@ -102,6 +95,8 @@ module HammerCLIForeman
102
95
  failure_message _('Could not update the compute profile attributes')
103
96
 
104
97
  build_options :without => :id
98
+
99
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.new)
105
100
  end
106
101
 
107
102
  # Using the Update command because adding a new interface is done by modifying existing compute_attribute
@@ -111,10 +106,6 @@ module HammerCLIForeman
111
106
  option '--interface', 'SET_VALUES', _('Interface parameters, should be comma separated list of values'),
112
107
  :format => HammerCLI::Options::Normalizers::KeyValueList.new, :required => true
113
108
 
114
- extend_help do |h|
115
- ::HammerCLIForeman::ComputeResources.extend_help(h, :interface)
116
- end
117
-
118
109
  def validate_options
119
110
  super
120
111
  validator.any(:option_compute_profile_id,:option_compute_profile_name).required
@@ -125,9 +116,7 @@ module HammerCLIForeman
125
116
  params = HammerCLIForeman::ComputeAttribute.get_params(options)
126
117
 
127
118
  raise ArgumentError, "Compute profile value to update does not exist yet; it needs to be created first" if !params['compute_attribute'].key?('id')
128
- compute_resource_name = HammerCLIForeman.record_to_common_format(HammerCLIForeman.foreman_resource(:compute_resources).call(:show, 'id' => options["option_compute_resource_id"] ))["provider_friendly_name"].downcase
129
-
130
-
119
+ compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
131
120
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
132
121
  interface_attr = params['compute_attribute']['vm_attrs'][interfaces_attr_name] || {}
133
122
  new_interface_id = (interface_attr.keys.max.to_i + 1 ).to_s if interface_attr.any?
@@ -143,6 +132,8 @@ module HammerCLIForeman
143
132
  failure_message _('Could not create interface')
144
133
 
145
134
  build_options :without => :id
135
+
136
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(attributes: :interface).new)
146
137
  end
147
138
 
148
139
  class UpdateInterface < HammerCLIForeman::UpdateCommand
@@ -157,10 +148,6 @@ module HammerCLIForeman
157
148
  :required => true,
158
149
  :format => HammerCLI::Options::Normalizers::Number.new
159
150
 
160
- extend_help do |h|
161
- ::HammerCLIForeman::ComputeResources.extend_help(h, :interface)
162
- end
163
-
164
151
  def validate_options
165
152
  super
166
153
  validator.any(:option_compute_profile_id, :option_compute_profile_name).required
@@ -170,7 +157,7 @@ module HammerCLIForeman
170
157
  def request_params
171
158
  params = HammerCLIForeman::ComputeAttribute.get_params(options)
172
159
  raise ArgumentError, "Compute profile value to update does not exist yet; it needs to be created first" if !params['compute_attribute'].key?('id')
173
- compute_resource_name = HammerCLIForeman.record_to_common_format(HammerCLIForeman.foreman_resource(:compute_resources).call(:show, 'id' => options["option_compute_resource_id"] ))["provider_friendly_name"].downcase
160
+ compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
174
161
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
175
162
  params['id'] = params['compute_attribute']['id']
176
163
  params['compute_attribute']['vm_attrs'][interfaces_attr_name] ||= {}
@@ -180,6 +167,8 @@ module HammerCLIForeman
180
167
  success_message _('Interface was updated.')
181
168
  failure_message _('Could not update interface')
182
169
  build_options :without => :id
170
+
171
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(attributes: :interface).new)
183
172
  end
184
173
 
185
174
  # Using the Update command because removing an interface is done by modifying existing compute_attribute
@@ -198,7 +187,7 @@ module HammerCLIForeman
198
187
  def request_params
199
188
  params = HammerCLIForeman::ComputeAttribute.get_params(options)
200
189
  raise ArgumentError, "Compute profile value to update does not exist yet; it needs to be created first" if !params['compute_attribute'].key?('id')
201
- compute_resource_name = HammerCLIForeman.record_to_common_format(HammerCLIForeman.foreman_resource(:compute_resources).call(:show, 'id' => options["option_compute_resource_id"] ))["provider_friendly_name"].downcase
190
+ compute_resource_name = HammerCLIForeman::ComputeResources.resource_provider(options['option_compute_resource_id'])
202
191
  interfaces_attr_name = ::HammerCLIForeman.compute_resources[compute_resource_name].interfaces_attrs_name
203
192
  params['id'] = params['compute_attribute']['id']
204
193
  if params['compute_attribute']['vm_attrs'][interfaces_attr_name].has_key?(option_interface_id.to_s)
@@ -221,10 +210,6 @@ module HammerCLIForeman
221
210
  option '--volume', 'VOLUME', _('Volume parameters, should be comma separated list of values'),
222
211
  :format => HammerCLI::Options::Normalizers::KeyValueList.new, :required => true
223
212
 
224
- extend_help do |h|
225
- ::HammerCLIForeman::ComputeResources.extend_help(h, :volume)
226
- end
227
-
228
213
  def validate_options
229
214
  super
230
215
  validator.any(:option_compute_profile_id, :option_compute_profile_name).required
@@ -246,6 +231,8 @@ module HammerCLIForeman
246
231
  success_message _('Volume was created.')
247
232
  failure_message _('Could not create volume')
248
233
  build_options :without => :id
234
+
235
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(attributes: :volume).new)
249
236
  end
250
237
 
251
238
  class UpdateVolume < HammerCLIForeman::UpdateCommand
@@ -259,11 +246,6 @@ module HammerCLIForeman
259
246
  :required => true,
260
247
  :format => HammerCLI::Options::Normalizers::Number.new
261
248
 
262
- extend_help do |h|
263
- ::HammerCLIForeman::ComputeResources.extend_help(h, :volume)
264
- end
265
-
266
-
267
249
  def validate_options
268
250
  super
269
251
  validator.any(:option_compute_profile_id, :option_compute_profile_name).required
@@ -281,6 +263,8 @@ module HammerCLIForeman
281
263
  success_message _('Volume was updated.')
282
264
  failure_message _('Could not update volume')
283
265
  build_options :without => :id
266
+
267
+ extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(attributes: :volume).new)
284
268
  end
285
269
 
286
270
  # Using the Update command because removing a volume is done by modifying existing compute_attribute
@@ -1,7 +1,6 @@
1
1
  require 'hammer_cli_foreman/image'
2
2
  require 'hammer_cli_foreman/compute_resource/register_compute_resources'
3
3
 
4
-
5
4
  module HammerCLIForeman
6
5
 
7
6
  class ComputeResource < HammerCLIForeman::Command
@@ -31,27 +30,6 @@ module HammerCLIForeman
31
30
  class InfoCommand < HammerCLIForeman::InfoCommand
32
31
  include ProviderNameLegacy
33
32
 
34
- PROVIDER_SPECIFIC_FIELDS = {
35
- 'ovirt' => [
36
- Fields::Field.new(:label => _('Datacenter'), :path => [:datacenter])
37
- ],
38
- 'ec2' => [
39
- Fields::Field.new(:label => _('Region'), :path => [:region])
40
- ],
41
- 'vmware' => [
42
- Fields::Field.new(:label => _('Datacenter'), :path => [:datacenter]),
43
- Fields::Field.new(:label => _('Server'), :path => [:server])
44
- ],
45
- 'openstack' => [
46
- Fields::Field.new(:label => _('Tenant'), :path => [:tenant])
47
- ],
48
- 'rackspace' => [
49
- Fields::Field.new(:label => _('Region'), :path => [:region])
50
- ],
51
- 'libvirt' => [
52
- ]
53
- }
54
-
55
33
  output ListCommand.output_definition do
56
34
  field :url, _("Url")
57
35
  field :description, _("Description")
@@ -61,9 +39,11 @@ module HammerCLIForeman
61
39
  end
62
40
 
63
41
  def print_data(data)
64
- provider = data["provider"].downcase
65
- output_definition.fields.concat(PROVIDER_SPECIFIC_FIELDS[provider] || [])
66
- super(data)
42
+ provider = ::HammerCLIForeman.compute_resources[data['provider'].downcase]
43
+ if provider
44
+ output_definition.fields.concat(provider.provider_specific_fields || [])
45
+ super(data)
46
+ end
67
47
  end
68
48
 
69
49
  build_options
@@ -1,12 +1,14 @@
1
1
  module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class Base
4
- attr_reader :name
4
+ def name; ''; end
5
5
  def compute_attributes; []; end
6
6
  def interface_attributes; []; end
7
7
  def volume_attributes; []; end
8
- def interfaces_attrs_name; "interfaces_attributes" ; end
9
- def mandatory_resource_options; [:name, :provider]; end
8
+ def interfaces_attrs_name; 'interfaces_attributes'; end
9
+ def host_attributes; []; end
10
+ def provider_specific_fields; []; end
11
+ def mandatory_resource_options; %i[name provider]; end
10
12
  end
11
13
  end
12
- end
14
+ end
@@ -2,23 +2,24 @@ module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class EC2 < Base
4
4
  def name
5
- _('EC2')
5
+ 'EC2'
6
6
  end
7
7
 
8
8
  def compute_attributes
9
+ %w[flavor_id image_id availability_zone security_group_ids managed_ip]
10
+ end
11
+
12
+ def provider_specific_fields
9
13
  [
10
- 'flavor_id',
11
- 'image_id',
12
- 'availability_zone',
13
- 'security_group_ids',
14
- 'managed_ip'
14
+ Fields::Field.new(:label => _('Region'), :path => [:region])
15
15
  ]
16
16
  end
17
17
 
18
18
  def mandatory_resource_options
19
- super + [:region, :user, :password]
19
+ super + %i[region user password]
20
20
  end
21
21
  end
22
- HammerCLIForeman.register_compute_resource('ec2', EC2.new )
22
+
23
+ HammerCLIForeman.register_compute_resource('ec2', EC2.new)
23
24
  end
24
- end
25
+ end
@@ -2,22 +2,36 @@ module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class GCE < Base
4
4
  def name
5
- _('GCE')
5
+ 'GCE'
6
6
  end
7
7
 
8
8
  def compute_attributes
9
+ %w[machine_type image_id network associate_external_ip]
10
+ end
11
+
12
+ def interfaces_attrs_name
13
+ 'network_interfaces_nics_attributes'
14
+ end
15
+
16
+ def volume_attributes
9
17
  [
10
- 'machine_type',
11
- 'image_id',
12
- 'network',
13
- 'external_ip'
18
+ ['size_gb', _('Volume size in GB, integer value')]
14
19
  ]
15
20
  end
16
21
 
17
- def interfaces_attrs_name
18
- "network_interfaces_nics_attributes"
22
+ def provider_specific_fields
23
+ [
24
+ Fields::Field.new(:label => _('Project'), :path => [:project]),
25
+ Fields::Field.new(:label => _('Email'), :path => [:email]),
26
+ Fields::Field.new(:label => _('Key Path'), :path => [:key_path]),
27
+ ]
28
+ end
29
+
30
+ def mandatory_resource_options
31
+ super + %I{project key_path zone}
19
32
  end
20
33
  end
34
+
21
35
  HammerCLIForeman.register_compute_resource('gce', GCE.new)
22
36
  end
23
- end
37
+ end
@@ -2,48 +2,47 @@ module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class Libvirt < Base
4
4
  def name
5
- _('Libvirt')
5
+ 'Libvirt'
6
6
  end
7
7
 
8
8
  def compute_attributes
9
9
  [
10
- ['cpus', _('Number of CPUs')],
11
- ['memory', _('String, amount of memory, value in bytes')],
12
- ['start', _('Boolean (expressed as 0 or 1), whether to start the machine or not')]
10
+ ['cpus', _('Number of CPUs')],
11
+ ['memory', _('String, amount of memory, value in bytes')]
13
12
  ]
14
13
  end
15
14
 
16
15
  def host_attributes
17
16
  [
18
- ['start', _('Boolean (expressed as 0 or 1), whether to start the machine or not')]
17
+ ['start', _('Boolean (expressed as 0 or 1), whether to start the machine or not')]
19
18
  ]
20
19
  end
21
20
 
22
21
  def interface_attributes
23
22
  [
24
- ['type', _('Possible values: %s') % 'bridge, network'],
25
- ['bridge', _('Name of interface according to type')],
26
- ['model', _('Possible values: %s') % 'virtio, rtl8139, ne2k_pci, pcnet, e1000']
23
+ ['type', _('Possible values: %s') % 'bridge, network'],
24
+ ['bridge', _('Name of interface according to type')],
25
+ ['model', _('Possible values: %s') % 'virtio, rtl8139, ne2k_pci, pcnet, e1000']
27
26
  ]
28
27
  end
29
28
 
30
29
  def volume_attributes
31
30
  [
32
- ['pool_name', _('One of available storage pools')],
33
- ['capacity', _('String value, eg. 10G')],
34
- ['format_type', _('Possible values: %s') % 'raw, qcow2']
31
+ ['pool_name', _('One of available storage pools')],
32
+ ['capacity', _('String value, eg. 10G')],
33
+ ['format_type', _('Possible values: %s') % 'raw, qcow2']
35
34
  ]
36
35
  end
37
36
 
38
37
  def interfaces_attrs_name
39
- "nics_attributes"
38
+ 'nics_attributes'
40
39
  end
41
40
 
42
41
  def mandatory_resource_options
43
- super + [:url]
42
+ super + %i[url]
44
43
  end
45
-
46
44
  end
45
+
47
46
  HammerCLIForeman.register_compute_resource('libvirt', Libvirt.new)
48
47
  end
49
- end
48
+ end
@@ -2,24 +2,26 @@ module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class OpenStack < Base
4
4
  def name
5
- _('OpenStack')
5
+ 'OpenStack'
6
6
  end
7
7
 
8
8
  def compute_attributes
9
+ %w[flavor_ref image_ref tenant_id security_groups network]
10
+ end
11
+
12
+ def provider_specific_fields
9
13
  [
10
- 'flavor_ref',
11
- 'image_ref',
12
- 'tenant_id',
13
- 'security_groups',
14
- 'network'
14
+ Fields::Field.new(:label => _('Tenant'), :path => [:tenant]),
15
+ Fields::Field.new(:label => _('Project domain name'), :path => [:project_domain_name]),
16
+ Fields::Field.new(:label => _('Project domain ID'), :path => [:project_domain_id])
15
17
  ]
16
18
  end
17
19
 
18
20
  def mandatory_resource_options
19
- super + [:url, :user, :password]
21
+ super + %i[url user password]
20
22
  end
21
-
22
23
  end
24
+
23
25
  HammerCLIForeman.register_compute_resource('openstack', OpenStack.new)
24
26
  end
25
- end
27
+ end
@@ -2,46 +2,51 @@ module HammerCLIForeman
2
2
  module ComputeResources
3
3
  class Ovirt < Base
4
4
  def name
5
- _('oVirt')
5
+ 'oVirt'
6
6
  end
7
7
 
8
8
  def compute_attributes
9
9
  [
10
- ['cluster', _('ID of cluster to use')],
11
- ['template', _('Hardware profile to use')],
12
- ['cores', _('Integer value, number of cores')],
13
- ['memory', _('Amount of memory, integer value in bytes')],
10
+ ['cluster', _('ID of cluster to use')],
11
+ ['template', _('Hardware profile to use')],
12
+ ['cores', _('Integer value, number of cores')],
13
+ ['memory', _('Amount of memory, integer value in bytes')]
14
14
  ]
15
15
  end
16
16
 
17
17
  def host_attributes
18
18
  [
19
- ['start', _('Boolean (expressed as 0 or 1), whether to start the machine or not')]
20
-
19
+ ['start', _('Boolean (expressed as 0 or 1), whether to start the machine or not')]
21
20
  ]
22
21
  end
23
22
 
24
23
  def interface_attributes
25
24
  [
26
- ['name', _('compute name, Eg. eth0')],
27
- ['network', _('Select one of available networks for a cluster, must be an ID')],
28
- ['interface', ('interface type')]
25
+ ['name', _('Compute name, e.g. eth0')],
26
+ ['network', _('Select one of available networks for a cluster, must be an ID')],
27
+ ['interface', _('Interface type')]
29
28
  ]
30
29
  end
31
30
 
32
- def volume_attributes;
31
+ def volume_attributes
33
32
  [
34
- ['size_gb', _('Volume size in GB, integer value')],
35
- ['storage_domain', _('ID of storage domain')],
36
- ['bootable', _('Boolean, only one volume can be bootable')]
33
+ ['size_gb', _('Volume size in GB, integer value')],
34
+ ['storage_domain', _('ID of storage domain')],
35
+ ['bootable', _('Boolean, only one volume can be bootable')]
37
36
  ]
38
37
  end
39
38
 
40
- def mandatory_resource_options
41
- super + [:url, :user, :password, :datacenter]
39
+ def provider_specific_fields
40
+ [
41
+ Fields::Field.new(:label => _('Datacenter'), :path => [:datacenter])
42
+ ]
42
43
  end
43
44
 
45
+ def mandatory_resource_options
46
+ super + %i[url user password datacenter]
47
+ end
44
48
  end
49
+
45
50
  HammerCLIForeman.register_compute_resource('ovirt', Ovirt.new)
46
51
  end
47
- end
52
+ end