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
@@ -3,6 +3,8 @@ LDAP nodes now use the certificate name, the short name, and 'default', but external nodes just use the certificate name and any custom terminus types will use just the certificate name. + + 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 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} |
