Add command_prefix field to puppet mcagent

This will allow to run puppet with environment variables.
E.g. FACTER_foo=bar puppet apply ...

Change-Id: I1e435262e810ead46689078513607f6a99a19043
Implements: blueprint get-rid-cobbler-dnsmasq
(cherry picked from commit c734b03042)
This commit is contained in:
Vladimir Kozhukalov 2017-03-06 15:20:20 +03:00
parent 892894bfb5
commit ec4abb2573
6 changed files with 15 additions and 0 deletions

0
bindep.txt Normal file
View File

View File

@ -97,6 +97,7 @@ module Astute
:manifest => @options['puppet_manifest'],
:modules => @options['puppet_modules'],
:cwd => @options['cwd'],
:command_prefix => @options['command_prefix'],
:puppet_noop_run => @options['puppet_noop_run'],
).first
return result[:statuscode] == 0, result[:statusmsg]

View File

@ -43,6 +43,7 @@ module Astute
'retries' => Astute.config.puppet_retries,
'puppet_manifest' => '/etc/puppet/manifests/site.pp',
'puppet_modules' => Astute.config.puppet_module_path,
'command_prefix' => '',
'cwd' => Astute.config.shell_cwd,
'timeout' => Astute.config.puppet_timeout,
'debug' => false,

View File

@ -97,6 +97,15 @@ action "runonce", :description => "Invoke a single puppet run" do
:default => true,
:optional => true
input :command_prefix,
:prompt => "Puppet command prefix (allows to run puppet with variables)",
:description => "Allows to run puppet with variables (e.g. FACTER_foo=bar)",
:type => :string,
:validation => :shellsafe,
:default => '',
:optional => true,
:maxlength => 0
output :output,
:description => "Output from puppet",
:display_as => "Output"

View File

@ -202,7 +202,9 @@ module MCollective
cwd = request.fetch(:cwd, '/')
manifest = request.fetch(:manifest, '/etc/puppet/manifests/site.pp')
module_path = request.fetch(:modules, '/etc/puppet/modules')
command_prefix = request.fetch(:command_prefix, '')
cmd = [
command_prefix,
@puppetd,
"-c #{cwd}",
@puppetd_agent,

View File

@ -35,6 +35,7 @@ describe Astute::PuppetMClient do
let(:options) do
{
'cwd' => '/etc/puppet/mainfest/test',
'command_prefix' => '',
'puppet_manifest' => 'test_manifest.pp',
'puppet_noop_run' => false,
'raw_report' => true,
@ -200,6 +201,7 @@ describe Astute::PuppetMClient do
:manifest => options['puppet_manifest'],
:modules => options['puppet_modules'],
:cwd => options['cwd'],
:command_prefix => options['command_prefix'],
:puppet_noop_run => options['puppet_noop_run'],
).returns([:statuscode => 0])