chef 12.7.2-universal-mingw32 → 12.8.1-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/CONTRIBUTING.md +208 -208
- data/Gemfile +49 -58
- data/LICENSE +201 -201
- data/README.md +139 -139
- data/Rakefile +86 -73
- data/VERSION +1 -1
- data/acceptance/.gitignore +2 -1
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +33 -27
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +290 -281
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +59 -49
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -46
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
- data/acceptance/Gemfile +14 -11
- data/acceptance/README.md +132 -86
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +3 -3
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/basics/.kitchen.yml +4 -4
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +19 -19
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +6 -6
- data/acceptance/fips/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/metadata.rb +2 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -0
- data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -0
- data/acceptance/fips/.kitchen.yml +4 -0
- data/acceptance/fips/test/integration/fips/serverspec/Gemfile +3 -0
- data/acceptance/fips/test/integration/fips/serverspec/fips_spec.rb +39 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +43 -43
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +23 -21
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +3 -3
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/top-cookbooks/.gitignore +1 -1
- data/acceptance/top-cookbooks/.kitchen.docker.yml +12 -0
- data/acceptance/top-cookbooks/.kitchen.git.yml +11 -10
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +7 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +7 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +7 -4
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/acceptance/trivial/.kitchen.yml +7 -7
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +5 -5
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +2 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +2 -2
- 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/.kitchen.yml +7 -7
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +58 -58
- data/bin/chef-apply +25 -25
- data/bin/chef-client +26 -26
- data/bin/chef-service-manager +38 -38
- data/bin/chef-shell +34 -37
- data/bin/chef-solo +25 -25
- data/bin/chef-windows-service +35 -35
- data/bin/knife +25 -25
- data/chef-windows.gemspec +24 -24
- data/chef.gemspec +63 -58
- 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/basic.css +536 -536
- data/distro/common/html/_static/doctools.js +238 -238
- data/distro/common/html/_static/guide.css +504 -504
- data/distro/common/html/_static/pygments.css +61 -61
- data/distro/common/html/_static/searchtools.js +621 -621
- data/distro/common/html/_static/underscore.js +31 -31
- data/distro/common/html/_static/websupport.js +808 -808
- 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_cookbook_site.html +375 -375
- 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-site.1 +552 -552
- 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/distro/common/markdown/man1/chef-shell.mkd +195 -195
- data/distro/common/markdown/man1/knife-bootstrap.mkd +141 -141
- data/distro/common/markdown/man1/knife-client.mkd +103 -103
- data/distro/common/markdown/man1/knife-configure.mkd +70 -70
- data/distro/common/markdown/man1/knife-cookbook-site.mkd +123 -123
- data/distro/common/markdown/man1/knife-cookbook.mkd +263 -263
- data/distro/common/markdown/man1/knife-data-bag.mkd +121 -121
- data/distro/common/markdown/man1/knife-environment.mkd +151 -151
- data/distro/common/markdown/man1/knife-exec.mkd +42 -42
- data/distro/common/markdown/man1/knife-index.mkd +30 -30
- data/distro/common/markdown/man1/knife-node.mkd +130 -130
- data/distro/common/markdown/man1/knife-role.mkd +85 -85
- data/distro/common/markdown/man1/knife-search.mkd +180 -180
- data/distro/common/markdown/man1/knife-ssh.mkd +69 -69
- data/distro/common/markdown/man1/knife-status.mkd +36 -36
- data/distro/common/markdown/man1/knife-tag.mkd +39 -39
- data/distro/common/markdown/man1/knife.mkd +213 -213
- data/distro/common/markdown/man8/chef-client.mkd +75 -73
- data/distro/common/markdown/man8/chef-expander.mkd +81 -81
- data/distro/common/markdown/man8/chef-expanderctl.mkd +57 -57
- data/distro/common/markdown/man8/chef-server-webui.mkd +121 -121
- data/distro/common/markdown/man8/chef-server.mkd +120 -120
- data/distro/common/markdown/man8/chef-solo.mkd +107 -107
- data/distro/common/markdown/man8/chef-solr.mkd +89 -89
- data/distro/powershell/chef/chef.psm1 +327 -327
- data/ext/win32-eventlog/Rakefile +53 -53
- data/ext/win32-eventlog/chef-log.man +56 -56
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +5 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +5 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +5 -5
- data/lib/chef.rb +35 -35
- data/lib/chef/api_client.rb +233 -233
- data/lib/chef/api_client/registration.rb +192 -192
- data/lib/chef/api_client_v1.rb +325 -325
- data/lib/chef/application.rb +342 -342
- data/lib/chef/application/apply.rb +221 -221
- data/lib/chef/application/client.rb +513 -501
- data/lib/chef/application/knife.rb +208 -208
- data/lib/chef/application/solo.rb +334 -330
- data/lib/chef/application/windows_service.rb +338 -338
- data/lib/chef/application/windows_service_manager.rb +202 -202
- data/lib/chef/applications.rb +4 -4
- data/lib/chef/audit/audit_event_proxy.rb +93 -93
- data/lib/chef/audit/audit_reporter.rb +172 -172
- data/lib/chef/audit/control_group_data.rb +139 -139
- data/lib/chef/audit/logger.rb +36 -36
- data/lib/chef/audit/rspec_formatter.rb +37 -37
- data/lib/chef/audit/runner.rb +196 -196
- data/lib/chef/chef_class.rb +228 -228
- data/lib/chef/chef_fs.rb +59 -59
- data/lib/chef/chef_fs/chef_fs_data_store.rb +871 -856
- data/lib/chef/chef_fs/command_line.rb +285 -285
- data/lib/chef/chef_fs/config.rb +283 -282
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -26
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +39 -39
- data/lib/chef/chef_fs/data_handler/client_key_data_handler.rb +11 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +35 -29
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -38
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +62 -56
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +204 -202
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +55 -55
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -36
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +36 -30
- data/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/organization_members_data_handler.rb +17 -17
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +48 -42
- data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +33 -27
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -40
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +29 -29
- data/lib/chef/chef_fs/file_pattern.rb +301 -301
- data/lib/chef/chef_fs/file_system.rb +429 -429
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -47
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +183 -183
- data/lib/chef/chef_fs/file_system/chef_server/acl_dir.rb +65 -65
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +60 -60
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +75 -75
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +196 -196
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifact_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +102 -102
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +222 -222
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +84 -84
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +61 -61
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_acl_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +102 -102
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +71 -71
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +69 -69
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +57 -57
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +53 -53
- data/lib/chef/chef_fs/file_system/chef_server/org_entry.rb +31 -31
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +61 -61
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +60 -60
- data/lib/chef/chef_fs/file_system/chef_server/policies_acl_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +160 -160
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +137 -137
- data/lib/chef/chef_fs/file_system/chef_server/policy_groups_dir.rb +43 -43
- data/lib/chef/chef_fs/file_system/chef_server/policy_revision_entry.rb +34 -34
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +178 -178
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +187 -187
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbook_dir.rb +45 -45
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +107 -107
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +32 -32
- data/lib/chef/chef_fs/file_system/file_system_error.rb +44 -44
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +53 -53
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +20 -20
- data/lib/chef/chef_fs/file_system/memory/memory_root.rb +23 -23
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +64 -64
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -36
- data/lib/chef/chef_fs/file_system/not_found_error.rb +28 -28
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +42 -42
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +46 -46
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +39 -39
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_data_bags_dir.rb → chef_repository_file_system_client_keys_dir.rb} +38 -38
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +41 -41
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +146 -95
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +176 -82
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +83 -83
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +38 -38
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +214 -210
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +42 -42
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_cookbook_artifacts_dir.rb → cookbook_artifacts_dir.rb} +36 -34
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/repository/data_bag.rb +39 -0
- data/lib/chef/chef_fs/file_system/repository/data_bag_item.rb +114 -0
- data/lib/chef/chef_fs/file_system/repository/data_bags_dir.rb +39 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +139 -0
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +117 -117
- data/lib/chef/chef_fs/file_system/repository/file_system_root_dir.rb +33 -33
- data/lib/chef/chef_fs/file_system/repository/{chef_repository_file_system_versioned_cookbooks_dir.rb → versioned_cookbooks_dir.rb} +34 -34
- data/lib/chef/chef_fs/knife.rb +161 -161
- data/lib/chef/chef_fs/parallelizer.rb +105 -105
- data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +35 -35
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +281 -281
- data/lib/chef/chef_fs/path_utils.rb +127 -127
- data/lib/chef/client.rb +967 -967
- data/lib/chef/config.rb +85 -85
- data/lib/chef/config_fetcher.rb +72 -72
- data/lib/chef/constants.rb +28 -28
- data/lib/chef/cookbook/chefignore.rb +74 -74
- data/lib/chef/cookbook/cookbook_collection.rb +63 -58
- data/lib/chef/cookbook/cookbook_version_loader.rb +352 -301
- data/lib/chef/cookbook/file_system_file_vendor.rb +59 -59
- data/lib/chef/cookbook/file_vendor.rb +71 -71
- data/lib/chef/cookbook/gem_installer.rb +118 -0
- data/lib/chef/cookbook/metadata.rb +904 -886
- data/lib/chef/cookbook/remote_file_vendor.rb +87 -87
- data/lib/chef/cookbook/synchronizer.rb +298 -294
- data/lib/chef/cookbook/syntax_check.rb +260 -260
- data/lib/chef/cookbook_loader.rb +200 -182
- data/lib/chef/cookbook_manifest.rb +290 -290
- data/lib/chef/cookbook_site_streaming_uploader.rb +244 -244
- data/lib/chef/cookbook_uploader.rb +157 -157
- data/lib/chef/cookbook_version.rb +631 -627
- data/lib/chef/daemon.rb +131 -131
- data/lib/chef/data_bag.rb +176 -175
- data/lib/chef/data_bag_item.rb +218 -218
- data/lib/chef/delayed_evaluator.rb +21 -21
- data/lib/chef/deprecation/mixin/template.rb +48 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +54 -54
- data/lib/chef/deprecation/provider/file.rb +198 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +52 -52
- data/lib/chef/deprecation/provider/remote_file.rb +85 -85
- data/lib/chef/deprecation/provider/template.rb +63 -63
- data/lib/chef/deprecation/warnings.rb +38 -38
- data/lib/chef/digester.rb +74 -74
- data/lib/chef/dsl.rb +6 -6
- data/lib/chef/dsl/audit.rb +51 -51
- data/lib/chef/dsl/chef_provisioning.rb +57 -57
- data/lib/chef/dsl/cheffish.rb +64 -64
- data/lib/chef/dsl/data_query.rb +89 -89
- data/lib/chef/dsl/declare_resource.rb +108 -108
- data/lib/chef/dsl/definitions.rb +43 -43
- data/lib/chef/dsl/include_attribute.rb +61 -61
- data/lib/chef/dsl/include_recipe.rb +44 -44
- data/lib/chef/dsl/platform_introspection.rb +254 -254
- data/lib/chef/dsl/powershell.rb +29 -29
- data/lib/chef/dsl/reboot_pending.rb +64 -64
- data/lib/chef/dsl/recipe.rb +134 -134
- data/lib/chef/dsl/registry_helper.rb +63 -63
- data/lib/chef/dsl/resources.rb +58 -58
- data/lib/chef/encrypted_data_bag_item.rb +155 -155
- data/lib/chef/encrypted_data_bag_item/assertions.rb +54 -54
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +56 -56
- data/lib/chef/encrypted_data_bag_item/decryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +227 -227
- data/lib/chef/encrypted_data_bag_item/encrypted_data_bag_item_assertions.rb +37 -37
- data/lib/chef/encrypted_data_bag_item/encryption_failure.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +225 -225
- data/lib/chef/encrypted_data_bag_item/unacceptable_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_cipher.rb +22 -22
- data/lib/chef/encrypted_data_bag_item/unsupported_encrypted_data_bag_item_format.rb +22 -22
- data/lib/chef/environment.rb +326 -326
- data/lib/chef/event_dispatch/base.rb +420 -400
- data/lib/chef/event_dispatch/dispatcher.rb +62 -62
- data/lib/chef/event_dispatch/dsl.rb +65 -65
- data/lib/chef/event_dispatch/events_output_stream.rb +37 -37
- data/lib/chef/event_loggers/base.rb +62 -62
- data/lib/chef/event_loggers/windows_eventlog.rb +101 -101
- data/lib/chef/exceptions.rb +504 -504
- data/lib/chef/file_access_control.rb +75 -75
- data/lib/chef/file_access_control/unix.rb +290 -290
- data/lib/chef/file_access_control/windows.rb +335 -335
- data/lib/chef/file_cache.rb +221 -221
- data/lib/chef/file_content_management/content_base.rb +56 -56
- data/lib/chef/file_content_management/deploy.rb +37 -37
- data/lib/chef/file_content_management/deploy/cp.rb +48 -48
- data/lib/chef/file_content_management/deploy/mv_unix.rb +76 -76
- data/lib/chef/file_content_management/deploy/mv_windows.rb +103 -103
- data/lib/chef/file_content_management/tempfile.rb +97 -96
- data/lib/chef/formatters/base.rb +237 -237
- data/lib/chef/formatters/doc.rb +422 -396
- data/lib/chef/formatters/error_descriptor.rb +67 -67
- data/lib/chef/formatters/error_inspectors.rb +19 -19
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +184 -184
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +154 -154
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +168 -168
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +82 -82
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +128 -128
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +147 -147
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +124 -124
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +121 -121
- data/lib/chef/formatters/error_mapper.rb +85 -85
- data/lib/chef/formatters/indentable_output_stream.rb +170 -170
- data/lib/chef/formatters/minimal.rb +233 -233
- data/lib/chef/guard_interpreter.rb +32 -32
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +43 -43
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +138 -138
- data/lib/chef/handler.rb +235 -235
- data/lib/chef/handler/error_report.rb +33 -33
- data/lib/chef/handler/json_file.rb +63 -63
- data/lib/chef/http.rb +430 -427
- data/lib/chef/http/auth_credentials.rb +57 -57
- data/lib/chef/http/authenticator.rb +106 -106
- data/lib/chef/http/basic_client.rb +169 -169
- data/lib/chef/http/cookie_jar.rb +31 -31
- data/lib/chef/http/cookie_manager.rb +59 -59
- data/lib/chef/http/decompressor.rb +142 -142
- data/lib/chef/http/http_request.rb +186 -186
- data/lib/chef/http/json_input.rb +73 -73
- data/lib/chef/http/json_output.rb +78 -78
- data/lib/chef/http/json_to_model_output.rb +34 -34
- data/lib/chef/http/remote_request_id.rb +46 -46
- data/lib/chef/http/simple.rb +40 -40
- data/lib/chef/http/simple_json.rb +43 -43
- data/lib/chef/http/socketless_chef_zero_client.rb +207 -206
- data/lib/chef/http/ssl_policies.rb +130 -130
- data/lib/chef/http/validate_content_length.rb +115 -110
- data/lib/chef/json_compat.rb +164 -164
- data/lib/chef/key.rb +273 -273
- data/lib/chef/knife.rb +587 -580
- data/lib/chef/knife/bootstrap.rb +480 -480
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +159 -159
- data/lib/chef/knife/bootstrap/client_builder.rb +208 -208
- data/lib/chef/knife/bootstrap/templates/README.md +11 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +236 -231
- data/lib/chef/knife/client_bulk_delete.rb +104 -104
- data/lib/chef/knife/client_create.rb +111 -111
- data/lib/chef/knife/client_delete.rb +60 -60
- data/lib/chef/knife/client_edit.rb +53 -53
- data/lib/chef/knife/client_key_create.rb +67 -67
- data/lib/chef/knife/client_key_delete.rb +76 -76
- data/lib/chef/knife/client_key_edit.rb +79 -79
- data/lib/chef/knife/client_key_list.rb +69 -69
- data/lib/chef/knife/client_key_show.rb +76 -76
- data/lib/chef/knife/client_list.rb +42 -42
- data/lib/chef/knife/client_reregister.rb +59 -59
- data/lib/chef/knife/client_show.rb +49 -49
- data/lib/chef/knife/configure.rb +171 -171
- data/lib/chef/knife/configure_client.rb +50 -50
- data/lib/chef/knife/cookbook_bulk_delete.rb +71 -71
- data/lib/chef/knife/cookbook_create.rb +448 -448
- data/lib/chef/knife/cookbook_delete.rb +151 -151
- data/lib/chef/knife/cookbook_download.rb +143 -143
- data/lib/chef/knife/cookbook_list.rb +47 -47
- data/lib/chef/knife/cookbook_metadata.rb +108 -108
- data/lib/chef/knife/cookbook_metadata_from_file.rb +44 -44
- data/lib/chef/knife/cookbook_show.rb +98 -98
- data/lib/chef/knife/cookbook_site_download.rb +109 -109
- data/lib/chef/knife/cookbook_site_install.rb +192 -192
- data/lib/chef/knife/cookbook_site_list.rb +58 -58
- data/lib/chef/knife/cookbook_site_search.rb +46 -46
- data/lib/chef/knife/cookbook_site_share.rb +169 -169
- data/lib/chef/knife/cookbook_site_show.rb +55 -55
- data/lib/chef/knife/cookbook_site_unshare.rb +56 -56
- data/lib/chef/knife/cookbook_site_vendor.rb +46 -46
- data/lib/chef/knife/cookbook_test.rb +95 -95
- data/lib/chef/knife/cookbook_upload.rb +308 -310
- data/lib/chef/knife/core/bootstrap_context.rb +233 -200
- data/lib/chef/knife/core/cookbook_scm_repo.rb +159 -159
- data/lib/chef/knife/core/custom_manifest_loader.rb +69 -69
- data/lib/chef/knife/core/gem_glob_loader.rb +138 -138
- data/lib/chef/knife/core/generic_presenter.rb +222 -222
- data/lib/chef/knife/core/hashed_command_loader.rb +99 -80
- data/lib/chef/knife/core/node_editor.rb +130 -130
- data/lib/chef/knife/core/node_presenter.rb +159 -159
- data/lib/chef/knife/core/object_loader.rb +115 -115
- data/lib/chef/knife/core/status_presenter.rb +157 -157
- data/lib/chef/knife/core/subcommand_loader.rb +212 -206
- data/lib/chef/knife/core/text_formatter.rb +85 -85
- data/lib/chef/knife/core/ui.rb +284 -275
- data/lib/chef/knife/data_bag_create.rb +78 -78
- data/lib/chef/knife/data_bag_delete.rb +49 -49
- data/lib/chef/knife/data_bag_edit.rb +74 -74
- data/lib/chef/knife/data_bag_from_file.rb +114 -114
- data/lib/chef/knife/data_bag_list.rb +42 -42
- data/lib/chef/knife/data_bag_secret_options.rb +142 -142
- data/lib/chef/knife/data_bag_show.rb +69 -69
- data/lib/chef/knife/delete.rb +107 -107
- data/lib/chef/knife/deps.rb +140 -140
- data/lib/chef/knife/diff.rb +68 -68
- data/lib/chef/knife/download.rb +68 -68
- data/lib/chef/knife/edit.rb +72 -72
- data/lib/chef/knife/environment_compare.rb +127 -127
- data/lib/chef/knife/environment_create.rb +53 -53
- data/lib/chef/knife/environment_delete.rb +45 -45
- data/lib/chef/knife/environment_edit.rb +45 -45
- data/lib/chef/knife/environment_from_file.rb +82 -82
- data/lib/chef/knife/environment_list.rb +42 -42
- data/lib/chef/knife/environment_show.rb +48 -48
- data/lib/chef/knife/exec.rb +87 -87
- data/lib/chef/knife/help.rb +101 -101
- data/lib/chef/knife/help_topics.rb +4 -4
- data/lib/chef/knife/index_rebuild.rb +133 -133
- data/lib/chef/knife/key_create.rb +112 -108
- data/lib/chef/knife/key_create_base.rb +50 -50
- data/lib/chef/knife/key_delete.rb +55 -55
- data/lib/chef/knife/key_edit.rb +118 -114
- data/lib/chef/knife/key_edit_base.rb +55 -55
- data/lib/chef/knife/key_list.rb +88 -88
- data/lib/chef/knife/key_list_base.rb +45 -45
- data/lib/chef/knife/key_show.rb +53 -53
- data/lib/chef/knife/list.rb +157 -157
- data/lib/chef/knife/node_bulk_delete.rb +74 -74
- data/lib/chef/knife/node_create.rb +47 -47
- data/lib/chef/knife/node_delete.rb +46 -46
- data/lib/chef/knife/node_edit.rb +70 -70
- data/lib/chef/knife/node_environment_set.rb +54 -54
- data/lib/chef/knife/node_from_file.rb +51 -51
- data/lib/chef/knife/node_list.rb +44 -44
- data/lib/chef/knife/node_run_list_add.rb +104 -104
- data/lib/chef/knife/node_run_list_remove.rb +67 -67
- data/lib/chef/knife/node_run_list_set.rb +66 -66
- data/lib/chef/knife/node_show.rb +66 -66
- data/lib/chef/knife/null.rb +10 -10
- data/lib/chef/knife/osc_user_create.rb +97 -97
- data/lib/chef/knife/osc_user_delete.rb +51 -51
- data/lib/chef/knife/osc_user_edit.rb +58 -58
- data/lib/chef/knife/osc_user_list.rb +47 -47
- data/lib/chef/knife/osc_user_reregister.rb +64 -64
- data/lib/chef/knife/osc_user_show.rb +54 -54
- data/lib/chef/knife/raw.rb +103 -103
- data/lib/chef/knife/recipe_list.rb +32 -32
- data/lib/chef/knife/rehash.rb +65 -62
- data/lib/chef/knife/role_bulk_delete.rb +65 -65
- data/lib/chef/knife/role_create.rb +53 -53
- data/lib/chef/knife/role_delete.rb +46 -46
- data/lib/chef/knife/role_edit.rb +45 -45
- data/lib/chef/knife/role_env_run_list_add.rb +86 -86
- data/lib/chef/knife/role_env_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_env_run_list_remove.rb +57 -57
- data/lib/chef/knife/role_env_run_list_replace.rb +59 -59
- data/lib/chef/knife/role_env_run_list_set.rb +70 -70
- data/lib/chef/knife/role_from_file.rb +51 -51
- data/lib/chef/knife/role_list.rb +42 -42
- data/lib/chef/knife/role_run_list_add.rb +86 -86
- data/lib/chef/knife/role_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_run_list_remove.rb +57 -57
- data/lib/chef/knife/role_run_list_replace.rb +59 -59
- data/lib/chef/knife/role_run_list_set.rb +70 -70
- data/lib/chef/knife/role_show.rb +49 -49
- data/lib/chef/knife/search.rb +201 -201
- data/lib/chef/knife/serve.rb +48 -48
- data/lib/chef/knife/show.rb +56 -56
- data/lib/chef/knife/ssh.rb +572 -575
- data/lib/chef/knife/ssl_check.rb +281 -281
- data/lib/chef/knife/ssl_fetch.rb +157 -157
- data/lib/chef/knife/status.rb +110 -110
- data/lib/chef/knife/tag_create.rb +52 -52
- data/lib/chef/knife/tag_delete.rb +60 -60
- data/lib/chef/knife/tag_list.rb +47 -47
- data/lib/chef/knife/upload.rb +70 -70
- data/lib/chef/knife/user_create.rb +150 -150
- data/lib/chef/knife/user_delete.rb +95 -95
- data/lib/chef/knife/user_edit.rb +81 -81
- data/lib/chef/knife/user_key_create.rb +69 -69
- data/lib/chef/knife/user_key_delete.rb +76 -76
- data/lib/chef/knife/user_key_edit.rb +79 -79
- data/lib/chef/knife/user_key_list.rb +69 -69
- data/lib/chef/knife/user_key_show.rb +76 -76
- data/lib/chef/knife/user_list.rb +45 -45
- data/lib/chef/knife/user_reregister.rb +89 -89
- data/lib/chef/knife/user_show.rb +78 -78
- data/lib/chef/knife/xargs.rb +266 -266
- data/lib/chef/local_mode.rb +128 -128
- data/lib/chef/log.rb +68 -68
- data/lib/chef/log/syslog.rb +45 -45
- data/lib/chef/log/winevt.rb +99 -99
- data/lib/chef/mash.rb +226 -226
- data/lib/chef/mixin/api_version_request_handling.rb +66 -66
- data/lib/chef/mixin/checksum.rb +32 -32
- data/lib/chef/mixin/command.rb +193 -192
- data/lib/chef/mixin/command/unix.rb +220 -220
- data/lib/chef/mixin/command/windows.rb +71 -71
- data/lib/chef/mixin/convert_to_class_name.rb +126 -126
- data/lib/chef/mixin/create_path.rb +73 -73
- data/lib/chef/mixin/deep_merge.rb +140 -140
- data/lib/chef/mixin/deprecation.rb +123 -123
- data/lib/chef/mixin/descendants_tracker.rb +81 -81
- data/lib/chef/mixin/enforce_ownership_and_permissions.rb +39 -39
- data/lib/chef/mixin/file_class.rb +35 -35
- data/lib/chef/mixin/from_file.rb +50 -50
- data/lib/chef/mixin/get_source_from_package.rb +47 -47
- data/lib/chef/mixin/homebrew_user.rb +68 -68
- data/lib/chef/mixin/language.rb +48 -48
- data/lib/chef/mixin/language_include_attribute.rb +34 -34
- data/lib/chef/mixin/language_include_recipe.rb +31 -31
- data/lib/chef/mixin/params_validate.rb +489 -489
- data/lib/chef/mixin/path_sanity.rb +68 -68
- data/lib/chef/mixin/powershell_out.rb +98 -98
- data/lib/chef/mixin/powershell_type_coercions.rb +84 -84
- data/lib/chef/mixin/properties.rb +303 -302
- data/lib/chef/mixin/provides.rb +28 -27
- data/lib/chef/mixin/proxified_socket.rb +38 -38
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +35 -35
- data/lib/chef/mixin/securable.rb +196 -196
- data/lib/chef/mixin/shell_out.rb +117 -117
- data/lib/chef/mixin/subclass_directive.rb +37 -37
- data/lib/chef/mixin/template.rb +262 -262
- data/lib/chef/mixin/unformatter.rb +32 -32
- data/lib/chef/mixin/uris.rb +43 -43
- data/lib/chef/mixin/which.rb +37 -37
- data/lib/chef/mixin/why_run.rb +331 -331
- data/lib/chef/mixin/wide_string.rb +72 -72
- data/lib/chef/mixin/windows_architecture_helper.rb +114 -114
- data/lib/chef/mixin/windows_env_helper.rb +67 -67
- data/lib/chef/mixin/xml_escape.rb +140 -140
- data/lib/chef/mixins.rb +13 -13
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -140
- data/lib/chef/monkey_patches/net_http.rb +60 -60
- data/lib/chef/monkey_patches/webrick-utils.rb +51 -51
- data/lib/chef/monkey_patches/win32/registry.rb +72 -72
- data/lib/chef/monologger.rb +88 -88
- data/lib/chef/nil_argument.rb +3 -3
- data/lib/chef/node.rb +700 -700
- data/lib/chef/node/attribute.rb +586 -586
- data/lib/chef/node/attribute_collections.rb +323 -323
- data/lib/chef/node/immutable_collections.rb +219 -219
- data/lib/chef/node_map.rb +222 -222
- data/lib/chef/null_logger.rb +72 -72
- data/lib/chef/org.rb +149 -149
- data/lib/chef/platform.rb +30 -30
- data/lib/chef/platform/handler_map.rb +40 -40
- data/lib/chef/platform/priority_map.rb +41 -41
- data/lib/chef/platform/provider_handler_map.rb +29 -29
- data/lib/chef/platform/provider_mapping.rb +214 -214
- data/lib/chef/platform/provider_priority_map.rb +11 -11
- data/lib/chef/platform/query_helpers.rb +112 -112
- data/lib/chef/platform/rebooter.rb +54 -54
- data/lib/chef/platform/resource_handler_map.rb +29 -29
- data/lib/chef/platform/resource_priority_map.rb +11 -11
- data/lib/chef/platform/service_helpers.rb +122 -122
- data/lib/chef/policy_builder.rb +42 -42
- data/lib/chef/policy_builder/dynamic.rb +185 -185
- data/lib/chef/policy_builder/expand_node_object.rb +278 -274
- data/lib/chef/policy_builder/policyfile.rb +527 -525
- data/lib/chef/property.rb +673 -673
- data/lib/chef/provider.rb +461 -461
- data/lib/chef/provider/apt_update.rb +79 -79
- data/lib/chef/provider/batch.rb +45 -45
- data/lib/chef/provider/breakpoint.rb +38 -38
- data/lib/chef/provider/cookbook_file.rb +53 -53
- data/lib/chef/provider/cookbook_file/content.rb +49 -49
- data/lib/chef/provider/cron.rb +263 -263
- data/lib/chef/provider/cron/aix.rb +50 -50
- data/lib/chef/provider/cron/solaris.rb +22 -22
- data/lib/chef/provider/cron/unix.rb +83 -83
- data/lib/chef/provider/deploy.rb +476 -476
- data/lib/chef/provider/deploy/revision.rb +109 -109
- data/lib/chef/provider/deploy/timestamped.rb +34 -34
- data/lib/chef/provider/directory.rb +152 -152
- data/lib/chef/provider/dsc_resource.rb +197 -200
- data/lib/chef/provider/dsc_script.rb +185 -185
- data/lib/chef/provider/env.rb +169 -169
- data/lib/chef/provider/env/windows.rb +72 -72
- data/lib/chef/provider/erl_call.rb +108 -108
- data/lib/chef/provider/execute.rb +125 -125
- data/lib/chef/provider/file.rb +495 -495
- data/lib/chef/provider/file/content.rb +39 -39
- data/lib/chef/provider/git.rb +332 -332
- data/lib/chef/provider/group.rb +183 -183
- data/lib/chef/provider/group/aix.rb +86 -86
- data/lib/chef/provider/group/dscl.rb +170 -170
- data/lib/chef/provider/group/gpasswd.rb +58 -58
- data/lib/chef/provider/group/groupadd.rb +137 -137
- data/lib/chef/provider/group/groupmod.rb +128 -128
- data/lib/chef/provider/group/pw.rb +140 -140
- data/lib/chef/provider/group/suse.rb +62 -62
- data/lib/chef/provider/group/usermod.rb +91 -91
- data/lib/chef/provider/group/windows.rb +98 -98
- data/lib/chef/provider/http_request.rb +122 -122
- data/lib/chef/provider/ifconfig.rb +226 -226
- data/lib/chef/provider/ifconfig/aix.rb +99 -99
- data/lib/chef/provider/ifconfig/debian.rb +84 -84
- data/lib/chef/provider/ifconfig/redhat.rb +48 -48
- data/lib/chef/provider/launchd.rb +208 -0
- data/lib/chef/provider/link.rb +159 -159
- data/lib/chef/provider/log.rb +57 -57
- data/lib/chef/provider/lwrp_base.rb +99 -99
- data/lib/chef/provider/mdadm.rb +92 -92
- data/lib/chef/provider/mount.rb +173 -173
- data/lib/chef/provider/mount/aix.rb +180 -180
- data/lib/chef/provider/mount/mount.rb +270 -270
- data/lib/chef/provider/mount/solaris.rb +271 -271
- data/lib/chef/provider/mount/windows.rb +86 -86
- data/lib/chef/provider/ohai.rb +49 -49
- data/lib/chef/provider/osx_profile.rb +256 -256
- data/lib/chef/provider/package.rb +565 -565
- data/lib/chef/provider/package/aix.rb +136 -136
- data/lib/chef/provider/package/apt.rb +185 -185
- data/lib/chef/provider/package/chocolatey.rb +275 -277
- data/lib/chef/provider/package/dpkg.rb +226 -226
- data/lib/chef/provider/package/easy_install.rb +133 -133
- data/lib/chef/provider/package/freebsd/base.rb +89 -89
- data/lib/chef/provider/package/freebsd/pkg.rb +114 -114
- data/lib/chef/provider/package/freebsd/pkgng.rb +78 -78
- data/lib/chef/provider/package/freebsd/port.rb +60 -60
- data/lib/chef/provider/package/homebrew.rb +137 -137
- data/lib/chef/provider/package/ips.rb +91 -91
- data/lib/chef/provider/package/macports.rb +101 -101
- data/lib/chef/provider/package/openbsd.rb +136 -136
- data/lib/chef/provider/package/pacman.rb +104 -104
- data/lib/chef/provider/package/paludis.rb +86 -86
- data/lib/chef/provider/package/portage.rb +140 -140
- data/lib/chef/provider/package/rpm.rb +123 -123
- data/lib/chef/provider/package/rubygems.rb +586 -586
- data/lib/chef/provider/package/smartos.rb +92 -92
- data/lib/chef/provider/package/solaris.rb +138 -138
- data/lib/chef/provider/package/windows.rb +269 -260
- data/lib/chef/provider/package/windows/exe.rb +117 -117
- data/lib/chef/provider/package/windows/msi.rb +93 -93
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +89 -89
- data/lib/chef/provider/package/yum-dump.py +307 -307
- data/lib/chef/provider/package/yum.rb +1421 -1421
- data/lib/chef/provider/package/zypper.rb +143 -143
- data/lib/chef/provider/powershell_script.rb +215 -215
- data/lib/chef/provider/reboot.rb +70 -70
- data/lib/chef/provider/registry_key.rb +155 -155
- data/lib/chef/provider/remote_directory.rb +281 -281
- data/lib/chef/provider/remote_file.rb +53 -53
- data/lib/chef/provider/remote_file/cache_control_data.rb +195 -195
- data/lib/chef/provider/remote_file/content.rb +81 -81
- data/lib/chef/provider/remote_file/fetcher.rb +55 -55
- data/lib/chef/provider/remote_file/ftp.rb +183 -183
- data/lib/chef/provider/remote_file/http.rb +117 -117
- data/lib/chef/provider/remote_file/local_file.rb +60 -60
- data/lib/chef/provider/remote_file/network_file.rb +48 -48
- data/lib/chef/provider/resource_update.rb +52 -52
- data/lib/chef/provider/route.rb +229 -229
- data/lib/chef/provider/ruby_block.rb +44 -44
- data/lib/chef/provider/script.rb +85 -85
- data/lib/chef/provider/service.rb +250 -212
- data/lib/chef/provider/service/aix.rb +129 -129
- data/lib/chef/provider/service/aixinit.rb +117 -117
- data/lib/chef/provider/service/arch.rb +118 -118
- data/lib/chef/provider/service/debian.rb +182 -182
- data/lib/chef/provider/service/freebsd.rb +195 -195
- data/lib/chef/provider/service/gentoo.rb +71 -71
- data/lib/chef/provider/service/init.rb +94 -94
- data/lib/chef/provider/service/insserv.rb +59 -59
- data/lib/chef/provider/service/invokercd.rb +41 -41
- data/lib/chef/provider/service/macosx.rb +250 -250
- data/lib/chef/provider/service/openbsd.rb +217 -217
- data/lib/chef/provider/service/redhat.rb +120 -120
- data/lib/chef/provider/service/simple.rb +175 -175
- data/lib/chef/provider/service/solaris.rb +117 -117
- data/lib/chef/provider/service/systemd.rb +155 -139
- data/lib/chef/provider/service/upstart.rb +242 -242
- data/lib/chef/provider/service/windows.rb +313 -313
- data/lib/chef/provider/subversion.rb +221 -221
- data/lib/chef/provider/template.rb +65 -65
- data/lib/chef/provider/template/content.rb +70 -70
- data/lib/chef/provider/template_finder.rb +62 -62
- data/lib/chef/provider/user.rb +211 -211
- data/lib/chef/provider/user/aix.rb +97 -97
- data/lib/chef/provider/user/dscl.rb +710 -710
- data/lib/chef/provider/user/pw.rb +114 -114
- data/lib/chef/provider/user/solaris.rb +121 -121
- data/lib/chef/provider/user/useradd.rb +163 -163
- data/lib/chef/provider/user/windows.rb +128 -128
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +32 -32
- data/lib/chef/provider/windows_script.rb +72 -72
- data/lib/chef/provider_resolver.rb +170 -170
- data/lib/chef/providers.rb +142 -141
- data/lib/chef/recipe.rb +119 -119
- data/lib/chef/request_id.rb +37 -37
- data/lib/chef/reserved_names.rb +9 -9
- data/lib/chef/resource.rb +1581 -1581
- data/lib/chef/resource/action_class.rb +87 -87
- data/lib/chef/resource/apt_package.rb +32 -32
- data/lib/chef/resource/apt_update.rb +33 -33
- data/lib/chef/resource/bash.rb +33 -33
- data/lib/chef/resource/batch.rb +33 -33
- data/lib/chef/resource/bff_package.rb +27 -27
- data/lib/chef/resource/breakpoint.rb +32 -32
- data/lib/chef/resource/chef_gem.rb +51 -51
- data/lib/chef/resource/chocolatey_package.rb +39 -39
- data/lib/chef/resource/conditional.rb +127 -127
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -48
- data/lib/chef/resource/cookbook_file.rb +49 -49
- data/lib/chef/resource/cron.rb +216 -216
- data/lib/chef/resource/csh.rb +33 -33
- data/lib/chef/resource/deploy.rb +443 -443
- data/lib/chef/resource/deploy_revision.rb +31 -31
- data/lib/chef/resource/directory.rb +62 -62
- data/lib/chef/resource/dpkg_package.rb +30 -30
- data/lib/chef/resource/dsc_resource.rb +121 -121
- data/lib/chef/resource/dsc_script.rb +140 -140
- data/lib/chef/resource/easy_install_package.rb +32 -32
- data/lib/chef/resource/env.rb +65 -65
- data/lib/chef/resource/erl_call.rb +85 -85
- data/lib/chef/resource/execute.rb +172 -172
- data/lib/chef/resource/file.rb +83 -83
- data/lib/chef/resource/file/verification.rb +128 -128
- data/lib/chef/resource/freebsd_package.rb +62 -62
- data/lib/chef/resource/gem_package.rb +41 -41
- data/lib/chef/resource/git.rb +44 -44
- data/lib/chef/resource/group.rb +102 -102
- data/lib/chef/resource/homebrew_package.rb +34 -34
- data/lib/chef/resource/http_request.rb +66 -66
- data/lib/chef/resource/ifconfig.rb +147 -147
- data/lib/chef/resource/ips_package.rb +34 -34
- data/lib/chef/resource/ksh.rb +32 -32
- data/lib/chef/resource/launchd.rb +104 -0
- data/lib/chef/resource/link.rb +107 -107
- data/lib/chef/resource/log.rb +76 -76
- data/lib/chef/resource/lwrp_base.rb +124 -124
- data/lib/chef/resource/macosx_service.rb +58 -58
- data/lib/chef/resource/macports_package.rb +27 -27
- data/lib/chef/resource/mdadm.rb +103 -103
- data/lib/chef/resource/mount.rb +187 -187
- data/lib/chef/resource/ohai.rb +53 -53
- data/lib/chef/resource/openbsd_package.rb +35 -35
- data/lib/chef/resource/osx_profile.rb +74 -74
- data/lib/chef/resource/package.rb +47 -47
- data/lib/chef/resource/pacman_package.rb +28 -28
- data/lib/chef/resource/paludis_package.rb +33 -33
- data/lib/chef/resource/perl.rb +32 -32
- data/lib/chef/resource/portage_package.rb +32 -32
- data/lib/chef/resource/powershell_script.rb +50 -50
- data/lib/chef/resource/python.rb +31 -31
- data/lib/chef/resource/reboot.rb +48 -48
- data/lib/chef/resource/registry_key.rb +144 -144
- data/lib/chef/resource/remote_directory.rb +122 -122
- data/lib/chef/resource/remote_file.rb +149 -149
- data/lib/chef/resource/resource_notification.rb +122 -122
- data/lib/chef/resource/route.rb +137 -137
- data/lib/chef/resource/rpm_package.rb +32 -32
- data/lib/chef/resource/ruby.rb +31 -31
- data/lib/chef/resource/ruby_block.rb +53 -53
- data/lib/chef/resource/scm.rb +185 -185
- data/lib/chef/resource/script.rb +74 -74
- data/lib/chef/resource/service.rb +208 -197
- data/lib/chef/resource/smartos_package.rb +29 -29
- data/lib/chef/resource/solaris_package.rb +31 -31
- data/lib/chef/resource/subversion.rb +44 -44
- data/lib/chef/resource/template.rb +215 -215
- data/lib/chef/resource/timestamped_deploy.rb +26 -26
- data/lib/chef/resource/user.rb +160 -160
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +24 -24
- data/lib/chef/resource/windows_package.rb +55 -55
- data/lib/chef/resource/windows_script.rb +65 -65
- data/lib/chef/resource/windows_service.rb +71 -71
- data/lib/chef/resource/yum_package.rb +47 -47
- data/lib/chef/resource/zypper_package.rb +28 -28
- data/lib/chef/resource_builder.rb +151 -151
- data/lib/chef/resource_collection.rb +89 -89
- data/lib/chef/resource_collection/resource_collection_serialization.rb +59 -59
- data/lib/chef/resource_collection/resource_list.rb +90 -89
- data/lib/chef/resource_collection/resource_set.rb +170 -170
- data/lib/chef/resource_collection/stepable_iterator.rb +124 -124
- data/lib/chef/resource_definition.rb +68 -68
- data/lib/chef/resource_definition_list.rb +38 -38
- data/lib/chef/resource_reporter.rb +327 -327
- data/lib/chef/resource_resolver.rb +185 -185
- data/lib/chef/resources.rb +88 -87
- data/lib/chef/rest.rb +209 -209
- data/lib/chef/role.rb +280 -280
- data/lib/chef/run_context.rb +670 -670
- data/lib/chef/run_context/cookbook_compiler.rb +289 -289
- data/lib/chef/run_list.rb +168 -166
- data/lib/chef/run_list/run_list_expansion.rb +234 -234
- data/lib/chef/run_list/run_list_item.rb +98 -98
- data/lib/chef/run_list/versioned_recipe_list.rb +102 -102
- data/lib/chef/run_lock.rb +197 -197
- data/lib/chef/run_status.rb +125 -125
- data/lib/chef/runner.rb +141 -141
- data/lib/chef/sandbox.rb +20 -20
- data/lib/chef/scan_access_control.rb +138 -138
- data/lib/chef/search/query.rb +180 -180
- data/lib/chef/server_api.rb +78 -78
- data/lib/chef/shell.rb +327 -322
- data/lib/chef/shell/ext.rb +593 -593
- data/lib/chef/shell/model_wrapper.rb +120 -119
- data/lib/chef/shell/shell_session.rb +299 -299
- data/lib/chef/shell_out.rb +13 -13
- data/lib/chef/tasks/chef_repo.rake +200 -200
- data/lib/chef/user.rb +199 -199
- data/lib/chef/user_v1.rb +330 -330
- data/lib/chef/util/backup.rb +94 -94
- data/lib/chef/util/diff.rb +184 -184
- data/lib/chef/util/dsc/configuration_generator.rb +139 -139
- data/lib/chef/util/dsc/lcm_output_parser.rb +137 -137
- data/lib/chef/util/dsc/local_configuration_manager.rb +141 -141
- data/lib/chef/util/dsc/resource_info.rb +26 -26
- data/lib/chef/util/dsc/resource_store.rb +109 -109
- data/lib/chef/util/editor.rb +91 -91
- data/lib/chef/util/file_edit.rb +100 -100
- data/lib/chef/util/path_helper.rb +25 -25
- data/lib/chef/util/powershell/cmdlet.rb +170 -170
- data/lib/chef/util/powershell/cmdlet_result.rb +61 -61
- data/lib/chef/util/powershell/ps_credential.rb +41 -41
- data/lib/chef/util/selinux.rb +92 -92
- data/lib/chef/util/threaded_job_queue.rb +61 -61
- data/lib/chef/util/windows.rb +24 -24
- data/lib/chef/util/windows/net_group.rb +84 -84
- data/lib/chef/util/windows/net_use.rb +85 -85
- data/lib/chef/util/windows/net_user.rb +170 -169
- data/lib/chef/util/windows/volume.rb +59 -59
- data/lib/chef/version.rb +34 -34
- data/lib/chef/version/platform.rb +44 -44
- data/lib/chef/version_class.rb +70 -70
- data/lib/chef/version_constraint.rb +118 -118
- data/lib/chef/version_constraint/platform.rb +26 -26
- data/lib/chef/whitelist.rb +86 -86
- data/lib/chef/win32/api.rb +374 -374
- data/lib/chef/win32/api/crypto.rb +63 -63
- data/lib/chef/win32/api/error.rb +953 -922
- data/lib/chef/win32/api/file.rb +625 -622
- data/lib/chef/win32/api/installer.rb +165 -165
- data/lib/chef/win32/api/memory.rb +105 -105
- data/lib/chef/win32/api/net.rb +312 -312
- data/lib/chef/win32/api/process.rb +42 -42
- data/lib/chef/win32/api/psapi.rb +51 -51
- data/lib/chef/win32/api/registry.rb +51 -51
- data/lib/chef/win32/api/security.rb +460 -460
- data/lib/chef/win32/api/synchronization.rb +89 -89
- data/lib/chef/win32/api/system.rb +238 -238
- data/lib/chef/win32/api/unicode.rb +135 -135
- data/lib/chef/win32/crypto.rb +50 -50
- data/lib/chef/win32/error.rb +86 -76
- data/lib/chef/win32/eventlog.rb +31 -31
- data/lib/chef/win32/file.rb +218 -218
- data/lib/chef/win32/file/info.rb +99 -99
- data/lib/chef/win32/file/version_info.rb +93 -93
- data/lib/chef/win32/handle.rb +55 -55
- data/lib/chef/win32/memory.rb +101 -101
- data/lib/chef/win32/mutex.rb +116 -116
- data/lib/chef/win32/net.rb +311 -311
- data/lib/chef/win32/process.rb +97 -97
- data/lib/chef/win32/registry.rb +372 -372
- data/lib/chef/win32/security.rb +665 -665
- data/lib/chef/win32/security/ace.rb +123 -123
- data/lib/chef/win32/security/acl.rb +103 -103
- data/lib/chef/win32/security/securable_object.rb +109 -109
- data/lib/chef/win32/security/security_descriptor.rb +93 -93
- data/lib/chef/win32/security/sid.rb +304 -304
- data/lib/chef/win32/security/token.rb +72 -72
- data/lib/chef/win32/system.rb +62 -62
- data/lib/chef/win32/unicode.rb +60 -60
- data/lib/chef/win32/version.rb +158 -158
- data/lib/chef/workstation_config_loader.rb +23 -23
- 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/copyright +34 -34
- 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/copyright +34 -34
- 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/changelog +5 -5
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.debhelper.log +45 -45
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2.substvars +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/control +10 -10
- data/spec/data/apt/chef-integration-test2-1.0/debian/chef-integration-test2/DEBIAN/md5sums +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/compat +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/conffiles +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/control +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/copyright +34 -34
- data/spec/data/apt/chef-integration-test2-1.0/debian/files +1 -1
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +13 -13
- data/spec/data/apt/chef-integration-test2-1.0/debian/source/format +1 -1
- data/spec/data/apt/chef-integration-test2_1.0-1.dsc +18 -18
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.build +91 -91
- data/spec/data/apt/chef-integration-test2_1.0-1_amd64.changes +31 -31
- 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/client.d_00/00-foo.rb +2 -0
- data/spec/data/client.d_00/01-bar.rb +1 -0
- data/spec/data/client.d_00/bar +1 -0
- data/spec/data/client.d_01/foo/bar.rb +1 -0
- data/spec/data/client.d_02/foo.rb/foo.txt +1 -0
- 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/name-mismatch-versionnumber/recipes/default.rb +8 -8
- data/spec/data/cookbooks/openldap/.root_dotfile +0 -0
- 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/spec/spec_helper.rb +0 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/helpers.erb +14 -14
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/nested_partial.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/cookbooks/supports-platform-constraints/metadata.rb +5 -5
- 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/incomplete-metadata-chef-repo/incomplete-metadata/recipes/default.rb +8 -8
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/README.md +4 -4
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/metadata.rb +9 -9
- data/spec/data/invalid-metadata-chef-repo/invalid-metadata/recipes/default.rb +8 -8
- 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/buck_passer.rb +28 -28
- data/spec/data/lwrp/providers/buck_passer_2.rb +26 -26
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +28 -28
- 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/bar.rb +2 -2
- 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/lwrp_override/resources/foo.rb +10 -10
- 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/nested.json +2 -2
- 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/attributes/default.rb +4 -4
- 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/attributes/default.rb +3 -3
- 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/attributes/aa_first.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -3
- 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/attributes/default.rb +3 -3
- 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/include/recipes/default.rb +24 -24
- data/spec/data/run_context/cookbooks/include/recipes/includee.rb +3 -3
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -3
- 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/attributes/default.rb +3 -3
- 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/attributes/default.rb +3 -3
- 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/opscode.pem +57 -57
- data/spec/data/trusted_certs/root.pem +22 -22
- data/spec/functional/application_spec.rb +58 -58
- data/spec/functional/assets/chefinittest +34 -34
- data/spec/functional/assets/testchefsubsys +10 -10
- data/spec/functional/audit/rspec_formatter_spec.rb +54 -54
- data/spec/functional/audit/runner_spec.rb +121 -121
- data/spec/functional/dsl/reboot_pending_spec.rb +106 -106
- data/spec/functional/dsl/registry_helper_spec.rb +61 -61
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +101 -101
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +229 -229
- data/spec/functional/http/simple_spec.rb +140 -140
- data/spec/functional/knife/configure_spec.rb +33 -33
- data/spec/functional/knife/cookbook_delete_spec.rb +167 -167
- data/spec/functional/knife/exec_spec.rb +55 -55
- data/spec/functional/knife/rehash_spec.rb +39 -0
- data/spec/functional/knife/smoke_test.rb +42 -42
- data/spec/functional/knife/ssh_spec.rb +284 -284
- data/spec/functional/mixin/powershell_out_spec.rb +43 -43
- data/spec/functional/mixin/shell_out_spec.rb +48 -48
- data/spec/functional/notifications_spec.rb +238 -238
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +100 -100
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +51 -51
- data/spec/functional/rebooter_spec.rb +105 -105
- data/spec/functional/resource/aix_service_spec.rb +138 -138
- data/spec/functional/resource/aixinit_service_spec.rb +211 -211
- data/spec/functional/resource/base.rb +28 -28
- data/spec/functional/resource/bash_spec.rb +88 -88
- data/spec/functional/resource/batch_spec.rb +30 -30
- data/spec/functional/resource/bff_spec.rb +120 -120
- data/spec/functional/resource/chocolatey_package_spec.rb +130 -124
- data/spec/functional/resource/cookbook_file_spec.rb +81 -81
- data/spec/functional/resource/cron_spec.rb +172 -172
- data/spec/functional/resource/deploy_revision_spec.rb +881 -881
- data/spec/functional/resource/directory_spec.rb +43 -43
- data/spec/functional/resource/dpkg_package_spec.rb +339 -339
- data/spec/functional/resource/dsc_resource_spec.rb +90 -90
- data/spec/functional/resource/dsc_script_spec.rb +479 -469
- data/spec/functional/resource/env_spec.rb +192 -192
- data/spec/functional/resource/execute_spec.rb +154 -154
- data/spec/functional/resource/file_spec.rb +167 -167
- data/spec/functional/resource/git_spec.rb +259 -259
- data/spec/functional/resource/group_spec.rb +461 -461
- data/spec/functional/resource/ifconfig_spec.rb +165 -165
- data/spec/functional/resource/link_spec.rb +613 -613
- data/spec/functional/resource/mount_spec.rb +203 -203
- data/spec/functional/resource/ohai_spec.rb +62 -62
- data/spec/functional/resource/package_spec.rb +386 -386
- data/spec/functional/resource/powershell_script_spec.rb +601 -601
- data/spec/functional/resource/reboot_spec.rb +103 -103
- data/spec/functional/resource/registry_spec.rb +560 -560
- data/spec/functional/resource/remote_directory_spec.rb +220 -220
- data/spec/functional/resource/remote_file_spec.rb +240 -240
- data/spec/functional/resource/rpm_spec.rb +123 -123
- data/spec/functional/resource/template_spec.rb +212 -212
- data/spec/functional/resource/user/dscl_spec.rb +198 -198
- data/spec/functional/resource/user/useradd_spec.rb +692 -699
- data/spec/functional/resource/user/windows_spec.rb +133 -133
- data/spec/functional/resource/windows_package_spec.rb +168 -168
- data/spec/functional/resource/windows_service_spec.rb +102 -102
- data/spec/functional/rest_spec.rb +95 -95
- data/spec/functional/run_lock_spec.rb +466 -466
- data/spec/functional/shell_spec.rb +148 -148
- data/spec/functional/tiny_server_spec.rb +78 -78
- data/spec/functional/util/path_helper_spec.rb +37 -37
- data/spec/functional/util/powershell/cmdlet_spec.rb +111 -111
- data/spec/functional/version_spec.rb +35 -35
- data/spec/functional/win32/crypto_spec.rb +54 -54
- data/spec/functional/win32/registry_spec.rb +623 -623
- data/spec/functional/win32/security_spec.rb +100 -100
- data/spec/functional/win32/service_manager_spec.rb +220 -220
- data/spec/functional/win32/sid_spec.rb +55 -55
- data/spec/functional/win32/version_info_spec.rb +50 -50
- data/spec/functional/win32/versions_spec.rb +117 -117
- data/spec/integration/client/client_spec.rb +500 -500
- data/spec/integration/client/ipv6_spec.rb +134 -134
- data/spec/integration/knife/chef_fs_data_store_spec.rb +556 -556
- data/spec/integration/knife/chef_repo_path_spec.rb +890 -890
- data/spec/integration/knife/chef_repository_file_system_spec.rb +292 -292
- data/spec/integration/knife/chefignore_spec.rb +300 -300
- data/spec/integration/knife/common_options_spec.rb +155 -155
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +112 -112
- data/spec/integration/knife/delete_spec.rb +1017 -1017
- data/spec/integration/knife/deps_spec.rb +706 -706
- data/spec/integration/knife/diff_spec.rb +602 -602
- data/spec/integration/knife/download_spec.rb +1314 -1314
- data/spec/integration/knife/list_spec.rb +1067 -1067
- data/spec/integration/knife/raw_spec.rb +242 -242
- data/spec/integration/knife/redirection_spec.rb +52 -52
- data/spec/integration/knife/serve_spec.rb +57 -57
- data/spec/integration/knife/show_spec.rb +167 -167
- data/spec/integration/knife/upload_spec.rb +1529 -1529
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +148 -148
- data/spec/integration/recipes/lwrp_spec.rb +53 -53
- data/spec/integration/recipes/provider_choice.rb +37 -37
- data/spec/integration/recipes/recipe_dsl_spec.rb +1519 -1519
- data/spec/integration/recipes/remote_directory.rb +74 -74
- data/spec/integration/recipes/resource_action_spec.rb +569 -569
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +496 -496
- data/spec/integration/recipes/resource_load_spec.rb +208 -208
- data/spec/integration/solo/solo_spec.rb +176 -176
- data/spec/rcov.opts +2 -2
- data/spec/scripts/ssl-serve.rb +47 -47
- data/spec/spec_helper.rb +248 -249
- data/spec/stress/win32/file_spec.rb +37 -37
- data/spec/stress/win32/memory_spec.rb +22 -22
- data/spec/stress/win32/security_spec.rb +69 -69
- data/spec/support/chef_helpers.rb +95 -95
- data/spec/support/key_helpers.rb +104 -104
- data/spec/support/lib/chef/provider/easy.rb +35 -35
- data/spec/support/lib/chef/provider/openldap_includer.rb +29 -29
- data/spec/support/lib/chef/provider/snakeoil.rb +41 -41
- data/spec/support/lib/chef/resource/cat.rb +38 -38
- data/spec/support/lib/chef/resource/one_two_three_four.rb +37 -37
- data/spec/support/lib/chef/resource/openldap_includer.rb +26 -26
- data/spec/support/lib/chef/resource/with_state.rb +28 -28
- data/spec/support/lib/chef/resource/zen_follower.rb +35 -35
- data/spec/support/lib/chef/resource/zen_master.rb +41 -41
- data/spec/support/lib/library_load_order.rb +20 -20
- data/spec/support/matchers/leak.rb +98 -98
- data/spec/support/mock/constant.rb +52 -52
- data/spec/support/mock/platform.rb +25 -25
- data/spec/support/platform_helpers.rb +214 -218
- data/spec/support/platforms/prof/gc.rb +53 -53
- data/spec/support/platforms/prof/win32.rb +45 -45
- data/spec/support/platforms/win32/spec_service.rb +59 -59
- data/spec/support/shared/context/client.rb +285 -285
- data/spec/support/shared/context/config.rb +21 -21
- data/spec/support/shared/context/win32.rb +34 -34
- data/spec/support/shared/examples/client.rb +53 -53
- data/spec/support/shared/functional/diff_disabled.rb +10 -10
- data/spec/support/shared/functional/directory_resource.rb +176 -176
- data/spec/support/shared/functional/file_resource.rb +1049 -1049
- data/spec/support/shared/functional/http.rb +248 -248
- data/spec/support/shared/functional/knife.rb +37 -37
- data/spec/support/shared/functional/securable_resource.rb +547 -547
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +394 -394
- data/spec/support/shared/functional/win32_service.rb +59 -59
- data/spec/support/shared/functional/windows_script.rb +202 -202
- data/spec/support/shared/integration/app_server_support.rb +42 -42
- data/spec/support/shared/integration/integration_helper.rb +154 -154
- data/spec/support/shared/integration/knife_support.rb +173 -173
- data/spec/support/shared/matchers/exit_with_code.rb +32 -32
- data/spec/support/shared/matchers/match_environment_variable.rb +17 -17
- data/spec/support/shared/shared_examples.rb +14 -14
- data/spec/support/shared/unit/api_error_inspector.rb +190 -190
- data/spec/support/shared/unit/api_versioning.rb +77 -77
- data/spec/support/shared/unit/application_dot_d.rb +70 -0
- data/spec/support/shared/unit/execute_resource.rb +133 -133
- data/spec/support/shared/unit/file_system_support.rb +69 -69
- data/spec/support/shared/unit/knife_shared.rb +39 -39
- data/spec/support/shared/unit/mock_shellout.rb +49 -49
- data/spec/support/shared/unit/platform_introspector.rb +189 -189
- data/spec/support/shared/unit/provider/file.rb +835 -835
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +433 -433
- data/spec/support/shared/unit/resource/static_provider_resolution.rb +63 -63
- data/spec/support/shared/unit/script_resource.rb +98 -98
- data/spec/support/shared/unit/user_and_client_shared.rb +114 -114
- data/spec/support/shared/unit/windows_script_resource.rb +80 -80
- data/spec/tiny_server.rb +207 -207
- data/spec/unit/api_client/registration_spec.rb +278 -278
- data/spec/unit/api_client_spec.rb +341 -341
- data/spec/unit/api_client_v1_spec.rb +455 -455
- data/spec/unit/application/apply_spec.rb +110 -110
- data/spec/unit/application/client_spec.rb +435 -431
- data/spec/unit/application/knife_spec.rb +229 -229
- data/spec/unit/application/solo_spec.rb +170 -167
- data/spec/unit/application_spec.rb +384 -384
- data/spec/unit/audit/audit_event_proxy_spec.rb +311 -311
- data/spec/unit/audit/audit_reporter_spec.rb +430 -430
- data/spec/unit/audit/control_group_data_spec.rb +477 -477
- data/spec/unit/audit/logger_spec.rb +42 -42
- data/spec/unit/audit/rspec_formatter_spec.rb +29 -29
- data/spec/unit/audit/runner_spec.rb +144 -144
- data/spec/unit/chef_class_spec.rb +110 -110
- data/spec/unit/chef_fs/config_spec.rb +106 -106
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +63 -63
- data/spec/unit/chef_fs/diff_spec.rb +328 -328
- data/spec/unit/chef_fs/file_pattern_spec.rb +512 -512
- data/spec/unit/chef_fs/file_system/cookbook_subdir_spec.rb +34 -34
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -47
- data/spec/unit/chef_fs/file_system_spec.rb +148 -148
- data/spec/unit/chef_fs/parallelizer.rb +479 -479
- data/spec/unit/chef_fs/path_util_spec.rb +108 -108
- data/spec/unit/chef_spec.rb +25 -25
- data/spec/unit/client_spec.rb +544 -544
- data/spec/unit/config_fetcher_spec.rb +125 -125
- data/spec/unit/config_spec.rb +31 -31
- data/spec/unit/cookbook/chefignore_spec.rb +49 -49
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +198 -186
- data/spec/unit/cookbook/file_vendor_spec.rb +97 -97
- data/spec/unit/cookbook/metadata_spec.rb +952 -924
- data/spec/unit/cookbook/synchronizer_spec.rb +520 -520
- data/spec/unit/cookbook/syntax_check_spec.rb +219 -217
- data/spec/unit/cookbook_loader_spec.rb +299 -290
- data/spec/unit/cookbook_manifest_spec.rb +243 -243
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +203 -199
- data/spec/unit/cookbook_spec.rb +66 -66
- data/spec/unit/cookbook_uploader_spec.rb +199 -199
- data/spec/unit/cookbook_version_file_specificity_spec.rb +553 -553
- data/spec/unit/cookbook_version_spec.rb +359 -341
- data/spec/unit/daemon_spec.rb +174 -174
- data/spec/unit/data_bag_item_spec.rb +388 -323
- data/spec/unit/data_bag_spec.rb +260 -260
- data/spec/unit/deprecation_spec.rb +150 -150
- data/spec/unit/digester_spec.rb +49 -49
- data/spec/unit/dsl/audit_spec.rb +43 -43
- data/spec/unit/dsl/data_query_spec.rb +106 -106
- data/spec/unit/dsl/platform_introspection_spec.rb +129 -129
- data/spec/unit/dsl/reboot_pending_spec.rb +100 -100
- data/spec/unit/dsl/recipe_spec.rb +80 -80
- data/spec/unit/dsl/regsitry_helper_spec.rb +52 -52
- data/spec/unit/dsl/resources_spec.rb +85 -85
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +95 -95
- data/spec/unit/encrypted_data_bag_item_spec.rb +437 -437
- data/spec/unit/environment_spec.rb +470 -470
- data/spec/unit/event_dispatch/dispatcher_spec.rb +122 -122
- data/spec/unit/event_dispatch/dsl_spec.rb +83 -83
- data/spec/unit/exceptions_spec.rb +130 -130
- data/spec/unit/file_access_control_spec.rb +308 -308
- data/spec/unit/file_cache_spec.rb +114 -114
- data/spec/unit/file_content_management/deploy/cp_spec.rb +44 -44
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +101 -101
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +232 -232
- data/spec/unit/file_content_management/tempfile_spec.rb +85 -0
- data/spec/unit/formatters/base_spec.rb +71 -71
- data/spec/unit/formatters/doc_spec.rb +78 -78
- data/spec/unit/formatters/error_inspectors/api_error_formatting_spec.rb +76 -76
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +265 -265
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +126 -126
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +43 -43
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +26 -26
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +191 -191
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +91 -91
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +155 -155
- data/spec/unit/guard_interpreter_spec.rb +41 -41
- data/spec/unit/handler/json_file_spec.rb +63 -63
- data/spec/unit/handler_spec.rb +215 -215
- data/spec/unit/http/authenticator_spec.rb +80 -80
- data/spec/unit/http/basic_client_spec.rb +129 -129
- data/spec/unit/http/http_request_spec.rb +91 -91
- data/spec/unit/http/json_input_spec.rb +128 -128
- data/spec/unit/http/simple_spec.rb +32 -32
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +173 -173
- data/spec/unit/http/ssl_policies_spec.rb +169 -169
- data/spec/unit/http/validate_content_length_spec.rb +207 -192
- data/spec/unit/http_spec.rb +206 -194
- data/spec/unit/json_compat_spec.rb +105 -105
- data/spec/unit/key_spec.rb +631 -631
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +152 -152
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +207 -207
- data/spec/unit/knife/bootstrap_spec.rb +822 -773
- data/spec/unit/knife/client_bulk_delete_spec.rb +166 -166
- data/spec/unit/knife/client_create_spec.rb +186 -186
- data/spec/unit/knife/client_delete_spec.rb +83 -83
- data/spec/unit/knife/client_edit_spec.rb +53 -53
- data/spec/unit/knife/client_list_spec.rb +34 -34
- data/spec/unit/knife/client_reregister_spec.rb +62 -62
- data/spec/unit/knife/client_show_spec.rb +52 -52
- data/spec/unit/knife/configure_client_spec.rb +83 -83
- data/spec/unit/knife/configure_spec.rb +241 -241
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -87
- data/spec/unit/knife/cookbook_create_spec.rb +260 -260
- data/spec/unit/knife/cookbook_delete_spec.rb +239 -239
- data/spec/unit/knife/cookbook_download_spec.rb +237 -237
- data/spec/unit/knife/cookbook_list_spec.rb +88 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +65 -65
- data/spec/unit/knife/cookbook_metadata_spec.rb +179 -179
- data/spec/unit/knife/cookbook_show_spec.rb +222 -222
- data/spec/unit/knife/cookbook_site_download_spec.rb +149 -149
- data/spec/unit/knife/cookbook_site_install_spec.rb +197 -197
- data/spec/unit/knife/cookbook_site_share_spec.rb +209 -209
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +77 -77
- data/spec/unit/knife/cookbook_test_spec.rb +84 -84
- data/spec/unit/knife/cookbook_upload_spec.rb +331 -329
- data/spec/unit/knife/core/bootstrap_context_spec.rb +257 -257
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -187
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +41 -41
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +209 -209
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +109 -93
- data/spec/unit/knife/core/node_editor_spec.rb +211 -211
- data/spec/unit/knife/core/object_loader_spec.rb +81 -81
- data/spec/unit/knife/core/subcommand_loader_spec.rb +70 -64
- data/spec/unit/knife/core/ui_spec.rb +598 -591
- data/spec/unit/knife/data_bag_create_spec.rb +109 -109
- data/spec/unit/knife/data_bag_edit_spec.rb +127 -127
- data/spec/unit/knife/data_bag_from_file_spec.rb +172 -172
- data/spec/unit/knife/data_bag_secret_options_spec.rb +165 -165
- data/spec/unit/knife/data_bag_show_spec.rb +123 -123
- data/spec/unit/knife/environment_compare_spec.rb +112 -112
- data/spec/unit/knife/environment_create_spec.rb +91 -91
- data/spec/unit/knife/environment_delete_spec.rb +71 -71
- data/spec/unit/knife/environment_edit_spec.rb +79 -79
- data/spec/unit/knife/environment_from_file_spec.rb +90 -90
- data/spec/unit/knife/environment_list_spec.rb +54 -54
- data/spec/unit/knife/environment_show_spec.rb +52 -52
- data/spec/unit/knife/index_rebuild_spec.rb +125 -125
- data/spec/unit/knife/key_create_spec.rb +223 -223
- data/spec/unit/knife/key_delete_spec.rb +133 -133
- data/spec/unit/knife/key_edit_spec.rb +264 -264
- data/spec/unit/knife/key_helper.rb +74 -74
- data/spec/unit/knife/key_list_spec.rb +216 -216
- data/spec/unit/knife/key_show_spec.rb +126 -126
- data/spec/unit/knife/knife_help.rb +92 -92
- data/spec/unit/knife/node_bulk_delete_spec.rb +94 -94
- data/spec/unit/knife/node_delete_spec.rb +68 -68
- data/spec/unit/knife/node_edit_spec.rb +114 -114
- data/spec/unit/knife/node_environment_set_spec.rb +80 -80
- data/spec/unit/knife/node_from_file_spec.rb +59 -59
- data/spec/unit/knife/node_list_spec.rb +62 -62
- data/spec/unit/knife/node_run_list_add_spec.rb +145 -145
- data/spec/unit/knife/node_run_list_remove_spec.rb +106 -106
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -140
- data/spec/unit/knife/node_show_spec.rb +65 -65
- data/spec/unit/knife/osc_user_create_spec.rb +93 -93
- data/spec/unit/knife/osc_user_delete_spec.rb +44 -44
- data/spec/unit/knife/osc_user_edit_spec.rb +52 -52
- data/spec/unit/knife/osc_user_list_spec.rb +37 -37
- data/spec/unit/knife/osc_user_reregister_spec.rb +58 -58
- data/spec/unit/knife/osc_user_show_spec.rb +46 -46
- data/spec/unit/knife/raw_spec.rb +43 -43
- data/spec/unit/knife/role_bulk_delete_spec.rb +80 -80
- data/spec/unit/knife/role_create_spec.rb +80 -80
- data/spec/unit/knife/role_delete_spec.rb +67 -67
- data/spec/unit/knife/role_edit_spec.rb +77 -77
- data/spec/unit/knife/role_env_run_list_add_spec.rb +217 -217
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +94 -94
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +102 -102
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +105 -105
- data/spec/unit/knife/role_env_run_list_set_spec.rb +99 -99
- data/spec/unit/knife/role_from_file_spec.rb +69 -69
- data/spec/unit/knife/role_list_spec.rb +54 -54
- data/spec/unit/knife/role_run_list_add_spec.rb +179 -179
- data/spec/unit/knife/role_run_list_clear_spec.rb +84 -84
- data/spec/unit/knife/role_run_list_remove_spec.rb +92 -92
- data/spec/unit/knife/role_run_list_replace_spec.rb +98 -98
- data/spec/unit/knife/role_run_list_set_spec.rb +89 -89
- data/spec/unit/knife/role_show_spec.rb +59 -59
- data/spec/unit/knife/ssh_spec.rb +410 -410
- data/spec/unit/knife/ssl_check_spec.rb +240 -240
- data/spec/unit/knife/ssl_fetch_spec.rb +184 -184
- data/spec/unit/knife/status_spec.rb +108 -108
- data/spec/unit/knife/tag_create_spec.rb +23 -23
- data/spec/unit/knife/tag_delete_spec.rb +25 -25
- data/spec/unit/knife/tag_list_spec.rb +23 -23
- data/spec/unit/knife/user_create_spec.rb +214 -214
- data/spec/unit/knife/user_delete_spec.rb +65 -65
- data/spec/unit/knife/user_edit_spec.rb +66 -66
- data/spec/unit/knife/user_list_spec.rb +36 -36
- data/spec/unit/knife/user_reregister_spec.rb +74 -74
- data/spec/unit/knife/user_show_spec.rb +65 -65
- data/spec/unit/knife_spec.rb +529 -522
- data/spec/unit/lib_backcompat_spec.rb +34 -34
- data/spec/unit/log/syslog_spec.rb +53 -53
- data/spec/unit/log/winevt_spec.rb +55 -55
- data/spec/unit/log_spec.rb +24 -24
- data/spec/unit/lwrp_spec.rb +720 -720
- data/spec/unit/mash_spec.rb +51 -51
- data/spec/unit/mixin/api_version_request_handling_spec.rb +126 -126
- data/spec/unit/mixin/checksum_spec.rb +40 -40
- data/spec/unit/mixin/command_spec.rb +104 -104
- data/spec/unit/mixin/convert_to_class_name_spec.rb +54 -54
- data/spec/unit/mixin/deep_merge_spec.rb +342 -342
- data/spec/unit/mixin/deprecation_spec.rb +57 -57
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +96 -96
- data/spec/unit/mixin/homebrew_user_spec.rb +100 -100
- data/spec/unit/mixin/params_validate_spec.rb +409 -409
- data/spec/unit/mixin/path_sanity_spec.rb +92 -86
- data/spec/unit/mixin/powershell_out_spec.rb +70 -70
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +83 -83
- data/spec/unit/mixin/properties_spec.rb +97 -97
- data/spec/unit/mixin/proxified_socket_spec.rb +94 -94
- data/spec/unit/mixin/securable_spec.rb +314 -314
- data/spec/unit/mixin/shell_out_spec.rb +299 -299
- data/spec/unit/mixin/subclass_directive_spec.rb +45 -45
- data/spec/unit/mixin/template_spec.rb +276 -276
- data/spec/unit/mixin/unformatter_spec.rb +61 -61
- data/spec/unit/mixin/uris_spec.rb +57 -57
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +85 -85
- data/spec/unit/mixin/xml_escape_spec.rb +54 -54
- data/spec/unit/monkey_patches/uri_spec.rb +34 -34
- data/spec/unit/monologger_spec.rb +45 -45
- data/spec/unit/node/attribute_spec.rb +1179 -1179
- data/spec/unit/node/immutable_collections_spec.rb +197 -197
- data/spec/unit/node_map_spec.rb +170 -170
- data/spec/unit/node_spec.rb +1565 -1565
- data/spec/unit/org_spec.rb +196 -196
- data/spec/unit/platform/query_helpers_spec.rb +220 -220
- data/spec/unit/platform_spec.rb +241 -241
- data/spec/unit/policy_builder/dynamic_spec.rb +273 -273
- data/spec/unit/policy_builder/expand_node_object_spec.rb +336 -336
- data/spec/unit/policy_builder/policyfile_spec.rb +745 -739
- data/spec/unit/policy_builder_spec.rb +26 -26
- data/spec/unit/property/state_spec.rb +508 -508
- data/spec/unit/property/validation_spec.rb +704 -704
- data/spec/unit/property_spec.rb +1227 -1227
- data/spec/unit/provider/apt_update_spec.rb +113 -113
- data/spec/unit/provider/breakpoint_spec.rb +53 -53
- data/spec/unit/provider/cookbook_file/content_spec.rb +39 -39
- data/spec/unit/provider/cookbook_file_spec.rb +58 -58
- data/spec/unit/provider/cron/unix_spec.rb +139 -139
- data/spec/unit/provider/cron_spec.rb +1010 -1010
- data/spec/unit/provider/deploy/revision_spec.rb +110 -110
- data/spec/unit/provider/deploy/timestamped_spec.rb +40 -40
- data/spec/unit/provider/deploy_spec.rb +641 -641
- data/spec/unit/provider/directory_spec.rb +287 -287
- data/spec/unit/provider/dsc_resource_spec.rb +167 -118
- data/spec/unit/provider/dsc_script_spec.rb +173 -173
- data/spec/unit/provider/env/windows_spec.rb +103 -103
- data/spec/unit/provider/env_spec.rb +310 -310
- data/spec/unit/provider/erl_call_spec.rb +85 -85
- data/spec/unit/provider/execute_spec.rb +243 -243
- data/spec/unit/provider/file/content_spec.rb +114 -114
- data/spec/unit/provider/file_spec.rb +56 -56
- data/spec/unit/provider/git_spec.rb +668 -668
- data/spec/unit/provider/group/dscl_spec.rb +331 -331
- data/spec/unit/provider/group/gpasswd_spec.rb +116 -116
- data/spec/unit/provider/group/groupadd_spec.rb +174 -174
- data/spec/unit/provider/group/groupmod_spec.rb +133 -133
- data/spec/unit/provider/group/pw_spec.rb +138 -138
- data/spec/unit/provider/group/usermod_spec.rb +115 -115
- data/spec/unit/provider/group/windows_spec.rb +101 -101
- data/spec/unit/provider/group_spec.rb +286 -286
- data/spec/unit/provider/http_request_spec.rb +159 -159
- data/spec/unit/provider/ifconfig/aix_spec.rb +180 -180
- data/spec/unit/provider/ifconfig/debian_spec.rb +344 -344
- data/spec/unit/provider/ifconfig/redhat_spec.rb +73 -73
- data/spec/unit/provider/ifconfig_spec.rb +200 -200
- data/spec/unit/provider/launchd_spec.rb +189 -0
- data/spec/unit/provider/link_spec.rb +252 -252
- data/spec/unit/provider/log_spec.rb +75 -75
- data/spec/unit/provider/mdadm_spec.rb +131 -131
- data/spec/unit/provider/mount/aix_spec.rb +238 -238
- data/spec/unit/provider/mount/mount_spec.rb +480 -480
- data/spec/unit/provider/mount/solaris_spec.rb +822 -822
- data/spec/unit/provider/mount/windows_spec.rb +151 -151
- data/spec/unit/provider/mount_spec.rb +203 -203
- data/spec/unit/provider/ohai_spec.rb +84 -84
- data/spec/unit/provider/osx_profile_spec.rb +249 -249
- data/spec/unit/provider/package/aix_spec.rb +172 -172
- data/spec/unit/provider/package/apt_spec.rb +386 -386
- data/spec/unit/provider/package/chocolatey_spec.rb +501 -504
- data/spec/unit/provider/package/dpkg_spec.rb +287 -287
- data/spec/unit/provider/package/easy_install_spec.rb +108 -108
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +274 -274
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +148 -148
- data/spec/unit/provider/package/freebsd/port_spec.rb +163 -163
- data/spec/unit/provider/package/homebrew_spec.rb +292 -292
- data/spec/unit/provider/package/ips_spec.rb +227 -227
- data/spec/unit/provider/package/macports_spec.rb +203 -203
- data/spec/unit/provider/package/openbsd_spec.rb +132 -132
- data/spec/unit/provider/package/pacman_spec.rb +194 -194
- data/spec/unit/provider/package/paludis_spec.rb +134 -134
- data/spec/unit/provider/package/portage_spec.rb +310 -310
- data/spec/unit/provider/package/rpm_spec.rb +429 -429
- data/spec/unit/provider/package/rubygems_spec.rb +782 -782
- data/spec/unit/provider/package/smartos_spec.rb +110 -110
- data/spec/unit/provider/package/solaris_spec.rb +167 -167
- data/spec/unit/provider/package/windows/exe_spec.rb +187 -187
- data/spec/unit/provider/package/windows/msi_spec.rb +159 -159
- data/spec/unit/provider/package/windows_spec.rb +397 -376
- data/spec/unit/provider/package/yum_spec.rb +2267 -2267
- data/spec/unit/provider/package/zypper_spec.rb +268 -268
- data/spec/unit/provider/package_spec.rb +870 -870
- data/spec/unit/provider/powershell_script_spec.rb +106 -106
- data/spec/unit/provider/registry_key_spec.rb +295 -295
- data/spec/unit/provider/remote_directory_spec.rb +221 -221
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +245 -245
- data/spec/unit/provider/remote_file/content_spec.rb +252 -252
- data/spec/unit/provider/remote_file/fetcher_spec.rb +94 -94
- data/spec/unit/provider/remote_file/ftp_spec.rb +219 -219
- data/spec/unit/provider/remote_file/http_spec.rb +301 -301
- data/spec/unit/provider/remote_file/local_file_spec.rb +103 -103
- data/spec/unit/provider/remote_file/network_file_spec.rb +45 -45
- data/spec/unit/provider/remote_file_spec.rb +61 -61
- data/spec/unit/provider/route_spec.rb +242 -242
- data/spec/unit/provider/ruby_block_spec.rb +45 -45
- data/spec/unit/provider/script_spec.rb +114 -114
- data/spec/unit/provider/service/aix_service_spec.rb +195 -195
- data/spec/unit/provider/service/aixinit_service_spec.rb +272 -272
- data/spec/unit/provider/service/arch_service_spec.rb +324 -324
- data/spec/unit/provider/service/debian_service_spec.rb +375 -375
- data/spec/unit/provider/service/freebsd_service_spec.rb +613 -613
- data/spec/unit/provider/service/gentoo_service_spec.rb +144 -144
- data/spec/unit/provider/service/init_service_spec.rb +235 -235
- data/spec/unit/provider/service/insserv_service_spec.rb +75 -75
- data/spec/unit/provider/service/invokercd_service_spec.rb +211 -211
- data/spec/unit/provider/service/macosx_spec.rb +335 -335
- data/spec/unit/provider/service/openbsd_service_spec.rb +545 -545
- data/spec/unit/provider/service/redhat_spec.rb +236 -236
- data/spec/unit/provider/service/simple_service_spec.rb +169 -169
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +255 -255
- data/spec/unit/provider/service/systemd_service_spec.rb +344 -279
- data/spec/unit/provider/service/upstart_service_spec.rb +342 -342
- data/spec/unit/provider/service/windows_spec.rb +463 -463
- data/spec/unit/provider/service_spec.rb +168 -168
- data/spec/unit/provider/subversion_spec.rb +298 -298
- data/spec/unit/provider/template/content_spec.rb +169 -169
- data/spec/unit/provider/template_spec.rb +89 -89
- data/spec/unit/provider/user/dscl_spec.rb +901 -900
- data/spec/unit/provider/user/pw_spec.rb +252 -252
- data/spec/unit/provider/user/solaris_spec.rb +139 -137
- data/spec/unit/provider/user/useradd_spec.rb +51 -51
- data/spec/unit/provider/user/windows_spec.rb +185 -185
- data/spec/unit/provider/user_spec.rb +474 -474
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +46 -46
- data/spec/unit/provider_resolver_spec.rb +893 -893
- data/spec/unit/provider_spec.rb +198 -198
- data/spec/unit/pure_application_spec.rb +32 -32
- data/spec/unit/recipe_spec.rb +699 -699
- data/spec/unit/resource/apt_package_spec.rb +38 -38
- data/spec/unit/resource/apt_update_spec.rb +38 -38
- data/spec/unit/resource/bash_spec.rb +40 -40
- data/spec/unit/resource/batch_spec.rb +49 -49
- data/spec/unit/resource/breakpoint_spec.rb +47 -47
- data/spec/unit/resource/chef_gem_spec.rb +157 -157
- data/spec/unit/resource/chocolatey_package_spec.rb +67 -67
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -45
- data/spec/unit/resource/conditional_spec.rb +208 -208
- data/spec/unit/resource/cookbook_file_spec.rb +88 -88
- data/spec/unit/resource/cron_spec.rb +186 -186
- data/spec/unit/resource/csh_spec.rb +40 -40
- data/spec/unit/resource/deploy_revision_spec.rb +42 -42
- data/spec/unit/resource/deploy_spec.rb +283 -283
- data/spec/unit/resource/directory_spec.rb +82 -82
- data/spec/unit/resource/dpkg_package_spec.rb +32 -32
- data/spec/unit/resource/dsc_resource_spec.rb +96 -96
- data/spec/unit/resource/dsc_script_spec.rb +134 -134
- data/spec/unit/resource/easy_install_package_spec.rb +39 -39
- data/spec/unit/resource/env_spec.rb +85 -85
- data/spec/unit/resource/erl_call_spec.rb +81 -81
- data/spec/unit/resource/execute_spec.rb +35 -35
- data/spec/unit/resource/file/verification_spec.rb +139 -139
- data/spec/unit/resource/file_spec.rb +130 -130
- data/spec/unit/resource/freebsd_package_spec.rb +87 -87
- data/spec/unit/resource/gem_package_spec.rb +42 -42
- data/spec/unit/resource/git_spec.rb +50 -50
- data/spec/unit/resource/group_spec.rb +162 -157
- data/spec/unit/resource/homebrew_package_spec.rb +50 -50
- data/spec/unit/resource/http_request_spec.rb +59 -59
- data/spec/unit/resource/ifconfig_spec.rb +109 -109
- data/spec/unit/resource/ips_package_spec.rb +40 -40
- data/spec/unit/resource/ksh_spec.rb +40 -40
- data/spec/unit/resource/launchd_spec.rb +31 -0
- data/spec/unit/resource/link_spec.rb +134 -134
- data/spec/unit/resource/log_spec.rb +73 -73
- data/spec/unit/resource/macports_package_spec.rb +32 -32
- data/spec/unit/resource/mdadm_spec.rb +102 -102
- data/spec/unit/resource/mount_spec.rb +214 -214
- data/spec/unit/resource/ohai_spec.rb +61 -61
- data/spec/unit/resource/openbsd_package_spec.rb +48 -48
- data/spec/unit/resource/osx_profile_spec.rb +61 -61
- data/spec/unit/resource/package_spec.rb +93 -93
- data/spec/unit/resource/pacman_package_spec.rb +32 -32
- data/spec/unit/resource/perl_spec.rb +40 -40
- data/spec/unit/resource/portage_package_spec.rb +38 -38
- data/spec/unit/resource/powershell_script_spec.rb +136 -136
- data/spec/unit/resource/python_spec.rb +40 -40
- data/spec/unit/resource/registry_key_spec.rb +199 -199
- data/spec/unit/resource/remote_directory_spec.rb +97 -97
- data/spec/unit/resource/remote_file_spec.rb +207 -207
- data/spec/unit/resource/resource_notification_spec.rb +169 -169
- data/spec/unit/resource/route_spec.rb +107 -107
- data/spec/unit/resource/rpm_package_spec.rb +46 -46
- data/spec/unit/resource/ruby_block_spec.rb +61 -61
- data/spec/unit/resource/ruby_spec.rb +40 -40
- data/spec/unit/resource/scm_spec.rb +193 -193
- data/spec/unit/resource/script_spec.rb +44 -44
- data/spec/unit/resource/service_spec.rb +179 -179
- data/spec/unit/resource/smartos_package_spec.rb +33 -33
- data/spec/unit/resource/solaris_package_spec.rb +42 -42
- data/spec/unit/resource/subversion_spec.rb +71 -71
- data/spec/unit/resource/template_spec.rb +210 -210
- data/spec/unit/resource/timestamped_deploy_spec.rb +32 -32
- data/spec/unit/resource/user_spec.rb +133 -133
- data/spec/unit/resource/windows_package_spec.rb +95 -95
- data/spec/unit/resource/windows_service_spec.rb +49 -49
- data/spec/unit/resource/yum_package_spec.rb +89 -89
- data/spec/unit/resource_builder_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +137 -137
- data/spec/unit/resource_collection/resource_set_spec.rb +199 -199
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +144 -144
- data/spec/unit/resource_collection_spec.rb +299 -299
- data/spec/unit/resource_definition_spec.rb +117 -117
- data/spec/unit/resource_reporter_spec.rb +758 -758
- data/spec/unit/resource_resolver_spec.rb +52 -52
- data/spec/unit/resource_spec.rb +1101 -1101
- data/spec/unit/rest/auth_credentials_spec.rb +296 -296
- data/spec/unit/rest_spec.rb +753 -753
- data/spec/unit/role_spec.rb +358 -358
- data/spec/unit/run_context/child_run_context_spec.rb +133 -133
- data/spec/unit/run_context/cookbook_compiler_spec.rb +184 -184
- data/spec/unit/run_context_spec.rb +241 -241
- data/spec/unit/run_list/run_list_expansion_spec.rb +144 -144
- data/spec/unit/run_list/run_list_item_spec.rb +117 -117
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +194 -194
- data/spec/unit/run_list_spec.rb +312 -312
- data/spec/unit/run_lock_spec.rb +140 -140
- data/spec/unit/run_status_spec.rb +144 -144
- data/spec/unit/runner_spec.rb +411 -411
- data/spec/unit/scan_access_control_spec.rb +183 -183
- data/spec/unit/search/query_spec.rb +289 -289
- data/spec/unit/shell/model_wrapper_spec.rb +96 -96
- data/spec/unit/shell/shell_ext_spec.rb +153 -153
- data/spec/unit/shell/shell_session_spec.rb +195 -195
- data/spec/unit/shell_out_spec.rb +18 -18
- data/spec/unit/shell_spec.rb +162 -162
- data/spec/unit/user_spec.rb +275 -275
- data/spec/unit/user_v1_spec.rb +583 -583
- data/spec/unit/util/backup_spec.rb +141 -141
- data/spec/unit/util/diff_spec.rb +576 -576
- data/spec/unit/util/dsc/configuration_generator_spec.rb +193 -193
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +164 -164
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +138 -138
- data/spec/unit/util/dsc/resource_store.rb +76 -76
- data/spec/unit/util/editor_spec.rb +152 -152
- data/spec/unit/util/file_edit_spec.rb +224 -224
- data/spec/unit/util/powershell/cmdlet_spec.rb +106 -106
- data/spec/unit/util/powershell/ps_credential_spec.rb +44 -44
- data/spec/unit/util/selinux_spec.rb +171 -171
- data/spec/unit/util/threaded_job_queue_spec.rb +51 -51
- data/spec/unit/version/platform_spec.rb +60 -60
- data/spec/unit/version_class_spec.rb +171 -171
- data/spec/unit/version_constraint/platform_spec.rb +45 -45
- data/spec/unit/version_constraint_spec.rb +179 -179
- data/spec/unit/win32/registry_spec.rb +394 -394
- data/spec/unit/windows_service_spec.rb +116 -116
- data/tasks/cbgb.rb +84 -84
- data/tasks/external_tests.rb +64 -64
- data/tasks/maintainers.rb +210 -210
- data/tasks/rspec.rb +89 -89
- metadata +428 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbooks_dir.rb +0 -84
@@ -1,34 +1,34 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require "chef/dsl/include_attribute"
|
20
|
-
require "chef/mixin/deprecation"
|
21
|
-
|
22
|
-
class Chef
|
23
|
-
module Mixin
|
24
|
-
|
25
|
-
# DEPRECATED: This is just here for compatibility, use
|
26
|
-
# Chef::DSL::IncludeAttribute instead.
|
27
|
-
|
28
|
-
deprecate_constant(:LanguageIncludeAttribute, Chef::DSL::IncludeAttribute, <<-EOM)
|
29
|
-
Chef::Mixin::LanguageIncludeAttribute is deprecated. Use
|
30
|
-
Chef::DSL::IncludeAttribute instead.
|
31
|
-
EOM
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "chef/dsl/include_attribute"
|
20
|
+
require "chef/mixin/deprecation"
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
module Mixin
|
24
|
+
|
25
|
+
# DEPRECATED: This is just here for compatibility, use
|
26
|
+
# Chef::DSL::IncludeAttribute instead.
|
27
|
+
|
28
|
+
deprecate_constant(:LanguageIncludeAttribute, Chef::DSL::IncludeAttribute, <<-EOM)
|
29
|
+
Chef::Mixin::LanguageIncludeAttribute is deprecated. Use
|
30
|
+
Chef::DSL::IncludeAttribute instead.
|
31
|
+
EOM
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -1,31 +1,31 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
|
19
|
-
require "chef/dsl/include_recipe"
|
20
|
-
require "chef/mixin/deprecation"
|
21
|
-
|
22
|
-
class Chef
|
23
|
-
module Mixin
|
24
|
-
|
25
|
-
deprecate_constant(:LanguageIncludeRecipe, Chef::DSL::IncludeRecipe, <<-EOM)
|
26
|
-
Chef::Mixin::LanguageIncludeRecipe is deprecated, use Chef::DSL::IncludeRecipe
|
27
|
-
instead.
|
28
|
-
EOM
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "chef/dsl/include_recipe"
|
20
|
+
require "chef/mixin/deprecation"
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
module Mixin
|
24
|
+
|
25
|
+
deprecate_constant(:LanguageIncludeRecipe, Chef::DSL::IncludeRecipe, <<-EOM)
|
26
|
+
Chef::Mixin::LanguageIncludeRecipe is deprecated, use Chef::DSL::IncludeRecipe
|
27
|
+
instead.
|
28
|
+
EOM
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -1,489 +1,489 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
-
# License:: Apache License, Version 2.0
|
5
|
-
#
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
# you may not use this file except in compliance with the License.
|
8
|
-
# You may obtain a copy of the License at
|
9
|
-
#
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
|
18
|
-
require "chef/constants"
|
19
|
-
require "chef/property"
|
20
|
-
require "chef/delayed_evaluator"
|
21
|
-
|
22
|
-
class Chef
|
23
|
-
module Mixin
|
24
|
-
module ParamsValidate
|
25
|
-
# Takes a hash of options, along with a map to validate them. Returns the original
|
26
|
-
# options hash, plus any changes that might have been made (through things like setting
|
27
|
-
# default values in the validation map)
|
28
|
-
#
|
29
|
-
# For example:
|
30
|
-
#
|
31
|
-
# validate({ :one => "neat" }, { :one => { :kind_of => String }})
|
32
|
-
#
|
33
|
-
# Would raise an exception if the value of :one above is not a kind_of? string. Valid
|
34
|
-
# map options are:
|
35
|
-
#
|
36
|
-
# @param opts [Hash<Symbol,Object>] Validation opts.
|
37
|
-
# @option opts [Object,Array] :is An object, or list of
|
38
|
-
# objects, that must match the value using Ruby's `===` operator
|
39
|
-
# (`opts[:is].any? { |v| v === value }`). (See #_pv_is.)
|
40
|
-
# @option opts [Object,Array] :equal_to An object, or list
|
41
|
-
# of objects, that must be equal to the value using Ruby's `==`
|
42
|
-
# operator (`opts[:is].any? { |v| v == value }`) (See #_pv_equal_to.)
|
43
|
-
# @option opts [Regexp,Array<Regexp>] :regex An object, or
|
44
|
-
# list of objects, that must match the value with `regex.match(value)`.
|
45
|
-
# (See #_pv_regex)
|
46
|
-
# @option opts [Class,Array<Class>] :kind_of A class, or
|
47
|
-
# list of classes, that the value must be an instance of. (See
|
48
|
-
# #_pv_kind_of.)
|
49
|
-
# @option opts [Hash<String,Proc>] :callbacks A hash of
|
50
|
-
# messages -> procs, all of which match the value. The proc must
|
51
|
-
# return a truthy or falsey value (true means it matches). (See
|
52
|
-
# #_pv_callbacks.)
|
53
|
-
# @option opts [Symbol,Array<Symbol>] :respond_to A method
|
54
|
-
# name, or list of method names, the value must respond to. (See
|
55
|
-
# #_pv_respond_to.)
|
56
|
-
# @option opts [Symbol,Array<Symbol>] :cannot_be A property,
|
57
|
-
# or a list of properties, that the value cannot have (such as `:nil` or
|
58
|
-
# `:empty`). The method with a questionmark at the end is called on the
|
59
|
-
# value (e.g. `value.empty?`). If the value does not have this method,
|
60
|
-
# it is considered valid (i.e. if you don't respond to `empty?` we
|
61
|
-
# assume you are not empty). (See #_pv_cannot_be.)
|
62
|
-
# @option opts [Proc] :coerce A proc which will be called to
|
63
|
-
# transform the user input to canonical form. The value is passed in,
|
64
|
-
# and the transformed value returned as output. Lazy values will *not*
|
65
|
-
# be passed to this method until after they are evaluated. Called in the
|
66
|
-
# context of the resource (meaning you can access other properties).
|
67
|
-
# (See #_pv_coerce.) (See #_pv_coerce.)
|
68
|
-
# @option opts [Boolean] :required `true` if this property
|
69
|
-
# must be present and not `nil`; `false` otherwise. This is checked
|
70
|
-
# after the resource is fully initialized. (See #_pv_required.)
|
71
|
-
# @option opts [Boolean] :name_property `true` if this
|
72
|
-
# property defaults to the same value as `name`. Equivalent to
|
73
|
-
# `default: lazy { name }`, except that #property_is_set? will
|
74
|
-
# return `true` if the property is set *or* if `name` is set. (See
|
75
|
-
# #_pv_name_property.)
|
76
|
-
# @option opts [Boolean] :name_attribute Same as `name_property`.
|
77
|
-
# @option opts [Object] :default The value this property
|
78
|
-
# will return if the user does not set one. If this is `lazy`, it will
|
79
|
-
# be run in the context of the instance (and able to access other
|
80
|
-
# properties). (See #_pv_default.)
|
81
|
-
#
|
82
|
-
def validate(opts, map)
|
83
|
-
map = map.validation_options if map.is_a?(Property)
|
84
|
-
|
85
|
-
#--
|
86
|
-
# validate works by taking the keys in the validation map, assuming it's a hash, and
|
87
|
-
# looking for _pv_:symbol as methods. Assuming it find them, it calls the right
|
88
|
-
# one.
|
89
|
-
#++
|
90
|
-
raise ArgumentError, "Options must be a hash" unless opts.kind_of?(Hash)
|
91
|
-
raise ArgumentError, "Validation Map must be a hash" unless map.kind_of?(Hash)
|
92
|
-
|
93
|
-
map.each do |key, validation|
|
94
|
-
unless key.kind_of?(Symbol) || key.kind_of?(String)
|
95
|
-
raise ArgumentError, "Validation map keys must be symbols or strings!"
|
96
|
-
end
|
97
|
-
case validation
|
98
|
-
when true
|
99
|
-
_pv_required(opts, key)
|
100
|
-
when false
|
101
|
-
true
|
102
|
-
when Hash
|
103
|
-
validation.each do |check, carg|
|
104
|
-
check_method = "_pv_#{check}"
|
105
|
-
if self.respond_to?(check_method, true)
|
106
|
-
self.send(check_method, opts, key, carg)
|
107
|
-
else
|
108
|
-
raise ArgumentError, "Validation map has unknown check: #{check}"
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
opts
|
114
|
-
end
|
115
|
-
|
116
|
-
def lazy(&block)
|
117
|
-
DelayedEvaluator.new(&block)
|
118
|
-
end
|
119
|
-
|
120
|
-
def set_or_return(symbol, value, validation)
|
121
|
-
property = SetOrReturnProperty.new(name: symbol, **validation)
|
122
|
-
property.call(self, value)
|
123
|
-
end
|
124
|
-
|
125
|
-
private
|
126
|
-
|
127
|
-
def explicitly_allows_nil?(key, validation)
|
128
|
-
validation.has_key?(:is) && _pv_is({ key => nil }, key, validation[:is], raise_error: false)
|
129
|
-
end
|
130
|
-
|
131
|
-
# Return the value of a parameter, or nil if it doesn't exist.
|
132
|
-
def _pv_opts_lookup(opts, key)
|
133
|
-
if opts.has_key?(key.to_s)
|
134
|
-
opts[key.to_s]
|
135
|
-
elsif opts.has_key?(key.to_sym)
|
136
|
-
opts[key.to_sym]
|
137
|
-
else
|
138
|
-
nil
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
# Raise an exception if the parameter is not found.
|
143
|
-
def _pv_required(opts, key, is_required = true, explicitly_allows_nil = false)
|
144
|
-
if is_required
|
145
|
-
return true if opts.has_key?(key.to_s) && (explicitly_allows_nil || !opts[key.to_s].nil?)
|
146
|
-
return true if opts.has_key?(key.to_sym) && (explicitly_allows_nil || !opts[key.to_sym].nil?)
|
147
|
-
raise Exceptions::ValidationFailed, "Required argument #{key.inspect} is missing!"
|
148
|
-
end
|
149
|
-
true
|
150
|
-
end
|
151
|
-
|
152
|
-
#
|
153
|
-
# List of things values must be equal to.
|
154
|
-
#
|
155
|
-
# Uses Ruby's `==` to evaluate (equal_to == value). At least one must
|
156
|
-
# match for the value to be valid.
|
157
|
-
#
|
158
|
-
# `nil` passes this validation automatically.
|
159
|
-
#
|
160
|
-
# @return [Array,nil] List of things values must be equal to, or nil if
|
161
|
-
# equal_to is unspecified.
|
162
|
-
#
|
163
|
-
def _pv_equal_to(opts, key, to_be)
|
164
|
-
value = _pv_opts_lookup(opts, key)
|
165
|
-
unless value.nil?
|
166
|
-
to_be = Array(to_be)
|
167
|
-
to_be.each do |tb|
|
168
|
-
return true if value == tb
|
169
|
-
end
|
170
|
-
raise Exceptions::ValidationFailed, "Option #{key} must be equal to one of: #{to_be.join(", ")}! You passed #{value.inspect}."
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
#
|
175
|
-
# List of things values must be instances of.
|
176
|
-
#
|
177
|
-
# Uses value.kind_of?(kind_of) to evaluate. At least one must match for
|
178
|
-
# the value to be valid.
|
179
|
-
#
|
180
|
-
# `nil` automatically passes this validation.
|
181
|
-
#
|
182
|
-
def _pv_kind_of(opts, key, to_be)
|
183
|
-
value = _pv_opts_lookup(opts, key)
|
184
|
-
unless value.nil?
|
185
|
-
to_be = Array(to_be)
|
186
|
-
to_be.each do |tb|
|
187
|
-
return true if value.kind_of?(tb)
|
188
|
-
end
|
189
|
-
raise Exceptions::ValidationFailed, "Option #{key} must be a kind of #{to_be}! You passed #{value.inspect}."
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
|
-
#
|
194
|
-
# List of method names values must respond to.
|
195
|
-
#
|
196
|
-
# Uses value.respond_to?(respond_to) to evaluate. At least one must match
|
197
|
-
# for the value to be valid.
|
198
|
-
#
|
199
|
-
def _pv_respond_to(opts, key, method_name_list)
|
200
|
-
value = _pv_opts_lookup(opts, key)
|
201
|
-
unless value.nil?
|
202
|
-
Array(method_name_list).each do |method_name|
|
203
|
-
unless value.respond_to?(method_name)
|
204
|
-
raise Exceptions::ValidationFailed, "Option #{key} must have a #{method_name} method!"
|
205
|
-
end
|
206
|
-
end
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
#
|
211
|
-
# List of things that must not be true about the value.
|
212
|
-
#
|
213
|
-
# Calls `value.<thing>?` All responses must be false for the value to be
|
214
|
-
# valid.
|
215
|
-
# Values which do not respond to <thing>? are considered valid (because if
|
216
|
-
# a value doesn't respond to `:readable?`, then it probably isn't
|
217
|
-
# readable.)
|
218
|
-
#
|
219
|
-
# @example
|
220
|
-
# ```ruby
|
221
|
-
# property :x, cannot_be: [ :nil, :empty ]
|
222
|
-
# x [ 1, 2 ] #=> valid
|
223
|
-
# x 1 #=> valid
|
224
|
-
# x [] #=> invalid
|
225
|
-
# x nil #=> invalid
|
226
|
-
# ```
|
227
|
-
#
|
228
|
-
def _pv_cannot_be(opts, key, predicate_method_base_name)
|
229
|
-
value = _pv_opts_lookup(opts, key)
|
230
|
-
if !value.nil?
|
231
|
-
Array(predicate_method_base_name).each do |method_name|
|
232
|
-
predicate_method = :"#{method_name}?"
|
233
|
-
|
234
|
-
if value.respond_to?(predicate_method)
|
235
|
-
if value.send(predicate_method)
|
236
|
-
raise Exceptions::ValidationFailed, "Option #{key} cannot be #{predicate_method_base_name}"
|
237
|
-
end
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
#
|
244
|
-
# The default value for a property.
|
245
|
-
#
|
246
|
-
# When the property is not assigned, this will be used.
|
247
|
-
#
|
248
|
-
# If this is a lazy value, it will either be passed the resource as a value,
|
249
|
-
# or if the lazy proc does not take parameters, it will be run in the
|
250
|
-
# context of the instance with instance_eval.
|
251
|
-
#
|
252
|
-
# @example
|
253
|
-
# ```ruby
|
254
|
-
# property :x, default: 10
|
255
|
-
# ```
|
256
|
-
#
|
257
|
-
# @example
|
258
|
-
# ```ruby
|
259
|
-
# property :x
|
260
|
-
# property :y, default: lazy { x+2 }
|
261
|
-
# ```
|
262
|
-
#
|
263
|
-
# @example
|
264
|
-
# ```ruby
|
265
|
-
# property :x
|
266
|
-
# property :y, default: lazy { |r| r.x+2 }
|
267
|
-
# ```
|
268
|
-
#
|
269
|
-
def _pv_default(opts, key, default_value)
|
270
|
-
value = _pv_opts_lookup(opts, key)
|
271
|
-
if value.nil?
|
272
|
-
default_value = default_value.freeze if !default_value.is_a?(DelayedEvaluator)
|
273
|
-
opts[key] = default_value
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
|
-
#
|
278
|
-
# List of regexes values that must match.
|
279
|
-
#
|
280
|
-
# Uses regex.match() to evaluate. At least one must match for the value to
|
281
|
-
# be valid.
|
282
|
-
#
|
283
|
-
# `nil` passes regex validation automatically.
|
284
|
-
#
|
285
|
-
# @example
|
286
|
-
# ```ruby
|
287
|
-
# property :x, regex: [ /abc/, /xyz/ ]
|
288
|
-
# ```
|
289
|
-
#
|
290
|
-
def _pv_regex(opts, key, regex)
|
291
|
-
value = _pv_opts_lookup(opts, key)
|
292
|
-
if !value.nil?
|
293
|
-
Array(regex).flatten.each do |r|
|
294
|
-
return true if r.match(value.to_s)
|
295
|
-
end
|
296
|
-
raise Exceptions::ValidationFailed, "Option #{key}'s value #{value} does not match regular expression #{regex.inspect}"
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
#
|
301
|
-
# List of procs we pass the value to.
|
302
|
-
#
|
303
|
-
# All procs must return true for the value to be valid. If any procs do
|
304
|
-
# not return true, the key will be used for the message: `"Property x's
|
305
|
-
# value :y <message>"`.
|
306
|
-
#
|
307
|
-
# @example
|
308
|
-
# ```ruby
|
309
|
-
# property :x, callbacks: { "is bigger than 10" => proc { |v| v <= 10 }, "is not awesome" => proc { |v| !v.awesome }}
|
310
|
-
# ```
|
311
|
-
#
|
312
|
-
def _pv_callbacks(opts, key, callbacks)
|
313
|
-
raise ArgumentError, "Callback list must be a hash!" unless callbacks.kind_of?(Hash)
|
314
|
-
value = _pv_opts_lookup(opts, key)
|
315
|
-
if !value.nil?
|
316
|
-
callbacks.each do |message, zeproc|
|
317
|
-
unless zeproc.call(value)
|
318
|
-
raise Exceptions::ValidationFailed, "Option #{key}'s value #{value} #{message}!"
|
319
|
-
end
|
320
|
-
end
|
321
|
-
end
|
322
|
-
end
|
323
|
-
|
324
|
-
#
|
325
|
-
# Allows a parameter to default to the value of the resource name.
|
326
|
-
#
|
327
|
-
# @example
|
328
|
-
# ```ruby
|
329
|
-
# property :x, name_property: true
|
330
|
-
# ```
|
331
|
-
#
|
332
|
-
def _pv_name_property(opts, key, is_name_property = true)
|
333
|
-
if is_name_property
|
334
|
-
if opts[key].nil?
|
335
|
-
raise CannotValidateStaticallyError, "name_property cannot be evaluated without a resource." if self == Chef::Mixin::ParamsValidate
|
336
|
-
opts[key] = self.instance_variable_get(:"@name")
|
337
|
-
end
|
338
|
-
end
|
339
|
-
end
|
340
|
-
alias :_pv_name_attribute :_pv_name_property
|
341
|
-
|
342
|
-
#
|
343
|
-
# List of valid things values can be.
|
344
|
-
#
|
345
|
-
# Uses Ruby's `===` to evaluate (is === value). At least one must match
|
346
|
-
# for the value to be valid.
|
347
|
-
#
|
348
|
-
# If a proc is passed, it is instance_eval'd in the resource, passed the
|
349
|
-
# value, and must return a truthy or falsey value.
|
350
|
-
#
|
351
|
-
# @example Class
|
352
|
-
# ```ruby
|
353
|
-
# property :x, String
|
354
|
-
# x 'valid' #=> valid
|
355
|
-
# x 1 #=> invalid
|
356
|
-
# x nil #=> invalid
|
357
|
-
#
|
358
|
-
# @example Value
|
359
|
-
# ```ruby
|
360
|
-
# property :x, [ :a, :b, :c, nil ]
|
361
|
-
# x :a #=> valid
|
362
|
-
# x nil #=> valid
|
363
|
-
# ```
|
364
|
-
#
|
365
|
-
# @example Regex
|
366
|
-
# ```ruby
|
367
|
-
# property :x, /bar/
|
368
|
-
# x 'foobar' #=> valid
|
369
|
-
# x 'foo' #=> invalid
|
370
|
-
# x nil #=> invalid
|
371
|
-
# ```
|
372
|
-
#
|
373
|
-
# @example Proc
|
374
|
-
# ```ruby
|
375
|
-
# property :x, proc { |x| x > y }
|
376
|
-
# property :y, default: 2
|
377
|
-
# x 3 #=> valid
|
378
|
-
# x 1 #=> invalid
|
379
|
-
# ```
|
380
|
-
#
|
381
|
-
# @example Property
|
382
|
-
# ```ruby
|
383
|
-
# type = Property.new(is: String)
|
384
|
-
# property :x, type
|
385
|
-
# x 'foo' #=> valid
|
386
|
-
# x 1 #=> invalid
|
387
|
-
# x nil #=> invalid
|
388
|
-
# ```
|
389
|
-
#
|
390
|
-
# @example RSpec Matcher
|
391
|
-
# ```ruby
|
392
|
-
# include RSpec::Matchers
|
393
|
-
# property :x, a_string_matching /bar/
|
394
|
-
# x 'foobar' #=> valid
|
395
|
-
# x 'foo' #=> invalid
|
396
|
-
# x nil #=> invalid
|
397
|
-
# ```
|
398
|
-
#
|
399
|
-
def _pv_is(opts, key, to_be, raise_error: true)
|
400
|
-
return true if !opts.has_key?(key.to_s) && !opts.has_key?(key.to_sym)
|
401
|
-
value = _pv_opts_lookup(opts, key)
|
402
|
-
to_be = [ to_be ].flatten(1)
|
403
|
-
errors = []
|
404
|
-
passed = to_be.any? do |tb|
|
405
|
-
case tb
|
406
|
-
when Proc
|
407
|
-
raise CannotValidateStaticallyError, "is: proc { } must be evaluated once for each resource" if self == Chef::Mixin::ParamsValidate
|
408
|
-
instance_exec(value, &tb)
|
409
|
-
when Property
|
410
|
-
begin
|
411
|
-
validate(opts, { key => tb.validation_options })
|
412
|
-
true
|
413
|
-
rescue Exceptions::ValidationFailed
|
414
|
-
# re-raise immediately if there is only one "is" so we get a better stack
|
415
|
-
raise if to_be.size == 1
|
416
|
-
errors << $!
|
417
|
-
false
|
418
|
-
end
|
419
|
-
else
|
420
|
-
tb === value
|
421
|
-
end
|
422
|
-
end
|
423
|
-
if passed
|
424
|
-
true
|
425
|
-
else
|
426
|
-
message = "Property #{key} must be one of: #{to_be.map { |v| v.inspect }.join(", ")}! You passed #{value.inspect}."
|
427
|
-
unless errors.empty?
|
428
|
-
message << " Errors:\n#{errors.map { |m| "- #{m}" }.join("\n")}"
|
429
|
-
end
|
430
|
-
raise Exceptions::ValidationFailed, message
|
431
|
-
end
|
432
|
-
end
|
433
|
-
|
434
|
-
#
|
435
|
-
# Method to mess with a value before it is validated and stored.
|
436
|
-
#
|
437
|
-
# Allows you to transform values into a canonical form that is easy to
|
438
|
-
# work with.
|
439
|
-
#
|
440
|
-
# This is passed the value to transform, and is run in the context of the
|
441
|
-
# instance (so it has access to other resource properties). It must return
|
442
|
-
# the value that will be stored in the instance.
|
443
|
-
#
|
444
|
-
# @example
|
445
|
-
# ```ruby
|
446
|
-
# property :x, Integer, coerce: { |v| v.to_i }
|
447
|
-
# ```
|
448
|
-
#
|
449
|
-
def _pv_coerce(opts, key, coercer)
|
450
|
-
if opts.has_key?(key.to_s)
|
451
|
-
raise CannotValidateStaticallyError, "coerce must be evaluated for each resource." if self == Chef::Mixin::ParamsValidate
|
452
|
-
opts[key.to_s] = instance_exec(opts[key], &coercer)
|
453
|
-
elsif opts.has_key?(key.to_sym)
|
454
|
-
raise CannotValidateStaticallyError, "coerce must be evaluated for each resource." if self == Chef::Mixin::ParamsValidate
|
455
|
-
opts[key.to_sym] = instance_exec(opts[key], &coercer)
|
456
|
-
end
|
457
|
-
end
|
458
|
-
|
459
|
-
# We allow Chef::Mixin::ParamsValidate.validate(), but we will raise an
|
460
|
-
# error if you try to do anything requiring there to be an actual resource.
|
461
|
-
# This way, you can statically validate things if you have constant validation
|
462
|
-
# (which is the norm).
|
463
|
-
extend self
|
464
|
-
|
465
|
-
# Used by #set_or_return to avoid emitting a deprecation warning for
|
466
|
-
# "value nil" and to keep default stickiness working exactly the same
|
467
|
-
# @api private
|
468
|
-
class SetOrReturnProperty < Chef::Property
|
469
|
-
def get(resource)
|
470
|
-
value = super
|
471
|
-
# All values are sticky, frozen or not
|
472
|
-
if !is_set?(resource)
|
473
|
-
set_value(resource, value)
|
474
|
-
end
|
475
|
-
value
|
476
|
-
end
|
477
|
-
|
478
|
-
def call(resource, value = NOT_PASSED)
|
479
|
-
# setting to nil does a get
|
480
|
-
if value.nil? && !explicitly_accepts_nil?(resource)
|
481
|
-
get(resource)
|
482
|
-
else
|
483
|
-
super
|
484
|
-
end
|
485
|
-
end
|
486
|
-
end
|
487
|
-
end
|
488
|
-
end
|
489
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
|
18
|
+
require "chef/constants"
|
19
|
+
require "chef/property"
|
20
|
+
require "chef/delayed_evaluator"
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
module Mixin
|
24
|
+
module ParamsValidate
|
25
|
+
# Takes a hash of options, along with a map to validate them. Returns the original
|
26
|
+
# options hash, plus any changes that might have been made (through things like setting
|
27
|
+
# default values in the validation map)
|
28
|
+
#
|
29
|
+
# For example:
|
30
|
+
#
|
31
|
+
# validate({ :one => "neat" }, { :one => { :kind_of => String }})
|
32
|
+
#
|
33
|
+
# Would raise an exception if the value of :one above is not a kind_of? string. Valid
|
34
|
+
# map options are:
|
35
|
+
#
|
36
|
+
# @param opts [Hash<Symbol,Object>] Validation opts.
|
37
|
+
# @option opts [Object,Array] :is An object, or list of
|
38
|
+
# objects, that must match the value using Ruby's `===` operator
|
39
|
+
# (`opts[:is].any? { |v| v === value }`). (See #_pv_is.)
|
40
|
+
# @option opts [Object,Array] :equal_to An object, or list
|
41
|
+
# of objects, that must be equal to the value using Ruby's `==`
|
42
|
+
# operator (`opts[:is].any? { |v| v == value }`) (See #_pv_equal_to.)
|
43
|
+
# @option opts [Regexp,Array<Regexp>] :regex An object, or
|
44
|
+
# list of objects, that must match the value with `regex.match(value)`.
|
45
|
+
# (See #_pv_regex)
|
46
|
+
# @option opts [Class,Array<Class>] :kind_of A class, or
|
47
|
+
# list of classes, that the value must be an instance of. (See
|
48
|
+
# #_pv_kind_of.)
|
49
|
+
# @option opts [Hash<String,Proc>] :callbacks A hash of
|
50
|
+
# messages -> procs, all of which match the value. The proc must
|
51
|
+
# return a truthy or falsey value (true means it matches). (See
|
52
|
+
# #_pv_callbacks.)
|
53
|
+
# @option opts [Symbol,Array<Symbol>] :respond_to A method
|
54
|
+
# name, or list of method names, the value must respond to. (See
|
55
|
+
# #_pv_respond_to.)
|
56
|
+
# @option opts [Symbol,Array<Symbol>] :cannot_be A property,
|
57
|
+
# or a list of properties, that the value cannot have (such as `:nil` or
|
58
|
+
# `:empty`). The method with a questionmark at the end is called on the
|
59
|
+
# value (e.g. `value.empty?`). If the value does not have this method,
|
60
|
+
# it is considered valid (i.e. if you don't respond to `empty?` we
|
61
|
+
# assume you are not empty). (See #_pv_cannot_be.)
|
62
|
+
# @option opts [Proc] :coerce A proc which will be called to
|
63
|
+
# transform the user input to canonical form. The value is passed in,
|
64
|
+
# and the transformed value returned as output. Lazy values will *not*
|
65
|
+
# be passed to this method until after they are evaluated. Called in the
|
66
|
+
# context of the resource (meaning you can access other properties).
|
67
|
+
# (See #_pv_coerce.) (See #_pv_coerce.)
|
68
|
+
# @option opts [Boolean] :required `true` if this property
|
69
|
+
# must be present and not `nil`; `false` otherwise. This is checked
|
70
|
+
# after the resource is fully initialized. (See #_pv_required.)
|
71
|
+
# @option opts [Boolean] :name_property `true` if this
|
72
|
+
# property defaults to the same value as `name`. Equivalent to
|
73
|
+
# `default: lazy { name }`, except that #property_is_set? will
|
74
|
+
# return `true` if the property is set *or* if `name` is set. (See
|
75
|
+
# #_pv_name_property.)
|
76
|
+
# @option opts [Boolean] :name_attribute Same as `name_property`.
|
77
|
+
# @option opts [Object] :default The value this property
|
78
|
+
# will return if the user does not set one. If this is `lazy`, it will
|
79
|
+
# be run in the context of the instance (and able to access other
|
80
|
+
# properties). (See #_pv_default.)
|
81
|
+
#
|
82
|
+
def validate(opts, map)
|
83
|
+
map = map.validation_options if map.is_a?(Property)
|
84
|
+
|
85
|
+
#--
|
86
|
+
# validate works by taking the keys in the validation map, assuming it's a hash, and
|
87
|
+
# looking for _pv_:symbol as methods. Assuming it find them, it calls the right
|
88
|
+
# one.
|
89
|
+
#++
|
90
|
+
raise ArgumentError, "Options must be a hash" unless opts.kind_of?(Hash)
|
91
|
+
raise ArgumentError, "Validation Map must be a hash" unless map.kind_of?(Hash)
|
92
|
+
|
93
|
+
map.each do |key, validation|
|
94
|
+
unless key.kind_of?(Symbol) || key.kind_of?(String)
|
95
|
+
raise ArgumentError, "Validation map keys must be symbols or strings!"
|
96
|
+
end
|
97
|
+
case validation
|
98
|
+
when true
|
99
|
+
_pv_required(opts, key)
|
100
|
+
when false
|
101
|
+
true
|
102
|
+
when Hash
|
103
|
+
validation.each do |check, carg|
|
104
|
+
check_method = "_pv_#{check}"
|
105
|
+
if self.respond_to?(check_method, true)
|
106
|
+
self.send(check_method, opts, key, carg)
|
107
|
+
else
|
108
|
+
raise ArgumentError, "Validation map has unknown check: #{check}"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
opts
|
114
|
+
end
|
115
|
+
|
116
|
+
def lazy(&block)
|
117
|
+
DelayedEvaluator.new(&block)
|
118
|
+
end
|
119
|
+
|
120
|
+
def set_or_return(symbol, value, validation)
|
121
|
+
property = SetOrReturnProperty.new(name: symbol, **validation)
|
122
|
+
property.call(self, value)
|
123
|
+
end
|
124
|
+
|
125
|
+
private
|
126
|
+
|
127
|
+
def explicitly_allows_nil?(key, validation)
|
128
|
+
validation.has_key?(:is) && _pv_is({ key => nil }, key, validation[:is], raise_error: false)
|
129
|
+
end
|
130
|
+
|
131
|
+
# Return the value of a parameter, or nil if it doesn't exist.
|
132
|
+
def _pv_opts_lookup(opts, key)
|
133
|
+
if opts.has_key?(key.to_s)
|
134
|
+
opts[key.to_s]
|
135
|
+
elsif opts.has_key?(key.to_sym)
|
136
|
+
opts[key.to_sym]
|
137
|
+
else
|
138
|
+
nil
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# Raise an exception if the parameter is not found.
|
143
|
+
def _pv_required(opts, key, is_required = true, explicitly_allows_nil = false)
|
144
|
+
if is_required
|
145
|
+
return true if opts.has_key?(key.to_s) && (explicitly_allows_nil || !opts[key.to_s].nil?)
|
146
|
+
return true if opts.has_key?(key.to_sym) && (explicitly_allows_nil || !opts[key.to_sym].nil?)
|
147
|
+
raise Exceptions::ValidationFailed, "Required argument #{key.inspect} is missing!"
|
148
|
+
end
|
149
|
+
true
|
150
|
+
end
|
151
|
+
|
152
|
+
#
|
153
|
+
# List of things values must be equal to.
|
154
|
+
#
|
155
|
+
# Uses Ruby's `==` to evaluate (equal_to == value). At least one must
|
156
|
+
# match for the value to be valid.
|
157
|
+
#
|
158
|
+
# `nil` passes this validation automatically.
|
159
|
+
#
|
160
|
+
# @return [Array,nil] List of things values must be equal to, or nil if
|
161
|
+
# equal_to is unspecified.
|
162
|
+
#
|
163
|
+
def _pv_equal_to(opts, key, to_be)
|
164
|
+
value = _pv_opts_lookup(opts, key)
|
165
|
+
unless value.nil?
|
166
|
+
to_be = Array(to_be)
|
167
|
+
to_be.each do |tb|
|
168
|
+
return true if value == tb
|
169
|
+
end
|
170
|
+
raise Exceptions::ValidationFailed, "Option #{key} must be equal to one of: #{to_be.join(", ")}! You passed #{value.inspect}."
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
#
|
175
|
+
# List of things values must be instances of.
|
176
|
+
#
|
177
|
+
# Uses value.kind_of?(kind_of) to evaluate. At least one must match for
|
178
|
+
# the value to be valid.
|
179
|
+
#
|
180
|
+
# `nil` automatically passes this validation.
|
181
|
+
#
|
182
|
+
def _pv_kind_of(opts, key, to_be)
|
183
|
+
value = _pv_opts_lookup(opts, key)
|
184
|
+
unless value.nil?
|
185
|
+
to_be = Array(to_be)
|
186
|
+
to_be.each do |tb|
|
187
|
+
return true if value.kind_of?(tb)
|
188
|
+
end
|
189
|
+
raise Exceptions::ValidationFailed, "Option #{key} must be a kind of #{to_be}! You passed #{value.inspect}."
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
#
|
194
|
+
# List of method names values must respond to.
|
195
|
+
#
|
196
|
+
# Uses value.respond_to?(respond_to) to evaluate. At least one must match
|
197
|
+
# for the value to be valid.
|
198
|
+
#
|
199
|
+
def _pv_respond_to(opts, key, method_name_list)
|
200
|
+
value = _pv_opts_lookup(opts, key)
|
201
|
+
unless value.nil?
|
202
|
+
Array(method_name_list).each do |method_name|
|
203
|
+
unless value.respond_to?(method_name)
|
204
|
+
raise Exceptions::ValidationFailed, "Option #{key} must have a #{method_name} method!"
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
#
|
211
|
+
# List of things that must not be true about the value.
|
212
|
+
#
|
213
|
+
# Calls `value.<thing>?` All responses must be false for the value to be
|
214
|
+
# valid.
|
215
|
+
# Values which do not respond to <thing>? are considered valid (because if
|
216
|
+
# a value doesn't respond to `:readable?`, then it probably isn't
|
217
|
+
# readable.)
|
218
|
+
#
|
219
|
+
# @example
|
220
|
+
# ```ruby
|
221
|
+
# property :x, cannot_be: [ :nil, :empty ]
|
222
|
+
# x [ 1, 2 ] #=> valid
|
223
|
+
# x 1 #=> valid
|
224
|
+
# x [] #=> invalid
|
225
|
+
# x nil #=> invalid
|
226
|
+
# ```
|
227
|
+
#
|
228
|
+
def _pv_cannot_be(opts, key, predicate_method_base_name)
|
229
|
+
value = _pv_opts_lookup(opts, key)
|
230
|
+
if !value.nil?
|
231
|
+
Array(predicate_method_base_name).each do |method_name|
|
232
|
+
predicate_method = :"#{method_name}?"
|
233
|
+
|
234
|
+
if value.respond_to?(predicate_method)
|
235
|
+
if value.send(predicate_method)
|
236
|
+
raise Exceptions::ValidationFailed, "Option #{key} cannot be #{predicate_method_base_name}"
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
#
|
244
|
+
# The default value for a property.
|
245
|
+
#
|
246
|
+
# When the property is not assigned, this will be used.
|
247
|
+
#
|
248
|
+
# If this is a lazy value, it will either be passed the resource as a value,
|
249
|
+
# or if the lazy proc does not take parameters, it will be run in the
|
250
|
+
# context of the instance with instance_eval.
|
251
|
+
#
|
252
|
+
# @example
|
253
|
+
# ```ruby
|
254
|
+
# property :x, default: 10
|
255
|
+
# ```
|
256
|
+
#
|
257
|
+
# @example
|
258
|
+
# ```ruby
|
259
|
+
# property :x
|
260
|
+
# property :y, default: lazy { x+2 }
|
261
|
+
# ```
|
262
|
+
#
|
263
|
+
# @example
|
264
|
+
# ```ruby
|
265
|
+
# property :x
|
266
|
+
# property :y, default: lazy { |r| r.x+2 }
|
267
|
+
# ```
|
268
|
+
#
|
269
|
+
def _pv_default(opts, key, default_value)
|
270
|
+
value = _pv_opts_lookup(opts, key)
|
271
|
+
if value.nil?
|
272
|
+
default_value = default_value.freeze if !default_value.is_a?(DelayedEvaluator)
|
273
|
+
opts[key] = default_value
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
#
|
278
|
+
# List of regexes values that must match.
|
279
|
+
#
|
280
|
+
# Uses regex.match() to evaluate. At least one must match for the value to
|
281
|
+
# be valid.
|
282
|
+
#
|
283
|
+
# `nil` passes regex validation automatically.
|
284
|
+
#
|
285
|
+
# @example
|
286
|
+
# ```ruby
|
287
|
+
# property :x, regex: [ /abc/, /xyz/ ]
|
288
|
+
# ```
|
289
|
+
#
|
290
|
+
def _pv_regex(opts, key, regex)
|
291
|
+
value = _pv_opts_lookup(opts, key)
|
292
|
+
if !value.nil?
|
293
|
+
Array(regex).flatten.each do |r|
|
294
|
+
return true if r.match(value.to_s)
|
295
|
+
end
|
296
|
+
raise Exceptions::ValidationFailed, "Option #{key}'s value #{value} does not match regular expression #{regex.inspect}"
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
#
|
301
|
+
# List of procs we pass the value to.
|
302
|
+
#
|
303
|
+
# All procs must return true for the value to be valid. If any procs do
|
304
|
+
# not return true, the key will be used for the message: `"Property x's
|
305
|
+
# value :y <message>"`.
|
306
|
+
#
|
307
|
+
# @example
|
308
|
+
# ```ruby
|
309
|
+
# property :x, callbacks: { "is bigger than 10" => proc { |v| v <= 10 }, "is not awesome" => proc { |v| !v.awesome }}
|
310
|
+
# ```
|
311
|
+
#
|
312
|
+
def _pv_callbacks(opts, key, callbacks)
|
313
|
+
raise ArgumentError, "Callback list must be a hash!" unless callbacks.kind_of?(Hash)
|
314
|
+
value = _pv_opts_lookup(opts, key)
|
315
|
+
if !value.nil?
|
316
|
+
callbacks.each do |message, zeproc|
|
317
|
+
unless zeproc.call(value)
|
318
|
+
raise Exceptions::ValidationFailed, "Option #{key}'s value #{value} #{message}!"
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
324
|
+
#
|
325
|
+
# Allows a parameter to default to the value of the resource name.
|
326
|
+
#
|
327
|
+
# @example
|
328
|
+
# ```ruby
|
329
|
+
# property :x, name_property: true
|
330
|
+
# ```
|
331
|
+
#
|
332
|
+
def _pv_name_property(opts, key, is_name_property = true)
|
333
|
+
if is_name_property
|
334
|
+
if opts[key].nil?
|
335
|
+
raise CannotValidateStaticallyError, "name_property cannot be evaluated without a resource." if self == Chef::Mixin::ParamsValidate
|
336
|
+
opts[key] = self.instance_variable_get(:"@name")
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
alias :_pv_name_attribute :_pv_name_property
|
341
|
+
|
342
|
+
#
|
343
|
+
# List of valid things values can be.
|
344
|
+
#
|
345
|
+
# Uses Ruby's `===` to evaluate (is === value). At least one must match
|
346
|
+
# for the value to be valid.
|
347
|
+
#
|
348
|
+
# If a proc is passed, it is instance_eval'd in the resource, passed the
|
349
|
+
# value, and must return a truthy or falsey value.
|
350
|
+
#
|
351
|
+
# @example Class
|
352
|
+
# ```ruby
|
353
|
+
# property :x, String
|
354
|
+
# x 'valid' #=> valid
|
355
|
+
# x 1 #=> invalid
|
356
|
+
# x nil #=> invalid
|
357
|
+
#
|
358
|
+
# @example Value
|
359
|
+
# ```ruby
|
360
|
+
# property :x, [ :a, :b, :c, nil ]
|
361
|
+
# x :a #=> valid
|
362
|
+
# x nil #=> valid
|
363
|
+
# ```
|
364
|
+
#
|
365
|
+
# @example Regex
|
366
|
+
# ```ruby
|
367
|
+
# property :x, /bar/
|
368
|
+
# x 'foobar' #=> valid
|
369
|
+
# x 'foo' #=> invalid
|
370
|
+
# x nil #=> invalid
|
371
|
+
# ```
|
372
|
+
#
|
373
|
+
# @example Proc
|
374
|
+
# ```ruby
|
375
|
+
# property :x, proc { |x| x > y }
|
376
|
+
# property :y, default: 2
|
377
|
+
# x 3 #=> valid
|
378
|
+
# x 1 #=> invalid
|
379
|
+
# ```
|
380
|
+
#
|
381
|
+
# @example Property
|
382
|
+
# ```ruby
|
383
|
+
# type = Property.new(is: String)
|
384
|
+
# property :x, type
|
385
|
+
# x 'foo' #=> valid
|
386
|
+
# x 1 #=> invalid
|
387
|
+
# x nil #=> invalid
|
388
|
+
# ```
|
389
|
+
#
|
390
|
+
# @example RSpec Matcher
|
391
|
+
# ```ruby
|
392
|
+
# include RSpec::Matchers
|
393
|
+
# property :x, a_string_matching /bar/
|
394
|
+
# x 'foobar' #=> valid
|
395
|
+
# x 'foo' #=> invalid
|
396
|
+
# x nil #=> invalid
|
397
|
+
# ```
|
398
|
+
#
|
399
|
+
def _pv_is(opts, key, to_be, raise_error: true)
|
400
|
+
return true if !opts.has_key?(key.to_s) && !opts.has_key?(key.to_sym)
|
401
|
+
value = _pv_opts_lookup(opts, key)
|
402
|
+
to_be = [ to_be ].flatten(1)
|
403
|
+
errors = []
|
404
|
+
passed = to_be.any? do |tb|
|
405
|
+
case tb
|
406
|
+
when Proc
|
407
|
+
raise CannotValidateStaticallyError, "is: proc { } must be evaluated once for each resource" if self == Chef::Mixin::ParamsValidate
|
408
|
+
instance_exec(value, &tb)
|
409
|
+
when Property
|
410
|
+
begin
|
411
|
+
validate(opts, { key => tb.validation_options })
|
412
|
+
true
|
413
|
+
rescue Exceptions::ValidationFailed
|
414
|
+
# re-raise immediately if there is only one "is" so we get a better stack
|
415
|
+
raise if to_be.size == 1
|
416
|
+
errors << $!
|
417
|
+
false
|
418
|
+
end
|
419
|
+
else
|
420
|
+
tb === value
|
421
|
+
end
|
422
|
+
end
|
423
|
+
if passed
|
424
|
+
true
|
425
|
+
else
|
426
|
+
message = "Property #{key} must be one of: #{to_be.map { |v| v.inspect }.join(", ")}! You passed #{value.inspect}."
|
427
|
+
unless errors.empty?
|
428
|
+
message << " Errors:\n#{errors.map { |m| "- #{m}" }.join("\n")}"
|
429
|
+
end
|
430
|
+
raise Exceptions::ValidationFailed, message
|
431
|
+
end
|
432
|
+
end
|
433
|
+
|
434
|
+
#
|
435
|
+
# Method to mess with a value before it is validated and stored.
|
436
|
+
#
|
437
|
+
# Allows you to transform values into a canonical form that is easy to
|
438
|
+
# work with.
|
439
|
+
#
|
440
|
+
# This is passed the value to transform, and is run in the context of the
|
441
|
+
# instance (so it has access to other resource properties). It must return
|
442
|
+
# the value that will be stored in the instance.
|
443
|
+
#
|
444
|
+
# @example
|
445
|
+
# ```ruby
|
446
|
+
# property :x, Integer, coerce: { |v| v.to_i }
|
447
|
+
# ```
|
448
|
+
#
|
449
|
+
def _pv_coerce(opts, key, coercer)
|
450
|
+
if opts.has_key?(key.to_s)
|
451
|
+
raise CannotValidateStaticallyError, "coerce must be evaluated for each resource." if self == Chef::Mixin::ParamsValidate
|
452
|
+
opts[key.to_s] = instance_exec(opts[key], &coercer)
|
453
|
+
elsif opts.has_key?(key.to_sym)
|
454
|
+
raise CannotValidateStaticallyError, "coerce must be evaluated for each resource." if self == Chef::Mixin::ParamsValidate
|
455
|
+
opts[key.to_sym] = instance_exec(opts[key], &coercer)
|
456
|
+
end
|
457
|
+
end
|
458
|
+
|
459
|
+
# We allow Chef::Mixin::ParamsValidate.validate(), but we will raise an
|
460
|
+
# error if you try to do anything requiring there to be an actual resource.
|
461
|
+
# This way, you can statically validate things if you have constant validation
|
462
|
+
# (which is the norm).
|
463
|
+
extend self
|
464
|
+
|
465
|
+
# Used by #set_or_return to avoid emitting a deprecation warning for
|
466
|
+
# "value nil" and to keep default stickiness working exactly the same
|
467
|
+
# @api private
|
468
|
+
class SetOrReturnProperty < Chef::Property
|
469
|
+
def get(resource)
|
470
|
+
value = super
|
471
|
+
# All values are sticky, frozen or not
|
472
|
+
if !is_set?(resource)
|
473
|
+
set_value(resource, value)
|
474
|
+
end
|
475
|
+
value
|
476
|
+
end
|
477
|
+
|
478
|
+
def call(resource, value = NOT_PASSED)
|
479
|
+
# setting to nil does a get
|
480
|
+
if value.nil? && !explicitly_accepts_nil?(resource)
|
481
|
+
get(resource)
|
482
|
+
else
|
483
|
+
super
|
484
|
+
end
|
485
|
+
end
|
486
|
+
end
|
487
|
+
end
|
488
|
+
end
|
489
|
+
end
|