foreman_salt 14.0.0 → 14.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 (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
@@ -15,28 +15,28 @@ module ForemanSalt
15
15
  as_admin do
16
16
  proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
17
17
  salt_environment = FactoryBot.create(:salt_environment)
18
- @host = FactoryBot.create(:host, :salt_proxy => proxy, :salt_environment => salt_environment)
18
+ @host = FactoryBot.create(:host, salt_proxy: proxy, salt_environment: salt_environment)
19
19
  Setting::Salt.load_defaults
20
20
  end
21
21
  end
22
22
 
23
- describe "hosts details run salt button" do
24
- test "verify run salt button availabilty" do
23
+ describe 'hosts details run salt button' do
24
+ test 'verify run salt button availabilty' do
25
25
  Setting[:salt_hide_run_salt_button] = false
26
26
  visit hosts_path
27
27
  click_link @host.fqdn
28
- assert page.has_link?("Run Salt")
28
+ assert page.has_link?('Run Salt')
29
29
  end
30
30
 
31
- test "verify run salt button absence" do
31
+ test 'verify run salt button absence' do
32
32
  Setting[:salt_hide_run_salt_button] = true
33
33
  visit hosts_path
34
34
  click_link @host.fqdn
35
- assert_not page.has_link?("Run Salt")
35
+ assert_not page.has_link?('Run Salt')
36
36
  end
37
37
  end
38
38
 
39
- describe "hosts index salt multiple actions" do
39
+ describe 'hosts index salt multiple actions' do
40
40
  test 'change salt master action' do
41
41
  visit hosts_path
42
42
  check 'check_all'
@@ -51,13 +51,13 @@ module ForemanSalt
51
51
 
52
52
  # Hosts are added to cookie
53
53
  host_ids_on_cookie = JSON.parse(CGI.unescape(get_me_the_cookie('_ForemanSelectedhosts')&.fetch(:value)))
54
- assert(host_ids_on_cookie.include?(@host.id))
54
+ assert_includes(host_ids_on_cookie, @host.id)
55
55
 
56
56
  within('#submit_multiple') do
57
57
  click_on('Change Salt Master')
58
58
  end
59
59
 
60
- assert index_modal.visible?, "Modal window was shown"
60
+ assert index_modal.visible?, 'Modal window was shown'
61
61
  page.find('#proxy_proxy_id').find("option[value='#{@host.salt_proxy.id}']").select_option
62
62
 
63
63
  # remove hosts cookie on submit
@@ -80,13 +80,13 @@ module ForemanSalt
80
80
 
81
81
  # Hosts are added to cookie
82
82
  host_ids_on_cookie = JSON.parse(CGI.unescape(get_me_the_cookie('_ForemanSelectedhosts')&.fetch(:value)))
83
- assert(host_ids_on_cookie.include?(@host.id))
83
+ assert_includes(host_ids_on_cookie, @host.id)
84
84
 
85
85
  within('#submit_multiple') do
86
86
  click_on('Change Salt Environment')
87
87
  end
88
88
 
89
- assert index_modal.visible?, "Modal window was shown"
89
+ assert index_modal.visible?, 'Modal window was shown'
90
90
  page.find('#salt_environment_id').find("option[value='#{@host.salt_environment.id}']").select_option
91
91
 
92
92
  # remove hosts cookie on submit
@@ -12,25 +12,25 @@ module ForemanSalt
12
12
  end
13
13
 
14
14
  test 'smart proxy page has autosign link' do
15
- assert_row_button(smart_proxies_path, @proxy.name, 'Salt Autosign', true)
15
+ assert_row_button(smart_proxies_path, @proxy.name, 'Salt Autosign', dropdown: true)
16
16
  end
17
17
 
18
18
  test 'smart proxy details has autosign link' do
19
19
  visit smart_proxy_path(@proxy)
20
- assert page.has_link? "Salt Autosign"
21
- click_link "Salt Autosign"
20
+ assert page.has_link? 'Salt Autosign'
21
+ click_link 'Salt Autosign'
22
22
  assert page.has_title?("Autosign entries for #{@proxy.hostname}"), 'Page title does not appear'
23
23
  end
24
24
 
25
25
  test 'index page' do
26
- visit smart_proxy_salt_autosign_index_path(:smart_proxy_id => @proxy.id)
26
+ visit smart_proxy_salt_autosign_index_path(smart_proxy_id: @proxy.id)
27
27
  assert find_link('Keys').visible?, 'Keys is not visible'
28
28
  assert has_title?("Autosign entries for #{@proxy.hostname}"), 'Page title does not appear'
29
29
  assert has_content?('Displaying'), 'Pagination "Display ..." does not appear'
30
30
  end
31
31
 
32
32
  test 'has list of autosign' do
33
- visit smart_proxy_salt_autosign_index_path(:smart_proxy_id => @proxy.id)
33
+ visit smart_proxy_salt_autosign_index_path(smart_proxy_id: @proxy.id)
34
34
  assert has_content?('foo.example.com'), 'Missing autosign entry on index page'
35
35
  end
36
36
  end
@@ -10,7 +10,7 @@ module ForemanSalt
10
10
 
11
11
  test 'create new page' do
12
12
  assert_new_button(salt_environments_path, 'New Salt Environment', new_salt_environment_path)
13
- fill_in 'foreman_salt_salt_environment_name', :with => 'common'
13
+ fill_in 'foreman_salt_salt_environment_name', with: 'common'
14
14
  assert_submit_button(salt_environments_path)
15
15
  assert page.has_link? 'common'
16
16
  end
@@ -19,7 +19,7 @@ module ForemanSalt
19
19
  salt_environment = FactoryBot.create :salt_environment
20
20
  visit salt_environments_path
21
21
  click_link salt_environment.name
22
- fill_in 'foreman_salt_salt_environment_name', :with => 'some_other_name'
22
+ fill_in 'foreman_salt_salt_environment_name', with: 'some_other_name'
23
23
  assert_submit_button(salt_environments_path)
24
24
  assert page.has_link? 'some_other_name'
25
25
  end
@@ -15,36 +15,36 @@ module ForemanSalt
15
15
  end
16
16
 
17
17
  test 'smart proxy page has keys link' do
18
- assert_row_button(smart_proxies_path, @proxy.name, 'Salt Keys', true)
18
+ assert_row_button(smart_proxies_path, @proxy.name, 'Salt Keys', dropdown: true)
19
19
  end
20
20
 
21
21
  test 'smart proxy details has keys link' do
22
22
  visit smart_proxy_path(@proxy)
23
- assert page.has_link? "Salt Keys"
24
- click_link "Salt Keys"
23
+ assert page.has_link? 'Salt Keys'
24
+ click_link 'Salt Keys'
25
25
  assert page.has_title?("Salt Keys on #{@proxy}"), 'Page title does not appear'
26
26
  end
27
27
 
28
28
  test 'index page' do
29
- visit smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id)
29
+ visit smart_proxy_salt_keys_path(smart_proxy_id: @proxy.id)
30
30
  assert has_title?("Salt Keys on #{@proxy}"), 'Page title does not appear'
