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
@@ -12,18 +12,24 @@ module ForemanSalt
12
12
  config.autoload_paths += Dir["#{config.root}/app/services"]
13
13
  config.autoload_paths += Dir["#{config.root}/app/lib"]
14
14
 
15
- initializer 'foreman_salt.require_dynflow', :before => 'foreman_tasks.initialize_dynflow' do
15
+ config.paths['config/routes.rb'].unshift('config/api_routes.rb')
16
+
17
+ initializer 'foreman_salt.require_dynflow', before: 'foreman_tasks.initialize_dynflow' do
16
18
  ForemanTasks.dynflow.require!
17
19
  end
18
20
 
19
- initializer 'foreman_salt.load_default_settings', :before => :load_config_initializers do
20
- if (Setting.table_exists? rescue(false))
21
- require_dependency File.expand_path('../../../app/models/setting/salt.rb', __FILE__)
21
+ initializer 'foreman_salt.load_default_settings', before: :load_config_initializers do
22
+ if begin
23
+ Setting.table_exists?
24
+ rescue StandardError
25
+ (false)
26
+ end
27
+ require_dependency File.expand_path('../../app/models/setting/salt.rb', __dir__)
22
28
  end
23
29
  end
24
30
 
25
31
  initializer 'foreman_salt.register_gettext',
26
- :after => :load_config_initializers do
32
+ after: :load_config_initializers do
27
33
  locale_dir = File.join(File.expand_path('../..', __dir__), 'locale')
28
34
  locale_domain = 'foreman_salt'
29
35
 
@@ -37,16 +43,16 @@ module ForemanSalt
37
43
  end
38
44
 
39
45
  initializer 'foreman_salt.assets.precompile' do |app|
40
- app.config.assets.precompile += %w(foreman_salt/states.js)
46
+ app.config.assets.precompile += %w[foreman_salt/states.js]
41
47
  app.config.assets.precompile += %w[foreman_salt/Salt.png]
42
48
  end
43
49
 
44
- initializer 'foreman_salt.configure_assets', :group => :assets do
50
+ initializer 'foreman_salt.configure_assets', group: :assets do
45
51
  SETTINGS[:foreman_salt] = {
46
- :assets => {
47
- :precompile => ['foreman_salt/Salt.png',
48
- 'foreman_salt/states.js']
49
- }
52
+ assets: {
53
+ precompile: ['foreman_salt/Salt.png',
54
+ 'foreman_salt/states.js'],
55
+ },
50
56
  }
51
57
  end
52
58
 
@@ -54,7 +60,7 @@ module ForemanSalt
54
60
  Apipie.configuration.checksum_path += ['/salt/api/']
55
61
  end
56
62
 
57
- initializer 'foreman_salt.register_plugin', :before => :finisher_hook do
63
+ initializer 'foreman_salt.register_plugin', before: :finisher_hook do
58
64
  require 'foreman_salt/plugin'
59
65
  end
60
66
 
@@ -68,15 +74,17 @@ module ForemanSalt
68
74
 
69
75
  # check whether foreman_remote_execution to integrate is available in the system
70
76
  def self.with_remote_execution?
71
- RemoteExecutionFeature rescue false
77
+ RemoteExecutionFeature
78
+ rescue StandardError
79
+ false
72
80
  end
73
81
 
74
82
  def self.register_rex_feature
75
83
  options = {
76
- :description => N_("Run Salt state.highstate"),
77
- :host_action_button => true
84
+ description: N_('Run Salt state.highstate'),
85
+ host_action_button: true,
78
86
  }
79
87
 
80
- RemoteExecutionFeature.register(:foreman_salt_run_state_highstate, N_("Run Salt"), options)
88
+ RemoteExecutionFeature.register(:foreman_salt_run_state_highstate, N_('Run Salt'), options)
81
89
  end
82
90
  end
@@ -1,15 +1,15 @@
1
1
  begin
2
2
  # Helper Extensions
