foreman_salt 14.0.0 → 15.1.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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +2 -2
  4. data/app/controllers/foreman_salt/api/v2/jobs_controller.rb +9 -9
  5. data/app/controllers/foreman_salt/api/v2/salt_autosign_controller.rb +15 -14
  6. data/app/controllers/foreman_salt/api/v2/salt_environments_controller.rb +6 -6
  7. data/app/controllers/foreman_salt/api/v2/salt_hostgroups_controller.rb +42 -0
  8. data/app/controllers/foreman_salt/api/v2/salt_keys_controller.rb +14 -14
  9. data/app/controllers/foreman_salt/api/v2/salt_minions_controller.rb +8 -8
  10. data/app/controllers/foreman_salt/api/v2/salt_states_controller.rb +24 -26
  11. data/app/controllers/foreman_salt/api/v2/salt_variables_controller.rb +22 -21
  12. data/app/controllers/foreman_salt/concerns/hostgroups_controller_extensions.rb +3 -3
  13. data/app/controllers/foreman_salt/concerns/hosts_controller_extensions.rb +4 -4
  14. data/app/controllers/foreman_salt/concerns/salt_environment_parameters.rb +1 -1
  15. data/app/controllers/foreman_salt/concerns/salt_hostgroup_parameters.rb +25 -0
  16. data/app/controllers/foreman_salt/concerns/salt_module_parameters.rb +1 -1
  17. data/app/controllers/foreman_salt/concerns/salt_override_value.rb +4 -4
  18. data/app/controllers/foreman_salt/concerns/salt_variable_parameters.rb +5 -5
  19. data/app/controllers/foreman_salt/minions_controller.rb +9 -20
  20. data/app/controllers/foreman_salt/salt_autosign_controller.rb +8 -8
  21. data/app/controllers/foreman_salt/salt_environments_controller.rb +4 -4
  22. data/app/controllers/foreman_salt/salt_keys_controller.rb +11 -11
  23. data/app/controllers/foreman_salt/salt_modules_controller.rb +10 -11
  24. data/app/controllers/foreman_salt/salt_variables_controller.rb +5 -4
  25. data/app/controllers/foreman_salt/state_importer.rb +12 -13
  26. data/app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb +13 -21
  27. data/app/helpers/concerns/foreman_salt/smart_proxies_helper_extensions.rb +2 -2
  28. data/app/helpers/foreman_salt/salt_keys_helper.rb +2 -1
  29. data/app/helpers/foreman_salt/salt_modules_helper.rb +11 -11
  30. data/app/helpers/foreman_salt/salt_reports_helper.rb +0 -1
  31. data/app/lib/actions/foreman_salt/report_import.rb +2 -2
  32. data/app/lib/proxy_api/salt.rb +17 -17
  33. data/app/models/foreman_salt/concerns/host_managed_extensions.rb +46 -56
  34. data/app/models/foreman_salt/concerns/hostgroup_extensions.rb +14 -11
  35. data/app/models/foreman_salt/host_salt_module.rb +1 -1
  36. data/app/models/foreman_salt/salt_environment.rb +8 -8
  37. data/app/models/foreman_salt/salt_module.rb +15 -13
  38. data/app/models/foreman_salt/salt_module_environment.rb +1 -1
  39. data/app/models/foreman_salt/salt_provider.rb +7 -4
  40. data/app/models/foreman_salt/salt_variable.rb +8 -8
  41. data/app/overrides/salt_environment_host_selector.rb +4 -4
  42. data/app/overrides/salt_environment_hostgroup_selector.rb +4 -4
  43. data/app/overrides/salt_modules_selector.rb +16 -16
  44. data/app/overrides/salt_proxy_selector.rb +11 -9
  45. data/app/services/foreman_salt/report_importer.rb +30 -30
  46. data/app/services/foreman_salt/smart_proxies/salt_keys.rb +47 -45
  47. data/app/views/foreman_salt/api/v2/salt_autosign/create.json.rabl +1 -1
  48. data/app/views/foreman_salt/api/v2/salt_environments/create.json.rabl +1 -1
  49. data/app/views/foreman_salt/api/v2/salt_environments/show.json.rabl +1 -1
  50. data/app/views/foreman_salt/api/v2/salt_hostgroups/base.json.rabl +7 -0
  51. data/app/views/foreman_salt/api/v2/salt_hostgroups/show.json.rabl +3 -0
  52. data/app/views/foreman_salt/api/v2/salt_hostgroups/update.json.rabl +3 -0
  53. data/app/views/foreman_salt/api/v2/salt_keys/update.json.rabl +1 -1
  54. data/app/views/foreman_salt/api/v2/salt_minions/show.json.rabl +3 -4
  55. data/app/views/foreman_salt/api/v2/salt_states/create.json.rabl +1 -1
  56. data/app/views/foreman_salt/api/v2/salt_states/show.json.rabl +0 -1
  57. data/app/views/foreman_salt/api/v2/salt_variables/create.json.rabl +1 -1
  58. data/app/views/foreman_salt/api/v2/salt_variables/destroy.json.rabl +1 -1
  59. data/app/views/foreman_salt/api/v2/salt_variables/show.json.rabl +8 -8
  60. data/app/views/foreman_salt/salt_autosign/index.html.erb +1 -2
  61. data/app/views/foreman_salt/salt_environments/index.html.erb +1 -3
  62. data/app/views/foreman_salt/salt_keys/index.erb +1 -3
  63. data/app/views/foreman_salt/salt_modules/index.html.erb +1 -2
  64. data/config/api_routes.rb +31 -0
  65. data/config/routes.rb +16 -44
  66. data/db/migrate/20140817210214_create_salt_modules.rb +4 -4
  67. data/db/migrate/20140829210214_add_salt_modules_to_hostgroups.rb +1 -1
  68. data/db/migrate/20140920232200_create_salt_environments.rb +3 -3
  69. data/db/migrate/20150220122707_fix_incorrect_report_metrics.rb +6 -2
  70. data/db/migrate/20211108211312_add_missing_permissions.rb +9 -0
  71. data/db/migrate/20220118160349_drop_salt_hide_run_salt_button_setting.rb +5 -0
  72. data/db/migrate/20220406185204_fix_salt_setting_category_to_dsl.rb +5 -0
  73. data/db/seeds.d/75-salt_seeds.rb +1 -1
  74. data/db/seeds.d/76-job_templates.rb +7 -5
  75. data/lib/foreman_salt/engine.rb +17 -19
  76. data/lib/foreman_salt/extensions.rb +8 -8
  77. data/lib/foreman_salt/plugin.rb +130 -114
  78. data/lib/foreman_salt/version.rb +1 -1
  79. data/lib/foreman_salt.rb +1 -1
  80. data/lib/tasks/foreman_salt_tasks.rake +3 -5
  81. data/locale/action_names.rb +4 -4
  82. data/test/factories/foreman_salt_factories.rb +5 -5
  83. data/test/functional/api/v2/salt_autosign_controller_test.rb +26 -20
  84. data/test/functional/api/v2/salt_environments_controller_test.rb +29 -23
  85. data/test/functional/api/v2/salt_hostgroups_controller_test.rb +76 -0
  86. data/test/functional/api/v2/salt_keys_controller_test.rb +25 -19
  87. data/test/functional/api/v2/salt_states_controller_test.rb +72 -66
  88. data/test/functional/api/v2/salt_variables_controller_test.rb +4 -4
  89. data/test/functional/hosts_controller_test.rb +26 -26
  90. data/test/functional/minions_controller_test.rb +23 -24
  91. data/test/functional/salt_modules_controller_test.rb +3 -3
  92. data/test/functional/salt_variables_controller_test.rb +5 -5
  93. data/test/integration/hosts_js_test.rb +7 -23
  94. data/test/integration/salt_autosign_test.rb +5 -6
  95. data/test/integration/salt_environment_test.rb +2 -2
  96. data/test/integration/salt_keys_test.rb +7 -8
  97. data/test/integration/salt_module_test.rb +9 -9
  98. data/test/integration/salt_variable_test.rb +2 -2
  99. data/test/test_plugin_helper.rb +1 -1
  100. data/test/unit/grains_importer_test.rb +13 -13
  101. data/test/unit/host_extensions_test.rb +21 -19
  102. data/test/unit/hostgroup_extensions_test.rb +13 -13
  103. data/test/unit/report_importer_test.rb +9 -9
  104. data/test/unit/salt_keys_test.rb +2 -2
  105. data/test/unit/salt_modules_test.rb +2 -2
  106. data/test/unit/salt_variables_test.rb +10 -10
  107. metadata +24 -14
  108. data/app/models/setting/salt.rb +0 -13
