foreman_salt 14.0.0 → 15.1.0

Sign up to get free protection for your applications and to get access to all the features.
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