3
- ::HostsHelper.send :include, ForemanSalt::HostsHelperExtensions
4
- ::SmartProxiesHelper.send :include, ForemanSalt::SmartProxiesHelperExtensions
3
+ ::HostsHelper.include ForemanSalt::HostsHelperExtensions
4
+ ::SmartProxiesHelper.include ForemanSalt::SmartProxiesHelperExtensions
5
5
 
6
6
  # Model Extensions
7
- ::Host::Managed.send :include, ForemanSalt::Concerns::HostManagedExtensions
8
- ::Hostgroup.send :include, ForemanSalt::Concerns::HostgroupExtensions
7
+ ::Host::Managed.include ForemanSalt::Concerns::HostManagedExtensions
8
+ ::Hostgroup.include ForemanSalt::Concerns::HostgroupExtensions
9
9
 
10
10
  # Controller Extensions
11
- ::HostsController.send :include, ForemanSalt::Concerns::HostsControllerExtensions
12
- ::HostgroupsController.send :include, ForemanSalt::Concerns::HostgroupsControllerExtensions
13
- rescue => e
14
- puts "ForemanSalt: skipping engine hook (#{e})"
11
+ ::HostsController.include ForemanSalt::Concerns::HostsControllerExtensions
12
+ ::HostgroupsController.include ForemanSalt::Concerns::HostgroupsControllerExtensions
13
+ rescue StandardError => e
14
+ Rails.logger.error "ForemanSalt: skipping engine hook (#{e})"
15
15
  end
@@ -1,183 +1,189 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable BlockLength
4
3
  Foreman::Plugin.register :foreman_salt do
5
4
  requires_foreman '>= 1.24'
6
5
 
7
6
  apipie_documented_controllers ["#{ForemanSalt::Engine.root}/app/controllers/foreman_salt/api/v2/*.rb"]
8
7
 
9
8
  # Menus
10
- divider :top_menu, :parent => :configure_menu, :caption => 'Salt'
9
+ divider :top_menu, parent: :configure_menu, caption: 'Salt'
11
10
  menu :top_menu, :salt_environments,
12
- :url_hash => { :controller => :'foreman_salt/salt_environments', :action => :index },
13
- :caption => 'Environments',
14
- :parent => :configure_menu
11
+ url_hash: { controller: :'foreman_salt/salt_environments', action: :index },
12
+ caption: 'Environments',
13
+ parent: :configure_menu
15
14
 
16
15
  menu :top_menu, :salt_modules,
17
- :url_hash => { :controller => :'foreman_salt/salt_modules', :action => :index },
18
- :caption => 'States',
19
- :parent => :configure_menu
16
+ url_hash: { controller: :'foreman_salt/salt_modules', action: :index },
17
+ caption: 'States',
18
+ parent: :configure_menu
20
19
 
21
20
  menu :top_menu, :salt_variables,
22
- :url_hash => { :controller => :'foreman_salt/salt_variables', :action => :index },
23
- :caption => N_('Variables'),
24
- :parent => :configure_menu
21
+ url_hash: { controller: :'foreman_salt/salt_variables', action: :index },
22
+ caption: N_('Variables'),
23
+ parent: :configure_menu
25
24
 
25
+ # Existing permissions
26
+ p = Foreman::AccessControl.permission(:edit_hostgroups)
27
+ p.actions << 'foreman_salt/api/v2/salt_hostgroups/update'
28
+ p.actions << 'hostgroups/salt_environment_selected'
26
29
 
27
- # Permissions
30
+ p = Foreman::AccessControl.permission(:view_hostgroups)
31
+ p.actions << 'foreman_salt/api/v2/salt_hostgroups/show'
32
+
33
+ # New permissions
28
34
  security_block :foreman_salt do
35
+ permission :auth_smart_proxies_salt_autosign,
36
+ { 'foreman_salt/api/v2/salt_autosign': [:auth] },
37
+ resource_type: 'SmartProxy'
38
+
29
39
  permission :destroy_smart_proxies_salt_autosign,