31
31
  assert has_content?('Displaying'), 'Pagination "Display ..." does not appear'
32
32
  end
33
33
 
34
34
  test 'has list of keys' do
35
- visit smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id)
35
+ visit smart_proxy_salt_keys_path(smart_proxy_id: @proxy.id)
36
36
  assert has_content?('saltclient01.example.com'), 'Missing key on index page'
37
37
  assert has_content?('98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c1'), 'Missing fingerprint on index page'
38
38
  end
39
39
 
40
40
  test 'has accept link' do
41
41
  ProxyAPI::Salt.any_instance.stubs(:key_accept).returns(true)
42
- assert_row_button(smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id), 'saltclient01.example.com', 'Accept', true)
42
+ assert_row_button(smart_proxy_salt_keys_path(smart_proxy_id: @proxy.id), 'saltclient01.example.com', 'Accept', dropdown: true)
43
43
  end
44
44
 
45
45
  test 'has reject link' do
46
46
  ProxyAPI::Salt.any_instance.stubs(:key_reject).returns(true)
47
- assert_row_button(smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id), 'saltclient01.example.com', 'Reject', true)
47
+ assert_row_button(smart_proxy_salt_keys_path(smart_proxy_id: @proxy.id), 'saltclient01.example.com', 'Reject', dropdown: true)
48
48
  end
