chef 10.34.6 → 11.0.0.beta.0
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 +155 -0
- data/README.md +89 -0
- data/Rakefile +4 -12
- data/bin/chef-apply +25 -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 +18 -12
- data/distro/common/html/chef-solr.8.html +4 -4
- 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 +10 -7
- data/distro/common/html/knife-data-bag.1.html +10 -7
- data/distro/common/html/knife-environment.1.html +8 -6
- 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 +1 -1
- 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 +15 -2
- data/distro/common/man/man1/knife-data-bag.1 +15 -2
- data/distro/common/man/man1/knife-environment.1 +12 -2
- 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 +36 -4
- 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 +2 -2
- data/lib/chef.rb +2 -5
- data/lib/chef/api_client.rb +20 -130
- data/lib/chef/api_client/registration.rb +126 -0
- data/lib/chef/application.rb +71 -14
- data/lib/chef/application/apply.rb +160 -0
- data/lib/chef/application/client.rb +25 -18
- data/lib/chef/application/knife.rb +0 -2
- data/lib/chef/application/solo.rb +23 -8
- data/lib/chef/application/windows_service.rb +5 -2
- data/lib/chef/applications.rb +1 -0
- data/lib/chef/chef_fs.rb +11 -0
- data/lib/chef/chef_fs/command_line.rb +232 -0
- data/lib/chef/chef_fs/file_pattern.rb +312 -0
- data/lib/chef/chef_fs/file_system.rb +358 -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 +121 -0
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +109 -0
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb} +12 -15
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +188 -0
- data/lib/chef/chef_fs/file_system/cookbook_file.rb +78 -0
- data/lib/chef/chef_fs/file_system/cookbook_subdir.rb +54 -0
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +68 -0
- data/lib/chef/chef_fs/file_system/data_bag_dir.rb +78 -0
- data/lib/chef/chef_fs/file_system/data_bag_item.rb +59 -0
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +66 -0
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +90 -0
- data/lib/chef/{index_queue.rb → chef_fs/file_system/file_system_error.rb} +14 -12
- data/lib/chef/{resource/whyrun_safe_ruby_block.rb → chef_fs/file_system/file_system_root_dir.rb} +10 -10
- data/lib/chef/chef_fs/file_system/must_delete_recursively_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +47 -0
- data/lib/chef/{provider/whyrun_safe_ruby_block.rb → chef_fs/file_system/nonexistent_fs_object.rb} +19 -9
- data/lib/chef/chef_fs/file_system/not_found_error.rb +31 -0
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +84 -0
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +123 -0
- data/lib/chef/chef_fs/knife.rb +77 -0
- data/lib/chef/chef_fs/path_utils.rb +64 -0
- data/lib/chef/client.rb +44 -21
- data/lib/chef/config.rb +52 -43
- data/lib/chef/cookbook/synchronizer.rb +6 -8
- data/lib/chef/cookbook/syntax_check.rb +61 -14
- data/lib/chef/cookbook_loader.rb +39 -26
- data/lib/chef/cookbook_uploader.rb +17 -19
- data/lib/chef/cookbook_version.rb +3 -302
- data/lib/chef/daemon.rb +3 -18
- data/lib/chef/data_bag.rb +4 -97
- data/lib/chef/data_bag_item.rb +2 -65
- data/lib/chef/digester.rb +73 -0
- data/lib/chef/dsl.rb +6 -0
- data/lib/chef/dsl/data_query.rb +66 -0
- data/lib/chef/dsl/include_attribute.rb +60 -0
- data/lib/chef/dsl/include_recipe.rb +42 -0
- data/lib/chef/dsl/platform_introspection.rb +213 -0
- data/lib/chef/dsl/recipe.rb +84 -0
- data/lib/chef/dsl/registry_helper.rb +59 -0
- data/lib/chef/encrypted_data_bag_item.rb +74 -19
- data/lib/chef/environment.rb +9 -180
- data/lib/chef/exceptions.rb +87 -14
- data/lib/chef/formatters/base.rb +4 -1
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +0 -4
- data/lib/chef/json_compat.rb +1 -97
- data/lib/chef/knife.rb +90 -41
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
- data/lib/chef/knife/configure.rb +1 -2
- data/lib/chef/knife/cookbook_metadata.rb +1 -0
- data/lib/chef/knife/cookbook_test.rb +3 -2
- data/lib/chef/knife/cookbook_upload.rb +12 -7
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +26 -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/text_formatter.rb +23 -37
- data/lib/chef/knife/core/ui.rb +15 -9
- data/lib/chef/knife/delete.rb +39 -0
- data/lib/chef/knife/diff.rb +46 -0
- data/lib/chef/knife/download.rb +50 -0
- data/lib/chef/knife/environment_show.rb +7 -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 +109 -0
- data/lib/chef/knife/raw.rb +108 -0
- data/lib/chef/knife/search.rb +40 -22
- data/lib/chef/knife/show.rb +32 -0
- data/lib/chef/knife/ssh.rb +6 -2
- data/lib/chef/knife/upload.rb +50 -0
- data/lib/chef/mixin/checksum.rb +3 -3
- data/lib/chef/mixin/deep_merge.rb +55 -197
- data/lib/chef/mixin/language.rb +9 -222
- data/lib/chef/mixin/language_include_attribute.rb +6 -38
- data/lib/chef/mixin/language_include_recipe.rb +3 -35
- data/lib/chef/mixin/params_validate.rb +6 -19
- data/lib/chef/mixin/recipe_definition_dsl_core.rb +8 -61
- data/lib/chef/mixin/securable.rb +32 -7
- data/lib/chef/mixin/template.rb +40 -0
- data/lib/chef/mixins.rb +0 -4
- data/lib/chef/monkey_patches/net_http.rb +0 -34
- data/lib/chef/node.rb +133 -309
- data/lib/chef/node/attribute.rb +333 -473
- data/lib/chef/node/attribute_collections.rb +199 -0
- data/lib/chef/node/immutable_collections.rb +186 -0
- data/lib/chef/platform.rb +7 -22
- data/lib/chef/provider.rb +2 -49
- data/lib/chef/provider/breakpoint.rb +6 -6
- data/lib/chef/provider/cookbook_file.rb +5 -33
- data/lib/chef/provider/deploy.rb +2 -1
- data/lib/chef/provider/directory.rb +14 -17
- data/lib/chef/provider/file.rb +19 -52
- 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/link.rb +2 -0
- data/lib/chef/provider/lwrp_base.rb +150 -0
- data/lib/chef/provider/package/portage.rb +4 -9
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +9 -41
- data/lib/chef/provider/package/yum.rb +12 -19
- data/lib/chef/provider/registry_key.rb +156 -0
- data/lib/chef/provider/remote_directory.rb +2 -0
- data/lib/chef/provider/remote_file.rb +21 -12
- data/lib/chef/provider/ruby_block.rb +5 -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 +15 -73
- data/lib/chef/provider/service/simple.rb +1 -1
- data/lib/chef/provider/service/solaris.rb +3 -3
- data/lib/chef/provider/template.rb +22 -25
- 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 +30 -47
- data/lib/chef/providers.rb +3 -2
- data/lib/chef/recipe.rb +14 -8
- data/lib/chef/resource.rb +13 -154
- data/lib/chef/resource/group.rb +1 -11
- data/lib/chef/resource/http_request.rb +2 -1
- data/lib/chef/resource/lwrp_base.rb +127 -0
- data/lib/chef/resource/mount.rb +10 -11
- 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 +22 -31
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/service.rb +14 -0
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource_collection.rb +25 -21
- data/lib/chef/resources.rb +2 -1
- data/lib/chef/rest.rb +50 -131
- data/lib/chef/rest/auth_credentials.rb +4 -20
- data/lib/chef/rest/rest_request.rb +2 -7
- 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 +0 -15
- data/lib/chef/run_lock.rb +90 -0
- data/lib/chef/runner.rb +28 -5
- data/lib/chef/sandbox.rb +15 -148
- data/lib/chef/scan_access_control.rb +2 -4
- 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} +17 -15
- data/lib/chef/shell_out.rb +7 -0
- data/lib/chef/util/windows/net_group.rb +1 -5
- data/lib/chef/version.rb +3 -3
- data/lib/chef/win32/api/process.rb +0 -1
- data/lib/chef/win32/handle.rb +1 -8
- data/lib/chef/win32/registry.rb +371 -0
- data/spec/data/big_json.json +1 -2
- data/spec/data/big_json_plus_one.json +1 -2
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- 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/partial_one.erb +1 -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/{knife-home/.chef/plugins/knife/example_home_subcommand.rb → 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/{lwrp_const_scoping/resources/conflict.rb → 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 +7 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +2 -2
- data/spec/functional/knife/ssh_spec.rb +5 -1
- data/spec/functional/resource/cookbook_file_spec.rb +7 -19
- data/spec/functional/resource/directory_spec.rb +4 -0
- data/spec/functional/resource/file_spec.rb +56 -22
- data/spec/functional/resource/link_spec.rb +2 -0
- data/spec/functional/resource/registry_spec.rb +576 -0
- data/spec/functional/resource/remote_directory_spec.rb +142 -36
- data/spec/functional/resource/remote_file_spec.rb +18 -0
- data/spec/functional/resource/template_spec.rb +23 -2
- data/spec/functional/run_lock_spec.rb +106 -0
- data/spec/functional/shell_spec.rb +100 -0
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/spec_helper.rb +5 -29
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +0 -2
- data/spec/support/platform_helpers.rb +8 -15
- data/spec/support/shared/functional/directory_resource.rb +84 -22
- data/spec/support/shared/functional/file_resource.rb +169 -71
- data/spec/support/shared/functional/securable_resource.rb +143 -119
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +375 -0
- data/spec/support/shared/unit/file_system_support.rb +110 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/unit/api_client/registration_spec.rb +175 -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 +1 -37
- data/spec/unit/application/knife_spec.rb +5 -0
- data/spec/unit/application_spec.rb +57 -2
- 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/chef_server_root_dir_spec.rb +237 -0
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +568 -0
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +220 -0
- data/spec/unit/chef_fs/file_system_spec.rb +136 -0
- data/spec/unit/client_spec.rb +124 -33
- data/spec/unit/config_spec.rb +46 -13
- data/spec/unit/cookbook/synchronizer_spec.rb +1 -49
- data/spec/unit/cookbook/syntax_check_spec.rb +48 -109
- data/spec/unit/cookbook_loader_spec.rb +153 -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 +3 -24
- data/spec/unit/data_bag_spec.rb +6 -4
- 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 +50 -105
- data/spec/unit/environment_spec.rb +0 -130
- data/spec/unit/exceptions_spec.rb +2 -3
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/json_compat_spec.rb +15 -7
- data/spec/unit/knife/bootstrap_spec.rb +2 -0
- data/spec/unit/knife/configure_spec.rb +20 -14
- 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 +43 -8
- data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +156 -125
- 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/ssh_spec.rb +12 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife_spec.rb +53 -0
- data/spec/unit/lwrp_spec.rb +59 -42
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +101 -799
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -37
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +119 -0
- data/spec/unit/node/attribute_spec.rb +195 -173
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +366 -370
- data/spec/unit/platform_spec.rb +9 -10
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file_spec.rb +4 -8
- data/spec/unit/provider/directory_spec.rb +96 -64
- data/spec/unit/provider/env_spec.rb +2 -2
- data/spec/unit/provider/file_spec.rb +48 -39
- 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 +6 -21
- 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_spec.rb +2 -2
- 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/portage_spec.rb +0 -44
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/package/rubygems_spec.rb +1 -44
- data/spec/unit/provider/package/yum_spec.rb +39 -36
- data/spec/unit/provider/package_spec.rb +7 -5
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +7 -3
- data/spec/unit/provider/remote_file_spec.rb +36 -0
- data/spec/unit/provider/route_spec.rb +4 -3
- 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 +11 -66
- 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/upstart_service_spec.rb +9 -9
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template_spec.rb +35 -11
- data/spec/unit/provider/user/dscl_spec.rb +285 -681
- data/spec/unit/provider/user/useradd_spec.rb +1 -22
- data/spec/unit/provider/user_spec.rb +1 -1
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +374 -0
- data/spec/unit/resource/mount_spec.rb +0 -11
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +21 -23
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource_spec.rb +4 -19
- data/spec/unit/rest/auth_credentials_spec.rb +2 -19
- data/spec/unit/rest_spec.rb +130 -284
- data/spec/unit/run_context/cookbook_compiler_spec.rb +181 -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 +101 -2
- data/spec/unit/scan_access_control_spec.rb +4 -4
- 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} +14 -69
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- metadata +275 -234
- checksums.yaml +0 -15
- 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/moneta.rb +0 -50
- data/lib/chef/monkey_patches/uri.rb +0 -70
- data/lib/chef/openid_registration.rb +0 -187
- data/lib/chef/provider/user/solaris.rb +0 -90
- 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/cookbooks/openldap/files/default/.dotfile +0 -1
- data/spec/data/cookbooks/openldap/files/default/.ssh/id_rsa +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/.a_dotdir/.a_dotfile_in_a_dotdir +0 -1
- data/spec/data/cookbooks/openldap/files/default/remotedir/remotesubdir/.a_dotfile +0 -1
- 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/user/solaris_spec.rb +0 -414
- 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
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
|
3
|
+
# Author:: Christopher Walters (<cw@opscode.com>)
|
|
4
|
+
# Author:: Daniel DeLeo (<dan@opscode.com>)
|
|
5
|
+
# Copyright:: Copyright (c) 2008-2012 Opscode, Inc.
|
|
6
|
+
# License:: Apache License, Version 2.0
|
|
7
|
+
#
|
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
# you may not use this file except in compliance with the License.
|
|
10
|
+
# You may obtain a copy of the License at
|
|
11
|
+
#
|
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
#
|
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
require 'chef/resource'
|
|
22
|
+
|
|
23
|
+
class Chef
|
|
24
|
+
class Resource
|
|
25
|
+
|
|
26
|
+
# == Chef::Resource::LWRPBase
|
|
27
|
+
# Base class for LWRP resources. Adds DSL sugar on top of Chef::Resource,
|
|
28
|
+
# so attributes, default action, etc. can be defined with pleasing syntax.
|
|
29
|
+
class LWRPBase < Resource
|
|
30
|
+
|
|
31
|
+
NULL_ARG = Object.new
|
|
32
|
+
|
|
33
|
+
extend Chef::Mixin::ConvertToClassName
|
|
34
|
+
extend Chef::Mixin::FromFile
|
|
35
|
+
|
|
36
|
+
# Evaluates the LWRP resource file and instantiates a new Resource class.
|
|
37
|
+
def self.build_from_file(cookbook_name, filename, run_context)
|
|
38
|
+
rname = filename_to_qualified_string(cookbook_name, filename)
|
|
39
|
+
|
|
40
|
+
# Add log entry if we override an existing light-weight resource.
|
|
41
|
+
class_name = convert_to_class_name(rname)
|
|
42
|
+
overriding = Chef::Resource.const_defined?(class_name)
|
|
43
|
+
Chef::Log.info("#{class_name} light-weight resource already initialized -- overriding!") if overriding
|
|
44
|
+
|
|
45
|
+
resource_class = Class.new(self)
|
|
46
|
+
|
|
47
|
+
resource_class.resource_name = rname
|
|
48
|
+
resource_class.run_context = run_context
|
|
49
|
+
resource_class.class_from_file(filename)
|
|
50
|
+
|
|
51
|
+
Chef::Resource.const_set(class_name, resource_class)
|
|
52
|
+
Chef::Log.debug("Loaded contents of #{filename} into a resource named #{rname} defined in Chef::Resource::#{class_name}")
|
|
53
|
+
|
|
54
|
+
resource_class
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Set the resource snake_case name. Should only be called via
|
|
58
|
+
# build_from_file.
|
|
59
|
+
def self.resource_name=(resource_name)
|
|
60
|
+
@resource_name = resource_name
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Returns the resource snake_case name
|
|
64
|
+
def self.resource_name
|
|
65
|
+
@resource_name
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Define an attribute on this resource, including optional validation
|
|
69
|
+
# parameters.
|
|
70
|
+
def self.attribute(attr_name, validation_opts={})
|
|
71
|
+
# Ruby 1.8 doesn't support default arguments to blocks, but we have to
|
|
72
|
+
# use define_method with a block to capture +validation_opts+.
|
|
73
|
+
# Workaround this by defining two methods :(
|
|
74
|
+
class_eval(<<-SHIM, __FILE__, __LINE__)
|
|
75
|
+
def #{attr_name}(arg=nil)
|
|
76
|
+
_set_or_return_#{attr_name}(arg)
|
|
77
|
+
end
|
|
78
|
+
SHIM
|
|
79
|
+
|
|
80
|
+
define_method("_set_or_return_#{attr_name.to_s}".to_sym) do |arg|
|
|
81
|
+
set_or_return(attr_name.to_sym, arg, validation_opts)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Sets the default action
|
|
86
|
+
def self.default_action(action_name=NULL_ARG)
|
|
87
|
+
unless action_name.equal?(NULL_ARG)
|
|
88
|
+
valid_actions.push(action_name)
|
|
89
|
+
@default_action = action_name
|
|
90
|
+
end
|
|
91
|
+
@default_action
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Adds +action_names+ to the list of valid actions for this resource.
|
|
95
|
+
def self.actions(*action_names)
|
|
96
|
+
valid_actions.push(*action_names)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def self.valid_actions
|
|
100
|
+
@valid_actions ||= []
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Set the run context on the class. Used to provide access to the node
|
|
104
|
+
# during class definition.
|
|
105
|
+
def self.run_context=(run_context)
|
|
106
|
+
@run_context = run_context
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def self.run_context
|
|
110
|
+
@run_context
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def self.node
|
|
114
|
+
run_context.node
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Default initializer. Sets the default action and allowed actions.
|
|
118
|
+
def initialize(name, run_context=nil)
|
|
119
|
+
super(name, run_context)
|
|
120
|
+
@resource_name = self.class.resource_name.to_sym
|
|
121
|
+
@action = self.class.default_action
|
|
122
|
+
allowed_actions.push(self.class.valid_actions).flatten!
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
data/lib/chef/resource/mount.rb
CHANGED
|
@@ -76,21 +76,20 @@ class Chef
|
|
|
76
76
|
:kind_of => [ String ]
|
|
77
77
|
)
|
|
78
78
|
end
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
def options(arg=nil)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
arg,
|
|
84
|
-
:kind_of => [ Array, String ]
|
|
85
|
-
)
|
|
86
|
-
if ret.is_a? String
|
|
87
|
-
ret.gsub(/,/, ' ').split(/ /)
|
|
81
|
+
if arg.is_a?(String)
|
|
82
|
+
converted_arg = arg.gsub(/,/, ' ').split(/ /)
|
|
88
83
|
else
|
|
89
|
-
|
|
84
|
+
converted_arg = arg
|
|
90
85
|
end
|
|
91
|
-
|
|
86
|
+
set_or_return(
|
|
87
|
+
:options,
|
|
88
|
+
converted_arg,
|
|
89
|
+
:kind_of => [ Array ]
|
|
90
|
+
)
|
|
92
91
|
end
|
|
93
|
-
|
|
92
|
+
|
|
94
93
|
def dump(arg=nil)
|
|
95
94
|
set_or_return(
|
|
96
95
|
:dump,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Author:: Prajakta Purohit (<prajakta@opscode.com>)
|
|
2
|
+
# Author:: Lamont Granquist (<lamont@opscode.com>)
|
|
3
|
+
#
|
|
4
|
+
# Copyright:: 2011, Opscode, Inc.
|
|
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
|
+
require 'chef/provider/registry_key'
|
|
19
|
+
require 'chef/resource'
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class RegistryKey < Chef::Resource
|
|
24
|
+
|
|
25
|
+
identity_attr :key
|
|
26
|
+
state_attrs :values
|
|
27
|
+
|
|
28
|
+
def initialize(name, run_context=nil)
|
|
29
|
+
super
|
|
30
|
+
@resource_name = :registry_key
|
|
31
|
+
@action = :create
|
|
32
|
+
@architecture = :machine
|
|
33
|
+
@recursive = false
|
|
34
|
+
@key = name
|
|
35
|
+
@values = []
|
|
36
|
+
@allowed_actions.push(:create, :create_if_missing, :delete, :delete_key)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def key(arg=nil)
|
|
40
|
+
set_or_return(
|
|
41
|
+
:key,
|
|
42
|
+
arg,
|
|
43
|
+
:kind_of => String
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
def values(arg=nil)
|
|
47
|
+
if not arg.nil?
|
|
48
|
+
if arg.is_a?(Hash)
|
|
49
|
+
@values = [ arg ]
|
|
50
|
+
elsif arg.is_a?(Array)
|
|
51
|
+
@values = arg
|
|
52
|
+
else
|
|
53
|
+
raise ArgumentError, "Bad type for RegistryKey resource, use Hash or Array"
|
|
54
|
+
end
|
|
55
|
+
@values.each do |v|
|
|
56
|
+
raise ArgumentError, "Missing name key in RegistryKey values hash" unless v.has_key?(:name)
|
|
57
|
+
raise ArgumentError, "Missing type key in RegistryKey values hash" unless v.has_key?(:type)
|
|
58
|
+
raise ArgumentError, "Missing data key in RegistryKey values hash" unless v.has_key?(:data)
|
|
59
|
+
v.each_key do |key|
|
|
60
|
+
raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless [:name,:type,:data].include?(key)
|
|
61
|
+
end
|
|
62
|
+
raise ArgumentError, "Type of name => #{v[:name]} should be string" unless v[:name].is_a?(String)
|
|
63
|
+
raise Argument Error "Type of type => #{v[:name]} should be symbol" unless v[:type].is_a?(Symbol)
|
|
64
|
+
end
|
|
65
|
+
elsif self.instance_variable_defined?(:@values) == true
|
|
66
|
+
@values
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
def recursive(arg=nil)
|
|
70
|
+
set_or_return(
|
|
71
|
+
:recursive,
|
|
72
|
+
arg,
|
|
73
|
+
:kind_of => [TrueClass, FalseClass]
|
|
74
|
+
)
|
|
75
|
+
end
|
|
76
|
+
def architecture(arg=nil)
|
|
77
|
+
set_or_return(
|
|
78
|
+
:architecture,
|
|
79
|
+
arg,
|
|
80
|
+
:kind_of => Symbol
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -51,6 +51,12 @@ class Chef
|
|
|
51
51
|
@provider = Chef::Provider::RemoteDirectory
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
+
if Chef::Platform.windows?
|
|
55
|
+
# create a second instance of the 'rights' attribute
|
|
56
|
+
rights_attribute(:files_rights)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
|
|
54
60
|
def source(args=nil)
|
|
55
61
|
set_or_return(
|
|
56
62
|
:source,
|
|
@@ -83,11 +89,6 @@ class Chef
|
|
|
83
89
|
)
|
|
84
90
|
end
|
|
85
91
|
|
|
86
|
-
if Chef::Platform.windows?
|
|
87
|
-
# create a second instance of the 'rights' attribute
|
|
88
|
-
Chef::Mixin::Securable.rights_attribute(:files_rights)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
92
|
def files_mode(arg=nil)
|
|
92
93
|
set_or_return(
|
|
93
94
|
:files_mode,
|
|
@@ -32,25 +32,18 @@ class Chef
|
|
|
32
32
|
super
|
|
33
33
|
@resource_name = :remote_file
|
|
34
34
|
@action = "create"
|
|
35
|
-
@source =
|
|
36
|
-
@cookbook = nil
|
|
35
|
+
@source = nil
|
|
37
36
|
@provider = Chef::Provider::RemoteFile
|
|
38
37
|
end
|
|
39
38
|
|
|
40
|
-
def source(args
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
args
|
|
44
|
-
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def cookbook(args=nil)
|
|
49
|
-
set_or_return(
|
|
50
|
-
:cookbook,
|
|
51
|
-
args,
|
|
52
|
-
:kind_of => String
|
|
53
|
-
)
|
|
39
|
+
def source(*args)
|
|
40
|
+
if not args.empty?
|
|
41
|
+
args = Array(args).flatten
|
|
42
|
+
validate_source(args)
|
|
43
|
+
@source = args
|
|
44
|
+
elsif self.instance_variable_defined?(:@source) == true
|
|
45
|
+
@source
|
|
46
|
+
end
|
|
54
47
|
end
|
|
55
48
|
|
|
56
49
|
def checksum(args=nil)
|
|
@@ -61,26 +54,24 @@ class Chef
|
|
|
61
54
|
)
|
|
62
55
|
end
|
|
63
56
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
# Chef::Provider::RemoteFile when the source is an absolute URI, like
|
|
67
|
-
# http://www.google.com/robots.txt
|
|
68
|
-
# Chef::Provider::CookbookFile when the source is a relative URI, like
|
|
69
|
-
# 'myscript.pl', 'dir/config.conf'
|
|
70
|
-
def provider
|
|
71
|
-
if absolute_uri?(source)
|
|
72
|
-
Chef::Provider::RemoteFile
|
|
73
|
-
else
|
|
74
|
-
Chef::Log.warn("remote_file is deprecated for fetching files from cookbooks. Use cookbook_file instead")
|
|
75
|
-
Chef::Log.warn("From #{self.to_s} on #{source_line}")
|
|
76
|
-
Chef::Provider::CookbookFile
|
|
77
|
-
end
|
|
57
|
+
def after_created
|
|
58
|
+
validate_source(@source)
|
|
78
59
|
end
|
|
79
60
|
|
|
80
61
|
private
|
|
81
62
|
|
|
63
|
+
def validate_source(source)
|
|
64
|
+
raise ArgumentError, "#{resource_name} has an empty source" if source.empty?
|
|
65
|
+
source.each do |src|
|
|
66
|
+
unless absolute_uri?(src)
|
|
67
|
+
raise Exceptions::InvalidRemoteFileURI,
|
|
68
|
+
"#{src.inspect} is not a valid `source` parameter for #{resource_name}. `source` must be an absolute URI or an array of URIs."
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
82
73
|
def absolute_uri?(source)
|
|
83
|
-
URI.parse(source).absolute?
|
|
74
|
+
source.kind_of?(String) and URI.parse(source).absolute?
|
|
84
75
|
rescue URI::InvalidURIError
|
|
85
76
|
false
|
|
86
77
|
end
|
|
@@ -40,6 +40,7 @@ class Chef
|
|
|
40
40
|
@status_command = nil
|
|
41
41
|
@restart_command = nil
|
|
42
42
|
@reload_command = nil
|
|
43
|
+
@init_command = nil
|
|
43
44
|
@priority = nil
|
|
44
45
|
@action = "nothing"
|
|
45
46
|
@startup_type = :automatic
|
|
@@ -108,6 +109,19 @@ class Chef
|
|
|
108
109
|
)
|
|
109
110
|
end
|
|
110
111
|
|
|
112
|
+
# The path to the init script associated with the service. On many
|
|
113
|
+
# distributions this is '/etc/init.d/SERVICE_NAME' by default. In
|
|
114
|
+
# non-standard configurations setting this value will save having to
|
|
115
|
+
# specify overrides for the start_command, stop_command and
|
|
116
|
+
# restart_command attributes.
|
|
117
|
+
def init_command(arg=nil)
|
|
118
|
+
set_or_return(
|
|
119
|
+
:init_command,
|
|
120
|
+
arg,
|
|
121
|
+
:kind_of => [ String ]
|
|
122
|
+
)
|
|
123
|
+
end
|
|
124
|
+
|
|
111
125
|
# if the service is enabled or not
|
|
112
126
|
def enabled(arg=nil)
|
|
113
127
|
set_or_return(
|
data/lib/chef/resource/user.rb
CHANGED
|
@@ -44,8 +44,6 @@ class Chef
|
|
|
44
44
|
:manage_home => false,
|
|
45
45
|
:non_unique => false
|
|
46
46
|
}
|
|
47
|
-
@iterations = 27855
|
|
48
|
-
@salt = nil
|
|
49
47
|
@allowed_actions.push(:create, :remove, :modify, :manage, :lock, :unlock)
|
|
50
48
|
end
|
|
51
49
|
|
|
@@ -107,22 +105,6 @@ class Chef
|
|
|
107
105
|
)
|
|
108
106
|
end
|
|
109
107
|
|
|
110
|
-
def salt(arg=nil)
|
|
111
|
-
set_or_return(
|
|
112
|
-
:salt,
|
|
113
|
-
arg,
|
|
114
|
-
:kind_of => [ String ]
|
|
115
|
-
)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def iterations(arg=nil)
|
|
119
|
-
set_or_return(
|
|
120
|
-
:iterations,
|
|
121
|
-
arg,
|
|
122
|
-
:kind_of => [ Integer ]
|
|
123
|
-
)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
108
|
def system(arg=nil)
|
|
127
109
|
set_or_return(
|
|
128
110
|
:system,
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
8
|
# you may not use this file except in compliance with the License.
|
|
9
9
|
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
10
|
+
#
|
|
11
11
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
12
|
+
#
|
|
13
13
|
# Unless required by applicable law or agreed to in writing, software
|
|
14
14
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
15
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@@ -23,7 +23,7 @@ require 'chef/resource_collection/stepable_iterator'
|
|
|
23
23
|
class Chef
|
|
24
24
|
class ResourceCollection
|
|
25
25
|
include Enumerable
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
attr_reader :iterator
|
|
28
28
|
|
|
29
29
|
def initialize
|
|
@@ -31,18 +31,18 @@ class Chef
|
|
|
31
31
|
@resources_by_name = Hash.new
|
|
32
32
|
@insert_after_idx = nil
|
|
33
33
|
end
|
|
34
|
-
|
|
34
|
+
|
|
35
35
|
def all_resources
|
|
36
36
|
@resources
|
|
37
37
|
end
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
def [](index)
|
|
40
40
|
@resources[index]
|
|
41
41
|
end
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
def []=(index, arg)
|
|
44
44
|
is_chef_resource(arg)
|
|
45
|
-
@resources[index] = arg
|
|
45
|
+
@resources[index] = arg
|
|
46
46
|
@resources_by_name[arg.to_s] = index
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -50,7 +50,7 @@ class Chef
|
|
|
50
50
|
args.flatten.each do |a|
|
|
51
51
|
is_chef_resource(a)
|
|
52
52
|
@resources << a
|
|
53
|
-
@resources_by_name[a.to_s] = @resources.length - 1
|
|
53
|
+
@resources_by_name[a.to_s] = @resources.length - 1
|
|
54
54
|
end
|
|
55
55
|
end
|
|
56
56
|
|
|
@@ -67,12 +67,12 @@ class Chef
|
|
|
67
67
|
end
|
|
68
68
|
@resources_by_name[resource.to_s] = @insert_after_idx + 1
|
|
69
69
|
@insert_after_idx += 1
|
|
70
|
-
else
|
|
70
|
+
else
|
|
71
71
|
@resources << resource
|
|
72
72
|
@resources_by_name[resource.to_s] = @resources.length - 1
|
|
73
73
|
end
|
|
74
74
|
end
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
def push(*args)
|
|
77
77
|
args.flatten.each do |arg|
|
|
78
78
|
is_chef_resource(arg)
|
|
@@ -80,7 +80,7 @@ class Chef
|
|
|
80
80
|
@resources_by_name[arg.to_s] = @resources.length - 1
|
|
81
81
|
end
|
|
82
82
|
end
|
|
83
|
-
|
|
83
|
+
|
|
84
84
|
def each
|
|
85
85
|
@resources.each do |resource|
|
|
86
86
|
yield resource
|
|
@@ -94,13 +94,17 @@ class Chef
|
|
|
94
94
|
yield resource
|
|
95
95
|
end
|
|
96
96
|
end
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
def each_index
|
|
99
99
|
@resources.each_index do |i|
|
|
100
100
|
yield i
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
|
-
|
|
103
|
+
|
|
104
|
+
def empty?
|
|
105
|
+
@resources.empty?
|
|
106
|
+
end
|
|
107
|
+
|
|
104
108
|
def lookup(resource)
|
|
105
109
|
lookup_by = nil
|
|
106
110
|
if resource.kind_of?(Chef::Resource)
|
|
@@ -125,7 +129,7 @@ class Chef
|
|
|
125
129
|
# find("file[foobar]", "file[baz]")
|
|
126
130
|
# find("file[foobar,baz]")
|
|
127
131
|
#
|
|
128
|
-
# Returns the matching resource, or an Array of matching resources.
|
|
132
|
+
# Returns the matching resource, or an Array of matching resources.
|
|
129
133
|
#
|
|
130
134
|
# Raises an ArgumentError if you feed it bad lookup information
|
|
131
135
|
# Raises a Runtime Error if it can't find the resources you are looking for.
|
|
@@ -145,12 +149,12 @@ class Chef
|
|
|
145
149
|
flat_results = results.flatten
|
|
146
150
|
flat_results.length == 1 ? flat_results[0] : flat_results
|
|
147
151
|
end
|
|
148
|
-
|
|
152
|
+
|
|
149
153
|
# resources is a poorly named, but we have to maintain it for back
|
|
150
154
|
# compat.
|
|
151
155
|
alias_method :resources, :find
|
|
152
|
-
|
|
153
|
-
# Serialize this object as a hash
|
|
156
|
+
|
|
157
|
+
# Serialize this object as a hash
|
|
154
158
|
def to_json(*a)
|
|
155
159
|
instance_vars = Hash.new
|
|
156
160
|
self.instance_variables.each do |iv|
|
|
@@ -162,7 +166,7 @@ class Chef
|
|
|
162
166
|
}
|
|
163
167
|
results.to_json(*a)
|
|
164
168
|
end
|
|
165
|
-
|
|
169
|
+
|
|
166
170
|
def self.json_create(o)
|
|
167
171
|
collection = self.new()
|
|
168
172
|
o["instance_vars"].each do |k,v|
|
|
@@ -172,7 +176,7 @@ class Chef
|
|
|
172
176
|
end
|
|
173
177
|
|
|
174
178
|
private
|
|
175
|
-
|
|
179
|
+
|
|
176
180
|
def find_resource_by_hash(arg)
|
|
177
181
|
results = Array.new
|
|
178
182
|
arg.each do |resource_name, name_list|
|
|
@@ -193,7 +197,7 @@ class Chef
|
|
|
193
197
|
arg =~ /^.+\[(.+)\]$/
|
|
194
198
|
resource_list = $1
|
|
195
199
|
resource_list.split(",").each do |name|
|
|
196
|
-
resource_name = "#{resource_type}[#{name}]"
|
|
200
|
+
resource_name = "#{resource_type}[#{name}]"
|
|
197
201
|
results << lookup(resource_name)
|
|
198
202
|
end
|
|
199
203
|
when /^(.+)\[(.+)\]$/
|
|
@@ -209,7 +213,7 @@ class Chef
|
|
|
209
213
|
|
|
210
214
|
def is_chef_resource(arg)
|
|
211
215
|
unless arg.kind_of?(Chef::Resource)
|
|
212
|
-
raise ArgumentError, "Members must be Chef::Resource's"
|
|
216
|
+
raise ArgumentError, "Members must be Chef::Resource's"
|
|
213
217
|
end
|
|
214
218
|
true
|
|
215
219
|
end
|