30
- { :'foreman_salt/salt_autosign' => [:destroy],
31
- :'foreman_salt/api/v2/salt_autosign' => [:destroy] },
32
- :resource_type => 'SmartProxy'
40
+ { 'foreman_salt/salt_autosign': [:destroy],
41
+ 'foreman_salt/api/v2/salt_autosign': [:destroy] },
42
+ resource_type: 'SmartProxy'
33
43
 
34
44
  permission :create_smart_proxies_salt_autosign,
35
- { :'foreman_salt/salt_autosign' => [:new, :create],
36
- :'foreman_salt/api/v2/salt_autosign' => [:create] },
37
- :resource_type => 'SmartProxy'
45
+ { 'foreman_salt/salt_autosign': %i[new create],
46
+ 'foreman_salt/api/v2/salt_autosign': [:create] },
47
+ resource_type: 'SmartProxy'
38
48
 
39
49
  permission :view_smart_proxies_salt_autosign,
40
- { :'foreman_salt/salt_autosign' => [:index],
41
- :'foreman_salt/api/v2/salt_autosign' => [:index] },
42
- :resource_type => 'SmartProxy'
50
+ { 'foreman_salt/salt_autosign': [:index],
51
+ 'foreman_salt/api/v2/salt_autosign': [:index] },
52
+ resource_type: 'SmartProxy'
43
53
 
44
54
  permission :create_salt_environments,
45
- { :'foreman_salt/salt_environments' => [:new, :create],
46
- :'foreman_salt/api/v2/salt_environments' => [:create] },
47
- :resource_type => 'ForemanSalt::SaltEnvironment'
55
+ { 'foreman_salt/salt_environments': %i[new create],
56
+ 'foreman_salt/api/v2/salt_environments': [:create] },
57
+ resource_type: 'ForemanSalt::SaltEnvironment'
48
58
 
49
59
  permission :view_salt_environments,
50
- { :'foreman_salt/salt_environments' => [:index, :show, :auto_complete_search],
51
- :'foreman_salt/api/v2/salt_environments' => [:index, :show] },
52
- :resource_type => 'ForemanSalt::SaltEnvironment'
60
+ { 'foreman_salt/salt_environments': %i[index show auto_complete_search],
61
+ 'foreman_salt/api/v2/salt_environments': %i[index show] },
62
+ resource_type: 'ForemanSalt::SaltEnvironment'
53
63
 
54
64
  permission :edit_salt_environments,
55
- { :'foreman_salt/salt_environments' => [:update, :edit] },
56
- :resource_type => 'ForemanSalt::SaltEnvironment'
65
+ { 'foreman_salt/salt_environments': %i[update edit] },
66
+ resource_type: 'ForemanSalt::SaltEnvironment'
57
67
 
58
68
  permission :destroy_salt_environments,
59
- { :'foreman_salt/salt_environments' => [:destroy],
60
- :'foreman_salt/api/v2/salt_environments' => [:destroy] },
61
- :resource_type => 'ForemanSalt::SaltEnvironment'
69
+ { 'foreman_salt/salt_environments': [:destroy],
70
+ 'foreman_salt/api/v2/salt_environments': [:destroy] },
71
+ resource_type: 'ForemanSalt::SaltEnvironment'
62
72
 
63
73
  permission :view_salt_variables,
64
- {
65
- :'foreman_salt/salt_variables' => [:index, :auto_complete_search],
66
- :'foreman_salt/api/v2/salt_variables' => [:index, :show]
67
- },
68
- :resource_type => 'ForemanSalt::SaltVariable'
74
+ { 'foreman_salt/salt_variables': %i[index auto_complete_search],
75
+ 'foreman_salt/api/v2/salt_variables': %i[index show],
76
+ 'lookup_values': [:index] },
77
+ resource_type: 'ForemanSalt::SaltVariable'
69
78
 
70
79
  permission :edit_salt_variables,
71
- { :'foreman_salt/salt_variables' => [:edit, :update],
72
- :'foreman_salt/api/v2/salt_variables' => [:update],
73
- :'foreman_salt/api/v2/salt_override_values' => [:create, :destroy] },
74
- :resource_type => 'ForemanSalt::SaltVariable'
80
+ { 'foreman_salt/salt_variables': %i[edit update],
81
+ 'foreman_salt/api/v2/salt_variables': [:update],
82
+ 'lookup_values': [:update] },
83
+ resource_type: 'ForemanSalt::SaltVariable'
75
84
 
