chef 12.12.15-universal-mingw32 → 12.13.30-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +5 -0
- data/LICENSE +201 -201
- data/VERSION +1 -1
- data/acceptance/.gitignore +2 -0
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +1 -12
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +29 -12
- data/acceptance/Gemfile +6 -3
- data/acceptance/Gemfile.lock +109 -67
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +2 -2
- data/acceptance/trivial/.kitchen.yml +1 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +4 -4
- data/bin/chef-apply +0 -0
- data/bin/chef-client +0 -0
- data/bin/chef-service-manager +0 -0
- data/bin/chef-shell +0 -0
- data/bin/chef-solo +0 -0
- data/bin/chef-windows-service +0 -0
- data/bin/knife +0 -0
- data/chef.gemspec +4 -3
- data/distro/common/html/_sources/ctl_chef_client.txt +35 -35
- data/distro/common/html/_sources/ctl_chef_server.txt +341 -341
- data/distro/common/html/_sources/ctl_chef_shell.txt +15 -15
- data/distro/common/html/_sources/ctl_chef_solo.txt +25 -25
- data/distro/common/html/_sources/index.txt +135 -135
- data/distro/common/html/_sources/knife.txt +74 -74
- data/distro/common/html/_sources/knife_bootstrap.txt +56 -56
- data/distro/common/html/_sources/knife_client.txt +150 -150
- data/distro/common/html/_sources/knife_common_options.txt +6 -6
- data/distro/common/html/_sources/knife_configure.txt +29 -29
- data/distro/common/html/_sources/knife_cookbook.txt +236 -236
- data/distro/common/html/_sources/knife_cookbook_site.txt +157 -157
- data/distro/common/html/_sources/knife_data_bag.txt +159 -159
- data/distro/common/html/_sources/knife_delete.txt +26 -26
- data/distro/common/html/_sources/knife_deps.txt +61 -61
- data/distro/common/html/_sources/knife_diff.txt +34 -34
- data/distro/common/html/_sources/knife_download.txt +44 -44
- data/distro/common/html/_sources/knife_edit.txt +26 -26
- data/distro/common/html/_sources/knife_environment.txt +158 -158
- data/distro/common/html/_sources/knife_exec.txt +47 -47
- data/distro/common/html/_sources/knife_index_rebuild.txt +20 -20
- data/distro/common/html/_sources/knife_list.txt +33 -33
- data/distro/common/html/_sources/knife_node.txt +250 -250
- data/distro/common/html/_sources/knife_raw.txt +35 -35
- data/distro/common/html/_sources/knife_recipe_list.txt +23 -23
- data/distro/common/html/_sources/knife_role.txt +157 -157
- data/distro/common/html/_sources/knife_search.txt +53 -53
- data/distro/common/html/_sources/knife_serve.txt +18 -18
- data/distro/common/html/_sources/knife_show.txt +26 -26
- data/distro/common/html/_sources/knife_ssh.txt +43 -43
- data/distro/common/html/_sources/knife_ssl_check.txt +41 -41
- data/distro/common/html/_sources/knife_ssl_fetch.txt +41 -41
- data/distro/common/html/_sources/knife_status.txt +37 -37
- data/distro/common/html/_sources/knife_tag.txt +69 -69
- data/distro/common/html/_sources/knife_upload.txt +49 -49
- data/distro/common/html/_sources/knife_user.txt +127 -127
- data/distro/common/html/_sources/knife_using.txt +43 -43
- data/distro/common/html/_sources/knife_xargs.txt +30 -30
- data/distro/common/html/_static/guide.css +504 -504
- data/distro/common/html/_static/pygments.css +61 -61
- data/distro/common/html/_static/underscore.js +31 -31
- data/distro/common/html/ctl_chef_client.html +269 -269
- data/distro/common/html/ctl_chef_server.html +727 -727
- data/distro/common/html/ctl_chef_shell.html +162 -162
- data/distro/common/html/ctl_chef_solo.html +193 -193
- data/distro/common/html/index.html +201 -201
- data/distro/common/html/knife.html +169 -169
- data/distro/common/html/knife_bootstrap.html +284 -284
- data/distro/common/html/knife_client.html +284 -284
- data/distro/common/html/knife_common_options.html +95 -95
- data/distro/common/html/knife_configure.html +104 -104
- data/distro/common/html/knife_cookbook.html +486 -486
- data/distro/common/html/knife_data_bag.html +373 -373
- data/distro/common/html/knife_delete.html +92 -92
- data/distro/common/html/knife_deps.html +142 -142
- data/distro/common/html/knife_diff.html +122 -122
- data/distro/common/html/knife_download.html +144 -144
- data/distro/common/html/knife_edit.html +88 -88
- data/distro/common/html/knife_environment.html +325 -325
- data/distro/common/html/knife_exec.html +219 -219
- data/distro/common/html/knife_index_rebuild.html +82 -82
- data/distro/common/html/knife_list.html +113 -113
- data/distro/common/html/knife_node.html +457 -457
- data/distro/common/html/knife_raw.html +109 -109
- data/distro/common/html/knife_recipe_list.html +90 -90
- data/distro/common/html/knife_role.html +294 -294
- data/distro/common/html/knife_search.html +202 -202
- data/distro/common/html/knife_serve.html +78 -78
- data/distro/common/html/knife_show.html +103 -103
- data/distro/common/html/knife_ssh.html +176 -176
- data/distro/common/html/knife_ssl_check.html +150 -150
- data/distro/common/html/knife_ssl_fetch.html +150 -150
- data/distro/common/html/knife_status.html +143 -143
- data/distro/common/html/knife_tag.html +137 -137
- data/distro/common/html/knife_upload.html +152 -152
- data/distro/common/html/knife_user.html +241 -241
- data/distro/common/html/knife_using.html +209 -209
- data/distro/common/html/knife_xargs.html +121 -121
- data/distro/common/html/search.html +81 -81
- data/distro/common/man/man1/README.md +58 -58
- data/distro/common/man/man1/chef-shell.1 +194 -194
- data/distro/common/man/man1/knife-bootstrap.1 +215 -215
- data/distro/common/man/man1/knife-client.1 +443 -443
- data/distro/common/man/man1/knife-configure.1 +161 -161
- data/distro/common/man/man1/knife-cookbook.1 +770 -770
- data/distro/common/man/man1/knife-data-bag.1 +617 -617
- data/distro/common/man/man1/knife-delete.1 +127 -127
- data/distro/common/man/man1/knife-deps.1 +246 -246
- data/distro/common/man/man1/knife-diff.1 +226 -226
- data/distro/common/man/man1/knife-download.1 +258 -258
- data/distro/common/man/man1/knife-edit.1 +121 -121
- data/distro/common/man/man1/knife-environment.1 +508 -508
- data/distro/common/man/man1/knife-exec.1 +362 -362
- data/distro/common/man/man1/knife-index-rebuild.1 +63 -63
- data/distro/common/man/man1/knife-list.1 +174 -174
- data/distro/common/man/man1/knife-node.1 +716 -716
- data/distro/common/man/man1/knife-raw.1 +172 -172
- data/distro/common/man/man1/knife-recipe-list.1 +85 -85
- data/distro/common/man/man1/knife-role.1 +426 -426
- data/distro/common/man/man1/knife-search.1 +359 -359
- data/distro/common/man/man1/knife-serve.1 +109 -109
- data/distro/common/man/man1/knife-show.1 +160 -160
- data/distro/common/man/man1/knife-ssh.1 +284 -284
- data/distro/common/man/man1/knife-ssl-check.1 +207 -207
- data/distro/common/man/man1/knife-ssl-fetch.1 +207 -207
- data/distro/common/man/man1/knife-status.1 +234 -234
- data/distro/common/man/man1/knife-tag.1 +189 -189
- data/distro/common/man/man1/knife-upload.1 +280 -280
- data/distro/common/man/man1/knife-user.1 +356 -356
- data/distro/common/man/man1/knife-xargs.1 +189 -189
- data/distro/common/man/man1/knife.1 +332 -332
- data/distro/common/man/man8/chef-apply.8 +86 -86
- data/distro/common/man/man8/chef-client.8 +398 -398
- data/distro/common/man/man8/chef-solo.8 +260 -260
- data/distro/common/markdown/README +3 -3
- data/lib/chef/application.rb +23 -0
- data/lib/chef/application/client.rb +10 -2
- data/lib/chef/application/knife.rb +8 -0
- data/lib/chef/application/solo.rb +10 -2
- data/lib/chef/audit/audit_reporter.rb +5 -1
- data/lib/chef/audit/runner.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +4 -2
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +3 -0
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +12 -1
- data/lib/chef/chef_fs/file_system_cache.rb +80 -0
- data/lib/chef/data_collector.rb +18 -1
- data/lib/chef/data_collector/resource_report.rb +1 -0
- data/lib/chef/decorator/unchain.rb +16 -0
- data/lib/chef/dsl/cheffish.rb +1 -0
- data/lib/chef/dsl/declare_resource.rb +9 -1
- data/lib/chef/file_access_control/windows.rb +3 -3
- data/lib/chef/knife/bootstrap.rb +9 -0
- data/lib/chef/knife/cookbook_site_install.rb +2 -11
- data/lib/chef/knife/cookbook_site_share.rb +7 -13
- data/lib/chef/knife/core/bootstrap_context.rb +10 -0
- data/lib/chef/knife/help_topics.rb +4 -4
- data/lib/chef/nil_argument.rb +3 -3
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/provider/apt_repository.rb +1 -1
- data/lib/chef/provider/apt_update.rb +12 -3
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/package/aix.rb +5 -1
- data/lib/chef/provider/package/zypper.rb +7 -7
- data/lib/chef/provider/resource_update.rb +52 -52
- data/lib/chef/reserved_names.rb +9 -9
- data/lib/chef/resource.rb +13 -1
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/run_context.rb +15 -42
- data/lib/chef/sandbox.rb +20 -20
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +7 -2
- data/lib/chef/win32/file.rb +4 -4
- data/lib/chef/win32/system.rb +0 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -5
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -11
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -1
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -22
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -22
- data/spec/data/apt/var/www/apt/conf/distributions +7 -7
- data/spec/data/apt/var/www/apt/conf/incoming +4 -4
- data/spec/data/apt/var/www/apt/conf/pulls +3 -3
- data/spec/data/apt/var/www/apt/db/version +4 -4
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -19
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -16
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -5
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -1
- data/spec/data/bootstrap/no_proxy.erb +2 -2
- data/spec/data/bootstrap/secret.erb +9 -9
- data/spec/data/bootstrap/test-hints.erb +12 -12
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/data/cb_version_cookbooks/tatft/README.rdoc +2 -2
- data/spec/data/cb_version_cookbooks/tatft/attributes/default.rb +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-600hhz-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ahd2gq-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-api8ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-b0r1m1-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-bfygsi-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-el14l6-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ivrl3y-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-kkbs85-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ory1ux-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-pgsq76-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ra8uim-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t7k1g-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-t8g0sv-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-ufy6g3-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-x2d6j9-0 +1 -1
- data/spec/data/checksum_cache/chef-file--tmp-chef-rendered-template20100929-10863-xi0l6h-0 +1 -1
- data/spec/data/config.rb +6 -6
- data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
- data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
- data/spec/data/cookbooks/apache2/metadata.rb +2 -2
- data/spec/data/cookbooks/apache2/recipes/default.rb +2 -2
- data/spec/data/cookbooks/borken/metadata.rb +2 -2
- data/spec/data/cookbooks/borken/recipes/default.rb +1 -1
- data/spec/data/cookbooks/borken/templates/default/borken.erb +1 -1
- data/spec/data/cookbooks/chefignore +8 -8
- data/spec/data/cookbooks/ignorken/files/default/not_me.rb +2 -2
- data/spec/data/cookbooks/ignorken/metadata.rb +2 -2
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +1 -1
- data/spec/data/cookbooks/ignorken/templates/ubuntu-12.10/not_me.rb +2 -2
- data/spec/data/cookbooks/java/files/default/java.response +1 -1
- data/spec/data/cookbooks/java/metadata.rb +2 -2
- data/spec/data/cookbooks/name-mismatch-versionnumber/README.md +4 -4
- data/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb +8 -8
- data/spec/data/cookbooks/openldap/attributes/default.rb +16 -16
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/cookbooks/openldap/definitions/client.rb +5 -5
- data/spec/data/cookbooks/openldap/definitions/server.rb +5 -5
- data/spec/data/cookbooks/openldap/files/default/.dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/not_a_template.erb +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remote_dir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +1 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file1.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/remote_subdir_file2.txt +2 -2
- data/spec/data/cookbooks/openldap/files/default/remotedir/subdir_with_no_file_just_a_subsubdir/the_subsubdir/some_file.txt +3 -3
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
- data/spec/data/cookbooks/openldap/libraries/openldap/version.rb +3 -3
- data/spec/data/cookbooks/openldap/metadata.rb +8 -8
- data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
- data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
- data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -4
- data/spec/data/cookbooks/openldap/templates/default/openldap_variable_stuff.conf.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/test.erb +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -1
- data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -4
- data/spec/data/cookbooks/preseed/metadata.rb +2 -2
- data/spec/data/cookbooks/preseed/templates/default/preseed-template-variables.seed +1 -1
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -1
- data/spec/data/definitions/test.rb +4 -4
- data/spec/data/environment-config.rb +4 -4
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -127
- data/spec/data/fileedit/hosts +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/README.md +4 -4
- data/spec/data/incomplete-metadata-chef-repo/incomplete-metadata/metadata.rb +13 -13
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
- data/spec/data/kitchen/chefignore +6 -6
- data/spec/data/kitchen/openldap/attributes/default.rb +3 -3
- data/spec/data/kitchen/openldap/attributes/robinson.rb +2 -2
- data/spec/data/kitchen/openldap/definitions/client.rb +3 -3
- data/spec/data/kitchen/openldap/definitions/drewbarrymore.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/gigantor.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/ignoreme.rb +2 -2
- data/spec/data/kitchen/openldap/recipes/woot.rb +3 -3
- data/spec/data/knife_subcommand/test_explicit_category.rb +6 -6
- data/spec/data/knife_subcommand/test_name_mapping.rb +4 -4
- data/spec/data/knife_subcommand/test_yourself.rb +21 -21
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -26
- data/spec/data/lwrp/providers/monkey_name_printer.rb +5 -5
- data/spec/data/lwrp/providers/paint_drying_watcher.rb +7 -7
- data/spec/data/lwrp/providers/thumb_twiddler.rb +7 -7
- data/spec/data/lwrp/resources/foo.rb +4 -4
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +1 -1
- data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
- data/spec/data/mac_users/10.7-8.plist.xml +559 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +11 -11
- data/spec/data/mac_users/10.7.plist.xml +559 -559
- data/spec/data/mac_users/10.7.shadow.xml +11 -11
- data/spec/data/mac_users/10.8.plist.xml +559 -559
- data/spec/data/mac_users/10.8.shadow.xml +21 -21
- data/spec/data/mac_users/10.9.plist.xml +560 -560
- data/spec/data/mac_users/10.9.shadow.xml +21 -21
- data/spec/data/metadata/quick_start/metadata.rb +19 -19
- data/spec/data/nodes/default.rb +15 -15
- data/spec/data/nodes/test.example.com.rb +17 -17
- data/spec/data/nodes/test.rb +15 -15
- data/spec/data/null_config.rb +1 -1
- data/spec/data/object_loader/environments/test.json +7 -7
- data/spec/data/object_loader/environments/test.rb +2 -2
- data/spec/data/object_loader/environments/test_json_class.json +8 -8
- data/spec/data/object_loader/nodes/test.json +7 -7
- data/spec/data/object_loader/nodes/test.rb +2 -2
- data/spec/data/object_loader/nodes/test_json_class.json +8 -8
- data/spec/data/object_loader/roles/test.json +7 -7
- data/spec/data/object_loader/roles/test.rb +2 -2
- data/spec/data/object_loader/roles/test_json_class.json +8 -8
- data/spec/data/partial_one.erb +1 -1
- data/spec/data/recipes/test.rb +7 -7
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -2
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -3
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -1
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/new_animals.rb +9 -9
- data/spec/data/run_context/cookbooks/test/definitions/new_cat.rb +5 -5
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -1
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/test/recipes/default.rb +5 -5
- data/spec/data/run_context/cookbooks/test/recipes/one.rb +7 -7
- data/spec/data/run_context/cookbooks/test/recipes/two.rb +7 -7
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -1
- data/spec/data/run_context/nodes/run_context.rb +5 -5
- data/spec/data/search_queries_to_transform.txt +98 -98
- data/spec/data/shef-config.rb +10 -10
- data/spec/data/ssl/5e707473.0 +18 -18
- data/spec/data/ssl/chef-rspec.cert +27 -27
- data/spec/data/ssl/chef-rspec.key +27 -27
- data/spec/data/ssl/key.pem +15 -15
- data/spec/data/ssl/private_key.pem +27 -27
- data/spec/data/ssl/private_key_with_whitespace.pem +32 -32
- data/spec/data/standalone_cookbook/chefignore +9 -9
- data/spec/data/standalone_cookbook/recipes/default.rb +2 -2
- data/spec/data/trusted_certs/example.crt +22 -22
- data/spec/data/trusted_certs/intermediate.pem +27 -27
- data/spec/data/trusted_certs/root.pem +22 -22
- data/spec/functional/assets/chefinittest +34 -34
- data/spec/functional/assets/testchefsubsys +10 -10
- data/spec/functional/mixin/powershell_out_spec.rb +2 -2
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
- data/spec/functional/resource/aix_service_spec.rb +0 -0
- data/spec/functional/resource/aixinit_service_spec.rb +0 -0
- data/spec/functional/resource/cron_spec.rb +8 -1
- data/spec/functional/resource/env_spec.rb +0 -0
- data/spec/functional/resource/link_spec.rb +1 -6
- data/spec/functional/run_lock_spec.rb +17 -10
- data/spec/integration/knife/diff_spec.rb +2 -2
- data/spec/integration/knife/download_spec.rb +4 -4
- data/spec/integration/knife/raw_spec.rb +2 -0
- data/spec/integration/knife/upload_spec.rb +3 -3
- data/spec/rcov.opts +2 -2
- data/spec/spec_helper.rb +11 -1
- data/spec/support/shared/integration/knife_support.rb +4 -0
- data/spec/unit/application/client_spec.rb +35 -0
- data/spec/unit/application/solo_spec.rb +6 -6
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -0
- data/spec/unit/data_collector_spec.rb +41 -1
- data/spec/unit/dsl/declare_resource_spec.rb +30 -0
- data/spec/unit/knife/cookbook_site_install_spec.rb +2 -0
- data/spec/unit/knife/cookbook_site_share_spec.rb +4 -4
- data/spec/unit/node_spec.rb +6 -0
- data/spec/unit/provider/cron_spec.rb +16 -16
- data/spec/unit/provider/package/aix_spec.rb +13 -0
- data/spec/unit/provider/package/zypper_spec.rb +18 -2
- data/spec/unit/resource/apt_repository_spec.rb +14 -2
- data/spec/unit/resource/apt_update_spec.rb +14 -2
- data/spec/unit/resource_builder_spec.rb +1 -1
- data/tasks/bin/bundle-platform +0 -0
- data/tasks/bin/bundle-platform.bat +0 -0
- data/tasks/bin/create-override-gemfile +0 -0
- data/tasks/bin/run_external_test +0 -0
- data/tasks/bundle.rb +2 -2
- metadata +29 -15
- data/acceptance/data-collector/Berksfile.lock +0 -6
@@ -1,3 +1,3 @@
|
|
1
|
-
This directory contains markdown documentation that is used in other places.
|
2
|
-
For example, markdown (.mkd) documents that are generated as man pages
|
3
|
-
with ronn.
|
1
|
+
This directory contains markdown documentation that is used in other places.
|
2
|
+
For example, markdown (.mkd) documents that are generated as man pages
|
3
|
+
with ronn.
|
data/lib/chef/application.rb
CHANGED
@@ -28,6 +28,7 @@ require "mixlib/cli"
|
|
28
28
|
require "tmpdir"
|
29
29
|
require "rbconfig"
|
30
30
|
require "chef/application/exit_code"
|
31
|
+
require "yaml"
|
31
32
|
|
32
33
|
class Chef
|
33
34
|
class Application
|
@@ -108,7 +109,22 @@ class Chef
|
|
108
109
|
config_content = config_fetcher.read_config
|
109
110
|
apply_config(config_content, config[:config_file])
|
110
111
|
end
|
112
|
+
extra_config_options = config.delete(:config_option)
|
111
113
|
Chef::Config.merge!(config)
|
114
|
+
if extra_config_options
|
115
|
+
extra_parsed_options = extra_config_options.inject({}) do |memo, option|
|
116
|
+
# Sanity check value.
|
117
|
+
Chef::Application.fatal!("Unparsable config option #{option.inspect}") if option.empty? || !option.include?("=")
|
118
|
+
# Split including whitespace if someone does truly odd like
|
119
|
+
# --config-option "foo = bar"
|
120
|
+
key, value = option.split(/\s*=\s*/, 2)
|
121
|
+
# Call to_sym because Chef::Config expects only symbol keys. Also
|
122
|
+
# runs a simple parse on the string for some common types.
|
123
|
+
memo[key.to_sym] = YAML.safe_load(value)
|
124
|
+
memo
|
125
|
+
end
|
126
|
+
Chef::Config.merge!(extra_parsed_options)
|
127
|
+
end
|
112
128
|
end
|
113
129
|
|
114
130
|
def set_specific_recipes
|
@@ -332,6 +348,13 @@ class Chef
|
|
332
348
|
class << self
|
333
349
|
def debug_stacktrace(e)
|
334
350
|
message = "#{e.class}: #{e}\n#{e.backtrace.join("\n")}"
|
351
|
+
|
352
|
+
cause = e.cause if e.respond_to?(:cause)
|
353
|
+
while cause != nil
|
354
|
+
message << "\n\n>>>> Caused by #{cause.class}: #{cause}\n#{cause.backtrace.join("\n")}"
|
355
|
+
cause = cause.respond_to?(:cause) ? cause.cause : nil
|
356
|
+
end
|
357
|
+
|
335
358
|
chef_stacktrace_out = "Generated at #{Time.now}\n"
|
336
359
|
chef_stacktrace_out += message
|
337
360
|
|
@@ -27,6 +27,7 @@ require "chef/handler/error_report"
|
|
27
27
|
require "chef/workstation_config_loader"
|
28
28
|
require "chef/mixin/shell_out"
|
29
29
|
require "chef-config/mixin/dot_d"
|
30
|
+
require "mixlib/archive"
|
30
31
|
|
31
32
|
class Chef::Application::Client < Chef::Application
|
32
33
|
include Chef::Mixin::ShellOut
|
@@ -40,6 +41,14 @@ class Chef::Application::Client < Chef::Application
|
|
40
41
|
:long => "--config CONFIG",
|
41
42
|
:description => "The configuration file to use"
|
42
43
|
|
44
|
+
option :config_option,
|
45
|
+
:long => "--config-option OPTION=VALUE",
|
46
|
+
:description => "Override a single configuration option",
|
47
|
+
:proc => lambda { |option, existing|
|
48
|
+
(existing ||= []) << option
|
49
|
+
existing
|
50
|
+
}
|
51
|
+
|
43
52
|
option :formatter,
|
44
53
|
:short => "-F FORMATTER",
|
45
54
|
:long => "--format FORMATTER",
|
@@ -334,8 +343,7 @@ class Chef::Application::Client < Chef::Application
|
|
334
343
|
FileUtils.mkdir_p(Chef::Config.chef_repo_path)
|
335
344
|
tarball_path = File.join(Chef::Config.chef_repo_path, "recipes.tgz")
|
336
345
|
fetch_recipe_tarball(Chef::Config[:recipe_url], tarball_path)
|
337
|
-
|
338
|
-
Chef::Log.debug "#{result.stdout}"
|
346
|
+
Mixlib::Archive.new(tarball_path).extract(Chef::Config.chef_repo_path, perms: false, ignore: /^\.$/)
|
339
347
|
end
|
340
348
|
end
|
341
349
|
|
@@ -33,6 +33,14 @@ class Chef::Application::Knife < Chef::Application
|
|
33
33
|
:description => "The configuration file to use",
|
34
34
|
:proc => lambda { |path| File.expand_path(path, Dir.pwd) }
|
35
35
|
|
36
|
+
option :config_option,
|
37
|
+
:long => "--config-option OPTION=VALUE",
|
38
|
+
:description => "Override a single configuration option",
|
39
|
+
:proc => lambda { |option, existing|
|
40
|
+
(existing ||= []) << option
|
41
|
+
existing
|
42
|
+
}
|
43
|
+
|
36
44
|
verbosity_level = 0
|
37
45
|
option :verbosity,
|
38
46
|
:short => "-V",
|
@@ -29,6 +29,7 @@ require "fileutils"
|
|
29
29
|
require "chef/mixin/shell_out"
|
30
30
|
require "pathname"
|
31
31
|
require "chef-config/mixin/dot_d"
|
32
|
+
require "mixlib/archive"
|
32
33
|
|
33
34
|
class Chef::Application::Solo < Chef::Application
|
34
35
|
include Chef::Mixin::ShellOut
|
@@ -40,6 +41,14 @@ class Chef::Application::Solo < Chef::Application
|
|
40
41
|
:default => Chef::Config.platform_specific_path("/etc/chef/solo.rb"),
|
41
42
|
:description => "The configuration file to use"
|
42
43
|
|
44
|
+
option :config_option,
|
45
|
+
:long => "--config-option OPTION=VALUE",
|
46
|
+
:description => "Override a single configuration option",
|
47
|
+
:proc => lambda { |option, existing|
|
48
|
+
(existing ||= []) << option
|
49
|
+
existing
|
50
|
+
}
|
51
|
+
|
43
52
|
option :formatter,
|
44
53
|
:short => "-F FORMATTER",
|
45
54
|
:long => "--format FORMATTER",
|
@@ -273,8 +282,7 @@ class Chef::Application::Solo < Chef::Application
|
|
273
282
|
FileUtils.mkdir_p(recipes_path)
|
274
283
|
tarball_path = File.join(recipes_path, "recipes.tgz")
|
275
284
|
fetch_recipe_tarball(Chef::Config[:recipe_url], tarball_path)
|
276
|
-
|
277
|
-
Chef::Log.debug "#{result.stdout}"
|
285
|
+
Mixlib::Archive.new(tarball_path).extract(Chef::Config.chef_repo_path, perms: false, ignore: /^\.$/)
|
278
286
|
end
|
279
287
|
|
280
288
|
# json_attribs shuld be fetched after recipe_url tarball is unpacked.
|
@@ -140,7 +140,11 @@ class Chef
|
|
140
140
|
# Save the audit report to local disk
|
141
141
|
error_file = "failed-audit-data.json"
|
142
142
|
Chef::FileCache.store(error_file, Chef::JSONCompat.to_json_pretty(run_data), 0640)
|
143
|
-
Chef::
|
143
|
+
if Chef::Config.chef_zero.enabled
|
144
|
+
Chef::Log.debug("Saving audit report to #{Chef::FileCache.load(error_file, false)}")
|
145
|
+
else
|
146
|
+
Chef::Log.error("Failed to post audit report to server. Saving report to #{Chef::FileCache.load(error_file, false)}")
|
147
|
+
end
|
144
148
|
end
|
145
149
|
else
|
146
150
|
Chef::Log.error("Failed to post audit report to server (#{e})")
|
data/lib/chef/audit/runner.rb
CHANGED
@@ -165,7 +165,7 @@ class Chef
|
|
165
165
|
add_example_group_methods
|
166
166
|
run_context.audits.each do |name, group|
|
167
167
|
ctl_grp = RSpec::Core::ExampleGroup.__control_group__(*group.args, &group.block)
|
168
|
-
RSpec.world.
|
168
|
+
RSpec.world.record(ctl_grp)
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -458,6 +458,7 @@ class Chef
|
|
458
458
|
# We want to delete just the ones that == POLICY
|
459
459
|
next unless policy.name.rpartition("-")[0] == path[1]
|
460
460
|
policy.delete(false)
|
461
|
+
FileSystemCache.instance.delete!(policy.file_path)
|
461
462
|
found_policy = true
|
462
463
|
end
|
463
464
|
raise ChefZero::DataStore::DataNotFoundError.new(path) if !found_policy
|
@@ -28,14 +28,16 @@ class Chef
|
|
28
28
|
module Repository
|
29
29
|
class AclsDir < Repository::Directory
|
30
30
|
|
31
|
+
BARE_FILES = %w{ organization.json root }
|
32
|
+
|
31
33
|
def can_have_child?(name, is_dir)
|
32
|
-
is_dir ? Chef::ChefFS::FileSystem::ChefServer::AclsDir::ENTITY_TYPES.include?(name) : name
|
34
|
+
is_dir ? Chef::ChefFS::FileSystem::ChefServer::AclsDir::ENTITY_TYPES.include?(name) : BARE_FILES.include?(name)
|
33
35
|
end
|
34
36
|
|
35
37
|
protected
|
36
38
|
|
37
39
|
def make_child_entry(child_name)
|
38
|
-
if child_name
|
40
|
+
if BARE_FILES.include? child_name
|
39
41
|
Acl.new(child_name, self)
|
40
42
|
else
|
41
43
|
AclsSubDir.new(child_name, self)
|
@@ -16,6 +16,8 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
+
require "chef/chef_fs/file_system_cache"
|
20
|
+
|
19
21
|
class Chef
|
20
22
|
module ChefFS
|
21
23
|
module FileSystem
|
@@ -99,6 +101,7 @@ class Chef
|
|
99
101
|
end
|
100
102
|
|
101
103
|
def delete(_)
|
104
|
+
FileSystemCache.instance.delete!(file_path)
|
102
105
|
File.delete(file_path)
|
103
106
|
rescue Errno::ENOENT
|
104
107
|
raise Chef::ChefFS::FileSystem::NotFoundError.new(self, $!)
|
@@ -16,6 +16,8 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
+
require "chef/chef_fs/file_system_cache"
|
20
|
+
|
19
21
|
class Chef
|
20
22
|
module ChefFS
|
21
23
|
module FileSystem
|
@@ -68,9 +70,11 @@ class Chef
|
|
68
70
|
end
|
69
71
|
|
70
72
|
def children
|
71
|
-
|
73
|
+
return FileSystemCache.instance.children(file_path) if FileSystemCache.instance.exist?(file_path)
|
74
|
+
children = dir_ls.sort.
|
72
75
|
map { |child_name| make_child_entry(child_name) }.
|
73
76
|
select { |new_child| new_child.fs_entry_valid? && can_have_child?(new_child.name, new_child.dir?) }
|
77
|
+
FileSystemCache.instance.set_children(file_path, children)
|
74
78
|
rescue Errno::ENOENT => e
|
75
79
|
raise Chef::ChefFS::FileSystem::NotFoundError.new(self, e)
|
76
80
|
end
|
@@ -80,6 +84,7 @@ class Chef
|
|
80
84
|
if child.exists?
|
81
85
|
raise Chef::ChefFS::FileSystem::AlreadyExistsError.new(:create_child, child)
|
82
86
|
end
|
87
|
+
FileSystemCache.instance.delete!(child.file_path)
|
83
88
|
if file_contents
|
84
89
|
child.write(file_contents)
|
85
90
|
else
|
@@ -118,6 +123,7 @@ class Chef
|
|
118
123
|
raise Chef::ChefFS::FileSystem::AlreadyExistsError.new(:create_child, self)
|
119
124
|
end
|
120
125
|
begin
|
126
|
+
FileSystemCache.instance.delete!(file_path)
|
121
127
|
Dir.mkdir(file_path)
|
122
128
|
rescue Errno::EEXIST
|
123
129
|
raise Chef::ChefFS::FileSystem::AlreadyExistsError.new(:create_child, self)
|
@@ -134,6 +140,7 @@ class Chef
|
|
134
140
|
raise MustDeleteRecursivelyError.new(self, $!)
|
135
141
|
end
|
136
142
|
FileUtils.rm_r(file_path)
|
143
|
+
FileSystemCache.instance.delete!(file_path)
|
137
144
|
else
|
138
145
|
raise Chef::ChefFS::FileSystem::NotFoundError.new(self, $!)
|
139
146
|
end
|
@@ -145,6 +152,10 @@ class Chef
|
|
145
152
|
|
146
153
|
protected
|
147
154
|
|
155
|
+
def write(data)
|
156
|
+
raise FileSystemError.new(self, nil, "attempted to write to a directory entry")
|
157
|
+
end
|
158
|
+
|
148
159
|
def make_child_entry(child_name)
|
149
160
|
raise "Not Implemented"
|
150
161
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright 2016, Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "singleton"
|
19
|
+
require "chef/client"
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
module ChefFS
|
23
|
+
class FileSystemCache
|
24
|
+
include Singleton
|
25
|
+
|
26
|
+
def initialize
|
27
|
+
@cache = {}
|
28
|
+
|
29
|
+
Chef::Client.when_run_starts do
|
30
|
+
FileSystemCache.instance.reset!
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def reset!
|
35
|
+
@cache = {}
|
36
|
+
end
|
37
|
+
|
38
|
+
def exist?(path)
|
39
|
+
@cache.key?(path)
|
40
|
+
end
|
41
|
+
|
42
|
+
def children(path)
|
43
|
+
@cache[path]["children"]
|
44
|
+
end
|
45
|
+
|
46
|
+
def set_children(path, val)
|
47
|
+
@cache[path] ||= { "children" => [] }
|
48
|
+
@cache[path]["children"] = val
|
49
|
+
val
|
50
|
+
end
|
51
|
+
|
52
|
+
def delete!(path)
|
53
|
+
parent = _get_parent(path)
|
54
|
+
Chef::Log.debug("Deleting parent #{parent} and #{path} from FileSystemCache")
|
55
|
+
if @cache.key?(path)
|
56
|
+
@cache.delete(path)
|
57
|
+
end
|
58
|
+
if !parent.nil? && @cache.key?(parent)
|
59
|
+
@cache.delete(parent)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def fetch(path)
|
64
|
+
if @cache.key?(path)
|
65
|
+
@cache[path]
|
66
|
+
else
|
67
|
+
false
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def _get_parent(path)
|
74
|
+
parts = ChefFS::PathUtils.split(path)
|
75
|
+
return nil if parts.nil? || parts.length < 2
|
76
|
+
ChefFS::PathUtils.join(*parts[0..-2])
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
data/lib/chef/data_collector.rb
CHANGED
@@ -57,6 +57,8 @@ class Chef
|
|
57
57
|
:current_resource_report, :enabled
|
58
58
|
|
59
59
|
def initialize
|
60
|
+
validate_data_collector_server_url!
|
61
|
+
|
60
62
|
@all_resource_reports = []
|
61
63
|
@current_resource_loaded = nil
|
62
64
|
@error_descriptions = {}
|
@@ -236,7 +238,8 @@ class Chef
|
|
236
238
|
yield
|
237
239
|
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET,
|
238
240
|
Errno::ECONNREFUSED, EOFError, Net::HTTPBadResponse,
|
239
|
-
Net::HTTPHeaderSyntaxError, Net::ProtocolError, OpenSSL::SSL::SSLError
|
241
|
+
Net::HTTPHeaderSyntaxError, Net::ProtocolError, OpenSSL::SSL::SSLError,
|
242
|
+
Errno::EHOSTDOWN => e
|
240
243
|
disable_data_collector_reporter
|
241
244
|
code = if e.respond_to?(:response) && e.response.code
|
242
245
|
e.response.code.to_s
|
@@ -376,6 +379,20 @@ class Chef
|
|
376
379
|
def nested_resource?(new_resource)
|
377
380
|
@current_resource_report && @current_resource_report.new_resource != new_resource
|
378
381
|
end
|
382
|
+
|
383
|
+
def validate_data_collector_server_url!
|
384
|
+
raise Chef::Exceptions::ConfigurationError,
|
385
|
+
"Chef::Config[:data_collector][:server_url] is empty. Please supply a valid URL." if data_collector_server_url.empty?
|
386
|
+
|
387
|
+
begin
|
388
|
+
uri = URI(data_collector_server_url)
|
389
|
+
rescue URI::InvalidURIError
|
390
|
+
raise Chef::Exceptions::ConfigurationError, "Chef::Config[:data_collector][:server_url] (#{data_collector_server_url}) is not a valid URI."
|
391
|
+
end
|
392
|
+
|
393
|
+
raise Chef::Exceptions::ConfigurationError,
|
394
|
+
"Chef::Config[:data_collector][:server_url] (#{data_collector_server_url}) is a URI with no host. Please supply a valid URL." if uri.host.nil?
|
395
|
+
end
|
379
396
|
end
|
380
397
|
end
|
381
398
|
end
|
@@ -80,6 +80,7 @@ class Chef
|
|
80
80
|
if new_resource.cookbook_name
|
81
81
|
hash["cookbook_name"] = new_resource.cookbook_name
|
82
82
|
hash["cookbook_version"] = new_resource.cookbook_version.version
|
83
|
+
hash["recipe_name"] = new_resource.recipe_name
|
83
84
|
end
|
84
85
|
|
85
86
|
hash["conditional"] = conditional.to_text if status == "skipped"
|
@@ -38,6 +38,22 @@ class Chef
|
|
38
38
|
__path__.push(key)
|
39
39
|
@delegate_sd_obj.public_send(__method__, *__path__, value)
|
40
40
|
end
|
41
|
+
|
42
|
+
# unfortunately we have to support method_missing for node.set_unless.foo.bar = 'baz' notation
|
43
|
+
def method_missing(symbol, *args)
|
44
|
+
if symbol == :to_ary
|
45
|
+
merged_attributes.send(symbol, *args)
|
46
|
+
elsif args.empty?
|
47
|
+
Chef.log_deprecation %q{method access to node attributes (node.foo.bar) is deprecated and will be removed in Chef 13, please use bracket syntax (node["foo"]["bar"])}
|
48
|
+
self[symbol]
|
49
|
+
elsif symbol.to_s =~ /=$/
|
50
|
+
Chef.log_deprecation %q{method setting of node attributes (node.foo="bar") is deprecated and will be removed in Chef 13, please use bracket syntax (node["foo"]="bar")}
|
51
|
+
key_to_set = symbol.to_s[/^(.+)=$/, 1]
|
52
|
+
self[key_to_set] = (args.length == 1 ? args[0] : args)
|
53
|
+
else
|
54
|
+
raise NoMethodError, "Undefined node attribute or method `#{symbol}' on `node'"
|
55
|
+
end
|
56
|
+
end
|
41
57
|
end
|
42
58
|
end
|
43
59
|
end
|
data/lib/chef/dsl/cheffish.rb
CHANGED
@@ -71,7 +71,15 @@ class Chef
|
|
71
71
|
# delete_resource!(:template, '/x/y.txy')
|
72
72
|
#
|
73
73
|
def delete_resource!(type, name, run_context: self.run_context)
|
74
|
-
run_context.resource_collection.delete("#{type}[#{name}]")
|
74
|
+
run_context.resource_collection.delete("#{type}[#{name}]").tap do |resource|
|
75
|
+
# Purge any pending notifications too. This will not raise an exception
|
76
|
+
# if there are no notifications.
|
77
|
+
if resource
|
78
|
+
run_context.before_notification_collection.delete(resource.declared_key)
|
79
|
+
run_context.immediate_notification_collection.delete(resource.declared_key)
|
80
|
+
run_context.delayed_notification_collection.delete(resource.declared_key)
|
81
|
+
end
|
82
|
+
end
|
75
83
|
end
|
76
84
|
|
77
85
|
# Lookup a resource in the resource collection by name and delete it. Returns
|
@@ -128,7 +128,7 @@ class Chef
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def should_update_dacl?
|
131
|
-
return true unless ::File.exists?(file)
|
131
|
+
return true unless ::File.exists?(file) || ::File.symlink?(file)
|
132
132
|
dacl = target_dacl
|
133
133
|
existing_dacl = existing_descriptor.dacl
|
134
134
|
inherits = target_inherits
|
@@ -161,7 +161,7 @@ class Chef
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def should_update_group?
|
164
|
-
return true unless ::File.exists?(file)
|
164
|
+
return true unless ::File.exists?(file) || ::File.symlink?(file)
|
165
165
|
(group = target_group) && (group != existing_descriptor.group)
|
166
166
|
end
|
167
167
|
|
@@ -180,7 +180,7 @@ class Chef
|
|
180
180
|
end
|
181
181
|
|
182
182
|
def should_update_owner?
|
183
|
-
return true unless ::File.exists?(file)
|
183
|
+
return true unless ::File.exists?(file) || ::File.symlink?(file)
|
184
184
|
(owner = target_owner) && (owner != existing_descriptor.owner)
|
185
185
|
end
|
186
186
|
|