puppet 6.14.0 → 6.19.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/Gemfile +4 -2
- data/Gemfile.lock +36 -34
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +25 -9
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +5 -14
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/configurer.rb +68 -24
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +1 -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 +141 -41
- data/lib/puppet/environments.rb +55 -15
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +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/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- 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 +215 -60
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +43 -3
- data/lib/puppet/http/resolver/server_list.rb +66 -24
- data/lib/puppet/http/resolver/settings.rb +21 -1
- data/lib/puppet/http/resolver/srv.rb +28 -2
- data/lib/puppet/http/response.rb +82 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +70 -2
- data/lib/puppet/http/service/ca.rb +71 -9
- data/lib/puppet/http/service/compiler.rb +214 -12
- data/lib/puppet/http/service/file_server.rb +106 -5
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/service/report.rb +36 -3
- data/lib/puppet/http/session.rb +60 -8
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +2 -1
- data/lib/puppet/indirector/facts/yaml.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 +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +6 -4
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +2 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/status/rest.rb +2 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- 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/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/base_pool.rb +6 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/pool.rb +2 -4
- 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/node/facts.rb +17 -0
- 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/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +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/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/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/dpkg.rb +1 -1
- 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/pip2.rb +17 -0
- 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/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +101 -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 +10 -1
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +20 -6
- 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 +79 -37
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +14 -10
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +35 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- 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/connection.rb +8 -8
- 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/run_mode.rb +5 -1
- 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 +627 -507
- data/man/man5/puppet.conf.5 +93 -20
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/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/puppetserver_gem/gem-list-local-packages +30 -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/integration/application/agent_spec.rb +479 -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/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +39 -40
- 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 +84 -19
- 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 +8 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +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/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/filebucket_spec.rb +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/application_spec.rb +9 -4
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +87 -38
- 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 +107 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +11 -2
- data/spec/unit/http/client_spec.rb +173 -59
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +44 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +27 -5
- data/spec/unit/http/service/compiler_spec.rb +186 -9
- data/spec/unit/http/service/file_server_spec.rb +37 -6
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +5 -4
- data/spec/unit/http/service_spec.rb +3 -4
- data/spec/unit/http/session_spec.rb +48 -12
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http/pool_spec.rb +3 -3
- 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/exec_spec.rb +4 -3
- 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/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- 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/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +274 -1
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +95 -18
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +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/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +44 -22
- 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 +90 -14
- 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 +7 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/at_fork_spec.rb +2 -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 +83 -47
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/run_mode_spec.rb +6 -6
- 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 +90 -51
- 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 -63
- 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: 8766d9fc7f4fafabae27f429434e3041ac41640ca787b883ec7d959e08456415
|
4
|
+
data.tar.gz: e17375865d63248f9343b23b643c2d87091b6aa02d07485f4a0432872bb5aa7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06b9cbf96363c563feef3869acbbe55f518e2ed029242a7d04bf073260bd1b8c376e792270f6d93f8f209e15594fd21b7a39db50c746640babb321e373e460ca
|
7
|
+
data.tar.gz: ab56f99c330248009362c77702f83ba404fc2b64e233ba40c4cc1e434c0dc941d2e5bcb4e6899786ac080c7d8827eab671b7a811a554a3840d1c1dd20c01cbb2
|
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/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.19.0)
|
5
5
|
CFPropertyList (~> 2.2)
|
6
6
|
concurrent-ruby (~> 1.0)
|
7
7
|
deep_merge (~> 1.0)
|
@@ -20,16 +20,17 @@ 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.
|
26
|
-
crack (0.4.
|
27
|
-
|
28
|
-
csv (3.1.2)
|
23
|
+
ast (2.4.1)
|
24
|
+
coderay (1.1.3)
|
25
|
+
concurrent-ruby (1.1.7)
|
26
|
+
crack (0.4.4)
|
27
|
+
csv (3.1.5)
|
29
28
|
deep_merge (1.2.1)
|
30
|
-
diff-lcs (1.
|
29
|
+
diff-lcs (1.4.4)
|
31
30
|
docopt (0.6.1)
|
32
|
-
facter (
|
31
|
+
facter (4.0.43)
|
32
|
+
hocon (~> 1.3)
|
33
|
+
thor (>= 1.0.1, < 2.0)
|
33
34
|
fast_gettext (1.1.2)
|
34
35
|
gettext (3.2.9)
|
35
36
|
locale (>= 2.0.5)
|
@@ -44,40 +45,41 @@ GEM
|
|
44
45
|
highline (~> 1.6.19)
|
45
46
|
optimist
|
46
47
|
highline (1.6.21)
|
47
|
-
hocon (1.3.
|
48
|
+
hocon (1.3.1)
|
48
49
|
hpricot (0.8.6)
|
49
50
|
httpclient (2.8.3)
|
50
51
|
json-schema (2.8.1)
|
51
52
|
addressable (>= 2.4)
|
52
53
|
locale (2.1.3)
|
53
54
|
memory_profiler (0.9.14)
|
54
|
-
method_source (0.
|
55
|
+
method_source (1.0.0)
|
55
56
|
minitar (0.9)
|
56
57
|
msgpack (1.3.3)
|
57
|
-
multi_json (1.
|
58
|
+
multi_json (1.15.0)
|
58
59
|
mustache (1.1.1)
|
59
|
-
optimist (3.0.
|
60
|
-
packaging (0.99.
|
60
|
+
optimist (3.0.1)
|
61
|
+
packaging (0.99.71)
|
61
62
|
artifactory (~> 2)
|
63
|
+
csv (= 3.1.5)
|
62
64
|
rake (>= 12.3)
|
63
65
|
release-metrics
|
64
|
-
parallel (1.19.
|
65
|
-
parser (2.7.0
|
66
|
-
ast (~> 2.4.
|
66
|
+
parallel (1.19.2)
|
67
|
+
parser (2.7.2.0)
|
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.6)
|
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
|
79
81
|
rake (12.3.3)
|
80
|
-
rdiscount (2.2.0.
|
82
|
+
rdiscount (2.2.0.2)
|
81
83
|
rdoc (6.2.1)
|
82
84
|
release-metrics (1.1.0)
|
83
85
|
csv
|
@@ -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.3)
|
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,18 @@ 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.
|
116
|
+
ruby-prof (1.4.1)
|
115
117
|
ruby-progressbar (1.10.1)
|
116
|
-
safe_yaml (1.0.5)
|
117
118
|
semantic_puppet (1.0.2)
|
118
119
|
text (1.3.1)
|
119
|
-
|
120
|
+
thor (1.0.1)
|
121
|
+
unicode-display_width (1.7.0)
|
120
122
|
vcr (5.1.0)
|
121
|
-
webmock (3.
|
123
|
+
webmock (3.9.3)
|
122
124
|
addressable (>= 2.3.6)
|
123
125
|
crack (>= 0.3.2)
|
124
126
|
hashdiff (>= 0.4.0, < 2.0.0)
|
125
|
-
yard (0.9.
|
127
|
+
yard (0.9.25)
|
126
128
|
|
127
129
|
PLATFORMS
|
128
130
|
ruby
|
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# Puppet
|
2
2
|
|
3
|
-
|
4
|
-
[![Appveyor Status](https://ci.appveyor.com/api/projects/status/cvhpypd4504sevqq/branch/master?svg=true)](https://ci.appveyor.com/project/puppetlabs/puppet/branch/master)
|
3
|
+
![RSpec tests](https://github.com/puppetlabs/puppet/workflows/RSpec%20tests/badge.svg)
|
5
4
|
[![Gem Version](https://badge.fury.io/rb/puppet.svg)](https://badge.fury.io/rb/puppet)
|
6
5
|
[![Inline docs](https://inch-ci.org/github/puppetlabs/puppet.svg)](https://inch-ci.org/github/puppetlabs/puppet)
|
7
6
|
|
@@ -25,10 +24,10 @@ which also includes orchestration features, a web console, and professional supp
|
|
25
24
|
The PE documentation is [available here.](https://puppet.com/docs/pe/latest)
|
26
25
|
|
27
26
|
To install an open source release of Puppet,
|
28
|
-
[see the installation guide on the docs site.](https://puppet.com/docs/puppet/
|
27
|
+
[see the installation guide on the docs site.](https://puppet.com/docs/puppet/latest/installing_and_upgrading.html)
|
29
28
|
|
30
29
|
If you need to run Puppet from source as a tester or developer,
|
31
|
-
see the [
|
30
|
+
see the [Quick Start to Developing on Puppet](docs/quickstart.md) guide.
|
32
31
|
|
33
32
|
## Developing and Contributing
|
34
33
|
|
data/Rakefile
CHANGED
@@ -61,12 +61,8 @@ end
|
|
61
61
|
desc "verify that commit messages match CONTRIBUTING.md requirements"
|
62
62
|
task(:commits) do
|
63
63
|
# This rake task looks at the summary from every commit from this branch not
|
64
|
-
# in the branch targeted for a PR.
|
65
|
-
|
66
|
-
# populated with the range of commits the PR contains. If not available, this
|
67
|
-
# falls back to `master..HEAD` as a next best bet as `master` is unlikely to
|
68
|
-
# ever be absent.
|
69
|
-
commit_range = ENV['TRAVIS_COMMIT_RANGE'].nil? ? 'master..HEAD' : ENV['TRAVIS_COMMIT_RANGE'].sub(/\.\.\./, '..')
|
64
|
+
# in the branch targeted for a PR.
|
65
|
+
commit_range = 'HEAD^..HEAD'
|
70
66
|
puts "Checking commits #{commit_range}"
|
71
67
|
%x{git log --no-merges --pretty=%s #{commit_range}}.each_line do |commit_summary|
|
72
68
|
# This regex tests for the currently supported commit summary tokens: maint, doc, packaging, or pup-<number>.
|
@@ -91,12 +87,8 @@ end
|
|
91
87
|
|
92
88
|
desc "verify that changed files are clean of Ruby warnings"
|
93
89
|
task(:warnings) do
|
94
|
-
# This rake task looks at all files modified in this branch.
|
95
|
-
|
96
|
-
# is present in travis CI and populated with the range of commits the PR
|
97
|
-
# contains. If not available, this falls back to `master..HEAD` as a next
|
98
|
-
# best bet as `master` is unlikely to ever be absent.
|
99
|
-
commit_range = ENV['TRAVIS_COMMIT_RANGE'].nil? ? 'master...HEAD' : ENV['TRAVIS_COMMIT_RANGE']
|
90
|
+
# This rake task looks at all files modified in this branch.
|
91
|
+
commit_range = 'HEAD^..HEAD'
|
100
92
|
ruby_files_ok = true
|
101
93
|
puts "Checking modified files #{commit_range}"
|
102
94
|
%x{git diff --diff-filter=ACM --name-only #{commit_range}}.each_line do |modified_file|
|
@@ -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,8 +260,8 @@ module Puppet
|
|
236
260
|
raise e
|
237
261
|
end
|
238
262
|
},
|
239
|
-
:ssl_host => proc { Puppet::SSL::Host.localhost },
|
240
|
-
:http_session => proc { Puppet.runtime[
|
263
|
+
:ssl_host => proc { Puppet::SSL::Host.localhost(true) },
|
264
|
+
:http_session => proc { Puppet.runtime[:http].create_session },
|
241
265
|
:plugins => proc { Puppet::Plugins::Configuration.load_plugins },
|
242
266
|
:rich_data => false
|
243
267
|
}
|
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
|
|
data/lib/puppet/agent/locker.rb
CHANGED
@@ -27,14 +27,7 @@ module Puppet::Agent::Locker
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
# @deprecated
|
31
30
|
def running?
|
32
|
-
#TRANSLATORS 'Puppet::Agent::Locker.running?' is a method name and should not be translated
|
33
|
-
message = _('Puppet::Agent::Locker.running? is deprecated as it is inherently unsafe.')
|
34
|
-
#TRANSLATORS 'LockError' should not be translated
|
35
|
-
message += ' ' + _('The only safe way to know if the lock is locked is to try lock and perform some '\
|
36
|
-
'action and then handle the LockError that may result.')
|
37
|
-
Puppet.deprecation_warning(message)
|
38
31
|
lockfile.locked?
|
39
32
|
end
|
40
33
|
|
@@ -39,6 +39,7 @@ class Puppet::Application::Agent < Puppet::Application
|
|
39
39
|
:graph => true,
|
40
40
|
:fingerprint => false,
|
41
41
|
:sourceaddress => nil,
|
42
|
+
:start_time => Time.now,
|
42
43
|
}.each do |opt,val|
|
43
44
|
options[opt] = val
|
44
45
|
end
|
@@ -102,7 +103,7 @@ USAGE
|
|
102
103
|
puppet agent [--certname <NAME>] [-D|--daemonize|--no-daemonize]
|
103
104
|
[-d|--debug] [--detailed-exitcodes] [--digest <DIGEST>] [--disable [MESSAGE]] [--enable]
|
104
105
|
[--fingerprint] [-h|--help] [-l|--logdest syslog|eventlog|<ABS FILEPATH>|console]
|
105
|
-
[--
|
106
|
+
[--serverport <PORT>] [--noop] [-o|--onetime] [--sourceaddress <IP_ADDRESS>] [-t|--test]
|
106
107
|
[-v|--verbose] [-V|--version] [-w|--waitforcert <SECONDS>]
|
107
108
|
|
108
109
|
|
@@ -257,7 +258,9 @@ generated by running puppet agent with '--genconfig'.
|
|
257
258
|
|
258
259
|
* --job-id:
|
259
260
|
Attach the specified job id to the catalog request and the report used for
|
260
|
-
this agent run. This option only works when '--onetime' is used.
|
261
|
+
this agent run. This option only works when '--onetime' is used. When using
|
262
|
+
Puppet Enterprise this flag should not be used as the orchestrator sets the
|
263
|
+
job-id for you and it must be unique.
|
261
264
|
|
262
265
|
* --logdest:
|
263
266
|
Where to send log messages. Choose between 'syslog' (the POSIX syslog
|
@@ -274,8 +277,9 @@ generated by running puppet agent with '--genconfig'.
|
|
274
277
|
format.
|
275
278
|
|
276
279
|
* --masterport:
|
277
|
-
The port on which to contact the
|
278
|
-
(This is a Puppet setting, and can go in puppet.conf.
|
280
|
+
The port on which to contact the Puppet Server.
|
281
|
+
(This is a Puppet setting, and can go in puppet.conf.
|
282
|
+
Deprecated in favor of the 'serverport' setting.)
|
279
283
|
|
280
284
|
* --noop:
|
281
285
|
Use 'noop' mode where the daemon runs in a no-op or dry-run mode. This
|
@@ -291,6 +295,10 @@ generated by running puppet agent with '--genconfig'.
|
|
291
295
|
(This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
|
292
296
|
prefix for boolean settings on the command line.)
|
293
297
|
|
298
|
+
* --serverport:
|
299
|
+
The port on which to contact the Puppet Server.
|
300
|
+
(This is a Puppet setting, and can go in puppet.conf.)
|
301
|
+
|
294
302
|
* --sourceaddress:
|
295
303
|
Set the source IP address for transactions. This defaults to automatically selected.
|
296
304
|
(This is a Puppet setting, and can go in puppet.conf.)
|
@@ -362,8 +370,17 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
362
370
|
daemon.set_signal_traps
|
363
371
|
|
364
372
|
log_config if Puppet[:daemonize]
|
365
|
-
|
366
|
-
|
373
|
+
|
374
|
+
# run ssl state machine, waiting if needed
|
375
|
+
ssl_context = wait_for_certificates
|
376
|
+
|
377
|
+
# Each application is responsible for pushing loaders onto the context.
|
378
|
+
# Use the current environment that has already been established, though
|
379
|
+
# it may change later during the configurer run.
|
380
|
+
env = Puppet.lookup(:current_environment)
|
381
|
+
Puppet.override(ssl_context: ssl_context,
|
382
|
+
current_environment: env,
|
383
|
+
loaders: Puppet::Pops::Loaders.new(env, true)) do
|
367
384
|
if Puppet[:onetime]
|
368
385
|
onetime(daemon)
|
369
386
|
else
|
@@ -405,7 +422,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
405
422
|
|
406
423
|
def onetime(daemon)
|
407
424
|
begin
|
408
|
-
exitstatus = daemon.agent.run(:job_id => options[:job_id])
|
425
|
+
exitstatus = daemon.agent.run({:job_id => options[:job_id], :start_time => options[:start_time]})
|
409
426
|
rescue => detail
|
410
427
|
Puppet.log_exception(detail)
|
411
428
|
end
|
@@ -488,9 +505,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
488
505
|
end
|
489
506
|
|
490
507
|
def daemonize_process_when(should_daemonize)
|
491
|
-
daemon = Puppet::Daemon.new(Puppet::Util::Pidlock.new(Puppet[:pidfile]))
|
508
|
+
daemon = Puppet::Daemon.new(@agent, Puppet::Util::Pidlock.new(Puppet[:pidfile]))
|
492
509
|
daemon.argv = @argv
|
493
|
-
daemon.agent = @agent
|
494
510
|
|
495
511
|
daemon.daemonize if should_daemonize
|
496
512
|
|