puppet 8.2.0-x64-mingw32 → 8.4.0-x64-mingw32
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/Gemfile +1 -1
- data/Gemfile.lock +45 -43
- data/README.md +4 -4
- data/Rakefile +0 -27
- data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
- data/ext/project_data.yaml +2 -2
- data/ext/windows/service/daemon.rb +4 -5
- data/lib/hiera/puppet_function.rb +3 -2
- data/lib/hiera/scope.rb +2 -2
- data/lib/hiera_puppet.rb +1 -3
- data/lib/puppet/agent/disabler.rb +2 -1
- data/lib/puppet/agent/locker.rb +1 -2
- data/lib/puppet/agent.rb +2 -1
- data/lib/puppet/application/agent.rb +292 -291
- data/lib/puppet/application/apply.rb +143 -139
- data/lib/puppet/application/catalog.rb +1 -0
- data/lib/puppet/application/config.rb +1 -0
- data/lib/puppet/application/describe.rb +53 -55
- data/lib/puppet/application/device.rb +150 -150
- data/lib/puppet/application/doc.rb +61 -60
- data/lib/puppet/application/epp.rb +1 -0
- data/lib/puppet/application/face_base.rb +8 -7
- data/lib/puppet/application/facts.rb +1 -0
- data/lib/puppet/application/filebucket.rb +186 -184
- data/lib/puppet/application/generate.rb +1 -0
- data/lib/puppet/application/help.rb +1 -0
- data/lib/puppet/application/indirection_base.rb +1 -0
- data/lib/puppet/application/lookup.rb +168 -171
- data/lib/puppet/application/module.rb +1 -0
- data/lib/puppet/application/node.rb +1 -0
- data/lib/puppet/application/parser.rb +1 -0
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/report.rb +1 -0
- data/lib/puppet/application/resource.rb +111 -108
- data/lib/puppet/application/script.rb +92 -93
- data/lib/puppet/application/ssl.rb +119 -83
- data/lib/puppet/application.rb +13 -8
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/coercion.rb +3 -2
- data/lib/puppet/compilable_resource_type.rb +1 -0
- data/lib/puppet/concurrent/lock.rb +1 -2
- data/lib/puppet/concurrent/synchronized.rb +1 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +1 -0
- data/lib/puppet/configurer/downloader.rb +1 -1
- data/lib/puppet/configurer/fact_handler.rb +2 -1
- data/lib/puppet/configurer/plugin_handler.rb +1 -0
- data/lib/puppet/configurer.rb +17 -13
- data/lib/puppet/confine/any.rb +1 -0
- data/lib/puppet/confine/boolean.rb +1 -0
- data/lib/puppet/confine/exists.rb +1 -0
- data/lib/puppet/confine/false.rb +1 -0
- data/lib/puppet/confine/feature.rb +1 -0
- data/lib/puppet/confine/true.rb +1 -0
- data/lib/puppet/confine/variable.rb +1 -0
- data/lib/puppet/confine.rb +2 -0
- data/lib/puppet/confine_collection.rb +3 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context/trusted_information.rb +1 -0
- data/lib/puppet/context.rb +1 -0
- data/lib/puppet/daemon.rb +4 -1
- data/lib/puppet/data_binding.rb +2 -1
- data/lib/puppet/datatypes/error.rb +2 -1
- data/lib/puppet/datatypes/impl/error.rb +1 -0
- data/lib/puppet/datatypes.rb +5 -1
- data/lib/puppet/defaults.rb +24 -23
- data/lib/puppet/environments.rb +3 -2
- data/lib/puppet/error.rb +9 -7
- data/lib/puppet/etc.rb +6 -3
- data/lib/puppet/external/dot.rb +12 -31
- data/lib/puppet/face/catalog/select.rb +2 -1
- data/lib/puppet/face/catalog.rb +3 -2
- data/lib/puppet/face/config.rb +19 -21
- data/lib/puppet/face/epp.rb +8 -8
- data/lib/puppet/face/facts.rb +4 -3
- data/lib/puppet/face/generate.rb +2 -0
- data/lib/puppet/face/help.rb +8 -7
- data/lib/puppet/face/module/changes.rb +2 -0
- data/lib/puppet/face/module/install.rb +2 -1
- data/lib/puppet/face/module/list.rb +9 -10
- data/lib/puppet/face/module/uninstall.rb +1 -0
- data/lib/puppet/face/module.rb +1 -0
- data/lib/puppet/face/node/clean.rb +2 -1
- data/lib/puppet/face/node.rb +2 -1
- data/lib/puppet/face/parser.rb +3 -3
- data/lib/puppet/face/plugin.rb +2 -1
- data/lib/puppet/face/report.rb +2 -1
- data/lib/puppet/face/resource.rb +1 -0
- data/lib/puppet/face.rb +1 -0
- data/lib/puppet/feature/base.rb +2 -1
- data/lib/puppet/feature/bolt.rb +1 -0
- data/lib/puppet/feature/cfpropertylist.rb +1 -0
- data/lib/puppet/feature/eventlog.rb +1 -0
- data/lib/puppet/feature/hiera_eyaml.rb +1 -0
- data/lib/puppet/feature/hocon.rb +1 -0
- data/lib/puppet/feature/libuser.rb +4 -3
- data/lib/puppet/feature/msgpack.rb +1 -0
- data/lib/puppet/feature/pe_license.rb +2 -1
- data/lib/puppet/feature/pson.rb +1 -0
- data/lib/puppet/feature/selinux.rb +1 -0
- data/lib/puppet/feature/ssh.rb +1 -0
- data/lib/puppet/feature/telnet.rb +1 -0
- data/lib/puppet/feature/zlib.rb +1 -0
- data/lib/puppet/ffi/posix/constants.rb +1 -0
- data/lib/puppet/ffi/posix/functions.rb +1 -1
- data/lib/puppet/ffi/posix.rb +1 -0
- data/lib/puppet/ffi/windows/api_types.rb +1 -0
- data/lib/puppet/ffi/windows/constants.rb +78 -77
- data/lib/puppet/ffi/windows/functions.rb +73 -73
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/ffi/windows.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +7 -1
- data/lib/puppet/file_bucket/file.rb +1 -0
- data/lib/puppet/file_bucket.rb +1 -0
- data/lib/puppet/file_serving/base.rb +13 -6
- data/lib/puppet/file_serving/configuration/parser.rb +3 -1
- data/lib/puppet/file_serving/configuration.rb +5 -3
- data/lib/puppet/file_serving/content.rb +1 -0
- data/lib/puppet/file_serving/fileset.rb +9 -6
- data/lib/puppet/file_serving/http_metadata.rb +1 -3
- data/lib/puppet/file_serving/metadata.rb +9 -10
- data/lib/puppet/file_serving/mount/file.rb +6 -3
- data/lib/puppet/file_serving/mount/locales.rb +2 -1
- data/lib/puppet/file_serving/mount/modules.rb +2 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
- data/lib/puppet/file_serving/mount/plugins.rb +2 -1
- data/lib/puppet/file_serving/mount/scripts.rb +2 -0
- data/lib/puppet/file_serving/mount/tasks.rb +2 -0
- data/lib/puppet/file_serving/mount.rb +2 -0
- data/lib/puppet/file_serving/terminus_helper.rb +1 -0
- data/lib/puppet/file_serving/terminus_selector.rb +1 -0
- data/lib/puppet/file_serving.rb +1 -0
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/jruby.rb +1 -0
- data/lib/puppet/file_system/memory_file.rb +2 -0
- data/lib/puppet/file_system/memory_impl.rb +3 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/posix.rb +5 -1
- data/lib/puppet/file_system/uniquefile.rb +11 -11
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/file_system.rb +3 -2
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +1 -3
- data/lib/puppet/forge/repository.rb +2 -0
- data/lib/puppet/forge.rb +3 -0
- data/lib/puppet/functions/abs.rb +2 -1
- data/lib/puppet/functions/alert.rb +1 -0
- data/lib/puppet/functions/all.rb +1 -0
- data/lib/puppet/functions/annotate.rb +1 -0
- data/lib/puppet/functions/any.rb +1 -0
- data/lib/puppet/functions/assert_type.rb +1 -0
- data/lib/puppet/functions/binary_file.rb +3 -1
- data/lib/puppet/functions/break.rb +2 -1
- data/lib/puppet/functions/call.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +1 -1
- data/lib/puppet/functions/ceiling.rb +2 -2
- data/lib/puppet/functions/chomp.rb +1 -1
- data/lib/puppet/functions/chop.rb +1 -1
- data/lib/puppet/functions/compare.rb +1 -0
- data/lib/puppet/functions/contain.rb +1 -0
- data/lib/puppet/functions/convert_to.rb +1 -0
- data/lib/puppet/functions/crit.rb +1 -0
- data/lib/puppet/functions/debug.rb +1 -0
- data/lib/puppet/functions/defined.rb +7 -4
- data/lib/puppet/functions/dig.rb +10 -8
- data/lib/puppet/functions/downcase.rb +1 -0
- data/lib/puppet/functions/each.rb +1 -0
- data/lib/puppet/functions/emerg.rb +1 -0
- data/lib/puppet/functions/empty.rb +1 -0
- data/lib/puppet/functions/epp.rb +1 -1
- data/lib/puppet/functions/err.rb +1 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +6 -4
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/find_file.rb +1 -0
- data/lib/puppet/functions/find_template.rb +1 -0
- data/lib/puppet/functions/flatten.rb +1 -0
- data/lib/puppet/functions/floor.rb +2 -2
- data/lib/puppet/functions/get.rb +2 -1
- data/lib/puppet/functions/getvar.rb +2 -1
- data/lib/puppet/functions/hiera.rb +1 -0
- data/lib/puppet/functions/hiera_array.rb +1 -0
- data/lib/puppet/functions/hiera_hash.rb +1 -0
- data/lib/puppet/functions/hiera_include.rb +2 -0
- data/lib/puppet/functions/hocon_data.rb +1 -0
- data/lib/puppet/functions/import.rb +1 -0
- data/lib/puppet/functions/include.rb +1 -0
- data/lib/puppet/functions/index.rb +2 -2
- data/lib/puppet/functions/info.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -1
- data/lib/puppet/functions/join.rb +2 -1
- data/lib/puppet/functions/json_data.rb +1 -0
- data/lib/puppet/functions/keys.rb +1 -0
- data/lib/puppet/functions/length.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -0
- data/lib/puppet/functions/lookup.rb +8 -9
- data/lib/puppet/functions/lstrip.rb +1 -1
- data/lib/puppet/functions/map.rb +1 -0
- data/lib/puppet/functions/match.rb +3 -1
- data/lib/puppet/functions/max.rb +4 -4
- data/lib/puppet/functions/min.rb +4 -4
- data/lib/puppet/functions/module_directory.rb +1 -0
- data/lib/puppet/functions/new.rb +2 -1
- data/lib/puppet/functions/next.rb +1 -0
- data/lib/puppet/functions/notice.rb +1 -0
- data/lib/puppet/functions/reduce.rb +1 -1
- data/lib/puppet/functions/regsubst.rb +1 -0
- data/lib/puppet/functions/require.rb +2 -0
- data/lib/puppet/functions/return.rb +1 -0
- data/lib/puppet/functions/reverse_each.rb +1 -0
- data/lib/puppet/functions/round.rb +1 -0
- data/lib/puppet/functions/rstrip.rb +1 -1
- data/lib/puppet/functions/scanf.rb +1 -0
- data/lib/puppet/functions/size.rb +1 -2
- data/lib/puppet/functions/slice.rb +2 -0
- data/lib/puppet/functions/sort.rb +1 -0
- data/lib/puppet/functions/split.rb +29 -1
- data/lib/puppet/functions/step.rb +1 -0
- data/lib/puppet/functions/strftime.rb +3 -2
- data/lib/puppet/functions/strip.rb +1 -1
- data/lib/puppet/functions/then.rb +2 -0
- data/lib/puppet/functions/tree_each.rb +1 -1
- data/lib/puppet/functions/type.rb +1 -0
- data/lib/puppet/functions/unique.rb +2 -1
- data/lib/puppet/functions/unwrap.rb +1 -0
- data/lib/puppet/functions/upcase.rb +1 -0
- data/lib/puppet/functions/values.rb +1 -0
- data/lib/puppet/functions/versioncmp.rb +2 -2
- data/lib/puppet/functions/warning.rb +1 -0
- data/lib/puppet/functions/with.rb +1 -0
- data/lib/puppet/functions/yaml_data.rb +1 -0
- data/lib/puppet/functions.rb +9 -9
- data/lib/puppet/generate/models/type/property.rb +2 -0
- data/lib/puppet/generate/models/type/type.rb +2 -0
- data/lib/puppet/generate/type.rb +6 -1
- data/lib/puppet/gettext/config.rb +6 -0
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/gettext/stubs.rb +1 -0
- data/lib/puppet/graph/key.rb +1 -0
- data/lib/puppet/graph/prioritizer.rb +1 -0
- data/lib/puppet/graph/rb_tree_map.rb +12 -2
- data/lib/puppet/graph/relationship_graph.rb +3 -2
- data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
- data/lib/puppet/graph/simple_graph.rb +38 -31
- data/lib/puppet/graph.rb +1 -0
- data/lib/puppet/http/client.rb +4 -1
- data/lib/puppet/http/dns.rb +5 -5
- data/lib/puppet/http/errors.rb +1 -0
- data/lib/puppet/http/external_client.rb +2 -2
- data/lib/puppet/http/factory.rb +1 -0
- data/lib/puppet/http/pool.rb +2 -1
- data/lib/puppet/http/pool_entry.rb +1 -0
- data/lib/puppet/http/proxy.rb +3 -2
- data/lib/puppet/http/redirector.rb +1 -0
- data/lib/puppet/http/resolver/server_list.rb +1 -1
- data/lib/puppet/http/resolver/settings.rb +1 -1
- data/lib/puppet/http/resolver/srv.rb +1 -1
- data/lib/puppet/http/resolver.rb +1 -0
- data/lib/puppet/http/response.rb +1 -0
- data/lib/puppet/http/response_converter.rb +1 -0
- data/lib/puppet/http/response_net_http.rb +1 -1
- data/lib/puppet/http/retry_after_handler.rb +1 -1
- data/lib/puppet/http/service/ca.rb +1 -0
- data/lib/puppet/http/service/compiler.rb +9 -3
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/http/service/puppetserver.rb +1 -1
- data/lib/puppet/http/service/report.rb +1 -1
- data/lib/puppet/http/service.rb +1 -0
- data/lib/puppet/http/session.rb +2 -1
- data/lib/puppet/http/site.rb +1 -0
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -40
- data/lib/puppet/indirector/catalog/json.rb +1 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
- data/lib/puppet/indirector/catalog/rest.rb +9 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -2
- data/lib/puppet/indirector/catalog/yaml.rb +1 -0
- data/lib/puppet/indirector/code.rb +1 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
- data/lib/puppet/indirector/data_binding/none.rb +1 -0
- data/lib/puppet/indirector/direct_file_server.rb +3 -1
- data/lib/puppet/indirector/envelope.rb +1 -0
- data/lib/puppet/indirector/errors.rb +1 -0
- data/lib/puppet/indirector/exec.rb +1 -0
- data/lib/puppet/indirector/face.rb +7 -6
- data/lib/puppet/indirector/fact_search.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -1
- data/lib/puppet/indirector/facts/json.rb +1 -0
- data/lib/puppet/indirector/facts/memory.rb +1 -0
- data/lib/puppet/indirector/facts/network_device.rb +1 -0
- data/lib/puppet/indirector/facts/rest.rb +1 -0
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/facts/yaml.rb +1 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +11 -6
- data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
- data/lib/puppet/indirector/file_content/file.rb +1 -0
- data/lib/puppet/indirector/file_content/file_server.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -0
- data/lib/puppet/indirector/file_content/selector.rb +1 -0
- data/lib/puppet/indirector/file_content.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
- data/lib/puppet/indirector/file_metadata.rb +1 -0
- data/lib/puppet/indirector/file_server.rb +2 -0
- data/lib/puppet/indirector/generic_http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +5 -4
- data/lib/puppet/indirector/indirection.rb +12 -2
- data/lib/puppet/indirector/json.rb +3 -1
- data/lib/puppet/indirector/memory.rb +2 -0
- data/lib/puppet/indirector/msgpack.rb +5 -2
- data/lib/puppet/indirector/node/exec.rb +3 -2
- data/lib/puppet/indirector/node/json.rb +1 -1
- data/lib/puppet/indirector/node/memory.rb +1 -0
- data/lib/puppet/indirector/node/msgpack.rb +1 -0
- data/lib/puppet/indirector/node/plain.rb +1 -0
- data/lib/puppet/indirector/node/rest.rb +1 -0
- data/lib/puppet/indirector/node/store_configs.rb +1 -2
- data/lib/puppet/indirector/node/yaml.rb +1 -0
- data/lib/puppet/indirector/none.rb +1 -0
- data/lib/puppet/indirector/plain.rb +1 -0
- data/lib/puppet/indirector/report/json.rb +1 -0
- data/lib/puppet/indirector/report/msgpack.rb +1 -0
- data/lib/puppet/indirector/report/processor.rb +2 -0
- data/lib/puppet/indirector/report/rest.rb +1 -0
- data/lib/puppet/indirector/report/yaml.rb +1 -0
- data/lib/puppet/indirector/request.rb +7 -5
- data/lib/puppet/indirector/resource/ral.rb +1 -0
- data/lib/puppet/indirector/resource/store_configs.rb +1 -0
- data/lib/puppet/indirector/resource/validator.rb +1 -0
- data/lib/puppet/indirector/rest.rb +1 -0
- data/lib/puppet/indirector/store_configs.rb +1 -0
- data/lib/puppet/indirector/terminus.rb +4 -1
- data/lib/puppet/indirector/yaml.rb +1 -0
- data/lib/puppet/indirector.rb +2 -0
- data/lib/puppet/info_service/class_information_service.rb +5 -3
- data/lib/puppet/info_service/plan_information_service.rb +1 -0
- data/lib/puppet/info_service/task_information_service.rb +2 -1
- data/lib/puppet/interface/action.rb +32 -27
- data/lib/puppet/interface/action_builder.rb +14 -14
- data/lib/puppet/interface/action_manager.rb +2 -0
- data/lib/puppet/interface/documentation.rb +21 -15
- data/lib/puppet/interface/face_collection.rb +5 -2
- data/lib/puppet/interface/option.rb +15 -4
- data/lib/puppet/interface/option_builder.rb +13 -9
- data/lib/puppet/interface/option_manager.rb +3 -2
- data/lib/puppet/interface.rb +3 -3
- data/lib/puppet/loaders.rb +1 -1
- data/lib/puppet/metatype/manager.rb +9 -8
- data/lib/puppet/module/plan.rb +10 -4
- data/lib/puppet/module/task.rb +8 -2
- data/lib/puppet/module.rb +13 -3
- data/lib/puppet/module_tool/applications/application.rb +6 -4
- data/lib/puppet/module_tool/applications/checksummer.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +32 -45
- data/lib/puppet/module_tool/applications/uninstaller.rb +22 -21
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +28 -26
- data/lib/puppet/module_tool/applications.rb +1 -0
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +1 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -0
- data/lib/puppet/module_tool/errors/installer.rb +4 -4
- data/lib/puppet/module_tool/errors/shared.rb +12 -12
- data/lib/puppet/module_tool/errors/uninstaller.rb +2 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +3 -3
- data/lib/puppet/module_tool/errors.rb +1 -0
- data/lib/puppet/module_tool/install_directory.rb +6 -4
- data/lib/puppet/module_tool/installed_modules.rb +2 -0
- data/lib/puppet/module_tool/local_tarball.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +21 -20
- data/lib/puppet/module_tool/shared_behaviors.rb +23 -21
- data/lib/puppet/module_tool/tar/gnu.rb +1 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -0
- data/lib/puppet/module_tool/tar.rb +2 -1
- data/lib/puppet/module_tool.rb +2 -2
- data/lib/puppet/network/authconfig.rb +1 -0
- data/lib/puppet/network/authorization.rb +1 -0
- data/lib/puppet/network/client_request.rb +1 -0
- data/lib/puppet/network/format.rb +5 -0
- data/lib/puppet/network/format_handler.rb +2 -1
- data/lib/puppet/network/format_support.rb +6 -5
- data/lib/puppet/network/formats.rb +18 -14
- data/lib/puppet/network/http/api/indirected_routes.rb +8 -8
- data/lib/puppet/network/http/api/indirection_type.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
- data/lib/puppet/network/http/api/master/v3.rb +1 -0
- data/lib/puppet/network/http/api/master.rb +1 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +20 -14
- data/lib/puppet/network/http/api/server/v3.rb +13 -13
- data/lib/puppet/network/http/api/server.rb +1 -0
- data/lib/puppet/network/http/api.rb +11 -10
- data/lib/puppet/network/http/connection.rb +1 -0
- data/lib/puppet/network/http/error.rb +2 -1
- data/lib/puppet/network/http/handler.rb +3 -2
- data/lib/puppet/network/http/issues.rb +1 -0
- data/lib/puppet/network/http/memory_response.rb +2 -1
- data/lib/puppet/network/http/request.rb +13 -6
- data/lib/puppet/network/http/response.rb +1 -0
- data/lib/puppet/network/http/route.rb +4 -2
- data/lib/puppet/network/http.rb +1 -0
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/network/uri.rb +1 -0
- data/lib/puppet/network.rb +1 -0
- data/lib/puppet/node/environment.rb +12 -9
- data/lib/puppet/node/facts.rb +2 -1
- data/lib/puppet/node.rb +3 -2
- data/lib/puppet/pal/catalog_compiler.rb +1 -3
- data/lib/puppet/pal/compiler.rb +6 -2
- data/lib/puppet/pal/function_signature.rb +2 -1
- data/lib/puppet/pal/json_catalog_encoder.rb +5 -1
- data/lib/puppet/pal/pal_api.rb +1 -0
- data/lib/puppet/pal/pal_impl.rb +20 -19
- data/lib/puppet/pal/plan_signature.rb +2 -1
- data/lib/puppet/pal/script_compiler.rb +3 -2
- data/lib/puppet/pal/task_signature.rb +14 -9
- data/lib/puppet/parameter/boolean.rb +1 -0
- data/lib/puppet/parameter/package_options.rb +1 -0
- data/lib/puppet/parameter/path.rb +3 -0
- data/lib/puppet/parameter/value.rb +1 -0
- data/lib/puppet/parameter/value_collection.rb +6 -6
- data/lib/puppet/parameter.rb +4 -3
- data/lib/puppet/parser/abstract_compiler.rb +0 -2
- data/lib/puppet/parser/ast/block_expression.rb +1 -0
- data/lib/puppet/parser/ast/branch.rb +1 -0
- data/lib/puppet/parser/ast/hostclass.rb +1 -0
- data/lib/puppet/parser/ast/leaf.rb +2 -0
- data/lib/puppet/parser/ast/node.rb +1 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +6 -6
- data/lib/puppet/parser/ast/resource.rb +2 -3
- data/lib/puppet/parser/ast/resource_instance.rb +2 -0
- data/lib/puppet/parser/ast/resourceparam.rb +6 -5
- data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
- data/lib/puppet/parser/ast.rb +4 -3
- data/lib/puppet/parser/catalog_compiler.rb +1 -2
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +3 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
- data/lib/puppet/parser/compiler.rb +10 -8
- data/lib/puppet/parser/e4_parser_adapter.rb +15 -15
- data/lib/puppet/parser/files.rb +5 -4
- data/lib/puppet/parser/functions/assert_type.rb +55 -54
- data/lib/puppet/parser/functions/binary_file.rb +19 -18
- data/lib/puppet/parser/functions/break.rb +35 -34
- data/lib/puppet/parser/functions/contain.rb +1 -0
- data/lib/puppet/parser/functions/create_resources.rb +8 -6
- data/lib/puppet/parser/functions/defined.rb +102 -101
- data/lib/puppet/parser/functions/dig.rb +33 -32
- data/lib/puppet/parser/functions/digest.rb +1 -0
- data/lib/puppet/parser/functions/each.rb +99 -98
- data/lib/puppet/parser/functions/epp.rb +2 -2
- data/lib/puppet/parser/functions/fail.rb +9 -8
- data/lib/puppet/parser/functions/file.rb +14 -13
- data/lib/puppet/parser/functions/filter.rb +74 -73
- data/lib/puppet/parser/functions/find_file.rb +22 -21
- data/lib/puppet/parser/functions/fqdn_rand.rb +23 -22
- data/lib/puppet/parser/functions/generate.rb +20 -20
- data/lib/puppet/parser/functions/hiera.rb +94 -93
- data/lib/puppet/parser/functions/hiera_array.rb +82 -81
- data/lib/puppet/parser/functions/hiera_hash.rb +92 -91
- data/lib/puppet/parser/functions/hiera_include.rb +92 -91
- data/lib/puppet/parser/functions/include.rb +2 -1
- data/lib/puppet/parser/functions/inline_epp.rb +2 -2
- data/lib/puppet/parser/functions/inline_template.rb +11 -11
- data/lib/puppet/parser/functions/lest.rb +44 -43
- data/lib/puppet/parser/functions/lookup.rb +131 -130
- data/lib/puppet/parser/functions/map.rb +71 -70
- data/lib/puppet/parser/functions/match.rb +39 -38
- data/lib/puppet/parser/functions/md5.rb +2 -1
- data/lib/puppet/parser/functions/new.rb +985 -984
- data/lib/puppet/parser/functions/next.rb +34 -33
- data/lib/puppet/parser/functions/realize.rb +9 -9
- data/lib/puppet/parser/functions/reduce.rb +132 -131
- data/lib/puppet/parser/functions/regsubst.rb +6 -5
- data/lib/puppet/parser/functions/require.rb +5 -4
- data/lib/puppet/parser/functions/return.rb +88 -87
- data/lib/puppet/parser/functions/reverse_each.rb +78 -77
- data/lib/puppet/parser/functions/scanf.rb +28 -27
- data/lib/puppet/parser/functions/sha1.rb +2 -1
- data/lib/puppet/parser/functions/sha256.rb +1 -0
- data/lib/puppet/parser/functions/shellquote.rb +1 -0
- data/lib/puppet/parser/functions/slice.rb +34 -33
- data/lib/puppet/parser/functions/split.rb +5 -6
- data/lib/puppet/parser/functions/sprintf.rb +3 -3
- data/lib/puppet/parser/functions/step.rb +79 -78
- data/lib/puppet/parser/functions/strftime.rb +180 -179
- data/lib/puppet/parser/functions/tag.rb +7 -6
- data/lib/puppet/parser/functions/tagged.rb +13 -12
- data/lib/puppet/parser/functions/template.rb +24 -23
- data/lib/puppet/parser/functions/then.rb +68 -67
- data/lib/puppet/parser/functions/type.rb +48 -47
- data/lib/puppet/parser/functions/versioncmp.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +23 -22
- data/lib/puppet/parser/functions.rb +3 -1
- data/lib/puppet/parser/parser_factory.rb +1 -0
- data/lib/puppet/parser/relationship.rb +3 -0
- data/lib/puppet/parser/resource/param.rb +1 -0
- data/lib/puppet/parser/resource.rb +10 -4
- data/lib/puppet/parser/scope.rb +40 -32
- data/lib/puppet/parser/script_compiler.rb +5 -6
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/parser/type_loader.rb +19 -17
- data/lib/puppet/parser.rb +1 -0
- data/lib/puppet/plugins/configuration.rb +1 -0
- data/lib/puppet/plugins/syntax_checkers.rb +1 -1
- data/lib/puppet/plugins.rb +1 -0
- data/lib/puppet/pops/adaptable.rb +3 -1
- data/lib/puppet/pops/adapters.rb +3 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +79 -65
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -1
- data/lib/puppet/pops/evaluator/closure.rb +273 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -9
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +15 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +2 -2
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +10 -10
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +140 -138
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/puppet_proc.rb +2 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +5 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +21 -19
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +31 -33
- data/lib/puppet/pops/evaluator/runtime3_support.rb +16 -19
- data/lib/puppet/pops/functions/dispatch.rb +1 -0
- data/lib/puppet/pops/functions/dispatcher.rb +1 -1
- data/lib/puppet/pops/functions/function.rb +1 -2
- data/lib/puppet/pops/issue_reporter.rb +19 -17
- data/lib/puppet/pops/issues.rb +8 -4
- data/lib/puppet/pops/label_provider.rb +1 -0
- data/lib/puppet/pops/loader/base_loader.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -0
- data/lib/puppet/pops/loader/gem_support.rb +3 -1
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/loader.rb +1 -2
- data/lib/puppet/pops/loader/loader_paths.rb +24 -23
- data/lib/puppet/pops/loader/module_loaders.rb +28 -28
- data/lib/puppet/pops/loader/predefined_loader.rb +1 -2
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +2 -2
- data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -2
- data/lib/puppet/pops/loader/static_loader.rb +22 -21
- data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +6 -4
- data/lib/puppet/pops/loader/typed_name.rb +1 -0
- data/lib/puppet/pops/loader/uri_helper.rb +1 -0
- data/lib/puppet/pops/loaders.rb +21 -18
- data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/context.rb +24 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +2 -2
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/explainer.rb +35 -34
- data/lib/puppet/pops/lookup/function_provider.rb +7 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +137 -101
- data/lib/puppet/pops/lookup/interpolation.rb +5 -1
- data/lib/puppet/pops/lookup/invocation.rb +3 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +3 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +2 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +22 -20
- data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +3 -1
- data/lib/puppet/pops/lookup/sub_lookup.rb +5 -2
- data/lib/puppet/pops/lookup.rb +13 -8
- data/lib/puppet/pops/merge_strategy.rb +5 -2
- data/lib/puppet/pops/migration/migration_checker.rb +3 -1
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +4 -3
- data/lib/puppet/pops/model/factory.rb +18 -14
- data/lib/puppet/pops/model/model_label_provider.rb +1 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +10 -9
- data/lib/puppet/pops/model/pn_transformer.rb +4 -6
- data/lib/puppet/pops/model/tree_dumper.rb +3 -1
- data/lib/puppet/pops/parser/code_merger.rb +0 -1
- data/lib/puppet/pops/parser/epp_parser.rb +1 -1
- data/lib/puppet/pops/parser/epp_support.rb +3 -3
- data/lib/puppet/pops/parser/evaluating_parser.rb +6 -3
- data/lib/puppet/pops/parser/heredoc_support.rb +6 -7
- data/lib/puppet/pops/parser/interpolation_support.rb +2 -3
- data/lib/puppet/pops/parser/lexer2.rb +32 -29
- data/lib/puppet/pops/parser/lexer_support.rb +38 -41
- data/lib/puppet/pops/parser/locatable.rb +1 -2
- data/lib/puppet/pops/parser/locator.rb +31 -28
- data/lib/puppet/pops/parser/parser_support.rb +2 -0
- data/lib/puppet/pops/parser/pn_parser.rb +2 -2
- data/lib/puppet/pops/parser/slurp_support.rb +33 -32
- data/lib/puppet/pops/patterns.rb +2 -3
- data/lib/puppet/pops/pcore.rb +2 -2
- data/lib/puppet/pops/pn.rb +4 -1
- data/lib/puppet/pops/puppet_stack.rb +1 -0
- data/lib/puppet/pops/resource/param.rb +11 -10
- data/lib/puppet/pops/resource/resource_type_impl.rb +37 -36
- data/lib/puppet/pops/semantic_error.rb +1 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +3 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +5 -4
- data/lib/puppet/pops/serialization/deserializer.rb +2 -0
- data/lib/puppet/pops/serialization/extension.rb +7 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +3 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
- data/lib/puppet/pops/serialization/json.rb +6 -3
- data/lib/puppet/pops/serialization/json_path.rb +2 -1
- data/lib/puppet/pops/serialization/object.rb +4 -1
- data/lib/puppet/pops/serialization/serializer.rb +6 -2
- data/lib/puppet/pops/serialization/time_factory.rb +1 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +4 -2
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +2 -2
- data/lib/puppet/pops/serialization.rb +1 -0
- data/lib/puppet/pops/time/timespan.rb +16 -6
- data/lib/puppet/pops/time/timestamp.rb +4 -0
- data/lib/puppet/pops/types/annotatable.rb +1 -1
- data/lib/puppet/pops/types/annotation.rb +1 -0
- data/lib/puppet/pops/types/class_loader.rb +8 -6
- data/lib/puppet/pops/types/implementation_registry.rb +1 -0
- data/lib/puppet/pops/types/iterable.rb +18 -9
- data/lib/puppet/pops/types/p_binary_type.rb +2 -3
- data/lib/puppet/pops/types/p_init_type.rb +12 -9
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +65 -42
- data/lib/puppet/pops/types/p_object_type_extension.rb +10 -7
- data/lib/puppet/pops/types/p_runtime_type.rb +11 -9
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +5 -5
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -4
- data/lib/puppet/pops/types/p_timespan_type.rb +4 -2
- data/lib/puppet/pops/types/p_timestamp_type.rb +3 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +36 -28
- data/lib/puppet/pops/types/p_uri_type.rb +25 -18
- data/lib/puppet/pops/types/puppet_object.rb +1 -1
- data/lib/puppet/pops/types/recursion_guard.rb +7 -2
- data/lib/puppet/pops/types/ruby_generator.rb +9 -6
- data/lib/puppet/pops/types/ruby_method.rb +6 -5
- data/lib/puppet/pops/types/string_converter.rb +71 -63
- data/lib/puppet/pops/types/tree_iterators.rb +6 -7
- data/lib/puppet/pops/types/type_acceptor.rb +1 -0
- data/lib/puppet/pops/types/type_asserter.rb +1 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +0 -1
- data/lib/puppet/pops/types/type_calculator.rb +10 -4
- data/lib/puppet/pops/types/type_conversion_error.rb +1 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -4
- data/lib/puppet/pops/types/type_formatter.rb +14 -13
- data/lib/puppet/pops/types/type_mismatch_describer.rb +13 -8
- data/lib/puppet/pops/types/type_parser.rb +111 -107
- data/lib/puppet/pops/types/type_set_reference.rb +2 -0
- data/lib/puppet/pops/types/type_with_members.rb +1 -1
- data/lib/puppet/pops/types/types.rb +178 -153
- data/lib/puppet/pops/utils.rb +1 -0
- data/lib/puppet/pops/validation/checker4_0.rb +17 -11
- data/lib/puppet/pops/validation/tasks_checker.rb +2 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/pops/validation.rb +8 -6
- data/lib/puppet/pops/visitable.rb +1 -0
- data/lib/puppet/pops/visitor.rb +14 -1
- data/lib/puppet/pops.rb +2 -0
- data/lib/puppet/property/boolean.rb +1 -0
- data/lib/puppet/property/ensure.rb +4 -1
- data/lib/puppet/property/keyvalue.rb +5 -4
- data/lib/puppet/property/list.rb +5 -5
- data/lib/puppet/property/ordered_list.rb +4 -4
- data/lib/puppet/property.rb +13 -11
- data/lib/puppet/provider/aix_object.rb +5 -0
- data/lib/puppet/provider/command.rb +1 -0
- data/lib/puppet/provider/confine.rb +1 -0
- data/lib/puppet/provider/exec/posix.rb +2 -0
- data/lib/puppet/provider/exec/shell.rb +1 -0
- data/lib/puppet/provider/exec/windows.rb +2 -1
- data/lib/puppet/provider/exec.rb +1 -0
- data/lib/puppet/provider/file/posix.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +10 -6
- data/lib/puppet/provider/group/aix.rb +1 -0
- data/lib/puppet/provider/group/directoryservice.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +9 -4
- data/lib/puppet/provider/group/ldap.rb +2 -0
- data/lib/puppet/provider/group/pw.rb +1 -0
- data/lib/puppet/provider/group/windows_adsi.rb +2 -0
- data/lib/puppet/provider/ldap.rb +2 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +30 -21
- data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
- data/lib/puppet/provider/nameservice/pw.rb +6 -5
- data/lib/puppet/provider/nameservice.rb +8 -4
- data/lib/puppet/provider/network_device.rb +1 -2
- data/lib/puppet/provider/package/aix.rb +5 -4
- data/lib/puppet/provider/package/appdmg.rb +20 -19
- data/lib/puppet/provider/package/apple.rb +3 -2
- data/lib/puppet/provider/package/apt.rb +5 -5
- data/lib/puppet/provider/package/aptitude.rb +1 -0
- data/lib/puppet/provider/package/aptrpm.rb +2 -1
- data/lib/puppet/provider/package/blastwave.rb +6 -6
- data/lib/puppet/provider/package/dnf.rb +3 -1
- data/lib/puppet/provider/package/dnfmodule.rb +8 -7
- data/lib/puppet/provider/package/dpkg.rb +4 -4
- data/lib/puppet/provider/package/fink.rb +2 -1
- data/lib/puppet/provider/package/freebsd.rb +3 -2
- data/lib/puppet/provider/package/gem.rb +9 -5
- data/lib/puppet/provider/package/hpux.rb +4 -3
- data/lib/puppet/provider/package/macports.rb +2 -1
- data/lib/puppet/provider/package/nim.rb +13 -15
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/opkg.rb +2 -0
- data/lib/puppet/provider/package/pacman.rb +12 -12
- data/lib/puppet/provider/package/pip.rb +3 -1
- data/lib/puppet/provider/package/pip2.rb +2 -2
- data/lib/puppet/provider/package/pip3.rb +2 -2
- data/lib/puppet/provider/package/pkg.rb +17 -13
- data/lib/puppet/provider/package/pkgdmg.rb +7 -2
- data/lib/puppet/provider/package/pkgin.rb +5 -5
- data/lib/puppet/provider/package/pkgng.rb +11 -7
- data/lib/puppet/provider/package/pkgutil.rb +7 -6
- data/lib/puppet/provider/package/portage.rb +11 -6
- data/lib/puppet/provider/package/ports.rb +6 -5
- data/lib/puppet/provider/package/portupgrade.rb +6 -12
- data/lib/puppet/provider/package/puppet_gem.rb +1 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
- data/lib/puppet/provider/package/rpm.rb +10 -6
- data/lib/puppet/provider/package/rug.rb +2 -1
- data/lib/puppet/provider/package/sun.rb +20 -17
- data/lib/puppet/provider/package/sunfreeware.rb +1 -0
- data/lib/puppet/provider/package/tdnf.rb +1 -0
- data/lib/puppet/provider/package/up2date.rb +2 -1
- data/lib/puppet/provider/package/urpmi.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
- data/lib/puppet/provider/package/windows/package.rb +5 -3
- data/lib/puppet/provider/package/windows.rb +4 -2
- data/lib/puppet/provider/package/yum.rb +17 -14
- data/lib/puppet/provider/package/zypper.rb +15 -14
- data/lib/puppet/provider/package.rb +7 -6
- data/lib/puppet/provider/package_targetable.rb +1 -0
- data/lib/puppet/provider/parsedfile.rb +7 -2
- data/lib/puppet/provider/service/base.rb +2 -1
- data/lib/puppet/provider/service/bsd.rb +1 -0
- data/lib/puppet/provider/service/daemontools.rb +9 -7
- data/lib/puppet/provider/service/debian.rb +4 -3
- data/lib/puppet/provider/service/freebsd.rb +5 -6
- data/lib/puppet/provider/service/gentoo.rb +5 -4
- data/lib/puppet/provider/service/init.rb +10 -11
- data/lib/puppet/provider/service/launchd.rb +10 -4
- data/lib/puppet/provider/service/openbsd.rb +4 -4
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +1 -0
- data/lib/puppet/provider/service/redhat.rb +3 -2
- data/lib/puppet/provider/service/runit.rb +8 -7
- data/lib/puppet/provider/service/service.rb +1 -0
- data/lib/puppet/provider/service/smf.rb +5 -2
- data/lib/puppet/provider/service/src.rb +16 -16
- data/lib/puppet/provider/service/systemd.rb +8 -4
- data/lib/puppet/provider/service/upstart.rb +8 -7
- data/lib/puppet/provider/service/windows.rb +22 -26
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +53 -45
- data/lib/puppet/provider/user/hpux.rb +15 -14
- data/lib/puppet/provider/user/ldap.rb +8 -6
- data/lib/puppet/provider/user/openbsd.rb +21 -20
- data/lib/puppet/provider/user/pw.rb +3 -2
- data/lib/puppet/provider/user/user_role_add.rb +19 -14
- data/lib/puppet/provider/user/useradd.rb +51 -41
- data/lib/puppet/provider/user/windows_adsi.rb +4 -1
- data/lib/puppet/provider.rb +9 -9
- data/lib/puppet/reference/configuration.rb +44 -43
- data/lib/puppet/reference/function.rb +1 -0
- data/lib/puppet/reference/indirection.rb +43 -42
- data/lib/puppet/reference/metaparameter.rb +1 -0
- data/lib/puppet/reference/providers.rb +2 -0
- data/lib/puppet/reference/report.rb +1 -0
- data/lib/puppet/reference/type.rb +4 -3
- data/lib/puppet/relationship.rb +3 -2
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +1 -0
- data/lib/puppet/reports/store.rb +3 -1
- data/lib/puppet/reports.rb +5 -4
- data/lib/puppet/resource/catalog.rb +14 -10
- data/lib/puppet/resource/status.rb +1 -1
- data/lib/puppet/resource/type.rb +28 -18
- data/lib/puppet/resource/type_collection.rb +4 -0
- data/lib/puppet/resource.rb +24 -16
- data/lib/puppet/runtime.rb +1 -0
- data/lib/puppet/scheduler/job.rb +1 -0
- data/lib/puppet/scheduler/scheduler.rb +1 -0
- data/lib/puppet/scheduler/splay_job.rb +1 -0
- data/lib/puppet/scheduler/timer.rb +1 -0
- data/lib/puppet/scheduler.rb +1 -0
- data/lib/puppet/settings/alias_setting.rb +1 -0
- data/lib/puppet/settings/array_setting.rb +1 -1
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/base_setting.rb +9 -5
- data/lib/puppet/settings/boolean_setting.rb +1 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +3 -3
- data/lib/puppet/settings/directory_setting.rb +1 -0
- data/lib/puppet/settings/duration_setting.rb +1 -0
- data/lib/puppet/settings/enum_setting.rb +2 -1
- data/lib/puppet/settings/environment_conf.rb +9 -8
- data/lib/puppet/settings/errors.rb +2 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +1 -5
- data/lib/puppet/settings/file_setting.rb +3 -13
- data/lib/puppet/settings/http_extra_headers_setting.rb +1 -1
- data/lib/puppet/settings/ini_file.rb +1 -0
- data/lib/puppet/settings/integer_setting.rb +1 -0
- data/lib/puppet/settings/path_setting.rb +1 -0
- data/lib/puppet/settings/port_setting.rb +2 -1
- data/lib/puppet/settings/priority_setting.rb +9 -8
- data/lib/puppet/settings/server_list_setting.rb +2 -2
- data/lib/puppet/settings/string_setting.rb +1 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +2 -1
- data/lib/puppet/settings/terminus_setting.rb +1 -0
- data/lib/puppet/settings/ttl_setting.rb +2 -0
- data/lib/puppet/settings/value_translator.rb +8 -7
- data/lib/puppet/settings.rb +89 -66
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate.rb +3 -2
- data/lib/puppet/ssl/certificate_request.rb +9 -7
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -1
- data/lib/puppet/ssl/certificate_signer.rb +2 -3
- data/lib/puppet/ssl/digest.rb +1 -0
- data/lib/puppet/ssl/error.rb +2 -0
- data/lib/puppet/ssl/oids.rb +3 -3
- data/lib/puppet/ssl/openssl_loader.rb +1 -0
- data/lib/puppet/ssl/ssl_context.rb +11 -15
- data/lib/puppet/ssl/ssl_provider.rb +2 -1
- data/lib/puppet/ssl/state_machine.rb +1 -0
- data/lib/puppet/ssl/verifier.rb +2 -2
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/syntax_checkers/base64.rb +2 -1
- data/lib/puppet/syntax_checkers/epp.rb +1 -1
- data/lib/puppet/syntax_checkers/json.rb +1 -2
- data/lib/puppet/syntax_checkers/pp.rb +1 -1
- data/lib/puppet/syntax_checkers.rb +1 -0
- data/lib/puppet/test/test_helper.rb +16 -14
- data/lib/puppet/thread_local.rb +1 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +5 -1
- data/lib/puppet/transaction/event.rb +5 -3
- data/lib/puppet/transaction/event_manager.rb +4 -3
- data/lib/puppet/transaction/persistence.rb +2 -1
- data/lib/puppet/transaction/report.rb +24 -16
- data/lib/puppet/transaction/resource_harness.rb +6 -3
- data/lib/puppet/transaction.rb +11 -6
- data/lib/puppet/trusted_external.rb +8 -4
- data/lib/puppet/type/component.rb +11 -5
- data/lib/puppet/type/exec.rb +26 -10
- data/lib/puppet/type/file/checksum.rb +1 -0
- data/lib/puppet/type/file/checksum_value.rb +3 -2
- data/lib/puppet/type/file/content.rb +16 -13
- data/lib/puppet/type/file/ctime.rb +2 -1
- data/lib/puppet/type/file/data_sync.rb +4 -2
- data/lib/puppet/type/file/ensure.rb +5 -5
- data/lib/puppet/type/file/group.rb +2 -1
- data/lib/puppet/type/file/mode.rb +4 -2
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/file/owner.rb +2 -1
- data/lib/puppet/type/file/selcontext.rb +2 -2
- data/lib/puppet/type/file/source.rb +12 -10
- data/lib/puppet/type/file/target.rb +2 -2
- data/lib/puppet/type/file/type.rb +2 -1
- data/lib/puppet/type/file.rb +22 -13
- data/lib/puppet/type/filebucket.rb +2 -1
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +21 -21
- data/lib/puppet/type/resources.rb +30 -25
- data/lib/puppet/type/schedule.rb +9 -10
- data/lib/puppet/type/service.rb +9 -7
- data/lib/puppet/type/stage.rb +1 -0
- data/lib/puppet/type/tidy.rb +9 -4
- data/lib/puppet/type/user.rb +28 -24
- data/lib/puppet/type/whit.rb +1 -1
- data/lib/puppet/type.rb +71 -61
- data/lib/puppet/util/at_fork/noop.rb +1 -0
- data/lib/puppet/util/at_fork/solaris.rb +2 -1
- data/lib/puppet/util/at_fork.rb +2 -1
- data/lib/puppet/util/autoload.rb +5 -0
- data/lib/puppet/util/backups.rb +3 -2
- data/lib/puppet/util/character_encoding.rb +1 -0
- data/lib/puppet/util/checksums.rb +11 -9
- data/lib/puppet/util/classgen.rb +8 -13
- data/lib/puppet/util/colors.rb +32 -31
- data/lib/puppet/util/command_line/puppet_option_parser.rb +12 -12
- data/lib/puppet/util/command_line/trollop.rb +693 -690
- data/lib/puppet/util/command_line.rb +1 -0
- data/lib/puppet/util/constant_inflector.rb +3 -3
- data/lib/puppet/util/diff.rb +14 -14
- data/lib/puppet/util/docs.rb +3 -0
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/execution.rb +24 -21
- data/lib/puppet/util/execution_stub.rb +1 -0
- data/lib/puppet/util/feature.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +2 -0
- data/lib/puppet/util/fileparsing.rb +2 -0
- data/lib/puppet/util/filetype.rb +3 -0
- data/lib/puppet/util/http_proxy.rb +1 -0
- data/lib/puppet/util/inifile.rb +5 -5
- data/lib/puppet/util/instance_loader.rb +2 -0
- data/lib/puppet/util/json.rb +1 -0
- data/lib/puppet/util/json_lockfile.rb +3 -1
- data/lib/puppet/util/ldap/connection.rb +19 -18
- data/lib/puppet/util/ldap/generator.rb +1 -0
- data/lib/puppet/util/ldap/manager.rb +3 -2
- data/lib/puppet/util/ldap.rb +1 -0
- data/lib/puppet/util/libuser.rb +1 -1
- data/lib/puppet/util/limits.rb +1 -0
- data/lib/puppet/util/lockfile.rb +1 -0
- data/lib/puppet/util/log/destination.rb +1 -0
- data/lib/puppet/util/log/destinations.rb +14 -13
- data/lib/puppet/util/log.rb +21 -17
- data/lib/puppet/util/logging.rb +18 -14
- data/lib/puppet/util/metaid.rb +1 -0
- data/lib/puppet/util/metric.rb +2 -0
- data/lib/puppet/util/monkey_patches.rb +19 -0
- data/lib/puppet/util/multi_match.rb +4 -1
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +3 -4
- data/lib/puppet/util/network_device/transport/base.rb +0 -1
- data/lib/puppet/util/network_device/transport.rb +1 -0
- data/lib/puppet/util/network_device.rb +1 -0
- data/lib/puppet/util/package/version/debian.rb +5 -3
- data/lib/puppet/util/package/version/gem.rb +2 -0
- data/lib/puppet/util/package/version/pip.rb +7 -2
- data/lib/puppet/util/package/version/range/eq.rb +2 -0
- data/lib/puppet/util/package/version/range/gt.rb +2 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/lt.rb +2 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/min_max.rb +4 -0
- data/lib/puppet/util/package/version/range/simple.rb +1 -0
- data/lib/puppet/util/package/version/range.rb +3 -0
- data/lib/puppet/util/package/version/rpm.rb +7 -5
- data/lib/puppet/util/package.rb +3 -0
- data/lib/puppet/util/pidlock.rb +7 -7
- data/lib/puppet/util/platform.rb +1 -0
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/posix.rb +8 -5
- data/lib/puppet/util/profiler/aggregate.rb +2 -5
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/profiler/logging.rb +1 -0
- data/lib/puppet/util/profiler/object_counts.rb +1 -0
- data/lib/puppet/util/profiler/wall_clock.rb +1 -0
- data/lib/puppet/util/profiler.rb +1 -0
- data/lib/puppet/util/provider_features.rb +5 -1
- data/lib/puppet/util/psych_support.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +3 -7
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -50
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -68
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +5 -5
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -0
- data/lib/puppet/util/rdoc/parser.rb +1 -0
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +2 -0
- data/lib/puppet/util/retry_action.rb +3 -3
- data/lib/puppet/util/rpm_compare.rb +6 -3
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/run_mode.rb +2 -1
- data/lib/puppet/util/selinux.rb +23 -12
- data/lib/puppet/util/skip_tags.rb +1 -0
- data/lib/puppet/util/splayer.rb +1 -0
- data/lib/puppet/util/storage.rb +2 -1
- data/lib/puppet/util/suidmanager.rb +8 -5
- data/lib/puppet/util/symbolic_file_mode.rb +3 -1
- data/lib/puppet/util/tag_set.rb +1 -0
- data/lib/puppet/util/tagging.rb +2 -1
- data/lib/puppet/util/terminal.rb +1 -0
- data/lib/puppet/util/user_attr.rb +1 -0
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +1 -0
- data/lib/puppet/util/watcher/change_watcher.rb +1 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
- data/lib/puppet/util/watcher/timer.rb +1 -0
- data/lib/puppet/util/watcher.rb +1 -0
- data/lib/puppet/util/windows/access_control_entry.rb +2 -1
- data/lib/puppet/util/windows/access_control_list.rb +4 -3
- data/lib/puppet/util/windows/adsi.rb +41 -27
- data/lib/puppet/util/windows/com.rb +5 -3
- data/lib/puppet/util/windows/daemon.rb +33 -33
- data/lib/puppet/util/windows/error.rb +4 -3
- data/lib/puppet/util/windows/eventlog.rb +8 -5
- data/lib/puppet/util/windows/file.rb +32 -26
- data/lib/puppet/util/windows/monkey_patches/process.rb +0 -1
- data/lib/puppet/util/windows/principal.rb +27 -27
- data/lib/puppet/util/windows/process.rb +8 -7
- data/lib/puppet/util/windows/registry.rb +43 -41
- data/lib/puppet/util/windows/root_certs.rb +1 -0
- data/lib/puppet/util/windows/security.rb +43 -44
- data/lib/puppet/util/windows/security_descriptor.rb +1 -0
- data/lib/puppet/util/windows/service.rb +12 -1
- data/lib/puppet/util/windows/sid.rb +10 -8
- data/lib/puppet/util/windows/string.rb +1 -0
- data/lib/puppet/util/windows/user.rb +33 -33
- data/lib/puppet/util/windows.rb +6 -0
- data/lib/puppet/util/yaml.rb +1 -0
- data/lib/puppet/util.rb +20 -23
- data/lib/puppet/vendor.rb +2 -1
- data/lib/puppet/version.rb +3 -1
- data/lib/puppet/x509/cert_provider.rb +13 -3
- data/lib/puppet/x509/pem_store.rb +1 -0
- data/lib/puppet/x509.rb +1 -0
- data/lib/puppet.rb +1 -0
- data/lib/puppet_pal.rb +1 -0
- data/lib/puppet_x.rb +1 -0
- data/locales/puppet.pot +214 -210
- data/man/man5/puppet.conf.5 +3 -3
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +5 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/application/agent_spec.rb +13 -0
- data/spec/integration/type/exec_spec.rb +13 -0
- data/spec/lib/puppet_spec/puppetserver.rb +1 -0
- data/spec/lib/puppet_spec/verbose.rb +15 -4
- data/spec/unit/agent_spec.rb +2 -14
- data/spec/unit/application/ssl_spec.rb +49 -0
- data/spec/unit/daemon_spec.rb +3 -20
- data/spec/unit/functions/split_spec.rb +6 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +17 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +17 -0
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/provider/package/appdmg_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +7 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +22 -2
- data/spec/unit/provider/service/systemd_spec.rb +8 -6
- data/spec/unit/ssl/certificate_signer_spec.rb +17 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +14 -9
- data/spec/unit/util/execution_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +42 -0
- data/spec/unit/util/rpm_compare_spec.rb +8 -8
- data/spec/unit/util/windows/adsi_spec.rb +25 -0
- metadata +9 -14
- data/CONTRIBUTING.md +0 -161
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc => <<-'ENDHEREDOC') do |args|
|
3
4
|
Converts a hash into a set of resources and adds them to the catalog.
|
4
5
|
|
@@ -51,7 +52,7 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
51
52
|
data binding and Puppet default value expressions are considered (in that order) for the
|
52
53
|
final value of a parameter (just as when setting a parameter to `undef` in a Puppet language
|
53
54
|
resource declaration).
|
54
|
-
|
55
|
+
ENDHEREDOC
|
55
56
|
if Puppet[:tasks]
|
56
57
|
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
57
58
|
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
@@ -60,6 +61,7 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
60
61
|
|
61
62
|
raise ArgumentError, (_("create_resources(): wrong number of arguments (%{count}; must be 2 or 3)") % { count: args.length }) if args.length > 3
|
62
63
|
raise ArgumentError, (_('create_resources(): second argument must be a hash')) unless args[1].is_a?(Hash)
|
64
|
+
|
63
65
|
if args.length == 3
|
64
66
|
raise ArgumentError, (_('create_resources(): third argument, if provided, must be a hash')) unless args[2].is_a?(Hash)
|
65
67
|
end
|
@@ -90,7 +92,7 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
90
92
|
|
91
93
|
instances.map do |title, params|
|
92
94
|
# Add support for iteration if title is an array
|
93
|
-
resource_titles = title.is_a?(Array) ? title
|
95
|
+
resource_titles = title.is_a?(Array) ? title : [title]
|
94
96
|
Puppet::Pops::Evaluator::Runtime3ResourceSupport.create_resources(
|
95
97
|
file, line,
|
96
98
|
self,
|
@@ -100,12 +102,12 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
100
102
|
defaults.merge(params).map do |name, value|
|
101
103
|
value = nil if value == :undef
|
102
104
|
Puppet::Parser::Resource::Param.new(
|
103
|
-
:name
|
104
|
-
:value
|
105
|
+
:name => name,
|
106
|
+
:value => value, # wide open to various data types, must be correct
|
105
107
|
:source => self.source, # TODO: support :line => line, :file => file,
|
106
|
-
:add
|
108
|
+
:add => false
|
107
109
|
)
|
108
110
|
end.compact
|
109
|
-
|
111
|
+
)
|
110
112
|
end.flatten.compact
|
111
113
|
end
|
@@ -1,108 +1,109 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
4
|
:defined,
|
4
5
|
:type => :rvalue,
|
5
6
|
:arity => -2,
|
6
|
-
:doc =>
|
7
|
-
Determines whether a given class or resource type is defined and returns a Boolean
|
8
|
-
value. You can also use `defined` to determine whether a specific resource is defined,
|
9
|
-
or whether a variable has a value (including `undef`, as opposed to the variable never
|
10
|
-
being declared or assigned).
|
11
|
-
|
12
|
-
This function takes at least one string argument, which can be a class name, type name,
|
13
|
-
resource reference, or variable reference of the form `'$name'`.
|
14
|
-
|
15
|
-
The `defined` function checks both native and defined types, including types
|
16
|
-
provided by modules. Types and classes are matched by their names. The function matches
|
17
|
-
resource declarations by using resource references.
|
18
|
-
|
19
|
-
**Examples**: Different types of `defined` function matches
|
20
|
-
|
21
|
-
~~~ puppet
|
22
|
-
# Matching resource types
|
23
|
-
defined("file")
|
24
|
-
defined("customtype")
|
25
|
-
|
26
|
-
# Matching defines and classes
|
27
|
-
defined("foo")
|
28
|
-
defined("foo::bar")
|
29
|
-
|
30
|
-
# Matching variables
|
31
|
-
defined('$name')
|
32
|
-
|
33
|
-
# Matching declared resources
|
34
|
-
defined(File['/tmp/file'])
|
35
|
-
~~~
|
36
|
-
|
37
|
-
Puppet depends on the configuration's evaluation order when checking whether a resource
|
38
|
-
is declared.
|
39
|
-
|
40
|
-
**Example**: Importance of evaluation order when using `defined`
|
41
|
-
|
42
|
-
~~~ puppet
|
43
|
-
# Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
44
|
-
# functions.
|
45
|
-
|
46
|
-
$is_defined_before = defined(File['/tmp/file'])
|
47
|
-
|
48
|
-
file { "/tmp/file":
|
49
|
-
|
50
|
-
}
|
51
|
-
|
52
|
-
$is_defined_after = defined(File['/tmp/file'])
|
53
|
-
|
54
|
-
# $is_defined_before returns false, but $is_defined_after returns true.
|
55
|
-
~~~
|
56
|
-
|
57
|
-
This order requirement only refers to evaluation order. The order of resources in the
|
58
|
-
configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
59
|
-
function's behavior.
|
60
|
-
|
61
|
-
> **Warning:** Avoid relying on the result of the `defined` function in modules, as you
|
62
|
-
> might not be able to guarantee the evaluation order well enough to produce consistent
|
63
|
-
> results. This can cause other code that relies on the function's result to behave
|
64
|
-
> inconsistently or fail.
|
65
|
-
|
66
|
-
If you pass more than one argument to `defined`, the function returns `true` if _any_
|
67
|
-
of the arguments are defined. You can also match resources by type, allowing you to
|
68
|
-
match conditions of different levels of specificity, such as whether a specific resource
|
69
|
-
is of a specific data type.
|
70
|
-
|
71
|
-
**Example**: Matching multiple resources and resources by different types with `defined`
|
72
|
-
|
73
|
-
~~~ puppet
|
74
|
-
file { "/tmp/file1":
|
75
|
-
|
76
|
-
}
|
77
|
-
|
78
|
-
$tmp_file = file { "/tmp/file2":
|
79
|
-
|
80
|
-
}
|
81
|
-
|
82
|
-
# Each of these statements return `true` ...
|
83
|
-
defined(File['/tmp/file1'])
|
84
|
-
defined(File['/tmp/file1'],File['/tmp/file2'])
|
85
|
-
defined(File['/tmp/file1'],File['/tmp/file2'],File['/tmp/file3'])
|
86
|
-
# ... but this returns `false`.
|
87
|
-
defined(File['/tmp/file3'])
|
88
|
-
|
89
|
-
# Each of these statements returns `true` ...
|
90
|
-
defined(Type[Resource['file','/tmp/file2']])
|
91
|
-
defined(Resource['file','/tmp/file2'])
|
92
|
-
defined(File['/tmp/file2'])
|
93
|
-
defined('$tmp_file')
|
94
|
-
# ... but each of these returns `false`.
|
95
|
-
defined(Type[Resource['exec','/tmp/file2']])
|
96
|
-
defined(Resource['exec','/tmp/file2'])
|
97
|
-
defined(File['/tmp/file3'])
|
98
|
-
defined('$tmp_file2')
|
99
|
-
~~~
|
100
|
-
|
101
|
-
- Since 2.7.0
|
102
|
-
- Since 3.6.0 variable reference and future parser types
|
103
|
-
- Since 3.8.1 type specific requests with future parser
|
104
|
-
- Since 4.0.0 includes all future parser features
|
105
|
-
DOC
|
106
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Determines whether a given class or resource type is defined and returns a Boolean
|
9
|
+
value. You can also use `defined` to determine whether a specific resource is defined,
|
10
|
+
or whether a variable has a value (including `undef`, as opposed to the variable never
|
11
|
+
being declared or assigned).
|
12
|
+
|
13
|
+
This function takes at least one string argument, which can be a class name, type name,
|
14
|
+
resource reference, or variable reference of the form `'$name'`.
|
15
|
+
|
16
|
+
The `defined` function checks both native and defined types, including types
|
17
|
+
provided by modules. Types and classes are matched by their names. The function matches
|
18
|
+
resource declarations by using resource references.
|
19
|
+
|
20
|
+
**Examples**: Different types of `defined` function matches
|
21
|
+
|
22
|
+
~~~ puppet
|
23
|
+
# Matching resource types
|
24
|
+
defined("file")
|
25
|
+
defined("customtype")
|
26
|
+
|
27
|
+
# Matching defines and classes
|
28
|
+
defined("foo")
|
29
|
+
defined("foo::bar")
|
30
|
+
|
31
|
+
# Matching variables
|
32
|
+
defined('$name')
|
33
|
+
|
34
|
+
# Matching declared resources
|
35
|
+
defined(File['/tmp/file'])
|
36
|
+
~~~
|
37
|
+
|
38
|
+
Puppet depends on the configuration's evaluation order when checking whether a resource
|
39
|
+
is declared.
|
40
|
+
|
41
|
+
**Example**: Importance of evaluation order when using `defined`
|
42
|
+
|
43
|
+
~~~ puppet
|
44
|
+
# Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
45
|
+
# functions.
|
46
|
+
|
47
|
+
$is_defined_before = defined(File['/tmp/file'])
|
48
|
+
|
49
|
+
file { "/tmp/file":
|
50
|
+
ensure => present,
|
51
|
+
}
|
52
|
+
|
53
|
+
$is_defined_after = defined(File['/tmp/file'])
|
54
|
+
|
55
|
+
# $is_defined_before returns false, but $is_defined_after returns true.
|
56
|
+
~~~
|
57
|
+
|
58
|
+
This order requirement only refers to evaluation order. The order of resources in the
|
59
|
+
configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
60
|
+
function's behavior.
|
61
|
+
|
62
|
+
> **Warning:** Avoid relying on the result of the `defined` function in modules, as you
|
63
|
+
> might not be able to guarantee the evaluation order well enough to produce consistent
|
64
|
+
> results. This can cause other code that relies on the function's result to behave
|
65
|
+
> inconsistently or fail.
|
66
|
+
|
67
|
+
If you pass more than one argument to `defined`, the function returns `true` if _any_
|
68
|
+
of the arguments are defined. You can also match resources by type, allowing you to
|
69
|
+
match conditions of different levels of specificity, such as whether a specific resource
|
70
|
+
is of a specific data type.
|
71
|
+
|
72
|
+
**Example**: Matching multiple resources and resources by different types with `defined`
|
73
|
+
|
74
|
+
~~~ puppet
|
75
|
+
file { "/tmp/file1":
|
76
|
+
ensure => file,
|
77
|
+
}
|
78
|
+
|
79
|
+
$tmp_file = file { "/tmp/file2":
|
80
|
+
ensure => file,
|
81
|
+
}
|
82
|
+
|
83
|
+
# Each of these statements return `true` ...
|
84
|
+
defined(File['/tmp/file1'])
|
85
|
+
defined(File['/tmp/file1'],File['/tmp/file2'])
|
86
|
+
defined(File['/tmp/file1'],File['/tmp/file2'],File['/tmp/file3'])
|
87
|
+
# ... but this returns `false`.
|
88
|
+
defined(File['/tmp/file3'])
|
89
|
+
|
90
|
+
# Each of these statements returns `true` ...
|
91
|
+
defined(Type[Resource['file','/tmp/file2']])
|
92
|
+
defined(Resource['file','/tmp/file2'])
|
93
|
+
defined(File['/tmp/file2'])
|
94
|
+
defined('$tmp_file')
|
95
|
+
# ... but each of these returns `false`.
|
96
|
+
defined(Type[Resource['exec','/tmp/file2']])
|
97
|
+
defined(Resource['exec','/tmp/file2'])
|
98
|
+
defined(File['/tmp/file3'])
|
99
|
+
defined('$tmp_file2')
|
100
|
+
~~~
|
101
|
+
|
102
|
+
- Since 2.7.0
|
103
|
+
- Since 3.6.0 variable reference and future parser types
|
104
|
+
- Since 3.8.1 type specific requests with future parser
|
105
|
+
- Since 4.0.0 includes all future parser features
|
106
|
+
DOC
|
107
|
+
) do |_vals|
|
107
108
|
Puppet::Parser::Functions::Error.is4x('defined')
|
108
109
|
end
|
@@ -1,39 +1,40 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
4
|
:dig,
|
4
5
|
:type => :rvalue,
|
5
6
|
:arity => -1,
|
6
|
-
:doc =>
|
7
|
-
Returns a value for a sequence of given keys/indexes into a structure, such as
|
8
|
-
an array or hash.
|
9
|
-
This function is used to "dig into" a complex data structure by
|
10
|
-
using a sequence of keys / indexes to access a value from which
|
11
|
-
the next key/index is accessed recursively.
|
12
|
-
|
13
|
-
The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
14
|
-
|
15
|
-
An error is raised if an attempt is made to "dig" into
|
16
|
-
something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
**Example:** Using `dig`
|
21
|
-
|
22
|
-
```puppet
|
23
|
-
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
24
|
-
notice $data.dig('a', 'b', 1, 'x')
|
25
|
-
```
|
26
|
-
|
27
|
-
Would notice the value 100.
|
28
|
-
|
29
|
-
This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
30
|
-
index will return an error and cause catalog compilation failure if any parent
|
31
|
-
of the final key (`'x'`) is `undef`. The `dig` function will return undef,
|
32
|
-
rather than failing catalog compilation. This allows you to check if data
|
33
|
-
exists in a structure without mandating that it always exists.
|
34
|
-
|
35
|
-
* Since 4.5.0
|
36
|
-
DOC
|
37
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Returns a value for a sequence of given keys/indexes into a structure, such as
|
9
|
+
an array or hash.
|
10
|
+
This function is used to "dig into" a complex data structure by
|
11
|
+
using a sequence of keys / indexes to access a value from which
|
12
|
+
the next key/index is accessed recursively.
|
13
|
+
|
14
|
+
The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
15
|
+
|
16
|
+
An error is raised if an attempt is made to "dig" into
|
17
|
+
something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
**Example:** Using `dig`
|
22
|
+
|
23
|
+
```puppet
|
24
|
+
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
25
|
+
notice $data.dig('a', 'b', 1, 'x')
|
26
|
+
```
|
27
|
+
|
28
|
+
Would notice the value 100.
|
29
|
+
|
30
|
+
This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
31
|
+
index will return an error and cause catalog compilation failure if any parent
|
32
|
+
of the final key (`'x'`) is `undef`. The `dig` function will return undef,
|
33
|
+
rather than failing catalog compilation. This allows you to check if data
|
34
|
+
exists in a structure without mandating that it always exists.
|
35
|
+
|
36
|
+
* Since 4.5.0
|
37
|
+
DOC
|
38
|
+
) do |_args|
|
38
39
|
Puppet::Parser::Functions::Error.is4x('dig')
|
39
40
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/util/checksums'
|
3
4
|
Puppet::Parser::Functions::newfunction(:digest, :type => :rvalue, :arity => 1, :doc => "Returns a hash value from a provided string using the digest_algorithm setting from the Puppet config file.") do |args|
|
4
5
|
algo = Puppet[:digest_algorithm]
|
@@ -1,105 +1,106 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
4
|
:each,
|
4
5
|
:type => :rvalue,
|
5
6
|
:arity => -3,
|
6
|
-
:doc =>
|
7
|
-
Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
8
|
-
repeatedly using each value in a data structure, then returns the values unchanged.
|
9
|
-
|
10
|
-
This function takes two mandatory arguments, in this order:
|
11
|
-
|
12
|
-
1. An array or hash the function will iterate over.
|
13
|
-
2. A lambda, which the function calls for each element in the first argument. It can
|
14
|
-
request one or two parameters.
|
15
|
-
|
16
|
-
**Example**: Using the `each` function
|
17
|
-
|
18
|
-
`$data.each |$parameter| { <PUPPET CODE BLOCK> }`
|
19
|
-
|
20
|
-
or
|
21
|
-
|
22
|
-
`each($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
23
|
-
|
24
|
-
When the first argument (`$data` in the above example) is an array, Puppet passes each
|
25
|
-
value in turn to the lambda, then returns the original values.
|
26
|
-
|
27
|
-
**Example**: Using the `each` function with an array and a one-parameter lambda
|
28
|
-
|
29
|
-
~~~ puppet
|
30
|
-
# For the array $data, run a lambda that creates a resource for each item.
|
31
|
-
$data = ["routers", "servers", "workstations"]
|
32
|
-
$data.each |$item| {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
}
|
37
|
-
# Puppet creates one resource for each of the three items in $data. Each resource is
|
38
|
-
# named after the item's value and uses the item's value in a parameter.
|
39
|
-
~~~
|
40
|
-
|
41
|
-
When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
42
|
-
as an array in the form `[key, value]` and returns the original hash.
|
43
|
-
|
44
|
-
**Example**: Using the `each` function with a hash and a one-parameter lambda
|
45
|
-
|
46
|
-
~~~ puppet
|
47
|
-
# For the hash $data, run a lambda using each item as a key-value array that creates a
|
48
|
-
# resource for each item.
|
49
|
-
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
50
|
-
$data.each |$items| {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
}
|
55
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
56
|
-
# item's key and containing a parameter using the item's value.
|
57
|
-
~~~
|
58
|
-
|
59
|
-
When the first argument is an array and the lambda has two parameters, Puppet passes the
|
60
|
-
array's indexes (enumerated from 0) in the first parameter and its values in the second
|
61
|
-
parameter.
|
62
|
-
|
63
|
-
**Example**: Using the `each` function with an array and a two-parameter lambda
|
64
|
-
|
65
|
-
~~~ puppet
|
66
|
-
# For the array $data, run a lambda using each item's index and value that creates a
|
67
|
-
# resource for each item.
|
68
|
-
$data = ["routers", "servers", "workstations"]
|
69
|
-
$data.each |$index, $value| {
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
}
|
74
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
75
|
-
# item's value and containing a parameter using the item's index.
|
76
|
-
~~~
|
77
|
-
|
78
|
-
When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
79
|
-
values to the second parameter.
|
80
|
-
|
81
|
-
**Example**: Using the `each` function with a hash and a two-parameter lambda
|
82
|
-
|
83
|
-
~~~ puppet
|
84
|
-
# For the hash $data, run a lambda using each item's key and value to create a resource
|
85
|
-
# for each item.
|
86
|
-
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
87
|
-
$data.each |$key, $value| {
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
}
|
92
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
93
|
-
# item's key and containing a parameter using the item's value.
|
94
|
-
~~~
|
95
|
-
|
96
|
-
For an example that demonstrates how to create multiple `file` resources using `each`,
|
97
|
-
see the Puppet
|
98
|
-
[iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
99
|
-
documentation.
|
100
|
-
|
101
|
-
- Since 4.0.0
|
102
|
-
DOC
|
103
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
9
|
+
repeatedly using each value in a data structure, then returns the values unchanged.
|
10
|
+
|
11
|
+
This function takes two mandatory arguments, in this order:
|
12
|
+
|
13
|
+
1. An array or hash the function will iterate over.
|
14
|
+
2. A lambda, which the function calls for each element in the first argument. It can
|
15
|
+
request one or two parameters.
|
16
|
+
|
17
|
+
**Example**: Using the `each` function
|
18
|
+
|
19
|
+
`$data.each |$parameter| { <PUPPET CODE BLOCK> }`
|
20
|
+
|
21
|
+
or
|
22
|
+
|
23
|
+
`each($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
24
|
+
|
25
|
+
When the first argument (`$data` in the above example) is an array, Puppet passes each
|
26
|
+
value in turn to the lambda, then returns the original values.
|
27
|
+
|
28
|
+
**Example**: Using the `each` function with an array and a one-parameter lambda
|
29
|
+
|
30
|
+
~~~ puppet
|
31
|
+
# For the array $data, run a lambda that creates a resource for each item.
|
32
|
+
$data = ["routers", "servers", "workstations"]
|
33
|
+
$data.each |$item| {
|
34
|
+
notify { $item:
|
35
|
+
message => $item
|
36
|
+
}
|
37
|
+
}
|
38
|
+
# Puppet creates one resource for each of the three items in $data. Each resource is
|
39
|
+
# named after the item's value and uses the item's value in a parameter.
|
40
|
+
~~~
|
41
|
+
|
42
|
+
When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
43
|
+
as an array in the form `[key, value]` and returns the original hash.
|
44
|
+
|
45
|
+
**Example**: Using the `each` function with a hash and a one-parameter lambda
|
46
|
+
|
47
|
+
~~~ puppet
|
48
|
+
# For the hash $data, run a lambda using each item as a key-value array that creates a
|
49
|
+
# resource for each item.
|
50
|
+
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
51
|
+
$data.each |$items| {
|
52
|
+
notify { $items[0]:
|
53
|
+
message => $items[1]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
57
|
+
# item's key and containing a parameter using the item's value.
|
58
|
+
~~~
|
59
|
+
|
60
|
+
When the first argument is an array and the lambda has two parameters, Puppet passes the
|
61
|
+
array's indexes (enumerated from 0) in the first parameter and its values in the second
|
62
|
+
parameter.
|
63
|
+
|
64
|
+
**Example**: Using the `each` function with an array and a two-parameter lambda
|
65
|
+
|
66
|
+
~~~ puppet
|
67
|
+
# For the array $data, run a lambda using each item's index and value that creates a
|
68
|
+
# resource for each item.
|
69
|
+
$data = ["routers", "servers", "workstations"]
|
70
|
+
$data.each |$index, $value| {
|
71
|
+
notify { $value:
|
72
|
+
message => $index
|
73
|
+
}
|
74
|
+
}
|
75
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
76
|
+
# item's value and containing a parameter using the item's index.
|
77
|
+
~~~
|
78
|
+
|
79
|
+
When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
80
|
+
values to the second parameter.
|
81
|
+
|
82
|
+
**Example**: Using the `each` function with a hash and a two-parameter lambda
|
83
|
+
|
84
|
+
~~~ puppet
|
85
|
+
# For the hash $data, run a lambda using each item's key and value to create a resource
|
86
|
+
# for each item.
|
87
|
+
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
88
|
+
$data.each |$key, $value| {
|
89
|
+
notify { $key:
|
90
|
+
message => $value
|
91
|
+
}
|
92
|
+
}
|
93
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
94
|
+
# item's key and containing a parameter using the item's value.
|
95
|
+
~~~
|
96
|
+
|
97
|
+
For an example that demonstrates how to create multiple `file` resources using `each`,
|
98
|
+
see the Puppet
|
99
|
+
[iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
100
|
+
documentation.
|
101
|
+
|
102
|
+
- Since 4.0.0
|
103
|
+
DOC
|
104
|
+
) do |_args|
|
104
105
|
Puppet::Parser::Functions::Error.is4x('each')
|
105
106
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(:epp, :type => :rvalue, :arity => -2, :doc =>
|
3
4
|
"Evaluates an Embedded Puppet (EPP) template file and returns the rendered text
|
4
5
|
result as a String.
|
@@ -34,7 +35,6 @@ Parameters are required only if they are declared in the called template's
|
|
34
35
|
parameter tag without default values. Puppet produces an error if the `epp`
|
35
36
|
function fails to pass any required parameter.
|
36
37
|
|
37
|
-
- Since 4.0.0") do |
|
38
|
-
|
38
|
+
- Since 4.0.0") do |_args|
|
39
39
|
Puppet::Parser::Functions::Error.is4x('epp')
|
40
40
|
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
Fail with a parse error. Any parameters will be stringified,
|
7
|
-
concatenated, and passed to the exception-handler.
|
8
|
-
DOC
|
4
|
+
:fail,
|
5
|
+
:arity => -1,
|
6
|
+
:doc => <<~DOC
|
7
|
+
Fail with a parse error. Any parameters will be stringified,
|
8
|
+
concatenated, and passed to the exception-handler.
|
9
|
+
DOC
|
9
10
|
) do |vals|
|
10
|
-
|
11
|
-
|
11
|
+
vals = vals.collect { |s| s.to_s }.join(" ") if vals.is_a? Array
|
12
|
+
raise Puppet::ParseError, vals.to_s
|
12
13
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/file_system'
|
3
4
|
|
4
5
|
Puppet::Parser::Functions::newfunction(
|
5
6
|
:file, :arity => -2, :type => :rvalue,
|
6
|
-
|
7
|
+
:doc => "Loads a file from a module and returns its contents as a string.
|
7
8
|
|
8
9
|
The argument to this function should be a `<MODULE NAME>/<FILE>`
|
9
10
|
reference, which will load `<FILE>` from a module's `files`
|
@@ -17,18 +18,18 @@ Puppet::Parser::Functions::newfunction(
|
|
17
18
|
found, skipping any files that don't exist.
|
18
19
|
"
|
19
20
|
) do |vals|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
end
|
21
|
+
path = nil
|
22
|
+
vals.each do |file|
|
23
|
+
found = Puppet::Parser::Files.find_file(file, compiler.environment)
|
24
|
+
if found && Puppet::FileSystem.exist?(found)
|
25
|
+
path = found
|
26
|
+
break
|
27
27
|
end
|
28
|
+
end
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
if path
|
31
|
+
Puppet::FileSystem.read_preserve_line_endings(path)
|
32
|
+
else
|
33
|
+
raise Puppet::ParseError, _("Could not find any files from %{values}") % { values: vals.join(", ") }
|
34
|
+
end
|
34
35
|
end
|