hammer_cli_foreman 2.3.2 → 3.0.0

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/doc/release_notes.md +33 -3
  3. data/lib/hammer_cli_foreman.rb +3 -21
  4. data/lib/hammer_cli_foreman/associating_commands.rb +0 -24
  5. data/lib/hammer_cli_foreman/bookmark.rb +1 -1
  6. data/lib/hammer_cli_foreman/combination.rb +3 -13
  7. data/lib/hammer_cli_foreman/command_extensions.rb +1 -2
  8. data/lib/hammer_cli_foreman/command_extensions/ping.rb +21 -2
  9. data/lib/hammer_cli_foreman/command_extensions/status.rb +1 -1
  10. data/lib/hammer_cli_foreman/command_extensions/update_common.rb +14 -0
  11. data/lib/hammer_cli_foreman/commands.rb +16 -9
  12. data/lib/hammer_cli_foreman/compute_resource.rb +22 -0
  13. data/lib/hammer_cli_foreman/compute_resource/ovirt.rb +2 -1
  14. data/lib/hammer_cli_foreman/config_report.rb +2 -0
  15. data/lib/hammer_cli_foreman/filter.rb +2 -2
  16. data/lib/hammer_cli_foreman/host.rb +1 -47
  17. data/lib/hammer_cli_foreman/hostgroup.rb +2 -53
  18. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +7 -28
  19. data/lib/hammer_cli_foreman/id_resolver.rb +0 -61
  20. data/lib/hammer_cli_foreman/location.rb +0 -6
  21. data/lib/hammer_cli_foreman/operating_system.rb +2 -1
  22. data/lib/hammer_cli_foreman/option_builders.rb +6 -5
  23. data/lib/hammer_cli_foreman/option_sources.rb +0 -1
  24. data/lib/hammer_cli_foreman/option_sources/id_params.rb +27 -10
  25. data/lib/hammer_cli_foreman/option_sources/ids_params.rb +25 -6
  26. data/lib/hammer_cli_foreman/organization.rb +0 -6
  27. data/lib/hammer_cli_foreman/ping.rb +6 -1
  28. data/lib/hammer_cli_foreman/references.rb +0 -16
  29. data/lib/hammer_cli_foreman/registration.rb +18 -0
  30. data/lib/hammer_cli_foreman/smart_proxy.rb +0 -52
  31. data/lib/hammer_cli_foreman/version.rb +1 -1
  32. data/lib/minitest/coverage_reporter.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/2.4/foreman_api.json +1 -0
  47. data/test/data/2.5/foreman_api.json +1 -0
  48. data/test/functional/architecture_test.rb +81 -0
  49. data/test/functional/bookmark_test.rb +24 -1
  50. data/test/functional/compute_profile_test.rb +56 -0
  51. data/test/functional/compute_resource_test.rb +37 -0
  52. data/test/functional/filter_test.rb +115 -47
  53. data/test/functional/host_test.rb +94 -13
  54. data/test/functional/hostgroup/create_test.rb +0 -117
  55. data/test/functional/hostgroup/update_test.rb +0 -79
  56. data/test/functional/http_proxy_test.rb +12 -0
  57. data/test/functional/location_test.rb +13 -3
  58. data/test/functional/mail_notification_test.rb +22 -0
  59. data/test/functional/media_test.rb +11 -0
  60. data/test/functional/model_test.rb +52 -0
  61. data/test/functional/operating_system_test.rb +53 -0
  62. data/test/functional/ping_test.rb +33 -0
  63. data/test/functional/realm_test.rb +11 -0
  64. data/test/functional/registration_test.rb +8 -0
  65. data/test/functional/report_template_test.rb +11 -0
  66. data/test/functional/settings_test.rb +21 -0
  67. data/test/functional/status_test.rb +79 -13
  68. data/test/functional/template_test.rb +16 -37
  69. data/test/functional/user_test.rb +11 -0
  70. data/test/functional/usergroup_test.rb +53 -0
  71. data/test/test_helper.rb +1 -1
  72. data/test/unit/apipie_resource_mock.rb +22 -39
  73. data/test/unit/architecture_test.rb +10 -1
  74. data/test/unit/bookmark_test.rb +95 -0
  75. data/test/unit/compute_profile_test.rb +87 -0
  76. data/test/unit/config_report_test.rb +1 -0
  77. data/test/unit/helpers/command.rb +0 -8
  78. data/test/unit/host_test.rb +14 -61
  79. data/test/unit/hostgroup_test.rb +7 -26
  80. data/test/unit/id_resolver_test.rb +0 -28
  81. data/test/unit/mail_notification_test.rb +53 -0
  82. data/test/unit/model_test.rb +47 -37
  83. data/test/unit/operating_system_test.rb +10 -3
  84. data/test/unit/option_sources/id_params_test.rb +9 -0
  85. data/test/unit/option_sources/ids_params_test.rb +9 -0
  86. data/test/unit/settings_test.rb +4 -0
  87. data/test/unit/smart_proxy_test.rb +0 -12
  88. data/test/unit/usergroup_test.rb +10 -0
  89. metadata +76 -73
  90. data/lib/hammer_cli_foreman/command_extensions/puppet_environment.rb +0 -29
  91. data/lib/hammer_cli_foreman/command_extensions/puppet_environments.rb +0 -29
  92. data/lib/hammer_cli_foreman/config_group.rb +0 -45
  93. data/lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb +0 -59
  94. data/lib/hammer_cli_foreman/puppet_class.rb +0 -61
  95. data/lib/hammer_cli_foreman/puppet_environment.rb +0 -65
  96. data/lib/hammer_cli_foreman/smart_class_parameter.rb +0 -189
  97. data/test/functional/proxy_test.rb +0 -86
  98. data/test/functional/smart_class_parameter_test.rb +0 -97
  99. data/test/unit/config_group_test.rb +0 -72
  100. data/test/unit/puppet_class_test.rb +0 -72
  101. data/test/unit/puppet_environment_test.rb +0 -114
  102. data/test/unit/smart_class_parameter_test.rb +0 -113