49
49
  end
50
50
  end
@@ -6,7 +6,7 @@ module ForemanSalt
6
6
  setup do
7
7
  User.current = users :admin
8
8
 
9
- states = %w(state1 state2 state3 state4)
9
+ states = %w[state1 state2 state3 state4]
10
10
  state_list = { 'env1' => states, 'env2' => states }
11
11
 
12
12
  ProxyAPI::Salt.any_instance.stubs(:states_list).returns(state_list)
@@ -19,7 +19,7 @@ module ForemanSalt
19
19
 
20
20
  test 'create new page' do
21
21
  assert_new_button(salt_modules_path, 'New Salt State', new_salt_module_path)
22
- fill_in 'foreman_salt_salt_module_name', :with => 'common'
22
+ fill_in 'foreman_salt_salt_module_name', with: 'common'
23
23
  assert_submit_button(salt_modules_path)
24
24
  assert page.has_link? 'common'
25
25
  end
@@ -28,24 +28,24 @@ module ForemanSalt
28
28
  salt_module = FactoryBot.create :salt_module
29
29
  visit salt_modules_path
30
30
  click_link salt_module.name
31
- fill_in :foreman_salt_salt_module_name, :with => 'some_other_name'
31
+ fill_in :foreman_salt_salt_module_name, with: 'some_other_name'
32
32
  assert_submit_button(salt_modules_path)
33
33
  assert page.has_link? 'some_other_name'
34
34
  end
35
35
 
36
36
  test 'import states' do
37
37
  proxy = FactoryBot.create :smart_proxy, :with_salt_feature
38
- state = FactoryBot.create :salt_module, :salt_environments => [FactoryBot.create(:salt_environment)]
38
+ state = FactoryBot.create :salt_module, salt_environments: [FactoryBot.create(:salt_environment)]
39
39
 
40
40
  visit salt_modules_path
41
41
  click_link "Import from #{proxy.name}"
42
42
 
43
- assert page.has_selector?('td', :text => 'env1'), 'Could not find env1 on importer page'
44
- assert page.has_selector?('td', :text => 'Add'), 'Could not find env1 on importer page'
45
- assert page.has_selector?('td', :text => 'state1, state2, state3, and state4'), 'Could not find states on importer page'
43
+ assert page.has_selector?('td', text: 'env1'), 'Could not find env1 on importer page'
44
+ assert page.has_selector?('td', text: 'Add'), 'Could not find env1 on importer page'
45
+ assert page.has_selector?('td', text: 'state1, state2, state3, and state4'), 'Could not find states on importer page'
46
46
 
47
- assert page.has_selector?('td', :text => 'Remove'), 'Could not find remove on importer page'
48
- assert page.has_selector?('td', :text => state.name), 'Could not find state to remove'
47
+ assert page.has_selector?('td', text: 'Remove'), 'Could not find remove on importer page'
48
+ assert page.has_selector?('td', text: state.name), 'Could not find state to remove'
49
49
 
50
50
  all('input.state_check').each { |checkbox| check(checkbox[:id]) }
51
51
 
@@ -15,8 +15,8 @@ module ForemanSalt
15
15
  test 'create new page' do
16
16
  state = FactoryBot.create :salt_module
17
17
  assert_new_button(salt_variables_path, 'New Salt Variable', new_salt_variable_path)
18
- fill_in 'foreman_salt_salt_variable_key', :with => 'mykey'
19
- select2(state.name, :from => 'foreman_salt_salt_variable_salt_module_id')
18
+ fill_in 'foreman_salt_salt_variable_key', with: 'mykey'
19
+ select2(state.name, from: 'foreman_salt_salt_variable_salt_module_id')
20
20
  assert_submit_button(salt_variables_path)
21
21
  assert page.has_link? 'mykey'
22
22
  end
