puppet 7.8.0 → 7.12.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/CONTRIBUTING.md +5 -5
- data/Gemfile +2 -2
- data/Gemfile.lock +15 -15
- data/README.md +4 -4
- data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
- data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
- data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
- data/{ext → examples}/nagios/check_puppet.rb +2 -2
- data/ext/README.md +13 -0
- data/ext/project_data.yaml +1 -0
- data/install.rb +0 -4
- data/lib/puppet/application/agent.rb +4 -0
- data/lib/puppet/application/apply.rb +20 -2
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +30 -15
- data/lib/puppet/application/ssl.rb +1 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer.rb +176 -58
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +67 -29
- data/lib/puppet/environments.rb +75 -25
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/file_serving/configuration/parser.rb +2 -0
- data/lib/puppet/file_serving/configuration.rb +2 -0
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_system/file_impl.rb +3 -1
- data/lib/puppet/file_system/windows.rb +2 -2
- data/lib/puppet/file_system.rb +2 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/http/service/compiler.rb +6 -1
- data/lib/puppet/indirector/catalog/compiler.rb +24 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/resource/ral.rb +6 -1
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/interface/documentation.rb +1 -0
- data/lib/puppet/module/plan.rb +0 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +12 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
- data/lib/puppet/module_tool/errors/shared.rb +17 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/scope.rb +8 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/evaluator/closure.rb +7 -5
- data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
- data/lib/puppet/pops/model/ast.rb +1 -0
- data/lib/puppet/pops/model/factory.rb +14 -13
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/eparser.rb +752 -753
- data/lib/puppet/pops/parser/lexer2.rb +69 -68
- data/lib/puppet/pops/parser/slurp_support.rb +1 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/type_formatter.rb +7 -6
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +16 -4
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/package/pip.rb +15 -3
- data/lib/puppet/provider/package/pkg.rb +19 -2
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
- data/lib/puppet/provider/package/windows/package.rb +2 -1
- data/lib/puppet/provider/package/windows.rb +14 -1
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +3 -0
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +2 -2
- data/lib/puppet/provider/service/redhat.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +2 -2
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +72 -16
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/type_collection.rb +4 -1
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/config_file.rb +1 -8
- data/lib/puppet/settings/file_setting.rb +3 -8
- data/lib/puppet/settings/value_translator.rb +0 -1
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/persistence.rb +11 -1
- data/lib/puppet/transaction/report.rb +15 -1
- data/lib/puppet/type/exec.rb +35 -5
- data/lib/puppet/type/file/mode.rb +6 -0
- data/lib/puppet/type/file.rb +6 -6
- data/lib/puppet/type/filebucket.rb +2 -2
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +8 -3
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -2
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/autoload.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/json.rb +3 -0
- data/lib/puppet/util/log.rb +1 -2
- data/lib/puppet/util/logging.rb +1 -25
- data/lib/puppet/util/monkey_patches.rb +2 -17
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -2
- data/lib/puppet/util/symbolic_file_mode.rb +29 -17
- data/lib/puppet/util/tagging.rb +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -1
- data/lib/puppet/util/windows/user.rb +0 -1
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +3 -21
- data/lib/puppet.rb +5 -9
- data/locales/puppet.pot +409 -329
- data/man/man5/puppet.conf.5 +73 -25
- data/man/man8/puppet-agent.8 +4 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +9 -9
- 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 +7 -7
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +3 -3
- data/man/man8/puppet-node.8 +5 -5
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +5 -5
- 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.8 +2 -2
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
- data/spec/fixtures/ssl/ca.pem +52 -52
- data/spec/fixtures/ssl/crl.pem +25 -25
- data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
- data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +32 -32
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +107 -107
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
- data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
- data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
- data/spec/fixtures/ssl/intermediate.pem +51 -51
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +106 -106
- data/spec/fixtures/ssl/pluto.pem +50 -50
- data/spec/fixtures/ssl/request-key.pem +106 -106
- data/spec/fixtures/ssl/request.pem +45 -45
- data/spec/fixtures/ssl/revoked-key.pem +106 -106
- data/spec/fixtures/ssl/revoked.pem +49 -49
- data/spec/fixtures/ssl/signed-key.pem +106 -106
- data/spec/fixtures/ssl/signed.pem +47 -47
- data/spec/fixtures/ssl/tampered-cert.pem +49 -49
- data/spec/fixtures/ssl/tampered-csr.pem +45 -45
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-ca.pem +52 -52
- data/spec/integration/application/agent_spec.rb +118 -52
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/resource_spec.rb +35 -1
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/defaults_spec.rb +5 -0
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/indirector/facts/facter_spec.rb +93 -39
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/type/exec_spec.rb +70 -45
- data/spec/integration/type/file_spec.rb +2 -2
- data/spec/integration/type/package_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/lib/puppet/test_ca.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +13 -2
- data/spec/lib/puppet_spec/puppetserver.rb +15 -0
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
- data/spec/shared_contexts/l10n.rb +27 -0
- data/spec/spec_helper.rb +1 -10
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/configurer_spec.rb +291 -56
- data/spec/unit/environments_spec.rb +184 -0
- data/spec/unit/facter_impl_spec.rb +31 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
- data/spec/unit/file_serving/configuration_spec.rb +12 -4
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +13 -0
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +10 -0
- data/spec/unit/functions/logging_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +87 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/http/service/compiler_spec.rb +8 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/indirection_spec.rb +10 -3
- data/spec/unit/indirector/resource/ral_spec.rb +40 -75
- data/spec/unit/interface/action_spec.rb +0 -9
- data/spec/unit/module_spec.rb +14 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
- data/spec/unit/network/formats_spec.rb +6 -0
- data/spec/unit/parser/compiler_spec.rb +29 -0
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
- data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
- data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/pip2_spec.rb +1 -1
- data/spec/unit/provider/package/pip3_spec.rb +1 -1
- data/spec/unit/provider/package/pip_spec.rb +38 -1
- data/spec/unit/provider/package/pkg_spec.rb +34 -5
- data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
- data/spec/unit/provider/parsedfile_spec.rb +10 -0
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/systemd_spec.rb +1 -1
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +1 -1
- data/spec/unit/provider/user/useradd_spec.rb +43 -2
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/resource/type_collection_spec.rb +16 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/settings/config_file_spec.rb +1 -11
- data/spec/unit/settings/file_setting_spec.rb +10 -7
- data/spec/unit/settings/value_translator_spec.rb +4 -5
- data/spec/unit/settings_spec.rb +120 -79
- data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/service_spec.rb +27 -0
- data/spec/unit/type/tidy_spec.rb +7 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +25 -8
- data/spec/unit/util/ldap/connection_spec.rb +10 -10
- data/spec/unit/util/ldap/manager_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/windows/sid_spec.rb +39 -4
- data/spec/unit/util_spec.rb +1 -3
- data/spec/unit/x509/cert_provider_spec.rb +9 -1
- data/tasks/generate_cert_fixtures.rake +10 -1
- data/tasks/parallel.rake +3 -3
- metadata +51 -95
- data/ext/README.environment +0 -8
- data/ext/dbfix.sql +0 -132
- data/ext/debian/README.Debian +0 -8
- data/ext/debian/README.source +0 -2
- data/ext/debian/TODO.Debian +0 -1
- data/ext/debian/changelog.erb +0 -1122
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -144
- data/ext/debian/copyright +0 -339
- data/ext/debian/docs +0 -1
- data/ext/debian/fileserver.conf +0 -41
- data/ext/debian/puppet-common.dirs +0 -13
- data/ext/debian/puppet-common.install +0 -3
- data/ext/debian/puppet-common.lintian-overrides +0 -5
- data/ext/debian/puppet-common.manpages +0 -28
- data/ext/debian/puppet-common.postinst +0 -35
- data/ext/debian/puppet-common.postrm +0 -33
- data/ext/debian/puppet-el.dirs +0 -1
- data/ext/debian/puppet-el.emacsen-install +0 -25
- data/ext/debian/puppet-el.emacsen-remove +0 -11
- data/ext/debian/puppet-el.emacsen-startup +0 -9
- data/ext/debian/puppet-el.install +0 -1
- data/ext/debian/puppet-testsuite.install +0 -2
- data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
- data/ext/debian/puppet.lintian-overrides +0 -3
- data/ext/debian/puppet.logrotate +0 -20
- data/ext/debian/puppet.postinst +0 -20
- data/ext/debian/puppet.postrm +0 -20
- data/ext/debian/puppet.preinst +0 -20
- data/ext/debian/puppetmaster-common.install +0 -2
- data/ext/debian/puppetmaster-common.manpages +0 -2
- data/ext/debian/puppetmaster-common.postinst +0 -6
- data/ext/debian/puppetmaster-passenger.dirs +0 -4
- data/ext/debian/puppetmaster-passenger.postinst +0 -162
- data/ext/debian/puppetmaster-passenger.postrm +0 -61
- data/ext/debian/puppetmaster.README.debian +0 -17
- data/ext/debian/puppetmaster.default +0 -14
- data/ext/debian/puppetmaster.init +0 -137
- data/ext/debian/puppetmaster.lintian-overrides +0 -3
- data/ext/debian/puppetmaster.postinst +0 -20
- data/ext/debian/puppetmaster.postrm +0 -5
- data/ext/debian/puppetmaster.preinst +0 -22
- data/ext/debian/rules +0 -132
- data/ext/debian/source/format +0 -1
- data/ext/debian/source/options +0 -1
- data/ext/debian/vim-puppet.README.Debian +0 -13
- data/ext/debian/vim-puppet.dirs +0 -5
- data/ext/debian/vim-puppet.yaml +0 -7
- data/ext/debian/watch +0 -2
- data/ext/freebsd/puppetd +0 -26
- data/ext/freebsd/puppetmasterd +0 -26
- data/ext/gentoo/conf.d/puppet +0 -5
- data/ext/gentoo/conf.d/puppetmaster +0 -12
- data/ext/gentoo/init.d/puppet +0 -38
- data/ext/gentoo/init.d/puppetmaster +0 -51
- data/ext/gentoo/puppet/fileserver.conf +0 -41
- data/ext/ips/puppet-agent +0 -44
- data/ext/ips/puppet-master +0 -44
- data/ext/ips/puppet.p5m.erb +0 -12
- data/ext/ips/puppetagent.xml +0 -42
- data/ext/ips/puppetmaster.xml +0 -42
- data/ext/ips/rules +0 -19
- data/ext/ips/transforms +0 -34
- data/ext/ldap/puppet.schema +0 -24
- data/ext/logcheck/puppet +0 -23
- data/ext/osx/file_mapping.yaml +0 -28
- data/ext/osx/postflight.erb +0 -109
- data/ext/osx/preflight.erb +0 -52
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/redhat/fileserver.conf +0 -41
- data/ext/redhat/logrotate +0 -21
- data/ext/redhat/puppet.spec.erb +0 -841
- data/ext/redhat/server.init +0 -128
- data/ext/redhat/server.sysconfig +0 -13
- data/ext/solaris/pkginfo +0 -6
- data/ext/solaris/smf/puppetd.xml +0 -77
- data/ext/solaris/smf/puppetmasterd.xml +0 -77
- data/ext/solaris/smf/svc-puppetd +0 -71
- data/ext/solaris/smf/svc-puppetmasterd +0 -67
- data/ext/suse/puppet.spec +0 -310
- data/ext/suse/server.init +0 -173
- data/ext/yaml_nodes.rb +0 -105
- data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -18,6 +18,7 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
18
18
|
facts: request.options[:facts_for_catalog],
|
19
19
|
environment: request.environment.to_s,
|
20
20
|
configured_environment: request.options[:configured_environment],
|
21
|
+
check_environment: request.options[:check_environment],
|
21
22
|
transaction_uuid: request.options[:transaction_uuid],
|
22
23
|
job_uuid: request.options[:job_id],
|
23
24
|
static_catalog: request.options[:static_catalog],
|
@@ -20,10 +20,10 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
20
20
|
|
21
21
|
# Lookup a host's facts up in Facter.
|
22
22
|
def find(request)
|
23
|
-
|
23
|
+
Puppet.runtime[:facter].reset
|
24
24
|
|
25
25
|
# Note: we need to setup puppet's external search paths before adding the puppetversion
|
26
|
-
# fact. This is because in Facter 2.x, the first `
|
26
|
+
# fact. This is because in Facter 2.x, the first `Puppet.runtime[:facter].add` causes Facter to create
|
27
27
|
# its directory loaders which cannot be changed, meaning other external facts won't
|
28
28
|
# be resolved. (PUP-4607)
|
29
29
|
self.class.setup_external_search_paths(request)
|
@@ -36,7 +36,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
36
36
|
raise(Puppet::Error, _("puppet facts show requires version 4.0.40 or greater of Facter.")) unless Facter.respond_to?(:resolve)
|
37
37
|
find_with_options(request)
|
38
38
|
else
|
39
|
-
Puppet::Node::Facts.new(request.key,
|
39
|
+
Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].to_hash)
|
40
40
|
end
|
41
41
|
|
42
42
|
result.add_local_facts unless request.options[:resolve_options]
|
@@ -68,7 +68,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
68
68
|
true
|
69
69
|
end
|
70
70
|
dirs << request.options[:custom_dir] if request.options[:custom_dir]
|
71
|
-
|
71
|
+
Puppet.runtime[:facter].search(*dirs)
|
72
72
|
end
|
73
73
|
|
74
74
|
def self.setup_external_search_paths(request)
|
@@ -90,7 +90,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
90
90
|
end
|
91
91
|
|
92
92
|
dirs << request.options[:external_dir] if request.options[:external_dir]
|
93
|
-
|
93
|
+
Puppet.runtime[:facter].search_external dirs
|
94
94
|
end
|
95
95
|
|
96
96
|
private
|
@@ -105,6 +105,6 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
105
105
|
options_for_facter += " --no-cache" if options[:no_cache] == false
|
106
106
|
options_for_facter += " --timing" if options[:timing]
|
107
107
|
|
108
|
-
Puppet::Node::Facts.new(request.key,
|
108
|
+
Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].resolve(options_for_facter))
|
109
109
|
end
|
110
110
|
end
|
@@ -313,7 +313,7 @@ class Puppet::Indirector::Indirection
|
|
313
313
|
request = request(:save, key, instance, options)
|
314
314
|
terminus = prepare(request)
|
315
315
|
|
316
|
-
result = terminus.save(request)
|
316
|
+
result = terminus.save(request) if !request.ignore_terminus?
|
317
317
|
|
318
318
|
# If caching is enabled, save our document there
|
319
319
|
cache.save(request) if cache? && !request.ignore_cache_save?
|
@@ -24,7 +24,12 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
|
|
24
24
|
type(request).instances.map do |res|
|
25
25
|
res.to_resource
|
26
26
|
end.find_all do |res|
|
27
|
-
conditions.all?
|
27
|
+
conditions.all? do |property, value|
|
28
|
+
# even though `res` is an instance of Puppet::Resource, calling
|
29
|
+
# `res[:name]` on it returns nil, and for some reason it is necessary
|
30
|
+
# to invoke the Puppet::Resource#copy_as_resource copy constructor...
|
31
|
+
res.copy_as_resource[property].to_s == value.to_s
|
32
|
+
end
|
28
33
|
end.sort_by(&:title)
|
29
34
|
end
|
30
35
|
|
data/lib/puppet/module/plan.rb
CHANGED
@@ -50,7 +50,6 @@ class Puppet::Module
|
|
50
50
|
RESERVED_DATA_TYPES = %w{any array boolean catalogentry class collection
|
51
51
|
callable data default enum float hash integer numeric optional pattern
|
52
52
|
resource runtime scalar string struct tuple type undef variant}
|
53
|
-
MOUNTS = %w[lib files plans]
|
54
53
|
|
55
54
|
def self.is_plan_name?(name)
|
56
55
|
return true if name =~ /^[a-z][a-z0-9_]*$/
|
data/lib/puppet/module/task.rb
CHANGED
@@ -59,6 +59,10 @@ module Puppet::ModuleTool
|
|
59
59
|
results = { :action => :install, :module_name => name, :module_version => version }
|
60
60
|
|
61
61
|
begin
|
62
|
+
if !@local_tarball && name !~ /-/
|
63
|
+
raise InvalidModuleNameError.new(module_name: @name, suggestion: "puppetlabs-#{@name}", action: :install)
|
64
|
+
end
|
65
|
+
|
62
66
|
installed_module = installed_modules[name]
|
63
67
|
if installed_module
|
64
68
|
unless forced?
|
@@ -134,7 +138,7 @@ module Puppet::ModuleTool
|
|
134
138
|
rescue SemanticPuppet::Dependency::UnsatisfiableGraph => e
|
135
139
|
unsatisfied = nil
|
136
140
|
|
137
|
-
if e.respond_to?(:unsatisfied)
|
141
|
+
if e.respond_to?(:unsatisfied) && e.unsatisfied
|
138
142
|
constraints = {}
|
139
143
|
# If the module we're installing satisfies all its
|
140
144
|
# dependencies, but would break an already installed
|
@@ -160,8 +164,12 @@ module Puppet::ModuleTool
|
|
160
164
|
# If the module fails to satisfy one of its
|
161
165
|
# dependencies, show the unsatisfiable module
|
162
166
|
else
|
163
|
-
|
164
|
-
|
167
|
+
dep_constraints = graph.dependencies[name].max.constraints
|
168
|
+
|
169
|
+
if dep_constraints.key?(e.unsatisfied)
|
170
|
+
unsatisfied_range = dep_constraints[e.unsatisfied].first[1]
|
171
|
+
constraints[e.unsatisfied] = unsatisfied_range
|
172
|
+
end
|
165
173
|
end
|
166
174
|
|
167
175
|
installed_module = @environment.module_by_forge_name(e.unsatisfied.tr('-', '/'))
|
@@ -171,7 +179,7 @@ module Puppet::ModuleTool
|
|
171
179
|
:name => e.unsatisfied,
|
172
180
|
:constraints => constraints,
|
173
181
|
:current_version => current_version
|
174
|
-
}
|
182
|
+
} if constraints.any?
|
175
183
|
end
|
176
184
|
|
177
185
|
raise NoVersionsSatisfyError, results.merge(
|
@@ -89,7 +89,7 @@ module Puppet::ModuleTool
|
|
89
89
|
mod = @installed.first
|
90
90
|
|
91
91
|
unless @ignore_changes
|
92
|
-
raise _("Either the `--ignore_changes` or `--force` argument must be specified to uninstall modules when running in FIPS mode.") if
|
92
|
+
raise _("Either the `--ignore_changes` or `--force` argument must be specified to uninstall modules when running in FIPS mode.") if Puppet.runtime[:facter].value(:fips_enabled)
|
93
93
|
|
94
94
|
changes = begin
|
95
95
|
Puppet::ModuleTool::Applications::Checksummer.run(mod.path)
|
@@ -27,7 +27,7 @@ module Puppet::ModuleTool
|
|
27
27
|
|
28
28
|
def run
|
29
29
|
# Disallow anything that invokes md5 to avoid un-friendly termination due to FIPS
|
30
|
-
raise _("Module upgrade is prohibited in FIPS mode.") if
|
30
|
+
raise _("Module upgrade is prohibited in FIPS mode.") if Puppet.runtime[:facter].value(:fips_enabled)
|
31
31
|
|
32
32
|
name = @name.tr('/', '-')
|
33
33
|
version = options[:version] || '>= 0.0.0'
|
@@ -127,6 +127,23 @@ module Puppet::ModuleTool::Errors
|
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
130
|
+
class InvalidModuleNameError < ModuleToolError
|
131
|
+
def initialize(options)
|
132
|
+
@module_name = options[:module_name]
|
133
|
+
@suggestion = options[:suggestion]
|
134
|
+
@action = options[:action]
|
135
|
+
super _("Could not %{action} '%{module_name}', did you mean '%{suggestion}'?") % { action: @action, module_name: @module_name, suggestion: @suggestion }
|
136
|
+
end
|
137
|
+
|
138
|
+
def multiline
|
139
|
+
message = []
|
140
|
+
message << _("Could not %{action} module '%{module_name}'") % { action: @action, module_name: @module_name }
|
141
|
+
message << _(" The name '%{module_name}' is invalid") % { module_name: @module_name }
|
142
|
+
message << _(" Did you mean `puppet module %{action} %{suggestion}`?") % { action: @action, suggestion: @suggestion }
|
143
|
+
message.join("\n")
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
130
147
|
class NotInstalledError < ModuleToolError
|
131
148
|
def initialize(options)
|
132
149
|
@module_name = options[:module_name]
|
@@ -107,7 +107,7 @@ class Puppet::ModuleTool::Tar::Mini
|
|
107
107
|
raise Puppet::ModuleTool::Errors::InvalidPathInPackageError, :entry_path => path, :directory => destdir
|
108
108
|
end
|
109
109
|
|
110
|
-
path =
|
110
|
+
path = Pathname.new(File.join(destdir, path)).cleanpath.to_path
|
111
111
|
|
112
112
|
if path !~ /\A#{Regexp.escape destdir}/
|
113
113
|
raise Puppet::ModuleTool::Errors::InvalidPathInPackageError, :entry_path => path, :directory => destdir
|
@@ -98,7 +98,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
98
98
|
params[:environment] = configured_environment
|
99
99
|
end
|
100
100
|
|
101
|
-
if configured_environment.nil?
|
101
|
+
if configured_environment.nil? && indirection.terminus.require_environment?
|
102
102
|
raise Puppet::Network::HTTP::Error::HTTPNotFoundError.new(
|
103
103
|
_("Could not find environment '%{environment}'") % { environment: environment })
|
104
104
|
end
|
@@ -312,7 +312,9 @@ class Puppet::Node::Environment
|
|
312
312
|
{}
|
313
313
|
end
|
314
314
|
modulepath.each do |path|
|
315
|
-
|
315
|
+
Puppet::FileSystem.children(path).map do |p|
|
316
|
+
Puppet::FileSystem.basename_string(p)
|
317
|
+
end.each do |name|
|
316
318
|
next unless Puppet::Module.is_module_directory?(name, path)
|
317
319
|
warn_about_mistaken_path(path, name)
|
318
320
|
if not seen_modules[name]
|
@@ -357,9 +359,6 @@ class Puppet::Node::Environment
|
|
357
359
|
|
358
360
|
# Modules broken out by directory in the modulepath
|
359
361
|
#
|
360
|
-
# @note This method _changes_ the current working directory while enumerating
|
361
|
-
# the modules. This seems rather dangerous.
|
362
|
-
#
|
363
362
|
# @api public
|
364
363
|
#
|
365
364
|
# @return [Hash<String, Array<Puppet::Module>>] A hash whose keys are file
|
@@ -368,13 +367,13 @@ class Puppet::Node::Environment
|
|
368
367
|
modules_by_path = {}
|
369
368
|
modulepath.each do |path|
|
370
369
|
if Puppet::FileSystem.exist?(path)
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
370
|
+
module_names = Puppet::FileSystem.children(path).map do |p|
|
371
|
+
Puppet::FileSystem.basename_string(p)
|
372
|
+
end.select do |name|
|
373
|
+
Puppet::Module.is_module_directory?(name, path)
|
374
|
+
end
|
375
|
+
modules_by_path[path] = module_names.sort.map do |name|
|
376
|
+
Puppet::Module.new(name, File.join(path, name), self)
|
378
377
|
end
|
379
378
|
else
|
380
379
|
modules_by_path[path] = []
|
data/lib/puppet/pal/pal_impl.rb
CHANGED
@@ -415,7 +415,7 @@ module Pal
|
|
415
415
|
|
416
416
|
# Puppet requires Facter, which initializes its lookup paths. Reset Facter to
|
417
417
|
# pickup the new $LOAD_PATH.
|
418
|
-
|
418
|
+
Puppet.runtime[:facter].reset
|
419
419
|
|
420
420
|
node = Puppet.lookup(:pal_current_node)
|
421
421
|
pal_facts = Puppet.lookup(:pal_facts)
|
data/lib/puppet/parser/scope.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# The scope class, which handles storing and retrieving variables and types and
|
2
3
|
# such.
|
3
4
|
require 'forwardable'
|
@@ -15,7 +16,7 @@ class Puppet::Parser::Scope
|
|
15
16
|
extend Forwardable
|
16
17
|
|
17
18
|
# Variables that always exist with nil value even if not set
|
18
|
-
BUILT_IN_VARS = ['module_name'
|
19
|
+
BUILT_IN_VARS = ['module_name', 'caller_module_name'].freeze
|
19
20
|
EMPTY_HASH = {}.freeze
|
20
21
|
|
21
22
|
Puppet::Util.logmethods(self)
|
@@ -512,7 +513,7 @@ class Puppet::Parser::Scope
|
|
512
513
|
end
|
513
514
|
end
|
514
515
|
|
515
|
-
UNDEFINED_VARIABLES_KIND = 'undefined_variables'
|
516
|
+
UNDEFINED_VARIABLES_KIND = 'undefined_variables'
|
516
517
|
|
517
518
|
# The exception raised when a throw is uncaught is different in different versions
|
518
519
|
# of ruby. In >=2.2.0 it is UncaughtThrowError (which did not exist prior to this)
|
@@ -746,12 +747,12 @@ class Puppet::Parser::Scope
|
|
746
747
|
end
|
747
748
|
private :transform_setting
|
748
749
|
|
749
|
-
VARNAME_TRUSTED = 'trusted'
|
750
|
-
VARNAME_FACTS = 'facts'
|
751
|
-
VARNAME_SERVER_FACTS = 'server_facts'
|
750
|
+
VARNAME_TRUSTED = 'trusted'
|
751
|
+
VARNAME_FACTS = 'facts'
|
752
|
+
VARNAME_SERVER_FACTS = 'server_facts'
|
752
753
|
RESERVED_VARIABLE_NAMES = [VARNAME_TRUSTED, VARNAME_FACTS].freeze
|
753
|
-
TYPENAME_CLASS = 'Class'
|
754
|
-
TYPENAME_NODE = 'Node'
|
754
|
+
TYPENAME_CLASS = 'Class'
|
755
|
+
TYPENAME_NODE = 'Node'
|
755
756
|
|
756
757
|
# Set a variable in the current scope. This will override settings
|
757
758
|
# in scopes above, but will not allow variables in the current scope
|
@@ -219,16 +219,15 @@ class Closure < CallableSignature
|
|
219
219
|
def call_with_scope(scope, args)
|
220
220
|
variable_bindings = combine_values_with_parameters(scope, args)
|
221
221
|
|
222
|
-
|
223
|
-
final_args = tc.infer_set(parameters.reduce([]) do |tmp_args, param|
|
222
|
+
final_args = parameters.reduce([]) do |tmp_args, param|
|
224
223
|
if param.captures_rest
|
225
224
|
tmp_args.concat(variable_bindings[param.name])
|
226
225
|
else
|
227
226
|
tmp_args << variable_bindings[param.name]
|
228
227
|
end
|
229
|
-
end
|
228
|
+
end
|
230
229
|
|
231
|
-
if type.
|
230
|
+
if type.callable_with?(final_args, block_type)
|
232
231
|
result = catch(:next) do
|
233
232
|
@evaluator.evaluate_block_with_bindings(scope, variable_bindings, @model.body)
|
234
233
|
end
|
@@ -236,7 +235,9 @@ class Closure < CallableSignature
|
|
236
235
|
"value returned from #{closure_name}"
|
237
236
|
end
|
238
237
|
else
|
239
|
-
|
238
|
+
tc = Types::TypeCalculator.singleton
|
239
|
+
args_type = tc.infer_set(final_args)
|
240
|
+
raise ArgumentError, Types::TypeMismatchDescriber.describe_signatures(closure_name, [self], args_type)
|
240
241
|
end
|
241
242
|
end
|
242
243
|
|
@@ -309,6 +310,7 @@ class Closure < CallableSignature
|
|
309
310
|
to += param_range[1]
|
310
311
|
end
|
311
312
|
param_types = Types::PTupleType.new(types, Types::PIntegerType.new(from, to))
|
313
|
+
# The block_type for a Closure is always nil for now, see comment in block_name above
|
312
314
|
Types::PCallableType.new(param_types, nil, return_type)
|
313
315
|
end
|
314
316
|
|
@@ -292,7 +292,8 @@ class LookupAdapter < DataAdapter
|
|
292
292
|
PROVIDER_STACK = [:lookup_global, :lookup_in_environment, :lookup_in_module].freeze
|
293
293
|
|
294
294
|
def validate_lookup_options(options, module_name)
|
295
|
-
|
295
|
+
return nil if options.nil?
|
296
|
+
raise Puppet::DataBinding::LookupError.new(_("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS }) unless options.is_a?(Hash)
|
296
297
|
return options if module_name.nil?
|
297
298
|
|
298
299
|
pfx = "#{module_name}::"
|
@@ -352,7 +353,7 @@ class LookupAdapter < DataAdapter
|
|
352
353
|
module_opts = validate_lookup_options(lookup_in_module(LookupKey::LOOKUP_OPTIONS, meta_invocation, merge_strategy), module_name)
|
353
354
|
opts = if opts.nil?
|
354
355
|
module_opts
|
355
|
-
|
356
|
+
elsif module_opts
|
356
357
|
merge_strategy.lookup([GLOBAL_ENV_MERGE, "Module #{lookup_invocation.module_name}"], meta_invocation) do |n|
|
357
358
|
meta_invocation.with(:scope, n) { meta_invocation.report_found(LOOKUP_OPTIONS, n == GLOBAL_ENV_MERGE ? opts : module_opts) }
|
358
359
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# Factory is a helper class that makes construction of a Pops Model
|
2
3
|
# much more convenient. It can be viewed as a small internal DSL for model
|
3
4
|
# constructions.
|
@@ -11,19 +12,19 @@ module Model
|
|
11
12
|
class Factory
|
12
13
|
# Shared build_visitor, since there are many instances of Factory being used
|
13
14
|
|
14
|
-
KEY_LENGTH = 'length'
|
15
|
-
KEY_OFFSET = 'offset'
|
16
|
-
KEY_LOCATOR = 'locator'
|
17
|
-
KEY_OPERATOR = 'operator'
|
15
|
+
KEY_LENGTH = 'length'
|
16
|
+
KEY_OFFSET = 'offset'
|
17
|
+
KEY_LOCATOR = 'locator'
|
18
|
+
KEY_OPERATOR = 'operator'
|
18
19
|
|
19
|
-
KEY_VALUE = 'value'
|
20
|
-
KEY_KEYS = 'keys'
|
21
|
-
KEY_NAME = 'name'
|
22
|
-
KEY_BODY = 'body'
|
23
|
-
KEY_EXPR = 'expr'
|
24
|
-
KEY_LEFT_EXPR = 'left_expr'
|
25
|
-
KEY_RIGHT_EXPR = 'right_expr'
|
26
|
-
KEY_PARAMETERS = 'parameters'
|
20
|
+
KEY_VALUE = 'value'
|
21
|
+
KEY_KEYS = 'keys'
|
22
|
+
KEY_NAME = 'name'
|
23
|
+
KEY_BODY = 'body'
|
24
|
+
KEY_EXPR = 'expr'
|
25
|
+
KEY_LEFT_EXPR = 'left_expr'
|
26
|
+
KEY_RIGHT_EXPR = 'right_expr'
|
27
|
+
KEY_PARAMETERS = 'parameters'
|
27
28
|
|
28
29
|
BUILD_VISITOR = Visitor.new(self, 'build')
|
29
30
|
INFER_VISITOR = Visitor.new(self, 'infer')
|
@@ -1111,7 +1112,7 @@ class Factory
|
|
1111
1112
|
end
|
1112
1113
|
|
1113
1114
|
def self.concat(*args)
|
1114
|
-
result = ''
|
1115
|
+
result = ''.dup
|
1115
1116
|
args.each do |e|
|
1116
1117
|
if e.instance_of?(Factory) && e.model_class <= LiteralString
|
1117
1118
|
result << e[KEY_VALUE]
|