summaryrefslogtreecommitdiff
path: root/lib/chef/provider
diff options
context:
space:
mode:
authorPrajaktaPurohit <prajakta@opscode.com>2012-11-21 17:43:30 -0800
committerLamont Granquist <lamont@opscode.com>2012-12-19 15:54:41 -0800
commit6a017bf37fa8f3ce1374427942066bf81d681eca (patch)
treed327540d5820deb69809f0b4ac32e2985a7f863f /lib/chef/provider
parent8124fd3ec15fac2ed071eb1174c69cc265833e2e (diff)
downloadchef-6a017bf37fa8f3ce1374427942066bf81d681eca.tar.gz
Fixing action create provider implementation
Diffstat (limited to 'lib/chef/provider')
-rw-r--r--lib/chef/provider/registry_key.rb14
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/chef/provider/registry_key.rb b/lib/chef/provider/registry_key.rb
index 315537e035..b6ae61bb1f 100644
--- a/lib/chef/provider/registry_key.rb
+++ b/lib/chef/provider/registry_key.rb
@@ -45,8 +45,6 @@ class Chef
@current_resource.recursive(@new_resource.recursive)
if registry.key_exists?(@new_resource.key)
@current_resource.values(registry.get_values(@new_resource.key))
- else
- @current_resource.values(@new_resource.values)
end
values_to_hash(@current_resource.values)
@current_resource
@@ -58,11 +56,10 @@ class Chef
def values_to_hash(values)
if values
- @name_hash = Hash[values.map { |val| [val.delete(:name), val] }]
+ @name_hash = Hash[values.map { |val| [val[:name], val] }]
else
@name_hash = {}
end
- puts @name_hash
end
def define_resource_requirements
@@ -84,17 +81,16 @@ class Chef
end
def action_create
- if !@current_resource.key
+ if !registry.key_exists?(@current_resource.key)
registry.create_key(@new_resource.key, @new_resource.recursive)
end
@new_resource.values.each do |value|
if @name_hash.has_key?(value[:name])
- if @name_hash[value[:name]][:type] == registry.get_type_from_num(value[:type])
+ if registry.type_matches!(@new_resource.key, value)
+ # if @name_hash[value[:name]][:type] == registry.get_type_from_num(value[:type])
if @name_hash[value[:name]][:data] != value[:data]
registry.update_value(@new_resource.key, value)
end
- else
- # Raise exception that types are different
end
else
registry.create_value(@new_resource.key, value)
@@ -117,7 +113,7 @@ class Chef
# create_all_keys(@new_resource.key, @new_resource.value, architecture, create_intermediate=false)
# end
# end
-#
+
# def action_delete
# if key_exists?(@new_resource.key, @new_resource.value, architecture)
# registry_delete(@new_resource.key, @new_resource.value, architecture)