puppet 6.13.0-x64-mingw32 → 6.18.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 -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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34037923ba5422bbf8ac993686508b9e9d549500440a20ad2bff322aed8edee7
|
4
|
+
data.tar.gz: 286aca7f2999a9814635a8357af53383d8465abac59a4902678943645a63381b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 528133db6440c7c27ebc646d38da4291d93570ddabf3ebe3a458bacefd897cba9b67218e61290a673a93dfa619f8c1f04f9eceb0bdab599a368398f877caa37f
|
7
|
+
data.tar.gz: 571cdafdd35691b056adf3e02c911c37319691e1891578a430fbfdf141504c7b0cb7a4d9a9e8e5a5a7d68293480ea9155ae57792c264445bb265672c13e51b94
|
data/CODEOWNERS
CHANGED
@@ -11,13 +11,8 @@
|
|
11
11
|
/lib/puppet/provider/service @puppetlabs/night-s-watch
|
12
12
|
/lib/puppet/provider/user @puppetlabs/night-s-watch
|
13
13
|
|
14
|
-
#
|
15
|
-
/lib/puppet/
|
16
|
-
/lib/puppet/functions @puppetlabs/language
|
17
|
-
/lib/puppet/pal @puppetlabs/language
|
18
|
-
/lib/puppet/parser @puppetlabs/language
|
19
|
-
/lib/puppet/pops @puppetlabs/language
|
20
|
-
/lib/puppet/syntax_checkers @puppetlabs/language
|
14
|
+
# PAL
|
15
|
+
/lib/puppet/pal @puppetlabs/bolt
|
21
16
|
|
22
17
|
# puppet device
|
23
18
|
/lib/puppet/application/device.rb @puppetlabs/networking
|
data/CONTRIBUTING.md
CHANGED
@@ -28,7 +28,7 @@ the [puppet-dev mailing list](https://groups.google.com/forum/#!forum/puppet-dev
|
|
28
28
|
## Getting Started
|
29
29
|
|
30
30
|
* Make sure you have a [Jira account](https://tickets.puppetlabs.com).
|
31
|
-
* Make sure you have a [GitHub account](https://github.com/
|
31
|
+
* Make sure you have a [GitHub account](https://github.com/join).
|
32
32
|
* Submit a Jira ticket for your issue if one does not already exist.
|
33
33
|
* Clearly describe the issue including steps to reproduce when it is a bug.
|
34
34
|
* Make sure you fill in the earliest version that you know has the issue.
|
@@ -89,7 +89,7 @@ user-facing strings are marked in new PRs before merging.
|
|
89
89
|
|
90
90
|
For [changes of a trivial nature](https://puppet.com/community/trivial-patch-exemption-policy), it is not always necessary to create a new
|
91
91
|
ticket in Jira. In this case, it is appropriate to start the first line of a
|
92
|
-
commit with one of
|
92
|
+
commit with one of `(docs)`, `(maint)`, or `(packaging)` instead of a ticket
|
93
93
|
number.
|
94
94
|
|
95
95
|
If a Jira ticket exists for the documentation commit, you can include it
|
@@ -117,15 +117,10 @@ respectively.
|
|
117
117
|
* Sign the [Contributor License Agreement](https://cla.puppet.com).
|
118
118
|
* Push your changes to a topic branch in your fork of the repository.
|
119
119
|
* Submit a pull request to the repository in the puppetlabs organization.
|
120
|
-
* Update
|
120
|
+
* Update the related Jira ticket to mark that you have submitted code and are ready
|
121
121
|
for it to be reviewed (Status: Ready for Merge).
|
122
|
-
|
123
|
-
|
124
|
-
meeting that we hold in a public Google Hangout. The hangout is announced in
|
125
|
-
the weekly status updates that are sent to the puppet-dev list. Notes are
|
126
|
-
posted to the [Puppet Community community-triage
|
127
|
-
repo](https://github.com/puppet-community/community-triage/tree/master/core/notes)
|
128
|
-
and include a link to a YouTube recording of the hangout.
|
122
|
+
* The core team looks at pull requests on a regular basis in a weekly triage
|
123
|
+
meeting.
|
129
124
|
* After feedback has been given we expect responses within two weeks. After two
|
130
125
|
weeks we may close the pull request if it isn't showing any activity.
|
131
126
|
|
@@ -159,9 +154,8 @@ ensure the issue has been resolved.
|
|
159
154
|
|
160
155
|
* [Puppet community guidelines](https://puppet.com/community/community-guidelines)
|
161
156
|
* [Bug tracker (Jira)](https://tickets.puppetlabs.com)
|
162
|
-
* [Contributor License Agreement](
|
157
|
+
* [Contributor License Agreement](https://cla.puppet.com/)
|
163
158
|
* [General GitHub documentation](https://help.github.com/)
|
164
159
|
* [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
|
165
|
-
* #puppet-dev IRC channel on freenode.org ([Archive](https://botbot.me/freenode/puppet-dev/))
|
166
160
|
* [puppet-dev mailing list](https://groups.google.com/forum/#!forum/puppet-dev)
|
167
|
-
* [
|
161
|
+
* [Puppet community slack](https://slack.puppet.com)
|
data/Gemfile
CHANGED
@@ -3,9 +3,9 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org"
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
def location_for(place, fake_version = nil)
|
6
|
-
if place =~ /^(git[:@][^#]*)#(.*)/
|
6
|
+
if place.is_a?(String) && place =~ /^(git[:@][^#]*)#(.*)/
|
7
7
|
[fake_version, { git: $1, branch: $2, require: false }].compact
|
8
|
-
elsif place =~ /^file:\/\/(.*)/
|
8
|
+
elsif place.is_a?(String) && place =~ /^file:\/\/(.*)/
|
9
9
|
['>= 0', { path: File.expand_path($1), require: false }]
|
10
10
|
else
|
11
11
|
[place, { require: false }]
|
@@ -19,6 +19,8 @@ gem "hiera", *location_for(ENV['HIERA_LOCATION']) if ENV.has_key?('HIERA_LOCATIO
|
|
19
19
|
gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
|
20
20
|
gem "puppet-resource_api", *location_for(ENV['RESOURCE_API_LOCATION'] || ["~> 1.5"])
|
21
21
|
|
22
|
+
gem "scanf" if RUBY_VERSION.to_f >= 2.7
|
23
|
+
|
22
24
|
group(:features) do
|
23
25
|
gem 'diff-lcs', '~> 1.3', require: false
|
24
26
|
gem 'hiera-eyaml', *location_for(ENV['HIERA_EYAML_LOCATION'])
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
puppet (6.
|
4
|
+
puppet (6.18.0)
|
5
5
|
CFPropertyList (~> 2.2)
|
6
6
|
concurrent-ruby (~> 1.0)
|
7
7
|
deep_merge (~> 1.0)
|
@@ -20,16 +20,18 @@ GEM
|
|
20
20
|
addressable (2.7.0)
|
21
21
|
public_suffix (>= 2.0.2, < 5.0)
|
22
22
|
artifactory (2.8.2)
|
23
|
-
ast (2.4.
|
24
|
-
coderay (1.1.
|
25
|
-
concurrent-ruby (1.1.
|
23
|
+
ast (2.4.1)
|
24
|
+
coderay (1.1.3)
|
25
|
+
concurrent-ruby (1.1.7)
|
26
26
|
crack (0.4.3)
|
27
27
|
safe_yaml (~> 1.0.0)
|
28
|
-
csv (3.1.
|
28
|
+
csv (3.1.5)
|
29
29
|
deep_merge (1.2.1)
|
30
|
-
diff-lcs (1.
|
30
|
+
diff-lcs (1.4.4)
|
31
31
|
docopt (0.6.1)
|
32
|
-
facter (
|
32
|
+
facter (4.0.35)
|
33
|
+
hocon (~> 1.3)
|
34
|
+
thor (>= 1.0.1, < 2.0)
|
33
35
|
fast_gettext (1.1.2)
|
34
36
|
gettext (3.2.9)
|
35
37
|
locale (>= 2.0.5)
|
@@ -38,46 +40,47 @@ GEM
|
|
38
40
|
fast_gettext (~> 1.1.0)
|
39
41
|
gettext (>= 3.0.2, < 3.3.0)
|
40
42
|
locale
|
41
|
-
hashdiff (1.0.
|
43
|
+
hashdiff (1.0.1)
|
42
44
|
hiera (3.6.0)
|
43
45
|
hiera-eyaml (3.2.0)
|
44
46
|
highline (~> 1.6.19)
|
45
47
|
optimist
|
46
48
|
highline (1.6.21)
|
47
|
-
hocon (1.3.
|
49
|
+
hocon (1.3.1)
|
48
50
|
hpricot (0.8.6)
|
49
51
|
httpclient (2.8.3)
|
50
52
|
json-schema (2.8.1)
|
51
53
|
addressable (>= 2.4)
|
52
54
|
locale (2.1.3)
|
53
55
|
memory_profiler (0.9.14)
|
54
|
-
method_source (0.
|
56
|
+
method_source (1.0.0)
|
55
57
|
minitar (0.9)
|
56
58
|
msgpack (1.3.3)
|
57
|
-
multi_json (1.
|
59
|
+
multi_json (1.15.0)
|
58
60
|
mustache (1.1.1)
|
59
|
-
optimist (3.0.
|
60
|
-
packaging (0.99.
|
61
|
+
optimist (3.0.1)
|
62
|
+
packaging (0.99.68)
|
61
63
|
artifactory (~> 2)
|
64
|
+
csv (= 3.1.5)
|
62
65
|
rake (>= 12.3)
|
63
66
|
release-metrics
|
64
|
-
parallel (1.19.
|
65
|
-
parser (2.7.
|
66
|
-
ast (~> 2.4.
|
67
|
+
parallel (1.19.2)
|
68
|
+
parser (2.7.1.4)
|
69
|
+
ast (~> 2.4.1)
|
67
70
|
powerpack (0.1.2)
|
68
|
-
pry (0.
|
69
|
-
coderay (~> 1.1
|
70
|
-
method_source (~>
|
71
|
-
public_suffix (4.0.
|
72
|
-
puppet-resource_api (1.8.
|
71
|
+
pry (0.13.1)
|
72
|
+
coderay (~> 1.1)
|
73
|
+
method_source (~> 1.0)
|
74
|
+
public_suffix (4.0.5)
|
75
|
+
puppet-resource_api (1.8.13)
|
73
76
|
hocon (>= 1.0)
|
74
|
-
puppetserver-ca (1.
|
75
|
-
facter (>= 2.0.1, <
|
77
|
+
puppetserver-ca (1.8.0)
|
78
|
+
facter (>= 2.0.1, < 5)
|
76
79
|
racc (1.4.9)
|
77
80
|
rainbow (2.2.2)
|
78
81
|
rake
|
79
82
|
rake (12.3.3)
|
80
|
-
rdiscount (2.2.0.
|
83
|
+
rdiscount (2.2.0.2)
|
81
84
|
rdoc (6.2.1)
|
82
85
|
release-metrics (1.1.0)
|
83
86
|
csv
|
@@ -90,9 +93,9 @@ GEM
|
|
90
93
|
rspec-core (~> 3.9.0)
|
91
94
|
rspec-expectations (~> 3.9.0)
|
92
95
|
rspec-mocks (~> 3.9.0)
|
93
|
-
rspec-core (3.9.
|
94
|
-
rspec-support (~> 3.9.
|
95
|
-
rspec-expectations (3.9.
|
96
|
+
rspec-core (3.9.2)
|
97
|
+
rspec-support (~> 3.9.3)
|
98
|
+
rspec-expectations (3.9.2)
|
96
99
|
diff-lcs (>= 1.2.0, < 2.0)
|
97
100
|
rspec-support (~> 3.9.0)
|
98
101
|
rspec-its (1.3.0)
|
@@ -101,7 +104,7 @@ GEM
|
|
101
104
|
rspec-mocks (3.9.1)
|
102
105
|
diff-lcs (>= 1.2.0, < 2.0)
|
103
106
|
rspec-support (~> 3.9.0)
|
104
|
-
rspec-support (3.9.
|
107
|
+
rspec-support (3.9.3)
|
105
108
|
rubocop (0.49.1)
|
106
109
|
parallel (~> 1.10)
|
107
110
|
parser (>= 2.3.3.1, < 3.0)
|
@@ -111,18 +114,19 @@ GEM
|
|
111
114
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
112
115
|
rubocop-i18n (1.2.0)
|
113
116
|
rubocop (~> 0.49.0)
|
114
|
-
ruby-prof (1.
|
117
|
+
ruby-prof (1.4.1)
|
115
118
|
ruby-progressbar (1.10.1)
|
116
119
|
safe_yaml (1.0.5)
|
117
120
|
semantic_puppet (1.0.2)
|
118
121
|
text (1.3.1)
|
119
|
-
|
122
|
+
thor (1.0.1)
|
123
|
+
unicode-display_width (1.7.0)
|
120
124
|
vcr (5.1.0)
|
121
|
-
webmock (3.8.
|
125
|
+
webmock (3.8.3)
|
122
126
|
addressable (>= 2.3.6)
|
123
127
|
crack (>= 0.3.2)
|
124
128
|
hashdiff (>= 0.4.0, < 2.0.0)
|
125
|
-
yard (0.9.
|
129
|
+
yard (0.9.25)
|
126
130
|
|
127
131
|
PLATFORMS
|
128
132
|
ruby
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
Puppet
|
2
|
-
======
|
1
|
+
# Puppet
|
3
2
|
|
4
3
|
[![Travis Status](https://travis-ci.com/puppetlabs/puppet.svg?branch=master)](https://travis-ci.com/puppetlabs/puppet)
|
5
4
|
[![Appveyor Status](https://ci.appveyor.com/api/projects/status/cvhpypd4504sevqq/branch/master?svg=true)](https://ci.appveyor.com/project/puppetlabs/puppet/branch/master)
|
@@ -10,31 +9,28 @@ Puppet, an automated administrative engine for your Linux, Unix, and Windows sys
|
|
10
9
|
administrative tasks (such as adding users, installing packages, and updating server
|
11
10
|
configurations) based on a centralized specification.
|
12
11
|
|
13
|
-
Documentation
|
14
|
-
-------------
|
12
|
+
## Documentation
|
15
13
|
|
16
14
|
Documentation for Puppet and related projects can be found online at the
|
17
15
|
[Puppet Docs site](https://puppet.com/docs).
|
18
16
|
|
19
|
-
HTTP API
|
20
|
-
|
17
|
+
### HTTP API
|
18
|
+
|
21
19
|
[HTTP API Index](https://puppet.com/docs/puppet/5.5/http_api/http_api_index.html)
|
22
20
|
|
23
|
-
Installation
|
24
|
-
------------
|
21
|
+
## Installation
|
25
22
|
|
26
23
|
The best way to run Puppet is with [Puppet Enterprise (PE)](https://puppet.com/products/puppet-enterprise/),
|
27
24
|
which also includes orchestration features, a web console, and professional support.
|
28
25
|
The PE documentation is [available here.](https://puppet.com/docs/pe/latest)
|
29
26
|
|
30
27
|
To install an open source release of Puppet,
|
31
|
-
[see the installation guide on the docs site.](https://puppet.com/docs/puppet/
|
28
|
+
[see the installation guide on the docs site.](https://puppet.com/docs/puppet/latest/installing_and_upgrading.html)
|
32
29
|
|
33
30
|
If you need to run Puppet from source as a tester or developer,
|
34
|
-
see the [
|
31
|
+
see the [Quick Start to Developing on Puppet](docs/quickstart.md) guide.
|
35
32
|
|
36
|
-
Developing and Contributing
|
37
|
-
------
|
33
|
+
## Developing and Contributing
|
38
34
|
|
39
35
|
We'd love to get contributions from you! For a quick guide to getting your
|
40
36
|
system setup for developing, take a look at our [Quickstart
|
@@ -45,32 +41,29 @@ in.
|
|
45
41
|
For more complete docs on developing with Puppet, take a look at the
|
46
42
|
rest of the [developer documents](https://github.com/puppetlabs/puppet/blob/master/docs/index.md).
|
47
43
|
|
48
|
-
Licensing
|
49
|
-
---------
|
44
|
+
## Licensing
|
50
45
|
|
51
46
|
See [LICENSE](https://github.com/puppetlabs/puppet/blob/master/LICENSE) file. Puppet is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: info@puppet.com
|
52
47
|
|
53
|
-
Support
|
54
|
-
-------
|
48
|
+
## Support
|
55
49
|
|
56
|
-
Please log tickets and issues at our [JIRA tracker](https://tickets.puppetlabs.com).
|
50
|
+
Please log tickets and issues at our [JIRA tracker](https://tickets.puppetlabs.com). A [mailing
|
57
51
|
list](https://groups.google.com/forum/?fromgroups#!forum/puppet-users) is
|
58
|
-
available for asking questions and getting help from others
|
59
|
-
is an active #puppet channel on Freenode.
|
52
|
+
available for asking questions and getting help from others, or if you prefer chat, we also have a [Puppet Community slack.](https://puppetcommunity.slack.com/)
|
60
53
|
|
61
54
|
We use semantic version numbers for our releases and recommend that users stay
|
62
55
|
as up-to-date as possible by upgrading to patch releases and minor releases as
|
63
56
|
they become available.
|
64
57
|
|
65
|
-
|
58
|
+
Bug fixes and ongoing development will occur in minor releases for the current
|
66
59
|
major version. Security fixes will be backported to a previous major version on
|
67
60
|
a best-effort basis, until the previous major version is no longer maintained.
|
68
61
|
|
69
|
-
For example: If a security vulnerability is discovered in Puppet
|
70
|
-
would fix it in the
|
71
|
-
a best effort to backport that fix onto the latest Puppet
|
62
|
+
For example: If a security vulnerability is discovered in Puppet 6.1.1, we
|
63
|
+
would fix it in the 6 series, most likely as 6.1.2. Maintainers would then make
|
64
|
+
a best effort to backport that fix onto the latest Puppet 5 release.
|
72
65
|
|
73
66
|
Long-term support, including security patches and bug fixes, is available for
|
74
67
|
commercial customers. Please see the following page for more details:
|
75
68
|
|
76
|
-
[Puppet Enterprise Support Lifecycle](https://puppet.com/
|
69
|
+
[Puppet Enterprise Support Lifecycle](https://puppet.com/docs/puppet-enterprise/product-support-lifecycle/)
|
@@ -160,7 +160,7 @@ class WindowsDaemon < Win32::Daemon
|
|
160
160
|
|
161
161
|
def parse_runinterval(puppet_path)
|
162
162
|
begin
|
163
|
-
runinterval = %x{ #{puppet_path} agent --
|
163
|
+
runinterval = %x{ #{puppet_path} config --section agent --log_level notice print runinterval }.to_i
|
164
164
|
if runinterval == 0
|
165
165
|
runinterval = 1800
|
166
166
|
log_err("Failed to determine runinterval, defaulting to #{runinterval} seconds")
|
@@ -175,8 +175,8 @@ class WindowsDaemon < Win32::Daemon
|
|
175
175
|
|
176
176
|
def parse_log_level(puppet_path,cmdline_debug)
|
177
177
|
begin
|
178
|
-
loglevel = %x{ #{puppet_path} agent --
|
179
|
-
unless loglevel
|
178
|
+
loglevel = %x{ #{puppet_path} config --section agent --log_level notice print log_level }.chomp
|
179
|
+
unless loglevel && respond_to?("log_#{loglevel}")
|
180
180
|
loglevel = :notice
|
181
181
|
log_err("Failed to determine loglevel, defaulting to #{loglevel}")
|
182
182
|
end
|
data/lib/puppet.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/version'
|
2
|
+
require 'puppet/concurrent/synchronized'
|
2
3
|
|
3
4
|
if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new("2.3.0")
|
4
5
|
raise LoadError, "Puppet #{Puppet.version} requires Ruby 2.3.0 or greater, found Ruby #{RUBY_VERSION.dup}."
|
@@ -6,6 +7,8 @@ end
|
|
6
7
|
|
7
8
|
Puppet::OLDEST_RECOMMENDED_RUBY_VERSION = '2.3.0'
|
8
9
|
|
10
|
+
$LOAD_PATH.extend(Puppet::Concurrent::Synchronized)
|
11
|
+
|
9
12
|
# see the bottom of the file for further inclusions
|
10
13
|
# Also see the new Vendor support - towards the end
|
11
14
|
#
|
@@ -150,21 +153,45 @@ module Puppet
|
|
150
153
|
# @param args [Array<String>] the command line arguments to use for initialization
|
151
154
|
# @param require_config [Boolean] controls loading of Puppet configuration files
|
152
155
|
# @param global_settings [Boolean] controls push to global context after settings object initialization
|
156
|
+
# @param runtime_implementations [Hash<Symbol, Object>] runtime implementations to register
|
153
157
|
# @return [void]
|
154
|
-
def self.initialize_settings(args = [], require_config = true, push_settings_globally = true)
|
155
|
-
do_initialize_settings_for_run_mode(:user, args, require_config, push_settings_globally)
|
158
|
+
def self.initialize_settings(args = [], require_config = true, push_settings_globally = true, runtime_implementations = {})
|
159
|
+
do_initialize_settings_for_run_mode(:user, args, require_config, push_settings_globally, runtime_implementations)
|
160
|
+
end
|
161
|
+
|
162
|
+
def self.vendored_modules
|
163
|
+
dir = Puppet[:vendormoduledir]
|
164
|
+
if dir && File.directory?(dir)
|
165
|
+
Dir.entries(dir)
|
166
|
+
.reject { |f| f =~ /^\./ }
|
167
|
+
.map { |f| File.join(dir, f, "lib") }
|
168
|
+
.select { |d| FileTest.directory?(d) }
|
169
|
+
else
|
170
|
+
[]
|
171
|
+
end
|
156
172
|
end
|
173
|
+
private_class_method :vendored_modules
|
174
|
+
|
175
|
+
def self.initialize_load_path
|
176
|
+
$LOAD_PATH.unshift(Puppet[:libdir])
|
177
|
+
$LOAD_PATH.concat(vendored_modules)
|
178
|
+
end
|
179
|
+
private_class_method :initialize_load_path
|
157
180
|
|
158
181
|
# private helper method to provide the implementation details of initializing for a run mode,
|
159
182
|
# but allowing us to control where the deprecation warning is issued
|
160
|
-
def self.do_initialize_settings_for_run_mode(run_mode, args, require_config
|
183
|
+
def self.do_initialize_settings_for_run_mode(run_mode, args, require_config, push_settings_globally, runtime_implementations)
|
161
184
|
Puppet.settings.initialize_global_settings(args, require_config)
|
162
185
|
run_mode = Puppet::Util::RunMode[run_mode]
|
163
186
|
Puppet.settings.initialize_app_defaults(Puppet::Settings.app_defaults_for_run_mode(run_mode))
|
164
187
|
if push_settings_globally
|
188
|
+
initialize_load_path
|
165
189
|
push_context_global(Puppet.base_context(Puppet.settings), "Initial context after settings initialization")
|
166
190
|
Puppet::Parser::Functions.reset
|
167
191
|
end
|
192
|
+
runtime_implementations.each_pair do |name, impl|
|
193
|
+
Puppet.runtime[name] = impl
|
194
|
+
end
|
168
195
|
end
|
169
196
|
private_class_method :do_initialize_settings_for_run_mode
|
170
197
|
|
@@ -218,10 +245,7 @@ module Puppet
|
|
218
245
|
|
219
246
|
{
|
220
247
|
:environments => Puppet::Environments::Cached.new(Puppet::Environments::Combined.new(*loaders)),
|
221
|
-
:http_pool => proc {
|
222
|
-
require 'puppet/network/http'
|
223
|
-
Puppet::Network::HTTP::NoCachePool.new
|
224
|
-
},
|
248
|
+
:http_pool => proc { Puppet.runtime[:http].pool },
|
225
249
|
:ssl_context => proc {
|
226
250
|
begin
|
227
251
|
cert = Puppet::X509::CertProvider.new
|
@@ -236,7 +260,8 @@ module Puppet
|
|
236
260
|
raise e
|
237
261
|
end
|
238
262
|
},
|
239
|
-
:ssl_host => proc { Puppet::SSL::Host.localhost },
|
263
|
+
:ssl_host => proc { Puppet::SSL::Host.localhost(true) },
|
264
|
+
:http_session => proc { Puppet.runtime[:http].create_session },
|
240
265
|
:plugins => proc { Puppet::Plugins::Configuration.load_plugins },
|
241
266
|
:rich_data => false
|
242
267
|
}
|
@@ -322,7 +347,6 @@ module Puppet
|
|
322
347
|
|
323
348
|
require 'puppet/runtime'
|
324
349
|
@runtime = Puppet::Runtime.instance
|
325
|
-
@runtime['http'] = proc { Puppet::HTTP::Client.new }
|
326
350
|
end
|
327
351
|
|
328
352
|
# This feels weird to me; I would really like for us to get to a state where there is never a "require" statement
|
data/lib/puppet/agent.rb
CHANGED
@@ -43,6 +43,7 @@ class Puppet::Agent
|
|
43
43
|
end
|
44
44
|
|
45
45
|
result = nil
|
46
|
+
wait_for_lock_deadline = nil
|
46
47
|
block_run = Puppet::Application.controlled_run do
|
47
48
|
splay client_options.fetch :splay, Puppet[:splay]
|
48
49
|
result = run_in_fork(should_fork) do
|
@@ -60,16 +61,29 @@ class Puppet::Agent
|
|
60
61
|
end
|
61
62
|
end
|
62
63
|
rescue Puppet::LockError
|
63
|
-
|
64
|
-
|
64
|
+
now = Time.now.to_i
|
65
|
+
wait_for_lock_deadline ||= now + Puppet[:maxwaitforlock]
|
66
|
+
|
67
|
+
if Puppet[:waitforlock] < 1
|
68
|
+
Puppet.notice _("Run of %{client_class} already in progress; skipping (%{lockfile_path} exists)") % { client_class: client_class, lockfile_path: lockfile_path }
|
69
|
+
nil
|
70
|
+
elsif now >= wait_for_lock_deadline
|
71
|
+
Puppet.notice _("Exiting now because the maxwaitforlock timeout has been exceeded.")
|
72
|
+
nil
|
73
|
+
else
|
74
|
+
Puppet.info _("Another puppet instance is already running; --waitforlock flag used, waiting for running instance to finish.")
|
75
|
+
Puppet.info _("Will try again in %{time} seconds.") % {time: Puppet[:waitforlock]}
|
76
|
+
sleep Puppet[:waitforlock]
|
77
|
+
retry
|
78
|
+
end
|
65
79
|
rescue RunTimeoutError => detail
|
66
80
|
Puppet.log_exception(detail, _("Execution of %{client_class} did not complete within %{runtimeout} seconds and was terminated.") %
|
67
81
|
{client_class: client_class,
|
68
82
|
runtimeout: Puppet[:runtimeout]})
|
69
|
-
|
83
|
+
nil
|
70
84
|
rescue StandardError => detail
|
71
85
|
Puppet.log_exception(detail, _("Could not run %{client_class}: %{detail}") % { client_class: client_class, detail: detail })
|
72
|
-
|
86
|
+
nil
|
73
87
|
end
|
74
88
|
end
|
75
89
|
end
|
@@ -95,11 +109,9 @@ class Puppet::Agent
|
|
95
109
|
atForkHandler.child
|
96
110
|
$0 = _("puppet agent: applying configuration")
|
97
111
|
begin
|
98
|
-
exit(yield)
|
99
|
-
rescue SystemExit
|
100
|
-
exit(-1)
|
112
|
+
exit(yield || 1)
|
101
113
|
rescue NoMemoryError
|
102
|
-
exit(
|
114
|
+
exit(254)
|
103
115
|
end
|
104
116
|
end
|
105
117
|
ensure
|
@@ -107,12 +119,6 @@ class Puppet::Agent
|
|
107
119
|
end
|
108
120
|
|
109
121
|
exit_code = Process.waitpid2(child_pid)
|
110
|
-
case exit_code[1].exitstatus
|
111
|
-
when -1
|
112
|
-
raise SystemExit
|
113
|
-
when -2
|
114
|
-
raise NoMemoryError
|
115
|
-
end
|
116
122
|
exit_code[1].exitstatus
|
117
123
|
end
|
118
124
|
|