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
data/lib/chef/knife/search.rb
CHANGED
@@ -1,194 +1,194 @@
|
|
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_relative "../knife"
|
20
|
-
require_relative "core/node_presenter"
|
21
|
-
require_relative "core/formatting_options"
|
22
|
-
|
23
|
-
class Chef
|
24
|
-
class Knife
|
25
|
-
class Search < Knife
|
26
|
-
|
27
|
-
include Knife::Core::MultiAttributeReturnOption
|
28
|
-
|
29
|
-
deps do
|
30
|
-
require "chef/node" unless defined?(Chef::Node)
|
31
|
-
require "chef/environment" unless defined?(Chef::Environment)
|
32
|
-
require "chef/api_client" unless defined?(Chef::APIClient)
|
33
|
-
require "chef/search/query" unless defined?(Chef::Search::Query)
|
34
|
-
end
|
35
|
-
|
36
|
-
include Knife::Core::FormattingOptions
|
37
|
-
|
38
|
-
banner "knife search INDEX QUERY (options)"
|
39
|
-
|
40
|
-
option :start,
|
41
|
-
short: "-b ROW",
|
42
|
-
long: "--start ROW",
|
43
|
-
description: "The row to start returning results at.",
|
44
|
-
default: 0,
|
45
|
-
proc: lambda { |i| i.to_i }
|
46
|
-
|
47
|
-
option :rows,
|
48
|
-
short: "-R INT",
|
49
|
-
long: "--rows INT",
|
50
|
-
description: "The number of rows to return.",
|
51
|
-
default: nil,
|
52
|
-
proc: lambda { |i| i.to_i }
|
53
|
-
|
54
|
-
option :run_list,
|
55
|
-
short: "-r",
|
56
|
-
long: "--run-list",
|
57
|
-
description: "Show only the run list."
|
58
|
-
|
59
|
-
option :id_only,
|
60
|
-
short: "-i",
|
61
|
-
long: "--id-only",
|
62
|
-
description: "Show only the ID of matching objects."
|
63
|
-
|
64
|
-
option :query,
|
65
|
-
short: "-q QUERY",
|
66
|
-
long: "--query QUERY",
|
67
|
-
description: "The search query; useful to protect queries starting with -."
|
68
|
-
|
69
|
-
option :filter_result,
|
70
|
-
short: "-f FILTER",
|
71
|
-
long: "--filter-result FILTER",
|
72
|
-
description: "Only return specific attributes of the matching objects; for example: \"ServerName=name, Kernel=kernel.version\"."
|
73
|
-
|
74
|
-
def run
|
75
|
-
read_cli_args
|
76
|
-
|
77
|
-
if @type == "node"
|
78
|
-
ui.use_presenter Knife::Core::NodePresenter
|
79
|
-
end
|
80
|
-
|
81
|
-
q = Chef::Search::Query.new
|
82
|
-
|
83
|
-
result_items = []
|
84
|
-
result_count = 0
|
85
|
-
|
86
|
-
search_args = {}
|
87
|
-
search_args[:fuzz] = true
|
88
|
-
search_args[:start] = config[:start] if config[:start]
|
89
|
-
search_args[:rows] = config[:rows] if config[:rows]
|
90
|
-
if config[:filter_result]
|
91
|
-
search_args[:filter_result] = create_result_filter(config[:filter_result])
|
92
|
-
elsif (not ui.config[:attribute].nil?) && (not ui.config[:attribute].empty?)
|
93
|
-
search_args[:filter_result] = create_result_filter_from_attributes(ui.config[:attribute], ui.attribute_field_separator)
|
94
|
-
elsif config[:id_only]
|
95
|
-
search_args[:filter_result] = create_result_filter_from_attributes([])
|
96
|
-
end
|
97
|
-
|
98
|
-
begin
|
99
|
-
q.search(@type, @query, search_args) do |item|
|
100
|
-
formatted_item = {}
|
101
|
-
if config[:id_only]
|
102
|
-
formatted_item = format_for_display({ "id" => item["__display_name"] })
|
103
|
-
elsif item.is_a?(Hash)
|
104
|
-
# doing a little magic here to set the correct name
|
105
|
-
formatted_item[item["__display_name"]] = item.reject { |k| k == "__display_name" }
|
106
|
-
else
|
107
|
-
formatted_item = format_for_display(item)
|
108
|
-
end
|
109
|
-
result_items << formatted_item
|
110
|
-
result_count += 1
|
111
|
-
end
|
112
|
-
rescue Net::HTTPClientException => e
|
113
|
-
msg = Chef::JSONCompat.from_json(e.response.body)["error"].first
|
114
|
-
ui.error("knife search failed: #{msg}")
|
115
|
-
exit 99
|
116
|
-
end
|
117
|
-
|
118
|
-
if ui.interchange?
|
119
|
-
output({ results: result_count, rows: result_items })
|
120
|
-
else
|
121
|
-
ui.log "#{result_count} items found"
|
122
|
-
ui.log("\n")
|
123
|
-
result_items.each do |item|
|
124
|
-
output(item)
|
125
|
-
unless config[:id_only]
|
126
|
-
ui.msg("\n")
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
# return a "failure" code to the shell so that knife search can be used in pipes similar to grep
|
132
|
-
exit 1 if result_count == 0
|
133
|
-
end
|
134
|
-
|
135
|
-
def read_cli_args
|
136
|
-
if config[:query]
|
137
|
-
if @name_args[1]
|
138
|
-
ui.error "Please specify query as an argument or an option via -q, not both"
|
139
|
-
ui.msg opt_parser
|
140
|
-
exit 1
|
141
|
-
end
|
142
|
-
@type = name_args[0]
|
143
|
-
@query = config[:query]
|
144
|
-
else
|
145
|
-
case name_args.size
|
146
|
-
when 0
|
147
|
-
ui.error "No query specified"
|
148
|
-
ui.msg opt_parser
|
149
|
-
exit 1
|
150
|
-
when 1
|
151
|
-
@type = "node"
|
152
|
-
@query = name_args[0]
|
153
|
-
when 2
|
154
|
-
@type = name_args[0]
|
155
|
-
@query = name_args[1]
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
# This method turns a set of key value pairs in a string into the appropriate data structure that the
|
161
|
-
# chef-server search api is expecting.
|
162
|
-
# expected input is in the form of:
|
163
|
-
# -f "return_var1=path.to.attribute, return_var2=shorter.path"
|
164
|
-
#
|
165
|
-
# a more concrete example might be:
|
166
|
-
# -f "env=chef_environment, ruby_platform=languages.ruby.platform"
|
167
|
-
#
|
168
|
-
# The end result is a hash where the key is a symbol in the hash (the return variable)
|
169
|
-
# and the path is an array with the path elements as strings (in order)
|
170
|
-
# See lib/chef/search/query.rb for more examples of this.
|
171
|
-
def create_result_filter(filter_string)
|
172
|
-
final_filter = {}
|
173
|
-
filter_string.delete!(" ")
|
174
|
-
filters = filter_string.split(",")
|
175
|
-
filters.each do |f|
|
176
|
-
return_id, attr_path = f.split("=")
|
177
|
-
final_filter[return_id.to_sym] = attr_path.split(".")
|
178
|
-
end
|
179
|
-
final_filter
|
180
|
-
end
|
181
|
-
|
182
|
-
def create_result_filter_from_attributes(filter_array, separator = ".")
|
183
|
-
final_filter = {}
|
184
|
-
filter_array.each do |f|
|
185
|
-
final_filter[f] = f.split(separator)
|
186
|
-
end
|
187
|
-
# adding magic filter so we can actually pull the name as before
|
188
|
-
final_filter["__display_name"] = [ "name" ]
|
189
|
-
final_filter
|
190
|
-
end
|
191
|
-
|
192
|
-
end
|
193
|
-
end
|
194
|
-
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_relative "../knife"
|
20
|
+
require_relative "core/node_presenter"
|
21
|
+
require_relative "core/formatting_options"
|
22
|
+
|
23
|
+
class Chef
|
24
|
+
class Knife
|
25
|
+
class Search < Knife
|
26
|
+
|
27
|
+
include Knife::Core::MultiAttributeReturnOption
|
28
|
+
|
29
|
+
deps do
|
30
|
+
require "chef/node" unless defined?(Chef::Node)
|
31
|
+
require "chef/environment" unless defined?(Chef::Environment)
|
32
|
+
require "chef/api_client" unless defined?(Chef::APIClient)
|
33
|
+
require "chef/search/query" unless defined?(Chef::Search::Query)
|
34
|
+
end
|
35
|
+
|
36
|
+
include Knife::Core::FormattingOptions
|
37
|
+
|
38
|
+
banner "knife search INDEX QUERY (options)"
|
39
|
+
|
40
|
+
option :start,
|
41
|
+
short: "-b ROW",
|
42
|
+
long: "--start ROW",
|
43
|
+
description: "The row to start returning results at.",
|
44
|
+
default: 0,
|
45
|
+
proc: lambda { |i| i.to_i }
|
46
|
+
|
47
|
+
option :rows,
|
48
|
+
short: "-R INT",
|
49
|
+
long: "--rows INT",
|
50
|
+
description: "The number of rows to return.",
|
51
|
+
default: nil,
|
52
|
+
proc: lambda { |i| i.to_i }
|
53
|
+
|
54
|
+
option :run_list,
|
55
|
+
short: "-r",
|
56
|
+
long: "--run-list",
|
57
|
+
description: "Show only the run list."
|
58
|
+
|
59
|
+
option :id_only,
|
60
|
+
short: "-i",
|
61
|
+
long: "--id-only",
|
62
|
+
description: "Show only the ID of matching objects."
|
63
|
+
|
64
|
+
option :query,
|
65
|
+
short: "-q QUERY",
|
66
|
+
long: "--query QUERY",
|
67
|
+
description: "The search query; useful to protect queries starting with -."
|
68
|
+
|
69
|
+
option :filter_result,
|
70
|
+
short: "-f FILTER",
|
71
|
+
long: "--filter-result FILTER",
|
72
|
+
description: "Only return specific attributes of the matching objects; for example: \"ServerName=name, Kernel=kernel.version\"."
|
73
|
+
|
74
|
+
def run
|
75
|
+
read_cli_args
|
76
|
+
|
77
|
+
if @type == "node"
|
78
|
+
ui.use_presenter Knife::Core::NodePresenter
|
79
|
+
end
|
80
|
+
|
81
|
+
q = Chef::Search::Query.new
|
82
|
+
|
83
|
+
result_items = []
|
84
|
+
result_count = 0
|
85
|
+
|
86
|
+
search_args = {}
|
87
|
+
search_args[:fuzz] = true
|
88
|
+
search_args[:start] = config[:start] if config[:start]
|
89
|
+
search_args[:rows] = config[:rows] if config[:rows]
|
90
|
+
if config[:filter_result]
|
91
|
+
search_args[:filter_result] = create_result_filter(config[:filter_result])
|
92
|
+
elsif (not ui.config[:attribute].nil?) && (not ui.config[:attribute].empty?)
|
93
|
+
search_args[:filter_result] = create_result_filter_from_attributes(ui.config[:attribute], ui.attribute_field_separator)
|
94
|
+
elsif config[:id_only]
|
95
|
+
search_args[:filter_result] = create_result_filter_from_attributes([])
|
96
|
+
end
|
97
|
+
|
98
|
+
begin
|
99
|
+
q.search(@type, @query, search_args) do |item|
|
100
|
+
formatted_item = {}
|
101
|
+
if config[:id_only]
|
102
|
+
formatted_item = format_for_display({ "id" => item["__display_name"] })
|
103
|
+
elsif item.is_a?(Hash)
|
104
|
+
# doing a little magic here to set the correct name
|
105
|
+
formatted_item[item["__display_name"]] = item.reject { |k| k == "__display_name" }
|
106
|
+
else
|
107
|
+
formatted_item = format_for_display(item)
|
108
|
+
end
|
109
|
+
result_items << formatted_item
|
110
|
+
result_count += 1
|
111
|
+
end
|
112
|
+
rescue Net::HTTPClientException => e
|
113
|
+
msg = Chef::JSONCompat.from_json(e.response.body)["error"].first
|
114
|
+
ui.error("knife search failed: #{msg}")
|
115
|
+
exit 99
|
116
|
+
end
|
117
|
+
|
118
|
+
if ui.interchange?
|
119
|
+
output({ results: result_count, rows: result_items })
|
120
|
+
else
|
121
|
+
ui.log "#{result_count} items found"
|
122
|
+
ui.log("\n")
|
123
|
+
result_items.each do |item|
|
124
|
+
output(item)
|
125
|
+
unless config[:id_only]
|
126
|
+
ui.msg("\n")
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# return a "failure" code to the shell so that knife search can be used in pipes similar to grep
|
132
|
+
exit 1 if result_count == 0
|
133
|
+
end
|
134
|
+
|
135
|
+
def read_cli_args
|
136
|
+
if config[:query]
|
137
|
+
if @name_args[1]
|
138
|
+
ui.error "Please specify query as an argument or an option via -q, not both"
|
139
|
+
ui.msg opt_parser
|
140
|
+
exit 1
|
141
|
+
end
|
142
|
+
@type = name_args[0]
|
143
|
+
@query = config[:query]
|
144
|
+
else
|
145
|
+
case name_args.size
|
146
|
+
when 0
|
147
|
+
ui.error "No query specified"
|
148
|
+
ui.msg opt_parser
|
149
|
+
exit 1
|
150
|
+
when 1
|
151
|
+
@type = "node"
|
152
|
+
@query = name_args[0]
|
153
|
+
when 2
|
154
|
+
@type = name_args[0]
|
155
|
+
@query = name_args[1]
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
# This method turns a set of key value pairs in a string into the appropriate data structure that the
|
161
|
+
# chef-server search api is expecting.
|
162
|
+
# expected input is in the form of:
|
163
|
+
# -f "return_var1=path.to.attribute, return_var2=shorter.path"
|
164
|
+
#
|
165
|
+
# a more concrete example might be:
|
166
|
+
# -f "env=chef_environment, ruby_platform=languages.ruby.platform"
|
167
|
+
#
|
168
|
+
# The end result is a hash where the key is a symbol in the hash (the return variable)
|
169
|
+
# and the path is an array with the path elements as strings (in order)
|
170
|
+
# See lib/chef/search/query.rb for more examples of this.
|
171
|
+
def create_result_filter(filter_string)
|
172
|
+
final_filter = {}
|
173
|
+
filter_string.delete!(" ")
|
174
|
+
filters = filter_string.split(",")
|
175
|
+
filters.each do |f|
|
176
|
+
return_id, attr_path = f.split("=")
|
177
|
+
final_filter[return_id.to_sym] = attr_path.split(".")
|
178
|
+
end
|
179
|
+
final_filter
|
180
|
+
end
|
181
|
+
|
182
|
+
def create_result_filter_from_attributes(filter_array, separator = ".")
|
183
|
+
final_filter = {}
|
184
|
+
filter_array.each do |f|
|
185
|
+
final_filter[f] = f.split(separator)
|
186
|
+
end
|
187
|
+
# adding magic filter so we can actually pull the name as before
|
188
|
+
final_filter["__display_name"] = [ "name" ]
|
189
|
+
final_filter
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
data/lib/chef/knife/serve.rb
CHANGED
@@ -1,65 +1,65 @@
|
|
1
|
-
#
|
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
|
-
require_relative "../knife"
|
18
|
-
require "local_mode" unless defined?(Chef::LocalMode)
|
19
|
-
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
20
|
-
|
21
|
-
class Chef
|
22
|
-
class Knife
|
23
|
-
class Serve < Knife
|
24
|
-
|
25
|
-
banner "knife serve (options)"
|
26
|
-
|
27
|
-
option :repo_mode,
|
28
|
-
long: "--repo-mode MODE",
|
29
|
-
description: "Specifies the local repository layout. Values: static (only environments/roles/data_bags/cookbooks), everything (includes nodes/clients/users), hosted_everything (includes acls/groups/etc. for Enterprise/Hosted Chef). Default: everything/hosted_everything."
|
30
|
-
|
31
|
-
option :chef_repo_path,
|
32
|
-
long: "--chef-repo-path PATH",
|
33
|
-
description: "Overrides the location of #{ChefUtils::Dist::Infra::PRODUCT} repo. Default is specified by chef_repo_path in the config."
|
34
|
-
|
35
|
-
option :chef_zero_host,
|
36
|
-
long: "--chef-zero-host IP",
|
37
|
-
description: "Overrides the host upon which #{ChefUtils::Dist::Zero::PRODUCT} listens. Default is 127.0.0.1."
|
38
|
-
|
39
|
-
def configure_chef
|
40
|
-
super
|
41
|
-
Chef::Config.local_mode = true
|
42
|
-
Chef::Config[:repo_mode] = config[:repo_mode] if config[:repo_mode]
|
43
|
-
|
44
|
-
# --chef-repo-path forcibly overrides all other paths
|
45
|
-
if config[:chef_repo_path]
|
46
|
-
Chef::Config.chef_repo_path = config[:chef_repo_path]
|
47
|
-
%w{acl client cookbook container data_bag environment group node role user}.each do |variable_name|
|
48
|
-
Chef::Config.delete("#{variable_name}_path".to_sym)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def run
|
54
|
-
server = Chef::LocalMode.chef_zero_server
|
55
|
-
begin
|
56
|
-
output "Serving files from:\n#{Chef::LocalMode.chef_fs.fs_description}"
|
57
|
-
server.stop
|
58
|
-
server.start(stdout) # to print header
|
59
|
-
ensure
|
60
|
-
server.stop
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
1
|
+
#
|
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
|
+
require_relative "../knife"
|
18
|
+
require "local_mode" unless defined?(Chef::LocalMode)
|
19
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Knife
|
23
|
+
class Serve < Knife
|
24
|
+
|
25
|
+
banner "knife serve (options)"
|
26
|
+
|
27
|
+
option :repo_mode,
|
28
|
+
long: "--repo-mode MODE",
|
29
|
+
description: "Specifies the local repository layout. Values: static (only environments/roles/data_bags/cookbooks), everything (includes nodes/clients/users), hosted_everything (includes acls/groups/etc. for Enterprise/Hosted Chef). Default: everything/hosted_everything."
|
30
|
+
|
31
|
+
option :chef_repo_path,
|
32
|
+
long: "--chef-repo-path PATH",
|
33
|
+
description: "Overrides the location of #{ChefUtils::Dist::Infra::PRODUCT} repo. Default is specified by chef_repo_path in the config."
|
34
|
+
|
35
|
+
option :chef_zero_host,
|
36
|
+
long: "--chef-zero-host IP",
|
37
|
+
description: "Overrides the host upon which #{ChefUtils::Dist::Zero::PRODUCT} listens. Default is 127.0.0.1."
|
38
|
+
|
39
|
+
def configure_chef
|
40
|
+
super
|
41
|
+
Chef::Config.local_mode = true
|
42
|
+
Chef::Config[:repo_mode] = config[:repo_mode] if config[:repo_mode]
|
43
|
+
|
44
|
+
# --chef-repo-path forcibly overrides all other paths
|
45
|
+
if config[:chef_repo_path]
|
46
|
+
Chef::Config.chef_repo_path = config[:chef_repo_path]
|
47
|
+
%w{acl client cookbook container data_bag environment group node role user}.each do |variable_name|
|
48
|
+
Chef::Config.delete("#{variable_name}_path".to_sym)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def run
|
54
|
+
server = Chef::LocalMode.chef_zero_server
|
55
|
+
begin
|
56
|
+
output "Serving files from:\n#{Chef::LocalMode.chef_fs.fs_description}"
|
57
|
+
server.stop
|
58
|
+
server.start(stdout) # to print header
|
59
|
+
ensure
|
60
|
+
server.stop
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/chef/knife/show.rb
CHANGED
@@ -1,72 +1,72 @@
|
|
1
|
-
#
|
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
|
-
require_relative "../chef_fs/knife"
|
18
|
-
|
19
|
-
class Chef
|
20
|
-
class Knife
|
21
|
-
class Show < Chef::ChefFS::Knife
|
22
|
-
banner "knife show [PATTERN1 ... PATTERNn] (options)"
|
23
|
-
|
24
|
-
category "path-based"
|
25
|
-
|
26
|
-
deps do
|
27
|
-
require "chef/chef_fs/file_system" unless defined?(Chef::ChefFS::FileSystem)
|
28
|
-
require "chef/chef_fs/file_system/exceptions" unless defined?(Chef::ChefFS::FileSystem::Exceptions)
|
29
|
-
end
|
30
|
-
|
31
|
-
option :local,
|
32
|
-
long: "--local",
|
33
|
-
boolean: true,
|
34
|
-
description: "Show local files instead of remote."
|
35
|
-
|
36
|
-
def run
|
37
|
-
# Get the matches (recursively)
|
38
|
-
error = false
|
39
|
-
entry_values = parallelize(pattern_args) do |pattern|
|
40
|
-
parallelize(Chef::ChefFS::FileSystem.list(config[:local] ? local_fs : chef_fs, pattern)) do |entry|
|
41
|
-
if entry.dir?
|
42
|
-
ui.error "#{format_path(entry)}: is a directory" if pattern.exact_path
|
43
|
-
error = true
|
44
|
-
nil
|
45
|
-
else
|
46
|
-
begin
|
47
|
-
[entry, entry.read]
|
48
|
-
rescue Chef::ChefFS::FileSystem::OperationNotAllowedError => e
|
49
|
-
ui.error "#{format_path(e.entry)}: #{e.reason}."
|
50
|
-
error = true
|
51
|
-
nil
|
52
|
-
rescue Chef::ChefFS::FileSystem::NotFoundError => e
|
53
|
-
ui.error "#{format_path(e.entry)}: No such file or directory"
|
54
|
-
error = true
|
55
|
-
nil
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end.flatten(1)
|
60
|
-
entry_values.each do |entry, value|
|
61
|
-
if entry
|
62
|
-
output "#{format_path(entry)}:"
|
63
|
-
output(format_for_display(value))
|
64
|
-
end
|
65
|
-
end
|
66
|
-
if error
|
67
|
-
exit 1
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
1
|
+
#
|
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
|
+
require_relative "../chef_fs/knife"
|
18
|
+
|
19
|
+
class Chef
|
20
|
+
class Knife
|
21
|
+
class Show < Chef::ChefFS::Knife
|
22
|
+
banner "knife show [PATTERN1 ... PATTERNn] (options)"
|
23
|
+
|
24
|
+
category "path-based"
|
25
|
+
|
26
|
+
deps do
|
27
|
+
require "chef/chef_fs/file_system" unless defined?(Chef::ChefFS::FileSystem)
|
28
|
+
require "chef/chef_fs/file_system/exceptions" unless defined?(Chef::ChefFS::FileSystem::Exceptions)
|
29
|
+
end
|
30
|
+
|
31
|
+
option :local,
|
32
|
+
long: "--local",
|
33
|
+
boolean: true,
|
34
|
+
description: "Show local files instead of remote."
|
35
|
+
|
36
|
+
def run
|
37
|
+
# Get the matches (recursively)
|
38
|
+
error = false
|
39
|
+
entry_values = parallelize(pattern_args) do |pattern|
|
40
|
+
parallelize(Chef::ChefFS::FileSystem.list(config[:local] ? local_fs : chef_fs, pattern)) do |entry|
|
41
|
+
if entry.dir?
|
42
|
+
ui.error "#{format_path(entry)}: is a directory" if pattern.exact_path
|
43
|
+
error = true
|
44
|
+
nil
|
45
|
+
else
|
46
|
+
begin
|
47
|
+
[entry, entry.read]
|
48
|
+
rescue Chef::ChefFS::FileSystem::OperationNotAllowedError => e
|
49
|
+
ui.error "#{format_path(e.entry)}: #{e.reason}."
|
50
|
+
error = true
|
51
|
+
nil
|
52
|
+
rescue Chef::ChefFS::FileSystem::NotFoundError => e
|
53
|
+
ui.error "#{format_path(e.entry)}: No such file or directory"
|
54
|
+
error = true
|
55
|
+
nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end.flatten(1)
|
60
|
+
entry_values.each do |entry, value|
|
61
|
+
if entry
|
62
|
+
output "#{format_path(entry)}:"
|
63
|
+
output(format_for_display(value))
|
64
|
+
end
|
65
|
+
end
|
66
|
+
if error
|
67
|
+
exit 1
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|