[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. puppet-0.24.5-rc3-1601-gf8c1b08

James Turnbull james at lovedthanlost.net
Fri Jan 15 09:06:57 UTC 2010


The following commit has been merged in the upstream branch:
commit cb3e5e10d76a4a0f44e16c5bf36c69b65ae18fbb
Author: Brice Figureau <brice-puppet at daysofwonder.com>
Date:   Thu Nov 5 20:20:35 2009 +0100

    Fix #2787 - Storeconfig doesn't store/update node ip and environment anymore
    
    Since the storeconfig refactoring (ie moving the catalog storeconfig
    system under the indirector) in 0.25 we lost the capability to
    store the node ip and node environment name.
    This patch restores this feature.
    
    Signed-off-by: Brice Figureau <brice-puppet at daysofwonder.com>

diff --git a/lib/puppet/indirector/catalog/active_record.rb b/lib/puppet/indirector/catalog/active_record.rb
index e3b56ec..575ce72 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 463552f..8678dd6 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

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list