openvox 7.37.1 → 8.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -3
- data/Gemfile +17 -12
- data/README.md +25 -30
- data/Rakefile +43 -33
- data/bin/puppet +1 -0
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/build_defaults.yaml +1 -1
- data/ext/windows/service/daemon.rb +54 -60
- data/install.rb +21 -92
- data/lib/hiera/puppet_function.rb +8 -6
- data/lib/hiera/scope.rb +15 -13
- data/lib/hiera_puppet.rb +4 -6
- data/lib/puppet/agent/disabler.rb +5 -3
- data/lib/puppet/agent/locker.rb +2 -2
- data/lib/puppet/agent.rb +6 -4
- data/lib/puppet/application/agent.rb +305 -301
- data/lib/puppet/application/apply.rb +124 -117
- data/lib/puppet/application/catalog.rb +2 -0
- data/lib/puppet/application/config.rb +2 -0
- data/lib/puppet/application/describe.rb +50 -48
- data/lib/puppet/application/device.rb +224 -223
- data/lib/puppet/application/doc.rb +57 -58
- data/lib/puppet/application/epp.rb +2 -0
- data/lib/puppet/application/face_base.rb +18 -17
- data/lib/puppet/application/facts.rb +2 -0
- data/lib/puppet/application/filebucket.rb +174 -168
- data/lib/puppet/application/generate.rb +3 -1
- data/lib/puppet/application/help.rb +2 -0
- data/lib/puppet/application/indirection_base.rb +2 -0
- data/lib/puppet/application/lookup.rb +181 -181
- data/lib/puppet/application/module.rb +2 -0
- data/lib/puppet/application/node.rb +2 -0
- data/lib/puppet/application/parser.rb +2 -0
- data/lib/puppet/application/plugin.rb +2 -0
- data/lib/puppet/application/report.rb +2 -0
- data/lib/puppet/application/resource.rb +106 -96
- data/lib/puppet/application/script.rb +76 -74
- data/lib/puppet/application/ssl.rb +100 -92
- data/lib/puppet/application.rb +32 -32
- data/lib/puppet/application_support.rb +3 -2
- data/lib/puppet/coercion.rb +5 -3
- data/lib/puppet/compilable_resource_type.rb +4 -2
- data/lib/puppet/concurrent/lock.rb +2 -3
- data/lib/puppet/concurrent/synchronized.rb +2 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +11 -5
- data/lib/puppet/configurer/fact_handler.rb +17 -16
- data/lib/puppet/configurer/plugin_handler.rb +2 -0
- data/lib/puppet/configurer.rb +40 -36
- data/lib/puppet/confine/any.rb +3 -1
- data/lib/puppet/confine/boolean.rb +3 -1
- data/lib/puppet/confine/exists.rb +3 -1
- data/lib/puppet/confine/false.rb +3 -1
- data/lib/puppet/confine/feature.rb +3 -2
- data/lib/puppet/confine/true.rb +3 -1
- data/lib/puppet/confine/variable.rb +4 -2
- data/lib/puppet/confine.rb +5 -2
- data/lib/puppet/confine_collection.rb +6 -3
- data/lib/puppet/confiner.rb +5 -3
- data/lib/puppet/context/trusted_information.rb +12 -10
- data/lib/puppet/context.rb +2 -0
- data/lib/puppet/daemon.rb +26 -10
- data/lib/puppet/data_binding.rb +3 -1
- data/lib/puppet/datatypes/error.rb +3 -1
- data/lib/puppet/datatypes/impl/error.rb +2 -0
- data/lib/puppet/datatypes.rb +12 -7
- data/lib/puppet/defaults.rb +164 -125
- data/lib/puppet/environments.rb +13 -15
- data/lib/puppet/error.rb +19 -15
- data/lib/puppet/etc.rb +10 -5
- data/lib/puppet/external/dot.rb +65 -75
- data/lib/puppet/face/catalog/select.rb +4 -2
- data/lib/puppet/face/catalog.rb +7 -5
- data/lib/puppet/face/config.rb +30 -31
- data/lib/puppet/face/epp.rb +25 -26
- data/lib/puppet/face/facts.rb +8 -6
- data/lib/puppet/face/generate.rb +5 -2
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help/global.erb +1 -1
- data/lib/puppet/face/help.rb +80 -62
- data/lib/puppet/face/module/changes.rb +4 -3
- data/lib/puppet/face/module/install.rb +7 -4
- data/lib/puppet/face/module/list.rb +52 -53
- data/lib/puppet/face/module/uninstall.rb +2 -0
- data/lib/puppet/face/module/upgrade.rb +5 -3
- data/lib/puppet/face/module.rb +3 -1
- data/lib/puppet/face/node/clean.rb +4 -2
- data/lib/puppet/face/node.rb +5 -3
- data/lib/puppet/face/parser.rb +18 -19
- data/lib/puppet/face/plugin.rb +10 -8
- data/lib/puppet/face/report.rb +10 -10
- data/lib/puppet/face/resource.rb +2 -0
- data/lib/puppet/face.rb +2 -0
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +13 -13
- data/lib/puppet/feature/bolt.rb +2 -0
- data/lib/puppet/feature/cfpropertylist.rb +2 -0
- data/lib/puppet/feature/eventlog.rb +2 -0
- data/lib/puppet/feature/hiera_eyaml.rb +2 -0
- data/lib/puppet/feature/hocon.rb +2 -0
- data/lib/puppet/feature/libuser.rb +5 -3
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/pe_license.rb +4 -2
- data/lib/puppet/feature/pson.rb +6 -0
- data/lib/puppet/feature/selinux.rb +2 -0
- data/lib/puppet/feature/ssh.rb +3 -1
- data/lib/puppet/feature/telnet.rb +3 -7
- data/lib/puppet/feature/zlib.rb +3 -1
- data/lib/puppet/ffi/posix/constants.rb +3 -1
- data/lib/puppet/ffi/posix/functions.rb +2 -1
- data/lib/puppet/ffi/posix.rb +2 -0
- data/lib/puppet/ffi/windows/api_types.rb +3 -1
- data/lib/puppet/ffi/windows/constants.rb +80 -78
- data/lib/puppet/ffi/windows/functions.rb +76 -75
- data/lib/puppet/ffi/windows/structs.rb +6 -5
- data/lib/puppet/ffi/windows.rb +2 -0
- data/lib/puppet/file_bucket/dipper.rb +20 -11
- data/lib/puppet/file_bucket/file.rb +8 -6
- data/lib/puppet/file_bucket.rb +2 -0
- data/lib/puppet/file_serving/base.rb +17 -9
- data/lib/puppet/file_serving/configuration/parser.rb +13 -10
- data/lib/puppet/file_serving/configuration.rb +10 -7
- data/lib/puppet/file_serving/content.rb +2 -0
- data/lib/puppet/file_serving/fileset.rb +23 -19
- data/lib/puppet/file_serving/http_metadata.rb +3 -4
- data/lib/puppet/file_serving/metadata.rb +26 -23
- data/lib/puppet/file_serving/mount/file.rb +15 -11
- data/lib/puppet/file_serving/mount/locales.rb +5 -5
- data/lib/puppet/file_serving/mount/modules.rb +3 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
- data/lib/puppet/file_serving/mount/plugins.rb +5 -5
- data/lib/puppet/file_serving/mount/scripts.rb +3 -0
- data/lib/puppet/file_serving/mount/tasks.rb +3 -0
- data/lib/puppet/file_serving/mount.rb +4 -1
- data/lib/puppet/file_serving/terminus_helper.rb +2 -0
- data/lib/puppet/file_serving/terminus_selector.rb +3 -1
- data/lib/puppet/file_serving.rb +2 -0
- data/lib/puppet/file_system/file_impl.rb +9 -8
- data/lib/puppet/file_system/jruby.rb +2 -0
- data/lib/puppet/file_system/memory_file.rb +3 -0
- data/lib/puppet/file_system/memory_impl.rb +5 -1
- data/lib/puppet/file_system/path_pattern.rb +4 -2
- data/lib/puppet/file_system/posix.rb +7 -2
- data/lib/puppet/file_system/uniquefile.rb +33 -31
- data/lib/puppet/file_system/windows.rb +33 -22
- data/lib/puppet/file_system.rb +5 -3
- data/lib/puppet/forge/cache.rb +4 -3
- data/lib/puppet/forge/errors.rb +3 -4
- data/lib/puppet/forge/repository.rb +6 -3
- data/lib/puppet/forge.rb +20 -22
- data/lib/puppet/functions/abs.rb +7 -4
- data/lib/puppet/functions/alert.rb +2 -0
- data/lib/puppet/functions/all.rb +3 -1
- data/lib/puppet/functions/annotate.rb +2 -0
- data/lib/puppet/functions/any.rb +3 -1
- data/lib/puppet/functions/assert_type.rb +5 -2
- data/lib/puppet/functions/binary_file.rb +4 -1
- data/lib/puppet/functions/break.rb +4 -2
- data/lib/puppet/functions/call.rb +2 -1
- data/lib/puppet/functions/camelcase.rb +4 -3
- data/lib/puppet/functions/capitalize.rb +4 -3
- data/lib/puppet/functions/ceiling.rb +3 -2
- data/lib/puppet/functions/chomp.rb +3 -2
- data/lib/puppet/functions/chop.rb +3 -2
- data/lib/puppet/functions/compare.rb +5 -3
- data/lib/puppet/functions/contain.rb +7 -4
- data/lib/puppet/functions/convert_to.rb +2 -0
- data/lib/puppet/functions/crit.rb +2 -0
- data/lib/puppet/functions/debug.rb +2 -0
- data/lib/puppet/functions/defined.rb +10 -6
- data/lib/puppet/functions/dig.rb +13 -10
- data/lib/puppet/functions/downcase.rb +4 -2
- data/lib/puppet/functions/each.rb +2 -0
- data/lib/puppet/functions/emerg.rb +2 -0
- data/lib/puppet/functions/empty.rb +2 -0
- data/lib/puppet/functions/epp.rb +2 -1
- data/lib/puppet/functions/err.rb +2 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
- data/lib/puppet/functions/filter.rb +8 -7
- data/lib/puppet/functions/find_file.rb +6 -0
- data/lib/puppet/functions/find_template.rb +2 -0
- data/lib/puppet/functions/flatten.rb +2 -0
- data/lib/puppet/functions/floor.rb +3 -2
- data/lib/puppet/functions/get.rb +4 -2
- data/lib/puppet/functions/getvar.rb +7 -5
- data/lib/puppet/functions/group_by.rb +2 -2
- data/lib/puppet/functions/hiera.rb +2 -0
- data/lib/puppet/functions/hiera_array.rb +2 -0
- data/lib/puppet/functions/hiera_hash.rb +2 -0
- data/lib/puppet/functions/hiera_include.rb +3 -0
- data/lib/puppet/functions/hocon_data.rb +5 -5
- data/lib/puppet/functions/import.rb +3 -1
- data/lib/puppet/functions/include.rb +5 -2
- data/lib/puppet/functions/index.rb +5 -4
- data/lib/puppet/functions/info.rb +2 -0
- data/lib/puppet/functions/inline_epp.rb +2 -1
- data/lib/puppet/functions/join.rb +4 -2
- data/lib/puppet/functions/json_data.rb +6 -6
- data/lib/puppet/functions/keys.rb +2 -0
- data/lib/puppet/functions/length.rb +2 -1
- data/lib/puppet/functions/lest.rb +2 -0
- data/lib/puppet/functions/lookup.rb +12 -12
- data/lib/puppet/functions/lstrip.rb +3 -2
- data/lib/puppet/functions/map.rb +4 -2
- data/lib/puppet/functions/match.rb +8 -5
- data/lib/puppet/functions/max.rb +75 -8
- data/lib/puppet/functions/min.rb +75 -8
- data/lib/puppet/functions/module_directory.rb +2 -0
- data/lib/puppet/functions/new.rb +5 -3
- data/lib/puppet/functions/next.rb +3 -1
- data/lib/puppet/functions/notice.rb +2 -0
- data/lib/puppet/functions/reduce.rb +8 -11
- data/lib/puppet/functions/regsubst.rb +15 -16
- data/lib/puppet/functions/require.rb +7 -3
- data/lib/puppet/functions/return.rb +2 -0
- data/lib/puppet/functions/reverse_each.rb +2 -0
- data/lib/puppet/functions/round.rb +2 -0
- data/lib/puppet/functions/rstrip.rb +3 -2
- data/lib/puppet/functions/scanf.rb +2 -0
- data/lib/puppet/functions/size.rb +2 -2
- data/lib/puppet/functions/slice.rb +4 -1
- data/lib/puppet/functions/sort.rb +2 -0
- data/lib/puppet/functions/split.rb +2 -0
- data/lib/puppet/functions/step.rb +2 -0
- data/lib/puppet/functions/strftime.rb +5 -3
- data/lib/puppet/functions/strip.rb +3 -2
- data/lib/puppet/functions/then.rb +3 -0
- data/lib/puppet/functions/tree_each.rb +4 -3
- data/lib/puppet/functions/type.rb +2 -0
- data/lib/puppet/functions/unique.rb +12 -9
- data/lib/puppet/functions/unwrap.rb +2 -0
- data/lib/puppet/functions/upcase.rb +4 -2
- data/lib/puppet/functions/values.rb +2 -0
- data/lib/puppet/functions/versioncmp.rb +2 -1
- data/lib/puppet/functions/warning.rb +2 -0
- data/lib/puppet/functions/with.rb +2 -0
- data/lib/puppet/functions/yaml_data.rb +13 -13
- data/lib/puppet/functions.rb +57 -61
- data/lib/puppet/generate/models/type/property.rb +4 -1
- data/lib/puppet/generate/models/type/type.rb +5 -2
- data/lib/puppet/generate/type.rb +11 -5
- data/lib/puppet/gettext/config.rb +16 -9
- data/lib/puppet/gettext/module_translations.rb +2 -1
- data/lib/puppet/gettext/stubs.rb +2 -0
- data/lib/puppet/graph/key.rb +2 -0
- data/lib/puppet/graph/prioritizer.rb +2 -0
- data/lib/puppet/graph/rb_tree_map.rb +43 -24
- data/lib/puppet/graph/relationship_graph.rb +31 -29
- data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
- data/lib/puppet/graph/simple_graph.rb +63 -57
- data/lib/puppet/graph.rb +2 -0
- data/lib/puppet/http/client.rb +10 -6
- data/lib/puppet/http/dns.rb +12 -12
- data/lib/puppet/http/errors.rb +4 -2
- data/lib/puppet/http/external_client.rb +4 -3
- data/lib/puppet/http/factory.rb +3 -1
- data/lib/puppet/http/pool.rb +3 -1
- data/lib/puppet/http/pool_entry.rb +2 -0
- data/lib/puppet/http/proxy.rb +21 -19
- data/lib/puppet/http/redirector.rb +5 -3
- data/lib/puppet/http/resolver/server_list.rb +5 -4
- data/lib/puppet/http/resolver/settings.rb +2 -1
- data/lib/puppet/http/resolver/srv.rb +2 -1
- data/lib/puppet/http/resolver.rb +4 -2
- data/lib/puppet/http/response.rb +2 -0
- data/lib/puppet/http/response_converter.rb +4 -3
- data/lib/puppet/http/response_net_http.rb +2 -1
- data/lib/puppet/http/retry_after_handler.rb +4 -3
- data/lib/puppet/http/service/ca.rb +37 -5
- data/lib/puppet/http/service/compiler.rb +13 -10
- data/lib/puppet/http/service/file_server.rb +5 -3
- data/lib/puppet/http/service/puppetserver.rb +3 -2
- data/lib/puppet/http/service/report.rb +5 -7
- data/lib/puppet/http/service.rb +17 -22
- data/lib/puppet/http/session.rb +6 -4
- data/lib/puppet/http/site.rb +3 -1
- data/lib/puppet/http.rb +4 -2
- data/lib/puppet/indirector/catalog/compiler.rb +81 -80
- data/lib/puppet/indirector/catalog/json.rb +2 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
- data/lib/puppet/indirector/catalog/rest.rb +2 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
- data/lib/puppet/indirector/catalog/yaml.rb +2 -0
- data/lib/puppet/indirector/code.rb +2 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
- data/lib/puppet/indirector/data_binding/none.rb +2 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -1
- data/lib/puppet/indirector/envelope.rb +2 -0
- data/lib/puppet/indirector/errors.rb +2 -0
- data/lib/puppet/indirector/exec.rb +5 -3
- data/lib/puppet/indirector/face.rb +17 -28
- data/lib/puppet/indirector/fact_search.rb +4 -2
- data/lib/puppet/indirector/facts/facter.rb +10 -7
- data/lib/puppet/indirector/facts/json.rb +4 -2
- data/lib/puppet/indirector/facts/memory.rb +2 -0
- data/lib/puppet/indirector/facts/network_device.rb +2 -0
- data/lib/puppet/indirector/facts/rest.rb +2 -0
- data/lib/puppet/indirector/facts/store_configs.rb +3 -2
- data/lib/puppet/indirector/facts/yaml.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
- data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
- data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
- data/lib/puppet/indirector/file_content/file.rb +2 -0
- data/lib/puppet/indirector/file_content/file_server.rb +2 -0
- data/lib/puppet/indirector/file_content/rest.rb +3 -1
- data/lib/puppet/indirector/file_content/selector.rb +2 -0
- data/lib/puppet/indirector/file_content.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
- data/lib/puppet/indirector/file_metadata/http.rb +4 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
- data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
- data/lib/puppet/indirector/file_metadata.rb +2 -0
- data/lib/puppet/indirector/file_server.rb +3 -0
- data/lib/puppet/indirector/generic_http.rb +2 -0
- data/lib/puppet/indirector/hiera.rb +8 -7
- data/lib/puppet/indirector/indirection.rb +50 -41
- data/lib/puppet/indirector/json.rb +9 -6
- data/lib/puppet/indirector/memory.rb +5 -2
- data/lib/puppet/indirector/msgpack.rb +11 -7
- data/lib/puppet/indirector/node/exec.rb +6 -6
- data/lib/puppet/indirector/node/json.rb +2 -1
- data/lib/puppet/indirector/node/memory.rb +2 -0
- data/lib/puppet/indirector/node/msgpack.rb +2 -0
- data/lib/puppet/indirector/node/plain.rb +2 -0
- data/lib/puppet/indirector/node/rest.rb +2 -0
- data/lib/puppet/indirector/node/store_configs.rb +3 -3
- data/lib/puppet/indirector/node/yaml.rb +2 -0
- data/lib/puppet/indirector/none.rb +3 -2
- data/lib/puppet/indirector/plain.rb +2 -0
- data/lib/puppet/indirector/report/json.rb +4 -2
- data/lib/puppet/indirector/report/msgpack.rb +3 -1
- data/lib/puppet/indirector/report/processor.rb +3 -0
- data/lib/puppet/indirector/report/rest.rb +2 -13
- data/lib/puppet/indirector/report/yaml.rb +4 -2
- data/lib/puppet/indirector/request.rb +15 -12
- data/lib/puppet/indirector/resource/ral.rb +10 -10
- data/lib/puppet/indirector/resource/store_configs.rb +3 -1
- data/lib/puppet/indirector/resource/validator.rb +2 -0
- data/lib/puppet/indirector/rest.rb +3 -1
- data/lib/puppet/indirector/store_configs.rb +2 -0
- data/lib/puppet/indirector/terminus.rb +8 -4
- data/lib/puppet/indirector/yaml.rb +7 -5
- data/lib/puppet/indirector.rb +3 -0
- data/lib/puppet/info_service/class_information_service.rb +16 -17
- data/lib/puppet/info_service/plan_information_service.rb +5 -3
- data/lib/puppet/info_service/task_information_service.rb +10 -9
- data/lib/puppet/info_service.rb +1 -0
- data/lib/puppet/interface/action.rb +46 -42
- data/lib/puppet/interface/action_builder.rb +12 -6
- data/lib/puppet/interface/action_manager.rb +9 -6
- data/lib/puppet/interface/documentation.rb +40 -34
- data/lib/puppet/interface/face_collection.rb +18 -14
- data/lib/puppet/interface/option.rb +23 -11
- data/lib/puppet/interface/option_builder.rb +14 -9
- data/lib/puppet/interface/option_manager.rb +12 -10
- data/lib/puppet/interface.rb +9 -8
- data/lib/puppet/loaders.rb +2 -1
- data/lib/puppet/metatype/manager.rb +16 -15
- data/lib/puppet/module/plan.rb +22 -15
- data/lib/puppet/module/task.rb +33 -28
- data/lib/puppet/module.rb +59 -47
- data/lib/puppet/module_tool/applications/application.rb +17 -12
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/installer.rb +78 -87
- data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
- data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
- data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
- data/lib/puppet/module_tool/applications.rb +2 -0
- data/lib/puppet/module_tool/checksums.rb +4 -3
- data/lib/puppet/module_tool/dependency.rb +5 -4
- data/lib/puppet/module_tool/errors/base.rb +3 -1
- data/lib/puppet/module_tool/errors/installer.rb +6 -5
- data/lib/puppet/module_tool/errors/shared.rb +16 -15
- data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +8 -5
- data/lib/puppet/module_tool/installed_modules.rb +5 -2
- data/lib/puppet/module_tool/local_tarball.rb +10 -8
- data/lib/puppet/module_tool/metadata.rb +36 -30
- data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
- data/lib/puppet/module_tool/tar/gnu.rb +12 -8
- data/lib/puppet/module_tool/tar/mini.rb +6 -4
- data/lib/puppet/module_tool/tar.rb +4 -2
- data/lib/puppet/module_tool.rb +11 -11
- data/lib/puppet/network/authconfig.rb +2 -0
- data/lib/puppet/network/authorization.rb +2 -0
- data/lib/puppet/network/client_request.rb +7 -4
- data/lib/puppet/network/format.rb +9 -3
- data/lib/puppet/network/format_handler.rb +9 -7
- data/lib/puppet/network/format_support.rb +8 -7
- data/lib/puppet/network/formats.rb +34 -25
- data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
- data/lib/puppet/network/http/api/indirection_type.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
- data/lib/puppet/network/http/api/master/v3.rb +2 -1
- data/lib/puppet/network/http/api/master.rb +2 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
- data/lib/puppet/network/http/api/server/v3.rb +14 -13
- data/lib/puppet/network/http/api/server.rb +2 -0
- data/lib/puppet/network/http/api.rb +20 -18
- data/lib/puppet/network/http/connection.rb +6 -4
- data/lib/puppet/network/http/error.rb +5 -3
- data/lib/puppet/network/http/handler.rb +12 -14
- data/lib/puppet/network/http/issues.rb +2 -0
- data/lib/puppet/network/http/memory_response.rb +3 -1
- data/lib/puppet/network/http/request.rb +22 -10
- data/lib/puppet/network/http/response.rb +2 -0
- data/lib/puppet/network/http/route.rb +14 -11
- data/lib/puppet/network/http.rb +2 -0
- data/lib/puppet/network/http_pool.rb +4 -3
- data/lib/puppet/network/uri.rb +2 -0
- data/lib/puppet/network.rb +2 -0
- data/lib/puppet/node/environment.rb +36 -33
- data/lib/puppet/node/facts.rb +10 -10
- data/lib/puppet/node/server_facts.rb +6 -6
- data/lib/puppet/node.rb +12 -12
- data/lib/puppet/pal/catalog_compiler.rb +2 -3
- data/lib/puppet/pal/compiler.rb +11 -6
- data/lib/puppet/pal/function_signature.rb +5 -3
- data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
- data/lib/puppet/pal/pal_api.rb +2 -0
- data/lib/puppet/pal/pal_impl.rb +103 -108
- data/lib/puppet/pal/plan_signature.rb +4 -2
- data/lib/puppet/pal/script_compiler.rb +4 -2
- data/lib/puppet/pal/task_signature.rb +15 -9
- data/lib/puppet/parameter/boolean.rb +2 -0
- data/lib/puppet/parameter/package_options.rb +3 -1
- data/lib/puppet/parameter/path.rb +7 -3
- data/lib/puppet/parameter/value.rb +5 -3
- data/lib/puppet/parameter/value_collection.rb +17 -16
- data/lib/puppet/parameter.rb +17 -16
- data/lib/puppet/parser/abstract_compiler.rb +2 -3
- data/lib/puppet/parser/ast/block_expression.rb +4 -2
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/hostclass.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +2 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
- data/lib/puppet/parser/ast/resource.rb +8 -8
- data/lib/puppet/parser/ast/resource_instance.rb +3 -0
- data/lib/puppet/parser/ast/resourceparam.rb +9 -7
- data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
- data/lib/puppet/parser/ast.rb +16 -15
- data/lib/puppet/parser/catalog_compiler.rb +3 -3
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
- data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
- data/lib/puppet/parser/compiler.rb +45 -44
- data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
- data/lib/puppet/parser/files.rb +8 -6
- data/lib/puppet/parser/functions/assert_type.rb +43 -41
- data/lib/puppet/parser/functions/binary_file.rb +16 -14
- data/lib/puppet/parser/functions/break.rb +29 -27
- data/lib/puppet/parser/functions/contain.rb +3 -1
- data/lib/puppet/parser/functions/create_resources.rb +18 -14
- data/lib/puppet/parser/functions/defined.rb +104 -102
- data/lib/puppet/parser/functions/dig.rb +26 -24
- data/lib/puppet/parser/functions/digest.rb +3 -1
- data/lib/puppet/parser/functions/each.rb +101 -99
- data/lib/puppet/parser/functions/epp.rb +4 -3
- data/lib/puppet/parser/functions/fail.rb +11 -9
- data/lib/puppet/parser/functions/file.rb +16 -14
- data/lib/puppet/parser/functions/filter.rb +57 -55
- data/lib/puppet/parser/functions/find_file.rb +19 -18
- data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
- data/lib/puppet/parser/functions/generate.rb +23 -21
- data/lib/puppet/parser/functions/hiera.rb +95 -93
- data/lib/puppet/parser/functions/hiera_array.rb +83 -82
- data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
- data/lib/puppet/parser/functions/hiera_include.rb +93 -92
- data/lib/puppet/parser/functions/include.rb +5 -3
- data/lib/puppet/parser/functions/inline_epp.rb +4 -3
- data/lib/puppet/parser/functions/inline_template.rb +15 -13
- data/lib/puppet/parser/functions/lest.rb +36 -34
- data/lib/puppet/parser/functions/lookup.rb +132 -130
- data/lib/puppet/parser/functions/map.rb +54 -52
- data/lib/puppet/parser/functions/match.rb +31 -29
- data/lib/puppet/parser/functions/md5.rb +4 -2
- data/lib/puppet/parser/functions/new.rb +916 -915
- data/lib/puppet/parser/functions/next.rb +36 -34
- data/lib/puppet/parser/functions/realize.rb +13 -11
- data/lib/puppet/parser/functions/reduce.rb +134 -132
- data/lib/puppet/parser/functions/regsubst.rb +8 -5
- data/lib/puppet/parser/functions/require.rb +8 -5
- data/lib/puppet/parser/functions/return.rb +90 -88
- data/lib/puppet/parser/functions/reverse_each.rb +59 -57
- data/lib/puppet/parser/functions/scanf.rb +25 -23
- data/lib/puppet/parser/functions/sha1.rb +4 -2
- data/lib/puppet/parser/functions/sha256.rb +3 -1
- data/lib/puppet/parser/functions/shellquote.rb +2 -0
- data/lib/puppet/parser/functions/slice.rb +27 -25
- data/lib/puppet/parser/functions/split.rb +7 -6
- data/lib/puppet/parser/functions/sprintf.rb +8 -7
- data/lib/puppet/parser/functions/step.rb +62 -60
- data/lib/puppet/parser/functions/strftime.rb +175 -173
- data/lib/puppet/parser/functions/tag.rb +10 -7
- data/lib/puppet/parser/functions/tagged.rb +16 -13
- data/lib/puppet/parser/functions/template.rb +27 -24
- data/lib/puppet/parser/functions/then.rb +54 -52
- data/lib/puppet/parser/functions/type.rb +36 -34
- data/lib/puppet/parser/functions/versioncmp.rb +3 -2
- data/lib/puppet/parser/functions/with.rb +22 -20
- data/lib/puppet/parser/functions.rb +12 -9
- data/lib/puppet/parser/parser_factory.rb +2 -0
- data/lib/puppet/parser/relationship.rb +9 -3
- data/lib/puppet/parser/resource/param.rb +4 -2
- data/lib/puppet/parser/resource.rb +42 -40
- data/lib/puppet/parser/scope.rb +84 -70
- data/lib/puppet/parser/script_compiler.rb +12 -12
- data/lib/puppet/parser/templatewrapper.rb +3 -2
- data/lib/puppet/parser/type_loader.rb +31 -30
- data/lib/puppet/parser.rb +3 -1
- data/lib/puppet/plugins/configuration.rb +2 -0
- data/lib/puppet/plugins/syntax_checkers.rb +2 -1
- data/lib/puppet/plugins.rb +3 -1
- data/lib/puppet/pops/adaptable.rb +5 -3
- data/lib/puppet/pops/adapters.rb +4 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
- data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
- data/lib/puppet/pops/evaluator/closure.rb +272 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
- data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
- data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
- data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
- data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
- data/lib/puppet/pops/functions/dispatch.rb +7 -7
- data/lib/puppet/pops/functions/dispatcher.rb +8 -7
- data/lib/puppet/pops/functions/function.rb +18 -20
- data/lib/puppet/pops/issue_reporter.rb +25 -22
- data/lib/puppet/pops/issues.rb +10 -5
- data/lib/puppet/pops/label_provider.rb +6 -4
- data/lib/puppet/pops/loader/base_loader.rb +4 -4
- data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
- data/lib/puppet/pops/loader/gem_support.rb +5 -2
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
- data/lib/puppet/pops/loader/loader.rb +8 -8
- data/lib/puppet/pops/loader/loader_paths.rb +42 -41
- data/lib/puppet/pops/loader/module_loaders.rb +45 -49
- data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
- data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
- data/lib/puppet/pops/loader/static_loader.rb +29 -27
- data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
- data/lib/puppet/pops/loader/typed_name.rb +4 -2
- data/lib/puppet/pops/loader/uri_helper.rb +3 -1
- data/lib/puppet/pops/loaders.rb +27 -23
- data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/context.rb +32 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
- data/lib/puppet/pops/lookup/data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/explainer.rb +47 -45
- data/lib/puppet/pops/lookup/function_provider.rb +8 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
- data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
- data/lib/puppet/pops/lookup/interpolation.rb +21 -10
- data/lib/puppet/pops/lookup/invocation.rb +4 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
- data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
- data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
- data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
- data/lib/puppet/pops/lookup.rb +16 -11
- data/lib/puppet/pops/merge_strategy.rb +22 -16
- data/lib/puppet/pops/migration/migration_checker.rb +8 -5
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +18 -18
- data/lib/puppet/pops/model/factory.rb +33 -31
- data/lib/puppet/pops/model/model_label_provider.rb +5 -2
- data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
- data/lib/puppet/pops/model/pn_transformer.rb +5 -6
- data/lib/puppet/pops/model/tree_dumper.rb +7 -4
- data/lib/puppet/pops/parser/code_merger.rb +3 -3
- data/lib/puppet/pops/parser/epp_parser.rb +6 -5
- data/lib/puppet/pops/parser/epp_support.rb +10 -9
- data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
- data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
- data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
- data/lib/puppet/pops/parser/lexer2.rb +74 -62
- data/lib/puppet/pops/parser/lexer_support.rb +57 -57
- data/lib/puppet/pops/parser/locatable.rb +2 -2
- data/lib/puppet/pops/parser/locator.rb +47 -43
- data/lib/puppet/pops/parser/parser_support.rb +22 -21
- data/lib/puppet/pops/parser/pn_parser.rb +10 -9
- data/lib/puppet/pops/parser/slurp_support.rb +41 -40
- data/lib/puppet/pops/patterns.rb +14 -14
- data/lib/puppet/pops/pcore.rb +7 -6
- data/lib/puppet/pops/pn.rb +8 -5
- data/lib/puppet/pops/puppet_stack.rb +3 -1
- data/lib/puppet/pops/resource/param.rb +13 -12
- data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
- data/lib/puppet/pops/semantic_error.rb +3 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
- data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
- data/lib/puppet/pops/serialization/deserializer.rb +3 -0
- data/lib/puppet/pops/serialization/extension.rb +8 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
- data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
- data/lib/puppet/pops/serialization/json.rb +9 -5
- data/lib/puppet/pops/serialization/json_path.rb +3 -1
- data/lib/puppet/pops/serialization/object.rb +6 -3
- data/lib/puppet/pops/serialization/serializer.rb +20 -16
- data/lib/puppet/pops/serialization/time_factory.rb +2 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
- data/lib/puppet/pops/serialization.rb +10 -8
- data/lib/puppet/pops/time/timespan.rb +33 -21
- data/lib/puppet/pops/time/timestamp.rb +12 -5
- data/lib/puppet/pops/types/annotatable.rb +3 -2
- data/lib/puppet/pops/types/annotation.rb +6 -4
- data/lib/puppet/pops/types/class_loader.rb +17 -15
- data/lib/puppet/pops/types/implementation_registry.rb +4 -1
- data/lib/puppet/pops/types/iterable.rb +24 -14
- data/lib/puppet/pops/types/p_binary_type.rb +6 -6
- data/lib/puppet/pops/types/p_init_type.rb +15 -12
- data/lib/puppet/pops/types/p_meta_type.rb +6 -5
- data/lib/puppet/pops/types/p_object_type.rb +104 -79
- data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
- data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
- data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
- data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
- data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
- data/lib/puppet/pops/types/p_uri_type.rb +41 -33
- data/lib/puppet/pops/types/puppet_object.rb +2 -1
- data/lib/puppet/pops/types/recursion_guard.rb +12 -6
- data/lib/puppet/pops/types/ruby_generator.rb +19 -14
- data/lib/puppet/pops/types/ruby_method.rb +8 -7
- data/lib/puppet/pops/types/string_converter.rb +113 -103
- data/lib/puppet/pops/types/tree_iterators.rb +16 -20
- data/lib/puppet/pops/types/type_acceptor.rb +2 -0
- data/lib/puppet/pops/types/type_asserter.rb +5 -3
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +56 -49
- data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
- data/lib/puppet/pops/types/type_factory.rb +25 -16
- data/lib/puppet/pops/types/type_formatter.rb +60 -65
- data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
- data/lib/puppet/pops/types/type_parser.rb +124 -117
- data/lib/puppet/pops/types/type_set_reference.rb +3 -0
- data/lib/puppet/pops/types/type_with_members.rb +2 -2
- data/lib/puppet/pops/types/types.rb +267 -249
- data/lib/puppet/pops/utils.rb +43 -45
- data/lib/puppet/pops/validation/checker4_0.rb +65 -58
- data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
- data/lib/puppet/pops/validation.rb +26 -23
- data/lib/puppet/pops/visitable.rb +2 -0
- data/lib/puppet/pops/visitor.rb +18 -4
- data/lib/puppet/pops.rb +6 -3
- data/lib/puppet/property/boolean.rb +2 -0
- data/lib/puppet/property/ensure.rb +17 -16
- data/lib/puppet/property/keyvalue.rb +15 -14
- data/lib/puppet/property/list.rb +10 -9
- data/lib/puppet/property/ordered_list.rb +6 -5
- data/lib/puppet/property.rb +47 -48
- data/lib/puppet/provider/aix_object.rb +15 -9
- data/lib/puppet/provider/command.rb +2 -0
- data/lib/puppet/provider/confine.rb +2 -0
- data/lib/puppet/provider/exec/posix.rb +4 -1
- data/lib/puppet/provider/exec/shell.rb +2 -0
- data/lib/puppet/provider/exec/windows.rb +6 -4
- data/lib/puppet/provider/exec.rb +6 -4
- data/lib/puppet/provider/file/posix.rb +37 -19
- data/lib/puppet/provider/file/windows.rb +28 -29
- data/lib/puppet/provider/group/aix.rb +4 -2
- data/lib/puppet/provider/group/directoryservice.rb +7 -5
- data/lib/puppet/provider/group/groupadd.rb +16 -10
- data/lib/puppet/provider/group/ldap.rb +3 -0
- data/lib/puppet/provider/group/pw.rb +4 -3
- data/lib/puppet/provider/group/windows_adsi.rb +10 -7
- data/lib/puppet/provider/ldap.rb +5 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +8 -8
- data/lib/puppet/provider/nameservice.rb +23 -19
- data/lib/puppet/provider/network_device.rb +2 -2
- data/lib/puppet/provider/package/aix.rb +29 -27
- data/lib/puppet/provider/package/appdmg.rb +24 -22
- data/lib/puppet/provider/package/apple.rb +7 -5
- data/lib/puppet/provider/package/apt.rb +28 -25
- data/lib/puppet/provider/package/aptitude.rb +3 -3
- data/lib/puppet/provider/package/aptrpm.rb +18 -14
- data/lib/puppet/provider/package/blastwave.rb +19 -22
- data/lib/puppet/provider/package/dnf.rb +12 -5
- data/lib/puppet/provider/package/dnfmodule.rb +17 -15
- data/lib/puppet/provider/package/dpkg.rb +24 -25
- data/lib/puppet/provider/package/fink.rb +17 -15
- data/lib/puppet/provider/package/freebsd.rb +6 -4
- data/lib/puppet/provider/package/gem.rb +29 -26
- data/lib/puppet/provider/package/hpux.rb +9 -7
- data/lib/puppet/provider/package/macports.rb +6 -4
- data/lib/puppet/provider/package/nim.rb +27 -28
- data/lib/puppet/provider/package/openbsd.rb +37 -34
- data/lib/puppet/provider/package/opkg.rb +17 -14
- data/lib/puppet/provider/package/pacman.rb +39 -42
- data/lib/puppet/provider/package/pip.rb +32 -31
- data/lib/puppet/provider/package/pip2.rb +3 -2
- data/lib/puppet/provider/package/pip3.rb +3 -2
- data/lib/puppet/provider/package/pkg.rb +46 -41
- data/lib/puppet/provider/package/pkgdmg.rb +23 -17
- data/lib/puppet/provider/package/pkgin.rb +14 -13
- data/lib/puppet/provider/package/pkgng.rb +20 -15
- data/lib/puppet/provider/package/pkgutil.rb +40 -41
- data/lib/puppet/provider/package/portage.rb +73 -69
- data/lib/puppet/provider/package/ports.rb +19 -16
- data/lib/puppet/provider/package/portupgrade.rb +48 -55
- data/lib/puppet/provider/package/puppet_gem.rb +6 -15
- data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
- data/lib/puppet/provider/package/rpm.rb +45 -40
- data/lib/puppet/provider/package/rug.rb +11 -11
- data/lib/puppet/provider/package/sun.rb +28 -24
- data/lib/puppet/provider/package/sunfreeware.rb +3 -1
- data/lib/puppet/provider/package/tdnf.rb +9 -2
- data/lib/puppet/provider/package/up2date.rb +10 -10
- data/lib/puppet/provider/package/urpmi.rb +9 -7
- data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
- data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
- data/lib/puppet/provider/package/windows/package.rb +8 -5
- data/lib/puppet/provider/package/windows.rb +10 -9
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +65 -62
- data/lib/puppet/provider/package/zypper.rb +29 -29
- data/lib/puppet/provider/package.rb +9 -7
- data/lib/puppet/provider/package_targetable.rb +5 -3
- data/lib/puppet/provider/parsedfile.rb +21 -17
- data/lib/puppet/provider/service/base.rb +19 -23
- data/lib/puppet/provider/service/bsd.rb +7 -5
- data/lib/puppet/provider/service/daemontools.rb +42 -39
- data/lib/puppet/provider/service/debian.rb +12 -10
- data/lib/puppet/provider/service/freebsd.rb +50 -52
- data/lib/puppet/provider/service/gentoo.rb +11 -9
- data/lib/puppet/provider/service/init.rb +33 -31
- data/lib/puppet/provider/service/launchd.rb +38 -31
- data/lib/puppet/provider/service/openbsd.rb +17 -16
- data/lib/puppet/provider/service/openrc.rb +6 -5
- data/lib/puppet/provider/service/openwrt.rb +7 -6
- data/lib/puppet/provider/service/rcng.rb +7 -5
- data/lib/puppet/provider/service/redhat.rb +10 -7
- data/lib/puppet/provider/service/runit.rb +16 -15
- data/lib/puppet/provider/service/service.rb +7 -8
- data/lib/puppet/provider/service/smf.rb +42 -37
- data/lib/puppet/provider/service/src.rb +29 -29
- data/lib/puppet/provider/service/systemd.rb +48 -48
- data/lib/puppet/provider/service/upstart.rb +37 -37
- data/lib/puppet/provider/service/windows.rb +45 -48
- data/lib/puppet/provider/user/aix.rb +24 -20
- data/lib/puppet/provider/user/directoryservice.rb +98 -91
- data/lib/puppet/provider/user/hpux.rb +33 -35
- data/lib/puppet/provider/user/ldap.rb +13 -10
- data/lib/puppet/provider/user/openbsd.rb +24 -22
- data/lib/puppet/provider/user/pw.rb +8 -7
- data/lib/puppet/provider/user/user_role_add.rb +40 -36
- data/lib/puppet/provider/user/useradd.rb +64 -53
- data/lib/puppet/provider/user/windows_adsi.rb +14 -10
- data/lib/puppet/provider.rb +20 -19
- data/lib/puppet/reference/configuration.rb +55 -47
- data/lib/puppet/reference/function.rb +2 -0
- data/lib/puppet/reference/indirection.rb +33 -28
- data/lib/puppet/reference/metaparameter.rb +3 -1
- data/lib/puppet/reference/providers.rb +12 -10
- data/lib/puppet/reference/report.rb +2 -0
- data/lib/puppet/reference/type.rb +7 -5
- data/lib/puppet/relationship.rb +10 -9
- data/lib/puppet/reports/http.rb +3 -2
- data/lib/puppet/reports/log.rb +4 -3
- data/lib/puppet/reports/store.rb +9 -6
- data/lib/puppet/reports.rb +8 -6
- data/lib/puppet/resource/catalog.rb +54 -53
- data/lib/puppet/resource/status.rb +9 -7
- data/lib/puppet/resource/type.rb +65 -41
- data/lib/puppet/resource/type_collection.rb +10 -6
- data/lib/puppet/resource.rb +91 -81
- data/lib/puppet/runtime.rb +2 -0
- data/lib/puppet/scheduler/job.rb +2 -0
- data/lib/puppet/scheduler/scheduler.rb +4 -2
- data/lib/puppet/scheduler/splay_job.rb +16 -3
- data/lib/puppet/scheduler/timer.rb +2 -0
- data/lib/puppet/scheduler.rb +3 -1
- data/lib/puppet/settings/alias_setting.rb +5 -5
- data/lib/puppet/settings/array_setting.rb +2 -1
- data/lib/puppet/settings/autosign_setting.rb +2 -1
- data/lib/puppet/settings/base_setting.rb +23 -18
- data/lib/puppet/settings/boolean_setting.rb +5 -3
- data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
- data/lib/puppet/settings/config_file.rb +11 -9
- data/lib/puppet/settings/directory_setting.rb +2 -0
- data/lib/puppet/settings/duration_setting.rb +5 -4
- data/lib/puppet/settings/enum_setting.rb +3 -1
- data/lib/puppet/settings/environment_conf.rb +19 -15
- data/lib/puppet/settings/errors.rb +6 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
- data/lib/puppet/settings/file_setting.rb +15 -24
- data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
- data/lib/puppet/settings/ini_file.rb +5 -3
- data/lib/puppet/settings/integer_setting.rb +3 -1
- data/lib/puppet/settings/path_setting.rb +2 -0
- data/lib/puppet/settings/port_setting.rb +4 -2
- data/lib/puppet/settings/priority_setting.rb +13 -12
- data/lib/puppet/settings/server_list_setting.rb +7 -6
- data/lib/puppet/settings/string_setting.rb +2 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
- data/lib/puppet/settings/terminus_setting.rb +2 -0
- data/lib/puppet/settings/ttl_setting.rb +7 -5
- data/lib/puppet/settings/value_translator.rb +9 -7
- data/lib/puppet/settings.rb +171 -163
- data/lib/puppet/ssl/base.rb +9 -6
- data/lib/puppet/ssl/certificate.rb +6 -4
- data/lib/puppet/ssl/certificate_request.rb +34 -38
- data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
- data/lib/puppet/ssl/certificate_signer.rb +3 -3
- data/lib/puppet/ssl/digest.rb +2 -0
- data/lib/puppet/ssl/error.rb +3 -0
- data/lib/puppet/ssl/oids.rb +11 -9
- data/lib/puppet/ssl/openssl_loader.rb +6 -4
- data/lib/puppet/ssl/ssl_context.rb +2 -0
- data/lib/puppet/ssl/ssl_provider.rb +13 -9
- data/lib/puppet/ssl/state_machine.rb +153 -22
- data/lib/puppet/ssl/verifier.rb +3 -2
- data/lib/puppet/ssl.rb +3 -1
- data/lib/puppet/syntax_checkers/base64.rb +7 -5
- data/lib/puppet/syntax_checkers/epp.rb +7 -6
- data/lib/puppet/syntax_checkers/json.rb +7 -7
- data/lib/puppet/syntax_checkers/pp.rb +7 -6
- data/lib/puppet/syntax_checkers.rb +3 -1
- data/lib/puppet/test/test_helper.rb +30 -44
- data/lib/puppet/thread_local.rb +2 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
- data/lib/puppet/transaction/event.rb +8 -5
- data/lib/puppet/transaction/event_manager.rb +12 -11
- data/lib/puppet/transaction/persistence.rb +16 -16
- data/lib/puppet/transaction/report.rb +34 -27
- data/lib/puppet/transaction/resource_harness.rb +17 -9
- data/lib/puppet/transaction.rb +37 -35
- data/lib/puppet/trusted_external.rb +10 -5
- data/lib/puppet/type/component.rb +14 -7
- data/lib/puppet/type/exec.rb +71 -61
- data/lib/puppet/type/file/checksum.rb +6 -2
- data/lib/puppet/type/file/checksum_value.rb +6 -4
- data/lib/puppet/type/file/content.rb +24 -20
- data/lib/puppet/type/file/ctime.rb +5 -4
- data/lib/puppet/type/file/data_sync.rb +9 -6
- data/lib/puppet/type/file/ensure.rb +24 -25
- data/lib/puppet/type/file/group.rb +3 -1
- data/lib/puppet/type/file/mode.rb +14 -11
- data/lib/puppet/type/file/mtime.rb +5 -3
- data/lib/puppet/type/file/owner.rb +3 -2
- data/lib/puppet/type/file/selcontext.rb +24 -23
- data/lib/puppet/type/file/source.rb +31 -30
- data/lib/puppet/type/file/target.rb +23 -25
- data/lib/puppet/type/file/type.rb +3 -2
- data/lib/puppet/type/file.rb +60 -54
- data/lib/puppet/type/filebucket.rb +6 -4
- data/lib/puppet/type/group.rb +14 -13
- data/lib/puppet/type/notify.rb +4 -3
- data/lib/puppet/type/package.rb +47 -45
- data/lib/puppet/type/resources.rb +39 -34
- data/lib/puppet/type/schedule.rb +21 -21
- data/lib/puppet/type/service.rb +19 -18
- data/lib/puppet/type/stage.rb +2 -0
- data/lib/puppet/type/tidy.rb +40 -34
- data/lib/puppet/type/user.rb +62 -56
- data/lib/puppet/type/whit.rb +2 -1
- data/lib/puppet/type.rb +180 -227
- data/lib/puppet/util/at_fork/noop.rb +2 -0
- data/lib/puppet/util/at_fork/solaris.rb +37 -39
- data/lib/puppet/util/at_fork.rb +3 -1
- data/lib/puppet/util/autoload.rb +10 -4
- data/lib/puppet/util/backups.rb +13 -11
- data/lib/puppet/util/character_encoding.rb +9 -6
- data/lib/puppet/util/checksums.rb +16 -12
- data/lib/puppet/util/classgen.rb +18 -23
- data/lib/puppet/util/colors.rb +67 -65
- data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
- data/lib/puppet/util/command_line/trollop.rb +695 -673
- data/lib/puppet/util/command_line.rb +7 -5
- data/lib/puppet/util/constant_inflector.rb +4 -3
- data/lib/puppet/util/diff.rb +17 -18
- data/lib/puppet/util/docs.rb +8 -4
- data/lib/puppet/util/errors.rb +13 -11
- data/lib/puppet/util/execution.rb +58 -36
- data/lib/puppet/util/execution_stub.rb +2 -0
- data/lib/puppet/util/feature.rb +9 -9
- data/lib/puppet/util/file_watcher.rb +3 -0
- data/lib/puppet/util/fileparsing.rb +20 -24
- data/lib/puppet/util/filetype.rb +43 -43
- data/lib/puppet/util/http_proxy.rb +2 -0
- data/lib/puppet/util/inifile.rb +13 -18
- data/lib/puppet/util/instance_loader.rb +3 -0
- data/lib/puppet/util/json.rb +2 -0
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +21 -19
- data/lib/puppet/util/ldap/generator.rb +2 -0
- data/lib/puppet/util/ldap/manager.rb +20 -21
- data/lib/puppet/util/ldap.rb +2 -0
- data/lib/puppet/util/libuser.rb +3 -2
- data/lib/puppet/util/limits.rb +2 -0
- data/lib/puppet/util/lockfile.rb +8 -8
- data/lib/puppet/util/log/destination.rb +4 -3
- data/lib/puppet/util/log/destinations.rb +20 -20
- data/lib/puppet/util/log.rb +40 -31
- data/lib/puppet/util/logging.rb +34 -30
- data/lib/puppet/util/metaid.rb +2 -1
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +22 -30
- data/lib/puppet/util/multi_match.rb +9 -5
- data/lib/puppet/util/network_device/base.rb +3 -2
- data/lib/puppet/util/network_device/config.rb +9 -9
- data/lib/puppet/util/network_device/transport/base.rb +1 -1
- data/lib/puppet/util/network_device/transport.rb +2 -0
- data/lib/puppet/util/network_device.rb +2 -0
- data/lib/puppet/util/package/version/debian.rb +33 -31
- data/lib/puppet/util/package/version/gem.rb +3 -0
- data/lib/puppet/util/package/version/pip.rb +14 -8
- data/lib/puppet/util/package/version/range/eq.rb +4 -1
- data/lib/puppet/util/package/version/range/gt.rb +3 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/lt.rb +4 -1
- data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/min_max.rb +5 -0
- data/lib/puppet/util/package/version/range/simple.rb +2 -0
- data/lib/puppet/util/package/version/range.rb +9 -5
- data/lib/puppet/util/package/version/rpm.rb +7 -5
- data/lib/puppet/util/package.rb +5 -2
- data/lib/puppet/util/pidlock.rb +11 -10
- data/lib/puppet/util/platform.rb +5 -3
- data/lib/puppet/util/plist.rb +16 -16
- data/lib/puppet/util/posix.rb +27 -24
- data/lib/puppet/util/profiler/aggregate.rb +7 -10
- data/lib/puppet/util/profiler/around_profiler.rb +2 -1
- data/lib/puppet/util/profiler/logging.rb +3 -1
- data/lib/puppet/util/profiler/object_counts.rb +2 -0
- data/lib/puppet/util/profiler/wall_clock.rb +6 -5
- data/lib/puppet/util/profiler.rb +2 -0
- data/lib/puppet/util/provider_features.rb +10 -6
- data/lib/puppet/util/psych_support.rb +2 -0
- data/lib/puppet/util/rdoc/code_objects.rb +18 -20
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
- data/lib/puppet/util/rdoc/parser.rb +3 -1
- data/lib/puppet/util/rdoc.rb +10 -9
- data/lib/puppet/util/reference.rb +7 -32
- data/lib/puppet/util/resource_template.rb +3 -1
- data/lib/puppet/util/retry_action.rb +6 -5
- data/lib/puppet/util/rpm_compare.rb +31 -28
- data/lib/puppet/util/rubygems.rb +3 -3
- data/lib/puppet/util/run_mode.rb +46 -4
- data/lib/puppet/util/selinux.rb +72 -38
- data/lib/puppet/util/skip_tags.rb +2 -0
- data/lib/puppet/util/splayer.rb +2 -0
- data/lib/puppet/util/storage.rb +13 -13
- data/lib/puppet/util/suidmanager.rb +38 -37
- data/lib/puppet/util/symbolic_file_mode.rb +76 -76
- data/lib/puppet/util/tag_set.rb +4 -2
- data/lib/puppet/util/tagging.rb +12 -13
- data/lib/puppet/util/terminal.rb +6 -4
- data/lib/puppet/util/user_attr.rb +9 -7
- data/lib/puppet/util/warnings.rb +4 -0
- data/lib/puppet/util/watched_file.rb +4 -1
- data/lib/puppet/util/watcher/change_watcher.rb +2 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
- data/lib/puppet/util/watcher/timer.rb +2 -0
- data/lib/puppet/util/watcher.rb +5 -5
- data/lib/puppet/util/windows/access_control_entry.rb +3 -1
- data/lib/puppet/util/windows/access_control_list.rb +10 -7
- data/lib/puppet/util/windows/adsi.rb +82 -74
- data/lib/puppet/util/windows/com.rb +10 -7
- data/lib/puppet/util/windows/daemon.rb +77 -80
- data/lib/puppet/util/windows/error.rb +7 -5
- data/lib/puppet/util/windows/eventlog.rb +13 -9
- data/lib/puppet/util/windows/file.rb +49 -45
- data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
- data/lib/puppet/util/windows/principal.rb +37 -34
- data/lib/puppet/util/windows/process.rb +36 -40
- data/lib/puppet/util/windows/registry.rb +60 -58
- data/lib/puppet/util/windows/root_certs.rb +5 -3
- data/lib/puppet/util/windows/security.rb +92 -90
- data/lib/puppet/util/windows/security_descriptor.rb +2 -0
- data/lib/puppet/util/windows/service.rb +24 -12
- data/lib/puppet/util/windows/sid.rb +23 -21
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/user.rb +56 -55
- data/lib/puppet/util/windows.rb +8 -1
- data/lib/puppet/util/yaml.rb +3 -1
- data/lib/puppet/util.rb +112 -161
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/version.rb +5 -2
- data/lib/puppet/x509/cert_provider.rb +48 -12
- data/lib/puppet/x509/pem_store.rb +3 -1
- data/lib/puppet/x509.rb +2 -0
- data/lib/puppet.rb +22 -19
- data/lib/puppet_pal.rb +2 -0
- data/lib/puppet_x.rb +2 -0
- data/locales/puppet.pot +9723 -5
- data/man/man5/puppet.conf.5 +121 -912
- data/man/man8/puppet-agent.8 +39 -107
- data/man/man8/puppet-apply.8 +18 -51
- data/man/man8/puppet-catalog.8 +25 -122
- data/man/man8/puppet-config.8 +22 -70
- data/man/man8/puppet-describe.8 +6 -22
- data/man/man8/puppet-device.8 +13 -49
- data/man/man8/puppet-doc.8 +8 -24
- data/man/man8/puppet-epp.8 +23 -168
- data/man/man8/puppet-facts.8 +14 -92
- data/man/man8/puppet-filebucket.8 +22 -54
- data/man/man8/puppet-generate.8 +5 -35
- data/man/man8/puppet-help.8 +8 -29
- data/man/man8/puppet-lookup.8 +25 -61
- data/man/man8/puppet-module.8 +19 -124
- data/man/man8/puppet-node.8 +47 -68
- data/man/man8/puppet-parser.8 +12 -55
- data/man/man8/puppet-plugin.8 +10 -33
- data/man/man8/puppet-report.8 +10 -53
- data/man/man8/puppet-resource.8 +19 -44
- data/man/man8/puppet-script.8 +11 -33
- data/man/man8/puppet-ssl.8 +12 -30
- data/man/man8/puppet.8 +90 -20
- data/tasks/tag.rake +34 -0
- metadata +77 -65
- data/CONTRIBUTING.md +0 -161
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/lib/puppet/external/pson/common.rb +0 -374
- data/lib/puppet/external/pson/pure/generator.rb +0 -395
- data/lib/puppet/external/pson/pure/parser.rb +0 -308
- data/lib/puppet/external/pson/pure.rb +0 -15
- data/lib/puppet/external/pson/version.rb +0 -8
- data/lib/puppet/module_tool/contents_description.rb +0 -89
- data/tasks/benchmark.rake +0 -180
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -194
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
data/lib/puppet/parser/scope.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# The scope class, which handles storing and retrieving variables and types and
|
3
4
|
# such.
|
4
5
|
require 'forwardable'
|
@@ -16,7 +17,7 @@ class Puppet::Parser::Scope
|
|
16
17
|
extend Forwardable
|
17
18
|
|
18
19
|
# Variables that always exist with nil value even if not set
|
19
|
-
BUILT_IN_VARS = [
|
20
|
+
BUILT_IN_VARS = %w[module_name caller_module_name].freeze
|
20
21
|
EMPTY_HASH = {}.freeze
|
21
22
|
|
22
23
|
Puppet::Util.logmethods(self)
|
@@ -42,7 +43,6 @@ class Puppet::Parser::Scope
|
|
42
43
|
# Abstract base class for LocalScope and MatchScope
|
43
44
|
#
|
44
45
|
class Ephemeral
|
45
|
-
|
46
46
|
attr_reader :parent
|
47
47
|
|
48
48
|
def initialize(parent = nil)
|
@@ -75,8 +75,7 @@ class Puppet::Parser::Scope
|
|
75
75
|
end
|
76
76
|
|
77
77
|
class LocalScope < Ephemeral
|
78
|
-
|
79
|
-
def initialize(parent=nil)
|
78
|
+
def initialize(parent = nil)
|
80
79
|
super parent
|
81
80
|
@symbols = {}
|
82
81
|
end
|
@@ -112,7 +111,7 @@ class Puppet::Parser::Scope
|
|
112
111
|
if (v == :undef || v.nil?) && !include_undef
|
113
112
|
target.delete(k)
|
114
113
|
else
|
115
|
-
target[
|
114
|
+
target[k] = v
|
116
115
|
end
|
117
116
|
end
|
118
117
|
target
|
@@ -120,7 +119,6 @@ class Puppet::Parser::Scope
|
|
120
119
|
end
|
121
120
|
|
122
121
|
class MatchScope < Ephemeral
|
123
|
-
|
124
122
|
attr_accessor :match_data
|
125
123
|
|
126
124
|
def initialize(parent = nil, match_data = nil)
|
@@ -165,7 +163,6 @@ class Puppet::Parser::Scope
|
|
165
163
|
# do not include match data ($0-$n)
|
166
164
|
super
|
167
165
|
end
|
168
|
-
|
169
166
|
end
|
170
167
|
|
171
168
|
# @api private
|
@@ -213,6 +210,7 @@ class Puppet::Parser::Scope
|
|
213
210
|
# Parameters are evaluated in the order they have in the @params hash.
|
214
211
|
keys = @params.keys
|
215
212
|
raise Puppet::Error, _("%{callee}: expects a value for parameter $%{to}") % { callee: @callee_name, to: to } if keys.index(to) < keys.index(from)
|
213
|
+
|
216
214
|
raise Puppet::Error, _("%{callee}: default expression for $%{from} tries to illegally access not yet evaluated $%{to}") % { callee: @callee_name, from: from, to: to }
|
217
215
|
end
|
218
216
|
private :parameter_reference_failure
|
@@ -227,12 +225,14 @@ class Puppet::Parser::Scope
|
|
227
225
|
def [](name)
|
228
226
|
access = @params[name]
|
229
227
|
return super if access.nil?
|
228
|
+
|
230
229
|
throw(:unevaluated_parameter, name) unless access.assigned?
|
231
230
|
access.value
|
232
231
|
end
|
233
232
|
|
234
233
|
def []=(name, value)
|
235
234
|
raise Puppet::Error, _("Attempt to assign variable %{name} when evaluating parameters") % { name: name } if @read_only
|
235
|
+
|
236
236
|
@params[name] ||= Access.new
|
237
237
|
@params[name].value = value
|
238
238
|
end
|
@@ -260,11 +260,10 @@ class Puppet::Parser::Scope
|
|
260
260
|
end
|
261
261
|
|
262
262
|
def to_hash
|
263
|
-
|
263
|
+
@params.select { |_, access| access.assigned? }.transform_values(&:value)
|
264
264
|
end
|
265
265
|
end
|
266
266
|
|
267
|
-
|
268
267
|
# Returns true if the variable of the given name has a non nil value.
|
269
268
|
# TODO: This has vague semantics - does the variable exist or not?
|
270
269
|
# use ['name'] to get nil or value, and if nil check with exist?('name')
|
@@ -272,7 +271,7 @@ class Puppet::Parser::Scope
|
|
272
271
|
#
|
273
272
|
def include?(name)
|
274
273
|
catch(:undefined_variable) {
|
275
|
-
return !
|
274
|
+
return !self[name].nil?
|
276
275
|
}
|
277
276
|
false
|
278
277
|
end
|
@@ -283,25 +282,25 @@ class Puppet::Parser::Scope
|
|
283
282
|
#
|
284
283
|
def exist?(name)
|
285
284
|
# Note !! ensure the answer is boolean
|
286
|
-
!!
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
else
|
285
|
+
!!if name =~ /^(.*)::(.+)$/
|
286
|
+
class_name = ::Regexp.last_match(1)
|
287
|
+
variable_name = ::Regexp.last_match(2)
|
288
|
+
return true if class_name == '' && BUILT_IN_VARS.include?(variable_name)
|
289
|
+
|
290
|
+
# lookup class, but do not care if it is not evaluated since that will result
|
291
|
+
# in it not existing anyway. (Tests may run with just scopes and no evaluated classes which
|
292
|
+
# will result in class_scope for "" not returning topscope).
|
293
|
+
klass = find_hostclass(class_name)
|
294
|
+
other_scope = klass.nil? ? nil : class_scope(klass)
|
295
|
+
if other_scope.nil?
|
296
|
+
class_name == '' ? compiler.topscope.exist?(variable_name) : false
|
297
|
+
else
|
298
|
+
other_scope.exist?(variable_name)
|
299
|
+
end
|
300
|
+
else # rubocop:disable Layout/ElseAlignment
|
302
301
|
next_scope = inherited_scope || enclosing_scope
|
303
302
|
effective_symtable(true).include?(name) || next_scope && next_scope.exist?(name) || BUILT_IN_VARS.include?(name)
|
304
|
-
end
|
303
|
+
end # rubocop:disable Layout/EndAlignment
|
305
304
|
end
|
306
305
|
|
307
306
|
# Returns true if the given name is bound in the current (most nested) scope for assignments.
|
@@ -350,7 +349,7 @@ class Puppet::Parser::Scope
|
|
350
349
|
environment.known_resource_types.find_definition(name)
|
351
350
|
end
|
352
351
|
|
353
|
-
def find_global_scope
|
352
|
+
def find_global_scope
|
354
353
|
# walk upwards until first found node_scope or top_scope
|
355
354
|
if is_nodescope? || is_topscope?
|
356
355
|
self
|
@@ -387,12 +386,12 @@ class Puppet::Parser::Scope
|
|
387
386
|
# @symtable = Ephemeral.new(nil, true)
|
388
387
|
@symtable = LocalScope.new(nil)
|
389
388
|
|
390
|
-
@ephemeral = [
|
389
|
+
@ephemeral = [MatchScope.new(@symtable, nil)]
|
391
390
|
|
392
391
|
# All of the defaults set for types. It's a hash of hashes,
|
393
392
|
# with the first key being the type, then the second key being
|
394
393
|
# the parameter.
|
395
|
-
@defaults = Hash.new { |dhash,type|
|
394
|
+
@defaults = Hash.new { |dhash, type|
|
396
395
|
dhash[type] = {}
|
397
396
|
}
|
398
397
|
|
@@ -426,7 +425,7 @@ class Puppet::Parser::Scope
|
|
426
425
|
# additive -- it collects all of the defaults, with defaults
|
427
426
|
# in closer scopes overriding those in later scopes.
|
428
427
|
#
|
429
|
-
# The lookupdefaults searches in the
|
428
|
+
# The lookupdefaults searches in the order:
|
430
429
|
#
|
431
430
|
# * inherited
|
432
431
|
# * contained (recursive)
|
@@ -437,7 +436,7 @@ class Puppet::Parser::Scope
|
|
437
436
|
|
438
437
|
# first collect the values from the parents
|
439
438
|
if parent
|
440
|
-
parent.lookupdefaults(type).each { |var,value|
|
439
|
+
parent.lookupdefaults(type).each { |var, value|
|
441
440
|
values[var] = value
|
442
441
|
}
|
443
442
|
end
|
@@ -445,7 +444,7 @@ class Puppet::Parser::Scope
|
|
445
444
|
# then override them with any current values
|
446
445
|
# this should probably be done differently
|
447
446
|
if @defaults.include?(type)
|
448
|
-
@defaults[type].each { |var,value|
|
447
|
+
@defaults[type].each { |var, value|
|
449
448
|
values[var] = value
|
450
449
|
}
|
451
450
|
end
|
@@ -471,7 +470,7 @@ class Puppet::Parser::Scope
|
|
471
470
|
krt.find_definition(name) || krt.find_hostclass(name)
|
472
471
|
end
|
473
472
|
|
474
|
-
def undef_as(x,v)
|
473
|
+
def undef_as(x, v)
|
475
474
|
if v.nil? or v == :undef
|
476
475
|
x
|
477
476
|
else
|
@@ -497,7 +496,7 @@ class Puppet::Parser::Scope
|
|
497
496
|
# If name has '::' in it, it is resolved as a qualified variable
|
498
497
|
unless (idx = name.index('::')).nil?
|
499
498
|
# Always drop leading '::' if present as that is how the values are keyed.
|
500
|
-
return lookup_qualified_variable(idx == 0 ? name[2
|
499
|
+
return lookup_qualified_variable(idx == 0 ? name[2..] : name, options)
|
501
500
|
end
|
502
501
|
|
503
502
|
# At this point, search is for a non qualified (simple) name
|
@@ -520,22 +519,28 @@ class Puppet::Parser::Scope
|
|
520
519
|
#
|
521
520
|
UNCAUGHT_THROW_EXCEPTION = defined?(UncaughtThrowError) ? UncaughtThrowError : ArgumentError
|
522
521
|
|
523
|
-
def variable_not_found(name, reason=nil)
|
522
|
+
def variable_not_found(name, reason = nil)
|
524
523
|
# Built in variables and numeric variables always exist
|
525
524
|
if BUILT_IN_VARS.include?(name) || name =~ Puppet::Pops::Patterns::NUMERIC_VAR_NAME
|
526
525
|
return nil
|
527
526
|
end
|
527
|
+
|
528
528
|
begin
|
529
529
|
throw(:undefined_variable, reason)
|
530
|
-
rescue
|
530
|
+
rescue UNCAUGHT_THROW_EXCEPTION
|
531
531
|
case Puppet[:strict]
|
532
532
|
when :off
|
533
533
|
# do nothing
|
534
534
|
when :warning
|
535
535
|
Puppet.warn_once(UNDEFINED_VARIABLES_KIND, _("Variable: %{name}") % { name: name },
|
536
|
-
|
536
|
+
_("Undefined variable '%{name}'; %{reason}") % { name: name, reason: reason })
|
537
537
|
when :error
|
538
|
-
|
538
|
+
if Puppet.lookup(:avoid_hiera_interpolation_errors) { false }
|
539
|
+
Puppet.warn_once(UNDEFINED_VARIABLES_KIND, _("Variable: %{name}") % { name: name },
|
540
|
+
_("Interpolation failed with '%{name}', but compilation continuing; %{reason}") % { name: name, reason: reason })
|
541
|
+
else
|
542
|
+
raise ArgumentError, _("Undefined variable '%{name}'; %{reason}") % { name: name, reason: reason }
|
543
|
+
end
|
539
544
|
end
|
540
545
|
end
|
541
546
|
nil
|
@@ -574,13 +579,13 @@ class Puppet::Parser::Scope
|
|
574
579
|
#
|
575
580
|
# @return [Puppet::Parser::Scope] The scope or nil if there is no enclosing scope
|
576
581
|
def enclosing_scope
|
577
|
-
|
582
|
+
if has_enclosing_scope?
|
578
583
|
if parent.is_topscope? || parent.is_nodescope?
|
579
584
|
parent
|
580
585
|
else
|
581
586
|
parent.enclosing_scope
|
582
587
|
end
|
583
|
-
|
588
|
+
end
|
584
589
|
end
|
585
590
|
|
586
591
|
def is_classscope?
|
@@ -604,12 +609,13 @@ class Puppet::Parser::Scope
|
|
604
609
|
# not found - search inherited scope for class
|
605
610
|
leaf_index = fqn.rindex('::')
|
606
611
|
unless leaf_index.nil?
|
607
|
-
leaf_name = fqn[
|
608
|
-
class_name = fqn[
|
612
|
+
leaf_name = fqn[(leaf_index + 2)..]
|
613
|
+
class_name = fqn[0, leaf_index]
|
609
614
|
begin
|
610
615
|
qs = qualified_scope(class_name)
|
611
616
|
unless qs.nil?
|
612
617
|
return qs.get_local_variable(leaf_name) if qs.has_local_variable?(leaf_name)
|
618
|
+
|
613
619
|
iscope = qs.inherited_scope
|
614
620
|
return lookup_qualified_variable("#{iscope.source.name}::#{leaf_name}", options) unless iscope.nil?
|
615
621
|
end
|
@@ -619,7 +625,7 @@ class Puppet::Parser::Scope
|
|
619
625
|
end
|
620
626
|
end
|
621
627
|
# report with leading '::' by using empty class_name
|
622
|
-
|
628
|
+
handle_not_found('', fqn, options)
|
623
629
|
end
|
624
630
|
|
625
631
|
# @api private
|
@@ -647,15 +653,17 @@ class Puppet::Parser::Scope
|
|
647
653
|
end
|
648
654
|
|
649
655
|
def has_enclosing_scope?
|
650
|
-
!
|
656
|
+
!parent.nil?
|
651
657
|
end
|
652
658
|
private :has_enclosing_scope?
|
653
659
|
|
654
660
|
def qualified_scope(classname)
|
655
661
|
klass = find_hostclass(classname)
|
656
|
-
raise _("class %{classname} could not be found") % { classname: classname }
|
662
|
+
raise _("class %{classname} could not be found") % { classname: classname } unless klass
|
663
|
+
|
657
664
|
kscope = class_scope(klass)
|
658
665
|
raise _("class %{classname} has not been evaluated") % { classname: classname } unless kscope
|
666
|
+
|
659
667
|
kscope
|
660
668
|
end
|
661
669
|
private :qualified_scope
|
@@ -668,7 +676,7 @@ class Puppet::Parser::Scope
|
|
668
676
|
def to_hash(recursive = true, include_undef = false)
|
669
677
|
if recursive and has_enclosing_scope?
|
670
678
|
target = enclosing_scope.to_hash(recursive)
|
671
|
-
|
679
|
+
unless (inherited = inherited_scope).nil?
|
672
680
|
target.merge!(inherited.to_hash(recursive))
|
673
681
|
end
|
674
682
|
else
|
@@ -687,6 +695,7 @@ class Puppet::Parser::Scope
|
|
687
695
|
|
688
696
|
def parent_module_name
|
689
697
|
return nil unless @parent && @parent.source
|
698
|
+
|
690
699
|
@parent.source.module_name
|
691
700
|
end
|
692
701
|
|
@@ -703,6 +712,7 @@ class Puppet::Parser::Scope
|
|
703
712
|
if table.include?(param.name)
|
704
713
|
raise Puppet::ParseError.new(_("Default already defined for %{type} { %{param} }; cannot redefine") % { type: type, param: param.name }, param.file, param.line)
|
705
714
|
end
|
715
|
+
|
706
716
|
table[param.name] = param
|
707
717
|
}
|
708
718
|
end
|
@@ -710,13 +720,14 @@ class Puppet::Parser::Scope
|
|
710
720
|
# Merge all settings for the given _env_name_ into this scope
|
711
721
|
# @param env_name [Symbol] the name of the environment
|
712
722
|
# @param set_in_this_scope [Boolean] if the settings variables should also be set in this instance of scope
|
713
|
-
def merge_settings(env_name, set_in_this_scope=true)
|
723
|
+
def merge_settings(env_name, set_in_this_scope = true)
|
714
724
|
settings = Puppet.settings
|
715
725
|
table = effective_symtable(false)
|
716
726
|
global_table = compiler.qualified_variables
|
717
727
|
all_local = {}
|
718
728
|
settings.each_key do |name|
|
719
729
|
next if :name == name
|
730
|
+
|
720
731
|
key = name.to_s
|
721
732
|
value = transform_setting(settings.value_sym(name, env_name))
|
722
733
|
if set_in_this_scope
|
@@ -732,13 +743,14 @@ class Puppet::Parser::Scope
|
|
732
743
|
end
|
733
744
|
|
734
745
|
def transform_setting(val)
|
735
|
-
|
746
|
+
case val
|
747
|
+
when String, Numeric, true, false, nil
|
736
748
|
val
|
737
|
-
|
738
|
-
val.map {|entry| transform_setting(entry) }
|
739
|
-
|
749
|
+
when Array
|
750
|
+
val.map { |entry| transform_setting(entry) }
|
751
|
+
when Hash
|
740
752
|
result = {}
|
741
|
-
val.each {|k,v| result[transform_setting(k)] = transform_setting(v) }
|
753
|
+
val.each { |k, v| result[transform_setting(k)] = transform_setting(v) }
|
742
754
|
result
|
743
755
|
else
|
744
756
|
# not ideal, but required as there are settings values that are special
|
@@ -761,7 +773,7 @@ class Puppet::Parser::Scope
|
|
761
773
|
# when you need to set options.
|
762
774
|
def setvar(name, value, options = EMPTY_HASH)
|
763
775
|
if name =~ /^[0-9]+$/
|
764
|
-
raise Puppet::ParseError
|
776
|
+
raise Puppet::ParseError, _("Cannot assign to a numeric match result variable '$%{name}'") % { name: name } # unless options[:ephemeral]
|
765
777
|
end
|
766
778
|
unless name.is_a? String
|
767
779
|
raise Puppet::ParseError, _("Scope variable name %{name} is a %{class_type}, not a string") % { name: name.inspect, class_type: name.class }
|
@@ -823,10 +835,10 @@ class Puppet::Parser::Scope
|
|
823
835
|
def deep_freeze(object)
|
824
836
|
case object
|
825
837
|
when Array
|
826
|
-
object.each {|v| deep_freeze(v) }
|
838
|
+
object.each { |v| deep_freeze(v) }
|
827
839
|
object.freeze
|
828
840
|
when Hash
|
829
|
-
object.each {|k, v| deep_freeze(k); deep_freeze(v) }
|
841
|
+
object.each { |k, v| deep_freeze(k); deep_freeze(v) }
|
830
842
|
object.freeze
|
831
843
|
when NilClass, Numeric, TrueClass, FalseClass
|
832
844
|
# do nothing
|
@@ -882,16 +894,16 @@ class Puppet::Parser::Scope
|
|
882
894
|
# shorten the path if possible
|
883
895
|
path = detail[0]
|
884
896
|
env_path = nil
|
885
|
-
env_path = environment.configuration.path_to_env unless
|
897
|
+
env_path = environment.configuration.path_to_env unless environment.nil? || environment.configuration.nil?
|
886
898
|
# check module paths first since they may be in the environment (i.e. they are longer)
|
887
|
-
module_path = environment.full_modulepath.detect {|m_path| path.start_with?(m_path) }
|
899
|
+
module_path = environment.full_modulepath.detect { |m_path| path.start_with?(m_path) }
|
888
900
|
if module_path
|
889
|
-
path = "<module>" + path[module_path.length
|
901
|
+
path = "<module>" + path[module_path.length..]
|
890
902
|
elsif env_path && path && path.start_with?(env_path)
|
891
|
-
path = "<env>" + path[env_path.length
|
903
|
+
path = "<env>" + path[env_path.length..]
|
892
904
|
end
|
893
905
|
# Make the output appear as "Scope(path, line)"
|
894
|
-
"Scope(#{[path, detail[1]].join(', ')})"
|
906
|
+
"Scope(#{[path, detail[1]].join(', ')})"
|
895
907
|
end
|
896
908
|
|
897
909
|
alias_method :inspect, :to_s
|
@@ -954,7 +966,7 @@ class Puppet::Parser::Scope
|
|
954
966
|
def without_ephemeral_scopes
|
955
967
|
save_ephemeral = @ephemeral
|
956
968
|
begin
|
957
|
-
@ephemeral = [
|
969
|
+
@ephemeral = [@symtable]
|
958
970
|
yield(self)
|
959
971
|
ensure
|
960
972
|
@ephemeral = save_ephemeral
|
@@ -1004,13 +1016,14 @@ class Puppet::Parser::Scope
|
|
1004
1016
|
when Hash
|
1005
1017
|
# Create local scope ephemeral and set all values from hash
|
1006
1018
|
new_ephemeral(true)
|
1007
|
-
match.each {|k,v| setvar(k, v, :file => file, :line => line, :ephemeral => true) }
|
1019
|
+
match.each { |k, v| setvar(k, v, :file => file, :line => line, :ephemeral => true) }
|
1008
1020
|
# Must always have an inner match data scope (that starts out as transparent)
|
1009
1021
|
# In 3x slightly wasteful, since a new nested scope is created for a match
|
1010
1022
|
# (TODO: Fix that problem)
|
1011
1023
|
new_ephemeral(false)
|
1012
1024
|
else
|
1013
|
-
raise(ArgumentError,_("Invalid regex match data. Got a %{klass}") % { klass: match.class }) unless match.is_a?(MatchData)
|
1025
|
+
raise(ArgumentError, _("Invalid regex match data. Got a %{klass}") % { klass: match.class }) unless match.is_a?(MatchData)
|
1026
|
+
|
1014
1027
|
# Create a match ephemeral and set values from match data
|
1015
1028
|
new_match_scope(match)
|
1016
1029
|
end
|
@@ -1031,10 +1044,9 @@ class Puppet::Parser::Scope
|
|
1031
1044
|
raise Puppet::DevError, _("Scope#find_defined_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead")
|
1032
1045
|
end
|
1033
1046
|
|
1034
|
-
|
1035
1047
|
def method_missing(method, *args, &block)
|
1036
1048
|
method.to_s =~ /^function_(.*)$/
|
1037
|
-
name =
|
1049
|
+
name = ::Regexp.last_match(1)
|
1038
1050
|
super unless name
|
1039
1051
|
super unless Puppet::Parser::Functions.function(name)
|
1040
1052
|
# In odd circumstances, this might not end up defined by the previous
|
@@ -1072,6 +1084,7 @@ class Puppet::Parser::Scope
|
|
1072
1084
|
raise ArgumentError, _("Cannot use undef as a class name")
|
1073
1085
|
when String
|
1074
1086
|
raise ArgumentError, _("Cannot use empty string as a class name") if name.empty?
|
1087
|
+
|
1075
1088
|
name.sub(/^([^:]{1,2})/, '::\1')
|
1076
1089
|
|
1077
1090
|
when Puppet::Resource
|
@@ -1079,8 +1092,9 @@ class Puppet::Parser::Scope
|
|
1079
1092
|
name.title.sub(/^([^:]{1,2})/, '::\1')
|
1080
1093
|
|
1081
1094
|
when Puppet::Pops::Types::PClassType
|
1082
|
-
#TRANSLATORS "Class" and "Type" are Puppet keywords and should not be translated
|
1095
|
+
# TRANSLATORS "Class" and "Type" are Puppet keywords and should not be translated
|
1083
1096
|
raise ArgumentError, _("Cannot use an unspecific Class[] Type") unless name.class_name
|
1097
|
+
|
1084
1098
|
name.class_name.sub(/^([^:]{1,2})/, '::\1')
|
1085
1099
|
|
1086
1100
|
when Puppet::Pops::Types::PResourceType
|
@@ -1106,15 +1120,15 @@ class Puppet::Parser::Scope
|
|
1106
1120
|
|
1107
1121
|
def assert_class_and_title(type_name, title)
|
1108
1122
|
if type_name.nil? || type_name == ''
|
1109
|
-
#TRANSLATORS "Resource" is a class name and should not be translated
|
1123
|
+
# TRANSLATORS "Resource" is a class name and should not be translated
|
1110
1124
|
raise ArgumentError, _("Cannot use an unspecific Resource[] where a Resource['class', name] is expected")
|
1111
1125
|
end
|
1112
1126
|
unless type_name =~ /^[Cc]lass$/
|
1113
|
-
#TRANSLATORS "Resource" is a class name and should not be translated
|
1127
|
+
# TRANSLATORS "Resource" is a class name and should not be translated
|
1114
1128
|
raise ArgumentError, _("Cannot use a Resource[%{type_name}] where a Resource['class', name] is expected") % { type_name: type_name }
|
1115
1129
|
end
|
1116
1130
|
if title.nil?
|
1117
|
-
#TRANSLATORS "Resource" is a class name and should not be translated
|
1131
|
+
# TRANSLATORS "Resource" is a class name and should not be translated
|
1118
1132
|
raise ArgumentError, _("Cannot use an unspecific Resource['class'] where a Resource['class', name] is expected")
|
1119
1133
|
end
|
1120
1134
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../puppet/loaders'
|
2
4
|
require_relative '../../puppet/pops'
|
3
5
|
|
@@ -29,7 +31,7 @@ class Puppet::Parser::ScriptCompiler
|
|
29
31
|
attr_reader :node_name
|
30
32
|
|
31
33
|
def with_context_overrides(description = '', &block)
|
32
|
-
Puppet.override(
|
34
|
+
Puppet.override(@context_overrides, description, &block)
|
33
35
|
end
|
34
36
|
|
35
37
|
# Evaluates the configured setup for a script + code in an environment with modules
|
@@ -39,9 +41,8 @@ class Puppet::Parser::ScriptCompiler
|
|
39
41
|
Puppet[:strict] = :error
|
40
42
|
|
41
43
|
# TRANSLATORS, "For running script" is not user facing
|
42
|
-
Puppet.override(
|
43
|
-
|
44
|
-
#TRANSLATORS "main" is a function name and should not be translated
|
44
|
+
Puppet.override(@context_overrides, "For running script") do
|
45
|
+
# TRANSLATORS "main" is a function name and should not be translated
|
45
46
|
result = Puppet::Util::Profiler.profile(_("Script: Evaluated main"), [:script, :evaluate_main]) { evaluate_main }
|
46
47
|
if block_given?
|
47
48
|
yield self
|
@@ -49,7 +50,6 @@ class Puppet::Parser::ScriptCompiler
|
|
49
50
|
result
|
50
51
|
end
|
51
52
|
end
|
52
|
-
|
53
53
|
rescue Puppet::ParseErrorWithIssue => detail
|
54
54
|
detail.node = node_name
|
55
55
|
Puppet.log_exception(detail)
|
@@ -61,11 +61,11 @@ class Puppet::Parser::ScriptCompiler
|
|
61
61
|
end
|
62
62
|
|
63
63
|
# Constructs the overrides for the context
|
64
|
-
def context_overrides
|
64
|
+
def context_overrides
|
65
65
|
{
|
66
66
|
:current_environment => environment,
|
67
|
-
:global_scope => @topscope,
|
68
|
-
:loaders
|
67
|
+
:global_scope => @topscope, # 4x placeholder for new global scope
|
68
|
+
:loaders => @loaders, # 4x loaders
|
69
69
|
:rich_data => true,
|
70
70
|
}
|
71
71
|
end
|
@@ -73,7 +73,7 @@ class Puppet::Parser::ScriptCompiler
|
|
73
73
|
# Create a script compiler for the given environment where errors are logged as coming
|
74
74
|
# from the given node_name
|
75
75
|
#
|
76
|
-
def initialize(environment, node_name, for_agent=false)
|
76
|
+
def initialize(environment, node_name, for_agent = false)
|
77
77
|
@environment = environment
|
78
78
|
@node_name = node_name
|
79
79
|
|
@@ -103,13 +103,13 @@ class Puppet::Parser::ScriptCompiler
|
|
103
103
|
# or in the top scope itself (notably, the $settings:: namespace is initialized
|
104
104
|
# as just a set of variables in that namespace - there is no named scope for 'settings'
|
105
105
|
# when scripting.
|
106
|
-
#
|
106
|
+
#
|
107
107
|
# Keeping this method here to get specific error as being unsure if there are functions/logic
|
108
108
|
# that will call this. The AbstractCompiler defines this method, but maybe it does not
|
109
109
|
# have to (TODO).
|
110
110
|
#
|
111
111
|
def newscope(parent, options = {})
|
112
|
-
|
112
|
+
raise _('having multiple named scopes is not supported when scripting')
|
113
113
|
end
|
114
114
|
|
115
115
|
private
|
@@ -118,6 +118,6 @@ class Puppet::Parser::ScriptCompiler
|
|
118
118
|
def evaluate_main
|
119
119
|
@loaders.pre_load
|
120
120
|
program = @loaders.load_main_manifest
|
121
|
-
|
121
|
+
program.nil? ? nil : Puppet::Pops::Parser::EvaluatingParser.singleton.evaluator.evaluate(program, @topscope)
|
122
122
|
end
|
123
123
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet/parser/files'
|
3
4
|
require 'erb'
|
4
5
|
require_relative '../../puppet/file_system'
|
@@ -32,7 +33,7 @@ class Puppet::Parser::TemplateWrapper
|
|
32
33
|
# @api private
|
33
34
|
def script_line
|
34
35
|
identifier = Regexp.escape(@__file__ || "(erb)")
|
35
|
-
(caller.find { |l| l =~ /#{identifier}:/ }||"")[/:(\d+):/,1]
|
36
|
+
(caller.find { |l| l =~ /#{identifier}:/ } || "")[/:(\d+):/, 1]
|
36
37
|
end
|
37
38
|
private :script_line
|
38
39
|
|
@@ -99,6 +100,6 @@ class Puppet::Parser::TemplateWrapper
|
|
99
100
|
end
|
100
101
|
|
101
102
|
def to_s
|
102
|
-
"template[#{
|
103
|
+
"template[#{@__file__ || 'inline'}]"
|
103
104
|
end
|
104
105
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'find'
|
2
4
|
require 'forwardable'
|
3
5
|
require_relative '../../puppet/parser/parser_factory'
|
4
6
|
|
5
7
|
class Puppet::Parser::TypeLoader
|
6
|
-
extend
|
8
|
+
extend Forwardable
|
7
9
|
|
8
10
|
class TypeLoaderError < StandardError; end
|
9
11
|
|
@@ -18,7 +20,7 @@ class Puppet::Parser::TypeLoader
|
|
18
20
|
modname, files = Puppet::Parser::Files.find_manifests_in_modules(pattern, environment)
|
19
21
|
if files.empty?
|
20
22
|
abspat = File.expand_path(pattern, dir)
|
21
|
-
file_pattern = abspat + (File.extname(abspat).empty? ? '.pp' : ''
|
23
|
+
file_pattern = abspat + (File.extname(abspat).empty? ? '.pp' : '')
|
22
24
|
|
23
25
|
files = Dir.glob(file_pattern).uniq.reject { |f| FileTest.directory?(f) }
|
24
26
|
modname = nil
|
@@ -63,28 +65,27 @@ class Puppet::Parser::TypeLoader
|
|
63
65
|
# Try to load the object with the given fully qualified name.
|
64
66
|
def try_load_fqname(type, fqname)
|
65
67
|
return nil if fqname == "" # special-case main.
|
68
|
+
|
66
69
|
files_to_try_for(fqname).each do |filename|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
return result
|
73
|
-
end
|
74
|
-
rescue TypeLoaderError
|
75
|
-
# I'm not convinced we should just drop these errors, but this
|
76
|
-
# preserves existing behaviours.
|
70
|
+
imported_types = import_from_modules(filename)
|
71
|
+
result = imported_types.find { |t| t.type == type and t.name == fqname }
|
72
|
+
if result
|
73
|
+
Puppet.debug { "Automatically imported #{fqname} from #{filename} into #{environment}" }
|
74
|
+
return result
|
77
75
|
end
|
76
|
+
rescue TypeLoaderError
|
77
|
+
# I'm not convinced we should just drop these errors, but this
|
78
|
+
# preserves existing behaviours.
|
78
79
|
end
|
79
80
|
# Nothing found.
|
80
|
-
|
81
|
+
nil
|
81
82
|
end
|
82
83
|
|
83
84
|
def parse_file(file)
|
84
85
|
Puppet.debug { "importing '#{file}' in environment #{environment}" }
|
85
86
|
parser = Puppet::Parser::ParserFactory.parser
|
86
87
|
parser.file = file
|
87
|
-
|
88
|
+
parser.parse
|
88
89
|
end
|
89
90
|
|
90
91
|
private
|
@@ -106,25 +107,25 @@ class Puppet::Parser::TypeLoader
|
|
106
107
|
@loaded ||= {}
|
107
108
|
loaded_asts = []
|
108
109
|
files.reject { |file| @loaded[file] }.each do |file|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
110
|
+
# The squelch_parse_errors use case is for parsing for the purpose of searching
|
111
|
+
# for information and it should not abort.
|
112
|
+
# There is currently one user in indirector/resourcetype/parser
|
113
|
+
#
|
114
|
+
if Puppet.lookup(:squelch_parse_errors) { false }
|
115
|
+
begin
|
116
|
+
loaded_asts << parse_file(file)
|
117
|
+
rescue => e
|
118
|
+
# Resume from errors so that all parseable files may
|
119
|
+
# still be parsed. Mark this file as loaded so that
|
120
|
+
# it would not be parsed next time (handle it as if
|
121
|
+
# it was successfully parsed).
|
122
|
+
Puppet.debug { "Unable to parse '#{file}': #{e.message}" }
|
123
|
+
end
|
124
|
+
else
|
115
125
|
loaded_asts << parse_file(file)
|
116
|
-
rescue => e
|
117
|
-
# Resume from errors so that all parseable files may
|
118
|
-
# still be parsed. Mark this file as loaded so that
|
119
|
-
# it would not be parsed next time (handle it as if
|
120
|
-
# it was successfully parsed).
|
121
|
-
Puppet.debug { "Unable to parse '#{file}': #{e.message}" }
|
122
126
|
end
|
123
|
-
else
|
124
|
-
loaded_asts << parse_file(file)
|
125
|
-
end
|
126
127
|
|
127
|
-
|
128
|
+
@loaded[file] = true
|
128
129
|
end
|
129
130
|
|
130
131
|
loaded_asts.collect do |ast|
|