@@ -1,7 +1,7 @@
1
1
  # This calls the main test_helper in Foreman-core
2
2
  require 'test_helper'
3
3
 
4
- def assert_row_button(index_path, link_text, button_text, dropdown = false)
4
+ def assert_row_button(index_path, link_text, button_text, dropdown: false)
5
5
  visit index_path
6
6
  within(:xpath, "//tr[contains(.,'#{link_text}')]") do
7
7
  find('span.caret').click if dropdown
@@ -10,9 +10,9 @@ module ForemanSalt
10
10
  User.current = users :admin
11
11
  Setting[:create_new_host_when_facts_are_uploaded] = true
12
12
 
13
- Operatingsystem.where(:name => 'CentOS', :major => '6', :minor => '5').delete_all
13
+ Operatingsystem.where(name: 'CentOS', major: '6', minor: '5').delete_all
14
14
 
15
- grains = JSON.parse(File.read(File.join(Engine.root, 'test', 'unit', 'grains_centos.json')))
15
+ grains = JSON.parse(File.read(File.join(Foreman::Application.root, 'test', 'static_fixtures', 'facts', 'grains_centos.json')))
16
16
  @imported_host = ::Host::Managed.import_host grains['name'], 'salt'
17
17
  @imported_host.import_facts grains['facts'].with_indifferent_access
18
18
  end
@@ -26,7 +26,7 @@ module ForemanSalt
26
26
  end
27
27
 
28
28
  test 'nested facts have valid parents' do
29
- parent = ::FactName.find_by_name('cpu_flags')
29
+ parent = ::FactName.find_by(name: 'cpu_flags')
30
30
  children = @imported_host.fact_values.with_fact_parent_id(parent)
31
31
  assert_not_empty children
