hammer_cli_foreman 2.5.1 → 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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/doc/release_notes.md +10 -1
  3. data/lib/hammer_cli_foreman.rb +0 -21
  4. data/lib/hammer_cli_foreman/architecture.rb +5 -5
  5. data/lib/hammer_cli_foreman/associating_commands.rb +0 -24
  6. data/lib/hammer_cli_foreman/bookmark.rb +5 -5
  7. data/lib/hammer_cli_foreman/combination.rb +3 -13
  8. data/lib/hammer_cli_foreman/command_extensions.rb +0 -2
  9. data/lib/hammer_cli_foreman/commands.rb +2 -9
  10. data/lib/hammer_cli_foreman/compute_profile.rb +5 -5
  11. data/lib/hammer_cli_foreman/host.rb +0 -35
  12. data/lib/hammer_cli_foreman/hostgroup.rb +2 -53
  13. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +1 -23
  14. data/lib/hammer_cli_foreman/id_resolver.rb +0 -61
  15. data/lib/hammer_cli_foreman/location.rb +0 -6
  16. data/lib/hammer_cli_foreman/mail_notification.rb +2 -2
  17. data/lib/hammer_cli_foreman/model.rb +5 -5
  18. data/lib/hammer_cli_foreman/operating_system.rb +10 -10
  19. data/lib/hammer_cli_foreman/option_sources.rb +0 -1
  20. data/lib/hammer_cli_foreman/option_sources/id_params.rb +27 -10
  21. data/lib/hammer_cli_foreman/option_sources/ids_params.rb +25 -6
  22. data/lib/hammer_cli_foreman/organization.rb +0 -6
  23. data/lib/hammer_cli_foreman/references.rb +0 -16
  24. data/lib/hammer_cli_foreman/settings.rb +3 -3
  25. data/lib/hammer_cli_foreman/smart_proxy.rb +0 -52
  26. data/lib/hammer_cli_foreman/usergroup.rb +5 -5
  27. data/lib/hammer_cli_foreman/version.rb +1 -1
  28. data/lib/minitest/coverage_reporter.rb +1 -1
  29. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  30. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  31. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  32. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  33. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  34. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  35. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  36. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  37. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  38. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  39. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  40. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  41. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/test/functional/architecture_test.rb +6 -4
  43. data/test/functional/bookmark_test.rb +3 -1
  44. data/test/functional/compute_profile_test.rb +3 -1
  45. data/test/functional/host_test.rb +0 -1
  46. data/test/functional/hostgroup/create_test.rb +0 -117
  47. data/test/functional/hostgroup/update_test.rb +0 -79
  48. data/test/functional/location_test.rb +0 -3
  49. data/test/functional/mail_notification_test.rb +3 -1
  50. data/test/functional/model_test.rb +3 -1
  51. data/test/functional/operating_system_test.rb +3 -1
  52. data/test/functional/settings_test.rb +4 -4
  53. data/test/functional/template_test.rb +4 -37
  54. data/test/functional/usergroup_test.rb +3 -1
  55. data/test/unit/apipie_resource_mock.rb +1 -39
  56. data/test/unit/architecture_test.rb +10 -10
  57. data/test/unit/bookmark_test.rb +10 -14
  58. data/test/unit/compute_profile_test.rb +10 -10
  59. data/test/unit/helpers/command.rb +0 -8
  60. data/test/unit/host_test.rb +14 -61
  61. data/test/unit/hostgroup_test.rb +7 -26
  62. data/test/unit/id_resolver_test.rb +0 -28
  63. data/test/unit/mail_notification_test.rb +4 -4
  64. data/test/unit/model_test.rb +47 -47
  65. data/test/unit/operating_system_test.rb +10 -16
  66. data/test/unit/option_sources/id_params_test.rb +9 -0
  67. data/test/unit/option_sources/ids_params_test.rb +9 -0
  68. data/test/unit/settings_test.rb +4 -4
  69. data/test/unit/smart_proxy_test.rb +0 -12
  70. data/test/unit/usergroup_test.rb +10 -10
  71. metadata +64 -85
  72. data/lib/hammer_cli_foreman/command_extensions/puppet_environment.rb +0 -29
  73. data/lib/hammer_cli_foreman/command_extensions/puppet_environments.rb +0 -29
  74. data/lib/hammer_cli_foreman/config_group.rb +0 -45
  75. data/lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb +0 -59
  76. data/lib/hammer_cli_foreman/puppet_class.rb +0 -61
  77. data/lib/hammer_cli_foreman/puppet_environment.rb +0 -65
  78. data/lib/hammer_cli_foreman/smart_class_parameter.rb +0 -189
  79. data/test/functional/config_group_test.rb +0 -50
  80. data/test/functional/proxy_test.rb +0 -86
  81. data/test/functional/smart_class_parameter_test.rb +0 -97
  82. data/test/unit/config_group_test.rb +0 -82
  83. data/test/unit/puppet_class_test.rb +0 -72
  84. data/test/unit/puppet_environment_test.rb +0 -114
  85. data/test/unit/smart_class_parameter_test.rb +0 -113
