diff options
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | lib/puppet/indirector/node/exec.rb | 7 | ||||
-rwxr-xr-x | spec/unit/indirector/node/exec.rb | 6 |
3 files changed, 15 insertions, 0 deletions
@@ -1,3 +1,5 @@ + Fixed #1201 - all external node attributes are converted to strings. + Adding a ResourceTemplate class for using templates directly within resources (i.e., client-side templates). This would really only be used for composite resources that pass the results of the diff --git a/lib/puppet/indirector/node/exec.rb b/lib/puppet/indirector/node/exec.rb index 52cbc370c..029a35c4f 100644 --- a/lib/puppet/indirector/node/exec.rb +++ b/lib/puppet/indirector/node/exec.rb @@ -30,6 +30,13 @@ class Puppet::Node::Exec < Puppet::Indirector::Exec def create_node(name, result) node = Puppet::Node.new(name) set = false + if current = result[:parameters] + result[:parameters] = current.inject({}) do |strings, ary| + param, value = ary + strings[param] = value.to_s + strings + end + end [:parameters, :classes, :environment].each do |param| if value = result[param] node.send(param.to_s + "=", value) diff --git a/spec/unit/indirector/node/exec.rb b/spec/unit/indirector/node/exec.rb index 09f13ab90..2276e4298 100755 --- a/spec/unit/indirector/node/exec.rb +++ b/spec/unit/indirector/node/exec.rb @@ -49,6 +49,12 @@ describe Puppet::Node::Exec do @searcher.find(@request) end + it "should convert all parameters into strings" do + @result[:parameters] = {"a" => true, "c" => 100} + @node.expects(:parameters=).with "a" => "true", "c" => "100" + @searcher.find(@request) + end + it "should set the resulting classes as the node classes" do @result[:classes] = %w{one two} @node.expects(:classes=).with %w{one two} |