32
32
  assert_empty children.map(&:fact_name).reject { |fact| fact.name =~ /\Acpu_flags#{FactName::SEPARATOR}[0-9]+/ }
@@ -34,33 +34,33 @@ module ForemanSalt
34
34
 
35
35
  # Parser
36
36
  test 'imported host has operating system' do
37
- assert_equal @imported_host.os.to_label, 'CentOS 6.5'
37
+ assert_equal('CentOS 6.5', @imported_host.os.to_label)
38
38
  end
39
39
 
40
40
  test 'imported host operating system has deduced family' do
41
- assert_equal @imported_host.os.family, 'Redhat'
41
+ assert_equal('Redhat', @imported_host.os.family)
42
42
  end
43
43
 
44
44
  test 'imported host has hardware model' do
45
- assert_equal @imported_host.model.name, 'KVM'
45
+ assert_equal('KVM', @imported_host.model.name)
46
46
  end
47
47
 
48
48
  test 'imported host has architecture' do
49
- assert_equal @imported_host.arch.name, 'x86_64'
49
+ assert_equal('x86_64', @imported_host.arch.name)
50
50
  end
51
51
 
52
52
  test 'imported host has primary ip' do
53
- assert_equal @imported_host.ip, '10.7.13.141'
53
+ assert_equal('10.7.13.141', @imported_host.ip)
54
54
  end
55
55
 
56
56
  test 'imported host has primary mac' do
57
- assert_equal @imported_host.mac, '52:54:00:35:30:2a'
57
+ assert_equal('52:54:00:35:30:2a', @imported_host.mac)
58
58
  end
59
59
 
60
60
  test 'imported host has additional interface' do
61
- nic = @imported_host.interfaces.find_by_identifier('eth1')
62
- assert_equal nic.mac, 'de:ad:be:ef:07:13'
63
- assert_equal nic.ip, '1.2.3.4'
61
+ nic = @imported_host.interfaces.find_by(identifier: 'eth1')
62
+ assert_equal('de:ad:be:ef:07:13', nic.mac)
63
+ assert_equal('1.2.3.4', nic.ip)
64
64
  end
65
65
  end
66
66
  end
@@ -16,7 +16,7 @@ module ForemanSalt
16
16
  test 'smart_proxy_ids returns salt smart proxy' do
17
17
  host = FactoryBot.create :host
18
18
  host.salt_proxy = @proxy
19
- assert host.smart_proxy_ids.include? host.salt_proxy_id
19
+ assert_includes host.smart_proxy_ids, host.salt_proxy_id
20
20
  end
21
21
 
22
22
  test 'host params includes salt_master' do
@@ -29,7 +29,7 @@ module ForemanSalt
29
29
  test 'host inherits salt proxy from host group' do
30
30
  hostgroup = FactoryBot.create :hostgroup
31
31
  hostgroup.salt_proxy = @proxy
32
- host = FactoryBot.create :host, :hostgroup => hostgroup
32
+ host = FactoryBot.create :host, hostgroup: hostgroup
33
33
  host.set_hostgroup_defaults
34
34
  assert_equal host.salt_proxy, hostgroup.salt_proxy
35
35
  end
@@ -41,12 +41,12 @@ module ForemanSalt
41
41
  state = FactoryBot.create :salt_module
42
42
  other_environment.salt_modules << state
43
43
 
44
- host = FactoryBot.create :host, :salt_environment => hosts_environment
44
+ host = FactoryBot.create :host, salt_environment: hosts_environment
45
45
  host.salt_proxy = @proxy
46
46
  host.salt_modules = [state]
47
47
 
48
48
  assert_not host.save
49
- assert host.errors.full_messages.include? 'Salt states must be in the environment of the host'
49
+ assert_includes host.errors.full_messages, 'Salt states must be in the environment of the host'
50
50
  end
51
51
 
52
52
  test '#configuration? considers salt' do
@@ -60,12 +60,12 @@ module ForemanSalt
60
60
  before do
61
61
  @host = FactoryBot.create(:host, :managed)
62
62
  @host.salt_proxy = @proxy
63
- stub_request(:post, "#{@proxy.url}/salt/autosign_key/asdfasdfasfasdf").
64
- to_return(status: 200, body: "", headers: {})
63
+ stub_request(:post, "#{@proxy.url}/salt/autosign_key/asdfasdfasfasdf")
64
+ .to_return(status: 200, body: '', headers: {})
65
65
  end
66
66
 
67
67
  test 'host autosign is created when host is built' do
68
- autosign_key = "asdfasdfasfasdf"
68
+ autosign_key = 'asdfasdfasfasdf'
69
69
  @host.expects(:generate_provisioning_key).returns(autosign_key)
70
70
  @host.build = true
71
71
  assert @host.save!
@@ -81,42 +81,42 @@ module ForemanSalt
81
81
  end
82
82
 
83
83
  test 'host returns autosign when deriving salt grains' do
84
- autosign_key = "asdfasdfasfasdf"
84
+ autosign_key = 'asdfasdfasfasdf'
85
85
  expected_hash = { @host.autosign_grain_name => autosign_key }
86
86
  @host.salt_autosign_key = autosign_key
87
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => true) }
87
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: true) }
88
88
  end
89
89
 
90
90
  test 'host returns empty hash when deriving salt grains without any given' do
91
91
  expected_hash = {}
92
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => true) }
92
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: true) }
93
93
  end
94
94
 
95
95
  test 'host returns empty hash when deriving salt grains without autosign' do
96
96
  expected_hash = {}
97
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => false) }
97
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: false) }
98
98
  end
99
99
 
100
100
  test 'host returns host param grains when deriving salt grains' do
101
- expected_hash = { "Some key": "Some value", "Another key": "An extraordinary value" }
101
+ expected_hash = { "Some key": 'Some value', "Another key": 'An extraordinary value' }
102
102
  @host.host_params[@host.host_params_grains_name] = expected_hash
103
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => false) }
103
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: false) }
104
104
  end
105
105
 
106
106
  test 'host returns only host param grains when deriving salt grains' do
107
- expected_hash = { "Some key": "Some value", "Another key": "An extraordinary value" }
107
+ expected_hash = { "Some key": 'Some value', "Another key": 'An extraordinary value' }
108
108
  @host.host_params[@host.host_params_grains_name] = expected_hash
109
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => true) }
109
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: true) }
110
110
  end
111
111
 