@@ -1,97 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper')
2
-
3
-
4
- describe 'sc-params update' do
5
- let(:cmd) { %w(sc-param update) }
6
-
7
- it 'does not allow to update parameter name' do
8
- params = ['--id=1', '--new-name=name2']
9
-
10
- expected_result = usage_error_result(
11
- cmd,
12
- "Unrecognised option '--new-name'.",
13
- "Could not update the parameter"
14
- )
15
-
16
- api_expects_no_call
17
- result = run_cmd(cmd + params)
18
- assert_cmd(expected_result, result)
19
- end
20
-
21
- end
22
-
23
- describe 'sc-params add-matcher' do
24
- let(:cmd) { %w(sc-param add-matcher) }
25
- let(:override_value) { 'something' }
26
- let(:match) { 'domain = example.com' }
27
- let(:puppet_class) { { 'name' => 'motd', 'id' => '1' } }
28
- let(:parameter) { { 'name' => 'content', 'id' => '2' } }
29
- let(:base) { [
30
- '--puppet-class', puppet_class['name'],
31
- '--smart-class-parameter', parameter['name'],
32
- '--match', match
33
- ] }
34
-
35
- def api_expects_parameter_search(puppet_class, parameter)
36
- api_expects(:puppetclasses, :index, 'Find puppet class') do |par|
37
- par[:search] == %Q(name = "#{puppet_class['name']}")
38
- end.returns(index_response('motd' => [puppet_class]))
39
-
40
- api_expects(:smart_class_parameters, :index, 'Find smart parameter') do |par|
41
- par[:search] == %Q(key = "#{parameter['name']}") &&
42
- par[:puppetclass_id] == puppet_class['id']
43
- end.returns(index_response([parameter]))
44
- end
45
-
46
- it 'allows to set value' do
47
- params = ['--value', override_value]
48
- expected_result = success_result("Override value created.\n")
49
-
50
- api_expects_parameter_search(puppet_class, parameter)
51
-
52
- api_expects(:override_values, :create, 'Create override value').with_params(
53
- :smart_class_parameter_id => parameter['id'],
54
- :override_value => {
55
- :match => match,
56
- :value => override_value
57
- }
58
- )
59
-
60
- result = run_cmd(cmd + base + params)
61
- assert_cmd(expected_result, result)
62
- end
63
-
64
- it 'allows to set value with disabled puppet default' do
65
- params = ['--value', override_value, '--omit', false]
66
- expected_result = success_result("Override value created.\n")
67
-
68
- api_expects_parameter_search(puppet_class, parameter)
69
-
70
- api_expects(:override_values, :create, 'Create override value').with_params(
71
- :smart_class_parameter_id => parameter['id'],
72
- :override_value => {
73
- :match => match,
74
- :value => override_value,
75
- :omit => false
76
- }
77
- )
78
-
79
- result = run_cmd(cmd + base + params)
80
- assert_cmd(expected_result, result)
81
- end
82
-
83
- it 'does not allow to use puppet default and value at the same time' do
84
- params = ['--value', 'something', '--omit', true]
85
-
86
- expected_result = usage_error_result(
87
- cmd,
88
- "Cannot use --value when --omit is true.",
89
- 'Could not create the override value'
90
- )
91
-
92
- api_expects_parameter_search(puppet_class, parameter)
93
-
94
- result = run_cmd(cmd + base + params)
95
- assert_cmd(expected_result, result)
96
- end
97
- end
@@ -1,82 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper')
2
- require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
3
-
4
- require 'hammer_cli_foreman/config_group'
5
-
6
- describe HammerCLIForeman::ConfigGroup do
7
- include CommandTestHelper
8
-
9
- context "ListCommand" do
10
- let(:cmd) { HammerCLIForeman::ConfigGroup::ListCommand.new("", ctx) }
11
-
12
- before :each do
13
- ResourceMocks.config_groups_index
14
- end
15
-
16
- context "parameters" do
17
- it_should_accept "no arguments"
18
- it_should_accept_search_params
19
- it_should_fail_with 'organization param', ['--organization-id=1']
20
- it_should_fail_with 'location param', ['--location-id=1']
21
- end
22
-
23
- context "output" do
24
- let(:expected_record_count) { cmd.resource.call(:index).length }
25
- it_should_print_n_records
26
- it_should_print_columns ["ID", "Name"]
27
- end
28
- end
29
-
30
- context "InfoCommand" do
31
- let(:cmd) { HammerCLIForeman::ConfigGroup::InfoCommand.new("", ctx) }
32
-
33
- context "parameters" do
34
- it_should_accept "id", ["--id=1"]
35
- it_should_accept "name", ["--name=group_x"]
36
- it_should_fail_with 'organization param', ['--organization-id=1']
37
- it_should_fail_with 'location param', ['--location-id=1']
38
- end
39
-
40
- context "output" do
41
- with_params ["--id=1"] do
42
- it_should_print_n_records 1
43
- it_should_print_column "Name"
44
- it_should_print_column "ID"
45
- it_should_print_column "Puppetclasses"
46
- end
47
- end
48
- end
49
-
50
- context "CreateCommand" do
51
- let(:cmd) { HammerCLIForeman::ConfigGroup::CreateCommand.new("", ctx) }
52
-
53
- context "parameters" do
54
- it_should_accept "name, puppetclass ids", ["--name=first_group", "--puppet-class-ids=1,2"]
55
- it_should_fail_with 'organization param', ['--organization-id=1']
56
- it_should_fail_with 'location param', ['--location-id=1']
57
- end
58
- end
59
-
60
- context "DeleteCommand" do
61
- let(:cmd) { HammerCLIForeman::ConfigGroup::DeleteCommand.new("", ctx) }
62
-
63
- context "parameters" do
64
- it_should_accept "name", ["--name=group_x"]
65
- it_should_accept "id", ["--id=1"]
66
- it_should_fail_with 'organization param', ['--organization-id=1']
67
- it_should_fail_with 'location param', ['--location-id=1']
68
- end
69
- end
70
-
71
- context "UpdateCommand" do
72
-
73
- let(:cmd) { HammerCLIForeman::ConfigGroup::UpdateCommand.new("", ctx) }
74
-
75
- context "parameters" do
76
- it_should_accept "name", ["--name=group_x"]
77
- it_should_accept "id", ["--id=1"]
78
- it_should_fail_with 'organization param', ['--organization-id=1']
79
- it_should_fail_with 'location param', ['--location-id=1']
80
- end
81
- end
82
- end
@@ -1,72 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper')
2
- require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
3
-
4
- require 'hammer_cli_foreman/puppet_class'
5
-
6
- describe HammerCLIForeman::PuppetClass do
7
-
8
- include CommandTestHelper
9
-
10
- context "ListCommand" do
11
- before do
12
- ResourceMocks.mock_action_call(:puppetclasses, :index, {})
13
- end
14
-
15
- let(:cmd) { HammerCLIForeman::PuppetClass::ListCommand.new("", ctx) }
16
-
17
- context "parameters" do
18
- it_should_accept "no arguments"
19
- # FIXME: the command should accept search parameters in future
20
- # it_should_accept_search_params
21
- end
22
-
23
- context "output" do
24
- let(:expected_record_count) do
25
- # data are retuned in specific format
26
- HammerCLIForeman.collection_to_common_format(cmd.resource.call(:index)).first.keys.count
27
- end
28
-
29
- it_should_print_n_records
30
- it_should_print_column "Id"
31
- it_should_print_column "Name"
32
- end
33
-
34
- end
35
-
36
-
37
- context "InfoCommand" do
38
-
39
- let(:cmd) { HammerCLIForeman::PuppetClass::InfoCommand.new("", ctx) }
40
-
41
- context "parameters" do
42
- it_should_accept "id", ["--id=1"]
43
- # it_should_fail_with "no arguments" # TODO: temporarily disabled, parameters are checked in the id resolver
44
- end
45
-
46
- context "output" do
47
- with_params ["--id=1"] do
48
- it_should_print_n_records 1
49
- it_should_print_column "Id"
50
- it_should_print_column "Name"
51
- end
52
- end
53
-
54
- end
55
-
56
- context "SCParamsCommand" do
57
-
58
- before :each do
59
- ResourceMocks.smart_class_parameters_index
60
- end
61
-
62
- let(:cmd) { HammerCLIForeman::PuppetClass::SCParamsCommand.new("", ctx) }
63
-
64
- context "parameters" do
65
- it_should_accept "puppet-class", ["--puppet-class=cls"]
66
- it_should_accept "puppet-class-id", ["--puppet-class-id=1"]
67
- # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
68
- end
69
-
70
- end
71
-
72
- end
@@ -1,114 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper')
2
- require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
3
-
4
- require 'hammer_cli_foreman/puppet_environment'
5
-
6
- describe HammerCLIForeman::PuppetEnvironment do
7
-
8
- include CommandTestHelper
9
-
10
- context "ListCommand" do
11
- before do
12
- ResourceMocks.mock_action_call(:environments, :index, [])
13
- end
14
-
15
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::ListCommand.new("", ctx) }
16
-
17
- context "parameters" do
18
- it_should_accept "no arguments"
19
- it_should_accept_search_params
20
- end
21
-
22
- context "output" do
23
- let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
24
-
25
- it_should_print_n_records
26
- it_should_print_column "Name"
27
- it_should_print_column "Id"
28
- end
29
-
30
- end
31
-
32
-
33
- context "InfoCommand" do
34
-
35
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::InfoCommand.new("", ctx) }
36
-
37
- context "parameters" do
38
- it_should_accept "id", ["--id=1"]
39
- it_should_accept "name", ["--name=env"]
40
- # it_should_fail_with "no arguments"
41
- # TODO: temporarily disabled, parameters are checked in the id resolver
42
- end
43
-
44
- context "output" do
45
- with_params ["--id=1"] do
46
- it_should_print_n_records 1
47
- it_should_print_column "Name"
48
- it_should_print_column "Id"
49
- it_should_print_column "Created at"
50
- it_should_print_column "Updated at"
51
- end
52
- end
53
-
54
- end
55
-
56
-
57
- context "CreateCommand" do
58
-
59
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::CreateCommand.new("", ctx) }
60
-
61
- context "parameters" do
62
- it_should_accept "name", ["--name=env"]
63
- # it_should_fail_with "name missing", []
64
- # TODO: temporarily disabled, parameters are checked by the api
65
- end
66
-
67
- end
68
-
69
-
70
- context "DeleteCommand" do
71
-
72
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::DeleteCommand.new("", ctx) }
73
-
74
- context "parameters" do
75
- it_should_accept "name", ["--name=env"]
76
- it_should_accept "id", ["--id=1"]
77
- # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
78
- end
79
-
80
- end
81
-
82
-
83
- context "UpdateCommand" do
84
-
85
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::UpdateCommand.new("", ctx) }
86
-
87
- context "parameters" do
88
- it_should_accept "name", ["--name=env", "--new-name=env2"]
89
- it_should_accept "id", ["--id=1", "--new-name=env2"]
90
- # it_should_fail_with "no params", [] # TODO: temporarily disabled, parameters are checked in the id resolver
91
- # it_should_fail_with "name or id missing", ["--new-name=env2"] # TODO: temporarily disabled, parameters are checked in the id resolver
92
- end
93
-
94
- end
95
-
96
- context "SCParamsCommand" do
97
-
98
- before :each do
99
- ResourceMocks.smart_class_parameters_index
100
- end
101
-
102
- let(:cmd) { HammerCLIForeman::PuppetEnvironment::SCParamsCommand.new("", ctx) }
103
-
104
- context "parameters" do
105
- it_should_accept "environment", ["--environment=env"]
106
- it_should_accept "environment-id", ["--environment-id=1"]
107
- it_should_accept "puppet-environment", ["--puppet-environment=env"]
108
- it_should_accept "puppet-environment-id", ["--puppet-environment-id=1"]
109
- # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
110
- end
111
-
112
- end
113
-
114
- end
@@ -1,113 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'test_helper')
2
- require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
3
-
4
- require 'hammer_cli_foreman/smart_class_parameter'
5
-
6
- describe HammerCLIForeman::SmartClassParameter do
7
-
8
- include CommandTestHelper
9
-
10
- context "ListCommand" do
11
-
12
- before :each do
13
- ResourceMocks.smart_class_parameters_index
14
- end
15
-
16
- let(:cmd) { HammerCLIForeman::SmartClassParameter::ListCommand.new("", ctx) }
17
-
18
- context "parameters" do
19
- it_should_accept "no arguments"
20
- it_should_accept "hostgroup id", ["--hostgroup-id=1"]
21
- it_should_accept "host id", ["--host-id=1"]
22
- it_should_accept "environment id", ["--environment-id=1"]
23
- it_should_accept "puppet-class-id", ["--puppet-class-id=1"]
24
- it_should_accept_search_params
25
- end
26
-
27
- context "output" do
28
- let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
29
-
30
- it_should_print_n_records
31
- it_should_print_column "Id"
32
- it_should_print_column "Class Id"
33
- it_should_print_column "Puppet class"
34
- it_should_print_column "Parameter"
35
- it_should_print_column "Default Value"
36
- it_should_print_column "Override"
37
- end
38
-
39
- end
40
-
41
-
42
- context "InfoCommand" do
43
-
44
- before :each do
45
- ResourceMocks.smart_class_parameters_show
46
- end
47
-
48
- let(:cmd) { HammerCLIForeman::SmartClassParameter::InfoCommand.new("", ctx) }
49
-
50
- context "parameters" do
51
- it_should_accept "id", ["--id=1"]
52
- it_should_accept "name, puppet-class", ["--name=par", "--puppet-class=ntp"]
53
- it_should_fail_with "name", ["--name=par"]
54
- # it_should_fail_with "no arguments"
55
- # TODO: temporarily disabled, parameters are checked in the id resolver
56
- end
57
-
58
- context "output" do
59
- with_params ["--id=1"] do
60
- it_should_print_n_records 1
61
- it_should_print_columns ["Description", "Type", "Omit", "Required"]
62
- end
63
- end
64
- end
65
-
66
-
67
- context "UpdateCommand" do
68
-
69
- let(:cmd) { HammerCLIForeman::SmartClassParameter::UpdateCommand.new("", ctx) }
70
-
71
- context "parameters" do
72
- it_should_accept "id", ["--id=1"]
73
- it_should_accept "name, puppet-class", ["--name=par", "--puppet-class=ntp"]
74
- it_should_fail_with "name", ["--name=par"]
75
- it_should_accept "override", ["--id=1","--override=true"]
76
- it_should_accept "description", ["--id=1","--description=descr"]
77
- it_should_accept "default-value", ["--id=1","--default-value=1"]
78
- it_should_accept "path ", ["--id=1","--path=path"]
79
- it_should_accept "validator-type", ["--id=1","--validator-type=list"]
80
- it_should_accept "validator-rule ", ["--id=1","--validator-rule=''"]
81
- it_should_accept "override-value-order", ["--id=1","--override-value-order=fqdn"]
82
- it_should_accept "parameter-type ", ["--id=1","--parameter-type=string"]
83
- it_should_accept "required", ["--id=1","--required=true"]
84
-
85
- # it_should_fail_with "no params", []
86
- # TODO: temporarily disabled, parameters are checked in the id resolver
87
- end
88
-
89
- end
90
-
91
- context "AddMatcherCommand" do
92
-
93
- let(:cmd) { HammerCLIForeman::SmartClassParameter::AddMatcherCommand.new("", ctx) }
94
-
95
- context "parameters" do
96
- it_should_accept "smart-class-parametr-id, match, value", ["--smart-class-parameter-id=1", "--match='domain=my.lan'", "--value=1"]
97
- it_should_accept "smart-class-parameter, puppet-class, match, value", ["--smart-class-parameter=par", "--puppet-class=ntp", "--match='domain=my.lan'", "--value=1"]
98
- it_should_fail_with "smart-class-parameter, match, value", ["--smart-class-parameter=par", "--match='domain=my.lan'", "--value=1"]
99
- end
100
- end
101
-
102
- context "RemoveMatcherCommand" do
103
-
104
- let(:cmd) { HammerCLIForeman::SmartClassParameter::RemoveMatcherCommand.new("", ctx) }
105
-
106
- context "parameters" do
107
- it_should_accept "smart-class-parametr-id, id", ["--smart-class-parameter-id=1", "--id=1"]
108
- it_should_accept "smart-class-parameter, puppet-class, id", ["--smart-class-parameter=par", "--puppet-class=ntp", "--id=1"]
109
- it_should_fail_with "smart-class-parameter, id", ["--smart-class-parameter=par", "--id=1"]
110
- end
111
- end
112
-
113
- end