@@ -1,31 +1,37 @@
1
1
  require 'test_plugin_helper'
2
2
 
3
- class ::ForemanSalt::Api::V2::SaltEnvironmentsControllerTest < ActionController::TestCase
4
- test 'should get index' do
5
- get :index
6
- assert_response :success
7
- assert_template 'api/v2/salt_environments/index'
8
- end
3
+ module ForemanSalt
4
+ module Api
5
+ module V2
6
+ class SaltEnvironmentsControllerTest < ActionController::TestCase
7
+ test 'should get index' do
8
+ get :index
9
+ assert_response :success
10
+ assert_template 'api/v2/salt_environments/index'
11
+ end
9
12
 
10
- test 'should show environment' do
11
- environment = ForemanSalt::SaltEnvironment.create(:name => 'foo')
12
- get :show, params: { :id => environment.id }
13
- assert_response :success
14
- assert_template 'api/v2/salt_environments/show'
15
- end
13
+ test 'should show environment' do
14
+ environment = ForemanSalt::SaltEnvironment.create(name: 'foo')
15
+ get :show, params: { id: environment.id }
16
+ assert_response :success
17
+ assert_template 'api/v2/salt_environments/show'
18
+ end
16
19
 
17
- test 'should create environment' do
18
- post :create, params: { :environment => { :name => 'unicorn' } }
19
- assert_response :success
20
- assert ForemanSalt::SaltEnvironment.find_by_name('unicorn')
21
- assert_template 'api/v2/salt_environments/create'
22
- end
20
+ test 'should create environment' do
21
+ post :create, params: { environment: { name: 'unicorn' } }
22
+ assert_response :success
23
+ assert ForemanSalt::SaltEnvironment.find_by(name: 'unicorn')
24
+ assert_template 'api/v2/salt_environments/create'
25
+ end
23
26
 
