puppet 5.5.17-x86-mingw32 → 5.5.22-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +1 -1
- data/Gemfile +4 -5
- data/Gemfile.lock +59 -55
- data/ext/build_defaults.yaml +1 -0
- data/ext/cert_inspector +3 -3
- 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 -6
- 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 +3 -1
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +3 -9
- 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/script.rb +2 -2
- data/lib/puppet/configurer.rb +106 -31
- data/lib/puppet/configurer/downloader.rb +33 -16
- data/lib/puppet/daemon.rb +1 -1
- data/lib/puppet/defaults.rb +86 -40
- 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/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/file_serving/http_metadata.rb +1 -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_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/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/step.rb +1 -1
- 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 +6 -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 +1 -1
- 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/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 +11 -3
- 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 +14 -10
- 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/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- 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/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- 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 +29 -15
- 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/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/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/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/gem.rb +4 -2
- 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/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/rpm.rb +6 -6
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +28 -20
- 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/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 +31 -13
- data/lib/puppet/provider/user/directoryservice.rb +31 -6
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +39 -20
- 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 +1 -1
- data/lib/puppet/resource/catalog.rb +1 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/settings.rb +3 -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 +20 -12
- data/lib/puppet/transaction/report.rb +1 -1
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +8 -4
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/exec.rb +7 -3
- 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 +97 -8
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/selboolean.rb +17 -3
- data/lib/puppet/type/service.rb +2 -8
- data/lib/puppet/type/user.rb +5 -9
- data/lib/puppet/util.rb +35 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/http_proxy.rb +8 -14
- 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 +3 -1
- 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 +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -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 +362 -318
- data/man/man5/puppet.conf.5 +39 -9
- 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 +66 -0
- data/spec/integration/data_binding_spec.rb +1 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/faces/plugin_spec.rb +29 -47
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/notify_spec.rb +46 -0
- data/spec/integration/util/windows/adsi_spec.rb +6 -1
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +34 -26
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +0 -4
- data/spec/unit/configurer_spec.rb +430 -415
- data/spec/unit/daemon_spec.rb +0 -1
- 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_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/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/connection_spec.rb +43 -1
- 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/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/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/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/yum_spec.rb +90 -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/runit_spec.rb +24 -0
- data/spec/unit/provider/service/systemd_spec.rb +109 -36
- 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/useradd_spec.rb +81 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +3 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
- data/spec/unit/ssl/certificate_spec.rb +7 -0
- data/spec/unit/ssl/host_spec.rb +2 -0
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/type/exec_spec.rb +6 -12
- data/spec/unit/type/file/content_spec.rb +9 -3
- data/spec/unit/type/file_spec.rb +9 -4
- data/spec/unit/type/package_spec.rb +8 -0
- data/spec/unit/type/selboolean_spec.rb +4 -6
- data/spec/unit/type/service_spec.rb +9 -8
- data/spec/unit/type/user_spec.rb +19 -13
- data/spec/unit/util/execution_spec.rb +16 -0
- data/spec/unit/util/http_proxy_spec.rb +97 -0
- data/spec/unit/util/log/destinations_spec.rb +2 -26
- data/spec/unit/util/log_spec.rb +0 -138
- 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/sid_spec.rb +2 -2
- data/tasks/manpages.rake +1 -0
- metadata +16 -7
- 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
@@ -346,7 +346,7 @@ class Puppet::Transaction::Report
|
|
346
346
|
report = raw_summary
|
347
347
|
|
348
348
|
ret = ""
|
349
|
-
report.keys.
|
349
|
+
report.keys.sort_by(&:to_s).each do |key|
|
350
350
|
ret += "#{Puppet::Util::Metric.labelize(key)}:\n"
|
351
351
|
|
352
352
|
report[key].keys.sort { |a,b|
|
@@ -99,7 +99,7 @@ class Puppet::Transaction::ResourceHarness
|
|
99
99
|
# We persist the last known values for the properties of a resource after resource
|
100
100
|
# application.
|
101
101
|
# @param [Puppet::Type] resource resource whose values we are to persist.
|
102
|
-
# @param [
|
102
|
+
# @param [ResourceApplicationContext] context the application context to operate on.
|
103
103
|
def persist_system_values(resource, context)
|
104
104
|
param_to_event = {}
|
105
105
|
context.status.events.each do |ev|
|
data/lib/puppet/type.rb
CHANGED
@@ -110,8 +110,10 @@ class Type
|
|
110
110
|
|
111
111
|
# Allow declaring that a type is actually a capability
|
112
112
|
class << self
|
113
|
+
# @deprecated application orchestration will be removed in puppet 7
|
113
114
|
attr_accessor :is_capability
|
114
115
|
|
116
|
+
# @deprecated application orchestration will be removed in puppet 7
|
115
117
|
def is_capability?
|
116
118
|
c = is_capability
|
117
119
|
c.nil? ? false : c
|
@@ -123,6 +125,8 @@ class Type
|
|
123
125
|
# represent application instances, this implementation always returns
|
124
126
|
# +false+. Having this method though makes code checking whether a
|
125
127
|
# resource is an application instance simpler
|
128
|
+
#
|
129
|
+
# @deprecated application orchestration will be removed in puppet 7
|
126
130
|
def self.application?
|
127
131
|
false
|
128
132
|
end
|
@@ -1447,7 +1451,7 @@ class Type
|
|
1447
1451
|
}
|
1448
1452
|
|
1449
1453
|
Tags are useful for things like applying a subset of a host's configuration
|
1450
|
-
with [the `tags` setting](/puppet/latest/configuration.html#tags)
|
1454
|
+
with [the `tags` setting](https://puppet.com/docs/puppet/latest/configuration.html#tags)
|
1451
1455
|
(e.g. `puppet agent --test --tags bootstrap`)."
|
1452
1456
|
|
1453
1457
|
munge do |tags|
|
@@ -1667,6 +1671,7 @@ class Type
|
|
1667
1671
|
}
|
1668
1672
|
end
|
1669
1673
|
|
1674
|
+
# @deprecated application orchestration will be removed in puppet 7
|
1670
1675
|
newmetaparam(:export, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
|
1671
1676
|
desc <<EOS
|
1672
1677
|
Export a capability resource.
|
@@ -1692,6 +1697,7 @@ web { server:
|
|
1692
1697
|
EOS
|
1693
1698
|
end
|
1694
1699
|
|
1700
|
+
# @deprecated application orchestration will be removed in puppet 7
|
1695
1701
|
newmetaparam(:consume, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
|
1696
1702
|
desc <<EOS
|
1697
1703
|
Consume a capability resource.
|
@@ -1909,9 +1915,7 @@ end
|
|
1909
1915
|
# Since we're mixing @doc with text from other sources, we must normalize
|
1910
1916
|
# its indentation with scrub. But we don't need to manually scrub the
|
1911
1917
|
# provider's doc string, since markdown_definitionlist sanitizes its inputs.
|
1912
|
-
scrub(@doc) + "Available providers are:\n\n" + parenttype.providers.
|
1913
|
-
a.to_s <=> b.to_s
|
1914
|
-
}.collect { |i|
|
1918
|
+
scrub(@doc) + "Available providers are:\n\n" + parenttype.providers.sort_by(&:to_s).collect { |i|
|
1915
1919
|
markdown_definitionlist( i, scrub(parenttype().provider(i).doc) )
|
1916
1920
|
}.join
|
1917
1921
|
end
|
data/lib/puppet/type/cron.rb
CHANGED
data/lib/puppet/type/exec.rb
CHANGED
@@ -150,9 +150,13 @@ module Puppet
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
unless log == :false
|
153
|
-
@
|
154
|
-
self.send(log,
|
155
|
-
|
153
|
+
if @resource.parameter(:command).sensitive
|
154
|
+
self.send(log, "[output redacted]")
|
155
|
+
else
|
156
|
+
@output.split(/\n/).each { |line|
|
157
|
+
self.send(log, line)
|
158
|
+
}
|
159
|
+
end
|
156
160
|
end
|
157
161
|
end
|
158
162
|
|
data/lib/puppet/type/file.rb
CHANGED
@@ -105,6 +105,19 @@ Puppet::Type.newtype(:file) do
|
|
105
105
|
balancer to direct all filebucket traffic to a single master, or use
|
106
106
|
something like an out-of-band rsync task to synchronize the content on all
|
107
107
|
masters.
|
108
|
+
|
109
|
+
> **Note**: Enabling and using the backup option, and by extension the
|
110
|
+
filebucket resource, requires appropriate planning and management to ensure
|
111
|
+
that sufficient disk space is available for the file backups. Generally, you
|
112
|
+
can implement this using one of the following two options:
|
113
|
+
- Use a `find` command and `crontab` entry to retain only the last X days
|
114
|
+
of file backups. For example,
|
115
|
+
|
116
|
+
```shell script
|
117
|
+
find /opt/puppetlabs/server/data/puppetserver/bucket -type f -mtime +45 -atime +45 -print0 | xargs -0 rm
|
118
|
+
```
|
119
|
+
|
120
|
+
- Restrict the directory to a maximum size after which the oldest items are removed.
|
108
121
|
EOT
|
109
122
|
|
110
123
|
defaultto "puppet"
|
@@ -572,8 +585,7 @@ Puppet::Type.newtype(:file) do
|
|
572
585
|
# remote system.
|
573
586
|
mark_children_for_purging(children) if self.purge?
|
574
587
|
|
575
|
-
|
576
|
-
result = children.values.sort { |a, b| a[:path] <=> b[:path] }
|
588
|
+
result = children.values.sort_by { |a| a[:path] }
|
577
589
|
remove_less_specific_files(result)
|
578
590
|
end
|
579
591
|
|
@@ -42,7 +42,11 @@ module Puppet
|
|
42
42
|
send resource[:loglevel], "[diff redacted]"
|
43
43
|
else
|
44
44
|
write_temporarily(param) do |path|
|
45
|
-
|
45
|
+
diff_output = diff(resource[:path], path)
|
46
|
+
if diff_output.encoding == Encoding::BINARY || !diff_output.valid_encoding?
|
47
|
+
diff_output = "Binary files #{resource[:path]} and #{path} differ"
|
48
|
+
end
|
49
|
+
send resource[:loglevel], "\n" + diff_output
|
46
50
|
end
|
47
51
|
end
|
48
52
|
end
|
data/lib/puppet/type/group.rb
CHANGED
@@ -175,7 +175,8 @@ module Puppet
|
|
175
175
|
end
|
176
176
|
|
177
177
|
newparam(:ia_load_module, :required_features => :manages_aix_lam) do
|
178
|
-
desc "The name of the I&A module to use to manage this
|
178
|
+
desc "The name of the I&A module to use to manage this group.
|
179
|
+
This should be set to `files` if managing local groups."
|
179
180
|
end
|
180
181
|
|
181
182
|
newproperty(:attributes, :parent => Puppet::Property::KeyValue, :required_features => :manages_aix_lam) do
|
@@ -216,7 +217,8 @@ module Puppet
|
|
216
217
|
:required_features => :libuser,
|
217
218
|
:parent => Puppet::Parameter::Boolean) do
|
218
219
|
desc "Forces the management of local accounts when accounts are also
|
219
|
-
being managed by some other NSS
|
220
|
+
being managed by some other NSS. For AIX, refer to the
|
221
|
+
`ia_load_module` parameter."
|
220
222
|
defaultto false
|
221
223
|
end
|
222
224
|
|
@@ -105,7 +105,7 @@ Puppet::Type.newtype(:interface) do
|
|
105
105
|
|
106
106
|
def value_to_s(value)
|
107
107
|
value = [value] unless value.is_a?(Array)
|
108
|
-
value.map{ |v| "#{v[1]
|
108
|
+
value.map{ |v| "#{v[1]}/#{v[0]} #{v[2]}"}.join(",")
|
109
109
|
end
|
110
110
|
|
111
111
|
def change_to_s(currentvalue, newvalue)
|
data/lib/puppet/type/notify.rb
CHANGED
@@ -11,11 +11,12 @@ module Puppet
|
|
11
11
|
newproperty(:message, :idempotent => false) do
|
12
12
|
desc "The message to be sent to the log."
|
13
13
|
def sync
|
14
|
+
message = @sensitive ? 'Sensitive [value redacted]' : self.should
|
14
15
|
case @resource["withpath"]
|
15
16
|
when :true
|
16
|
-
send(@resource[:loglevel],
|
17
|
+
send(@resource[:loglevel], message)
|
17
18
|
else
|
18
|
-
Puppet.send(@resource[:loglevel],
|
19
|
+
Puppet.send(@resource[:loglevel], message)
|
19
20
|
end
|
20
21
|
return
|
21
22
|
end
|
data/lib/puppet/type/package.rb
CHANGED
@@ -54,14 +54,17 @@ module Puppet
|
|
54
54
|
feature :holdable, "The provider is capable of placing packages on hold
|
55
55
|
such that they are not automatically upgraded as a result of
|
56
56
|
other package dependencies unless explicit action is taken by
|
57
|
-
a user or another package.
|
58
|
-
|
59
|
-
:methods => [:hold]
|
57
|
+
a user or another package.",
|
58
|
+
:methods => [:hold, :unhold]
|
60
59
|
feature :install_only, "The provider accepts options to only install packages never update (kernels, etc.)"
|
61
60
|
feature :install_options, "The provider accepts options to be
|
62
61
|
passed to the installer command."
|
63
62
|
feature :uninstall_options, "The provider accepts options to be
|
64
63
|
passed to the uninstaller command."
|
64
|
+
feature :disableable, "The provider can disable packages. This feature is used by specifying `disabled` as the
|
65
|
+
desired value for the package.",
|
66
|
+
:methods => [:disable]
|
67
|
+
feature :supports_flavors, "The provider accepts flavors, which are specific variants of packages."
|
65
68
|
feature :package_settings, "The provider accepts package_settings to be
|
66
69
|
ensured for the given package. The meaning and format of these settings is
|
67
70
|
provider-specific.",
|
@@ -101,7 +104,11 @@ module Puppet
|
|
101
104
|
end
|
102
105
|
|
103
106
|
newvalue(:held, :event => :package_held, :required_features => :holdable) do
|
104
|
-
provider.
|
107
|
+
provider.deprecated_hold
|
108
|
+
end
|
109
|
+
|
110
|
+
newvalue(:disabled, :required_features => :disableable) do
|
111
|
+
provider.disable
|
105
112
|
end
|
106
113
|
|
107
114
|
# Alias the 'present' value.
|
@@ -151,7 +158,7 @@ module Puppet
|
|
151
158
|
@should.each { |should|
|
152
159
|
case should
|
153
160
|
when :present
|
154
|
-
return true unless [:absent, :purged, :held].include?(is)
|
161
|
+
return true unless [:absent, :purged, :held, :disabled].include?(is)
|
155
162
|
when :latest
|
156
163
|
# Short-circuit packages that are not present
|
157
164
|
return false if is == :absent || is == :purged
|
@@ -401,6 +408,16 @@ module Puppet
|
|
401
408
|
end
|
402
409
|
end
|
403
410
|
|
411
|
+
newproperty(:flavor, :required_features => :supports_flavors) do
|
412
|
+
desc "OpenBSD and DNF modules support 'flavors', which are
|
413
|
+
further specifications for which type of package you want."
|
414
|
+
validate do |value|
|
415
|
+
if [:disabled, "disabled"].include?(@resource[:ensure]) && value
|
416
|
+
raise ArgumentError, _('Cannot have both `ensure => disabled` and `flavor`')
|
417
|
+
end
|
418
|
+
end
|
419
|
+
end
|
420
|
+
|
404
421
|
newparam(:source) do
|
405
422
|
desc "Where to find the package file. This is only used by providers that don't
|
406
423
|
automatically download packages from a central repository. (For example:
|
@@ -480,9 +497,27 @@ module Puppet
|
|
480
497
|
newvalues(:true, :false)
|
481
498
|
end
|
482
499
|
|
483
|
-
newparam(:
|
484
|
-
desc
|
485
|
-
|
500
|
+
newparam(:enable_only, :boolean => false, :parent => Puppet::Parameter::Boolean) do
|
501
|
+
desc <<-EOT
|
502
|
+
Tells `dnf module` to only enable a specific module, instead
|
503
|
+
of installing its default profile.
|
504
|
+
|
505
|
+
Modules with no default profile will be enabled automatically
|
506
|
+
without the use of this parameter.
|
507
|
+
|
508
|
+
Conflicts with the `flavor` property, which selects a profile
|
509
|
+
to install.
|
510
|
+
EOT
|
511
|
+
defaultto false
|
512
|
+
|
513
|
+
validate do |value|
|
514
|
+
if [true, :true, "true"].include?(value) && @resource[:flavor]
|
515
|
+
raise ArgumentError, _('Cannot have both `enable_only => true` and `flavor`')
|
516
|
+
end
|
517
|
+
if [:disabled, "disabled"].include?(@resource[:ensure])
|
518
|
+
raise ArgumentError, _('Cannot have both `ensure => disabled` and `enable_only => true`')
|
519
|
+
end
|
520
|
+
end
|
486
521
|
end
|
487
522
|
|
488
523
|
newparam(:install_only, :boolean => false, :parent => Puppet::Parameter::Boolean, :required_features => :install_only) do
|
@@ -611,5 +646,59 @@ module Puppet
|
|
611
646
|
provider.reinstall
|
612
647
|
end
|
613
648
|
end
|
649
|
+
|
650
|
+
newproperty(:mark, :required_features => :holdable) do
|
651
|
+
mark_doc='Valid values are: hold/none'
|
652
|
+
desc <<-EOT
|
653
|
+
Set to hold to tell Debian apt/Solaris pkg to hold the package version
|
654
|
+
|
655
|
+
#{mark_doc}
|
656
|
+
Default is "none". Mark can be specified with or without `ensure`,
|
657
|
+
if `ensure` is missing will default to "present".
|
658
|
+
|
659
|
+
Mark cannot be specified together with "purged", "absent" or "held"
|
660
|
+
values for `ensure`.
|
661
|
+
EOT
|
662
|
+
newvalues(:hold, :none)
|
663
|
+
munge do |value|
|
664
|
+
case value
|
665
|
+
when "hold", :hold
|
666
|
+
:hold
|
667
|
+
when "none", :none
|
668
|
+
:none
|
669
|
+
else
|
670
|
+
raise ArgumentError, _('Invalid hold value %{value}. %{doc}') % { value: value.inspect, doc: mark_doc}
|
671
|
+
end
|
672
|
+
end
|
673
|
+
|
674
|
+
def insync?(is)
|
675
|
+
@should[0] == is
|
676
|
+
end
|
677
|
+
|
678
|
+
def should
|
679
|
+
@should[0] if @should && @should.is_a?(Array) && @should.size == 1
|
680
|
+
end
|
681
|
+
|
682
|
+
def retrieve
|
683
|
+
provider.properties[:mark]
|
684
|
+
end
|
685
|
+
|
686
|
+
def sync
|
687
|
+
if @should[0] == :hold
|
688
|
+
provider.hold
|
689
|
+
else
|
690
|
+
provider.unhold
|
691
|
+
end
|
692
|
+
end
|
693
|
+
end
|
694
|
+
|
695
|
+
validate do
|
696
|
+
if :held == @parameters[:ensure].should
|
697
|
+
warning '"ensure=>held" has been deprecated and will be removed in a future version, use "mark=hold" instead'
|
698
|
+
end
|
699
|
+
if @parameters[:mark] && [:absent, :purged, :held].include?(@parameters[:ensure].should)
|
700
|
+
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged", "held"]')
|
701
|
+
end
|
702
|
+
end
|
614
703
|
end
|
615
704
|
end
|
data/lib/puppet/type/schedule.rb
CHANGED
@@ -9,9 +9,23 @@ module Puppet
|
|
9
9
|
end
|
10
10
|
|
11
11
|
newproperty(:value) do
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
value_doc = 'Valid values are: "on"/"true"/"off"/"false"'
|
13
|
+
desc <<-EOT
|
14
|
+
Whether the SELinux boolean should be enabled or disabled.
|
15
|
+
#{value_doc}
|
16
|
+
EOT
|
17
|
+
|
18
|
+
newvalues(:on, :off, :true, :false)
|
19
|
+
munge do |value|
|
20
|
+
case value
|
21
|
+
when true, :true, 'true', :on, 'on'
|
22
|
+
:on
|
23
|
+
when false, :false, 'false', :off, 'off'
|
24
|
+
:off
|
25
|
+
else
|
26
|
+
raise ArgumentError, _("Invalid value %{value}. %{doc}") % { value: value.inspect, doc: value_doc}
|
27
|
+
end
|
28
|
+
end
|
15
29
|
end
|
16
30
|
|
17
31
|
newparam(:persistent) do
|
data/lib/puppet/type/service.rb
CHANGED
@@ -78,14 +78,8 @@ module Puppet
|
|
78
78
|
provider.delayed_start
|
79
79
|
end
|
80
80
|
|
81
|
-
# This only makes sense on systemd systems. Static services cannot be enabled
|
82
|
-
# or disabled manually.
|
83
81
|
def insync?(current)
|
84
|
-
|
85
|
-
Puppet.debug("Unable to enable or disable static service #{@resource[:name]}")
|
86
|
-
return true
|
87
|
-
end
|
88
|
-
|
82
|
+
return provider.enabled_insync?(current) if provider.respond_to?(:enabled_insync?)
|
89
83
|
super(current)
|
90
84
|
end
|
91
85
|
|
@@ -228,7 +222,7 @@ module Puppet
|
|
228
222
|
desc "The control variable used to manage services (originally for HP-UX).
|
229
223
|
Defaults to the upcased service name plus `START` replacing dots with
|
230
224
|
underscores, for those providers that support the `controllable` feature."
|
231
|
-
defaultto { resource.name.
|
225
|
+
defaultto { resource.name.tr(".","_").upcase + "_START" if resource.provider.controllable? }
|
232
226
|
end
|
233
227
|
|
234
228
|
newparam :hasrestart do
|
data/lib/puppet/type/user.rb
CHANGED
@@ -614,7 +614,8 @@ module Puppet
|
|
614
614
|
end
|
615
615
|
|
616
616
|
newparam(:ia_load_module, :required_features => :manages_aix_lam) do
|
617
|
-
desc "The name of the I&A module to use to manage this user.
|
617
|
+
desc "The name of the I&A module to use to manage this user.
|
618
|
+
This should be set to `files` if managing local users."
|
618
619
|
end
|
619
620
|
|
620
621
|
newproperty(:attributes, :parent => Puppet::Property::KeyValue, :required_features => :manages_aix_lam) do
|
@@ -665,7 +666,8 @@ module Puppet
|
|
665
666
|
:required_features => :libuser,
|
666
667
|
:parent => Puppet::Parameter::Boolean) do
|
667
668
|
desc "Forces the management of local accounts when accounts are also
|
668
|
-
being managed by some other NSS
|
669
|
+
being managed by some other NSS. For AIX, refer to the
|
670
|
+
`ia_load_module` parameter."
|
669
671
|
defaultto false
|
670
672
|
end
|
671
673
|
|
@@ -717,17 +719,11 @@ module Puppet
|
|
717
719
|
value = test_sym if [:true, :false].include? test_sym
|
718
720
|
|
719
721
|
return [] if value == :false
|
720
|
-
home = resource[:home]
|
721
|
-
if value == :true and not home
|
722
|
-
raise ArgumentError, _("purge_ssh_keys can only be true for users with a defined home directory")
|
723
|
-
end
|
722
|
+
home = resource[:home] || Dir.home(resource[:name])
|
724
723
|
|
725
724
|
return [ "#{home}/.ssh/authorized_keys" ] if value == :true
|
726
725
|
# value is an array - munge each value
|
727
726
|
[ value ].flatten.map do |entry|
|
728
|
-
if entry =~ /^~|^%h/ and not home
|
729
|
-
raise ArgumentError, _("purge_ssh_keys value '%{value}' meta character ~ or %{home_placeholder} only allowed for users with a defined home directory") % { value: value, home_placeholder: '%h' }
|
730
|
-
end
|
731
727
|
entry.gsub!(/^~\//, "#{home}/")
|
732
728
|
entry.gsub!(/^%h\//, "#{home}/")
|
733
729
|
entry
|
data/lib/puppet/util.rb
CHANGED
@@ -323,7 +323,7 @@ module Util
|
|
323
323
|
params = { :scheme => 'file' }
|
324
324
|
|
325
325
|
if Puppet.features.microsoft_windows?
|
326
|
-
path = path.
|
326
|
+
path = path.tr('\\', '/')
|
327
327
|
|
328
328
|
if unc = /^\/\/([^\/]+)(\/.+)/.match(path)
|
329
329
|
params[:host] = unc[1]
|
@@ -524,21 +524,44 @@ module Util
|
|
524
524
|
|
525
525
|
module_function :thinmark
|
526
526
|
|
527
|
+
PUPPET_STACK_INSERTION_FRAME = /.*puppet_stack\.rb.*in.*`stack'/
|
528
|
+
|
527
529
|
# utility method to get the current call stack and format it to a human-readable string (which some IDEs/editors
|
528
530
|
# will recognize as links to the line numbers in the trace)
|
529
|
-
def self.pretty_backtrace(backtrace = caller(1))
|
530
|
-
backtrace.
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
531
|
+
def self.pretty_backtrace(backtrace = caller(1), puppetstack = [])
|
532
|
+
format_backtrace_array(backtrace, puppetstack).join("\n")
|
533
|
+
end
|
534
|
+
|
535
|
+
# arguments may be a Ruby stack, with an optional Puppet stack argument,
|
536
|
+
# or just a Puppet stack.
|
537
|
+
# stacks may be an Array of Strings "/foo.rb:0 in `blah'" or
|
538
|
+
# an Array of Arrays that represent a frame: ["/foo.pp", 0]
|
539
|
+
def self.format_backtrace_array(primary_stack, puppetstack = [])
|
540
|
+
primary_stack.flat_map do |frame|
|
541
|
+
frame = format_puppetstack_frame(frame) if frame.is_a?(Array)
|
542
|
+
primary_frame = resolve_stackframe(frame)
|
543
|
+
|
544
|
+
if primary_frame =~ PUPPET_STACK_INSERTION_FRAME && !puppetstack.empty?
|
545
|
+
[resolve_stackframe(format_puppetstack_frame(puppetstack.shift)),
|
546
|
+
primary_frame]
|
538
547
|
else
|
539
|
-
|
548
|
+
primary_frame
|
540
549
|
end
|
541
|
-
end
|
550
|
+
end
|
551
|
+
end
|
552
|
+
|
553
|
+
def self.resolve_stackframe(frame)
|
554
|
+
_, path, rest = /^(.*):(\d+.*)$/.match(frame).to_a
|
555
|
+
if path
|
556
|
+
path = Pathname(path).realpath rescue path
|
557
|
+
"#{path}:#{rest}"
|
558
|
+
else
|
559
|
+
frame
|
560
|
+
end
|
561
|
+
end
|
562
|
+
|
563
|
+
def self.format_puppetstack_frame(file_and_lineno)
|
564
|
+
file_and_lineno.join(':')
|
542
565
|
end
|
543
566
|
|
544
567
|
# Replace a file, securely. This takes a block, and passes it the file
|