diff options
author | Luke Kanies <luke@madstop.com> | 2008-03-16 17:52:46 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-03-16 17:52:46 -0500 |
commit | 4a45a1da0653f18df6bd41b009a30387df697909 (patch) | |
tree | 7b1012578d560e7f5964c096f686e1108877450a /lib | |
parent | f3a304c557c096b5dbf319671cb84e5611eee30f (diff) | |
download | puppet-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.rb | 7 | ||||
-rw-r--r-- | lib/puppet/node.rb | 2 |
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 |