summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-03-16 17:52:46 -0500
committerLuke Kanies <luke@madstop.com>2008-03-16 17:52:46 -0500
commit4a45a1da0653f18df6bd41b009a30387df697909 (patch)
tree7b1012578d560e7f5964c096f686e1108877450a /lib
parentf3a304c557c096b5dbf319671cb84e5611eee30f (diff)
downloadpuppet-4a45a1da0653f18df6bd41b009a30387df697909.tar.gz
puppet-4a45a1da0653f18df6bd41b009a30387df697909.tar.xz
puppet-4a45a1da0653f18df6bd41b009a30387df697909.zip
Caching node information in yaml (I figured caching in memory will
cause ever-larger memory growth), and changing the external node terminus to use the version of the facts as their version. This will usually result in the cached node information being used, instead of always hitting the external node app during file serving. Note that if the facts aren't changed by the client, then this will result in the cached node being used, but at this point, the client always updates its facts. (#1130)
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/indirector/node/exec.rb7
-rw-r--r--lib/puppet/node.rb2
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/puppet/indirector/node/exec.rb b/lib/puppet/indirector/node/exec.rb
index 71f4fa8e1..dcfc625b2 100644
--- a/lib/puppet/indirector/node/exec.rb
+++ b/lib/puppet/indirector/node/exec.rb
@@ -24,6 +24,13 @@ class Puppet::Node::Exec < Puppet::Indirector::Exec
return create_node(name, result)
end
+ # Use the version of the facts, since we assume that's the main thing
+ # that changes. If someone wants their own way of defining version,
+ # they can easily provide their own, um, version of this class.
+ def version(name)
+ Puppet::Node::Facts.version(name)
+ end
+
private
# Turn our outputted objects into a Puppet::Node instance.
diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb
index c0628ecdc..c39f364bc 100644
--- a/lib/puppet/node.rb
+++ b/lib/puppet/node.rb
@@ -10,7 +10,7 @@ class Puppet::Node
extend Puppet::Indirector
# Use the node source as the indirection terminus.
- indirects :node, :terminus_setting => :node_terminus, :doc => "Where to find node information.
+ indirects :node, :terminus_setting => :node_terminus, :cache_class => :yaml, :doc => "Where to find node information.
A node is composed of its name, its facts, and its environment."
# Retrieve a node from the node source, with some additional munging