puppet 6.12.0 → 6.17.0
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 +39 -36
- data/README.md +18 -25
- data/ext/project_data.yaml +1 -1
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +52 -13
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/application/agent.rb +26 -17
- 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/plugin.rb +1 -0
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/application/ssl.rb +4 -4
- data/lib/puppet/configurer.rb +65 -69
- data/lib/puppet/configurer/plugin_handler.rb +10 -1
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +154 -58
- data/lib/puppet/environments.rb +27 -20
- data/lib/puppet/face/facts.rb +8 -5
- 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/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +14 -10
- data/lib/puppet/file_system/memory_file.rb +6 -0
- data/lib/puppet/file_system/memory_impl.rb +13 -0
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/file_system/windows.rb +7 -10
- 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/reduce.rb +2 -4
- data/lib/puppet/http.rb +5 -0
- data/lib/puppet/http/client.rb +293 -73
- data/lib/puppet/http/errors.rb +2 -0
- 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 +151 -7
- data/lib/puppet/http/service/ca.rb +76 -14
- data/lib/puppet/http/service/compiler.rb +319 -0
- data/lib/puppet/http/service/file_server.rb +206 -0
- data/lib/puppet/http/service/report.rb +49 -23
- data/lib/puppet/http/session.rb +103 -7
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +10 -0
- data/lib/puppet/indirector/catalog/rest.rb +34 -0
- data/lib/puppet/indirector/facts/rest.rb +42 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- 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 +27 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +52 -0
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +24 -0
- 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/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 +6 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +2 -0
- data/lib/puppet/network/http/pool.rb +13 -6
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +11 -1
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +4 -29
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +6 -15
- 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 -13
- 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/pops/evaluator/access_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +6 -6
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +12 -3
- data/lib/puppet/pops/loaders.rb +7 -5
- data/lib/puppet/pops/parser/evaluating_parser.rb +5 -7
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/p_object_type_extension.rb +10 -0
- data/lib/puppet/pops/types/type_calculator.rb +24 -0
- data/lib/puppet/pops/validation/checker4_0.rb +11 -1
- data/lib/puppet/pops/validation/tasks_checker.rb +5 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/aix_object.rb +4 -2
- data/lib/puppet/provider/group/aix.rb +1 -0
- data/lib/puppet/provider/group/groupadd.rb +57 -24
- 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 +78 -4
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +69 -15
- data/lib/puppet/provider/package/dpkg.rb +14 -7
- data/lib/puppet/provider/package/fink.rb +20 -3
- data/lib/puppet/provider/package/gem.rb +41 -7
- data/lib/puppet/provider/package/openbsd.rb +13 -1
- 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/pkg.rb +18 -5
- 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 +6 -2
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +109 -25
- data/lib/puppet/provider/package/zypper.rb +59 -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 -0
- data/lib/puppet/provider/user/directoryservice.rb +30 -5
- data/lib/puppet/provider/user/useradd.rb +22 -12
- data/lib/puppet/reports/http.rb +15 -9
- data/lib/puppet/reports/store.rb +1 -1
- 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 +4 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/certificate.rb +2 -1
- 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/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +15 -11
- data/lib/puppet/transaction/report.rb +2 -2
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +18 -6
- data/lib/puppet/type/file.rb +51 -13
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +51 -60
- data/lib/puppet/type/group.rb +2 -2
- data/lib/puppet/type/package.rb +102 -10
- data/lib/puppet/type/service.rb +55 -8
- data/lib/puppet/type/user.rb +3 -28
- data/lib/puppet/util.rb +39 -15
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +4 -18
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +2 -11
- 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 +36 -10
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/plist.rb +6 -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/storage.rb +0 -1
- data/lib/puppet/util/windows/adsi.rb +2 -2
- data/lib/puppet/util/windows/api_types.rb +45 -32
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- 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 +1 -0
- 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 +23 -8
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +707 -574
- data/man/man5/puppet.conf.5 +74 -14
- 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 +1 -1
- 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/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/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 -102
- 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 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -102
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -98
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -102
- 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 -102
- data/spec/integration/application/agent_spec.rb +483 -0
- data/spec/integration/application/apply_spec.rb +132 -3
- data/spec/integration/application/filebucket_spec.rb +190 -0
- data/spec/integration/application/plugin_spec.rb +73 -0
- data/spec/integration/configurer_spec.rb +26 -7
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/http/client_spec.rb +47 -37
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/module_tool/forge_spec.rb +2 -15
- 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/windows/adsi_spec.rb +6 -1
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/user_spec.rb +40 -5
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +16 -7
- data/spec/lib/puppet_spec/puppetserver.rb +119 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +9 -5
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/application/describe_spec.rb +88 -50
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/filebucket_spec.rb +22 -2
- data/spec/unit/application/resource_spec.rb +2 -2
- data/spec/unit/configurer/fact_handler_spec.rb +4 -8
- data/spec/unit/configurer/plugin_handler_spec.rb +36 -19
- data/spec/unit/configurer_spec.rb +17 -18
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/defaults_spec.rb +25 -2
- data/spec/unit/environments_spec.rb +65 -28
- data/spec/unit/face/facts_spec.rb +24 -20
- 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/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +11 -0
- data/spec/unit/file_system_spec.rb +26 -2
- data/spec/unit/functions/lookup_spec.rb +13 -0
- data/spec/unit/http/client_spec.rb +327 -35
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +34 -2
- data/spec/unit/http/response_spec.rb +75 -0
- data/spec/unit/http/service/ca_spec.rb +53 -11
- data/spec/unit/http/service/compiler_spec.rb +627 -0
- data/spec/unit/http/service/file_server_spec.rb +308 -0
- data/spec/unit/http/service/report_spec.rb +27 -9
- data/spec/unit/http/service_spec.rb +98 -5
- data/spec/unit/http/session_spec.rb +190 -7
- data/spec/unit/indirector/catalog/compiler_spec.rb +47 -29
- 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/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/connection_spec.rb +559 -175
- data/spec/unit/network/http/nocache_pool_spec.rb +25 -3
- data/spec/unit/network/http/pool_spec.rb +89 -11
- 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 +16 -0
- data/spec/unit/node/facts_spec.rb +2 -1
- data/spec/unit/node_spec.rb +7 -4
- 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 +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +6 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/pops/validator/validator_spec.rb +7 -2
- data/spec/unit/provider/aix_object_spec.rb +16 -2
- data/spec/unit/provider/group/groupadd_spec.rb +181 -56
- 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 +43 -2
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +76 -15
- data/spec/unit/provider/package/dpkg_spec.rb +28 -6
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/openbsd_spec.rb +17 -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/pkg_spec.rb +15 -1
- 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 +8 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +292 -0
- data/spec/unit/provider/package/zypper_spec.rb +84 -0
- data/spec/unit/provider/service/init_spec.rb +1 -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 +92 -12
- data/spec/unit/provider/service/windows_spec.rb +22 -14
- data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +43 -24
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +0 -26
- data/spec/unit/puppet_pal_catalog_spec.rb +46 -0
- data/spec/unit/puppet_spec.rb +47 -0
- data/spec/unit/reports/http_spec.rb +70 -52
- 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/certificate_spec.rb +7 -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 +1 -10
- 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/package_spec.rb +8 -0
- data/spec/unit/type/service_spec.rb +185 -8
- data/spec/unit/type/user_spec.rb +1 -2
- 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/checksums_spec.rb +16 -0
- 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 +112 -42
- data/spec/unit/util/plist_spec.rb +20 -0
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/storage_spec.rb +1 -8
- 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 +73 -12
- data/COMMITTERS.md +0 -244
- data/spec/integration/faces/plugin_spec.rb +0 -61
- data/spec/integration/test/test_helper_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: ce222e2720882560d874607f4b7202a5421e58f904caceac7cd481385abee714
|
4
|
+
data.tar.gz: b55fadb67cb0a7427df5bcbaf0a40f2e24fd28332af599f68203806249027db4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 300b054c35d6681fd46b0dc5873df43a93d2f3839750a92bcd49b178387c844b858cfa8b7785593632c4c487c59e50137ee07658b3122d949173659695674717
|
7
|
+
data.tar.gz: a17a857745b31fa04083bbf7476d399f9196b23288d83fff831f79aa06df630c282e9ebb85b9419d7930d816b94f3d8474a12628fceb039ca6f7f4e8dc599f10
|
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,11 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
puppet (6.
|
4
|
+
puppet (6.17.0)
|
5
5
|
CFPropertyList (~> 2.2)
|
6
6
|
concurrent-ruby (~> 1.0)
|
7
7
|
deep_merge (~> 1.0)
|
8
|
-
facter (>= 2.4.0, <
|
8
|
+
facter (>= 2.4.0, < 5)
|
9
9
|
fast_gettext (~> 1.1)
|
10
10
|
hiera (>= 3.2.1, < 4)
|
11
11
|
httpclient (~> 2.8)
|
@@ -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.6)
|
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.29)
|
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,41 +40,41 @@ 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
|
-
hiera-eyaml (3.
|
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
|
-
locale (2.1.
|
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
|
-
msgpack (1.3.
|
57
|
-
multi_json (1.
|
58
|
+
msgpack (1.3.3)
|
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.66)
|
61
63
|
artifactory (~> 2)
|
62
64
|
rake (>= 12.3)
|
63
65
|
release-metrics
|
64
|
-
parallel (1.19.
|
65
|
-
parser (2.7.
|
66
|
-
ast (~> 2.4.
|
66
|
+
parallel (1.19.2)
|
67
|
+
parser (2.7.1.4)
|
68
|
+
ast (~> 2.4.1)
|
67
69
|
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.
|
70
|
+
pry (0.13.1)
|
71
|
+
coderay (~> 1.1)
|
72
|
+
method_source (~> 1.0)
|
73
|
+
public_suffix (4.0.5)
|
74
|
+
puppet-resource_api (1.8.13)
|
73
75
|
hocon (>= 1.0)
|
74
|
-
puppetserver-ca (1.
|
75
|
-
facter (>= 2.0.1, <
|
76
|
+
puppetserver-ca (1.8.0)
|
77
|
+
facter (>= 2.0.1, < 5)
|
76
78
|
racc (1.4.9)
|
77
79
|
rainbow (2.2.2)
|
78
80
|
rake
|
@@ -90,9 +92,9 @@ GEM
|
|
90
92
|
rspec-core (~> 3.9.0)
|
91
93
|
rspec-expectations (~> 3.9.0)
|
92
94
|
rspec-mocks (~> 3.9.0)
|
93
|
-
rspec-core (3.9.
|
94
|
-
rspec-support (~> 3.9.
|
95
|
-
rspec-expectations (3.9.
|
95
|
+
rspec-core (3.9.2)
|
96
|
+
rspec-support (~> 3.9.3)
|
97
|
+
rspec-expectations (3.9.2)
|
96
98
|
diff-lcs (>= 1.2.0, < 2.0)
|
97
99
|
rspec-support (~> 3.9.0)
|
98
100
|
rspec-its (1.3.0)
|
@@ -101,7 +103,7 @@ GEM
|
|
101
103
|
rspec-mocks (3.9.1)
|
102
104
|
diff-lcs (>= 1.2.0, < 2.0)
|
103
105
|
rspec-support (~> 3.9.0)
|
104
|
-
rspec-support (3.9.
|
106
|
+
rspec-support (3.9.3)
|
105
107
|
rubocop (0.49.1)
|
106
108
|
parallel (~> 1.10)
|
107
109
|
parser (>= 2.3.3.1, < 3.0)
|
@@ -111,18 +113,19 @@ GEM
|
|
111
113
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
112
114
|
rubocop-i18n (1.2.0)
|
113
115
|
rubocop (~> 0.49.0)
|
114
|
-
ruby-prof (1.1
|
116
|
+
ruby-prof (1.4.1)
|
115
117
|
ruby-progressbar (1.10.1)
|
116
118
|
safe_yaml (1.0.5)
|
117
119
|
semantic_puppet (1.0.2)
|
118
120
|
text (1.3.1)
|
119
|
-
|
120
|
-
|
121
|
-
|
121
|
+
thor (1.0.1)
|
122
|
+
unicode-display_width (1.7.0)
|
123
|
+
vcr (5.1.0)
|
124
|
+
webmock (3.8.3)
|
122
125
|
addressable (>= 2.3.6)
|
123
126
|
crack (>= 0.3.2)
|
124
127
|
hashdiff (>= 0.4.0, < 2.0.0)
|
125
|
-
yard (0.9.
|
128
|
+
yard (0.9.25)
|
126
129
|
|
127
130
|
PLATFORMS
|
128
131
|
ruby
|
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
Puppet
|
2
|
-
======
|
1
|
+
# Puppet
|
3
2
|
|
4
|
-
[![Travis Status](https://travis-ci.
|
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)
|
6
5
|
[![Gem Version](https://badge.fury.io/rb/puppet.svg)](https://badge.fury.io/rb/puppet)
|
7
6
|
[![Inline docs](https://inch-ci.org/github/puppetlabs/puppet.svg)](https://inch-ci.org/github/puppetlabs/puppet)
|
@@ -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/)
|
data/ext/project_data.yaml
CHANGED
@@ -17,7 +17,7 @@ gem_forge_project: 'puppet'
|
|
17
17
|
gem_required_ruby_version: '>= 2.3.0'
|
18
18
|
gem_required_rubygems_version: '> 1.3.1'
|
19
19
|
gem_runtime_dependencies:
|
20
|
-
facter: ['> 2.0.1', '<
|
20
|
+
facter: ['> 2.0.1', '< 5']
|
21
21
|
hiera: ['>= 3.2.1', '< 4']
|
22
22
|
semantic_puppet: '~> 1.0'
|
23
23
|
fast_gettext: '~> 1.1'
|
@@ -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
|
#
|
@@ -22,6 +25,7 @@ require 'puppet/external/pson/common'
|
|
22
25
|
require 'puppet/external/pson/version'
|
23
26
|
require 'puppet/external/pson/pure'
|
24
27
|
require 'puppet/gettext/config'
|
28
|
+
require 'puppet/defaults'
|
25
29
|
|
26
30
|
|
27
31
|
#------------------------------------------------------------
|
@@ -60,6 +64,14 @@ module Puppet
|
|
60
64
|
@@settings
|
61
65
|
end
|
62
66
|
|
67
|
+
# The puppetserver project has its own settings class that is thread-aware; this
|
68
|
+
# method is here to allow the puppetserver to define its own custom settings class
|
69
|
+
# for multithreaded puppet. It is not intended for use outside of the puppetserver
|
70
|
+
# implmentation.
|
71
|
+
def self.replace_settings_object(new_settings)
|
72
|
+
@@settings = new_settings
|
73
|
+
end
|
74
|
+
|
63
75
|
# Get the value for a setting
|
64
76
|
#
|
65
77
|
# @param [Symbol] param the setting to retrieve
|
@@ -87,6 +99,7 @@ module Puppet
|
|
87
99
|
|
88
100
|
# Store a new default value.
|
89
101
|
def self.define_settings(section, hash)
|
102
|
+
Puppet.deprecation_warning('The method Puppet.define_settings is deprecated and will be removed in a future release')
|
90
103
|
@@settings.define_settings(section, hash)
|
91
104
|
end
|
92
105
|
|
@@ -121,8 +134,9 @@ module Puppet
|
|
121
134
|
Puppet::Util::RunMode[@@settings.preferred_run_mode]
|
122
135
|
end
|
123
136
|
|
124
|
-
#
|
125
|
-
|
137
|
+
# Modify the settings with defaults defined in `initialize_default_settings` method in puppet/defaults.rb. This can
|
138
|
+
# be used in the initialization of new Puppet::Settings objects in the puppetserver project.
|
139
|
+
Puppet.initialize_default_settings!(settings)
|
126
140
|
|
127
141
|
# Now that settings are loaded we have the code loaded to be able to issue
|
128
142
|
# deprecation warnings. Warn if we're on a deprecated ruby version.
|
@@ -137,19 +151,47 @@ module Puppet
|
|
137
151
|
#
|
138
152
|
# @api public
|
139
153
|
# @param args [Array<String>] the command line arguments to use for initialization
|
154
|
+
# @param require_config [Boolean] controls loading of Puppet configuration files
|
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
|
140
157
|
# @return [void]
|
141
|
-
def self.initialize_settings(args = [], require_config = true)
|
142
|
-
do_initialize_settings_for_run_mode(:user, args, require_config)
|
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
|
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)
|
143
178
|
end
|
179
|
+
private_class_method :initialize_load_path
|
144
180
|
|
145
181
|
# private helper method to provide the implementation details of initializing for a run mode,
|
146
182
|
# but allowing us to control where the deprecation warning is issued
|
147
|
-
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)
|
148
184
|
Puppet.settings.initialize_global_settings(args, require_config)
|
149
185
|
run_mode = Puppet::Util::RunMode[run_mode]
|
150
186
|
Puppet.settings.initialize_app_defaults(Puppet::Settings.app_defaults_for_run_mode(run_mode))
|
151
|
-
|
152
|
-
|
187
|
+
if push_settings_globally
|
188
|
+
initialize_load_path
|
189
|
+
push_context_global(Puppet.base_context(Puppet.settings), "Initial context after settings initialization")
|
190
|
+
Puppet::Parser::Functions.reset
|
191
|
+
end
|
192
|
+
runtime_implementations.each_pair do |name, impl|
|
193
|
+
Puppet.runtime[name] = impl
|
194
|
+
end
|
153
195
|
end
|
154
196
|
private_class_method :do_initialize_settings_for_run_mode
|
155
197
|
|
@@ -203,10 +245,7 @@ module Puppet
|
|
203
245
|
|
204
246
|
{
|
205
247
|
:environments => Puppet::Environments::Cached.new(Puppet::Environments::Combined.new(*loaders)),
|
206
|
-
:http_pool => proc {
|
207
|
-
require 'puppet/network/http'
|
208
|
-
Puppet::Network::HTTP::NoCachePool.new
|
209
|
-
},
|
248
|
+
:http_pool => proc { Puppet.runtime[:http].pool },
|
210
249
|
:ssl_context => proc {
|
211
250
|
begin
|
212
251
|
cert = Puppet::X509::CertProvider.new
|
@@ -221,7 +260,8 @@ module Puppet
|
|
221
260
|
raise e
|
222
261
|
end
|
223
262
|
},
|
224
|
-
: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 },
|
225
265
|
:plugins => proc { Puppet::Plugins::Configuration.load_plugins },
|
226
266
|
:rich_data => false
|
227
267
|
}
|
@@ -307,7 +347,6 @@ module Puppet
|
|
307
347
|
|
308
348
|
require 'puppet/runtime'
|
309
349
|
@runtime = Puppet::Runtime.instance
|
310
|
-
@runtime['http'] = proc { Puppet::HTTP::Client.new }
|
311
350
|
end
|
312
351
|
|
313
352
|
# This feels weird to me; I would really like for us to get to a state where there is never a "require" statement
|