summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Cooper <josh@puppetlabs.com>2011-04-26 14:16:17 -0700
committerJosh Cooper <josh@puppetlabs.com>2011-04-26 14:16:17 -0700
commitddc4e148689233058827f32832195daa935a99e2 (patch)
treed2703076d0f97eb053030059e673dd957304451f
parent2cce3265885578910154854cf80ceb4d48ac631f (diff)
parentf656818bcd7cb88f24f6c578790771952120b1cc (diff)
downloadpuppet-ddc4e148689233058827f32832195daa935a99e2.tar.gz
puppet-ddc4e148689233058827f32832195daa935a99e2.tar.xz
puppet-ddc4e148689233058827f32832195daa935a99e2.zip
Merge branch 'tickets/2.6.next/4487' into 2.6.next
-rw-r--r--lib/puppet/rails/host.rb7
-rwxr-xr-xspec/unit/rails/host_spec.rb8
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/puppet/rails/host.rb b/lib/puppet/rails/host.rb
index b9dea2a3d..e5360217c 100644
--- a/lib/puppet/rails/host.rb
+++ b/lib/puppet/rails/host.rb
@@ -1,3 +1,4 @@
+require 'puppet/node/environment'
require 'puppet/rails'
require 'puppet/rails/resource'
require 'puppet/rails/fact_name'
@@ -28,6 +29,12 @@ class Puppet::Rails::Host < ActiveRecord::Base
host
end
+ # Override the setter for environment to force it to be a string, lest it
+ # be YAML encoded. See #4487.
+ def environment=(value)
+ super value.to_s
+ end
+
# returns a hash of fact_names.name => [ fact_values ] for this host.
# Note that 'fact_values' is actually a list of the value instances, not
# just actual values.
diff --git a/spec/unit/rails/host_spec.rb b/spec/unit/rails/host_spec.rb
index 4244f117f..b413a16b8 100755
--- a/spec/unit/rails/host_spec.rb
+++ b/spec/unit/rails/host_spec.rb
@@ -2,6 +2,8 @@
require File.dirname(__FILE__) + '/../../spec_helper'
+require 'puppet/node/environment'
+
describe "Puppet::Rails::Host", :if => Puppet.features.rails? do
def column(name, type)
ActiveRecord::ConnectionAdapters::Column.new(name, nil, type, false)
@@ -43,6 +45,12 @@ describe "Puppet::Rails::Host", :if => Puppet.features.rails? do
Puppet::Rails::Host.from_puppet(@node)
end
+ it "should stringify the environment" do
+ host = Puppet::Rails::Host.new
+ host.environment = Puppet::Node::Environment.new("production")
+ host.environment.class.should == String
+ end
+
it "should copy the ipaddress from the Puppet instance" do
Puppet::Rails::Host.expects(:find_by_name).with("foo").returns @host