diff options
-rw-r--r-- | lib/puppet/indirector/catalog/active_record.rb | 5 | ||||
-rwxr-xr-x | spec/unit/indirector/catalog/active_record.rb | 21 |
2 files changed, 25 insertions, 1 deletions
diff --git a/lib/puppet/indirector/catalog/active_record.rb b/lib/puppet/indirector/catalog/active_record.rb index e3b56ece6..575ce72fb 100644 --- a/lib/puppet/indirector/catalog/active_record.rb +++ b/lib/puppet/indirector/catalog/active_record.rb @@ -30,6 +30,11 @@ class Puppet::Resource::Catalog::ActiveRecord < Puppet::Indirector::ActiveRecord host.merge_resources(catalog.vertices) host.last_compile = Time.now + if node = Puppet::Node.find(catalog.name) + host.ip = node.parameters["ipaddress"] + host.environment = node.environment + end + host.save end end diff --git a/spec/unit/indirector/catalog/active_record.rb b/spec/unit/indirector/catalog/active_record.rb index 463552f55..8678dd6b3 100755 --- a/spec/unit/indirector/catalog/active_record.rb +++ b/spec/unit/indirector/catalog/active_record.rb @@ -76,9 +76,12 @@ describe "Puppet::Resource::Catalog::ActiveRecord" do describe "when saving an instance" do before do - @host = stub 'host', :name => "foo", :save => nil, :merge_resources => nil, :last_compile= => nil + @host = stub 'host', :name => "foo", :save => nil, :merge_resources => nil, :last_compile= => nil, :ip= => nil, :environment= => nil @host.stubs(:railsmark).yields + @node = stub_everything 'node', :parameters => {} + Puppet::Node.stubs(:find).returns(@node) + Puppet::Rails::Host.stubs(:find_by_name).returns @host @catalog = Puppet::Resource::Catalog.new("foo") @request = stub 'request', :key => "foo", :instance => @catalog @@ -105,6 +108,22 @@ describe "Puppet::Resource::Catalog::ActiveRecord" do @terminus.save(@request) end + it "should set host ip if we could find a matching node" do + @node.stubs(:parameters).returns({"ipaddress" => "192.168.0.1"}) + + @host.expects(:ip=).with '192.168.0.1' + + @terminus.save(@request) + end + + it "should set host environment if we could find a matching node" do + @node.stubs(:environment).returns("myenv") + + @host.expects(:environment=).with 'myenv' + + @terminus.save(@request) + end + it "should set the last compile time on the host" do now = Time.now Time.expects(:now).returns now |