summaryrefslogtreecommitdiffstats
path: root/lib/puppet/rails
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2009-04-24 18:08:27 -0500
committerLuke Kanies <luke@madstop.com>2009-04-24 18:08:27 -0500
commitc0b119aac7fdc1306270bbe6d1279a4b8e61a99c (patch)
tree724fdf323641c673bcc4747dcadff59ae7396985 /lib/puppet/rails
parent5ec4f66ba1e5dc8788636862d90d6521e0217e86 (diff)
downloadpuppet-c0b119aac7fdc1306270bbe6d1279a4b8e61a99c.tar.gz
puppet-c0b119aac7fdc1306270bbe6d1279a4b8e61a99c.tar.xz
puppet-c0b119aac7fdc1306270bbe6d1279a4b8e61a99c.zip
Fixing #2187 - Puppet::Resource is expected by Rails support
We previously used and expected Puppet::Parser::Resource instances, but 0.25 converts them all to Puppet::Resource instances before they're passed out of the compiler, so the Rails integration had to be changed to expect that. There's still some muddling, because the rails resources only generate parser resources, but that works for now because that's what we expect when collecting resources. Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet/rails')
-rw-r--r--lib/puppet/rails/host.rb4
-rw-r--r--lib/puppet/rails/param_value.rb11
-rw-r--r--lib/puppet/rails/resource.rb12
3 files changed, 13 insertions, 14 deletions
diff --git a/lib/puppet/rails/host.rb b/lib/puppet/rails/host.rb
index 2d00fa72b..1ddc01244 100644
--- a/lib/puppet/rails/host.rb
+++ b/lib/puppet/rails/host.rb
@@ -222,8 +222,8 @@ class Puppet::Rails::Host < ActiveRecord::Base
accumulate_benchmark("Added resources", :parameters) {
- resource.eachparam do |param|
- Puppet::Rails::ParamValue.from_parser_param(param).each do |value_hash|
+ resource.each do |param, value|
+ Puppet::Rails::ParamValue.from_parser_param(param, value).each do |value_hash|
db_resource.param_values.build(value_hash)
end
end
diff --git a/lib/puppet/rails/param_value.rb b/lib/puppet/rails/param_value.rb
index a5dbbaed4..46d7fc1fb 100644
--- a/lib/puppet/rails/param_value.rb
+++ b/lib/puppet/rails/param_value.rb
@@ -8,13 +8,12 @@ class Puppet::Rails::ParamValue < ActiveRecord::Base
belongs_to :resource
# Store a new parameter in a Rails db.
- def self.from_parser_param(param)
- values = munge_parser_values(param.value)
+ def self.from_parser_param(param, values)
+ values = munge_parser_values(values)
- param_name = Puppet::Rails::ParamName.find_or_create_by_name(param.name.to_s)
- line_number = param.line_to_i()
+ param_name = Puppet::Rails::ParamName.find_or_create_by_name(param.to_s)
return values.collect do |v|
- {:value => v, :line => line_number, :param_name => param_name}
+ {:value => v, :param_name => param_name}
end
end
@@ -24,7 +23,7 @@ class Puppet::Rails::ParamValue < ActiveRecord::Base
def self.munge_parser_values(value)
values = value.is_a?(Array) ? value : [value]
values.map do |v|
- if v.is_a?(Puppet::Parser::Resource::Reference)
+ if v.is_a?(Puppet::Resource::Reference)
v
else
v.to_s
diff --git a/lib/puppet/rails/resource.rb b/lib/puppet/rails/resource.rb
index 81505cbd4..86a26ee39 100644
--- a/lib/puppet/rails/resource.rb
+++ b/lib/puppet/rails/resource.rb
@@ -100,8 +100,8 @@ class Puppet::Rails::Resource < ActiveRecord::Base
def merge_parameters(resource)
catalog_params = {}
- resource.eachparam do |param|
- catalog_params[param.name.to_s] = param
+ resource.each do |param, value|
+ catalog_params[param.to_s] = value
end
db_params = {}
@@ -123,7 +123,7 @@ class Puppet::Rails::Resource < ActiveRecord::Base
db_params.each do |name, value_hashes|
values = value_hashes.collect { |v| v['value'] }
- unless value_compare(catalog_params[name].value, values)
+ unless value_compare(catalog_params[name], values)
value_hashes.each { |v| deletions << v['id'] }
end
end
@@ -132,12 +132,12 @@ class Puppet::Rails::Resource < ActiveRecord::Base
Puppet::Rails::ParamValue.delete(deletions) unless deletions.empty?
# Lastly, add any new parameters.
- catalog_params.each do |name, param|
+ catalog_params.each do |name, value|
next if db_params.include?(name)
- values = param.value.is_a?(Array) ? param.value : [param.value]
+ values = value.is_a?(Array) ? value : [value]
values.each do |v|
- param_values.build(:value => serialize_value(v), :line => param.line, :param_name => Puppet::Rails::ParamName.accumulate_by_name(name))
+ param_values.build(:value => serialize_value(v), :line => resource.line, :param_name => Puppet::Rails::ParamName.accumulate_by_name(name))
end
end
end