@@ -25,6 +25,7 @@ describe HammerCLIForeman::ConfigReport do
25
25
  it_should_print_n_records
26
26
  it_should_print_column "Id"
27
27
  it_should_print_column "Host"
28
+ it_should_print_column "Origin"
28
29
  it_should_print_column "Last report"
29
30
  it_should_print_column "Applied"
30
31
  it_should_print_column "Restarted"
@@ -17,14 +17,6 @@ class IdResolverTestProxy
17
17
  @original_resolver.searchables(resource)
18
18
  end
19
19
 
20
- def puppet_environment_id(options)
21
- environment_id(options)
22
- end
23
-
24
- def puppet_environment_ids(options)
25
- environment_ids(options)
26
- end
27
-
28
20
  protected
29
21
 
30
22
  def define_id_finders
@@ -45,8 +45,7 @@ describe HammerCLIForeman::Host do
45
45
  with_params ["--id=1"] do
46
46
  it_should_print_n_records 1
47
47
  it_should_print_columns ["Id", "Name", "Organization", "Location"]
48
- it_should_print_columns ["Host Group", "Compute Resource", "Compute Profile", "Puppet Environment"]
49
- it_should_print_columns ["Puppet CA Proxy", "Puppet Master Proxy", "Cert name"]
48
+ it_should_print_columns ["Host Group", "Compute Resource", "Compute Profile"]
50
49
  it_should_print_columns ["Managed", "Status", "Installed at", "Last report"]
51
50
  it_should_print_columns ["Network", "Network interfaces", "Operating system", "Parameters", "All parameters", "Additional info"]
52
51
  end
@@ -106,32 +105,6 @@ describe HammerCLIForeman::Host do
106
105
  end
107
106
  end
108
107
 
