foreman_salt 14.0.0 → 14.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) 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 -9
  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 +16 -10
  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 +47 -46
  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/models/setting/salt.rb +12 -10
  42. data/app/overrides/salt_environment_host_selector.rb +4 -4
  43. data/app/overrides/salt_environment_hostgroup_selector.rb +4 -4
  44. data/app/overrides/salt_modules_selector.rb +16 -16
  45. data/app/overrides/salt_proxy_selector.rb +11 -9
  46. data/app/services/foreman_salt/report_importer.rb +26 -26
  47. data/app/services/foreman_salt/smart_proxies/salt_keys.rb +47 -45
  48. data/app/views/foreman_salt/api/v2/salt_autosign/create.json.rabl +1 -1
  49. data/app/views/foreman_salt/api/v2/salt_environments/create.json.rabl +1 -1
  50. data/app/views/foreman_salt/api/v2/salt_environments/show.json.rabl +1 -1
  51. data/app/views/foreman_salt/api/v2/salt_hostgroups/base.json.rabl +7 -0
  52. data/app/views/foreman_salt/api/v2/salt_hostgroups/show.json.rabl +3 -0
  53. data/app/views/foreman_salt/api/v2/salt_hostgroups/update.json.rabl +3 -0
  54. data/app/views/foreman_salt/api/v2/salt_keys/update.json.rabl +1 -1
  55. data/app/views/foreman_salt/api/v2/salt_minions/show.json.rabl +3 -4
  56. data/app/views/foreman_salt/api/v2/salt_states/create.json.rabl +1 -1
  57. data/app/views/foreman_salt/api/v2/salt_states/show.json.rabl +0 -1
  58. data/app/views/foreman_salt/api/v2/salt_variables/create.json.rabl +1 -1
  59. data/app/views/foreman_salt/api/v2/salt_variables/destroy.json.rabl +1 -1
  60. data/app/views/foreman_salt/api/v2/salt_variables/show.json.rabl +8 -8
  61. data/config/api_routes.rb +31 -0
  62. data/config/routes.rb +16 -44
  63. data/db/migrate/20140817210214_create_salt_modules.rb +4 -4
  64. data/db/migrate/20140829210214_add_salt_modules_to_hostgroups.rb +1 -1
  65. data/db/migrate/20140920232200_create_salt_environments.rb +3 -3
  66. data/db/migrate/20150220122707_fix_incorrect_report_metrics.rb +6 -2
  67. data/db/migrate/20211108211312_add_missing_permissions.rb +9 -0
  68. data/db/seeds.d/75-salt_seeds.rb +1 -1
  69. data/db/seeds.d/76-job_templates.rb +3 -3
  70. data/lib/foreman_salt/engine.rb +24 -16
  71. data/lib/foreman_salt/extensions.rb +8 -8
  72. data/lib/foreman_salt/plugin.rb +120 -114
  73. data/lib/foreman_salt/version.rb +1 -1
  74. data/lib/foreman_salt.rb +1 -1
  75. data/lib/tasks/foreman_salt_tasks.rake +3 -5
  76. data/locale/action_names.rb +4 -4
  77. data/test/factories/foreman_salt_factories.rb +5 -5
  78. data/test/functional/api/v2/salt_autosign_controller_test.rb +26 -20
  79. data/test/functional/api/v2/salt_environments_controller_test.rb +29 -23
  80. data/test/functional/api/v2/salt_hostgroups_controller_test.rb +76 -0
  81. data/test/functional/api/v2/salt_keys_controller_test.rb +25 -19
  82. data/test/functional/api/v2/salt_states_controller_test.rb +72 -66
  83. data/test/functional/api/v2/salt_variables_controller_test.rb +4 -4
  84. data/test/functional/hosts_controller_test.rb +26 -26
  85. data/test/functional/minions_controller_test.rb +22 -22
  86. data/test/functional/salt_modules_controller_test.rb +3 -3
  87. data/test/functional/salt_variables_controller_test.rb +5 -5
  88. data/test/integration/hosts_js_test.rb +11 -11
  89. data/test/integration/salt_autosign_test.rb +5 -5
  90. data/test/integration/salt_environment_test.rb +2 -2
  91. data/test/integration/salt_keys_test.rb +7 -7
  92. data/test/integration/salt_module_test.rb +9 -9
  93. data/test/integration/salt_variable_test.rb +2 -2
  94. data/test/test_plugin_helper.rb +1 -1
  95. data/test/unit/grains_importer_test.rb +12 -12
  96. data/test/unit/host_extensions_test.rb +19 -19
  97. data/test/unit/hostgroup_extensions_test.rb +13 -13
  98. data/test/unit/report_importer_test.rb +9 -9
  99. data/test/unit/salt_keys_test.rb +2 -2
  100. data/test/unit/salt_modules_test.rb +2 -2
  101. data/test/unit/salt_variables_test.rb +10 -10
  102. metadata +22 -13
@@ -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
 
@@ -13,26 +13,26 @@ module ForemanSalt
13
13
 
14
14
  @hostgroup = FactoryBot.create(:hostgroup)
15
15
  @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)
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)
18
18
  end
19
19
 
20
20
  test 'salt smart proxy should get salt external node' do
