puppet 6.15.0-x64-mingw32 → 6.19.1-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 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +119 -39
- data/lib/puppet/environments.rb +51 -10
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +1 -1
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -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_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/filter.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 +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- data/lib/puppet/http/redirector.rb +9 -7
- 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/response.rb +19 -0
- 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.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +31 -4
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +29 -26
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- 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/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- 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/resource/resource_type_impl.rb +2 -0
- 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 +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- 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 +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +7 -3
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +33 -8
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- 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 +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -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 +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- 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 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- 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/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/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- 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 +75 -2
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +7 -2
- 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 +7 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- 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/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 +9 -4
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/environments_spec.rb +99 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- 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_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +2 -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 +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -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/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- 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 +47 -8
- data/spec/unit/provider/package/zypper_spec.rb +98 -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 +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -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 +87 -19
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/autoload_spec.rb +2 -1
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- 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/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
@@ -145,6 +145,199 @@ describe test_title, "when validating attribute values" do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
+
describe "the service logon credentials" do
|
149
|
+
before do
|
150
|
+
provider_class_with_logon_credentials = Puppet::Type.type(:service).provide(:simple) do
|
151
|
+
has_features :manages_logon_credentials
|
152
|
+
def logonpassword=(value) end
|
153
|
+
end
|
154
|
+
allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class_with_logon_credentials)
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "the 'logonaccount' property" do
|
158
|
+
it "should not be munged nor checked when not on Windows" do
|
159
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
160
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'NonWindowsUser')
|
161
|
+
|
162
|
+
expect { service }.not_to raise_error
|
163
|
+
expect(service[:logonaccount]).to eq('NonWindowsUser')
|
164
|
+
end
|
165
|
+
|
166
|
+
context "when on Windows", :if => Puppet::Util::Platform.windows? do
|
167
|
+
before do
|
168
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).and_return(true)
|
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))
|
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
|
200
|
+
end
|
201
|
+
|
202
|
+
['LocalSystem', '.\LocalSystem', 'myPC\LocalSystem', 'lOcALsysTem'].each do |user_input|
|
203
|
+
it "should succesfully munge #{user_input} to 'LocalSystem'" do
|
204
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => user_input)
|
205
|
+
|
206
|
+
expect { service }.not_to raise_error
|
207
|
+
expect(service[:logonaccount]).to eq('LocalSystem')
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
it "should succesfully munge local account" do
|
212
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, "myPC", :SidTypeUser))
|
213
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser')
|
214
|
+
|
215
|
+
expect { service }.not_to raise_error
|
216
|
+
expect(service[:logonaccount]).to eq('.\myUser')
|
217
|
+
end
|
218
|
+
|
219
|
+
it "should succesfully munge domain account" do
|
220
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("DomainUser", nil, nil, "myDomain", :SidTypeUser))
|
221
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'DomainUser')
|
222
|
+
|
223
|
+
expect { service }.not_to raise_error
|
224
|
+
expect(service[:logonaccount]).to eq('myDomain\DomainUser')
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should succesfully munge well known user" do
|
228
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("LOCAL SERVICE", nil, nil, "NT AUTHORITY", :SidTypeWellKnownGroup))
|
229
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'LocalService')
|
230
|
+
|
231
|
+
expect { service }.not_to raise_error
|
232
|
+
expect(service[:logonaccount]).to eq('NT AUTHORITY\LOCAL SERVICE')
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should succesfully munge a SID" do
|
236
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("NETWORK SERVICE", nil, nil, "NT AUTHORITY", :SidTypeUser))
|
237
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'S-1-5-20')
|
238
|
+
|
239
|
+
expect { service }.not_to raise_error
|
240
|
+
expect(service[:logonaccount]).to eq('NT AUTHORITY\NETWORK SERVICE')
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should fail when account is invalid" do
|
244
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(nil)
|
245
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'InvalidUser') }.to raise_error(Puppet::Error, /"InvalidUser" is not a valid account/)
|
246
|
+
end
|
247
|
+
|
248
|
+
it "should fail when sid type is not user or well known user" do
|
249
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(Puppet::Util::Windows::SID::Principal.new("Administrators", nil, nil, "BUILTIN", :SidTypeAlias))
|
250
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'Administrators') }.to raise_error(Puppet::Error, /"Administrators" is not a valid account/)
|
251
|
+
end
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
describe "the logonpassword parameter" do
|
256
|
+
it "should fail when logonaccount is not being managed as well" do
|
257
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonpassword => 'myPass') }.to raise_error(Puppet::Error, /The 'logonaccount' parameter is mandatory when setting 'logonpassword'./)
|
258
|
+
end
|
259
|
+
|
260
|
+
it "should default to empty string when only logonaccount is being managed" do
|
261
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
262
|
+
service = Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser')
|
263
|
+
|
264
|
+
expect { service }.not_to raise_error
|
265
|
+
expect(service[:logonpassword]).to eq("")
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should default to nil when not even logonaccount is being managed" do
|
269
|
+
service = Puppet::Type.type(:service).new(:name => "yay")
|
270
|
+
expect(service[:logonpassword]).to eq(nil)
|
271
|
+
end
|
272
|
+
|
273
|
+
it "should fail when logonpassword includes the ':' character" do
|
274
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
275
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser', :logonpassword => 'my:Pass') }.to raise_error(Puppet::Error, /Passwords cannot include ':'/)
|
276
|
+
end
|
277
|
+
|
278
|
+
it "should not further check the password against given account when not on Windows" do
|
279
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
280
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser', :logonpassword => 'myPass') }.not_to raise_error
|
281
|
+
end
|
282
|
+
|
283
|
+
context "when on Windows", :if => Puppet::Util::Platform.windows? do
|
284
|
+
before do
|
285
|
+
allow(Puppet::Util::Windows::ADSI).to receive(:computer_name).and_return("myPC")
|
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')
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should pass validation when given account is 'LocalSystem'" do
|
291
|
+
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with('LocalSystem').and_return(true)
|
292
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with('LocalSystem').and_return(false)
|
293
|
+
|
294
|
+
expect(Puppet::Util::Windows::SID).not_to receive(:name_to_principal)
|
295
|
+
expect(Puppet::Util::Windows::User).not_to receive(:password_is?)
|
296
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'LocalSystem') }.not_to raise_error
|
297
|
+
end
|
298
|
+
|
299
|
+
['LOCAL SERVICE', 'NETWORK SERVICE', 'SYSTEM'].each do |predefined_local_account|
|
300
|
+
describe "when given account is #{predefined_local_account}" do
|
301
|
+
let(:name_to_principal_result) do
|
302
|
+
Puppet::Util::Windows::SID::Principal.new(predefined_local_account, nil, nil, "NT AUTHORITY", :SidTypeUser)
|
303
|
+
end
|
304
|
+
|
305
|
+
it "should pass validation" do
|
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)
|
308
|
+
expect(Puppet::Util::Windows::User).to receive(:default_system_account?).with("NT AUTHORITY\\#{predefined_local_account}").and_return(true)
|
309
|
+
|
310
|
+
expect(Puppet::Util::Windows::User).not_to receive(:password_is?)
|
311
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => predefined_local_account) }.not_to raise_error
|
312
|
+
end
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
316
|
+
let(:name_to_principal_result) do
|
317
|
+
Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, "myPC", :SidTypeUser)
|
318
|
+
end
|
319
|
+
|
320
|
+
describe "when given logonaccount is not a predefined local account" do
|
321
|
+
before do
|
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)
|
324
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with('.\\myUser').and_return(false)
|
325
|
+
end
|
326
|
+
|
327
|
+
it "should pass validation if password is proven correct" do
|
328
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).with('myUser', 'myPass', '.').and_return(true)
|
329
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser', :logonpassword => 'myPass') }.not_to raise_error
|
330
|
+
end
|
331
|
+
|
332
|
+
it "should not pass validation if password check fails" do
|
333
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).with('myUser', 'myWrongPass', '.').and_return(false)
|
334
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :logonaccount => 'myUser', :logonpassword => 'myWrongPass') }.to raise_error(Puppet::Error, /The given password is invalid for user '.\\myUser'/)
|
335
|
+
end
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
148
341
|
it "should support :true as a value to :hasstatus" do
|
149
342
|
srv = Puppet::Type.type(:service).new(:name => "yay", :hasstatus => :true)
|
150
343
|
expect(srv[:hasstatus]).to eq(:true)
|
@@ -284,20 +477,21 @@ describe test_title, "when changing the host" do
|
|
284
477
|
@service.property(:enable).sync
|
285
478
|
end
|
286
479
|
|
287
|
-
it "should
|
480
|
+
it "should let superclass implementation resolve insyncness when provider does not respond to the 'enabled_insync?' method" do
|
288
481
|
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
289
|
-
|
290
|
-
@service
|
291
|
-
|
482
|
+
@service[:enable] = true
|
483
|
+
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(false)
|
484
|
+
|
292
485
|
expect(@service.property(:enable).insync?(:true)).to eq(true)
|
293
486
|
end
|
294
487
|
|
295
|
-
it "should
|
488
|
+
it "insyncness should be resolved by provider instead of superclass implementation when provider responds to the 'enabled_insync?' method" do
|
296
489
|
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
297
|
-
expect(@service.provider).to receive(:cached_enabled?).and_return('true')
|
298
490
|
@service[:enable] = true
|
299
|
-
|
300
|
-
|
491
|
+
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(true)
|
492
|
+
allow(@service.provider).to receive(:enabled_insync?).and_return(false)
|
493
|
+
|
494
|
+
expect(@service.property(:enable).insync?(:true)).to eq(false)
|
301
495
|
end
|
302
496
|
|
303
497
|
it "should sync the service's enable state when changing the state of :ensure if :enable is being managed" do
|
@@ -313,6 +507,22 @@ describe test_title, "when changing the host" do
|
|
313
507
|
|
314
508
|
@service.property(:ensure).sync
|
315
509
|
end
|
510
|
+
|
511
|
+
it "should sync the service's logonaccount state when changing the state of :ensure if :logonaccount is being managed" do
|
512
|
+
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
513
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
514
|
+
|
515
|
+
@service[:ensure] = :stopped
|
516
|
+
@service[:logonaccount] = 'LocalSystem'
|
517
|
+
|
518
|
+
expect(@service.property(:logonaccount)).to receive(:retrieve).and_return("MyUser")
|
519
|
+
expect(@service.property(:logonaccount)).to receive(:insync?).and_return(false)
|
520
|
+
expect(@service.property(:logonaccount)).to receive(:sync)
|
521
|
+
|
522
|
+
allow(@service.provider).to receive(:stop)
|
523
|
+
|
524
|
+
@service.property(:ensure).sync
|
525
|
+
end
|
316
526
|
end
|
317
527
|
|
318
528
|
describe test_title, "when refreshing the service" do
|
data/spec/unit/type/user_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
# encoding:
|
1
|
+
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Puppet::Type.type(:user) do
|
5
5
|
before :each do
|
6
6
|
@provider_class = described_class.provide(:simple) do
|
7
|
-
has_features :manages_expiry, :manages_password_age, :manages_passwords, :manages_solaris_rbac, :manages_shell
|
7
|
+
has_features :manages_expiry, :manages_password_age, :manages_passwords, :manages_solaris_rbac, :manages_roles, :manages_shell
|
8
8
|
mk_resource_methods
|
9
9
|
def create; end
|
10
10
|
def delete; end
|
@@ -35,6 +35,10 @@ describe Puppet::Type.type(:user) do
|
|
35
35
|
expect(described_class.provider_feature(:manages_solaris_rbac)).not_to be_nil
|
36
36
|
end
|
37
37
|
|
38
|
+
it "should have a manages_roles feature" do
|
39
|
+
expect(described_class.provider_feature(:manages_roles)).not_to be_nil
|
40
|
+
end
|
41
|
+
|
38
42
|
it "should have a manages_expiry feature" do
|
39
43
|
expect(described_class.provider_feature(:manages_expiry)).not_to be_nil
|
40
44
|
end
|
@@ -401,7 +405,7 @@ describe Puppet::Type.type(:user) do
|
|
401
405
|
end
|
402
406
|
|
403
407
|
describe "when user has roles" do
|
404
|
-
it "should autorequire roles" do
|
408
|
+
it "should autorequire roles on non-Windows", :unless => Puppet::Util::Platform.windows? do
|
405
409
|
testuser = described_class.new(:name => "testuser", :roles => ['testrole'] )
|
406
410
|
testrole = described_class.new(:name => "testrole")
|
407
411
|
|
@@ -413,6 +417,31 @@ describe Puppet::Type.type(:user) do
|
|
413
417
|
expect(rel.source.ref).to eq(testrole.ref)
|
414
418
|
expect(rel.target.ref).to eq(testuser.ref)
|
415
419
|
end
|
420
|
+
|
421
|
+
it "should not autorequire roles on Windows", :if => Puppet::Util::Platform.windows? do
|
422
|
+
testuser = described_class.new(:name => "testuser", :roles => ['testrole'] )
|
423
|
+
testrole = described_class.new(:name => "testrole")
|
424
|
+
|
425
|
+
Puppet::Resource::Catalog.new :testing do |conf|
|
426
|
+
[testuser, testrole].each { |resource| conf.add_resource resource }
|
427
|
+
end
|
428
|
+
|
429
|
+
expect(testuser.autorequire).to be_empty
|
430
|
+
end
|
431
|
+
|
432
|
+
it "should sync the user roles when changing the state of :ensure if :roles is being managed" do
|
433
|
+
user = Puppet::Type.type(:user).new(:name => "myUser", :ensure => :present)
|
434
|
+
user[:roles] = 'testRole'
|
435
|
+
|
436
|
+
allow(user.provider.class).to receive(:supports_parameter?).and_return(true)
|
437
|
+
expect(user.property(:roles)).to receive(:retrieve).and_return("other")
|
438
|
+
expect(user.property(:roles)).to receive(:insync?).and_return(false)
|
439
|
+
expect(user.property(:roles)).to receive(:sync)
|
440
|
+
|
441
|
+
allow(user.provider).to receive(:create)
|
442
|
+
|
443
|
+
user.property(:ensure).sync
|
444
|
+
end
|
416
445
|
end
|
417
446
|
|
418
447
|
describe "when setting shell" do
|
data/spec/unit/type_spec.rb
CHANGED
@@ -1099,6 +1099,56 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
|
|
1099
1099
|
expect { expect(type.instances).to eq([]) }.to_not raise_error
|
1100
1100
|
end
|
1101
1101
|
|
1102
|
+
context "with a composite namevar type" do
|
1103
|
+
let :type do
|
1104
|
+
Puppet::Type.newtype(:type_spec_fake_type) do
|
1105
|
+
newparam(:name) do
|
1106
|
+
isnamevar
|
1107
|
+
end
|
1108
|
+
|
1109
|
+
newparam(:path) do
|
1110
|
+
isnamevar
|
1111
|
+
end
|
1112
|
+
|
1113
|
+
def self.title_patterns
|
1114
|
+
[[%r{^(.*)@(.*)$}, [:name, :path]], [%r{^([^@]+)$}, [:name]]]
|
1115
|
+
end
|
1116
|
+
|
1117
|
+
newproperty(:prop1) {}
|
1118
|
+
end
|
1119
|
+
|
1120
|
+
Puppet::Type.type(:type_spec_fake_type)
|
1121
|
+
end
|
1122
|
+
|
1123
|
+
before :each do
|
1124
|
+
type.provide(:default) do
|
1125
|
+
defaultfor :operatingsystem => Facter.value(:operatingsystem)
|
1126
|
+
mk_resource_methods
|
1127
|
+
class << self
|
1128
|
+
attr_accessor :params
|
1129
|
+
end
|
1130
|
+
|
1131
|
+
def title
|
1132
|
+
"#{@property_hash[:name]}@#{@property_hash[:path]}"
|
1133
|
+
end
|
1134
|
+
|
1135
|
+
def self.instance(name, path)
|
1136
|
+
new(:name => name, :path => path, :ensure => :present)
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
def self.instances
|
1140
|
+
@instances ||= params.collect { |param| instance(param.first.to_s, param.last.to_s) }
|
1141
|
+
end
|
1142
|
+
|
1143
|
+
@params = [[:name_one, :path_one], [:name_two, :path_two]]
|
1144
|
+
end
|
1145
|
+
end
|
1146
|
+
|
1147
|
+
it "should return composite titles for the instances" do
|
1148
|
+
expect(type.instances.map(&:title)).to eq(["name_one@path_one", "name_two@path_two"])
|
1149
|
+
end
|
1150
|
+
end
|
1151
|
+
|
1102
1152
|
context "with a default provider" do
|
1103
1153
|
before :each do
|
1104
1154
|
type.provide(:default) do
|
@@ -23,10 +23,10 @@ describe Puppet::Util::Autoload do
|
|
23
23
|
|
24
24
|
def with_libdir(libdir)
|
25
25
|
begin
|
26
|
-
Puppet::Util::Autoload.instance_variable_set(:@initialized, false)
|
27
26
|
old_loadpath = $LOAD_PATH.dup
|
28
27
|
old_libdir = Puppet[:libdir]
|
29
28
|
Puppet[:libdir] = libdir
|
29
|
+
$LOAD_PATH.unshift(libdir)
|
30
30
|
yield
|
31
31
|
ensure
|
32
32
|
Puppet[:libdir] = old_libdir
|
@@ -83,6 +83,7 @@ describe Puppet::Util::Autoload do
|
|
83
83
|
|
84
84
|
libdir = File.expand_path('/libdir1')
|
85
85
|
Puppet[:vendormoduledir] = vendor_dir
|
86
|
+
Puppet.initialize_settings
|
86
87
|
|
87
88
|
with_libdir(libdir) do
|
88
89
|
expect(@autoload.class).to receive(:gem_directories).and_return(%w{/one /two})
|
@@ -21,7 +21,7 @@ describe Puppet::Util::CharacterEncoding do
|
|
21
21
|
let(:invalid_utf8_string) { "\xfd\xf1".force_encoding(Encoding::UTF_8) }
|
22
22
|
|
23
23
|
it "should issue a debug message" do
|
24
|
-
expect(Puppet).to receive(:debug).
|
24
|
+
expect(Puppet).to receive(:debug) { |&b| expect(b.call).to match(/encoding is invalid/) }
|
25
25
|
Puppet::Util::CharacterEncoding.convert_to_utf_8(invalid_utf8_string)
|
26
26
|
end
|
27
27
|
|
@@ -80,7 +80,7 @@ describe Puppet::Util::CharacterEncoding do
|
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should issue a debug message that the string was not transcodable" do
|
83
|
-
expect(Puppet).to receive(:debug).
|
83
|
+
expect(Puppet).to receive(:debug) { |&b| expect(b.call).to match(/cannot be transcoded/) }
|
84
84
|
PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::Windows_31J) do
|
85
85
|
Puppet::Util::CharacterEncoding.convert_to_utf_8(invalid_win_31j)
|
86
86
|
end
|
@@ -124,7 +124,7 @@ describe Puppet::Util::CharacterEncoding do
|
|
124
124
|
let(:euc_kr) { [253, 241].pack('C*').force_encoding(Encoding::ASCII) }
|
125
125
|
|
126
126
|
it "should issue a debug message" do
|
127
|
-
expect(Puppet).to receive(:debug).
|
127
|
+
expect(Puppet).to receive(:debug) { |&b| expect(b.call).to match(/cannot be transcoded/) }
|
128
128
|
Puppet::Util::CharacterEncoding.convert_to_utf_8(euc_kr)
|
129
129
|
end
|
130
130
|
|
@@ -168,7 +168,7 @@ describe Puppet::Util::CharacterEncoding do
|
|
168
168
|
let(:foo) { 'foo' }
|
169
169
|
|
170
170
|
it "should issue a debug message" do
|
171
|
-
expect(Puppet).to receive(:debug).
|
171
|
+
expect(Puppet).to receive(:debug) { |&b| expect(b.call).to match(/not valid UTF-8/) }
|
172
172
|
Puppet::Util::CharacterEncoding.override_encoding_to_utf_8(oslash)
|
173
173
|
end
|
174
174
|
|
@@ -65,6 +65,22 @@ describe Puppet::Util::Checksums do
|
|
65
65
|
expect(@summer.sumtype("asdfasdfa")).to be_nil
|
66
66
|
end
|
67
67
|
|
68
|
+
it "has a list of known checksum types" do
|
69
|
+
expect(@summer.known_checksum_types).to match_array(content_sums + file_only)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns true if the checksum is valid" do
|
73
|
+
expect(@summer).to be_valid_checksum('sha1', 'fcc1715b22278a9dae322b0a34935f10d1608b9f')
|
74
|
+
end
|
75
|
+
|
76
|
+
it "returns false if the checksum is known but invalid" do
|
77
|
+
expect(@summer).to_not be_valid_checksum('sha1', 'wronglength')
|
78
|
+
end
|
79
|
+
|
80
|
+
it "returns false if the checksum type is unknown" do
|
81
|
+
expect(@summer).to_not be_valid_checksum('rot13', 'doesntmatter')
|
82
|
+
end
|
83
|
+
|
68
84
|
{:md5 => Digest::MD5, :sha1 => Digest::SHA1, :sha256 => Digest::SHA256, :sha512 => Digest::SHA512, :sha384 => Digest::SHA384}.each do |sum, klass|
|
69
85
|
describe("when using #{sum}") do
|
70
86
|
it "should use #{klass} to calculate string checksums" do
|