puppet 6.25.0-x64-mingw32 → 7.0.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +3 -5
- data/Gemfile.lock +39 -51
- 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/application/agent.rb +4 -16
- 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/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 +0 -1
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/configurer.rb +87 -130
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +128 -226
- data/lib/puppet/environments.rb +82 -146
- data/lib/puppet/face/facts.rb +5 -103
- 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/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +1 -3
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +2 -4
- 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/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 +9 -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/generate/models/type/type.rb +4 -1
- data/lib/puppet/http/client.rb +164 -114
- 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 -12
- 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 +1 -30
- 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 +0 -69
- data/lib/puppet/parser/scope.rb +0 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -2
- 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 -3
- 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/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1691 -1883
- 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_data_converter.rb +6 -18
- 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 +1 -1
- 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 +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 +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 -34
- 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 +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -49
- data/lib/puppet/resource.rb +1 -89
- 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 +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- 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 -11
- data/lib/puppet/transaction/report.rb +3 -19
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/type/exec.rb +5 -35
- data/lib/puppet/type/file/checksum.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 +21 -38
- 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 -3
- data/lib/puppet/util/log.rb +2 -1
- data/lib/puppet/util/logging.rb +25 -1
- data/lib/puppet/util/monkey_patches.rb +0 -53
- 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 +9 -460
- 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 -8
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/util.rb +3 -4
- 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 +20 -25
- data/locales/puppet.pot +816 -1637
- data/man/man5/puppet.conf.5 +286 -382
- 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 +1 -1
- 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/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 +51 -271
- 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/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 +0 -12
- 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 -37
- 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/modules.rb +2 -13
- data/spec/lib/puppet_spec/puppetserver.rb +1 -16
- 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 +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- 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/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 +67 -202
- 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/defaults_spec.rb +68 -55
- data/spec/unit/environments_spec.rb +68 -408
- 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 +0 -22
- data/spec/unit/forge/module_release_spec.rb +7 -2
- 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/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +0 -12
- data/spec/unit/http/client_spec.rb +7 -8
- 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 -54
- 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 +11 -0
- 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 -59
- 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 -46
- 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 +1 -1
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/init_spec.rb +0 -1
- data/spec/unit/provider/service/launchd_spec.rb +0 -11
- data/spec/unit/provider/service/openwrt_spec.rb +1 -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 +1 -1
- 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 +10 -67
- 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 +2 -5
- data/spec/unit/ssl/state_machine_spec.rb +5 -20
- 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/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/user_spec.rb +0 -45
- 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 +0 -54
- data/spec/unit/util_spec.rb +6 -31
- data/tasks/generate_cert_fixtures.rake +3 -12
- data/tasks/parallel.rake +3 -3
- metadata +137 -288
- 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 -91
- 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 -64
- 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 -27
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- 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/ssl_spec.rb +0 -91
@@ -159,7 +159,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
159
159
|
end
|
160
160
|
|
161
161
|
def self.get_os_version
|
162
|
-
@os_version ||=
|
162
|
+
@os_version ||= Facter.value(:macosx_productversion_major)
|
163
163
|
end
|
164
164
|
|
165
165
|
# Use dscl to retrieve an array of hashes containing attributes about all
|
@@ -435,7 +435,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
435
435
|
['home', 'uid', 'gid', 'comment', 'shell'].each do |setter_method|
|
436
436
|
define_method("#{setter_method}=") do |value|
|
437
437
|
if @property_hash[setter_method.intern]
|
438
|
-
if %w(home uid).include?(setter_method)
|
438
|
+
if self.class.get_os_version.split('.').last.to_i >= 14 && %w(home uid).include?(setter_method)
|
439
439
|
raise Puppet::Error, "OS X version #{self.class.get_os_version} does not allow changing #{setter_method} using puppet"
|
440
440
|
end
|
441
441
|
begin
|
@@ -536,14 +536,6 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
536
536
|
if (shadow_hash_data.class == Hash) && (shadow_hash_data.has_key?('SALTED-SHA512'))
|
537
537
|
shadow_hash_data.delete('SALTED-SHA512')
|
538
538
|
end
|
539
|
-
|
540
|
-
# Starting with macOS 11 Big Sur, the AuthenticationAuthority field
|
541
|
-
# could be missing entirely and without it the managed user cannot log in
|
542
|
-
if needs_sha512_pbkdf2_authentication_authority_to_be_added?(users_plist)
|
543
|
-
Puppet.debug("Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user '#{@resource.name}'")
|
544
|
-
merge_attribute_with_dscl('Users', @resource.name, 'AuthenticationAuthority', ERB::Util.html_escape(SHA512_PBKDF2_AUTHENTICATION_AUTHORITY))
|
545
|
-
end
|
546
|
-
|
547
539
|
set_salted_pbkdf2(users_plist, shadow_hash_data, 'entropy', value)
|
548
540
|
end
|
549
541
|
end
|
@@ -570,17 +562,6 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
570
562
|
end
|
571
563
|
end
|
572
564
|
|
573
|
-
# This method will check if authentication_authority key of a user's plist
|
574
|
-
# needs SALTED_SHA512_PBKDF2 to be added. This is a valid case for macOS 11 (Big Sur)
|
575
|
-
# where users created with `dscl` started to have this field missing
|
576
|
-
def needs_sha512_pbkdf2_authentication_authority_to_be_added?(users_plist)
|
577
|
-
authority = users_plist['authentication_authority']
|
578
|
-
return false if Puppet::Util::Package.versioncmp(self.class.get_os_version, '11.0.0') < 0 && authority && authority.include?(SHA512_PBKDF2_AUTHENTICATION_AUTHORITY)
|
579
|
-
|
580
|
-
Puppet.debug("User '#{@resource.name}' is missing the 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash")
|
581
|
-
true
|
582
|
-
end
|
583
|
-
|
584
565
|
# This method will embed the binary plist data comprising the user's
|
585
566
|
# password hash (and Salt/Iterations value if the OS is 10.8 or greater)
|
586
567
|
# into the ShadowHashData key of the user's plist.
|
@@ -591,7 +572,11 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
591
572
|
else
|
592
573
|
users_plist['ShadowHashData'] = [binary_plist]
|
593
574
|
end
|
594
|
-
|
575
|
+
if Puppet::Util::Package.versioncmp(self.class.get_os_version, '10.15') < 0
|
576
|
+
write_users_plist_to_disk(users_plist)
|
577
|
+
else
|
578
|
+
write_and_import_shadow_hash_data(users_plist['ShadowHashData'].first)
|
579
|
+
end
|
595
580
|
end
|
596
581
|
|
597
582
|
# This method writes the ShadowHashData plist in a temporary file,
|
@@ -667,17 +652,9 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
667
652
|
set_shadow_hash_data(users_plist, binary_plist)
|
668
653
|
end
|
669
654
|
|
670
|
-
# This
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
File.open(filename, 'w') { |f| f.write(value)}
|
675
|
-
rescue Errno::EACCES => detail
|
676
|
-
raise Puppet::Error, "Could not write to file #{filename}: #{detail}", detail.backtrace
|
677
|
-
end
|
655
|
+
# This method will accept a plist in XML format, save it to disk, convert
|
656
|
+
# the plist to a binary format, and flush the dscl cache.
|
657
|
+
def write_users_plist_to_disk(users_plist)
|
658
|
+
Puppet::Util::Plist.write_plist_file(users_plist, "#{users_plist_dir}/#{@resource.name}.plist", :binary)
|
678
659
|
end
|
679
|
-
|
680
|
-
private
|
681
|
-
|
682
|
-
SHA512_PBKDF2_AUTHENTICATION_AUTHORITY = ';ShadowHash;HASHLIST:<SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2>'
|
683
660
|
end
|
@@ -7,12 +7,9 @@ require 'puppet/error'
|
|
7
7
|
Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameService::ObjectAdd do
|
8
8
|
desc "User management via `useradd` and its ilk. Note that you will need to
|
9
9
|
install Ruby's shadow password library (often known as `ruby-libshadow`)
|
10
|
-
if you wish to manage user passwords.
|
10
|
+
if you wish to manage user passwords."
|
11
11
|
|
12
|
-
|
13
|
-
`/usr/sbin/lgroupadd` and `/usr/sbin/luseradd`)."
|
14
|
-
|
15
|
-
commands :add => "useradd", :delete => "userdel", :modify => "usermod", :password => "chage", :chpasswd => "chpasswd"
|
12
|
+
commands :add => "useradd", :delete => "userdel", :modify => "usermod", :password => "chage"
|
16
13
|
|
17
14
|
options :home, :flag => "-d", :method => :dir
|
18
15
|
options :comment, :method => :gecos
|
@@ -24,13 +21,13 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
24
21
|
options :expiry, :method => :sp_expire,
|
25
22
|
:munge => proc { |value|
|
26
23
|
if value == :absent
|
27
|
-
if
|
24
|
+
if Facter.value(:operatingsystem)=='SLES' && Facter.value(:operatingsystemmajrelease) == "11"
|
28
25
|
-1
|
29
26
|
else
|
30
27
|
''
|
31
28
|
end
|
32
29
|
else
|
33
|
-
case
|
30
|
+
case Facter.value(:operatingsystem)
|
34
31
|
when 'Solaris'
|
35
32
|
# Solaris uses %m/%d/%Y for useradd/usermod
|
36
33
|
expiry_year, expiry_month, expiry_day = value.split('-')
|
@@ -62,47 +59,23 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
62
59
|
get(:uid)
|
63
60
|
end
|
64
61
|
|
65
|
-
def gid
|
66
|
-
return localgid if @resource.forcelocal?
|
67
|
-
get(:gid)
|
68
|
-
end
|
69
|
-
|
70
62
|
def comment
|
71
63
|
return localcomment if @resource.forcelocal?
|
72
64
|
get(:comment)
|
73
65
|
end
|
74
66
|
|
75
|
-
def shell
|
76
|
-
return localshell if @resource.forcelocal?
|
77
|
-
get(:shell)
|
78
|
-
end
|
79
|
-
|
80
|
-
def home
|
81
|
-
return localhome if @resource.forcelocal?
|
82
|
-
get(:home)
|
83
|
-
end
|
84
|
-
|
85
|
-
def groups
|
86
|
-
return localgroups if @resource.forcelocal?
|
87
|
-
super
|
88
|
-
end
|
89
|
-
|
90
67
|
def finduser(key, value)
|
91
|
-
passwd_file =
|
68
|
+
passwd_file = "/etc/passwd"
|
92
69
|
passwd_keys = [:account, :password, :uid, :gid, :gecos, :directory, :shell]
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
@users = []
|
100
|
-
Puppet::FileSystem.each_line(passwd_file) do |line|
|
101
|
-
user = line.chomp.split(':')
|
102
|
-
@users << Hash[passwd_keys.zip(user)]
|
70
|
+
index = passwd_keys.index(key)
|
71
|
+
@passwd_content ||= File.read(passwd_file)
|
72
|
+
@passwd_content.each_line do |line|
|
73
|
+
user = line.split(":")
|
74
|
+
if user[index] == value
|
75
|
+
return Hash[passwd_keys.zip(user)]
|
103
76
|
end
|
104
77
|
end
|
105
|
-
|
78
|
+
false
|
106
79
|
end
|
107
80
|
|
108
81
|
def local_username
|
@@ -115,98 +88,16 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
115
88
|
false
|
116
89
|
end
|
117
90
|
|
118
|
-
def localgid
|
119
|
-
user = finduser(:account, resource[:name])
|
120
|
-
if user
|
121
|
-
begin
|
122
|
-
return Integer(user[:gid])
|
123
|
-
rescue ArgumentError
|
124
|
-
Puppet.debug("Non-numeric GID found in /etc/passwd for user #{resource[:name]}")
|
125
|
-
return user[:gid]
|
126
|
-
end
|
127
|
-
end
|
128
|
-
false
|
129
|
-
end
|
130
|
-
|
131
91
|
def localcomment
|
132
92
|
user = finduser(:account, resource[:name])
|
133
93
|
user[:gecos]
|
134
94
|
end
|
135
95
|
|
136
|
-
def localshell
|
137
|
-
user = finduser(:account, resource[:name])
|
138
|
-
user[:shell]
|
139
|
-
end
|
140
|
-
|
141
|
-
def localhome
|
142
|
-
user = finduser(:account, resource[:name])
|
143
|
-
user[:directory]
|
144
|
-
end
|
145
|
-
|
146
|
-
def localgroups
|
147
|
-
@groups_of ||= {}
|
148
|
-
group_file = '/etc/group'
|
149
|
-
user = resource[:name]
|
150
|
-
|
151
|
-
return @groups_of[user] if @groups_of[user]
|
152
|
-
|
153
|
-
@groups_of[user] = []
|
154
|
-
|
155
|
-
unless Puppet::FileSystem.exist?(group_file)
|
156
|
-
raise Puppet::Error.new("Forcelocal set for user resource '#{user}', but #{group_file} does not exist")
|
157
|
-
end
|
158
|
-
|
159
|
-
Puppet::FileSystem.each_line(group_file) do |line|
|
160
|
-
data = line.chomp.split(':')
|
161
|
-
if !data.empty? && data.last.split(',').include?(user)
|
162
|
-
@groups_of[user] << data.first
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
@groups_of[user]
|
167
|
-
end
|
168
|
-
|
169
96
|
def shell=(value)
|
170
97
|
check_valid_shell
|
171
98
|
set(:shell, value)
|
172
99
|
end
|
173
100
|
|
174
|
-
def groups=(value)
|
175
|
-
set(:groups, value)
|
176
|
-
end
|
177
|
-
|
178
|
-
def password=(value)
|
179
|
-
user = @resource[:name]
|
180
|
-
tempfile = Tempfile.new('puppet', :encoding => Encoding::UTF_8)
|
181
|
-
begin
|
182
|
-
# Puppet execute does not support strings as input, only files.
|
183
|
-
# The password is expected to be in an encrypted format given -e is specified:
|
184
|
-
tempfile << "#{user}:#{value}\n"
|
185
|
-
tempfile.flush
|
186
|
-
|
187
|
-
# Options '-e' use encrypted password
|
188
|
-
# Must receive "user:enc_password" as input
|
189
|
-
# command, arguments = {:failonfail => true, :combine => true}
|
190
|
-
cmd = [command(:chpasswd), '-e']
|
191
|
-
execute_options = {
|
192
|
-
:failonfail => false,
|
193
|
-
:combine => true,
|
194
|
-
:stdinfile => tempfile.path,
|
195
|
-
:sensitive => has_sensitive_data?
|
196
|
-
}
|
197
|
-
output = execute(cmd, execute_options)
|
198
|
-
|
199
|
-
rescue => detail
|
200
|
-
tempfile.close
|
201
|
-
tempfile.delete
|
202
|
-
raise Puppet::Error, "Could not set password on #{@resource.class.name}[#{@resource.name}]: #{detail}", detail.backtrace
|
203
|
-
end
|
204
|
-
|
205
|
-
# chpasswd can return 1, even on success (at least on AIX 6.1); empty output
|
206
|
-
# indicates success
|
207
|
-
raise Puppet::ExecutionFailure, "chpasswd said #{output}" if output != ''
|
208
|
-
end
|
209
|
-
|
210
101
|
verify :gid, "GID must be an integer" do |value|
|
211
102
|
value.is_a? Integer
|
212
103
|
end
|
@@ -216,7 +107,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
216
107
|
end
|
217
108
|
|
218
109
|
has_features :manages_homedir, :allows_duplicates, :manages_expiry
|
219
|
-
has_features :system_users unless %w{HP-UX Solaris}.include?
|
110
|
+
has_features :system_users unless %w{HP-UX Solaris}.include? Facter.value(:operatingsystem)
|
220
111
|
|
221
112
|
has_features :manages_passwords, :manages_password_age if Puppet.features.libshadow?
|
222
113
|
has_features :manages_shell
|
@@ -251,8 +142,8 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
251
142
|
# libuser does not implement the -m flag
|
252
143
|
cmd << "-m" unless @resource.forcelocal?
|
253
144
|
else
|
254
|
-
osfamily =
|
255
|
-
osversion =
|
145
|
+
osfamily = Facter.value(:osfamily)
|
146
|
+
osversion = Facter.value(:operatingsystemmajrelease).to_i
|
256
147
|
# SLES 11 uses pwdutils instead of shadow, which does not have -M
|
257
148
|
# Solaris and OpenBSD use different useradd flavors
|
258
149
|
unless osfamily =~ /Solaris|OpenBSD/ || osfamily == 'Suse' && osversion <= 11
|
@@ -270,15 +161,13 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
270
161
|
end
|
271
162
|
end
|
272
163
|
|
273
|
-
# Add properties and flags but skipping password related properties due to
|
274
|
-
# security risks
|
275
164
|
def add_properties
|
276
165
|
cmd = []
|
277
166
|
# validproperties is a list of properties in undefined order
|
278
167
|
# sort them to have a predictable command line in tests
|
279
168
|
Puppet::Type.type(:user).validproperties.sort.each do |property|
|
280
169
|
value = get_value_for_property(property)
|
281
|
-
next if value.nil?
|
170
|
+
next if value.nil?
|
282
171
|
# the value needs to be quoted, mostly because -c might
|
283
172
|
# have spaces in it
|
284
173
|
cmd << flag(property) << munge(property, value)
|
@@ -350,7 +239,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
350
239
|
cmd = [command(:delete)]
|
351
240
|
end
|
352
241
|
# Solaris `userdel -r` will fail if the homedir does not exist.
|
353
|
-
if @resource.managehome? && (('Solaris' !=
|
242
|
+
if @resource.managehome? && (('Solaris' != Facter.value(:operatingsystem)) || Dir.exist?(Dir.home(@resource[:name])))
|
354
243
|
cmd << '-r'
|
355
244
|
end
|
356
245
|
cmd << @resource[:name]
|
@@ -388,12 +277,13 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
388
277
|
if @resource[:shell]
|
389
278
|
check_valid_shell
|
390
279
|
end
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
280
|
+
super
|
281
|
+
if @resource.forcelocal? && self.groups?
|
282
|
+
set(:groups, @resource[:groups])
|
283
|
+
end
|
284
|
+
if @resource.forcelocal? && @resource[:expiry]
|
285
|
+
set(:expiry, @resource[:expiry])
|
286
|
+
end
|
397
287
|
end
|
398
288
|
|
399
289
|
def groups?
|
data/lib/puppet/provider.rb
CHANGED
@@ -117,19 +117,6 @@ class Puppet::Provider
|
|
117
117
|
Puppet::Util::Execution.execpipe(*args, &block)
|
118
118
|
end
|
119
119
|
|
120
|
-
# Convenience methods - see class method with the same name.
|
121
|
-
# @return (see self.execfail)
|
122
|
-
# @deprecated
|
123
|
-
def execfail(*args)
|
124
|
-
Puppet::Util::Execution.execfail(*args)
|
125
|
-
end
|
126
|
-
|
127
|
-
# (see Puppet::Util::Execution.execfail)
|
128
|
-
# @deprecated
|
129
|
-
def self.execfail(*args)
|
130
|
-
Puppet::Util::Execution.execfail(*args)
|
131
|
-
end
|
132
|
-
|
133
120
|
# Returns the absolute path to the executable for the command referenced by the given name.
|
134
121
|
# @raise [Puppet::DevError] if the name does not reference an existing command.
|
135
122
|
# @return [String] the absolute path to the found executable for the command
|
@@ -302,7 +289,7 @@ class Puppet::Provider
|
|
302
289
|
# values. Given one or more Regexp instances, fact is compared via the basic
|
303
290
|
# pattern-matching operator.
|
304
291
|
def self.fact_match(fact, values)
|
305
|
-
fact_val =
|
292
|
+
fact_val = Facter.value(fact).to_s.downcase
|
306
293
|
if fact_val.empty?
|
307
294
|
return false
|
308
295
|
else
|
@@ -24,6 +24,8 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
24
24
|
val = object.default
|
25
25
|
if name.to_s == 'vardir'
|
26
26
|
val = 'Unix/Linux: /opt/puppetlabs/puppet/cache -- Windows: C:\ProgramData\PuppetLabs\puppet\cache -- Non-root user: ~/.puppetlabs/opt/puppet/cache'
|
27
|
+
elsif name.to_s == 'publicdir'
|
28
|
+
val = 'Unix/Linux: /opt/puppetlabs/puppet/public -- Windows: C:\ProgramData\PuppetLabs\puppet\public -- Non-root user: ~/.puppetlabs/opt/puppet/public'
|
27
29
|
elsif name.to_s == 'confdir'
|
28
30
|
val = 'Unix/Linux: /etc/puppetlabs/puppet -- Windows: C:\ProgramData\PuppetLabs\puppet\etc -- Non-root user: ~/.puppetlabs/etc/puppet'
|
29
31
|
elsif name.to_s == 'codedir'
|
@@ -41,7 +43,7 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
41
43
|
# Leave out the section information; it was apparently confusing people.
|
42
44
|
#str << "- **Section**: #{object.section}\n"
|
43
45
|
unless val == ""
|
44
|
-
str << "- *Default*:
|
46
|
+
str << "- *Default*: #{val}\n"
|
45
47
|
end
|
46
48
|
str << "\n"
|
47
49
|
end
|
@@ -55,12 +57,11 @@ config.header = <<EOT
|
|
55
57
|
* Each of these settings can be specified in `puppet.conf` or on the
|
56
58
|
command line.
|
57
59
|
* Puppet Enterprise (PE) and open source Puppet share the configuration settings
|
58
|
-
documented here. However, PE defaults
|
59
|
-
|
60
|
-
`disable18n`, `environment_timeout`
|
61
|
-
Puppet Server JRuby `max-active-instances` setting. To verify PE
|
62
|
-
defaults, check the `puppet.conf`
|
63
|
-
installation.
|
60
|
+
that are documented here. However, PE defaults for some settings differ from
|
61
|
+
the open source Puppet defaults. Some examples of settings that have different
|
62
|
+
PE defaults include `disable18n`, `environment_timeout`, `always_retry_plugins`,
|
63
|
+
and the Puppet Server JRuby `max-active-instances` setting. To verify PE
|
64
|
+
configuration defaults, check the `puppet.conf` file after installation.
|
64
65
|
* When using boolean settings on the command line, use `--setting` and
|
65
66
|
`--no-setting` instead of `--setting (true|false)`. (Using `--setting false`
|
66
67
|
results in "Error: Could not parse application options: needless argument".)
|
@@ -46,7 +46,7 @@ An indirector has five methods, which are mapped into HTTP verbs for the REST in
|
|
46
46
|
|
47
47
|
These methods are available via the `indirection` class method on the indirected classes. For example:
|
48
48
|
|
49
|
-
|
49
|
+
node = Puppet::Node.indirection.find('foo.example.com')
|
50
50
|
|
51
51
|
At startup, each indirection is configured with a terminus.
|
52
52
|
In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
|
@@ -15,7 +15,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
|
|
15
15
|
# Throw some facts in there, so we know where the report is from.
|
16
16
|
["Ruby Version", "Puppet Version", "Operating System", "Operating System Release"].each do |label|
|
17
17
|
name = label.gsub(/\s+/, '')
|
18
|
-
value =
|
18
|
+
value = Facter.value(name)
|
19
19
|
ret << option(label, value)
|
20
20
|
end
|
21
21
|
ret << "\n"
|
@@ -61,7 +61,7 @@ providers = Puppet::Util::Reference.newreference :providers, :title => "Provider
|
|
61
61
|
if Puppet.settings.valid?(name)
|
62
62
|
details << _(" - Setting %{name} (currently %{value}) not in list %{facts}\n") % { name: name, value: Puppet.settings.value(name).inspect, facts: facts.join(", ") }
|
63
63
|
else
|
64
|
-
details << _(" - Fact %{name} (currently %{value}) not in list %{facts}\n") % { name: name, value:
|
64
|
+
details << _(" - Fact %{name} (currently %{value}) not in list %{facts}\n") % { name: name, value: Facter.value(name).inspect, facts: facts.join(", ") }
|
65
65
|
end
|
66
66
|
end
|
67
67
|
when :true
|
@@ -5,8 +5,6 @@ require 'puppet/util/tagging'
|
|
5
5
|
require 'puppet/graph'
|
6
6
|
require 'securerandom'
|
7
7
|
|
8
|
-
require 'puppet/resource/capability_finder'
|
9
|
-
|
10
8
|
# This class models a node catalog. It is the thing meant to be passed
|
11
9
|
# from server to client, and it contains all of the information in the
|
12
10
|
# catalog, including the resources and the relationships between them.
|
@@ -382,23 +380,12 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
382
380
|
result = @resource_table[title_key]
|
383
381
|
if result.nil?
|
384
382
|
# an instance has to be created in order to construct the unique key used when
|
385
|
-
# searching for aliases
|
383
|
+
# searching for aliases
|
386
384
|
res = Puppet::Resource.new(type, title, { :environment => @environment_instance })
|
387
385
|
|
388
386
|
# Must check with uniqueness key because of aliases or if resource transforms title in title
|
389
387
|
# to attribute mappings.
|
390
388
|
result = @resource_table[[type_name, res.uniqueness_key].flatten]
|
391
|
-
|
392
|
-
if result.nil?
|
393
|
-
resource_type = res.resource_type
|
394
|
-
if resource_type && resource_type.is_capability?
|
395
|
-
# @todo lutter 2015-03-10: this assumes that it is legal to just
|
396
|
-
# mention a capability resource in code and have it automatically
|
397
|
-
# made available, even if the current component does not require it
|
398
|
-
result = Puppet::Resource::CapabilityFinder.find(environment, code_id, res)
|
399
|
-
add_resource(result) if result
|
400
|
-
end
|
401
|
-
end
|
402
389
|
end
|
403
390
|
result
|
404
391
|
end
|
data/lib/puppet/resource/type.rb
CHANGED
@@ -11,16 +11,13 @@ class Puppet::Resource::Type
|
|
11
11
|
include Puppet::Util::Warnings
|
12
12
|
include Puppet::Util::Errors
|
13
13
|
|
14
|
-
|
15
|
-
RESOURCE_KINDS = [:hostclass, :node, :definition, :capability_mapping, :application, :site]
|
14
|
+
RESOURCE_KINDS = [:hostclass, :node, :definition]
|
16
15
|
|
17
16
|
# Map the names used in our documentation to the names used internally
|
18
17
|
RESOURCE_KINDS_TO_EXTERNAL_NAMES = {
|
19
18
|
:hostclass => "class",
|
20
19
|
:node => "node",
|
21
|
-
:definition => "defined_type"
|
22
|
-
:application => "application",
|
23
|
-
:site => 'site'
|
20
|
+
:definition => "defined_type"
|
24
21
|
}
|
25
22
|
RESOURCE_EXTERNAL_NAMES_TO_KINDS = RESOURCE_KINDS_TO_EXTERNAL_NAMES.invert
|
26
23
|
|
@@ -37,15 +34,6 @@ class Puppet::Resource::Type
|
|
37
34
|
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
|
38
35
|
attr_reader :namespace, :arguments, :behaves_like, :module_name
|
39
36
|
|
40
|
-
# The attributes 'produces' and 'consumes' are arrays of the blueprints
|
41
|
-
# of capabilities this type can produce/consume. The entries in the array
|
42
|
-
# are a fairly direct representation of what goes into produces/consumes
|
43
|
-
# clauses. Each entry is a hash with attributes
|
44
|
-
# :capability - the type name of the capres produced/consumed
|
45
|
-
# :mappings - a hash of attribute_name => Expression
|
46
|
-
# These two attributes are populated in
|
47
|
-
# PopsBridge::instantiate_CapabilityMapping
|
48
|
-
|
49
37
|
# Map from argument (aka parameter) names to Puppet Type
|
50
38
|
# @return [Hash<Symbol, Puppet::Pops::Types::PAnyType] map from name to type
|
51
39
|
#
|
@@ -69,53 +57,6 @@ class Puppet::Resource::Type
|
|
69
57
|
return(klass == parent_type ? true : parent_type.child_of?(klass))
|
70
58
|
end
|
71
59
|
|
72
|
-
# Evaluate the resources produced by the given resource. These resources are
|
73
|
-
# evaluated in a separate but identical scope from the rest of the resource.
|
74
|
-
#
|
75
|
-
# @deprecated application orchestration will be removed in puppet 7
|
76
|
-
def evaluate_produces(resource, scope)
|
77
|
-
# Only defined types and classes can produce capabilities
|
78
|
-
return unless definition? || hostclass?
|
79
|
-
|
80
|
-
resource.export.map do |ex|
|
81
|
-
# Assert that the ref really is a resource reference
|
82
|
-
raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a resource") % { reference: resource.ref, ex: ex } unless ex.is_a?(Puppet::Resource)
|
83
|
-
raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a capability resource") % { reference: resource.ref, ex: ex } if ex.resource_type.nil? || !ex.resource_type.is_capability?
|
84
|
-
|
85
|
-
blueprint = produces.find { |pr| pr[:capability] == ex.type }
|
86
|
-
if blueprint.nil?
|
87
|
-
raise Puppet::ParseError, _("Resource type %{res_type} does not produce %{ex_type}") % { res_type: resource.type, ex_type: ex.type }
|
88
|
-
end
|
89
|
-
t = ex.type
|
90
|
-
t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t) unless t == 'class' || t == 'node'
|
91
|
-
produced_resource = Puppet::Parser::Resource.new(t, ex.title, :scope => scope, :source => self)
|
92
|
-
|
93
|
-
produced_resource.resource_type.parameters.each do |name|
|
94
|
-
next if name == :name
|
95
|
-
|
96
|
-
expr = blueprint[:mappings][name.to_s]
|
97
|
-
if expr
|
98
|
-
produced_resource[name] = expr.safeevaluate(scope)
|
99
|
-
else
|
100
|
-
produced_resource[name] = scope[name.to_s]
|
101
|
-
end
|
102
|
-
end
|
103
|
-
# Tag the produced resource so we can later distinguish it from
|
104
|
-
# copies of the resource that wind up in the catalogs of nodes that
|
105
|
-
# use this resource. We tag the resource with producer:<environment>,
|
106
|
-
# meaning produced resources need to be unique within their
|
107
|
-
# environment
|
108
|
-
# @todo lutter 2014-11-13: we would really like to use a dedicated
|
109
|
-
# metadata field to indicate the producer of a resource, but that
|
110
|
-
# requires changes to PuppetDB and its API; so for now, we just use
|
111
|
-
# tagging
|
112
|
-
produced_resource.tag("producer:#{scope.catalog.environment}")
|
113
|
-
scope.catalog.add_resource(produced_resource)
|
114
|
-
produced_resource[:require] = resource.ref
|
115
|
-
produced_resource
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
60
|
# Now evaluate the code associated with this class or definition.
|
120
61
|
def evaluate_code(resource)
|
121
62
|
|
@@ -129,8 +70,6 @@ class Puppet::Resource::Type
|
|
129
70
|
|
130
71
|
resource.add_edge_to_stage
|
131
72
|
|
132
|
-
evaluate_produces(resource, scope)
|
133
|
-
|
134
73
|
if code
|
135
74
|
if @match # Only bother setting up the ephemeral scope if there are match variables to add into it
|
136
75
|
scope.with_guarded_scope do
|
@@ -165,28 +104,6 @@ class Puppet::Resource::Type
|
|
165
104
|
@module_name = options[:module_name]
|
166
105
|
end
|
167
106
|
|
168
|
-
# @deprecated application orchestration will be removed in puppet 7
|
169
|
-
def produces
|
170
|
-
@produces || EMPTY_ARRAY
|
171
|
-
end
|
172
|
-
|
173
|
-
# @deprecated application orchestration will be removed in puppet 7
|
174
|
-
def consumes
|
175
|
-
@consumes || EMPTY_ARRAY
|
176
|
-
end
|
177
|
-
|
178
|
-
# @deprecated application orchestration will be removed in puppet 7
|
179
|
-
def add_produces(blueprint)
|
180
|
-
@produces ||= []
|
181
|
-
@produces << blueprint
|
182
|
-
end
|
183
|
-
|
184
|
-
# @deprecated application orchestration will be removed in puppet 7
|
185
|
-
def add_consumes(blueprint)
|
186
|
-
@consumes ||= []
|
187
|
-
@consumes << blueprint
|
188
|
-
end
|
189
|
-
|
190
107
|
# This is only used for node names, and really only when the node name
|
191
108
|
# is a regexp.
|
192
109
|
def match(string)
|
@@ -242,9 +159,6 @@ class Puppet::Resource::Type
|
|
242
159
|
:class
|
243
160
|
when :node
|
244
161
|
:node
|
245
|
-
when :site
|
246
|
-
# @deprecated application orchestration will be removed in puppet 7
|
247
|
-
:site
|
248
162
|
end
|
249
163
|
|
250
164
|
# Do nothing if the resource already exists; this makes sure we don't
|
@@ -289,21 +203,6 @@ class Puppet::Resource::Type
|
|
289
203
|
@name.is_a?(Regexp)
|
290
204
|
end
|
291
205
|
|
292
|
-
# @deprecated Not used by Puppet
|
293
|
-
# @api private
|
294
|
-
def assign_parameter_values(parameters, resource)
|
295
|
-
Puppet.deprecation_warning(_('The method Puppet::Resource::Type.assign_parameter_values is deprecated and will be removed in the next major release of Puppet.'))
|
296
|
-
|
297
|
-
return unless parameters
|
298
|
-
|
299
|
-
# It'd be nice to assign default parameter values here,
|
300
|
-
# but we can't because they often rely on local variables
|
301
|
-
# created during set_resource_parameters.
|
302
|
-
parameters.each do |name, value|
|
303
|
-
resource.set_parameter name, value
|
304
|
-
end
|
305
|
-
end
|
306
|
-
|
307
206
|
def parent_type(scope = nil)
|
308
207
|
return nil unless parent
|
309
208
|
|
@@ -326,7 +225,6 @@ class Puppet::Resource::Type
|
|
326
225
|
caller_name = resource[:caller_module_name] || scope.parent_module_name
|
327
226
|
scope[CALLER_MODULE_NAME] = caller_name unless caller_name.nil?
|
328
227
|
|
329
|
-
resource.add_parameters_from_consume
|
330
228
|
inject_external_parameters(resource, scope)
|
331
229
|
|
332
230
|
if @type == :hostclass
|
@@ -389,7 +287,7 @@ class Puppet::Resource::Type
|
|
389
287
|
private :assign_defaults
|
390
288
|
|
391
289
|
def validate_resource_hash(resource, resource_hash)
|
392
|
-
Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash,
|
290
|
+
Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash, false)
|
393
291
|
end
|
394
292
|
private :validate_resource_hash
|
395
293
|
|
@@ -444,14 +342,6 @@ class Puppet::Resource::Type
|
|
444
342
|
end
|
445
343
|
end
|
446
344
|
|
447
|
-
# Returns boolean true if an instance of this type is a capability. This
|
448
|
-
# implementation always returns false. This "duck-typing" interface is
|
449
|
-
# shared among other classes and makes it easier to detect capabilities
|
450
|
-
# when they are intermixed with non capability instances.
|
451
|
-
def is_capability?
|
452
|
-
false
|
453
|
-
end
|
454
|
-
|
455
345
|
private
|
456
346
|
|
457
347
|
def convert_from_ast(name)
|
@@ -516,12 +406,6 @@ class Puppet::Resource::Type
|
|
516
406
|
type_factory = Puppet::Pops::Types::TypeFactory
|
517
407
|
members = { type_factory.optional(type_factory.string(NAME)) => type_factory.any }
|
518
408
|
|
519
|
-
if application?
|
520
|
-
resource_type = type_factory.type_type(type_factory.resource)
|
521
|
-
members[type_factory.string(NODES)] = type_factory.hash_of(type_factory.variant(
|
522
|
-
resource_type, type_factory.array_of(resource_type)), type_factory.type_type(type_factory.resource('node')))
|
523
|
-
end
|
524
|
-
|
525
409
|
Puppet::Type.eachmetaparam do |name|
|
526
410
|
# TODO: Once meta parameters are typed, this should change to reflect that type
|
527
411
|
members[name.to_s] = type_factory.any
|