21
- get :node, params: { :id => @host, :format => 'yml' }
21
+ get :node, params: { id: @host, format: 'yml' }
22
22
  assert_response :success
23
23
 
24
24
  res = YAML.safe_load(@response.body)
25
- assert_equal res['parameters']['parameter1'], 'different'
25
+ assert_equal('different', res['parameters']['parameter1'])
26
26
  end
27
27
 
28
28
  test 'setting salt_namespace_pillars is considered' do
29
29
  Setting['salt_namespace_pillars'] = true
30
30
 
31
- get :node, params: { :id => @host, :format => 'yml' }
31
+ get :node, params: { id: @host, format: 'yml' }
32
32
  assert_response :success
33
33
 
34
34
  res = YAML.safe_load(@response.body)
35
- assert_equal res['parameters']['foreman']['parameter1'], 'different'
35
+ assert_equal('different', res['parameters']['foreman']['parameter1'])
36
36
  end
37
37
 
38
38
  test 'salt variable is available' do
@@ -40,7 +40,7 @@ module ForemanSalt
40
40
  var.salt_module.salt_environments << @host.salt_environment
41
41
  @host.salt_modules << var.salt_module
42
42
 
43
- get :node, params: { :id => @host, :format => 'yml' }
43
+ get :node, params: { id: @host, format: 'yml' }
44
44
  assert_response :success
45
45
 
46
46
  res = YAML.safe_load(@response.body)
@@ -52,7 +52,7 @@ module ForemanSalt
52
52
  var.salt_module.salt_environments << @host.salt_environment
53
53
  @host.salt_modules << var.salt_module
54
54
 
55
- get :node, params: { :id => @host, :format => 'yml' }
55
+ get :node, params: { id: @host, format: 'yml' }
56
56
  assert_response :success
57
57
 
58
58
  res = YAML.safe_load(@response.body)
@@ -60,17 +60,17 @@ module ForemanSalt
60
60
  end
61
61
 
62
62
  test 'salt variable matching host with host specific value' do
63
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
63
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
64
64
  # 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")
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')
68
68
  # rubocop:enable Lint/UselessAssignment
69
69
 
70
70
  var.salt_module.salt_environments << @host.salt_environment
71
71
  @host.salt_modules << var.salt_module
72
72
 
73
- get :node, params: { :id => @host, :format => 'yml' }
73
+ get :node, params: { id: @host, format: 'yml' }
74
74
  assert_response :success
75
75
 
76
76
  res = YAML.safe_load(@response.body)
@@ -78,16 +78,16 @@ module ForemanSalt
78
78
  end
79
79
 
80
80
  test 'salt variable matching host with hostgroup specific value' do
81
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
81
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
82
82
  # 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")
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')
85
85
  # rubocop:enable Lint/UselessAssignment
86
86
 
87
87
  var.salt_module.salt_environments << @host2.salt_environment
88
88
  @host2.salt_modules << var.salt_module
89
89
 
90
- get :node, params: { :id => @host2, :format => 'yml' }
90
+ get :node, params: { id: @host2, format: 'yml' }
91
91
  assert_response :success
92
92
 
93
93
  res = YAML.safe_load(@response.body)
@@ -95,16 +95,16 @@ module ForemanSalt
95
95
  end
96
96
 
97
97
  test 'salt variable matching host with default value' do
98
- var = FactoryBot.create(:salt_variable, key: 'parameter1', value: "default", override: true)
98
+ var = FactoryBot.create(:salt_variable, key: 'parameter1', value: 'default', override: true)
99
99
  # 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")
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')
103
103
  # rubocop:enable Lint/UselessAssignment
104
104
 
105
105
  var.salt_module.salt_environments << @host2.salt_environment
106
106
  @host2.salt_modules << var.salt_module
107
- get :node, params: { :id => @host2, :format => 'yml' }
107
+ get :node, params: { id: @host2, format: 'yml' }
108
108
  assert_response :success
109
109
 
110
110
  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
@@ -9,23 +9,23 @@ module ForemanSalt
9
9
  @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
10
10
  end
11
11
 
12
- basic_index_test "salt_variables"
12
+ basic_index_test 'salt_variables'
13
13
  basic_new_test
14
- basic_edit_test "salt_variable"
14
+ basic_edit_test 'salt_variable'
15
15
  basic_pagination_per_page_test
16
16
  basic_pagination_rendered_test
17
17
 
18
18
  test 'should destroy variable' do
19
19
  assert_difference('SaltVariable.count', -1) do
20
- delete :destroy, :params => { :id => @model.id }, :session => set_session_user
20
+ delete :destroy, params: { id: @model.id }, session: set_session_user
21
21
  end
22
22
  assert_redirected_to salt_variables_url
23
23
  end
24
24
 
25
25
  test 'should create salt variable' do
26
- params = { :foreman_salt_salt_variable => { :key => 'great name', :salt_module_id => FactoryBot.create(:salt_module).id } }
26
+ params = { foreman_salt_salt_variable: { key: 'great name', salt_module_id: FactoryBot.create(:salt_module).id } }
27
27
  assert_difference('SaltVariable.count', 1) do
28
- post :create, :params => params, :session => set_session_user
28
+ post :create, params: params, session: set_session_user
29
29
  end
30
30
  assert_redirected_to salt_variables_url
31
31
  end