On Oct 15, 2009, at 4:53 PM, Rein Henrichs wrote:
>
> Wrap Puppet::Settings.use in a block that disables noop mode during
> the
> execution of the block and then reenstates its original value
> afterwards. This allows internal puppet catalog operations like ssl
> directory creation to occur even when puppet is run in --noop mode.
> This
> should actually solve a broader class of related bugs.
>
> Signed-off-by: Rein Henrichs <[email protected]>
> ---
> lib/puppet/util/settings.rb | 9 ++++++++-
> spec/integration/bin/puppetmasterd.rb | 26 ++++++++++++++++++++++++
> ++
> 2 files changed, 34 insertions(+), 1 deletions(-)
>
> diff --git a/lib/puppet/util/settings.rb b/lib/puppet/util/settings.rb
> index 3e3bc7f..fb3709e 100644
> --- a/lib/puppet/util/settings.rb
> +++ b/lib/puppet/util/settings.rb
> @@ -157,6 +157,13 @@ class Puppet::Util::Settings
> set_value(str, value, :cli)
> end
>
> + def without_noop
> + old_noop = value(:noop,:cli)
> + set_value(:noop, false, :cli)
> + yield
> + set_value(:noop, old_noop, :cli)
Shouldn't this second 'set_value' be in an 'ensure' block?
> + end
> +
> def include?(name)
> name = name.intern if name.is_a? String
> @config.include?(name)
> @@ -632,7 +639,7 @@ Generated on #{Time.now}.
> return
> end
>
> - begin
> + without_noop do
> catalog.host_config = false
> catalog.apply do |transaction|
> if transaction.any_failed?
> diff --git a/spec/integration/bin/puppetmasterd.rb b/spec/
> integration/bin/puppetmasterd.rb
> index b5a3f96..5b3a29f 100755
> --- a/spec/integration/bin/puppetmasterd.rb
> +++ b/spec/integration/bin/puppetmasterd.rb
> @@ -107,4 +107,30 @@ describe "puppetmasterd" do
> end
>
> it "should exit with return code 1 after parsing if --parseonly
> is set and there are errors"
> +
> + describe "when run for the first time" do
> + before do
> + @ssldir = File.join(@dir, 'ssl')
> + FileUtils.rm_r(@ssldir) if File.exists?(@ssldir)
> + end
> +
> + describe "with noop" do
> + it "should create its ssl directory" do
> + File.directory?(@ssldir).should be_false
> + start(' --noop')
> +
> + sleep 0.5
> + File.directory?(@ssldir).should be_true
> + end
> + end
> +
> + describe "without noop" do
> + it "should create its ssl directory" do
> + File.directory?(@ssldir).should be_false
> + start
> + sleep 0.5
> + File.directory?(@ssldir).should be_true
> + end
> + end
> + end
> end
> --
> 1.6.4.2
>
>
> >
--
To be pleased with one's limits is a wretched state.
-- Johann Wolfgang von Goethe
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---