puppet 6.13.0-x86-mingw32 → 6.18.0-x86-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/CONTRIBUTING.md +7 -13
- data/Gemfile +4 -2
- data/Gemfile.lock +36 -32
- data/README.md +17 -24
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/application/agent.rb +26 -17
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/describe.rb +7 -5
- data/lib/puppet/application/device.rb +2 -2
- data/lib/puppet/application/filebucket.rb +19 -15
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +4 -4
- data/lib/puppet/configurer.rb +58 -57
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +10 -1
- 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 +92 -12
- data/lib/puppet/environments.rb +4 -5
- 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/plugin.rb +2 -2
- data/lib/puppet/feature/base.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 +17 -13
- 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/call.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +13 -8
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/reduce.rb +2 -4
- 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 +3 -0
- data/lib/puppet/http/client.rb +263 -73
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +46 -3
- data/lib/puppet/http/resolver/server_list.rb +76 -16
- data/lib/puppet/http/resolver/settings.rb +23 -3
- data/lib/puppet/http/resolver/srv.rb +29 -3
- data/lib/puppet/http/response.rb +87 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +97 -12
- data/lib/puppet/http/service/ca.rb +76 -14
- data/lib/puppet/http/service/compiler.rb +249 -16
- data/lib/puppet/http/service/file_server.rb +141 -20
- data/lib/puppet/http/service/report.rb +47 -17
- data/lib/puppet/http/session.rb +96 -7
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +34 -0
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +42 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +30 -0
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +52 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +24 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +19 -0
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +1 -1
- data/lib/puppet/indirector/rest.rb +12 -0
- data/lib/puppet/indirector/status/rest.rb +18 -0
- data/lib/puppet/loaders.rb +6 -0
- data/lib/puppet/metatype/manager.rb +80 -80
- 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/base_pool.rb +7 -2
- 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/pool.rb +8 -5
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +22 -5
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +30 -31
- 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 +43 -33
- 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 +18 -9
- 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/evaluator_impl.rb +5 -5
- 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 +24 -15
- 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/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/group/groupadd.rb +9 -4
- data/lib/puppet/provider/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +98 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +61 -14
- data/lib/puppet/provider/package/gem.rb +45 -9
- data/lib/puppet/provider/package/pacman.rb +2 -5
- data/lib/puppet/provider/package/pip.rb +143 -48
- data/lib/puppet/provider/package/pip3.rb +0 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +16 -4
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +11 -2
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +100 -20
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +22 -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 +15 -9
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +8 -0
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/runtime.rb +31 -1
- data/lib/puppet/settings.rb +3 -1
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/host.rb +4 -4
- data/lib/puppet/ssl/oids.rb +1 -0
- 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 +81 -35
- 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 +21 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +3 -3
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +51 -13
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +75 -64
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +41 -3
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -29
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +13 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/pidlock.rb +13 -7
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/adsi.rb +2 -2
- 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/process.rb +15 -14
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +5 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +641 -511
- data/man/man5/puppet.conf.5 +75 -10
- data/man/man8/puppet-agent.8 +7 -7
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-filebucket.8 +17 -2
- 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 +1 -1
- 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 +2 -2
- data/man/man8/puppet-status.8 +1 -1
- 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/ssl/unknown-127.0.0.1-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
- data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-ca.pem +59 -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-installed.txt → dnf-module-list.txt} +8 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -65
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +1 -67
- data/spec/integration/application/agent_spec.rb +475 -0
- data/spec/integration/application/apply_spec.rb +279 -150
- 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 +239 -0
- 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 +123 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +47 -37
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/network/http_pool_spec.rb +93 -20
- data/spec/integration/node/environment_spec.rb +15 -0
- 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 +6 -1
- 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/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +16 -7
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +127 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/describe_spec.rb +88 -50
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +39 -10
- data/spec/unit/application/filebucket_spec.rb +22 -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/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +36 -19
- data/spec/unit/configurer_spec.rb +64 -46
- 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/defaults_spec.rb +24 -1
- data/spec/unit/environments_spec.rb +8 -0
- data/spec/unit/face/config_spec.rb +3 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/plugin_spec.rb +12 -10
- 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 +10 -0
- data/spec/unit/functions/lookup_spec.rb +13 -0
- data/spec/unit/http/client_spec.rb +321 -36
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +34 -3
- data/spec/unit/http/response_spec.rb +75 -0
- data/spec/unit/http/service/ca_spec.rb +53 -12
- data/spec/unit/http/service/compiler_spec.rb +332 -28
- data/spec/unit/http/service/file_server_spec.rb +100 -12
- data/spec/unit/http/service/report_spec.rb +19 -9
- data/spec/unit/http/service_spec.rb +94 -6
- data/spec/unit/http/session_spec.rb +159 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +59 -2
- data/spec/unit/indirector/facts/rest_spec.rb +79 -24
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
- data/spec/unit/indirector/file_content/rest_spec.rb +53 -2
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +110 -2
- data/spec/unit/indirector/node/rest_spec.rb +57 -2
- data/spec/unit/indirector/report/rest_spec.rb +58 -51
- data/spec/unit/indirector/request_spec.rb +1 -1
- data/spec/unit/indirector/resource/ral_spec.rb +7 -8
- data/spec/unit/indirector/rest_spec.rb +13 -0
- data/spec/unit/indirector/status/rest_spec.rb +43 -2
- 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/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http/pool_spec.rb +59 -13
- 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 +33 -0
- 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/group/groupadd_spec.rb +22 -8
- data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +107 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- data/spec/unit/provider/package/pip_spec.rb +68 -19
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +38 -0
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +243 -1
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/init_spec.rb +42 -0
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -0
- data/spec/unit/provider/service/redhat_spec.rb +9 -0
- data/spec/unit/provider/service/systemd_spec.rb +93 -18
- 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 +85 -3
- data/spec/unit/puppet_pal_2pec.rb +11 -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 +70 -52
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/http_extra_headers_spec.rb +64 -0
- data/spec/unit/ssl/host_spec.rb +4 -2
- data/spec/unit/ssl/oids_spec.rb +1 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +99 -13
- 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 +5 -1
- data/spec/unit/transaction_spec.rb +0 -2
- data/spec/unit/type/file/ensure_spec.rb +1 -2
- data/spec/unit/type/file/source_spec.rb +89 -38
- data/spec/unit/type/file_spec.rb +122 -96
- 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/at_fork_spec.rb +3 -2
- 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/debian_spec.rb +83 -0
- data/spec/unit/util/package/version/pip_spec.rb +464 -0
- data/spec/unit/util/package/version/range_spec.rb +175 -0
- data/spec/unit/util/package/version/rpm_spec.rb +121 -0
- data/spec/unit/util/pidlock_spec.rb +102 -54
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/windows/adsi_spec.rb +4 -4
- 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/windows/sid_spec.rb +2 -2
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/generate_cert_fixtures.rake +15 -1
- data/tasks/manpages.rake +5 -35
- metadata +84 -52
- data/COMMITTERS.md +0 -244
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/faces/plugin_spec.rb +0 -61
- 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 -64
- 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
data/spec/unit/confine_spec.rb
CHANGED
@@ -54,10 +54,11 @@ describe Puppet::Confine do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should log failing confines with the label and message" do
|
57
|
+
Puppet[:log_level] = 'debug'
|
57
58
|
allow(@confine).to receive(:pass?).and_return(false)
|
58
59
|
expect(@confine).to receive(:message).and_return("My message")
|
59
60
|
expect(@confine).to receive(:label).and_return("Mylabel")
|
60
|
-
expect(Puppet).to receive(:debug).
|
61
|
+
expect(Puppet).to receive(:debug) { |&b| expect(b.call).to eq("Mylabel: My message") }
|
61
62
|
@confine.valid?
|
62
63
|
end
|
63
64
|
end
|
@@ -41,8 +41,12 @@ describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java'
|
|
41
41
|
}
|
42
42
|
|
43
43
|
def allow_external_trusted_data(certname, data)
|
44
|
-
|
45
|
-
|
44
|
+
command = 'generate_data.sh'
|
45
|
+
Puppet[:trusted_external_command] = command
|
46
|
+
# The expand_path bit is necessary b/c :trusted_external_command is a
|
47
|
+
# file_or_directory setting, and file_or_directory settings automatically
|
48
|
+
# expand the given path.
|
49
|
+
allow(Puppet::Util::Execution).to receive(:execute).with([File.expand_path(command), certname], anything).and_return(JSON.dump(data))
|
46
50
|
end
|
47
51
|
|
48
52
|
it "defaults external to an empty hash" do
|
@@ -90,6 +94,25 @@ describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java'
|
|
90
94
|
|
91
95
|
expect(trusted.external).to eq(external_data)
|
92
96
|
end
|
97
|
+
|
98
|
+
it 'does not run the trusted external command when creating a trusted context' do
|
99
|
+
Puppet[:trusted_external_command] = '/usr/bin/generate_data.sh'
|
100
|
+
|
101
|
+
expect(Puppet::Util::Execution).to receive(:execute).never
|
102
|
+
Puppet::Context::TrustedInformation.remote(true, 'cert name', cert)
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'only runs the trusted external command the first time it is invoked' do
|
106
|
+
command = 'generate_data.sh'
|
107
|
+
Puppet[:trusted_external_command] = command
|
108
|
+
|
109
|
+
# See allow_external_trusted_data to understand why expand_path is necessary
|
110
|
+
expect(Puppet::Util::Execution).to receive(:execute).with([File.expand_path(command), 'cert name'], anything).and_return(JSON.dump(external_data)).once
|
111
|
+
|
112
|
+
trusted = Puppet::Context::TrustedInformation.remote(true, 'cert name', cert)
|
113
|
+
trusted.external
|
114
|
+
trusted.external
|
115
|
+
end
|
93
116
|
end
|
94
117
|
|
95
118
|
context "when local" do
|
data/spec/unit/daemon_spec.rb
CHANGED
@@ -32,13 +32,17 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
32
32
|
let(:pidfile) { double("PidFile", :lock => true, :unlock => true, :file_path => 'fake.pid') }
|
33
33
|
let(:scheduler) { RecordingScheduler.new }
|
34
34
|
|
35
|
-
let(:daemon) { Puppet::Daemon.new(pidfile, scheduler) }
|
35
|
+
let(:daemon) { Puppet::Daemon.new(agent, pidfile, scheduler) }
|
36
36
|
|
37
37
|
before(:each) do
|
38
38
|
allow(Signal).to receive(:trap)
|
39
39
|
allow(daemon).to receive(:close_streams).and_return(nil)
|
40
40
|
end
|
41
41
|
|
42
|
+
it "should fail when no agent is provided" do
|
43
|
+
expect { Puppet::Daemon.new(nil, pidfile, scheduler) }.to raise_error(Puppet::DevError)
|
44
|
+
end
|
45
|
+
|
42
46
|
it "should reopen the Log logs when told to reopen logs" do
|
43
47
|
expect(Puppet::Util::Log).to receive(:reopen)
|
44
48
|
daemon.reopen_logs
|
@@ -72,65 +76,21 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
72
76
|
allow(daemon).to receive(:set_signal_traps)
|
73
77
|
end
|
74
78
|
|
75
|
-
it "should fail if it has neither agent nor server" do
|
76
|
-
expect { daemon.start }.to raise_error(Puppet::DevError)
|
77
|
-
end
|
78
|
-
|
79
79
|
it "should create its pidfile" do
|
80
80
|
expect(pidfile).to receive(:lock).and_return(true)
|
81
|
-
|
82
|
-
daemon.agent = agent
|
83
81
|
daemon.start
|
84
82
|
end
|
85
83
|
|
86
84
|
it "should fail if it cannot lock" do
|
87
85
|
expect(pidfile).to receive(:lock).and_return(false)
|
88
|
-
daemon.agent = agent
|
89
|
-
|
90
86
|
expect { daemon.start }.to raise_error(RuntimeError, "Could not create PID file: #{pidfile.file_path}")
|
91
87
|
end
|
92
88
|
|
93
|
-
it "should start its server if one is configured" do
|
94
|
-
daemon.server = server
|
95
|
-
|
96
|
-
expect(server).to receive(:start)
|
97
|
-
|
98
|
-
daemon.start
|
99
|
-
end
|
100
|
-
|
101
89
|
it "disables the reparse of configs if the filetimeout is 0" do
|
102
90
|
Puppet[:filetimeout] = 0
|
103
|
-
daemon.agent = agent
|
104
|
-
|
105
91
|
daemon.start
|
106
|
-
|
107
92
|
expect(scheduler.jobs[0]).not_to be_enabled
|
108
93
|
end
|
109
|
-
|
110
|
-
it "disables the agent run when there is no agent" do
|
111
|
-
Puppet[:filetimeout] = 0
|
112
|
-
daemon.server = server
|
113
|
-
|
114
|
-
daemon.start
|
115
|
-
|
116
|
-
expect(scheduler.jobs[1]).not_to be_enabled
|
117
|
-
end
|
118
|
-
|
119
|
-
it "waits for the server to shutdown when there is one" do
|
120
|
-
daemon.server = server
|
121
|
-
|
122
|
-
expect(server).to receive(:wait_for_shutdown)
|
123
|
-
|
124
|
-
daemon.start
|
125
|
-
end
|
126
|
-
|
127
|
-
it "waits for the server to shutdown when there is one" do
|
128
|
-
daemon.server = server
|
129
|
-
|
130
|
-
expect(server).to receive(:wait_for_shutdown)
|
131
|
-
|
132
|
-
daemon.start
|
133
|
-
end
|
134
94
|
end
|
135
95
|
|
136
96
|
describe "when stopping" do
|
@@ -146,14 +106,6 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
146
106
|
without_warnings { Puppet::Application = Puppet::Application.superclass }
|
147
107
|
end
|
148
108
|
|
149
|
-
it "should stop its server if one is configured" do
|
150
|
-
expect(server).to receive(:stop)
|
151
|
-
|
152
|
-
daemon.server = server
|
153
|
-
|
154
|
-
expect { daemon.stop }.to exit_with 0
|
155
|
-
end
|
156
|
-
|
157
109
|
it 'should request a stop from Puppet::Application' do
|
158
110
|
expect(Puppet::Application).to receive(:stop!)
|
159
111
|
expect { daemon.stop }.to exit_with 0
|
@@ -161,7 +113,6 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
161
113
|
|
162
114
|
it "should remove its pidfile" do
|
163
115
|
expect(pidfile).to receive(:unlock)
|
164
|
-
|
165
116
|
expect { daemon.stop }.to exit_with 0
|
166
117
|
end
|
167
118
|
|
@@ -188,8 +139,6 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
188
139
|
expect(agent).to receive(:run).with({:splay => false}).and_raise(Puppet::LockError, 'Failed to aquire lock')
|
189
140
|
expect(Puppet).to receive(:notice).with('Not triggering already-running agent')
|
190
141
|
|
191
|
-
daemon.agent = agent
|
192
|
-
|
193
142
|
daemon.reload
|
194
143
|
end
|
195
144
|
|
@@ -197,8 +146,6 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
197
146
|
expect(agent).to receive(:run).with({:splay => false})
|
198
147
|
expect(Puppet).not_to receive(:notice).with('Not triggering already-running agent')
|
199
148
|
|
200
|
-
daemon.agent = agent
|
201
|
-
|
202
149
|
daemon.reload
|
203
150
|
end
|
204
151
|
end
|
@@ -220,15 +167,11 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
220
167
|
|
221
168
|
it "should reexec itself if no agent is available" do
|
222
169
|
expect(daemon).to receive(:reexec)
|
223
|
-
|
224
170
|
daemon.restart
|
225
171
|
end
|
226
172
|
|
227
173
|
it "should reexec itself if the agent is not running" do
|
228
|
-
expect(agent).to receive(:running?).and_return(false)
|
229
|
-
daemon.agent = agent
|
230
174
|
expect(daemon).to receive(:reexec)
|
231
|
-
|
232
175
|
daemon.restart
|
233
176
|
end
|
234
177
|
end
|
@@ -247,14 +190,12 @@ describe Puppet::Daemon, :unless => Puppet::Util::Platform.windows? do
|
|
247
190
|
it "should shut down without exiting" do
|
248
191
|
daemon.argv = %w{foo}
|
249
192
|
expect(daemon).to receive(:stop).with(:exit => false)
|
250
|
-
|
251
193
|
daemon.reexec
|
252
194
|
end
|
253
195
|
|
254
196
|
it "should call 'exec' with the original executable and arguments" do
|
255
197
|
daemon.argv = %w{foo}
|
256
198
|
expect(daemon).to receive(:exec).with($0 + " foo")
|
257
|
-
|
258
199
|
daemon.reexec
|
259
200
|
end
|
260
201
|
end
|
data/spec/unit/defaults_spec.rb
CHANGED
@@ -188,8 +188,31 @@ describe "Defaults" do
|
|
188
188
|
end
|
189
189
|
|
190
190
|
it "raises an exception if facter-ng could not be loaded" do
|
191
|
-
|
191
|
+
allow_any_instance_of(Puppet::Settings::BooleanSetting).to receive(:require).with('facter-ng').and_raise(LoadError)
|
192
|
+
|
192
193
|
expect{ Puppet.settings[:facterng] = true }.to raise_exception ArgumentError, 'facter-ng could not be loaded'
|
193
194
|
end
|
195
|
+
|
196
|
+
context 'set logger' do
|
197
|
+
before do
|
198
|
+
@original_facter = Object.const_get(:Facter)
|
199
|
+
|
200
|
+
Object.send(:remove_const, :Facter)
|
201
|
+
Object.const_set(:Facter, Module.new)
|
202
|
+
|
203
|
+
allow_any_instance_of(Puppet::Settings::BooleanSetting).to receive(:require).with('facter-ng').and_return(true)
|
204
|
+
allow(Facter).to receive(:respond_to?).and_return(false)
|
205
|
+
end
|
206
|
+
|
207
|
+
after do
|
208
|
+
Object.const_set(:Facter, @original_facter)
|
209
|
+
end
|
210
|
+
|
211
|
+
it 'calls setup_facter_logging!' do
|
212
|
+
allow(Puppet::Util::Logging).to receive(:setup_facter_logging!).and_return(true)
|
213
|
+
Puppet.settings[:facterng] = true
|
214
|
+
expect(Puppet::Util::Logging).to have_received(:setup_facter_logging!).once
|
215
|
+
end
|
216
|
+
end
|
194
217
|
end
|
195
218
|
end
|
@@ -35,6 +35,7 @@ describe Puppet::Environments do
|
|
35
35
|
FS::MemoryFile.a_directory("modules"),
|
36
36
|
FS::MemoryFile.a_directory("manifests"),
|
37
37
|
]),
|
38
|
+
FS::MemoryFile.a_missing_file("missing")
|
38
39
|
])
|
39
40
|
end
|
40
41
|
|
@@ -90,6 +91,13 @@ describe Puppet::Environments do
|
|
90
91
|
end
|
91
92
|
end
|
92
93
|
|
94
|
+
it "proceeds with non-existant env dir" do
|
95
|
+
loader_from(:filesystem => [directory_tree],
|
96
|
+
:directory => directory_tree.children.last) do |loader|
|
97
|
+
expect(loader.list).to eq([])
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
93
101
|
it "gets a particular environment" do
|
94
102
|
loader_from(:filesystem => [directory_tree],
|
95
103
|
:directory => directory_tree.children.first) do |loader|
|
@@ -234,7 +234,9 @@ trace = true
|
|
234
234
|
allow(Puppet::Settings::IniFile::Manipulator).to receive(:new).and_return(manipulator)
|
235
235
|
|
236
236
|
expect(manipulator).to receive(:delete).with('main', 'setting').and_return(' setting=value')
|
237
|
-
expect {
|
237
|
+
expect {
|
238
|
+
subject.delete('setting', {:section => 'main'})
|
239
|
+
}.to output("Deleted setting from 'main': 'setting=value'\n").to_stdout
|
238
240
|
end
|
239
241
|
|
240
242
|
it 'prints a warning when a setting is not found to delete' do
|
@@ -211,4 +211,21 @@ describe "puppet module search" do
|
|
211
211
|
end
|
212
212
|
end
|
213
213
|
end
|
214
|
+
|
215
|
+
it "should include a deprecation warning" do
|
216
|
+
stub_request(:get, "https://forgeapi.puppet.com/v3/modules?query=puppetlabs-apache").to_return(status: 200, body: [answers: [], result: :success])
|
217
|
+
|
218
|
+
subject.search("puppetlabs-apache")
|
219
|
+
|
220
|
+
expect(@logs).to include(an_object_having_attributes(level: :warning, message: /This action has been deprecated. Please use the Puppet Forge to search for modules./))
|
221
|
+
end
|
222
|
+
|
223
|
+
it "omits the warning when deprecations are disabled" do
|
224
|
+
stub_request(:get, "https://forgeapi.puppet.com/v3/modules?query=puppetlabs-apache").to_return(status: 200, body: [answers: [], result: :success])
|
225
|
+
|
226
|
+
Puppet[:disable_warnings] = 'deprecations'
|
227
|
+
subject.search("puppetlabs-apache")
|
228
|
+
|
229
|
+
expect(@logs).not_to include(an_object_having_attributes(level: :warning))
|
230
|
+
end
|
214
231
|
end
|
@@ -10,9 +10,10 @@ describe Puppet::Face[:plugin, :current] do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
context "download" do
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
around do |example|
|
14
|
+
Puppet.override(server_agent_version: "5.3.4") do
|
15
|
+
example.run
|
16
|
+
end
|
16
17
|
end
|
17
18
|
|
18
19
|
it "downloads plugins, external facts, and locales" do
|
@@ -61,9 +62,10 @@ describe Puppet::Face[:plugin, :current] do
|
|
61
62
|
end
|
62
63
|
|
63
64
|
context "download when server_agent_version is 5.3.3" do
|
64
|
-
|
65
|
-
|
66
|
-
|
65
|
+
around do |example|
|
66
|
+
Puppet.override(server_agent_version: "5.3.3") do
|
67
|
+
example.run
|
68
|
+
end
|
67
69
|
end
|
68
70
|
|
69
71
|
it "downloads plugins, and external facts, but not locales" do
|
@@ -87,10 +89,10 @@ describe Puppet::Face[:plugin, :current] do
|
|
87
89
|
end
|
88
90
|
|
89
91
|
context "download when server_agent_version is blank" do
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
92
|
+
around do |example|
|
93
|
+
Puppet.override(server_agent_version: "") do
|
94
|
+
example.run
|
95
|
+
end
|
94
96
|
end
|
95
97
|
|
96
98
|
it "downloads plugins, and external facts, but not locales" do
|
@@ -30,11 +30,6 @@ describe Puppet::FileServing::HttpMetadata do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
context "with no Last-Modified or Content-MD5 header from the server" do
|
33
|
-
before do
|
34
|
-
allow(http_response).to receive(:[]).with('last-modified').and_return(nil)
|
35
|
-
allow(http_response).to receive(:[]).with('content-md5').and_return(nil)
|
36
|
-
end
|
37
|
-
|
38
33
|
it "should use :mtime as the checksum type, based on current time" do
|
39
34
|
# Stringifying Time.now does some rounding; do so here so we don't end up with a time
|
40
35
|
# that's greater than the stringified version returned by collect.
|
@@ -51,13 +46,9 @@ describe Puppet::FileServing::HttpMetadata do
|
|
51
46
|
context "with a Last-Modified header from the server" do
|
52
47
|
let(:time) { Time.now.utc }
|
53
48
|
|
54
|
-
before do
|
55
|
-
allow(http_response).to receive(:[]).with('content-md5').and_return(nil)
|
56
|
-
end
|
57
|
-
|
58
49
|
it "should use :mtime as the checksum type, based on Last-Modified" do
|
59
50
|
# HTTP uses "GMT" not "UTC"
|
60
|
-
|
51
|
+
http_response.add_field('last-modified', time.strftime("%a, %d %b %Y %T GMT"))
|
61
52
|
metadata = described_class.new(http_response)
|
62
53
|
metadata.collect
|
63
54
|
expect( metadata.checksum_type ).to eq :mtime
|
@@ -70,16 +61,48 @@ describe Puppet::FileServing::HttpMetadata do
|
|
70
61
|
let(:base64) { Digest::MD5.new.base64digest input }
|
71
62
|
let(:hex) { Digest::MD5.new.hexdigest input }
|
72
63
|
|
73
|
-
|
74
|
-
|
75
|
-
|
64
|
+
it "should use the md5 checksum" do
|
65
|
+
http_response.add_field('content-md5', base64)
|
66
|
+
metadata = described_class.new(http_response)
|
67
|
+
metadata.collect
|
68
|
+
expect( metadata.checksum_type ).to eq :md5
|
69
|
+
expect( metadata.checksum ).to eq "{md5}#{hex}"
|
76
70
|
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "with X-Checksum-Md5" do
|
74
|
+
let(:md5) { "c58989e9740a748de4f5054286faf99b" }
|
77
75
|
|
78
76
|
it "should use the md5 checksum" do
|
77
|
+
http_response.add_field('X-Checksum-Md5', md5)
|
79
78
|
metadata = described_class.new(http_response)
|
80
79
|
metadata.collect
|
81
80
|
expect( metadata.checksum_type ).to eq :md5
|
82
|
-
expect( metadata.checksum ).to eq "{md5}#{
|
81
|
+
expect( metadata.checksum ).to eq "{md5}#{md5}"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context "with X-Checksum-Sha1" do
|
86
|
+
let(:sha1) { "01e4d15746f4274b84d740a93e04b9fd2882e3ea" }
|
87
|
+
|
88
|
+
it "should use the SHA1 checksum" do
|
89
|
+
http_response.add_field('X-Checksum-Sha1', sha1)
|
90
|
+
metadata = described_class.new(http_response)
|
91
|
+
metadata.collect
|
92
|
+
expect( metadata.checksum_type ).to eq :sha1
|
93
|
+
expect( metadata.checksum ).to eq "{sha1}#{sha1}"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "with X-Checksum-Sha256" do
|
98
|
+
let(:sha256) { "a3eda98259c30e1e75039c2123670c18105e1c46efb672e42ca0e4cbe77b002a" }
|
99
|
+
|
100
|
+
it "should use the SHA256 checksum" do
|
101
|
+
http_response.add_field('X-Checksum-Sha256', sha256)
|
102
|
+
metadata = described_class.new(http_response)
|
103
|
+
metadata.collect
|
104
|
+
expect( metadata.checksum_type ).to eq :sha256
|
105
|
+
expect( metadata.checksum ).to eq "{sha256}#{sha256}"
|
83
106
|
end
|
84
107
|
end
|
85
108
|
end
|
@@ -52,13 +52,13 @@ describe Puppet::FileServing::Mount::Locales do
|
|
52
52
|
expect(@mount.search("foo/bar", @request)).to eq(["/"])
|
53
53
|
end
|
54
54
|
|
55
|
-
it "should return
|
55
|
+
it "should return the default search module path if no modules can be found that have locales and modulepath is invalid" do
|
56
56
|
mod = double('module')
|
57
57
|
allow(mod).to receive(:locales?).and_return(false)
|
58
58
|
|
59
59
|
allow(@environment).to receive(:modules).and_return([])
|
60
60
|
allow(@environment).to receive(:modulepath).and_return([])
|
61
|
-
expect(@mount.search("foo/bar", @request)).to
|
61
|
+
expect(@mount.search("foo/bar", @request)).to eq([Puppet[:codedir]])
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should return the locale paths for each module that has locales" do
|
@@ -52,13 +52,13 @@ describe Puppet::FileServing::Mount::PluginFacts do
|
|
52
52
|
expect(@mount.search("foo/bar", @request)).to eq(["/"])
|
53
53
|
end
|
54
54
|
|
55
|
-
it "should return
|
55
|
+
it "should return the default search module path if no modules can be found that have plugins and modulepath is invalid" do
|
56
56
|
mod = double('module')
|
57
57
|
allow(mod).to receive(:pluginfacts?).and_return(false)
|
58
58
|
|
59
59
|
allow(@environment).to receive(:modules).and_return([])
|
60
60
|
allow(@environment).to receive(:modulepath).and_return([])
|
61
|
-
expect(@mount.search("foo/bar", @request)).to
|
61
|
+
expect(@mount.search("foo/bar", @request)).to eq([Puppet[:codedir]])
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should return the plugin paths for each module that has plugins" do
|