summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorClaire McQuin <claire@getchef.com>2015-09-08 12:20:45 -0700
committerClaire McQuin <claire@getchef.com>2015-09-08 13:24:25 -0700
commit998e13adbda5e964d2f8d17ebd8f216f752244a6 (patch)
tree6bd0c042229dca9865bc37a81a87bc1c7bf23d83 /lib
parent530119278f6a71eef4b0bf02df022218a96dcecc (diff)
downloadchef-998e13adbda5e964d2f8d17ebd8f216f752244a6.tar.gz
Skip tests unless RefreshMode is Disabled
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/platform/query_helpers.rb7
-rw-r--r--lib/chef/provider/dsc_resource.rb14
2 files changed, 12 insertions, 9 deletions
diff --git a/lib/chef/platform/query_helpers.rb b/lib/chef/platform/query_helpers.rb
index e64189fbd6..ea86ab227f 100644
--- a/lib/chef/platform/query_helpers.rb
+++ b/lib/chef/platform/query_helpers.rb
@@ -52,6 +52,13 @@ class Chef
Gem::Version.new(node[:languages][:powershell][:version]) >=
Gem::Version.new("5.0.10018.0")
end
+
+ def refresh_mode_disabled?(node)
+ require 'chef/util/powershell/cmdlet'
+ cmdlet = Chef::Util::Powershell::Cmdlet.new(node, "Get-DscLocalConfigurationManager", :object)
+ metadata = cmdlet.run!.return_value
+ metadata['RefreshMode'] == 'Disabled'
+ end
end
end
end
diff --git a/lib/chef/provider/dsc_resource.rb b/lib/chef/provider/dsc_resource.rb
index 379369ba6e..31c6c078f4 100644
--- a/lib/chef/provider/dsc_resource.rb
+++ b/lib/chef/provider/dsc_resource.rb
@@ -59,9 +59,7 @@ class Chef
a.block_action!
end
requirements.assert(:run) do |a|
- a.assertion {
- meta_configuration['RefreshMode'] == 'Disabled'
- }
+ a.assertion { refresh_mode_disabled? }
err = ["The LCM must have its RefreshMode set to Disabled. "]
a.failure_message Chef::Exceptions::ProviderNotFound, err.join(' ')
a.whyrun err + ["Assuming a previous resource sets the RefreshMode."]
@@ -85,6 +83,10 @@ class Chef
def supports_dsc_invoke_resource?
run_context && Chef::Platform.supports_dsc_invoke_resource?(node)
end
+
+ def refresh_mode_disabled?
+ Chef::Platform.refresh_mode_disabled?(node)
+ end
def generate_description
@converge_description
@@ -153,12 +155,6 @@ class Chef
cmdlet.run!
end
- def meta_configuration
- cmdlet = Chef::Util::Powershell::Cmdlet.new(node, "Get-DscLocalConfigurationManager", :object)
- result = cmdlet.run!
- result.return_value
- end
-
end
end
end