puppet 6.21.1-x86-mingw32 → 6.25.0-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/CONTRIBUTING.md +5 -5
- data/Gemfile +3 -3
- data/Gemfile.lock +34 -28
- 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/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +3 -2
- data/lib/puppet/application/agent.rb +16 -5
- data/lib/puppet/application/apply.rb +22 -3
- data/lib/puppet/application/device.rb +2 -1
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +32 -16
- data/lib/puppet/application/script.rb +2 -1
- data/lib/puppet/application/ssl.rb +12 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer/downloader.rb +2 -1
- data/lib/puppet/configurer.rb +85 -57
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +63 -35
- data/lib/puppet/environments.rb +91 -26
- data/lib/puppet/face/facts.rb +129 -31
- 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/fileset.rb +14 -2
- 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/memory_file.rb +8 -1
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +13 -5
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +12 -4
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/tree_each.rb +7 -9
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/http/resolver/server_list.rb +15 -4
- data/lib/puppet/http/service/compiler.rb +75 -1
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/indirector/catalog/compiler.rb +25 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +28 -7
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- 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/formats.rb +67 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/factory.rb +4 -0
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
- data/lib/puppet/parser/scope.rb +1 -0
- data/lib/puppet/parser/templatewrapper.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/eparser.rb +201 -201
- 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_data_converter.rb +18 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
- 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/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +11 -6
- 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 +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 +16 -6
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/service/windows.rb +38 -0
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +26 -13
- data/lib/puppet/provider/user/useradd.rb +73 -17
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/type_collection.rb +1 -0
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -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/selcontext.rb +1 -1
- data/lib/puppet/type/file.rb +25 -7
- 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 +26 -41
- data/lib/puppet/type/tidy.rb +22 -3
- data/lib/puppet/type/user.rb +38 -21
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/fact_dif.rb +36 -17
- 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 +7 -0
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/selinux.rb +30 -4
- 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/adsi.rb +46 -0
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +9 -2
- data/lib/puppet/util/windows/sid.rb +6 -2
- data/lib/puppet/util/windows/user.rb +0 -2
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +5 -9
- data/locales/puppet.pot +506 -410
- data/man/man5/puppet.conf.5 +310 -274
- 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 +65 -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-key.8 +7 -7
- data/man/man8/puppet-lookup.8 +1 -1
- 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 +5 -1
- data/man/man8/puppet-status.8 +4 -4
- 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 +107 -57
- data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
- data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/ca.pem +57 -35
- data/spec/fixtures/ssl/crl.pem +28 -18
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +33 -24
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +108 -58
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
- data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
- data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
- data/spec/fixtures/ssl/intermediate.pem +57 -36
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +107 -57
- data/spec/fixtures/ssl/pluto.pem +52 -30
- data/spec/fixtures/ssl/request-key.pem +107 -57
- data/spec/fixtures/ssl/request.pem +47 -26
- data/spec/fixtures/ssl/revoked-key.pem +107 -57
- data/spec/fixtures/ssl/revoked.pem +52 -30
- data/spec/fixtures/ssl/signed-key.pem +107 -57
- data/spec/fixtures/ssl/signed.pem +52 -30
- data/spec/fixtures/ssl/tampered-cert.pem +52 -30
- data/spec/fixtures/ssl/tampered-csr.pem +47 -26
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
- data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-ca.pem +55 -33
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/integration/application/agent_spec.rb +113 -37
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/plugin_spec.rb +1 -1
- data/spec/integration/application/resource_spec.rb +64 -0
- 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/http/client_spec.rb +12 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
- 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/adsi_spec.rb +18 -0
- data/spec/integration/util/windows/principal_spec.rb +21 -0
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/integration/util/windows/registry_spec.rb +6 -0
- data/spec/lib/puppet/test_ca.rb +7 -2
- 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 +12 -11
- data/spec/unit/application/agent_spec.rb +7 -2
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/facts_spec.rb +482 -3
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/application/ssl_spec.rb +23 -0
- data/spec/unit/configurer/downloader_spec.rb +6 -0
- data/spec/unit/configurer_spec.rb +194 -56
- data/spec/unit/defaults_spec.rb +17 -0
- data/spec/unit/environments_spec.rb +348 -88
- data/spec/unit/face/facts_spec.rb +4 -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/fileset_spec.rb +60 -0
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +22 -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 +64 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +12 -0
- data/spec/unit/http/service/compiler_spec.rb +131 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +101 -10
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/facts/facter_spec.rb +95 -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 +47 -0
- data/spec/unit/network/http/factory_spec.rb +19 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- 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/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- 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/init_spec.rb +1 -0
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/openwrt_spec.rb +3 -1
- data/spec/unit/provider/service/systemd_spec.rb +54 -9
- data/spec/unit/provider/service/windows_spec.rb +202 -0
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
- data/spec/unit/provider/user/useradd_spec.rb +61 -5
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/settings_spec.rb +97 -56
- data/spec/unit/ssl/certificate_request_spec.rb +8 -14
- data/spec/unit/ssl/state_machine_spec.rb +19 -5
- data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
- data/spec/unit/transaction_spec.rb +18 -20
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/selinux_spec.rb +3 -3
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/service_spec.rb +86 -188
- data/spec/unit/type/tidy_spec.rb +24 -7
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/selinux_spec.rb +87 -16
- data/spec/unit/util/windows/sid_spec.rb +41 -0
- data/tasks/generate_cert_fixtures.rake +12 -3
- data/tasks/parallel.rake +3 -3
- metadata +59 -101
- 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/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- 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 }
|
@@ -14,6 +14,8 @@ module Serialization
|
|
14
14
|
# @option options [Boolean] :local_reference use local references instead of duplicating complex entries
|
15
15
|
# @option options [Boolean] :type_by_reference `true` if Object types are converted to references rather than embedded.
|
16
16
|
# @option options [Boolean] :symbol_as_string `true` if Symbols should be converted to strings (with type loss)
|
17
|
+
# @option options [Boolean] :force_symbol `false` if Symbols should not be converted (rich_data and symbol_as_string must be false)
|
18
|
+
# @option options [Boolean] :silence_warnings `false` if warnings should be silenced
|
17
19
|
# @option options [String] :message_prefix String to prepend to in warnings and errors
|
18
20
|
# @return [Data] the processed result. An object assignable to `Data`.
|
19
21
|
#
|
@@ -41,6 +43,12 @@ module Serialization
|
|
41
43
|
@symbol_as_string = options[:symbol_as_string]
|
42
44
|
@symbol_as_string = false if @symbol_as_string.nil?
|
43
45
|
|
46
|
+
@force_symbol = options[:force_symbol]
|
47
|
+
@force_symbol = false if @force_symbol.nil?
|
48
|
+
|
49
|
+
@silence_warnings = options[:silence_warnings]
|
50
|
+
@silence_warnings = false if @silence_warnings.nil?
|
51
|
+
|
44
52
|
@rich_data = options[:rich_data]
|
45
53
|
@rich_data = false if @rich_data.nil?
|
46
54
|
|
@@ -92,7 +100,11 @@ module Serialization
|
|
92
100
|
elsif @rich_data
|
93
101
|
{ PCORE_TYPE_KEY => PCORE_TYPE_SYMBOL, PCORE_VALUE_KEY => value.to_s }
|
94
102
|
else
|
95
|
-
|
103
|
+
if @force_symbol
|
104
|
+
value
|
105
|
+
else
|
106
|
+
@silence_warnings ? unknown_to_string(value) : unknown_to_string_with_warning(value)
|
107
|
+
end
|
96
108
|
end
|
97
109
|
elsif value.instance_of?(Array)
|
98
110
|
process(value) do
|
@@ -117,7 +129,11 @@ module Serialization
|
|
117
129
|
{ PCORE_TYPE_KEY => PCORE_TYPE_SENSITIVE, PCORE_VALUE_KEY => to_data(value.unwrap) }
|
118
130
|
end
|
119
131
|
else
|
120
|
-
|
132
|
+
if @rich_data
|
133
|
+
value_to_data_hash(value)
|
134
|
+
else
|
135
|
+
@silence_warnings ? unknown_to_string(value) : unknown_to_string_with_warning(value)
|
136
|
+
end
|
121
137
|
end
|
122
138
|
end
|
123
139
|
|
@@ -191,10 +207,6 @@ module Serialization
|
|
191
207
|
v
|
192
208
|
end
|
193
209
|
|
194
|
-
def unknown_to_data(value)
|
195
|
-
@rich_data ? value_to_data_hash(value) : unknown_to_string_with_warning(value)
|
196
|
-
end
|
197
|
-
|
198
210
|
def unknown_key_to_string_with_warning(value)
|
199
211
|
str = unknown_to_string(value)
|
200
212
|
serialization_issue(Issues::SERIALIZATION_UNKNOWN_KEY_CONVERTED_TO_STRING, :path => path_to_s, :klass => value.class, :value => str)
|
@@ -95,16 +95,22 @@ class PSemVerType < PScalarType
|
|
95
95
|
end
|
96
96
|
|
97
97
|
def from_args(major, minor, patch, prerelease = nil, build = nil)
|
98
|
-
SemanticPuppet::Version.new(major, minor, patch, prerelease, build)
|
98
|
+
SemanticPuppet::Version.new(major, minor, patch, to_array(prerelease), to_array(build))
|
99
99
|
end
|
100
100
|
|
101
101
|
def from_hash(hash)
|
102
|
-
SemanticPuppet::Version.new(hash['major'], hash['minor'], hash['patch'], hash['prerelease'], hash['build'])
|
102
|
+
SemanticPuppet::Version.new(hash['major'], hash['minor'], hash['patch'], to_array(hash['prerelease']), to_array(hash['build']))
|
103
103
|
end
|
104
104
|
|
105
105
|
def on_error(str)
|
106
106
|
_("The string '%{str}' cannot be converted to a SemVer") % { str: str }
|
107
107
|
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
def to_array(component)
|
112
|
+
component ? [component] : nil
|
113
|
+
end
|
108
114
|
end
|
109
115
|
end
|
110
116
|
|
@@ -24,6 +24,16 @@ class PSensitiveType < PTypeWithContainedType
|
|
24
24
|
def inspect
|
25
25
|
"#<#{self}>"
|
26
26
|
end
|
27
|
+
|
28
|
+
def hash
|
29
|
+
@value.hash
|
30
|
+
end
|
31
|
+
|
32
|
+
def ==(other)
|
33
|
+
other.is_a?(Sensitive) &&
|
34
|
+
other.hash == hash
|
35
|
+
end
|
36
|
+
alias eql? ==
|
27
37
|
end
|
28
38
|
|
29
39
|
def self.register_ptype(loader, ir)
|
@@ -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
|
@@ -93,7 +93,7 @@ Puppet::Type.type(:package).provide :dnfmodule, :parent => :dnf do
|
|
93
93
|
# module has no default profile and no profile was requested, so just enable the stream
|
94
94
|
# DNF versions prior to 4.2.8 do not need this workaround
|
95
95
|
# see https://bugzilla.redhat.com/show_bug.cgi?id=1669527
|
96
|
-
if @resource[:flavor] == nil && e.message =~ /^missing groups or modules: #{Regexp.quote(@resource[:name])}$/
|
96
|
+
if @resource[:flavor] == nil && e.message =~ /^(?:missing|broken) groups or modules: #{Regexp.quote(@resource[:name])}$/
|
97
97
|
enable(args)
|
98
98
|
else
|
99
99
|
raise
|
@@ -154,20 +154,25 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
154
154
|
# I spent a lot of time trying to figure out a solution that didn't
|
155
155
|
# require parsing the `nimclient -o showres` output and was unable to
|
156
156
|
# do so.
|
157
|
-
self::HEADER_LINE_REGEX = /^([^\s]+)\s+[^@]+@@(I|R):(\1)\s+[^\s]+$/
|
158
|
-
self::PACKAGE_LINE_REGEX = /^.*@@(I|R):(.*)$/
|
159
|
-
self::RPM_PACKAGE_REGEX = /^(.*)-(.*-\d
|
157
|
+
self::HEADER_LINE_REGEX = /^([^\s]+)\s+[^@]+@@(I|R|S):(\1)\s+[^\s]+$/
|
158
|
+
self::PACKAGE_LINE_REGEX = /^.*@@(I|R|S):(.*)$/
|
159
|
+
self::RPM_PACKAGE_REGEX = /^(.*)-(.*-\d+\w*) \2$/
|
160
160
|
self::INSTALLP_PACKAGE_REGEX = /^(.*) (.*)$/
|
161
161
|
|
162
162
|
# Here is some sample output that shows what the above regexes will be up
|
163
163
|
# against:
|
164
|
-
# FOR AN INSTALLP PACKAGE:
|
164
|
+
# FOR AN INSTALLP(bff) PACKAGE:
|
165
165
|
#
|
166
166
|
# mypackage.foo ALL @@I:mypackage.foo _all_filesets
|
167
|
-
# @ 1.2.3.1 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.1
|
168
167
|
# + 1.2.3.4 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.4
|
169
168
|
# + 1.2.3.8 MyPackage Runtime Environment @@I:mypackage.foo 1.2.3.8
|
170
169
|
#
|
170
|
+
# FOR AN INSTALLP(bff) PACKAGE with security update:
|
171
|
+
#
|
172
|
+
# bos.net ALL @@S:bos.net _all_filesets
|
173
|
+
# + 7.2.0.1 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.1
|
174
|
+
# + 7.2.0.2 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.2
|
175
|
+
#
|
171
176
|
# FOR AN RPM PACKAGE:
|
172
177
|
#
|
173
178
|
# mypackage.foo ALL @@R:mypackage.foo _all_filesets
|
@@ -243,7 +248,7 @@ Puppet::Type.type(:package).provide :nim, :parent => :aix, :source => :aix do
|
|
243
248
|
package_string = match.captures[1]
|
244
249
|
|
245
250
|
case package_type_flag
|
246
|
-
when "I"
|
251
|
+
when "I","S"
|
247
252
|
parse_installp_package_string(package_string)
|
248
253
|
when "R"
|
249
254
|
parse_rpm_package_string(package_string)
|
@@ -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'
|