On Thu, Dec 16, 2010 at 2:55 PM, Jesse A Wolfe <[email protected]> wrote: > >> What's the behavior with this patch when checksum=none and specifying a >> source or content? How does the system compare the current file to the >> desired file? > > It overwrites the file every time. That might not be the most desirable > behavior, but it's more correct than *truncating* the file every time.
Note that we changed the desired behavior to fail with a syntax error instead. It doesn't make sense to not checksum and specify content/source. > >> >> On Dec 16, 2010, at 2:41 PM, Jesse Wolfe wrote: >> >> > The #write method in lib/puppet/type/file/content.rb relies on the block >> > passed to #sum_stream getting executed. "none", "mtime", and "ctime" >> > aren't real checksums, so they violated that assumption and just >> > returned empty results. This patch causes that block to get executed. >> > >> > Signed-off-by: Jesse Wolfe <[email protected]> >> > --- >> > lib/puppet/util/checksums.rb | 11 +++++++++++ >> > spec/unit/util/checksums_spec.rb | 10 +++++++++- >> > 2 files changed, 20 insertions(+), 1 deletions(-) >> > >> > diff --git a/lib/puppet/util/checksums.rb b/lib/puppet/util/checksums.rb >> > index 5aebd83..6fdf14e 100644 >> > --- a/lib/puppet/util/checksums.rb >> > +++ b/lib/puppet/util/checksums.rb >> > @@ -1,6 +1,12 @@ >> > # A stand-alone module for calculating checksums >> > # in a generic way. >> > module Puppet::Util::Checksums >> > + class FakeChecksum >> > + def <<(*args) >> > + self >> > + end >> > + end >> > + >> > # Is the provided string a checksum? >> > def checksum?(string) >> > string =~ /^\{(\w{3,5})\}\S+/ >> > @@ -55,7 +61,10 @@ module Puppet::Util::Checksums >> > end >> > >> > # by definition this doesn't exist >> > + # but we still need to execute the block given >> > def mtime_stream >> > + noop_digest = FakeChecksum.new >> > + yield noop_digest >> > nil >> > end >> > >> > @@ -105,6 +114,8 @@ module Puppet::Util::Checksums >> > end >> > >> > def none_stream >> > + noop_digest = FakeChecksum.new >> > + yield noop_digest >> > "" >> > end >> > >> > diff --git a/spec/unit/util/checksums_spec.rb >> > b/spec/unit/util/checksums_spec.rb >> > index e018581..a8bc12b 100755 >> > --- a/spec/unit/util/checksums_spec.rb >> > +++ b/spec/unit/util/checksums_spec.rb >> > @@ -140,7 +140,9 @@ describe Puppet::Util::Checksums do >> > end >> > >> > it "should return nil for streams" do >> > - �[email protected](sum.to_s + "_stream").should be_nil >> > + expectation = stub "expectation" >> > + expectation.expects(:do_something!).at_least_once >> > + �[email protected](sum.to_s + "_stream"){ |checksum| checksum << >> > "anything" ; expectation.do_something! }.should be_nil >> > end >> > end >> > end >> > @@ -149,5 +151,11 @@ describe Puppet::Util::Checksums do >> > it "should return an empty string" do >> > @summer.none_file("/my/file").should == "" >> > end >> > + >> > + it "should return an empty string for streams" do >> > + expectation = stub "expectation" >> > + expectation.expects(:do_something!).at_least_once >> > + �[email protected]_stream{ |checksum| checksum << "anything" ; >> > expectation.do_something! }.should == "" >> > + end >> > end >> > end >> > -- >> > 1.7.0.4 >> > >> > -- >> > 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. >> > >> >> >> -- >> If you can't be a good example, then you'll just have to be a >> horrible warning. -- Catherine Aird >> --------------------------------------------------------------------- >> Luke Kanies -|- http://puppetlabs.com -|- +1(615)594-8199 >> >> >> >> >> -- >> 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. >> > > -- > 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. > -- Nigel Kersten - Puppet Labs - http://www.puppetlabs.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.
