puppet 5.5.16-x64-mingw32 → 5.5.21-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 +10 -10
- data/Gemfile +2 -3
- data/Gemfile.lock +57 -52
- data/ext/build_defaults.yaml +1 -0
- data/ext/cert_inspector +3 -3
- data/ext/project_data.yaml +2 -2
- data/ext/puppet-test +2 -2
- data/ext/regexp_nodes/regexp_nodes.rb +4 -4
- data/ext/windows/service/daemon.rb +54 -8
- data/install.rb +6 -24
- data/lib/puppet.rb +5 -2
- data/lib/puppet/agent.rb +5 -13
- data/lib/puppet/application.rb +1 -1
- data/lib/puppet/application/agent.rb +15 -1
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +3 -9
- data/lib/puppet/application/device.rb +4 -4
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +13 -0
- data/lib/puppet/application/lookup.rb +1 -1
- data/lib/puppet/application/resource.rb +4 -4
- data/lib/puppet/application/script.rb +2 -2
- data/lib/puppet/configurer.rb +86 -28
- data/lib/puppet/configurer/downloader.rb +2 -6
- data/lib/puppet/daemon.rb +1 -1
- data/lib/puppet/defaults.rb +82 -38
- data/lib/puppet/error.rb +9 -1
- data/lib/puppet/external/nagios/base.rb +1 -1
- data/lib/puppet/face/ca.rb +1 -1
- data/lib/puppet/face/config.rb +10 -48
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/module/list.rb +5 -5
- data/lib/puppet/face/module/search.rb +1 -1
- data/lib/puppet/face/module/uninstall.rb +1 -1
- data/lib/puppet/face/module/upgrade.rb +1 -1
- data/lib/puppet/face/plugin.rb +9 -2
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_system.rb +0 -8
- data/lib/puppet/file_system/memory_file.rb +1 -1
- data/lib/puppet/file_system/posix.rb +3 -2
- data/lib/puppet/file_system/uniquefile.rb +4 -0
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/functions/epp.rb +4 -4
- data/lib/puppet/functions/inline_epp.rb +5 -5
- data/lib/puppet/functions/reduce.rb +2 -4
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/graph/rb_tree_map.rb +2 -2
- data/lib/puppet/graph/simple_graph.rb +6 -5
- data/lib/puppet/indirector/catalog/compiler.rb +8 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +2 -0
- data/lib/puppet/indirector/resource/ral.rb +1 -3
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/interface.rb +2 -1
- data/lib/puppet/loaders.rb +0 -1
- data/lib/puppet/metatype/manager.rb +1 -1
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/module_tool/applications/builder.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +1 -1
- data/lib/puppet/module_tool/applications/uninstaller.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/module_tool/shared_behaviors.rb +4 -4
- data/lib/puppet/module_tool/tar/mini.rb +12 -2
- data/lib/puppet/network/http/api/indirected_routes.rb +13 -12
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/connection.rb +14 -12
- data/lib/puppet/network/http/factory.rb +1 -11
- data/lib/puppet/network/http/pool.rb +7 -1
- data/lib/puppet/network/http/rack/rest.rb +2 -2
- data/lib/puppet/network/http/site.rb +1 -1
- data/lib/puppet/network/resolver.rb +2 -2
- data/lib/puppet/node/environment.rb +4 -2
- data/lib/puppet/parameter.rb +8 -0
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- 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 +3 -0
- data/lib/puppet/parser/functions.rb +1 -1
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- 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/collectors/catalog_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loaders.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +22 -18
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/pn_parser.rb +17 -16
- data/lib/puppet/pops/puppet_stack.rb +51 -48
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/string_converter.rb +10 -10
- data/lib/puppet/pops/types/type_calculator.rb +24 -0
- data/lib/puppet/pops/types/types.rb +3 -3
- data/lib/puppet/pops/validation/checker4_0.rb +10 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider/augeas/augeas.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +1 -1
- data/lib/puppet/provider/exec.rb +6 -2
- data/lib/puppet/provider/file/posix.rb +5 -0
- data/lib/puppet/provider/group/groupadd.rb +19 -19
- data/lib/puppet/provider/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/mailalias/aliases.rb +1 -1
- data/lib/puppet/provider/mount.rb +1 -1
- data/lib/puppet/provider/mount/parsed.rb +8 -8
- data/lib/puppet/provider/nameservice.rb +10 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
- data/lib/puppet/provider/nameservice/pw.rb +2 -2
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +14 -3
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +141 -0
- data/lib/puppet/provider/package/dpkg.rb +16 -18
- data/lib/puppet/provider/package/fink.rb +20 -3
- data/lib/puppet/provider/package/openbsd.rb +14 -2
- data/lib/puppet/provider/package/pip.rb +37 -10
- 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 +4 -4
- data/lib/puppet/provider/package/rpm.rb +57 -19
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +35 -24
- data/lib/puppet/provider/package/zypper.rb +1 -0
- data/lib/puppet/provider/package_targetable.rb +5 -4
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
- data/lib/puppet/provider/selmodule/semodule.rb +43 -26
- data/lib/puppet/provider/service/daemontools.rb +9 -9
- data/lib/puppet/provider/service/launchd.rb +20 -5
- data/lib/puppet/provider/service/openbsd.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +2 -8
- data/lib/puppet/provider/service/systemd.rb +35 -22
- data/lib/puppet/provider/service/windows.rb +8 -0
- data/lib/puppet/provider/user/directoryservice.rb +31 -6
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +12 -3
- data/lib/puppet/provider/user/user_role_add.rb +5 -1
- data/lib/puppet/provider/user/useradd.rb +62 -27
- data/lib/puppet/provider/user/windows_adsi.rb +4 -5
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
- data/lib/puppet/reference/indirection.rb +2 -2
- data/lib/puppet/reference/metaparameter.rb +1 -3
- data/lib/puppet/reference/providers.rb +1 -1
- data/lib/puppet/reference/type.rb +3 -9
- data/lib/puppet/reports.rb +1 -1
- data/lib/puppet/resource.rb +18 -1
- data/lib/puppet/resource/catalog.rb +1 -1
- data/lib/puppet/resource/type.rb +8 -0
- data/lib/puppet/settings.rb +43 -3
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/ssl/certificate.rb +2 -1
- data/lib/puppet/ssl/certificate_authority.rb +6 -5
- data/lib/puppet/ssl/certificate_authority/interface.rb +1 -1
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/host.rb +3 -3
- data/lib/puppet/ssl/oids.rb +1 -1
- data/lib/puppet/test/test_helper.rb +15 -10
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +15 -4
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/exec.rb +21 -9
- data/lib/puppet/type/file.rb +14 -2
- data/lib/puppet/type/file/data_sync.rb +5 -1
- data/lib/puppet/type/group.rb +4 -2
- data/lib/puppet/type/interface.rb +1 -1
- data/lib/puppet/type/notify.rb +3 -2
- data/lib/puppet/type/package.rb +107 -8
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/selboolean.rb +17 -3
- data/lib/puppet/type/service.rb +9 -10
- data/lib/puppet/type/user.rb +6 -24
- data/lib/puppet/type/yumrepo.rb +3 -7
- data/lib/puppet/util.rb +47 -25
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +4 -3
- data/lib/puppet/util/http_proxy.rb +24 -16
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/log.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +3 -12
- data/lib/puppet/util/logging.rb +30 -18
- data/lib/puppet/util/metric.rb +2 -2
- data/lib/puppet/util/monkey_patches.rb +1 -1
- data/lib/puppet/util/nagios_maker.rb +2 -2
- data/lib/puppet/util/network_device/cisco/device.rb +1 -1
- data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
- data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
- data/lib/puppet/util/pidlock.rb +12 -6
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/provider_features.rb +2 -4
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +8 -2
- data/lib/puppet/util/windows/adsi.rb +60 -30
- 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 +16 -15
- data/lib/puppet/util/windows/registry.rb +17 -15
- data/lib/puppet/util/windows/security.rb +3 -0
- data/lib/puppet/util/windows/service.rb +149 -4
- data/lib/puppet/util/windows/sid.rb +4 -3
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +2 -2
- data/locales/puppet.pot +479 -443
- data/man/man5/puppet.conf.5 +38 -8
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.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 +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 +16 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- 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-master.8 +1 -1
- data/man/man8/puppet-module.8 +1 -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-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/provider/mailalias/aliases/test1 +1 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -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/service/systemd/list_unit_files_services +9 -0
- data/spec/integration/configurer_spec.rb +52 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/provider/service/systemd_spec.rb +8 -5
- data/spec/integration/type/file_spec.rb +28 -0
- data/spec/integration/type/notify_spec.rb +46 -0
- data/spec/integration/util/execution_spec.rb +27 -0
- data/spec/integration/util/windows/adsi_spec.rb +6 -1
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/unit/agent_spec.rb +34 -26
- data/spec/unit/application/agent_spec.rb +18 -0
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/application/device_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +0 -4
- data/spec/unit/configurer_spec.rb +377 -397
- data/spec/unit/daemon_spec.rb +0 -1
- data/spec/unit/face/facts_spec.rb +9 -0
- data/spec/unit/face/plugin_spec.rb +8 -0
- data/spec/unit/file_system/uniquefile_spec.rb +11 -0
- data/spec/unit/forge/forge_spec.rb +1 -3
- data/spec/unit/forge/repository_spec.rb +1 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +45 -26
- data/spec/unit/indirector/resource/ral_spec.rb +4 -4
- data/spec/unit/module_tool/tar/mini_spec.rb +1 -1
- data/spec/unit/network/http/api/indirected_routes_spec.rb +28 -11
- data/spec/unit/network/http/connection_spec.rb +43 -1
- data/spec/unit/network/http/factory_spec.rb +27 -5
- data/spec/unit/network/http/pool_spec.rb +32 -0
- data/spec/unit/node_spec.rb +7 -4
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
- data/spec/unit/pops/validator/validator_spec.rb +7 -0
- data/spec/unit/provider/exec_spec.rb +209 -0
- data/spec/unit/provider/group/groupadd_spec.rb +30 -1
- 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 +13 -2
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +7 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +247 -0
- data/spec/unit/provider/package/dpkg_spec.rb +35 -7
- data/spec/unit/provider/package/openbsd_spec.rb +17 -0
- data/spec/unit/provider/package/pip_spec.rb +93 -22
- data/spec/unit/provider/package/pkg_spec.rb +13 -1
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +36 -0
- data/spec/unit/provider/package/portage_spec.rb +4 -4
- data/spec/unit/provider/package/rpm_spec.rb +150 -16
- data/spec/unit/provider/package/yum_spec.rb +66 -0
- data/spec/unit/provider/package/zypper_spec.rb +13 -0
- data/spec/unit/provider/package_targetable_spec.rb +60 -0
- data/spec/unit/provider/selmodule_spec.rb +118 -47
- data/spec/unit/provider/service/daemontools_spec.rb +24 -0
- data/spec/unit/provider/service/launchd_spec.rb +28 -0
- data/spec/unit/provider/service/runit_spec.rb +24 -0
- data/spec/unit/provider/service/systemd_spec.rb +109 -36
- data/spec/unit/provider/service/windows_spec.rb +20 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
- data/spec/unit/provider/user/hpux_spec.rb +2 -2
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +37 -0
- data/spec/unit/provider/user/useradd_spec.rb +122 -15
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +3 -0
- data/spec/unit/resource_spec.rb +26 -1
- data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
- data/spec/unit/ssl/certificate_spec.rb +7 -0
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction_spec.rb +18 -0
- data/spec/unit/type/exec_spec.rb +15 -12
- data/spec/unit/type/file/content_spec.rb +9 -3
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +9 -4
- data/spec/unit/type/package_spec.rb +8 -0
- data/spec/unit/type/schedule_spec.rb +3 -1
- data/spec/unit/type/selboolean_spec.rb +4 -6
- data/spec/unit/type/service_spec.rb +25 -8
- data/spec/unit/type/user_spec.rb +32 -26
- data/spec/unit/type/yumrepo_spec.rb +30 -0
- data/spec/unit/type_spec.rb +40 -0
- data/spec/unit/util/execution_spec.rb +16 -0
- data/spec/unit/util/http_proxy_spec.rb +121 -1
- data/spec/unit/util/log/destinations_spec.rb +2 -26
- data/spec/unit/util/log_spec.rb +0 -112
- data/spec/unit/util/logging_spec.rb +200 -0
- data/spec/unit/util/pidlock_spec.rb +67 -40
- data/spec/unit/util/plist_spec.rb +20 -0
- data/spec/unit/util/windows/adsi_spec.rb +55 -4
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +9 -0
- data/spec/unit/util/windows/sid_spec.rb +2 -2
- data/tasks/manpages.rake +1 -0
- metadata +18 -13
- data/ext/windows/eventlog/Rakefile +0 -32
- data/ext/windows/eventlog/puppetres.dll +0 -0
- data/ext/windows/eventlog/puppetres.mc +0 -18
- data/lib/puppet/pops/loader/null_loader.rb +0 -60
- data/locales/ja/puppet.po +0 -12114
- data/spec/integration/test/test_helper_spec.rb +0 -31
data/lib/puppet.rb
CHANGED
@@ -22,6 +22,7 @@ require 'puppet/external/pson/common'
|
|
22
22
|
require 'puppet/external/pson/version'
|
23
23
|
require 'puppet/external/pson/pure'
|
24
24
|
require 'puppet/gettext/config'
|
25
|
+
require 'puppet/defaults'
|
25
26
|
|
26
27
|
|
27
28
|
#------------------------------------------------------------
|
@@ -87,6 +88,7 @@ module Puppet
|
|
87
88
|
|
88
89
|
# Store a new default value.
|
89
90
|
def self.define_settings(section, hash)
|
91
|
+
Puppet.deprecation_warning('The method Puppet.define_settings is deprecated and will be removed in a future release')
|
90
92
|
@@settings.define_settings(section, hash)
|
91
93
|
end
|
92
94
|
|
@@ -121,8 +123,9 @@ module Puppet
|
|
121
123
|
Puppet::Util::RunMode[@@settings.preferred_run_mode]
|
122
124
|
end
|
123
125
|
|
124
|
-
#
|
125
|
-
|
126
|
+
# Modify the settings with defaults defined in `initialize_default_settings` method in puppet/defaults.rb. This can
|
127
|
+
# be used in the initialization of new Puppet::Settings objects in the puppetserver project.
|
128
|
+
Puppet.initialize_default_settings!(settings)
|
126
129
|
|
127
130
|
# Now that settings are loaded we have the code loaded to be able to issue
|
128
131
|
# deprecation warnings. Warn if we're on a deprecated ruby version.
|
data/lib/puppet/agent.rb
CHANGED
@@ -61,15 +61,15 @@ class Puppet::Agent
|
|
61
61
|
end
|
62
62
|
rescue Puppet::LockError
|
63
63
|
Puppet.notice _("Run of %{client_class} already in progress; skipping (%{lockfile_path} exists)") % { client_class: client_class, lockfile_path: lockfile_path }
|
64
|
-
|
64
|
+
nil
|
65
65
|
rescue RunTimeoutError => detail
|
66
66
|
Puppet.log_exception(detail, _("Execution of %{client_class} did not complete within %{runtimeout} seconds and was terminated.") %
|
67
67
|
{client_class: client_class,
|
68
68
|
runtimeout: Puppet[:runtimeout]})
|
69
|
-
|
69
|
+
nil
|
70
70
|
rescue StandardError => detail
|
71
71
|
Puppet.log_exception(detail, _("Could not run %{client_class}: %{detail}") % { client_class: client_class, detail: detail })
|
72
|
-
|
72
|
+
nil
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
@@ -95,11 +95,9 @@ class Puppet::Agent
|
|
95
95
|
atForkHandler.child
|
96
96
|
$0 = _("puppet agent: applying configuration")
|
97
97
|
begin
|
98
|
-
exit(yield)
|
99
|
-
rescue SystemExit
|
100
|
-
exit(-1)
|
98
|
+
exit(yield || 1)
|
101
99
|
rescue NoMemoryError
|
102
|
-
exit(
|
100
|
+
exit(254)
|
103
101
|
end
|
104
102
|
end
|
105
103
|
ensure
|
@@ -107,12 +105,6 @@ class Puppet::Agent
|
|
107
105
|
end
|
108
106
|
|
109
107
|
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
108
|
exit_code[1].exitstatus
|
117
109
|
end
|
118
110
|
|
data/lib/puppet/application.rb
CHANGED
@@ -183,7 +183,7 @@ class Application
|
|
183
183
|
|
184
184
|
# used to declare code that handle an option
|
185
185
|
def option(*options, &block)
|
186
|
-
long = options.find { |opt| opt =~ /^--/ }.gsub(/^--(?:\[no-\])?([^ =]+).*$/, '\1' ).
|
186
|
+
long = options.find { |opt| opt =~ /^--/ }.gsub(/^--(?:\[no-\])?([^ =]+).*$/, '\1' ).tr('-','_')
|
187
187
|
fname = "handle_#{long}".intern
|
188
188
|
if (block_given?)
|
189
189
|
define_method(fname, &block)
|
@@ -245,7 +245,9 @@ generated by running puppet agent with '--genconfig'.
|
|
245
245
|
|
246
246
|
* --job-id:
|
247
247
|
Attach the specified job id to the catalog request and the report used for
|
248
|
-
this agent run. This option only works when '--onetime' is used.
|
248
|
+
this agent run. This option only works when '--onetime' is used. When using
|
249
|
+
Puppet Enterprise this flag should not be used as the orchestrator sets the
|
250
|
+
job-id for you and it must be unique.
|
249
251
|
|
250
252
|
* --logdest:
|
251
253
|
Where to send log messages. Choose between 'syslog' (the POSIX syslog
|
@@ -344,6 +346,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
344
346
|
# Setup signal traps immediately after daemonization so we clean up the daemon
|
345
347
|
daemon.set_signal_traps
|
346
348
|
|
349
|
+
log_config if Puppet[:daemonize]
|
350
|
+
|
347
351
|
wait_for_certificates
|
348
352
|
|
349
353
|
if Puppet[:onetime]
|
@@ -354,6 +358,16 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
354
358
|
end
|
355
359
|
end
|
356
360
|
|
361
|
+
def log_config
|
362
|
+
#skip also config reading and parsing if debug is not enabled
|
363
|
+
return unless Puppet::Util::Log.sendlevel?(:debug)
|
364
|
+
|
365
|
+
Puppet.settings.stringify_settings(:agent, :all).each_pair do |k,v|
|
366
|
+
next if k.include?("password") || v.to_s.empty?
|
367
|
+
Puppet.debug("Using setting: #{k}=#{v}")
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
357
371
|
def fingerprint
|
358
372
|
host = Puppet::SSL::Host.new
|
359
373
|
unless cert = host.certificate || host.certificate_request
|
@@ -260,8 +260,8 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
260
260
|
catalog =
|
261
261
|
begin
|
262
262
|
Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
|
263
|
-
rescue Puppet::
|
264
|
-
# already logged and handled by the compiler
|
263
|
+
rescue Puppet::Error
|
264
|
+
# already logged and handled by the compiler, including Puppet::ParseErrorWithIssue
|
265
265
|
exit(1)
|
266
266
|
end
|
267
267
|
|
@@ -64,9 +64,7 @@ class TypeDoc
|
|
64
64
|
|
65
65
|
def list_types
|
66
66
|
puts "These are the types known to puppet:\n"
|
67
|
-
@types.keys.
|
68
|
-
a.to_s <=> b.to_s
|
69
|
-
}.each do |name|
|
67
|
+
@types.keys.sort_by(&:to_s).each do |name|
|
70
68
|
type = @types[name]
|
71
69
|
s = type.doc.gsub(/\s+/, " ")
|
72
70
|
n = s.index(". ")
|
@@ -149,18 +147,14 @@ class TypeDoc
|
|
149
147
|
end
|
150
148
|
|
151
149
|
def format_providers(type)
|
152
|
-
type.providers.
|
153
|
-
a.to_s <=> b.to_s
|
154
|
-
}.each { |prov|
|
150
|
+
type.providers.sort_by(&:to_s).each { |prov|
|
155
151
|
puts "\n- **#{prov}**"
|
156
152
|
puts @format.wrap(type.provider(prov).doc, :indent => 4, :scrub => true)
|
157
153
|
}
|
158
154
|
end
|
159
155
|
|
160
156
|
def list_providers(type)
|
161
|
-
list = type.providers.
|
162
|
-
a.to_s <=> b.to_s
|
163
|
-
}.join(", ")
|
157
|
+
list = type.providers.sort_by(&:to_s).join(", ")
|
164
158
|
puts @format.wrap(list, :indent => 4)
|
165
159
|
end
|
166
160
|
|
@@ -297,10 +297,10 @@ Licensed under the Apache 2.0 License
|
|
297
297
|
Puppet.info _("retrieving resource: %{resource} from %{target} at %{scheme}%{url_host}%{port}%{url_path}") % { resource: type, target: device.name, scheme: scheme, url_host: device_url.host, port: port, url_path: device_url.path }
|
298
298
|
resources = find_resources(type, name)
|
299
299
|
if options[:to_yaml]
|
300
|
-
|
301
|
-
resource.prune_parameters(:parameters_to_include => @extra_params).
|
302
|
-
end.
|
303
|
-
text.
|
300
|
+
data = resources.map do |resource|
|
301
|
+
resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
|
302
|
+
end.inject(:merge!)
|
303
|
+
text = YAML.dump(type.downcase => data)
|
304
304
|
else
|
305
305
|
text = resources.map do |resource|
|
306
306
|
resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
|
@@ -154,7 +154,7 @@ HELP
|
|
154
154
|
with_contents = options[:references].length <= 1
|
155
155
|
exit_code = 0
|
156
156
|
require 'puppet/util/reference'
|
157
|
-
options[:references].
|
157
|
+
options[:references].sort_by(&:to_s).each do |name|
|
158
158
|
raise _("Could not find reference %{name}") % { name: name } unless section = Puppet::Util::Reference.reference(name)
|
159
159
|
|
160
160
|
begin
|
@@ -69,6 +69,19 @@ running as a user with valid Puppet certificates. Alternatively, you can
|
|
69
69
|
use your local file bucket by specifying '--local', or by specifying
|
70
70
|
'--bucket' with a local path.
|
71
71
|
|
72
|
+
> **Note**: Enabling and using the backup option, and by extension the
|
73
|
+
filebucket resource, requires appropriate planning and management to ensure
|
74
|
+
that sufficient disk space is available for the file backups. Generally, you
|
75
|
+
can implement this using one of the following two options:
|
76
|
+
- Use a `find` command and `crontab` entry to retain only the last X days
|
77
|
+
of file backups. For example:
|
78
|
+
|
79
|
+
```shell
|
80
|
+
find /opt/puppetlabs/server/data/puppetserver/bucket -type f -mtime +45 -atime +45 -print0 | xargs -0 rm
|
81
|
+
```
|
82
|
+
|
83
|
+
- Restrict the directory to a maximum size after which the oldest items are removed.
|
84
|
+
|
72
85
|
|
73
86
|
OPTIONS
|
74
87
|
-------
|
@@ -283,7 +283,7 @@ Copyright (c) 2015 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
283
283
|
'merge_hash_arrays' => !options[:merge_hash_arrays].nil?}
|
284
284
|
|
285
285
|
if options[:prefix]
|
286
|
-
merge_options
|
286
|
+
merge_options['knockout_prefix'] = options[:prefix]
|
287
287
|
end
|
288
288
|
|
289
289
|
else
|
@@ -142,10 +142,10 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
142
142
|
resources = find_or_save_resources(type, name, params)
|
143
143
|
|
144
144
|
if options[:to_yaml]
|
145
|
-
|
146
|
-
resource.prune_parameters(:parameters_to_include => @extra_params).
|
147
|
-
end.
|
148
|
-
text.
|
145
|
+
data = resources.map do |resource|
|
146
|
+
resource.prune_parameters(:parameters_to_include => @extra_params).to_hiera_hash
|
147
|
+
end.inject(:merge!)
|
148
|
+
text = YAML.dump(type.downcase => data)
|
149
149
|
else
|
150
150
|
text = resources.map do |resource|
|
151
151
|
resource.prune_parameters(:parameters_to_include => @extra_params).to_manifest.force_encoding(Encoding.default_external)
|
@@ -209,8 +209,8 @@ Copyright (c) 2017 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
209
209
|
|
210
210
|
compiler.compile()
|
211
211
|
|
212
|
-
rescue Puppet::
|
213
|
-
# already logged and handled by the compiler
|
212
|
+
rescue Puppet::Error
|
213
|
+
# already logged and handled by the compiler, including Puppet::ParseErrorWithIssue
|
214
214
|
exit(1)
|
215
215
|
end
|
216
216
|
|
data/lib/puppet/configurer.rb
CHANGED
@@ -144,9 +144,10 @@ class Puppet::Configurer
|
|
144
144
|
facts_hash
|
145
145
|
end
|
146
146
|
|
147
|
-
def prepare_and_retrieve_catalog(options, query_options)
|
147
|
+
def prepare_and_retrieve_catalog(cached_catalog, options, query_options)
|
148
148
|
# set report host name now that we have the fact
|
149
149
|
options[:report].host = Puppet[:node_name_value]
|
150
|
+
|
150
151
|
query_options[:transaction_uuid] = @transaction_uuid
|
151
152
|
query_options[:job_id] = @job_id
|
152
153
|
query_options[:static_catalog] = @static_catalog
|
@@ -156,24 +157,19 @@ class Puppet::Configurer
|
|
156
157
|
query_options[:checksum_type] = @checksum_type.join('.')
|
157
158
|
|
158
159
|
# apply passes in ral catalog
|
159
|
-
catalog = options
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
Puppet.err _("Could not retrieve catalog; skipping run")
|
167
|
-
nil
|
160
|
+
catalog = cached_catalog || options[:catalog]
|
161
|
+
unless catalog
|
162
|
+
# retrieve_catalog returns resource catalog
|
163
|
+
catalog = retrieve_catalog(query_options)
|
164
|
+
Puppet.err _("Could not retrieve catalog; skipping run") unless catalog
|
165
|
+
end
|
166
|
+
catalog
|
168
167
|
end
|
169
168
|
|
170
169
|
def prepare_and_retrieve_catalog_from_cache(options = {})
|
171
170
|
result = retrieve_catalog_from_cache({:transaction_uuid => @transaction_uuid, :static_catalog => @static_catalog})
|
172
|
-
if result
|
173
|
-
|
174
|
-
return convert_catalog(result, @duration, options)
|
175
|
-
end
|
176
|
-
nil
|
171
|
+
Puppet.info _("Using cached catalog from environment '%{catalog_env}'") % { catalog_env: result.environment } if result
|
172
|
+
result
|
177
173
|
end
|
178
174
|
|
179
175
|
# Apply supplied catalog and return associated application report
|
@@ -251,13 +247,12 @@ class Puppet::Configurer
|
|
251
247
|
Puppet::GettextConfig.reset_text_domain('agent')
|
252
248
|
Puppet::ModuleTranslations.load_from_vardir(Puppet[:vardir])
|
253
249
|
|
254
|
-
if
|
255
|
-
options[:catalog] = catalog
|
250
|
+
if cached_catalog = prepare_and_retrieve_catalog_from_cache(options)
|
256
251
|
@cached_catalog_status = 'explicitly_requested'
|
257
252
|
|
258
|
-
if @environment !=
|
259
|
-
Puppet.notice _("Local environment: '%{local_env}' doesn't match the environment of the cached catalog '%{catalog_env}', switching agent to '%{catalog_env}'.") % { local_env: @environment, catalog_env:
|
260
|
-
@environment =
|
253
|
+
if @environment != cached_catalog.environment && !Puppet[:strict_environment_mode]
|
254
|
+
Puppet.notice _("Local environment: '%{local_env}' doesn't match the environment of the cached catalog '%{catalog_env}', switching agent to '%{catalog_env}'.") % { local_env: @environment, catalog_env: cached_catalog.environment }
|
255
|
+
@environment = cached_catalog.environment
|
261
256
|
end
|
262
257
|
|
263
258
|
report.environment = @environment
|
@@ -278,7 +273,7 @@ class Puppet::Configurer
|
|
278
273
|
configured_environment = Puppet[:environment] if Puppet.settings.set_by_config?(:environment)
|
279
274
|
|
280
275
|
# We only need to find out the environment to run in if we don't already have a catalog
|
281
|
-
unless (options[:catalog] || Puppet[:strict_environment_mode])
|
276
|
+
unless (cached_catalog || options[:catalog] || Puppet[:strict_environment_mode])
|
282
277
|
begin
|
283
278
|
node = nil
|
284
279
|
node_retr_time = thinmark do
|
@@ -329,7 +324,7 @@ class Puppet::Configurer
|
|
329
324
|
query_options = get_facts(options) unless query_options
|
330
325
|
query_options[:configured_environment] = configured_environment
|
331
326
|
|
332
|
-
unless catalog = prepare_and_retrieve_catalog(options, query_options)
|
327
|
+
unless catalog = prepare_and_retrieve_catalog(cached_catalog, options, query_options)
|
333
328
|
return nil
|
334
329
|
end
|
335
330
|
|
@@ -354,16 +349,37 @@ class Puppet::Configurer
|
|
354
349
|
query_options = get_facts(options)
|
355
350
|
query_options[:configured_environment] = configured_environment
|
356
351
|
|
357
|
-
|
352
|
+
# if we get here, ignore the cached catalog
|
353
|
+
return nil unless catalog = prepare_and_retrieve_catalog(nil, options, query_options)
|
358
354
|
tries += 1
|
359
355
|
end
|
360
356
|
|
357
|
+
# now that environment has converged, convert resource catalog into ral catalog
|
358
|
+
# unless we were given a RAL catalog
|
359
|
+
if !cached_catalog && options[:catalog]
|
360
|
+
ral_catalog = options[:catalog]
|
361
|
+
else
|
362
|
+
# REMIND @duration is the time spent loading the last catalog, and doesn't
|
363
|
+
# account for things like we failed to download and fell back to the cache
|
364
|
+
ral_catalog = convert_catalog(catalog, @duration, options)
|
365
|
+
|
366
|
+
# If not noop, commit the cached resource catalog (not ral catalog). Ideally
|
367
|
+
# we'd just copy the downloaded response body, instead of serializing the
|
368
|
+
# in-memory catalog, but that's hard due to the indirector.
|
369
|
+
indirection = Puppet::Resource::Catalog.indirection
|
370
|
+
if !Puppet[:noop] && indirection.cache?
|
371
|
+
request = indirection.request(:save, nil, catalog, environment: Puppet::Node::Environment.remote(catalog.environment))
|
372
|
+
Puppet.info("Caching catalog for #{request.key}")
|
373
|
+
indirection.cache.save(request)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
361
377
|
execute_prerun_command or return nil
|
362
378
|
|
363
|
-
options[:report].code_id =
|
364
|
-
options[:report].catalog_uuid =
|
379
|
+
options[:report].code_id = ral_catalog.code_id
|
380
|
+
options[:report].catalog_uuid = ral_catalog.catalog_uuid
|
365
381
|
options[:report].cached_catalog_status = @cached_catalog_status
|
366
|
-
apply_catalog(
|
382
|
+
apply_catalog(ral_catalog, options)
|
367
383
|
true
|
368
384
|
rescue => detail
|
369
385
|
Puppet.log_exception(detail, _("Failed to apply catalog: %{detail}") % { detail: detail })
|
@@ -372,6 +388,14 @@ class Puppet::Configurer
|
|
372
388
|
execute_postrun_command or return nil
|
373
389
|
end
|
374
390
|
ensure
|
391
|
+
if Puppet[:resubmit_facts]
|
392
|
+
# TODO: Should mark the report as "failed" if an error occurs and
|
393
|
+
# resubmit_facts returns false. There is currently no API for this.
|
394
|
+
resubmit_facts_time = thinmark { resubmit_facts }
|
395
|
+
|
396
|
+
report.add_times(:resubmit_facts, resubmit_facts_time)
|
397
|
+
end
|
398
|
+
|
375
399
|
report.cached_catalog_status ||= @cached_catalog_status
|
376
400
|
report.add_times(:total, Time.now - start)
|
377
401
|
report.finalize_report
|
@@ -418,6 +442,40 @@ class Puppet::Configurer
|
|
418
442
|
Puppet.log_exception(detail, _("Could not save last run local report: %{detail}") % { detail: detail })
|
419
443
|
end
|
420
444
|
|
445
|
+
# Submit updated facts to the Puppet Server
|
446
|
+
#
|
447
|
+
# This method will clear all current fact values, load a fresh set of
|
448
|
+
# fact data, and then submit it to the Puppet Server.
|
449
|
+
#
|
450
|
+
# @return [true] If fact submission succeeds.
|
451
|
+
# @return [false] If an exception is raised during fact generation or
|
452
|
+
# submission.
|
453
|
+
def resubmit_facts
|
454
|
+
::Facter.clear
|
455
|
+
facts = find_facts
|
456
|
+
|
457
|
+
saved_fact_terminus = Puppet::Node::Facts.indirection.terminus_class
|
458
|
+
begin
|
459
|
+
Puppet::Node::Facts.indirection.terminus_class = :rest
|
460
|
+
|
461
|
+
server = Puppet::Node::Facts::Rest.server
|
462
|
+
Puppet.info(_("Uploading facts for %{node} to %{server}") % {
|
463
|
+
node: facts.name,
|
464
|
+
server: server})
|
465
|
+
|
466
|
+
Puppet::Node::Facts.indirection.save(facts, nil, :environment => Puppet::Node::Environment.remote(@environment))
|
467
|
+
|
468
|
+
return true
|
469
|
+
ensure
|
470
|
+
Puppet::Node::Facts.indirection.terminus_class = saved_fact_terminus
|
471
|
+
end
|
472
|
+
rescue => detail
|
473
|
+
Puppet.log_exception(detail, _("Failed to submit facts: %{detail}") %
|
474
|
+
{ detail: detail })
|
475
|
+
|
476
|
+
return false
|
477
|
+
end
|
478
|
+
|
421
479
|
private
|
422
480
|
|
423
481
|
def execute_from_setting(setting)
|
@@ -456,8 +514,8 @@ class Puppet::Configurer
|
|
456
514
|
Puppet[:node_name_value],
|
457
515
|
query_options.merge(
|
458
516
|
:ignore_cache => true,
|
459
|
-
#
|
460
|
-
:ignore_cache_save =>
|
517
|
+
# don't update cache until after environment converges
|
518
|
+
:ignore_cache_save => true,
|
461
519
|
:environment => Puppet::Node::Environment.remote(@environment),
|
462
520
|
:fail_on_404 => true
|
463
521
|
)
|
@@ -55,12 +55,8 @@ class Puppet::Configurer::Downloader
|
|
55
55
|
:noop => false
|
56
56
|
}
|
57
57
|
if !Puppet.features.microsoft_windows?
|
58
|
-
defargs.
|
59
|
-
|
60
|
-
:owner => Process.uid,
|
61
|
-
:group => Process.gid
|
62
|
-
}
|
63
|
-
)
|
58
|
+
defargs[:owner] = Process.uid
|
59
|
+
defargs[:group] = Process.gid
|
64
60
|
end
|
65
61
|
return defargs
|
66
62
|
end
|