chef 10.34.6-x86-mingw32 → 11.6.2-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.
- checksums.yaml +5 -13
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +18 -1
- data/bin/chef-apply +25 -0
- data/bin/chef-service-manager +37 -0
- data/bin/chef-shell +34 -0
- data/bin/shef +6 -5
- data/distro/common/html/chef-client.8.html +4 -4
- data/distro/common/html/chef-expander.8.html +4 -4
- data/distro/common/html/chef-expanderctl.8.html +4 -4
- data/distro/common/html/chef-server-webui.8.html +4 -4
- data/distro/common/html/chef-server.8.html +4 -4
- data/distro/common/html/{shef.1.html → chef-shell.1.html} +49 -46
- data/distro/common/html/chef-solo.8.html +4 -4
- data/distro/common/html/chef-solr.8.html +5 -5
- data/distro/common/html/knife-bootstrap.1.html +4 -4
- data/distro/common/html/knife-client.1.html +4 -4
- data/distro/common/html/knife-configure.1.html +4 -4
- data/distro/common/html/knife-cookbook-site.1.html +4 -4
- data/distro/common/html/knife-cookbook.1.html +4 -4
- data/distro/common/html/knife-data-bag.1.html +4 -4
- data/distro/common/html/knife-environment.1.html +4 -4
- data/distro/common/html/knife-exec.1.html +9 -9
- data/distro/common/html/knife-index.1.html +4 -4
- data/distro/common/html/knife-node.1.html +4 -4
- data/distro/common/html/knife-role.1.html +4 -4
- data/distro/common/html/knife-search.1.html +4 -4
- data/distro/common/html/knife-ssh.1.html +4 -4
- data/distro/common/html/knife-status.1.html +4 -4
- data/distro/common/html/knife-tag.1.html +4 -4
- data/distro/common/html/knife.1.html +8 -13
- data/distro/common/man/man1/{shef.1 → chef-shell.1} +21 -57
- data/distro/common/man/man1/knife-bootstrap.1 +1 -1
- data/distro/common/man/man1/knife-client.1 +0 -99
- data/distro/common/man/man1/knife-configure.1 +1 -1
- data/distro/common/man/man1/knife-cookbook-site.1 +1 -1
- data/distro/common/man/man1/knife-cookbook.1 +1 -1
- data/distro/common/man/man1/knife-data-bag.1 +1 -1
- data/distro/common/man/man1/knife-environment.1 +0 -168
- data/distro/common/man/man1/knife-exec.1 +4 -7
- data/distro/common/man/man1/knife-index.1 +1 -1
- data/distro/common/man/man1/knife-node.1 +1 -1
- data/distro/common/man/man1/knife-role.1 +1 -1
- data/distro/common/man/man1/knife-search.1 +1 -1
- data/distro/common/man/man1/knife-ssh.1 +1 -1
- data/distro/common/man/man1/knife-status.1 +1 -1
- data/distro/common/man/man1/knife-tag.1 +1 -1
- data/distro/common/man/man1/knife.1 +3 -6
- data/distro/common/man/man8/chef-client.8 +1 -1
- data/distro/common/man/man8/chef-expander.8 +1 -1
- data/distro/common/man/man8/chef-expanderctl.8 +1 -1
- data/distro/common/man/man8/chef-server-webui.8 +1 -1
- data/distro/common/man/man8/chef-server.8 +1 -1
- data/distro/common/man/man8/chef-solo.8 +1 -1
- data/distro/common/man/man8/chef-solr.8 +1 -1
- data/distro/common/markdown/man1/{shef.mkd → chef-shell.mkd} +49 -43
- data/distro/common/markdown/man1/knife-exec.mkd +11 -6
- data/distro/common/markdown/man1/knife.mkd +4 -9
- data/distro/debian/etc/default/chef-client +0 -1
- data/distro/debian/etc/init.d/chef-client +6 -4
- data/distro/windows/service_manager.rb +2 -146
- data/lib/chef.rb +3 -6
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +68 -18
- data/lib/chef/application/apply.rb +162 -0
- data/lib/chef/application/client.rb +37 -22
- data/lib/chef/application/knife.rb +2 -4
- data/lib/chef/application/solo.rb +27 -13
- data/lib/chef/application/windows_service.rb +114 -54
- data/lib/chef/application/windows_service_manager.rb +179 -0
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +9 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +371 -0
- data/lib/chef/chef_fs/command_line.rb +284 -0
- data/lib/chef/chef_fs/config.rb +205 -0
- data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +26 -0
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +29 -0
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +38 -0
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +56 -0
- data/lib/chef/chef_fs/data_handler/data_handler_base.rb +128 -0
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +51 -0
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +36 -0
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +40 -0
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +27 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +426 -0
- data/lib/chef/chef_fs/file_system/acl_dir.rb +64 -0
- data/lib/chef/chef_fs/file_system/acl_entry.rb +58 -0
- data/lib/chef/chef_fs/file_system/acls_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/already_exists_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +47 -0
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +180 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +85 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +71 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_data_bags_dir.rb +36 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +60 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +121 -0
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +110 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +223 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +85 -0
- data/lib/chef/chef_fs/file_system/cookbook_frozen_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +41 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +149 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +69 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +72 -0
- data/lib/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +36 -0
- data/lib/chef/chef_fs/file_system/environments_dir.rb +60 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/chef_fs/file_system/file_system_error.rb +33 -0
- data/lib/chef/chef_fs/file_system/file_system_root_dir.rb +31 -0
- data/lib/chef/chef_fs/file_system/memory_dir.rb +52 -0
- data/lib/chef/chef_fs/file_system/memory_file.rb +17 -0
- data/lib/chef/chef_fs/file_system/memory_root.rb +21 -0
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +48 -0
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +55 -0
- data/lib/chef/chef_fs/file_system/nonexistent_fs_object.rb +36 -0
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/operation_failed_error.rb +34 -0
- data/lib/chef/chef_fs/file_system/operation_not_allowed_error.rb +48 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +113 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +177 -0
- data/lib/chef/chef_fs/knife.rb +116 -0
- data/lib/chef/chef_fs/parallelizer.rb +129 -0
- data/lib/chef/chef_fs/path_utils.rb +90 -0
- data/lib/chef/chef_fs/raw_request.rb +79 -0
- data/lib/chef/client.rb +111 -34
- data/lib/chef/config.rb +111 -102
- data/lib/chef/cookbook/chefignore.rb +2 -1
- data/lib/chef/cookbook/metadata.rb +0 -2
- data/lib/chef/cookbook/syntax_check.rb +76 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +16 -9
- data/lib/chef/cookbook_version.rb +2 -410
- data/lib/chef/daemon.rb +24 -19
- data/lib/chef/data_bag.rb +20 -104
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/deprecation/mixin/template.rb +49 -0
- data/lib/chef/deprecation/provider/cookbook_file.rb +55 -0
- data/lib/chef/deprecation/provider/file.rb +197 -0
- data/lib/chef/deprecation/provider/remote_file.rb +86 -0
- data/lib/chef/deprecation/provider/template.rb +63 -0
- data/lib/chef/deprecation/warnings.rb +38 -0
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +71 -0
- data/lib/chef/dsl/include_attribute.rb +63 -0
- data/lib/chef/dsl/include_recipe.rb +45 -0
- data/lib/chef/dsl/platform_introspection.rb +218 -0
- data/lib/chef/dsl/recipe.rb +87 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +171 -24
- data/lib/chef/environment.rb +39 -179
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +107 -8
- data/lib/chef/file_access_control/unix.rb +64 -7
- data/lib/chef/file_access_control/windows.rb +22 -11
- data/lib/chef/file_content_management/content_base.rb +56 -0
- data/lib/chef/file_content_management/deploy.rb +38 -0
- data/lib/chef/file_content_management/deploy/cp.rb +48 -0
- data/lib/chef/file_content_management/deploy/mv_unix.rb +77 -0
- data/lib/chef/file_content_management/deploy/mv_windows.rb +95 -0
- data/lib/chef/file_content_management/tempfile.rb +61 -0
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_descriptor.rb +5 -4
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +23 -3
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +8 -0
- data/lib/chef/json_compat.rb +15 -14
- data/lib/chef/knife.rb +99 -41
- data/lib/chef/knife/bootstrap.rb +46 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/centos5-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/chef-full.erb +1 -1
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +1 -1
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +1 -1
- data/lib/chef/knife/client_show.rb +2 -5
- data/lib/chef/knife/configure.rb +19 -17
- data/lib/chef/knife/cookbook_create.rb +6 -5
- data/lib/chef/knife/cookbook_download.rb +13 -5
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_site_share.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +4 -2
- data/lib/chef/knife/cookbook_upload.rb +4 -4
- data/lib/chef/knife/core/bootstrap_context.rb +11 -5
- data/lib/chef/knife/core/generic_presenter.rb +42 -13
- data/lib/chef/knife/core/node_editor.rb +36 -16
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +43 -12
- data/lib/chef/knife/core/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +34 -13
- data/lib/chef/knife/delete.rb +106 -0
- data/lib/chef/knife/deps.rb +139 -0
- data/lib/chef/knife/diff.rb +63 -0
- data/lib/chef/knife/download.rb +63 -0
- data/lib/chef/knife/edit.rb +76 -0
- data/lib/chef/knife/environment_show.rb +2 -0
- data/lib/chef/knife/exec.rb +5 -5
- data/lib/chef/knife/help_topics.rb +1 -1
- data/lib/chef/knife/index_rebuild.rb +91 -7
- data/lib/chef/knife/list.rb +153 -0
- data/lib/chef/knife/node_run_list_set.rb +66 -0
- data/lib/chef/knife/node_show.rb +1 -7
- data/lib/chef/knife/raw.rb +64 -0
- data/lib/chef/knife/role_show.rb +2 -4
- data/lib/chef/knife/search.rb +45 -28
- data/lib/chef/knife/show.rb +55 -0
- data/lib/chef/knife/ssh.rb +14 -2
- data/lib/chef/knife/upload.rb +69 -0
- data/lib/chef/knife/user_create.rb +93 -0
- data/lib/chef/knife/user_delete.rb +46 -0
- data/lib/chef/knife/user_edit.rb +53 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → knife/user_list.rb} +21 -9
- data/lib/chef/knife/user_reregister.rb +59 -0
- data/lib/chef/knife/user_show.rb +49 -0
- data/lib/chef/knife/xargs.rb +265 -0
- data/lib/chef/log.rb +2 -2
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +78 -194
- data/lib/chef/mixin/deprecation.rb +35 -0
- data/lib/chef/mixin/file_class.rb +0 -9
- data/lib/chef/mixin/language.rb +22 -223
- data/lib/chef/mixin/language_include_attribute.rb +10 -36
- data/lib/chef/mixin/language_include_recipe.rb +7 -33
- data/lib/chef/mixin/params_validate.rb +0 -3
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +10 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +156 -26
- data/lib/chef/mixin/windows_architecture_helper.rb +91 -0
- data/lib/chef/mixins.rb +1 -5
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/monkey_patches/file.rb} +6 -14
- data/lib/chef/monkey_patches/net-ssh-multi.rb +140 -0
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/monkey_patches/securerandom.rb +44 -0
- data/lib/chef/monologger.rb +93 -0
- data/lib/chef/node.rb +139 -308
- data/lib/chef/node/attribute.rb +367 -473
- data/lib/chef/node/attribute_collections.rb +206 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +4 -496
- data/lib/chef/platform/provider_mapping.rb +529 -0
- data/lib/chef/{mixin/check_helper.rb → platform/query_helpers.rb} +20 -9
- data/lib/chef/provider.rb +14 -58
- data/lib/chef/provider/batch.rb +35 -0
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +11 -80
- data/lib/chef/provider/cookbook_file/content.rb +49 -0
- data/lib/chef/provider/deploy.rb +26 -21
- data/lib/chef/provider/deploy/revision.rb +27 -0
- data/lib/chef/provider/directory.rb +12 -18
- data/lib/chef/provider/execute.rb +22 -5
- data/lib/chef/provider/file.rb +297 -248
- data/lib/chef/provider/file/content.rb +39 -0
- data/lib/chef/provider/git.rb +76 -43
- data/lib/chef/provider/group.rb +31 -51
- data/lib/chef/provider/group/dscl.rb +13 -53
- data/lib/chef/provider/group/gpasswd.rb +19 -14
- data/lib/chef/provider/group/groupadd.rb +1 -41
- data/lib/chef/provider/group/groupmod.rb +36 -46
- data/lib/chef/provider/group/pw.rb +16 -59
- data/lib/chef/provider/group/suse.rb +13 -16
- data/lib/chef/provider/group/usermod.rb +18 -40
- data/lib/chef/provider/group/windows.rb +6 -13
- data/lib/chef/provider/http_request.rb +25 -42
- data/lib/chef/provider/ifconfig.rb +25 -35
- data/lib/chef/provider/ifconfig/debian.rb +71 -0
- data/lib/chef/provider/ifconfig/redhat.rb +47 -0
- data/lib/chef/provider/link.rb +12 -3
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/mount.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +8 -3
- data/lib/chef/provider/mount/windows.rb +4 -1
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +4 -1
- data/lib/chef/provider/package/smartos.rb +47 -36
- data/lib/chef/provider/package/zypper.rb +45 -55
- data/lib/chef/provider/powershell_script.rb +77 -0
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +6 -5
- data/lib/chef/provider/remote_file.rb +13 -100
- data/lib/chef/provider/remote_file/cache_control_data.rb +165 -0
- data/lib/chef/provider/remote_file/content.rb +75 -0
- data/lib/chef/provider/remote_file/fetcher.rb +43 -0
- data/lib/chef/provider/remote_file/ftp.rb +183 -0
- data/lib/chef/provider/remote_file/http.rb +124 -0
- data/lib/chef/provider/remote_file/local_file.rb +47 -0
- data/lib/chef/provider/route.rb +6 -2
- data/lib/chef/provider/ruby_block.rb +5 -2
- data/lib/chef/provider/script.rb +14 -2
- data/lib/chef/provider/service.rb +15 -0
- data/lib/chef/provider/service/init.rb +9 -7
- data/lib/chef/provider/service/macosx.rb +29 -81
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +6 -5
- data/lib/chef/provider/template.rb +16 -81
- data/lib/chef/provider/template/content.rb +61 -0
- data/lib/chef/provider/template_finder.rb +61 -0
- data/lib/chef/provider/user.rb +0 -1
- data/lib/chef/provider/user/dscl.rb +175 -568
- data/lib/chef/provider/user/useradd.rb +50 -54
- data/lib/chef/provider/windows_script.rb +73 -0
- data/lib/chef/providers.rb +18 -1
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +52 -146
- data/lib/chef/resource/{whyrun_safe_ruby_block.rb → batch.rb} +10 -10
- data/lib/chef/resource/conditional.rb +4 -0
- data/lib/chef/resource/conditional_action_not_nothing.rb +48 -0
- data/lib/chef/resource/file.rb +31 -3
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/link.rb +17 -0
- data/lib/chef/resource/lwrp_base.rb +132 -0
- data/lib/chef/resource/mount.rb +39 -13
- data/lib/chef/resource/powershell_script.rb +31 -0
- data/lib/chef/resource/registry_key.rb +86 -0
- data/lib/chef/resource/remote_directory.rb +6 -5
- data/lib/chef/resource/remote_file.rb +62 -25
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/template.rb +145 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource/windows_script.rb +62 -0
- data/lib/chef/resource_collection.rb +69 -31
- data/lib/chef/resource_reporter.rb +81 -52
- data/lib/chef/resources.rb +4 -1
- data/lib/chef/rest.rb +55 -127
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +7 -8
- data/lib/chef/role.rb +1 -97
- data/lib/chef/run_context.rb +108 -130
- data/lib/chef/run_context/cookbook_compiler.rb +280 -0
- data/lib/chef/run_list.rb +0 -2
- data/lib/chef/run_list/run_list_expansion.rb +1 -16
- data/lib/chef/run_lock.rb +96 -0
- data/lib/chef/runner.rb +28 -6
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +8 -5
- data/lib/chef/search/query.rb +2 -2
- data/lib/chef/shef/ext.rb +3 -575
- data/lib/chef/{shef.rb → shell.rb} +35 -40
- data/lib/chef/shell/ext.rb +593 -0
- data/lib/chef/{shef → shell}/model_wrapper.rb +3 -3
- data/lib/chef/{shef/shef_rest.rb → shell/shell_rest.rb} +4 -4
- data/lib/chef/{shef/shef_session.rb → shell/shell_session.rb} +15 -13
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/user.rb +182 -0
- data/lib/chef/util/backup.rb +84 -0
- data/lib/chef/util/diff.rb +145 -0
- data/lib/chef/util/file_edit.rb +1 -1
- data/lib/chef/util/selinux.rb +100 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/util/windows/net_user.rb +14 -1
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version/platform.rb +42 -0
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +6 -5
- data/lib/chef/{index_queue.rb → version_constraint/platform.rb} +11 -14
- data/lib/chef/win32/api/file.rb +8 -2
- data/lib/chef/win32/api/security.rb +45 -1
- data/lib/chef/win32/registry.rb +382 -0
- data/lib/chef/win32/security.rb +19 -0
- data/lib/chef/win32/version.rb +25 -8
- data/spec/data/apt/chef-integration-test-1.0/debian/changelog +5 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.0/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/changelog +11 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/compat +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/control +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/copyright +34 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/files +1 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +13 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/source/format +1 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.0.orig.tar.gz +0 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.changes +22 -0
- data/spec/data/apt/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/apt/chef-integration-test_1.1.orig.tar.gz +0 -0
- data/spec/data/apt/var/www/apt/conf/distributions +7 -0
- data/spec/data/apt/var/www/apt/conf/incoming +4 -0
- data/spec/data/apt/var/www/apt/conf/pulls +3 -0
- data/spec/data/apt/var/www/apt/db/checksums.db +0 -0
- data/spec/data/apt/var/www/apt/db/contents.cache.db +0 -0
- data/spec/data/apt/var/www/apt/db/packages.db +0 -0
- data/spec/data/apt/var/www/apt/db/references.db +0 -0
- data/spec/data/apt/var/www/apt/db/release.caches.db +0 -0
- data/spec/data/apt/var/www/apt/db/version +4 -0
- data/spec/data/apt/var/www/apt/dists/sid/Release +19 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages +16 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Packages.gz +0 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-amd64/Release +5 -0
- data/spec/data/apt/var/www/apt/dists/sid/main/binary-i386/Packages +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.0-1_amd64.deb +0 -0
- data/spec/data/apt/var/www/apt/pool/main/c/chef-integration-test/chef-integration-test_1.1-1_amd64.deb +0 -0
- data/spec/data/bootstrap/encrypted_data_bag_secret +1 -0
- data/spec/data/bootstrap/secret.erb +9 -0
- data/spec/data/cookbooks/ignorken/recipes/default.rb +1 -0
- data/spec/data/cookbooks/ignorken/recipes/ignoreme.rb +2 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/helper_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/helpers_via_partial_test.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/no_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +4 -0
- data/spec/data/cookbooks/preseed/files/default/preseed-file.seed +1 -0
- data/spec/data/cookbooks/preseed/templates/default/preseed-template.seed +1 -0
- data/spec/data/file-providers-method-snapshot-chef-11-4.json +127 -0
- data/spec/data/git_bundles/example-repo.gitbundle +0 -0
- data/spec/data/knife_subcommand/test_yourself.rb +8 -0
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
- data/spec/data/nodes/default.rb +3 -3
- data/spec/data/nodes/test.example.com.rb +3 -3
- data/spec/data/nodes/test.rb +3 -3
- data/spec/data/null_config.rb +1 -0
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/remote_file/nyan_cat.png.gz +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
- data/spec/data/shef-config.rb +10 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +238 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +3 -3
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +101 -0
- data/spec/functional/resource/batch_spec.rb +64 -0
- data/spec/functional/resource/cookbook_file_spec.rb +15 -9
- data/spec/functional/resource/deploy_revision_spec.rb +180 -0
- data/spec/functional/resource/directory_spec.rb +5 -1
- data/spec/functional/resource/file_spec.rb +71 -21
- data/spec/functional/resource/git_spec.rb +259 -0
- data/spec/functional/resource/link_spec.rb +424 -388
- data/spec/functional/resource/package_spec.rb +297 -0
- data/spec/functional/resource/powershell_spec.rb +188 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +143 -37
- data/spec/functional/resource/remote_file_spec.rb +99 -13
- data/spec/functional/resource/template_spec.rb +180 -3
- data/spec/functional/resource/user_spec.rb +547 -0
- data/spec/functional/run_lock_spec.rb +243 -0
- data/spec/functional/shell_spec.rb +102 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- data/spec/functional/win32/service_manager_spec.rb +269 -0
- data/spec/functional/win32/versions_spec.rb +78 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +805 -0
- data/spec/integration/knife/chef_repository_file_system_spec.rb +276 -0
- data/spec/integration/knife/chefignore_spec.rb +271 -0
- data/spec/integration/knife/delete_spec.rb +944 -0
- data/spec/integration/knife/deps_spec.rb +648 -0
- data/spec/integration/knife/diff_spec.rb +536 -0
- data/spec/integration/knife/download_spec.rb +962 -0
- data/spec/integration/knife/list_spec.rb +633 -0
- data/spec/integration/knife/raw_spec.rb +166 -0
- data/spec/integration/knife/redirection_spec.rb +57 -0
- data/spec/integration/knife/show_spec.rb +158 -0
- data/spec/integration/knife/upload_spec.rb +1060 -0
- data/spec/integration/solo/solo_spec.rb +41 -0
- data/spec/spec_helper.rb +49 -13
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +33 -3
- data/spec/support/lib/chef/resource/cat.rb +3 -5
- data/spec/support/lib/chef/resource/one_two_three_four.rb +8 -10
- data/spec/support/lib/chef/resource/zen_master.rb +8 -10
- data/spec/support/platform_helpers.rb +46 -13
- data/spec/support/platforms/win32/spec_service.rb +59 -0
- data/spec/support/shared/functional/diff_disabled.rb +10 -0
- data/spec/support/shared/functional/directory_resource.rb +129 -38
- data/spec/support/shared/functional/file_resource.rb +837 -71
- data/spec/support/shared/functional/securable_resource.rb +189 -58
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +385 -0
- data/spec/support/shared/integration/integration_helper.rb +166 -0
- data/spec/support/shared/integration/knife_support.rb +171 -0
- data/spec/support/shared/unit/execute_resource.rb +125 -0
- data/spec/support/shared/unit/file_system_support.rb +70 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/support/shared/unit/provider/file.rb +609 -0
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +407 -0
- data/spec/support/shared/unit/script_resource.rb +52 -0
- data/spec/support/shared/unit/windows_script_resource.rb +48 -0
- data/spec/tiny_server.rb +13 -11
- data/spec/unit/api_client/registration_spec.rb +172 -0
- data/spec/unit/api_client_spec.rb +78 -156
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/client_spec.rb +16 -14
- data/spec/unit/application/knife_spec.rb +17 -0
- data/spec/unit/application/solo_spec.rb +1 -1
- data/spec/unit/application_spec.rb +113 -3
- data/spec/unit/checksum/storage/filesystem_spec.rb +1 -1
- data/spec/unit/chef_fs/diff_spec.rb +328 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
- data/spec/unit/chef_fs/file_system_spec.rb +135 -0
- data/spec/unit/client_spec.rb +195 -23
- data/spec/unit/config_spec.rb +102 -51
- data/spec/unit/cookbook/syntax_check_spec.rb +75 -111
- data/spec/unit/cookbook_loader_spec.rb +154 -91
- data/spec/unit/cookbook_manifest_spec.rb +81 -81
- data/spec/unit/cookbook_spec.rb +3 -20
- data/spec/unit/cookbook_version_spec.rb +23 -122
- data/spec/unit/daemon_spec.rb +24 -19
- data/spec/unit/data_bag_spec.rb +13 -4
- data/spec/unit/deprecation_spec.rb +86 -0
- data/spec/unit/digester_spec.rb +50 -0
- data/spec/unit/dsl/data_query_spec.rb +66 -0
- data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
- data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +197 -157
- data/spec/unit/environment_spec.rb +94 -126
- data/spec/unit/exceptions_spec.rb +8 -4
- data/spec/unit/file_access_control_spec.rb +21 -1
- data/spec/unit/file_content_management/deploy/cp_spec.rb +46 -0
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +103 -0
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +179 -0
- data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +38 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +6 -5
- data/spec/unit/json_compat_spec.rb +8 -0
- data/spec/unit/knife/bootstrap_spec.rb +130 -29
- data/spec/unit/knife/configure_spec.rb +64 -45
- data/spec/unit/knife/cookbook_download_spec.rb +24 -3
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +39 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +79 -62
- data/spec/unit/knife/core/subcommand_loader_spec.rb +20 -0
- data/spec/unit/knife/core/ui_spec.rb +196 -124
- data/spec/unit/knife/data_bag_create_spec.rb +9 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +4 -6
- data/spec/unit/knife/data_bag_show_spec.rb +11 -4
- data/spec/unit/knife/index_rebuild_spec.rb +96 -33
- data/spec/unit/knife/knife_help.rb +7 -7
- data/spec/unit/knife/node_edit_spec.rb +6 -33
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +140 -0
- data/spec/unit/knife/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife/user_create_spec.rb +86 -0
- data/spec/unit/knife/user_delete_spec.rb +39 -0
- data/spec/unit/knife/user_edit_spec.rb +42 -0
- data/spec/unit/knife/user_list_spec.rb +32 -0
- data/spec/unit/knife/user_reregister_spec.rb +53 -0
- data/spec/unit/knife/user_show_spec.rb +41 -0
- data/spec/unit/knife_spec.rb +74 -0
- data/spec/unit/lwrp_spec.rb +102 -60
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +130 -791
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +7 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +145 -14
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +83 -0
- data/spec/unit/node/attribute_spec.rb +273 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +418 -370
- data/spec/unit/platform_spec.rb +21 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file/content_spec.rb +40 -0
- data/spec/unit/provider/cookbook_file_spec.rb +26 -187
- data/spec/unit/provider/cron/solaris_spec.rb +1 -1
- data/spec/unit/provider/deploy/revision_spec.rb +19 -11
- data/spec/unit/provider/deploy_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +99 -67
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/execute_spec.rb +27 -1
- data/spec/unit/provider/file/content_spec.rb +101 -0
- data/spec/unit/provider/file_spec.rb +25 -475
- data/spec/unit/provider/git_spec.rb +224 -28
- data/spec/unit/provider/group/dscl_spec.rb +0 -36
- data/spec/unit/provider/group/gpasswd_spec.rb +9 -16
- data/spec/unit/provider/group/groupadd_spec.rb +4 -3
- data/spec/unit/provider/group/groupmod_spec.rb +1 -0
- data/spec/unit/provider/group/pw_spec.rb +15 -12
- data/spec/unit/provider/group/usermod_spec.rb +9 -22
- data/spec/unit/provider/group/windows_spec.rb +8 -0
- data/spec/unit/provider/group_spec.rb +6 -28
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig/debian_spec.rb +89 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +71 -0
- data/spec/unit/provider/ifconfig_spec.rb +0 -33
- data/spec/unit/provider/mount/mount_spec.rb +33 -2
- data/spec/unit/provider/mount/windows_spec.rb +4 -1
- data/spec/unit/provider/mount_spec.rb +16 -6
- data/spec/unit/provider/ohai_spec.rb +4 -4
- data/spec/unit/provider/package/apt_spec.rb +0 -1
- data/spec/unit/provider/package/ips_spec.rb +0 -1
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +3 -2
- data/spec/unit/provider/package/zypper_spec.rb +84 -22
- data/spec/unit/provider/package_spec.rb +7 -9
- data/spec/unit/provider/powershell_spec.rb +38 -0
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -7
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +211 -0
- data/spec/unit/provider/remote_file/content_spec.rb +230 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +75 -0
- data/spec/unit/provider/remote_file/ftp_spec.rb +224 -0
- data/spec/unit/provider/remote_file/http_spec.rb +319 -0
- data/spec/unit/provider/remote_file/local_file_spec.rb +60 -0
- data/spec/unit/provider/remote_file_spec.rb +33 -259
- data/spec/unit/provider/route_spec.rb +29 -12
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +5 -5
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +5 -5
- data/spec/unit/provider/service/init_service_spec.rb +27 -4
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +4 -4
- data/spec/unit/provider/service/macosx_spec.rb +176 -207
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +3 -3
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +21 -18
- data/spec/unit/provider/service/systemd_service_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +11 -11
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template/content_spec.rb +78 -0
- data/spec/unit/provider/template_spec.rb +52 -160
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/solaris_spec.rb +39 -373
- data/spec/unit/provider/user/useradd_spec.rb +12 -379
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- data/spec/unit/resource/batch_spec.rb +48 -0
- data/spec/unit/resource/conditional_action_not_nothing_spec.rb +45 -0
- data/spec/unit/resource/execute_spec.rb +3 -101
- data/spec/unit/resource/file_spec.rb +0 -5
- data/spec/unit/resource/group_spec.rb +9 -0
- data/spec/unit/resource/ifconfig_spec.rb +60 -1
- data/spec/unit/resource/link_spec.rb +1 -0
- data/spec/unit/resource/mount_spec.rb +37 -11
- data/spec/unit/resource/powershell_spec.rb +48 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +63 -25
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/script_spec.rb +13 -36
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource/template_spec.rb +111 -8
- data/spec/unit/resource/user_spec.rb +7 -0
- data/spec/unit/resource_collection_spec.rb +61 -32
- data/spec/unit/resource_reporter_spec.rb +115 -102
- data/spec/unit/resource_spec.rb +197 -5
- data/spec/unit/rest/auth_credentials_spec.rb +4 -21
- data/spec/unit/rest_spec.rb +134 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +190 -0
- data/spec/unit/run_context_spec.rb +18 -4
- data/spec/unit/run_list_spec.rb +0 -209
- data/spec/unit/run_lock_spec.rb +37 -0
- data/spec/unit/runner_spec.rb +102 -3
- data/spec/unit/scan_access_control_spec.rb +8 -6
- data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
- data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
- data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +16 -58
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- data/spec/unit/user_spec.rb +255 -0
- data/spec/unit/util/backup_spec.rb +149 -0
- data/spec/unit/util/diff_spec.rb +596 -0
- data/spec/unit/util/selinux_spec.rb +172 -0
- data/spec/unit/version/platform_spec.rb +61 -0
- data/spec/unit/version_constraint/platform_spec.rb +46 -0
- data/spec/unit/version_constraint_spec.rb +5 -0
- metadata +493 -264
- data/README.rdoc +0 -177
- data/distro/common/html/knife-recipe.1.html +0 -92
- data/lib/chef/certificate.rb +0 -161
- data/lib/chef/checksum.rb +0 -167
- data/lib/chef/checksum_cache.rb +0 -190
- data/lib/chef/cookbook_version_selector.rb +0 -168
- data/lib/chef/couchdb.rb +0 -246
- data/lib/chef/index_queue/amqp_client.rb +0 -116
- data/lib/chef/index_queue/consumer.rb +0 -76
- data/lib/chef/index_queue/indexable.rb +0 -109
- data/lib/chef/knife/bootstrap/ubuntu12.10-gems.erb +0 -60
- data/lib/chef/monkey_patches/dir.rb +0 -36
- data/lib/chef/monkey_patches/moneta.rb +0 -50
- data/lib/chef/monkey_patches/uri.rb +0 -70
- data/lib/chef/openid_registration.rb +0 -187
- data/lib/chef/solr_query.rb +0 -187
- data/lib/chef/solr_query/lucene.treetop +0 -150
- data/lib/chef/solr_query/lucene_nodes.rb +0 -285
- data/lib/chef/solr_query/query_transform.rb +0 -65
- data/lib/chef/solr_query/solr_http_request.rb +0 -132
- data/lib/chef/webui_user.rb +0 -231
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/mac_users/10.9.plist.xml +0 -560
- data/spec/data/mac_users/10.9.shadow.xml +0 -21
- data/spec/functional/resource/base.rb +0 -40
- data/spec/functional/resource/group_spec.rb +0 -343
- data/spec/functional/resource/user/dscl_spec.rb +0 -199
- data/spec/unit/certificate_spec.rb +0 -76
- data/spec/unit/checksum_cache_spec.rb +0 -209
- data/spec/unit/checksum_spec.rb +0 -94
- data/spec/unit/couchdb_spec.rb +0 -274
- data/spec/unit/index_queue_spec.rb +0 -391
- data/spec/unit/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +0 -47
- data/spec/unit/solr_query/query_transform_spec.rb +0 -454
- data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
- data/spec/unit/solr_query_spec.rb +0 -203
- data/spec/unit/webui_user_spec.rb +0 -238
data/lib/chef/node.rb
CHANGED
@@ -21,19 +21,16 @@
|
|
21
21
|
|
22
22
|
require 'forwardable'
|
23
23
|
require 'chef/config'
|
24
|
-
require 'chef/cookbook/cookbook_collection'
|
25
24
|
require 'chef/nil_argument'
|
26
|
-
require 'chef/mixin/check_helper'
|
27
25
|
require 'chef/mixin/params_validate'
|
28
26
|
require 'chef/mixin/from_file'
|
29
|
-
require 'chef/mixin/language_include_attribute'
|
30
27
|
require 'chef/mixin/deep_merge'
|
28
|
+
require 'chef/dsl/include_attribute'
|
29
|
+
require 'chef/dsl/platform_introspection'
|
31
30
|
require 'chef/environment'
|
32
|
-
require 'chef/couchdb'
|
33
31
|
require 'chef/rest'
|
34
32
|
require 'chef/run_list'
|
35
33
|
require 'chef/node/attribute'
|
36
|
-
require 'chef/index_queue'
|
37
34
|
require 'chef/mash'
|
38
35
|
require 'chef/json_compat'
|
39
36
|
require 'chef/search/query'
|
@@ -43,144 +40,34 @@ class Chef
|
|
43
40
|
|
44
41
|
extend Forwardable
|
45
42
|
|
46
|
-
def_delegators :
|
43
|
+
def_delegators :attributes, :keys, :each_key, :each_value, :key?, :has_key?
|
47
44
|
|
48
|
-
attr_accessor :recipe_list, :
|
49
|
-
attr_accessor :override_attrs, :default_attrs, :normal_attrs, :automatic_attrs
|
50
|
-
attr_reader :couchdb_id
|
45
|
+
attr_accessor :recipe_list, :run_state, :run_list
|
51
46
|
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
|
47
|
+
# RunContext will set itself as run_context via this setter when
|
48
|
+
# initialized. This is needed so DSL::IncludeAttribute (in particular,
|
49
|
+
# #include_recipe) can access the run_context to determine if an attributes
|
50
|
+
# file has been seen yet.
|
51
|
+
#--
|
52
|
+
# TODO: This is a pretty ugly way to solve that problem.
|
53
|
+
attr_accessor :run_context
|
56
54
|
|
57
|
-
include Chef::Mixin::CheckHelper
|
58
55
|
include Chef::Mixin::FromFile
|
56
|
+
include Chef::DSL::IncludeAttribute
|
57
|
+
include Chef::DSL::PlatformIntrospection
|
58
|
+
|
59
59
|
include Chef::Mixin::ParamsValidate
|
60
|
-
include Chef::Mixin::LanguageIncludeAttribute
|
61
|
-
include Chef::IndexQueue::Indexable
|
62
|
-
|
63
|
-
DESIGN_DOCUMENT = {
|
64
|
-
"version" => 11,
|
65
|
-
"language" => "javascript",
|
66
|
-
"views" => {
|
67
|
-
"all" => {
|
68
|
-
"map" => <<-EOJS
|
69
|
-
function(doc) {
|
70
|
-
if (doc.chef_type == "node") {
|
71
|
-
emit(doc.name, doc);
|
72
|
-
}
|
73
|
-
}
|
74
|
-
EOJS
|
75
|
-
},
|
76
|
-
"all_id" => {
|
77
|
-
"map" => <<-EOJS
|
78
|
-
function(doc) {
|
79
|
-
if (doc.chef_type == "node") {
|
80
|
-
emit(doc.name, doc.name);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
EOJS
|
84
|
-
},
|
85
|
-
"status" => {
|
86
|
-
"map" => <<-EOJS
|
87
|
-
function(doc) {
|
88
|
-
if (doc.chef_type == "node") {
|
89
|
-
var to_emit = { "name": doc.name, "chef_environment": doc.chef_environment };
|
90
|
-
if (doc["attributes"]["fqdn"]) {
|
91
|
-
to_emit["fqdn"] = doc["attributes"]["fqdn"];
|
92
|
-
} else {
|
93
|
-
to_emit["fqdn"] = "Undefined";
|
94
|
-
}
|
95
|
-
if (doc["attributes"]["ipaddress"]) {
|
96
|
-
to_emit["ipaddress"] = doc["attributes"]["ipaddress"];
|
97
|
-
} else {
|
98
|
-
to_emit["ipaddress"] = "Undefined";
|
99
|
-
}
|
100
|
-
if (doc["attributes"]["ohai_time"]) {
|
101
|
-
to_emit["ohai_time"] = doc["attributes"]["ohai_time"];
|
102
|
-
} else {
|
103
|
-
to_emit["ohai_time"] = "Undefined";
|
104
|
-
}
|
105
|
-
if (doc["attributes"]["uptime"]) {
|
106
|
-
to_emit["uptime"] = doc["attributes"]["uptime"];
|
107
|
-
} else {
|
108
|
-
to_emit["uptime"] = "Undefined";
|
109
|
-
}
|
110
|
-
if (doc["attributes"]["platform"]) {
|
111
|
-
to_emit["platform"] = doc["attributes"]["platform"];
|
112
|
-
} else {
|
113
|
-
to_emit["platform"] = "Undefined";
|
114
|
-
}
|
115
|
-
if (doc["attributes"]["platform_version"]) {
|
116
|
-
to_emit["platform_version"] = doc["attributes"]["platform_version"];
|
117
|
-
} else {
|
118
|
-
to_emit["platform_version"] = "Undefined";
|
119
|
-
}
|
120
|
-
if (doc["run_list"]) {
|
121
|
-
to_emit["run_list"] = doc["run_list"];
|
122
|
-
} else {
|
123
|
-
to_emit["run_list"] = "Undefined";
|
124
|
-
}
|
125
|
-
emit(doc.name, to_emit);
|
126
|
-
}
|
127
|
-
}
|
128
|
-
EOJS
|
129
|
-
},
|
130
|
-
"by_run_list" => {
|
131
|
-
"map" => <<-EOJS
|
132
|
-
function(doc) {
|
133
|
-
if (doc.chef_type == "node") {
|
134
|
-
if (doc['run_list']) {
|
135
|
-
for (var i=0; i < doc.run_list.length; i++) {
|
136
|
-
emit(doc['run_list'][i], doc.name);
|
137
|
-
}
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
EOJS
|
142
|
-
},
|
143
|
-
"by_environment" => {
|
144
|
-
"map" => <<-EOJS
|
145
|
-
function(doc) {
|
146
|
-
if (doc.chef_type == "node") {
|
147
|
-
var env = (doc['chef_environment'] == null ? "_default" : doc['chef_environment']);
|
148
|
-
emit(env, doc.name);
|
149
|
-
}
|
150
|
-
}
|
151
|
-
EOJS
|
152
|
-
}
|
153
|
-
},
|
154
|
-
}
|
155
60
|
|
156
61
|
# Create a new Chef::Node object.
|
157
|
-
def initialize
|
62
|
+
def initialize
|
158
63
|
@name = nil
|
159
64
|
|
160
65
|
@chef_environment = '_default'
|
161
|
-
@normal_attrs = Mash.new
|
162
|
-
@override_attrs = Mash.new
|
163
|
-
@default_attrs = Mash.new
|
164
|
-
@automatic_attrs = Mash.new
|
165
66
|
@run_list = Chef::RunList.new
|
166
67
|
|
167
|
-
@
|
168
|
-
@couchdb_id = nil
|
169
|
-
@couchdb = couchdb || Chef::CouchDB.new
|
170
|
-
|
171
|
-
@run_state = {
|
172
|
-
:template_cache => Hash.new,
|
173
|
-
:seen_recipes => Hash.new,
|
174
|
-
:seen_attributes => Hash.new
|
175
|
-
}
|
176
|
-
# TODO: 5/20/2010 need this here as long as other objects try to access
|
177
|
-
# the cookbook collection via Node, otherwise get NoMethodError on nil.
|
178
|
-
@cookbook_collection = CookbookCollection.new
|
179
|
-
end
|
68
|
+
@attributes = Chef::Node::Attribute.new({}, {}, {}, {})
|
180
69
|
|
181
|
-
|
182
|
-
@couchdb_id = value
|
183
|
-
@index_id = value
|
70
|
+
@run_state = {}
|
184
71
|
end
|
185
72
|
|
186
73
|
# Used by DSL
|
@@ -192,24 +79,6 @@ class Chef
|
|
192
79
|
Chef::REST.new(Chef::Config[:chef_server_url])
|
193
80
|
end
|
194
81
|
|
195
|
-
# Find a recipe for this Chef::Node by fqdn. Will search first for
|
196
|
-
# Chef::Config["node_path"]/fqdn.rb, then hostname.rb, then default.rb.
|
197
|
-
#
|
198
|
-
# Returns a new Chef::Node object.
|
199
|
-
#
|
200
|
-
# Raises an ArgumentError if it cannot find the node.
|
201
|
-
def find_file(fqdn)
|
202
|
-
host_parts = fqdn.split(".")
|
203
|
-
hostname = host_parts[0]
|
204
|
-
|
205
|
-
[fqdn, hostname, "default"].each { |fname|
|
206
|
-
node_file = File.join(Chef::Config[:node_path], "#{fname.to_s}.rb")
|
207
|
-
return self.from_file(node_file) if File.exists?(node_file)
|
208
|
-
}
|
209
|
-
|
210
|
-
raise ArgumentError, "Cannot find a node matching #{fqdn}, not even with default.rb!"
|
211
|
-
end
|
212
|
-
|
213
82
|
# Set the name of this Node, or return the current name.
|
214
83
|
def name(arg=nil)
|
215
84
|
if arg != nil
|
@@ -233,91 +102,114 @@ class Chef
|
|
233
102
|
)
|
234
103
|
end
|
235
104
|
|
236
|
-
|
237
|
-
|
238
|
-
construct_attributes
|
105
|
+
def chef_environment=(environment)
|
106
|
+
chef_environment(environment)
|
239
107
|
end
|
240
108
|
|
241
|
-
|
242
|
-
Chef::Node::Attribute.new(normal_attrs, default_attrs, override_attrs, automatic_attrs)
|
243
|
-
end
|
109
|
+
alias :environment :chef_environment
|
244
110
|
|
245
|
-
def
|
246
|
-
|
111
|
+
def attributes
|
112
|
+
@attributes
|
247
113
|
end
|
248
114
|
|
115
|
+
alias :attribute :attributes
|
116
|
+
alias :construct_attributes :attributes
|
117
|
+
|
249
118
|
# Return an attribute of this node. Returns nil if the attribute is not found.
|
250
119
|
def [](attrib)
|
251
|
-
|
120
|
+
attributes[attrib]
|
252
121
|
end
|
253
122
|
|
254
|
-
# Set
|
255
|
-
def []=(attrib, value)
|
256
|
-
construct_attributes[attrib] = value
|
257
|
-
end
|
258
|
-
|
259
|
-
def store(attrib, value)
|
260
|
-
self[attrib] = value
|
261
|
-
end
|
262
|
-
|
263
|
-
# Set a normal attribute of this node, but auto-vivifiy any Mashes that
|
123
|
+
# Set a normal attribute of this node, but auto-vivify any Mashes that
|
264
124
|
# might be missing
|
265
125
|
def normal
|
266
|
-
|
267
|
-
|
268
|
-
attrs.auto_vivifiy_on_read = true
|
269
|
-
attrs
|
126
|
+
attributes.set_unless_value_present = false
|
127
|
+
attributes.normal
|
270
128
|
end
|
271
129
|
|
272
130
|
alias_method :set, :normal
|
273
131
|
|
274
|
-
# Set a normal attribute of this node, auto-
|
132
|
+
# Set a normal attribute of this node, auto-vivifying any mashes that are
|
275
133
|
# missing, but if the final value already exists, don't set it
|
276
134
|
def normal_unless
|
277
|
-
|
278
|
-
|
279
|
-
attrs.auto_vivifiy_on_read = true
|
280
|
-
attrs.set_unless_value_present = true
|
281
|
-
attrs
|
135
|
+
attributes.set_unless_value_present = true
|
136
|
+
attributes.normal
|
282
137
|
end
|
283
138
|
alias_method :set_unless, :normal_unless
|
284
139
|
|
285
|
-
# Set a default of this node, but auto-
|
140
|
+
# Set a default of this node, but auto-vivify any Mashes that might
|
286
141
|
# be missing
|
287
142
|
def default
|
288
|
-
|
289
|
-
|
290
|
-
attrs.auto_vivifiy_on_read = true
|
291
|
-
attrs
|
143
|
+
attributes.set_unless_value_present = false
|
144
|
+
attributes.default
|
292
145
|
end
|
293
146
|
|
294
|
-
# Set a default attribute
|
147
|
+
# Set a force default attribute. Intermediate mashes will be created by
|
148
|
+
# auto-vivify if necessary.
|
149
|
+
def default!
|
150
|
+
attributes.set_unless_value_present = false
|
151
|
+
attributes.default!
|
152
|
+
end
|
153
|
+
|
154
|
+
# Set a default attribute of this node, auto-vivifying any mashes that are
|
295
155
|
# missing, but if the final value already exists, don't set it
|
296
156
|
def default_unless
|
297
|
-
|
298
|
-
|
299
|
-
attrs.auto_vivifiy_on_read = true
|
300
|
-
attrs.set_unless_value_present = true
|
301
|
-
attrs
|
157
|
+
attributes.set_unless_value_present = true
|
158
|
+
attributes.default
|
302
159
|
end
|
303
160
|
|
304
|
-
# Set an override attribute of this node, but auto-
|
161
|
+
# Set an override attribute of this node, but auto-vivify any Mashes that
|
305
162
|
# might be missing
|
306
163
|
def override
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
164
|
+
attributes.set_unless_value_present = false
|
165
|
+
attributes.override
|
166
|
+
end
|
167
|
+
|
168
|
+
# Set a force override attribute. Intermediate mashes will be created by
|
169
|
+
# auto-vivify if needed.
|
170
|
+
def override!
|
171
|
+
attributes.set_unless_value_present = false
|
172
|
+
attributes.override!
|
311
173
|
end
|
312
174
|
|
313
|
-
# Set an override attribute of this node, auto-
|
175
|
+
# Set an override attribute of this node, auto-vivifying any mashes that
|
314
176
|
# are missing, but if the final value already exists, don't set it
|
315
177
|
def override_unless
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
178
|
+
attributes.set_unless_value_present = true
|
179
|
+
attributes.override
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
def override_attrs
|
184
|
+
attributes.override
|
185
|
+
end
|
186
|
+
|
187
|
+
def override_attrs=(new_values)
|
188
|
+
attributes.override = new_values
|
189
|
+
end
|
190
|
+
|
191
|
+
def default_attrs
|
192
|
+
attributes.default
|
193
|
+
end
|
194
|
+
|
195
|
+
def default_attrs=(new_values)
|
196
|
+
attributes.default = new_values
|
197
|
+
end
|
198
|
+
|
199
|
+
def normal_attrs
|
200
|
+
attributes.normal
|
201
|
+
end
|
202
|
+
|
203
|
+
def normal_attrs=(new_values)
|
204
|
+
attributes.normal = new_values
|
205
|
+
end
|
206
|
+
|
207
|
+
def automatic_attrs
|
208
|
+
attributes.automatic
|
209
|
+
end
|
210
|
+
|
211
|
+
def automatic_attrs=(new_values)
|
212
|
+
attributes.automatic = new_values
|
321
213
|
end
|
322
214
|
|
323
215
|
# Return true if this Node has a given attribute, false if not. Takes either a symbol or
|
@@ -326,36 +218,33 @@ class Chef
|
|
326
218
|
# Only works on the top level. Preferred way is to use the normal [] style
|
327
219
|
# lookup and call attribute?()
|
328
220
|
def attribute?(attrib)
|
329
|
-
|
221
|
+
attributes.attribute?(attrib)
|
330
222
|
end
|
331
223
|
|
332
224
|
# Yield each key of the top level to the block.
|
333
225
|
def each(&block)
|
334
|
-
|
226
|
+
attributes.each(&block)
|
335
227
|
end
|
336
228
|
|
337
229
|
# Iterates over each attribute, passing the attribute and value to the block.
|
338
230
|
def each_attribute(&block)
|
339
|
-
|
231
|
+
attributes.each_attribute(&block)
|
340
232
|
end
|
341
233
|
|
342
|
-
#
|
343
|
-
# as using the normal/default/override interface.
|
234
|
+
# Only works for attribute fetches, setting is no longer supported
|
344
235
|
def method_missing(symbol, *args)
|
345
|
-
|
346
|
-
attrs.send(symbol, *args)
|
236
|
+
attributes.send(symbol, *args)
|
347
237
|
end
|
348
238
|
|
349
239
|
# Returns true if this Node expects a given recipe, false if not.
|
350
240
|
#
|
351
241
|
# First, the run list is consulted to see whether the recipe is
|
352
242
|
# explicitly included. If it's not there, it looks in
|
353
|
-
#
|
354
|
-
# statements in the DSL (and thus would not be in the run list).
|
243
|
+
# `node[:recipes]`, which is populated when the run_list is expanded
|
355
244
|
#
|
356
245
|
# NOTE: It's used by cookbook authors
|
357
246
|
def recipe?(recipe_name)
|
358
|
-
run_list.include?(recipe_name) ||
|
247
|
+
run_list.include?(recipe_name) || Array(self[:recipes]).include?(recipe_name)
|
359
248
|
end
|
360
249
|
|
361
250
|
# Returns true if this Node expects a given role, false if not.
|
@@ -379,26 +268,26 @@ class Chef
|
|
379
268
|
Chef::Log.debug("Extracting run list from JSON attributes provided on command line")
|
380
269
|
consume_attributes(json_cli_attrs)
|
381
270
|
|
382
|
-
|
271
|
+
self.automatic_attrs = ohai_data
|
383
272
|
|
384
273
|
platform, version = Chef::Platform.find_platform_and_version(self)
|
385
274
|
Chef::Log.debug("Platform is #{platform} version #{version}")
|
386
|
-
|
387
|
-
|
275
|
+
self.automatic[:platform] = platform
|
276
|
+
self.automatic[:platform_version] = version
|
388
277
|
end
|
389
278
|
|
390
279
|
# Consumes the combined run_list and other attributes in +attrs+
|
391
280
|
def consume_attributes(attrs)
|
392
281
|
normal_attrs_to_merge = consume_run_list(attrs)
|
393
282
|
Chef::Log.debug("Applying attributes from json file")
|
394
|
-
|
283
|
+
self.normal_attrs = Chef::Mixin::DeepMerge.merge(normal_attrs,normal_attrs_to_merge)
|
395
284
|
self.tags # make sure they're defined
|
396
285
|
end
|
397
286
|
|
398
287
|
# Lazy initializer for tags attribute
|
399
288
|
def tags
|
400
|
-
|
401
|
-
|
289
|
+
normal[:tags] = [] unless attribute?(:tags)
|
290
|
+
normal[:tags]
|
402
291
|
end
|
403
292
|
|
404
293
|
# Extracts the run list from +attrs+ and applies it. Returns the remaining attributes
|
@@ -417,8 +306,8 @@ class Chef
|
|
417
306
|
# Clear defaults and overrides, so that any deleted attributes
|
418
307
|
# between runs are still gone.
|
419
308
|
def reset_defaults_and_overrides
|
420
|
-
|
421
|
-
|
309
|
+
self.default.clear
|
310
|
+
self.override.clear
|
422
311
|
end
|
423
312
|
|
424
313
|
# Expands the node's run list and sets the default and override
|
@@ -439,8 +328,10 @@ class Chef
|
|
439
328
|
|
440
329
|
self.tags # make sure they're defined
|
441
330
|
|
442
|
-
|
443
|
-
|
331
|
+
automatic_attrs[:recipes] = expansion.recipes
|
332
|
+
automatic_attrs[:roles] = expansion.roles
|
333
|
+
|
334
|
+
apply_expansion_attributes(expansion)
|
444
335
|
|
445
336
|
expansion
|
446
337
|
end
|
@@ -448,13 +339,17 @@ class Chef
|
|
448
339
|
# Apply the default and overrides attributes from the expansion
|
449
340
|
# passed in, which came from roles.
|
450
341
|
def apply_expansion_attributes(expansion)
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
342
|
+
loaded_environment = if chef_environment == "_default"
|
343
|
+
Chef::Environment.new.tap {|e| e.name("_default")}
|
344
|
+
else
|
345
|
+
Chef::Environment.load(chef_environment)
|
346
|
+
end
|
347
|
+
|
348
|
+
attributes.env_default = loaded_environment.default_attributes
|
349
|
+
attributes.env_override = loaded_environment.override_attributes
|
350
|
+
|
351
|
+
attribute.role_default = expansion.default_attrs
|
352
|
+
attributes.role_override = expansion.override_attrs
|
458
353
|
end
|
459
354
|
|
460
355
|
# Transform the node to a Hash
|
@@ -478,36 +373,39 @@ class Chef
|
|
478
373
|
display["chef_environment"] = chef_environment
|
479
374
|
display["automatic"] = automatic_attrs
|
480
375
|
display["normal"] = normal_attrs
|
481
|
-
display["default"] =
|
482
|
-
display["override"] =
|
376
|
+
display["default"] = attributes.combined_default
|
377
|
+
display["override"] = attributes.combined_override
|
483
378
|
display["run_list"] = run_list.run_list
|
484
379
|
display
|
485
380
|
end
|
486
381
|
|
487
382
|
# Serialize this object as a hash
|
488
383
|
def to_json(*a)
|
384
|
+
for_json.to_json(*a)
|
385
|
+
end
|
386
|
+
|
387
|
+
def for_json
|
489
388
|
result = {
|
490
389
|
"name" => name,
|
491
390
|
"chef_environment" => chef_environment,
|
492
391
|
'json_class' => self.class.name,
|
493
|
-
"automatic" =>
|
494
|
-
"normal" =>
|
392
|
+
"automatic" => attributes.automatic,
|
393
|
+
"normal" => attributes.normal,
|
495
394
|
"chef_type" => "node",
|
496
|
-
"default" =>
|
497
|
-
"override" =>
|
395
|
+
"default" => attributes.combined_default,
|
396
|
+
"override" => attributes.combined_override,
|
498
397
|
#Render correctly for run_list items so malformed json does not result
|
499
398
|
"run_list" => run_list.run_list.map { |item| item.to_s }
|
500
399
|
}
|
501
|
-
result
|
502
|
-
result.to_json(*a)
|
400
|
+
result
|
503
401
|
end
|
504
402
|
|
505
403
|
def update_from!(o)
|
506
404
|
run_list.reset!(o.run_list)
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
405
|
+
self.automatic_attrs = o.automatic_attrs
|
406
|
+
self.normal_attrs = o.normal_attrs
|
407
|
+
self.override_attrs = o.override_attrs
|
408
|
+
self.default_attrs = o.default_attrs
|
511
409
|
chef_environment(o.chef_environment)
|
512
410
|
self
|
513
411
|
end
|
@@ -530,17 +428,9 @@ class Chef
|
|
530
428
|
else
|
531
429
|
o["recipes"].each { |r| node.recipes << r }
|
532
430
|
end
|
533
|
-
node.couchdb_rev = o["_rev"] if o.has_key?("_rev")
|
534
|
-
node.couchdb_id = o["_id"] if o.has_key?("_id")
|
535
|
-
node.index_id = node.couchdb_id
|
536
431
|
node
|
537
432
|
end
|
538
433
|
|
539
|
-
def self.cdb_list_by_environment(environment, inflate=false, couchdb=nil)
|
540
|
-
rs = (couchdb || Chef::CouchDB.new).get_view("nodes", "by_environment", :include_docs => inflate, :startkey => environment, :endkey => environment)
|
541
|
-
inflate ? rs["rows"].collect {|r| r["doc"]} : rs["rows"].collect {|r| r["value"]}
|
542
|
-
end
|
543
|
-
|
544
434
|
def self.list_by_environment(environment, inflate=false)
|
545
435
|
if inflate
|
546
436
|
response = Hash.new
|
@@ -551,14 +441,6 @@ class Chef
|
|
551
441
|
end
|
552
442
|
end
|
553
443
|
|
554
|
-
# List all the Chef::Node objects in the CouchDB. If inflate is set to true, you will get
|
555
|
-
# the full list of all Nodes, fully inflated.
|
556
|
-
def self.cdb_list(inflate=false, couchdb=nil)
|
557
|
-
rs =(couchdb || Chef::CouchDB.new).list("nodes", inflate)
|
558
|
-
lookup = (inflate ? "value" : "key")
|
559
|
-
rs["rows"].collect { |r| r[lookup] }
|
560
|
-
end
|
561
|
-
|
562
444
|
def self.list(inflate=false)
|
563
445
|
if inflate
|
564
446
|
response = Hash.new
|
@@ -571,19 +453,6 @@ class Chef
|
|
571
453
|
end
|
572
454
|
end
|
573
455
|
|
574
|
-
# Load a node by name from CouchDB
|
575
|
-
def self.cdb_load(name, couchdb=nil)
|
576
|
-
(couchdb || Chef::CouchDB.new).load("node", name)
|
577
|
-
end
|
578
|
-
|
579
|
-
def self.exists?(nodename, couchdb)
|
580
|
-
begin
|
581
|
-
self.cdb_load(nodename, couchdb)
|
582
|
-
rescue Chef::Exceptions::CouchDBNotFound
|
583
|
-
nil
|
584
|
-
end
|
585
|
-
end
|
586
|
-
|
587
456
|
def self.find_or_create(node_name)
|
588
457
|
load(node_name)
|
589
458
|
rescue Net::HTTPServerException => e
|
@@ -595,7 +464,7 @@ class Chef
|
|
595
464
|
def self.build(node_name)
|
596
465
|
node = new
|
597
466
|
node.name(node_name)
|
598
|
-
node.chef_environment(Chef::Config[:environment]) unless Chef::Config[:environment].nil? || Chef::Config[:environment].
|
467
|
+
node.chef_environment(Chef::Config[:environment]) unless Chef::Config[:environment].nil? || Chef::Config[:environment].chop.empty?
|
599
468
|
node
|
600
469
|
end
|
601
470
|
|
@@ -604,21 +473,11 @@ class Chef
|
|
604
473
|
Chef::REST.new(Chef::Config[:chef_server_url]).get_rest("nodes/#{name}")
|
605
474
|
end
|
606
475
|
|
607
|
-
# Remove this node from the CouchDB
|
608
|
-
def cdb_destroy
|
609
|
-
couchdb.delete("node", name, couchdb_rev)
|
610
|
-
end
|
611
|
-
|
612
476
|
# Remove this node via the REST API
|
613
477
|
def destroy
|
614
478
|
chef_server_rest.delete_rest("nodes/#{name}")
|
615
479
|
end
|
616
480
|
|
617
|
-
# Save this node to the CouchDB
|
618
|
-
def cdb_save
|
619
|
-
@couchdb_rev = couchdb.store("node", name, self)["rev"]
|
620
|
-
end
|
621
|
-
|
622
481
|
# Save this node via the REST API
|
623
482
|
def save
|
624
483
|
# Try PUT. If the node doesn't yet exist, PUT will return 404,
|
@@ -642,41 +501,13 @@ class Chef
|
|
642
501
|
self
|
643
502
|
end
|
644
503
|
|
645
|
-
# Set up our CouchDB design document
|
646
|
-
def self.create_design_document(couchdb=nil)
|
647
|
-
(couchdb || Chef::CouchDB.new).create_design_document("nodes", DESIGN_DOCUMENT)
|
648
|
-
end
|
649
|
-
|
650
504
|
def to_s
|
651
505
|
"node[#{name}]"
|
652
506
|
end
|
653
507
|
|
654
|
-
|
655
|
-
|
656
|
-
def load_attributes
|
657
|
-
cookbook_collection.values.each do |cookbook|
|
658
|
-
cookbook.segment_filenames(:attributes).each do |segment_filename|
|
659
|
-
Chef::Log.debug("Node #{name} loading cookbook #{cookbook.name}'s attribute file #{segment_filename}")
|
660
|
-
self.from_file(segment_filename)
|
661
|
-
end
|
662
|
-
end
|
508
|
+
def <=>(other_node)
|
509
|
+
self.name <=> other_node.name
|
663
510
|
end
|
664
511
|
|
665
|
-
# Used by DSL.
|
666
|
-
# Loads the attribute file specified by the short name of the
|
667
|
-
# file, e.g., loads specified cookbook's
|
668
|
-
# "attributes/mailservers.rb"
|
669
|
-
# if passed
|
670
|
-
# "mailservers"
|
671
|
-
def load_attribute_by_short_filename(name, src_cookbook_name)
|
672
|
-
src_cookbook = cookbook_collection[src_cookbook_name]
|
673
|
-
raise Chef::Exceptions::CookbookNotFound, "could not find cookbook #{src_cookbook_name} while loading attribute #{name}" unless src_cookbook
|
674
|
-
|
675
|
-
attribute_filename = src_cookbook.attribute_filenames_by_short_filename[name]
|
676
|
-
raise Chef::Exceptions::AttributeNotFound, "could not find filename for attribute #{name} in cookbook #{src_cookbook_name}" unless attribute_filename
|
677
|
-
|
678
|
-
self.from_file(attribute_filename)
|
679
|
-
self
|
680
|
-
end
|
681
512
|
end
|
682
513
|
end
|