Permalink
Switch branches/tags
0.9-stable 2.6 10-stable 10.16.4-release 10.16.6 10.24-patch 11-stable 11.4-patch 11.9 11.18.0.r 12.2-stable 12.4-stable 12.5-stable 12.6-release 13.9 CHEF-3557 CHEF-4123 IPO-44/td-mc/add-node-uuid ISSUE/3871 ad/3888 adamedx/alternate-user-execute adamedx/alternate-user-remote-file adamedx/alternate-user adamedx/remote-file-windows-user adamedx/windows-execute-user adamleff/messages_as_module adamleff/test-bff-branch allow-tokenless-chef-solo-data-collector archive_file audit auto_dependency_bump_test azure-pipelines backport-diff-disable bp-423/git-stunnel bp-423/stunnel-in-rhel btm/MSYS-752_build btm/secrets-spike btm/target-mode cd/artifacts-cheffs cd/nuke-pedant cd/upgrade-pedant cd/validate-zero-policyfile-routes chef-12 chef-13 chef-14 chef-nolan/double-stdout chef-revert-6773-revert-6770-tm/ruby_25 cheffish ci-playground consistent_timeout_usage dan/verify-partial-doubles debug_logging debug debugging-travis-things default_env doc_generator expeditor/mixlib-archive_0.4.19 expeditor/mixlib-shellout_2.4.4 gem git-config-fix init_package_plugin jcam/remote_file jdm/ruby21 jdm/sign-v1.3 jdm/test-ci jdm/win-package-remote jeremymv2/chef_fs_normalize_has jk/block-property jk/client_madness jk/cookbook-processor jk/dsl_modules_instead_of_maps jk/easier_chef_fs jk/file-resource jk/nobuild jk/recipe_block jk/revert-user_home jk/script-properties jk/service-properties jk/split-cookbooks jk/test-warnings jq/test_train_gcp jsinha/BEN-123-IPS-LINKS jsinha/fix_solaris_service jsinha/test_rust_update ksubrama/msys2 lcg/add-test-segment lcg/add-yum-tests lcg/attribute-debug lcg/attributes-on-12.4.1-for-phil lcg/attributes-v1.99 lcg/bump-bundler lcg/chef-12-yum-backport lcg/chef-13-attr-on-chef-12 lcg/chef-appbundle-locking lcg/cnetos-6-func-tests lcg/de-lazy-attributes lcg/debugging-ffi lcg/deep-merge-cache-backport lcg/deep-merge-testing lcg/deprecate-chef-solo-legacy-mode lcg/deprecate-vendor lcg/dnf-install-supercharging lcg/e-g-only-use-inline-resources lcg/fix-windows-hostname-validation lcg/flip-chef-gem-default lcg/functest-apt-update-failure-behavior2 lcg/gc-inspection lcg/git lcg/improve-appbundling lcg/just-testing2 lcg/learnchef-tests lcg/openssl-sitelibdir lcg/pg-gem lcg/pr-3778 lcg/recipe-resource lcg/refreeze-chef-12 lcg/resolv-replace lcg/resource-sugar lcg/rfc-045 lcg/rollback-acceptance-bumps lcg/splice-chef-into-external-tests lcg/testing2 lcg/tight-coupling1 lcg/turbo-merge-backport lcg/turbo-merge lcg/unused-resource-collection-apis lcg/yum-new-resource lcg/yum_package_repo_opts lita-acceptance lita-dev master mdadm_cr mh/missing_profile mh/recover multi_package nano nls/ftp-proxy nls/proxy-bug ohai-7 omnibus-test opensuse_leap_15_testing php pw/mixlib-install-2.0.2 rack-spec-compliance rb-readline reboot_resource release_12.10.24 response_file revert-6776-revert-6766-lcg/windows-interval revert rhass/COOL-502_clean rhass/COOL-611 rhass/chef-12/update-all-the-things rhass/maintainers rhass/minibus rhass/test-openssl-nocomp-branch rhass/12.15.0 rm-active-support ryan/knife_ssh_row ryan/profiling salam/acceptance salam/knife-ssh-tweak salam/test-revert schisamo/angrychef-12.6.0 sensitive-file-tests sersut/attr-stress-test-w-reads sersut/bundler-test sersut/test-CI-31 shain/test_aix_thing shain/test_extra_fips shain/test_solaris_random shain/verificate_pkg shain/whatishthis2 shain/whatsthis ssd-sr/re-raise-system-exit-playground ssd/CHEF-3068-rebased ssd/libiconv-test-branch status_done_right stupid1 tduffield/add-label-version-bumping tduffield/auth-proxy-tests tduffield/bump-deps-for-cheffish tduffield/openssl-override tduffield/supress-hashie-logging tduffield/update-gems-for-net-ssh test-chef-acceptance-pr-31 test-parallel-suites test-securable-on-file-create tm/archive_winning tm/circle tm/fix_win_xslt tm/lazy tm/revert_mount_properties tm/ruby_25 tm/systemd_networkd tm/test_omnibus_fix tm/test_12_pipelines tm/user_refactor top_choc trusted try_ec2 update-omnibus-libs user_properties v12.11.18 v12.19.37 v12.19.38 v13.1.3 win64 winrm_pre yzl/ES-437
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
63 lines (52 sloc) 1.82 KB
#
# Author:: Adam Jacob (<adam@chef.io>)
# Copyright:: Copyright 2010-2018, 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 "chef/handler"
require "chef/resource/directory"
class Chef
class Handler
class JsonFile < ::Chef::Handler
attr_reader :config
def initialize(config = {})
@config = config
@config[:path] ||= "/var/chef/reports"
end
def report
if exception
Chef::Log.error("Creating JSON exception report")
else
Chef::Log.info("Creating JSON run report")
end
build_report_dir
savetime = Time.now.strftime("%Y%m%d%H%M%S")
File.open(File.join(config[:path], "chef-run-report-#{savetime}.json"), "w") do |file|
# ensure start time and end time are output in the json properly in the event activesupport happens to be on the system
run_data = data
run_data[:start_time] = run_data[:start_time].to_s
run_data[:end_time] = run_data[:end_time].to_s
file.puts Chef::JSONCompat.to_json_pretty(run_data)
end
end
def build_report_dir
unless File.exists?(config[:path])
FileUtils.mkdir_p(config[:path])
File.chmod(00700, config[:path])
end
end
end
end
end