24
- test 'should delete environment' do
25
- environment = ForemanSalt::SaltEnvironment.create(:name => 'foo.bar.baz')
26
- assert_difference('ForemanSalt::SaltEnvironment.count', -1) do
27
- delete :destroy, params: { :id => environment.id }
27
+ test 'should delete environment' do
28
+ environment = ForemanSalt::SaltEnvironment.create(name: 'foo.bar.baz')
29
+ assert_difference('ForemanSalt::SaltEnvironment.count', -1) do
30
+ delete :destroy, params: { id: environment.id }
31
+ end
32
+ assert_response :success
33
+ end
34
+ end
28
35
  end
29
- assert_response :success
30
36
  end
31
37
  end
@@ -0,0 +1,76 @@
1
+ require 'test_plugin_helper'
2
+
3
+ module ForemanSalt
4
+ module Api
5
+ module V2
6
+ class SaltHostgroupsControllerTest < ActionController::TestCase
7
+ setup do
8
+ @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
9
+ @env = ForemanSalt::SaltEnvironment.create(name: 'basement')
10
+ @state = ForemanSalt::SaltModule.create(name: 'motd')
11
+ end
12
+
13
+ test 'should show host group' do
14
+ hostgroup = FactoryBot.create(:hostgroup)
15
+ get :show, params: { id: hostgroup.id }
16
+
17
+ assert_response :success
18
+ assert_template 'foreman_salt/api/v2/salt_hostgroups/show'
19
+ end
20
+
21
+ test 'should set proxy' do
22
+ hostgroup = FactoryBot.create(:hostgroup)
23
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_proxy_id: @proxy.id } }
24
+ response_json = ActiveSupport::JSON.decode(response.body)
25
+ # remove protocol and port
26
+ clean_url = @proxy.url[8..-6]
27
+
28
+ assert_response :success
29
+ assert_template 'foreman_salt/api/v2/salt_hostgroups/update'
30
+ assert_equal clean_url, response_json['salt_master']
31
+ end
32
+
33
+ test 'should not find proxy' do
34
+ hostgroup = FactoryBot.create(:hostgroup)
35
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_proxy_id: -2 } }
36
+
37
+ assert_response 422 # unprocessable entity
38
+ end
39
+
40
+ test 'should set environment' do
41
+ hostgroup = FactoryBot.create(:hostgroup)
42
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_environment_id: @env.id } }
43
+ response_json = ActiveSupport::JSON.decode(response.body)
44
+
45
+ assert_response :success
46
+ assert_template 'foreman_salt/api/v2/salt_hostgroups/update'
47
+ assert_equal @env.name, response_json['salt_environment']
48
+ end
49
+
50
+ test 'should not find environment' do
51
+ hostgroup = FactoryBot.create(:hostgroup)
52
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_environment_id: -12 } }
53
+
54
+ assert_response 422 # unprocessable entity
55
+ end
56
+
57
+ test 'should set states' do
58
+ hostgroup = FactoryBot.create(:hostgroup)
59
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_state_ids: [@state.id] } }
60
+ response_json = ActiveSupport::JSON.decode(response.body)
61
+
62
+ assert_response :success
63
+ assert_template 'foreman_salt/api/v2/salt_hostgroups/update'
64
+ assert_equal @state.name, response_json['salt_states'][0]['name']
65
+ end
66
+
67
+ test 'should not find states' do
68
+ hostgroup = FactoryBot.create(:hostgroup)
69
+ put :update, params: { id: hostgroup.id, hostgroup: { salt_state_ids: [-5] } }
70
+
71
+ assert_response 422 # unprocessable entity
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -1,27 +1,33 @@
1
1
  require 'test_plugin_helper'