76
85
  permission :destroy_salt_variables,
77
- {
78
- :'foreman_salt/salt_variables' => [:destroy],
79
- :'foreman_salt/api/v2/salt_variables' => [:destroy]
80
- },
81
- :resource_type => 'ForemanSalt::SaltVariable'
86
+ { 'foreman_salt/salt_variables': [:destroy],
87
+ 'foreman_salt/api/v2/salt_variables': [:destroy],
88
+ 'foreman_salt/api/v2/salt_override_values': [:destroy],
89
+ 'lookup_values': [:destroy] },
90
+ resource_type: 'ForemanSalt::SaltVariable'
82
91
 
83
92
  permission :create_salt_variables,
84
- {
85
- :'foreman_salt/salt_variables' => [:new, :create],
86
- :'foreman_salt/api/v2/salt_variables' => [:create]
87
- },
88
- :resource_type => 'ForemanSalt::SaltVariable'
93
+ { 'foreman_salt/salt_variables': %i[new create],
94
+ 'foreman_salt/api/v2/salt_variables': [:create],
95
+ 'foreman_salt/api/v2/salt_override_values': [:create],
96
+ 'lookup_values': [:create] },
97
+ resource_type: 'ForemanSalt::SaltVariable'
89
98
 
90
99
  permission :create_reports,
91
- { :'foreman_salt/api/v2/jobs' => [:upload] },
92
- :resource_type => 'Report'
100
+ { 'foreman_salt/api/v2/jobs': [:upload] },
101
+ resource_type: 'Report'
93
102
 
94
103
  permission :saltrun_hosts,
95
- { :'foreman_salt/minions' => [:run] },
96
- :resource_type => 'Host'
104
+ { 'foreman_salt/minions': [:run] },
105
+ resource_type: 'Host'
97
106
 
98
107
  permission :edit_hosts,
99
- { :'foreman_salt/api/v2/salt_minions' => [:update],
100
- :'foreman_salt/minions' => [:salt_environment_selected],
101
- :hosts => [:select_multiple_salt_master, :update_multiple_salt_master,
102
- :select_multiple_salt_environment, :update_multiple_salt_environment] },
103
- :resource_type => 'Host'
108
+ { 'foreman_salt/api/v2/salt_minions': [:update],
109
+ 'foreman_salt/minions': [:salt_environment_selected],
110
+ hosts: %i[select_multiple_salt_master update_multiple_salt_master
111
+ select_multiple_salt_environment update_multiple_salt_environment] },
112
+ resource_type: 'Host'
104
113
 
105
114
  permission :view_hosts,
106
- { :'foreman_salt/minions' => [:node],
107
- :'foreman_salt/api/v2/salt_minions' => [:index, :show] },
108
- :resource_type => 'Host'
109
-
110
- permission :edit_hostgroups,
111
- { :hostgroups => [:salt_environment_selected] },
112
- :resource_type => 'Hostgroup'
115
+ { 'foreman_salt/minions': [:node],
116
+ 'foreman_salt/api/v2/salt_minions': %i[index show] },
117
+ resource_type: 'Host'
113
118
 
114
119
  permission :view_smart_proxies_salt_keys,
115
- { :'foreman_salt/salt_keys' => [:index],
116
- :'foreman_salt/api/v2/salt_keys' => [:index] },
117
- :resource_type => 'SmartProxy'
120
+ { 'foreman_salt/salt_keys': [:index],
121
+ 'foreman_salt/api/v2/salt_keys': [:index] },
122
+ resource_type: 'SmartProxy'
118
123
 
119
124
  permission :destroy_smart_proxies_salt_keys,
