summaryrefslogtreecommitdiff
path: root/lib/chef/platform
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-04-11 12:48:22 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-04-15 17:50:15 -0700
commite3a6565927e854cd5968bd3a6bd2248ec1245549 (patch)
tree590bfa3f9c3a4992096c0ccb679fcc7deda74243 /lib/chef/platform
parenta959404b15ba6bdc98063cfa0c70e6f9eec9ccee (diff)
downloadchef-e3a6565927e854cd5968bd3a6bd2248ec1245549.tar.gz
add resource_resolver and resource_priority_map
also wire them up through the Chef class.
Diffstat (limited to 'lib/chef/platform')
-rw-r--r--lib/chef/platform/provider_priority_map.rb23
-rw-r--r--lib/chef/platform/resource_priority_map.rb37
2 files changed, 53 insertions, 7 deletions
diff --git a/lib/chef/platform/provider_priority_map.rb b/lib/chef/platform/provider_priority_map.rb
index 2517f46dfd..1539f61900 100644
--- a/lib/chef/platform/provider_priority_map.rb
+++ b/lib/chef/platform/provider_priority_map.rb
@@ -1,6 +1,4 @@
-require 'chef/providers'
-
class Chef
class Platform
class ProviderPriorityMap
@@ -10,7 +8,22 @@ class Chef
load_default_map
end
+ def get_priority_array(node, resource_name)
+ priority_map.get(node, resource_name.to_sym)
+ end
+
+ def set_priority_array(resource_name, priority_array, *filter)
+ priority(resource_name.to_sym, priority_array.to_a, *filter)
+ end
+
+ def priority(*args)
+ priority_map.set(*args)
+ end
+
+ private
+
def load_default_map
+ require 'chef/providers'
#
# Linux
@@ -71,13 +84,9 @@ class Chef
end
def priority_map
+ require 'chef/node_map'
@priority_map ||= Chef::NodeMap.new
end
-
- def priority(*args)
- priority_map.set(*args)
- end
-
end
end
end
diff --git a/lib/chef/platform/resource_priority_map.rb b/lib/chef/platform/resource_priority_map.rb
new file mode 100644
index 0000000000..fc43b3e7db
--- /dev/null
+++ b/lib/chef/platform/resource_priority_map.rb
@@ -0,0 +1,37 @@
+class Chef
+ class Platform
+ class ResourcePriorityMap
+ include Singleton
+
+ def initialize
+ load_default_map
+ end
+
+ def get_priority_array(node, resource_name)
+ priority_map.get(node, resource_name.to_sym)
+ end
+
+ def set_priority_array(resource_name, priority_array, *filter)
+ priority resource_name.to_sym, priority_array.to_a, *filter
+ end
+
+ def priority(*args)
+ priority_map.set(*args)
+ end
+
+ private
+
+ def load_default_map
+ require 'chef/resources'
+
+ # MacOSX
+ priority :package, Chef::Resource::HomebrewPackage, os: "darwin"
+ end
+
+ def priority_map
+ require 'chef/node_map'
+ @priority_map ||= Chef::NodeMap.new
+ end
+ end
+ end
+end