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
@@ -10,11 +10,11 @@ module ForemanSalt
10
10
  class_methods do
11
11
  def salt_variable_params_filter
12
12
  Foreman::ParameterFilter.new(::ForemanSalt::SaltVariable).tap do |filter|
13
- filter.permit :salt_module_id, :salt_modules => [], :salt_module_ids => [],
14
- :salt_module_names => [], :param_classes => [], :param_classes_ids => [],
15
- :param_classes_names => []
16
- filter.permit_by_context :required, :nested => true
17
- filter.permit_by_context :id, :ui => false, :api => false, :nested => true
13
+ filter.permit :salt_module_id, salt_modules: [], salt_module_ids: [],
14
+ salt_module_names: [], param_classes: [], param_classes_ids: [],
15
+ param_classes_names: []
16
+ filter.permit_by_context :required, nested: true
17
+ filter.permit_by_context :id, ui: false, api: false, nested: true
18
18
  add_lookup_key_params_filter(filter)
19
19
  end
20
20
  end
@@ -3,8 +3,8 @@ module ForemanSalt
3
3
  include ::Foreman::Controller::SmartProxyAuth
4
4
  include ::Foreman::Controller::Parameters::Host
5
5
 
6
- before_action :find_resource, :only => [:node, :run]
7
- add_smart_proxy_filters :node, :features => 'Salt'
6
+ before_action :find_resource, only: %i[node run]
7
+ add_smart_proxy_filters :node, features: 'Salt'
8
8
 
9
9
  def node
10
10
  enc = {}
@@ -19,12 +19,12 @@ module ForemanSalt
19
19
 
20
20
  enc['environment'] = env
21
21
  respond_to do |format|
22
- format.html { render :plain => "<pre>#{ERB::Util.html_escape(enc.to_yaml)}</pre>" }
23
- format.yml { render :plain => enc.to_yaml }
22
+ format.html { render plain: "<pre>#{ERB::Util.html_escape(enc.to_yaml)}</pre>" }
23
+ format.yml { render plain: enc.to_yaml }
24
24
  end
25
- rescue
25
+ rescue StandardError
26
26
  logger.warn "Failed to generate external nodes for #{@minion} with #{$ERROR_INFO}"
27
- render(:plain => _('Unable to generate output, Check log files\n'), :status => 412) && return
27
+ render(plain: _('Unable to generate output, Check log files\n'), status: :precondition_failed) && return
28
28
  end
29
29
 
30
30
  def run
@@ -40,7 +40,7 @@ module ForemanSalt
40
40
  if params[:host][:salt_environment_id].present?
41
41
  @salt_environment = ::ForemanSalt::SaltEnvironment.friendly.find(params[:host][:salt_environment_id])
42
42
  load_ajax_vars
43
- render :partial => 'foreman_salt/salt_modules/host_tab_pane'
43
+ render partial: 'foreman_salt/salt_modules/host_tab_pane'
44
44
  else
45
45
  logger.info 'environment_id is required to render states'
46
46
  end
@@ -70,7 +70,7 @@ module ForemanSalt
70
70
  private
71
71
 
72
72
  def load_ajax_vars
73
- @minion = Host::Base.authorized(:view_hosts, Host).find_by_id(params[:host_id])
73
+ @minion = Host::Base.authorized(:view_hosts, Host).find_by(id: params[:host_id])
74
74
  if @minion
75
75
  unless @minion.is_a?(Host::Managed)
76
76
  @minion = @minion.becomes(Host::Managed)
@@ -82,7 +82,7 @@ module ForemanSalt
82
82
  end
83
83
 
84
84
  @obj = @minion
85
- @inherited_salt_modules = @salt_environment.salt_modules.where(:id => @minion.hostgroup ? @minion.hostgroup.all_salt_modules : [])
85
+ @inherited_salt_modules = @salt_environment.salt_modules.where(id: @minion.hostgroup ? @minion.hostgroup.all_salt_modules : [])
86
86
  @salt_modules = @salt_environment.salt_modules - @inherited_salt_modules
