-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I disagree.

Look at the concat module. Why waste resources checksumming when it
would be more efficient to just write out the file?

Read + Checksum + (potential) Write is more I/O and CPU intensive than
Write.

Trevor

On 12/16/2010 07:25 PM, Nigel Kersten wrote:
> 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
>>>> -        @summer.send(sum.to_s + "_stream").should be_nil
>>>> +        expectation = stub "expectation"
>>>> +        expectation.expects(:do_something!).at_least_once
>>>> +        @summer.send(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
>>>> +      @summer.none_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.
>>
> 
> 
> 

- -- 
Trevor Vaughan
 Vice President, Onyx Point, Inc.
 email: [email protected]
 phone: 410-541-ONYX (6699)
 pgp: 0x6C701E94

- -- This account not approved for unencrypted sensitive information --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJNCt2wAAoJECNCGV1OLcypTUUH/2u7rEHoqZAkjelGMk2+foJC
nyPIRS3bC5Tar6j29PFbyOJgH63+Y85g0a1tz6PU5U63Hi43EbapnSrqMq+UCzpc
oAlaFe1vaLXm9V6Bab8XS1w33VEHBHpaGTe/0HTUj9sPVrWqIlLa38MLQvtyOokV
eYaybLBgQpAbfYCl8H/8+4GrxcaMFD0JM7G84XMB2DJhLBEGe04lEHvP5rxC260G
Mm6ofMQUREktKyrHAYqPlXEVKstKrjlyzKHEXiLRrtoV12PicPs9FlIK3ChSNsgz
aId9Nl9Y5UAYu9NBiFSu0CpawkxSBlS8tFoIOLHJq1DWHbKiyWsqB0oHjrA6mDo=
=j/ll
-----END PGP SIGNATURE-----

-- 
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.

<<attachment: tvaughan.vcf>>

Reply via email to