summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2019-07-23 12:53:43 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2019-07-23 12:53:43 -0700
commite58646425f4baf0156beb49868b8b15c4fe8f2e7 (patch)
tree0e1fd34e52880855542c358a6741753303fe1add
parentc02307aeafb5ccaf7778196acd99b4eb89ce472d (diff)
downloadchef-lcg/resource_reporter_duration_bugfix.tar.gz
Duration field in resource report needs to be Stringlcg/resource_reporter_duration_bugfix
Somehow this got converted to a bare integer in Chef-15 refactoring which causes the server-side to reject it, so reverting back to the old format. Closes #8532 Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r--lib/chef/resource_reporter.rb2
-rw-r--r--spec/unit/resource_reporter_spec.rb2
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/chef/resource_reporter.rb b/lib/chef/resource_reporter.rb
index e63459388d..bbb4fa2e83 100644
--- a/lib/chef/resource_reporter.rb
+++ b/lib/chef/resource_reporter.rb
@@ -35,7 +35,7 @@ class Chef
as_hash["id"] = new_resource.identity.to_s
as_hash["after"] = new_resource.state_for_resource_reporter
as_hash["before"] = current_resource ? current_resource.state_for_resource_reporter : {}
- as_hash["duration"] = ( action_record.elapsed_time * 1000 ).to_i
+ as_hash["duration"] = ( action_record.elapsed_time * 1000 ).to_i.to_s
as_hash["delta"] = new_resource.diff if new_resource.respond_to?("diff")
as_hash["delta"] = "" if as_hash["delta"].nil?
diff --git a/spec/unit/resource_reporter_spec.rb b/spec/unit/resource_reporter_spec.rb
index a2ae786bb4..1d7fd7fc79 100644
--- a/spec/unit/resource_reporter_spec.rb
+++ b/spec/unit/resource_reporter_spec.rb
@@ -447,6 +447,7 @@ describe Chef::ResourceReporter do
# TODO: API takes integer number of milliseconds as a string. This
# should be an int.
expect(@first_update_report).to have_key("duration")
+ expect(@first_update_report["duration"]).to be_kind_of(String)
expect(@first_update_report["duration"].to_i).to be_within(100).of(0)
end
@@ -585,6 +586,7 @@ describe Chef::ResourceReporter do
# TODO: API takes integer number of milliseconds as a string. This
# should be an int.
expect(@first_update_report).to have_key("duration")
+ expect(@first_update_report["duration"]).to be_kind_of(String)
expect(@first_update_report["duration"].to_i).to be_within(100).of(0)
end