87
87
  @selected = @minion.salt_modules || []
88
88
  end
@@ -3,7 +3,7 @@ module ForemanSalt
3
3
  def index
4
4
  setup
5
5
  autosign = @api.autosign_list
6
- @autosign = autosign.paginate :page => params[:page], :per_page => Setting[:entries_per_page]
6
+ @autosign = autosign.paginate page: params[:page], per_page: Setting[:entries_per_page]
7
7
  end
8
8
 
9
9
  def new
@@ -14,10 +14,10 @@ module ForemanSalt
14
14
  setup
15
15
 
16
16
  if @api.autosign_create(params[:id])
17
- process_success(:success_redirect => hash_for_smart_proxy_salt_autosign_index_path, :success_msg => _("Autosign created for #{params[:id]}"),
18
- :object_name => params[:id])
17
+ process_success(success_redirect: hash_for_smart_proxy_salt_autosign_index_path, success_msg: _("Autosign created for #{params[:id]}"),
18
+ object_name: params[:id])
19
19
  else
20
- process_error(:redirect => hash_for_smart_proxy_salt_autosign_index_path)
20
+ process_error(redirect: hash_for_smart_proxy_salt_autosign_index_path)
21
21
  end
22
22
  end
23
23
 
@@ -25,10 +25,10 @@ module ForemanSalt
25
25
  setup
26
26
 
27
27
  if @api.autosign_remove(params[:id])
28
- process_success(:success_redirect => hash_for_smart_proxy_salt_autosign_index_path, :success_msg => _("Autosign deleted for #{params[:id]}"),
29
- :object_name => params[:id])
28
+ process_success(success_redirect: hash_for_smart_proxy_salt_autosign_index_path, success_msg: _("Autosign deleted for #{params[:id]}"),
29
+ object_name: params[:id])
30
30
  else
31
- process_error(:redirect => hash_for_smart_proxy_salt_autosign_index_path)
31
+ process_error(redirect: hash_for_smart_proxy_salt_autosign_index_path)
32
32
  end
33
33
  end
34
34
 
@@ -36,7 +36,7 @@ module ForemanSalt
36
36
 
37
37
  def setup
38
38
  @proxy = SmartProxy.authorized(:view_smart_proxies_salt_autosign).find(params[:smart_proxy_id])
39
- @api = ProxyAPI::Salt.new(:url => @proxy.url)
39
+ @api = ProxyAPI::Salt.new(url: @proxy.url)
40
40
  end
41
41
  end
42
42
  end
@@ -3,10 +3,10 @@ module ForemanSalt
3
3
  include Foreman::Controller::AutoCompleteSearch
4
4
  include ::ForemanSalt::Concerns::SaltEnvironmentParameters
5
5
 
6
- before_action :find_resource, :only => [:edit, :update, :destroy]
6
+ before_action :find_resource, only: %i[edit update destroy]
7
7
 
8
8
  def index
9
- @salt_environments = resource_base.search_for(params[:search], :order => params[:order]).paginate(:page => params[:page])
9
+ @salt_environments = resource_base.search_for(params[:search], order: params[:order]).paginate(page: params[:page])
10
10
  end
11
11
 
12
12
  def new
@@ -26,8 +26,8 @@ module ForemanSalt
26
26
  end
27
27
 
28
28
  def update
29
- if @salt_environment.update_attributes(salt_environment_params)
30
- success _('Successfully updated %s.' % @salt_environment.to_s)
29
+ if @salt_environment.update(salt_environment_params)
30
+ success _("Successfully updated #{@salt_environment}")
31
31
  redirect_to salt_environments_path
32
32
  else
33
33
  process_error
@@ -7,19 +7,19 @@ module ForemanSalt
7
7
  keys = if params[:state].blank?
8
8
  SmartProxies::SaltKeys.all @proxy
9
9
  else
10
- SmartProxies::SaltKeys.find_by_state @proxy, params[:state].downcase
10
+ SmartProxies::SaltKeys.find_by_state(@proxy, params[:state].downcase)
11
11
  end