112
112
  test 'host returns host param grains plus autosign when deriving salt grains' do
113
- autosign_key = "asdfasdfasfasdf"
114
- host_param_grains = { "Some key": "Some value",
115
- "Another key": "An extraordinary value" }
113
+ autosign_key = 'asdfasdfasfasdf'
114
+ host_param_grains = { "Some key": 'Some value',
115
+ "Another key": 'An extraordinary value' }
116
116
  expected_hash = host_param_grains.merge(@host.autosign_grain_name => autosign_key)
117
117
  @host.salt_autosign_key = autosign_key
118
118
  @host.host_params[@host.host_params_grains_name] = host_param_grains
119
- assert_equal expected_hash, @host.instance_eval { derive_salt_grains(:use_autosign => true) }
119
+ assert_equal expected_hash, @host.instance_eval { derive_salt_grains(use_autosign: true) }
120
120
  end
121
121
  end
122
122
  end
@@ -10,19 +10,19 @@ module ForemanSalt
10
10
  test 'host group has a salt smart proxy' do
11
11
  hostgroup = FactoryBot.create :hostgroup
12
12
  hostgroup.salt_proxy = @proxy
13
- assert hostgroup.salt_proxy.features.map(&:name).include? 'Salt'
13
+ assert_includes hostgroup.salt_proxy.features.map(&:name), 'Salt'
14
14
  end
15
15
 
16
16
  test 'nested host group inherits salt modules from parent' do
17
17
  parent = FactoryBot.create :hostgroup, :with_salt_modules
18
- child = FactoryBot.create :hostgroup, :parent => parent
18
+ child = FactoryBot.create :hostgroup, parent: parent
19
19
  assert_equal [], parent.all_salt_modules - child.all_salt_modules
20
20
  end
21
21
 
22
22
  test 'child host group inherits salt proxy from child parent' do
23
23
  parent = FactoryBot.create :hostgroup
24
- child_one = FactoryBot.create :hostgroup, :parent => parent, :salt_proxy => @proxy
25
- child_two = FactoryBot.create :hostgroup, :parent => child_one
24
+ child_one = FactoryBot.create :hostgroup, parent: parent, salt_proxy: @proxy
25
+ child_two = FactoryBot.create :hostgroup, parent: child_one
26
26
  assert_not_nil parent
27
27
  assert_not_nil child_one
28
28
  assert_not_nil child_two
@@ -34,8 +34,8 @@ module ForemanSalt
34
34
  test 'child host group inherits salt environment from child parent' do
35
35
  environment = FactoryBot.create :salt_environment
36
36
  parent = FactoryBot.create :hostgroup
37
- child_one = FactoryBot.create :hostgroup, :parent => parent, :salt_environment => environment
38
- child_two = FactoryBot.create :hostgroup, :parent => child_one
37
+ child_one = FactoryBot.create :hostgroup, parent: parent, salt_environment: environment
38
+ child_two = FactoryBot.create :hostgroup, parent: child_one
39
39
  assert_not_nil parent
40
40
  assert_not_nil child_one
41
41
  assert_not_nil child_two
@@ -46,8 +46,8 @@ module ForemanSalt
46
46
 
47
47
  test 'child and parent salt modules are combined' do
48
48
  environment = FactoryBot.create :salt_environment
49
- parent = FactoryBot.create :hostgroup, :with_salt_modules, :salt_environment => environment
50
- child = FactoryBot.create :hostgroup, :with_salt_modules, :salt_environment => environment, :parent => parent
49
+ parent = FactoryBot.create :hostgroup, :with_salt_modules, salt_environment: environment
50
+ child = FactoryBot.create :hostgroup, :with_salt_modules, salt_environment: environment, parent: parent
51
51
 
52
52
  total = parent.salt_modules.count + child.salt_modules.count
53
53
  assert_equal total, child.all_salt_modules.count
@@ -55,21 +55,21 @@ module ForemanSalt
55
55
 
56
56
  test 'child doesnt get modules from outside its environment' do
57
57
  parent = FactoryBot.create :hostgroup, :with_salt_modules
