foreman_salt 10.3.1 → 11.0.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.
- checksums.yaml +4 -4
- data/app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb +9 -7
- data/app/models/setting/salt.rb +3 -1
- data/app/views/foreman_salt/job_templates/salt_run_function_-_ssh_default.erb +23 -0
- data/app/views/foreman_salt/job_templates/salt_run_state_highstate_-_ssh_default.erb +14 -0
- data/db/seeds.d/76-job_templates.rb +20 -0
- data/lib/foreman_salt/engine.rb +5 -0
- data/lib/foreman_salt/plugin.rb +9 -0
- data/lib/foreman_salt/version.rb +1 -1
- data/test/integration/hosts_js_test.rb +17 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 237aa18aa45a9c6138228eb0149eff14f13f9cfae8fbab62300feaa4b887e67e
|
4
|
+
data.tar.gz: 683c9bbb3f7db41096c7cd7110bbe2e2d385ea3c54083ad3b80908f5a53d7c36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4f535cfb2bf52e8f32ae4a6041c7aae31599103916bb9248656bd433261c30383d4cc1892536f84006df10ff4232bdad941c748731c7c340d7949afc41d4b97
|
7
|
+
data.tar.gz: 84961ea84824648272a657042422694ac658ed87d7fc120e235608430d6a5f6873b0f62df46023adfabad0ddc69adab294486626adb9f241839a4e2a2332f624
|
@@ -10,14 +10,16 @@ module ForemanSalt
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def host_title_actions(host)
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
unless Setting[:salt_hide_run_salt_button]
|
14
|
+
title_actions(
|
15
|
+
button_group(
|
16
|
+
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
|
20
|
+
)
|
19
21
|
)
|
20
|
-
|
22
|
+
end
|
21
23
|
super(host)
|
22
24
|
end
|
23
25
|
|
data/app/models/setting/salt.rb
CHANGED
@@ -4,8 +4,10 @@ class Setting::Salt < Setting
|
|
4
4
|
|
5
5
|
transaction do
|
6
6
|
[
|
7
|
-
set('salt_namespace_pillars', N_("Namespace Foreman pillars under 'foreman' key"), false)
|
7
|
+
set('salt_namespace_pillars', N_("Namespace Foreman pillars under 'foreman' key"), false),
|
8
|
+
set('salt_hide_run_salt_button', N_("Hide the Run Salt state.highstate button on the host details page"), false)
|
8
9
|
].each { |s| self.create! s.update(:category => 'Setting::Salt') }
|
10
|
+
Setting['salt_hide_run_salt_button'] = true if ForemanSalt.with_remote_execution?
|
9
11
|
end
|
10
12
|
true
|
11
13
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%#
|
2
|
+
name: Salt Run function - SSH default
|
3
|
+
job_category: Salt
|
4
|
+
description_format: Run Salt function on host
|
5
|
+
provider_type: SSH
|
6
|
+
snippet: false
|
7
|
+
template_inputs:
|
8
|
+
- name: function
|
9
|
+
required: true
|
10
|
+
input_type: user
|
11
|
+
description: "Salt function to run on the host, e.g: \r\n\r\ncmd.run 'df -h'"
|
12
|
+
advanced: false
|
13
|
+
- name: test-run
|
14
|
+
required: false
|
15
|
+
input_type: user
|
16
|
+
description: Enables test run
|
17
|
+
options: "no\r\nyes"
|
18
|
+
advanced: true
|
19
|
+
kind: job_template
|
20
|
+
%>
|
21
|
+
|
22
|
+
salt-call <%= input('function') %> \
|
23
|
+
<%= ' test=true' if !input('test-run').blank? && input('test-run') == 'yes' -%>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%#
|
2
|
+
name: Salt Run state.highstate - SSH default
|
3
|
+
job_category: Salt
|
4
|
+
description_format: Run Salt state.highstate on host
|
5
|
+
feature: foreman_salt_run_state_highstate
|
6
|
+
provider_type: SSH
|
7
|
+
snippet: false
|
8
|
+
foreign_input_sets:
|
9
|
+
- template: Salt Run function - SSH default
|
10
|
+
exclude: function
|
11
|
+
kind: job_template
|
12
|
+
%>
|
13
|
+
|
14
|
+
<%= render_template('Salt Run function - SSH default', :function => 'state.highstate') %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
organizations = Organization.unscoped.all
|
4
|
+
locations = Location.unscoped.all
|
5
|
+
if ForemanSalt.with_remote_execution?
|
6
|
+
User.as_anonymous_admin do
|
7
|
+
JobTemplate.without_auditing do
|
8
|
+
Dir[File.join("#{ForemanSalt::Engine.root}/app/views/foreman_salt/"\
|
9
|
+
'job_templates/**/*.erb')].each do |template|
|
10
|
+
sync = !Rails.env.test? && Setting[:remote_execution_sync_templates]
|
11
|
+
template = JobTemplate.import_raw!(File.read(template),
|
12
|
+
:default => true,
|
13
|
+
:locked => true,
|
14
|
+
:update => sync)
|
15
|
+
template.organizations = organizations if SETTINGS[:organizations_enabled] && template.present?
|
16
|
+
template.locations = locations if SETTINGS[:locations_enabled] && template.present?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/foreman_salt/engine.rb
CHANGED
data/lib/foreman_salt/plugin.rb
CHANGED
@@ -144,5 +144,14 @@ Foreman::Plugin.register :foreman_salt do
|
|
144
144
|
parameter_filter Host::Managed, :salt_proxy_id, :salt_proxy_name,
|
145
145
|
:salt_environment_id, :salt_environment_name, :salt_modules => [],
|
146
146
|
:salt_module_ids => []
|
147
|
+
|
148
|
+
if ForemanSalt.with_remote_execution? && Gem::Version.new(ForemanRemoteExecution::VERSION) >= Gem::Version.new('1.2.3')
|
149
|
+
options = {
|
150
|
+
:description => N_("Run Salt state.highstate"),
|
151
|
+
:host_action_button => true
|
152
|
+
}
|
153
|
+
|
154
|
+
RemoteExecutionFeature.register(:foreman_salt_run_state_highstate, N_("Run Salt"), options)
|
155
|
+
end
|
147
156
|
end
|
148
157
|
# rubocop:enable BlockLength
|
data/lib/foreman_salt/version.rb
CHANGED
@@ -16,6 +16,23 @@ module ForemanSalt
|
|
16
16
|
proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
|
17
17
|
salt_environment = FactoryBot.create(:salt_environment)
|
18
18
|
@host = FactoryBot.create(:host, :salt_proxy => proxy, :salt_environment => salt_environment)
|
19
|
+
Setting::Salt.load_defaults
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "hosts details run salt button" do
|
24
|
+
test "verify run salt button availabilty" do
|
25
|
+
Setting[:salt_hide_run_salt_button] = false
|
26
|
+
visit hosts_path
|
27
|
+
click_link @host.fqdn
|
28
|
+
assert page.has_link?("Run Salt")
|
29
|
+
end
|
30
|
+
|
31
|
+
test "verify run salt button absence" do
|
32
|
+
Setting[:salt_hide_run_salt_button] = true
|
33
|
+
visit hosts_path
|
34
|
+
click_link @host.fqdn
|
35
|
+
assert_not page.has_link?("Run Salt")
|
19
36
|
end
|
20
37
|
end
|
21
38
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_salt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 11.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Benjamin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deface
|
@@ -114,6 +114,8 @@ files:
|
|
114
114
|
- app/views/foreman_salt/api/v2/salt_states/index.json.rabl
|
115
115
|
- app/views/foreman_salt/api/v2/salt_states/main.json.rabl
|
116
116
|
- app/views/foreman_salt/api/v2/salt_states/show.json.rabl
|
117
|
+
- app/views/foreman_salt/job_templates/salt_run_function_-_ssh_default.erb
|
118
|
+
- app/views/foreman_salt/job_templates/salt_run_state_highstate_-_ssh_default.erb
|
117
119
|
- app/views/foreman_salt/salt_autosign/_form.html.erb
|
118
120
|
- app/views/foreman_salt/salt_autosign/index.html.erb
|
119
121
|
- app/views/foreman_salt/salt_autosign/new.html.erb
|
@@ -142,6 +144,7 @@ files:
|
|
142
144
|
- db/migrate/20150509101505_add_primary_keys.rb
|
143
145
|
- db/migrate/20161103104146_add_index_to_join_tables.rb
|
144
146
|
- db/seeds.d/75-salt_seeds.rb
|
147
|
+
- db/seeds.d/76-job_templates.rb
|
145
148
|
- lib/foreman_salt.rb
|
146
149
|
- lib/foreman_salt/engine.rb
|
147
150
|
- lib/foreman_salt/extensions.rb
|