puppet 6.16.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/Gemfile +5 -3
- data/Gemfile.lock +31 -33
- data/README.md +4 -5
- data/Rakefile +4 -12
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- 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/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +22 -6
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +66 -31
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +166 -169
- data/lib/puppet/environments.rb +41 -15
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- 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_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -8
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +23 -13
- data/lib/puppet/http/client.rb +170 -115
- 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 -11
- 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 +13 -19
- data/lib/puppet/http/resolver.rb +10 -23
- data/lib/puppet/http/resolver/server_list.rb +23 -45
- data/lib/puppet/http/resolver/settings.rb +7 -10
- data/lib/puppet/http/resolver/srv.rb +11 -15
- data/lib/puppet/http/response.rb +49 -48
- 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 +15 -27
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -70
- data/lib/puppet/http/service/file_server.rb +19 -28
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +16 -24
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +27 -6
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +3 -7
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- data/lib/puppet/indirector/file_metadata/rest.rb +5 -11
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +2 -103
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http.rb +3 -3
- 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/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +93 -14
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -42
- data/lib/puppet/parser/compiler.rb +1 -199
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +3 -71
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -13
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- 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/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- 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 -22
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- 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 +28 -42
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -11
- data/lib/puppet/provider/package/gem.rb +27 -5
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- 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 +6 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reports/http.rb +2 -0
- data/lib/puppet/resource.rb +3 -90
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +5 -112
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +84 -35
- data/lib/puppet/settings/base_setting.rb +26 -2
- 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_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +37 -1
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +19 -16
- data/lib/puppet/transaction.rb +3 -9
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +10 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +9 -77
- data/lib/puppet/type/file.rb +45 -22
- data/lib/puppet/type/file/checksum.rb +5 -5
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +14 -2
- data/lib/puppet/util/windows.rb +3 -7
- 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 +5 -15
- 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 +8 -6
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +52 -486
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +242 -8
- 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 +713 -1380
- data/man/man5/puppet.conf.5 +84 -98
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +157 -59
- data/spec/integration/application/apply_spec.rb +150 -150
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +78 -29
- data/spec/integration/application/help_spec.rb +44 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +76 -4
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +33 -5
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +29 -30
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/type/file_spec.rb +6 -5
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +2 -2
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +9 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +74 -8
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +17 -4
- data/spec/unit/application_spec.rb +9 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +96 -44
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +12 -10
- data/spec/unit/defaults_spec.rb +77 -28
- data/spec/unit/environments_spec.rb +96 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +2 -2
- 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 +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -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/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +71 -17
- 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 -11
- 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 +34 -15
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -65
- data/spec/unit/http/service/file_server_spec.rb +5 -6
- data/spec/unit/http/service/puppetserver_spec.rb +112 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -3
- data/spec/unit/http/session_spec.rb +24 -35
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- 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/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +3 -267
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +3 -98
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- 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 +61 -73
- data/spec/unit/network/http/handler_spec.rb +0 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +51 -22
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +77 -22
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- 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/type_calculator_spec.rb +7 -17
- 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/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dpkg_spec.rb +22 -55
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +402 -166
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -15
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +22 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +3 -59
- 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 +586 -239
- data/spec/unit/ssl/base_spec.rb +36 -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 +78 -49
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -3
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -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/source_spec.rb +4 -5
- data/spec/unit/type/file_spec.rb +134 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +209 -0
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +70 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- 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 +3 -21
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +76 -270
- 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/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 -85
- 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 -182
- 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 -64
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
- data/lib/puppet/parser/environment_compiler.rb +0 -199
- 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/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/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -282
- 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/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- 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 -79
- 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/man_spec.rb +0 -31
- 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 -723
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -143
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -650
- 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
@@ -67,11 +67,11 @@ class Puppet::Network::HTTP::Route
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def matches?(request)
|
70
|
-
Puppet.debug
|
70
|
+
Puppet.debug { "Evaluating match for #{self.inspect}" }
|
71
71
|
if match(request.routing_path)
|
72
72
|
return true
|
73
73
|
else
|
74
|
-
Puppet.debug
|
74
|
+
Puppet.debug { "Did not match path (#{request.routing_path.inspect})" }
|
75
75
|
end
|
76
76
|
return false
|
77
77
|
end
|
@@ -1,19 +1,15 @@
|
|
1
1
|
require 'puppet/network/http/connection'
|
2
|
-
require 'puppet/network/http/connection_adapter'
|
3
|
-
require 'puppet/util/platform'
|
4
2
|
|
5
3
|
module Puppet::Network; end
|
6
4
|
|
7
|
-
# This module
|
8
|
-
# {Puppet::Network::HTTP::Connection} instance. The pool may return a new
|
9
|
-
# connection or a persistent cached connection, depending on the underlying
|
10
|
-
# pool implementation in use.
|
5
|
+
# This module is deprecated.
|
11
6
|
#
|
12
7
|
# @api public
|
8
|
+
# @deprecated Use {Puppet::HTTP::Client} instead.
|
13
9
|
#
|
14
10
|
module Puppet::Network::HttpPool
|
15
11
|
|
16
|
-
@http_client_class = Puppet::Network::HTTP::
|
12
|
+
@http_client_class = Puppet::Network::HTTP::Connection
|
17
13
|
|
18
14
|
def self.http_client_class
|
19
15
|
@http_client_class
|
@@ -30,37 +26,20 @@ module Puppet::Network::HttpPool
|
|
30
26
|
# @param verify_peer [Boolean] Whether to verify the peer credentials, if possible. Verification will not take place if the CA certificate is missing.
|
31
27
|
# @return [Puppet::Network::HTTP::Connection]
|
32
28
|
#
|
33
|
-
# @deprecated Use {
|
29
|
+
# @deprecated Use {Puppet.runtime[:http]} instead.
|
34
30
|
# @api public
|
35
31
|
#
|
36
32
|
def self.http_instance(host, port, use_ssl = true, verify_peer = true)
|
37
|
-
|
38
|
-
Puppet::SSL::Validator.default_validator()
|
39
|
-
else
|
40
|
-
Puppet::SSL::Validator.no_validator()
|
41
|
-
end
|
33
|
+
Puppet.warn_once('deprecations', self, "The method 'Puppet::Network::HttpPool.http_instance' is deprecated. Use Puppet.runtime[:http] instead")
|
42
34
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
# @param host [String] the DNS name to connect to
|
52
|
-
# @param port [Integer] the port to connect to
|
53
|
-
# @param verifier [#setup_connection, #peer_certs, #verify_errors] An object that will setup the appropriate
|
54
|
-
# verification on a Net::HTTP instance and report any errors and the certificates used.
|
55
|
-
# @return [Puppet::Network::HTTP::Connection]
|
56
|
-
#
|
57
|
-
# @deprecated Use {#http_connection} instead.
|
58
|
-
# @api public
|
59
|
-
#
|
60
|
-
def self.http_ssl_instance(host, port, verifier = Puppet::SSL::Validator.default_validator())
|
61
|
-
http_client_class.new(host, port,
|
62
|
-
:use_ssl => true,
|
63
|
-
:verify => verifier)
|
35
|
+
if verify_peer
|
36
|
+
verifier = Puppet::SSL::Verifier.new(host, nil)
|
37
|
+
http_client_class.new(host, port, use_ssl: use_ssl, verifier: verifier)
|
38
|
+
else
|
39
|
+
ssl = Puppet::SSL::SSLProvider.new
|
40
|
+
verifier = Puppet::SSL::Verifier.new(host, ssl.create_insecure_context)
|
41
|
+
http_client_class.new(host, port, use_ssl: use_ssl, verifier: verifier)
|
42
|
+
end
|
64
43
|
end
|
65
44
|
|
66
45
|
# Retrieve a connection for the given host and port.
|
@@ -72,9 +51,12 @@ module Puppet::Network::HttpPool
|
|
72
51
|
# when making HTTPS connections. Required when `use_ssl` is `true`.
|
73
52
|
# @return [Puppet::Network::HTTP::Connection]
|
74
53
|
#
|
54
|
+
# @deprecated Use {Puppet.runtime[:http]} instead.
|
75
55
|
# @api public
|
76
56
|
#
|
77
57
|
def self.connection(host, port, use_ssl: true, ssl_context: nil)
|
58
|
+
Puppet.warn_once('deprecations', self, "The method 'Puppet::Network::HttpPool.connection' is deprecated. Use Puppet.runtime[:http] instead")
|
59
|
+
|
78
60
|
if use_ssl
|
79
61
|
unless ssl_context
|
80
62
|
# TRANSLATORS 'ssl_context' is an argument and should not be translated
|
data/lib/puppet/node.rb
CHANGED
@@ -183,36 +183,7 @@ class Puppet::Node
|
|
183
183
|
# Calculate the list of names we might use for looking
|
184
184
|
# up our node. This is only used for AST nodes.
|
185
185
|
def names
|
186
|
-
|
187
|
-
|
188
|
-
names = []
|
189
|
-
|
190
|
-
names += split_name(name) if name.include?(".")
|
191
|
-
|
192
|
-
# First, get the fqdn
|
193
|
-
fqdn = parameters["fqdn"]
|
194
|
-
unless fqdn
|
195
|
-
if parameters["hostname"] and parameters["domain"]
|
196
|
-
fqdn = parameters["hostname"] + "." + parameters["domain"]
|
197
|
-
else
|
198
|
-
Puppet.warning _("Host is missing hostname and/or domain: %{name}") % { name: name }
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
# Now that we (might) have the fqdn, add each piece to the name
|
203
|
-
# list to search, in order of longest to shortest.
|
204
|
-
names += split_name(fqdn) if fqdn
|
205
|
-
|
206
|
-
# And make sure the node name is first, since that's the most
|
207
|
-
# likely usage.
|
208
|
-
# The name is usually the Certificate CN, but it can be
|
209
|
-
# set to the 'facter' hostname instead.
|
210
|
-
if Puppet[:node_name] == 'cert'
|
211
|
-
names.unshift name
|
212
|
-
else
|
213
|
-
names.unshift parameters["hostname"]
|
214
|
-
end
|
215
|
-
names.uniq
|
186
|
+
@names ||= [name]
|
216
187
|
end
|
217
188
|
|
218
189
|
def split_name(name)
|
@@ -266,7 +266,7 @@ class Puppet::Node::Environment
|
|
266
266
|
# @param name [String] The module name
|
267
267
|
# @return [Puppet::Module, nil] The module if found, else nil
|
268
268
|
def module(name)
|
269
|
-
|
269
|
+
modules_by_name[name]
|
270
270
|
end
|
271
271
|
|
272
272
|
# Locate a module instance by the full forge name (EG authorname/module)
|
@@ -298,7 +298,7 @@ class Puppet::Node::Environment
|
|
298
298
|
if @modules.nil?
|
299
299
|
module_references = []
|
300
300
|
project = Puppet.lookup(:bolt_project) { nil }
|
301
|
-
seen_modules = if project
|
301
|
+
seen_modules = if project && project.load_as_module?
|
302
302
|
module_references << project.to_h
|
303
303
|
{ project.name => true }
|
304
304
|
else
|
@@ -327,6 +327,12 @@ class Puppet::Node::Environment
|
|
327
327
|
@modules
|
328
328
|
end
|
329
329
|
|
330
|
+
# @api private
|
331
|
+
def modules_by_name
|
332
|
+
@modules_by_name ||= Hash[modules.map { |mod| [mod.name, mod] }]
|
333
|
+
end
|
334
|
+
private :modules_by_name
|
335
|
+
|
330
336
|
# Generate a warning if the given directory in a module path entry is named `lib`.
|
331
337
|
#
|
332
338
|
# @api private
|
@@ -335,9 +341,10 @@ class Puppet::Node::Environment
|
|
335
341
|
# @param name [String] The directory name
|
336
342
|
def warn_about_mistaken_path(path, name)
|
337
343
|
if name == "lib"
|
338
|
-
Puppet.debug
|
339
|
-
|
340
|
-
|
344
|
+
Puppet.debug {
|
345
|
+
"Warning: Found directory named 'lib' in module path ('#{path}/lib'); unless you \
|
346
|
+
are expecting to load a module named 'lib', your module path may be set incorrectly."
|
347
|
+
}
|
341
348
|
end
|
342
349
|
end
|
343
350
|
|
data/lib/puppet/node/facts.rb
CHANGED
@@ -116,8 +116,25 @@ class Puppet::Node::Facts
|
|
116
116
|
@timestamp = Time.now
|
117
117
|
end
|
118
118
|
|
119
|
+
def to_yaml
|
120
|
+
facts_to_display = Psych.parse_stream(YAML.dump(self))
|
121
|
+
quote_special_strings(facts_to_display)
|
122
|
+
end
|
123
|
+
|
119
124
|
private
|
120
125
|
|
126
|
+
def quote_special_strings(fact_hash)
|
127
|
+
fact_hash.grep(Psych::Nodes::Scalar).each do |node|
|
128
|
+
next unless node.value =~ /:/
|
129
|
+
|
130
|
+
node.plain = false
|
131
|
+
node.quoted = true
|
132
|
+
node.style = Psych::Nodes::Scalar::DOUBLE_QUOTED
|
133
|
+
end
|
134
|
+
|
135
|
+
fact_hash.yaml
|
136
|
+
end
|
137
|
+
|
121
138
|
def sanitize_fact(fact)
|
122
139
|
if fact.is_a? Hash then
|
123
140
|
ret = {}
|
@@ -4,6 +4,8 @@
|
|
4
4
|
#
|
5
5
|
# @api public
|
6
6
|
#
|
7
|
+
module Puppet
|
8
|
+
module Pal
|
7
9
|
class JsonCatalogEncoder
|
8
10
|
# Is the resulting Json pretty printed or not.
|
9
11
|
attr_reader :pretty
|
@@ -65,3 +67,5 @@ class JsonCatalogEncoder
|
|
65
67
|
end
|
66
68
|
private :possibly_filtered_catalog
|
67
69
|
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/puppet/pal/pal_impl.rb
CHANGED
@@ -5,6 +5,7 @@ require 'puppet'
|
|
5
5
|
require 'puppet/parser/script_compiler'
|
6
6
|
require 'puppet/parser/catalog_compiler'
|
7
7
|
|
8
|
+
module Puppet
|
8
9
|
# This is the main entry point for "Puppet As a Library" PAL.
|
9
10
|
# This file should be required instead of "puppet"
|
10
11
|
# Initially, this will require ALL of puppet - over time this will change as the monolithical "puppet" is broken up
|
@@ -24,7 +25,7 @@ require 'puppet/parser/catalog_compiler'
|
|
24
25
|
# end
|
25
26
|
# # The result is what 'mymodule::myfunction' returns
|
26
27
|
#
|
27
|
-
|
28
|
+
# @api public
|
28
29
|
module Pal
|
29
30
|
|
30
31
|
# Defines a context in which multiple operations in an env with a script compiler can be performed in a given block.
|
@@ -49,6 +50,7 @@ module Pal
|
|
49
50
|
# If given at the environment level, the facts given here are merged with higher priority.
|
50
51
|
# @param variables [Hash] optional map of fully qualified variable name to value. If given at the environment level, the variables
|
51
52
|
# given here are merged with higher priority.
|
53
|
+
# @param set_local_facts [Boolean] when true, the $facts, $server_facts, and $trusted variables are set for the scope.
|
52
54
|
# @param block [Proc] the block performing operations on compiler
|
53
55
|
# @return [Object] what the block returns
|
54
56
|
# @yieldparam [Puppet::Pal::ScriptCompiler] compiler, a ScriptCompiler to perform operations on.
|
@@ -57,8 +59,9 @@ module Pal
|
|
57
59
|
configured_by_env: false,
|
58
60
|
manifest_file: nil,
|
59
61
|
code_string: nil,
|
60
|
-
facts:
|
61
|
-
variables:
|
62
|
+
facts: {},
|
63
|
+
variables: {},
|
64
|
+
set_local_facts: true,
|
62
65
|
&block
|
63
66
|
)
|
64
67
|
# TRANSLATORS: do not translate variable name strings in these assertions
|
@@ -91,7 +94,14 @@ module Pal
|
|
91
94
|
|
92
95
|
# If manifest_file is nil, the #main method will use the env configured manifest
|
93
96
|
# to do things in the block while a Script Compiler is in effect
|
94
|
-
main(
|
97
|
+
main(
|
98
|
+
manifest: manifest_file,
|
99
|
+
facts: facts,
|
100
|
+
variables: variables,
|
101
|
+
internal_compiler_class: :script,
|
102
|
+
set_local_facts: set_local_facts,
|
103
|
+
&block
|
104
|
+
)
|
95
105
|
ensure
|
96
106
|
Puppet[:tasks] = previous_tasks_value
|
97
107
|
Puppet[:code] = previous_code_value
|
@@ -155,8 +165,9 @@ module Pal
|
|
155
165
|
configured_by_env: false,
|
156
166
|
manifest_file: nil,
|
157
167
|
code_string: nil,
|
158
|
-
facts:
|
159
|
-
variables:
|
168
|
+
facts: {},
|
169
|
+
variables: {},
|
170
|
+
target_variables: {},
|
160
171
|
&block
|
161
172
|
)
|
162
173
|
# TRANSLATORS: do not translate variable name strings in these assertions
|
@@ -191,7 +202,15 @@ module Pal
|
|
191
202
|
|
192
203
|
# If manifest_file is nil, the #main method will use the env configured manifest
|
193
204
|
# to do things in the block while a Script Compiler is in effect
|
194
|
-
main(
|
205
|
+
main(
|
206
|
+
manifest: manifest_file,
|
207
|
+
facts: facts,
|
208
|
+
variables: variables,
|
209
|
+
target_variables: target_variables,
|
210
|
+
internal_compiler_class: :catalog,
|
211
|
+
set_local_facts: false,
|
212
|
+
&block
|
213
|
+
)
|
195
214
|
ensure
|
196
215
|
# Clean up after ourselves
|
197
216
|
Puppet[:tasks] = previous_tasks_value
|
@@ -256,6 +275,7 @@ module Pal
|
|
256
275
|
# @return [Object] returns what the given block returns
|
257
276
|
# @yieldparam [Puppet::Pal] context, a context that responds to Puppet::Pal methods
|
258
277
|
#
|
278
|
+
# @api public
|
259
279
|
def self.in_environment(env_name,
|
260
280
|
modulepath: nil,
|
261
281
|
pre_modulepath: [],
|
@@ -379,7 +399,14 @@ module Pal
|
|
379
399
|
# Picks up information from the puppet context and configures a script compiler which is given to
|
380
400
|
# the provided block
|
381
401
|
#
|
382
|
-
def self.main(
|
402
|
+
def self.main(
|
403
|
+
manifest: nil,
|
404
|
+
facts: {},
|
405
|
+
variables: {},
|
406
|
+
target_variables: {},
|
407
|
+
internal_compiler_class: nil,
|
408
|
+
set_local_facts: true
|
409
|
+
)
|
383
410
|
# Configure the load path
|
384
411
|
env = Puppet.lookup(:pal_env)
|
385
412
|
env.each_plugin_directory do |dir|
|
@@ -395,14 +422,11 @@ module Pal
|
|
395
422
|
pal_variables = Puppet.lookup(:pal_variables)
|
396
423
|
|
397
424
|
overrides = {}
|
425
|
+
|
398
426
|
unless facts.nil? || facts.empty?
|
399
427
|
pal_facts = pal_facts.merge(facts)
|
400
428
|
overrides[:pal_facts] = pal_facts
|
401
429
|
end
|
402
|
-
unless variables.nil? || variables.empty?
|
403
|
-
pal_variables = pal_variables.merge(variables)
|
404
|
-
overrides[:pal_variables] = pal_variables
|
405
|
-
end
|
406
430
|
|
407
431
|
prepare_node_facts(node, pal_facts)
|
408
432
|
|
@@ -434,15 +458,38 @@ module Pal
|
|
434
458
|
overrides[:pal_catalog_compiler] = overrides[:pal_compiler] = pal_compiler
|
435
459
|
end
|
436
460
|
|
461
|
+
# When scripting the trusted data are always local; default is to set them anyway
|
462
|
+
# When compiling for a catalog, the catalog compiler does this
|
463
|
+
if set_local_facts
|
464
|
+
compiler.topscope.set_trusted(node.trusted_data)
|
465
|
+
|
466
|
+
# Server facts are always about the local node's version etc.
|
467
|
+
compiler.topscope.set_server_facts(node.server_facts)
|
468
|
+
|
469
|
+
# Set $facts for the node running the script
|
470
|
+
facts_hash = node.facts.nil? ? {} : node.facts.values
|
471
|
+
compiler.topscope.set_facts(facts_hash)
|
472
|
+
|
473
|
+
# create the $settings:: variables
|
474
|
+
compiler.topscope.merge_settings(node.environment.name, false)
|
475
|
+
end
|
476
|
+
|
437
477
|
# Make compiler available to Puppet#lookup and injection in functions
|
438
478
|
# TODO: The compiler instances should be available under non PAL use as well!
|
439
479
|
# TRANSLATORS: Do not translate, symbolic name
|
440
480
|
Puppet.override(overrides, "PAL::with_#{internal_compiler_class}_compiler") do
|
441
481
|
compiler.compile do | compiler_yield |
|
442
|
-
# In case the
|
482
|
+
# In case the variables passed to the compiler are PCore types defined in modules, they
|
443
483
|
# need to be deserialized and added from within the this scope, so that loaders are
|
444
484
|
# available during deserizlization.
|
445
|
-
|
485
|
+
pal_variables = Puppet::Pops::Serialization::FromDataConverter.convert(pal_variables)
|
486
|
+
variables = Puppet::Pops::Serialization::FromDataConverter.convert(variables)
|
487
|
+
|
488
|
+
# Merge together target variables and plan variables. This will also shadow any
|
489
|
+
# collisions with facts and emit a warning.
|
490
|
+
topscope_vars = pal_variables.merge(merge_vars(target_variables, variables, node.facts.values))
|
491
|
+
|
492
|
+
add_variables(compiler.topscope, topscope_vars)
|
446
493
|
# wrap the internal compiler to prevent it from leaking in the PAL API
|
447
494
|
if block_given?
|
448
495
|
yield(pal_compiler)
|
@@ -462,6 +509,38 @@ module Pal
|
|
462
509
|
end
|
463
510
|
private_class_method :main
|
464
511
|
|
512
|
+
# Warn and remove variables that will be shadowed by facts of the same
|
513
|
+
# name, which are set in scope earlier.
|
514
|
+
def self.merge_vars(target_vars, vars, facts)
|
515
|
+
# First, shadow plan and target variables by facts of the same name
|
516
|
+
vars = shadow_vars(facts || {}, vars, 'fact', 'plan variable')
|
517
|
+
target_vars = shadow_vars(facts || {}, target_vars, 'fact', 'target variable')
|
518
|
+
# Then, shadow target variables by plan variables of the same name
|
519
|
+
target_vars = shadow_vars(vars, target_vars, 'plan variable', 'target variable')
|
520
|
+
|
521
|
+
target_vars.merge(vars)
|
522
|
+
end
|
523
|
+
private_class_method :merge_vars
|
524
|
+
|
525
|
+
def self.shadow_vars(vars, other_vars, vars_type, other_vars_type)
|
526
|
+
collisions, valid = other_vars.partition do |k, _|
|
527
|
+
vars.include?(k)
|
528
|
+
end
|
529
|
+
|
530
|
+
if collisions.any?
|
531
|
+
names = collisions.map { |k, _| "$#{k}" }.join(', ')
|
532
|
+
plural = collisions.length == 1 ? '' : 's'
|
533
|
+
|
534
|
+
Puppet.warning(
|
535
|
+
"#{other_vars_type.capitalize}#{plural} #{names} will be overridden by "\
|
536
|
+
"#{vars_type}#{plural} of the same name in the apply block"
|
537
|
+
)
|
538
|
+
end
|
539
|
+
|
540
|
+
valid.to_h
|
541
|
+
end
|
542
|
+
private_class_method :shadow_vars
|
543
|
+
|
465
544
|
def self.create_internal_compiler(compiler_class_reference, node)
|
466
545
|
case compiler_class_reference
|
467
546
|
when :script
|
data/lib/puppet/parameter.rb
CHANGED
@@ -429,7 +429,7 @@ class Puppet::Parameter
|
|
429
429
|
begin
|
430
430
|
ret = unsafe_munge(value)
|
431
431
|
rescue Puppet::Error => detail
|
432
|
-
Puppet.debug "Reraising #{detail}"
|
432
|
+
Puppet.debug { "Reraising #{detail}" }
|
433
433
|
raise
|
434
434
|
rescue => detail
|
435
435
|
raise Puppet::DevError, _("Munging failed for value %{value} in class %{class_name}: %{detail}") % { value: value.inspect, class_name: self.name, detail: detail }, detail.backtrace
|
@@ -17,17 +17,17 @@ class Puppet::Parser::AST::Leaf < Puppet::Parser::AST
|
|
17
17
|
@value.to_s unless @value.nil?
|
18
18
|
end
|
19
19
|
|
20
|
-
def initialize(value: nil,
|
20
|
+
def initialize(value: nil, file: nil, line: nil, pos: nil)
|
21
21
|
@value = value
|
22
|
-
super(
|
22
|
+
super(file: file, line: line, pos: pos)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
# Host names, either fully qualified or just the short name, or even a regex
|
27
27
|
#
|
28
28
|
class Puppet::Parser::AST::HostName < Puppet::Parser::AST::Leaf
|
29
|
-
def initialize(
|
30
|
-
super
|
29
|
+
def initialize(value: nil, file: nil, line: nil, pos: nil)
|
30
|
+
super(value: value, file: file, line: line, pos: pos)
|
31
31
|
|
32
32
|
# Note that this is an AST::Regex, not a Regexp
|
33
33
|
unless @value.is_a?(Regex)
|
@@ -51,7 +51,7 @@ end
|
|
51
51
|
|
52
52
|
class Puppet::Parser::AST::Regex < Puppet::Parser::AST::Leaf
|
53
53
|
def initialize(hash)
|
54
|
-
super
|
54
|
+
super(**hash)
|
55
55
|
# transform value from hash options unless it is already a regular expression
|
56
56
|
@value = Regexp.new(@value) unless @value.is_a?(Regexp)
|
57
57
|
end
|