openvox 7.37.1
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 +7 -0
- data/CHANGELOG.md +15 -0
- data/CODEOWNERS +11 -0
- data/CODE_OF_CONDUCT.md +70 -0
- data/CONTRIBUTING.md +161 -0
- data/Gemfile +82 -0
- data/Guardfile.example +76 -0
- data/LICENSE +202 -0
- data/README.md +68 -0
- data/Rakefile +160 -0
- data/bin/puppet +9 -0
- data/conf/environment.conf +18 -0
- data/conf/fileserver.conf +32 -0
- data/conf/hiera.yaml +11 -0
- data/conf/puppet.conf +6 -0
- data/examples/enc/regexp_nodes/classes/databases +2 -0
- data/examples/enc/regexp_nodes/classes/webservers +2 -0
- data/examples/enc/regexp_nodes/environment/development +2 -0
- data/examples/enc/regexp_nodes/parameters/service/prod +1 -0
- data/examples/enc/regexp_nodes/parameters/service/qa +3 -0
- data/examples/enc/regexp_nodes/parameters/service/sandbox +1 -0
- data/examples/enc/regexp_nodes/regexp_nodes.rb +270 -0
- data/examples/hiera/README.md +91 -0
- data/examples/hiera/etc/hiera.yaml +15 -0
- data/examples/hiera/etc/hieradb/common.yaml +3 -0
- data/examples/hiera/etc/hieradb/dc1.yaml +6 -0
- data/examples/hiera/etc/hieradb/development.yaml +2 -0
- data/examples/hiera/etc/puppet.conf +3 -0
- data/examples/hiera/modules/data/manifests/common.pp +4 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +6 -0
- data/examples/hiera/modules/ntp/manifests/data.pp +4 -0
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +4 -0
- data/examples/hiera/modules/users/manifests/dc1.pp +4 -0
- data/examples/hiera/modules/users/manifests/development.pp +4 -0
- data/examples/hiera/site.pp +3 -0
- data/examples/nagios/check_puppet.rb +123 -0
- data/ext/README.md +13 -0
- data/ext/build_defaults.yaml +18 -0
- data/ext/debian/puppet.default +4 -0
- data/ext/debian/puppet.init +113 -0
- data/ext/hiera/hiera.yaml +15 -0
- data/ext/osx/puppet.plist +32 -0
- data/ext/project_data.yaml +20 -0
- data/ext/redhat/client.init +169 -0
- data/ext/redhat/client.sysconfig +2 -0
- data/ext/solaris/smf/puppet +44 -0
- data/ext/solaris/smf/puppet.xml +46 -0
- data/ext/suse/client.init +141 -0
- data/ext/systemd/puppet.service +26 -0
- data/ext/windows/puppet_interactive.bat +6 -0
- data/ext/windows/puppet_shell.bat +9 -0
- data/ext/windows/run_puppet_interactive.bat +9 -0
- data/ext/windows/service/daemon.bat +6 -0
- data/ext/windows/service/daemon.rb +225 -0
- data/install.rb +499 -0
- data/lib/hiera/puppet_function.rb +84 -0
- data/lib/hiera/scope.rb +90 -0
- data/lib/hiera_puppet.rb +80 -0
- data/lib/puppet/agent/disabler.rb +53 -0
- data/lib/puppet/agent/locker.rb +46 -0
- data/lib/puppet/agent.rb +176 -0
- data/lib/puppet/application/agent.rb +523 -0
- data/lib/puppet/application/apply.rb +428 -0
- data/lib/puppet/application/catalog.rb +4 -0
- data/lib/puppet/application/config.rb +5 -0
- data/lib/puppet/application/describe.rb +253 -0
- data/lib/puppet/application/device.rb +439 -0
- data/lib/puppet/application/doc.rb +233 -0
- data/lib/puppet/application/epp.rb +5 -0
- data/lib/puppet/application/face_base.rb +276 -0
- data/lib/puppet/application/facts.rb +9 -0
- data/lib/puppet/application/filebucket.rb +318 -0
- data/lib/puppet/application/generate.rb +5 -0
- data/lib/puppet/application/help.rb +5 -0
- data/lib/puppet/application/indirection_base.rb +4 -0
- data/lib/puppet/application/lookup.rb +433 -0
- data/lib/puppet/application/module.rb +4 -0
- data/lib/puppet/application/node.rb +4 -0
- data/lib/puppet/application/parser.rb +5 -0
- data/lib/puppet/application/plugin.rb +4 -0
- data/lib/puppet/application/report.rb +4 -0
- data/lib/puppet/application/resource.rb +254 -0
- data/lib/puppet/application/script.rb +264 -0
- data/lib/puppet/application/ssl.rb +323 -0
- data/lib/puppet/application.rb +596 -0
- data/lib/puppet/application_support.rb +68 -0
- data/lib/puppet/coercion.rb +40 -0
- data/lib/puppet/compilable_resource_type.rb +15 -0
- data/lib/puppet/concurrent/lock.rb +16 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +17 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +85 -0
- data/lib/puppet/configurer/fact_handler.rb +50 -0
- data/lib/puppet/configurer/plugin_handler.rb +59 -0
- data/lib/puppet/configurer.rb +755 -0
- data/lib/puppet/confine/any.rb +26 -0
- data/lib/puppet/confine/boolean.rb +45 -0
- data/lib/puppet/confine/exists.rb +19 -0
- data/lib/puppet/confine/false.rb +25 -0
- data/lib/puppet/confine/feature.rb +17 -0
- data/lib/puppet/confine/true.rb +26 -0
- data/lib/puppet/confine/variable.rb +59 -0
- data/lib/puppet/confine.rb +83 -0
- data/lib/puppet/confine_collection.rb +51 -0
- data/lib/puppet/confiner.rb +46 -0
- data/lib/puppet/context/trusted_information.rb +120 -0
- data/lib/puppet/context.rb +188 -0
- data/lib/puppet/daemon.rb +182 -0
- data/lib/puppet/data_binding.rb +14 -0
- data/lib/puppet/datatypes/error.rb +21 -0
- data/lib/puppet/datatypes/impl/error.rb +40 -0
- data/lib/puppet/datatypes.rb +213 -0
- data/lib/puppet/defaults.rb +2277 -0
- data/lib/puppet/environments.rb +601 -0
- data/lib/puppet/error.rb +138 -0
- data/lib/puppet/etc.rb +180 -0
- data/lib/puppet/external/dot.rb +325 -0
- data/lib/puppet/external/pson/common.rb +374 -0
- data/lib/puppet/external/pson/pure/generator.rb +395 -0
- data/lib/puppet/external/pson/pure/parser.rb +308 -0
- data/lib/puppet/external/pson/pure.rb +15 -0
- data/lib/puppet/external/pson/version.rb +8 -0
- data/lib/puppet/face/catalog/select.rb +49 -0
- data/lib/puppet/face/catalog.rb +165 -0
- data/lib/puppet/face/config.rb +267 -0
- data/lib/puppet/face/epp.rb +566 -0
- data/lib/puppet/face/facts.rb +174 -0
- data/lib/puppet/face/generate.rb +66 -0
- data/lib/puppet/face/help/action.erb +90 -0
- data/lib/puppet/face/help/face.erb +115 -0
- data/lib/puppet/face/help/global.erb +16 -0
- data/lib/puppet/face/help/man.erb +152 -0
- data/lib/puppet/face/help.rb +242 -0
- data/lib/puppet/face/module/changes.rb +43 -0
- data/lib/puppet/face/module/install.rb +146 -0
- data/lib/puppet/face/module/list.rb +272 -0
- data/lib/puppet/face/module/uninstall.rb +89 -0
- data/lib/puppet/face/module/upgrade.rb +87 -0
- data/lib/puppet/face/module.rb +19 -0
- data/lib/puppet/face/node/clean.rb +107 -0
- data/lib/puppet/face/node.rb +43 -0
- data/lib/puppet/face/parser.rb +227 -0
- data/lib/puppet/face/plugin.rb +60 -0
- data/lib/puppet/face/report.rb +54 -0
- data/lib/puppet/face/resource.rb +53 -0
- data/lib/puppet/face.rb +12 -0
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/feature/base.rb +76 -0
- data/lib/puppet/feature/bolt.rb +3 -0
- data/lib/puppet/feature/cfpropertylist.rb +3 -0
- data/lib/puppet/feature/eventlog.rb +5 -0
- data/lib/puppet/feature/hiera_eyaml.rb +3 -0
- data/lib/puppet/feature/hocon.rb +3 -0
- data/lib/puppet/feature/libuser.rb +8 -0
- data/lib/puppet/feature/msgpack.rb +3 -0
- data/lib/puppet/feature/pe_license.rb +4 -0
- data/lib/puppet/feature/selinux.rb +3 -0
- data/lib/puppet/feature/ssh.rb +3 -0
- data/lib/puppet/feature/telnet.rb +9 -0
- data/lib/puppet/feature/zlib.rb +5 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/file_bucket/dipper.rb +174 -0
- data/lib/puppet/file_bucket/file.rb +129 -0
- data/lib/puppet/file_bucket.rb +4 -0
- data/lib/puppet/file_serving/base.rb +86 -0
- data/lib/puppet/file_serving/configuration/parser.rb +113 -0
- data/lib/puppet/file_serving/configuration.rb +113 -0
- data/lib/puppet/file_serving/content.rb +43 -0
- data/lib/puppet/file_serving/fileset.rb +186 -0
- data/lib/puppet/file_serving/http_metadata.rb +62 -0
- data/lib/puppet/file_serving/metadata.rb +171 -0
- data/lib/puppet/file_serving/mount/file.rb +122 -0
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/file_serving/mount/modules.rb +26 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/lib/puppet/file_serving/mount/plugins.rb +35 -0
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_serving/mount/tasks.rb +23 -0
- data/lib/puppet/file_serving/mount.rb +38 -0
- data/lib/puppet/file_serving/terminus_helper.rb +31 -0
- data/lib/puppet/file_serving/terminus_selector.rb +31 -0
- data/lib/puppet/file_serving.rb +3 -0
- data/lib/puppet/file_system/file_impl.rb +188 -0
- data/lib/puppet/file_system/jruby.rb +23 -0
- data/lib/puppet/file_system/memory_file.rb +79 -0
- data/lib/puppet/file_system/memory_impl.rb +99 -0
- data/lib/puppet/file_system/path_pattern.rb +93 -0
- data/lib/puppet/file_system/posix.rb +47 -0
- data/lib/puppet/file_system/uniquefile.rb +188 -0
- data/lib/puppet/file_system/windows.rb +213 -0
- data/lib/puppet/file_system.rb +419 -0
- data/lib/puppet/forge/cache.rb +60 -0
- data/lib/puppet/forge/errors.rb +114 -0
- data/lib/puppet/forge/repository.rb +95 -0
- data/lib/puppet/forge.rb +259 -0
- data/lib/puppet/functions/abs.rb +61 -0
- data/lib/puppet/functions/alert.rb +14 -0
- data/lib/puppet/functions/all.rb +104 -0
- data/lib/puppet/functions/annotate.rb +108 -0
- data/lib/puppet/functions/any.rb +109 -0
- data/lib/puppet/functions/assert_type.rb +93 -0
- data/lib/puppet/functions/binary_file.rb +32 -0
- data/lib/puppet/functions/break.rb +47 -0
- data/lib/puppet/functions/call.rb +80 -0
- data/lib/puppet/functions/camelcase.rb +62 -0
- data/lib/puppet/functions/capitalize.rb +61 -0
- data/lib/puppet/functions/ceiling.rb +37 -0
- data/lib/puppet/functions/chomp.rb +57 -0
- data/lib/puppet/functions/chop.rb +67 -0
- data/lib/puppet/functions/compare.rb +125 -0
- data/lib/puppet/functions/contain.rb +55 -0
- data/lib/puppet/functions/convert_to.rb +34 -0
- data/lib/puppet/functions/crit.rb +14 -0
- data/lib/puppet/functions/debug.rb +14 -0
- data/lib/puppet/functions/defined.rb +159 -0
- data/lib/puppet/functions/dig.rb +67 -0
- data/lib/puppet/functions/downcase.rb +89 -0
- data/lib/puppet/functions/each.rb +167 -0
- data/lib/puppet/functions/emerg.rb +14 -0
- data/lib/puppet/functions/empty.rb +85 -0
- data/lib/puppet/functions/epp.rb +49 -0
- data/lib/puppet/functions/err.rb +14 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +102 -0
- data/lib/puppet/functions/filter.rb +137 -0
- data/lib/puppet/functions/find_file.rb +44 -0
- data/lib/puppet/functions/find_template.rb +63 -0
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/floor.rb +37 -0
- data/lib/puppet/functions/get.rb +150 -0
- data/lib/puppet/functions/getvar.rb +87 -0
- data/lib/puppet/functions/group_by.rb +62 -0
- data/lib/puppet/functions/hiera.rb +89 -0
- data/lib/puppet/functions/hiera_array.rb +81 -0
- data/lib/puppet/functions/hiera_hash.rb +92 -0
- data/lib/puppet/functions/hiera_include.rb +104 -0
- data/lib/puppet/functions/hocon_data.rb +41 -0
- data/lib/puppet/functions/import.rb +7 -0
- data/lib/puppet/functions/include.rb +53 -0
- data/lib/puppet/functions/index.rb +167 -0
- data/lib/puppet/functions/info.rb +14 -0
- data/lib/puppet/functions/inline_epp.rb +60 -0
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +33 -0
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +55 -0
- data/lib/puppet/functions/lookup.rb +224 -0
- data/lib/puppet/functions/lstrip.rb +58 -0
- data/lib/puppet/functions/map.rb +135 -0
- data/lib/puppet/functions/match.rb +130 -0
- data/lib/puppet/functions/max.rb +183 -0
- data/lib/puppet/functions/min.rb +182 -0
- data/lib/puppet/functions/module_directory.rb +41 -0
- data/lib/puppet/functions/new.rb +1011 -0
- data/lib/puppet/functions/next.rb +33 -0
- data/lib/puppet/functions/notice.rb +14 -0
- data/lib/puppet/functions/partition.rb +62 -0
- data/lib/puppet/functions/reduce.rb +162 -0
- data/lib/puppet/functions/regsubst.rb +101 -0
- data/lib/puppet/functions/require.rb +77 -0
- data/lib/puppet/functions/return.rb +15 -0
- data/lib/puppet/functions/reverse_each.rb +94 -0
- data/lib/puppet/functions/round.rb +24 -0
- data/lib/puppet/functions/rstrip.rb +58 -0
- data/lib/puppet/functions/scanf.rb +44 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/slice.rb +124 -0
- data/lib/puppet/functions/sort.rb +74 -0
- data/lib/puppet/functions/split.rb +76 -0
- data/lib/puppet/functions/step.rb +98 -0
- data/lib/puppet/functions/strftime.rb +212 -0
- data/lib/puppet/functions/strip.rb +58 -0
- data/lib/puppet/functions/then.rb +77 -0
- data/lib/puppet/functions/tree_each.rb +197 -0
- data/lib/puppet/functions/type.rb +72 -0
- data/lib/puppet/functions/unique.rb +132 -0
- data/lib/puppet/functions/unwrap.rb +59 -0
- data/lib/puppet/functions/upcase.rb +89 -0
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +40 -0
- data/lib/puppet/functions/warning.rb +14 -0
- data/lib/puppet/functions/with.rb +32 -0
- data/lib/puppet/functions/yaml_data.rb +45 -0
- data/lib/puppet/functions.rb +862 -0
- data/lib/puppet/generate/models/type/property.rb +70 -0
- data/lib/puppet/generate/models/type/type.rb +65 -0
- data/lib/puppet/generate/templates/type/pcore.erb +42 -0
- data/lib/puppet/generate/type.rb +249 -0
- data/lib/puppet/gettext/config.rb +275 -0
- data/lib/puppet/gettext/module_translations.rb +42 -0
- data/lib/puppet/gettext/stubs.rb +11 -0
- data/lib/puppet/graph/key.rb +26 -0
- data/lib/puppet/graph/prioritizer.rb +29 -0
- data/lib/puppet/graph/rb_tree_map.rb +388 -0
- data/lib/puppet/graph/relationship_graph.rb +284 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/lib/puppet/graph/simple_graph.rb +546 -0
- data/lib/puppet/graph.rb +9 -0
- data/lib/puppet/http/client.rb +525 -0
- data/lib/puppet/http/dns.rb +159 -0
- data/lib/puppet/http/errors.rb +48 -0
- data/lib/puppet/http/external_client.rb +88 -0
- data/lib/puppet/http/factory.rb +51 -0
- data/lib/puppet/http/pool.rb +172 -0
- data/lib/puppet/http/pool_entry.rb +17 -0
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +85 -0
- data/lib/puppet/http/resolver/server_list.rb +87 -0
- data/lib/puppet/http/resolver/settings.rb +23 -0
- data/lib/puppet/http/resolver/srv.rb +41 -0
- data/lib/puppet/http/resolver.rb +48 -0
- data/lib/puppet/http/response.rb +102 -0
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +77 -0
- data/lib/puppet/http/service/ca.rb +101 -0
- data/lib/puppet/http/service/compiler.rb +353 -0
- data/lib/puppet/http/service/file_server.rb +198 -0
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +64 -0
- data/lib/puppet/http/service.rb +182 -0
- data/lib/puppet/http/session.rb +122 -0
- data/lib/puppet/http/site.rb +42 -0
- data/lib/puppet/http.rb +46 -0
- data/lib/puppet/indirector/catalog/compiler.rb +431 -0
- data/lib/puppet/indirector/catalog/json.rb +40 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/lib/puppet/indirector/catalog/rest.rb +49 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/lib/puppet/indirector/catalog/yaml.rb +6 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +7 -0
- data/lib/puppet/indirector/data_binding/none.rb +8 -0
- data/lib/puppet/indirector/direct_file_server.rb +17 -0
- data/lib/puppet/indirector/envelope.rb +11 -0
- data/lib/puppet/indirector/errors.rb +5 -0
- data/lib/puppet/indirector/exec.rb +38 -0
- data/lib/puppet/indirector/face.rb +153 -0
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +117 -0
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/network_device.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +44 -0
- data/lib/puppet/indirector/facts/store_configs.rb +11 -0
- data/lib/puppet/indirector/facts/yaml.rb +29 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +262 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +50 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
- data/lib/puppet/indirector/file_content/file.rb +7 -0
- data/lib/puppet/indirector/file_content/file_server.rb +7 -0
- data/lib/puppet/indirector/file_content/rest.rb +35 -0
- data/lib/puppet/indirector/file_content/selector.rb +30 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +7 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
- data/lib/puppet/indirector/file_metadata/http.rb +47 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +56 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_server.rb +54 -0
- data/lib/puppet/indirector/generic_http.rb +5 -0
- data/lib/puppet/indirector/hiera.rb +100 -0
- data/lib/puppet/indirector/indirection.rb +372 -0
- data/lib/puppet/indirector/json.rb +79 -0
- data/lib/puppet/indirector/memory.rb +34 -0
- data/lib/puppet/indirector/msgpack.rb +83 -0
- data/lib/puppet/indirector/node/exec.rb +70 -0
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/lib/puppet/indirector/node/plain.rb +21 -0
- data/lib/puppet/indirector/node/rest.rb +29 -0
- data/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/none.rb +9 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/lib/puppet/indirector/report/processor.rb +60 -0
- data/lib/puppet/indirector/report/rest.rb +42 -0
- data/lib/puppet/indirector/report/yaml.rb +34 -0
- data/lib/puppet/indirector/request.rb +194 -0
- data/lib/puppet/indirector/resource/ral.rb +66 -0
- data/lib/puppet/indirector/resource/store_configs.rb +12 -0
- data/lib/puppet/indirector/resource/validator.rb +8 -0
- data/lib/puppet/indirector/rest.rb +64 -0
- data/lib/puppet/indirector/store_configs.rb +30 -0
- data/lib/puppet/indirector/terminus.rb +176 -0
- data/lib/puppet/indirector/yaml.rb +63 -0
- data/lib/puppet/indirector.rb +61 -0
- data/lib/puppet/info_service/class_information_service.rb +109 -0
- data/lib/puppet/info_service/plan_information_service.rb +36 -0
- data/lib/puppet/info_service/task_information_service.rb +44 -0
- data/lib/puppet/info_service.rb +26 -0
- data/lib/puppet/interface/action.rb +406 -0
- data/lib/puppet/interface/action_builder.rb +161 -0
- data/lib/puppet/interface/action_manager.rb +98 -0
- data/lib/puppet/interface/documentation.rb +357 -0
- data/lib/puppet/interface/face_collection.rb +137 -0
- data/lib/puppet/interface/option.rb +172 -0
- data/lib/puppet/interface/option_builder.rb +105 -0
- data/lib/puppet/interface/option_manager.rb +106 -0
- data/lib/puppet/interface.rb +239 -0
- data/lib/puppet/loaders.rb +30 -0
- data/lib/puppet/metatype/manager.rb +197 -0
- data/lib/puppet/module/plan.rb +159 -0
- data/lib/puppet/module/task.rb +283 -0
- data/lib/puppet/module.rb +475 -0
- data/lib/puppet/module_tool/applications/application.rb +91 -0
- data/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/lib/puppet/module_tool/applications/installer.rb +411 -0
- data/lib/puppet/module_tool/applications/uninstaller.rb +119 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +100 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +282 -0
- data/lib/puppet/module_tool/applications.rb +12 -0
- data/lib/puppet/module_tool/checksums.rb +49 -0
- data/lib/puppet/module_tool/contents_description.rb +89 -0
- data/lib/puppet/module_tool/dependency.rb +41 -0
- data/lib/puppet/module_tool/errors/base.rb +15 -0
- data/lib/puppet/module_tool/errors/installer.rb +93 -0
- data/lib/puppet/module_tool/errors/shared.rb +227 -0
- data/lib/puppet/module_tool/errors/uninstaller.rb +50 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +63 -0
- data/lib/puppet/module_tool/errors.rb +11 -0
- data/lib/puppet/module_tool/install_directory.rb +45 -0
- data/lib/puppet/module_tool/installed_modules.rb +96 -0
- data/lib/puppet/module_tool/local_tarball.rb +90 -0
- data/lib/puppet/module_tool/metadata.rb +221 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +181 -0
- data/lib/puppet/module_tool/tar/gnu.rb +19 -0
- data/lib/puppet/module_tool/tar/mini.rb +116 -0
- data/lib/puppet/module_tool/tar.rb +18 -0
- data/lib/puppet/module_tool.rb +194 -0
- data/lib/puppet/network/authconfig.rb +7 -0
- data/lib/puppet/network/authorization.rb +19 -0
- data/lib/puppet/network/client_request.rb +29 -0
- data/lib/puppet/network/format.rb +110 -0
- data/lib/puppet/network/format_handler.rb +108 -0
- data/lib/puppet/network/format_support.rb +139 -0
- data/lib/puppet/network/formats.rb +329 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +277 -0
- data/lib/puppet/network/http/api/indirection_type.rb +32 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +3 -0
- data/lib/puppet/network/http/api/master/v3.rb +3 -0
- data/lib/puppet/network/http/api/master.rb +3 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +48 -0
- data/lib/puppet/network/http/api/server/v3.rb +39 -0
- data/lib/puppet/network/http/api/server.rb +10 -0
- data/lib/puppet/network/http/api.rb +39 -0
- data/lib/puppet/network/http/connection.rb +286 -0
- data/lib/puppet/network/http/error.rb +73 -0
- data/lib/puppet/network/http/handler.rb +215 -0
- data/lib/puppet/network/http/issues.rb +12 -0
- data/lib/puppet/network/http/memory_response.rb +13 -0
- data/lib/puppet/network/http/request.rb +71 -0
- data/lib/puppet/network/http/response.rb +23 -0
- data/lib/puppet/network/http/route.rb +101 -0
- data/lib/puppet/network/http.rb +28 -0
- data/lib/puppet/network/http_pool.rb +77 -0
- data/lib/puppet/network/uri.rb +18 -0
- data/lib/puppet/network.rb +3 -0
- data/lib/puppet/node/environment.rb +635 -0
- data/lib/puppet/node/facts.rb +165 -0
- data/lib/puppet/node/server_facts.rb +46 -0
- data/lib/puppet/node.rb +256 -0
- data/lib/puppet/pal/catalog_compiler.rb +108 -0
- data/lib/puppet/pal/compiler.rb +222 -0
- data/lib/puppet/pal/function_signature.rb +52 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +71 -0
- data/lib/puppet/pal/pal_api.rb +15 -0
- data/lib/puppet/pal/pal_impl.rb +590 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +73 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parameter/boolean.rb +15 -0
- data/lib/puppet/parameter/package_options.rb +31 -0
- data/lib/puppet/parameter/path.rb +57 -0
- data/lib/puppet/parameter/value.rb +91 -0
- data/lib/puppet/parameter/value_collection.rb +212 -0
- data/lib/puppet/parameter.rb +589 -0
- data/lib/puppet/parser/abstract_compiler.rb +36 -0
- data/lib/puppet/parser/ast/block_expression.rb +15 -0
- data/lib/puppet/parser/ast/branch.rb +19 -0
- data/lib/puppet/parser/ast/hostclass.rb +27 -0
- data/lib/puppet/parser/ast/leaf.rb +81 -0
- data/lib/puppet/parser/ast/node.rb +17 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +245 -0
- data/lib/puppet/parser/ast/resource.rb +66 -0
- data/lib/puppet/parser/ast/resource_instance.rb +10 -0
- data/lib/puppet/parser/ast/resourceparam.rb +31 -0
- data/lib/puppet/parser/ast/top_level_construct.rb +4 -0
- data/lib/puppet/parser/ast.rb +61 -0
- data/lib/puppet/parser/catalog_compiler.rb +56 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +39 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler.rb +615 -0
- data/lib/puppet/parser/e4_parser_adapter.rb +60 -0
- data/lib/puppet/parser/files.rb +93 -0
- data/lib/puppet/parser/functions/assert_type.rb +60 -0
- data/lib/puppet/parser/functions/binary_file.rb +24 -0
- data/lib/puppet/parser/functions/break.rb +39 -0
- data/lib/puppet/parser/functions/contain.rb +30 -0
- data/lib/puppet/parser/functions/create_resources.rb +110 -0
- data/lib/puppet/parser/functions/defined.rb +107 -0
- data/lib/puppet/parser/functions/dig.rb +38 -0
- data/lib/puppet/parser/functions/digest.rb +5 -0
- data/lib/puppet/parser/functions/each.rb +104 -0
- data/lib/puppet/parser/functions/epp.rb +39 -0
- data/lib/puppet/parser/functions/fail.rb +11 -0
- data/lib/puppet/parser/functions/file.rb +33 -0
- data/lib/puppet/parser/functions/filter.rb +79 -0
- data/lib/puppet/parser/functions/find_file.rb +28 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +44 -0
- data/lib/puppet/parser/functions/generate.rb +37 -0
- data/lib/puppet/parser/functions/hiera.rb +103 -0
- data/lib/puppet/parser/functions/hiera_array.rb +92 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +102 -0
- data/lib/puppet/parser/functions/hiera_include.rb +101 -0
- data/lib/puppet/parser/functions/include.rb +34 -0
- data/lib/puppet/parser/functions/inline_epp.rb +51 -0
- data/lib/puppet/parser/functions/inline_template.rb +26 -0
- data/lib/puppet/parser/functions/lest.rb +49 -0
- data/lib/puppet/parser/functions/lookup.rb +132 -0
- data/lib/puppet/parser/functions/map.rb +76 -0
- data/lib/puppet/parser/functions/match.rb +43 -0
- data/lib/puppet/parser/functions/md5.rb +5 -0
- data/lib/puppet/parser/functions/new.rb +991 -0
- data/lib/puppet/parser/functions/next.rb +38 -0
- data/lib/puppet/parser/functions/realize.rb +20 -0
- data/lib/puppet/parser/functions/reduce.rb +137 -0
- data/lib/puppet/parser/functions/regsubst.rb +62 -0
- data/lib/puppet/parser/functions/require.rb +40 -0
- data/lib/puppet/parser/functions/return.rb +92 -0
- data/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/lib/puppet/parser/functions/scanf.rb +38 -0
- data/lib/puppet/parser/functions/sha1.rb +5 -0
- data/lib/puppet/parser/functions/sha256.rb +5 -0
- data/lib/puppet/parser/functions/shellquote.rb +61 -0
- data/lib/puppet/parser/functions/slice.rb +39 -0
- data/lib/puppet/parser/functions/split.rb +28 -0
- data/lib/puppet/parser/functions/sprintf.rb +61 -0
- data/lib/puppet/parser/functions/step.rb +84 -0
- data/lib/puppet/parser/functions/strftime.rb +185 -0
- data/lib/puppet/parser/functions/tag.rb +12 -0
- data/lib/puppet/parser/functions/tagged.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +39 -0
- data/lib/puppet/parser/functions/then.rb +73 -0
- data/lib/puppet/parser/functions/type.rb +53 -0
- data/lib/puppet/parser/functions/versioncmp.rb +30 -0
- data/lib/puppet/parser/functions/with.rb +28 -0
- data/lib/puppet/parser/functions.rb +321 -0
- data/lib/puppet/parser/parser_factory.rb +30 -0
- data/lib/puppet/parser/relationship.rb +84 -0
- data/lib/puppet/parser/resource/param.rb +35 -0
- data/lib/puppet/parser/resource.rb +351 -0
- data/lib/puppet/parser/scope.rb +1127 -0
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +104 -0
- data/lib/puppet/parser/type_loader.rb +150 -0
- data/lib/puppet/parser.rb +20 -0
- data/lib/puppet/plugins/configuration.rb +29 -0
- data/lib/puppet/plugins/syntax_checkers.rb +98 -0
- data/lib/puppet/plugins.rb +9 -0
- data/lib/puppet/pops/adaptable.rb +197 -0
- data/lib/puppet/pops/adapters.rb +156 -0
- data/lib/puppet/pops/evaluator/access_operator.rb +719 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +107 -0
- data/lib/puppet/pops/evaluator/closure.rb +375 -0
- data/lib/puppet/pops/evaluator/collector_transformer.rb +234 -0
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +86 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +29 -0
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +70 -0
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +38 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +254 -0
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +225 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +120 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1317 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +46 -0
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +82 -0
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +100 -0
- data/lib/puppet/pops/evaluator/puppet_proc.rb +69 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +185 -0
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +221 -0
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +535 -0
- data/lib/puppet/pops/functions/dispatch.rb +107 -0
- data/lib/puppet/pops/functions/dispatcher.rb +75 -0
- data/lib/puppet/pops/functions/function.rb +139 -0
- data/lib/puppet/pops/issue_reporter.rb +137 -0
- data/lib/puppet/pops/issues.rb +928 -0
- data/lib/puppet/pops/label_provider.rb +90 -0
- data/lib/puppet/pops/loader/base_loader.rb +178 -0
- data/lib/puppet/pops/loader/dependency_loader.rb +91 -0
- data/lib/puppet/pops/loader/gem_support.rb +51 -0
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +28 -0
- data/lib/puppet/pops/loader/loader.rb +221 -0
- data/lib/puppet/pops/loader/loader_paths.rb +412 -0
- data/lib/puppet/pops/loader/module_loaders.rb +556 -0
- data/lib/puppet/pops/loader/predefined_loader.rb +28 -0
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +93 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +79 -0
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +45 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +120 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +103 -0
- data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/lib/puppet/pops/loader/static_loader.rb +131 -0
- data/lib/puppet/pops/loader/task_instantiator.rb +44 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +100 -0
- data/lib/puppet/pops/loader/typed_name.rb +54 -0
- data/lib/puppet/pops/loader/uri_helper.rb +22 -0
- data/lib/puppet/pops/loaders.rb +546 -0
- data/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
- data/lib/puppet/pops/lookup/context.rb +199 -0
- data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
- data/lib/puppet/pops/lookup/data_provider.rb +92 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
- data/lib/puppet/pops/lookup/explainer.rb +595 -0
- data/lib/puppet/pops/lookup/function_provider.rb +110 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +75 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +775 -0
- data/lib/puppet/pops/lookup/interpolation.rb +155 -0
- data/lib/puppet/pops/lookup/invocation.rb +268 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +18 -0
- data/lib/puppet/pops/lookup/location_resolver.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +528 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +89 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +92 -0
- data/lib/puppet/pops/lookup.rb +97 -0
- data/lib/puppet/pops/merge_strategy.rb +441 -0
- data/lib/puppet/pops/migration/migration_checker.rb +58 -0
- data/lib/puppet/pops/model/ast.pp +669 -0
- data/lib/puppet/pops/model/ast.rb +4675 -0
- data/lib/puppet/pops/model/ast_transformer.rb +131 -0
- data/lib/puppet/pops/model/factory.rb +1155 -0
- data/lib/puppet/pops/model/model_label_provider.rb +134 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +445 -0
- data/lib/puppet/pops/model/pn_transformer.rb +385 -0
- data/lib/puppet/pops/model/tree_dumper.rb +59 -0
- data/lib/puppet/pops/parser/code_merger.rb +29 -0
- data/lib/puppet/pops/parser/egrammar.ra +889 -0
- data/lib/puppet/pops/parser/eparser.rb +3184 -0
- data/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/lib/puppet/pops/parser/epp_support.rb +265 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +162 -0
- data/lib/puppet/pops/parser/heredoc_support.rb +153 -0
- data/lib/puppet/pops/parser/interpolation_support.rb +249 -0
- data/lib/puppet/pops/parser/lexer2.rb +777 -0
- data/lib/puppet/pops/parser/lexer_support.rb +221 -0
- data/lib/puppet/pops/parser/locatable.rb +23 -0
- data/lib/puppet/pops/parser/locator.rb +357 -0
- data/lib/puppet/pops/parser/parser_support.rb +251 -0
- data/lib/puppet/pops/parser/pn_parser.rb +317 -0
- data/lib/puppet/pops/parser/slurp_support.rb +118 -0
- data/lib/puppet/pops/patterns.rb +60 -0
- data/lib/puppet/pops/pcore.rb +135 -0
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/puppet_stack.rb +61 -0
- data/lib/puppet/pops/resource/param.rb +55 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +294 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
- data/lib/puppet/pops/semantic_error.rb +29 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +180 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +222 -0
- data/lib/puppet/pops/serialization/deserializer.rb +80 -0
- data/lib/puppet/pops/serialization/extension.rb +158 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +224 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/lib/puppet/pops/serialization/json.rb +297 -0
- data/lib/puppet/pops/serialization/json_path.rb +127 -0
- data/lib/puppet/pops/serialization/object.rb +70 -0
- data/lib/puppet/pops/serialization/serializer.rb +140 -0
- data/lib/puppet/pops/serialization/time_factory.rb +67 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +313 -0
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
- data/lib/puppet/pops/serialization.rb +43 -0
- data/lib/puppet/pops/time/timespan.rb +716 -0
- data/lib/puppet/pops/time/timestamp.rb +160 -0
- data/lib/puppet/pops/types/annotatable.rb +36 -0
- data/lib/puppet/pops/types/annotation.rb +71 -0
- data/lib/puppet/pops/types/class_loader.rb +132 -0
- data/lib/puppet/pops/types/implementation_registry.rb +134 -0
- data/lib/puppet/pops/types/iterable.rb +365 -0
- data/lib/puppet/pops/types/p_binary_type.rb +232 -0
- data/lib/puppet/pops/types/p_init_type.rb +238 -0
- data/lib/puppet/pops/types/p_meta_type.rb +94 -0
- data/lib/puppet/pops/types/p_object_type.rb +1117 -0
- data/lib/puppet/pops/types/p_object_type_extension.rb +228 -0
- data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +190 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +155 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +83 -0
- data/lib/puppet/pops/types/p_timespan_type.rb +192 -0
- data/lib/puppet/pops/types/p_timestamp_type.rb +73 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +387 -0
- data/lib/puppet/pops/types/p_uri_type.rb +190 -0
- data/lib/puppet/pops/types/puppet_object.rb +40 -0
- data/lib/puppet/pops/types/recursion_guard.rb +136 -0
- data/lib/puppet/pops/types/ruby_generator.rb +472 -0
- data/lib/puppet/pops/types/ruby_method.rb +31 -0
- data/lib/puppet/pops/types/string_converter.rb +1134 -0
- data/lib/puppet/pops/types/tree_iterators.rb +254 -0
- data/lib/puppet/pops/types/type_acceptor.rb +25 -0
- data/lib/puppet/pops/types/type_asserter.rb +47 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +27 -0
- data/lib/puppet/pops/types/type_calculator.rb +822 -0
- data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
- data/lib/puppet/pops/types/type_factory.rb +631 -0
- data/lib/puppet/pops/types/type_formatter.rb +801 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1096 -0
- data/lib/puppet/pops/types/type_parser.rb +683 -0
- data/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +3633 -0
- data/lib/puppet/pops/utils.rb +119 -0
- data/lib/puppet/pops/validation/checker4_0.rb +1148 -0
- data/lib/puppet/pops/validation/tasks_checker.rb +93 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +45 -0
- data/lib/puppet/pops/validation.rb +459 -0
- data/lib/puppet/pops/visitable.rb +6 -0
- data/lib/puppet/pops/visitor.rb +122 -0
- data/lib/puppet/pops.rb +121 -0
- data/lib/puppet/property/boolean.rb +7 -0
- data/lib/puppet/property/ensure.rb +106 -0
- data/lib/puppet/property/keyvalue.rb +158 -0
- data/lib/puppet/property/list.rb +70 -0
- data/lib/puppet/property/ordered_list.rb +29 -0
- data/lib/puppet/property.rb +611 -0
- data/lib/puppet/provider/aix_object.rb +485 -0
- data/lib/puppet/provider/command.rb +25 -0
- data/lib/puppet/provider/confine.rb +6 -0
- data/lib/puppet/provider/exec/posix.rb +60 -0
- data/lib/puppet/provider/exec/shell.rb +25 -0
- data/lib/puppet/provider/exec/windows.rb +55 -0
- data/lib/puppet/provider/exec.rb +105 -0
- data/lib/puppet/provider/file/posix.rb +144 -0
- data/lib/puppet/provider/file/windows.rb +152 -0
- data/lib/puppet/provider/group/aix.rb +99 -0
- data/lib/puppet/provider/group/directoryservice.rb +22 -0
- data/lib/puppet/provider/group/groupadd.rb +174 -0
- data/lib/puppet/provider/group/ldap.rb +48 -0
- data/lib/puppet/provider/group/pw.rb +51 -0
- data/lib/puppet/provider/group/windows_adsi.rb +113 -0
- data/lib/puppet/provider/ldap.rb +141 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +512 -0
- data/lib/puppet/provider/nameservice/objectadd.rb +22 -0
- data/lib/puppet/provider/nameservice/pw.rb +21 -0
- data/lib/puppet/provider/nameservice.rb +293 -0
- data/lib/puppet/provider/network_device.rb +74 -0
- data/lib/puppet/provider/package/aix.rb +169 -0
- data/lib/puppet/provider/package/appdmg.rb +111 -0
- data/lib/puppet/provider/package/apple.rb +47 -0
- data/lib/puppet/provider/package/apt.rb +262 -0
- data/lib/puppet/provider/package/aptitude.rb +35 -0
- data/lib/puppet/provider/package/aptrpm.rb +83 -0
- data/lib/puppet/provider/package/blastwave.rb +112 -0
- data/lib/puppet/provider/package/dnf.rb +50 -0
- data/lib/puppet/provider/package/dnfmodule.rb +141 -0
- data/lib/puppet/provider/package/dpkg.rb +192 -0
- data/lib/puppet/provider/package/fink.rb +97 -0
- data/lib/puppet/provider/package/freebsd.rb +47 -0
- data/lib/puppet/provider/package/gem.rb +293 -0
- data/lib/puppet/provider/package/hpux.rb +44 -0
- data/lib/puppet/provider/package/macports.rb +110 -0
- data/lib/puppet/provider/package/nim.rb +291 -0
- data/lib/puppet/provider/package/openbsd.rb +260 -0
- data/lib/puppet/provider/package/opkg.rb +82 -0
- data/lib/puppet/provider/package/pacman.rb +273 -0
- data/lib/puppet/provider/package/pip.rb +346 -0
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pip3.rb +17 -0
- data/lib/puppet/provider/package/pkg.rb +295 -0
- data/lib/puppet/provider/package/pkgdmg.rb +153 -0
- data/lib/puppet/provider/package/pkgin.rb +87 -0
- data/lib/puppet/provider/package/pkgng.rb +173 -0
- data/lib/puppet/provider/package/pkgutil.rb +187 -0
- data/lib/puppet/provider/package/portage.rb +310 -0
- data/lib/puppet/provider/package/ports.rb +91 -0
- data/lib/puppet/provider/package/portupgrade.rb +240 -0
- data/lib/puppet/provider/package/puppet_gem.rb +34 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +171 -0
- data/lib/puppet/provider/package/rpm.rb +250 -0
- data/lib/puppet/provider/package/rug.rb +51 -0
- data/lib/puppet/provider/package/sun.rb +133 -0
- data/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/puppet/provider/package/tdnf.rb +28 -0
- data/lib/puppet/provider/package/up2date.rb +40 -0
- data/lib/puppet/provider/package/urpmi.rb +55 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +106 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +70 -0
- data/lib/puppet/provider/package/windows/package.rb +110 -0
- data/lib/puppet/provider/package/windows.rb +130 -0
- data/lib/puppet/provider/package/yum.rb +387 -0
- data/lib/puppet/provider/package/zypper.rb +206 -0
- data/lib/puppet/provider/package.rb +59 -0
- data/lib/puppet/provider/package_targetable.rb +69 -0
- data/lib/puppet/provider/parsedfile.rb +490 -0
- data/lib/puppet/provider/service/base.rb +139 -0
- data/lib/puppet/provider/service/bsd.rb +51 -0
- data/lib/puppet/provider/service/daemontools.rb +193 -0
- data/lib/puppet/provider/service/debian.rb +75 -0
- data/lib/puppet/provider/service/freebsd.rb +143 -0
- data/lib/puppet/provider/service/gentoo.rb +45 -0
- data/lib/puppet/provider/service/init.rb +192 -0
- data/lib/puppet/provider/service/launchd.rb +384 -0
- data/lib/puppet/provider/service/openbsd.rb +100 -0
- data/lib/puppet/provider/service/openrc.rb +71 -0
- data/lib/puppet/provider/service/openwrt.rb +36 -0
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +72 -0
- data/lib/puppet/provider/service/runit.rb +106 -0
- data/lib/puppet/provider/service/service.rb +68 -0
- data/lib/puppet/provider/service/smf.rb +317 -0
- data/lib/puppet/provider/service/src.rb +147 -0
- data/lib/puppet/provider/service/systemd.rb +232 -0
- data/lib/puppet/provider/service/upstart.rb +385 -0
- data/lib/puppet/provider/service/windows.rb +182 -0
- data/lib/puppet/provider/user/aix.rb +361 -0
- data/lib/puppet/provider/user/directoryservice.rb +680 -0
- data/lib/puppet/provider/user/hpux.rb +95 -0
- data/lib/puppet/provider/user/ldap.rb +132 -0
- data/lib/puppet/provider/user/openbsd.rb +77 -0
- data/lib/puppet/provider/user/pw.rb +108 -0
- data/lib/puppet/provider/user/user_role_add.rb +239 -0
- data/lib/puppet/provider/user/useradd.rb +406 -0
- data/lib/puppet/provider/user/windows_adsi.rb +172 -0
- data/lib/puppet/provider.rb +612 -0
- data/lib/puppet/reference/configuration.rb +97 -0
- data/lib/puppet/reference/function.rb +17 -0
- data/lib/puppet/reference/indirection.rb +71 -0
- data/lib/puppet/reference/metaparameter.rb +33 -0
- data/lib/puppet/reference/providers.rb +117 -0
- data/lib/puppet/reference/report.rb +20 -0
- data/lib/puppet/reference/type.rb +109 -0
- data/lib/puppet/relationship.rb +84 -0
- data/lib/puppet/reports/http.rb +44 -0
- data/lib/puppet/reports/log.rb +14 -0
- data/lib/puppet/reports/store.rb +68 -0
- data/lib/puppet/reports.rb +93 -0
- data/lib/puppet/resource/catalog.rb +654 -0
- data/lib/puppet/resource/status.rb +229 -0
- data/lib/puppet/resource/type.rb +425 -0
- data/lib/puppet/resource/type_collection.rb +231 -0
- data/lib/puppet/resource.rb +663 -0
- data/lib/puppet/runtime.rb +65 -0
- data/lib/puppet/scheduler/job.rb +53 -0
- data/lib/puppet/scheduler/scheduler.rb +44 -0
- data/lib/puppet/scheduler/splay_job.rb +32 -0
- data/lib/puppet/scheduler/timer.rb +13 -0
- data/lib/puppet/scheduler.rb +16 -0
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/array_setting.rb +17 -0
- data/lib/puppet/settings/autosign_setting.rb +22 -0
- data/lib/puppet/settings/base_setting.rb +223 -0
- data/lib/puppet/settings/boolean_setting.rb +32 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
- data/lib/puppet/settings/config_file.rb +146 -0
- data/lib/puppet/settings/directory_setting.rb +18 -0
- data/lib/puppet/settings/duration_setting.rb +32 -0
- data/lib/puppet/settings/enum_setting.rb +16 -0
- data/lib/puppet/settings/environment_conf.rb +224 -0
- data/lib/puppet/settings/errors.rb +11 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +40 -0
- data/lib/puppet/settings/file_setting.rb +241 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/settings/ini_file.rb +226 -0
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/path_setting.rb +8 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +43 -0
- data/lib/puppet/settings/server_list_setting.rb +29 -0
- data/lib/puppet/settings/string_setting.rb +9 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
- data/lib/puppet/settings/terminus_setting.rb +14 -0
- data/lib/puppet/settings/ttl_setting.rb +51 -0
- data/lib/puppet/settings/value_translator.rb +14 -0
- data/lib/puppet/settings.rb +1642 -0
- data/lib/puppet/ssl/base.rb +149 -0
- data/lib/puppet/ssl/certificate.rb +96 -0
- data/lib/puppet/ssl/certificate_request.rb +324 -0
- data/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
- data/lib/puppet/ssl/certificate_signer.rb +39 -0
- data/lib/puppet/ssl/digest.rb +20 -0
- data/lib/puppet/ssl/error.rb +26 -0
- data/lib/puppet/ssl/oids.rb +197 -0
- data/lib/puppet/ssl/openssl_loader.rb +24 -0
- data/lib/puppet/ssl/ssl_context.rb +25 -0
- data/lib/puppet/ssl/ssl_provider.rb +350 -0
- data/lib/puppet/ssl/state_machine.rb +474 -0
- data/lib/puppet/ssl/verifier.rb +142 -0
- data/lib/puppet/ssl.rb +23 -0
- data/lib/puppet/syntax_checkers/base64.rb +40 -0
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/json.rb +35 -0
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/syntax_checkers.rb +3 -0
- data/lib/puppet/test/test_helper.rb +265 -0
- data/lib/puppet/thread_local.rb +4 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +220 -0
- data/lib/puppet/transaction/event.rb +168 -0
- data/lib/puppet/transaction/event_manager.rb +179 -0
- data/lib/puppet/transaction/persistence.rb +119 -0
- data/lib/puppet/transaction/report.rb +504 -0
- data/lib/puppet/transaction/resource_harness.rb +323 -0
- data/lib/puppet/transaction.rb +491 -0
- data/lib/puppet/trusted_external.rb +41 -0
- data/lib/puppet/type/component.rb +89 -0
- data/lib/puppet/type/exec.rb +720 -0
- data/lib/puppet/type/file/checksum.rb +50 -0
- data/lib/puppet/type/file/checksum_value.rb +54 -0
- data/lib/puppet/type/file/content.rb +176 -0
- data/lib/puppet/type/file/ctime.rb +21 -0
- data/lib/puppet/type/file/data_sync.rb +98 -0
- data/lib/puppet/type/file/ensure.rb +195 -0
- data/lib/puppet/type/file/group.rb +48 -0
- data/lib/puppet/type/file/mode.rb +189 -0
- data/lib/puppet/type/file/mtime.rb +19 -0
- data/lib/puppet/type/file/owner.rb +51 -0
- data/lib/puppet/type/file/selcontext.rb +142 -0
- data/lib/puppet/type/file/source.rb +379 -0
- data/lib/puppet/type/file/target.rb +88 -0
- data/lib/puppet/type/file/type.rb +20 -0
- data/lib/puppet/type/file.rb +1133 -0
- data/lib/puppet/type/filebucket.rb +121 -0
- data/lib/puppet/type/group.rb +237 -0
- data/lib/puppet/type/notify.rb +47 -0
- data/lib/puppet/type/package.rb +713 -0
- data/lib/puppet/type/resources.rb +187 -0
- data/lib/puppet/type/schedule.rb +441 -0
- data/lib/puppet/type/service.rb +309 -0
- data/lib/puppet/type/stage.rb +27 -0
- data/lib/puppet/type/tidy.rb +376 -0
- data/lib/puppet/type/user.rb +859 -0
- data/lib/puppet/type/whit.rb +34 -0
- data/lib/puppet/type.rb +2676 -0
- data/lib/puppet/util/at_fork/noop.rb +18 -0
- data/lib/puppet/util/at_fork/solaris.rb +160 -0
- data/lib/puppet/util/at_fork.rb +35 -0
- data/lib/puppet/util/autoload.rb +215 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/character_encoding.rb +80 -0
- data/lib/puppet/util/checksums.rb +376 -0
- data/lib/puppet/util/classgen.rb +228 -0
- data/lib/puppet/util/colors.rb +100 -0
- data/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
- data/lib/puppet/util/command_line/trollop.rb +825 -0
- data/lib/puppet/util/command_line.rb +196 -0
- data/lib/puppet/util/constant_inflector.rb +24 -0
- data/lib/puppet/util/diff.rb +81 -0
- data/lib/puppet/util/docs.rb +128 -0
- data/lib/puppet/util/errors.rb +159 -0
- data/lib/puppet/util/execution.rb +424 -0
- data/lib/puppet/util/execution_stub.rb +26 -0
- data/lib/puppet/util/feature.rb +129 -0
- data/lib/puppet/util/file_watcher.rb +28 -0
- data/lib/puppet/util/fileparsing.rb +408 -0
- data/lib/puppet/util/filetype.rb +358 -0
- data/lib/puppet/util/http_proxy.rb +4 -0
- data/lib/puppet/util/inifile.rb +340 -0
- data/lib/puppet/util/instance_loader.rb +66 -0
- data/lib/puppet/util/json.rb +92 -0
- data/lib/puppet/util/json_lockfile.rb +44 -0
- data/lib/puppet/util/ldap/connection.rb +73 -0
- data/lib/puppet/util/ldap/generator.rb +42 -0
- data/lib/puppet/util/ldap/manager.rb +284 -0
- data/lib/puppet/util/ldap.rb +2 -0
- data/lib/puppet/util/libuser.conf +15 -0
- data/lib/puppet/util/libuser.rb +12 -0
- data/lib/puppet/util/limits.rb +12 -0
- data/lib/puppet/util/lockfile.rb +66 -0
- data/lib/puppet/util/log/destination.rb +49 -0
- data/lib/puppet/util/log/destinations.rb +253 -0
- data/lib/puppet/util/log.rb +427 -0
- data/lib/puppet/util/logging.rb +300 -0
- data/lib/puppet/util/metaid.rb +21 -0
- data/lib/puppet/util/metric.rb +65 -0
- data/lib/puppet/util/monkey_patches.rb +122 -0
- data/lib/puppet/util/multi_match.rb +51 -0
- data/lib/puppet/util/network_device/base.rb +23 -0
- data/lib/puppet/util/network_device/config.rb +105 -0
- data/lib/puppet/util/network_device/transport/base.rb +26 -0
- data/lib/puppet/util/network_device/transport.rb +5 -0
- data/lib/puppet/util/network_device.rb +17 -0
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/package.rb +40 -0
- data/lib/puppet/util/pidlock.rb +102 -0
- data/lib/puppet/util/platform.rb +70 -0
- data/lib/puppet/util/plist.rb +161 -0
- data/lib/puppet/util/posix.rb +203 -0
- data/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/lib/puppet/util/profiler/logging.rb +48 -0
- data/lib/puppet/util/profiler/object_counts.rb +17 -0
- data/lib/puppet/util/profiler/wall_clock.rb +35 -0
- data/lib/puppet/util/profiler.rb +53 -0
- data/lib/puppet/util/provider_features.rb +179 -0
- data/lib/puppet/util/psych_support.rb +30 -0
- data/lib/puppet/util/rdoc/code_objects.rb +295 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +912 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +259 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
- data/lib/puppet/util/rdoc/parser.rb +12 -0
- data/lib/puppet/util/rdoc.rb +53 -0
- data/lib/puppet/util/reference.rb +119 -0
- data/lib/puppet/util/resource_template.rb +61 -0
- data/lib/puppet/util/retry_action.rb +46 -0
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/rubygems.rb +67 -0
- data/lib/puppet/util/run_mode.rb +122 -0
- data/lib/puppet/util/selinux.rb +297 -0
- data/lib/puppet/util/skip_tags.rb +13 -0
- data/lib/puppet/util/splayer.rb +18 -0
- data/lib/puppet/util/storage.rb +100 -0
- data/lib/puppet/util/suidmanager.rb +166 -0
- data/lib/puppet/util/symbolic_file_mode.rb +156 -0
- data/lib/puppet/util/tag_set.rb +27 -0
- data/lib/puppet/util/tagging.rb +132 -0
- data/lib/puppet/util/terminal.rb +16 -0
- data/lib/puppet/util/user_attr.rb +21 -0
- data/lib/puppet/util/warnings.rb +31 -0
- data/lib/puppet/util/watched_file.rb +37 -0
- data/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/lib/puppet/util/watcher/timer.rb +19 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/lib/puppet/util/windows/access_control_list.rb +113 -0
- data/lib/puppet/util/windows/adsi.rb +654 -0
- data/lib/puppet/util/windows/com.rb +225 -0
- data/lib/puppet/util/windows/daemon.rb +343 -0
- data/lib/puppet/util/windows/error.rb +84 -0
- data/lib/puppet/util/windows/eventlog.rb +187 -0
- data/lib/puppet/util/windows/file.rb +355 -0
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/principal.rb +201 -0
- data/lib/puppet/util/windows/process.rb +364 -0
- data/lib/puppet/util/windows/registry.rb +441 -0
- data/lib/puppet/util/windows/root_certs.rb +108 -0
- data/lib/puppet/util/windows/security.rb +907 -0
- data/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/lib/puppet/util/windows/service.rb +696 -0
- data/lib/puppet/util/windows/sid.rb +289 -0
- data/lib/puppet/util/windows/string.rb +15 -0
- data/lib/puppet/util/windows/user.rb +550 -0
- data/lib/puppet/util/windows.rb +51 -0
- data/lib/puppet/util/yaml.rb +65 -0
- data/lib/puppet/util.rb +808 -0
- data/lib/puppet/vendor/require_vendored.rb +4 -0
- data/lib/puppet/vendor.rb +57 -0
- data/lib/puppet/version.rb +95 -0
- data/lib/puppet/x509/cert_provider.rb +369 -0
- data/lib/puppet/x509/pem_store.rb +55 -0
- data/lib/puppet/x509.rb +11 -0
- data/lib/puppet.rb +345 -0
- data/lib/puppet_pal.rb +8 -0
- data/lib/puppet_x.rb +14 -0
- data/locales/config.yaml +29 -0
- data/locales/en/puppet.po +19 -0
- data/locales/puppet.pot +20 -0
- data/man/man5/puppet.conf.5 +2198 -0
- data/man/man8/puppet-agent.8 +203 -0
- data/man/man8/puppet-apply.8 +100 -0
- data/man/man8/puppet-catalog.8 +291 -0
- data/man/man8/puppet-config.8 +151 -0
- data/man/man8/puppet-describe.8 +51 -0
- data/man/man8/puppet-device.8 +119 -0
- data/man/man8/puppet-doc.8 +46 -0
- data/man/man8/puppet-epp.8 +377 -0
- data/man/man8/puppet-facts.8 +234 -0
- data/man/man8/puppet-filebucket.8 +166 -0
- data/man/man8/puppet-generate.8 +84 -0
- data/man/man8/puppet-help.8 +67 -0
- data/man/man8/puppet-lookup.8 +107 -0
- data/man/man8/puppet-module.8 +325 -0
- data/man/man8/puppet-node.8 +163 -0
- data/man/man8/puppet-parser.8 +130 -0
- data/man/man8/puppet-plugin.8 +73 -0
- data/man/man8/puppet-report.8 +127 -0
- data/man/man8/puppet-resource.8 +88 -0
- data/man/man8/puppet-script.8 +70 -0
- data/man/man8/puppet-ssl.8 +63 -0
- data/man/man8/puppet.8 +28 -0
- data/tasks/benchmark.rake +180 -0
- data/tasks/ci.rake +24 -0
- data/tasks/generate_ast_model.rake +90 -0
- data/tasks/generate_cert_fixtures.rake +194 -0
- data/tasks/manpages.rake +67 -0
- data/tasks/memwalk.rake +195 -0
- data/tasks/parallel.rake +410 -0
- data/tasks/parser.rake +22 -0
- data/tasks/yard.rake +59 -0
- metadata +1324 -0
@@ -0,0 +1,64 @@
|
|
1
|
+
# Returns a flat Array produced from its possibly deeply nested given arguments.
|
2
|
+
#
|
3
|
+
# One or more arguments of any data type can be given to this function.
|
4
|
+
# The result is always a flat array representation where any nested arrays are recursively flattened.
|
5
|
+
#
|
6
|
+
# @example Typical use of `flatten()`
|
7
|
+
#
|
8
|
+
# ```puppet
|
9
|
+
# flatten(['a', ['b', ['c']]])
|
10
|
+
# # Would return: ['a','b','c']
|
11
|
+
# ```
|
12
|
+
#
|
13
|
+
# To flatten other kinds of iterables (for example hashes, or intermediate results like from a `reverse_each`)
|
14
|
+
# first convert the result to an array using `Array($x)`, or `$x.convert_to(Array)`. See the `new` function
|
15
|
+
# for details and options when performing a conversion.
|
16
|
+
#
|
17
|
+
# @example Flattening a Hash
|
18
|
+
#
|
19
|
+
# ```puppet
|
20
|
+
# $hsh = { a => 1, b => 2}
|
21
|
+
#
|
22
|
+
# # -- without conversion
|
23
|
+
# $hsh.flatten()
|
24
|
+
# # Would return [{a => 1, b => 2}]
|
25
|
+
#
|
26
|
+
# # -- with conversion
|
27
|
+
# $hsh.convert_to(Array).flatten()
|
28
|
+
# # Would return [a,1,b,2]
|
29
|
+
#
|
30
|
+
# flatten(Array($hsh))
|
31
|
+
# # Would also return [a,1,b,2]
|
32
|
+
# ```
|
33
|
+
#
|
34
|
+
# @example Flattening and concatenating at the same time
|
35
|
+
#
|
36
|
+
# ```puppet
|
37
|
+
# $a1 = [1, [2, 3]]
|
38
|
+
# $a2 = [[4,[5,6]]
|
39
|
+
# $x = 7
|
40
|
+
# flatten($a1, $a2, $x)
|
41
|
+
# # would return [1,2,3,4,5,6,7]
|
42
|
+
# ```
|
43
|
+
#
|
44
|
+
# @example Transforming to Array if not already an Array
|
45
|
+
#
|
46
|
+
# ```puppet
|
47
|
+
# flatten(42)
|
48
|
+
# # Would return [42]
|
49
|
+
#
|
50
|
+
# flatten([42])
|
51
|
+
# # Would also return [42]
|
52
|
+
# ```
|
53
|
+
#
|
54
|
+
# @since 5.5.0 support for flattening and concatenating at the same time
|
55
|
+
#
|
56
|
+
Puppet::Functions.create_function(:flatten) do
|
57
|
+
dispatch :flatten_args do
|
58
|
+
repeated_param 'Any', :args
|
59
|
+
end
|
60
|
+
|
61
|
+
def flatten_args(*args)
|
62
|
+
args.flatten()
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Returns the largest `Integer` less or equal to the argument.
|
2
|
+
# Takes a single numeric value as an argument.
|
3
|
+
#
|
4
|
+
# This function is backwards compatible with the same function in stdlib
|
5
|
+
# and accepts a `Numeric` value. A `String` that can be converted
|
6
|
+
# to a floating point number can also be used in this version - but this
|
7
|
+
# is deprecated.
|
8
|
+
#
|
9
|
+
# In general convert string input to `Numeric` before calling this function
|
10
|
+
# to have full control over how the conversion is done.
|
11
|
+
#
|
12
|
+
Puppet::Functions.create_function(:floor) do
|
13
|
+
dispatch :on_numeric do
|
14
|
+
param 'Numeric', :val
|
15
|
+
end
|
16
|
+
|
17
|
+
dispatch :on_string do
|
18
|
+
param 'String', :val
|
19
|
+
end
|
20
|
+
|
21
|
+
def on_numeric(x)
|
22
|
+
x.floor
|
23
|
+
end
|
24
|
+
|
25
|
+
def on_string(x)
|
26
|
+
Puppet.warn_once('deprecations', 'floor_function_numeric_coerce_string',
|
27
|
+
_("The floor() function's auto conversion of String to Float is deprecated - change to convert input before calling"))
|
28
|
+
|
29
|
+
begin
|
30
|
+
Float(x).floor
|
31
|
+
rescue TypeError, ArgumentError => _e
|
32
|
+
# TRANSLATORS: 'floor' is a name and should not be translated
|
33
|
+
raise(ArgumentError, _('floor(): cannot convert given value to a floating point value.'))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
# Digs into a value with dot notation to get a value from within a structure.
|
2
|
+
#
|
3
|
+
# **To dig into a given value**, call the function with (at least) two arguments:
|
4
|
+
#
|
5
|
+
# * The **first** argument must be an Array, or Hash. Value can also be `undef`
|
6
|
+
# (which also makes the result `undef` unless a _default value_ is given).
|
7
|
+
# * The **second** argument must be a _dot notation navigation string_.
|
8
|
+
# * The **optional third** argument can be any type of value and it is used
|
9
|
+
# as the _default value_ if the function would otherwise return `undef`.
|
10
|
+
# * An **optional lambda** for error handling taking one `Error` argument.
|
11
|
+
#
|
12
|
+
# **Dot notation navigation string** -
|
13
|
+
# The dot string consists of period `.` separated segments where each
|
14
|
+
# segment is either the index into an array or the value of a hash key.
|
15
|
+
# If a wanted key contains a period it must be quoted to avoid it being
|
16
|
+
# taken as a segment separator. Quoting can be done with either
|
17
|
+
# single quotes `'` or double quotes `"`. If a segment is
|
18
|
+
# a decimal number it is converted to an Integer index. This conversion
|
19
|
+
# can be prevented by quoting the value.
|
20
|
+
#
|
21
|
+
# @example Navigating into a value
|
22
|
+
# ```puppet
|
23
|
+
# #get($facts, 'os.family')
|
24
|
+
# $facts.get('os.family')
|
25
|
+
# ```
|
26
|
+
# Would both result in the value of `$facts['os']['family']`
|
27
|
+
#
|
28
|
+
# @example Getting the value from an expression
|
29
|
+
# ```puppet
|
30
|
+
# get([1,2,[{'name' =>'waldo'}]], '2.0.name')
|
31
|
+
# ```
|
32
|
+
# Would result in `'waldo'`
|
33
|
+
#
|
34
|
+
# @example Using a default value
|
35
|
+
# ```puppet
|
36
|
+
# get([1,2,[{'name' =>'waldo'}]], '2.1.name', 'not waldo')
|
37
|
+
#
|
38
|
+
# ```
|
39
|
+
# Would result in `'not waldo'`
|
40
|
+
#
|
41
|
+
# @example Quoting a key with period
|
42
|
+
# ```puppet
|
43
|
+
# $x = [1, 2, { 'readme.md' => "This is a readme."}]
|
44
|
+
# $x.get('2."readme.md"')
|
45
|
+
# ```
|
46
|
+
#
|
47
|
+
# @example Quoting a numeric string
|
48
|
+
# ```puppet
|
49
|
+
# $x = [1, 2, { '10' => "ten"}]
|
50
|
+
# $x.get('2."0"')
|
51
|
+
# ```
|
52
|
+
#
|
53
|
+
# **Error Handling** - There are two types of common errors that can
|
54
|
+
# be handled by giving the function a code block to execute.
|
55
|
+
# (A third kind or error; when the navigation string has syntax errors
|
56
|
+
# (for example an empty segment or unbalanced quotes) will always raise
|
57
|
+
# an error).
|
58
|
+
#
|
59
|
+
# The given block will be given an instance of the `Error` data type,
|
60
|
+
# and it has methods to extract `msg`, `issue_code`, `kind`, and
|
61
|
+
# `details`.
|
62
|
+
#
|
63
|
+
# The `msg` will be a preformatted message describing the error.
|
64
|
+
# This is the error message that would have surfaced if there was
|
65
|
+
# no block to handle the error.
|
66
|
+
#
|
67
|
+
# The `kind` is the string `'SLICE_ERROR'` for both kinds of errors,
|
68
|
+
# and the `issue_code` is either the string `'EXPECTED_INTEGER_INDEX'`
|
69
|
+
# for an attempt to index into an array with a String,
|
70
|
+
# or `'EXPECTED_COLLECTION'` for an attempt to index into something that
|
71
|
+
# is not a Collection.
|
72
|
+
#
|
73
|
+
# The `details` is a Hash that for both issue codes contain the
|
74
|
+
# entry `'walked_path'` which is an Array with each key in the
|
75
|
+
# progression of the dig up to the place where the error occurred.
|
76
|
+
#
|
77
|
+
# For an `EXPECTED_INTEGER_INDEX`-issue the detail `'index_type'` is
|
78
|
+
# set to the data type of the index value and for an
|
79
|
+
# `'EXPECTED_COLLECTION'`-issue the detail `'value_type'` is set
|
80
|
+
# to the type of the value.
|
81
|
+
#
|
82
|
+
# The logic in the error handling block can inspect the details,
|
83
|
+
# and either call `fail()` with a custom error message or produce
|
84
|
+
# the wanted value.
|
85
|
+
#
|
86
|
+
# If the block produces `undef` it will not be replaced with a
|
87
|
+
# given default value.
|
88
|
+
#
|
89
|
+
# @example Ensure `undef` result on error
|
90
|
+
# ```puppet
|
91
|
+
# $x = 'blue'
|
92
|
+
# $x.get('0.color', 'green') |$error| { undef } # result is undef
|
93
|
+
#
|
94
|
+
# $y = ['blue']
|
95
|
+
# $y.get('color', 'green') |$error| { undef } # result is undef
|
96
|
+
# ```
|
97
|
+
#
|
98
|
+
# @example Accessing information in the Error
|
99
|
+
# ```puppet
|
100
|
+
# $x = [1, 2, ['blue']]
|
101
|
+
# $x.get('2.color') |$error| {
|
102
|
+
# notice("Walked path is ${error.details['walked_path']}")
|
103
|
+
# }
|
104
|
+
# ```
|
105
|
+
# Would notice `Walked path is [2, color]`
|
106
|
+
#
|
107
|
+
# Also see:
|
108
|
+
# * `getvar()` that takes the first segment to be the name of a variable
|
109
|
+
# and then delegates to this function.
|
110
|
+
# * `dig()` function which is similar but uses an
|
111
|
+
# array of navigation values instead of a dot notation string.
|
112
|
+
#
|
113
|
+
# @since 6.0.0
|
114
|
+
#
|
115
|
+
Puppet::Functions.create_function(:get, Puppet::Functions::InternalFunction) do
|
116
|
+
dispatch :get_from_value do
|
117
|
+
param 'Any', :value
|
118
|
+
param 'String', :dotted_string
|
119
|
+
optional_param 'Any', :default_value
|
120
|
+
optional_block_param 'Callable[1,1]', :block
|
121
|
+
end
|
122
|
+
|
123
|
+
# Gets a result from given value and a navigation string
|
124
|
+
#
|
125
|
+
def get_from_value(value, navigation, default_value = nil, &block)
|
126
|
+
return default_value if value.nil?
|
127
|
+
return value if navigation.empty?
|
128
|
+
|
129
|
+
# Note: split_key always processes the initial segment as a string even if it could be an integer.
|
130
|
+
# This since it is designed for lookup keys. For a numeric first segment
|
131
|
+
# like '0.1' the wanted result is `[0,1]`, not `["0", 1]`. The workaround here is to
|
132
|
+
# prefix the navigation with `"x."` thus giving split_key a first segment that is a string.
|
133
|
+
# The fake segment is then dropped.
|
134
|
+
segments = split_key("x." + navigation) {|err| _("Syntax error in dotted-navigation string")}
|
135
|
+
segments.shift
|
136
|
+
|
137
|
+
begin
|
138
|
+
result = call_function('dig', value, *segments)
|
139
|
+
return result.nil? ? default_value : result
|
140
|
+
rescue Puppet::ErrorWithData => e
|
141
|
+
if block_given?
|
142
|
+
yield(e.error_data)
|
143
|
+
else
|
144
|
+
raise e
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
# reuse the split_key parser used also by lookup
|
149
|
+
include Puppet::Pops::Lookup::SubLookup
|
150
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Digs into a variable with dot notation to get a value from a structure.
|
2
|
+
#
|
3
|
+
# **To get the value from a variable** (that may or may not exist), call the function with
|
4
|
+
# one or two arguments:
|
5
|
+
#
|
6
|
+
# * The **first** argument must be a string, and must start with a variable name without leading `$`,
|
7
|
+
# for example `get('facts')`. The variable name can be followed
|
8
|
+
# by a _dot notation navigation string_ to dig out a value in the array or hash value
|
9
|
+
# of the variable.
|
10
|
+
# * The **optional second** argument can be any type of value and it is used as the
|
11
|
+
# _default value_ if the function would otherwise return `undef`.
|
12
|
+
# * An **optional lambda** for error handling taking one `Error` argument.
|
13
|
+
#
|
14
|
+
# **Dot notation navigation string** -
|
15
|
+
# The dot string consists of period `.` separated segments where each
|
16
|
+
# segment is either the index into an array or the value of a hash key.
|
17
|
+
# If a wanted key contains a period it must be quoted to avoid it being
|
18
|
+
# taken as a segment separator. Quoting can be done with either
|
19
|
+
# single quotes `'` or double quotes `"`. If a segment is
|
20
|
+
# a decimal number it is converted to an Integer index. This conversion
|
21
|
+
# can be prevented by quoting the value.
|
22
|
+
#
|
23
|
+
# @example Getting the value of a variable
|
24
|
+
# ```puppet
|
25
|
+
# getvar('facts') # results in the value of $facts
|
26
|
+
# ```
|
27
|
+
#
|
28
|
+
# @example Navigating into a variable
|
29
|
+
# ```puppet
|
30
|
+
# getvar('facts.os.family') # results in the value of $facts['os']['family']
|
31
|
+
# ```
|
32
|
+
#
|
33
|
+
# @example Using a default value
|
34
|
+
# ```puppet
|
35
|
+
# $x = [1,2,[{'name' =>'waldo'}]]
|
36
|
+
# getvar('x.2.1.name', 'not waldo')
|
37
|
+
# # results in 'not waldo'
|
38
|
+
# ```
|
39
|
+
#
|
40
|
+
# For further examples and how to perform error handling, see the `get()` function
|
41
|
+
# which this function delegates to after having resolved the variable value.
|
42
|
+
#
|
43
|
+
# @since 6.0.0 - the ability to dig into the variable's value with dot notation.
|
44
|
+
#
|
45
|
+
Puppet::Functions.create_function(:getvar, Puppet::Functions::InternalFunction) do
|
46
|
+
dispatch :get_from_navigation do
|
47
|
+
scope_param
|
48
|
+
param 'Pattern[/\A(?:::)?(?:[a-z]\w*::)*[a-z_]\w*(?:\.|\Z)/]', :get_string
|
49
|
+
optional_param 'Any', :default_value
|
50
|
+
optional_block_param 'Callable[1,1]', :block
|
51
|
+
end
|
52
|
+
|
53
|
+
argument_mismatch :invalid_variable_error do
|
54
|
+
param 'String', :get_string
|
55
|
+
optional_param 'Any', :default_value
|
56
|
+
optional_block_param 'Callable', :block
|
57
|
+
end
|
58
|
+
|
59
|
+
def invalid_variable_error(navigation, default_value=nil, &block)
|
60
|
+
_("The given string does not start with a valid variable name")
|
61
|
+
end
|
62
|
+
|
63
|
+
# Gets a result from a navigation string starting with $var
|
64
|
+
#
|
65
|
+
def get_from_navigation(scope, navigation, default_value = nil, &block)
|
66
|
+
# asserted to start with a valid variable name - dig out the variable
|
67
|
+
matches = navigation.match(/^((::)?(\w+::)*\w+)(.*)\z/)
|
68
|
+
navigation = matches[4]
|
69
|
+
if navigation[0] == '.'
|
70
|
+
navigation = navigation[1..-1]
|
71
|
+
else
|
72
|
+
unless navigation.empty?
|
73
|
+
raise ArgumentError, _("First character after var name in get string must be a '.' - got %{char}") % {char: navigation[0]}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
get_from_var_name(scope, matches[1], navigation, default_value, &block)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Gets a result from a $var name and a navigation string
|
80
|
+
#
|
81
|
+
def get_from_var_name(scope, var_string, navigation, default_value = nil, &block)
|
82
|
+
catch(:undefined_variable) do
|
83
|
+
return call_function_with_scope(scope,'get', scope.lookupvar(var_string), navigation, default_value, &block)
|
84
|
+
end
|
85
|
+
default_value
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Groups the collection by result of the block. Returns a hash where the keys are the evaluated result from the block
|
4
|
+
# and the values are arrays of elements in the collection that correspond to the key.
|
5
|
+
Puppet::Functions.create_function(:group_by) do
|
6
|
+
# @param collection A collection of things to group.
|
7
|
+
# @example Group array of strings by length, results in e.g. `{ 1 => [a, b], 2 => [ab] }`
|
8
|
+
# ```puppet
|
9
|
+
# [a, b, ab].group_by |$s| { $s.length }
|
10
|
+
# ```
|
11
|
+
# @example Group array of strings by length and index, results in e.g. `{1 => ['a'], 2 => ['b', 'ab']}`
|
12
|
+
# ```puppet
|
13
|
+
# [a, b, ab].group_by |$i, $s| { $i%2 + $s.length }
|
14
|
+
# ```
|
15
|
+
# @example Group hash iterating by key-value pair, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
|
16
|
+
# ```puppet
|
17
|
+
# { a => [1, 2], b => [1] }.group_by |$kv| { $kv[1].length }
|
18
|
+
# ```
|
19
|
+
# @example Group hash iterating by key and value, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
|
20
|
+
# ```puppet
|
21
|
+
# { a => [1, 2], b => [1] }.group_by |$k, $v| { $v.length }
|
22
|
+
# ```
|
23
|
+
dispatch :group_by_1 do
|
24
|
+
required_param 'Collection', :collection
|
25
|
+
block_param 'Callable[1,1]', :block
|
26
|
+
return_type 'Hash'
|
27
|
+
end
|
28
|
+
|
29
|
+
dispatch :group_by_2a do
|
30
|
+
required_param 'Array', :array
|
31
|
+
block_param 'Callable[2,2]', :block
|
32
|
+
return_type 'Hash'
|
33
|
+
end
|
34
|
+
|
35
|
+
dispatch :group_by_2 do
|
36
|
+
required_param 'Collection', :collection
|
37
|
+
block_param 'Callable[2,2]', :block
|
38
|
+
return_type 'Hash'
|
39
|
+
end
|
40
|
+
|
41
|
+
def group_by_1(collection)
|
42
|
+
collection.group_by do |item|
|
43
|
+
yield(item)
|
44
|
+
end.freeze
|
45
|
+
end
|
46
|
+
|
47
|
+
def group_by_2a(array)
|
48
|
+
grouped = array.size.times.zip(array).group_by do |k, v|
|
49
|
+
yield(k, v)
|
50
|
+
end
|
51
|
+
|
52
|
+
grouped.each_with_object({}) do |(k, v), hsh|
|
53
|
+
hsh[k] = v.map { |item| item[1] }
|
54
|
+
end.freeze
|
55
|
+
end
|
56
|
+
|
57
|
+
def group_by_2(collection)
|
58
|
+
collection.group_by do |k, v|
|
59
|
+
yield(k, v)
|
60
|
+
end.freeze
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'hiera/puppet_function'
|
2
|
+
|
3
|
+
# Performs a standard priority lookup of the hierarchy and returns the most specific value
|
4
|
+
# for a given key. The returned value can be any type of data.
|
5
|
+
#
|
6
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
7
|
+
# continues to work, it does **not** support:
|
8
|
+
# * `lookup_options` stored in the data
|
9
|
+
# * lookup across global, environment, and module layers
|
10
|
+
#
|
11
|
+
# The function takes up to three arguments, in this order:
|
12
|
+
#
|
13
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
14
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
15
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
16
|
+
# fails with a compilation error.
|
17
|
+
# 3. The optional name of an arbitrary
|
18
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
19
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
20
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
21
|
+
# searching the rest of the hierarchy.
|
22
|
+
#
|
23
|
+
# The `hiera` function does **not** find all matches throughout a hierarchy, instead
|
24
|
+
# returning the first specific value starting at the top of the hierarchy. To search
|
25
|
+
# throughout a hierarchy, use the `hiera_array` or `hiera_hash` functions.
|
26
|
+
#
|
27
|
+
# @example Using `hiera`
|
28
|
+
#
|
29
|
+
# ```yaml
|
30
|
+
# # Assuming hiera.yaml
|
31
|
+
# # :hierarchy:
|
32
|
+
# # - web01.example.com
|
33
|
+
# # - common
|
34
|
+
#
|
35
|
+
# # Assuming web01.example.com.yaml:
|
36
|
+
# # users:
|
37
|
+
# # - "Amy Barry"
|
38
|
+
# # - "Carrie Douglas"
|
39
|
+
#
|
40
|
+
# # Assuming common.yaml:
|
41
|
+
# users:
|
42
|
+
# admins:
|
43
|
+
# - "Edith Franklin"
|
44
|
+
# - "Ginny Hamilton"
|
45
|
+
# regular:
|
46
|
+
# - "Iris Jackson"
|
47
|
+
# - "Kelly Lambert"
|
48
|
+
# ```
|
49
|
+
#
|
50
|
+
# ```puppet
|
51
|
+
# # Assuming we are not web01.example.com:
|
52
|
+
#
|
53
|
+
# $users = hiera('users', undef)
|
54
|
+
#
|
55
|
+
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
56
|
+
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
57
|
+
# ```
|
58
|
+
#
|
59
|
+
# You can optionally generate the default value with a
|
60
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
61
|
+
# takes one parameter.
|
62
|
+
#
|
63
|
+
# @example Using `hiera` with a lambda
|
64
|
+
#
|
65
|
+
# ```puppet
|
66
|
+
# # Assuming the same Hiera data as the previous example:
|
67
|
+
#
|
68
|
+
# $users = hiera('users') | $key | { "Key \'${key}\' not found" }
|
69
|
+
#
|
70
|
+
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
71
|
+
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
72
|
+
# # If hiera couldn't match its key, it would return the lambda result,
|
73
|
+
# # "Key 'users' not found".
|
74
|
+
# ```
|
75
|
+
#
|
76
|
+
# The returned value's data type depends on the types of the results. In the example
|
77
|
+
# above, Hiera matches the 'users' key and returns it as a hash.
|
78
|
+
#
|
79
|
+
# See
|
80
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
81
|
+
# Also see
|
82
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
83
|
+
# for more information about the Hiera 3 functions.
|
84
|
+
#
|
85
|
+
# @since 4.0.0
|
86
|
+
#
|
87
|
+
Puppet::Functions.create_function(:hiera, Hiera::PuppetFunction) do
|
88
|
+
init_dispatch
|
89
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'hiera/puppet_function'
|
2
|
+
|
3
|
+
# Finds all matches of a key throughout the hierarchy and returns them as a single flattened
|
4
|
+
# array of unique values. If any of the matched values are arrays, they're flattened and
|
5
|
+
# included in the results. This is called an
|
6
|
+
# [array merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#array-merge).
|
7
|
+
#
|
8
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
9
|
+
# continues to work, it does **not** support:
|
10
|
+
# * `lookup_options` stored in the data
|
11
|
+
# * lookup across global, environment, and module layers
|
12
|
+
#
|
13
|
+
# The `hiera_array` function takes up to three arguments, in this order:
|
14
|
+
#
|
15
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
16
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
17
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
18
|
+
# fails with a compilation error.
|
19
|
+
# 3. The optional name of an arbitrary
|
20
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
21
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
22
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
23
|
+
# searching the rest of the hierarchy.
|
24
|
+
#
|
25
|
+
# @example Using `hiera_array`
|
26
|
+
#
|
27
|
+
# ```yaml
|
28
|
+
# # Assuming hiera.yaml
|
29
|
+
# # :hierarchy:
|
30
|
+
# # - web01.example.com
|
31
|
+
# # - common
|
32
|
+
#
|
33
|
+
# # Assuming common.yaml:
|
34
|
+
# # users:
|
35
|
+
# # - 'cdouglas = regular'
|
36
|
+
# # - 'efranklin = regular'
|
37
|
+
#
|
38
|
+
# # Assuming web01.example.com.yaml:
|
39
|
+
# # users: 'abarry = admin'
|
40
|
+
# ```
|
41
|
+
#
|
42
|
+
# ```puppet
|
43
|
+
# $allusers = hiera_array('users', undef)
|
44
|
+
#
|
45
|
+
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
46
|
+
# ```
|
47
|
+
#
|
48
|
+
# You can optionally generate the default value with a
|
49
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
50
|
+
# takes one parameter.
|
51
|
+
#
|
52
|
+
# @example Using `hiera_array` with a lambda
|
53
|
+
#
|
54
|
+
# ```puppet
|
55
|
+
# # Assuming the same Hiera data as the previous example:
|
56
|
+
#
|
57
|
+
# $allusers = hiera_array('users') | $key | { "Key \'${key}\' not found" }
|
58
|
+
#
|
59
|
+
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
60
|
+
# # If hiera_array couldn't match its key, it would return the lambda result,
|
61
|
+
# # "Key 'users' not found".
|
62
|
+
# ```
|
63
|
+
#
|
64
|
+
# `hiera_array` expects that all values returned will be strings or arrays. If any matched
|
65
|
+
# value is a hash, Puppet raises a type mismatch error.
|
66
|
+
#
|
67
|
+
# See
|
68
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
69
|
+
# Also see
|
70
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
71
|
+
# for more information about the Hiera 3 functions.
|
72
|
+
#
|
73
|
+
# @since 4.0.0
|
74
|
+
#
|
75
|
+
Puppet::Functions.create_function(:hiera_array, Hiera::PuppetFunction) do
|
76
|
+
init_dispatch
|
77
|
+
|
78
|
+
def merge_type
|
79
|
+
:unique
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'hiera/puppet_function'
|
2
|
+
|
3
|
+
# Finds all matches of a key throughout the hierarchy and returns them in a merged hash.
|
4
|
+
#
|
5
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
6
|
+
# continues to work, it does **not** support:
|
7
|
+
# * `lookup_options` stored in the data
|
8
|
+
# * lookup across global, environment, and module layers
|
9
|
+
#
|
10
|
+
# If any of the matched hashes share keys, the final hash uses the value from the
|
11
|
+
# highest priority match. This is called a
|
12
|
+
# [hash merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#hash-merge).
|
13
|
+
#
|
14
|
+
# The merge strategy is determined by Hiera's
|
15
|
+
# [`:merge_behavior`](https://puppet.com/docs/hiera/latest/configuring.html#mergebehavior)
|
16
|
+
# setting.
|
17
|
+
#
|
18
|
+
# The `hiera_hash` function takes up to three arguments, in this order:
|
19
|
+
#
|
20
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
21
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
22
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
23
|
+
# fails with a compilation error.
|
24
|
+
# 3. The optional name of an arbitrary
|
25
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
26
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
27
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
28
|
+
# searching the rest of the hierarchy.
|
29
|
+
#
|
30
|
+
# @example Using `hiera_hash`
|
31
|
+
#
|
32
|
+
# ```yaml
|
33
|
+
# # Assuming hiera.yaml
|
34
|
+
# # :hierarchy:
|
35
|
+
# # - web01.example.com
|
36
|
+
# # - common
|
37
|
+
#
|
38
|
+
# # Assuming common.yaml:
|
39
|
+
# # users:
|
40
|
+
# # regular:
|
41
|
+
# # 'cdouglas': 'Carrie Douglas'
|
42
|
+
#
|
43
|
+
# # Assuming web01.example.com.yaml:
|
44
|
+
# # users:
|
45
|
+
# # administrators:
|
46
|
+
# # 'aberry': 'Amy Berry'
|
47
|
+
# ```
|
48
|
+
#
|
49
|
+
# ```puppet
|
50
|
+
# # Assuming we are not web01.example.com:
|
51
|
+
#
|
52
|
+
# $allusers = hiera_hash('users', undef)
|
53
|
+
#
|
54
|
+
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
55
|
+
# # administrators => {"aberry" => "Amy Berry"}}
|
56
|
+
# ```
|
57
|
+
#
|
58
|
+
# You can optionally generate the default value with a
|
59
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
60
|
+
# takes one parameter.
|
61
|
+
#
|
62
|
+
# @example Using `hiera_hash` with a lambda
|
63
|
+
#
|
64
|
+
# ```puppet
|
65
|
+
# # Assuming the same Hiera data as the previous example:
|
66
|
+
#
|
67
|
+
# $allusers = hiera_hash('users') | $key | { "Key \'${key}\' not found" }
|
68
|
+
#
|
69
|
+
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
70
|
+
# # administrators => {"aberry" => "Amy Berry"}}
|
71
|
+
# # If hiera_hash couldn't match its key, it would return the lambda result,
|
72
|
+
# # "Key 'users' not found".
|
73
|
+
# ```
|
74
|
+
#
|
75
|
+
# `hiera_hash` expects that all values returned will be hashes. If any of the values
|
76
|
+
# found in the data sources are strings or arrays, Puppet raises a type mismatch error.
|
77
|
+
#
|
78
|
+
# See
|
79
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
80
|
+
# Also see
|
81
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
82
|
+
# for more information about the Hiera 3 functions.
|
83
|
+
#
|
84
|
+
# @since 4.0.0
|
85
|
+
#
|
86
|
+
Puppet::Functions.create_function(:hiera_hash, Hiera::PuppetFunction) do
|
87
|
+
init_dispatch
|
88
|
+
|
89
|
+
def merge_type
|
90
|
+
:hash
|
91
|
+
end
|
92
|
+
end
|