[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5
Jesse Wolfe
jes5199 at gmail.com
Tue May 10 07:59:46 UTC 2011
The following commit has been merged in the experimental branch:
commit fb5f859cf4a89042a1768b6cbc2dbfc43da49c99
Author: Jesse Wolfe <jes5199 at gmail.com>
Date: Mon Nov 1 11:45:27 2010 -0700
Fix #5164 Change Facts timestamp when they are received by the master
This patch causes the puppet master to re-timestamp facts when they are
received by the catalog compiler terminus. This makes the timestamps
more trustworthy, as it means that they are all based upon the same
clock's time.
Paired-With: Paul Berry <paul at puppetlabs.com>
diff --git a/lib/puppet/indirector/catalog/compiler.rb b/lib/puppet/indirector/catalog/compiler.rb
index c50022f..1e1ae12 100644
--- a/lib/puppet/indirector/catalog/compiler.rb
+++ b/lib/puppet/indirector/catalog/compiler.rb
@@ -22,6 +22,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
else
facts = Puppet::Node::Facts.convert_from(format, text_facts)
end
+ facts.add_timestamp
facts.save
end
diff --git a/lib/puppet/node/facts.rb b/lib/puppet/node/facts.rb
index ad4b91e..d84d541 100755
--- a/lib/puppet/node/facts.rb
+++ b/lib/puppet/node/facts.rb
@@ -35,7 +35,7 @@ class Puppet::Node::Facts
@name = name
@values = values
- add_internal
+ add_timestamp
end
def downcase_if_necessary
@@ -75,13 +75,21 @@ class Puppet::Node::Facts
}.to_pson(*args)
end
- private
-
# Add internal data to the facts for storage.
- def add_internal
- self.values[:_timestamp] = Time.now
+ def add_timestamp
+ self.timestamp = Time.now
+ end
+
+ def timestamp=(time)
+ self.values[:_timestamp] = time
end
+ def timestamp
+ self.values[:_timestamp]
+ end
+
+ private
+
# Strip out that internal data.
def strip_internal
newvals = values.dup
diff --git a/spec/unit/indirector/catalog/compiler_spec.rb b/spec/unit/indirector/catalog/compiler_spec.rb
index a9c2e3e..f998080 100755
--- a/spec/unit/indirector/catalog/compiler_spec.rb
+++ b/spec/unit/indirector/catalog/compiler_spec.rb
@@ -167,12 +167,17 @@ describe Puppet::Resource::Catalog::Compiler do
@compiler.extract_facts_from_request(@request)
end
- it "should use the Facts class to deserialize the provided facts" do
+ it "should use the Facts class to deserialize the provided facts and update the timestamp" do
@request.options[:facts_format] = "foo"
@request.options[:facts] = "bar"
Puppet::Node::Facts.expects(:convert_from).returns @facts
+ @facts.timestamp = Time.parse('2010-11-01')
+ @now = Time.parse('2010-11-02')
+ Time.expects(:now).returns(@now)
+
@compiler.extract_facts_from_request(@request)
+ @facts.timestamp.should == @now
end
it "should use the provided fact format" do
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list