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.
- checksums.yaml +4 -4
- data/doc/release_notes.md +33 -3
- data/lib/hammer_cli_foreman.rb +3 -21
- data/lib/hammer_cli_foreman/associating_commands.rb +0 -24
- data/lib/hammer_cli_foreman/bookmark.rb +1 -1
- data/lib/hammer_cli_foreman/combination.rb +3 -13
- data/lib/hammer_cli_foreman/command_extensions.rb +1 -2
- data/lib/hammer_cli_foreman/command_extensions/ping.rb +21 -2
- data/lib/hammer_cli_foreman/command_extensions/status.rb +1 -1
- data/lib/hammer_cli_foreman/command_extensions/update_common.rb +14 -0
- data/lib/hammer_cli_foreman/commands.rb +16 -9
- data/lib/hammer_cli_foreman/compute_resource.rb +22 -0
- data/lib/hammer_cli_foreman/compute_resource/ovirt.rb +2 -1
- data/lib/hammer_cli_foreman/config_report.rb +2 -0
- data/lib/hammer_cli_foreman/filter.rb +2 -2
- data/lib/hammer_cli_foreman/host.rb +1 -47
- data/lib/hammer_cli_foreman/hostgroup.rb +2 -53
- data/lib/hammer_cli_foreman/hosts/common_update_options.rb +7 -28
- data/lib/hammer_cli_foreman/id_resolver.rb +0 -61
- data/lib/hammer_cli_foreman/location.rb +0 -6
- data/lib/hammer_cli_foreman/operating_system.rb +2 -1
- data/lib/hammer_cli_foreman/option_builders.rb +6 -5
- data/lib/hammer_cli_foreman/option_sources.rb +0 -1
- data/lib/hammer_cli_foreman/option_sources/id_params.rb +27 -10
- data/lib/hammer_cli_foreman/option_sources/ids_params.rb +25 -6
- data/lib/hammer_cli_foreman/organization.rb +0 -6
- data/lib/hammer_cli_foreman/ping.rb +6 -1
- data/lib/hammer_cli_foreman/references.rb +0 -16
- data/lib/hammer_cli_foreman/registration.rb +18 -0
- data/lib/hammer_cli_foreman/smart_proxy.rb +0 -52
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/lib/minitest/coverage_reporter.rb +1 -1
- data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/test/data/2.4/foreman_api.json +1 -0
- data/test/data/2.5/foreman_api.json +1 -0
- data/test/functional/architecture_test.rb +81 -0
- data/test/functional/bookmark_test.rb +24 -1
- data/test/functional/compute_profile_test.rb +56 -0
- data/test/functional/compute_resource_test.rb +37 -0
- data/test/functional/filter_test.rb +115 -47
- data/test/functional/host_test.rb +94 -13
- data/test/functional/hostgroup/create_test.rb +0 -117
- data/test/functional/hostgroup/update_test.rb +0 -79
- data/test/functional/http_proxy_test.rb +12 -0
- data/test/functional/location_test.rb +13 -3
- data/test/functional/mail_notification_test.rb +22 -0
- data/test/functional/media_test.rb +11 -0
- data/test/functional/model_test.rb +52 -0
- data/test/functional/operating_system_test.rb +53 -0
- data/test/functional/ping_test.rb +33 -0
- data/test/functional/realm_test.rb +11 -0
- data/test/functional/registration_test.rb +8 -0
- data/test/functional/report_template_test.rb +11 -0
- data/test/functional/settings_test.rb +21 -0
- data/test/functional/status_test.rb +79 -13
- data/test/functional/template_test.rb +16 -37
- data/test/functional/user_test.rb +11 -0
- data/test/functional/usergroup_test.rb +53 -0
- data/test/test_helper.rb +1 -1
- data/test/unit/apipie_resource_mock.rb +22 -39
- data/test/unit/architecture_test.rb +10 -1
- data/test/unit/bookmark_test.rb +95 -0
- data/test/unit/compute_profile_test.rb +87 -0
- data/test/unit/config_report_test.rb +1 -0
- data/test/unit/helpers/command.rb +0 -8
- data/test/unit/host_test.rb +14 -61
- data/test/unit/hostgroup_test.rb +7 -26
- data/test/unit/id_resolver_test.rb +0 -28
- data/test/unit/mail_notification_test.rb +53 -0
- data/test/unit/model_test.rb +47 -37
- data/test/unit/operating_system_test.rb +10 -3
- data/test/unit/option_sources/id_params_test.rb +9 -0
- data/test/unit/option_sources/ids_params_test.rb +9 -0
- data/test/unit/settings_test.rb +4 -0
- data/test/unit/smart_proxy_test.rb +0 -12
- data/test/unit/usergroup_test.rb +10 -0
- metadata +76 -73
- data/lib/hammer_cli_foreman/command_extensions/puppet_environment.rb +0 -29
- data/lib/hammer_cli_foreman/command_extensions/puppet_environments.rb +0 -29
- data/lib/hammer_cli_foreman/config_group.rb +0 -45
- data/lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb +0 -59
- data/lib/hammer_cli_foreman/puppet_class.rb +0 -61
- data/lib/hammer_cli_foreman/puppet_environment.rb +0 -65
- data/lib/hammer_cli_foreman/smart_class_parameter.rb +0 -189
- data/test/functional/proxy_test.rb +0 -86
- data/test/functional/smart_class_parameter_test.rb +0 -97
- data/test/unit/config_group_test.rb +0 -72
- data/test/unit/puppet_class_test.rb +0 -72
- data/test/unit/puppet_environment_test.rb +0 -114
- data/test/unit/smart_class_parameter_test.rb +0 -113
|
@@ -95,6 +95,18 @@ describe 'template' do
|
|
|
95
95
|
|
|
96
96
|
assert_cmd(success_result("Provisioning template updated.\n"), result)
|
|
97
97
|
end
|
|
98
|
+
|
|
99
|
+
it 'updates nothing without template related parameters' do
|
|
100
|
+
params = %w[--id=1 --organization-id=1 --location-id=1]
|
|
101
|
+
|
|
102
|
+
api_expects(:template_kinds, :index, 'Get list of template kinds').returns(index_response([]))
|
|
103
|
+
api_expects(:provisioning_templates, :update, 'Update template with no params').returns({})
|
|
104
|
+
|
|
105
|
+
expected_result = success_result("Nothing to update.\n")
|
|
106
|
+
|
|
107
|
+
result = run_cmd(@cmd + params)
|
|
108
|
+
assert_cmd(expected_result, result)
|
|
109
|
+
end
|
|
98
110
|
end
|
|
99
111
|
|
|
100
112
|
describe 'create' do
|
|
@@ -128,45 +140,13 @@ describe 'template' do
|
|
|
128
140
|
@cmd = %w(template combination)
|
|
129
141
|
end
|
|
130
142
|
|
|
131
|
-
it 'should create new combination with warning' do
|
|
132
|
-
params = ['create','--provisioning-template-id=10', '--hostgroup-id=1', '--environment-id=1']
|
|
133
|
-
expected_result = success_result("Template combination created.\n")
|
|
134
|
-
expected_result.expected_err = "Warning: Option --environment-id is deprecated. Use --puppet-environment[-id] instead\n"
|
|
135
|
-
api_expects(:template_combinations, :create, 'Create template combination') do |params|
|
|
136
|
-
params['provisioning_template_id'] == 10 &&
|
|
137
|
-
params['hostgroup_id'] == 1 &&
|
|
138
|
-
params['environment_id'] == 1 &&
|
|
139
|
-
params['template_combination'] == {'environment_id' => 1, 'hostgroup_id' => 1}
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
result = run_cmd(@cmd + params)
|
|
143
|
-
assert_cmd(expected_result, result)
|
|
144
|
-
end
|
|
145
|
-
|
|
146
143
|
it 'should create new combination' do
|
|
147
|
-
params = ['create','--provisioning-template-id=10', '--hostgroup-id=1'
|
|
144
|
+
params = ['create','--provisioning-template-id=10', '--hostgroup-id=1']
|
|
148
145
|
expected_result = success_result("Template combination created.\n")
|
|
149
146
|
api_expects(:template_combinations, :create, 'Create template combination') do |params|
|
|
150
147
|
params['provisioning_template_id'] == 10 &&
|
|
151
148
|
params['hostgroup_id'] == 1 &&
|
|
152
|
-
params['
|
|
153
|
-
params['template_combination'] == {'environment_id' => 1, 'hostgroup_id' => 1}
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
result = run_cmd(@cmd + params)
|
|
157
|
-
assert_cmd(expected_result, result)
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
it 'should update combination with warning' do
|
|
161
|
-
params = ['update', '--id=3', '--provisioning-template-id=10', '--hostgroup-id=1', '--environment-id=1']
|
|
162
|
-
expected_result = success_result("Template combination updated.\n")
|
|
163
|
-
expected_result.expected_err = "Warning: Option --environment-id is deprecated. Use --puppet-environment[-id] instead\n"
|
|
164
|
-
api_expects(:template_combinations, :update, 'Update template combination') do |params|
|
|
165
|
-
params['id'] == '3' &&
|
|
166
|
-
params['provisioning_template_id'] == 10 &&
|
|
167
|
-
params['hostgroup_id'] == 1 &&
|
|
168
|
-
params['environment_id'] == 1 &&
|
|
169
|
-
params['template_combination'] == { 'environment_id' => 1, 'hostgroup_id' => 1 }
|
|
149
|
+
params['template_combination'] == {'hostgroup_id' => 1}
|
|
170
150
|
end
|
|
171
151
|
|
|
172
152
|
result = run_cmd(@cmd + params)
|
|
@@ -174,14 +154,13 @@ describe 'template' do
|
|
|
174
154
|
end
|
|
175
155
|
|
|
176
156
|
it 'should update combination' do
|
|
177
|
-
params = ['update', '--id=3', '--provisioning-template-id=10', '--hostgroup-id=1'
|
|
157
|
+
params = ['update', '--id=3', '--provisioning-template-id=10', '--hostgroup-id=1']
|
|
178
158
|
expected_result = success_result("Template combination updated.\n")
|
|
179
159
|
api_expects(:template_combinations, :update, 'Update template combination') do |params|
|
|
180
160
|
params['id'] == '3' &&
|
|
181
161
|
params['provisioning_template_id'] == 10 &&
|
|
182
162
|
params['hostgroup_id'] == 1 &&
|
|
183
|
-
params['
|
|
184
|
-
params['template_combination'] == { 'environment_id' => 1, 'hostgroup_id' => 1 }
|
|
163
|
+
params['template_combination'] == { 'hostgroup_id' => 1 }
|
|
185
164
|
end
|
|
186
165
|
|
|
187
166
|
result = run_cmd(@cmd + params)
|
|
@@ -82,6 +82,17 @@ describe "user" do
|
|
|
82
82
|
assert_cmd(expected_result, result)
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
+
it 'updates nothing without user related parameters' do
|
|
86
|
+
params = %w[--id=1]
|
|
87
|
+
|
|
88
|
+
api_expects(:users, :update, 'Update user with no params').returns({})
|
|
89
|
+
|
|
90
|
+
expected_result = success_result("Nothing to update.\n")
|
|
91
|
+
|
|
92
|
+
result = run_cmd(cmd + params)
|
|
93
|
+
assert_cmd(expected_result, result)
|
|
94
|
+
end
|
|
95
|
+
|
|
85
96
|
describe "update password" do
|
|
86
97
|
def replace_foreman_connection(connection)
|
|
87
98
|
HammerCLI.context[:api_connection].drop('foreman')
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
|
4
|
+
|
|
5
|
+
describe 'user-group' do
|
|
6
|
+
describe 'list' do
|
|
7
|
+
before do
|
|
8
|
+
@cmd = %w[user-group list]
|
|
9
|
+
@user_groups = [{
|
|
10
|
+
id: 1,
|
|
11
|
+
name: 'test-user-group',
|
|
12
|
+
admin: 'yes',
|
|
13
|
+
}]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'should return a list of user groups' do
|
|
17
|
+
api_expects(:usergroups, :index, 'List user groups').returns(@user_groups)
|
|
18
|
+
|
|
19
|
+
output = IndexMatcher.new([
|
|
20
|
+
%w[ID NAME ADMIN],
|
|
21
|
+
%w[1 test-user-group yes]
|
|
22
|
+
])
|
|
23
|
+
expected_result = success_result(output)
|
|
24
|
+
|
|
25
|
+
result = run_cmd(@cmd)
|
|
26
|
+
assert_cmd(expected_result, result)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should run list command with defaults' do
|
|
30
|
+
providers = { 'foreman' => HammerCLIForeman::Defaults.new(api_connection({}, '2.5')) }
|
|
31
|
+
defaults = HammerCLI::Defaults.new(
|
|
32
|
+
{
|
|
33
|
+
organization_id: {
|
|
34
|
+
provider: 'foreman'
|
|
35
|
+
},
|
|
36
|
+
location_id: {
|
|
37
|
+
provider: 'foreman'
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
defaults.stubs(:write_to_file).returns(true)
|
|
42
|
+
defaults.stubs(:providers).returns(providers)
|
|
43
|
+
api_expects(:users, :index, 'Find user').with_params(search: 'login=admin').returns(index_response([{ 'default_organization' => { 'id' => 2 } }]))
|
|
44
|
+
api_expects(:users, :index, 'Find user').with_params(search: 'login=admin').returns(index_response([{ 'default_location' => { 'id' => 1 } }]))
|
|
45
|
+
api_expects(:usergroups, :index, 'List user groups').returns(@user_groups)
|
|
46
|
+
|
|
47
|
+
result = run_cmd(@cmd, { use_defaults: true, defaults: defaults })
|
|
48
|
+
_(result.exit_code).must_equal HammerCLI::EX_OK
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
|
data/test/test_helper.rb
CHANGED
|
@@ -17,7 +17,7 @@ require "mocha/minitest"
|
|
|
17
17
|
require 'hammer_cli'
|
|
18
18
|
require 'hammer_cli_foreman/testing/api_expectations'
|
|
19
19
|
|
|
20
|
-
FOREMAN_VERSION = ENV['TEST_API_VERSION'] || '2.
|
|
20
|
+
FOREMAN_VERSION = ENV['TEST_API_VERSION'] || '2.5'
|
|
21
21
|
unless Dir.entries('test/data').include? FOREMAN_VERSION
|
|
22
22
|
raise StandardError.new "Version is not correct"
|
|
23
23
|
end
|
|
@@ -19,15 +19,6 @@ module ResourceMocks
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def self.smart_class_parameters_index
|
|
23
|
-
ResourceMocks.mock_action_call(:smart_class_parameters, :index,
|
|
24
|
-
{ "results" => [ { 'parameter' => 'config', 'id' => '1'} ] })
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.smart_class_parameters_show
|
|
28
|
-
ResourceMocks.mock_action_call(:smart_class_parameters, :show, { 'smart_class_parameter' => { 'override_value_order' => '', 'environments' => [] }})
|
|
29
|
-
end
|
|
30
|
-
|
|
31
22
|
def self.smart_variables_index
|
|
32
23
|
ResourceMocks.mock_action_call(:smart_variables, :index,
|
|
33
24
|
{ "results" => [ { 'variable' => 'var', 'id' => '1'} ] })
|
|
@@ -107,8 +98,6 @@ module ResourceMocks
|
|
|
107
98
|
ResourceMocks.mock_action_call(:hosts, :show, {
|
|
108
99
|
"ip" => "192.168.122.51",
|
|
109
100
|
"ip6" => nil,
|
|
110
|
-
"environment_id" => 1,
|
|
111
|
-
"environment_name" => "production",
|
|
112
101
|
"last_report" => "2016-10-24 12:06:31 UTC",
|
|
113
102
|
"mac" => "52:54:00:ce:b2:b9",
|
|
114
103
|
"realm_id" => nil,
|
|
@@ -150,26 +139,11 @@ module ResourceMocks
|
|
|
150
139
|
"organization_name" => nil,
|
|
151
140
|
"location_id" => nil,
|
|
152
141
|
"location_name" => nil,
|
|
153
|
-
"puppet_status" => 0,
|
|
154
142
|
"model_name" => "KVM",
|
|
155
143
|
"configuration_status" => 0,
|
|
156
144
|
"configuration_status_label" => "No reports",
|
|
157
145
|
"name" => "foreman.example.com",
|
|
158
146
|
"id" => 1,
|
|
159
|
-
"puppet_proxy_id" => 1,
|
|
160
|
-
"puppet_proxy_name" => "foreman.example.com",
|
|
161
|
-
"puppet_ca_proxy_id" => 1,
|
|
162
|
-
"puppet_ca_proxy_name" => "foreman.example.com",
|
|
163
|
-
"puppet_proxy" => {
|
|
164
|
-
"name" => "foreman.example.com",
|
|
165
|
-
"id" => 1,
|
|
166
|
-
"url" => "https://foreman.example.com:9090"
|
|
167
|
-
},
|
|
168
|
-
"puppet_ca_proxy" => {
|
|
169
|
-
"name" => "foreman.example.com",
|
|
170
|
-
"id" => 1,
|
|
171
|
-
"url" => "https://foreman.example.com:9090"
|
|
172
|
-
},
|
|
173
147
|
"hostgroup_name" => nil,
|
|
174
148
|
"hostgroup_title" => nil,
|
|
175
149
|
"parameters" => [],
|
|
@@ -193,10 +167,7 @@ module ResourceMocks
|
|
|
193
167
|
"primary" => false,
|
|
194
168
|
"provision" => false,
|
|
195
169
|
"type" => "interface"
|
|
196
|
-
}]
|
|
197
|
-
"puppetclasses" => [],
|
|
198
|
-
"config_groups" => [],
|
|
199
|
-
"all_puppetclasses" => []
|
|
170
|
+
}]
|
|
200
171
|
})
|
|
201
172
|
end
|
|
202
173
|
|
|
@@ -237,6 +208,27 @@ module ResourceMocks
|
|
|
237
208
|
)
|
|
238
209
|
end
|
|
239
210
|
|
|
211
|
+
def self.bookmarks
|
|
212
|
+
ResourceMocks.mock_action_calls(
|
|
213
|
+
[:bookmarks, :index, []],
|
|
214
|
+
[:bookmarks, :show, {}]
|
|
215
|
+
)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def self.mail_notifications
|
|
219
|
+
ResourceMocks.mock_action_calls(
|
|
220
|
+
[:mail_notifications, :index, []],
|
|
221
|
+
[:mail_notifications, :show, {}]
|
|
222
|
+
)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
def self.compute_profiles
|
|
226
|
+
ResourceMocks.mock_action_calls(
|
|
227
|
+
[:compute_profiles, :index, []],
|
|
228
|
+
[:compute_profiles, :show, {}]
|
|
229
|
+
)
|
|
230
|
+
end
|
|
231
|
+
|
|
240
232
|
def self.parameters_index
|
|
241
233
|
ResourceMocks.mock_action_call(:parameters, :index, [])
|
|
242
234
|
end
|
|
@@ -314,13 +306,4 @@ module ResourceMocks
|
|
|
314
306
|
"value" => "random value",
|
|
315
307
|
}])
|
|
316
308
|
end
|
|
317
|
-
|
|
318
|
-
def self.config_groups_index
|
|
319
|
-
ResourceMocks.mock_action_call(:config_groups, :index, [{
|
|
320
|
-
id: 15,
|
|
321
|
-
name: "test config group",
|
|
322
|
-
puppetclasses: [ { name: "My puppetclass" } ]
|
|
323
|
-
}])
|
|
324
|
-
end
|
|
325
|
-
|
|
326
309
|
end
|
|
@@ -17,6 +17,8 @@ describe HammerCLIForeman::Architecture do
|
|
|
17
17
|
context "parameters" do
|
|
18
18
|
it_should_accept "no arguments"
|
|
19
19
|
it_should_accept_search_params
|
|
20
|
+
it_should_accept 'organization', ['--organization-id=1']
|
|
21
|
+
it_should_accept 'location', ['--location-id=1']
|
|
20
22
|
end
|
|
21
23
|
|
|
22
24
|
context "output" do
|
|
@@ -37,6 +39,8 @@ describe HammerCLIForeman::Architecture do
|
|
|
37
39
|
context "parameters" do
|
|
38
40
|
it_should_accept "id", ["--id=1"]
|
|
39
41
|
it_should_accept "name", ["--name=arch"]
|
|
42
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
43
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
40
44
|
# it_should_fail_with "no arguments" # TODO: temporarily disabled, parameters are checked in the id resolver
|
|
41
45
|
end
|
|
42
46
|
|
|
@@ -57,6 +61,8 @@ describe HammerCLIForeman::Architecture do
|
|
|
57
61
|
|
|
58
62
|
context "parameters" do
|
|
59
63
|
it_should_accept "name", ["--name=arch"]
|
|
64
|
+
it_should_accept 'organization', %w[--name=arch --organization-id=1]
|
|
65
|
+
it_should_accept 'location', %w[--name=arch --location-id=1]
|
|
60
66
|
# it_should_fail_with "name missing", []
|
|
61
67
|
# TODO: temporarily disabled, parameters are checked in the api
|
|
62
68
|
end
|
|
@@ -71,6 +77,8 @@ describe HammerCLIForeman::Architecture do
|
|
|
71
77
|
context "parameters" do
|
|
72
78
|
it_should_accept "name", ["--name=arch"]
|
|
73
79
|
it_should_accept "id", ["--id=1"]
|
|
80
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
81
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
74
82
|
# it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
|
|
75
83
|
end
|
|
76
84
|
|
|
@@ -84,9 +92,10 @@ describe HammerCLIForeman::Architecture do
|
|
|
84
92
|
context "parameters" do
|
|
85
93
|
it_should_accept "name", ["--name=arch", "--new-name=arch2"]
|
|
86
94
|
it_should_accept "id", ["--id=1", "--new-name=arch2"]
|
|
95
|
+
it_should_accept 'organization', %w[--id=1 --new-name=arch2 --organization-id=1]
|
|
96
|
+
it_should_accept 'location', %w[--id=1 --new-name=arch2 --location-id=1]
|
|
87
97
|
# it_should_fail_with "no params", [] # TODO: temporarily disabled, parameters are checked in the id resolver
|
|
88
98
|
# it_should_fail_with "name or id missing", ["--new-name=arch2"] # TODO: temporarily disabled, parameters are checked in the id resolver
|
|
89
99
|
end
|
|
90
|
-
|
|
91
100
|
end
|
|
92
101
|
end
|
|
@@ -0,0 +1,95 @@
|
|
|
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/bookmark'
|
|
7
|
+
|
|
8
|
+
describe HammerCLIForeman::Bookmark do
|
|
9
|
+
include CommandTestHelper
|
|
10
|
+
|
|
11
|
+
context 'ListCommand' do
|
|
12
|
+
before :each do
|
|
13
|
+
ResourceMocks.bookmarks
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:cmd) { HammerCLIForeman::Bookmark::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
|
+
it_should_print_column 'Controller'
|
|
31
|
+
it_should_print_column 'Search Query'
|
|
32
|
+
it_should_print_column 'Public'
|
|
33
|
+
it_should_print_column 'Owner Id'
|
|
34
|
+
it_should_print_column 'Owner Type'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
context 'InfoCommand' do
|
|
39
|
+
let(:cmd) { HammerCLIForeman::Bookmark::InfoCommand.new('', ctx) }
|
|
40
|
+
|
|
41
|
+
context 'parameters' do
|
|
42
|
+
it_should_accept 'id', ['--id=1']
|
|
43
|
+
it_should_accept 'name', ['--name=active']
|
|
44
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
45
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context 'output' do
|
|
49
|
+
with_params ['--id=1'] do
|
|
50
|
+
it_should_print_n_records 1
|
|
51
|
+
it_should_print_column 'Id'
|
|
52
|
+
it_should_print_column 'Name'
|
|
53
|
+
it_should_print_column 'Controller'
|
|
54
|
+
it_should_print_column 'Search Query'
|
|
55
|
+
it_should_print_column 'Public'
|
|
56
|
+
it_should_print_column 'Owner Id'
|
|
57
|
+
it_should_print_column 'Owner Type'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
context 'CreateCommand' do
|
|
63
|
+
let(:cmd) { HammerCLIForeman::Bookmark::CreateCommand.new('', ctx) }
|
|
64
|
+
|
|
65
|
+
context 'parameters' do
|
|
66
|
+
it_should_accept 'name, public, controller, query, organization, location',
|
|
67
|
+
['--name=active', '--public=1', '--controller=hosts', '--organization-id=1', '--location-id=1',
|
|
68
|
+
'--query=last_report > "35 minutes ago" and (status.applied > 0 or status.restarted > 0)']
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context 'DeleteCommand' do
|
|
74
|
+
let(:cmd) { HammerCLIForeman::Bookmark::DeleteCommand.new('', ctx) }
|
|
75
|
+
|
|
76
|
+
context 'parameters' do
|
|
77
|
+
it_should_accept 'id', ['--id=1']
|
|
78
|
+
it_should_accept 'name', ['--name=active']
|
|
79
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
80
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
context 'UpdateCommand' do
|
|
85
|
+
let(:cmd) { HammerCLIForeman::Bookmark::UpdateCommand.new('', ctx) }
|
|
86
|
+
|
|
87
|
+
context 'parameters' do
|
|
88
|
+
it_should_accept 'id', ['--id=1']
|
|
89
|
+
it_should_accept 'name', ['--name=active']
|
|
90
|
+
it_should_accept 'name, public, controller, query, organization, location',
|
|
91
|
+
['--name=active', '--public=1', '--controller=hosts', '--organization-id=1', '--location-id=1',
|
|
92
|
+
'--query=last_report > "35 minutes ago" and (status.applied > 0 or status.restarted > 0)']
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
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/compute_profile'
|
|
7
|
+
|
|
8
|
+
describe HammerCLIForeman::ComputeProfile do
|
|
9
|
+
include CommandTestHelper
|
|
10
|
+
|
|
11
|
+
context 'ListCommand' do
|
|
12
|
+
before :each do
|
|
13
|
+
ResourceMocks.compute_profiles
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
let(:cmd) { HammerCLIForeman::ComputeProfile::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::ComputeProfile::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 'Created at'
|
|
49
|
+
it_should_print_column 'Updated at'
|
|
50
|
+
it_should_print_column 'Compute attributes'
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
context 'CreateCommand' do
|
|
56
|
+
let(:cmd) { HammerCLIForeman::ComputeProfile::CreateCommand.new('', ctx) }
|
|
57
|
+
|
|
58
|
+
context 'parameters' do
|
|
59
|
+
it_should_accept 'name', ['--name=test']
|
|
60
|
+
it_should_accept 'organization', %w[--name=test --organization-id=1]
|
|
61
|
+
it_should_accept 'location', %w[--name=test --location-id=1]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
context 'DeleteCommand' do
|
|
67
|
+
let(:cmd) { HammerCLIForeman::ComputeProfile::DeleteCommand.new('', ctx) }
|
|
68
|
+
|
|
69
|
+
context 'parameters' do
|
|
70
|
+
it_should_accept 'id', ['--id=1']
|
|
71
|
+
it_should_accept 'name', ['--name=test']
|
|
72
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
73
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
context 'UpdateCommand' do
|
|
78
|
+
let(:cmd) { HammerCLIForeman::ComputeProfile::UpdateCommand.new('', ctx) }
|
|
79
|
+
|
|
80
|
+
context 'parameters' do
|
|
81
|
+
it_should_accept 'id', ['--id=1']
|
|
82
|
+
it_should_accept 'name', ['--name=test']
|
|
83
|
+
it_should_accept 'organization', %w[--id=1 --organization-id=1]
|
|
84
|
+
it_should_accept 'location', %w[--id=1 --location-id=1]
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|