12
- @keys = keys.sort.paginate :page => params[:page], :per_page => Setting[:entries_per_page]
12
+ @keys = keys.sort.paginate page: params[:page], per_page: Setting[:entries_per_page]
13
13
  end
14
14
 
15
15
  def accept
16
16
  @proxy = find_proxy(:edit_smart_proxies_salt_keys)
17
17
  key = SmartProxies::SaltKeys.find(@proxy, params[:salt_key_id])
18
18
  if key.accept
19
- process_success(:success_redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true),
20
- :success_msg => _("Key accepted for #{key}"), :object_name => key.to_s)
19
+ process_success(success_redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true),
20
+ success_msg: _("Key accepted for #{key}"), object_name: key.to_s)
21
21
  else
22
- process_error(:redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true))
22
+ process_error(redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true))
23
23
  end
24
24
  end
25
25
 
@@ -27,10 +27,10 @@ module ForemanSalt
27
27
  @proxy = find_proxy(:edit_smart_proxies_salt_keys)
28
28
  key = SmartProxies::SaltKeys.find(@proxy, params[:salt_key_id])
29
29
  if key.reject
30
- process_success(:success_redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true),
31
- :success_msg => _("Key rejected for #{key}"), :object_name => key.to_s)
30
+ process_success(success_redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true),
31
+ success_msg: _("Key rejected for #{key}"), object_name: key.to_s)
32
32
  else
33
- process_error(:redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true))
33
+ process_error(redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true))
34
34
  end
35
35
  end
36
36
 
@@ -38,10 +38,10 @@ module ForemanSalt
38
38
  @proxy = find_proxy(:destroy_smart_proxies_salt_keys)
39
39
  key = SmartProxies::SaltKeys.find(@proxy, params[:id])
40
40
  if key.delete
41
- process_success(:success_redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true),
42
- :success_msg => _("Key deleted for #{key}"), :object_name => key.to_s)
41
+ process_success(success_redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true),
42
+ success_msg: _("Key deleted for #{key}"), object_name: key.to_s)
43
43
  else
44
- process_error(:redirect => hash_for_smart_proxy_salt_keys_path(:state => params[:state], :expire_cache => true))
44
+ process_error(redirect: hash_for_smart_proxy_salt_keys_path(state: params[:state], expire_cache: true))
45
45
  end
46
46
  end
47
47
 
@@ -4,11 +4,11 @@ module ForemanSalt
4
4
  include ::ForemanSalt::Concerns::SaltModuleParameters
5
5
  include StateImporter
6
6
 
7
- before_action :find_resource, :only => [:edit, :update, :destroy]
8
- before_action :find_proxy, :only => :import
7
+ before_action :find_resource, only: %i[edit update destroy]
8
+ before_action :find_proxy, only: :import
9
9
 
10
10
  def index
11
- @salt_modules = resource_base.search_for(params[:search], :order => params[:order]).includes(:salt_environments).paginate(:page => params[:page])
11
+ @salt_modules = resource_base.search_for(params[:search], order: params[:order]).includes(:salt_environments).paginate(page: params[:page])
12
12
  end
13
13
 
14
14
  def new
@@ -30,8 +30,8 @@ module ForemanSalt
30
30
  end
31
31
 
32
32
  def update
33
- if @salt_module.update_attributes(salt_module_params)
34
- success _('Successfully updated %s.' % @salt_module.to_s)
33
+ if @salt_module.update(salt_module_params)
34
+ success _("Successfully updated #{@salt_module}.")
35
35
  redirect_to salt_modules_path
36
36
  else
37
37
  process_error
@@ -62,10 +62,9 @@ module ForemanSalt
62
62
  @changes = result[:changes]
63
63
  @deletes = result[:deletes]
64
64
 
65
- if @changes.empty?
66
- info _('No changes found')
67
- redirect_to salt_modules_path
68
- end
65
+ return unless @changes.empty?
66
+ info _('No changes found')
67
+ redirect_to salt_modules_path
69
68
  end
