chef 16.3.45-universal-mingw32 → 16.5.77-universal-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 +4 -4
- data/Gemfile +1 -1
- data/Rakefile +2 -2
- data/bin/knife +1 -1
- data/chef-universal-mingw32.gemspec +0 -1
- data/chef.gemspec +2 -1
- data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
- data/ext/win32-eventlog/Rakefile +2 -2
- data/ext/win32-eventlog/chef-log.man.erb +4 -4
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +20 -18
- data/lib/chef/application/apply.rb +17 -12
- data/lib/chef/application/base.rb +26 -23
- data/lib/chef/application/client.rb +10 -4
- 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 +39 -39
- data/lib/chef/application/windows_service_manager.rb +6 -6
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +55 -55
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_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 +21 -22
- 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_site_streaming_uploader.rb +13 -11
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/data_collector.rb +6 -5
- data/lib/chef/data_collector/config_validation.rb +22 -13
- data/lib/chef/data_collector/run_end_message.rb +13 -3
- 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 +9 -9
- 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 +4 -4
- 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 +5 -1
- data/lib/chef/file_content_management/tempfile.rb +10 -10
- 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/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 +2 -2
- 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/http.rb +6 -3
- 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 +2 -2
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +18 -16
- 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 +7 -7
- 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/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +23 -23
- data/lib/chef/knife/core/bootstrap_context.rb +2 -2
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
- 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 +42 -34
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +4 -4
- 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 +24 -9
- 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/xargs.rb +19 -19
- 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/checksum.rb +0 -1
- data/lib/chef/mixin/deep_merge.rb +35 -18
- data/lib/chef/mixin/openssl_helper.rb +4 -5
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/mixin/template.rb +3 -3
- data/lib/chef/mixin/uris.rb +4 -2
- data/lib/chef/mixin/versioned_api.rb +1 -2
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/monkey_patches/net_http.rb +4 -4
- data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/node_map.rb +4 -4
- data/lib/chef/platform/service_helpers.rb +1 -1
- data/lib/chef/policy_builder/dynamic.rb +2 -0
- data/lib/chef/policy_builder/policyfile.rb +2 -2
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider.rb +1 -5
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/git.rb +5 -5
- data/lib/chef/provider/group.rb +0 -2
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/ifconfig.rb +1 -4
- data/lib/chef/provider/launchd.rb +2 -2
- data/lib/chef/provider/link.rb +0 -9
- data/lib/chef/provider/mount.rb +0 -2
- data/lib/chef/provider/mount/linux.rb +63 -0
- data/lib/chef/provider/package.rb +0 -2
- data/lib/chef/provider/package/dpkg.rb +3 -12
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/rubygems.rb +22 -19
- data/lib/chef/provider/package/snap.rb +1 -2
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +21 -5
- 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 +2 -6
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/openbsd.rb +1 -4
- data/lib/chef/provider/service/redhat.rb +3 -3
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +10 -10
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +1 -0
- data/lib/chef/provider/template_finder.rb +2 -10
- data/lib/chef/provider/user/dscl.rb +7 -7
- data/lib/chef/provider/user/mac.rb +12 -12
- data/lib/chef/provider/windows_task.rb +1 -5
- data/lib/chef/provider/zypper_repository.rb +2 -3
- data/lib/chef/provider_resolver.rb +1 -1
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +2 -2
- data/lib/chef/resource.rb +8 -12
- data/lib/chef/resource/apt_repository.rb +5 -12
- data/lib/chef/resource/bff_package.rb +22 -0
- data/lib/chef/resource/breakpoint.rb +57 -2
- data/lib/chef/resource/build_essential.rb +1 -1
- data/lib/chef/resource/cab_package.rb +29 -0
- data/lib/chef/resource/chef_client_cron.rb +32 -25
- data/lib/chef/resource/chef_client_launchd.rb +194 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
- data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
- 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 +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +14 -14
- 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 +0 -1
- 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 +8 -9
- 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 +7 -7
- data/lib/chef/resource/hostname.rb +2 -2
- data/lib/chef/resource/launchd.rb +2 -1
- data/lib/chef/resource/locale.rb +2 -2
- data/lib/chef/resource/macos_userdefaults.rb +3 -3
- 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 +29 -5
- data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
- data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
- data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +38 -35
- data/lib/chef/resource/openssl_x509_crl.rb +21 -10
- data/lib/chef/resource/openssl_x509_request.rb +37 -36
- data/lib/chef/resource/osx_profile.rb +292 -6
- data/lib/chef/resource/plist.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +6 -6
- data/lib/chef/resource/powershell_script.rb +24 -30
- data/lib/chef/resource/reboot.rb +2 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- data/lib/chef/resource/rhsm_register.rb +22 -10
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/service.rb +3 -3
- data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
- data/lib/chef/resource/sudo.rb +1 -1
- 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 +6 -10
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +2 -2
- data/lib/chef/resource/timezone.rb +112 -73
- data/lib/chef/resource/windows_ad_join.rb +12 -3
- data/lib/chef/resource/windows_audit_policy.rb +3 -0
- data/lib/chef/resource/windows_auto_run.rb +2 -0
- data/lib/chef/resource/windows_certificate.rb +8 -4
- data/lib/chef/resource/windows_dfs_folder.rb +2 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
- data/lib/chef/resource/windows_dfs_server.rb +2 -0
- data/lib/chef/resource/windows_dns_record.rb +10 -7
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_feature.rb +2 -0
- data/lib/chef/resource/windows_feature_dism.rb +10 -0
- data/lib/chef/resource/windows_feature_powershell.rb +14 -2
- data/lib/chef/resource/windows_firewall_profile.rb +24 -20
- data/lib/chef/resource/windows_firewall_rule.rb +5 -3
- data/lib/chef/resource/windows_font.rb +3 -1
- data/lib/chef/resource/windows_package.rb +28 -5
- data/lib/chef/resource/windows_pagefile.rb +4 -0
- data/lib/chef/resource/windows_printer.rb +22 -21
- data/lib/chef/resource/windows_printer_port.rb +20 -17
- data/lib/chef/resource/windows_security_policy.rb +2 -0
- data/lib/chef/resource/windows_share.rb +5 -3
- data/lib/chef/resource/windows_shortcut.rb +2 -0
- data/lib/chef/resource/windows_uac.rb +2 -0
- data/lib/chef/resource/windows_user_privilege.rb +54 -53
- data/lib/chef/resource/windows_workgroup.rb +5 -6
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resource_reporter.rb +0 -2
- data/lib/chef/resources.rb +3 -1
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +21 -21
- data/lib/chef/run_lock.rb +2 -2
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/search/query.rb +6 -5
- data/lib/chef/shell.rb +32 -27
- data/lib/chef/shell/ext.rb +11 -11
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/train_transport.rb +5 -104
- data/lib/chef/util/backup.rb +2 -2
- data/lib/chef/util/diff.rb +14 -14
- data/lib/chef/util/powershell/cmdlet.rb +4 -2
- 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 +3 -3
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/registry.rb +1 -2
- data/lib/chef/win32/unicode.rb +1 -1
- data/spec/data/shef-config.rb +1 -1
- data/spec/data/ssl/chef-rspec.cert +15 -15
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
- data/spec/functional/resource/aix_service_spec.rb +2 -2
- data/spec/functional/resource/aixinit_service_spec.rb +8 -8
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +0 -1
- data/spec/functional/resource/group_spec.rb +6 -6
- data/spec/functional/resource/insserv_spec.rb +5 -5
- data/spec/functional/resource/link_spec.rb +20 -20
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/rpm_spec.rb +2 -2
- 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 +3 -3
- data/spec/functional/resource/windows_font_spec.rb +49 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
- data/spec/functional/resource/windows_task_spec.rb +13 -13
- data/spec/functional/run_lock_spec.rb +24 -24
- data/spec/functional/version_spec.rb +3 -3
- data/spec/functional/win32/registry_spec.rb +8 -8
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- 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/common_options_spec.rb +12 -12
- data/spec/integration/knife/config_list_spec.rb +220 -0
- data/spec/integration/knife/config_show_spec.rb +192 -0
- data/spec/integration/knife/config_use_spec.rb +198 -0
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +3 -1
- data/spec/integration/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +3 -1
- data/spec/integration/ohai/ohai_spec.rb +61 -0
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +5 -5
- data/spec/spec_helper.rb +12 -11
- data/spec/stress/win32/file_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/platform_helpers.rb +17 -35
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +20 -20
- data/spec/support/shared/functional/securable_resource.rb +108 -27
- data/spec/support/shared/functional/win32_service.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- data/spec/support/shared/unit/application_dot_d.rb +5 -3
- data/spec/support/shared/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- 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/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 +28 -117
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +20 -20
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +1 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
- data/spec/unit/knife/ssh_spec.rb +2 -2
- data/spec/unit/knife/supermarket_share_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 +1 -1
- data/spec/unit/mixin/securable_spec.rb +2 -2
- data/spec/unit/mixin/template_spec.rb +30 -30
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
- data/spec/unit/node/immutable_collections_spec.rb +8 -4
- data/spec/unit/node_spec.rb +5 -5
- data/spec/unit/provider/mount/linux_spec.rb +97 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/rubygems_spec.rb +4 -1
- data/spec/unit/provider/powershell_script_spec.rb +11 -4
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/route_spec.rb +0 -2
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
- data/spec/unit/provider/service/macosx_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider_resolver_spec.rb +6 -6
- data/spec/unit/recipe_spec.rb +1 -1
- data/spec/unit/resource/batch_spec.rb +6 -6
- 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/execute_spec.rb +113 -118
- data/spec/unit/resource/launchd_spec.rb +8 -0
- data/spec/unit/resource/osx_profile_spec.rb +299 -0
- data/spec/unit/resource/powershell_script_spec.rb +11 -29
- data/spec/unit/resource/rhsm_register_spec.rb +56 -18
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/timezone_spec.rb +63 -0
- data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
- data/spec/unit/resource/windows_uac_spec.rb +1 -1
- data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
- data/spec/unit/role_spec.rb +11 -11
- 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 +16 -19
- 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 +42 -33
- data/lib/chef/dist.rb +0 -68
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/spec/integration/knife/config_get_profile_spec.rb +0 -113
- data/spec/integration/knife/config_get_spec.rb +0 -191
- data/spec/integration/knife/config_list_profiles_spec.rb +0 -218
- data/spec/integration/knife/config_use_profile_spec.rb +0 -154
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -307,12 +307,12 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
|
|
307
307
|
let(:number) do
|
308
308
|
# Loop until we pick a gid that is not in use.
|
309
309
|
loop do
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
310
|
+
|
311
|
+
gid = rand(2000..9999) # avoid low group numbers
|
312
|
+
return nil if Etc.getgrgid(gid).nil? # returns nil on windows
|
313
|
+
rescue ArgumentError # group does not exist
|
314
|
+
return gid
|
315
|
+
|
316
316
|
end
|
317
317
|
end
|
318
318
|
|
@@ -38,11 +38,11 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
38
38
|
# Platform specific validation routines.
|
39
39
|
def service_should_be_started(file_name)
|
40
40
|
# The existence of this file indicates that the service was started.
|
41
|
-
expect(File.
|
41
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
|
42
42
|
end
|
43
43
|
|
44
44
|
def service_should_be_stopped(file_name)
|
45
|
-
expect(File.
|
45
|
+
expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
|
46
46
|
end
|
47
47
|
|
48
48
|
def delete_test_files
|
@@ -73,13 +73,13 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
before(:all) do
|
76
|
-
File.delete("/etc/init.d/inittest") if File.
|
77
|
-
FileUtils.cp((File.join(
|
76
|
+
File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
|
77
|
+
FileUtils.cp((File.join(__dir__, "/../assets/inittest")).to_s, "/etc/init.d/inittest")
|
78
78
|
FileUtils.chmod(0755, "/etc/init.d/inittest")
|
79
79
|
end
|
80
80
|
|
81
81
|
after(:all) do
|
82
|
-
File.delete("/etc/init.d/inittest") if File.
|
82
|
+
File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
|
83
83
|
end
|
84
84
|
|
85
85
|
before(:each) do
|
@@ -55,13 +55,13 @@ describe Chef::Resource::Link do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
after(:each) do
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
58
|
+
|
59
|
+
cleanup_link(to) if File.exist?(to)
|
60
|
+
cleanup_link(target_file) if File.exist?(target_file)
|
61
|
+
cleanup_link(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
|
62
|
+
rescue
|
63
|
+
puts "Could not remove a file: #{$!}"
|
64
|
+
|
65
65
|
end
|
66
66
|
|
67
67
|
def user(user)
|
@@ -273,7 +273,7 @@ describe Chef::Resource::Link do
|
|
273
273
|
resource.run_action(:create)
|
274
274
|
end
|
275
275
|
it "preserves the hard link" do
|
276
|
-
expect(File.
|
276
|
+
expect(File.exist?(target_file)).to be_truthy
|
277
277
|
expect(symlink?(target_file)).to be_falsey
|
278
278
|
# Writing to one hardlinked file should cause both
|
279
279
|
# to have the new value.
|
@@ -298,7 +298,7 @@ describe Chef::Resource::Link do
|
|
298
298
|
resource.run_action(:create)
|
299
299
|
end
|
300
300
|
it "links to the target file" do
|
301
|
-
expect(File.
|
301
|
+
expect(File.exist?(target_file)).to be_truthy
|
302
302
|
expect(symlink?(target_file)).to be_falsey
|
303
303
|
# Writing to one hardlinked file should cause both
|
304
304
|
# to have the new value.
|
@@ -338,7 +338,7 @@ describe Chef::Resource::Link do
|
|
338
338
|
include_context "delete succeeds"
|
339
339
|
it "the :delete action does not delete the target file" do
|
340
340
|
resource.run_action(:delete)
|
341
|
-
expect(File.
|
341
|
+
expect(File.exist?(to)).to be_truthy
|
342
342
|
end
|
343
343
|
end
|
344
344
|
context "pointing somewhere else", :requires_root_or_running_windows do
|
@@ -366,7 +366,7 @@ describe Chef::Resource::Link do
|
|
366
366
|
include_context "delete succeeds"
|
367
367
|
it "the :delete action does not delete the target file" do
|
368
368
|
resource.run_action(:delete)
|
369
|
-
expect(File.
|
369
|
+
expect(File.exist?(to)).to be_truthy
|
370
370
|
end
|
371
371
|
end
|
372
372
|
context "pointing nowhere" do
|
@@ -383,7 +383,7 @@ describe Chef::Resource::Link do
|
|
383
383
|
context "and the link already exists and is a hard link to the file" do
|
384
384
|
before(:each) do
|
385
385
|
link(to, target_file)
|
386
|
-
expect(File.
|
386
|
+
expect(File.exist?(target_file)).to be_truthy
|
387
387
|
expect(symlink?(target_file)).to be_falsey
|
388
388
|
end
|
389
389
|
include_context "create symbolic link succeeds"
|
@@ -403,7 +403,7 @@ describe Chef::Resource::Link do
|
|
403
403
|
it "create errors out" do
|
404
404
|
if windows?
|
405
405
|
expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
|
406
|
-
elsif
|
406
|
+
elsif macos? || solaris? || freebsd? || aix?
|
407
407
|
expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
|
408
408
|
else
|
409
409
|
expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
|
@@ -582,14 +582,14 @@ describe Chef::Resource::Link do
|
|
582
582
|
context "and the link already exists and is a hard link to the file" do
|
583
583
|
before(:each) do
|
584
584
|
link(to, target_file)
|
585
|
-
expect(File.
|
585
|
+
expect(File.exist?(target_file)).to be_truthy
|
586
586
|
expect(symlink?(target_file)).to be_falsey
|
587
587
|
end
|
588
588
|
include_context "create hard link is noop"
|
589
589
|
include_context "delete succeeds"
|
590
590
|
it "the :delete action does not delete the target file" do
|
591
591
|
resource.run_action(:delete)
|
592
|
-
expect(File.
|
592
|
+
expect(File.exist?(to)).to be_truthy
|
593
593
|
end
|
594
594
|
end
|
595
595
|
context "and the link already exists and is a file" do
|
@@ -606,7 +606,7 @@ describe Chef::Resource::Link do
|
|
606
606
|
it "errors out" do
|
607
607
|
if windows?
|
608
608
|
expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
|
609
|
-
elsif
|
609
|
+
elsif macos? || solaris? || freebsd? || aix?
|
610
610
|
expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
|
611
611
|
else
|
612
612
|
expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
|
@@ -653,9 +653,9 @@ describe Chef::Resource::Link do
|
|
653
653
|
end
|
654
654
|
context "and the link does not yet exist" do
|
655
655
|
it "links to the target file" do
|
656
|
-
skip("macOS/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if
|
656
|
+
skip("macOS/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if macos? || freebsd? || aix? || solaris?
|
657
657
|
resource.run_action(:create)
|
658
|
-
expect(File.
|
658
|
+
expect(File.exist?(target_file)).to be_truthy
|
659
659
|
# macOS gets angry about this sort of link. Bug in macOS, IMO.
|
660
660
|
expect(symlink?(target_file)).to be_truthy
|
661
661
|
expect(readlink(target_file)).to eq(canonicalize(@other_target))
|
@@ -672,9 +672,9 @@ describe Chef::Resource::Link do
|
|
672
672
|
end
|
673
673
|
context "and the link does not yet exist" do
|
674
674
|
it "links to the target file" do
|
675
|
-
skip("macOS/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if
|
675
|
+
skip("macOS/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if macos? || freebsd? || aix? || solaris?
|
676
676
|
resource.run_action(:create)
|
677
|
-
expect(File.
|
677
|
+
expect(File.exist?(target_file) || File.symlink?(target_file)).to be_truthy
|
678
678
|
expect(symlink?(target_file)).to be_truthy
|
679
679
|
expect(readlink(target_file)).to eq(canonicalize(@other_target))
|
680
680
|
end
|
@@ -273,10 +273,10 @@ describe Chef::Resource::WindowsScript::PowershellScript, :windows_only do
|
|
273
273
|
|
274
274
|
context "when running on a 32-bit version of Windows", :windows32_only do
|
275
275
|
it "raises an exception if :x86_64 process architecture is specified" do
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
276
|
+
|
277
|
+
expect(resource.architecture(:x86_64)).to raise_error Chef::Exceptions::Win32ArchitectureIncorrect
|
278
|
+
rescue Chef::Exceptions::Win32ArchitectureIncorrect
|
279
|
+
|
280
280
|
end
|
281
281
|
end
|
282
282
|
end
|
@@ -39,7 +39,7 @@ describe Chef::Resource::RpmPackage, :requires_root, external: exclude_test do
|
|
39
39
|
# mytest rpm package works in centos, redhat and in suse without any dependency issues.
|
40
40
|
else
|
41
41
|
expect(shell_out("rpm -qa | grep mytest").exitstatus).to eq(0)
|
42
|
-
::File.
|
42
|
+
::File.exist?("/opt/mytest/mytest.sh") # The mytest rpm package contains the mytest.sh file
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -48,7 +48,7 @@ describe Chef::Resource::RpmPackage, :requires_root, external: exclude_test do
|
|
48
48
|
expect(shell_out("rpm -qa | grep dummy").exitstatus).to eq(1)
|
49
49
|
else
|
50
50
|
expect(shell_out("rpm -qa | grep mytest").exitstatus).to eq(1)
|
51
|
-
!::File.
|
51
|
+
!::File.exist?("/opt/mytest/mytest.sh")
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -390,7 +390,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
390
390
|
end
|
391
391
|
|
392
392
|
after do
|
393
|
-
if File.
|
393
|
+
if File.exist?(out_path)
|
394
394
|
File.delete(out_path)
|
395
395
|
end
|
396
396
|
end
|
@@ -405,7 +405,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
405
405
|
expect(no_of_certificates).to eq(1)
|
406
406
|
end
|
407
407
|
it "Stores Certificate content at given path" do
|
408
|
-
expect(File.
|
408
|
+
expect(File.exist?(out_path)).to be_truthy
|
409
409
|
end
|
410
410
|
it "Does not converge while fetching" do
|
411
411
|
expect(win_certificate).not_to be_updated_by_last_action
|
@@ -425,7 +425,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
|
|
425
425
|
expect(stdout.string.strip).to be_empty
|
426
426
|
end
|
427
427
|
it "Does not store certificate content at given path" do
|
428
|
-
expect(File.
|
428
|
+
expect(File.exist?(out_path)).to be_falsy
|
429
429
|
end
|
430
430
|
it "Does not converge while fetching" do
|
431
431
|
expect(win_certificate).not_to be_updated_by_last_action
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Dheeraj Singh Dubey (<ddubey@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "spec_helper"
|
20
|
+
|
21
|
+
describe Chef::Resource::WindowsFont, :windows_only do
|
22
|
+
let(:resource_name) { "Playmaker.ttf" }
|
23
|
+
let(:resource_source) { "https://www.wfonts.com/download/data/2020/05/06/playmaker/Playmaker.ttf" }
|
24
|
+
|
25
|
+
let(:run_context) do
|
26
|
+
node = Chef::Node.new
|
27
|
+
node.default[:platform] = ohai[:platform]
|
28
|
+
node.default[:platform_version] = ohai[:platform_version]
|
29
|
+
node.default[:os] = ohai[:os]
|
30
|
+
events = Chef::EventDispatch::Dispatcher.new
|
31
|
+
Chef::RunContext.new(node, {}, events)
|
32
|
+
end
|
33
|
+
|
34
|
+
subject do
|
35
|
+
resource = Chef::Resource::WindowsFont.new(resource_name, run_context)
|
36
|
+
resource.source resource_source
|
37
|
+
resource
|
38
|
+
end
|
39
|
+
|
40
|
+
it "installs font on first install" do
|
41
|
+
subject.run_action(:install)
|
42
|
+
expect(subject).to be_updated_by_last_action
|
43
|
+
end
|
44
|
+
|
45
|
+
it "does not install font when already installed" do
|
46
|
+
subject.run_action(:install)
|
47
|
+
expect(subject).not_to be_updated_by_last_action
|
48
|
+
end
|
49
|
+
end
|
@@ -17,11 +17,8 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
-
require "chef/mixin/powershell_out"
|
21
20
|
|
22
21
|
describe Chef::Resource::WindowsSecurityPolicy, :windows_only do
|
23
|
-
include Chef::Mixin::PowershellExec
|
24
|
-
|
25
22
|
let(:secoption) { "MaximumPasswordAge" }
|
26
23
|
let(:secvalue) { "30" }
|
27
24
|
let(:windows_test_run_context) do
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
20
|
require "chef/provider/windows_task"
|
21
|
-
require "chef/dist"
|
21
|
+
require "chef-utils/dist"
|
22
22
|
|
23
23
|
describe Chef::Resource::WindowsTask, :windows_only do
|
24
24
|
# resource.task.application_name will default to task_name unless resource.command is set
|
@@ -47,37 +47,37 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
47
47
|
|
48
48
|
context "With Arguments" do
|
49
49
|
it "creates scheduled task and sets command arguments" do
|
50
|
-
subject.command "#{
|
50
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
|
51
51
|
call_for_create_action
|
52
52
|
# loading current resource again to check new task is creted and it matches task parameters
|
53
53
|
current_resource = call_for_load_current_resource
|
54
54
|
expect(current_resource.exists).to eq(true)
|
55
|
-
expect(current_resource.task.application_name).to eq(
|
55
|
+
expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
|
56
56
|
expect(current_resource.task.parameters).to eq("-W")
|
57
57
|
end
|
58
58
|
|
59
59
|
it "does not converge the resource if it is already converged" do
|
60
|
-
subject.command "#{
|
60
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
|
61
61
|
subject.run_action(:create)
|
62
|
-
subject.command "#{
|
62
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
|
63
63
|
subject.run_action(:create)
|
64
64
|
expect(subject).not_to be_updated_by_last_action
|
65
65
|
end
|
66
66
|
|
67
67
|
it "creates scheduled task and sets command arguments when arguments inclusive single quotes" do
|
68
|
-
subject.command "#{
|
68
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
|
69
69
|
call_for_create_action
|
70
70
|
# loading current resource again to check new task is creted and it matches task parameters
|
71
71
|
current_resource = call_for_load_current_resource
|
72
72
|
expect(current_resource.exists).to eq(true)
|
73
|
-
expect(current_resource.task.application_name).to eq(
|
73
|
+
expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
|
74
74
|
expect(current_resource.task.parameters).to eq("-W -L 'C:\\chef\\chef-ad-join.log'")
|
75
75
|
end
|
76
76
|
|
77
77
|
it "does not converge the resource if it is already converged" do
|
78
|
-
subject.command "#{
|
78
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
|
79
79
|
subject.run_action(:create)
|
80
|
-
subject.command "#{
|
80
|
+
subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
|
81
81
|
subject.run_action(:create)
|
82
82
|
expect(subject).not_to be_updated_by_last_action
|
83
83
|
end
|
@@ -137,19 +137,19 @@ describe Chef::Resource::WindowsTask, :windows_only do
|
|
137
137
|
|
138
138
|
context "Without Arguments" do
|
139
139
|
it "creates scheduled task and sets command arguments" do
|
140
|
-
subject.command
|
140
|
+
subject.command ChefUtils::Dist::Infra::CLIENT
|
141
141
|
call_for_create_action
|
142
142
|
# loading current resource again to check new task is creted and it matches task parameters
|
143
143
|
current_resource = call_for_load_current_resource
|
144
144
|
expect(current_resource.exists).to eq(true)
|
145
|
-
expect(current_resource.task.application_name).to eq(
|
145
|
+
expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
|
146
146
|
expect(current_resource.task.parameters).to be_empty
|
147
147
|
end
|
148
148
|
|
149
149
|
it "does not converge the resource if it is already converged" do
|
150
|
-
subject.command
|
150
|
+
subject.command ChefUtils::Dist::Infra::CLIENT
|
151
151
|
subject.run_action(:create)
|
152
|
-
subject.command
|
152
|
+
subject.command ChefUtils::Dist::Infra::CLIENT
|
153
153
|
subject.run_action(:create)
|
154
154
|
expect(subject).not_to be_updated_by_last_action
|
155
155
|
end
|
@@ -61,17 +61,17 @@ describe Chef::RunLock do
|
|
61
61
|
let!(:p1) { ClientProcess.new(self, "p1") }
|
62
62
|
let!(:p2) { ClientProcess.new(self, "p2") }
|
63
63
|
after(:each) do |example|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
64
|
+
|
65
|
+
p1.stop
|
66
|
+
p2.stop
|
67
|
+
rescue
|
68
|
+
example.exception = $!
|
69
|
+
raise
|
70
|
+
ensure
|
71
|
+
if example.exception
|
72
|
+
print_events
|
74
73
|
end
|
74
|
+
|
75
75
|
end
|
76
76
|
|
77
77
|
def print_events
|
@@ -445,21 +445,21 @@ describe Chef::RunLock do
|
|
445
445
|
def start
|
446
446
|
example.log_event("#{name}.start")
|
447
447
|
@pid = fork do
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
end
|
459
|
-
rescue
|
460
|
-
fire_event($!.message.lines.join(" // "))
|
461
|
-
raise
|
448
|
+
|
449
|
+
Timeout.timeout(CLIENT_PROCESS_TIMEOUT) do
|
450
|
+
run_lock = TestRunLock.new(example.lockfile)
|
451
|
+
run_lock.client_process = self
|
452
|
+
fire_event("started")
|
453
|
+
run_lock.acquire
|
454
|
+
fire_event("acquired lock")
|
455
|
+
run_lock.save_pid
|
456
|
+
fire_event("saved pid")
|
457
|
+
exit!(0)
|
462
458
|
end
|
459
|
+
rescue
|
460
|
+
fire_event($!.message.lines.join(" // "))
|
461
|
+
raise
|
462
|
+
|
463
463
|
end
|
464
464
|
example.log_event("#{name}.start forked (pid #{pid})")
|
465
465
|
end
|