puppet 6.28.0-universal-darwin → 7.0.0-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +5 -7
- data/Gemfile.lock +52 -131
- data/README.md +5 -5
- data/conf/fileserver.conf +5 -10
- data/ext/README.environment +8 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/dbfix.sql +132 -0
- data/ext/debian/README.Debian +8 -0
- data/ext/debian/README.source +2 -0
- data/ext/debian/TODO.Debian +1 -0
- data/ext/debian/changelog.erb +1122 -0
- data/ext/debian/compat +1 -0
- data/ext/debian/control +144 -0
- data/ext/debian/copyright +339 -0
- data/ext/debian/docs +1 -0
- data/ext/debian/fileserver.conf +41 -0
- data/ext/debian/puppet-common.dirs +13 -0
- data/ext/debian/puppet-common.install +3 -0
- data/ext/debian/puppet-common.lintian-overrides +5 -0
- data/ext/debian/puppet-common.manpages +28 -0
- data/ext/debian/puppet-common.postinst +35 -0
- data/ext/debian/puppet-common.postrm +33 -0
- data/ext/debian/puppet-el.dirs +1 -0
- data/ext/debian/puppet-el.emacsen-install +25 -0
- data/ext/debian/puppet-el.emacsen-remove +11 -0
- data/ext/debian/puppet-el.emacsen-startup +9 -0
- data/ext/debian/puppet-el.install +1 -0
- data/ext/debian/puppet-testsuite.install +2 -0
- data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
- data/ext/debian/puppet.lintian-overrides +3 -0
- data/ext/debian/puppet.logrotate +20 -0
- data/ext/debian/puppet.postinst +20 -0
- data/ext/debian/puppet.postrm +20 -0
- data/ext/debian/puppet.preinst +20 -0
- data/ext/debian/puppetmaster-common.install +2 -0
- data/ext/debian/puppetmaster-common.manpages +2 -0
- data/ext/debian/puppetmaster-common.postinst +6 -0
- data/ext/debian/puppetmaster-passenger.dirs +4 -0
- data/ext/debian/puppetmaster-passenger.postinst +162 -0
- data/ext/debian/puppetmaster-passenger.postrm +61 -0
- data/ext/debian/puppetmaster.README.debian +17 -0
- data/ext/debian/puppetmaster.default +14 -0
- data/ext/debian/puppetmaster.init +137 -0
- data/ext/debian/puppetmaster.lintian-overrides +3 -0
- data/ext/debian/puppetmaster.postinst +20 -0
- data/ext/debian/puppetmaster.postrm +5 -0
- data/ext/debian/puppetmaster.preinst +22 -0
- data/ext/debian/rules +132 -0
- data/ext/debian/source/format +1 -0
- data/ext/debian/source/options +1 -0
- data/ext/debian/vim-puppet.README.Debian +13 -0
- data/ext/debian/vim-puppet.dirs +5 -0
- data/ext/debian/vim-puppet.yaml +7 -0
- data/ext/debian/watch +2 -0
- data/ext/freebsd/puppetd +26 -0
- data/ext/freebsd/puppetmasterd +26 -0
- data/ext/gentoo/conf.d/puppet +5 -0
- data/ext/gentoo/conf.d/puppetmaster +12 -0
- data/ext/gentoo/init.d/puppet +38 -0
- data/ext/gentoo/init.d/puppetmaster +51 -0
- data/ext/gentoo/puppet/fileserver.conf +41 -0
- data/ext/ips/puppet-agent +44 -0
- data/ext/ips/puppet-master +44 -0
- data/ext/ips/puppet.p5m.erb +12 -0
- data/ext/ips/puppetagent.xml +42 -0
- data/ext/ips/puppetmaster.xml +42 -0
- data/ext/ips/rules +19 -0
- data/ext/ips/transforms +34 -0
- data/ext/ldap/puppet.schema +24 -0
- data/ext/logcheck/puppet +23 -0
- data/{examples → ext}/nagios/check_puppet.rb +2 -2
- data/ext/osx/file_mapping.yaml +28 -0
- data/ext/osx/postflight.erb +109 -0
- data/ext/osx/preflight.erb +52 -0
- data/ext/osx/prototype.plist.erb +38 -0
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -15
- data/ext/redhat/fileserver.conf +41 -0
- data/ext/redhat/logrotate +21 -0
- data/ext/redhat/puppet.spec.erb +841 -0
- data/ext/redhat/server.init +128 -0
- data/ext/redhat/server.sysconfig +13 -0
- data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
- data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
- data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
- data/ext/solaris/pkginfo +6 -0
- data/ext/solaris/smf/puppetd.xml +77 -0
- data/ext/solaris/smf/puppetmasterd.xml +77 -0
- data/ext/solaris/smf/svc-puppetd +71 -0
- data/ext/solaris/smf/svc-puppetmasterd +67 -0
- data/ext/suse/puppet.spec +310 -0
- data/ext/suse/server.init +173 -0
- data/ext/windows/service/daemon.rb +6 -5
- data/ext/yaml_nodes.rb +105 -0
- data/install.rb +21 -17
- data/lib/puppet/agent.rb +11 -47
- data/lib/puppet/application/agent.rb +16 -18
- data/lib/puppet/application/apply.rb +4 -24
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -10
- data/lib/puppet/application/lookup.rb +24 -74
- data/lib/puppet/application/resource.rb +16 -32
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -13
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/configurer.rb +86 -183
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +130 -244
- data/lib/puppet/environments.rb +82 -146
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/generate.rb +0 -2
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +0 -11
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/file_serving/configuration/parser.rb +3 -34
- data/lib/puppet/file_serving/configuration.rb +0 -8
- data/lib/puppet/file_serving/fileset.rb +2 -14
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +0 -3
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +8 -10
- data/lib/puppet/file_system/jruby.rb +1 -1
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +6 -8
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/forge/repository.rb +0 -1
- 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 +0 -8
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +5 -13
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/next.rb +1 -18
- data/lib/puppet/functions/partition.rb +4 -12
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +0 -1
- data/lib/puppet/functions/tree_each.rb +10 -7
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +2 -17
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/functions/versioncmp.rb +2 -6
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/generate/type.rb +0 -9
- data/lib/puppet/http/client.rb +167 -137
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -15
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -17
- data/lib/puppet/http/resolver/server_list.rb +10 -25
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -144
- data/lib/puppet/http/service/file_server.rb +19 -29
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/indirector/catalog/compiler.rb +6 -25
- data/lib/puppet/indirector/catalog/rest.rb +2 -5
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/resource/ral.rb +1 -6
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/terminus.rb +0 -4
- data/lib/puppet/interface/documentation.rb +0 -1
- data/lib/puppet/module/plan.rb +1 -0
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -56
- 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/applications.rb +0 -1
- data/lib/puppet/module_tool/errors/shared.rb +2 -34
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +0 -67
- data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node/environment.rb +11 -10
- data/lib/puppet/node.rb +2 -31
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +2 -3
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +1 -70
- data/lib/puppet/parser/scope.rb +0 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +5 -7
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -291
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +1 -47
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/code_merger.rb +4 -4
- data/lib/puppet/pops/parser/egrammar.ra +0 -58
- data/lib/puppet/pops/parser/eparser.rb +1685 -1896
- data/lib/puppet/pops/parser/lexer2.rb +91 -92
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/parser/slurp_support.rb +0 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_formatter.rb +3 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +1 -2
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +4 -16
- data/lib/puppet/provider/group/groupadd.rb +10 -18
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +2 -34
- data/lib/puppet/provider/package/aptitude.rb +0 -6
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/nim.rb +6 -11
- data/lib/puppet/provider/package/pip.rb +3 -16
- data/lib/puppet/provider/package/pkg.rb +2 -23
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
- data/lib/puppet/provider/package/windows/package.rb +1 -2
- data/lib/puppet/provider/package/windows.rb +1 -14
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +0 -3
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +0 -2
- data/lib/puppet/provider/service/init.rb +9 -10
- 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 +194 -76
- data/lib/puppet/provider/service/systemd.rb +6 -16
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +3 -46
- data/lib/puppet/provider/user/directoryservice.rb +11 -39
- data/lib/puppet/provider/user/useradd.rb +24 -134
- data/lib/puppet/provider.rb +1 -14
- data/lib/puppet/reference/configuration.rb +8 -7
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/catalog.rb +2 -15
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -49
- data/lib/puppet/resource.rb +6 -127
- data/lib/puppet/runtime.rb +2 -13
- data/lib/puppet/settings/environment_conf.rb +0 -1
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/settings.rb +82 -98
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +36 -75
- data/lib/puppet/ssl/state_machine.rb +20 -14
- data/lib/puppet/ssl/verifier.rb +2 -6
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/test/test_helper.rb +2 -7
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +1 -21
- data/lib/puppet/transaction/report.rb +3 -19
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/type/exec.rb +6 -36
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/data_sync.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -6
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/file.rb +12 -32
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/group.rb +1 -0
- data/lib/puppet/type/package.rb +8 -16
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +41 -26
- data/lib/puppet/type/tidy.rb +3 -22
- data/lib/puppet/type/user.rb +13 -35
- data/lib/puppet/type.rb +1 -77
- data/lib/puppet/util/autoload.rb +8 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/json.rb +0 -20
- data/lib/puppet/util/log.rb +4 -8
- data/lib/puppet/util/logging.rb +25 -1
- data/lib/puppet/util/monkey_patches.rb +2 -59
- data/lib/puppet/util/package.rb +16 -25
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/posix.rb +5 -54
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/selinux.rb +4 -30
- data/lib/puppet/util/suidmanager.rb +2 -1
- data/lib/puppet/util/symbolic_file_mode.rb +17 -29
- data/lib/puppet/util/tagging.rb +0 -1
- data/lib/puppet/util/windows/adsi.rb +0 -46
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/principal.rb +2 -9
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +11 -457
- data/lib/puppet/util/windows/sid.rb +2 -6
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +2 -0
- data/lib/puppet/util/windows.rb +3 -11
- data/lib/puppet/util/yaml.rb +1 -42
- data/lib/puppet/util.rb +5 -5
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet.rb +34 -27
- data/locales/puppet.pot +9633 -5
- data/man/man5/puppet.conf.5 +286 -401
- data/man/man8/puppet-agent.8 +2 -5
- data/man/man8/puppet-apply.8 +2 -2
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +8 -51
- data/man/man8/puppet-filebucket.8 +4 -4
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +6 -9
- data/man/man8/puppet-module.8 +3 -60
- 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 +2 -2
- data/man/man8/puppet-ssl.8 +1 -5
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
- data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/ca.pem +35 -57
- data/spec/fixtures/ssl/crl.pem +18 -28
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +24 -33
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +58 -108
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
- data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
- data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
- data/spec/fixtures/ssl/intermediate.pem +36 -57
- data/spec/fixtures/ssl/pluto-key.pem +57 -107
- data/spec/fixtures/ssl/pluto.pem +30 -52
- data/spec/fixtures/ssl/request-key.pem +57 -107
- data/spec/fixtures/ssl/request.pem +26 -47
- data/spec/fixtures/ssl/revoked-key.pem +57 -107
- data/spec/fixtures/ssl/revoked.pem +30 -52
- data/spec/fixtures/ssl/signed-key.pem +57 -107
- data/spec/fixtures/ssl/signed.pem +30 -52
- data/spec/fixtures/ssl/tampered-cert.pem +30 -52
- data/spec/fixtures/ssl/tampered-csr.pem +26 -47
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
- data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-ca.pem +33 -55
- data/spec/fixtures/unit/forge/bacula.json +1 -1
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
- data/spec/integration/application/agent_spec.rb +50 -406
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -32
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/lookup_spec.rb +50 -81
- data/spec/integration/application/module_spec.rb +0 -21
- data/spec/integration/application/plugin_spec.rb +24 -2
- data/spec/integration/configurer_spec.rb +2 -18
- data/spec/integration/defaults_spec.rb +14 -3
- data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
- data/spec/integration/http/client_spec.rb +4 -63
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
- data/spec/integration/indirector/facts/facter_spec.rb +39 -93
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -47
- data/spec/integration/resource/type_collection_spec.rb +6 -2
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +9 -4
- data/spec/integration/type/exec_spec.rb +45 -70
- data/spec/integration/type/file_spec.rb +7 -6
- 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 +1 -21
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/principal_spec.rb +0 -21
- data/spec/integration/util/windows/process_spec.rb +9 -1
- data/spec/integration/util/windows/registry_spec.rb +10 -6
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/puppet/test_ca.rb +2 -7
- data/spec/lib/puppet_spec/https.rb +1 -1
- data/spec/lib/puppet_spec/modules.rb +2 -13
- data/spec/lib/puppet_spec/puppetserver.rb +3 -55
- data/spec/lib/puppet_spec/settings.rb +1 -1
- data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
- data/spec/spec_helper.rb +17 -13
- data/spec/unit/agent_spec.rb +8 -38
- data/spec/unit/application/agent_spec.rb +19 -33
- data/spec/unit/application/apply_spec.rb +56 -76
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/lookup_spec.rb +10 -131
- data/spec/unit/application/resource_spec.rb +0 -29
- data/spec/unit/application/ssl_spec.rb +2 -25
- data/spec/unit/application_spec.rb +9 -51
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -8
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +68 -327
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +2 -8
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/daemon_spec.rb +11 -2
- data/spec/unit/defaults_spec.rb +68 -55
- data/spec/unit/environments_spec.rb +68 -408
- data/spec/unit/face/generate_spec.rb +0 -64
- data/spec/unit/face/node_spec.rb +11 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
- data/spec/unit/file_serving/configuration_spec.rb +10 -26
- data/spec/unit/file_serving/fileset_spec.rb +0 -60
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/file_system_spec.rb +4 -56
- data/spec/unit/forge/module_release_spec.rb +10 -5
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +0 -10
- data/spec/unit/functions/logging_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +0 -64
- data/spec/unit/functions/unwrap_spec.rb +0 -8
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/functions/versioncmp_spec.rb +4 -40
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +0 -12
- data/spec/unit/http/client_spec.rb +8 -84
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +0 -193
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
- data/spec/unit/indirector/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +3 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/indirection_spec.rb +15 -18
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/resource/ral_spec.rb +75 -40
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/store_configs_spec.rb +7 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/action_spec.rb +9 -0
- data/spec/unit/module_spec.rb +1 -15
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
- data/spec/unit/network/authconfig_spec.rb +2 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +4 -51
- data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -60
- data/spec/unit/parser/compiler_spec.rb +19 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
- data/spec/unit/parser/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +5 -16
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -51
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/property_spec.rb +0 -1
- data/spec/unit/provider/group/groupadd_spec.rb +2 -5
- data/spec/unit/provider/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +23 -28
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +5 -6
- data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +33 -1
- data/spec/unit/provider/package/nim_spec.rb +0 -42
- data/spec/unit/provider/package/pacman_spec.rb +12 -18
- 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 +12 -44
- data/spec/unit/provider/package/pkg_spec.rb +4 -29
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
- data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/gentoo_spec.rb +5 -6
- data/spec/unit/provider/service/init_spec.rb +9 -16
- data/spec/unit/provider/service/launchd_spec.rb +0 -11
- data/spec/unit/provider/service/openwrt_spec.rb +29 -23
- data/spec/unit/provider/service/redhat_spec.rb +2 -3
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/systemd_spec.rb +9 -54
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -105
- data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +5 -114
- data/spec/unit/provider_spec.rb +12 -22
- data/spec/unit/puppet_spec.rb +4 -12
- data/spec/unit/resource/catalog_spec.rb +2 -15
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +12 -125
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +79 -110
- data/spec/unit/ssl/base_spec.rb +37 -3
- data/spec/unit/ssl/certificate_request_spec.rb +21 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
- data/spec/unit/ssl/state_machine_spec.rb +5 -21
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
- data/spec/unit/transaction/event_manager_spec.rb +11 -14
- data/spec/unit/transaction/persistence_spec.rb +0 -51
- data/spec/unit/transaction/report_spec.rb +0 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +55 -96
- data/spec/unit/type/exec_spec.rb +29 -76
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +2 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/selinux_spec.rb +5 -3
- data/spec/unit/type/file/source_spec.rb +4 -5
- data/spec/unit/type/file_spec.rb +18 -6
- data/spec/unit/type/group_spec.rb +6 -13
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +189 -87
- data/spec/unit/type/tidy_spec.rb +8 -24
- data/spec/unit/type_spec.rb +24 -4
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +1 -5
- data/spec/unit/util/backups_spec.rb +2 -3
- data/spec/unit/util/execution_spec.rb +11 -44
- data/spec/unit/util/inifile_spec.rb +14 -6
- data/spec/unit/util/log_spec.rb +7 -8
- data/spec/unit/util/logging_spec.rb +3 -5
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +15 -363
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/selinux_spec.rb +68 -163
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- data/spec/unit/util/windows/sid_spec.rb +0 -41
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +13 -92
- data/spec/unit/util_spec.rb +6 -31
- data/tasks/generate_cert_fixtures.rake +7 -17
- data/tasks/parallel.rake +3 -3
- metadata +138 -233
- data/conf/auth.conf +0 -150
- data/ext/README.md +0 -13
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/facter_impl.rb +0 -96
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.rb +0 -24
- data/lib/puppet/ffi/posix.rb +0 -10
- data/lib/puppet/file_serving/mount/scripts.rb +0 -24
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/settings/alias_setting.rb +0 -37
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/fact_dif.rb +0 -81
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
- data/spec/fixtures/ssl/oid-key.pem +0 -117
- data/spec/fixtures/ssl/oid.pem +0 -69
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
- data/spec/integration/application/resource_spec.rb +0 -68
- data/spec/integration/application/ssl_spec.rb +0 -20
- data/spec/integration/l10n/compiler_spec.rb +0 -37
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/shared_contexts/l10n.rb +0 -32
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/facter_impl_spec.rb +0 -31
- data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -78
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -407
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/json_spec.rb +0 -126
- data/spec/unit/util/ssl_spec.rb +0 -91
- data/spec/unit/util/windows_spec.rb +0 -23
@@ -1,19 +1,15 @@
|
|
1
1
|
require 'puppet/network/http/connection'
|
2
|
-
require 'puppet/network/http/connection_adapter'
|
3
|
-
require 'puppet/util/platform'
|
4
2
|
|
5
3
|
module Puppet::Network; end
|
6
4
|
|
7
|
-
# This module
|
8
|
-
# {Puppet::Network::HTTP::Connection} instance. The pool may return a new
|
9
|
-
# connection or a persistent cached connection, depending on the underlying
|
10
|
-
# pool implementation in use.
|
5
|
+
# This module is deprecated.
|
11
6
|
#
|
12
7
|
# @api public
|
8
|
+
# @deprecated Use {Puppet::HTTP::Client} instead.
|
13
9
|
#
|
14
10
|
module Puppet::Network::HttpPool
|
15
11
|
|
16
|
-
@http_client_class = Puppet::Network::HTTP::
|
12
|
+
@http_client_class = Puppet::Network::HTTP::Connection
|
17
13
|
|
18
14
|
def self.http_client_class
|
19
15
|
@http_client_class
|
@@ -30,37 +26,20 @@ module Puppet::Network::HttpPool
|
|
30
26
|
# @param verify_peer [Boolean] Whether to verify the peer credentials, if possible. Verification will not take place if the CA certificate is missing.
|
31
27
|
# @return [Puppet::Network::HTTP::Connection]
|
32
28
|
#
|
33
|
-
# @deprecated Use {
|
29
|
+
# @deprecated Use {Puppet.runtime[:http]} instead.
|
34
30
|
# @api public
|
35
31
|
#
|
36
32
|
def self.http_instance(host, port, use_ssl = true, verify_peer = true)
|
37
|
-
|
38
|
-
Puppet::SSL::Validator.default_validator()
|
39
|
-
else
|
40
|
-
Puppet::SSL::Validator.no_validator()
|
41
|
-
end
|
33
|
+
Puppet.warn_once('deprecations', self, "The method 'Puppet::Network::HttpPool.http_instance' is deprecated. Use Puppet.runtime[:http] instead")
|
42
34
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
# @param host [String] the DNS name to connect to
|
52
|
-
# @param port [Integer] the port to connect to
|
53
|
-
# @param verifier [#setup_connection, #peer_certs, #verify_errors] An object that will setup the appropriate
|
54
|
-
# verification on a Net::HTTP instance and report any errors and the certificates used.
|
55
|
-
# @return [Puppet::Network::HTTP::Connection]
|
56
|
-
#
|
57
|
-
# @deprecated Use {#http_connection} instead.
|
58
|
-
# @api public
|
59
|
-
#
|
60
|
-
def self.http_ssl_instance(host, port, verifier = Puppet::SSL::Validator.default_validator())
|
61
|
-
http_client_class.new(host, port,
|
62
|
-
:use_ssl => true,
|
63
|
-
:verify => verifier)
|
35
|
+
if verify_peer
|
36
|
+
verifier = Puppet::SSL::Verifier.new(host, nil)
|
37
|
+
http_client_class.new(host, port, use_ssl: use_ssl, verifier: verifier)
|
38
|
+
else
|
39
|
+
ssl = Puppet::SSL::SSLProvider.new
|
40
|
+
verifier = Puppet::SSL::Verifier.new(host, ssl.create_insecure_context)
|
41
|
+
http_client_class.new(host, port, use_ssl: use_ssl, verifier: verifier)
|
42
|
+
end
|
64
43
|
end
|
65
44
|
|
66
45
|
# Retrieve a connection for the given host and port.
|
@@ -72,9 +51,12 @@ module Puppet::Network::HttpPool
|
|
72
51
|
# when making HTTPS connections. Required when `use_ssl` is `true`.
|
73
52
|
# @return [Puppet::Network::HTTP::Connection]
|
74
53
|
#
|
54
|
+
# @deprecated Use {Puppet.runtime[:http]} instead.
|
75
55
|
# @api public
|
76
56
|
#
|
77
57
|
def self.connection(host, port, use_ssl: true, ssl_context: nil)
|
58
|
+
Puppet.warn_once('deprecations', self, "The method 'Puppet::Network::HttpPool.connection' is deprecated. Use Puppet.runtime[:http] instead")
|
59
|
+
|
78
60
|
if use_ssl
|
79
61
|
unless ssl_context
|
80
62
|
# TRANSLATORS 'ssl_context' is an argument and should not be translated
|
@@ -305,9 +305,7 @@ class Puppet::Node::Environment
|
|
305
305
|
{}
|
306
306
|
end
|
307
307
|
modulepath.each do |path|
|
308
|
-
|
309
|
-
Puppet::FileSystem.basename_string(p)
|
310
|
-
end.each do |name|
|
308
|
+
Dir.entries(path).each do |name|
|
311
309
|
next unless Puppet::Module.is_module_directory?(name, path)
|
312
310
|
warn_about_mistaken_path(path, name)
|
313
311
|
if not seen_modules[name]
|
@@ -352,6 +350,9 @@ class Puppet::Node::Environment
|
|
352
350
|
|
353
351
|
# Modules broken out by directory in the modulepath
|
354
352
|
#
|
353
|
+
# @note This method _changes_ the current working directory while enumerating
|
354
|
+
# the modules. This seems rather dangerous.
|
355
|
+
#
|
355
356
|
# @api public
|
356
357
|
#
|
357
358
|
# @return [Hash<String, Array<Puppet::Module>>] A hash whose keys are file
|
@@ -360,13 +361,13 @@ class Puppet::Node::Environment
|
|
360
361
|
modules_by_path = {}
|
361
362
|
modulepath.each do |path|
|
362
363
|
if Puppet::FileSystem.exist?(path)
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
364
|
+
Dir.chdir(path) do
|
365
|
+
module_names = Dir.entries(path).select do |name|
|
366
|
+
Puppet::Module.is_module_directory?(name, path)
|
367
|
+
end
|
368
|
+
modules_by_path[path] = module_names.sort.map do |name|
|
369
|
+
Puppet::Module.new(name, File.join(path, name), self)
|
370
|
+
end
|
370
371
|
end
|
371
372
|
else
|
372
373
|
modules_by_path[path] = []
|
data/lib/puppet/node.rb
CHANGED
@@ -89,7 +89,7 @@ class Puppet::Node
|
|
89
89
|
unless @environment.nil?
|
90
90
|
# always set the environment parameter. It becomes top scope $environment for a manifest during catalog compilation.
|
91
91
|
@parameters[ENVIRONMENT] = @environment.name.to_s
|
92
|
-
self.environment_name = @environment.name
|
92
|
+
self.environment_name = @environment.name if instance_variable_defined?(:@environment_name)
|
93
93
|
end
|
94
94
|
@environment
|
95
95
|
end
|
@@ -183,36 +183,7 @@ class Puppet::Node
|
|
183
183
|
# Calculate the list of names we might use for looking
|
184
184
|
# up our node. This is only used for AST nodes.
|
185
185
|
def names
|
186
|
-
|
187
|
-
|
188
|
-
names = []
|
189
|
-
|
190
|
-
names += split_name(name) if name.include?(".")
|
191
|
-
|
192
|
-
# First, get the fqdn
|
193
|
-
fqdn = parameters["fqdn"]
|
194
|
-
unless fqdn
|
195
|
-
if parameters["hostname"] and parameters["domain"]
|
196
|
-
fqdn = parameters["hostname"] + "." + parameters["domain"]
|
197
|
-
else
|
198
|
-
Puppet.warning _("Host is missing hostname and/or domain: %{name}") % { name: name }
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
# Now that we (might) have the fqdn, add each piece to the name
|
203
|
-
# list to search, in order of longest to shortest.
|
204
|
-
names += split_name(fqdn) if fqdn
|
205
|
-
|
206
|
-
# And make sure the node name is first, since that's the most
|
207
|
-
# likely usage.
|
208
|
-
# The name is usually the Certificate CN, but it can be
|
209
|
-
# set to the 'facter' hostname instead.
|
210
|
-
if Puppet[:node_name] == 'cert'
|
211
|
-
names.unshift name
|
212
|
-
else
|
213
|
-
names.unshift parameters["hostname"]
|
214
|
-
end
|
215
|
-
names.uniq
|
186
|
+
@names ||= [name]
|
216
187
|
end
|
217
188
|
|
218
189
|
def split_name(name)
|
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
# @api public
|
6
6
|
#
|
7
|
+
module Puppet
|
8
|
+
module Pal
|
7
9
|
class JsonCatalogEncoder
|
8
10
|
# Is the resulting Json pretty printed or not.
|
9
11
|
attr_reader :pretty
|
@@ -65,3 +67,5 @@ class JsonCatalogEncoder
|
|
65
67
|
end
|
66
68
|
private :possibly_filtered_catalog
|
67
69
|
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/puppet/pal/pal_impl.rb
CHANGED
@@ -5,6 +5,7 @@ require 'puppet'
|
|
5
5
|
require 'puppet/parser/script_compiler'
|
6
6
|
require 'puppet/parser/catalog_compiler'
|
7
7
|
|
8
|
+
module Puppet
|
8
9
|
# This is the main entry point for "Puppet As a Library" PAL.
|
9
10
|
# This file should be required instead of "puppet"
|
10
11
|
# Initially, this will require ALL of puppet - over time this will change as the monolithical "puppet" is broken up
|
@@ -24,7 +25,7 @@ require 'puppet/parser/catalog_compiler'
|
|
24
25
|
# end
|
25
26
|
# # The result is what 'mymodule::myfunction' returns
|
26
27
|
#
|
27
|
-
|
28
|
+
# @api public
|
28
29
|
module Pal
|
29
30
|
|
30
31
|
# Defines a context in which multiple operations in an env with a script compiler can be performed in a given block.
|
@@ -274,6 +275,7 @@ module Pal
|
|
274
275
|
# @return [Object] returns what the given block returns
|
275
276
|
# @yieldparam [Puppet::Pal] context, a context that responds to Puppet::Pal methods
|
276
277
|
#
|
278
|
+
# @api public
|
277
279
|
def self.in_environment(env_name,
|
278
280
|
modulepath: nil,
|
279
281
|
pre_modulepath: [],
|
@@ -413,7 +415,7 @@ module Pal
|
|
413
415
|
|
414
416
|
# Puppet requires Facter, which initializes its lookup paths. Reset Facter to
|
415
417
|
# pickup the new $LOAD_PATH.
|
416
|
-
|
418
|
+
Facter.reset
|
417
419
|
|
418
420
|
node = Puppet.lookup(:pal_current_node)
|
419
421
|
pal_facts = Puppet.lookup(:pal_facts)
|
@@ -50,9 +50,8 @@ class Puppet::Parser::AST::HostName < Puppet::Parser::AST::Leaf
|
|
50
50
|
end
|
51
51
|
|
52
52
|
class Puppet::Parser::AST::Regex < Puppet::Parser::AST::Leaf
|
53
|
-
def initialize(
|
54
|
-
super(
|
55
|
-
|
53
|
+
def initialize(hash)
|
54
|
+
super(**hash)
|
56
55
|
# transform value from hash options unless it is already a regular expression
|
57
56
|
@value = Regexp.new(@value) unless @value.is_a?(Regexp)
|
58
57
|
end
|
@@ -92,14 +92,8 @@ class Puppet::Parser::AST::PopsBridge
|
|
92
92
|
instantiate_HostClassDefinition(d, modname)
|
93
93
|
when Puppet::Pops::Model::ResourceTypeDefinition
|
94
94
|
instantiate_ResourceTypeDefinition(d, modname)
|
95
|
-
when Puppet::Pops::Model::CapabilityMapping
|
96
|
-
instantiate_CapabilityMapping(d, modname)
|
97
95
|
when Puppet::Pops::Model::NodeDefinition
|
98
96
|
instantiate_NodeDefinition(d, modname)
|
99
|
-
when Puppet::Pops::Model::SiteDefinition
|
100
|
-
instantiate_SiteDefinition(d, modname)
|
101
|
-
when Puppet::Pops::Model::Application
|
102
|
-
instantiate_ApplicationDefinition(d, modname)
|
103
97
|
else
|
104
98
|
loaders = Puppet::Pops::Loaders.loaders
|
105
99
|
loaders.instantiate_definition(d, loaders.find_loader(modname))
|
@@ -214,27 +208,6 @@ class Puppet::Parser::AST::PopsBridge
|
|
214
208
|
instance
|
215
209
|
end
|
216
210
|
|
217
|
-
def instantiate_CapabilityMapping(o, modname)
|
218
|
-
# Use an intermediate 'capability_mapping' type to pass this info to the compiler where the
|
219
|
-
# actual mapping takes place
|
220
|
-
Puppet::Resource::Type.new(:capability_mapping, "#{o.component} #{o.kind} #{o.capability}", { :arguments => {
|
221
|
-
'component' => o.component,
|
222
|
-
'kind' => o.kind,
|
223
|
-
'blueprint' => {
|
224
|
-
:capability => o.capability,
|
225
|
-
:mappings => o.mappings.reduce({}) do |memo, mapping|
|
226
|
-
memo[mapping.attribute_name] =
|
227
|
-
Expression.new(:value => mapping.value_expr)
|
228
|
-
memo
|
229
|
-
end
|
230
|
-
}}})
|
231
|
-
end
|
232
|
-
|
233
|
-
def instantiate_ApplicationDefinition(o, modname)
|
234
|
-
args = args_from_definition(o, modname)
|
235
|
-
Puppet::Resource::Type.new(:application, o.name, @context.merge(args))
|
236
|
-
end
|
237
|
-
|
238
211
|
def instantiate_NodeDefinition(o, modname)
|
239
212
|
args = { :module_name => modname }
|
240
213
|
|
@@ -253,17 +226,6 @@ class Puppet::Parser::AST::PopsBridge
|
|
253
226
|
end
|
254
227
|
end
|
255
228
|
|
256
|
-
def instantiate_SiteDefinition(o, modname)
|
257
|
-
args = { :module_name => modname }
|
258
|
-
|
259
|
-
unless is_nop?(o.body)
|
260
|
-
args[:code] = Expression.new(:value => o.body)
|
261
|
-
end
|
262
|
-
|
263
|
-
args = @ast_transformer.merge_location(args, o)
|
264
|
-
Puppet::Resource::Type.new(:site, 'site', @context.merge(args))
|
265
|
-
end
|
266
|
-
|
267
229
|
def code()
|
268
230
|
Expression.new(:value => @value)
|
269
231
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
class Puppet::Parser::Compiler
|
2
|
-
# Validator that asserts
|
3
|
-
# to capability resources.
|
2
|
+
# Validator that asserts relationship metaparameters refer to valid resources
|
4
3
|
class CatalogValidator::RelationshipValidator < CatalogValidator
|
5
4
|
def validate
|
6
5
|
catalog.resources.each do |resource|
|
@@ -16,48 +15,24 @@ class Puppet::Parser::Compiler
|
|
16
15
|
|
17
16
|
private
|
18
17
|
|
19
|
-
# A hash lookup is 6x avg times faster than find among 3 values.
|
20
|
-
CAPABILITY_ACCEPTED_METAPARAMS = {:require => true, :consume => true, :export => true}.freeze
|
21
|
-
|
22
18
|
def validate_relationship(param)
|
23
|
-
#
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
19
|
+
# the referenced resource must exist
|
20
|
+
refs = param.value.is_a?(Array) ? param.value.flatten : [param.value]
|
21
|
+
refs.each do |r|
|
22
|
+
next if r.nil? || r == :undef
|
23
|
+
res = r.to_s
|
24
|
+
begin
|
25
|
+
found = catalog.resource(res)
|
26
|
+
rescue ArgumentError => e
|
27
|
+
# Raise again but with file and line information
|
28
|
+
raise CatalogValidationError.new(e.message, param.file, param.line)
|
29
29
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
refs.each do |r|
|
34
|
-
next if r.nil? || r == :undef
|
35
|
-
res = r.to_s
|
36
|
-
begin
|
37
|
-
found = catalog.resource(res)
|
38
|
-
rescue ArgumentError => e
|
39
|
-
# Raise again but with file and line information
|
40
|
-
raise CatalogValidationError.new(e.message, param.file, param.line)
|
41
|
-
end
|
42
|
-
unless found
|
43
|
-
msg = _("Could not find resource '%{res}' in parameter '%{param}'") % { res: res, param: param.name.to_s }
|
44
|
-
raise CatalogValidationError.new(msg, param.file, param.line)
|
45
|
-
end
|
30
|
+
unless found
|
31
|
+
msg = _("Could not find resource '%{res}' in parameter '%{param}'") % { res: res, param: param.name.to_s }
|
32
|
+
raise CatalogValidationError.new(msg, param.file, param.line)
|
46
33
|
end
|
47
34
|
end
|
48
35
|
end
|
49
|
-
|
50
|
-
def has_capability?(value)
|
51
|
-
case value
|
52
|
-
when Array
|
53
|
-
value.find { |v| has_capability?(v) }
|
54
|
-
when Puppet::Resource
|
55
|
-
rt = value.resource_type
|
56
|
-
!rt.nil? && rt.is_capability?
|
57
|
-
else
|
58
|
-
false
|
59
|
-
end
|
60
|
-
end
|
61
36
|
end
|
62
37
|
end
|
63
38
|
|
@@ -72,22 +72,6 @@ class Puppet::Parser::Compiler
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def add_resource(scope, resource)
|
75
|
-
type = resource.resource_type
|
76
|
-
if type.is_a?(Puppet::Resource::Type) && type.application?
|
77
|
-
@applications << resource
|
78
|
-
assert_app_in_site(scope, resource)
|
79
|
-
return
|
80
|
-
end
|
81
|
-
|
82
|
-
if @current_app
|
83
|
-
# We are in the process of pulling application components out that
|
84
|
-
# apply to this node
|
85
|
-
Puppet.notice "Check #{resource}"
|
86
|
-
return unless @current_components.any? do |comp|
|
87
|
-
comp.type == resource.type && comp.title == resource.title
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
75
|
@resources << resource
|
92
76
|
|
93
77
|
# Note that this will fail if the resource is not unique.
|
@@ -110,22 +94,6 @@ class Puppet::Parser::Compiler
|
|
110
94
|
end
|
111
95
|
end
|
112
96
|
|
113
|
-
def assert_app_in_site(scope, resource)
|
114
|
-
if resource.type == 'App'
|
115
|
-
if scope.resource
|
116
|
-
# directly contained in a Site
|
117
|
-
return if scope.resource.type == 'Site'
|
118
|
-
# contained in something that may be contained in Site
|
119
|
-
upstream = @catalog.upstream_from_vertex(scope.resource)
|
120
|
-
if upstream
|
121
|
-
return if upstream.keys.map(&:type).include?('Site')
|
122
|
-
end
|
123
|
-
end
|
124
|
-
#TRANSLATORS "Site" is a puppet keyword and should not be translated
|
125
|
-
raise ArgumentError, _("Application instances like '%{resource}' can only be contained within a Site") % { resource: resource }
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
97
|
# Store the fact that we've evaluated a class
|
130
98
|
def add_class(name)
|
131
99
|
@catalog.add_class(name) unless name == ""
|
@@ -160,22 +128,13 @@ class Puppet::Parser::Compiler
|
|
160
128
|
|
161
129
|
Puppet::Util::Profiler.profile(_("Compile: Created settings scope"), [:compiler, :create_settings_scope]) { create_settings_scope }
|
162
130
|
|
163
|
-
Puppet::Util::Profiler.profile(_("Compile: Evaluated capability mappings"), [:compiler, :evaluate_capability_mappings]) { evaluate_capability_mappings }
|
164
|
-
|
165
131
|
#TRANSLATORS "main" is a function name and should not be translated
|
166
132
|
Puppet::Util::Profiler.profile(_("Compile: Evaluated main"), [:compiler, :evaluate_main]) { evaluate_main }
|
167
133
|
|
168
|
-
Puppet::Util::Profiler.profile(_("Compile: Evaluated site"), [:compiler, :evaluate_site]) { evaluate_site }
|
169
|
-
|
170
134
|
Puppet::Util::Profiler.profile(_("Compile: Evaluated AST node"), [:compiler, :evaluate_ast_node]) { evaluate_ast_node }
|
171
135
|
|
172
136
|
Puppet::Util::Profiler.profile(_("Compile: Evaluated node classes"), [:compiler, :evaluate_node_classes]) { evaluate_node_classes }
|
173
137
|
|
174
|
-
Puppet::Util::Profiler.profile(_("Compile: Evaluated application instances"), [:compiler, :evaluate_applications]) { evaluate_applications }
|
175
|
-
|
176
|
-
# New capability mappings may have been defined when the site was evaluated
|
177
|
-
Puppet::Util::Profiler.profile(_("Compile: Evaluated site capability mappings"), [:compiler, :evaluate_capability_mappings]) { evaluate_capability_mappings }
|
178
|
-
|
179
138
|
Puppet::Util::Profiler.profile(_("Compile: Evaluated generators"), [:compiler, :evaluate_generators]) { evaluate_generators }
|
180
139
|
|
181
140
|
Puppet::Util::Profiler.profile(_("Compile: Validate Catalog pre-finish"), [:compiler, :validate_pre_finish]) do
|
@@ -184,8 +143,6 @@ class Puppet::Parser::Compiler
|
|
184
143
|
|
185
144
|
Puppet::Util::Profiler.profile(_("Compile: Finished catalog"), [:compiler, :finish_catalog]) { finish }
|
186
145
|
|
187
|
-
Puppet::Util::Profiler.profile(_("Compile: Prune"), [:compiler, :prune_catalog]) { prune_catalog }
|
188
|
-
|
189
146
|
fail_on_unevaluated
|
190
147
|
|
191
148
|
Puppet::Util::Profiler.profile(_("Compile: Validate Catalog final"), [:compiler, :validate_final]) do
|
@@ -243,112 +200,6 @@ class Puppet::Parser::Compiler
|
|
243
200
|
evaluate_classes(classes_without_params, @node_scope || topscope)
|
244
201
|
end
|
245
202
|
|
246
|
-
# Evaluates the site - the top container for an environment catalog
|
247
|
-
# The site contain behaves analogous to a node - for the environment catalog, node expressions are ignored
|
248
|
-
# as the result is cross node. The site expression serves as a container for everything that is across
|
249
|
-
# all nodes.
|
250
|
-
#
|
251
|
-
# @api private
|
252
|
-
#
|
253
|
-
def evaluate_site
|
254
|
-
# Has a site been defined? If not, do nothing but issue a warning.
|
255
|
-
#
|
256
|
-
site = environment.known_resource_types.find_site()
|
257
|
-
unless site
|
258
|
-
on_empty_site()
|
259
|
-
return
|
260
|
-
end
|
261
|
-
|
262
|
-
# Create a resource to model this site and add it to catalog
|
263
|
-
resource = site.ensure_in_catalog(topscope)
|
264
|
-
|
265
|
-
# The site sets node scope to be able to shadow what is in top scope
|
266
|
-
@node_scope = topscope.class_scope(site)
|
267
|
-
|
268
|
-
# Evaluates the logic contain in the site expression
|
269
|
-
resource.evaluate
|
270
|
-
end
|
271
|
-
|
272
|
-
# @api private
|
273
|
-
def on_empty_site
|
274
|
-
# do nothing
|
275
|
-
end
|
276
|
-
|
277
|
-
# Prunes the catalog by dropping all resources are contained under the Site (if a site expression is used).
|
278
|
-
# As a consequence all edges to/from dropped resources are also dropped.
|
279
|
-
# Once the pruning is performed, this compiler returns the pruned list when calling the #resources method.
|
280
|
-
# The pruning does not alter the order of resources in the resources list.
|
281
|
-
#
|
282
|
-
# @api private
|
283
|
-
def prune_catalog
|
284
|
-
prune_node_catalog
|
285
|
-
end
|
286
|
-
|
287
|
-
def prune_node_catalog
|
288
|
-
# Everything under Site[site] should be pruned as that is for the environment catalog, not a node
|
289
|
-
#
|
290
|
-
the_site_resource = @catalog.resource('Site', 'site')
|
291
|
-
|
292
|
-
if the_site_resource
|
293
|
-
# Get downstream vertexes returns a hash where the keys are the resources and values nesting level
|
294
|
-
to_be_removed = @catalog.downstream_from_vertex(the_site_resource).keys
|
295
|
-
|
296
|
-
# Drop the Site[site] resource if it has no content
|
297
|
-
if to_be_removed.empty?
|
298
|
-
to_be_removed << the_site_resource
|
299
|
-
end
|
300
|
-
else
|
301
|
-
to_be_removed = []
|
302
|
-
end
|
303
|
-
|
304
|
-
# keep_from_site is populated with any App resources.
|
305
|
-
application_resources = @resources.select {|r| r.type == 'App' }
|
306
|
-
# keep all applications plus what is directly referenced from applications
|
307
|
-
keep_from_site = application_resources
|
308
|
-
keep_from_site += application_resources.map {|app| @catalog.direct_dependents_of(app) }.flatten
|
309
|
-
|
310
|
-
to_be_removed -= keep_from_site
|
311
|
-
@catalog.remove_resource(*to_be_removed)
|
312
|
-
# set the pruned result
|
313
|
-
@resources = @catalog.resources
|
314
|
-
end
|
315
|
-
|
316
|
-
# @api private
|
317
|
-
def evaluate_applications
|
318
|
-
@applications.each do |app|
|
319
|
-
components = []
|
320
|
-
mapping = app.parameters[:nodes] ? app.parameters[:nodes].value : {}
|
321
|
-
raise Puppet::Error, _("Invalid node mapping in %{app}: Mapping must be a hash") % { app: app.ref } unless mapping.is_a?(Hash)
|
322
|
-
all_mapped = Set.new
|
323
|
-
mapping.each do |k,v|
|
324
|
-
raise Puppet::Error, _("Invalid node mapping in %{app}: Key %{k} is not a Node") % { app: app.ref, k: k } unless k.is_a?(Puppet::Resource) && k.type == 'Node'
|
325
|
-
v = [v] unless v.is_a?(Array)
|
326
|
-
v.each do |res|
|
327
|
-
raise Puppet::Error, _("Invalid node mapping in %{app}: Value %{res} is not a resource") % { app: app.ref, res: res } unless res.is_a?(Puppet::Resource)
|
328
|
-
raise Puppet::Error, _("Application %{app} maps component %{res} to multiple nodes") % { app: app.ref, res: res } if all_mapped.add?(res.ref).nil?
|
329
|
-
components << res if k.title == node.name
|
330
|
-
end
|
331
|
-
end
|
332
|
-
begin
|
333
|
-
@current_app = app
|
334
|
-
@current_components = components
|
335
|
-
unless @current_components.empty?
|
336
|
-
Puppet.notice "EVAL APP #{app} #{components.inspect}"
|
337
|
-
# Add the app itself since components mapped to the current node
|
338
|
-
# will have a containment edge for it
|
339
|
-
# @todo lutter 2015-01-28: the node mapping winds up in the
|
340
|
-
# catalog, but probably shouldn't
|
341
|
-
@catalog.add_resource(@current_app)
|
342
|
-
@current_app.evaluate
|
343
|
-
end
|
344
|
-
ensure
|
345
|
-
@current_app = nil
|
346
|
-
@current_components = nil
|
347
|
-
end
|
348
|
-
end
|
349
|
-
end
|
350
|
-
|
351
|
-
|
352
203
|
# If ast nodes are enabled, then see if we can find and evaluate one.
|
353
204
|
#
|
354
205
|
# @api private
|
@@ -391,12 +242,6 @@ class Puppet::Parser::Compiler
|
|
391
242
|
classes = classes.keys
|
392
243
|
end
|
393
244
|
|
394
|
-
unless @current_components.nil?
|
395
|
-
classes = classes.select do |title|
|
396
|
-
@current_components.any? { |comp| comp.class? && comp.title == title }
|
397
|
-
end
|
398
|
-
end
|
399
|
-
|
400
245
|
hostclasses = classes.collect do |name|
|
401
246
|
environment.known_resource_types.find_hostclass(name) or raise Puppet::Error, _("Could not find class %{name} for %{node}") % { name: name, node: node.name }
|
402
247
|
end
|
@@ -427,16 +272,6 @@ class Puppet::Parser::Compiler
|
|
427
272
|
|
428
273
|
def initialize(node, code_id: nil)
|
429
274
|
@node = sanitize_node(node)
|
430
|
-
# Array of resources representing all application instances we've found
|
431
|
-
@applications = []
|
432
|
-
# We use @current_app and @current_components to signal to the
|
433
|
-
# evaluator that we are in the middle of evaluating an
|
434
|
-
# application. They are set in evaluate_applications to the application
|
435
|
-
# instance, resp. to an array of the components of that application
|
436
|
-
# that is mapped to the current node. They are only non-nil when we are
|
437
|
-
# in the middle of executing evaluate_applications
|
438
|
-
@current_app = nil
|
439
|
-
@current_components = nil
|
440
275
|
@code_id = code_id
|
441
276
|
initvars
|
442
277
|
add_catalog_validators
|
@@ -481,39 +316,6 @@ class Puppet::Parser::Compiler
|
|
481
316
|
[already_included, newly_included]
|
482
317
|
end
|
483
318
|
|
484
|
-
def evaluate_capability_mappings
|
485
|
-
krt = environment.known_resource_types
|
486
|
-
krt.capability_mappings.each_value do |capability_mapping|
|
487
|
-
args = capability_mapping.arguments
|
488
|
-
component_ref = args['component']
|
489
|
-
kind = args['kind']
|
490
|
-
|
491
|
-
# That component_ref is either a QREF or a Class['literal'|QREF] is asserted during validation so no
|
492
|
-
# need to check that here
|
493
|
-
if component_ref.is_a?(Puppet::Pops::Model::QualifiedReference)
|
494
|
-
component_name = component_ref.cased_value
|
495
|
-
component_type = 'type'
|
496
|
-
component = krt.find_definition(component_name)
|
497
|
-
else
|
498
|
-
component_name = component_ref.keys[0].value
|
499
|
-
component_type = 'class'
|
500
|
-
component = krt.find_hostclass(component_name)
|
501
|
-
end
|
502
|
-
if component.nil?
|
503
|
-
raise Puppet::ParseError, _("Capability mapping error: %{kind} clause references nonexistent %{component_type} %{component_name}") %
|
504
|
-
{ kind: kind, component_type: component_type, component_name: component_name }
|
505
|
-
end
|
506
|
-
|
507
|
-
blueprint = args['blueprint']
|
508
|
-
if kind == 'produces'
|
509
|
-
component.add_produces(blueprint)
|
510
|
-
else
|
511
|
-
component.add_consumes(blueprint)
|
512
|
-
end
|
513
|
-
end
|
514
|
-
krt.capability_mappings.clear # No longer needed
|
515
|
-
end
|
516
|
-
|
517
319
|
# Evaluate our collections and return true if anything returned an object.
|
518
320
|
# The 'true' is used to continue a loop, so it's important.
|
519
321
|
def evaluate_collections
|
@@ -2,16 +2,13 @@ require 'digest/md5'
|
|
2
2
|
require 'digest/sha2'
|
3
3
|
|
4
4
|
Puppet::Parser::Functions::newfunction(:fqdn_rand, :arity => -2, :type => :rvalue, :doc =>
|
5
|
-
"Usage: `fqdn_rand(MAX, [SEED]
|
6
|
-
integer; SEED is optional and may be any number or string
|
7
|
-
and should be a boolean true or false.
|
5
|
+
"Usage: `fqdn_rand(MAX, [SEED])`. MAX is required and must be a positive
|
6
|
+
integer; SEED is optional and may be any number or string.
|
8
7
|
|
9
8
|
Generates a random Integer number greater than or equal to 0 and less than MAX,
|
10
9
|
combining the `$fqdn` fact and the value of SEED for repeatable randomness.
|
11
10
|
(That is, each node will get a different random number from this function, but
|
12
|
-
a given node's result will be the same every time unless its hostname changes.)
|
13
|
-
DOWNCASE is true, then the `fqdn` fact will be downcased when computing the value
|
14
|
-
so that the result is not sensitive to the case of the `fqdn` fact.
|
11
|
+
a given node's result will be the same every time unless its hostname changes.)
|
15
12
|
|
16
13
|
This function is usually used for spacing out runs of resource-intensive cron
|
17
14
|
tasks that run on many nodes, which could cause a thundering herd or degrade
|
@@ -20,12 +17,7 @@ Puppet::Parser::Functions::newfunction(:fqdn_rand, :arity => -2, :type => :rvalu
|
|
20
17
|
node. (For example, `fqdn_rand(30)`, `fqdn_rand(30, 'expensive job 1')`, and
|
21
18
|
`fqdn_rand(30, 'expensive job 2')` will produce totally different numbers.)") do |args|
|
22
19
|
max = args.shift.to_i
|
23
|
-
|
24
|
-
downcase = !!args.shift
|
25
|
-
|
26
|
-
fqdn = self['::fqdn']
|
27
|
-
fqdn = fqdn.downcase if downcase
|
28
|
-
|
20
|
+
|
29
21
|
# Puppet 5.4's fqdn_rand function produces a different value than earlier versions
|
30
22
|
# for the same set of inputs.
|
31
23
|
# This causes problems because the values are often written into service configuration files.
|
@@ -35,9 +27,9 @@ Puppet::Parser::Functions::newfunction(:fqdn_rand, :arity => -2, :type => :rvalu
|
|
35
27
|
# when running on a non-FIPS enabled platform and only using SHA256 on FIPS enabled
|
36
28
|
# platforms.
|
37
29
|
if Puppet::Util::Platform.fips_enabled?
|
38
|
-
seed = Digest::SHA256.hexdigest([fqdn,max,
|
30
|
+
seed = Digest::SHA256.hexdigest([self['::fqdn'],max,args].join(':')).hex
|
39
31
|
else
|
40
|
-
seed = Digest::MD5.hexdigest([fqdn,max,
|
32
|
+
seed = Digest::MD5.hexdigest([self['::fqdn'],max,args].join(':')).hex
|
41
33
|
end
|
42
34
|
|
43
35
|
Puppet::Util.deterministic_rand_int(seed,max)
|