puppet 6.23.0 → 6.26.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 +4 -4
- data/Gemfile.lock +32 -25
- 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/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/lookup.rb +78 -24
- data/lib/puppet/application/resource.rb +30 -15
- data/lib/puppet/application/ssl.rb +1 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +6 -3
- data/lib/puppet/configurer.rb +134 -56
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +55 -32
- data/lib/puppet/environments.rb +75 -25
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/generate.rb +2 -0
- 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 +11 -0
- 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 +3 -0
- data/lib/puppet/file_serving/metadata.rb +3 -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 +10 -8
- data/lib/puppet/file_system/jruby.rb +1 -1
- data/lib/puppet/file_system/windows.rb +6 -6
- data/lib/puppet/file_system.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/functions/versioncmp.rb +6 -2
- data/lib/puppet/generate/type.rb +9 -0
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/redirector.rb +5 -0
- 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.rb +1 -0
- 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/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/node.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/scope.rb +1 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/evaluator/closure.rb +7 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +1 -0
- 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 +2 -1
- data/lib/puppet/pops/parser/code_merger.rb +4 -4
- data/lib/puppet/pops/parser/egrammar.ra +2 -0
- data/lib/puppet/pops/parser/eparser.rb +1014 -995
- data/lib/puppet/pops/parser/lexer2.rb +92 -91
- data/lib/puppet/pops/parser/slurp_support.rb +1 -0
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/type_formatter.rb +4 -3
- 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/puppetserver_gem.rb +1 -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 +10 -9
- 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/catalog.rb +1 -1
- data/lib/puppet/resource/type_collection.rb +1 -0
- data/lib/puppet/resource.rb +38 -5
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/ssl/verifier.rb +6 -0
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/persistence.rb +21 -1
- data/lib/puppet/transaction/report.rb +15 -1
- data/lib/puppet/type/exec.rb +35 -5
- data/lib/puppet/type/file/data_sync.rb +1 -1
- data/lib/puppet/type/file/mode.rb +6 -0
- data/lib/puppet/type/file.rb +6 -6
- data/lib/puppet/type/filebucket.rb +3 -3
- 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 +40 -39
- data/lib/puppet/type.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 +20 -0
- data/lib/puppet/util/log.rb +8 -4
- data/lib/puppet/util/logging.rb +1 -25
- data/lib/puppet/util/monkey_patches.rb +6 -0
- data/lib/puppet/util/package.rb +25 -16
- 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/service.rb +0 -5
- data/lib/puppet/util/windows/sid.rb +3 -1
- data/lib/puppet/util/windows/user.rb +0 -2
- data/lib/puppet/util/windows.rb +3 -0
- data/lib/puppet/util/yaml.rb +21 -2
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +6 -9
- data/locales/puppet.pot +5 -10418
- data/man/man5/puppet.conf.5 +52 -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 +8 -8
- 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-key.8 +7 -7
- data/man/man8/puppet-lookup.8 +9 -6
- data/man/man8/puppet-man.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-status.8 +4 -4
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +2 -1
- 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.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/fixtures/unit/forge/bacula.json +1 -1
- data/spec/integration/application/agent_spec.rb +141 -37
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/lookup_spec.rb +32 -6
- 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/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/parser/pcore_resource_spec.rb +10 -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 +32 -0
- data/spec/spec_helper.rb +1 -10
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/lookup_spec.rb +131 -10
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/concurrent/thread_local_singleton_spec.rb +39 -0
- data/spec/unit/configurer_spec.rb +265 -57
- data/spec/unit/defaults_spec.rb +1 -0
- data/spec/unit/environments_spec.rb +184 -0
- data/spec/unit/face/generate_spec.rb +64 -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 +14 -4
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +47 -4
- data/spec/unit/forge/module_release_spec.rb +3 -3
- 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 +64 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions/versioncmp_spec.rb +40 -4
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/http/client_spec.rb +58 -1
- 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 +15 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +51 -12
- data/spec/unit/network/authstore_spec.rb +0 -15
- data/spec/unit/network/formats_spec.rb +6 -0
- data/spec/unit/node_spec.rb +6 -0
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- data/spec/unit/pops/parser/parse_containers_spec.rb +2 -13
- 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/pops/validator/validator_spec.rb +5 -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 +29 -4
- 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/parsedfile_spec.rb +10 -0
- data/spec/unit/provider/service/gentoo_spec.rb +6 -5
- data/spec/unit/provider/service/init_spec.rb +15 -9
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/openwrt_spec.rb +21 -29
- data/spec/unit/provider/service/redhat_spec.rb +3 -2
- 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/catalog_spec.rb +14 -1
- data/spec/unit/resource_spec.rb +58 -2
- data/spec/unit/settings_spec.rb +97 -56
- data/spec/unit/ssl/certificate_request_spec.rb +8 -14
- data/spec/unit/transaction/persistence_spec.rb +51 -0
- 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/user_spec.rb +0 -45
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/json_spec.rb +126 -0
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/windows/sid_spec.rb +39 -4
- data/spec/unit/util/yaml_spec.rb +54 -29
- data/tasks/generate_cert_fixtures.rake +10 -1
- data/tasks/parallel.rake +3 -3
- metadata +52 -96
- 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 -33
- 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 -842
- 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
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# The Lexer is responsible for turning source text into tokens.
|
2
3
|
# This version is a performance enhanced lexer (in comparison to the 3.x and earlier "future parser" lexer.
|
3
4
|
#
|
@@ -30,114 +31,114 @@ class Lexer2
|
|
30
31
|
# The length is pre-calculated for all singleton tokens. The length is used both to signal the length of
|
31
32
|
# the token, and to advance the scanner position (without having to advance it with a scan(regexp)).
|
32
33
|
#
|
33
|
-
TOKEN_LBRACK = [:LBRACK, '['
|
34
|
-
TOKEN_LISTSTART = [:LISTSTART, '['
|
35
|
-
TOKEN_RBRACK = [:RBRACK, ']'
|
36
|
-
TOKEN_LBRACE = [:LBRACE, '{'
|
37
|
-
TOKEN_RBRACE = [:RBRACE, '}'
|
38
|
-
TOKEN_SELBRACE = [:SELBRACE, '{'
|
39
|
-
TOKEN_LPAREN = [:LPAREN, '('
|
40
|
-
TOKEN_WSLPAREN = [:WSLPAREN, '('
|
41
|
-
TOKEN_RPAREN = [:RPAREN, ')'
|
42
|
-
|
43
|
-
TOKEN_EQUALS = [:EQUALS, '='
|
44
|
-
TOKEN_APPENDS = [:APPENDS, '+='
|
45
|
-
TOKEN_DELETES = [:DELETES, '-='
|
46
|
-
|
47
|
-
TOKEN_ISEQUAL = [:ISEQUAL, '=='
|
48
|
-
TOKEN_NOTEQUAL = [:NOTEQUAL, '!='
|
49
|
-
TOKEN_MATCH = [:MATCH, '=~'
|
50
|
-
TOKEN_NOMATCH = [:NOMATCH, '!~'
|
51
|
-
TOKEN_GREATEREQUAL = [:GREATEREQUAL, '>='
|
52
|
-
TOKEN_GREATERTHAN = [:GREATERTHAN, '>'
|
53
|
-
TOKEN_LESSEQUAL = [:LESSEQUAL, '<='
|
54
|
-
TOKEN_LESSTHAN = [:LESSTHAN, '<'
|
55
|
-
|
56
|
-
TOKEN_FARROW = [:FARROW, '=>'
|
57
|
-
TOKEN_PARROW = [:PARROW, '+>'
|
58
|
-
|
59
|
-
TOKEN_LSHIFT = [:LSHIFT, '<<'
|
60
|
-
TOKEN_LLCOLLECT = [:LLCOLLECT, '<<|'
|
61
|
-
TOKEN_LCOLLECT = [:LCOLLECT, '<|'
|
62
|
-
|
63
|
-
TOKEN_RSHIFT = [:RSHIFT, '>>'
|
64
|
-
TOKEN_RRCOLLECT = [:RRCOLLECT, '|>>'
|
65
|
-
TOKEN_RCOLLECT = [:RCOLLECT, '|>'
|
66
|
-
|
67
|
-
TOKEN_PLUS = [:PLUS, '+'
|
68
|
-
TOKEN_MINUS = [:MINUS, '-'
|
69
|
-
TOKEN_DIV = [:DIV, '/'
|
70
|
-
TOKEN_TIMES = [:TIMES, '*'
|
71
|
-
TOKEN_MODULO = [:MODULO, '%'
|
72
|
-
|
73
|
-
TOKEN_NOT = [:NOT, '!'
|
74
|
-
TOKEN_DOT = [:DOT, '.'
|
75
|
-
TOKEN_PIPE = [:PIPE, '|'
|
76
|
-
TOKEN_AT = [:AT , '@'
|
77
|
-
TOKEN_ATAT = [:ATAT , '@@'
|
78
|
-
TOKEN_COLON = [:COLON, ':'
|
79
|
-
TOKEN_COMMA = [:COMMA, ','
|
80
|
-
TOKEN_SEMIC = [:SEMIC, ';'
|
81
|
-
TOKEN_QMARK = [:QMARK, '?'
|
82
|
-
TOKEN_TILDE = [:TILDE, '~'
|
34
|
+
TOKEN_LBRACK = [:LBRACK, '[', 1].freeze
|
35
|
+
TOKEN_LISTSTART = [:LISTSTART, '[', 1].freeze
|
36
|
+
TOKEN_RBRACK = [:RBRACK, ']', 1].freeze
|
37
|
+
TOKEN_LBRACE = [:LBRACE, '{', 1].freeze
|
38
|
+
TOKEN_RBRACE = [:RBRACE, '}', 1].freeze
|
39
|
+
TOKEN_SELBRACE = [:SELBRACE, '{', 1].freeze
|
40
|
+
TOKEN_LPAREN = [:LPAREN, '(', 1].freeze
|
41
|
+
TOKEN_WSLPAREN = [:WSLPAREN, '(', 1].freeze
|
42
|
+
TOKEN_RPAREN = [:RPAREN, ')', 1].freeze
|
43
|
+
|
44
|
+
TOKEN_EQUALS = [:EQUALS, '=', 1].freeze
|
45
|
+
TOKEN_APPENDS = [:APPENDS, '+=', 2].freeze
|
46
|
+
TOKEN_DELETES = [:DELETES, '-=', 2].freeze
|
47
|
+
|
48
|
+
TOKEN_ISEQUAL = [:ISEQUAL, '==', 2].freeze
|
49
|
+
TOKEN_NOTEQUAL = [:NOTEQUAL, '!=', 2].freeze
|
50
|
+
TOKEN_MATCH = [:MATCH, '=~', 2].freeze
|
51
|
+
TOKEN_NOMATCH = [:NOMATCH, '!~', 2].freeze
|
52
|
+
TOKEN_GREATEREQUAL = [:GREATEREQUAL, '>=', 2].freeze
|
53
|
+
TOKEN_GREATERTHAN = [:GREATERTHAN, '>', 1].freeze
|
54
|
+
TOKEN_LESSEQUAL = [:LESSEQUAL, '<=', 2].freeze
|
55
|
+
TOKEN_LESSTHAN = [:LESSTHAN, '<', 1].freeze
|
56
|
+
|
57
|
+
TOKEN_FARROW = [:FARROW, '=>', 2].freeze
|
58
|
+
TOKEN_PARROW = [:PARROW, '+>', 2].freeze
|
59
|
+
|
60
|
+
TOKEN_LSHIFT = [:LSHIFT, '<<', 2].freeze
|
61
|
+
TOKEN_LLCOLLECT = [:LLCOLLECT, '<<|', 3].freeze
|
62
|
+
TOKEN_LCOLLECT = [:LCOLLECT, '<|', 2].freeze
|
63
|
+
|
64
|
+
TOKEN_RSHIFT = [:RSHIFT, '>>', 2].freeze
|
65
|
+
TOKEN_RRCOLLECT = [:RRCOLLECT, '|>>', 3].freeze
|
66
|
+
TOKEN_RCOLLECT = [:RCOLLECT, '|>', 2].freeze
|
67
|
+
|
68
|
+
TOKEN_PLUS = [:PLUS, '+', 1].freeze
|
69
|
+
TOKEN_MINUS = [:MINUS, '-', 1].freeze
|
70
|
+
TOKEN_DIV = [:DIV, '/', 1].freeze
|
71
|
+
TOKEN_TIMES = [:TIMES, '*', 1].freeze
|
72
|
+
TOKEN_MODULO = [:MODULO, '%', 1].freeze
|
73
|
+
|
74
|
+
TOKEN_NOT = [:NOT, '!', 1].freeze
|
75
|
+
TOKEN_DOT = [:DOT, '.', 1].freeze
|
76
|
+
TOKEN_PIPE = [:PIPE, '|', 1].freeze
|
77
|
+
TOKEN_AT = [:AT , '@', 1].freeze
|
78
|
+
TOKEN_ATAT = [:ATAT , '@@', 2].freeze
|
79
|
+
TOKEN_COLON = [:COLON, ':', 1].freeze
|
80
|
+
TOKEN_COMMA = [:COMMA, ',', 1].freeze
|
81
|
+
TOKEN_SEMIC = [:SEMIC, ';', 1].freeze
|
82
|
+
TOKEN_QMARK = [:QMARK, '?', 1].freeze
|
83
|
+
TOKEN_TILDE = [:TILDE, '~', 1].freeze # lexed but not an operator in Puppet
|
83
84
|
|
84
85
|
TOKEN_REGEXP = [:REGEXP, nil, 0].freeze
|
85
86
|
|
86
|
-
TOKEN_IN_EDGE = [:IN_EDGE, '->'
|
87
|
-
TOKEN_IN_EDGE_SUB = [:IN_EDGE_SUB, '~>'
|
88
|
-
TOKEN_OUT_EDGE = [:OUT_EDGE, '<-'
|
89
|
-
TOKEN_OUT_EDGE_SUB = [:OUT_EDGE_SUB, '<~'
|
87
|
+
TOKEN_IN_EDGE = [:IN_EDGE, '->', 2].freeze
|
88
|
+
TOKEN_IN_EDGE_SUB = [:IN_EDGE_SUB, '~>', 2].freeze
|
89
|
+
TOKEN_OUT_EDGE = [:OUT_EDGE, '<-', 2].freeze
|
90
|
+
TOKEN_OUT_EDGE_SUB = [:OUT_EDGE_SUB, '<~', 2].freeze
|
90
91
|
|
91
92
|
# Tokens that are always unique to what has been lexed
|
92
|
-
TOKEN_STRING =
|
93
|
-
TOKEN_WORD =
|
94
|
-
TOKEN_DQPRE =
|
95
|
-
TOKEN_DQMID =
|
96
|
-
TOKEN_DQPOS =
|
97
|
-
TOKEN_NUMBER =
|
98
|
-
TOKEN_VARIABLE =
|
99
|
-
TOKEN_VARIABLE_EMPTY =
|
93
|
+
TOKEN_STRING = [:STRING, nil, 0].freeze
|
94
|
+
TOKEN_WORD = [:WORD, nil, 0].freeze
|
95
|
+
TOKEN_DQPRE = [:DQPRE, nil, 0].freeze
|
96
|
+
TOKEN_DQMID = [:DQPRE, nil, 0].freeze
|
97
|
+
TOKEN_DQPOS = [:DQPRE, nil, 0].freeze
|
98
|
+
TOKEN_NUMBER = [:NUMBER, nil, 0].freeze
|
99
|
+
TOKEN_VARIABLE = [:VARIABLE, nil, 1].freeze
|
100
|
+
TOKEN_VARIABLE_EMPTY = [:VARIABLE, '', 1].freeze
|
100
101
|
|
101
102
|
# HEREDOC has syntax as an argument.
|
102
|
-
TOKEN_HEREDOC =
|
103
|
+
TOKEN_HEREDOC = [:HEREDOC, nil, 0].freeze
|
103
104
|
|
104
105
|
# EPP_START is currently a marker token, may later get syntax
|
105
|
-
TOKEN_EPPSTART
|
106
|
-
TOKEN_EPPEND
|
107
|
-
TOKEN_EPPEND_TRIM
|
106
|
+
TOKEN_EPPSTART = [:EPP_START, nil, 0].freeze
|
107
|
+
TOKEN_EPPEND = [:EPP_END, '%>', 2].freeze
|
108
|
+
TOKEN_EPPEND_TRIM = [:EPP_END_TRIM, '-%>', 3].freeze
|
108
109
|
|
109
110
|
# This is used for unrecognized tokens, will always be a single character. This particular instance
|
110
111
|
# is not used, but is kept here for documentation purposes.
|
111
|
-
TOKEN_OTHER
|
112
|
+
TOKEN_OTHER = [:OTHER, nil, 0]
|
112
113
|
|
113
114
|
# Keywords are all singleton tokens with pre calculated lengths.
|
114
115
|
# Booleans are pre-calculated (rather than evaluating the strings "false" "true" repeatedly.
|
115
116
|
#
|
116
117
|
KEYWORDS = {
|
117
|
-
'case'
|
118
|
-
'class'
|
119
|
-
'default'
|
120
|
-
'define'
|
121
|
-
'if'
|
122
|
-
'elsif'
|
123
|
-
'else'
|
124
|
-
'inherits'
|
125
|
-
'node'
|
126
|
-
'and'
|
127
|
-
'or'
|
128
|
-
'undef'
|
129
|
-
'false'
|
130
|
-
'true'
|
131
|
-
'in'
|
132
|
-
'unless'
|
133
|
-
'function'
|
134
|
-
'type'
|
135
|
-
'attr'
|
136
|
-
'private'
|
137
|
-
'application' => [:APPLICATION, 'application',
|
138
|
-
'consumes' => [:CONSUMES, 'consumes',
|
139
|
-
'produces' => [:PRODUCES, 'produces',
|
140
|
-
'site' => [:SITE, 'site',
|
118
|
+
'case' => [:CASE, 'case', 4],
|
119
|
+
'class' => [:CLASS, 'class', 5],
|
120
|
+
'default' => [:DEFAULT, 'default', 7],
|
121
|
+
'define' => [:DEFINE, 'define', 6],
|
122
|
+
'if' => [:IF, 'if', 2],
|
123
|
+
'elsif' => [:ELSIF, 'elsif', 5],
|
124
|
+
'else' => [:ELSE, 'else', 4],
|
125
|
+
'inherits' => [:INHERITS, 'inherits', 8],
|
126
|
+
'node' => [:NODE, 'node', 4],
|
127
|
+
'and' => [:AND, 'and', 3],
|
128
|
+
'or' => [:OR, 'or', 2],
|
129
|
+
'undef' => [:UNDEF, 'undef', 5],
|
130
|
+
'false' => [:BOOLEAN, false, 5],
|
131
|
+
'true' => [:BOOLEAN, true, 4],
|
132
|
+
'in' => [:IN, 'in', 2],
|
133
|
+
'unless' => [:UNLESS, 'unless', 6],
|
134
|
+
'function' => [:FUNCTION, 'function', 8],
|
135
|
+
'type' => [:TYPE, 'type', 4],
|
136
|
+
'attr' => [:ATTR, 'attr', 4],
|
137
|
+
'private' => [:PRIVATE, 'private', 7],
|
138
|
+
'application' => [:APPLICATION, 'application', 11],
|
139
|
+
'consumes' => [:CONSUMES, 'consumes', 8],
|
140
|
+
'produces' => [:PRODUCES, 'produces', 8],
|
141
|
+
'site' => [:SITE, 'site', 4],
|
141
142
|
}
|
142
143
|
|
143
144
|
KEYWORDS.each {|k,v| v[1].freeze; v.freeze }
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'puppet/concurrent/thread_local_singleton'
|
2
3
|
|
3
4
|
module Puppet::Pops
|
@@ -22,7 +23,7 @@ class TypeFormatter
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def initialize
|
25
|
-
@string_visitor = Visitor.new(nil, 'string',0,0)
|
26
|
+
@string_visitor = Visitor.new(nil, 'string', 0, 0)
|
26
27
|
end
|
27
28
|
|
28
29
|
def expanded
|
@@ -49,7 +50,7 @@ class TypeFormatter
|
|
49
50
|
# @api public
|
50
51
|
#
|
51
52
|
def string(t)
|
52
|
-
@bld = ''
|
53
|
+
@bld = ''.dup
|
53
54
|
append_string(t)
|
54
55
|
@bld
|
55
56
|
end
|
@@ -63,7 +64,7 @@ class TypeFormatter
|
|
63
64
|
#
|
64
65
|
# @api public
|
65
66
|
def indented_string(t, indent = 0, indent_width = 2)
|
66
|
-
@bld = ''
|
67
|
+
@bld = ''.dup
|
67
68
|
append_indented_string(t, indent, indent_width)
|
68
69
|
@bld
|
69
70
|
end
|
@@ -640,7 +640,7 @@ module Types
|
|
640
640
|
result = ["#{label} expects (#{signature_string(sig)})"]
|
641
641
|
result.concat(error_arrays[0].map { |e| " rejected:#{e.chop_path(0).format}" })
|
642
642
|
else
|
643
|
-
result = ["#{label} expects one of:"]
|
643
|
+
result = ["The function #{label} was called with arguments it does not accept. It expects one of:"]
|
644
644
|
signatures.each_with_index do |sg, index|
|
645
645
|
result << " (#{signature_string(sg)})"
|
646
646
|
result.concat(error_arrays[index].map { |e| " rejected:#{e.chop_path(0).format}" })
|
@@ -736,7 +736,7 @@ class PScalarDataType < PScalarType
|
|
736
736
|
end
|
737
737
|
|
738
738
|
def instance?(o, guard = nil)
|
739
|
-
return o.
|
739
|
+
return o.instance_of?(String) || o.is_a?(Integer) || o.is_a?(Float) || o.is_a?(TrueClass) || o.is_a?(FalseClass)
|
740
740
|
end
|
741
741
|
|
742
742
|
DEFAULT = PScalarDataType.new
|
@@ -6,10 +6,22 @@ Puppet::Type.type(:exec).provide :posix, :parent => Puppet::Provider::Exec do
|
|
6
6
|
defaultfor :feature => :posix
|
7
7
|
|
8
8
|
desc <<-EOT
|
9
|
-
Executes external binaries
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
Executes external binaries by invoking Ruby's `Kernel.exec`.
|
10
|
+
When the command is a string, it will be executed directly,
|
11
|
+
without a shell, if it follows these rules:
|
12
|
+
- no meta characters
|
13
|
+
- no shell reserved word and no special built-in
|
14
|
+
|
15
|
+
When the command is an Array of Strings, passed as `[cmdname, arg1, ...]`
|
16
|
+
it will be executed directly(the first element is taken as a command name
|
17
|
+
and the rest are passed as parameters to command with no shell expansion)
|
18
|
+
This is a safer and more predictable way to execute most commands,
|
19
|
+
but prevents the use of globbing and shell built-ins (including control
|
20
|
+
logic like "for" and "if" statements).
|
21
|
+
|
22
|
+
If the use of globbing and shell built-ins is desired, please check
|
23
|
+
the `shell` provider
|
24
|
+
|
13
25
|
EOT
|
14
26
|
|
15
27
|
# Verify that we have the executable
|
@@ -2,11 +2,14 @@ require 'puppet/provider/nameservice/objectadd'
|
|
2
2
|
require 'puppet/util/libuser'
|
3
3
|
|
4
4
|
Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameService::ObjectAdd do
|
5
|
-
desc "Group management via `groupadd` and its ilk. The default for most platforms.
|
5
|
+
desc "Group management via `groupadd` and its ilk. The default for most platforms.
|
6
|
+
|
7
|
+
To use the `forcelocal` parameter, you need to install the `libuser` package (providing
|
8
|
+
`/usr/sbin/lgroupadd` and `/usr/sbin/luseradd`)."
|
6
9
|
|
7
10
|
commands :add => "groupadd", :delete => "groupdel", :modify => "groupmod"
|
8
11
|
|
9
|
-
has_feature :system_groups unless %w{HP-UX Solaris}.include?
|
12
|
+
has_feature :system_groups unless %w{HP-UX Solaris}.include? Puppet.runtime[:facter].value(:operatingsystem)
|
10
13
|
|
11
14
|
verify :gid, _("GID must be an integer") do |value|
|
12
15
|
value.is_a? Integer
|
@@ -127,7 +127,7 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
127
127
|
if self.class.compare_pip_versions(command_version, '1.5.4') == -1
|
128
128
|
available_versions_with_old_pip.last
|
129
129
|
else
|
130
|
-
available_versions_with_new_pip.last
|
130
|
+
available_versions_with_new_pip(command_version).last
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -150,15 +150,17 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
150
150
|
if self.class.compare_pip_versions(command_version, '1.5.4') == -1
|
151
151
|
available_versions_with_old_pip
|
152
152
|
else
|
153
|
-
available_versions_with_new_pip
|
153
|
+
available_versions_with_new_pip(command_version)
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
-
def available_versions_with_new_pip
|
157
|
+
def available_versions_with_new_pip(command_version)
|
158
158
|
command = resource_or_provider_command
|
159
159
|
self.class.validate_command(command)
|
160
160
|
|
161
161
|
command_and_options = [self.class.quote(command), 'install', "#{@resource[:name]}==versionplease"]
|
162
|
+
extra_arg = list_extra_flags(command_version)
|
163
|
+
command_and_options << extra_arg if extra_arg
|
162
164
|
command_and_options << install_options if @resource[:install_options]
|
163
165
|
execpipe command_and_options do |process|
|
164
166
|
process.collect do |line|
|
@@ -329,4 +331,14 @@ Puppet::Type.type(:package).provide :pip, :parent => ::Puppet::Provider::Package
|
|
329
331
|
path
|
330
332
|
end
|
331
333
|
end
|
334
|
+
|
335
|
+
private
|
336
|
+
|
337
|
+
def list_extra_flags(command_version)
|
338
|
+
klass = self.class
|
339
|
+
if klass.compare_pip_versions(command_version, '20.2.4') == 1 &&
|
340
|
+
klass.compare_pip_versions(command_version, '21.1') == -1
|
341
|
+
'--use-deprecated=legacy-resolver'
|
342
|
+
end
|
343
|
+
end
|
332
344
|
end
|
@@ -165,7 +165,14 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
165
165
|
command = is == :absent ? 'install' : 'update'
|
166
166
|
options = ['-n']
|
167
167
|
options.concat(join_options(@resource[:install_options])) if @resource[:install_options]
|
168
|
-
|
168
|
+
|
169
|
+
begin
|
170
|
+
unhold if properties[:mark] == :hold
|
171
|
+
status = exec_cmd(command(:pkg), command, *options, "#{name}@#{p[:ensure]}")[:exit]
|
172
|
+
ensure
|
173
|
+
hold if properties[:mark] == :hold
|
174
|
+
end
|
175
|
+
|
169
176
|
case status
|
170
177
|
when 4
|
171
178
|
# if the first installable match would cause no changes, we're in sync
|
@@ -225,7 +232,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
225
232
|
command = 'update'
|
226
233
|
end
|
227
234
|
args = ['--accept']
|
228
|
-
if Puppet::Util::Package.versioncmp(
|
235
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.2') >= 0
|
229
236
|
args.push('--sync-actuators-timeout', '900')
|
230
237
|
end
|
231
238
|
args.concat(join_options(@resource[:install_options])) if @resource[:install_options]
|
@@ -234,7 +241,17 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
234
241
|
end
|
235
242
|
self.unhold if self.properties[:mark] == :hold
|
236
243
|
begin
|
244
|
+
tries = 1
|
245
|
+
# pkg install exits with code 7 when the image is currently in use by another process and cannot be modified
|
237
246
|
r = exec_cmd(command(:pkg), command, *args, name)
|
247
|
+
while r[:exit] == 7 do
|
248
|
+
if tries > 4
|
249
|
+
raise Puppet::Error, _("Pkg could not install %{name} after %{tries} tries. Aborting run") % { name: name, tries: tries }
|
250
|
+
end
|
251
|
+
sleep 2 ** tries
|
252
|
+
tries += 1
|
253
|
+
r = exec_cmd(command(:pkg), command, *args, name)
|
254
|
+
end
|
238
255
|
ensure
|
239
256
|
self.hold if @resource[:mark] == :hold
|
240
257
|
end
|
@@ -145,7 +145,7 @@ Puppet::Type.type(:package).provide :puppetserver_gem, :parent => :gem do
|
|
145
145
|
|
146
146
|
pe_puppetserver_conf_file = '/etc/puppetlabs/puppetserver/conf.d/pe-puppet-server.conf'
|
147
147
|
os_puppetserver_conf_file = '/etc/puppetlabs/puppetserver/puppetserver.conf'
|
148
|
-
puppetserver_conf_file =
|
148
|
+
puppetserver_conf_file = Puppet.runtime[:facter].value(:pe_server_version) ? pe_puppetserver_conf_file : os_puppetserver_conf_file
|
149
149
|
puppetserver_conf = Hocon.load(puppetserver_conf_file)
|
150
150
|
|
151
151
|
gem_env = {}
|
@@ -298,7 +298,7 @@ defaultfor :osfamily => :redhat, :operatingsystemmajrelease => (4..7).to_a
|
|
298
298
|
|
299
299
|
# Yum on el-4 and el-5 returns exit status 0 when trying to install a package it doesn't recognize;
|
300
300
|
# ensure we capture output to check for errors.
|
301
|
-
no_debug = if
|
301
|
+
no_debug = if Puppet.runtime[:facter].value(:operatingsystemmajrelease).to_i > 5 then ["-d", "0"] else [] end
|
302
302
|
command = [command(:cmd)] + no_debug + ["-e", error_level, "-y", install_options, operation, wanted].compact
|
303
303
|
output = execute(command)
|
304
304
|
|
@@ -280,6 +280,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
280
280
|
def self.prefetch_target(target)
|
281
281
|
begin
|
282
282
|
target_records = retrieve(target)
|
283
|
+
unless target_records
|
284
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: self.name }
|
285
|
+
end
|
283
286
|
rescue Puppet::Util::FileType::FileReadError => detail
|
284
287
|
if @raise_prefetch_errors
|
285
288
|
# We will raise an error later in flush_target. This way,
|
@@ -15,7 +15,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
15
15
|
# ported from the facter 2.x implementation, since facter 3.x
|
16
16
|
# is dropping the fact (for which this was the only use)
|
17
17
|
def getps
|
18
|
-
case
|
18
|
+
case Puppet.runtime[:facter].value(:operatingsystem)
|
19
19
|
when 'OpenWrt'
|
20
20
|
'ps www'
|
21
21
|
when 'FreeBSD', 'NetBSD', 'OpenBSD', 'Darwin', 'DragonFly'
|
@@ -4,7 +4,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
4
4
|
desc "Standard `init`-style service management."
|
5
5
|
|
6
6
|
def self.defpath
|
7
|
-
case
|
7
|
+
case Puppet.runtime[:facter].value(:operatingsystem)
|
8
8
|
when "FreeBSD", "DragonFly"
|
9
9
|
["/etc/rc.d", "/usr/local/etc/rc.d"]
|
10
10
|
when "HP-UX"
|
@@ -21,8 +21,8 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
21
21
|
# Debian and Ubuntu should use the Debian provider.
|
22
22
|
# RedHat systems should use the RedHat provider.
|
23
23
|
confine :true => begin
|
24
|
-
os =
|
25
|
-
family =
|
24
|
+
os = Puppet.runtime[:facter].value(:operatingsystem).downcase
|
25
|
+
family = Puppet.runtime[:facter].value(:osfamily).downcase
|
26
26
|
!(os == 'debian' || os == 'ubuntu' || family == 'redhat')
|
27
27
|
end
|
28
28
|
|
@@ -54,7 +54,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
54
54
|
# these excludes were found with grep -r -L start /etc/init.d
|
55
55
|
excludes += %w{rcS module-init-tools}
|
56
56
|
# Prevent puppet failing on unsafe scripts from Yocto Linux
|
57
|
-
if
|
57
|
+
if Puppet.runtime[:facter].value(:osfamily) == "cisco-wrlinux"
|
58
58
|
excludes += %w{banner.sh bootmisc.sh checkroot.sh devpts.sh dmesg.sh
|
59
59
|
hostname.sh mountall.sh mountnfs.sh populate-volatile.sh
|
60
60
|
rmnologin.sh save-rtc.sh sendsigs sysfs.sh umountfs
|
@@ -84,7 +84,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
84
84
|
defpath = [defpath] unless defpath.is_a? Array
|
85
85
|
instances = []
|
86
86
|
defpath.each do |path|
|
87
|
-
unless
|
87
|
+
unless Puppet::FileSystem.directory?(path)
|
88
88
|
Puppet.debug "Service path #{path} does not exist"
|
89
89
|
next
|
90
90
|
end
|
@@ -97,8 +97,9 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
97
97
|
fullpath = File.join(path, name)
|
98
98
|
next if name =~ /^\./
|
99
99
|
next if exclude.include? name
|
100
|
-
next if
|
101
|
-
next
|
100
|
+
next if Puppet::FileSystem.directory?(fullpath)
|
101
|
+
next unless Puppet::FileSystem.executable?(fullpath)
|
102
|
+
next unless is_init?(fullpath)
|
102
103
|
instances << new(:name => name, :path => path, :hasstatus => true)
|
103
104
|
end
|
104
105
|
end
|
@@ -122,7 +123,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
122
123
|
|
123
124
|
def paths
|
124
125
|
@paths ||= @resource[:path].find_all do |path|
|
125
|
-
if
|
126
|
+
if Puppet::FileSystem.directory?(path)
|
126
127
|
true
|
127
128
|
else
|
128
129
|
if Puppet::FileSystem.exist?(path)
|
@@ -171,7 +172,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
171
172
|
end
|
172
173
|
|
173
174
|
def texecute(type, command, fof = true, squelch = false, combine = true)
|
174
|
-
if type == :start &&
|
175
|
+
if type == :start && Puppet.runtime[:facter].value(:osfamily) == "Solaris"
|
175
176
|
command = ["/usr/bin/ctrun -l child", command].flatten.join(" ")
|
176
177
|
end
|
177
178
|
super(type, command, fof, squelch, combine)
|
@@ -70,7 +70,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
70
70
|
#
|
71
71
|
# @api private
|
72
72
|
def self.get_os_version
|
73
|
-
@os_version ||=
|
73
|
+
@os_version ||= Puppet.runtime[:facter].value(:operatingsystemmajrelease).to_i
|
74
74
|
end
|
75
75
|
|
76
76
|
# Defines the path to the overrides plist file where service enabling
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
138
138
|
Puppet.debug("Reading launchd plist #{filepath}")
|
139
139
|
job = read_plist(filepath)
|
140
140
|
next if job.nil?
|
141
|
-
if job.
|
141
|
+
if job.respond_to?(:key) && job.key?("Label")
|
142
142
|
@label_to_path_map[job["Label"]] = filepath
|
143
143
|
else
|
144
144
|
#TRANSLATORS 'plist' and label' should not be translated
|
@@ -35,7 +35,7 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
35
35
|
# For Suse OS family, chkconfig returns 0 even if the service is disabled or non-existent
|
36
36
|
# Therefore, check the output for '<name> on' (or '<name> B for boot services)
|
37
37
|
# to see if it is enabled
|
38
|
-
return :false unless
|
38
|
+
return :false unless Puppet.runtime[:facter].value(:osfamily) != 'Suse' || output =~ /^#{name}\s+(on|B)$/
|
39
39
|
|
40
40
|
:true
|
41
41
|
end
|
@@ -73,14 +73,14 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
73
73
|
|
74
74
|
# Returns true if the provider supports incomplete services.
|
75
75
|
def supports_incomplete_services?
|
76
|
-
Puppet::Util::Package.versioncmp(
|
76
|
+
Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.1') >= 0
|
77
77
|
end
|
78
78
|
|
79
79
|
# Returns true if the service is complete. A complete service is a service that
|
80
80
|
# has the general/complete property defined.
|
81
81
|
def complete_service?
|
82
82
|
unless supports_incomplete_services?
|
83
|
-
raise Puppet::Error, _("Cannot query if the %{service} service is complete: The concept of complete/incomplete services was introduced in Solaris 11.1. You are on a Solaris %{release} machine.") % { service: @resource[:name], release:
|
83
|
+
raise Puppet::Error, _("Cannot query if the %{service} service is complete: The concept of complete/incomplete services was introduced in Solaris 11.1. You are on a Solaris %{release} machine.") % { service: @resource[:name], release: Puppet.runtime[:facter].value(:operatingsystemrelease) }
|
84
84
|
end
|
85
85
|
|
86
86
|
return @complete_service if @complete_service
|
@@ -113,7 +113,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def restartcmd
|
116
|
-
if Puppet::Util::Package.versioncmp(
|
116
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.2') >= 0
|
117
117
|
[command(:adm), :restart, "-s", @resource[:name]]
|
118
118
|
else
|
119
119
|
# Synchronous restart only supported in Solaris 11.2 and above
|
@@ -14,7 +14,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
14
14
|
confine :true => Puppet::FileSystem.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd')
|
15
15
|
|
16
16
|
defaultfor :osfamily => [:archlinux]
|
17
|
-
defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["7", "8"]
|
17
|
+
defaultfor :osfamily => :redhat, :operatingsystemmajrelease => ["7", "8", "9"]
|
18
18
|
defaultfor :osfamily => :redhat, :operatingsystem => :fedora
|
19
19
|
defaultfor :osfamily => :suse
|
20
20
|
defaultfor :osfamily => :coreos
|
@@ -110,7 +110,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
110
110
|
# The indirect state indicates that the unit is not enabled.
|
111
111
|
return :false if output == 'indirect'
|
112
112
|
return :true if (code == 0)
|
113
|
-
if (output.empty?) && (code > 0) && (
|
113
|
+
if (output.empty?) && (code > 0) && (Puppet.runtime[:facter].value(:osfamily).casecmp('debian').zero?)
|
114
114
|
ret = debian_enabled?
|
115
115
|
return ret if ret
|
116
116
|
end
|
@@ -10,10 +10,10 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
10
10
|
"
|
11
11
|
|
12
12
|
confine :any => [
|
13
|
-
|
14
|
-
(
|
15
|
-
(
|
16
|
-
|
13
|
+
Puppet.runtime[:facter].value(:operatingsystem) == 'Ubuntu',
|
14
|
+
(Puppet.runtime[:facter].value(:osfamily) == 'RedHat' and Puppet.runtime[:facter].value(:operatingsystemrelease) =~ /^6\./),
|
15
|
+
(Puppet.runtime[:facter].value(:operatingsystem) == 'Amazon' and Puppet.runtime[:facter].value(:operatingsystemmajrelease) =~ /\d{4}/),
|
16
|
+
Puppet.runtime[:facter].value(:operatingsystem) == 'LinuxMint',
|
17
17
|
]
|
18
18
|
|
19
19
|
defaultfor :operatingsystem => :ubuntu, :operatingsystemmajrelease => ["10.04", "12.04", "14.04", "14.10"]
|
@@ -57,7 +57,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
57
57
|
|
58
58
|
def self.excludes
|
59
59
|
excludes = super
|
60
|
-
if
|
60
|
+
if Puppet.runtime[:facter].value(:osfamily) == 'RedHat'
|
61
61
|
# Puppet cannot deal with services that have instances, so we have to
|
62
62
|
# ignore these services using instances on redhat based systems.
|
63
63
|
excludes += %w[serial tty]
|