120
- { :'foreman_salt/salt_keys' => [:destroy],
121
- :'foreman_salt/api/v2/salt_keys' => [:destroy] },
122
- :resource_type => 'SmartProxy'
125
+ { 'foreman_salt/salt_keys': [:destroy],
126
+ 'foreman_salt/api/v2/salt_keys': [:destroy] },
127
+ resource_type: 'SmartProxy'
123
128
 
124
129
  permission :edit_smart_proxies_salt_keys,
125
- { :'foreman_salt/salt_keys' => [:accept, :reject],
126
- :'foreman_salt/api/v2/salt_keys' => [:update] },
127
- :resource_type => 'SmartProxy'
130
+ { 'foreman_salt/salt_keys': %i[accept reject],
131
+ 'foreman_salt/api/v2/salt_keys': [:update] },
132
+ resource_type: 'SmartProxy'
128
133
 
129
134
  permission :create_salt_modules,
130
- { :'foreman_salt/salt_modules' => [:new, :create],
131
- :'foreman_salt/api/v2/salt_states' => [:create] },
132
- :resource_type => 'ForemanSalt::SaltModule'
135
+ { 'foreman_salt/salt_modules': %i[new create],
136
+ 'foreman_salt/api/v2/salt_states': [:create] },
137
+ resource_type: 'ForemanSalt::SaltModule'
133
138
 
134
139
  permission :import_salt_modules,
135
- { :'foreman_salt/salt_modules' => [:import, :apply_changes],
136
- :'foreman_salt/api/v2/salt_states' => [:import] },
137
- :resource_type => 'ForemanSalt::SaltModule'
140
+ { 'foreman_salt/salt_modules': %i[import apply_changes],
141
+ 'foreman_salt/api/v2/salt_states': [:import] },
142
+ resource_type: 'ForemanSalt::SaltModule'
138
143
 
139
144
  permission :view_salt_modules,
140
- { :'foreman_salt/salt_modules' => [:index, :show, :auto_complete_search],
141
- :'foreman_salt/api/v2/salt_states' => [:index, :show] },
142
- :resource_type => 'ForemanSalt::SaltModule'
145
+ { 'foreman_salt/salt_modules': %i[index show auto_complete_search],
146
+ 'foreman_salt/api/v2/salt_states': %i[index show] },
147
+ resource_type: 'ForemanSalt::SaltModule'
143
148
 
144
149
  permission :edit_salt_modules,
145
- { :'foreman_salt/salt_modules' => [:update, :edit] },
146
- :resource_type => 'ForemanSalt::SaltModule'
150
+ { 'foreman_salt/salt_modules': %i[update edit] },
151
+ resource_type: 'ForemanSalt::SaltModule'
147
152
 
148
153
  permission :destroy_salt_modules,
149
- { :'foreman_salt/salt_modules' => [:destroy],
150
- :'foreman_salt/api/v2/salt_states' => [:destroy] },
151
- :resource_type => 'ForemanSalt::SaltModule'
154
+ { 'foreman_salt/salt_modules': [:destroy],
155
+ 'foreman_salt/api/v2/salt_states': [:destroy] },
156
+ resource_type: 'ForemanSalt::SaltModule'
152
157
  end
153
158
 
154
159
  # Roles
