diff options
author | Steven Murawski <steven.murawski@gmail.com> | 2016-02-03 16:09:24 -0600 |
---|---|---|
committer | Steven Murawski <steven.murawski@gmail.com> | 2016-02-03 16:09:24 -0600 |
commit | 22d700e4a1a3c44d6d794fd5c4c1f8932a74cf17 (patch) | |
tree | 0099b47838b3425361f41076489917bab304136b /lib | |
parent | 6ebcdd04706152594fc34db06c22dadafc1e31ee (diff) | |
parent | 5291fd70df7b9360b186ff104115f080e949f5e5 (diff) | |
download | chef-22d700e4a1a3c44d6d794fd5c4c1f8932a74cf17.tar.gz |
Merge branch 'smurawski/dsc_resource_converge_logging'
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/mixin/powershell_type_coercions.rb | 2 | ||||
-rw-r--r-- | lib/chef/provider/dsc_resource.rb | 30 |
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) |