summaryrefslogtreecommitdiff
path: root/lib/chef/util/dsc/resource_store.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/util/dsc/resource_store.rb')
-rw-r--r--lib/chef/util/dsc/resource_store.rb139
1 files changed, 69 insertions, 70 deletions
diff --git a/lib/chef/util/dsc/resource_store.rb b/lib/chef/util/dsc/resource_store.rb
index df8cfa84ed..bb3480d105 100644
--- a/lib/chef/util/dsc/resource_store.rb
+++ b/lib/chef/util/dsc/resource_store.rb
@@ -21,90 +21,89 @@ require "chef/util/powershell/cmdlet_result"
require "chef/exceptions"
class Chef
-class Util
-class DSC
- class ResourceStore
+ class Util
+ class DSC
+ class ResourceStore
- def self.instance
- @@instance ||= ResourceStore.new.tap do |store|
- store.send(:populate_cache)
- end
- end
+ def self.instance
+ @@instance ||= ResourceStore.new.tap do |store|
+ store.send(:populate_cache)
+ end
+ end
- def resources
- @resources ||= []
- end
+ def resources
+ @resources ||= []
+ end
- def find(name, module_name=nil)
- found = find_resources(name, module_name, resources)
+ def find(name, module_name = nil)
+ found = find_resources(name, module_name, resources)
- # We don't have it, query for the resource...it might
- # have been added since we last queried
- if found.length == 0
- rs = query_resource(name)
- add_resources(rs)
- found = find_resources(name, module_name, rs)
- end
+ # We don't have it, query for the resource...it might
+ # have been added since we last queried
+ if found.length == 0
+ rs = query_resource(name)
+ add_resources(rs)
+ found = find_resources(name, module_name, rs)
+ end
- found
- end
-
- private
+ found
+ end
- def add_resource(new_r)
- count = resources.count do |r|
- r["ResourceType"].casecmp(new_r["ResourceType"]) == 0
- end
- if count == 0
- resources << new_r
- end
- end
+ private
- def add_resources(rs)
- rs.each do |r|
- add_resource(r)
- end
- end
+ def add_resource(new_r)
+ count = resources.count do |r|
+ r["ResourceType"].casecmp(new_r["ResourceType"]) == 0
+ end
+ if count == 0
+ resources << new_r
+ end
+ end
- def populate_cache
- @resources = query_resources
- end
+ def add_resources(rs)
+ rs.each do |r|
+ add_resource(r)
+ end
+ end
- def find_resources(name, module_name, rs)
- found = rs.find_all do |r|
- name_matches = r["Name"].casecmp(name) == 0
- if name_matches
- module_name == nil || (r["Module"] and r["Module"]["Name"].casecmp(module_name) == 0)
- else
- false
+ def populate_cache
+ @resources = query_resources
end
- end
- end
+ def find_resources(name, module_name, rs)
+ found = rs.find_all do |r|
+ name_matches = r["Name"].casecmp(name) == 0
+ if name_matches
+ module_name == nil || (r["Module"] and r["Module"]["Name"].casecmp(module_name) == 0)
+ else
+ false
+ end
+ end
+ end
- # Returns a list of dsc resources
- def query_resources
- cmdlet = Chef::Util::Powershell::Cmdlet.new(nil, "get-dscresource",
- :object)
- result = cmdlet.run
- result.return_value
- end
+ # Returns a list of dsc resources
+ def query_resources
+ cmdlet = Chef::Util::Powershell::Cmdlet.new(nil, "get-dscresource",
+ :object)
+ result = cmdlet.run
+ result.return_value
+ end
- # Returns a list of dsc resources matching the provided name
- def query_resource(resource_name)
- cmdlet = Chef::Util::Powershell::Cmdlet.new(nil, "get-dscresource #{resource_name}",
- :object)
- result = cmdlet.run
- ret_val = result.return_value
- if ret_val.nil?
- []
- elsif ret_val.is_a? Array
- ret_val
- else
- [ret_val]
+ # Returns a list of dsc resources matching the provided name
+ def query_resource(resource_name)
+ cmdlet = Chef::Util::Powershell::Cmdlet.new(nil, "get-dscresource #{resource_name}",
+ :object)
+ result = cmdlet.run
+ ret_val = result.return_value
+ if ret_val.nil?
+ []
+ elsif ret_val.is_a? Array
+ ret_val
+ else
+ [ret_val]
+ end
+ end
end
end
end
end
-end
-end