70
69
 
71
70
  def apply_changes
@@ -75,8 +74,8 @@ module ForemanSalt
75
74
  params[:changed].each do |environment, states|
76
75
  next unless states[:add] || states[:remove]
77
76
 
78
- add_to_environment(JSON.load(states[:add]), environment) if states[:add]
79
- remove_from_environment(JSON.load(states[:remove]), environment) if states[:remove]
77
+ add_to_environment(JSON.parse(states[:add]), environment) if states[:add]
78
+ remove_from_environment(JSON.parse(states[:remove]), environment) if states[:remove]
80
79
  end
81
80
 
82
81
  clean_orphans
@@ -6,12 +6,12 @@ module ForemanSalt
6
6
  include Foreman::Controller::AutoCompleteSearch
7
7
  include ::ForemanSalt::Concerns::SaltVariableParameters
8
8
 
9
- before_action :find_resource, :only => [:edit, :update, :destroy], :if => proc { params[:id] }
9
+ before_action :find_resource, only: %i[edit update destroy], if: proc { params[:id] }
10
10
 
11
11
  def index
12
12
  @salt_variables = resource_base.search_for(params[:search],
13
- :order => params[:order]).paginate(:page => params[:page],
14
- :per_page => params[:per_page])
13
+ order: params[:order]).paginate(page: params[:page],
14
+ per_page: params[:per_page])
15
15
  end
16
16
 
17
17
  def new
@@ -33,7 +33,8 @@ module ForemanSalt
33
33
 
34
34
  private
35
35
 
36
- def default_order; end
36
+ def default_order
37
+ end
37
38
 
38
39
  def resource
39
40
  @salt_variable
@@ -10,10 +10,10 @@ module ForemanSalt
10
10
  end
11
11
 
12
12
  def fetch_states_from_proxy(proxy, environments = nil)
13
- result = { :changes => {},
14
- :deletes => [] }
13
+ result = { changes: {},
14
+ deletes: [] }
15
15
 
16
- new = ProxyAPI::Salt.new(:url => proxy.url).states_list
16
+ new = ProxyAPI::Salt.new(url: proxy.url).states_list
17
17
  old = SaltModule.to_hash
18
18
 
19
19
  environments ||= new.keys + old.keys
@@ -30,26 +30,25 @@ module ForemanSalt
30
30
  removed = []
31
31
  end
32
32
 
33
- if added.any? || removed.any?
34
- result[:changes][environment] = {}
33
+ next unless added.any? || removed.any?
34
+ result[:changes][environment] = {}
35
35
 
36
- unless removed.blank?
37
- result[:changes][environment][:remove] = removed
38
- result[:deletes] << environment if removed.count == old[environment].count && added.blank?
39
- end
40
-
41
- result[:changes][environment][:add] = added unless added.blank?
36
+ if removed.present?
37
+ result[:changes][environment][:remove] = removed
38
+ result[:deletes] << environment if removed.count == old[environment].count && added.blank?
42
39
  end
40
+
41
+ result[:changes][environment][:add] = added if added.present?
43
42
  end
44
43
 
45
44
  result
46
45
  end
47
46
 
48
47
  def add_to_environment(states, environment)
49
- environment = SaltEnvironment.where(:name => environment).first_or_create
48
+ environment = SaltEnvironment.where(name: environment).first_or_create
50
49
 
51
50
  states.each do |state_name|
52
- state = SaltModule.where(:name => state_name).first_or_create
51
+ state = SaltModule.where(name: state_name).first_or_create
53
52
  state.salt_environments << environment unless state.salt_environments.include? environment
54
53
  end
55
54
  end
@@ -5,8 +5,10 @@ module ForemanSalt
5
5
  module Overrides
6
6
  def show_appropriate_host_buttons(host)