58
- child = FactoryBot.create :hostgroup, :with_salt_modules, :parent => parent
58
+ child = FactoryBot.create :hostgroup, :with_salt_modules, parent: parent
59
59
  assert_equal child.salt_modules.count, child.all_salt_modules.count
60
60
  end
61
61
 
62
62
  test 'inheritance when only parent has modules' do
63
63
  parent = FactoryBot.create :hostgroup, :with_salt_modules
64
- child_one = FactoryBot.create :hostgroup, :parent => parent
65
- child_two = FactoryBot.create :hostgroup, :parent => child_one
64
+ child_one = FactoryBot.create :hostgroup, parent: parent
65
+ child_two = FactoryBot.create :hostgroup, parent: child_one
66
66
  assert_empty parent.all_salt_modules - child_two.all_salt_modules
67
67
  end
68
68
 
69
69
  test 'inheritance when no parents have modules' do
70
70
  parent = FactoryBot.create :hostgroup
71
- child_one = FactoryBot.create :hostgroup, :parent => parent
72
- child_two = FactoryBot.create :hostgroup, :with_salt_modules, :parent => child_one
71
+ child_one = FactoryBot.create :hostgroup, parent: parent
72
+ child_two = FactoryBot.create :hostgroup, :with_salt_modules, parent: child_one
73
73
  assert child_two.all_salt_modules.any?
74
74
  end
75
75
  end
@@ -13,27 +13,27 @@ module ForemanSalt
13
13
  end
14
14
 
15
15
  test 'importing report creates a host' do
16
- assert_not Host.find_by_name(@host)
16
+ assert_not Host.find_by(name: @host)
17
17
  ForemanSalt::ReportImporter.import(@report)
18
- assert Host.find_by_name(@host)
18
+ assert Host.find_by(name: @host)
19
19
  end
20
20
 
21
21
  test 'importing report updates host status' do
22
22
  HostStatus::ConfigurationStatus.any_instance.stubs(:relevant?).returns(true)
23
23
  ForemanSalt::ReportImporter.import(@report)
24
- assert Host.find_by_name(@host).get_status(HostStatus::ConfigurationStatus).error?
24
+ assert Host.find_by(name: @host).get_status(HostStatus::ConfigurationStatus).error?
25
25
  end
26
26
 
27
27
  test 'importing report has correct status' do
28
28
  ForemanSalt::ReportImporter.import(@report)
29
- status = Host.find_by_name(@host).reports.last.status
30
- assert_equal status['applied'], 9
31
- assert_equal status['failed'], 3
29
+ status = Host.find_by(name: @host).reports.last.status
30
+ assert_equal(9, status['applied'])
31
+ assert_equal(3, status['failed'])
32
32
  end
33
33
 
34
34
  test 'report has salt origin and expected content' do
35
35
  ForemanSalt::ReportImporter.import(@report)
36
- report = Host.find_by_name(@host).reports.last
36
+ report = Host.find_by(name: @host).reports.last
37
37
  assert_equal 'Salt', report.origin
38
38
  assert_equal 'pkg_|-postfix_|-postfix_|-installed', report.logs.first.source.value
39
39
  assert_equal 'Package postfix is already installed.', report.logs.first.message.value
@@ -41,11 +41,11 @@ module ForemanSalt
41
41
 
42
42
  test 'report with pchanges has salt origin and expected content' do
43
43
  ForemanSalt::ReportImporter.import(@report_pchanges)
44
- report = Host.find_by_name(@host).reports.last
44
+ report = Host.find_by(name: @host).reports.last
45
45
  status = report.status
46
46
  assert_equal 'Salt', report.origin
47
47
  assert_equal 'file_|-/etc/motd_|-/etc/motd_|-managed', report.logs.first.source.value
48
- assert_equal status['pending'], 1
48
+ assert_equal(1, status['pending'])
49
49
  end
50
50
 
51
51
  test 'import returns Array of reports including host and its name' do
@@ -7,7 +7,7 @@ class SaltKeysTest < ActiveSupport::TestCase
7
7
  # Fix for 1.8.7 OpenStruct http://stackoverflow.com/questions/9079441/populate-select-tag-ruby-rails