109
-
110
- context "PuppetClassesCommand" do
111
- before do
112
- ResourceMocks.mock_action_call(:puppetclasses, :index, {})
113
- end
114
-
115
- let(:cmd) { HammerCLIForeman::Host::PuppetClassesCommand.new("", ctx) }
116
-
117
- context "parameters" do
118
- it_should_accept "host", ["--host=name=my5name.mydomain.net"]
119
- it_should_accept "host-id", ["--host-id=1"]
120
- # it_should_fail_with "host or host-id missing", []
121
- # TODO: temporarily disabled, parameters are checked in the id resolver
122
- end
123
-
124
- context "output" do
125
-
126
- with_params ["--host=my5name.mydomain.net"] do
127
- it_should_print_column "Id"
128
- it_should_print_column "Name"
129
- end
130
- end
131
-
132
- end
133
-
134
-
135
108
  context "ConfigReportsCommand" do
136
109
  before do
137
110
  ResourceMocks.mock_action_call(:config_reports, :index, [])
@@ -186,29 +159,25 @@ describe HammerCLIForeman::Host do
186
159
 
187
160
  context "parameters" do
188
161
  taxonomies = ["--organization-id=1", "--location-id=1"]
189
- it_should_accept "name, environment_id, architecture_id, domain_id, puppet_proxy_id, operatingsystem_id and more",
190
- ["--name=host", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1",
162
+ it_should_accept "name, architecture_id, domain_id, operatingsystem_id and more",
163
+ ["--name=host", "--architecture-id=1", "--domain-id=1", "--operatingsystem-id=1",
191
164
  "--ip=1.2.3.4", "--mac=11:22:33:44:55:66", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1",
192
- "--model-id=1", "--hostgroup-id=1", "--owner-id=1", '--puppet-ca-proxy-id=1', '--puppet-class-ids',
165
+ "--model-id=1", "--hostgroup-id=1", "--owner-id=1",
193
166
  "--root-password=pwd", "--ask-root-password=true", "--provision-method=build", "--interface=primary=true,provision=true"] + taxonomies
194
167
  it_should_fail_with "name or id missing",
195
- ["--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
196
- it_should_fail_with "environment_id missing",
197
- ["--name=host", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
168
+ ["--architecture-id=1", "--domain-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
198
169
  it_should_fail_with "architecture_id missing",
199
- ["--name=host", "--environment-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
170
+ ["--name=host", "--domain-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
200
171
  it_should_fail_with "domain_id missing",
201
- ["--name=host", "--environment-id=1", "--architecture-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
202
- it_should_fail_with "puppet_proxy_id missing",
203
- ["--name=host", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
172
+ ["--name=host", "--architecture-id=1", "--operatingsystem-id=1", "--interface=primary=true,provision=true"]
204
173
  it_should_fail_with "operatingsystem_id missing",
205
- ["--name=host", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--interface=primary=true,provision=true"]
174
+ ["--name=host", "--architecture-id=1", "--domain-id=1", "--interface=primary=true,provision=true"]
206
175
  it_should_accept "only hostgroup name", ["--hostgroup=example", "--name=host", "--interface=primary=true,provision=true"] + taxonomies
207
176
  it_should_accept "only hostgroup ID", ["--hostgroup-id=1", "--name=host", "--interface=primary=true,provision=true"] + taxonomies
208
177
 
209
- with_params ["--name=host", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1",
178
+ with_params ["--name=host", "--architecture-id=1", "--domain-id=1", "--operatingsystem-id=1",
210
179
  "--ip=1.2.3.4", "--mac=11:22:33:44:55:66", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1",
211
- "--model-id=1", "--hostgroup-id=1", "--owner-id=1", '--puppet-ca-proxy-id=1', '--puppet-class-ids',
180
+ "--model-id=1", "--hostgroup-id=1", "--owner-id=1",
212
181
  "--root-password=pwd", "--ask-root-password=true", "--provision-method=build", "--interface=primary=true,provision=true"] do
213
182
  it_should_call_action_and_test_params(:create) { |par| par["host"]["managed"] == true }
214
183
  it_should_call_action_and_test_params(:create) { |par| par["host"]["build"] == true }
@@ -240,16 +209,16 @@ describe HammerCLIForeman::Host do
240
209
 
241
210
  context "parameters" do
242
211
  it_should_accept "name", ["--name=host", "--new-name=host2"]
243
- it_should_accept "id and more", ["--id=1", "--new-name=host2", "--environment-id=1", "--architecture-id=1",
244
- "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1",
212
+ it_should_accept "id and more", ["--id=1", "--new-name=host2", "--architecture-id=1",
213
+ "--domain-id=1", "--operatingsystem-id=1",
245
214
  "--ip=1.2.3.4", "--mac=11:22:33:44:55:66", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1",
246
- "--model-id=1", "--hostgroup-id=1", "--owner-id=1", '--puppet-ca-proxy-id=1',
215
+ "--model-id=1", "--hostgroup-id=1", "--owner-id=1",
247
216
  "--root-password=pwd", "--ask-root-password=true", "--provision-method=build"]
248
217
  # it_should_fail_with "no params", []
249
218
  # it_should_fail_with "name or id missing", ["--new-name=host2"]
250
219
  # TODO: temporarily disabled, parameters are checked in the id resolver
251
220
 
252
- with_params ["--id=1", "--puppet-proxy-id=1"] do
221
+ with_params ["--id=1"] do
253
222
  it_should_call_action_and_test_params(:update) { |par| par["host"].key?("managed") != true }
254
223
  it_should_call_action_and_test_params(:update) { |par| par["host"].key?("build") != true }
255
224
  it_should_call_action_and_test_params(:update) { |par| par["host"].key?("enabled") != true }
@@ -350,22 +319,6 @@ describe HammerCLIForeman::Host do
350
319
  end
351
320
  end
352
321
 
353
- context "SCParamsCommand" do
354
-
355
- before :each do
356
- ResourceMocks.smart_class_parameters_index
357
- end
358
-
359
- let(:cmd) { HammerCLIForeman::Host::SCParamsCommand.new("", ctx) }
360
-
361
- context "parameters" do
362
- it_should_accept "host", ["--host=host"]
363
- it_should_accept "host-id", ["--host-id=1"]
364
- # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
365
- end
366
-
367
- end
368
-
369
322
  context "RebuildConfigCommand" do
370
323
 
371
324
  let(:cmd) { HammerCLIForeman::Host::RebuildConfigCommand.new("", ctx) }
@@ -24,7 +24,7 @@ describe HammerCLIForeman::Hostgroup do
24
24
 
25
25
  it_should_print_n_records
26
26
  it_should_print_columns ["Id", "Name", "Title", "Operating System"]
27
- it_should_print_columns ["Puppet Environment", "Model"]
27
+ it_should_print_columns ["Model"]
28
28
  end
29
29
 
30
30
  end
@@ -42,8 +42,6 @@ describe HammerCLIForeman::Hostgroup do
42
42
  with_params ["--id=1"] do
43
43
  it_should_print_n_records 1
44
44
  it_should_print_columns ["Id", "Name", "Title"]
45
- it_should_print_columns ["Puppet Environment", "Puppetclasses", "Parent"]
46
- it_should_print_columns ["Puppet CA Proxy", "Puppet Master Proxy"]
47
45
  it_should_print_columns ["Parameters", "Description"]
48
46
  it_should_print_columns ["Network", "Operating system"]
49
47
  end
@@ -67,9 +65,9 @@ describe HammerCLIForeman::Hostgroup do
67
65
  let(:cmd) { HammerCLIForeman::Hostgroup::CreateCommand.new("", ctx) }
68
66
 
69
67
  context "parameters" do
70
- it_should_accept "name, parent_id, environment_id, architecture_id, domain_id, puppet_proxy_id, operatingsystem_id and more",
71
- ["--name=hostgroup", "--parent-id=1", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1",
72
- "--operatingsystem-id=1", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1", '--puppet-ca-proxy-id=1', '--puppet-class-ids=1,2', '--root-pass=foreman']
68
+ it_should_accept "name, parent_id, architecture_id, domain_id, operatingsystem_id and more",
69
+ ["--name=hostgroup", "--parent-id=1", "--architecture-id=1", "--domain-id=1",
70
+ "--operatingsystem-id=1", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1", '--root-password=foreman']
73
71
  # it_should_fail_with "name or id missing",
74
72
  # ["--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1", "--operatingsystem-id=1"]
75
73
  # TODO: temporarily disabled, parameters are checked in the api
@@ -81,9 +79,9 @@ describe HammerCLIForeman::Hostgroup do
81
79
  let(:cmd) { HammerCLIForeman::Hostgroup::UpdateCommand.new("", ctx) }
82
80
 
83
81
  context "parameters" do
84
- it_should_accept "name, parent_id, environment_id, architecture_id, domain_id, puppet_proxy_id, operatingsystem_id and more",
85
- ["--id=1 --name=hostgroup2 --title=default/hostgroup2", "--parent-id=1", "--environment-id=1", "--architecture-id=1", "--domain-id=1", "--puppet-proxy-id=1",
86
- "--operatingsystem-id=1", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1", '--puppet-ca-proxy-id=1', '--puppet-class-ids=1,2', '--root-pass=foreman']
82
+ it_should_accept "name, parent_id, architecture_id, domain_id, operatingsystem_id and more",
83
+ ["--id=1 --name=hostgroup2 --title=default/hostgroup2", "--parent-id=1", "--architecture-id=1", "--domain-id=1",
84
+ "--operatingsystem-id=1", "--medium-id=1", "--partition-table-id=1", "--subnet-id=1", '--root-password=foreman']
87
85
  # it_should_fail_with "no params", []
88
86
  # it_should_fail_with "id missing", ["--name=host2"]
89
87
  # TODO: temporarily disabled, parameters are checked in the id resolver
@@ -123,23 +121,6 @@ describe HammerCLIForeman::Hostgroup do
123
121
 
124
122
  end
125
123
 
126
-
127
- context "SCParamsCommand" do
128
-
129
- before :each do
130
- ResourceMocks.smart_class_parameters_index
131
- end
132
-
133
- let(:cmd) { HammerCLIForeman::Hostgroup::SCParamsCommand.new("", ctx) }
134
-
135
- context "parameters" do
136
- it_should_accept "hostgroup", ["--hostgroup=hostgroup"]
137
- it_should_accept "hostgroup-id", ["--hostgroup-id=1"]
138
- # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
139
- end
140
-
141
- end
142
-
143
124
  context "RebuildConfigCommand" do
144
125
 
145
126
  let(:cmd) { HammerCLIForeman::Hostgroup::RebuildConfigCommand.new("", ctx) }
@@ -213,34 +213,6 @@ describe HammerCLIForeman::IdResolver do
213
213
  end
214
214
  end
215
215
 
216
- describe 'searching for puppetclasses' do
217
- before do
218
- ResourceMocks.mock_action_call(:puppetclasses, :index, {
219
- 'apache' => [
220
- { 'id' => 70, 'name' => 'apache::dev', 'created_at' => '2015-01-27T07:24:57.134Z', 'updated_at' => '2015-03-05T17:27:54.282Z' },
221
- { 'id' => 27, 'name' => 'apache::mod::authnz_ldap', 'created_at' => '2015-01-27T07:24:56.378Z','updated_at' => '2015-01-27T07:24:56.378Z' }
222
- ],
223
- 'git' => [
224
- { 'id' => 85, 'name' => 'git::params', 'created_at' => '2015-01-27T07:24:57.306Z', 'updated_at' => '2015-01-27T07:24:57.306Z' }
225
- ]
226
- })
227
- end
228
-
229
- it "returns ids from options" do
230
- result = resolver.user_ids({"option_ids" => [4, 5], "option_names" => ['apache::dev']})
231
- assert_equal [4, 5], result
232
- end
233
-
234
- it "returns ids of the classes" do
235
- class_names = ['apache::mod::authnz_ldap', 'git::params', 'apache::dev']
236
- assert_equal [70, 27, 85], resolver.puppetclass_ids('option_names' => class_names)
237
- end
238
-
239
- it 'returns empty array for empty class array' do
240
- assert_equal [], resolver.puppetclass_ids('option_names' => [])
241
- end
242
- end
243
-
244
216
  describe "searching for multiple resources" do
245
217
  it "returns ids from options" do
246
218
  result = resolver.user_ids({"option_ids" => [4, 5], "option_names" => ["some", "names"]})
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), 'test_helper')
4
+ require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
5
+
6
+ require 'hammer_cli_foreman/mail_notification'
7
+
8
+ describe HammerCLIForeman::MailNotification do
9
+ include CommandTestHelper
10
+
11
+ context 'ListCommand' do
12
+ before :each do
13
+ ResourceMocks.mail_notifications
14
+ end
15
+
16
+ let(:cmd) { HammerCLIForeman::MailNotification::ListCommand.new('', ctx) }
17
+
18
+ context 'parameters' do
19
+ it_should_accept 'no arguments'
20
+ it_should_accept 'organization', ['--organization-id=1']
21
+ it_should_accept 'location', ['--location-id=1']
22
+ end
23
+
24
+ context 'output' do
25
+ let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
26
+
27
+ it_should_print_n_records
28
+ it_should_print_column 'Id'
29
+ it_should_print_column 'Name'
30
+ end
31
+ end
32
+
33
+ context 'InfoCommand' do
34
+ let(:cmd) { HammerCLIForeman::MailNotification::InfoCommand.new('', ctx) }
35
+
36
+ context 'parameters' do
37
+ it_should_accept 'id', ['--id=1']
38
+ it_should_accept 'name', ['--name=test']
39
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
40
+ it_should_accept 'location', %w[--id=1 --location-id=1]
41
+ end
42
+
43
+ context 'output' do
44
+ with_params ['--id=1'] do
45
+ it_should_print_n_records 1
46
+ it_should_print_column 'Id'
47
+ it_should_print_column 'Name'
48
+ it_should_print_column 'Description'
49
+ it_should_print_column 'Subscription type'
50
+ end
51
+ end
52
+ end
53
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require File.join(File.dirname(__FILE__), 'test_helper')
2
3
  require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
3
4
 
@@ -7,62 +8,67 @@ describe HammerCLIForeman::Model do
7
8
 
8
9
  include CommandTestHelper
9
10
 
10
- context "ListCommand" do
11
+ context 'ListCommand' do
11
12
  before do
12
13
  ResourceMocks.mock_action_call(:models, :index, [])
13
14
  end
14
15
 
15
- let(:cmd) { HammerCLIForeman::Model::ListCommand.new("", ctx) }
16
+ let(:cmd) { HammerCLIForeman::Model::ListCommand.new('', ctx) }
16
17
 
17
- context "parameters" do
18
- it_should_accept "no arguments"
18
+ context 'parameters' do
19
+ it_should_accept 'no arguments'
19
20
  it_should_accept_search_params
21
+ it_should_accept 'organization', ['--organization-id=1']
22
+ it_should_accept 'location', ['--location-id=1']
20
23
  end
21
24
 
22
- context "output" do
25
+ context 'output' do
23
26
  let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
24
27
 
25
28
  it_should_print_n_records
26
- it_should_print_column "Name"
27
- it_should_print_column "Id"
28
- it_should_print_column "Vendor class"
29
- it_should_print_column "HW model"
29
+ it_should_print_column 'Name'
30
+ it_should_print_column 'Id'
31
+ it_should_print_column 'Vendor class'
32
+ it_should_print_column 'HW model'
30
33
  end
31
34
  end
32
35
 
33
36
 
34
- context "InfoCommand" do
37
+ context 'InfoCommand' do
35
38
 
36
- let(:cmd) { HammerCLIForeman::Model::InfoCommand.new("", ctx) }
39
+ let(:cmd) { HammerCLIForeman::Model::InfoCommand.new('', ctx) }
37
40
 
38
- context "parameters" do
39
- it_should_accept "id", ["--id=1"]
40
- it_should_accept "name", ["--name=model"]
41
+ context 'parameters' do
42
+ it_should_accept 'id', ['--id=1']
43
+ it_should_accept 'name', ['--name=model']
44
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
45
+ it_should_accept 'location', %w[--id=1 --location-id=1]
41
46
  # it_should_fail_with "no arguments" # TODO: temporarily disabled, parameters are checked in the id resolver
42
47
  end
43
48
 
44
- context "output" do
45
- with_params ["--id=1"] do
49
+ context 'output' do
50
+ with_params ['--id=1'] do
46
51
  it_should_print_n_records 1
47
- it_should_print_column "Name"
48
- it_should_print_column "Id"
49
- it_should_print_column "Vendor class"
50
- it_should_print_column "HW model"
51
- it_should_print_column "Info"
52
- it_should_print_column "Created at"
53
- it_should_print_column "Updated at"
52
+ it_should_print_column 'Name'
53
+ it_should_print_column 'Id'
54
+ it_should_print_column 'Vendor class'
55
+ it_should_print_column 'HW model'
56
+ it_should_print_column 'Info'
57
+ it_should_print_column 'Created at'
58
+ it_should_print_column 'Updated at'
54
59
  end
55
60
  end
56
61
 
57
62
  end
58
63
 
59
64
 
60
- context "CreateCommand" do
65
+ context 'CreateCommand' do
61
66
 
62
- let(:cmd) { HammerCLIForeman::Model::CreateCommand.new("", ctx) }
67
+ let(:cmd) { HammerCLIForeman::Model::CreateCommand.new('', ctx) }
63
68
 
64
- context "parameters" do
65
- it_should_accept "name", ["--name=model", "--info=description", "--vendor-class=class", "--hardware-model=model"]
69
+ context 'parameters' do
70
+ it_should_accept 'name, info, vendor-class, hardware-model, organization, location',
71
+ %w[--name=model --info=description --vendor-class=class --hardware-model=model --organization-id=1 --location-id=1]
66
72
  # it_should_fail_with "name missing", ["--info=description", "--vendor-class=class", "--hardware-model=model"]
67
73
  # TODO: temporarily disabled, parameters are checked in the api
68
74
  end
@@ -70,26 +76,30 @@ describe HammerCLIForeman::Model do
70
76
  end
71
77
 
72
78
 
73
- context "DeleteCommand" do
79
+ context 'DeleteCommand' do
74
80
 
75
- let(:cmd) { HammerCLIForeman::Model::DeleteCommand.new("", ctx) }
81
+ let(:cmd) { HammerCLIForeman::Model::DeleteCommand.new('', ctx) }
76
82
 
77
- context "parameters" do
78
- it_should_accept "name", ["--name=model"]
79
- it_should_accept "id", ["--id=1"]
83
+ context 'parameters' do
84
+ it_should_accept 'name', ['--name=model']
85
+ it_should_accept 'id', ['--id=1']
86
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
87
+ it_should_accept 'location', %w[--id=1 --location-id=1]
80
88
  # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
81
89
  end
82
90
 
83
91
  end
84
92
 
85
93
 
86
- context "UpdateCommand" do
94
+ context 'UpdateCommand' do
87
95
 
88
- let(:cmd) { HammerCLIForeman::Model::UpdateCommand.new("", ctx) }
96
+ let(:cmd) { HammerCLIForeman::Model::UpdateCommand.new('', ctx) }
89
97
 
90
- context "parameters" do
91
- it_should_accept "name", ["--name=model", "--new-name=model2", "--info=description", "--vendor-class=class", "--hardware-model=model"]
92
- it_should_accept "id", ["--id=1", "--new-name=model2", "--info=description", "--vendor-class=class", "--hardware-model=model"]
98
+ context 'parameters' do
99
+ it_should_accept 'name', ['--name=model', '--new-name=model2', '--info=description', '--vendor-class=class', '--hardware-model=model']
100
+ it_should_accept 'id', ['--id=1', '--new-name=model2', '--info=description', '--vendor-class=class', '--hardware-model=model']
101
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
102
+ it_should_accept 'location', %w[--id=1 --location-id=1]
93
103
  # it_should_fail_with "no params", []
94
104
  # it_should_fail_with "name or id missing", ["--new-name=model2", "--info=description", "--vendor-class=class", "--hardware-model=model"]
95
105
  # TODO: temporarily disabled, parameters are checked in the id resolver
@@ -18,6 +18,8 @@ describe HammerCLIForeman::OperatingSystem do
18
18
  context "parameters" do
19
19
  it_should_accept "no arguments"
20
20
  it_should_accept_search_params
21
+ it_should_accept 'organization', ['--organization-id=1']
22
+ it_should_accept 'location', ['--location-id=1']
21
23
  end
22
24
 
23
25
  context "output" do
@@ -40,6 +42,8 @@ describe HammerCLIForeman::OperatingSystem do
40
42
  context "parameters" do
41
43
  it_should_accept "id", ["--id=1"]
42
44
  it_should_accept "title", ["--title=Rhel 6.5"]
45
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
46
+ it_should_accept 'location', %w[--id=1 --location-id=1]
43
47
  # it_should_fail_with "no arguments" # TODO: temporarily disabled, parameters are checked in the id resolver
44
48
  end
45
49
 
@@ -69,7 +73,8 @@ describe HammerCLIForeman::OperatingSystem do
69
73
  let(:cmd) { HammerCLIForeman::OperatingSystem::CreateCommand.new("", ctx) }
70
74
 
71
75
  context "parameters" do
72
- it_should_accept "name, major, minor, family, release name", ["--name=media", "--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome"]
76
+ it_should_accept "name, major, minor, family, release name, organization, location",
77
+ ["--name=media", "--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome", "--organization-id=1", "--location-id=1"]
73
78
  # it_should_fail_with "name missing", ["--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome"]
74
79
  # TODO: temporarily disabled, parameters are checked in the api
75
80
  end
@@ -87,6 +92,8 @@ describe HammerCLIForeman::OperatingSystem do
87
92
  context "parameters" do
88
93
  it_should_accept "id", ["--id=1"]
89
94
  it_should_accept "title", ["--title=Rhel 6.5"]
95
+ it_should_accept 'organization', %w[--id=1 --organization-id=1]
96
+ it_should_accept 'location', %w[--id=1 --location-id=1]
90
97
  # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
91
98
  # TODO: temporarily disabled, parameters are checked in the id resolver
92
99
  end
@@ -101,7 +108,8 @@ describe HammerCLIForeman::OperatingSystem do
101
108
  context "parameters" do
102
109
  it_should_accept "id", ["--id=1"]
103
110
  it_should_accept "title", ["--title=Rhel 6.5"]
104
- it_should_accept "name, major, minor, family, release name", ["--id=83", "--name=os", "--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome"]
111
+ it_should_accept "name, major, minor, family, release name, organization, location",
112
+ ["--id=83", "--name=os", "--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome", "--organization-id=1", "--location-id=1"]
105
113
  # it_should_fail_with "no params", []
106
114
  # it_should_fail_with "label or id missing", ["--name=os", "--major=1", "--minor=2", "--family=Red Hat", "--release-name=awesome"]
107
115
  # TODO: temporarily disabled, parameters are checked in the id resolver
@@ -148,5 +156,4 @@ describe HammerCLIForeman::OperatingSystem do
148
156
  end
149
157
 
150
158
  end
151
-
152
159
  end