summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/indirector/node/active_record.rb6
-rwxr-xr-xspec/unit/indirector/node/active_record.rb14
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/puppet/indirector/node/active_record.rb b/lib/puppet/indirector/node/active_record.rb
index ab33af4b0..7b1ef9242 100644
--- a/lib/puppet/indirector/node/active_record.rb
+++ b/lib/puppet/indirector/node/active_record.rb
@@ -4,4 +4,10 @@ require 'puppet/node'
class Puppet::Node::ActiveRecord < Puppet::Indirector::ActiveRecord
use_ar_model Puppet::Rails::Host
+
+ def find(request)
+ node = super
+ node.fact_merge
+ node
+ end
end
diff --git a/spec/unit/indirector/node/active_record.rb b/spec/unit/indirector/node/active_record.rb
index 75a377230..1d90295cf 100755
--- a/spec/unit/indirector/node/active_record.rb
+++ b/spec/unit/indirector/node/active_record.rb
@@ -17,4 +17,18 @@ describe "Puppet::Node::ActiveRecord" do
it "should use Puppet::Rails::Host as its ActiveRecord model" do
Puppet::Node::ActiveRecord.ar_model.should equal(Puppet::Rails::Host)
end
+
+ it "should call fact_merge when a node is found" do
+ db_instance = stub 'db_instance'
+ Puppet::Node::ActiveRecord.ar_model.expects(:find_by_name).returns db_instance
+
+ node = Puppet::Node.new("foo")
+ db_instance.expects(:to_puppet).returns node
+ ar = Puppet::Node::ActiveRecord.new
+
+ node.expects(:fact_merge)
+
+ request = Puppet::Indirector::Request.new(:node, :find, "what.ever")
+ ar.find(request)
+ end
end