puppet 6.17.0-x64-mingw32 → 6.21.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +2 -0
- data/Gemfile.lock +38 -34
- data/README.md +1 -2
- data/Rakefile +4 -12
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +9 -3
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +50 -8
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +88 -38
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +19 -15
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +67 -1
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +55 -8
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/resource/type.rb +2 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +10 -3
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -3
- data/lib/puppet/type/file.rb +2 -2
- data/lib/puppet/type/file/source.rb +28 -8
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +10 -15
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fact_dif.rb +62 -0
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +15 -1
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/user.rb +219 -0
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +342 -312
- data/man/man5/puppet.conf.5 +53 -18
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +208 -55
- data/spec/integration/application/apply_spec.rb +168 -149
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +19 -1
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +0 -10
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +60 -13
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +0 -1
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +4 -4
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +70 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +85 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +28 -0
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +56 -3
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -10
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +2 -0
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +0 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +36 -3
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util_spec.rb +13 -6
- metadata +49 -50
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
data/spec/unit/ssl/base_spec.rb
CHANGED
@@ -47,7 +47,6 @@ describe Puppet::SSL::Certificate do
|
|
47
47
|
describe "when initializing wrapped class from a file with #read" do
|
48
48
|
it "should open the file with ASCII encoding" do
|
49
49
|
path = '/foo/bar/cert'
|
50
|
-
allow(Puppet::SSL::Base).to receive(:valid_certname).and_return(true)
|
51
50
|
expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("bar")
|
52
51
|
@base.read(path)
|
53
52
|
end
|
data/spec/unit/ssl/host_spec.rb
CHANGED
@@ -263,8 +263,6 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
|
|
263
263
|
end
|
264
264
|
|
265
265
|
it "should send a new request to the CA for signing" do
|
266
|
-
@http = double("http")
|
267
|
-
allow(@host).to receive(:http_client).and_return(@http)
|
268
266
|
allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
|
269
267
|
allow(@host).to receive(:key).and_return(key)
|
270
268
|
request = double("request")
|
@@ -307,7 +305,6 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
|
|
307
305
|
Puppet[:certdir] = tmpdir('certs')
|
308
306
|
allow(@host).to receive(:key).and_return(double("key"))
|
309
307
|
allow(@host).to receive(:validate_certificate_with_key)
|
310
|
-
allow(@host).to receive(:http_client).and_return(@http)
|
311
308
|
allow(@host).to receive(:ssl_store).and_return(double("ssl store"))
|
312
309
|
end
|
313
310
|
|
@@ -464,8 +461,6 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
|
|
464
461
|
@revoked_cert = @pki[:revoked_root_node_cert]
|
465
462
|
localcacert = Puppet.settings[:localcacert]
|
466
463
|
Puppet::Util.replace_file(localcacert, 0644) {|f| f.write @pki[:ca_bundle] }
|
467
|
-
@http = double('http')
|
468
|
-
allow(@host).to receive(:http_client).and_return(@http)
|
469
464
|
end
|
470
465
|
|
471
466
|
after do
|
@@ -271,14 +271,20 @@ describe Puppet::SSL::SSLProvider do
|
|
271
271
|
end
|
272
272
|
|
273
273
|
# This option is only available in openssl 1.1
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
274
|
+
# OpenSSL 1.1.1h no longer reports expired root CAs when using "verify".
|
275
|
+
# This regression was fixed in 1.1.1i, so only skip this test if we're on
|
276
|
+
# the affected version.
|
277
|
+
# See: https://github.com/openssl/openssl/pull/13585
|
278
|
+
if Puppet::Util::Package.versioncmp(OpenSSL::OPENSSL_LIBRARY_VERSION.split[1], '1.1.1h') != 0
|
279
|
+
it 'raises if root cert signature is invalid', if: defined?(OpenSSL::X509::V_FLAG_CHECK_SS_SIGNATURE) do
|
280
|
+
ca = global_cacerts.first
|
281
|
+
ca.sign(wrong_key, OpenSSL::Digest::SHA256.new)
|
282
|
+
|
283
|
+
expect {
|
284
|
+
subject.create_context(**config.merge(cacerts: global_cacerts))
|
285
|
+
}.to raise_error(Puppet::SSL::CertVerifyError,
|
286
|
+
"Invalid signature for certificate 'CN=Test CA'")
|
287
|
+
end
|
282
288
|
end
|
283
289
|
|
284
290
|
it 'raises if intermediate CA signature is invalid' do
|
@@ -33,10 +33,6 @@ describe Puppet::Transaction::AdditionalResourceGenerator do
|
|
33
33
|
|
34
34
|
newparam(:code)
|
35
35
|
|
36
|
-
def respond_to?(method_name)
|
37
|
-
method_name == self[:kind] || super
|
38
|
-
end
|
39
|
-
|
40
36
|
def eval_generate
|
41
37
|
eval_code
|
42
38
|
end
|
@@ -314,13 +310,13 @@ describe Puppet::Transaction::AdditionalResourceGenerator do
|
|
314
310
|
|
315
311
|
it "sets resources_failed_to_generate to true if resource#eval_generate raises an exception" do
|
316
312
|
catalog = compile_to_ral(<<-MANIFEST)
|
317
|
-
|
313
|
+
generator { thing: }
|
318
314
|
MANIFEST
|
319
315
|
|
320
|
-
allow(catalog.resource("
|
316
|
+
allow(catalog.resource("Generator[thing]")).to receive(:eval_generate).and_raise(RuntimeError)
|
321
317
|
relationship_graph = relationship_graph_for(catalog)
|
322
318
|
generator = Puppet::Transaction::AdditionalResourceGenerator.new(catalog, relationship_graph, prioritizer)
|
323
|
-
generator.eval_generate(catalog.resource("
|
319
|
+
generator.eval_generate(catalog.resource("Generator[thing]"))
|
324
320
|
|
325
321
|
expect(generator.resources_failed_to_generate).to be_truthy
|
326
322
|
end
|
@@ -152,6 +152,9 @@ describe Puppet::Transaction::EventManager do
|
|
152
152
|
|
153
153
|
@resource = Puppet::Type.type(:file).new :path => make_absolute("/my/file")
|
154
154
|
@event = Puppet::Transaction::Event.new(:name => :event, :resource => @resource)
|
155
|
+
|
156
|
+
@resource.class.send(:define_method, :callback1) {}
|
157
|
+
@resource.class.send(:define_method, :callback2) {}
|
155
158
|
end
|
156
159
|
|
157
160
|
it "should call the required callback once for each set of associated events" do
|
@@ -178,7 +181,7 @@ describe Puppet::Transaction::EventManager do
|
|
178
181
|
|
179
182
|
allow(@resource).to receive(:callback1)
|
180
183
|
|
181
|
-
@manager.process_events(@resource)
|
184
|
+
@manager.process_events(@resource)
|
182
185
|
|
183
186
|
expect(@transaction.resource_status(@resource).events.length).to eq(1)
|
184
187
|
end
|
@@ -211,9 +214,11 @@ describe Puppet::Transaction::EventManager do
|
|
211
214
|
@event2 = Puppet::Transaction::Event.new(:name => :event, :resource => @resource)
|
212
215
|
@event2.status = "success"
|
213
216
|
expect(@manager).to receive(:queued_events).with(@resource).and_yield(:callback1, [@event, @event2])
|
217
|
+
@resource.class.send(:define_method, :callback1) {}
|
214
218
|
end
|
215
219
|
|
216
220
|
it "should call the callback" do
|
221
|
+
|
217
222
|
expect(@resource).to receive(:callback1)
|
218
223
|
|
219
224
|
@manager.process_events(@resource)
|
@@ -225,6 +230,7 @@ describe Puppet::Transaction::EventManager do
|
|
225
230
|
allow(@event).to receive(:status).and_return("noop")
|
226
231
|
allow(@resource).to receive(:event).and_return(Puppet::Transaction::Event.new)
|
227
232
|
expect(@manager).to receive(:queued_events).with(@resource).and_yield(:callback1, [@event])
|
233
|
+
@resource.class.send(:define_method, :callback1) {}
|
228
234
|
end
|
229
235
|
|
230
236
|
it "should log" do
|
@@ -254,6 +260,7 @@ describe Puppet::Transaction::EventManager do
|
|
254
260
|
allow(@resource).to receive(:event).and_return(Puppet::Transaction::Event.new)
|
255
261
|
allow(@resource).to receive(:noop?).and_return(true)
|
256
262
|
expect(@manager).to receive(:queued_events).with(@resource).and_yield(:callback1, [@event])
|
263
|
+
@resource.class.send(:define_method, :callback1) {}
|
257
264
|
end
|
258
265
|
|
259
266
|
it "should log" do
|
@@ -279,7 +286,7 @@ describe Puppet::Transaction::EventManager do
|
|
279
286
|
|
280
287
|
describe "and the callback fails" do
|
281
288
|
before do
|
282
|
-
|
289
|
+
@resource.class.send(:define_method, :callback1) { raise "a failure" }
|
283
290
|
|
284
291
|
expect(@manager).to receive(:queued_events).and_yield(:callback1, [@event])
|
285
292
|
end
|
@@ -323,16 +330,12 @@ describe Puppet::Transaction::EventManager do
|
|
323
330
|
|
324
331
|
describe "when queueing then processing events for a given resource" do
|
325
332
|
before do
|
326
|
-
@
|
327
|
-
@
|
333
|
+
@catalog = Puppet::Resource::Catalog.new
|
334
|
+
@target = Puppet::Type.type(:exec).new(name: 'target', path: ENV['PATH'])
|
335
|
+
@resource = Puppet::Type.type(:exec).new(name: 'resource', path: ENV['PATH'], notify: @target)
|
336
|
+
@catalog.add_resource(@resource, @target)
|
328
337
|
|
329
|
-
@
|
330
|
-
@target = Puppet::Type.type(:file).new :path => make_absolute("/your/file")
|
331
|
-
|
332
|
-
@graph = allow('graph')
|
333
|
-
allow(@graph).to receive(:matching_edges).and_return([])
|
334
|
-
allow(@graph).to receive(:matching_edges).with(anything, @resource).and_return([double('edge', :target => @target, :callback => :refresh)])
|
335
|
-
allow(@manager).to receive(:relationship_graph).and_return(@graph)
|
338
|
+
@manager = Puppet::Transaction::EventManager.new(Puppet::Transaction.new(@catalog, nil, nil))
|
336
339
|
|
337
340
|
@event = Puppet::Transaction::Event.new(:name => :notify, :resource => @target)
|
338
341
|
@event2 = Puppet::Transaction::Event.new(:name => :service_start, :resource => @target, :invalidate_refreshes => true)
|
@@ -123,6 +123,21 @@ describe Puppet::Transaction::Persistence do
|
|
123
123
|
persistence = Puppet::Transaction::Persistence.new
|
124
124
|
persistence.load
|
125
125
|
end
|
126
|
+
|
127
|
+
it 'should load Time and Symbols' do
|
128
|
+
write_state_file(<<~END)
|
129
|
+
File[/tmp/audit]:
|
130
|
+
parameters:
|
131
|
+
mtime:
|
132
|
+
system_value:
|
133
|
+
- 2020-07-15 05:38:12.427678398 +00:00
|
134
|
+
ensure:
|
135
|
+
system_value:
|
136
|
+
END
|
137
|
+
|
138
|
+
persistence = Puppet::Transaction::Persistence.new
|
139
|
+
expect(persistence.load.dig("File[/tmp/audit]", "parameters", "mtime", "system_value")).to contain_exactly(be_a(Time))
|
140
|
+
end
|
126
141
|
end
|
127
142
|
end
|
128
143
|
|
@@ -676,6 +676,7 @@ Version:
|
|
676
676
|
report.catalog_uuid = "some catalog uuid"
|
677
677
|
report.cached_catalog_status = "not_used"
|
678
678
|
report.master_used = "test:000"
|
679
|
+
report.server_used = "test:000"
|
679
680
|
report.add_resource_status(status)
|
680
681
|
report.transaction_completed = true
|
681
682
|
report.finalize_report
|
@@ -694,6 +695,7 @@ Version:
|
|
694
695
|
report.catalog_uuid = "some catalog uuid"
|
695
696
|
report.cached_catalog_status = "not_used"
|
696
697
|
report.master_used = "test:000"
|
698
|
+
report.server_used = "test:000"
|
697
699
|
report.add_resource_status(status)
|
698
700
|
report.transaction_completed = true
|
699
701
|
report.finalize_report
|
@@ -5,6 +5,13 @@ require 'puppet_spec/compiler'
|
|
5
5
|
require 'puppet/transaction'
|
6
6
|
require 'fileutils'
|
7
7
|
|
8
|
+
Puppet::Type.newtype(:generator) do
|
9
|
+
newparam(:name) { isnamevar }
|
10
|
+
|
11
|
+
def generate
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
describe Puppet::Transaction do
|
9
16
|
include PuppetSpec::Files
|
10
17
|
include PuppetSpec::Compiler
|
@@ -323,9 +330,9 @@ describe Puppet::Transaction do
|
|
323
330
|
describe "when generating resources before traversal" do
|
324
331
|
let(:catalog) { Puppet::Resource::Catalog.new }
|
325
332
|
let(:transaction) { Puppet::Transaction.new(catalog, nil, Puppet::Graph::SequentialPrioritizer.new) }
|
326
|
-
let(:generator) { Puppet::Type.type(:
|
333
|
+
let(:generator) { Puppet::Type.type(:generator).new :title => "generator" }
|
327
334
|
let(:generated) do
|
328
|
-
%w[a b c].map { |name| Puppet::Type.type(:
|
335
|
+
%w[a b c].map { |name| Puppet::Type.type(:generator).new(:name => name) }
|
329
336
|
end
|
330
337
|
|
331
338
|
before :each do
|
@@ -666,7 +673,7 @@ describe Puppet::Transaction do
|
|
666
673
|
end
|
667
674
|
|
668
675
|
describe "and new resources are generated" do
|
669
|
-
let(:generator) { Puppet::Type.type(:
|
676
|
+
let(:generator) { Puppet::Type.type(:generator).new :title => "generator" }
|
670
677
|
let(:generated) do
|
671
678
|
%w[a b c].map { |name| Puppet::Type.type(:package).new :title => "foo", :name => name, :provider => :apt }
|
672
679
|
end
|
@@ -785,6 +792,9 @@ describe Puppet::Transaction do
|
|
785
792
|
def self.is_selinux_enabled
|
786
793
|
true
|
787
794
|
end
|
795
|
+
|
796
|
+
def self.matchpathcon_fini
|
797
|
+
end
|
788
798
|
end
|
789
799
|
end
|
790
800
|
|
@@ -828,7 +838,6 @@ describe Puppet::Transaction do
|
|
828
838
|
before do
|
829
839
|
@resource = Puppet::Type.type(:notify).new :title => "foobar"
|
830
840
|
@catalog.add_resource @resource
|
831
|
-
allow(@transaction).to receive(:add_dynamically_generated_resources)
|
832
841
|
end
|
833
842
|
|
834
843
|
it 'should stop processing if :stop_processing? is true' do
|
@@ -11,7 +11,6 @@ describe Puppet::Type.type(:file).attrclass(:content), :uses_checksums => true d
|
|
11
11
|
|
12
12
|
before do
|
13
13
|
File.open(filename, 'w') {|f| f.write "initial file content"}
|
14
|
-
allow(described_class).to receive(:standalone?).and_return(false)
|
15
14
|
end
|
16
15
|
|
17
16
|
around do |example|
|
@@ -9,8 +9,6 @@ require 'spec_helper'
|
|
9
9
|
@path = make_absolute("/my/file")
|
10
10
|
@resource = Puppet::Type.type(:file).new :path => @path
|
11
11
|
@sel = property.new :resource => @resource
|
12
|
-
allow(@sel).to receive(:normalize_selinux_category).with("s0").and_return("s0")
|
13
|
-
allow(@sel).to receive(:normalize_selinux_category).with(nil).and_return(nil)
|
14
12
|
end
|
15
13
|
|
16
14
|
it "retrieve on #{param} should return :absent if the file isn't statable" do
|
@@ -521,7 +521,7 @@ describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
|
|
521
521
|
end
|
522
522
|
|
523
523
|
it "should return the default source port" do
|
524
|
-
Puppet[:
|
524
|
+
Puppet[:serverport] = 1234
|
525
525
|
expect(resource.parameter(:source).port).to eq(1234)
|
526
526
|
end
|
527
527
|
end
|
data/spec/unit/type/file_spec.rb
CHANGED
@@ -344,12 +344,6 @@ describe Puppet::Type.type(:file) do
|
|
344
344
|
end
|
345
345
|
|
346
346
|
describe "#flush" do
|
347
|
-
it "should flush all properties that respond to :flush" do
|
348
|
-
file[:source] = File.expand_path(__FILE__)
|
349
|
-
expect(file.parameter(:source)).to receive(:flush)
|
350
|
-
file.flush
|
351
|
-
end
|
352
|
-
|
353
347
|
it "should reset its stat reference" do
|
354
348
|
FileUtils.touch(path)
|
355
349
|
stat1 = file.stat
|
@@ -60,9 +60,12 @@ describe Puppet::Type.type(:group) do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
it "delegates the existence check to its provider" do
|
63
|
-
provider = @class.provide(:testing)
|
63
|
+
provider = @class.provide(:testing) do
|
64
|
+
def exists?
|
65
|
+
true
|
66
|
+
end
|
67
|
+
end
|
64
68
|
provider_instance = provider.new
|
65
|
-
expect(provider_instance).to receive(:exists?).and_return(true)
|
66
69
|
|
67
70
|
type = @class.new(:name => "group", :provider => provider_instance)
|
68
71
|
|
@@ -77,20 +80,24 @@ describe Puppet::Type.type(:group) do
|
|
77
80
|
def members
|
78
81
|
[]
|
79
82
|
end
|
83
|
+
|
84
|
+
def members_insync?(current, should)
|
85
|
+
current == should
|
86
|
+
end
|
87
|
+
|
88
|
+
def members_to_s(values)
|
89
|
+
values.map { |v| "#{v} ()" }.join(', ')
|
90
|
+
end
|
80
91
|
end
|
81
92
|
end
|
82
93
|
let (:provider_instance) { provider.new }
|
83
94
|
let (:type) { @class.new(:name => "group", :provider => provider_instance, :members => ['user1']) }
|
84
95
|
|
85
96
|
it "insync? calls members_insync?" do
|
86
|
-
expect(provider_instance).to receive(:members_insync?).with(['user1'], ['user1']).and_return(true)
|
87
97
|
expect(type.property(:members).insync?(['user1'])).to be_truthy
|
88
98
|
end
|
89
99
|
|
90
100
|
it "is_to_s and should_to_s call members_to_s" do
|
91
|
-
expect(provider_instance).to receive(:members_to_s).with(['user1', 'user2']).and_return("user1 (), user2 ()")
|
92
|
-
expect(provider_instance).to receive(:members_to_s).with(['user1']).and_return("user1 ()")
|
93
|
-
|
94
101
|
expect(type.property(:members).is_to_s('user1')).to eq('user1 ()')
|
95
102
|
expect(type.property(:members).should_to_s('user1,user2')).to eq('user1 (), user2 ()')
|
96
103
|
end
|
@@ -6,6 +6,9 @@ Puppet::Type.newtype(:purgeable_test) do
|
|
6
6
|
newparam(:name) {}
|
7
7
|
end
|
8
8
|
Puppet::Type.type(:purgeable_test).provide(:purgeable_test) do
|
9
|
+
def self.instances
|
10
|
+
[]
|
11
|
+
end
|
9
12
|
end
|
10
13
|
|
11
14
|
resources = Puppet::Type.type(:resources)
|
@@ -46,19 +49,16 @@ describe resources do
|
|
46
49
|
end
|
47
50
|
|
48
51
|
it "cannot be set to true for a resource type that does not accept ensure" do
|
49
|
-
allow(instance.resource_type).to receive(:
|
50
|
-
|
51
|
-
expect { instance[:purge] = 'yes' }.to raise_error Puppet::Error
|
52
|
+
allow(instance.resource_type).to receive(:validproperty?).with(:ensure).and_return(false)
|
53
|
+
expect { instance[:purge] = 'yes' }.to raise_error Puppet::Error, /Purging is only supported on types that accept 'ensure'/
|
52
54
|
end
|
53
55
|
|
54
56
|
it "cannot be set to true for a resource type that does not have instances" do
|
55
|
-
allow(instance.resource_type).to receive(:respond_to?).and_return(false)
|
56
|
-
|
57
|
-
expect { instance[:purge] = 'yes' }.to raise_error Puppet::Error
|
57
|
+
allow(instance.resource_type).to receive(:respond_to?).with(:instances).and_return(false)
|
58
|
+
expect { instance[:purge] = 'yes' }.to raise_error Puppet::Error, /Purging resources of type file is not supported/
|
58
59
|
end
|
59
60
|
|
60
61
|
it "can be set to true for a resource type that has instances and can accept ensure" do
|
61
|
-
allow(instance.resource_type).to receive(:respond_to?).and_return(true)
|
62
62
|
allow(instance.resource_type).to receive(:validproperty?).and_return(true)
|
63
63
|
expect { instance[:purge] = 'yes' }.to_not raise_error
|
64
64
|
end
|
@@ -165,8 +165,38 @@ describe test_title, "when validating attribute values" do
|
|
165
165
|
|
166
166
|
context "when on Windows", :if => Puppet::Util::Platform.windows? do
|
167
167
|
before do
|
168
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).and_return(true)
|
168
169
|
allow(Puppet::Util::Windows::ADSI).to receive(:computer_name).and_return("myPC")
|
170
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).and_return('SeServiceLogonRight')
|
171
|
+
end
|
172
|
+
|
173
|
+
it "should fail when the `Log On As A Service` right is missing from given user" do
|
174
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, "myPC", :SidTypeUser))
|
175
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with('myPC\\myUser').and_return("")
|
176
|
+
|
177
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser') }.to raise_error(Puppet::Error, /"myPC\\myUser" is missing the 'Log On As A Service' right./)
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should fail when the `Log On As A Service` right is set to denied for given user" do
|
181
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, "myPC", :SidTypeUser))
|
182
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with('myPC\\myUser').and_return("SeDenyServiceLogonRight")
|
183
|
+
|
184
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser') }.to raise_error(Puppet::Error, /"myPC\\myUser" has the 'Log On As A Service' right set to denied./)
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should not fail when given user has the `Log On As A Service` right" do
|
188
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, "myPC", :SidTypeUser))
|
189
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with('myPC\\myUser').and_return("SeServiceLogonRight")
|
190
|
+
|
191
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser') }.not_to raise_error
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should not fail when given user is a default system account even if the `Log On As A Service` right is missing" do
|
195
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("LOCAL SERVICE", nil, nil, "NT AUTHORITY", :SidTypeUser))
|
169
196
|
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).and_return(true)
|
197
|
+
|
198
|
+
expect(Puppet::Util::Windows::User).not_to receive(:get_rights)
|
199
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser') }.not_to raise_error
|
170
200
|
end
|
171
201
|
|
172
202
|
['LocalSystem', '.\LocalSystem', 'myPC\LocalSystem', 'lOcALsysTem'].each do |user_input|
|
@@ -212,12 +242,12 @@ describe test_title, "when validating attribute values" do
|
|
212
242
|
|
213
243
|
it "should fail when account is invalid" do
|
214
244
|
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(nil)
|
215
|
-
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'InvalidUser') }.to raise_error(Puppet::Error,
|
245
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'InvalidUser') }.to raise_error(Puppet::Error, /"InvalidUser" is not a valid account/)
|
216
246
|
end
|
217
247
|
|
218
248
|
it "should fail when sid type is not user or well known user" do
|
219
249
|
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("Administrators", nil, nil, "BUILTIN", :SidTypeAlias))
|
220
|
-
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'Administrators') }.to raise_error(Puppet::Error,
|
250
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'Administrators') }.to raise_error(Puppet::Error, /"Administrators" is not a valid account/)
|
221
251
|
end
|
222
252
|
end
|
223
253
|
end
|
@@ -254,6 +284,7 @@ describe test_title, "when validating attribute values" do
|
|
254
284
|
before do
|
255
285
|
allow(Puppet::Util::Windows::ADSI).to receive(:computer_name).and_return("myPC")
|
256
286
|
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(name_to_principal_result)
|
287
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).and_return('SeServiceLogonRight')
|
257
288
|
end
|
258
289
|
|
259
290
|
it "should pass validation when given account is 'LocalSystem'" do
|
@@ -273,6 +304,7 @@ describe test_title, "when validating attribute values" do
|
|
273
304
|
|
274
305
|
it "should pass validation" do
|
275
306
|
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with(predefined_local_account).and_return(false)
|
307
|
+
expect(Puppet::Util::Windows::User).to receive(:default_system_account?).with(predefined_local_account).and_return(true)
|
276
308
|
expect(Puppet::Util::Windows::User).to receive(:default_system_account?).with("NT AUTHORITY\\#{predefined_local_account}").and_return(true)
|
277
309
|
|
278
310
|
expect(Puppet::Util::Windows::User).not_to receive(:password_is?)
|
@@ -288,6 +320,7 @@ describe test_title, "when validating attribute values" do
|
|
288
320
|
describe "when given logonaccount is not a predefined local account" do
|
289
321
|
before do
|
290
322
|
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with('myUser').and_return(false)
|
323
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with('myUser').and_return(false)
|
291
324
|
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with('.\\myUser').and_return(false)
|
292
325
|
end
|
293
326
|
|
@@ -455,7 +488,7 @@ describe test_title, "when changing the host" do
|
|
455
488
|
it "insyncness should be resolved by provider instead of superclass implementation when provider responds to the 'enabled_insync?' method" do
|
456
489
|
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
457
490
|
@service[:enable] = true
|
458
|
-
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync
|
491
|
+
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?, any_args).and_return(true)
|
459
492
|
allow(@service.provider).to receive(:enabled_insync?).and_return(false)
|
460
493
|
|
461
494
|
expect(@service.property(:enable).insync?(:true)).to eq(false)
|