8
8
  OpenStruct.__send__(:define_method, :id) { @table[:id] }
9
9
 
10
- @proxy = OpenStruct.new(:id => 1, :url => 'http://dummy.example.com:9090')
10
+ @proxy = OpenStruct.new(id: 1, url: 'http://dummy.example.com:9090')
11
11
 
12
12
  ProxyAPI::Salt.any_instance.stubs(:key_list).returns(
13
13
  'saltstack.example.com' => { 'state' => 'accepted', 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c0' },
@@ -38,7 +38,7 @@ class SaltKeysTest < ActiveSupport::TestCase
38
38
  end
39
39
 
40
40
  test 'finds a key by name' do
41
- assert_equal ForemanSalt::SmartProxies::SaltKeys.find(@proxy, 'saltstack.example.com').name, 'saltstack.example.com'
41
+ assert_equal('saltstack.example.com', ForemanSalt::SmartProxies::SaltKeys.find(@proxy, 'saltstack.example.com').name)
42
42
  end
43
43
 
44
44
  test 'find keys by state' do
@@ -6,12 +6,12 @@ class SaltModulesTest < ActiveSupport::TestCase
6
6
  end
7
7
 
8
8
  test 'salt module has a valid name' do
9
- salt_module = ForemanSalt::SaltModule.new(:name => 'foo.bar.baz')
9
+ salt_module = ForemanSalt::SaltModule.new(name: 'foo.bar.baz')
10
10
  assert_valid salt_module
11
11
  end
12
12
 
13
13
  test 'salt module has invalid name' do
14
- salt_module = ForemanSalt::SaltModule.new(:name => '&bad$name')
14
+ salt_module = ForemanSalt::SaltModule.new(name: '&bad$name')
15
15
  refute_valid salt_module, :name, /alphanumeric/
16
16
  end
17
17
  end
@@ -7,25 +7,25 @@ class SaltVariablesTest < ActiveSupport::TestCase
7
7
  end
8
8
 
9
9
  test 'salt variable has a salt module' do
10
- salt_variable = ForemanSalt::SaltVariable.new(:key => 'awesome_key', :salt_module_id => @state.id)
10
+ salt_variable = ForemanSalt::SaltVariable.new(key: 'awesome_key', salt_module_id: @state.id)
11
11
  assert_valid salt_variable
12
- assert_equal true, salt_variable.salt?
12
+ assert salt_variable.salt?
13
13
  assert_equal @state.id, salt_variable.salt_module.id
14
14
  end
15
15
 
16
16
  test 'salt variable is referencing a LookupValue' do
17
- salt_variable = ForemanSalt::SaltVariable.new(:key => 'awesome_key', :salt_module_id => @state.id)
17
+ salt_variable = ForemanSalt::SaltVariable.new(key: 'awesome_key', salt_module_id: @state.id)
18
18
  assert salt_variable.lookup_values.count.zero?
19
- LookupValue.create(:value => "[1.2.3.4,2.3.4.5]", :match => "domain = mydomain.net", :lookup_key => salt_variable)
20
- assert salt_variable.lookup_values.count == 1
19
+ LookupValue.create(value: '[1.2.3.4,2.3.4.5]', match: 'domain = mydomain.net', lookup_key: salt_variable)
20
+ assert_equal(1, salt_variable.lookup_values.count)
21
21
  end
22
22
 
23
23
  test 'should cast default_value to hash' do
24
- salt_variable = ForemanSalt::SaltVariable.new(:key => 'awesome_key',
25
- :salt_module_id => @state.id,
26
- :key_type => 'hash',
27
- :default_value => "{\r\n \"bat\": \"man\"\r\n}\r\n",
28
- :override => true)
24
+ salt_variable = ForemanSalt::SaltVariable.new(key: 'awesome_key',
25
+ salt_module_id: @state.id,
26
+ key_type: 'hash',
27
+ default_value: "{\r\n \"bat\": \"man\"\r\n}\r\n",
28
+ override: true)
29
29
  salt_variable.save
30
30
  assert salt_variable.default_value.is_a?(Hash)
31
31
  end