knife 18.6.2 → 18.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +23 -27
- data/LICENSE +201 -201
- data/Rakefile +33 -33
- data/bin/knife +24 -24
- data/knife.gemspec +65 -64
- data/lib/chef/application/knife.rb +237 -237
- data/lib/chef/chef_fs/knife.rb +162 -162
- data/lib/chef/knife/acl_add.rb +57 -57
- data/lib/chef/knife/acl_base.rb +183 -183
- data/lib/chef/knife/acl_bulk_add.rb +78 -78
- data/lib/chef/knife/acl_bulk_remove.rb +83 -83
- data/lib/chef/knife/acl_remove.rb +62 -62
- data/lib/chef/knife/acl_show.rb +56 -56
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +160 -160
- data/lib/chef/knife/bootstrap/client_builder.rb +212 -212
- data/lib/chef/knife/bootstrap/templates/README.md +11 -11
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +249 -249
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +278 -278
- data/lib/chef/knife/bootstrap/train_connector.rb +334 -334
- data/lib/chef/knife/bootstrap.rb +1229 -1219
- data/lib/chef/knife/client_bulk_delete.rb +104 -104
- data/lib/chef/knife/client_create.rb +140 -140
- data/lib/chef/knife/client_delete.rb +62 -62
- data/lib/chef/knife/client_edit.rb +52 -52
- data/lib/chef/knife/client_key_create.rb +73 -73
- data/lib/chef/knife/client_key_delete.rb +80 -80
- data/lib/chef/knife/client_key_edit.rb +83 -83
- data/lib/chef/knife/client_key_list.rb +73 -73
- data/lib/chef/knife/client_key_show.rb +80 -80
- data/lib/chef/knife/client_list.rb +41 -41
- data/lib/chef/knife/client_reregister.rb +58 -58
- data/lib/chef/knife/client_show.rb +48 -48
- data/lib/chef/knife/config_get.rb +39 -39
- data/lib/chef/knife/config_get_profile.rb +37 -37
- data/lib/chef/knife/config_list.rb +139 -139
- data/lib/chef/knife/config_list_profiles.rb +37 -37
- data/lib/chef/knife/config_show.rb +127 -127
- data/lib/chef/knife/config_use.rb +61 -61
- data/lib/chef/knife/config_use_profile.rb +47 -47
- data/lib/chef/knife/configure.rb +150 -150
- data/lib/chef/knife/configure_client.rb +48 -48
- data/lib/chef/knife/cookbook_bulk_delete.rb +71 -71
- data/lib/chef/knife/cookbook_delete.rb +151 -151
- data/lib/chef/knife/cookbook_download.rb +142 -142
- data/lib/chef/knife/cookbook_list.rb +47 -47
- data/lib/chef/knife/cookbook_metadata.rb +106 -106
- data/lib/chef/knife/cookbook_metadata_from_file.rb +49 -49
- data/lib/chef/knife/cookbook_show.rb +98 -98
- data/lib/chef/knife/cookbook_upload.rb +313 -313
- data/lib/chef/knife/core/bootstrap_context.rb +274 -274
- data/lib/chef/knife/core/cookbook_scm_repo.rb +159 -159
- data/lib/chef/knife/core/cookbook_site_streaming_uploader.rb +249 -249
- data/lib/chef/knife/core/formatting_options.rb +49 -49
- data/lib/chef/knife/core/gem_glob_loader.rb +134 -134
- data/lib/chef/knife/core/generic_presenter.rb +238 -238
- data/lib/chef/knife/core/hashed_command_loader.rb +100 -100
- data/lib/chef/knife/core/node_editor.rb +130 -130
- data/lib/chef/knife/core/node_presenter.rb +133 -133
- data/lib/chef/knife/core/object_loader.rb +115 -115
- data/lib/chef/knife/core/status_presenter.rb +147 -147
- data/lib/chef/knife/core/subcommand_loader.rb +208 -208
- data/lib/chef/knife/core/text_formatter.rb +85 -85
- data/lib/chef/knife/core/ui.rb +339 -339
- data/lib/chef/knife/core/windows_bootstrap_context.rb +441 -443
- data/lib/chef/knife/data_bag_create.rb +81 -81
- 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 +113 -113
- data/lib/chef/knife/data_bag_list.rb +42 -42
- data/lib/chef/knife/data_bag_secret_options.rb +122 -122
- data/lib/chef/knife/data_bag_show.rb +69 -69
- data/lib/chef/knife/delete.rb +125 -125
- data/lib/chef/knife/deps.rb +156 -156
- data/lib/chef/knife/diff.rb +83 -83
- data/lib/chef/knife/download.rb +85 -85
- data/lib/chef/knife/edit.rb +88 -88
- data/lib/chef/knife/environment_compare.rb +128 -128
- data/lib/chef/knife/environment_create.rb +52 -52
- data/lib/chef/knife/environment_delete.rb +44 -44
- data/lib/chef/knife/environment_edit.rb +44 -44
- data/lib/chef/knife/environment_from_file.rb +84 -84
- data/lib/chef/knife/environment_list.rb +41 -41
- data/lib/chef/knife/environment_show.rb +47 -47
- data/lib/chef/knife/exec.rb +99 -99
- data/lib/chef/knife/group_add.rb +55 -55
- data/lib/chef/knife/group_create.rb +49 -49
- data/lib/chef/knife/group_destroy.rb +53 -53
- data/lib/chef/knife/group_list.rb +43 -43
- data/lib/chef/knife/group_remove.rb +56 -56
- data/lib/chef/knife/group_show.rb +49 -49
- data/lib/chef/knife/key_create.rb +112 -112
- 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 -118
- data/lib/chef/knife/key_edit_base.rb +55 -55
- data/lib/chef/knife/key_list.rb +90 -90
- data/lib/chef/knife/key_list_base.rb +45 -45
- data/lib/chef/knife/key_show.rb +53 -53
- data/lib/chef/knife/license.rb +52 -52
- data/lib/chef/knife/list.rb +177 -177
- data/lib/chef/knife/node_bulk_delete.rb +75 -75
- 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 +53 -53
- data/lib/chef/knife/node_from_file.rb +51 -51
- data/lib/chef/knife/node_list.rb +44 -44
- data/lib/chef/knife/node_policy_set.rb +79 -79
- 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 +63 -63
- data/lib/chef/knife/null.rb +12 -12
- data/lib/chef/knife/org_create.rb +70 -70
- data/lib/chef/knife/org_delete.rb +32 -32
- data/lib/chef/knife/org_edit.rb +48 -48
- data/lib/chef/knife/org_list.rb +44 -44
- data/lib/chef/knife/org_show.rb +31 -31
- data/lib/chef/knife/org_user_add.rb +62 -62
- data/lib/chef/knife/org_user_remove.rb +103 -103
- data/lib/chef/knife/raw.rb +123 -123
- data/lib/chef/knife/recipe_list.rb +32 -32
- data/lib/chef/knife/rehash.rb +50 -50
- data/lib/chef/knife/role_bulk_delete.rb +66 -66
- 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 +87 -87
- 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 +60 -60
- 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 +87 -87
- data/lib/chef/knife/role_run_list_clear.rb +55 -55
- data/lib/chef/knife/role_run_list_remove.rb +56 -56
- data/lib/chef/knife/role_run_list_replace.rb +60 -60
- data/lib/chef/knife/role_run_list_set.rb +69 -69
- data/lib/chef/knife/role_show.rb +48 -48
- data/lib/chef/knife/search.rb +194 -194
- data/lib/chef/knife/serve.rb +65 -65
- data/lib/chef/knife/show.rb +72 -72
- data/lib/chef/knife/ssh.rb +657 -657
- data/lib/chef/knife/ssl_check.rb +284 -284
- data/lib/chef/knife/ssl_fetch.rb +162 -162
- data/lib/chef/knife/status.rb +95 -95
- data/lib/chef/knife/supermarket_download.rb +119 -119
- data/lib/chef/knife/supermarket_install.rb +192 -192
- data/lib/chef/knife/supermarket_list.rb +76 -76
- data/lib/chef/knife/supermarket_search.rb +53 -53
- data/lib/chef/knife/supermarket_share.rb +166 -166
- data/lib/chef/knife/supermarket_show.rb +66 -66
- data/lib/chef/knife/supermarket_unshare.rb +62 -62
- 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 +87 -87
- data/lib/chef/knife/user_create.rb +180 -180
- data/lib/chef/knife/user_delete.rb +151 -151
- data/lib/chef/knife/user_dissociate.rb +42 -42
- data/lib/chef/knife/user_edit.rb +94 -94
- data/lib/chef/knife/user_invite_add.rb +43 -43
- data/lib/chef/knife/user_invite_list.rb +34 -34
- data/lib/chef/knife/user_invite_rescind.rb +63 -63
- data/lib/chef/knife/user_key_create.rb +73 -73
- data/lib/chef/knife/user_key_delete.rb +80 -80
- data/lib/chef/knife/user_key_edit.rb +83 -83
- data/lib/chef/knife/user_key_list.rb +73 -73
- data/lib/chef/knife/user_key_show.rb +80 -80
- data/lib/chef/knife/user_list.rb +43 -43
- data/lib/chef/knife/user_password.rb +70 -70
- data/lib/chef/knife/user_reregister.rb +59 -59
- data/lib/chef/knife/user_show.rb +52 -52
- data/lib/chef/knife/version.rb +24 -24
- data/lib/chef/knife/xargs.rb +282 -282
- data/lib/chef/knife/yaml_convert.rb +91 -91
- data/lib/chef/knife.rb +677 -677
- data/lib/chef/utils/licensing_config.rb +9 -9
- data/lib/chef/utils/licensing_handler.rb +72 -46
- 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/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/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/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 -2
- data/spec/data/client.d_00/01-bar.rb +1 -1
- data/spec/data/client.d_00/02-strings.rb +2 -2
- data/spec/data/client.d_00/bar +1 -1
- data/spec/data/client.d_01/foo/bar.rb +1 -1
- data/spec/data/client.d_02/foo.rb/foo.txt +1 -1
- data/spec/data/config.rb +6 -6
- data/spec/data/cookbooks/angrybash/metadata.rb +2 -2
- data/spec/data/cookbooks/angrybash/recipes/default.rb +8 -8
- data/spec/data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +2 -2
- data/spec/data/cookbooks/apache2/metadata.json +33 -33
- 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/irssi/files/default/irssi.response +2 -2
- data/spec/data/cookbooks/java/files/default/java.response +1 -1
- data/spec/data/cookbooks/java/metadata.json +33 -33
- 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/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/version.rb +3 -3
- data/spec/data/cookbooks/openldap/libraries/openldap.rb +4 -4
- data/spec/data/cookbooks/openldap/metadata.rb +8 -8
- data/spec/data/cookbooks/openldap/recipes/default.rb +4 -4
- data/spec/data/cookbooks/openldap/recipes/gigantor.rb +3 -3
- data/spec/data/cookbooks/openldap/recipes/one.rb +15 -15
- data/spec/data/cookbooks/openldap/recipes/return.rb +2 -2
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/helpers.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_nested_variable_stuff.erb +1 -1
- 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/starter/chefignore +8 -8
- data/spec/data/cookbooks/starter/metadata.rb +2 -2
- data/spec/data/cookbooks/starter/recipes/default.rb +4 -4
- data/spec/data/cookbooks/supports-platform-constraints/metadata.rb +5 -5
- data/spec/data/cookbooks/wget/files/default/wget.response +2 -2
- 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 +24 -24
- 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 +4 -4
- data/spec/data/lwrp/resources/buck_passer.rb +6 -6
- data/spec/data/lwrp/resources/buck_passer_2.rb +4 -4
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +4 -4
- data/spec/data/lwrp/resources/foo.rb +6 -6
- data/spec/data/lwrp/resources/inline_compiler.rb +4 -4
- data/spec/data/lwrp/resources/monkey_name_printer.rb +6 -6
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +4 -4
- data/spec/data/lwrp/resources/thumb_twiddler.rb +4 -4
- data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +3 -3
- data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -1
- data/spec/data/lwrp_override/providers/buck_passer.rb +5 -5
- data/spec/data/lwrp_override/resources/foo.rb +11 -11
- 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 +14 -14
- data/spec/data/mixin/invalid_data.rb +3 -3
- data/spec/data/mixin/real_data.rb +2 -2
- 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/prefer_metadata_json/metadata.json +51 -51
- data/spec/data/prefer_metadata_json/metadata.rb +6 -6
- data/spec/data/recipes/test.rb +7 -7
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -3
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -3
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -3
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -1
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -2
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -3
- data/spec/data/rubygems.org/sexp_processor-info +49 -49
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +2 -2
- 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 +2 -2
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +2 -2
- 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 +2 -2
- 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/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/definitions/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/libraries/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -1
- data/spec/data/run_context/cookbooks/dependency1/providers/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency1/recipes/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +2 -2
- data/spec/data/run_context/cookbooks/dependency1/resources/unparsed_file +1 -1
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +2 -2
- 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 +3 -3
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +2 -2
- 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 +2 -2
- data/spec/data/run_context/nodes/run_context.rb +5 -5
- data/spec/data/sample_msu1.xml +10 -10
- data/spec/data/sample_msu2.xml +14 -14
- data/spec/data/sample_msu3.xml +16 -16
- data/spec/data/search_queries_to_transform.txt +98 -98
- data/spec/data/shef-config.rb +11 -11
- data/spec/data/snap_package/async_result_success.json +6 -6
- data/spec/data/snap_package/change_id_result.json +175 -175
- data/spec/data/snap_package/find_result_failure.json +10 -10
- data/spec/data/snap_package/find_result_success.json +70 -70
- data/spec/data/snap_package/get_by_name_result_failure.json +10 -10
- data/spec/data/snap_package/get_by_name_result_success.json +38 -38
- data/spec/data/snap_package/get_conf_success.json +10 -10
- data/spec/data/snap_package/result_failure.json +9 -9
- 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/templates/failed.erb +5 -5
- data/spec/data/trusted_certs/example.crt +22 -22
- data/spec/data/trusted_certs/example_no_cn.crt +36 -36
- 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/data/windows_certificates/base64_test.cer +20 -20
- data/spec/data/windows_certificates/othertest.cer +20 -20
- data/spec/data/windows_certificates/test.cer +20 -20
- data/spec/data/windows_certificates/test.pem +20 -20
- data/spec/functional/configure_spec.rb +33 -33
- data/spec/functional/cookbook_delete_spec.rb +157 -156
- data/spec/functional/exec_spec.rb +55 -55
- data/spec/functional/rehash_spec.rb +39 -39
- data/spec/functional/smoke_test.rb +42 -42
- data/spec/functional/ssh_spec.rb +352 -352
- data/spec/functional/version_spec.rb +26 -26
- data/spec/integration/chef_fs_data_store_spec.rb +557 -557
- data/spec/integration/chef_repo_path_spec.rb +962 -962
- data/spec/integration/chef_repository_file_system_spec.rb +200 -200
- data/spec/integration/chefignore_spec.rb +301 -301
- data/spec/integration/client_bulk_delete_spec.rb +131 -131
- data/spec/integration/client_create_spec.rb +70 -70
- data/spec/integration/client_delete_spec.rb +64 -64
- data/spec/integration/client_key_create_spec.rb +66 -66
- data/spec/integration/client_key_delete_spec.rb +43 -43
- data/spec/integration/client_key_list_spec.rb +61 -61
- data/spec/integration/client_key_show_spec.rb +45 -45
- data/spec/integration/client_list_spec.rb +49 -49
- data/spec/integration/client_show_spec.rb +37 -37
- data/spec/integration/commands_spec.rb +55 -55
- data/spec/integration/common_options_spec.rb +174 -174
- data/spec/integration/config_list_spec.rb +220 -220
- data/spec/integration/config_show_spec.rb +192 -192
- data/spec/integration/config_use_spec.rb +198 -198
- data/spec/integration/cookbook_api_ipv6_spec.rb +113 -113
- data/spec/integration/cookbook_bulk_delete_spec.rb +65 -65
- data/spec/integration/cookbook_download_spec.rb +72 -72
- data/spec/integration/cookbook_list_spec.rb +55 -55
- data/spec/integration/cookbook_show_spec.rb +149 -149
- data/spec/integration/cookbook_upload_spec.rb +128 -128
- data/spec/integration/data_bag_create_spec.rb +125 -125
- data/spec/integration/data_bag_delete_spec.rb +59 -59
- data/spec/integration/data_bag_edit_spec.rb +105 -105
- data/spec/integration/data_bag_from_file_spec.rb +116 -116
- data/spec/integration/data_bag_list_spec.rb +44 -44
- data/spec/integration/data_bag_show_spec.rb +95 -95
- data/spec/integration/delete_spec.rb +1018 -1018
- data/spec/integration/deps_spec.rb +703 -703
- data/spec/integration/diff_spec.rb +605 -605
- data/spec/integration/download_spec.rb +1336 -1336
- data/spec/integration/environment_compare_spec.rb +75 -75
- data/spec/integration/environment_create_spec.rb +41 -41
- data/spec/integration/environment_delete_spec.rb +37 -37
- data/spec/integration/environment_from_file_spec.rb +116 -116
- data/spec/integration/environment_list_spec.rb +42 -42
- data/spec/integration/environment_show_spec.rb +77 -77
- data/spec/integration/list_spec.rb +1060 -1060
- data/spec/integration/node_bulk_delete_spec.rb +52 -52
- data/spec/integration/node_create_spec.rb +47 -47
- data/spec/integration/node_delete_spec.rb +48 -48
- data/spec/integration/node_environment_set_spec.rb +46 -46
- data/spec/integration/node_from_file_spec.rb +59 -59
- data/spec/integration/node_list_spec.rb +45 -45
- data/spec/integration/node_run_list_add_spec.rb +54 -54
- data/spec/integration/node_run_list_remove_spec.rb +36 -36
- data/spec/integration/node_run_list_set_spec.rb +41 -41
- data/spec/integration/node_show_spec.rb +36 -36
- data/spec/integration/raw_spec.rb +297 -297
- data/spec/integration/redirection_spec.rb +64 -64
- data/spec/integration/role_bulk_delete_spec.rb +52 -52
- data/spec/integration/role_create_spec.rb +41 -41
- data/spec/integration/role_delete_spec.rb +48 -48
- data/spec/integration/role_from_file_spec.rb +96 -96
- data/spec/integration/role_list_spec.rb +45 -45
- data/spec/integration/role_show_spec.rb +51 -51
- data/spec/integration/search_node_spec.rb +40 -40
- data/spec/integration/serve_spec.rb +92 -92
- data/spec/integration/show_spec.rb +197 -197
- data/spec/integration/upload_spec.rb +1616 -1616
- data/spec/knife_spec_helper.rb +241 -241
- data/spec/support/chef_helpers.rb +79 -79
- data/spec/support/key_helpers.rb +102 -102
- data/spec/support/platform_helpers.rb +255 -255
- data/spec/support/platforms/prof/gc.rb +51 -51
- data/spec/support/platforms/prof/win32.rb +45 -45
- data/spec/support/platforms/win32/spec_service.rb +57 -57
- data/spec/support/recipe_dsl_helper.rb +83 -83
- data/spec/support/shared/context/config.rb +18 -18
- data/spec/support/shared/functional/knife.rb +37 -37
- data/spec/support/shared/integration/integration_helper.rb +122 -122
- data/spec/support/shared/integration/knife_support.rb +192 -192
- 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/unit/knife_shared.rb +39 -39
- data/spec/support/shared/unit/mock_shellout.rb +49 -49
- data/spec/tiny_server.rb +193 -190
- data/spec/unit/application/knife_spec.rb +241 -241
- 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/train_connector_spec.rb +244 -244
- data/spec/unit/knife/bootstrap_spec.rb +2311 -2288
- data/spec/unit/knife/client_bulk_delete_spec.rb +166 -166
- data/spec/unit/knife/client_create_spec.rb +232 -232
- data/spec/unit/knife/client_delete_spec.rb +99 -99
- 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 +81 -81
- data/spec/unit/knife/configure_spec.rb +190 -190
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +87 -87
- data/spec/unit/knife/cookbook_delete_spec.rb +239 -239
- data/spec/unit/knife/cookbook_download_spec.rb +255 -255
- data/spec/unit/knife/cookbook_list_spec.rb +88 -88
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +72 -72
- data/spec/unit/knife/cookbook_metadata_spec.rb +182 -182
- data/spec/unit/knife/cookbook_show_spec.rb +253 -253
- data/spec/unit/knife/cookbook_upload_spec.rb +426 -426
- data/spec/unit/knife/core/bootstrap_context_spec.rb +287 -287
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +187 -187
- data/spec/unit/knife/core/cookbook_site_streaming_uploader_spec.rb +198 -198
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +242 -242
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +112 -112
- 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/status_presenter_spec.rb +54 -54
- data/spec/unit/knife/core/subcommand_loader_spec.rb +64 -64
- data/spec/unit/knife/core/ui_spec.rb +656 -656
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +282 -238
- data/spec/unit/knife/data_bag_create_spec.rb +175 -175
- data/spec/unit/knife/data_bag_edit_spec.rb +126 -126
- data/spec/unit/knife/data_bag_from_file_spec.rb +174 -174
- data/spec/unit/knife/data_bag_secret_options_spec.rb +173 -173
- data/spec/unit/knife/data_bag_show_spec.rb +139 -139
- 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/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/license_spec.rb +89 -89
- data/spec/unit/knife/node_bulk_delete_spec.rb +94 -94
- data/spec/unit/knife/node_delete_spec.rb +77 -77
- data/spec/unit/knife/node_edit_spec.rb +116 -116
- data/spec/unit/knife/node_environment_set_spec.rb +61 -61
- 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_policy_set_spec.rb +122 -122
- 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 +115 -115
- data/spec/unit/knife/node_show_spec.rb +65 -65
- data/spec/unit/knife/org_create_spec.rb +76 -76
- data/spec/unit/knife/org_delete_spec.rb +41 -41
- data/spec/unit/knife/org_edit_spec.rb +49 -49
- data/spec/unit/knife/org_list_spec.rb +58 -58
- data/spec/unit/knife/org_show_spec.rb +45 -45
- data/spec/unit/knife/org_user_add_spec.rb +39 -39
- 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/search_spec.rb +147 -147
- data/spec/unit/knife/ssh_spec.rb +403 -403
- data/spec/unit/knife/ssl_check_spec.rb +256 -256
- data/spec/unit/knife/ssl_fetch_spec.rb +222 -222
- data/spec/unit/knife/status_spec.rb +112 -112
- data/spec/unit/knife/supermarket_download_spec.rb +152 -152
- data/spec/unit/knife/supermarket_install_spec.rb +203 -203
- data/spec/unit/knife/supermarket_list_spec.rb +70 -70
- data/spec/unit/knife/supermarket_search_spec.rb +85 -85
- data/spec/unit/knife/supermarket_share_spec.rb +208 -208
- data/spec/unit/knife/supermarket_unshare_spec.rb +78 -78
- 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 +282 -282
- data/spec/unit/knife/user_delete_spec.rb +171 -171
- data/spec/unit/knife/user_edit_spec.rb +54 -54
- data/spec/unit/knife/user_list_spec.rb +73 -73
- data/spec/unit/knife/user_password_spec.rb +64 -64
- data/spec/unit/knife/user_reregister_spec.rb +56 -56
- data/spec/unit/knife/user_show_spec.rb +91 -91
- data/spec/unit/knife_spec.rb +637 -637
- data/spec/unit/utils/licensing_handler_spec.rb +140 -0
- metadata +36 -21
data/spec/knife_spec_helper.rb
CHANGED
@@ -1,241 +1,241 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
-
# Copyright:: Copyright (c) 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
|
-
# If you need to add anything in here, don't.
|
19
|
-
# Add it to one of the files in spec/support
|
20
|
-
|
21
|
-
# Abuse ruby's constant lookup to avoid undefined constant errors
|
22
|
-
|
23
|
-
$LOAD_PATH.unshift File.expand_path("..", __dir__)
|
24
|
-
$LOAD_PATH.unshift File.expand_path("../../chef-config/lib", __dir__)
|
25
|
-
$LOAD_PATH.unshift File.expand_path("../../chef-utils/lib", __dir__)
|
26
|
-
|
27
|
-
require "rubygems"
|
28
|
-
require "rspec/mocks"
|
29
|
-
require "rexml/document"
|
30
|
-
require "webmock/rspec"
|
31
|
-
|
32
|
-
require "chef/knife"
|
33
|
-
|
34
|
-
# cwd is knife/
|
35
|
-
Dir["lib/chef/knife/**/*.rb"]
|
36
|
-
.map { |f| f.gsub("lib/", "") }
|
37
|
-
.map { |f| f.gsub(/\.rb$/, "") }
|
38
|
-
.each { |f| require f }
|
39
|
-
|
40
|
-
require "chef/resource_resolver"
|
41
|
-
require "chef/provider_resolver"
|
42
|
-
|
43
|
-
require "chef/mixins"
|
44
|
-
require "chef/dsl"
|
45
|
-
|
46
|
-
require "chef/shell"
|
47
|
-
require "chef/util/file_edit"
|
48
|
-
|
49
|
-
require "chef/config"
|
50
|
-
|
51
|
-
require "chef/chef_fs/file_system_cache"
|
52
|
-
|
53
|
-
require "chef/api_client_v1"
|
54
|
-
|
55
|
-
require "chef/mixin/versioned_api"
|
56
|
-
require "chef/server_api_versions"
|
57
|
-
|
58
|
-
if ENV["CHEF_FIPS"] == "1"
|
59
|
-
Chef::Config.init_openssl
|
60
|
-
end
|
61
|
-
|
62
|
-
# If you want to load anything into the testing environment
|
63
|
-
# without versioning it, add it to spec/support/local_gems.rb
|
64
|
-
require "spec/support/local_gems" if File.exist?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
|
65
|
-
|
66
|
-
# Explicitly require spec helpers that need to load first
|
67
|
-
require "spec/support/platform_helpers"
|
68
|
-
require "spec/support/shared/unit/mock_shellout"
|
69
|
-
require "spec/support/recipe_dsl_helper"
|
70
|
-
require "spec/support/key_helpers"
|
71
|
-
require "spec/support/shared/unit/knife_shared"
|
72
|
-
require "spec/support/shared/functional/knife"
|
73
|
-
require "spec/support/shared/integration/knife_support"
|
74
|
-
require "spec/support/shared/matchers/exit_with_code"
|
75
|
-
require "spec/support/shared/matchers/match_environment_variable"
|
76
|
-
|
77
|
-
# Autoloads support files
|
78
|
-
# Excludes support/platforms by default
|
79
|
-
# Do not change the gsub.
|
80
|
-
Dir["spec/support/**/*.rb"]
|
81
|
-
.grep_v(%r{^spec/support/platforms})
|
82
|
-
.grep_v(%r{^spec/support/pedant})
|
83
|
-
.map { |f| f.gsub(/.rb$/, "") }
|
84
|
-
.map { |f| f.gsub(%r{spec/}, "") }
|
85
|
-
.each { |f| require f }
|
86
|
-
|
87
|
-
OHAI_SYSTEM = Ohai::System.new
|
88
|
-
OHAI_SYSTEM.all_plugins(["platform", "hostname", "languages/powershell", "uptime"])
|
89
|
-
|
90
|
-
test_node = Chef::Node.new
|
91
|
-
test_node.automatic["os"] = (OHAI_SYSTEM["os"] || "unknown_os").dup.freeze
|
92
|
-
test_node.automatic["platform_family"] = (OHAI_SYSTEM["platform_family"] || "unknown_platform_family").dup.freeze
|
93
|
-
test_node.automatic["platform"] = (OHAI_SYSTEM["platform"] || "unknown_platform").dup.freeze
|
94
|
-
test_node.automatic["platform_version"] = (OHAI_SYSTEM["platform_version"] || "unknown_platform_version").dup.freeze
|
95
|
-
TEST_NODE = test_node.freeze
|
96
|
-
TEST_OS = TEST_NODE["os"]
|
97
|
-
TEST_PLATFORM = TEST_NODE["platform"]
|
98
|
-
TEST_PLATFORM_VERSION = TEST_NODE["platform_version"]
|
99
|
-
TEST_PLATFORM_FAMILY = TEST_NODE["platform_family"]
|
100
|
-
|
101
|
-
provider_priority_map ||= nil
|
102
|
-
resource_priority_map ||= nil
|
103
|
-
provider_handler_map ||= nil
|
104
|
-
resource_handler_map ||= nil
|
105
|
-
|
106
|
-
class UnexpectedSystemExit < RuntimeError
|
107
|
-
def self.from(system_exit)
|
108
|
-
new(system_exit.message).tap { |e| e.set_backtrace(system_exit.backtrace) }
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
RSpec.configure do |config|
|
113
|
-
config.include(RSpec::Matchers)
|
114
|
-
config.include(MockShellout::RSpec)
|
115
|
-
config.filter_run focus: true
|
116
|
-
config.filter_run_excluding external: true
|
117
|
-
config.raise_on_warning = true
|
118
|
-
|
119
|
-
# Explicitly disable :should syntax
|
120
|
-
# And set max_formatted_output_length to nil to prevent RSpec from doing truncation.
|
121
|
-
config.expect_with :rspec do |c|
|
122
|
-
c.syntax = :expect
|
123
|
-
c.max_formatted_output_length = nil
|
124
|
-
end
|
125
|
-
config.mock_with :rspec do |c|
|
126
|
-
c.syntax = :expect
|
127
|
-
c.allow_message_expectations_on_nil = false
|
128
|
-
end
|
129
|
-
|
130
|
-
# TODO - which if any of these filters apply to knife tests?
|
131
|
-
#
|
132
|
-
# Only run these tests on platforms that are also chef workstations
|
133
|
-
config.filter_run_excluding :workstation if solaris? || aix?
|
134
|
-
|
135
|
-
# Tests that randomly fail, but may have value.
|
136
|
-
config.filter_run_excluding volatile: true
|
137
|
-
config.filter_run_excluding volatile_on_solaris: true if solaris?
|
138
|
-
config.filter_run_excluding volatile_from_verify: false
|
139
|
-
|
140
|
-
config.filter_run_excluding skip_buildkite: true if ENV["BUILDKITE"]
|
141
|
-
|
142
|
-
config.filter_run_excluding windows_only: true unless windows?
|
143
|
-
config.filter_run_excluding unix_only: true unless unix?
|
144
|
-
|
145
|
-
# check for particular binaries we need
|
146
|
-
|
147
|
-
running_platform_arch = `uname -m`.strip unless windows?
|
148
|
-
|
149
|
-
config.filter_run_excluding arch: lambda { |target_arch|
|
150
|
-
running_platform_arch != target_arch
|
151
|
-
}
|
152
|
-
|
153
|
-
config.run_all_when_everything_filtered = true
|
154
|
-
|
155
|
-
config.before(:each) do
|
156
|
-
# it'd be nice to run this with connections blocked or only to localhost, but we do make lots
|
157
|
-
# of real connections, so cannot. we reset it to allow connections every time to avoid
|
158
|
-
# tests setting connections to be disabled and that state leaking into other tests.
|
159
|
-
WebMock.allow_net_connect!
|
160
|
-
Chef.reset!
|
161
|
-
Chef::ChefFS::FileSystemCache.instance.reset!
|
162
|
-
Chef::Config.reset
|
163
|
-
Chef::Log.setup!
|
164
|
-
Chef::ServerAPIVersions.instance.reset!
|
165
|
-
Chef::Config[:log_level] = :fatal
|
166
|
-
Chef::Log.level(Chef::Config[:log_level])
|
167
|
-
|
168
|
-
# By default, treat deprecation warnings as errors in tests.
|
169
|
-
# and set environment variable so the setting persists in child processes
|
170
|
-
Chef::Config.treat_deprecation_warnings_as_errors(true)
|
171
|
-
ENV["CHEF_TREAT_DEPRECATION_WARNINGS_AS_ERRORS"] = "1"
|
172
|
-
end
|
173
|
-
|
174
|
-
# This bit of jankiness guards against specs which accidentally drop privs when running as
|
175
|
-
# root -- which are nearly impossible to debug and so we bail out very hard if this
|
176
|
-
# condition ever happens. If a spec stubs Process.[e]uid this can throw a false positive
|
177
|
-
# which the spec must work around by unmocking Process.[e]uid to and_call_original in its
|
178
|
-
# after block.
|
179
|
-
# Should not be a problem with knife which does not escalate local privs, but
|
180
|
-
# it seems wise to continue to guard against.
|
181
|
-
if Process.euid == 0 && Process.uid == 0
|
182
|
-
config.after(:each) do
|
183
|
-
if Process.uid != 0
|
184
|
-
RSpec.configure { |c| c.fail_fast = true }
|
185
|
-
raise "rspec was invoked as root, but the last test dropped real uid to #{Process.uid}"
|
186
|
-
end
|
187
|
-
if Process.euid != 0
|
188
|
-
RSpec.configure { |c| c.fail_fast = true }
|
189
|
-
raise "rspec was invoked as root, but the last test dropped effective uid to #{Process.euid}"
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
|
-
# raise if anyone commits any test to CI with :focus set on it
|
195
|
-
if ENV["CI"]
|
196
|
-
config.before(:example, :focus) do
|
197
|
-
raise "This example was committed with `:focus` and should not have been"
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
config.before(:suite) do
|
202
|
-
ARGV.clear
|
203
|
-
end
|
204
|
-
|
205
|
-
# Protect Rspec from accidental exit(0) causing rspec to terminate without error
|
206
|
-
config.around(:example) do |ex|
|
207
|
-
ex.run
|
208
|
-
rescue SystemExit => e
|
209
|
-
raise UnexpectedSystemExit.from(e)
|
210
|
-
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
require "webrick/utils"
|
215
|
-
# Webrick uses a centralized/synchronized timeout manager. It works by
|
216
|
-
# starting a thread to check for timeouts on an interval. The timeout
|
217
|
-
# checker thread cannot be stopped or canceled in any easy way, and it
|
218
|
-
# makes calls to Time.new, which fail when rspec is in the process of
|
219
|
-
# creating a method stub for that method. Since our tests don't rely on
|
220
|
-
# any timeout behavior enforced by webrick, disable the timeout manager
|
221
|
-
# via a monkey patch.
|
222
|
-
#
|
223
|
-
# Hopefully this fails loudly if the webrick code should change. As of this
|
224
|
-
# writing, the relevant code is in webrick/utils, which can be located on
|
225
|
-
# your system with:
|
226
|
-
#
|
227
|
-
# $ gem which webrick/utils
|
228
|
-
module WEBrick
|
229
|
-
module Utils
|
230
|
-
class TimeoutHandler
|
231
|
-
def initialize; end
|
232
|
-
|
233
|
-
def register(*args); end
|
234
|
-
|
235
|
-
def cancel(*args); end
|
236
|
-
end
|
237
|
-
end
|
238
|
-
end
|
239
|
-
|
240
|
-
# Enough stuff needs json serialization that I'm just adding it here for equality asserts
|
241
|
-
require "chef/json_compat"
|
1
|
+
#
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) 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
|
+
# If you need to add anything in here, don't.
|
19
|
+
# Add it to one of the files in spec/support
|
20
|
+
|
21
|
+
# Abuse ruby's constant lookup to avoid undefined constant errors
|
22
|
+
|
23
|
+
$LOAD_PATH.unshift File.expand_path("..", __dir__)
|
24
|
+
$LOAD_PATH.unshift File.expand_path("../../chef-config/lib", __dir__)
|
25
|
+
$LOAD_PATH.unshift File.expand_path("../../chef-utils/lib", __dir__)
|
26
|
+
|
27
|
+
require "rubygems"
|
28
|
+
require "rspec/mocks"
|
29
|
+
require "rexml/document"
|
30
|
+
require "webmock/rspec"
|
31
|
+
|
32
|
+
require "chef/knife"
|
33
|
+
|
34
|
+
# cwd is knife/
|
35
|
+
Dir["lib/chef/knife/**/*.rb"]
|
36
|
+
.map { |f| f.gsub("lib/", "") }
|
37
|
+
.map { |f| f.gsub(/\.rb$/, "") }
|
38
|
+
.each { |f| require f }
|
39
|
+
|
40
|
+
require "chef/resource_resolver"
|
41
|
+
require "chef/provider_resolver"
|
42
|
+
|
43
|
+
require "chef/mixins"
|
44
|
+
require "chef/dsl"
|
45
|
+
|
46
|
+
require "chef/shell"
|
47
|
+
require "chef/util/file_edit"
|
48
|
+
|
49
|
+
require "chef/config"
|
50
|
+
|
51
|
+
require "chef/chef_fs/file_system_cache"
|
52
|
+
|
53
|
+
require "chef/api_client_v1"
|
54
|
+
|
55
|
+
require "chef/mixin/versioned_api"
|
56
|
+
require "chef/server_api_versions"
|
57
|
+
|
58
|
+
if ENV["CHEF_FIPS"] == "1"
|
59
|
+
Chef::Config.init_openssl
|
60
|
+
end
|
61
|
+
|
62
|
+
# If you want to load anything into the testing environment
|
63
|
+
# without versioning it, add it to spec/support/local_gems.rb
|
64
|
+
require "spec/support/local_gems" if File.exist?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
|
65
|
+
|
66
|
+
# Explicitly require spec helpers that need to load first
|
67
|
+
require "spec/support/platform_helpers"
|
68
|
+
require "spec/support/shared/unit/mock_shellout"
|
69
|
+
require "spec/support/recipe_dsl_helper"
|
70
|
+
require "spec/support/key_helpers"
|
71
|
+
require "spec/support/shared/unit/knife_shared"
|
72
|
+
require "spec/support/shared/functional/knife"
|
73
|
+
require "spec/support/shared/integration/knife_support"
|
74
|
+
require "spec/support/shared/matchers/exit_with_code"
|
75
|
+
require "spec/support/shared/matchers/match_environment_variable"
|
76
|
+
|
77
|
+
# Autoloads support files
|
78
|
+
# Excludes support/platforms by default
|
79
|
+
# Do not change the gsub.
|
80
|
+
Dir["spec/support/**/*.rb"]
|
81
|
+
.grep_v(%r{^spec/support/platforms})
|
82
|
+
.grep_v(%r{^spec/support/pedant})
|
83
|
+
.map { |f| f.gsub(/.rb$/, "") }
|
84
|
+
.map { |f| f.gsub(%r{spec/}, "") }
|
85
|
+
.each { |f| require f }
|
86
|
+
|
87
|
+
OHAI_SYSTEM = Ohai::System.new
|
88
|
+
OHAI_SYSTEM.all_plugins(["platform", "hostname", "languages/powershell", "uptime"])
|
89
|
+
|
90
|
+
test_node = Chef::Node.new
|
91
|
+
test_node.automatic["os"] = (OHAI_SYSTEM["os"] || "unknown_os").dup.freeze
|
92
|
+
test_node.automatic["platform_family"] = (OHAI_SYSTEM["platform_family"] || "unknown_platform_family").dup.freeze
|
93
|
+
test_node.automatic["platform"] = (OHAI_SYSTEM["platform"] || "unknown_platform").dup.freeze
|
94
|
+
test_node.automatic["platform_version"] = (OHAI_SYSTEM["platform_version"] || "unknown_platform_version").dup.freeze
|
95
|
+
TEST_NODE = test_node.freeze
|
96
|
+
TEST_OS = TEST_NODE["os"]
|
97
|
+
TEST_PLATFORM = TEST_NODE["platform"]
|
98
|
+
TEST_PLATFORM_VERSION = TEST_NODE["platform_version"]
|
99
|
+
TEST_PLATFORM_FAMILY = TEST_NODE["platform_family"]
|
100
|
+
|
101
|
+
provider_priority_map ||= nil
|
102
|
+
resource_priority_map ||= nil
|
103
|
+
provider_handler_map ||= nil
|
104
|
+
resource_handler_map ||= nil
|
105
|
+
|
106
|
+
class UnexpectedSystemExit < RuntimeError
|
107
|
+
def self.from(system_exit)
|
108
|
+
new(system_exit.message).tap { |e| e.set_backtrace(system_exit.backtrace) }
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
RSpec.configure do |config|
|
113
|
+
config.include(RSpec::Matchers)
|
114
|
+
config.include(MockShellout::RSpec)
|
115
|
+
config.filter_run focus: true
|
116
|
+
config.filter_run_excluding external: true
|
117
|
+
config.raise_on_warning = true
|
118
|
+
|
119
|
+
# Explicitly disable :should syntax
|
120
|
+
# And set max_formatted_output_length to nil to prevent RSpec from doing truncation.
|
121
|
+
config.expect_with :rspec do |c|
|
122
|
+
c.syntax = :expect
|
123
|
+
c.max_formatted_output_length = nil
|
124
|
+
end
|
125
|
+
config.mock_with :rspec do |c|
|
126
|
+
c.syntax = :expect
|
127
|
+
c.allow_message_expectations_on_nil = false
|
128
|
+
end
|
129
|
+
|
130
|
+
# TODO - which if any of these filters apply to knife tests?
|
131
|
+
#
|
132
|
+
# Only run these tests on platforms that are also chef workstations
|
133
|
+
config.filter_run_excluding :workstation if solaris? || aix?
|
134
|
+
|
135
|
+
# Tests that randomly fail, but may have value.
|
136
|
+
config.filter_run_excluding volatile: true
|
137
|
+
config.filter_run_excluding volatile_on_solaris: true if solaris?
|
138
|
+
config.filter_run_excluding volatile_from_verify: false
|
139
|
+
|
140
|
+
config.filter_run_excluding skip_buildkite: true if ENV["BUILDKITE"]
|
141
|
+
|
142
|
+
config.filter_run_excluding windows_only: true unless windows?
|
143
|
+
config.filter_run_excluding unix_only: true unless unix?
|
144
|
+
|
145
|
+
# check for particular binaries we need
|
146
|
+
|
147
|
+
running_platform_arch = `uname -m`.strip unless windows?
|
148
|
+
|
149
|
+
config.filter_run_excluding arch: lambda { |target_arch|
|
150
|
+
running_platform_arch != target_arch
|
151
|
+
}
|
152
|
+
|
153
|
+
config.run_all_when_everything_filtered = true
|
154
|
+
|
155
|
+
config.before(:each) do
|
156
|
+
# it'd be nice to run this with connections blocked or only to localhost, but we do make lots
|
157
|
+
# of real connections, so cannot. we reset it to allow connections every time to avoid
|
158
|
+
# tests setting connections to be disabled and that state leaking into other tests.
|
159
|
+
WebMock.allow_net_connect!
|
160
|
+
Chef.reset!
|
161
|
+
Chef::ChefFS::FileSystemCache.instance.reset!
|
162
|
+
Chef::Config.reset
|
163
|
+
Chef::Log.setup!
|
164
|
+
Chef::ServerAPIVersions.instance.reset!
|
165
|
+
Chef::Config[:log_level] = :fatal
|
166
|
+
Chef::Log.level(Chef::Config[:log_level])
|
167
|
+
|
168
|
+
# By default, treat deprecation warnings as errors in tests.
|
169
|
+
# and set environment variable so the setting persists in child processes
|
170
|
+
Chef::Config.treat_deprecation_warnings_as_errors(true)
|
171
|
+
ENV["CHEF_TREAT_DEPRECATION_WARNINGS_AS_ERRORS"] = "1"
|
172
|
+
end
|
173
|
+
|
174
|
+
# This bit of jankiness guards against specs which accidentally drop privs when running as
|
175
|
+
# root -- which are nearly impossible to debug and so we bail out very hard if this
|
176
|
+
# condition ever happens. If a spec stubs Process.[e]uid this can throw a false positive
|
177
|
+
# which the spec must work around by unmocking Process.[e]uid to and_call_original in its
|
178
|
+
# after block.
|
179
|
+
# Should not be a problem with knife which does not escalate local privs, but
|
180
|
+
# it seems wise to continue to guard against.
|
181
|
+
if Process.euid == 0 && Process.uid == 0
|
182
|
+
config.after(:each) do
|
183
|
+
if Process.uid != 0
|
184
|
+
RSpec.configure { |c| c.fail_fast = true }
|
185
|
+
raise "rspec was invoked as root, but the last test dropped real uid to #{Process.uid}"
|
186
|
+
end
|
187
|
+
if Process.euid != 0
|
188
|
+
RSpec.configure { |c| c.fail_fast = true }
|
189
|
+
raise "rspec was invoked as root, but the last test dropped effective uid to #{Process.euid}"
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
# raise if anyone commits any test to CI with :focus set on it
|
195
|
+
if ENV["CI"]
|
196
|
+
config.before(:example, :focus) do
|
197
|
+
raise "This example was committed with `:focus` and should not have been"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
config.before(:suite) do
|
202
|
+
ARGV.clear
|
203
|
+
end
|
204
|
+
|
205
|
+
# Protect Rspec from accidental exit(0) causing rspec to terminate without error
|
206
|
+
config.around(:example) do |ex|
|
207
|
+
ex.run
|
208
|
+
rescue SystemExit => e
|
209
|
+
raise UnexpectedSystemExit.from(e)
|
210
|
+
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
require "webrick/utils"
|
215
|
+
# Webrick uses a centralized/synchronized timeout manager. It works by
|
216
|
+
# starting a thread to check for timeouts on an interval. The timeout
|
217
|
+
# checker thread cannot be stopped or canceled in any easy way, and it
|
218
|
+
# makes calls to Time.new, which fail when rspec is in the process of
|
219
|
+
# creating a method stub for that method. Since our tests don't rely on
|
220
|
+
# any timeout behavior enforced by webrick, disable the timeout manager
|
221
|
+
# via a monkey patch.
|
222
|
+
#
|
223
|
+
# Hopefully this fails loudly if the webrick code should change. As of this
|
224
|
+
# writing, the relevant code is in webrick/utils, which can be located on
|
225
|
+
# your system with:
|
226
|
+
#
|
227
|
+
# $ gem which webrick/utils
|
228
|
+
module WEBrick
|
229
|
+
module Utils
|
230
|
+
class TimeoutHandler
|
231
|
+
def initialize; end
|
232
|
+
|
233
|
+
def register(*args); end
|
234
|
+
|
235
|
+
def cancel(*args); end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
# Enough stuff needs json serialization that I'm just adding it here for equality asserts
|
241
|
+
require "chef/json_compat"
|
@@ -1,79 +1,79 @@
|
|
1
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
2
|
-
# License:: Apache License, Version 2.0
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
#
|
16
|
-
|
17
|
-
CHEF_SPEC_DATA = File.expand_path(__dir__ + "/../data/")
|
18
|
-
CHEF_SPEC_ASSETS = File.expand_path(__dir__ + "/../functional/assets/")
|
19
|
-
CHEF_SPEC_BACKUP_PATH = File.join(Dir.tmpdir, "test-backup-path")
|
20
|
-
|
21
|
-
def sha256_checksum(path)
|
22
|
-
OpenSSL::Digest.hexdigest("SHA256", File.read(path))
|
23
|
-
end
|
24
|
-
|
25
|
-
# extracted from Ruby < 2.5 to return a unique temp file name without creating it
|
26
|
-
def make_tmpname(prefix_suffix, n = nil)
|
27
|
-
case prefix_suffix
|
28
|
-
when String
|
29
|
-
prefix = prefix_suffix
|
30
|
-
suffix = ""
|
31
|
-
when Array
|
32
|
-
prefix = prefix_suffix[0]
|
33
|
-
suffix = prefix_suffix[1]
|
34
|
-
else
|
35
|
-
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
36
|
-
end
|
37
|
-
t = Time.now.strftime("%Y%m%d")
|
38
|
-
path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
39
|
-
path << "-#{n}" if n
|
40
|
-
path << suffix
|
41
|
-
end
|
42
|
-
|
43
|
-
# This is a helper to canonicalize paths that we're using in the file
|
44
|
-
# tests.
|
45
|
-
def canonicalize_path(path)
|
46
|
-
windows? ? path.tr("/", "\\") : path
|
47
|
-
end
|
48
|
-
|
49
|
-
# Makes a temp directory with a canonical path on any platform.
|
50
|
-
# Only really needed to work around an issue on Windows where
|
51
|
-
# Ruby's temp library generates paths with short names.
|
52
|
-
def make_canonical_temp_directory
|
53
|
-
temp_directory = Dir.mktmpdir
|
54
|
-
if windows?
|
55
|
-
# On Windows, temporary file / directory path names may have shortened
|
56
|
-
# subdirectory names due to reliance on the TMP and TEMP environment variables
|
57
|
-
# in some Windows APIs and duplicated logic in Ruby's temp file implementation.
|
58
|
-
# To work around this in the unit test context, we obtain the long (canonical)
|
59
|
-
# path name via a Windows system call so that this path name can be used
|
60
|
-
# in expectations that assume the ability to canonically name paths in comparisons.
|
61
|
-
# Note that this was not an issue prior to Ruby 2.2 -- with Ruby 2.2,
|
62
|
-
# some Chef code started to use long file names, while Ruby's temp file implementation
|
63
|
-
# continued to return the shortened names -- this would cause these particular tests to
|
64
|
-
# fail if the username happened to be longer than 8 characters.
|
65
|
-
Chef::ReservedNames::Win32::File.get_long_path_name(temp_directory)
|
66
|
-
else
|
67
|
-
temp_directory
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# Check if a cmd exists on the PATH
|
72
|
-
def which(cmd)
|
73
|
-
paths = ENV["PATH"].split(File::PATH_SEPARATOR) + [ "/bin", "/usr/bin", "/sbin", "/usr/sbin" ]
|
74
|
-
paths.each do |path|
|
75
|
-
filename = File.join(path, cmd)
|
76
|
-
return filename if File.executable?(filename)
|
77
|
-
end
|
78
|
-
false
|
79
|
-
end
|
1
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
2
|
+
# License:: Apache License, Version 2.0
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
CHEF_SPEC_DATA = File.expand_path(__dir__ + "/../data/")
|
18
|
+
CHEF_SPEC_ASSETS = File.expand_path(__dir__ + "/../functional/assets/")
|
19
|
+
CHEF_SPEC_BACKUP_PATH = File.join(Dir.tmpdir, "test-backup-path")
|
20
|
+
|
21
|
+
def sha256_checksum(path)
|
22
|
+
OpenSSL::Digest.hexdigest("SHA256", File.read(path))
|
23
|
+
end
|
24
|
+
|
25
|
+
# extracted from Ruby < 2.5 to return a unique temp file name without creating it
|
26
|
+
def make_tmpname(prefix_suffix, n = nil)
|
27
|
+
case prefix_suffix
|
28
|
+
when String
|
29
|
+
prefix = prefix_suffix
|
30
|
+
suffix = ""
|
31
|
+
when Array
|
32
|
+
prefix = prefix_suffix[0]
|
33
|
+
suffix = prefix_suffix[1]
|
34
|
+
else
|
35
|
+
raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
|
36
|
+
end
|
37
|
+
t = Time.now.strftime("%Y%m%d")
|
38
|
+
path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
|
39
|
+
path << "-#{n}" if n
|
40
|
+
path << suffix
|
41
|
+
end
|
42
|
+
|
43
|
+
# This is a helper to canonicalize paths that we're using in the file
|
44
|
+
# tests.
|
45
|
+
def canonicalize_path(path)
|
46
|
+
windows? ? path.tr("/", "\\") : path
|
47
|
+
end
|
48
|
+
|
49
|
+
# Makes a temp directory with a canonical path on any platform.
|
50
|
+
# Only really needed to work around an issue on Windows where
|
51
|
+
# Ruby's temp library generates paths with short names.
|
52
|
+
def make_canonical_temp_directory
|
53
|
+
temp_directory = Dir.mktmpdir
|
54
|
+
if windows?
|
55
|
+
# On Windows, temporary file / directory path names may have shortened
|
56
|
+
# subdirectory names due to reliance on the TMP and TEMP environment variables
|
57
|
+
# in some Windows APIs and duplicated logic in Ruby's temp file implementation.
|
58
|
+
# To work around this in the unit test context, we obtain the long (canonical)
|
59
|
+
# path name via a Windows system call so that this path name can be used
|
60
|
+
# in expectations that assume the ability to canonically name paths in comparisons.
|
61
|
+
# Note that this was not an issue prior to Ruby 2.2 -- with Ruby 2.2,
|
62
|
+
# some Chef code started to use long file names, while Ruby's temp file implementation
|
63
|
+
# continued to return the shortened names -- this would cause these particular tests to
|
64
|
+
# fail if the username happened to be longer than 8 characters.
|
65
|
+
Chef::ReservedNames::Win32::File.get_long_path_name(temp_directory)
|
66
|
+
else
|
67
|
+
temp_directory
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Check if a cmd exists on the PATH
|
72
|
+
def which(cmd)
|
73
|
+
paths = ENV["PATH"].split(File::PATH_SEPARATOR) + [ "/bin", "/usr/bin", "/sbin", "/usr/sbin" ]
|
74
|
+
paths.each do |path|
|
75
|
+
filename = File.join(path, cmd)
|
76
|
+
return filename if File.executable?(filename)
|
77
|
+
end
|
78
|
+
false
|
79
|
+
end
|