summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Running <jrunning@gmail.com>2016-03-18 13:38:43 -0500
committerJordan Running <jrunning@gmail.com>2016-03-18 13:38:43 -0500
commit93dc2cb77c40f82238b962c1d371618a5fb1fffa (patch)
tree54f1f038a2c910104728b68b4655d92163b5fec2
parent559ce1da6ce142ebfb553f1124ab9e86a68709a8 (diff)
parent74a3e638780a6f569fbfd1179cd3242dd21383cb (diff)
downloadchef-93dc2cb77c40f82238b962c1d371618a5fb1fffa.tar.gz
Merge pull request #4714 from chef/cd/log-platform
Log platform along with client version and pid.
-rw-r--r--lib/chef/client.rb1
-rw-r--r--lib/chef/formatters/base.rb2
-rw-r--r--lib/chef/formatters/error_description.rb (renamed from lib/chef/formatters/error_descriptor.rb)2
-rw-r--r--spec/unit/formatters/error_description_spec.rb96
4 files changed, 100 insertions, 1 deletions
diff --git a/lib/chef/client.rb b/lib/chef/client.rb
index 8ca0fd5e89..48d7c447cc 100644
--- a/lib/chef/client.rb
+++ b/lib/chef/client.rb
@@ -256,6 +256,7 @@ class Chef
run_context = nil
events.run_start(Chef::VERSION)
Chef::Log.info("*** Chef #{Chef::VERSION} ***")
+ Chef::Log.info("Platform: #{RUBY_PLATFORM}")
Chef::Log.info "Chef-client pid: #{Process.pid}"
Chef::Log.debug("Chef-client request_id: #{request_id}")
enforce_path_sanity
diff --git a/lib/chef/formatters/base.rb b/lib/chef/formatters/base.rb
index 90925ffdb4..3641e619e9 100644
--- a/lib/chef/formatters/base.rb
+++ b/lib/chef/formatters/base.rb
@@ -19,7 +19,7 @@
require "chef/event_dispatch/base"
require "chef/formatters/error_inspectors"
-require "chef/formatters/error_descriptor"
+require "chef/formatters/error_description"
require "chef/formatters/error_mapper"
require "chef/formatters/indentable_output_stream"
diff --git a/lib/chef/formatters/error_descriptor.rb b/lib/chef/formatters/error_description.rb
index 1a40f785cb..8d7f940181 100644
--- a/lib/chef/formatters/error_descriptor.rb
+++ b/lib/chef/formatters/error_description.rb
@@ -39,11 +39,13 @@ class Chef
out.puts @title, :red
out.puts "=" * 80
out.puts "\n"
+
sections.each do |section|
section.each do |heading, text|
display_section(heading, text, out)
end
end
+ display_section("Platform:", RUBY_PLATFORM, out)
end
def for_json()
diff --git a/spec/unit/formatters/error_description_spec.rb b/spec/unit/formatters/error_description_spec.rb
new file mode 100644
index 0000000000..8b088308fa
--- /dev/null
+++ b/spec/unit/formatters/error_description_spec.rb
@@ -0,0 +1,96 @@
+#
+# Author:: Jordan Running (<jr@chef.io>)
+#
+# Copyright:: Copyright 2015-2016, Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require "spec_helper"
+
+describe Chef::Formatters::ErrorDescription do
+ let(:title) { "test title" }
+
+ let(:out) { Chef::Formatters::IndentableOutputStream.new(StringIO.new, STDERR) }
+
+ let(:section_heading) { "test heading" }
+ let(:section_text) { "test text" }
+
+ subject { Chef::Formatters::ErrorDescription.new(title) }
+
+ describe "#sections" do
+ context "when no sections have been added" do
+ it "should return an empty array" do
+ expect(subject.sections).to eq []
+ end
+ end
+
+ context "when a section has been added" do
+ before do
+ subject.section(section_heading, section_text)
+ end
+
+ it "should return an array with the added section as a hash" do
+ expect(subject.sections).to eq [ { section_heading => section_text } ]
+ end
+ end
+ end
+
+ describe "#display" do
+ before do
+ stub_const("RUBY_PLATFORM", "ruby-foo-9000")
+ end
+
+ context "when no sections have been added" do
+ it "should output only the title and the Platform section" do
+ subject.display(out)
+ expect(out.out.string).to eq <<-END
+================================================================================
+test title
+================================================================================
+
+Platform:
+---------
+ruby-foo-9000
+
+ END
+ end
+ end
+
+ context "when a section has been added" do
+ before do
+ subject.section(section_heading, section_text)
+ end
+
+ it "should output the expected sections" do
+ subject.display(out)
+ expect(out.out.string).to eq <<-END
+================================================================================
+test title
+================================================================================
+
+test heading
+------------
+test text
+
+Platform:
+---------
+ruby-foo-9000
+
+ END
+ end
+
+ end
+ end
+end