155
- role 'Salt admin', [:saltrun_hosts,
156
- :create_salt_modules, :view_salt_modules,
157
- :edit_salt_modules, :destroy_salt_modules,
158
- :import_salt_modules,
159
- :view_smart_proxies_salt_keys,
160
- :edit_smart_proxies_salt_keys, :destroy_smart_proxies_salt_keys,
161
- :create_smart_proxies_salt_autosign, :view_smart_proxies_salt_autosign,
162
- :destroy_smart_proxies_salt_autosign,
163
- :create_salt_environments, :view_salt_environments,
164
- :edit_salt_environments, :destroy_salt_environments,
165
- :create_salt_variables, :view_salt_variables,
166
- :edit_salt_variables, :destroy_salt_variables]
167
-
168
- role 'Salt viewer', [:view_smart_proxies_salt_keys,
169
- :view_smart_proxies_salt_autosign,
170
- :view_salt_variables,
171
- :view_salt_environments,
172
- :view_salt_modules]
160
+ role 'Salt admin', %i[saltrun_hosts
161
+ create_salt_modules view_salt_modules
162
+ edit_salt_modules destroy_salt_modules
163
+ import_salt_modules
164
+ view_smart_proxies_salt_keys
165
+ edit_smart_proxies_salt_keys destroy_smart_proxies_salt_keys
166
+ create_smart_proxies_salt_autosign view_smart_proxies_salt_autosign
167
+ destroy_smart_proxies_salt_autosign auth_smart_proxies_salt_autosign
168
+ create_salt_environments view_salt_environments
169
+ edit_salt_environments destroy_salt_environments
170
+ create_salt_variables view_salt_variables
171
+ edit_salt_variables destroy_salt_variables
172
+ view_hostgroups edit_hostgroups]
173
+
174
+ role 'Salt viewer', %i[view_smart_proxies_salt_keys
175
+ view_smart_proxies_salt_autosign
176
+ view_salt_variables
177
+ view_salt_environments
178
+ view_salt_modules
179
+ view_hostgroups]
173
180
 
174
181
  # Parameter filters
175
182
  parameter_filter Hostgroup,
176
- :salt_proxy_id, :salt_proxy_name, :salt_environment_id,
177
- :salt_environment_name, :salt_modules => [], :salt_module_ids => []
183
+ :salt_proxy_id, :salt_proxy_name, :salt_environment_id,
184
+ :salt_environment_name, salt_modules: [], salt_module_ids: []
178
185
  parameter_filter Host::Managed,
179
- :salt_proxy_id, :salt_proxy_name,
180
- :salt_environment_id, :salt_environment_name, :salt_modules => [],
181
- :salt_module_ids => []
186
+ :salt_proxy_id, :salt_proxy_name,
187
+ :salt_environment_id, :salt_environment_name, salt_modules: [],
188
+ salt_module_ids: []
182
189
  end
183
- # rubocop:enable BlockLength
@@ -1,3 +1,3 @@
1
1
  module ForemanSalt
2
- VERSION = '14.0.0'
2
+ VERSION = '14.1.0'.freeze
3
3
  end
data/lib/foreman_salt.rb CHANGED
@@ -3,7 +3,7 @@ require 'foreman_salt/engine'
3
3
  begin
4
4
  require 'foreman-tasks'
5
5
  rescue LoadError
6
- puts 'ForemanTasks is not available, async tasks disabled.'
6
+ Rails.logger.error('ForemanSalt: ForemanTasks is not available, async tasks disabled.')
7
7
  end
8
8
 
9
9
  module ForemanSalt
@@ -1,5 +1,5 @@
1
1
  namespace :foreman_salt do
2
- task :rubocop do
2
+ task rubocop: :environment do
3
3
  begin
4
4
  require 'rubocop/rake_task'
5
5
  RuboCop::RakeTask.new(:rubocop_salt) do |task|
@@ -7,7 +7,7 @@ namespace :foreman_salt do
7
7
  "#{ForemanSalt::Engine.root}/lib/**/*.rb",
8
8
  "#{ForemanSalt::Engine.root}/test/**/*.rb"]
9
9
  end
10
- rescue
10
+ rescue StandardError
11
11
  puts 'Rubocop not loaded.'
12
12
  end
13
13
 
@@ -29,6 +29,4 @@ end
29
29
  Rake::Task[:test].enhance ['test:foreman_salt']
30
30
 
31
31
  load 'tasks/jenkins.rake'
32
- if Rake::Task.task_defined?(:'jenkins:unit')
33
- Rake::Task['jenkins:unit'].enhance ['test:foreman_salt', 'foreman_salt:rubocop']
34
- end
32
+ Rake::Task['jenkins:unit'].enhance ['test:foreman_salt', 'foreman_salt:rubocop'] if Rake::Task.task_defined?(:'jenkins:unit')
@@ -1,5 +1,5 @@
1
1
  # Autogenerated!
