puppet 6.23.0 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/Gemfile +1 -3
- data/Gemfile.lock +34 -46
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application/agent.rb +4 -12
- data/lib/puppet/application/apply.rb +2 -4
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/resource.rb +1 -2
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -12
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/configurer.rb +30 -45
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +100 -192
- data/lib/puppet/environments.rb +60 -74
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- 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/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- 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.rb +1 -2
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +0 -2
- data/lib/puppet/forge/repository.rb +0 -1
- 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/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/tree_each.rb +9 -7
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- 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.rb +5 -15
- 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/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.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -138
- 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/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/compiler.rb +0 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- 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/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/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -48
- data/lib/puppet/module_tool/errors/shared.rb +2 -17
- 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.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- 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_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +3 -1
- data/lib/puppet/parser/ast/leaf.rb +2 -3
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- 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/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +0 -45
- 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 +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- 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_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- 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.rb +0 -13
- data/lib/puppet/provider/group/groupadd.rb +8 -13
- 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 +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/debian.rb +0 -2
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/systemd.rb +4 -14
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +10 -33
- data/lib/puppet/provider/user/useradd.rb +8 -62
- data/lib/puppet/reference/configuration.rb +8 -7
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +73 -66
- 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/ssl.rb +10 -6
- 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/test/test_helper.rb +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +6 -26
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +8 -16
- data/lib/puppet/type/service.rb +38 -18
- data/lib/puppet/type/tidy.rb +2 -21
- data/lib/puppet/type/user.rb +20 -38
- data/lib/puppet/util/autoload.rb +8 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -53
- data/lib/puppet/util/posix.rb +5 -54
- 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/windows.rb +3 -8
- 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 -4
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +651 -1436
- data/man/man5/puppet.conf.5 +266 -354
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- 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 +4 -47
- 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 +1 -58
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- 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 +27 -171
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +24 -2
- data/spec/integration/defaults_spec.rb +14 -3
- data/spec/integration/http/client_spec.rb +0 -12
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
- 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_spec.rb +9 -4
- data/spec/integration/type/file_spec.rb +5 -4
- 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/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 -2
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/spec_helper.rb +7 -12
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- 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 +12 -32
- 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 -54
- data/spec/unit/environments_spec.rb +68 -224
- data/spec/unit/face/node_spec.rb +11 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- 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 -9
- data/spec/unit/forge/module_release_spec.rb +7 -2
- 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/upcase_spec.rb +1 -1
- 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 -185
- 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 -14
- 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 +12 -8
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
- 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 -45
- 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 +3 -4
- 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_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/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 -6
- 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 +32 -0
- 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/pip_spec.rb +11 -6
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/init_spec.rb +0 -1
- 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 +8 -53
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -5
- data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
- 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 +3 -71
- data/spec/unit/provider_spec.rb +8 -18
- 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 +23 -13
- data/spec/unit/ssl/base_spec.rb +37 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -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/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 +0 -1
- 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 -60
- data/spec/unit/type/tidy_spec.rb +8 -17
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/type_spec.rb +22 -2
- 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 -3
- 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 -6
- 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 +2 -2
- metadata +44 -181
- data/conf/auth.conf +0 -150
- 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/ffi/posix.rb +0 -10
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.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.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- 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.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/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.rb +0 -122
- 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/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/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
- data/spec/integration/application/resource_spec.rb +0 -30
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- 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/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 -422
- 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
@@ -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
|
@@ -13,22 +13,16 @@ class Puppet::Resource::TypeCollection
|
|
13
13
|
def clear
|
14
14
|
@hostclasses.clear
|
15
15
|
@definitions.clear
|
16
|
-
@applications.clear
|
17
16
|
@nodes.clear
|
18
17
|
@notfound.clear
|
19
|
-
@capability_mappings.clear
|
20
|
-
@sites.clear
|
21
18
|
end
|
22
19
|
|
23
20
|
def initialize(env)
|
24
21
|
@environment = env
|
25
22
|
@hostclasses = {}
|
26
23
|
@definitions = {}
|
27
|
-
@capability_mappings = {}
|
28
|
-
@applications = {}
|
29
24
|
@nodes = {}
|
30
25
|
@notfound = {}
|
31
|
-
@sites = []
|
32
26
|
@lock = Puppet::Concurrent::Lock.new
|
33
27
|
|
34
28
|
# So we can keep a list and match the first-defined regex
|
@@ -45,10 +39,7 @@ class Puppet::Resource::TypeCollection
|
|
45
39
|
"TypeCollection" + {
|
46
40
|
:hostclasses => @hostclasses.keys,
|
47
41
|
:definitions => @definitions.keys,
|
48
|
-
:nodes => @nodes.keys
|
49
|
-
:capability_mappings => @capability_mappings.keys,
|
50
|
-
:applications => @applications.keys,
|
51
|
-
:site => @sites[0] # todo, could be just a binary, this dumps the entire body (good while developing)
|
42
|
+
:nodes => @nodes.keys
|
52
43
|
}.inspect
|
53
44
|
end
|
54
45
|
|
@@ -71,7 +62,6 @@ class Puppet::Resource::TypeCollection
|
|
71
62
|
handle_hostclass_merge(instance)
|
72
63
|
dupe_check(instance, @hostclasses) { |dupe| _("Class '%{klass}' is already defined%{error}; cannot redefine") % { klass: instance.name, error: dupe.error_context } }
|
73
64
|
dupe_check(instance, @definitions) { |dupe| _("Definition '%{klass}' is already defined%{error}; cannot be redefined as a class") % { klass: instance.name, error: dupe.error_context } }
|
74
|
-
dupe_check(instance, @applications) { |dupe| _("Application '%{klass}' is already defined%{error}; cannot be redefined as a class") % { klass: instance.name, error: dupe.error_context } }
|
75
65
|
|
76
66
|
@hostclasses[instance.name] = instance
|
77
67
|
instance
|
@@ -109,16 +99,6 @@ class Puppet::Resource::TypeCollection
|
|
109
99
|
instance
|
110
100
|
end
|
111
101
|
|
112
|
-
def add_site(instance)
|
113
|
-
dupe_check_singleton(instance, @sites) { |dupe| _("Site is already defined%{error}; cannot redefine") % { error: dupe.error_context } }
|
114
|
-
@sites << instance
|
115
|
-
instance
|
116
|
-
end
|
117
|
-
|
118
|
-
def site(_)
|
119
|
-
@sites[0]
|
120
|
-
end
|
121
|
-
|
122
102
|
def loader
|
123
103
|
@loader ||= Puppet::Parser::TypeLoader.new(environment)
|
124
104
|
end
|
@@ -149,38 +129,18 @@ class Puppet::Resource::TypeCollection
|
|
149
129
|
def add_definition(instance)
|
150
130
|
dupe_check(instance, @hostclasses) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as a definition") % { name: instance.name, error: dupe.error_context } }
|
151
131
|
dupe_check(instance, @definitions) { |dupe| _("Definition '%{name}' is already defined%{error}; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
|
152
|
-
dupe_check(instance, @applications) { |dupe| _("'%{name}' is already defined%{error} as an application; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
|
153
|
-
@definitions[instance.name] = instance
|
154
|
-
end
|
155
132
|
|
156
|
-
|
157
|
-
dupe_check(instance, @capability_mappings) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as a mapping") % { name: instance.name, error: dupe.error_context } }
|
158
|
-
@capability_mappings[instance.name] = instance
|
133
|
+
@definitions[instance.name] = instance
|
159
134
|
end
|
160
135
|
|
161
136
|
def definition(name)
|
162
137
|
@definitions[munge_name(name)]
|
163
138
|
end
|
164
139
|
|
165
|
-
def add_application(instance)
|
166
|
-
dupe_check(instance, @hostclasses) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as an application") % { name: instance.name, error: dupe.error_context } }
|
167
|
-
dupe_check(instance, @definitions) { |dupe| _("'%{name}' is already defined%{error} as a definition; cannot redefine as an application") % { name: instance.name, error: dupe.error_context } }
|
168
|
-
dupe_check(instance, @applications) { |dupe| _("'%{name}' is already defined%{error} as an application; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
|
169
|
-
@applications[instance.name] = instance
|
170
|
-
end
|
171
|
-
|
172
|
-
def application(name)
|
173
|
-
@applications[munge_name(name)]
|
174
|
-
end
|
175
|
-
|
176
140
|
def find_node(name)
|
177
141
|
@nodes[munge_name(name)]
|
178
142
|
end
|
179
143
|
|
180
|
-
def find_site()
|
181
|
-
@sites[0]
|
182
|
-
end
|
183
|
-
|
184
144
|
def find_hostclass(name)
|
185
145
|
find_or_load(name, :hostclass)
|
186
146
|
end
|
@@ -189,14 +149,9 @@ class Puppet::Resource::TypeCollection
|
|
189
149
|
find_or_load(name, :definition)
|
190
150
|
end
|
191
151
|
|
192
|
-
def find_application(name)
|
193
|
-
find_or_load(name, :application)
|
194
|
-
end
|
195
|
-
|
196
152
|
# TODO: This implementation is wasteful as it creates a copy on each request
|
197
153
|
#
|
198
|
-
[:hostclasses, :nodes, :definitions
|
199
|
-
:applications].each do |m|
|
154
|
+
[:hostclasses, :nodes, :definitions].each do |m|
|
200
155
|
define_method(m) do
|
201
156
|
instance_variable_get("@#{m}").dup
|
202
157
|
end
|
data/lib/puppet/runtime.rb
CHANGED
@@ -11,8 +11,7 @@ class Puppet::Runtime
|
|
11
11
|
@runtime_services = {
|
12
12
|
http: proc do
|
13
13
|
klass = Puppet::Network::HttpPool.http_client_class
|
14
|
-
if klass == Puppet::Network::HTTP::Connection
|
15
|
-
klass == Puppet::Network::HTTP::ConnectionAdapter
|
14
|
+
if klass == Puppet::Network::HTTP::Connection
|
16
15
|
Puppet::HTTP::Client.new
|
17
16
|
else
|
18
17
|
Puppet::HTTP::ExternalClient.new(klass)
|
data/lib/puppet/settings.rb
CHANGED
@@ -21,6 +21,8 @@ class Puppet::Settings
|
|
21
21
|
require 'puppet/settings/file_or_directory_setting'
|
22
22
|
require 'puppet/settings/path_setting'
|
23
23
|
require 'puppet/settings/boolean_setting'
|
24
|
+
require 'puppet/settings/integer_setting'
|
25
|
+
require 'puppet/settings/port_setting'
|
24
26
|
require 'puppet/settings/terminus_setting'
|
25
27
|
require 'puppet/settings/duration_setting'
|
26
28
|
require 'puppet/settings/ttl_setting'
|
@@ -32,7 +34,6 @@ class Puppet::Settings
|
|
32
34
|
require 'puppet/settings/server_list_setting'
|
33
35
|
require 'puppet/settings/http_extra_headers_setting'
|
34
36
|
require 'puppet/settings/certificate_revocation_setting'
|
35
|
-
require 'puppet/settings/alias_setting'
|
36
37
|
|
37
38
|
# local reference for convenience
|
38
39
|
PuppetOptionParser = Puppet::Util::CommandLine::PuppetOptionParser
|
@@ -53,13 +54,14 @@ class Puppet::Settings
|
|
53
54
|
# returns reasonable application default settings values for a given run_mode.
|
54
55
|
def self.app_defaults_for_run_mode(run_mode)
|
55
56
|
{
|
56
|
-
:name
|
57
|
-
:run_mode
|
58
|
-
:confdir
|
59
|
-
:codedir
|
60
|
-
:vardir
|
61
|
-
:
|
62
|
-
:
|
57
|
+
:name => run_mode.to_s,
|
58
|
+
:run_mode => run_mode.name,
|
59
|
+
:confdir => run_mode.conf_dir,
|
60
|
+
:codedir => run_mode.code_dir,
|
61
|
+
:vardir => run_mode.var_dir,
|
62
|
+
:publicdir => run_mode.public_dir,
|
63
|
+
:rundir => run_mode.run_dir,
|
64
|
+
:logdir => run_mode.log_dir,
|
63
65
|
}
|
64
66
|
end
|
65
67
|
|
@@ -386,6 +388,19 @@ class Puppet::Settings
|
|
386
388
|
call_hooks_deferred_to_application_initialization
|
387
389
|
issue_deprecations
|
388
390
|
|
391
|
+
run_mode = Puppet::Util::RunMode[self.preferred_run_mode]
|
392
|
+
if run_mode.agent? || run_mode.server?
|
393
|
+
if self.set_in_section?(:masterport, run_mode.name) && !self.set_in_section?(:serverport, run_mode.name)
|
394
|
+
self[:serverport] = self[:masterport]
|
395
|
+
elsif self.set_by_config?(:masterport) && !self.set_by_config?(:serverport)
|
396
|
+
self[:serverport] = self[:masterport]
|
397
|
+
elsif self.set_in_section?(:serverport, run_mode.name) && !self.set_in_section?(:masterport, run_mode.name)
|
398
|
+
self[:masterport] = self[:serverport]
|
399
|
+
elsif self.set_by_config?(:serverport) && !self.set_by_config?(:masterport)
|
400
|
+
self[:masterport] = self[:serverport]
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
389
404
|
REQUIRED_APP_SETTINGS.each do |key|
|
390
405
|
create_ancestors(Puppet[key])
|
391
406
|
end
|
@@ -720,6 +735,8 @@ class Puppet::Settings
|
|
720
735
|
:file_or_directory => FileOrDirectorySetting,
|
721
736
|
:path => PathSetting,
|
722
737
|
:boolean => BooleanSetting,
|
738
|
+
:integer => IntegerSetting,
|
739
|
+
:port => PortSetting,
|
723
740
|
:terminus => TerminusSetting,
|
724
741
|
:duration => DurationSetting,
|
725
742
|
:ttl => TTLSetting,
|
@@ -730,8 +747,7 @@ class Puppet::Settings
|
|
730
747
|
:autosign => AutosignSetting,
|
731
748
|
:server_list => ServerListSetting,
|
732
749
|
:http_extra_headers => HttpExtraHeadersSetting,
|
733
|
-
:certificate_revocation => CertificateRevocationSetting
|
734
|
-
:alias => AliasSetting
|
750
|
+
:certificate_revocation => CertificateRevocationSetting
|
735
751
|
}
|
736
752
|
|
737
753
|
# Create a new setting. The value is passed in because it's used to determine
|
@@ -1074,41 +1090,48 @@ Generated on #{Time.now}.
|
|
1074
1090
|
# Create the necessary objects to use a section. This is idempotent;
|
1075
1091
|
# you can 'use' a section as many times as you want.
|
1076
1092
|
def use(*sections)
|
1077
|
-
|
1093
|
+
if Puppet[:settings_catalog]
|
1094
|
+
sections = sections.collect { |s| s.to_sym }
|
1095
|
+
sections = sections.reject { |s| @used.include?(s) }
|
1078
1096
|
|
1079
|
-
|
1080
|
-
sections |= [:master, :server] if (sections & [:master, :server]).any?
|
1097
|
+
Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
|
1081
1098
|
|
1082
|
-
|
1083
|
-
|
1099
|
+
# add :server if sections include :master or :master if sections include :server
|
1100
|
+
sections |= [:master, :server] if (sections & [:master, :server]).any?
|
1084
1101
|
|
1085
|
-
|
1102
|
+
sections = sections.collect { |s| s.to_sym }
|
1103
|
+
sections = sections.reject { |s| @used.include?(s) }
|
1086
1104
|
|
1087
|
-
|
1105
|
+
return if sections.empty?
|
1088
1106
|
|
1089
|
-
|
1090
|
-
catalog = to_catalog(*sections).to_ral
|
1091
|
-
rescue => detail
|
1092
|
-
Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
|
1093
|
-
end
|
1107
|
+
Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
|
1094
1108
|
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
status_fail_msg = status_failures.
|
1101
|
-
collect(&:events).
|
1102
|
-
flatten.
|
1103
|
-
select { |event| event.status == 'failure' }.
|
1104
|
-
collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
|
1109
|
+
begin
|
1110
|
+
catalog = to_catalog(*sections).to_ral
|
1111
|
+
rescue => detail
|
1112
|
+
Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
|
1113
|
+
end
|
1105
1114
|
|
1106
|
-
|
1115
|
+
catalog.host_config = false
|
1116
|
+
catalog.apply do |transaction|
|
1117
|
+
if transaction.any_failed?
|
1118
|
+
report = transaction.report
|
1119
|
+
status_failures = report.resource_statuses.values.select { |r| r.failed? }
|
1120
|
+
status_fail_msg = status_failures.
|
1121
|
+
collect(&:events).
|
1122
|
+
flatten.
|
1123
|
+
select { |event| event.status == 'failure' }.
|
1124
|
+
collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
|
1125
|
+
|
1126
|
+
raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
|
1127
|
+
end
|
1107
1128
|
end
|
1108
|
-
end
|
1109
1129
|
|
1110
|
-
|
1111
|
-
|
1130
|
+
sections.each { |s| @used << s }
|
1131
|
+
@used.uniq!
|
1132
|
+
else
|
1133
|
+
Puppet.debug("Skipping settings catalog for sections #{sections.join(', ')}")
|
1134
|
+
end
|
1112
1135
|
end
|
1113
1136
|
|
1114
1137
|
def valid?(param)
|
@@ -1262,37 +1285,27 @@ Generated on #{Time.now}.
|
|
1262
1285
|
end
|
1263
1286
|
|
1264
1287
|
def add_environment_resources(catalog, sections)
|
1288
|
+
path = self[:environmentpath]
|
1289
|
+
envdir = path.split(File::PATH_SEPARATOR).first if path
|
1265
1290
|
configured_environment = self[:environment]
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
if Puppet::FileSystem.exist?(first_environment_path)
|
1272
|
-
production_environment_path = File.join(first_environment_path, configured_environment)
|
1291
|
+
if configured_environment == "production" && envdir && Puppet::FileSystem.exist?(envdir)
|
1292
|
+
configured_environment_path = File.join(envdir, configured_environment)
|
1293
|
+
# If configured_environment_path is a symlink, assume the source path is being managed
|
1294
|
+
# elsewhere, so don't do any of this configuration
|
1295
|
+
if !Puppet::FileSystem.symlink?(configured_environment_path)
|
1273
1296
|
parameters = { :ensure => 'directory' }
|
1274
|
-
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1297
|
+
unless Puppet::FileSystem.exist?(configured_environment_path)
|
1298
|
+
parameters[:mode] = '0750'
|
1299
|
+
if Puppet.features.root?
|
1300
|
+
parameters[:owner] = Puppet[:user] if service_user_available?
|
1301
|
+
parameters[:group] = Puppet[:group] if service_group_available?
|
1302
|
+
end
|
1278
1303
|
end
|
1279
|
-
catalog.add_resource(Puppet::Resource.new(:file,
|
1304
|
+
catalog.add_resource(Puppet::Resource.new(:file, configured_environment_path, :parameters => parameters))
|
1280
1305
|
end
|
1281
1306
|
end
|
1282
1307
|
end
|
1283
1308
|
|
1284
|
-
def production_environment_exists?
|
1285
|
-
environment_path = self[:environmentpath]
|
1286
|
-
paths = environment_path.split(File::PATH_SEPARATOR)
|
1287
|
-
|
1288
|
-
paths.any? do |path|
|
1289
|
-
# If expected_path is a symlink, assume the source path is being managed
|
1290
|
-
# elsewhere, so accept it also as a valid production environment path
|
1291
|
-
expected_path = File.join(path, 'production')
|
1292
|
-
Puppet::FileSystem.directory?(expected_path) || Puppet::FileSystem.symlink?(expected_path)
|
1293
|
-
end
|
1294
|
-
end
|
1295
|
-
|
1296
1309
|
def add_user_resources(catalog, sections)
|
1297
1310
|
return unless Puppet.features.root?
|
1298
1311
|
return if Puppet::Util::Platform.windows?
|
@@ -1393,12 +1406,6 @@ Generated on #{Time.now}.
|
|
1393
1406
|
end
|
1394
1407
|
end
|
1395
1408
|
|
1396
|
-
setting = @defaults[name]
|
1397
|
-
if setting.respond_to?(:alias_name)
|
1398
|
-
val = lookup(setting.alias_name)
|
1399
|
-
return val if val
|
1400
|
-
end
|
1401
|
-
|
1402
1409
|
@defaults[name].default
|
1403
1410
|
end
|
1404
1411
|
|