7
7
  (super(host) +
8
- [(link_to_if_authorized(_('Salt ENC'), { :controller => :'foreman_salt/minions', :action => :node, :id => host },
9
- :title => _('Salt external nodes YAML dump'), :class => 'btn btn-default') unless host.salt_master.blank?)]).flatten.compact
8
+ [(if host.salt_master.present?
9
+ link_to_if_authorized(_('Salt ENC'), { controller: :'foreman_salt/minions', action: :node, id: host },
10
+ title: _('Salt external nodes YAML dump'), class: 'btn btn-default')
11
+ end)]).flatten.compact
10
12
  end
11
13
 
12
14
  def host_title_actions(host)
@@ -14,9 +16,9 @@ module ForemanSalt
14
16
  title_actions(
15
17
  button_group(
16
18
  if host.try(:salt_proxy)
17
- link_to_if_authorized(_('Run Salt'), { :controller => :'foreman_salt/minions', :action => :run, :id => host },
18
- :title => _('Trigger a state.highstate run on a node'), :class => 'btn btn-primary')
19
- end
19
+ link_to_if_authorized(_('Run Salt'), { controller: :'foreman_salt/minions', action: :run, id: host },
20
+ title: _('Trigger a state.highstate run on a node'), class: 'btn btn-primary')
21
+ end
20
22
  )
21
23
  )
22
24
  end
@@ -25,9 +27,11 @@ module ForemanSalt
25
27
 
26
28
  def multiple_actions
27
29
  actions = super
28
- if authorized_for(:controller => :hosts, :action => :edit)
29
- actions << [_('Change Salt Master'), select_multiple_salt_master_hosts_path] if SmartProxy.unscoped.authorized.with_features("Salt")
30
- actions << [_('Change Salt Environment'), select_multiple_salt_environment_hosts_path] if SmartProxy.unscoped.authorized.with_features("Salt")
30
+ if authorized_for(controller: :hosts, action: :edit)
31
+ actions << [_('Change Salt Master'), select_multiple_salt_master_hosts_path] if SmartProxy.unscoped.authorized.with_features('Salt')
32
+ if SmartProxy.unscoped.authorized.with_features('Salt')
33
+ actions << [_('Change Salt Environment'), select_multiple_salt_environment_hosts_path]
34
+ end
31
35
  end
32
36
  actions
33
37
  end
@@ -35,8 +39,10 @@ module ForemanSalt
35
39
  def overview_fields(host)
36
40
  fields = super(host)
37
41
 
38
- fields.insert(5, [_('Salt Master'), (link_to(host.salt_proxy, hosts_path(:search => "saltmaster = #{host.salt_proxy}")) if host.salt_proxy)])
39
- fields.insert(6, [_('Salt Environment'), (link_to(host.salt_environment, hosts_path(:search => "salt_environment = #{host.salt_environment}")) if host.salt_environment)])
42
+ fields.insert(5, [_('Salt Master'), (link_to(host.salt_proxy, hosts_path(search: "saltmaster = #{host.salt_proxy}")) if host.salt_proxy)])
43
+ fields.insert(6, [_('Salt Environment'), (if host.salt_environment
44
+ link_to(host.salt_environment, hosts_path(search: "salt_environment = #{host.salt_environment}"))
45
+ end)])
40
46
 
41
47
  fields
42
48
  end
@@ -7,8 +7,8 @@ module ForemanSalt
7
7
  actions = super
8
8
 
9
9
  if proxy.has_feature?('Salt')
10
- actions << display_link_if_authorized(_('Salt Keys'), :controller => 'foreman_salt/salt_keys', :action => 'index', :smart_proxy_id => proxy)
11
- actions << display_link_if_authorized(_('Salt Autosign'), :controller => 'foreman_salt/salt_autosign', :action => 'index', :smart_proxy_id => proxy)
10
+ actions << display_link_if_authorized(_('Salt Keys'), controller: 'foreman_salt/salt_keys', action: 'index', smart_proxy_id: proxy)
11
+ actions << display_link_if_authorized(_('Salt Autosign'), controller: 'foreman_salt/salt_autosign', action: 'index', smart_proxy_id: proxy)
12
12
  end