2
- _("Action with sub plans")
3
- _("Import facts")
4
- _("Import Puppet classes")
5
- _("Remote action:")
2
+ _('Action with sub plans')
3
+ _('Import facts')
4
+ _('Import Puppet classes')
5
+ _('Remote action:')
@@ -1,13 +1,13 @@
1
1
  FactoryBot.define do
2
- factory :salt_module, :class => 'ForemanSalt::SaltModule' do
2
+ factory :salt_module, class: 'ForemanSalt::SaltModule' do
3
3
  sequence(:name) { |n| "module#{n}" }
4
4
  end
5
5
 
6
- factory :salt_environment, :class => 'ForemanSalt::SaltEnvironment' do
6
+ factory :salt_environment, class: 'ForemanSalt::SaltEnvironment' do
7
7
  sequence(:name) { |n| "environment#{n}" }
8
8
  end
9
9
 
10
- factory :salt_variable, :class => 'ForemanSalt::SaltVariable' do
10
+ factory :salt_variable, class: 'ForemanSalt::SaltVariable' do
11
11
  sequence(:key) { |n| "salt_variable_#{n}" }
12
12
  sequence(:default_value) { |n| "default_value_#{n}" }
13
13
  salt_module
@@ -18,13 +18,13 @@ FactoryBot.modify do
18
18
  factory :hostgroup do
19
19
  trait :with_salt_modules do
20
20
  salt_environment { FactoryBot.build :salt_environment }
21
- salt_modules { FactoryBot.create_list :salt_module, 10, :salt_environments => [self.salt_environment] }
21
+ salt_modules { FactoryBot.create_list :salt_module, 10, salt_environments: [salt_environment] }
22
22
  end
23
23
  end
24
24
 
25
25
  factory :smart_proxy do
26
26
  trait :with_salt_feature do
27
- features { [::Feature.find_or_create_by(:name => 'Salt')] }
27
+ features { [::Feature.find_or_create_by(name: 'Salt')] }
28
28
  end
29
29
  end
30
30
  end
@@ -1,27 +1,33 @@
1
1
  require 'test_plugin_helper'
2
2
 
3
- class ::ForemanSalt::Api::V2::SaltAutosignControllerTest < ActionController::TestCase
4
- setup do
5
- @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
6
- @host = FactoryBot.create(:host, :managed)
7
- @host.salt_proxy = @proxy
8
- ProxyAPI::Salt.any_instance.stubs(:autosign_list).returns((%w(foo bar baz)))
9
- end
3
+ module ForemanSalt
4
+ module Api
5
+ module V2
6
+ class SaltAutosignControllerTest < ActionController::TestCase
7
+ setup do
8
+ @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
9
+ @host = FactoryBot.create(:host, :managed)
10
+ @host.salt_proxy = @proxy
11
+ ProxyAPI::Salt.any_instance.stubs(:autosign_list).returns(%w[foo bar baz])
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 create autosign' do
17
- ProxyAPI::Salt.any_instance.expects(:autosign_create).once.returns(true)
18
- post :create, params: { :smart_proxy_id => @proxy.id, :record => 'unicorn.example.com' }
19
- assert_response :success
20
- end
19
+ test 'should create autosign' do
20
+ ProxyAPI::Salt.any_instance.expects(:autosign_create).once.returns(true)
21
+ post :create, params: { smart_proxy_id: @proxy.id, record: 'unicorn.example.com' }
22
+ assert_response :success
23
+ end
21
24
 
22
- test 'should delete autosign' do
23
- ProxyAPI::Salt.any_instance.expects(:autosign_remove).once.returns(true)
24
- delete :destroy, params: { :smart_proxy_id => @proxy.id, :record => 'unicorn.example.com' }
25
- assert_response :success
25
+ test 'should delete autosign' do
26
+ ProxyAPI::Salt.any_instance.expects(:autosign_remove).once.returns(true)
27
+ delete :destroy, params: { smart_proxy_id: @proxy.id, record: 'unicorn.example.com' }
28
+ assert_response :success
29
+ end
30
+ end
31
+ end
26
32
  end
27
33
  end
@@ -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