2
2
 
3
- class ::ForemanSalt::Api::V2::SaltKeysControllerTest < ActionController::TestCase
4
- setup do
5
- @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
3
+ module ForemanSalt
4
+ module Api
5
+ module V2
6
+ class SaltKeysControllerTest < ActionController::TestCase
7
+ setup do
8
+ @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
6
9
 
7
- ProxyAPI::Salt.any_instance.stubs(:key_list).returns('saltstack.example.com' => { 'state' => 'unaccepted',
8
- 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c0' })
9
- end
10
+ ProxyAPI::Salt.any_instance.stubs(:key_list).returns('saltstack.example.com' => { 'state' => 'unaccepted',
11
+ 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c0' })
12
+ end
10
13
 
11
- test 'should get index' do
12
- get :index, params: { :smart_proxy_id => @proxy.id }
13
- assert_response :success
14
- end
14
+ test 'should get index' do
15
+ get :index, params: { smart_proxy_id: @proxy.id }
16
+ assert_response :success
17
+ end
15
18
 
16
- test 'should update keys' do
17
- ProxyAPI::Salt.any_instance.expects(:key_accept).once.returns(true)
18
- put :update, params: { :smart_proxy_id => @proxy.id, :name => 'saltstack.example.com', :state => 'accepted' }
19
- assert_response :success
20
- end
19
+ test 'should update keys' do
20
+ ProxyAPI::Salt.any_instance.expects(:key_accept).once.returns(true)
21
+ put :update, params: { smart_proxy_id: @proxy.id, name: 'saltstack.example.com', state: 'accepted' }
22
+ assert_response :success
23
+ end
21
24
 
22
- test 'should delete keys' do
23
- ProxyAPI::Salt.any_instance.expects(:key_delete).once.returns(true)
24
- delete :destroy, params: { :smart_proxy_id => @proxy.id, :name => 'saltstack.example.com' }
25
- assert_response :success
25
+ test 'should delete keys' do
26
+ ProxyAPI::Salt.any_instance.expects(:key_delete).once.returns(true)
27
+ delete :destroy, params: { smart_proxy_id: @proxy.id, name: 'saltstack.example.com' }
28
+ assert_response :success
29
+ end
30
+ end
31
+ end
26
32
  end
27
33
  end
@@ -1,84 +1,90 @@
1
1
  require 'test_plugin_helper'
2
2
 
3
- class ::ForemanSalt::Api::V2::SaltStatesControllerTest < ActionController::TestCase
4
- test 'should get index' do
5
- get :index
6
- assert_response :success
7
- assert_template 'api/v2/salt_states/index'
8
- end
3
+ module ForemanSalt
4
+ module Api
5
+ module V2
6
+ class SaltStatesControllerTest < ActionController::TestCase
7
+ test 'should get index' do
8
+ get :index
9
+ assert_response :success
10
+ assert_template 'api/v2/salt_states/index'
11
+ end
9
12
 
10
- test 'should show state' do
11
- state = ForemanSalt::SaltModule.create(:name => 'foo.bar.baz')
12
- get :show, params: { :id => state.id }
13
- assert_response :success
14
- assert_template 'api/v2/salt_states/show'
15
- end
13
+ test 'should show state' do
14
+ state = ForemanSalt::SaltModule.create(name: 'foo.bar.baz')
15
+ get :show, params: { id: state.id }
16
+ assert_response :success
17
+ assert_template 'api/v2/salt_states/show'
18
+ end
16
19
 
17
- test 'should create state' do
18
- post :create, params: { :state => { :name => 'unicorn' } }
19
- assert_response :success
20
- assert ForemanSalt::SaltModule.find_by_name('unicorn')
21
- assert_template 'api/v2/salt_states/create'
22
- end
20
+ test 'should create state' do
21
+ post :create, params: { state: { name: 'unicorn' } }
22
+ assert_response :success
23
+ assert ForemanSalt::SaltModule.find_by(name: 'unicorn')
24
+ assert_template 'api/v2/salt_states/create'
25
+ end
23
26
 
24
- test 'should delete state' do
25
- state = ForemanSalt::SaltModule.create(:name => 'foo.bar.baz')
26
- assert_difference('ForemanSalt::SaltModule.count', -1) do
27
- delete :destroy, params: { :id => state.id }
28
- end
29
- assert_response :success
30
- end
27
+ test 'should delete state' do
28
+ state = ForemanSalt::SaltModule.create(name: 'foo.bar.baz')
29
+ assert_difference('ForemanSalt::SaltModule.count', -1) do
30
+ delete :destroy, params: { id: state.id }
31
+ end
32
+ assert_response :success
33
+ end
31
34
 
32
- context 'importing' do
33
- setup do
34
- @proxy = FactoryBot.create :smart_proxy, :with_salt_feature
35
- @states = { 'env1' => %w(state1 state2 state3),
36
- 'env2' => %w(state1 state2) }
35
+ context 'importing' do
36
+ setup do
37
+ @proxy = FactoryBot.create :smart_proxy, :with_salt_feature
38
+ @states = { 'env1' => %w[state1 state2 state3],
39
+ 'env2' => %w[state1 state2] }
37
40
 
38
- ProxyAPI::Salt.any_instance.stubs(:states_list).returns(@states)
39
- end
41
+ ProxyAPI::Salt.any_instance.stubs(:states_list).returns(@states)
42
+ end
40
43
 
41
- test 'should import' do
42
- post :import, params: { :smart_proxy_id => @proxy.id }
44
+ test 'should import' do
45
+ post :import, params: { smart_proxy_id: @proxy.id }
43
46
 
44
- assert_response :success
47
+ assert_response :success
45
48
 
46
- @states.each do |env, states|
47
- environment = ::ForemanSalt::SaltEnvironment.find_by_name(env)
48
- assert_empty environment.salt_modules.map(&:name) - states
49
- end
50
- end
49
+ @states.each do |env, states|
50
+ environment = ::ForemanSalt::SaltEnvironment.find_by(name: env)
51
+ assert_empty environment.salt_modules.map(&:name) - states
52
+ end
53
+ end
51
54
 
52
- test 'should import only from a given environment' do
53
- post :import, params: { :smart_proxy_id => @proxy.id, :salt_environments => ['env2'] }
54
- assert_response :success
55
- assert_not ::ForemanSalt::SaltEnvironment.where(:name => 'env1').first
56
- assert ::ForemanSalt::SaltEnvironment.where(:name => 'env2').first
57
- end
55
+ test 'should import only from a given environment' do
56
+ post :import, params: { smart_proxy_id: @proxy.id, salt_environments: ['env2'] }
57
+ assert_response :success
58
+ assert_not ::ForemanSalt::SaltEnvironment.where(name: 'env1').first
59
+ assert ::ForemanSalt::SaltEnvironment.where(name: 'env2').first
60
+ end
58
61
 
59
- test 'should limit actions to add' do
60
- env = FactoryBot.create :salt_environment
61
- state = FactoryBot.create :salt_module, :salt_environments => [env]
62
+ test 'should limit actions to add' do
63
+ env = FactoryBot.create :salt_environment
64
+ state = FactoryBot.create :salt_module, salt_environments: [env]
62
65
 
63
- post :import, params: { :smart_proxy_id => @proxy.id, :actions => ['add'] }
64
- assert_response :success
65
- assert ::ForemanSalt::SaltModule.where(:id => state).first
66
- assert ::ForemanSalt::SaltModule.where(:name => 'state1').first
67
- end
66
+ post :import, params: { smart_proxy_id: @proxy.id, actions: ['add'] }
67
+ assert_response :success
68
+ assert ::ForemanSalt::SaltModule.where(id: state).first
69
+ assert ::ForemanSalt::SaltModule.where(name: 'state1').first
70
+ end
68
71
 
69
- test 'should limit actions to remove' do
70
- state = FactoryBot.create :salt_module
71
- post :import, params: { :smart_proxy_id => @proxy.id, :actions => ['remove'] }
72
- assert_response :success
73
- assert_not ::ForemanSalt::SaltModule.where(:id => state).first
74
- assert_not ::ForemanSalt::SaltModule.where(:name => 'state1').first
75
- end
72
+ test 'should limit actions to remove' do
73
+ state = FactoryBot.create :salt_module
74
+ post :import, params: { smart_proxy_id: @proxy.id, actions: ['remove'] }
75
+ assert_response :success
76
+ assert_not ::ForemanSalt::SaltModule.where(id: state).first
77
+ assert_not ::ForemanSalt::SaltModule.where(name: 'state1').first
78
+ end
76
79
 
77
- test 'dryrun should do nothing' do
78
- post :import, params: { :smart_proxy_id => @proxy.id, :dryrun => true }
79
- assert_response :success
80
- assert_not ::ForemanSalt::SaltModule.all.any?
81
- assert_not ::ForemanSalt::SaltEnvironment.all.any?
80
+ test 'dryrun should do nothing' do
81
+ post :import, params: { smart_proxy_id: @proxy.id, dryrun: true }
82
+ assert_response :success
83
+ assert_not ::ForemanSalt::SaltModule.all.any?
84
+ assert_not ::ForemanSalt::SaltEnvironment.all.any?
85
+ end
86
+ end
87
+ end
82
88
  end
83
89
  end
84
90
  end
@@ -12,21 +12,21 @@ module ForemanSalt
12
12
  end
13
13
 
14
14
  test 'should get index' do
15
- get :index, :session => set_session_user
15
+ get :index, session: set_session_user
16
16
  response = JSON.parse(@response.body)
17
17
  assert_not_empty response['results']
18
18
  assert_response :success
19
19
  end
20
20
 
21
21
  test 'should destroy' do
22
- delete :destroy, :params => { :id => @variable.id }, :session => set_session_user
22
+ delete :destroy, params: { id: @variable.id }, session: set_session_user
23
23
  assert_response :ok
24
24
  assert_not SaltVariable.exists?(@variable.id)
25
25
  end
26
26
 
27
27
  test 'should create' do
28
- params = { :key => 'test name', :salt_state_id => FactoryBot.create(:salt_module).id }
29
- post :create, :params => params, :session => set_session_user
28
+ params = { key: 'test name', salt_state_id: FactoryBot.create(:salt_module).id }
29
+ post :create, params: params, session: set_session_user
30
30
  assert_response :success
31
31
  end
32
32
  end
@@ -4,9 +4,9 @@ module ForemanSalt
4
4
  class HostsControllerExtensionsTest < ActionController::TestCase
5
5
  tests ::HostsController
6
6
 
7
- describe "setting salt master proxy on multiple hosts" do
7
+ describe 'setting salt master proxy on multiple hosts' do
8
8
  before do
9
- setup_user "edit"
9
+ setup_user 'edit'
10
10
  as_admin do
11
11
  @hosts = FactoryBot.create_list(:host, 2)
12
12
  @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
@@ -16,22 +16,22 @@ module ForemanSalt
16
16
  test 'user without edit permission should not be able to change salt master' do
17
17
  @request.env['HTTP_REFERER'] = hosts_path
18
18
 
19
- params = { :host_ids => @hosts.map(&:id),
20
- :proxy => { :proxy_id => '' } }
19
+ params = { host_ids: @hosts.map(&:id),
20
+ proxy: { proxy_id: '' } }
21
21
 
22
22
  post :update_multiple_salt_master, params: params,
23
- session: set_session_user.merge(:user => users(:one).id)
23
+ session: set_session_user.merge(user: users(:one).id)
24
24
  assert_response :forbidden
25
25
  end
26
26
 
27
- test "should change the salt master proxy" do
27
+ test 'should change the salt master proxy' do
28
28
  @request.env['HTTP_REFERER'] = hosts_path
29
29
 
30
- params = { :host_ids => @hosts.map(&:id),
31
- :proxy => { :proxy_id => @proxy.id } }
30
+ params = { host_ids: @hosts.map(&:id),
31
+ proxy: { proxy_id: @proxy.id } }
32
32
 
33
33
  post :update_multiple_salt_master, params: params,
34
- session: set_session_user.merge(:user => users(:admin).id)
34
+ session: set_session_user.merge(user: users(:admin).id)
35
35
 
36
36
  assert_empty flash[:error]
37
37
 
@@ -42,14 +42,14 @@ module ForemanSalt
42
42
  end
43
43
  end
44
44
 
45
- test "should clear the salt master proxy of multiple hosts" do
45
+ test 'should clear the salt master proxy of multiple hosts' do
46
46
  @request.env['HTTP_REFERER'] = hosts_path
47
47
 
48
- params = { :host_ids => @hosts.map(&:id),
49
- :proxy => { :proxy_id => '' } }
48
+ params = { host_ids: @hosts.map(&:id),
49
+ proxy: { proxy_id: '' } }
50
50
 
51
51
  post :update_multiple_salt_master, params: params,
52
- session: set_session_user.merge(:user => users(:admin).id)
52
+ session: set_session_user.merge(user: users(:admin).id)
53
53
 
54
54
  assert_empty flash[:error]
55
55
 
@@ -61,9 +61,9 @@ module ForemanSalt
61
61
  end
62
62
  end
63
63
 
64
- describe "setting salt environment on multiple hosts" do
64
+ describe 'setting salt environment on multiple hosts' do
65
65
  before do
66
- setup_user "edit"
66
+ setup_user 'edit'
67
67
  as_admin do
68
68
  @hosts = FactoryBot.create_list(:host, 2)
69
69
  @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
@@ -74,22 +74,22 @@ module ForemanSalt
74
74
  test 'user without edit permission should not be able to change salt environment' do
75
75
  @request.env['HTTP_REFERER'] = hosts_path
76
76
 
77
- params = { :host_ids => @hosts.map(&:id),
78
- :salt_environment => { :id => @salt_environment.id } }
77
+ params = { host_ids: @hosts.map(&:id),
78
+ salt_environment: { id: @salt_environment.id } }
79
79
 
80
80
  post :update_multiple_salt_environment, params: params,
81
- session: set_session_user.merge(:user => users(:one).id)
81
+ session: set_session_user.merge(user: users(:one).id)
82
82
  assert_response :forbidden
83
83
  end
84
84
 
85
- test "should change the salt environment" do
85
+ test 'should change the salt environment' do
86
86
  @request.env['HTTP_REFERER'] = hosts_path
87
87
 
88
- params = { :host_ids => @hosts.map(&:id),
89
- :salt_environment => { :id => @salt_environment.id } }
88
+ params = { host_ids: @hosts.map(&:id),
89
+ salt_environment: { id: @salt_environment.id } }
90
90
 
91
91
  post :update_multiple_salt_environment, params: params,
92
- session: set_session_user.merge(:user => users(:admin).id)
92
+ session: set_session_user.merge(user: users(:admin).id)
93
93
 
94
94
  assert_empty flash[:error]
95
95
 
@@ -100,14 +100,14 @@ module ForemanSalt
100
100
  end
101
101
  end
102
102
 
103
- test "should clear the salt environment of multiple hosts" do
103
+ test 'should clear the salt environment of multiple hosts' do
104
104
  @request.env['HTTP_REFERER'] = hosts_path
105
105
 
106
- params = { :host_ids => @hosts.map(&:id),
107
- :salt_environment => { :id => '' } }
106
+ params = { host_ids: @hosts.map(&:id),
107
+ salt_environment: { id: '' } }
108
108
 
109
109
  post :update_multiple_salt_environment, params: params,
110
- session: set_session_user.merge(:user => users(:admin).id)
110
+ session: set_session_user.merge(user: users(:admin).id)
111
111
 
112
112
  assert_empty flash[:error]
113
113
 
@@ -4,35 +4,34 @@ module ForemanSalt
4
4
  class MinionsControllerTest < ActionController::TestCase
5
5
  setup do
6
6
  User.current = User.anonymous_admin
7
- Setting::Salt.load_defaults
7
+ Setting.load_defaults
8
8
  Setting[:restrict_registered_smart_proxies] = true
9
- Setting[:require_ssl_smart_proxies] = false
10
9
 
11
10
  @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
12
11
  Resolv.any_instance.stubs(:getnames).returns([@proxy.to_s])
13
12
 
14
13
  @hostgroup = FactoryBot.create(:hostgroup)
15
14
  @host = FactoryBot.create(:host, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
16
- @host2 = FactoryBot.create(:host, :hostgroup => @hostgroup, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
17
- FactoryBot.create(:host_parameter, name: "parameter1", value: "different", host: @host)
15
+ @host2 = FactoryBot.create(:host, hostgroup: @hostgroup, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
16
+ FactoryBot.create(:host_parameter, name: 'parameter1', value: 'different', host: @host)
18
17
  end
19
18
 
20
19
  test 'salt smart proxy should get salt external node' do
21
- get :node, params: { :id => @host, :format => 'yml' }
20
+ get :node, params: { id: @host, format: 'yml' }
22
21
  assert_response :success
23
22
 
24
23
  res = YAML.safe_load(@response.body)
25
- assert_equal res['parameters']['parameter1'], 'different'
24
+ assert_equal('different', res['parameters']['parameter1'])
26
25
  end
27
26
 
28
27
  test 'setting salt_namespace_pillars is considered' do
29
28
  Setting['salt_namespace_pillars'] = true
30
29
 
31
- get :node, params: { :id => @host, :format => 'yml' }
30
+ get :node, params: { id: @host, format: 'yml' }
32
31
  assert_response :success
33
32
 
34
33
  res = YAML.safe_load(@response.body)
35
- assert_equal res['parameters']['foreman']['parameter1'], 'different'
34
+ assert_equal('different', res['parameters']['foreman']['parameter1'])
36
35
  end
37
36
 
38
37
  test 'salt variable is available' do
@@ -40,7 +39,7 @@ module ForemanSalt
40
39
  var.salt_module.salt_environments << @host.salt_environment
41
40
  @host.salt_modules << var.salt_module
42
41
 
43
- get :node, params: { :id => @host, :format => 'yml' }
42
+ get :node, params: { id: @host, format: 'yml' }
44
43
  assert_response :success
45
44
 
46
45
  res = YAML.safe_load(@response.body)
@@ -52,7 +51,7 @@ module ForemanSalt
52
51
  var.salt_module.salt_environments << @host.salt_environment
53
52
  @host.salt_modules << var.salt_module
54
53
 
55
- get :node, params: { :id => @host, :format => 'yml' }
54
+ get :node, params: { id: @host, format: 'yml' }
56
55
  assert_response :success
57
56
 
58
57
  res = YAML.safe_load(@response.body)
@@ -60,17 +59,17 @@ module ForemanSalt
60
59
  end
61
60
 
62
61
  test 'salt variable matching host with host specific value' do
63
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
62
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
64
63
  # rubocop:disable Lint/UselessAssignment
65
- value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
66
- value2 = LookupValue.create(:lookup_key => var, :match => "fqdn=#{@host.fqdn}", :value => "myval")
67
- value3 = LookupValue.create(:lookup_key => var, :match => "hostgroup=Unusual", :value => "bbbb")
64
+ value1 = LookupValue.create(lookup_key: var, match: 'os=debian', value: 'aaa')
65
+ value2 = LookupValue.create(lookup_key: var, match: "fqdn=#{@host.fqdn}", value: 'myval')
66
+ value3 = LookupValue.create(lookup_key: var, match: 'hostgroup=Unusual', value: 'bbbb')
68
67
  # rubocop:enable Lint/UselessAssignment
69
68
 
70
69
  var.salt_module.salt_environments << @host.salt_environment
71
70
  @host.salt_modules << var.salt_module
72
71
 
73
- get :node, params: { :id => @host, :format => 'yml' }
72
+ get :node, params: { id: @host, format: 'yml' }
74
73
  assert_response :success
75
74
 
76
75
  res = YAML.safe_load(@response.body)
@@ -78,16 +77,16 @@ module ForemanSalt
78
77
  end
79
78
 
80
79
  test 'salt variable matching host with hostgroup specific value' do
81
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
80
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
82
81
  # rubocop:disable Lint/UselessAssignment
83
- value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
84
- value2 = LookupValue.create(:lookup_key => var, :match => @hostgroup.lookup_value_matcher, :value => "bbbb")
82
+ value1 = LookupValue.create(lookup_key: var, match: 'os=debian', value: 'aaa')
83
+ value2 = LookupValue.create(lookup_key: var, match: @hostgroup.lookup_value_matcher, value: 'bbbb')
85
84
  # rubocop:enable Lint/UselessAssignment
86
85
 
87
86
  var.salt_module.salt_environments << @host2.salt_environment
88
87
  @host2.salt_modules << var.salt_module
89
88
 
90
- get :node, params: { :id => @host2, :format => 'yml' }
89
+ get :node, params: { id: @host2, format: 'yml' }
91
90
  assert_response :success
92
91
 
93
92
  res = YAML.safe_load(@response.body)
@@ -95,16 +94,16 @@ module ForemanSalt
95
94
  end
96
95
 
97
96
  test 'salt variable matching host with default value' do
98
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
97
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
99
98
  # rubocop:disable Lint/UselessAssignment
100
- value1 = LookupValue.create(:lookup_key => var, :match => "os=debian", :value => "aaa")
101
- value2 = LookupValue.create(:lookup_key => var, :match => "fqdn=#{@host.fqdn}", :value => "myval")
102
- value3 = LookupValue.create(:lookup_key => var, :match => "hostgroup=Unusual", :value => "bbbb")
99
+ value1 = LookupValue.create(lookup_key: var, match: 'os=debian', value: 'aaa')
100
+ value2 = LookupValue.create(lookup_key: var, match: "fqdn=#{@host.fqdn}", value: 'myval')
101
+ value3 = LookupValue.create(lookup_key: var, match: 'hostgroup=Unusual', value: 'bbbb')
103
102
  # rubocop:enable Lint/UselessAssignment
104
103
 
105
104
  var.salt_module.salt_environments << @host2.salt_environment
106
105
  @host2.salt_modules << var.salt_module
107
- get :node, params: { :id => @host2, :format => 'yml' }
106
+ get :node, params: { id: @host2, format: 'yml' }
108
107
  assert_response :success
109
108
 
110
109
  res = YAML.safe_load(@response.body)
@@ -8,13 +8,13 @@ module ForemanSalt
8
8
  @model = FactoryBot.create(:salt_module)
9
9
  end
10
10
 
11
- basic_index_test "salt_modules"
11
+ basic_index_test 'salt_modules'
12
12
  basic_new_test
13
- basic_edit_test "salt_module"
13
+ basic_edit_test 'salt_module'
14
14
 
15
15
  test 'should destroy module' do
16
16
  assert_difference('SaltModule.count', -1) do
17
- delete :destroy, :params => { :id => @model.id }, :session => set_session_user
17
+ delete :destroy, params: { id: @model.id }, session: set_session_user
18
18
  end
19
19
  assert_redirected_to salt_modules_url
20
20
  end