chef 11.6.2-x86-mingw32 → 11.8.0.rc.1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTING.md +12 -12
- data/Rakefile +11 -14
- data/bin/chef-apply +2 -2
- data/bin/chef-client +2 -2
- data/bin/chef-service-manager +2 -2
- data/bin/chef-shell +3 -0
- data/bin/chef-solo +2 -2
- data/bin/knife +3 -3
- data/distro/arch/etc/rc.d/chef-client +2 -2
- data/distro/arch/etc/rc.d/chef-server +2 -2
- data/distro/arch/etc/rc.d/chef-server-webui +2 -2
- data/distro/arch/etc/rc.d/chef-solr +2 -2
- data/distro/common/html/chef-client.8.html +3 -3
- data/distro/common/html/chef-expander.8.html +3 -3
- data/distro/common/html/chef-expanderctl.8.html +3 -3
- data/distro/common/html/chef-server-webui.8.html +3 -3
- data/distro/common/html/chef-server.8.html +3 -3
- data/distro/common/html/chef-shell.1.html +3 -3
- data/distro/common/html/chef-solo.8.html +3 -3
- data/distro/common/html/chef-solr.8.html +4 -4
- data/distro/common/html/knife-bootstrap.1.html +3 -3
- data/distro/common/html/knife-client.1.html +3 -3
- data/distro/common/html/knife-configure.1.html +13 -13
- data/distro/common/html/knife-cookbook-site.1.html +3 -3
- data/distro/common/html/knife-cookbook.1.html +7 -7
- data/distro/common/html/knife-data-bag.1.html +3 -3
- data/distro/common/html/knife-environment.1.html +3 -3
- data/distro/common/html/knife-exec.1.html +3 -3
- data/distro/common/html/knife-index.1.html +3 -3
- data/distro/common/html/knife-node.1.html +3 -3
- data/distro/common/html/knife-role.1.html +3 -3
- data/distro/common/html/knife-search.1.html +3 -3
- data/distro/common/html/knife-ssh.1.html +3 -3
- data/distro/common/html/knife-status.1.html +3 -3
- data/distro/common/html/knife-tag.1.html +3 -3
- data/distro/common/html/knife.1.html +3 -3
- data/distro/common/man/man1/README.md +58 -0
- data/distro/common/man/man1/chef-shell.1 +114 -219
- data/distro/common/man/man1/knife-bootstrap.1 +176 -180
- data/distro/common/man/man1/knife-client.1 +368 -0
- data/distro/common/man/man1/knife-configure.1 +147 -85
- data/distro/common/man/man1/knife-cookbook-site.1 +465 -133
- data/distro/common/man/man1/knife-cookbook.1 +614 -304
- data/distro/common/man/man1/knife-data-bag.1 +476 -113
- data/distro/common/man/man1/knife-delete.1 +132 -0
- data/distro/common/man/man1/knife-deps.1 +219 -0
- data/distro/common/man/man1/knife-diff.1 +212 -0
- data/distro/common/man/man1/knife-download.1 +220 -0
- data/distro/common/man/man1/knife-edit.1 +126 -0
- data/distro/common/man/man1/knife-environment.1 +324 -0
- data/distro/common/man/man1/knife-exec.1 +317 -35
- data/distro/common/man/man1/knife-index-rebuild.1 +115 -0
- data/distro/common/man/man1/knife-list.1 +167 -0
- data/distro/common/man/man1/knife-node.1 +567 -123
- data/distro/common/man/man1/knife-raw.1 +170 -0
- data/distro/common/man/man1/knife-recipe-list.1 +133 -0
- data/distro/common/man/man1/knife-role.1 +367 -81
- data/distro/common/man/man1/knife-search.1 +267 -243
- data/distro/common/man/man1/knife-show.1 +138 -0
- data/distro/common/man/man1/knife-ssh.1 +241 -66
- data/distro/common/man/man1/knife-status.1 +202 -24
- data/distro/common/man/man1/knife-tag.1 +176 -39
- data/distro/common/man/man1/knife-upload.1 +239 -0
- data/distro/common/man/man1/knife-user.1 +317 -0
- data/distro/common/man/man1/knife-xargs.1 +166 -0
- data/distro/common/man/man1/knife.1 +227 -284
- data/distro/common/man/man8/chef-client.8 +247 -81
- data/distro/common/man/man8/chef-solo.8 +142 -110
- data/distro/common/markdown/man1/knife-bootstrap.mkd +1 -1
- data/distro/common/markdown/man1/knife-configure.mkd +11 -11
- data/distro/common/markdown/man1/knife-cookbook.mkd +4 -4
- data/distro/common/markdown/man8/chef-expander.mkd +1 -1
- data/distro/common/markdown/man8/chef-expanderctl.mkd +1 -1
- data/distro/debian/etc/init.d/chef-client +1 -1
- data/distro/debian/etc/init.d/chef-expander +1 -1
- data/distro/debian/etc/init.d/chef-server +1 -1
- data/distro/debian/etc/init.d/chef-server-webui +1 -1
- data/distro/debian/etc/init.d/chef-solr +1 -1
- data/distro/debian/etc/init/chef-client.conf +1 -1
- data/distro/debian/etc/init/chef-expander.conf +1 -1
- data/distro/debian/etc/init/chef-server-webui.conf +1 -1
- data/distro/debian/etc/init/chef-server.conf +1 -1
- data/distro/debian/etc/init/chef-solr.conf +1 -1
- data/distro/redhat/etc/init.d/chef-client +1 -1
- data/distro/redhat/etc/init.d/chef-server +2 -2
- data/distro/redhat/etc/init.d/chef-server-webui +2 -2
- data/distro/redhat/etc/init.d/chef-solr +2 -2
- data/lib/chef/api_client.rb +20 -5
- data/lib/chef/application.rb +53 -22
- data/lib/chef/application/agent.rb +2 -2
- data/lib/chef/application/client.rb +34 -24
- data/lib/chef/application/knife.rb +10 -0
- data/lib/chef/application/solo.rb +9 -27
- data/lib/chef/application/windows_service.rb +24 -10
- data/lib/chef/application/windows_service_manager.rb +8 -0
- data/lib/chef/checksum/storage.rb +2 -2
- data/lib/chef/checksum/storage/filesystem.rb +2 -2
- data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
- data/lib/chef/chef_fs/command_line.rb +2 -1
- data/lib/chef/chef_fs/config.rb +19 -64
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_system.rb +2 -2
- data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_acls_dir.rb +37 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +16 -8
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +19 -4
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +27 -12
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +31 -3
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +12 -5
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +12 -2
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +3 -2
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +2 -5
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +21 -6
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +3 -2
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +15 -5
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +2 -1
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +8 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +4 -2
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -6
- data/lib/chef/chef_fs/knife.rb +39 -22
- data/lib/chef/chef_fs/path_utils.rb +5 -0
- data/lib/chef/client.rb +9 -3
- data/lib/chef/config.rb +306 -115
- data/lib/chef/config_fetcher.rb +79 -0
- data/lib/chef/cookbook/file_vendor.rb +5 -5
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook/syntax_check.rb +6 -16
- data/lib/chef/cookbook_site_streaming_uploader.rb +8 -4
- data/lib/chef/cookbook_uploader.rb +10 -8
- data/lib/chef/cookbook_version.rb +24 -8
- data/lib/chef/daemon.rb +14 -75
- data/lib/chef/data_bag.rb +2 -3
- data/lib/chef/dsl/include_recipe.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +1 -1
- data/lib/chef/event_dispatch/dispatcher.rb +1 -1
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/doc.rb +5 -5
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +2 -2
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
- data/lib/chef/handler/json_file.rb +2 -2
- data/lib/chef/http.rb +386 -0
- data/lib/chef/{rest → http}/auth_credentials.rb +1 -1
- data/lib/chef/http/authenticator.rb +89 -0
- data/lib/chef/http/basic_client.rb +114 -0
- data/lib/chef/{rest → http}/cookie_jar.rb +1 -1
- data/lib/chef/http/cookie_manager.rb +56 -0
- data/lib/chef/http/decompressor.rb +137 -0
- data/lib/chef/{rest/rest_request.rb → http/http_request.rb} +13 -74
- data/lib/chef/http/json_input.rb +53 -0
- data/lib/chef/http/json_output.rb +69 -0
- data/lib/chef/http/json_to_model_output.rb +34 -0
- data/lib/chef/http/simple.rb +16 -0
- data/lib/chef/http/ssl_policies.rb +129 -0
- data/lib/chef/knife.rb +45 -23
- data/lib/chef/knife/bootstrap.rb +10 -3
- data/lib/chef/knife/bootstrap/chef-full.erb +10 -1
- data/lib/chef/knife/client_create.rb +1 -1
- data/lib/chef/knife/configure.rb +1 -1
- data/lib/chef/knife/cookbook_create.rb +7 -7
- data/lib/chef/knife/cookbook_download.rb +2 -2
- data/lib/chef/knife/cookbook_metadata_from_file.rb +2 -2
- data/lib/chef/knife/cookbook_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/cookbook_site_list.rb +2 -2
- data/lib/chef/knife/cookbook_site_search.rb +3 -3
- data/lib/chef/knife/cookbook_site_show.rb +5 -5
- data/lib/chef/knife/core/bootstrap_context.rb +7 -3
- data/lib/chef/knife/core/node_editor.rb +16 -36
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +5 -5
- data/lib/chef/knife/core/ui.rb +9 -13
- data/lib/chef/knife/data_bag_create.rb +7 -5
- data/lib/chef/knife/data_bag_delete.rb +3 -3
- data/lib/chef/knife/data_bag_edit.rb +9 -7
- data/lib/chef/knife/data_bag_from_file.rb +10 -8
- data/lib/chef/knife/data_bag_list.rb +2 -2
- data/lib/chef/knife/data_bag_show.rb +9 -7
- data/lib/chef/knife/delete.rb +2 -0
- data/lib/chef/knife/deps.rb +2 -0
- data/lib/chef/knife/diff.rb +6 -0
- data/lib/chef/knife/download.rb +6 -0
- data/lib/chef/knife/edit.rb +5 -8
- data/lib/chef/knife/environment_from_file.rb +2 -2
- data/lib/chef/knife/help_topics.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +2 -2
- data/lib/chef/knife/list.rb +2 -0
- data/lib/chef/knife/raw.rb +31 -5
- data/lib/chef/knife/show.rb +2 -0
- data/lib/chef/knife/ssh.rb +21 -7
- data/lib/chef/knife/status.rb +1 -1
- data/lib/chef/knife/upload.rb +2 -0
- data/lib/chef/knife/xargs.rb +2 -0
- data/lib/chef/mixin/checksum.rb +2 -2
- data/lib/chef/mixin/command.rb +46 -17
- data/lib/chef/mixin/convert_to_class_name.rb +8 -8
- data/lib/chef/mixin/create_path.rb +9 -9
- data/lib/chef/mixin/deep_merge.rb +2 -2
- data/lib/chef/mixin/from_file.rb +6 -6
- data/lib/chef/mixin/language_include_recipe.rb +2 -2
- data/lib/chef/mixin/params_validate.rb +21 -21
- data/lib/chef/mixin/shell_out.rb +9 -0
- data/lib/chef/mixin/template.rb +13 -16
- data/lib/chef/mixin/why_run.rb +16 -16
- data/lib/chef/mixin/windows_architecture_helper.rb +5 -5
- data/lib/chef/mixin/xml_escape.rb +10 -10
- data/lib/chef/monkey_patches/numeric.rb +1 -1
- data/lib/chef/monkey_patches/regexp.rb +4 -4
- data/lib/chef/monkey_patches/string.rb +3 -3
- data/lib/chef/monkey_patches/tempfile.rb +2 -2
- data/lib/chef/node.rb +8 -0
- data/lib/chef/node/attribute.rb +1 -1
- data/lib/chef/platform/provider_mapping.rb +26 -1
- data/lib/chef/provider/batch.rb +3 -3
- data/lib/chef/provider/cron.rb +27 -13
- data/lib/chef/provider/cron/aix.rb +48 -0
- data/lib/chef/provider/cron/solaris.rb +6 -40
- data/lib/chef/provider/cron/unix.rb +76 -0
- data/lib/chef/provider/deploy/timestamped.rb +4 -4
- data/lib/chef/provider/erl_call.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -2
- data/lib/chef/provider/git.rb +1 -0
- data/lib/chef/provider/group.rb +21 -21
- data/lib/chef/provider/group/dscl.rb +9 -9
- data/lib/chef/provider/group/gpasswd.rb +5 -5
- data/lib/chef/provider/group/groupadd.rb +11 -10
- data/lib/chef/provider/group/pw.rb +11 -11
- data/lib/chef/provider/group/suse.rb +4 -4
- data/lib/chef/provider/group/usermod.rb +8 -8
- data/lib/chef/provider/group/windows.rb +9 -9
- data/lib/chef/provider/http_request.rb +8 -8
- data/lib/chef/provider/ifconfig.rb +57 -37
- data/lib/chef/provider/ifconfig/aix.rb +99 -0
- data/lib/chef/provider/log.rb +3 -3
- data/lib/chef/provider/mdadm.rb +5 -4
- data/lib/chef/provider/mount.rb +12 -12
- data/lib/chef/provider/mount/aix.rb +179 -0
- data/lib/chef/provider/mount/mount.rb +29 -15
- data/lib/chef/provider/package.rb +26 -16
- data/lib/chef/provider/package/aix.rb +146 -0
- data/lib/chef/provider/package/apt.rb +16 -31
- data/lib/chef/provider/package/dpkg.rb +9 -9
- data/lib/chef/provider/package/freebsd.rb +2 -2
- data/lib/chef/provider/package/ips.rb +3 -3
- data/lib/chef/provider/package/macports.rb +1 -1
- data/lib/chef/provider/package/pacman.rb +8 -8
- data/lib/chef/provider/package/rpm.rb +14 -14
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/smartos.rb +3 -3
- data/lib/chef/provider/package/solaris.rb +16 -6
- data/lib/chef/provider/package/yum-dump.py +4 -4
- data/lib/chef/provider/package/yum.rb +3 -3
- data/lib/chef/provider/powershell_script.rb +7 -7
- data/lib/chef/provider/remote_file/ftp.rb +1 -0
- data/lib/chef/provider/remote_file/http.rb +6 -13
- data/lib/chef/provider/remote_file/local_file.rb +1 -0
- data/lib/chef/provider/resource_update.rb +9 -9
- data/lib/chef/provider/ruby_block.rb +3 -3
- data/lib/chef/provider/script.rb +1 -1
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/service/debian.rb +35 -15
- data/lib/chef/provider/service/freebsd.rb +9 -9
- data/lib/chef/provider/service/gentoo.rb +4 -4
- data/lib/chef/provider/service/init.rb +1 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/invokercd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +6 -6
- data/lib/chef/provider/service/solaris.rb +1 -1
- data/lib/chef/provider/service/systemd.rb +3 -3
- data/lib/chef/provider/service/upstart.rb +15 -15
- data/lib/chef/provider/subversion.rb +6 -5
- data/lib/chef/provider/user.rb +13 -9
- data/lib/chef/provider/user/dscl.rb +28 -28
- data/lib/chef/provider/user/pw.rb +11 -11
- data/lib/chef/provider/user/useradd.rb +1 -1
- data/lib/chef/provider/user/windows.rb +7 -7
- data/lib/chef/provider/windows_script.rb +7 -7
- data/lib/chef/providers.rb +4 -0
- data/lib/chef/recipe.rb +2 -19
- data/lib/chef/resource/apt_package.rb +3 -3
- data/lib/chef/resource/bash.rb +3 -3
- data/lib/chef/resource/batch.rb +4 -4
- data/lib/chef/resource/bff_package.rb +36 -0
- data/lib/chef/resource/breakpoint.rb +3 -3
- data/lib/chef/resource/cron.rb +5 -5
- data/lib/chef/resource/csh.rb +3 -3
- data/lib/chef/resource/deploy.rb +16 -3
- data/lib/chef/resource/deploy_revision.rb +6 -6
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dpkg_package.rb +4 -4
- data/lib/chef/resource/easy_install_package.rb +1 -1
- data/lib/chef/resource/erl_call.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +4 -4
- data/lib/chef/resource/group.rb +15 -6
- data/lib/chef/resource/http_request.rb +6 -6
- data/lib/chef/resource/ifconfig.rb +4 -4
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/log.rb +12 -11
- data/lib/chef/resource/macports_package.rb +2 -2
- data/lib/chef/resource/mount.rb +11 -12
- data/lib/chef/resource/ohai.rb +3 -3
- data/lib/chef/resource/pacman_package.rb +4 -4
- data/lib/chef/resource/perl.rb +3 -3
- data/lib/chef/resource/portage_package.rb +4 -4
- data/lib/chef/resource/powershell_script.rb +3 -3
- data/lib/chef/resource/python.rb +3 -3
- data/lib/chef/resource/route.rb +4 -4
- data/lib/chef/resource/rpm_package.rb +2 -2
- data/lib/chef/resource/ruby.rb +3 -3
- data/lib/chef/resource/ruby_block.rb +3 -3
- data/lib/chef/resource/scm.rb +10 -2
- data/lib/chef/resource/script.rb +5 -5
- data/lib/chef/resource/service.rb +5 -5
- data/lib/chef/resource/smartos_package.rb +8 -6
- data/lib/chef/resource/solaris_package.rb +8 -7
- data/lib/chef/resource/subversion.rb +3 -3
- data/lib/chef/resource/timestamped_deploy.rb +4 -4
- data/lib/chef/resource/user.rb +13 -13
- data/lib/chef/resource/windows_script.rb +6 -6
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resource_collection.rb +1 -1
- data/lib/chef/resource_collection/stepable_iterator.rb +22 -22
- data/lib/chef/resource_definition.rb +8 -8
- data/lib/chef/resource_definition_list.rb +2 -2
- data/lib/chef/resource_reporter.rb +8 -2
- data/lib/chef/resources.rb +2 -0
- data/lib/chef/rest.rb +70 -334
- data/lib/chef/role.rb +17 -13
- data/lib/chef/run_context.rb +14 -0
- data/lib/chef/run_context/cookbook_compiler.rb +3 -3
- data/lib/chef/run_lock.rb +73 -20
- data/lib/chef/server_api.rb +41 -0
- data/lib/chef/shell.rb +3 -19
- data/lib/chef/shell/shell_session.rb +1 -1
- data/lib/chef/streaming_cookbook_uploader.rb +30 -26
- data/lib/chef/tasks/chef_repo.rake +17 -17
- data/lib/chef/util/backup.rb +2 -1
- data/lib/chef/util/diff.rb +76 -33
- data/lib/chef/util/windows.rb +2 -2
- data/lib/chef/util/windows/net_group.rb +2 -2
- data/lib/chef/util/windows/net_use.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +3 -3
- data/lib/chef/util/windows/volume.rb +3 -3
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api/file.rb +1 -1
- data/lib/chef/win32/api/synchronization.rb +89 -0
- data/lib/chef/win32/handle.rb +1 -1
- data/lib/chef/win32/mutex.rb +94 -0
- data/lib/chef/win32/security/ace.rb +1 -1
- data/lib/chef/win32/security/sid.rb +1 -1
- data/lib/chef/win32/version.rb +5 -3
- data/spec/data/bootstrap/no_proxy.erb +2 -0
- data/spec/data/cookbooks/openldap/metadata.rb +8 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-template.seed +4 -0
- data/spec/data/trusted_certs/example.crt +22 -0
- data/spec/data/trusted_certs/intermediate.pem +27 -0
- data/spec/data/trusted_certs/opscode.pem +38 -0
- data/spec/data/trusted_certs/root.pem +22 -0
- data/spec/functional/assets/PkgA.1.0.0.0.bff +0 -0
- data/spec/functional/assets/PkgA.2.0.0.0.bff +0 -0
- data/spec/functional/assets/dummy-1-0.aix6.1.noarch.rpm +0 -0
- data/spec/functional/assets/dummy-2-0.aix6.1.noarch.rpm +0 -0
- data/spec/functional/assets/mytest-1.0-1.noarch.rpm +0 -0
- data/spec/functional/assets/mytest-2.0-1.noarch.rpm +0 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +4 -7
- data/spec/functional/knife/exec_spec.rb +0 -3
- data/spec/functional/knife/ssh_spec.rb +2 -6
- data/spec/functional/resource/base.rb +41 -0
- data/spec/functional/resource/batch_spec.rb +6 -33
- data/spec/functional/resource/bff_spec.rb +122 -0
- data/spec/functional/resource/cron_spec.rb +147 -0
- data/spec/functional/resource/group_spec.rb +204 -0
- data/spec/functional/resource/ifconfig_spec.rb +163 -0
- data/spec/functional/resource/link_spec.rb +4 -4
- data/spec/functional/resource/mount_spec.rb +207 -0
- data/spec/functional/resource/package_spec.rb +95 -17
- data/spec/functional/resource/powershell_spec.rb +21 -22
- data/spec/functional/resource/registry_spec.rb +5 -19
- data/spec/functional/resource/remote_file_spec.rb +14 -0
- data/spec/functional/resource/rpm_spec.rb +122 -0
- data/spec/functional/resource/template_spec.rb +11 -44
- data/spec/functional/resource/user_spec.rb +2 -1
- data/spec/functional/run_lock_spec.rb +48 -5
- data/spec/functional/shell_spec.rb +46 -26
- data/spec/functional/tiny_server_spec.rb +2 -2
- data/spec/functional/version_spec.rb +35 -0
- data/spec/functional/win32/versions_spec.rb +3 -3
- data/spec/integration/client/client_spec.rb +146 -0
- data/spec/integration/knife/chef_fs_data_store_spec.rb +353 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +72 -19
- data/spec/integration/knife/common_options_spec.rb +103 -0
- data/spec/integration/knife/download_spec.rb +38 -2
- data/spec/integration/knife/raw_spec.rb +63 -0
- data/spec/integration/knife/upload_spec.rb +20 -4
- data/spec/integration/solo/solo_spec.rb +78 -25
- data/spec/spec_helper.rb +35 -1
- data/spec/support/lib/chef/provider/easy.rb +4 -4
- data/spec/support/lib/chef/provider/snakeoil.rb +4 -4
- data/spec/support/lib/chef/resource/cat.rb +5 -5
- data/spec/support/lib/chef/resource/with_state.rb +37 -0
- data/spec/support/lib/library_load_order.rb +22 -0
- data/spec/support/platform_helpers.rb +8 -0
- data/spec/support/shared/functional/file_resource.rb +4 -22
- data/spec/support/shared/functional/windows_script.rb +48 -0
- data/spec/support/shared/integration/integration_helper.rb +5 -22
- data/spec/support/shared/integration/knife_support.rb +3 -3
- data/spec/support/shared/unit/script_resource.rb +7 -7
- data/spec/support/shared/unit/windows_script_resource.rb +7 -7
- data/spec/tiny_server.rb +2 -2
- data/spec/unit/api_client/registration_spec.rb +1 -1
- data/spec/unit/api_client_spec.rb +25 -2
- data/spec/unit/application/apply.rb +1 -9
- data/spec/unit/application/client_spec.rb +19 -44
- data/spec/unit/application/solo_spec.rb +10 -50
- data/spec/unit/application_spec.rb +51 -80
- data/spec/unit/checksum/storage/filesystem_spec.rb +3 -2
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +47 -0
- data/spec/unit/chef_spec.rb +2 -2
- data/spec/unit/client_spec.rb +2 -18
- data/spec/unit/config_fetcher_spec.rb +98 -0
- data/spec/unit/config_spec.rb +107 -29
- data/spec/unit/cookbook/metadata_spec.rb +50 -50
- data/spec/unit/cookbook/synchronizer_spec.rb +3 -3
- data/spec/unit/cookbook/syntax_check_spec.rb +1 -2
- data/spec/unit/cookbook_loader_spec.rb +28 -12
- data/spec/unit/cookbook_manifest_spec.rb +11 -11
- data/spec/unit/cookbook_site_streaming_uploader.rb +200 -0
- data/spec/unit/cookbook_version_spec.rb +16 -0
- data/spec/unit/daemon_spec.rb +0 -132
- data/spec/unit/data_bag_item_spec.rb +6 -6
- data/spec/unit/data_bag_spec.rb +6 -8
- data/spec/unit/digester_spec.rb +2 -2
- data/spec/unit/encrypted_data_bag_item_spec.rb +0 -15
- data/spec/unit/file_cache_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +4 -4
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +4 -4
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +2 -2
- data/spec/unit/handler_spec.rb +5 -5
- data/spec/unit/http/ssl_policies_spec.rb +170 -0
- data/spec/unit/knife/bootstrap_spec.rb +31 -14
- data/spec/unit/knife/client_bulk_delete_spec.rb +8 -8
- data/spec/unit/knife/client_create_spec.rb +2 -2
- data/spec/unit/knife/client_delete_spec.rb +2 -2
- data/spec/unit/knife/client_edit_spec.rb +2 -2
- data/spec/unit/knife/client_list_spec.rb +2 -2
- data/spec/unit/knife/client_reregister_spec.rb +2 -2
- data/spec/unit/knife/client_show_spec.rb +2 -2
- data/spec/unit/knife/config_file_selection_spec.rb +53 -36
- data/spec/unit/knife/configure_spec.rb +0 -6
- data/spec/unit/knife/cookbook_create_spec.rb +1 -12
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +2 -2
- data/spec/unit/knife/cookbook_show_spec.rb +3 -3
- data/spec/unit/knife/cookbook_site_install_spec.rb +1 -1
- data/spec/unit/knife/core/bootstrap_context_spec.rb +10 -2
- data/spec/unit/knife/core/ui_spec.rb +118 -0
- data/spec/unit/knife/data_bag_show_spec.rb +2 -2
- data/spec/unit/knife/environment_from_file_spec.rb +2 -2
- data/spec/unit/knife/index_rebuild_spec.rb +1 -1
- data/spec/unit/knife/node_delete_spec.rb +3 -3
- data/spec/unit/knife/node_edit_spec.rb +35 -8
- data/spec/unit/knife/node_list_spec.rb +3 -3
- data/spec/unit/knife/node_run_list_add_spec.rb +3 -3
- data/spec/unit/knife/node_show_spec.rb +3 -3
- data/spec/unit/knife/role_create_spec.rb +3 -3
- data/spec/unit/knife/role_delete_spec.rb +3 -3
- data/spec/unit/knife/role_list_spec.rb +2 -2
- data/spec/unit/knife/ssh_spec.rb +1 -8
- data/spec/unit/knife_spec.rb +0 -2
- data/spec/unit/log_spec.rb +2 -2
- data/spec/unit/mash_spec.rb +2 -2
- data/spec/unit/mixin/checksum_spec.rb +3 -3
- data/spec/unit/mixin/command_spec.rb +1 -1
- data/spec/unit/mixin/convert_to_class_name_spec.rb +7 -7
- data/spec/unit/mixin/deprecation_spec.rb +2 -2
- data/spec/unit/mixin/params_validate_spec.rb +72 -72
- data/spec/unit/mixin/securable_spec.rb +0 -14
- data/spec/unit/mixin/shell_out_spec.rb +1 -1
- data/spec/unit/mixin/template_spec.rb +34 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +5 -5
- data/spec/unit/mixin/xml_escape_spec.rb +2 -2
- data/spec/unit/node/attribute_spec.rb +11 -11
- data/spec/unit/node/immutable_collections_spec.rb +2 -2
- data/spec/unit/node_spec.rb +5 -0
- data/spec/unit/platform_spec.rb +36 -35
- data/spec/unit/provider/cron/{solaris_spec.rb → unix_spec.rb} +6 -6
- data/spec/unit/provider/cron_spec.rb +21 -3
- data/spec/unit/provider/deploy/timestamped_spec.rb +5 -5
- data/spec/unit/provider/deploy_spec.rb +21 -7
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/execute_spec.rb +2 -2
- data/spec/unit/provider/file/content_spec.rb +0 -8
- data/spec/unit/provider/git_spec.rb +29 -9
- data/spec/unit/provider/group/dscl_spec.rb +12 -12
- data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
- data/spec/unit/provider/group/groupadd_spec.rb +14 -0
- data/spec/unit/provider/group/groupmod_spec.rb +13 -13
- data/spec/unit/provider/group/pw_spec.rb +16 -16
- data/spec/unit/provider/group/usermod_spec.rb +10 -9
- data/spec/unit/provider/group/windows_spec.rb +14 -0
- data/spec/unit/provider/group_spec.rb +29 -29
- data/spec/unit/provider/http_request_spec.rb +15 -15
- data/spec/unit/provider/ifconfig/aix_spec.rb +180 -0
- data/spec/unit/provider/ifconfig_spec.rb +9 -9
- data/spec/unit/provider/link_spec.rb +2 -2
- data/spec/unit/provider/log_spec.rb +8 -8
- data/spec/unit/provider/mdadm_spec.rb +14 -11
- data/spec/unit/provider/mount/aix_spec.rb +237 -0
- data/spec/unit/provider/mount/mount_spec.rb +2 -0
- data/spec/unit/provider/mount/windows_spec.rb +2 -2
- data/spec/unit/provider/mount_spec.rb +6 -6
- data/spec/unit/provider/package/aix_spec.rb +171 -0
- data/spec/unit/provider/package/apt_spec.rb +130 -171
- data/spec/unit/provider/package/dpkg_spec.rb +3 -3
- data/spec/unit/provider/package/freebsd_spec.rb +28 -0
- data/spec/unit/provider/package/ips_spec.rb +1 -1
- data/spec/unit/provider/package/rpm_spec.rb +15 -15
- data/spec/unit/provider/package/smartos_spec.rb +21 -3
- data/spec/unit/provider/package_spec.rb +4 -2
- data/spec/unit/provider/powershell_spec.rb +3 -3
- data/spec/unit/provider/remote_directory_spec.rb +2 -2
- data/spec/unit/provider/remote_file/ftp_spec.rb +0 -5
- data/spec/unit/provider/remote_file/http_spec.rb +12 -28
- data/spec/unit/provider/remote_file/local_file_spec.rb +2 -1
- data/spec/unit/provider/route_spec.rb +2 -2
- data/spec/unit/provider/ruby_block_spec.rb +2 -2
- data/spec/unit/provider/service/arch_service_spec.rb +17 -17
- data/spec/unit/provider/service/debian_service_spec.rb +242 -152
- data/spec/unit/provider/service/freebsd_service_spec.rb +9 -9
- data/spec/unit/provider/service/gentoo_service_spec.rb +9 -9
- data/spec/unit/provider/service/init_service_spec.rb +11 -11
- data/spec/unit/provider/service/insserv_service_spec.rb +5 -5
- data/spec/unit/provider/service/invokercd_service_spec.rb +10 -10
- data/spec/unit/provider/service/redhat_spec.rb +6 -6
- data/spec/unit/provider/service/simple_service_spec.rb +6 -6
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +4 -4
- data/spec/unit/provider/service/systemd_service_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
- data/spec/unit/provider/service/windows_spec.rb +7 -7
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/user/dscl_spec.rb +21 -21
- data/spec/unit/provider/user/pw_spec.rb +2 -2
- data/spec/unit/provider/user/windows_spec.rb +5 -5
- data/spec/unit/provider/user_spec.rb +39 -47
- data/spec/unit/resource/apt_package_spec.rb +6 -6
- data/spec/unit/resource/bash_spec.rb +5 -5
- data/spec/unit/resource/batch_spec.rb +7 -7
- data/spec/unit/resource/breakpoint_spec.rb +8 -8
- data/spec/unit/resource/chef_gem_spec.rb +6 -6
- data/spec/unit/resource/cookbook_file_spec.rb +11 -11
- data/spec/unit/resource/cron_spec.rb +15 -15
- data/spec/unit/resource/csh_spec.rb +5 -5
- data/spec/unit/resource/deploy_revision_spec.rb +6 -6
- data/spec/unit/resource/deploy_spec.rb +50 -36
- data/spec/unit/resource/directory_spec.rb +1 -1
- data/spec/unit/resource/dpkg_package_spec.rb +6 -6
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/erl_call_spec.rb +1 -1
- data/spec/unit/resource/freebsd_package_spec.rb +6 -6
- data/spec/unit/resource/gem_package_spec.rb +6 -6
- data/spec/unit/resource/git_spec.rb +8 -8
- data/spec/unit/resource/group_spec.rb +11 -11
- data/spec/unit/resource/http_request_spec.rb +7 -7
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/ips_package_spec.rb +6 -6
- data/spec/unit/resource/link_spec.rb +1 -1
- data/spec/unit/resource/log_spec.rb +13 -10
- data/spec/unit/resource/macports_package_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +3 -3
- data/spec/unit/resource/mount_spec.rb +13 -13
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +6 -6
- data/spec/unit/resource/pacman_package_spec.rb +6 -6
- data/spec/unit/resource/perl_spec.rb +5 -5
- data/spec/unit/resource/portage_package_spec.rb +6 -6
- data/spec/unit/resource/powershell_spec.rb +5 -5
- data/spec/unit/resource/python_spec.rb +5 -5
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +9 -9
- data/spec/unit/resource/remote_file_spec.rb +4 -4
- data/spec/unit/resource/route_spec.rb +13 -13
- data/spec/unit/resource/rpm_package_spec.rb +2 -2
- data/spec/unit/resource/ruby_block_spec.rb +4 -4
- data/spec/unit/resource/ruby_spec.rb +5 -5
- data/spec/unit/resource/scm_spec.rb +14 -1
- data/spec/unit/resource/script_spec.rb +5 -5
- data/spec/unit/resource/service_spec.rb +18 -18
- data/spec/unit/resource/smartos_package_spec.rb +6 -6
- data/spec/unit/resource/solaris_package_spec.rb +57 -0
- data/spec/unit/resource/subversion_spec.rb +6 -6
- data/spec/unit/resource/timestamped_deploy_spec.rb +4 -4
- data/spec/unit/resource/user_spec.rb +13 -13
- data/spec/unit/resource/yum_package_spec.rb +7 -7
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +21 -21
- data/spec/unit/resource_definition_spec.rb +23 -23
- data/spec/unit/resource_reporter_spec.rb +27 -0
- data/spec/unit/rest/auth_credentials_spec.rb +0 -94
- data/spec/unit/rest_spec.rb +117 -99
- data/spec/unit/role_spec.rb +57 -4
- data/spec/unit/run_context/cookbook_compiler_spec.rb +4 -20
- data/spec/unit/run_context_spec.rb +44 -3
- data/spec/unit/run_list/run_list_item_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +6 -3
- data/spec/unit/scan_access_control_spec.rb +2 -2
- data/spec/unit/search/query_spec.rb +3 -3
- data/spec/unit/util/backup_spec.rb +6 -13
- data/spec/unit/util/diff_spec.rb +36 -53
- data/spec/unit/version/platform_spec.rb +3 -3
- data/spec/unit/version_class_spec.rb +5 -5
- data/spec/unit/version_constraint/platform_spec.rb +2 -2
- data/spec/unit/windows_service_spec.rb +54 -0
- metadata +290 -108
- checksums.yaml +0 -7
- data/distro/common/man/man1/knife-index.1 +0 -29
- data/distro/common/man/man8/chef-expander.8 +0 -97
- data/distro/common/man/man8/chef-expanderctl.8 +0 -62
- data/distro/common/man/man8/chef-server-webui.8 +0 -155
- data/distro/common/man/man8/chef-server.8 +0 -147
- data/distro/common/man/man8/chef-solr.8 +0 -122
- data/lib/chef/chef_fs/raw_request.rb +0 -79
@@ -7,9 +7,9 @@
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
# you may not use this file except in compliance with the License.
|
9
9
|
# You may obtain a copy of the License at
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
12
|
+
#
|
13
13
|
# Unless required by applicable law or agreed to in writing, software
|
14
14
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
15
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -32,13 +32,15 @@ class Chef
|
|
32
32
|
category "data bag"
|
33
33
|
|
34
34
|
option :secret,
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
:short => "-s SECRET",
|
36
|
+
:long => "--secret ",
|
37
|
+
:description => "The secret key to use to encrypt data bag item values",
|
38
|
+
:proc => Proc.new { |s| Chef::Config[:knife][:secret] = s }
|
38
39
|
|
39
40
|
option :secret_file,
|
40
|
-
|
41
|
-
|
41
|
+
:long => "--secret-file SECRET_FILE",
|
42
|
+
:description => "A file containing the secret key to use to encrypt data bag item values",
|
43
|
+
:proc => Proc.new { |sf| Chef::Config[:knife][:secret_file] = sf }
|
42
44
|
|
43
45
|
def read_secret
|
44
46
|
if config[:secret]
|
@@ -35,18 +35,20 @@ class Chef
|
|
35
35
|
category "data bag"
|
36
36
|
|
37
37
|
option :secret,
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
:short => "-s SECRET",
|
39
|
+
:long => "--secret ",
|
40
|
+
:description => "The secret key to use to encrypt data bag item values",
|
41
|
+
:proc => Proc.new { |s| Chef::Config[:knife][:secret] = s }
|
41
42
|
|
42
43
|
option :secret_file,
|
43
|
-
|
44
|
-
|
44
|
+
:long => "--secret-file SECRET_FILE",
|
45
|
+
:description => "A file containing the secret key to use to encrypt data bag item values",
|
46
|
+
:proc => Proc.new { |sf| Chef::Config[:knife][:secret_file] = sf }
|
45
47
|
|
46
48
|
option :all,
|
47
|
-
|
48
|
-
|
49
|
-
|
49
|
+
:short => "-a",
|
50
|
+
:long => "--all",
|
51
|
+
:description => "Upload all data bags or all items for specified data bags"
|
50
52
|
|
51
53
|
def read_secret
|
52
54
|
if config[:secret]
|
@@ -6,9 +6,9 @@
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
8
8
|
# You may obtain a copy of the License at
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -7,9 +7,9 @@
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
# you may not use this file except in compliance with the License.
|
9
9
|
# You may obtain a copy of the License at
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
12
|
+
#
|
13
13
|
# Unless required by applicable law or agreed to in writing, software
|
14
14
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
15
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -32,13 +32,15 @@ class Chef
|
|
32
32
|
category "data bag"
|
33
33
|
|
34
34
|
option :secret,
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
:short => "-s SECRET",
|
36
|
+
:long => "--secret ",
|
37
|
+
:description => "The secret key to use to decrypt data bag item values",
|
38
|
+
:proc => Proc.new { |s| Chef::Config[:knife][:secret] = s }
|
38
39
|
|
39
40
|
option :secret_file,
|
40
|
-
|
41
|
-
|
41
|
+
:long => "--secret-file SECRET_FILE",
|
42
|
+
:description => "A file containing the secret key to use to decrypt data bag item values",
|
43
|
+
:proc => Proc.new { |sf| Chef::Config[:knife][:secret_file] = sf }
|
42
44
|
|
43
45
|
def read_secret
|
44
46
|
if config[:secret]
|
data/lib/chef/knife/delete.rb
CHANGED
data/lib/chef/knife/deps.rb
CHANGED
data/lib/chef/knife/diff.rb
CHANGED
@@ -5,6 +5,8 @@ class Chef
|
|
5
5
|
class Diff < Chef::ChefFS::Knife
|
6
6
|
banner "knife diff PATTERNS"
|
7
7
|
|
8
|
+
category "path-based"
|
9
|
+
|
8
10
|
deps do
|
9
11
|
require 'chef/chef_fs/command_line'
|
10
12
|
end
|
@@ -30,6 +32,10 @@ class Chef
|
|
30
32
|
:description => "Select only files that are Added (A), Deleted (D), Modified (M), or have their type (i.e. regular file, directory) changed (T). Any combination of the filter characters (including none) can be used. When * (All-or-none) is added to the combination, all paths are selected if
|
31
33
|
there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected."
|
32
34
|
|
35
|
+
option :cookbook_version,
|
36
|
+
:long => '--cookbook-version VERSION',
|
37
|
+
:description => 'Version of cookbook to download (if there are multiple versions and cookbook_versions is false)'
|
38
|
+
|
33
39
|
def run
|
34
40
|
if config[:name_only]
|
35
41
|
output_mode = :name_only
|
data/lib/chef/knife/download.rb
CHANGED
@@ -5,6 +5,8 @@ class Chef
|
|
5
5
|
class Download < Chef::ChefFS::Knife
|
6
6
|
banner "knife download PATTERNS"
|
7
7
|
|
8
|
+
category "path-based"
|
9
|
+
|
8
10
|
deps do
|
9
11
|
require 'chef/chef_fs/command_line'
|
10
12
|
end
|
@@ -40,6 +42,10 @@ class Chef
|
|
40
42
|
:default => true,
|
41
43
|
:description => 'Turn off to avoid uploading existing files; only new (and possibly deleted) files with --no-diff'
|
42
44
|
|
45
|
+
option :cookbook_version,
|
46
|
+
:long => '--cookbook-version VERSION',
|
47
|
+
:description => 'Version of cookbook to download (if there are multiple versions and cookbook_versions is false)'
|
48
|
+
|
43
49
|
def run
|
44
50
|
if name_args.length == 0
|
45
51
|
show_usage
|
data/lib/chef/knife/edit.rb
CHANGED
@@ -5,6 +5,8 @@ class Chef
|
|
5
5
|
class Edit < Chef::ChefFS::Knife
|
6
6
|
banner "knife edit [PATTERN1 ... PATTERNn]"
|
7
7
|
|
8
|
+
category "path-based"
|
9
|
+
|
8
10
|
deps do
|
9
11
|
require 'chef/chef_fs/file_system'
|
10
12
|
require 'chef/chef_fs/file_system/not_found_error'
|
@@ -49,10 +51,8 @@ class Chef
|
|
49
51
|
|
50
52
|
def edit_text(text, extension)
|
51
53
|
if (!config[:disable_editing])
|
52
|
-
|
53
|
-
begin
|
54
|
+
Tempfile.open([ 'knife-edit-', extension ]) do |file|
|
54
55
|
# Write the text to a temporary file
|
55
|
-
file.open
|
56
56
|
file.write(text)
|
57
57
|
file.close
|
58
58
|
|
@@ -61,12 +61,9 @@ class Chef
|
|
61
61
|
raise "Please set EDITOR environment variable"
|
62
62
|
end
|
63
63
|
|
64
|
-
file.
|
65
|
-
result_text = file.read
|
66
|
-
return result_text if result_text != text
|
64
|
+
result_text = IO.read(file.path)
|
67
65
|
|
68
|
-
|
69
|
-
file.close!
|
66
|
+
return result_text if result_text != text
|
70
67
|
end
|
71
68
|
end
|
72
69
|
end
|
@@ -62,7 +62,7 @@ class Chef
|
|
62
62
|
ui.info("Updated Environment #{updated.name}")
|
63
63
|
end
|
64
64
|
|
65
|
-
|
65
|
+
|
66
66
|
def run
|
67
67
|
if config[:all] == true
|
68
68
|
load_all_environments
|
@@ -72,7 +72,7 @@ class Chef
|
|
72
72
|
ui.fatal("You must specify a file to load")
|
73
73
|
exit 1
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
@name_args.each do |arg|
|
77
77
|
load_environment(arg)
|
78
78
|
end
|
@@ -1,4 +1,4 @@
|
|
1
1
|
# Do not edit this file by hand
|
2
2
|
# This file is autogenerated by the docs:list rake task from the available manpages
|
3
3
|
|
4
|
-
HELP_TOPICS = ["chef-shell", "knife-bootstrap", "knife-client", "knife-configure", "knife-cookbook-site", "knife-cookbook", "knife-data-bag", "knife-environment", "knife-exec", "knife-index", "knife-node", "knife-role", "knife-search", "knife-ssh", "knife-status", "knife-tag", "knife", "
|
4
|
+
HELP_TOPICS = ["chef-shell", "knife-bootstrap", "knife-client", "knife-configure", "knife-cookbook-site", "knife-cookbook", "knife-data-bag", "knife-delete", "knife-deps", "knife-diff", "knife-download", "knife-edit", "knife-environment", "knife-exec", "knife-index-rebuild", "knife-list", "knife-node", "knife-raw", "knife-recipe-list", "knife-role", "knife-search", "knife-show", "knife-ssh", "knife-status", "knife-tag", "knife-upload", "knife-user", "knife-xargs", "knife"]
|
@@ -40,7 +40,7 @@ class Chef
|
|
40
40
|
nag
|
41
41
|
output rest.post_rest("/search/reindex", {})
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
end
|
45
45
|
|
46
46
|
def grab_api_info
|
@@ -55,7 +55,7 @@ class Chef
|
|
55
55
|
r = exception.response
|
56
56
|
parse_api_info(r)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
# Only Chef 11+ servers will have version information in their
|
60
60
|
# headers, and only those servers will lack an API endpoint for
|
61
61
|
# index rebuilding.
|
data/lib/chef/knife/list.rb
CHANGED
data/lib/chef/knife/raw.rb
CHANGED
@@ -6,10 +6,13 @@ class Chef
|
|
6
6
|
banner "knife raw REQUEST_PATH"
|
7
7
|
|
8
8
|
deps do
|
9
|
-
require '
|
10
|
-
require 'chef/rest'
|
9
|
+
require 'chef/json_compat'
|
11
10
|
require 'chef/config'
|
12
|
-
require 'chef/
|
11
|
+
require 'chef/http'
|
12
|
+
require 'chef/http/authenticator'
|
13
|
+
require 'chef/http/cookie_manager'
|
14
|
+
require 'chef/http/decompressor'
|
15
|
+
require 'chef/http/json_output'
|
13
16
|
end
|
14
17
|
|
15
18
|
option :method,
|
@@ -29,6 +32,18 @@ class Chef
|
|
29
32
|
:short => '-i FILE',
|
30
33
|
:description => "Name of file to use for PUT or POST"
|
31
34
|
|
35
|
+
class RawInputServerAPI < Chef::HTTP
|
36
|
+
def initialize(options = {})
|
37
|
+
options[:client_name] ||= Chef::Config[:node_name]
|
38
|
+
options[:signing_key_filename] ||= Chef::Config[:client_key]
|
39
|
+
super(Chef::Config[:chef_server_url], options)
|
40
|
+
end
|
41
|
+
use Chef::HTTP::JSONOutput
|
42
|
+
use Chef::HTTP::CookieManager
|
43
|
+
use Chef::HTTP::Decompressor
|
44
|
+
use Chef::HTTP::Authenticator
|
45
|
+
end
|
46
|
+
|
32
47
|
def run
|
33
48
|
if name_args.length == 0
|
34
49
|
show_usage
|
@@ -45,9 +60,20 @@ class Chef
|
|
45
60
|
if config[:input]
|
46
61
|
data = IO.read(config[:input])
|
47
62
|
end
|
48
|
-
chef_rest = Chef::REST.new(Chef::Config[:chef_server_url])
|
49
63
|
begin
|
50
|
-
|
64
|
+
method = config[:method].to_sym
|
65
|
+
|
66
|
+
if config[:pretty]
|
67
|
+
chef_rest = RawInputServerAPI.new
|
68
|
+
result = chef_rest.request(method, name_args[0], {'Content-Type' => 'application/json'}, data)
|
69
|
+
unless result.is_a?(String)
|
70
|
+
result = Chef::JSONCompat.to_json_pretty(result)
|
71
|
+
end
|
72
|
+
else
|
73
|
+
chef_rest = RawInputServerAPI.new(:raw_output => true)
|
74
|
+
result = chef_rest.request(method, name_args[0], {'Content-Type' => 'application/json'}, data)
|
75
|
+
end
|
76
|
+
output result
|
51
77
|
rescue Timeout::Error => e
|
52
78
|
ui.error "Server timeout"
|
53
79
|
exit 1
|
data/lib/chef/knife/show.rb
CHANGED
data/lib/chef/knife/ssh.rb
CHANGED
@@ -147,7 +147,7 @@ class Chef
|
|
147
147
|
@action_nodes = q.search(:node, @name_args[0])[0]
|
148
148
|
@action_nodes.each do |item|
|
149
149
|
# we should skip the loop to next iteration if the item returned by the search is nil
|
150
|
-
next if item.nil?
|
150
|
+
next if item.nil?
|
151
151
|
# if a command line attribute was not passed, and we have a cloud public_hostname, use that.
|
152
152
|
# see #configure_attribute for the source of config[:attribute] and config[:override_attribute]
|
153
153
|
if !config[:override_attribute] && item[:cloud] and item[:cloud][:public_hostname]
|
@@ -211,15 +211,28 @@ class Chef
|
|
211
211
|
end
|
212
212
|
|
213
213
|
def print_data(host, data)
|
214
|
-
|
215
|
-
|
214
|
+
@buffers ||= {}
|
215
|
+
if leftover = @buffers[host]
|
216
|
+
@buffers[host] = nil
|
217
|
+
print_data(host, leftover + data)
|
216
218
|
else
|
217
|
-
|
218
|
-
|
219
|
-
|
219
|
+
if newline_index = data.index("\n")
|
220
|
+
line = data.slice!(0...newline_index)
|
221
|
+
data.slice!(0)
|
222
|
+
print_line(host, line)
|
223
|
+
print_data(host, data)
|
224
|
+
else
|
225
|
+
@buffers[host] = data
|
226
|
+
end
|
220
227
|
end
|
221
228
|
end
|
222
229
|
|
230
|
+
def print_line(host, data)
|
231
|
+
padding = @longest - host.length
|
232
|
+
str = ui.color(host, :cyan) + (" " * (padding + 1)) + data
|
233
|
+
ui.msg(str)
|
234
|
+
end
|
235
|
+
|
223
236
|
def ssh_command(command, subsession=nil)
|
224
237
|
exit_status = 0
|
225
238
|
subsession ||= session
|
@@ -232,6 +245,7 @@ class Chef
|
|
232
245
|
ch.on_data do |ichannel, data|
|
233
246
|
print_data(ichannel[:host], data)
|
234
247
|
if data =~ /^knife sudo password: /
|
248
|
+
print_data(ichannel[:host], "\n")
|
235
249
|
ichannel.send_data("#{get_password}\n")
|
236
250
|
end
|
237
251
|
end
|
@@ -383,7 +397,7 @@ class Chef
|
|
383
397
|
# Thus we can differentiate between a config file value and a command line override at this point by checking config[:attribute]
|
384
398
|
# We can tell here if fqdn was passed from the command line, rather than being the default, by checking config[:attribute]
|
385
399
|
# However, after here, we cannot tell these things, so we must preserve config[:attribute]
|
386
|
-
config[:override_attribute] = config[:attribute] || Chef::Config[:knife][:ssh_attribute]
|
400
|
+
config[:override_attribute] = config[:attribute] || Chef::Config[:knife][:ssh_attribute]
|
387
401
|
config[:attribute] = (Chef::Config[:knife][:ssh_attribute] ||
|
388
402
|
config[:attribute] ||
|
389
403
|
"fqdn").strip
|
data/lib/chef/knife/status.rb
CHANGED
@@ -72,7 +72,7 @@ class Chef
|
|
72
72
|
hours, minutes, seconds = time_difference_in_hms(node["ohai_time"])
|
73
73
|
hours_text = "#{hours} hour#{hours == 1 ? ' ' : 's'}"
|
74
74
|
minutes_text = "#{minutes} minute#{minutes == 1 ? ' ' : 's'}"
|
75
|
-
run_list = "
|
75
|
+
run_list = "#{node.run_list}" if config[:run_list]
|
76
76
|
if hours > 24
|
77
77
|
color = :red
|
78
78
|
text = hours_text
|
data/lib/chef/knife/upload.rb
CHANGED
data/lib/chef/knife/xargs.rb
CHANGED
data/lib/chef/mixin/checksum.rb
CHANGED
@@ -6,9 +6,9 @@
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
8
8
|
# You may obtain a copy of the License at
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
data/lib/chef/mixin/command.rb
CHANGED
@@ -6,9 +6,9 @@
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
8
8
|
# You may obtain a copy of the License at
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -24,6 +24,26 @@ require 'etc'
|
|
24
24
|
|
25
25
|
class Chef
|
26
26
|
module Mixin
|
27
|
+
|
28
|
+
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
29
|
+
# NOTE:
|
30
|
+
# The popen4 method upon which all the code here is based has a race
|
31
|
+
# condition where it may fail to read all of the data written to stdout and
|
32
|
+
# stderr after the child process exits. The tests for the code here
|
33
|
+
# occasionally fail because of this race condition, so they have been
|
34
|
+
# tagged "volatile".
|
35
|
+
#
|
36
|
+
# This code is considered deprecated, so it should not need to be modified
|
37
|
+
# frequently, if at all. HOWEVER, if you do modify the code here, you must
|
38
|
+
# explicitly enable volatile tests:
|
39
|
+
#
|
40
|
+
# bundle exec rspec spec/unit/mixin/command_spec.rb -t volatile
|
41
|
+
#
|
42
|
+
# In addition, you should make a note that tests need to be run with
|
43
|
+
# volatile tests enabled on any pull request or bug report you submit with
|
44
|
+
# your patch.
|
45
|
+
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
46
|
+
|
27
47
|
module Command
|
28
48
|
extend self
|
29
49
|
|
@@ -41,23 +61,32 @@ class Chef
|
|
41
61
|
|
42
62
|
# === Parameters
|
43
63
|
# args<Hash>: A number of required and optional arguments
|
44
|
-
# command<String>, <Array>: A complete command with options to execute or a command and options as an Array
|
64
|
+
# command<String>, <Array>: A complete command with options to execute or a command and options as an Array
|
45
65
|
# creates<String>: The absolute path to a file that prevents the command from running if it exists
|
46
66
|
# cwd<String>: Working directory to execute command in, defaults to Dir.tmpdir
|
47
67
|
# timeout<String>: How many seconds to wait for the command to execute before timing out
|
48
68
|
# returns<String>: The single exit value command is expected to return, otherwise causes an exception
|
49
69
|
# ignore_failure<Boolean>: Whether to raise an exception on failure, or just return the status
|
50
70
|
# output_on_failure<Boolean>: Return output in raised exception regardless of Log.level
|
51
|
-
#
|
71
|
+
#
|
52
72
|
# user<String>: The UID or user name of the user to execute the command as
|
53
73
|
# group<String>: The GID or group name of the group to execute the command as
|
54
74
|
# environment<Hash>: Pairs of environment variable names and their values to set before execution
|
55
75
|
#
|
56
76
|
# === Returns
|
57
77
|
# Returns the exit status of args[:command]
|
58
|
-
def run_command(args={})
|
78
|
+
def run_command(args={})
|
79
|
+
status, stdout, stderr = run_command_and_return_stdout_stderr(args)
|
80
|
+
|
81
|
+
status
|
82
|
+
end
|
83
|
+
|
84
|
+
# works same as above, except that it returns stdout and stderr
|
85
|
+
# requirement => platforms like solaris 9,10 has wierd issues where
|
86
|
+
# even in command failure the exit code is zero, so we need to lookup stderr.
|
87
|
+
def run_command_and_return_stdout_stderr(args={})
|
59
88
|
command_output = ""
|
60
|
-
|
89
|
+
|
61
90
|
args[:ignore_failure] ||= false
|
62
91
|
args[:output_on_failure] ||= false
|
63
92
|
|
@@ -68,28 +97,28 @@ class Chef
|
|
68
97
|
return false
|
69
98
|
end
|
70
99
|
end
|
71
|
-
|
100
|
+
|
72
101
|
status, stdout, stderr = output_of_command(args[:command], args)
|
73
102
|
command_output << "STDOUT: #{stdout}"
|
74
103
|
command_output << "STDERR: #{stderr}"
|
75
104
|
handle_command_failures(status, command_output, args)
|
76
|
-
|
77
|
-
status
|
105
|
+
|
106
|
+
return status, stdout, stderr
|
78
107
|
end
|
79
|
-
|
108
|
+
|
80
109
|
def output_of_command(command, args)
|
81
110
|
Chef::Log.debug("Executing #{command}")
|
82
111
|
stderr_string, stdout_string, status = "", "", nil
|
83
|
-
|
112
|
+
|
84
113
|
exec_processing_block = lambda do |pid, stdin, stdout, stderr|
|
85
114
|
stdout_string, stderr_string = stdout.string.chomp, stderr.string.chomp
|
86
115
|
end
|
87
|
-
|
116
|
+
|
88
117
|
args[:cwd] ||= Dir.tmpdir
|
89
118
|
unless ::File.directory?(args[:cwd])
|
90
119
|
raise Chef::Exceptions::Exec, "#{args[:cwd]} does not exist or is not a directory"
|
91
120
|
end
|
92
|
-
|
121
|
+
|
93
122
|
Dir.chdir(args[:cwd]) do
|
94
123
|
if args[:timeout]
|
95
124
|
begin
|
@@ -103,17 +132,17 @@ class Chef
|
|
103
132
|
else
|
104
133
|
status = popen4(command, args, &exec_processing_block)
|
105
134
|
end
|
106
|
-
|
135
|
+
|
107
136
|
Chef::Log.debug("---- Begin output of #{command} ----")
|
108
137
|
Chef::Log.debug("STDOUT: #{stdout_string}")
|
109
138
|
Chef::Log.debug("STDERR: #{stderr_string}")
|
110
139
|
Chef::Log.debug("---- End output of #{command} ----")
|
111
140
|
Chef::Log.debug("Ran #{command} returned #{status.exitstatus}")
|
112
141
|
end
|
113
|
-
|
142
|
+
|
114
143
|
return status, stdout_string, stderr_string
|
115
144
|
end
|
116
|
-
|
145
|
+
|
117
146
|
def handle_command_failures(status, command_output, opts={})
|
118
147
|
unless opts[:ignore_failure]
|
119
148
|
opts[:returns] ||= 0
|
@@ -129,7 +158,7 @@ class Chef
|
|
129
158
|
end
|
130
159
|
end
|
131
160
|
end
|
132
|
-
|
161
|
+
|
133
162
|
# Call #run_command but set LC_ALL to the system's current environment so it doesn't get changed to C.
|
134
163
|
#
|
135
164
|
# === Parameters
|