chef 11.6.2-x86-mingw32 → 11.8.0.rc.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
@@ -0,0 +1,163 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
3
|
+
# Copyright:: Copyright (c) 2013 Opscode, 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 'functional/resource/base'
|
20
|
+
require 'chef/mixin/shell_out'
|
21
|
+
|
22
|
+
# run this test only for following platforms.
|
23
|
+
include_flag = !(['ubuntu', 'centos', 'aix'].include?(ohai[:platform]))
|
24
|
+
|
25
|
+
describe Chef::Resource::Ifconfig, :requires_root, :external => include_flag do
|
26
|
+
include Chef::Mixin::ShellOut
|
27
|
+
|
28
|
+
let(:new_resource) do
|
29
|
+
new_resource = Chef::Resource::Ifconfig.new('10.10.0.1', run_context)
|
30
|
+
new_resource
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:provider) do
|
34
|
+
provider = new_resource.provider_for_action(new_resource.action)
|
35
|
+
provider
|
36
|
+
end
|
37
|
+
|
38
|
+
let(:current_resource) do
|
39
|
+
provider.load_current_resource
|
40
|
+
end
|
41
|
+
|
42
|
+
def lo_interface_for_test
|
43
|
+
# use loopback interface for tests
|
44
|
+
case ohai[:platform]
|
45
|
+
when "aix"
|
46
|
+
'lo0'
|
47
|
+
else
|
48
|
+
'lo'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# **Caution: any updates to core interfaces can be risky.
|
53
|
+
def en0_interface_for_test
|
54
|
+
case ohai[:platform]
|
55
|
+
when "aix"
|
56
|
+
'en0'
|
57
|
+
else
|
58
|
+
'eth0'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def network_interface_alias(interface)
|
63
|
+
case ohai[:platform]
|
64
|
+
when "aix"
|
65
|
+
interface
|
66
|
+
else
|
67
|
+
interface + ":10"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# platform specific test setup and validation routines
|
72
|
+
|
73
|
+
def setup_add_interface(resource)
|
74
|
+
resource.device network_interface_alias(en0_interface_for_test)
|
75
|
+
end
|
76
|
+
|
77
|
+
def setup_enable_interface(resource)
|
78
|
+
resource.device network_interface_alias(en0_interface_for_test)
|
79
|
+
end
|
80
|
+
|
81
|
+
def interface_should_exists(interface)
|
82
|
+
expect(shell_out("ifconfig #{@interface} | grep 10.10.0.1").exitstatus).to eq(0)
|
83
|
+
end
|
84
|
+
|
85
|
+
def interface_should_not_exists(interface)
|
86
|
+
expect(shell_out("ifconfig #{@interface} | grep 10.10.0.1").exitstatus).to eq(1)
|
87
|
+
end
|
88
|
+
|
89
|
+
def interface_persistence_should_exists(interface)
|
90
|
+
case ohai[:platform]
|
91
|
+
when "aix"
|
92
|
+
expect(shell_out("lsattr -E -l #{@interface} | grep 10.10.0.1").exitstatus).to eq(0)
|
93
|
+
else
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def interface_persistence_should_not_exists(interface)
|
98
|
+
case ohai[:platform]
|
99
|
+
when "aix"
|
100
|
+
expect(shell_out("lsattr -E -l #{@interface} | grep 10.10.0.1").exitstatus).to eq(1)
|
101
|
+
else
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# Actual tests
|
106
|
+
|
107
|
+
describe "#load_current_resource" do
|
108
|
+
it 'should load given interface' do
|
109
|
+
new_resource.device lo_interface_for_test
|
110
|
+
expect(current_resource.device).to eql(lo_interface_for_test)
|
111
|
+
expect(current_resource.inet_addr).to match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
exclude_test = ohai[:platform] != 'ubuntu'
|
116
|
+
describe "#action_add", :external => exclude_test do
|
117
|
+
after do
|
118
|
+
new_resource.run_action(:delete)
|
119
|
+
end
|
120
|
+
it "should add interface (vip)" do
|
121
|
+
setup_add_interface(new_resource)
|
122
|
+
new_resource.run_action(:add)
|
123
|
+
interface_should_exists(network_interface_alias(en0_interface_for_test))
|
124
|
+
interface_persistence_should_exists(network_interface_alias(en0_interface_for_test))
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
describe "#action_enable", :external => exclude_test do
|
129
|
+
after do
|
130
|
+
new_resource.run_action(:disable)
|
131
|
+
end
|
132
|
+
it "should enable interface (vip)" do
|
133
|
+
setup_enable_interface(new_resource)
|
134
|
+
new_resource.run_action(:enable)
|
135
|
+
interface_should_exists(network_interface_alias(en0_interface_for_test))
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "#action_disable", :external => exclude_test do
|
140
|
+
before do
|
141
|
+
setup_enable_interface(new_resource)
|
142
|
+
new_resource.run_action(:enable)
|
143
|
+
end
|
144
|
+
it "should disable interface (vip)" do
|
145
|
+
new_resource.run_action(:disable)
|
146
|
+
new_resource.should be_updated_by_last_action
|
147
|
+
interface_should_not_exists(network_interface_alias(en0_interface_for_test))
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "#action_delete", :external => exclude_test do
|
152
|
+
before do
|
153
|
+
setup_add_interface(new_resource)
|
154
|
+
new_resource.run_action(:add)
|
155
|
+
end
|
156
|
+
it "should delete interface (vip)" do
|
157
|
+
new_resource.run_action(:delete)
|
158
|
+
new_resource.should be_updated_by_last_action
|
159
|
+
interface_should_not_exists(network_interface_alias(en0_interface_for_test))
|
160
|
+
interface_persistence_should_not_exists(network_interface_alias(en0_interface_for_test))
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
@@ -340,7 +340,7 @@ describe Chef::Resource::Link do
|
|
340
340
|
it 'create errors out' do
|
341
341
|
if windows?
|
342
342
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EACCES)
|
343
|
-
elsif os_x? or solaris? or freebsd?
|
343
|
+
elsif os_x? or solaris? or freebsd? or aix?
|
344
344
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EPERM)
|
345
345
|
else
|
346
346
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EISDIR)
|
@@ -502,7 +502,7 @@ describe Chef::Resource::Link do
|
|
502
502
|
it 'errors out' do
|
503
503
|
if windows?
|
504
504
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EACCES)
|
505
|
-
elsif os_x? or solaris? or freebsd?
|
505
|
+
elsif os_x? or solaris? or freebsd? or aix?
|
506
506
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EPERM)
|
507
507
|
else
|
508
508
|
lambda { resource.run_action(:create) }.should raise_error(Errno::EISDIR)
|
@@ -554,7 +554,7 @@ describe Chef::Resource::Link do
|
|
554
554
|
resource.run_action(:create)
|
555
555
|
File.exists?(target_file).should be_true
|
556
556
|
# OS X gets angry about this sort of link. Bug in OS X, IMO.
|
557
|
-
pending('OS X/FreeBSD symlink? and readlink working on hard links to symlinks', :if => (os_x? or freebsd?)) do
|
557
|
+
pending('OS X/FreeBSD/AIX symlink? and readlink working on hard links to symlinks', :if => (os_x? or freebsd? or aix?)) do
|
558
558
|
symlink?(target_file).should be_true
|
559
559
|
readlink(target_file).should == canonicalize(@other_target)
|
560
560
|
end
|
@@ -571,7 +571,7 @@ describe Chef::Resource::Link do
|
|
571
571
|
end
|
572
572
|
context 'and the link does not yet exist' do
|
573
573
|
it 'links to the target file' do
|
574
|
-
pending('OS X/FreeBSD fails to create hardlinks to broken symlinks', :if => (os_x? or freebsd?)) do
|
574
|
+
pending('OS X/FreeBSD/AIX fails to create hardlinks to broken symlinks', :if => (os_x? or freebsd? or aix?)) do
|
575
575
|
resource.run_action(:create)
|
576
576
|
# Windows and Unix have different definitions of exists? here, and that's OK.
|
577
577
|
if windows?
|
@@ -0,0 +1,207 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Kaustubh Deorukhkar (<kaustubh@clogeny.com>)
|
3
|
+
# Copyright:: Copyright (c) 2013 Opscode, 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 'functional/resource/base'
|
20
|
+
require 'chef/mixin/shell_out'
|
21
|
+
require 'tmpdir'
|
22
|
+
|
23
|
+
# run this test only for following platforms.
|
24
|
+
include_flag = !(['ubuntu', 'centos', 'aix'].include?(ohai[:platform]))
|
25
|
+
|
26
|
+
describe Chef::Resource::Mount, :requires_root, :external => include_flag do
|
27
|
+
|
28
|
+
include Chef::Mixin::ShellOut
|
29
|
+
|
30
|
+
# Platform specific setup, cleanup and validation helpers.
|
31
|
+
|
32
|
+
def setup_device_for_mount
|
33
|
+
# use ramdisk for creating a test device for mount.
|
34
|
+
# This can cleaner if we have chef resource/provider for ramdisk.
|
35
|
+
case ohai[:platform]
|
36
|
+
when "aix"
|
37
|
+
ramdisk = shell_out!("mkramdisk 16M").stdout
|
38
|
+
|
39
|
+
# identify device, for /dev/rramdisk0 it is /dev/ramdisk0
|
40
|
+
device = ramdisk.tr("\n","").gsub(/\/rramdisk/, '/ramdisk')
|
41
|
+
|
42
|
+
fstype = "jfs2"
|
43
|
+
shell_out!("mkfs -V #{fstype} #{device}")
|
44
|
+
when "ubuntu", "centos"
|
45
|
+
device = "/dev/ram1"
|
46
|
+
shell_out("ls -1 /dev/ram*").stdout.each_line do |d|
|
47
|
+
if shell_out("mount | grep #{d}").exitstatus == "1"
|
48
|
+
# this device is not mounted, so use it.
|
49
|
+
device = d
|
50
|
+
break
|
51
|
+
end
|
52
|
+
end
|
53
|
+
fstype = "tmpfs"
|
54
|
+
shell_out!("mkfs -q #{device} 512")
|
55
|
+
else
|
56
|
+
end
|
57
|
+
[device, fstype]
|
58
|
+
end
|
59
|
+
|
60
|
+
def cleanup_device(device)
|
61
|
+
case ohai[:platform]
|
62
|
+
when "aix"
|
63
|
+
ramdisk = device.gsub(/\/ramdisk/, '/rramdisk')
|
64
|
+
shell_out("rmramdisk #{ramdisk}")
|
65
|
+
else
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def cleanup_mount(mount_point)
|
70
|
+
shell_out("umount #{mount_point}")
|
71
|
+
end
|
72
|
+
|
73
|
+
# platform specific validations.
|
74
|
+
def mount_should_exists(mount_point, device, fstype = nil, options = nil)
|
75
|
+
validation_cmd = "mount | grep #{mount_point} | grep #{device} "
|
76
|
+
validation_cmd << " | grep #{fstype} " unless fstype.nil?
|
77
|
+
validation_cmd << " | grep #{options.join(',')} " unless options.nil? || options.empty?
|
78
|
+
puts "validation_cmd = #{validation_cmd}"
|
79
|
+
expect(shell_out(validation_cmd).exitstatus).to eq(0)
|
80
|
+
end
|
81
|
+
|
82
|
+
def mount_should_not_exists(mount_point)
|
83
|
+
shell_out("mount").stdout.should_not include(mount_point)
|
84
|
+
end
|
85
|
+
|
86
|
+
def unix_mount_config_file
|
87
|
+
case ohai[:platform]
|
88
|
+
when 'aix'
|
89
|
+
mount_config = "/etc/filesystems"
|
90
|
+
else
|
91
|
+
mount_config = "/etc/fstab"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def mount_should_be_enabled(mount_point, device)
|
96
|
+
case ohai[:platform]
|
97
|
+
when 'aix'
|
98
|
+
expect(shell_out("cat #{unix_mount_config_file} | grep \"#{mount_point}:\" ").exitstatus).to eq(0)
|
99
|
+
else
|
100
|
+
expect(shell_out("cat #{unix_mount_config_file} | grep \"#{mount_point}\" | grep \"#{device}\" ").exitstatus).to eq(0)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def mount_should_be_disabled(mount_point)
|
105
|
+
shell_out("cat #{unix_mount_config_file}").stdout.should_not include("#{mount_point}:")
|
106
|
+
end
|
107
|
+
|
108
|
+
let(:new_resource) do
|
109
|
+
new_resource = Chef::Resource::Mount.new(@mount_point, run_context)
|
110
|
+
new_resource.device @device
|
111
|
+
new_resource.name @mount_point
|
112
|
+
new_resource.fstype @fstype
|
113
|
+
new_resource.options "log=NULL" if ohai[:platform] == 'aix'
|
114
|
+
new_resource
|
115
|
+
end
|
116
|
+
|
117
|
+
let(:provider) do
|
118
|
+
provider = new_resource.provider_for_action(new_resource.action)
|
119
|
+
provider
|
120
|
+
end
|
121
|
+
|
122
|
+
def current_resource
|
123
|
+
provider.load_current_resource
|
124
|
+
provider.current_resource
|
125
|
+
end
|
126
|
+
|
127
|
+
# Actual tests begin here.
|
128
|
+
before(:all) do
|
129
|
+
@device, @fstype = setup_device_for_mount
|
130
|
+
|
131
|
+
@mount_point = Dir.mktmpdir("testmount")
|
132
|
+
|
133
|
+
# Make sure all the potentially leaked mounts are cleared up
|
134
|
+
shell_out("mount").stdout.each_line do |line|
|
135
|
+
if line.include? "testmount"
|
136
|
+
line.split(" ").each do |section|
|
137
|
+
cleanup_mount(section) if section.include? "testmount"
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
after(:all) do
|
145
|
+
Dir.rmdir(@mount_point)
|
146
|
+
cleanup_device(@device)
|
147
|
+
end
|
148
|
+
|
149
|
+
after(:each) do
|
150
|
+
cleanup_mount(new_resource.mount_point)
|
151
|
+
end
|
152
|
+
|
153
|
+
describe "when the target state is a mounted filesystem" do
|
154
|
+
it "should mount the filesystem if it isn't mounted" do
|
155
|
+
current_resource.enabled.should be_false
|
156
|
+
current_resource.mounted.should be_false
|
157
|
+
new_resource.run_action(:mount)
|
158
|
+
new_resource.should be_updated
|
159
|
+
mount_should_exists(new_resource.mount_point, new_resource.device)
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "when the filesystem should be remounted and the resource supports remounting" do
|
165
|
+
it "should remount the filesystem if it is mounted" do
|
166
|
+
new_resource.run_action(:mount)
|
167
|
+
mount_should_exists(new_resource.mount_point, new_resource.device)
|
168
|
+
|
169
|
+
new_resource.supports[:remount] = true
|
170
|
+
new_resource.options "rw,log=NULL" if ohai[:platform] == 'aix'
|
171
|
+
new_resource.run_action(:remount)
|
172
|
+
|
173
|
+
mount_should_exists(new_resource.mount_point, new_resource.device, nil, (ohai[:platform] == 'aix') ? new_resource.options : nil)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
describe "when the target state is a unmounted filesystem" do
|
178
|
+
it "should umount the filesystem if it is mounted" do
|
179
|
+
new_resource.run_action(:mount)
|
180
|
+
mount_should_exists(new_resource.mount_point, new_resource.device)
|
181
|
+
|
182
|
+
new_resource.run_action(:umount)
|
183
|
+
mount_should_not_exists(new_resource.mount_point)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe "when enabling the filesystem to be mounted" do
|
188
|
+
after do
|
189
|
+
new_resource.run_action(:disable)
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should enable the mount if it isn't enable" do
|
193
|
+
new_resource.run_action(:mount)
|
194
|
+
new_resource.run_action(:enable)
|
195
|
+
mount_should_be_enabled(new_resource.mount_point, new_resource.device)
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
describe "when the target state is to disable the mount" do
|
200
|
+
it "should disable the mount if it is enabled" do
|
201
|
+
new_resource.run_action(:mount)
|
202
|
+
new_resource.run_action(:enable)
|
203
|
+
new_resource.run_action(:disable)
|
204
|
+
mount_should_be_disabled(new_resource.mount_point)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
@@ -95,15 +95,6 @@ metadata = { :unix_only => true,
|
|
95
95
|
describe Chef::Resource::Package, metadata do
|
96
96
|
include Chef::Mixin::ShellOut
|
97
97
|
|
98
|
-
def chef_test_dpkg_installed?
|
99
|
-
shell_out("dpkg -l chef-integration-test").status.success?
|
100
|
-
end
|
101
|
-
|
102
|
-
def dpkg_should_be_installed(pkg_name)
|
103
|
-
shell_out!("dpkg -l #{pkg_name}")
|
104
|
-
end
|
105
|
-
|
106
|
-
|
107
98
|
context "with a remote package source" do
|
108
99
|
|
109
100
|
include AptServer
|
@@ -166,11 +157,6 @@ describe Chef::Resource::Package, metadata do
|
|
166
157
|
base_resource
|
167
158
|
end
|
168
159
|
|
169
|
-
# it "results in a usable apt server" do
|
170
|
-
# shell_out!("apt-get install -q -y --force-yes chef-integration-test ", :env => { "DEBIAN_FRONTEND" => "noninteractive" })
|
171
|
-
# shell_out!("dpkg -l chef-integration-test")
|
172
|
-
# end
|
173
|
-
|
174
160
|
context "when the package is not yet installed" do
|
175
161
|
it "installs the package with action :install" do
|
176
162
|
package_resource.run_action(:install)
|
@@ -206,7 +192,7 @@ describe Chef::Resource::Package, metadata do
|
|
206
192
|
it "raises a reasonable error for action :install" do
|
207
193
|
expect do
|
208
194
|
package_resource.run_action(:install)
|
209
|
-
end.to raise_error(
|
195
|
+
end.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
210
196
|
end
|
211
197
|
|
212
198
|
end
|
@@ -216,7 +202,6 @@ describe Chef::Resource::Package, metadata do
|
|
216
202
|
let(:file_cache_path) { Dir.mktmpdir }
|
217
203
|
|
218
204
|
before do
|
219
|
-
@old_config = Chef::Config.configuration.dup
|
220
205
|
Chef::Config[:file_cache_path] = file_cache_path
|
221
206
|
debconf_reset = 'chef-integration-test chef-integration-test/sample-var string "INVALID"'
|
222
207
|
shell_out!("echo #{debconf_reset} |debconf-set-selections")
|
@@ -224,7 +209,6 @@ describe Chef::Resource::Package, metadata do
|
|
224
209
|
|
225
210
|
after do
|
226
211
|
FileUtils.rm_rf(file_cache_path)
|
227
|
-
Chef::Config.configuration = @old_config
|
228
212
|
end
|
229
213
|
|
230
214
|
context "with a preseed file" do
|
@@ -267,6 +251,10 @@ describe Chef::Resource::Package, metadata do
|
|
267
251
|
|
268
252
|
context "with a preseed template" do
|
269
253
|
|
254
|
+
# NOTE: in the fixtures, there is also a cookbook_file named
|
255
|
+
# "preseed-template.seed". This implicitly tests that templates are
|
256
|
+
# preferred over cookbook_files when both are present.
|
257
|
+
|
270
258
|
let(:package_resource) do
|
271
259
|
r = base_resource
|
272
260
|
r.cookbook_name = "preseed"
|
@@ -286,8 +274,98 @@ describe Chef::Resource::Package, metadata do
|
|
286
274
|
end
|
287
275
|
|
288
276
|
end
|
277
|
+
end # installing w/ preseed
|
278
|
+
end # when package not installed
|
289
279
|
|
280
|
+
context "and the desired version of the package is installed" do
|
281
|
+
|
282
|
+
before do
|
283
|
+
v_1_1_package = File.expand_path("apt/chef-integration-test_1.1-1_amd64.deb", CHEF_SPEC_DATA)
|
284
|
+
shell_out!("dpkg -i #{v_1_1_package}")
|
285
|
+
end
|
286
|
+
|
287
|
+
it "does nothing for action :install" do
|
288
|
+
package_resource.run_action(:install)
|
289
|
+
shell_out!("dpkg -l chef-integration-test", :returns => [0])
|
290
|
+
package_resource.should_not be_updated_by_last_action
|
290
291
|
end
|
292
|
+
|
293
|
+
it "does nothing for action :upgrade" do
|
294
|
+
package_resource.run_action(:upgrade)
|
295
|
+
shell_out!("dpkg -l chef-integration-test", :returns => [0])
|
296
|
+
package_resource.should_not be_updated_by_last_action
|
297
|
+
end
|
298
|
+
|
299
|
+
# Verify that the package is removed by running `dpkg -l PACKAGE`
|
300
|
+
# On Ubuntu 12.10 and newer, the command exits 1.
|
301
|
+
#
|
302
|
+
# On Ubuntu 12.04 and older, the `dpkg -l` command will exit 0 and
|
303
|
+
# display a package status message like this:
|
304
|
+
#
|
305
|
+
# Desired=Unknown/Install/Remove/Purge/Hold
|
306
|
+
# | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|
307
|
+
# |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
|
308
|
+
# ||/ Name Version Description
|
309
|
+
# +++-=================================-=========================================-============================================
|
310
|
+
# un chef-integration-test <none> (no description available)
|
311
|
+
def pkg_should_be_removed
|
312
|
+
# will raise if exit code != 0,1
|
313
|
+
pkg_check = shell_out!("dpkg -l chef-integration-test", :returns => [0,1])
|
314
|
+
|
315
|
+
if pkg_check.exitstatus == 0
|
316
|
+
pkg_check.stdout.should =~ /un[\s]+chef-integration-test/
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
|
321
|
+
it "removes the package for action :remove" do
|
322
|
+
package_resource.run_action(:remove)
|
323
|
+
pkg_should_be_removed
|
324
|
+
package_resource.should be_updated_by_last_action
|
325
|
+
end
|
326
|
+
|
327
|
+
it "removes the package for action :purge" do
|
328
|
+
package_resource.run_action(:purge)
|
329
|
+
pkg_should_be_removed
|
330
|
+
package_resource.should be_updated_by_last_action
|
331
|
+
end
|
332
|
+
|
333
|
+
end
|
334
|
+
|
335
|
+
context "and an older version of the package is installed" do
|
336
|
+
before do
|
337
|
+
v_1_0_package = File.expand_path("apt/chef-integration-test_1.0-1_amd64.deb", CHEF_SPEC_DATA)
|
338
|
+
shell_out!("dpkg -i #{v_1_0_package}")
|
339
|
+
end
|
340
|
+
|
341
|
+
it "does nothing for action :install" do
|
342
|
+
package_resource.run_action(:install)
|
343
|
+
shell_out!("dpkg -l chef-integration-test", :returns => [0])
|
344
|
+
package_resource.should_not be_updated_by_last_action
|
345
|
+
end
|
346
|
+
|
347
|
+
it "upgrades the package for action :upgrade" do
|
348
|
+
package_resource.run_action(:upgrade)
|
349
|
+
dpkg_l = shell_out!("dpkg -l chef-integration-test", :returns => [0])
|
350
|
+
dpkg_l.stdout.should =~ /chef\-integration\-test[\s]+1\.1\-1/
|
351
|
+
package_resource.should be_updated_by_last_action
|
352
|
+
end
|
353
|
+
|
354
|
+
context "and the resource specifies the new version" do
|
355
|
+
let(:package_resource) do
|
356
|
+
r = base_resource
|
357
|
+
r.version("1.1-1")
|
358
|
+
r
|
359
|
+
end
|
360
|
+
|
361
|
+
it "upgrades the package for action :install" do
|
362
|
+
package_resource.run_action(:install)
|
363
|
+
dpkg_l = shell_out!("dpkg -l chef-integration-test", :returns => [0])
|
364
|
+
dpkg_l.stdout.should =~ /chef\-integration\-test[\s]+1\.1\-1/
|
365
|
+
package_resource.should be_updated_by_last_action
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
291
369
|
end
|
292
370
|
|
293
371
|
end
|