chef 16.4.38 → 16.7.61
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +5 -12
- data/Rakefile +22 -15
- data/bin/knife +1 -1
- data/chef-universal-mingw32.gemspec +1 -1
- data/chef.gemspec +2 -1
- data/lib/chef/application.rb +19 -17
- data/lib/chef/application/apply.rb +12 -7
- data/lib/chef/application/base.rb +26 -23
- data/lib/chef/application/client.rb +16 -5
- data/lib/chef/application/exit_code.rb +13 -4
- data/lib/chef/application/knife.rb +22 -11
- data/lib/chef/application/solo.rb +2 -1
- data/lib/chef/application/windows_service.rb +14 -14
- data/lib/chef/application/windows_service_manager.rb +6 -6
- data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/knife.rb +2 -2
- data/lib/chef/chef_fs/parallelizer.rb +0 -1
- data/lib/chef/client.rb +13 -43
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +2 -5
- data/lib/chef/data_collector.rb +7 -6
- data/lib/chef/data_collector/config_validation.rb +22 -13
- data/lib/chef/data_collector/run_end_message.rb +2 -2
- data/lib/chef/data_collector/run_start_message.rb +1 -1
- data/lib/chef/deprecated.rb +1 -1
- data/lib/chef/deprecation/warnings.rb +2 -2
- data/lib/chef/digester.rb +2 -2
- data/lib/chef/dsl/chef_vault.rb +1 -1
- data/lib/chef/dsl/data_query.rb +2 -2
- data/lib/chef/dsl/platform_introspection.rb +1 -1
- data/lib/chef/encrypted_data_bag_item.rb +3 -4
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
- data/lib/chef/environment.rb +3 -3
- data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
- data/lib/chef/exceptions.rb +5 -5
- data/lib/chef/file_access_control/windows.rb +6 -5
- data/lib/chef/file_content_management/tempfile.rb +1 -1
- data/lib/chef/formatters/doc.rb +7 -6
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +6 -6
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
- data/lib/chef/formatters/indentable_output_stream.rb +2 -2
- data/lib/chef/formatters/minimal.rb +5 -4
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +28 -39
- data/lib/chef/http.rb +6 -14
- data/lib/chef/http/auth_credentials.rb +5 -1
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/http/basic_client.rb +4 -2
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +7 -5
- data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
- data/lib/chef/http/ssl_policies.rb +1 -1
- data/lib/chef/json_compat.rb +3 -8
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +18 -15
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +9 -9
- data/lib/chef/knife/client_create.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -97
- data/lib/chef/knife/config_get_profile.rb +9 -9
- data/lib/chef/knife/config_list.rb +139 -0
- data/lib/chef/knife/config_list_profiles.rb +8 -98
- data/lib/chef/knife/config_show.rb +127 -0
- data/lib/chef/knife/config_use.rb +61 -0
- data/lib/chef/knife/config_use_profile.rb +9 -24
- data/lib/chef/knife/configure.rb +4 -2
- data/lib/chef/knife/core/bootstrap_context.rb +2 -2
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -15
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/node_policy_set.rb +2 -2
- data/lib/chef/knife/node_run_list_add.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/node_run_list_set.rb +1 -1
- data/lib/chef/knife/node_show.rb +2 -2
- data/lib/chef/knife/role_env_run_list_add.rb +1 -1
- data/lib/chef/knife/role_env_run_list_set.rb +1 -1
- data/lib/chef/knife/role_run_list_add.rb +1 -1
- data/lib/chef/knife/role_run_list_set.rb +1 -1
- data/lib/chef/knife/search.rb +0 -1
- data/lib/chef/knife/serve.rb +3 -3
- data/lib/chef/knife/ssh.rb +18 -3
- data/lib/chef/knife/ssl_check.rb +3 -3
- data/lib/chef/knife/status.rb +2 -2
- data/lib/chef/knife/tag_create.rb +1 -1
- data/lib/chef/knife/tag_delete.rb +1 -1
- data/lib/chef/knife/user_create.rb +2 -2
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/local_mode.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +2 -2
- data/lib/chef/mixin/convert_to_class_name.rb +0 -56
- data/lib/chef/mixin/deep_merge.rb +0 -12
- data/lib/chef/mixin/openssl_helper.rb +2 -5
- data/lib/chef/mixin/powershell_exec.rb +22 -10
- data/lib/chef/mixin/powershell_out.rb +12 -5
- data/lib/chef/mixin/properties.rb +2 -0
- data/lib/chef/mixin/template.rb +3 -3
- data/lib/chef/mixin/unformatter.rb +1 -1
- data/lib/chef/mixin/uris.rb +4 -2
- data/lib/chef/mixin/versioned_api.rb +1 -2
- data/lib/chef/node/attribute_collections.rb +2 -6
- data/lib/chef/node/mixin/immutablize_hash.rb +2 -0
- data/lib/chef/node_map.rb +4 -4
- data/lib/chef/policy_builder/dynamic.rb +2 -0
- data/lib/chef/policy_builder/policyfile.rb +2 -2
- data/lib/chef/powershell.rb +8 -4
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider.rb +1 -5
- data/lib/chef/provider/cron.rb +2 -13
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/group.rb +14 -6
- data/lib/chef/provider/group/windows.rb +12 -1
- data/lib/chef/provider/ifconfig.rb +9 -9
- data/lib/chef/provider/ifconfig/debian.rb +38 -22
- data/lib/chef/provider/ifconfig/redhat.rb +54 -18
- data/lib/chef/provider/launchd.rb +3 -13
- data/lib/chef/provider/link.rb +0 -9
- data/lib/chef/provider/mount.rb +18 -1
- data/lib/chef/provider/mount/linux.rb +67 -0
- data/lib/chef/provider/mount/mount.rb +41 -43
- data/lib/chef/provider/package.rb +3 -0
- data/lib/chef/provider/package/apt.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +6 -6
- data/lib/chef/provider/package/dpkg.rb +3 -12
- data/lib/chef/provider/package/freebsd/base.rb +3 -2
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -1
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/ips.rb +1 -1
- data/lib/chef/provider/package/powershell.rb +2 -3
- data/lib/chef/provider/package/rubygems.rb +22 -19
- data/lib/chef/provider/package/snap.rb +1 -4
- data/lib/chef/provider/package/solaris.rb +0 -2
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
- data/lib/chef/provider/package/yum/rpm_utils.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +99 -72
- data/lib/chef/provider/powershell_script.rb +12 -1
- data/lib/chef/provider/registry_key.rb +4 -3
- data/lib/chef/provider/remote_file/content.rb +3 -0
- data/lib/chef/provider/remote_file/ftp.rb +6 -4
- data/lib/chef/provider/remote_file/sftp.rb +6 -4
- data/lib/chef/provider/route.rb +4 -8
- data/lib/chef/provider/service/debian.rb +2 -1
- data/lib/chef/provider/service/macosx.rb +2 -2
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/template_finder.rb +2 -10
- data/lib/chef/provider/user.rb +17 -9
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +5 -5
- data/lib/chef/provider/user/mac.rb +15 -7
- data/lib/chef/provider/user/solaris.rb +1 -1
- data/lib/chef/provider/user/windows.rb +10 -3
- data/lib/chef/provider/zypper_repository.rb +2 -2
- data/lib/chef/provider_resolver.rb +1 -1
- data/lib/chef/providers.rb +1 -3
- data/lib/chef/pwsh.rb +71 -0
- data/lib/chef/recipe.rb +2 -2
- data/lib/chef/resource.rb +2 -2
- data/lib/chef/resource/apt_repository.rb +6 -5
- data/lib/chef/resource/bash.rb +119 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +22 -0
- data/lib/chef/resource/breakpoint.rb +59 -2
- data/lib/chef/resource/build_essential.rb +5 -8
- data/lib/chef/resource/cab_package.rb +29 -0
- data/lib/chef/resource/chef_client_config.rb +313 -0
- data/lib/chef/resource/chef_client_cron.rb +35 -28
- data/lib/chef/resource/chef_client_launchd.rb +194 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +24 -21
- data/lib/chef/resource/chef_client_systemd_timer.rb +27 -20
- data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
- data/lib/chef/resource/chef_gem.rb +10 -10
- data/lib/chef/resource/chef_handler.rb +149 -4
- data/lib/chef/resource/chef_sleep.rb +3 -3
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/cookbook_file.rb +2 -2
- data/lib/chef/resource/cron/_cron_shared.rb +1 -0
- data/lib/chef/resource/cron/cron_d.rb +2 -3
- data/lib/chef/resource/csh.rb +2 -2
- data/lib/chef/resource/dnf_package.rb +2 -2
- data/lib/chef/resource/dsc_resource.rb +0 -1
- data/lib/chef/resource/dsc_script.rb +2 -2
- data/lib/chef/resource/execute.rb +10 -8
- data/lib/chef/resource/file.rb +4 -4
- data/lib/chef/resource/gem_package.rb +5 -5
- data/lib/chef/resource/homebrew_package.rb +3 -3
- data/lib/chef/resource/homebrew_update.rb +9 -6
- data/lib/chef/resource/hostname.rb +4 -4
- data/lib/chef/resource/ifconfig.rb +52 -5
- data/lib/chef/resource/kernel_module.rb +1 -1
- data/lib/chef/resource/ksh.rb +3 -3
- data/lib/chef/resource/launchd.rb +17 -16
- data/lib/chef/resource/locale.rb +2 -2
- data/lib/chef/resource/lwrp_base.rb +3 -5
- data/lib/chef/resource/macos_userdefaults.rb +3 -3
- data/lib/chef/resource/mount.rb +8 -2
- data/lib/chef/resource/notify_group.rb +0 -1
- data/lib/chef/resource/ohai.rb +46 -3
- data/lib/chef/resource/ohai_hint.rb +33 -0
- data/lib/chef/resource/openssl_dhparam.rb +27 -5
- data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
- data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
- data/lib/chef/resource/openssl_x509_crl.rb +19 -10
- data/lib/chef/resource/openssl_x509_request.rb +14 -16
- data/lib/chef/resource/osx_profile.rb +77 -13
- data/lib/chef/resource/perl.rb +2 -2
- data/lib/chef/resource/plist.rb +3 -7
- data/lib/chef/resource/powershell_package_source.rb +24 -23
- data/lib/chef/resource/powershell_script.rb +14 -11
- data/lib/chef/resource/python.rb +2 -2
- data/lib/chef/resource/reboot.rb +2 -2
- data/lib/chef/resource/registry_key.rb +93 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- data/lib/chef/resource/rhsm_register.rb +22 -10
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby.rb +2 -2
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/scm/_scm.rb +2 -1
- data/lib/chef/resource/scm/git.rb +82 -1
- data/lib/chef/resource/scm/subversion.rb +14 -2
- data/lib/chef/resource/script.rb +2 -2
- data/lib/chef/resource/service.rb +3 -3
- data/lib/chef/resource/solaris_package.rb +0 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
- data/lib/chef/resource/sudo.rb +1 -1
- data/lib/chef/resource/support/client.erb +64 -0
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -1
- data/lib/chef/resource/support/ulimit.erb +1 -1
- data/lib/chef/resource/sysctl.rb +1 -5
- data/lib/chef/resource/systemd_unit.rb +44 -3
- data/lib/chef/resource/template.rb +2 -2
- data/lib/chef/resource/timezone.rb +112 -73
- data/lib/chef/resource/windows_ad_join.rb +19 -12
- data/lib/chef/resource/windows_audit_policy.rb +26 -24
- data/lib/chef/resource/windows_certificate.rb +12 -10
- data/lib/chef/resource/windows_dfs_server.rb +7 -4
- data/lib/chef/resource/windows_env.rb +173 -0
- data/lib/chef/resource/windows_feature.rb +2 -0
- data/lib/chef/resource/windows_firewall_profile.rb +28 -31
- data/lib/chef/resource/windows_firewall_rule.rb +9 -11
- data/lib/chef/resource/windows_font.rb +1 -1
- data/lib/chef/resource/windows_package.rb +29 -5
- data/lib/chef/resource/windows_path.rb +38 -0
- data/lib/chef/resource/windows_printer.rb +5 -3
- data/lib/chef/resource/windows_printer_port.rb +6 -4
- data/lib/chef/resource/windows_security_policy.rb +5 -5
- data/lib/chef/resource/windows_service.rb +108 -0
- data/lib/chef/resource/windows_share.rb +18 -18
- data/lib/chef/resource/windows_task.rb +629 -28
- data/lib/chef/resource/windows_user_privilege.rb +53 -54
- data/lib/chef/resource/windows_workgroup.rb +9 -7
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resource/yum_repository.rb +1 -1
- data/lib/chef/resource_collection/resource_set.rb +1 -5
- data/lib/chef/resource_inspector.rb +77 -75
- data/lib/chef/resource_reporter.rb +0 -2
- data/lib/chef/resources.rb +4 -1
- data/lib/chef/run_context.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/run_lock.rb +3 -3
- data/lib/chef/search/query.rb +6 -5
- data/lib/chef/server_api.rb +0 -4
- data/lib/chef/shell.rb +31 -26
- data/lib/chef/shell/ext.rb +12 -12
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/train_transport.rb +5 -104
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +3 -3
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -3
- data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
- data/lib/chef/util/powershell/cmdlet.rb +6 -10
- data/lib/chef/util/powershell/ps_credential.rb +18 -14
- data/lib/chef/util/threaded_job_queue.rb +0 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/crypto.rb +1 -1
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/registry.rb +1 -2
- data/lib/chef/win32/security/sid.rb +1 -1
- data/lib/chef/win32/unicode.rb +1 -1
- data/spec/data/shef-config.rb +1 -1
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
- data/spec/functional/mixin/powershell_out_spec.rb +11 -3
- data/spec/functional/resource/aix_service_spec.rb +2 -2
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/apt_package_spec.rb +4 -6
- data/spec/functional/resource/chocolatey_package_spec.rb +3 -3
- data/spec/functional/resource/cron_spec.rb +3 -3
- data/spec/functional/resource/dsc_script_spec.rb +3 -3
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/mount_spec.rb +10 -2
- data/spec/functional/resource/powershell_package_source_spec.rb +107 -0
- data/spec/functional/resource/powershell_script_spec.rb +57 -14
- data/spec/functional/resource/user/dscl_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +1 -1
- data/spec/functional/resource/windows_certificate_spec.rb +10 -6
- data/spec/functional/resource/windows_firewall_rule_spec.rb +93 -0
- data/spec/functional/resource/windows_package_spec.rb +36 -10
- data/spec/functional/resource/windows_share_spec.rb +103 -0
- data/spec/functional/resource/windows_task_spec.rb +15 -16
- data/spec/functional/resource/zypper_package_spec.rb +11 -0
- data/spec/functional/version_spec.rb +3 -3
- data/spec/integration/client/client_spec.rb +4 -4
- data/spec/integration/client/exit_code_spec.rb +3 -2
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/knife/client_key_create_spec.rb +1 -1
- data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
- data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
- data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/node_create_spec.rb +1 -1
- data/spec/integration/knife/node_environment_set_spec.rb +1 -1
- data/spec/integration/knife/node_run_list_add_spec.rb +4 -4
- data/spec/integration/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/integration/knife/node_run_list_set_spec.rb +1 -1
- data/spec/integration/knife/node_show_spec.rb +1 -1
- data/spec/integration/ohai/ohai_spec.rb +61 -0
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/provider_choice.rb +2 -2
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +5 -5
- data/spec/spec_helper.rb +8 -6
- data/spec/stress/win32/file_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/cat.rb +1 -1
- data/spec/support/lib/chef/resource/one_two_three_four.rb +1 -1
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/mock/platform.rb +24 -16
- data/spec/support/platform_helpers.rb +27 -38
- data/spec/support/shared/functional/securable_resource.rb +108 -27
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/unit/application_dot_d.rb +5 -3
- data/spec/support/shared/unit/knife_shared.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +4 -4
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/tiny_server.rb +0 -1
- data/spec/unit/application/client_spec.rb +2 -2
- data/spec/unit/application/exit_code_spec.rb +10 -0
- data/spec/unit/application_spec.rb +4 -6
- data/spec/unit/chef_fs/config_spec.rb +1 -1
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
- data/spec/unit/chef_fs/path_util_spec.rb +1 -1
- data/spec/unit/client_spec.rb +16 -0
- data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
- data/spec/unit/cookbook_spec.rb +2 -2
- data/spec/unit/data_collector/config_validation_spec.rb +208 -0
- data/spec/unit/data_collector_spec.rb +0 -117
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +11 -11
- data/spec/unit/knife/bootstrap_spec.rb +6 -6
- data/spec/unit/knife/client_create_spec.rb +2 -2
- data/spec/unit/knife/configure_client_spec.rb +5 -5
- data/spec/unit/knife/configure_spec.rb +3 -3
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_list_spec.rb +2 -2
- data/spec/unit/knife/cookbook_metadata_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +1 -0
- data/spec/unit/knife/environment_compare_spec.rb +3 -3
- data/spec/unit/knife/ssh_spec.rb +2 -2
- data/spec/unit/knife/supermarket_download_spec.rb +8 -8
- data/spec/unit/knife/supermarket_list_spec.rb +3 -3
- data/spec/unit/knife/supermarket_search_spec.rb +1 -1
- data/spec/unit/knife/tag_create_spec.rb +1 -1
- data/spec/unit/knife/tag_delete_spec.rb +1 -1
- data/spec/unit/knife/user_create_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +3 -3
- data/spec/unit/mixin/deep_merge_spec.rb +15 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
- data/spec/unit/mixin/powershell_exec_spec.rb +39 -2
- data/spec/unit/mixin/powershell_out_spec.rb +14 -0
- data/spec/unit/mixin/securable_spec.rb +2 -2
- data/spec/unit/mixin/which.rb +1 -1
- data/spec/unit/node/immutable_collections_spec.rb +2 -2
- data/spec/unit/provider/group/windows_spec.rb +6 -0
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/mount/linux_spec.rb +107 -0
- data/spec/unit/provider/mount/mount_spec.rb +21 -10
- data/spec/unit/provider/mount/solaris_spec.rb +1 -1
- data/spec/unit/provider/mount_spec.rb +31 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +2 -3
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +4 -1
- data/spec/unit/provider/package/zypper_spec.rb +0 -25
- data/spec/unit/provider/package_spec.rb +2 -2
- data/spec/unit/provider/powershell_script_spec.rb +11 -0
- data/spec/unit/provider/route_spec.rb +0 -2
- data/spec/unit/provider/subversion_spec.rb +0 -3
- data/spec/unit/provider/user_spec.rb +7 -1
- data/spec/unit/provider/windows_env_spec.rb +18 -34
- data/spec/unit/provider/windows_path_spec.rb +6 -11
- data/spec/unit/provider/windows_task_spec.rb +7 -6
- data/spec/unit/recipe_spec.rb +1 -1
- data/spec/unit/resource/breakpoint_spec.rb +1 -1
- data/spec/unit/resource/build_essential_spec.rb +0 -12
- data/spec/unit/resource/chef_client_config_spec.rb +137 -0
- data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
- data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
- data/spec/unit/resource/ifconfig_spec.rb +2 -10
- data/spec/unit/resource/launchd_spec.rb +8 -0
- data/spec/unit/resource/mount_spec.rb +18 -5
- data/spec/unit/resource/osx_profile_spec.rb +67 -1
- data/spec/unit/resource/powershell_package_source_spec.rb +20 -20
- data/spec/unit/resource/powershell_script_spec.rb +4 -74
- data/spec/unit/resource/rhsm_register_spec.rb +56 -18
- data/spec/unit/resource/service_spec.rb +2 -2
- data/spec/unit/resource/solaris_package_spec.rb +8 -10
- data/spec/unit/resource/timezone_spec.rb +63 -0
- data/spec/unit/resource/windows_uac_spec.rb +1 -1
- data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
- data/spec/unit/resource_inspector_spec.rb +3 -3
- data/spec/unit/run_lock_spec.rb +5 -1
- data/spec/unit/runner_spec.rb +1 -2
- data/spec/unit/shell/shell_ext_spec.rb +46 -3
- data/spec/unit/shell/shell_session_spec.rb +35 -64
- data/spec/unit/shell_spec.rb +18 -21
- data/spec/unit/train_transport_spec.rb +14 -13
- data/spec/unit/util/selinux_spec.rb +2 -0
- data/tasks/rspec.rb +1 -3
- metadata +49 -27
- data/lib/chef/dist.rb +0 -68
- data/lib/chef/monkey_patches/net_http.rb +0 -22
- data/lib/chef/provider/windows_env.rb +0 -210
- data/lib/chef/provider/windows_path.rb +0 -61
- data/lib/chef/provider/windows_task.rb +0 -632
- data/spec/integration/knife/config_get_profile_spec.rb +0 -114
- data/spec/support/mock/constant.rb +0 -52
- data/spec/unit/monkey_patches/uri_spec.rb +0 -34
- data/spec/unit/provider_resolver_spec.rb +0 -885
- data/spec/unit/resource/data/InstallHistory_with_CLT.plist +0 -92
- data/spec/unit/resource/data/InstallHistory_without_CLT.plist +0 -38
data/lib/chef/resource/python.rb
CHANGED
@@ -31,9 +31,9 @@ class Chef
|
|
31
31
|
|
32
32
|
description "Use the **python** resource to execute scripts using the Python interpreter."\
|
33
33
|
" This resource may also use any of the actions and properties that are available"\
|
34
|
-
" to the execute resource. Commands that are executed with this resource are (by"\
|
34
|
+
" to the **execute** resource. Commands that are executed with this resource are (by"\
|
35
35
|
" their nature) not idempotent, as they are typically unique to the environment in"\
|
36
|
-
" which they are run. Use not_if and only_if to guard this resource for idempotence."
|
36
|
+
" which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/chef/resource/reboot.rb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../resource"
|
20
|
-
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
|
37
37
|
property :reason, String,
|
38
38
|
description: "A string that describes the reboot action.",
|
39
|
-
default: "Reboot by #{
|
39
|
+
default: "Reboot by #{ChefUtils::Dist::Infra::PRODUCT}"
|
40
40
|
|
41
41
|
property :delay_mins, Integer,
|
42
42
|
description: "The amount of time (in minutes) to delay a reboot request.",
|
@@ -27,7 +27,96 @@ class Chef
|
|
27
27
|
provides(:registry_key) { true }
|
28
28
|
|
29
29
|
description "Use the **registry_key** resource to create and delete registry keys in Microsoft Windows."
|
30
|
-
|
30
|
+
examples <<~'DOC'
|
31
|
+
**Create a registry key**
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
registry_key 'HKEY_LOCAL_MACHINE\\path-to-key\\Policies\\System' do
|
35
|
+
values [{
|
36
|
+
name: 'EnableLUA',
|
37
|
+
type: :dword,
|
38
|
+
data: 0
|
39
|
+
}]
|
40
|
+
action :create
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
**Create a registry key with binary data: "\x01\x02\x03"**:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
registry_key 'HKEY_CURRENT_USER\ChefTest' do
|
48
|
+
values [{
|
49
|
+
:name => "test",
|
50
|
+
:type => :binary,
|
51
|
+
:data => [0, 1, 2].map(&:chr).join
|
52
|
+
}]
|
53
|
+
action :create
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
57
|
+
**Create 32-bit key in redirected wow6432 tree**
|
58
|
+
|
59
|
+
In 64-bit versions of Microsoft Windows, HKEY_LOCAL_MACHINE\SOFTWARE\Example is a re-directed key. In the following examples, because HKEY_LOCAL_MACHINE\SOFTWARE\Example is a 32-bit key, the output will be “Found 32-bit key” if they are run on a version of Microsoft Windows that is 64-bit:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Example' do
|
63
|
+
architecture :i386
|
64
|
+
recursive true
|
65
|
+
action :create
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
**Set proxy settings to be the same as those used by Chef Infra Client**
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
proxy = URI.parse(Chef::Config[:http_proxy])
|
73
|
+
registry_key 'HKCU\Software\Microsoft\path\to\key\Internet Settings' do
|
74
|
+
values [{name: 'ProxyEnable', type: :reg_dword, data: 1},
|
75
|
+
{name: 'ProxyServer', data: "#{proxy.host}:#{proxy.port}"},
|
76
|
+
{name: 'ProxyOverride', type: :reg_string, data: <local>},
|
77
|
+
]
|
78
|
+
action :create
|
79
|
+
end
|
80
|
+
```
|
81
|
+
|
82
|
+
**Set the name of a registry key to "(Default)"**
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
registry_key 'Set (Default) value' do
|
86
|
+
key 'HKLM\Software\Test\Key\Path'
|
87
|
+
values [
|
88
|
+
{name: '', type: :string, data: 'test'},
|
89
|
+
]
|
90
|
+
action :create
|
91
|
+
end
|
92
|
+
```
|
93
|
+
|
94
|
+
**Delete a registry key value**
|
95
|
+
|
96
|
+
```ruby
|
97
|
+
registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\path\to\key\AU' do
|
98
|
+
values [{
|
99
|
+
name: 'NoAutoRebootWithLoggedOnUsers',
|
100
|
+
type: :dword,
|
101
|
+
data: ''
|
102
|
+
}]
|
103
|
+
action :delete
|
104
|
+
end
|
105
|
+
```
|
106
|
+
|
107
|
+
Note: If data: is not specified, you get an error: Missing data key in RegistryKey values hash
|
108
|
+
|
109
|
+
**Delete a registry key and its subkeys, recursively**
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
registry_key 'HKCU\SOFTWARE\Policies\path\to\key\Themes' do
|
113
|
+
recursive true
|
114
|
+
action :delete_key
|
115
|
+
end
|
116
|
+
```
|
117
|
+
|
118
|
+
Note: Be careful when using the :delete_key action with the recursive attribute. This will delete the registry key, all of its values and all of the names, types, and data associated with them. This cannot be undone by Chef Infra Client.
|
119
|
+
DOC
|
31
120
|
|
32
121
|
state_attrs :values
|
33
122
|
|
@@ -72,6 +161,8 @@ class Chef
|
|
72
161
|
|
73
162
|
property :key, String, name_property: true
|
74
163
|
|
164
|
+
VALID_VALUE_HASH_KEYS = %i{name type data}.freeze
|
165
|
+
|
75
166
|
def values(arg = nil)
|
76
167
|
if not arg.nil?
|
77
168
|
if arg.is_a?(Hash)
|
@@ -89,7 +180,7 @@ class Chef
|
|
89
180
|
raise ArgumentError, "Missing name key in RegistryKey values hash" unless v.key?(:name)
|
90
181
|
|
91
182
|
v.each_key do |key|
|
92
|
-
raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless
|
183
|
+
raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless VALID_VALUE_HASH_KEYS.include?(key)
|
93
184
|
end
|
94
185
|
raise ArgumentError, "Type of name => #{v[:name]} should be string" unless v[:name].is_a?(String)
|
95
186
|
|
@@ -22,7 +22,7 @@ require_relative "file"
|
|
22
22
|
require_relative "../provider/remote_file"
|
23
23
|
require_relative "../mixin/securable"
|
24
24
|
require_relative "../mixin/uris"
|
25
|
-
|
25
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
26
26
|
|
27
27
|
class Chef
|
28
28
|
class Resource
|
@@ -74,7 +74,7 @@ class Chef
|
|
74
74
|
end
|
75
75
|
|
76
76
|
property :checksum, String,
|
77
|
-
description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{
|
77
|
+
description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{ChefUtils::Dist::Infra::PRODUCT} does not download it."
|
78
78
|
|
79
79
|
# Disable or enable ETag and Last Modified conditional GET. Equivalent to
|
80
80
|
# use_etag(true_or_false)
|
@@ -93,7 +93,7 @@ class Chef
|
|
93
93
|
description: "Enable `If-Modified-Since` headers. Set to `false` to disable `If-Modified-Since` headers. To use this setting, `use_conditional_get` must also be set to `true`."
|
94
94
|
|
95
95
|
property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
|
96
|
-
description: "Whether #{
|
96
|
+
description: "Whether #{ChefUtils::Dist::Infra::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
|
97
97
|
|
98
98
|
property :headers, Hash, default: lazy { {} },
|
99
99
|
description: "A Hash of custom HTTP headers."
|
@@ -16,7 +16,7 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require_relative "../resource"
|
19
|
-
|
19
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
20
20
|
require "shellwords" unless defined?(Shellwords)
|
21
21
|
|
22
22
|
class Chef
|
@@ -47,6 +47,10 @@ class Chef
|
|
47
47
|
property :password, String,
|
48
48
|
description: "The password to use when registering. This property is not applicable if using an activation key. If specified, username and environment are also required."
|
49
49
|
|
50
|
+
property :system_name, String,
|
51
|
+
description: "The name of the system to register, defaults to the hostname.",
|
52
|
+
introduced: "16.5"
|
53
|
+
|
50
54
|
property :auto_attach,
|
51
55
|
[TrueClass, FalseClass],
|
52
56
|
description: "If true, RHSM will attempt to automatically attach the host to applicable subscriptions. It is generally better to use an activation key with the subscriptions pre-defined.",
|
@@ -61,7 +65,7 @@ class Chef
|
|
61
65
|
default: false, desired_state: false
|
62
66
|
|
63
67
|
property :https_for_ca_consumer, [TrueClass, FalseClass],
|
64
|
-
description: "If true, #{
|
68
|
+
description: "If true, #{ChefUtils::Dist::Infra::PRODUCT} will fetch the katello-ca-consumer-latest.noarch.rpm from the satellite_host using HTTPS.",
|
65
69
|
default: false, desired_state: false,
|
66
70
|
introduced: "15.9"
|
67
71
|
|
@@ -121,24 +125,30 @@ class Chef
|
|
121
125
|
end
|
122
126
|
|
123
127
|
action_class do
|
128
|
+
#
|
129
|
+
# @return [Symbol] dnf_package or yum_package depending on OS release
|
130
|
+
#
|
124
131
|
def package_resource
|
125
132
|
node["platform_version"].to_i >= 8 ? :dnf_package : :yum_package
|
126
133
|
end
|
127
134
|
|
135
|
+
#
|
136
|
+
# @return [Boolean] is the node registered with RHSM
|
137
|
+
#
|
128
138
|
def registered_with_rhsm?
|
129
|
-
|
130
|
-
cmd = Mixlib::ShellOut.new("subscription-manager status", env: { LANG: "en_US" })
|
131
|
-
cmd.run_command
|
132
|
-
!cmd.stdout.match(/Overall Status: Unknown/)
|
139
|
+
@registered ||= !shell_out("subscription-manager status").stdout.include?("Overall Status: Unknown")
|
133
140
|
end
|
134
141
|
|
142
|
+
#
|
143
|
+
# @return [Boolean] is katello-ca-consumer installed
|
144
|
+
#
|
135
145
|
def katello_cert_rpm_installed?
|
136
|
-
|
137
|
-
cmd = Mixlib::ShellOut.new("rpm -qa | grep katello-ca-consumer")
|
138
|
-
cmd.run_command
|
139
|
-
!cmd.stdout.match(/katello-ca-consumer/).nil?
|
146
|
+
shell_out("rpm -qa").stdout.include?("katello-ca-consumer")
|
140
147
|
end
|
141
148
|
|
149
|
+
#
|
150
|
+
# @return [String] The URI to fetch katello-ca-consumer-latest.noarch.rpm from
|
151
|
+
#
|
142
152
|
def ca_consumer_package_source
|
143
153
|
protocol = new_resource.https_for_ca_consumer ? "https" : "http"
|
144
154
|
"#{protocol}://#{new_resource.satellite_host}/pub/katello-ca-consumer-latest.noarch.rpm"
|
@@ -153,6 +163,7 @@ class Chef
|
|
153
163
|
|
154
164
|
command << new_resource.activation_key.map { |key| "--activationkey=#{Shellwords.shellescape(key)}" }
|
155
165
|
command << "--org=#{Shellwords.shellescape(new_resource.organization)}"
|
166
|
+
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
156
167
|
command << "--force" if new_resource.force
|
157
168
|
|
158
169
|
return command.join(" ")
|
@@ -165,6 +176,7 @@ class Chef
|
|
165
176
|
command << "--username=#{Shellwords.shellescape(new_resource.username)}"
|
166
177
|
command << "--password=#{Shellwords.shellescape(new_resource.password)}"
|
167
178
|
command << "--environment=#{Shellwords.shellescape(new_resource.environment)}" if using_satellite_host?
|
179
|
+
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
168
180
|
command << "--auto-attach" if new_resource.auto_attach
|
169
181
|
command << "--force" if new_resource.force
|
170
182
|
|
data/lib/chef/resource/route.rb
CHANGED
@@ -43,7 +43,7 @@ class Chef
|
|
43
43
|
description: "The route metric value."
|
44
44
|
|
45
45
|
property :netmask, [String, nil],
|
46
|
-
description: "The decimal representation of the network mask. For example: 255.255.255.0
|
46
|
+
description: "The decimal representation of the network mask. For example: `255.255.255.0`."
|
47
47
|
|
48
48
|
property :gateway, [String, nil],
|
49
49
|
description: "The gateway for the route."
|
data/lib/chef/resource/ruby.rb
CHANGED
@@ -27,9 +27,9 @@ class Chef
|
|
27
27
|
|
28
28
|
description "Use the **ruby** resource to execute scripts using the Ruby interpreter. This"\
|
29
29
|
" resource may also use any of the actions and properties that are available"\
|
30
|
-
" to the execute resource. Commands that are executed with this resource are (by"\
|
30
|
+
" to the **execute** resource. Commands that are executed with this resource are (by"\
|
31
31
|
" their nature) not idempotent, as they are typically unique to the environment"\
|
32
|
-
" in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
32
|
+
" in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
|
33
33
|
|
34
34
|
def initialize(name, run_context = nil)
|
35
35
|
super
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
require_relative "../resource"
|
21
21
|
require_relative "../provider/ruby_block"
|
22
|
-
|
22
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Resource
|
@@ -28,7 +28,7 @@ class Chef
|
|
28
28
|
|
29
29
|
provides :ruby_block, target_mode: true
|
30
30
|
|
31
|
-
description "Use the **ruby_block** resource to execute Ruby code during a #{
|
31
|
+
description "Use the **ruby_block** resource to execute Ruby code during a #{ChefUtils::Dist::Infra::PRODUCT} run. Ruby code in the ruby_block resource is evaluated with other resources during convergence, whereas Ruby code outside of a ruby_block resource is evaluated before other resources, as the recipe is compiled."
|
32
32
|
|
33
33
|
default_action :run
|
34
34
|
allowed_actions :create, :run
|
@@ -33,7 +33,8 @@ property :revision, String,
|
|
33
33
|
default: "HEAD"
|
34
34
|
|
35
35
|
property :user, [String, Integer],
|
36
|
-
description: "The system user that will own the checked-out code."
|
36
|
+
description: "The system user that will own the checked-out code.",
|
37
|
+
default_description: "`HOME` environment variable of the user running #{ChefUtils::Dist::Infra::CLIENT}"
|
37
38
|
|
38
39
|
property :group, [String, Integer],
|
39
40
|
description: "The system group that will own the checked-out code."
|
@@ -28,6 +28,87 @@ class Chef
|
|
28
28
|
provides :git
|
29
29
|
|
30
30
|
description "Use the **git** resource to manage source control resources that exist in a git repository. git version 1.6.5 (or higher) is required to use all of the functionality in the git resource."
|
31
|
+
examples <<~DOC
|
32
|
+
**Use the git mirror**
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
git '/opt/my_sources/couch' do
|
36
|
+
repository 'git://git.apache.org/couchdb.git'
|
37
|
+
revision 'master'
|
38
|
+
action :sync
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
**Use different branches**
|
43
|
+
|
44
|
+
To use different branches, depending on the environment of the node:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
branch_name = if node.chef_environment == 'QA'
|
48
|
+
'staging'
|
49
|
+
else
|
50
|
+
'master'
|
51
|
+
end
|
52
|
+
|
53
|
+
git '/home/user/deployment' do
|
54
|
+
repository 'git@github.com:git_site/deployment.git'
|
55
|
+
revision branch_name
|
56
|
+
action :sync
|
57
|
+
user 'user'
|
58
|
+
group 'test'
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
Where the `branch_name` variable is set to staging or master, depending on the environment of the node. Once this is determined, the `branch_name` variable is used to set the revision for the repository. If the git status command is used after running the example above, it will return the branch name as `deploy`, as this is the default value. Run Chef Infra Client in debug mode to verify that the correct branches are being checked out:
|
63
|
+
|
64
|
+
```
|
65
|
+
sudo chef-client -l debug
|
66
|
+
```
|
67
|
+
|
68
|
+
**Install an application from git using bash**
|
69
|
+
|
70
|
+
The following example shows how Bash can be used to install a plug-in for rbenv named ruby-build, which is located in git version source control. First, the application is synchronized, and then Bash changes its working directory to the location in which ruby-build is located, and then runs a command.
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
git "#{Chef::Config[:file_cache_path]}/ruby-build" do
|
74
|
+
repository 'git://github.com/rbenv/ruby-build.git'
|
75
|
+
revision 'master'
|
76
|
+
action :sync
|
77
|
+
end
|
78
|
+
|
79
|
+
bash 'install_ruby_build' do
|
80
|
+
cwd "#{Chef::Config[:file_cache_path]}/ruby-build"
|
81
|
+
user 'rbenv'
|
82
|
+
group 'rbenv'
|
83
|
+
code <<-EOH
|
84
|
+
./install.sh
|
85
|
+
EOH
|
86
|
+
environment 'PREFIX' => '/usr/local'
|
87
|
+
end
|
88
|
+
```
|
89
|
+
|
90
|
+
**Notify a resource post-checkout**
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
git "#{Chef::Config[:file_cache_path]}/my_app" do
|
94
|
+
repository node['my_app']['git_repository']
|
95
|
+
revision node['my_app']['git_revision']
|
96
|
+
action :sync
|
97
|
+
notifies :run, 'bash[compile_my_app]', :immediately
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
**Pass in environment variables**
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
git '/opt/my_sources/couch' do
|
105
|
+
repository 'git://git.apache.org/couchdb.git'
|
106
|
+
revision 'master'
|
107
|
+
environment 'VAR' => 'whatever'
|
108
|
+
action :sync
|
109
|
+
end
|
110
|
+
```
|
111
|
+
DOC
|
31
112
|
|
32
113
|
property :additional_remotes, Hash,
|
33
114
|
description: "A Hash of additional remotes that are added to the git repository configuration.",
|
@@ -41,7 +122,7 @@ class Chef
|
|
41
122
|
default: false
|
42
123
|
|
43
124
|
property :enable_checkout, [TrueClass, FalseClass],
|
44
|
-
description: "Check out a repo from master. Set to false when using the checkout_branch attribute to prevent the git resource from attempting to check out master from master
|
125
|
+
description: "Check out a repo from master. Set to `false` when using the `checkout_branch` attribute to prevent the git resource from attempting to check out `master` from `master`.",
|
45
126
|
default: true
|
46
127
|
|
47
128
|
property :remote, String,
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
@@ -29,6 +29,18 @@ class Chef
|
|
29
29
|
provides :subversion
|
30
30
|
|
31
31
|
description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository."
|
32
|
+
examples <<~DOC
|
33
|
+
**Get the latest version of an application**
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
subversion 'CouchDB Edge' do
|
37
|
+
repository 'http://svn.apache.org/repos/asf/couchdb/trunk'
|
38
|
+
revision 'HEAD'
|
39
|
+
destination '/opt/my_sources/couch'
|
40
|
+
action :sync
|
41
|
+
end
|
42
|
+
```
|
43
|
+
DOC
|
32
44
|
|
33
45
|
allowed_actions :force_export
|
34
46
|
|
@@ -38,7 +50,7 @@ class Chef
|
|
38
50
|
default: "--no-auth-cache"
|
39
51
|
|
40
52
|
property :svn_info_args, [String, nil, FalseClass],
|
41
|
-
description: "Use when the `svn info` command is used by #{
|
53
|
+
description: "Use when the `svn info` command is used by #{ChefUtils::Dist::Infra::PRODUCT} and arguments need to be passed. The `svn_arguments` command does not work when the `svn info` command is used.",
|
42
54
|
coerce: proc { |v| v == false ? nil : v }, # coerce false to nil
|
43
55
|
default: "--no-auth-cache"
|
44
56
|
|
data/lib/chef/resource/script.rb
CHANGED
@@ -29,9 +29,9 @@ class Chef
|
|
29
29
|
identity_attr :name
|
30
30
|
|
31
31
|
description "Use the **script** resource to execute scripts using a specified interpreter, such as Bash, csh, Perl, Python, or Ruby."\
|
32
|
-
" This resource may also use any of the actions and properties that are available to the execute resource. Commands"\
|
32
|
+
" This resource may also use any of the actions and properties that are available to the **execute** resource. Commands"\
|
33
33
|
" that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the"\
|
34
|
-
" environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
34
|
+
" environment in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
|
35
35
|
|
36
36
|
def initialize(name, run_context = nil)
|
37
37
|
super
|