13
13
 
14
14
  actions
@@ -2,7 +2,8 @@ module ForemanSalt
2
2
  module SaltKeysHelper
3
3
  def salt_keys_state_filter
4
4
  select_tag 'Filter', options_for_select(['', _('Accepted'), _('Rejected'), _('Unaccepted')], params[:state]),
5
- :onchange => "window.location.href = location.protocol + '//' + location.host + location.pathname + (this.value == '' ? '' : ('?state=' + this.value))"
5
+ onchange: "window.location.href = location.protocol + '//' + " \
6
+ "location.host + location.pathname + (this.value == '' ? '' : ('?state=' + this.value))"
6
7
  end
7
8
  end
8
9
  end
@@ -2,29 +2,29 @@ module ForemanSalt
2
2
  module SaltModulesHelper
3
3
  def import_from_proxies
4
4
  links = SmartProxy.with_features('Salt').map do |proxy|
5
- display_link_if_authorized(_('Import from %s') % proxy.name, hash_for_import_salt_modules_path.merge(:proxy => proxy), :class => 'btn btn-default')
5
+ display_link_if_authorized(_('Import from %s') % proxy.name, hash_for_import_salt_modules_path.merge(proxy: proxy), class: 'btn btn-default')
6
6
  end.flatten
7
7
 
8
8
  select_action_button(_('Import'), {}, links)
9
9
  end
10
10
 
11
11
  def salt_module_select(form, persisted)
12
- blank_opt = persisted ? {} : { :include_blank => true }
12
+ blank_opt = persisted ? {} : { include_blank: true }
13
13
  select_items = persisted ? [form.object.salt_module] : SaltModule.order(:name)
14
14
  select_f form,
15
- :salt_module_id,
16
- select_items,
17
- :id,
18
- :to_label,
19
- blank_opt,
20
- :label => _('Salt State'),
21
- :disabled => persisted,
22
- :required => true
15
+ :salt_module_id,
16
+ select_items,
17
+ :id,
18
+ :to_label,
19
+ blank_opt,
20
+ label: _('Salt State'),
21
+ disabled: persisted,
22
+ required: true
23
23
  end
24
24
 
25
25
  def colorize(state)
26
26
  # Make the state easier to read
27
- combo = %w(2E9DB9 4D1D59 2C777E 1C4758 591D4B)
27
+ combo = %w[2E9DB9 4D1D59 2C777E 1C4758 591D4B]
28
28
  state.split('.').each_with_index.map do |section, index|
29
29
  "<span style='color: ##{combo[index % 5]}; font-weight: bold;'>#{section}</span>"
30
30
  end.join('.').html_safe
@@ -5,4 +5,3 @@ module ForemanSalt
5
5
  end
6
6
  end
7
7
  end
8
-
@@ -6,14 +6,14 @@ module Actions
6
6
  end
7
7
 
8
8
  def plan(job, proxy_id)
9
- plan_self(:job_id => job[:job_id], :report => job[:result], :proxy_id => proxy_id)
9
+ plan_self(job_id: job[:job_id], report: job[:result], proxy_id: proxy_id)
10
10
  end
11
11
 
12
12
  def run
13
13
  ::User.as_anonymous_admin do
14
14
  reports = ::ForemanSalt::ReportImporter.import(input[:report], input[:proxy_id])
15
15
 
16
- output[:state] = { :message => "Imported #{reports.count} new reports" }
16
+ output[:state] = { message: "Imported #{reports.count} new reports" }
17
17
  output[:hosts] = reports.map { |report| report.host.name }
18
18
  end
19
19
  end
@@ -1,47 +1,47 @@
1
1
  module ::ProxyAPI
2
2
  class Salt < ::ProxyAPI::Resource
3
3
  def initialize(args)
4
- @url = args[:url] + '/salt/'
4
+ @url = "#{args[:url]}/salt/"
5
5
  super args
6
6
  end
7
7
 
8
8
  def autosign_list
9
9
  parse(get('autosign'))
