knife 18.6.13 → 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 -23
- data/LICENSE +201 -201
- data/Rakefile +33 -33
- data/bin/knife +24 -24
- data/knife.gemspec +65 -65
- 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 -1224
- 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 -53
- 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 +11 -7
@@ -1,126 +1,126 @@
|
|
1
|
-
#
|
2
|
-
# Author:: Tyler Cloke (<tyler@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
|
-
|
19
|
-
require "knife_spec_helper"
|
20
|
-
require "chef/knife/user_key_show"
|
21
|
-
require "chef/knife/client_key_show"
|
22
|
-
require "chef/knife/key_show"
|
23
|
-
require "chef/key"
|
24
|
-
|
25
|
-
describe "key show commands that inherit knife" do
|
26
|
-
shared_examples_for "a key show command" do
|
27
|
-
let(:stderr) { StringIO.new }
|
28
|
-
let(:params) { [] }
|
29
|
-
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
30
|
-
let(:command) do
|
31
|
-
c = described_class.new([])
|
32
|
-
c.ui.config[:disable_editing] = true
|
33
|
-
allow(c.ui).to receive(:stderr).and_return(stderr)
|
34
|
-
allow(c.ui).to receive(:stdout).and_return(stderr)
|
35
|
-
allow(c).to receive(:show_usage)
|
36
|
-
c
|
37
|
-
end
|
38
|
-
|
39
|
-
context "after apply_params! is called with valid args" do
|
40
|
-
let(:params) { %w{charmander charmander-key} }
|
41
|
-
before do
|
42
|
-
command.apply_params!(params)
|
43
|
-
end
|
44
|
-
|
45
|
-
context "when the service object is called" do
|
46
|
-
it "creates a new instance of Chef::Knife::KeyShow with the correct args" do
|
47
|
-
expect(Chef::Knife::KeyShow).to receive(:new)
|
48
|
-
.with("charmander-key", "charmander", command.load_method, command.ui)
|
49
|
-
.and_return(service_object)
|
50
|
-
command.service_object
|
51
|
-
end
|
52
|
-
end # when the service object is called
|
53
|
-
end # after apply_params! is called with valid args
|
54
|
-
end # a key show command
|
55
|
-
|
56
|
-
describe Chef::Knife::UserKeyShow do
|
57
|
-
it_should_behave_like "a key show command"
|
58
|
-
# defined in key_helpers.rb
|
59
|
-
it_should_behave_like "a knife key command with a keyname as the second arg"
|
60
|
-
it_should_behave_like "a knife key command" do
|
61
|
-
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
62
|
-
let(:params) { %w{charmander charmander-key} }
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
describe Chef::Knife::ClientKeyShow do
|
67
|
-
it_should_behave_like "a key show command"
|
68
|
-
# defined in key_helpers.rb
|
69
|
-
it_should_behave_like "a knife key command with a keyname as the second arg"
|
70
|
-
it_should_behave_like "a knife key command" do
|
71
|
-
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
72
|
-
let(:params) { %w{charmander charmander-key} }
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe Chef::Knife::KeyShow do
|
78
|
-
let(:actor) { "charmander" }
|
79
|
-
let(:keyname) { "charmander" }
|
80
|
-
let(:ui) { instance_double("Chef::Knife::UI") }
|
81
|
-
let(:expected_hash) do
|
82
|
-
{
|
83
|
-
actor_field_name => "charmander",
|
84
|
-
"name" => "charmander-key",
|
85
|
-
"public_key" => "some-public-key",
|
86
|
-
"expiration_date" => "infinity",
|
87
|
-
}
|
88
|
-
end
|
89
|
-
|
90
|
-
shared_examples_for "key show run command" do
|
91
|
-
let(:key_show_object) do
|
92
|
-
described_class.new(keyname, actor, load_method, ui)
|
93
|
-
end
|
94
|
-
|
95
|
-
before do
|
96
|
-
allow(key_show_object).to receive(:display_output)
|
97
|
-
allow(Chef::Key).to receive(load_method).and_return(Chef::Key.from_hash(expected_hash))
|
98
|
-
end
|
99
|
-
|
100
|
-
context "when the command is run" do
|
101
|
-
it "loads the key using the proper method and args" do
|
102
|
-
expect(Chef::Key).to receive(load_method).with(actor, keyname)
|
103
|
-
key_show_object.run
|
104
|
-
end
|
105
|
-
|
106
|
-
it "displays the key" do
|
107
|
-
expect(key_show_object).to receive(:display_output)
|
108
|
-
key_show_object.run
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
context "when load_method is :load_by_user" do
|
114
|
-
it_should_behave_like "key show run command" do
|
115
|
-
let(:load_method) { :load_by_user }
|
116
|
-
let(:actor_field_name) { "user" }
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
context "when load_method is :load_by_client" do
|
121
|
-
it_should_behave_like "key show run command" do
|
122
|
-
let(:load_method) { :load_by_client }
|
123
|
-
let(:actor_field_name) { "user" }
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
1
|
+
#
|
2
|
+
# Author:: Tyler Cloke (<tyler@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
|
+
|
19
|
+
require "knife_spec_helper"
|
20
|
+
require "chef/knife/user_key_show"
|
21
|
+
require "chef/knife/client_key_show"
|
22
|
+
require "chef/knife/key_show"
|
23
|
+
require "chef/key"
|
24
|
+
|
25
|
+
describe "key show commands that inherit knife" do
|
26
|
+
shared_examples_for "a key show command" do
|
27
|
+
let(:stderr) { StringIO.new }
|
28
|
+
let(:params) { [] }
|
29
|
+
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
30
|
+
let(:command) do
|
31
|
+
c = described_class.new([])
|
32
|
+
c.ui.config[:disable_editing] = true
|
33
|
+
allow(c.ui).to receive(:stderr).and_return(stderr)
|
34
|
+
allow(c.ui).to receive(:stdout).and_return(stderr)
|
35
|
+
allow(c).to receive(:show_usage)
|
36
|
+
c
|
37
|
+
end
|
38
|
+
|
39
|
+
context "after apply_params! is called with valid args" do
|
40
|
+
let(:params) { %w{charmander charmander-key} }
|
41
|
+
before do
|
42
|
+
command.apply_params!(params)
|
43
|
+
end
|
44
|
+
|
45
|
+
context "when the service object is called" do
|
46
|
+
it "creates a new instance of Chef::Knife::KeyShow with the correct args" do
|
47
|
+
expect(Chef::Knife::KeyShow).to receive(:new)
|
48
|
+
.with("charmander-key", "charmander", command.load_method, command.ui)
|
49
|
+
.and_return(service_object)
|
50
|
+
command.service_object
|
51
|
+
end
|
52
|
+
end # when the service object is called
|
53
|
+
end # after apply_params! is called with valid args
|
54
|
+
end # a key show command
|
55
|
+
|
56
|
+
describe Chef::Knife::UserKeyShow do
|
57
|
+
it_should_behave_like "a key show command"
|
58
|
+
# defined in key_helpers.rb
|
59
|
+
it_should_behave_like "a knife key command with a keyname as the second arg"
|
60
|
+
it_should_behave_like "a knife key command" do
|
61
|
+
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
62
|
+
let(:params) { %w{charmander charmander-key} }
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe Chef::Knife::ClientKeyShow do
|
67
|
+
it_should_behave_like "a key show command"
|
68
|
+
# defined in key_helpers.rb
|
69
|
+
it_should_behave_like "a knife key command with a keyname as the second arg"
|
70
|
+
it_should_behave_like "a knife key command" do
|
71
|
+
let(:service_object) { instance_double(Chef::Knife::KeyShow) }
|
72
|
+
let(:params) { %w{charmander charmander-key} }
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe Chef::Knife::KeyShow do
|
78
|
+
let(:actor) { "charmander" }
|
79
|
+
let(:keyname) { "charmander" }
|
80
|
+
let(:ui) { instance_double("Chef::Knife::UI") }
|
81
|
+
let(:expected_hash) do
|
82
|
+
{
|
83
|
+
actor_field_name => "charmander",
|
84
|
+
"name" => "charmander-key",
|
85
|
+
"public_key" => "some-public-key",
|
86
|
+
"expiration_date" => "infinity",
|
87
|
+
}
|
88
|
+
end
|
89
|
+
|
90
|
+
shared_examples_for "key show run command" do
|
91
|
+
let(:key_show_object) do
|
92
|
+
described_class.new(keyname, actor, load_method, ui)
|
93
|
+
end
|
94
|
+
|
95
|
+
before do
|
96
|
+
allow(key_show_object).to receive(:display_output)
|
97
|
+
allow(Chef::Key).to receive(load_method).and_return(Chef::Key.from_hash(expected_hash))
|
98
|
+
end
|
99
|
+
|
100
|
+
context "when the command is run" do
|
101
|
+
it "loads the key using the proper method and args" do
|
102
|
+
expect(Chef::Key).to receive(load_method).with(actor, keyname)
|
103
|
+
key_show_object.run
|
104
|
+
end
|
105
|
+
|
106
|
+
it "displays the key" do
|
107
|
+
expect(key_show_object).to receive(:display_output)
|
108
|
+
key_show_object.run
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "when load_method is :load_by_user" do
|
114
|
+
it_should_behave_like "key show run command" do
|
115
|
+
let(:load_method) { :load_by_user }
|
116
|
+
let(:actor_field_name) { "user" }
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
context "when load_method is :load_by_client" do
|
121
|
+
it_should_behave_like "key show run command" do
|
122
|
+
let(:load_method) { :load_by_client }
|
123
|
+
let(:actor_field_name) { "user" }
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -1,90 +1,90 @@
|
|
1
|
-
#
|
2
|
-
# Copyright:: Copyright (c) Chef Software Inc.
|
3
|
-
# License:: Apache License, Version 2.0
|
4
|
-
#
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
#
|
17
|
-
|
18
|
-
require "knife_spec_helper"
|
19
|
-
require "chef-licensing"
|
20
|
-
|
21
|
-
describe Chef::Knife::License do
|
22
|
-
include SpecHelpers::Knife
|
23
|
-
|
24
|
-
let(:knife) { described_class.new }
|
25
|
-
|
26
|
-
context "arguments" do
|
27
|
-
it "should have the chef-license-key as an option" do
|
28
|
-
expect(knife.options).to include(:chef_license_key)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context "license command" do
|
33
|
-
it "should invoke the fetch and persist" do
|
34
|
-
expect(ChefLicensing).to receive(:fetch_and_persist).and_return([])
|
35
|
-
|
36
|
-
knife.run
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should print the key returned from the chef-licensing" do
|
40
|
-
allow(ChefLicensing).to receive(:fetch_and_persist).and_return(["key-123"])
|
41
|
-
|
42
|
-
expect(knife.run).to eq(["key-123"])
|
43
|
-
expect(knife.ui).to receive(:msg).and_return("License Key: key-123")
|
44
|
-
knife.run
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should fail if no license provided" do
|
48
|
-
allow(STDOUT).to receive(:isatty).and_return(false)
|
49
|
-
ChefLicensing.configure do |c|
|
50
|
-
c.output = STDOUT
|
51
|
-
end
|
52
|
-
|
53
|
-
expect { knife.run }.to raise_error(ChefLicensing::LicenseKeyFetcher::LicenseKeyNotFetchedError, "Unable to obtain a License Key.")
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "license list command" do
|
58
|
-
before do
|
59
|
-
allow(STDOUT).to receive(:isatty).and_return(false)
|
60
|
-
ChefLicensing.configure do |c|
|
61
|
-
c.output = STDOUT
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should invoke list command method" do
|
66
|
-
with_argv(%w{license list}) do
|
67
|
-
expect(ChefLicensing).to receive(:list_license_keys_info).and_return(["key-123"])
|
68
|
-
|
69
|
-
knife.run
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context "license add command" do
|
75
|
-
before do
|
76
|
-
allow(STDOUT).to receive(:isatty).and_return(false)
|
77
|
-
ChefLicensing.configure do |c|
|
78
|
-
c.output = STDOUT
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should invoke license add method" do
|
83
|
-
with_argv(%w{license add --chef-license-key key-123}) do
|
84
|
-
expect(ChefLicensing).to receive(:add_license).and_return(true)
|
85
|
-
|
86
|
-
knife.run
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "knife_spec_helper"
|
19
|
+
require "chef-licensing"
|
20
|
+
|
21
|
+
describe Chef::Knife::License do
|
22
|
+
include SpecHelpers::Knife
|
23
|
+
|
24
|
+
let(:knife) { described_class.new }
|
25
|
+
|
26
|
+
context "arguments" do
|
27
|
+
it "should have the chef-license-key as an option" do
|
28
|
+
expect(knife.options).to include(:chef_license_key)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "license command" do
|
33
|
+
it "should invoke the fetch and persist" do
|
34
|
+
expect(ChefLicensing).to receive(:fetch_and_persist).and_return([])
|
35
|
+
|
36
|
+
knife.run
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should print the key returned from the chef-licensing" do
|
40
|
+
allow(ChefLicensing).to receive(:fetch_and_persist).and_return(["key-123"])
|
41
|
+
|
42
|
+
expect(knife.run).to eq(["key-123"])
|
43
|
+
expect(knife.ui).to receive(:msg).and_return("License Key: key-123")
|
44
|
+
knife.run
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should fail if no license provided" do
|
48
|
+
allow(STDOUT).to receive(:isatty).and_return(false)
|
49
|
+
ChefLicensing.configure do |c|
|
50
|
+
c.output = STDOUT
|
51
|
+
end
|
52
|
+
|
53
|
+
expect { knife.run }.to raise_error(ChefLicensing::LicenseKeyFetcher::LicenseKeyNotFetchedError, "Unable to obtain a License Key.")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "license list command" do
|
58
|
+
before do
|
59
|
+
allow(STDOUT).to receive(:isatty).and_return(false)
|
60
|
+
ChefLicensing.configure do |c|
|
61
|
+
c.output = STDOUT
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should invoke list command method" do
|
66
|
+
with_argv(%w{license list}) do
|
67
|
+
expect(ChefLicensing).to receive(:list_license_keys_info).and_return(["key-123"])
|
68
|
+
|
69
|
+
knife.run
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context "license add command" do
|
75
|
+
before do
|
76
|
+
allow(STDOUT).to receive(:isatty).and_return(false)
|
77
|
+
ChefLicensing.configure do |c|
|
78
|
+
c.output = STDOUT
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should invoke license add method" do
|
83
|
+
with_argv(%w{license add --chef-license-key key-123}) do
|
84
|
+
expect(ChefLicensing).to receive(:add_license).and_return(true)
|
85
|
+
|
86
|
+
knife.run
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
90
|
end
|
@@ -1,94 +1,94 @@
|
|
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
|
-
|
19
|
-
require "knife_spec_helper"
|
20
|
-
|
21
|
-
describe Chef::Knife::NodeBulkDelete do
|
22
|
-
before(:each) do
|
23
|
-
Chef::Log.logger = Logger.new(StringIO.new)
|
24
|
-
|
25
|
-
Chef::Config[:node_name] = "webmonkey.example.com"
|
26
|
-
@knife = Chef::Knife::NodeBulkDelete.new
|
27
|
-
@knife.name_args = ["."]
|
28
|
-
@stdout = StringIO.new
|
29
|
-
allow(@knife.ui).to receive(:stdout).and_return(@stdout)
|
30
|
-
allow(@knife.ui).to receive(:confirm).and_return(true)
|
31
|
-
@nodes = {}
|
32
|
-
%w{adam brent jacob}.each do |node_name|
|
33
|
-
@nodes[node_name] = "http://localhost:4000/nodes/#{node_name}"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "when creating the list of nodes" do
|
38
|
-
it "fetches the node list" do
|
39
|
-
expected = @nodes.inject({}) do |inflatedish, (name, uri)|
|
40
|
-
inflatedish[name] = Chef::Node.new.tap { |n| n.name(name) }
|
41
|
-
inflatedish
|
42
|
-
end
|
43
|
-
expect(Chef::Node).to receive(:list).and_return(@nodes)
|
44
|
-
# I hate not having == defined for anything :(
|
45
|
-
actual = @knife.all_nodes
|
46
|
-
expect(actual.keys).to match_array(expected.keys)
|
47
|
-
expect(actual.values.map(&:name)).to match_array(%w{adam brent jacob})
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe "run" do
|
52
|
-
before do
|
53
|
-
@inflatedish_list = @nodes.keys.inject({}) do |nodes_by_name, name|
|
54
|
-
node = Chef::Node.new
|
55
|
-
node.name(name)
|
56
|
-
allow(node).to receive(:destroy).and_return(true)
|
57
|
-
nodes_by_name[name] = node
|
58
|
-
nodes_by_name
|
59
|
-
end
|
60
|
-
allow(@knife).to receive(:all_nodes).and_return(@inflatedish_list)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "should print the nodes you are about to delete" do
|
64
|
-
@knife.run
|
65
|
-
expect(@stdout.string).to match(/#{@knife.ui.list(@nodes.keys.sort, :columns_down)}/)
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should confirm you really want to delete them" do
|
69
|
-
expect(@knife.ui).to receive(:confirm)
|
70
|
-
@knife.run
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should delete each node" do
|
74
|
-
@inflatedish_list.each_value do |n|
|
75
|
-
expect(n).to receive(:destroy)
|
76
|
-
end
|
77
|
-
@knife.run
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should only delete nodes that match the regex" do
|
81
|
-
@knife.name_args = ["adam"]
|
82
|
-
expect(@inflatedish_list["adam"]).to receive(:destroy)
|
83
|
-
expect(@inflatedish_list["brent"]).not_to receive(:destroy)
|
84
|
-
expect(@inflatedish_list["jacob"]).not_to receive(:destroy)
|
85
|
-
@knife.run
|
86
|
-
end
|
87
|
-
|
88
|
-
it "should exit if the regex is not provided" do
|
89
|
-
@knife.name_args = []
|
90
|
-
expect { @knife.run }.to raise_error(SystemExit)
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
end
|
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
|
+
|
19
|
+
require "knife_spec_helper"
|
20
|
+
|
21
|
+
describe Chef::Knife::NodeBulkDelete do
|
22
|
+
before(:each) do
|
23
|
+
Chef::Log.logger = Logger.new(StringIO.new)
|
24
|
+
|
25
|
+
Chef::Config[:node_name] = "webmonkey.example.com"
|
26
|
+
@knife = Chef::Knife::NodeBulkDelete.new
|
27
|
+
@knife.name_args = ["."]
|
28
|
+
@stdout = StringIO.new
|
29
|
+
allow(@knife.ui).to receive(:stdout).and_return(@stdout)
|
30
|
+
allow(@knife.ui).to receive(:confirm).and_return(true)
|
31
|
+
@nodes = {}
|
32
|
+
%w{adam brent jacob}.each do |node_name|
|
33
|
+
@nodes[node_name] = "http://localhost:4000/nodes/#{node_name}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "when creating the list of nodes" do
|
38
|
+
it "fetches the node list" do
|
39
|
+
expected = @nodes.inject({}) do |inflatedish, (name, uri)|
|
40
|
+
inflatedish[name] = Chef::Node.new.tap { |n| n.name(name) }
|
41
|
+
inflatedish
|
42
|
+
end
|
43
|
+
expect(Chef::Node).to receive(:list).and_return(@nodes)
|
44
|
+
# I hate not having == defined for anything :(
|
45
|
+
actual = @knife.all_nodes
|
46
|
+
expect(actual.keys).to match_array(expected.keys)
|
47
|
+
expect(actual.values.map(&:name)).to match_array(%w{adam brent jacob})
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "run" do
|
52
|
+
before do
|
53
|
+
@inflatedish_list = @nodes.keys.inject({}) do |nodes_by_name, name|
|
54
|
+
node = Chef::Node.new
|
55
|
+
node.name(name)
|
56
|
+
allow(node).to receive(:destroy).and_return(true)
|
57
|
+
nodes_by_name[name] = node
|
58
|
+
nodes_by_name
|
59
|
+
end
|
60
|
+
allow(@knife).to receive(:all_nodes).and_return(@inflatedish_list)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should print the nodes you are about to delete" do
|
64
|
+
@knife.run
|
65
|
+
expect(@stdout.string).to match(/#{@knife.ui.list(@nodes.keys.sort, :columns_down)}/)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should confirm you really want to delete them" do
|
69
|
+
expect(@knife.ui).to receive(:confirm)
|
70
|
+
@knife.run
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should delete each node" do
|
74
|
+
@inflatedish_list.each_value do |n|
|
75
|
+
expect(n).to receive(:destroy)
|
76
|
+
end
|
77
|
+
@knife.run
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should only delete nodes that match the regex" do
|
81
|
+
@knife.name_args = ["adam"]
|
82
|
+
expect(@inflatedish_list["adam"]).to receive(:destroy)
|
83
|
+
expect(@inflatedish_list["brent"]).not_to receive(:destroy)
|
84
|
+
expect(@inflatedish_list["jacob"]).not_to receive(:destroy)
|
85
|
+
@knife.run
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should exit if the regex is not provided" do
|
89
|
+
@knife.name_args = []
|
90
|
+
expect { @knife.run }.to raise_error(SystemExit)
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|