diff options
author | Markus Roberts <Markus@reality.com> | 2010-08-21 19:44:06 -0700 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2010-09-07 12:49:00 +1000 |
commit | b397b698314daae36f59751521be113cfd337095 (patch) | |
tree | 0dc6de86b33ee08e82cb6b8f18f480def33e0348 /lib/puppet | |
parent | e91a8cc975216501f764f5f2dea40d72154dc426 (diff) | |
download | puppet-b397b698314daae36f59751521be113cfd337095.tar.gz puppet-b397b698314daae36f59751521be113cfd337095.tar.xz puppet-b397b698314daae36f59751521be113cfd337095.zip |
Fix for #4489 -- apply was using the rest terminus
Basing pervasive low-level behaviour changes on the application name isn't a
good idea, but if we're going to do it we need to remember to update the test
when we rename the application. Further, if we optimize around such low-level
tests (as we did when implementing file-streaming) we need to carry the tests
over into the new data paths.
This commit addresses both of these isues, restoring 0.25.x stand-alone file
serving by adjusting the process-name test in the indirector to recognize
"apply" as standalone (and thus not use http to fetch the files) and by adding
a branch to the file streaming code to do the same when fetching the content.
I am not certain that this change is globally correct; there may be other
related problems that will not be fixed (and may in fact be exacerbated) by
this patch.
Diffstat (limited to 'lib/puppet')
-rwxr-xr-x | lib/puppet/type/file/content.rb | 2 | ||||
-rwxr-xr-x | lib/puppet/type/file/source.rb | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/puppet/type/file/content.rb b/lib/puppet/type/file/content.rb index 0d0bb5571..f5b65d3fd 100755 --- a/lib/puppet/type/file/content.rb +++ b/lib/puppet/type/file/content.rb @@ -166,6 +166,8 @@ module Puppet yield source_or_content elsif source_or_content.nil? yield read_file_from_filebucket + elsif Puppet.settings[:name] == "apply" + yield source_or_content.content elsif source_or_content.local? chunk_file_from_disk(source_or_content) { |chunk| yield chunk } else diff --git a/lib/puppet/type/file/source.rb b/lib/puppet/type/file/source.rb index 0e7aac72d..7d03de2b0 100755 --- a/lib/puppet/type/file/source.rb +++ b/lib/puppet/type/file/source.rb @@ -94,6 +94,16 @@ module Puppet metadata && metadata.checksum end + # Look up (if necessary) and return remote content. + cached_attr(:content) do + raise Puppet::DevError, "No source for content was stored with the metadata" unless metadata.source + + unless tmp = Puppet::FileServing::Content.find(metadata.source) + fail "Could not find any content at %s" % metadata.source + end + tmp.content + end + # Copy the values from the source to the resource. Yay. def copy_source_values devfail "Somehow got asked to copy source values without any metadata" unless metadata |