summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteven Murawski <steven.murawski@gmail.com>2016-02-03 16:09:24 -0600
committerSteven Murawski <steven.murawski@gmail.com>2016-02-03 16:09:24 -0600
commit22d700e4a1a3c44d6d794fd5c4c1f8932a74cf17 (patch)
tree0099b47838b3425361f41076489917bab304136b /lib
parent6ebcdd04706152594fc34db06c22dadafc1e31ee (diff)
parent5291fd70df7b9360b186ff104115f080e949f5e5 (diff)
downloadchef-22d700e4a1a3c44d6d794fd5c4c1f8932a74cf17.tar.gz
Merge branch 'smurawski/dsc_resource_converge_logging'
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/mixin/powershell_type_coercions.rb2
-rw-r--r--lib/chef/provider/dsc_resource.rb30
2 files changed, 20 insertions, 12 deletions
diff --git a/lib/chef/mixin/powershell_type_coercions.rb b/lib/chef/mixin/powershell_type_coercions.rb
index 9076b1ce3e..60c04e85ae 100644
--- a/lib/chef/mixin/powershell_type_coercions.rb
+++ b/lib/chef/mixin/powershell_type_coercions.rb
@@ -29,6 +29,8 @@ class Chef
TrueClass => { :type => lambda { |x| "$true" }},
Hash => {:type => Proc.new { |x| translate_hash(x)}},
Array => {:type => Proc.new { |x| translate_array(x)}},
+ Chef::Node::ImmutableMash => {:type => Proc.new { |x| translate_hash(x)}},
+ Chef::Node::ImmutableArray => {:type => Proc.new { |x| translate_array(x)}},
}
end
diff --git a/lib/chef/provider/dsc_resource.rb b/lib/chef/provider/dsc_resource.rb
index 56f6d7a6d9..1f6a8f0ef6 100644
--- a/lib/chef/provider/dsc_resource.rb
+++ b/lib/chef/provider/dsc_resource.rb
@@ -122,25 +122,31 @@ class Chef
def test_resource
result = invoke_resource(:test)
- @converge_description = result.stream(:verbose)
-
- # We really want this information from the verbose stream,
- # however in some versions of WMF, Invoke-DscResource is not correctly
- # writing to that stream and instead just dumping to stdout
- if @converge_description.empty?
- @converge_description = result.stdout
- end
-
+ add_dsc_verbose_log(result)
return_dsc_resource_result(result, "InDesiredState")
end
def set_resource
result = invoke_resource(:set)
- if return_dsc_resource_result(result, "RebootRequired")
- create_reboot_resource
- end
+ add_dsc_verbose_log(result)
+ create_reboot_resource if return_dsc_resource_result(result, "RebootRequired")
result.return_value
end
+
+ def add_dsc_verbose_log(result)
+ # We really want this information from the verbose stream,
+ # however in some versions of WMF, Invoke-DscResource is not correctly
+ # writing to that stream and instead just dumping to stdout
+ verbose_output = result.stream(:verbose)
+ verbose_output = result.stdout if verbose_output.empty?
+
+ if @converge_description.nil? || @converge_description.empty?
+ @converge_description = verbose_output
+ else
+ @converge_description << "\n"
+ @converge_description << verbose_output
+ end
+ end
def invoke_resource(method, output_format=:object)
properties = translate_type(@new_resource.properties)