10
- rescue => e
10
+ rescue StandardError => e
11
11
  raise ProxyException.new(url, e, N_('Unable to fetch autosign list'))
12
12
  end
13
13
 
14
14
  def autosign_create(name)
15
- parse(post('', "autosign/#{URI.escape(name)}"))
16
- rescue => e
15
+ parse(post('', "autosign/#{CGI.escape(name)}"))
16
+ rescue StandardError => e
17
17
  raise ProxyException.new(url, e, N_('Unable to set Salt autosign hostname for %s'), name)
18
18
  end
19
19
 
20
20
  def autosign_remove(name)
21
- parse(delete("autosign/#{URI.escape(name)}"))
21
+ parse(delete("autosign/#{CGI.escape(name)}"))
22
22
  rescue RestClient::ResourceNotFound
23
23
  true # entry doesn't exists anyway
24
- rescue => e
24
+ rescue StandardError => e
25
25
  raise ProxyException.new(url, e, N_('Unable to delete Salt autosign hostname for %s'), name)
26
26
  end
27
27
 
28
28
  def autosign_create_key(key)
29
- parse(post('', "autosign_key/#{URI.escape(key)}"))
30
- rescue => e
29
+ parse(post('', "autosign_key/#{CGI.escape(key)}"))
30
+ rescue StandardError => e
31
31
  raise ProxyException.new(url, e, N_('Unable to create Salt autosign key %s'), key)
32
32
  end
33
33
 
34
34
  def autosign_remove_key(key)
35
- parse(delete("autosign_key/#{URI.escape(key)}"))
35
+ parse(delete("autosign_key/#{CGI.escape(key)}"))
36
36
  rescue RestClient::ResourceNotFound
37
37
  true # entry doesn't exists anyway
38
- rescue => e
38
+ rescue StandardError => e
39
39
  raise ProxyException.new(url, e, N_('Unable to delete Salt autosign key %s'), key)
40
40
  end
41
41
 
42
42
  def environments_list
43
43
  parse(get('environments'))
44
- rescue => e
44
+ rescue StandardError => e
45
45
  raise ProxyException.new(url, e, N_('Unable to fetch Salt environments list'))
46
46
  end
47
47
 
@@ -53,25 +53,25 @@ module ::ProxyAPI
53
53
  end
54
54
 
55
55
  states
56
- rescue => e
56
+ rescue StandardError => e
57
57
  raise ProxyException.new(url, e, N_('Unable to fetch Salt states list'))
58
58
  end
59
59
 
60
60
  def key_list
61
61
  parse(get('key'))
62
- rescue => e
62
+ rescue StandardError => e
63
63
  raise ProxyException.new(url, e, N_('Unable to fetch Salt key list'))
64
64
  end
65
65
 
66
66
  def key_accept(name)
67
67
  parse(post('', "key/#{name}"))
68
- rescue => e
68
+ rescue StandardError => e
69
69
  raise ProxyException.new(url, e, N_('Unable to accept Salt key for %s'), name)
70
70
  end
71
71
 
72
72
  def key_reject(name)
73
73
  parse(delete("key/reject/#{name}"))
74
- rescue => e
74
+ rescue StandardError => e
75
75
  raise ProxyException.new(url, e, N_('Unable to reject Salt key for %s'), name)
76
76
  end
77
77
 
@@ -79,13 +79,13 @@ module ::ProxyAPI
79
79
  parse(delete("key/#{name}"))
80
80
  rescue RestClient::ResourceNotFound
81
81
  true
82
- rescue => e
82
+ rescue StandardError => e
83
83
  raise ProxyException.new(url, e, N_('Unable to delete Salt key for %s'), name)
84
84
  end
85
85
 
86
86
  def highstate(name)
87
87
  parse(post('', "highstate/#{name}"))
88
- rescue => e
88
+ rescue StandardError => e
89
89
  raise ProxyException.new(url, e, N_('Unable to run Salt state.highstate for %s'), name)
90
90
  end
91
91
  end