openvox 8.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +19 -0
- data/CODEOWNERS +11 -0
- data/CODE_OF_CONDUCT.md +70 -0
- data/Gemfile +87 -0
- data/Guardfile.example +76 -0
- data/LICENSE +202 -0
- data/README.md +63 -0
- data/Rakefile +170 -0
- data/bin/puppet +10 -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 +102 -0
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +18 -0
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +9 -0
- data/examples/hiera/modules/users/manifests/dc1.pp +9 -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 +219 -0
- data/install.rb +428 -0
- data/lib/hiera/puppet_function.rb +86 -0
- data/lib/hiera/scope.rb +92 -0
- data/lib/hiera_puppet.rb +78 -0
- data/lib/puppet/agent/disabler.rb +55 -0
- data/lib/puppet/agent/locker.rb +46 -0
- data/lib/puppet/agent.rb +178 -0
- data/lib/puppet/application/agent.rb +527 -0
- data/lib/puppet/application/apply.rb +435 -0
- data/lib/puppet/application/catalog.rb +6 -0
- data/lib/puppet/application/config.rb +7 -0
- data/lib/puppet/application/describe.rb +255 -0
- data/lib/puppet/application/device.rb +440 -0
- data/lib/puppet/application/doc.rb +232 -0
- data/lib/puppet/application/epp.rb +7 -0
- data/lib/puppet/application/face_base.rb +277 -0
- data/lib/puppet/application/facts.rb +11 -0
- data/lib/puppet/application/filebucket.rb +324 -0
- data/lib/puppet/application/generate.rb +7 -0
- data/lib/puppet/application/help.rb +7 -0
- data/lib/puppet/application/indirection_base.rb +6 -0
- data/lib/puppet/application/lookup.rb +433 -0
- data/lib/puppet/application/module.rb +6 -0
- data/lib/puppet/application/node.rb +6 -0
- data/lib/puppet/application/parser.rb +7 -0
- data/lib/puppet/application/plugin.rb +6 -0
- data/lib/puppet/application/report.rb +6 -0
- data/lib/puppet/application/resource.rb +264 -0
- data/lib/puppet/application/script.rb +266 -0
- data/lib/puppet/application/ssl.rb +331 -0
- data/lib/puppet/application.rb +596 -0
- data/lib/puppet/application_support.rb +69 -0
- data/lib/puppet/coercion.rb +42 -0
- data/lib/puppet/compilable_resource_type.rb +17 -0
- data/lib/puppet/concurrent/lock.rb +15 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +18 -0
- data/lib/puppet/concurrent.rb +4 -0
- data/lib/puppet/configurer/downloader.rb +91 -0
- data/lib/puppet/configurer/fact_handler.rb +51 -0
- data/lib/puppet/configurer/plugin_handler.rb +61 -0
- data/lib/puppet/configurer.rb +759 -0
- data/lib/puppet/confine/any.rb +28 -0
- data/lib/puppet/confine/boolean.rb +47 -0
- data/lib/puppet/confine/exists.rb +21 -0
- data/lib/puppet/confine/false.rb +27 -0
- data/lib/puppet/confine/feature.rb +18 -0
- data/lib/puppet/confine/true.rb +28 -0
- data/lib/puppet/confine/variable.rb +61 -0
- data/lib/puppet/confine.rb +86 -0
- data/lib/puppet/confine_collection.rb +54 -0
- data/lib/puppet/confiner.rb +48 -0
- data/lib/puppet/context/trusted_information.rb +122 -0
- data/lib/puppet/context.rb +190 -0
- data/lib/puppet/daemon.rb +198 -0
- data/lib/puppet/data_binding.rb +16 -0
- data/lib/puppet/datatypes/error.rb +23 -0
- data/lib/puppet/datatypes/impl/error.rb +42 -0
- data/lib/puppet/datatypes.rb +218 -0
- data/lib/puppet/defaults.rb +2316 -0
- data/lib/puppet/environments.rb +599 -0
- data/lib/puppet/error.rb +142 -0
- data/lib/puppet/etc.rb +185 -0
- data/lib/puppet/external/dot.rb +315 -0
- data/lib/puppet/face/catalog/select.rb +51 -0
- data/lib/puppet/face/catalog.rb +167 -0
- data/lib/puppet/face/config.rb +266 -0
- data/lib/puppet/face/epp.rb +565 -0
- data/lib/puppet/face/facts.rb +176 -0
- data/lib/puppet/face/generate.rb +69 -0
- data/lib/puppet/face/help/action.erb +89 -0
- data/lib/puppet/face/help/face.erb +114 -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 +260 -0
- data/lib/puppet/face/module/changes.rb +44 -0
- data/lib/puppet/face/module/install.rb +149 -0
- data/lib/puppet/face/module/list.rb +271 -0
- data/lib/puppet/face/module/uninstall.rb +91 -0
- data/lib/puppet/face/module/upgrade.rb +89 -0
- data/lib/puppet/face/module.rb +21 -0
- data/lib/puppet/face/node/clean.rb +109 -0
- data/lib/puppet/face/node.rb +45 -0
- data/lib/puppet/face/parser.rb +226 -0
- data/lib/puppet/face/plugin.rb +62 -0
- data/lib/puppet/face/report.rb +54 -0
- data/lib/puppet/face/resource.rb +55 -0
- data/lib/puppet/face.rb +14 -0
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/feature/base.rb +76 -0
- data/lib/puppet/feature/bolt.rb +5 -0
- data/lib/puppet/feature/cfpropertylist.rb +5 -0
- data/lib/puppet/feature/eventlog.rb +7 -0
- data/lib/puppet/feature/hiera_eyaml.rb +5 -0
- data/lib/puppet/feature/hocon.rb +5 -0
- data/lib/puppet/feature/libuser.rb +10 -0
- data/lib/puppet/feature/msgpack.rb +5 -0
- data/lib/puppet/feature/pe_license.rb +6 -0
- data/lib/puppet/feature/pson.rb +6 -0
- data/lib/puppet/feature/selinux.rb +5 -0
- data/lib/puppet/feature/ssh.rb +5 -0
- data/lib/puppet/feature/telnet.rb +5 -0
- data/lib/puppet/feature/zlib.rb +7 -0
- data/lib/puppet/ffi/posix/constants.rb +16 -0
- data/lib/puppet/ffi/posix/functions.rb +25 -0
- data/lib/puppet/ffi/posix.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +313 -0
- data/lib/puppet/ffi/windows/constants.rb +406 -0
- data/lib/puppet/ffi/windows/functions.rb +629 -0
- data/lib/puppet/ffi/windows/structs.rb +339 -0
- data/lib/puppet/ffi/windows.rb +14 -0
- data/lib/puppet/file_bucket/dipper.rb +183 -0
- data/lib/puppet/file_bucket/file.rb +131 -0
- data/lib/puppet/file_bucket.rb +6 -0
- data/lib/puppet/file_serving/base.rb +94 -0
- data/lib/puppet/file_serving/configuration/parser.rb +116 -0
- data/lib/puppet/file_serving/configuration.rb +116 -0
- data/lib/puppet/file_serving/content.rb +45 -0
- data/lib/puppet/file_serving/fileset.rb +190 -0
- data/lib/puppet/file_serving/http_metadata.rb +61 -0
- data/lib/puppet/file_serving/metadata.rb +174 -0
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/file_serving/mount/modules.rb +29 -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 +27 -0
- data/lib/puppet/file_serving/mount/tasks.rb +26 -0
- data/lib/puppet/file_serving/mount.rb +41 -0
- data/lib/puppet/file_serving/terminus_helper.rb +33 -0
- data/lib/puppet/file_serving/terminus_selector.rb +33 -0
- data/lib/puppet/file_serving.rb +5 -0
- data/lib/puppet/file_system/file_impl.rb +189 -0
- data/lib/puppet/file_system/jruby.rb +25 -0
- data/lib/puppet/file_system/memory_file.rb +82 -0
- data/lib/puppet/file_system/memory_impl.rb +103 -0
- data/lib/puppet/file_system/path_pattern.rb +95 -0
- data/lib/puppet/file_system/posix.rb +52 -0
- data/lib/puppet/file_system/uniquefile.rb +190 -0
- data/lib/puppet/file_system/windows.rb +224 -0
- data/lib/puppet/file_system.rb +421 -0
- data/lib/puppet/forge/cache.rb +61 -0
- data/lib/puppet/forge/errors.rb +113 -0
- data/lib/puppet/forge/repository.rb +98 -0
- data/lib/puppet/forge.rb +257 -0
- data/lib/puppet/functions/abs.rb +64 -0
- data/lib/puppet/functions/alert.rb +16 -0
- data/lib/puppet/functions/all.rb +106 -0
- data/lib/puppet/functions/annotate.rb +110 -0
- data/lib/puppet/functions/any.rb +111 -0
- data/lib/puppet/functions/assert_type.rb +96 -0
- data/lib/puppet/functions/binary_file.rb +35 -0
- data/lib/puppet/functions/break.rb +49 -0
- data/lib/puppet/functions/call.rb +81 -0
- data/lib/puppet/functions/camelcase.rb +63 -0
- data/lib/puppet/functions/capitalize.rb +62 -0
- data/lib/puppet/functions/ceiling.rb +38 -0
- data/lib/puppet/functions/chomp.rb +58 -0
- data/lib/puppet/functions/chop.rb +68 -0
- data/lib/puppet/functions/compare.rb +127 -0
- data/lib/puppet/functions/contain.rb +58 -0
- data/lib/puppet/functions/convert_to.rb +36 -0
- data/lib/puppet/functions/crit.rb +16 -0
- data/lib/puppet/functions/debug.rb +16 -0
- data/lib/puppet/functions/defined.rb +163 -0
- data/lib/puppet/functions/dig.rb +70 -0
- data/lib/puppet/functions/downcase.rb +91 -0
- data/lib/puppet/functions/each.rb +169 -0
- data/lib/puppet/functions/emerg.rb +16 -0
- data/lib/puppet/functions/empty.rb +87 -0
- data/lib/puppet/functions/epp.rb +50 -0
- data/lib/puppet/functions/err.rb +16 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +103 -0
- data/lib/puppet/functions/filter.rb +138 -0
- data/lib/puppet/functions/find_file.rb +50 -0
- data/lib/puppet/functions/find_template.rb +65 -0
- data/lib/puppet/functions/flatten.rb +66 -0
- data/lib/puppet/functions/floor.rb +38 -0
- data/lib/puppet/functions/get.rb +152 -0
- data/lib/puppet/functions/getvar.rb +89 -0
- data/lib/puppet/functions/group_by.rb +62 -0
- data/lib/puppet/functions/hiera.rb +91 -0
- data/lib/puppet/functions/hiera_array.rb +83 -0
- data/lib/puppet/functions/hiera_hash.rb +94 -0
- data/lib/puppet/functions/hiera_include.rb +107 -0
- data/lib/puppet/functions/hocon_data.rb +41 -0
- data/lib/puppet/functions/import.rb +9 -0
- data/lib/puppet/functions/include.rb +56 -0
- data/lib/puppet/functions/index.rb +168 -0
- data/lib/puppet/functions/info.rb +16 -0
- data/lib/puppet/functions/inline_epp.rb +61 -0
- data/lib/puppet/functions/join.rb +58 -0
- data/lib/puppet/functions/json_data.rb +33 -0
- data/lib/puppet/functions/keys.rb +27 -0
- data/lib/puppet/functions/length.rb +45 -0
- data/lib/puppet/functions/lest.rb +57 -0
- data/lib/puppet/functions/lookup.rb +224 -0
- data/lib/puppet/functions/lstrip.rb +59 -0
- data/lib/puppet/functions/map.rb +137 -0
- data/lib/puppet/functions/match.rb +133 -0
- data/lib/puppet/functions/max.rb +250 -0
- data/lib/puppet/functions/min.rb +249 -0
- data/lib/puppet/functions/module_directory.rb +43 -0
- data/lib/puppet/functions/new.rb +1013 -0
- data/lib/puppet/functions/next.rb +35 -0
- data/lib/puppet/functions/notice.rb +16 -0
- data/lib/puppet/functions/partition.rb +62 -0
- data/lib/puppet/functions/reduce.rb +159 -0
- data/lib/puppet/functions/regsubst.rb +100 -0
- data/lib/puppet/functions/require.rb +81 -0
- data/lib/puppet/functions/return.rb +17 -0
- data/lib/puppet/functions/reverse_each.rb +96 -0
- data/lib/puppet/functions/round.rb +26 -0
- data/lib/puppet/functions/rstrip.rb +59 -0
- data/lib/puppet/functions/scanf.rb +46 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/slice.rb +127 -0
- data/lib/puppet/functions/sort.rb +76 -0
- data/lib/puppet/functions/split.rb +78 -0
- data/lib/puppet/functions/step.rb +100 -0
- data/lib/puppet/functions/strftime.rb +214 -0
- data/lib/puppet/functions/strip.rb +59 -0
- data/lib/puppet/functions/then.rb +80 -0
- data/lib/puppet/functions/tree_each.rb +198 -0
- data/lib/puppet/functions/type.rb +74 -0
- data/lib/puppet/functions/unique.rb +135 -0
- data/lib/puppet/functions/unwrap.rb +61 -0
- data/lib/puppet/functions/upcase.rb +91 -0
- data/lib/puppet/functions/values.rb +27 -0
- data/lib/puppet/functions/versioncmp.rb +41 -0
- data/lib/puppet/functions/warning.rb +16 -0
- data/lib/puppet/functions/with.rb +34 -0
- data/lib/puppet/functions/yaml_data.rb +45 -0
- data/lib/puppet/functions.rb +858 -0
- data/lib/puppet/generate/models/type/property.rb +73 -0
- data/lib/puppet/generate/models/type/type.rb +68 -0
- data/lib/puppet/generate/templates/type/pcore.erb +42 -0
- data/lib/puppet/generate/type.rb +255 -0
- data/lib/puppet/gettext/config.rb +282 -0
- data/lib/puppet/gettext/module_translations.rb +43 -0
- data/lib/puppet/gettext/stubs.rb +13 -0
- data/lib/puppet/graph/key.rb +28 -0
- data/lib/puppet/graph/prioritizer.rb +31 -0
- data/lib/puppet/graph/rb_tree_map.rb +407 -0
- data/lib/puppet/graph/relationship_graph.rb +286 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +33 -0
- data/lib/puppet/graph/simple_graph.rb +552 -0
- data/lib/puppet/graph.rb +11 -0
- data/lib/puppet/http/client.rb +529 -0
- data/lib/puppet/http/dns.rb +159 -0
- data/lib/puppet/http/errors.rb +50 -0
- data/lib/puppet/http/external_client.rb +89 -0
- data/lib/puppet/http/factory.rb +53 -0
- data/lib/puppet/http/pool.rb +174 -0
- data/lib/puppet/http/pool_entry.rb +19 -0
- data/lib/puppet/http/proxy.rb +139 -0
- data/lib/puppet/http/redirector.rb +87 -0
- data/lib/puppet/http/resolver/server_list.rb +88 -0
- data/lib/puppet/http/resolver/settings.rb +24 -0
- data/lib/puppet/http/resolver/srv.rb +42 -0
- data/lib/puppet/http/resolver.rb +50 -0
- data/lib/puppet/http/response.rb +104 -0
- data/lib/puppet/http/response_converter.rb +25 -0
- data/lib/puppet/http/response_net_http.rb +43 -0
- data/lib/puppet/http/retry_after_handler.rb +78 -0
- data/lib/puppet/http/service/ca.rb +133 -0
- data/lib/puppet/http/service/compiler.rb +356 -0
- data/lib/puppet/http/service/file_server.rb +200 -0
- data/lib/puppet/http/service/puppetserver.rb +54 -0
- data/lib/puppet/http/service/report.rb +62 -0
- data/lib/puppet/http/service.rb +177 -0
- data/lib/puppet/http/session.rb +124 -0
- data/lib/puppet/http/site.rb +44 -0
- data/lib/puppet/http.rb +48 -0
- data/lib/puppet/indirector/catalog/compiler.rb +432 -0
- data/lib/puppet/indirector/catalog/json.rb +42 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +8 -0
- data/lib/puppet/indirector/catalog/rest.rb +51 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/lib/puppet/indirector/catalog/yaml.rb +8 -0
- data/lib/puppet/indirector/code.rb +8 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +8 -0
- data/lib/puppet/indirector/data_binding/none.rb +10 -0
- data/lib/puppet/indirector/direct_file_server.rb +20 -0
- data/lib/puppet/indirector/envelope.rb +13 -0
- data/lib/puppet/indirector/errors.rb +7 -0
- data/lib/puppet/indirector/exec.rb +40 -0
- data/lib/puppet/indirector/face.rb +142 -0
- data/lib/puppet/indirector/fact_search.rb +62 -0
- data/lib/puppet/indirector/facts/facter.rb +120 -0
- data/lib/puppet/indirector/facts/json.rb +29 -0
- data/lib/puppet/indirector/facts/memory.rb +11 -0
- data/lib/puppet/indirector/facts/network_device.rb +29 -0
- data/lib/puppet/indirector/facts/rest.rb +46 -0
- data/lib/puppet/indirector/facts/store_configs.rb +12 -0
- data/lib/puppet/indirector/facts/yaml.rb +31 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +268 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +53 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +54 -0
- data/lib/puppet/indirector/file_content/file.rb +9 -0
- data/lib/puppet/indirector/file_content/file_server.rb +9 -0
- data/lib/puppet/indirector/file_content/rest.rb +37 -0
- data/lib/puppet/indirector/file_content/selector.rb +32 -0
- data/lib/puppet/indirector/file_content.rb +7 -0
- data/lib/puppet/indirector/file_metadata/file.rb +9 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +9 -0
- data/lib/puppet/indirector/file_metadata/http.rb +49 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +58 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +32 -0
- data/lib/puppet/indirector/file_metadata.rb +7 -0
- data/lib/puppet/indirector/file_server.rb +57 -0
- data/lib/puppet/indirector/generic_http.rb +7 -0
- data/lib/puppet/indirector/hiera.rb +101 -0
- data/lib/puppet/indirector/indirection.rb +381 -0
- data/lib/puppet/indirector/json.rb +82 -0
- data/lib/puppet/indirector/memory.rb +37 -0
- data/lib/puppet/indirector/msgpack.rb +87 -0
- data/lib/puppet/indirector/node/exec.rb +70 -0
- data/lib/puppet/indirector/node/json.rb +9 -0
- data/lib/puppet/indirector/node/memory.rb +12 -0
- data/lib/puppet/indirector/node/msgpack.rb +9 -0
- data/lib/puppet/indirector/node/plain.rb +23 -0
- data/lib/puppet/indirector/node/rest.rb +31 -0
- data/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/lib/puppet/indirector/node/yaml.rb +9 -0
- data/lib/puppet/indirector/none.rb +10 -0
- data/lib/puppet/indirector/plain.rb +11 -0
- data/lib/puppet/indirector/report/json.rb +36 -0
- data/lib/puppet/indirector/report/msgpack.rb +13 -0
- data/lib/puppet/indirector/report/processor.rb +63 -0
- data/lib/puppet/indirector/report/rest.rb +31 -0
- data/lib/puppet/indirector/report/yaml.rb +36 -0
- data/lib/puppet/indirector/request.rb +197 -0
- data/lib/puppet/indirector/resource/ral.rb +66 -0
- data/lib/puppet/indirector/resource/store_configs.rb +14 -0
- data/lib/puppet/indirector/resource/validator.rb +10 -0
- data/lib/puppet/indirector/rest.rb +66 -0
- data/lib/puppet/indirector/store_configs.rb +32 -0
- data/lib/puppet/indirector/terminus.rb +180 -0
- data/lib/puppet/indirector/yaml.rb +65 -0
- data/lib/puppet/indirector.rb +64 -0
- data/lib/puppet/info_service/class_information_service.rb +108 -0
- data/lib/puppet/info_service/plan_information_service.rb +38 -0
- data/lib/puppet/info_service/task_information_service.rb +45 -0
- data/lib/puppet/info_service.rb +27 -0
- data/lib/puppet/interface/action.rb +410 -0
- data/lib/puppet/interface/action_builder.rb +167 -0
- data/lib/puppet/interface/action_manager.rb +101 -0
- data/lib/puppet/interface/documentation.rb +363 -0
- data/lib/puppet/interface/face_collection.rb +141 -0
- data/lib/puppet/interface/option.rb +184 -0
- data/lib/puppet/interface/option_builder.rb +110 -0
- data/lib/puppet/interface/option_manager.rb +108 -0
- data/lib/puppet/interface.rb +240 -0
- data/lib/puppet/loaders.rb +31 -0
- data/lib/puppet/metatype/manager.rb +198 -0
- data/lib/puppet/module/plan.rb +166 -0
- data/lib/puppet/module/task.rb +288 -0
- data/lib/puppet/module.rb +487 -0
- data/lib/puppet/module_tool/applications/application.rb +96 -0
- data/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/lib/puppet/module_tool/applications/installer.rb +402 -0
- data/lib/puppet/module_tool/applications/uninstaller.rb +121 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +102 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +288 -0
- data/lib/puppet/module_tool/applications.rb +14 -0
- data/lib/puppet/module_tool/checksums.rb +50 -0
- data/lib/puppet/module_tool/dependency.rb +42 -0
- data/lib/puppet/module_tool/errors/base.rb +17 -0
- data/lib/puppet/module_tool/errors/installer.rb +94 -0
- data/lib/puppet/module_tool/errors/shared.rb +228 -0
- data/lib/puppet/module_tool/errors/uninstaller.rb +51 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +64 -0
- data/lib/puppet/module_tool/errors.rb +13 -0
- data/lib/puppet/module_tool/install_directory.rb +48 -0
- data/lib/puppet/module_tool/installed_modules.rb +99 -0
- data/lib/puppet/module_tool/local_tarball.rb +92 -0
- data/lib/puppet/module_tool/metadata.rb +227 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +199 -0
- data/lib/puppet/module_tool/tar/gnu.rb +23 -0
- data/lib/puppet/module_tool/tar/mini.rb +118 -0
- data/lib/puppet/module_tool/tar.rb +20 -0
- data/lib/puppet/module_tool.rb +194 -0
- data/lib/puppet/network/authconfig.rb +9 -0
- data/lib/puppet/network/authorization.rb +21 -0
- data/lib/puppet/network/client_request.rb +32 -0
- data/lib/puppet/network/format.rb +116 -0
- data/lib/puppet/network/format_handler.rb +110 -0
- data/lib/puppet/network/format_support.rb +140 -0
- data/lib/puppet/network/formats.rb +338 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +270 -0
- data/lib/puppet/network/http/api/indirection_type.rb +33 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +4 -0
- data/lib/puppet/network/http/api/master/v3.rb +4 -0
- data/lib/puppet/network/http/api/master.rb +5 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +54 -0
- data/lib/puppet/network/http/api/server/v3.rb +40 -0
- data/lib/puppet/network/http/api/server.rb +12 -0
- data/lib/puppet/network/http/api.rb +41 -0
- data/lib/puppet/network/http/connection.rb +288 -0
- data/lib/puppet/network/http/error.rb +75 -0
- data/lib/puppet/network/http/handler.rb +213 -0
- data/lib/puppet/network/http/issues.rb +14 -0
- data/lib/puppet/network/http/memory_response.rb +15 -0
- data/lib/puppet/network/http/request.rb +83 -0
- data/lib/puppet/network/http/response.rb +25 -0
- data/lib/puppet/network/http/route.rb +104 -0
- data/lib/puppet/network/http.rb +30 -0
- data/lib/puppet/network/http_pool.rb +78 -0
- data/lib/puppet/network/uri.rb +20 -0
- data/lib/puppet/network.rb +5 -0
- data/lib/puppet/node/environment.rb +638 -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 +107 -0
- data/lib/puppet/pal/compiler.rb +227 -0
- data/lib/puppet/pal/function_signature.rb +54 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +76 -0
- data/lib/puppet/pal/pal_api.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +585 -0
- data/lib/puppet/pal/plan_signature.rb +73 -0
- data/lib/puppet/pal/script_compiler.rb +75 -0
- data/lib/puppet/pal/task_signature.rb +64 -0
- data/lib/puppet/parameter/boolean.rb +17 -0
- data/lib/puppet/parameter/package_options.rb +33 -0
- data/lib/puppet/parameter/path.rb +61 -0
- data/lib/puppet/parameter/value.rb +93 -0
- data/lib/puppet/parameter/value_collection.rb +213 -0
- data/lib/puppet/parameter.rb +590 -0
- data/lib/puppet/parser/abstract_compiler.rb +35 -0
- data/lib/puppet/parser/ast/block_expression.rb +17 -0
- data/lib/puppet/parser/ast/branch.rb +21 -0
- data/lib/puppet/parser/ast/hostclass.rb +29 -0
- data/lib/puppet/parser/ast/leaf.rb +84 -0
- data/lib/puppet/parser/ast/node.rb +19 -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 +13 -0
- data/lib/puppet/parser/ast/resourceparam.rb +33 -0
- data/lib/puppet/parser/ast/top_level_construct.rb +6 -0
- data/lib/puppet/parser/ast.rb +62 -0
- data/lib/puppet/parser/catalog_compiler.rb +56 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +41 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +35 -0
- data/lib/puppet/parser/compiler.rb +616 -0
- data/lib/puppet/parser/e4_parser_adapter.rb +61 -0
- data/lib/puppet/parser/files.rb +95 -0
- data/lib/puppet/parser/functions/assert_type.rb +62 -0
- data/lib/puppet/parser/functions/binary_file.rb +26 -0
- data/lib/puppet/parser/functions/break.rb +41 -0
- data/lib/puppet/parser/functions/contain.rb +32 -0
- data/lib/puppet/parser/functions/create_resources.rb +114 -0
- data/lib/puppet/parser/functions/defined.rb +109 -0
- data/lib/puppet/parser/functions/dig.rb +40 -0
- data/lib/puppet/parser/functions/digest.rb +7 -0
- data/lib/puppet/parser/functions/each.rb +106 -0
- data/lib/puppet/parser/functions/epp.rb +40 -0
- data/lib/puppet/parser/functions/fail.rb +13 -0
- data/lib/puppet/parser/functions/file.rb +35 -0
- data/lib/puppet/parser/functions/filter.rb +81 -0
- data/lib/puppet/parser/functions/find_file.rb +29 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +46 -0
- data/lib/puppet/parser/functions/generate.rb +39 -0
- data/lib/puppet/parser/functions/hiera.rb +105 -0
- data/lib/puppet/parser/functions/hiera_array.rb +93 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +103 -0
- data/lib/puppet/parser/functions/hiera_include.rb +102 -0
- data/lib/puppet/parser/functions/include.rb +36 -0
- data/lib/puppet/parser/functions/inline_epp.rb +52 -0
- data/lib/puppet/parser/functions/inline_template.rb +28 -0
- data/lib/puppet/parser/functions/lest.rb +51 -0
- data/lib/puppet/parser/functions/lookup.rb +134 -0
- data/lib/puppet/parser/functions/map.rb +78 -0
- data/lib/puppet/parser/functions/match.rb +45 -0
- data/lib/puppet/parser/functions/md5.rb +7 -0
- data/lib/puppet/parser/functions/new.rb +992 -0
- data/lib/puppet/parser/functions/next.rb +40 -0
- data/lib/puppet/parser/functions/realize.rb +22 -0
- data/lib/puppet/parser/functions/reduce.rb +139 -0
- data/lib/puppet/parser/functions/regsubst.rb +65 -0
- data/lib/puppet/parser/functions/require.rb +43 -0
- data/lib/puppet/parser/functions/return.rb +94 -0
- data/lib/puppet/parser/functions/reverse_each.rb +85 -0
- data/lib/puppet/parser/functions/scanf.rb +40 -0
- data/lib/puppet/parser/functions/sha1.rb +7 -0
- data/lib/puppet/parser/functions/sha256.rb +7 -0
- data/lib/puppet/parser/functions/shellquote.rb +63 -0
- data/lib/puppet/parser/functions/slice.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +62 -0
- data/lib/puppet/parser/functions/step.rb +86 -0
- data/lib/puppet/parser/functions/strftime.rb +187 -0
- data/lib/puppet/parser/functions/tag.rb +15 -0
- data/lib/puppet/parser/functions/tagged.rb +24 -0
- data/lib/puppet/parser/functions/template.rb +42 -0
- data/lib/puppet/parser/functions/then.rb +75 -0
- data/lib/puppet/parser/functions/type.rb +55 -0
- data/lib/puppet/parser/functions/versioncmp.rb +31 -0
- data/lib/puppet/parser/functions/with.rb +30 -0
- data/lib/puppet/parser/functions.rb +324 -0
- data/lib/puppet/parser/parser_factory.rb +32 -0
- data/lib/puppet/parser/relationship.rb +90 -0
- data/lib/puppet/parser/resource/param.rb +37 -0
- data/lib/puppet/parser/resource.rb +353 -0
- data/lib/puppet/parser/scope.rb +1141 -0
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +105 -0
- data/lib/puppet/parser/type_loader.rb +151 -0
- data/lib/puppet/parser.rb +22 -0
- data/lib/puppet/plugins/configuration.rb +31 -0
- data/lib/puppet/plugins/syntax_checkers.rb +99 -0
- data/lib/puppet/plugins.rb +11 -0
- data/lib/puppet/pops/adaptable.rb +199 -0
- data/lib/puppet/pops/adapters.rb +159 -0
- data/lib/puppet/pops/evaluator/access_operator.rb +732 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +108 -0
- data/lib/puppet/pops/evaluator/closure.rb +370 -0
- data/lib/puppet/pops/evaluator/collector_transformer.rb +237 -0
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +88 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +30 -0
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +71 -0
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +38 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +269 -0
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +227 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +121 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1317 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +47 -0
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +83 -0
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +100 -0
- data/lib/puppet/pops/evaluator/puppet_proc.rb +72 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +188 -0
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +225 -0
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +528 -0
- data/lib/puppet/pops/functions/dispatch.rb +107 -0
- data/lib/puppet/pops/functions/dispatcher.rb +76 -0
- data/lib/puppet/pops/functions/function.rb +137 -0
- data/lib/puppet/pops/issue_reporter.rb +140 -0
- data/lib/puppet/pops/issues.rb +933 -0
- data/lib/puppet/pops/label_provider.rb +92 -0
- data/lib/puppet/pops/loader/base_loader.rb +178 -0
- data/lib/puppet/pops/loader/dependency_loader.rb +95 -0
- data/lib/puppet/pops/loader/gem_support.rb +54 -0
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +30 -0
- data/lib/puppet/pops/loader/loader.rb +221 -0
- data/lib/puppet/pops/loader/loader_paths.rb +413 -0
- data/lib/puppet/pops/loader/module_loaders.rb +552 -0
- data/lib/puppet/pops/loader/predefined_loader.rb +28 -0
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +88 -0
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +97 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +43 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +49 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +130 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +104 -0
- data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/lib/puppet/pops/loader/static_loader.rb +133 -0
- data/lib/puppet/pops/loader/task_instantiator.rb +46 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +104 -0
- data/lib/puppet/pops/loader/typed_name.rb +56 -0
- data/lib/puppet/pops/loader/uri_helper.rb +24 -0
- data/lib/puppet/pops/loaders.rb +550 -0
- data/lib/puppet/pops/lookup/configured_data_provider.rb +95 -0
- data/lib/puppet/pops/lookup/context.rb +208 -0
- data/lib/puppet/pops/lookup/data_adapter.rb +29 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +146 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +128 -0
- data/lib/puppet/pops/lookup/data_provider.rb +94 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +37 -0
- data/lib/puppet/pops/lookup/explainer.rb +597 -0
- data/lib/puppet/pops/lookup/function_provider.rb +112 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +76 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +823 -0
- data/lib/puppet/pops/lookup/interpolation.rb +166 -0
- data/lib/puppet/pops/lookup/invocation.rb +272 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +21 -0
- data/lib/puppet/pops/lookup/location_resolver.rb +101 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +533 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +101 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +94 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +92 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +96 -0
- data/lib/puppet/pops/lookup.rb +102 -0
- data/lib/puppet/pops/merge_strategy.rb +447 -0
- data/lib/puppet/pops/migration/migration_checker.rb +61 -0
- data/lib/puppet/pops/model/ast.pp +669 -0
- data/lib/puppet/pops/model/ast.rb +4776 -0
- data/lib/puppet/pops/model/ast_transformer.rb +131 -0
- data/lib/puppet/pops/model/factory.rb +1157 -0
- data/lib/puppet/pops/model/model_label_provider.rb +137 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +447 -0
- data/lib/puppet/pops/model/pn_transformer.rb +384 -0
- data/lib/puppet/pops/model/tree_dumper.rb +62 -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 +52 -0
- data/lib/puppet/pops/parser/epp_support.rb +266 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +166 -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 +789 -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 +361 -0
- data/lib/puppet/pops/parser/parser_support.rb +252 -0
- data/lib/puppet/pops/parser/pn_parser.rb +318 -0
- data/lib/puppet/pops/parser/slurp_support.rb +119 -0
- data/lib/puppet/pops/patterns.rb +60 -0
- data/lib/puppet/pops/pcore.rb +136 -0
- data/lib/puppet/pops/pn.rb +239 -0
- data/lib/puppet/pops/puppet_stack.rb +63 -0
- data/lib/puppet/pops/resource/param.rb +56 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +296 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
- data/lib/puppet/pops/semantic_error.rb +31 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +182 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +224 -0
- data/lib/puppet/pops/serialization/deserializer.rb +83 -0
- data/lib/puppet/pops/serialization/extension.rb +166 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +231 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +21 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +16 -0
- data/lib/puppet/pops/serialization/json.rb +301 -0
- data/lib/puppet/pops/serialization/json_path.rb +129 -0
- data/lib/puppet/pops/serialization/object.rb +73 -0
- data/lib/puppet/pops/serialization/serializer.rb +144 -0
- data/lib/puppet/pops/serialization/time_factory.rb +68 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +316 -0
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +227 -0
- data/lib/puppet/pops/serialization.rb +45 -0
- data/lib/puppet/pops/time/timespan.rb +728 -0
- data/lib/puppet/pops/time/timestamp.rb +167 -0
- data/lib/puppet/pops/types/annotatable.rb +37 -0
- data/lib/puppet/pops/types/annotation.rb +73 -0
- data/lib/puppet/pops/types/class_loader.rb +134 -0
- data/lib/puppet/pops/types/implementation_registry.rb +137 -0
- data/lib/puppet/pops/types/iterable.rb +375 -0
- data/lib/puppet/pops/types/p_binary_type.rb +232 -0
- data/lib/puppet/pops/types/p_init_type.rb +241 -0
- data/lib/puppet/pops/types/p_meta_type.rb +95 -0
- data/lib/puppet/pops/types/p_object_type.rb +1142 -0
- data/lib/puppet/pops/types/p_object_type_extension.rb +229 -0
- data/lib/puppet/pops/types/p_runtime_type.rb +117 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +191 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +155 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +81 -0
- data/lib/puppet/pops/types/p_timespan_type.rb +194 -0
- data/lib/puppet/pops/types/p_timestamp_type.rb +74 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +394 -0
- data/lib/puppet/pops/types/p_uri_type.rb +198 -0
- data/lib/puppet/pops/types/puppet_object.rb +41 -0
- data/lib/puppet/pops/types/recursion_guard.rb +142 -0
- data/lib/puppet/pops/types/ruby_generator.rb +477 -0
- data/lib/puppet/pops/types/ruby_method.rb +32 -0
- data/lib/puppet/pops/types/string_converter.rb +1144 -0
- data/lib/puppet/pops/types/tree_iterators.rb +250 -0
- data/lib/puppet/pops/types/type_acceptor.rb +27 -0
- data/lib/puppet/pops/types/type_asserter.rb +49 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +27 -0
- data/lib/puppet/pops/types/type_calculator.rb +829 -0
- data/lib/puppet/pops/types/type_conversion_error.rb +7 -0
- data/lib/puppet/pops/types/type_factory.rb +640 -0
- data/lib/puppet/pops/types/type_formatter.rb +796 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1105 -0
- data/lib/puppet/pops/types/type_parser.rb +690 -0
- data/lib/puppet/pops/types/type_set_reference.rb +62 -0
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +3651 -0
- data/lib/puppet/pops/utils.rb +117 -0
- data/lib/puppet/pops/validation/checker4_0.rb +1155 -0
- data/lib/puppet/pops/validation/tasks_checker.rb +95 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +45 -0
- data/lib/puppet/pops/validation.rb +462 -0
- data/lib/puppet/pops/visitable.rb +8 -0
- data/lib/puppet/pops/visitor.rb +136 -0
- data/lib/puppet/pops.rb +124 -0
- data/lib/puppet/property/boolean.rb +9 -0
- data/lib/puppet/property/ensure.rb +107 -0
- data/lib/puppet/property/keyvalue.rb +159 -0
- data/lib/puppet/property/list.rb +71 -0
- data/lib/puppet/property/ordered_list.rb +30 -0
- data/lib/puppet/property.rb +610 -0
- data/lib/puppet/provider/aix_object.rb +491 -0
- data/lib/puppet/provider/command.rb +27 -0
- data/lib/puppet/provider/confine.rb +8 -0
- data/lib/puppet/provider/exec/posix.rb +63 -0
- data/lib/puppet/provider/exec/shell.rb +27 -0
- data/lib/puppet/provider/exec/windows.rb +57 -0
- data/lib/puppet/provider/exec.rb +107 -0
- data/lib/puppet/provider/file/posix.rb +162 -0
- data/lib/puppet/provider/file/windows.rb +151 -0
- data/lib/puppet/provider/group/aix.rb +101 -0
- data/lib/puppet/provider/group/directoryservice.rb +24 -0
- data/lib/puppet/provider/group/groupadd.rb +180 -0
- data/lib/puppet/provider/group/ldap.rb +51 -0
- data/lib/puppet/provider/group/pw.rb +52 -0
- data/lib/puppet/provider/group/windows_adsi.rb +116 -0
- data/lib/puppet/provider/ldap.rb +143 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +522 -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 +297 -0
- data/lib/puppet/provider/network_device.rb +74 -0
- data/lib/puppet/provider/package/aix.rb +171 -0
- data/lib/puppet/provider/package/appdmg.rb +113 -0
- data/lib/puppet/provider/package/apple.rb +49 -0
- data/lib/puppet/provider/package/apt.rb +265 -0
- data/lib/puppet/provider/package/aptitude.rb +35 -0
- data/lib/puppet/provider/package/aptrpm.rb +87 -0
- data/lib/puppet/provider/package/blastwave.rb +109 -0
- data/lib/puppet/provider/package/dnf.rb +57 -0
- data/lib/puppet/provider/package/dnfmodule.rb +143 -0
- data/lib/puppet/provider/package/dpkg.rb +191 -0
- data/lib/puppet/provider/package/fink.rb +99 -0
- data/lib/puppet/provider/package/freebsd.rb +49 -0
- data/lib/puppet/provider/package/gem.rb +296 -0
- data/lib/puppet/provider/package/hpux.rb +46 -0
- data/lib/puppet/provider/package/macports.rb +112 -0
- data/lib/puppet/provider/package/nim.rb +290 -0
- data/lib/puppet/provider/package/openbsd.rb +263 -0
- data/lib/puppet/provider/package/opkg.rb +85 -0
- data/lib/puppet/provider/package/pacman.rb +270 -0
- data/lib/puppet/provider/package/pip.rb +347 -0
- data/lib/puppet/provider/package/pip2.rb +18 -0
- data/lib/puppet/provider/package/pip3.rb +18 -0
- data/lib/puppet/provider/package/pkg.rb +300 -0
- data/lib/puppet/provider/package/pkgdmg.rb +159 -0
- data/lib/puppet/provider/package/pkgin.rb +88 -0
- data/lib/puppet/provider/package/pkgng.rb +178 -0
- data/lib/puppet/provider/package/pkgutil.rb +186 -0
- data/lib/puppet/provider/package/portage.rb +314 -0
- data/lib/puppet/provider/package/ports.rb +94 -0
- data/lib/puppet/provider/package/portupgrade.rb +233 -0
- data/lib/puppet/provider/package/puppet_gem.rb +25 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +174 -0
- data/lib/puppet/provider/package/rpm.rb +255 -0
- data/lib/puppet/provider/package/rug.rb +51 -0
- data/lib/puppet/provider/package/sun.rb +137 -0
- data/lib/puppet/provider/package/sunfreeware.rb +11 -0
- data/lib/puppet/provider/package/tdnf.rb +35 -0
- data/lib/puppet/provider/package/up2date.rb +40 -0
- data/lib/puppet/provider/package/urpmi.rb +57 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +108 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +72 -0
- data/lib/puppet/provider/package/windows/package.rb +113 -0
- data/lib/puppet/provider/package/windows.rb +131 -0
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +390 -0
- data/lib/puppet/provider/package/zypper.rb +206 -0
- data/lib/puppet/provider/package.rb +61 -0
- data/lib/puppet/provider/package_targetable.rb +71 -0
- data/lib/puppet/provider/parsedfile.rb +494 -0
- data/lib/puppet/provider/service/base.rb +135 -0
- data/lib/puppet/provider/service/bsd.rb +53 -0
- data/lib/puppet/provider/service/daemontools.rb +196 -0
- data/lib/puppet/provider/service/debian.rb +77 -0
- data/lib/puppet/provider/service/freebsd.rb +141 -0
- data/lib/puppet/provider/service/gentoo.rb +47 -0
- data/lib/puppet/provider/service/init.rb +194 -0
- data/lib/puppet/provider/service/launchd.rb +391 -0
- data/lib/puppet/provider/service/openbsd.rb +101 -0
- data/lib/puppet/provider/service/openrc.rb +72 -0
- data/lib/puppet/provider/service/openwrt.rb +37 -0
- data/lib/puppet/provider/service/rcng.rb +53 -0
- data/lib/puppet/provider/service/redhat.rb +75 -0
- data/lib/puppet/provider/service/runit.rb +107 -0
- data/lib/puppet/provider/service/service.rb +67 -0
- data/lib/puppet/provider/service/smf.rb +322 -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 +179 -0
- data/lib/puppet/provider/user/aix.rb +365 -0
- data/lib/puppet/provider/user/directoryservice.rb +687 -0
- data/lib/puppet/provider/user/hpux.rb +93 -0
- data/lib/puppet/provider/user/ldap.rb +135 -0
- data/lib/puppet/provider/user/openbsd.rb +79 -0
- data/lib/puppet/provider/user/pw.rb +109 -0
- data/lib/puppet/provider/user/user_role_add.rb +243 -0
- data/lib/puppet/provider/user/useradd.rb +417 -0
- data/lib/puppet/provider/user/windows_adsi.rb +176 -0
- data/lib/puppet/provider.rb +613 -0
- data/lib/puppet/reference/configuration.rb +105 -0
- data/lib/puppet/reference/function.rb +19 -0
- data/lib/puppet/reference/indirection.rb +76 -0
- data/lib/puppet/reference/metaparameter.rb +35 -0
- data/lib/puppet/reference/providers.rb +119 -0
- data/lib/puppet/reference/report.rb +22 -0
- data/lib/puppet/reference/type.rb +111 -0
- data/lib/puppet/relationship.rb +85 -0
- data/lib/puppet/reports/http.rb +45 -0
- data/lib/puppet/reports/log.rb +15 -0
- data/lib/puppet/reports/store.rb +71 -0
- data/lib/puppet/reports.rb +95 -0
- data/lib/puppet/resource/catalog.rb +655 -0
- data/lib/puppet/resource/status.rb +231 -0
- data/lib/puppet/resource/type.rb +449 -0
- data/lib/puppet/resource/type_collection.rb +235 -0
- data/lib/puppet/resource.rb +673 -0
- data/lib/puppet/runtime.rb +67 -0
- data/lib/puppet/scheduler/job.rb +55 -0
- data/lib/puppet/scheduler/scheduler.rb +46 -0
- data/lib/puppet/scheduler/splay_job.rb +45 -0
- data/lib/puppet/scheduler/timer.rb +15 -0
- data/lib/puppet/scheduler.rb +18 -0
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/array_setting.rb +18 -0
- data/lib/puppet/settings/autosign_setting.rb +23 -0
- data/lib/puppet/settings/base_setting.rb +228 -0
- data/lib/puppet/settings/boolean_setting.rb +34 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +22 -0
- data/lib/puppet/settings/config_file.rb +148 -0
- data/lib/puppet/settings/directory_setting.rb +20 -0
- data/lib/puppet/settings/duration_setting.rb +33 -0
- data/lib/puppet/settings/enum_setting.rb +18 -0
- data/lib/puppet/settings/environment_conf.rb +228 -0
- data/lib/puppet/settings/errors.rb +14 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +37 -0
- data/lib/puppet/settings/file_setting.rb +232 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +26 -0
- data/lib/puppet/settings/ini_file.rb +228 -0
- data/lib/puppet/settings/integer_setting.rb +19 -0
- data/lib/puppet/settings/path_setting.rb +10 -0
- data/lib/puppet/settings/port_setting.rb +17 -0
- data/lib/puppet/settings/priority_setting.rb +44 -0
- data/lib/puppet/settings/server_list_setting.rb +30 -0
- data/lib/puppet/settings/string_setting.rb +11 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +19 -0
- data/lib/puppet/settings/terminus_setting.rb +16 -0
- data/lib/puppet/settings/ttl_setting.rb +53 -0
- data/lib/puppet/settings/value_translator.rb +16 -0
- data/lib/puppet/settings.rb +1650 -0
- data/lib/puppet/ssl/base.rb +152 -0
- data/lib/puppet/ssl/certificate.rb +98 -0
- data/lib/puppet/ssl/certificate_request.rb +320 -0
- data/lib/puppet/ssl/certificate_request_attributes.rb +40 -0
- data/lib/puppet/ssl/certificate_signer.rb +39 -0
- data/lib/puppet/ssl/digest.rb +22 -0
- data/lib/puppet/ssl/error.rb +29 -0
- data/lib/puppet/ssl/oids.rb +199 -0
- data/lib/puppet/ssl/openssl_loader.rb +26 -0
- data/lib/puppet/ssl/ssl_context.rb +27 -0
- data/lib/puppet/ssl/ssl_provider.rb +354 -0
- data/lib/puppet/ssl/state_machine.rb +605 -0
- data/lib/puppet/ssl/verifier.rb +143 -0
- data/lib/puppet/ssl.rb +25 -0
- data/lib/puppet/syntax_checkers/base64.rb +42 -0
- data/lib/puppet/syntax_checkers/epp.rb +35 -0
- data/lib/puppet/syntax_checkers/json.rb +35 -0
- data/lib/puppet/syntax_checkers/pp.rb +35 -0
- data/lib/puppet/syntax_checkers.rb +5 -0
- data/lib/puppet/test/test_helper.rb +251 -0
- data/lib/puppet/thread_local.rb +6 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +225 -0
- data/lib/puppet/transaction/event.rb +171 -0
- data/lib/puppet/transaction/event_manager.rb +180 -0
- data/lib/puppet/transaction/persistence.rb +119 -0
- data/lib/puppet/transaction/report.rb +511 -0
- data/lib/puppet/transaction/resource_harness.rb +331 -0
- data/lib/puppet/transaction.rb +493 -0
- data/lib/puppet/trusted_external.rb +46 -0
- data/lib/puppet/type/component.rb +96 -0
- data/lib/puppet/type/exec.rb +730 -0
- data/lib/puppet/type/file/checksum.rb +54 -0
- data/lib/puppet/type/file/checksum_value.rb +56 -0
- data/lib/puppet/type/file/content.rb +180 -0
- data/lib/puppet/type/file/ctime.rb +22 -0
- data/lib/puppet/type/file/data_sync.rb +101 -0
- data/lib/puppet/type/file/ensure.rb +194 -0
- data/lib/puppet/type/file/group.rb +50 -0
- data/lib/puppet/type/file/mode.rb +192 -0
- data/lib/puppet/type/file/mtime.rb +21 -0
- data/lib/puppet/type/file/owner.rb +52 -0
- data/lib/puppet/type/file/selcontext.rb +143 -0
- data/lib/puppet/type/file/source.rb +380 -0
- data/lib/puppet/type/file/target.rb +86 -0
- data/lib/puppet/type/file/type.rb +21 -0
- data/lib/puppet/type/file.rb +1139 -0
- data/lib/puppet/type/filebucket.rb +123 -0
- data/lib/puppet/type/group.rb +238 -0
- data/lib/puppet/type/notify.rb +48 -0
- data/lib/puppet/type/package.rb +715 -0
- data/lib/puppet/type/resources.rb +192 -0
- data/lib/puppet/type/schedule.rb +441 -0
- data/lib/puppet/type/service.rb +310 -0
- data/lib/puppet/type/stage.rb +29 -0
- data/lib/puppet/type/tidy.rb +382 -0
- data/lib/puppet/type/user.rb +865 -0
- data/lib/puppet/type/whit.rb +35 -0
- data/lib/puppet/type.rb +2629 -0
- data/lib/puppet/util/at_fork/noop.rb +20 -0
- data/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/lib/puppet/util/at_fork.rb +37 -0
- data/lib/puppet/util/autoload.rb +221 -0
- data/lib/puppet/util/backups.rb +88 -0
- data/lib/puppet/util/character_encoding.rb +83 -0
- data/lib/puppet/util/checksums.rb +380 -0
- data/lib/puppet/util/classgen.rb +223 -0
- data/lib/puppet/util/colors.rb +102 -0
- data/lib/puppet/util/command_line/puppet_option_parser.rb +89 -0
- data/lib/puppet/util/command_line/trollop.rb +847 -0
- data/lib/puppet/util/command_line.rb +198 -0
- data/lib/puppet/util/constant_inflector.rb +25 -0
- data/lib/puppet/util/diff.rb +80 -0
- data/lib/puppet/util/docs.rb +132 -0
- data/lib/puppet/util/errors.rb +161 -0
- data/lib/puppet/util/execution.rb +446 -0
- data/lib/puppet/util/execution_stub.rb +28 -0
- data/lib/puppet/util/feature.rb +129 -0
- data/lib/puppet/util/file_watcher.rb +31 -0
- data/lib/puppet/util/fileparsing.rb +404 -0
- data/lib/puppet/util/filetype.rb +358 -0
- data/lib/puppet/util/http_proxy.rb +6 -0
- data/lib/puppet/util/inifile.rb +335 -0
- data/lib/puppet/util/instance_loader.rb +69 -0
- data/lib/puppet/util/json.rb +94 -0
- data/lib/puppet/util/json_lockfile.rb +47 -0
- data/lib/puppet/util/ldap/connection.rb +75 -0
- data/lib/puppet/util/ldap/generator.rb +44 -0
- data/lib/puppet/util/ldap/manager.rb +283 -0
- data/lib/puppet/util/ldap.rb +4 -0
- data/lib/puppet/util/libuser.conf +15 -0
- data/lib/puppet/util/libuser.rb +13 -0
- data/lib/puppet/util/limits.rb +14 -0
- data/lib/puppet/util/lockfile.rb +66 -0
- data/lib/puppet/util/log/destination.rb +50 -0
- data/lib/puppet/util/log/destinations.rb +253 -0
- data/lib/puppet/util/log.rb +436 -0
- data/lib/puppet/util/logging.rb +304 -0
- data/lib/puppet/util/metaid.rb +22 -0
- data/lib/puppet/util/metric.rb +68 -0
- data/lib/puppet/util/monkey_patches.rb +114 -0
- data/lib/puppet/util/multi_match.rb +55 -0
- data/lib/puppet/util/network_device/base.rb +24 -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 +7 -0
- data/lib/puppet/util/network_device.rb +19 -0
- data/lib/puppet/util/package/version/debian.rb +177 -0
- data/lib/puppet/util/package/version/gem.rb +18 -0
- data/lib/puppet/util/package/version/pip.rb +173 -0
- data/lib/puppet/util/package/version/range/eq.rb +17 -0
- data/lib/puppet/util/package/version/range/gt.rb +17 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +17 -0
- data/lib/puppet/util/package/version/range/lt.rb +17 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +17 -0
- data/lib/puppet/util/package/version/range/min_max.rb +26 -0
- data/lib/puppet/util/package/version/range/simple.rb +13 -0
- data/lib/puppet/util/package/version/range.rb +57 -0
- data/lib/puppet/util/package/version/rpm.rb +75 -0
- data/lib/puppet/util/package.rb +43 -0
- data/lib/puppet/util/pidlock.rb +103 -0
- data/lib/puppet/util/platform.rb +72 -0
- data/lib/puppet/util/plist.rb +161 -0
- data/lib/puppet/util/posix.rb +206 -0
- data/lib/puppet/util/profiler/aggregate.rb +82 -0
- data/lib/puppet/util/profiler/around_profiler.rb +68 -0
- data/lib/puppet/util/profiler/logging.rb +50 -0
- data/lib/puppet/util/profiler/object_counts.rb +19 -0
- data/lib/puppet/util/profiler/wall_clock.rb +36 -0
- data/lib/puppet/util/profiler.rb +55 -0
- data/lib/puppet/util/provider_features.rb +183 -0
- data/lib/puppet/util/psych_support.rb +32 -0
- data/lib/puppet/util/rdoc/code_objects.rb +293 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +902 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1068 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +262 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +16 -0
- data/lib/puppet/util/rdoc/parser.rb +14 -0
- data/lib/puppet/util/rdoc.rb +54 -0
- data/lib/puppet/util/reference.rb +94 -0
- data/lib/puppet/util/resource_template.rb +63 -0
- data/lib/puppet/util/retry_action.rb +47 -0
- data/lib/puppet/util/rpm_compare.rb +196 -0
- data/lib/puppet/util/rubygems.rb +67 -0
- data/lib/puppet/util/run_mode.rb +164 -0
- data/lib/puppet/util/selinux.rb +331 -0
- data/lib/puppet/util/skip_tags.rb +15 -0
- data/lib/puppet/util/splayer.rb +20 -0
- data/lib/puppet/util/storage.rb +100 -0
- data/lib/puppet/util/suidmanager.rb +167 -0
- data/lib/puppet/util/symbolic_file_mode.rb +156 -0
- data/lib/puppet/util/tag_set.rb +29 -0
- data/lib/puppet/util/tagging.rb +131 -0
- data/lib/puppet/util/terminal.rb +18 -0
- data/lib/puppet/util/user_attr.rb +23 -0
- data/lib/puppet/util/warnings.rb +35 -0
- data/lib/puppet/util/watched_file.rb +40 -0
- data/lib/puppet/util/watcher/change_watcher.rb +35 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +38 -0
- data/lib/puppet/util/watcher/timer.rb +21 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/windows/access_control_entry.rb +86 -0
- data/lib/puppet/util/windows/access_control_list.rb +116 -0
- data/lib/puppet/util/windows/adsi.rb +662 -0
- data/lib/puppet/util/windows/com.rb +228 -0
- data/lib/puppet/util/windows/daemon.rb +340 -0
- data/lib/puppet/util/windows/error.rb +86 -0
- data/lib/puppet/util/windows/eventlog.rb +191 -0
- data/lib/puppet/util/windows/file.rb +359 -0
- data/lib/puppet/util/windows/monkey_patches/process.rb +413 -0
- data/lib/puppet/util/windows/principal.rb +204 -0
- data/lib/puppet/util/windows/process.rb +360 -0
- data/lib/puppet/util/windows/registry.rb +443 -0
- data/lib/puppet/util/windows/root_certs.rb +110 -0
- data/lib/puppet/util/windows/security.rb +909 -0
- data/lib/puppet/util/windows/security_descriptor.rb +64 -0
- data/lib/puppet/util/windows/service.rb +708 -0
- data/lib/puppet/util/windows/sid.rb +291 -0
- data/lib/puppet/util/windows/string.rb +17 -0
- data/lib/puppet/util/windows/user.rb +551 -0
- data/lib/puppet/util/windows.rb +58 -0
- data/lib/puppet/util/yaml.rb +67 -0
- data/lib/puppet/util.rb +759 -0
- data/lib/puppet/vendor/require_vendored.rb +4 -0
- data/lib/puppet/vendor.rb +59 -0
- data/lib/puppet/version.rb +98 -0
- data/lib/puppet/x509/cert_provider.rb +405 -0
- data/lib/puppet/x509/pem_store.rb +57 -0
- data/lib/puppet/x509.rb +13 -0
- data/lib/puppet.rb +348 -0
- data/lib/puppet_pal.rb +10 -0
- data/lib/puppet_x.rb +16 -0
- data/locales/config.yaml +29 -0
- data/locales/en/puppet.po +19 -0
- data/locales/puppet.pot +9738 -0
- data/man/man5/puppet.conf.5 +1407 -0
- data/man/man8/puppet-agent.8 +135 -0
- data/man/man8/puppet-apply.8 +67 -0
- data/man/man8/puppet-catalog.8 +194 -0
- data/man/man8/puppet-config.8 +103 -0
- data/man/man8/puppet-describe.8 +35 -0
- data/man/man8/puppet-device.8 +83 -0
- data/man/man8/puppet-doc.8 +30 -0
- data/man/man8/puppet-epp.8 +232 -0
- data/man/man8/puppet-facts.8 +156 -0
- data/man/man8/puppet-filebucket.8 +134 -0
- data/man/man8/puppet-generate.8 +54 -0
- data/man/man8/puppet-help.8 +46 -0
- data/man/man8/puppet-lookup.8 +71 -0
- data/man/man8/puppet-module.8 +220 -0
- data/man/man8/puppet-node.8 +142 -0
- data/man/man8/puppet-parser.8 +87 -0
- data/man/man8/puppet-plugin.8 +50 -0
- data/man/man8/puppet-report.8 +84 -0
- data/man/man8/puppet-resource.8 +63 -0
- data/man/man8/puppet-script.8 +48 -0
- data/man/man8/puppet-ssl.8 +45 -0
- data/man/man8/puppet.8 +98 -0
- data/tasks/tag.rake +34 -0
- metadata +1336 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Makes one or more classes be contained inside the current class.
|
4
|
+
# If any of these classes are undeclared, they will be declared as if
|
5
|
+
# there were declared with the `include` function.
|
6
|
+
# Accepts a class name, an array of class names, or a comma-separated
|
7
|
+
# list of class names.
|
8
|
+
#
|
9
|
+
# A contained class will not be applied before the containing class is
|
10
|
+
# begun, and will be finished before the containing class is finished.
|
11
|
+
#
|
12
|
+
# You must use the class's full name;
|
13
|
+
# relative names are not allowed. In addition to names in string form,
|
14
|
+
# you may also directly use `Class` and `Resource` `Type`-values that are produced by
|
15
|
+
# evaluating resource and relationship expressions.
|
16
|
+
#
|
17
|
+
# The function returns an array of references to the classes that were contained thus
|
18
|
+
# allowing the function call to `contain` to directly continue.
|
19
|
+
#
|
20
|
+
# - Since 4.0.0 support for `Class` and `Resource` `Type`-values, absolute names
|
21
|
+
# - Since 4.7.0 a value of type `Array[Type[Class[n]]]` is returned with all the contained classes
|
22
|
+
#
|
23
|
+
Puppet::Functions.create_function(:contain, Puppet::Functions::InternalFunction) do
|
24
|
+
dispatch :contain do
|
25
|
+
scope_param
|
26
|
+
# The function supports what the type system sees as Ruby runtime objects, and
|
27
|
+
# they cannot be parameterized to find what is actually valid instances.
|
28
|
+
# The validation is instead done in the function body itself via a call to
|
29
|
+
# `transform_and_assert_classnames` on the calling scope.
|
30
|
+
required_repeated_param 'Any', :names
|
31
|
+
end
|
32
|
+
|
33
|
+
def contain(scope, *classes)
|
34
|
+
if Puppet[:tasks]
|
35
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
36
|
+
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
37
|
+
{ :operation => 'contain' }
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Make call patterns uniform and protected against nested arrays, also make
|
42
|
+
# names absolute if so desired.
|
43
|
+
classes = scope.transform_and_assert_classnames(classes.flatten)
|
44
|
+
|
45
|
+
result = classes.map { |name| Puppet::Pops::Types::TypeFactory.host_class(name) }
|
46
|
+
containing_resource = scope.resource
|
47
|
+
|
48
|
+
# This is the same as calling the include function but faster and does not rely on the include
|
49
|
+
# function.
|
50
|
+
(scope.compiler.evaluate_classes(classes, scope, false) || []).each do |resource|
|
51
|
+
unless scope.catalog.edge?(containing_resource, resource)
|
52
|
+
scope.catalog.add_edge(containing_resource, resource)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
# Result is an Array[Class, 1, n] which allows chaining other operations
|
56
|
+
result
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# The `convert_to(value, type)` is a convenience function that does the same as `new(type, value)`.
|
4
|
+
# The difference in the argument ordering allows it to be used in chained style for
|
5
|
+
# improved readability "left to right".
|
6
|
+
#
|
7
|
+
# When the function is given a lambda, it is called with the converted value, and the function
|
8
|
+
# returns what the lambda returns, otherwise the converted value.
|
9
|
+
#
|
10
|
+
# @example 'convert_to' instead of 'new'
|
11
|
+
#
|
12
|
+
# ```puppet
|
13
|
+
# # The harder to read variant:
|
14
|
+
# # Using new operator - that is "calling the type" with operator ()
|
15
|
+
# Hash(Array("abc").map |$i,$v| { [$i, $v] })
|
16
|
+
#
|
17
|
+
# # The easier to read variant:
|
18
|
+
# # using 'convert_to'
|
19
|
+
# "abc".convert_to(Array).map |$i,$v| { [$i, $v] }.convert_to(Hash)
|
20
|
+
# ```
|
21
|
+
#
|
22
|
+
# @since 5.4.0
|
23
|
+
#
|
24
|
+
Puppet::Functions.create_function(:convert_to) do
|
25
|
+
dispatch :convert_to do
|
26
|
+
param 'Any', :value
|
27
|
+
param 'Type', :type
|
28
|
+
optional_repeated_param 'Any', :args
|
29
|
+
optional_block_param 'Callable[1,1]', :block
|
30
|
+
end
|
31
|
+
|
32
|
+
def convert_to(value, type, *args, &block)
|
33
|
+
result = call_function('new', type, value, *args)
|
34
|
+
block_given? ? yield(result) : result
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Logs a message on the server at level `crit`.
|
4
|
+
Puppet::Functions.create_function(:crit, Puppet::Functions::InternalFunction) do
|
5
|
+
# @param values The values to log.
|
6
|
+
# @return [Undef]
|
7
|
+
dispatch :crit do
|
8
|
+
scope_param
|
9
|
+
repeated_param 'Any', :values
|
10
|
+
return_type 'Undef'
|
11
|
+
end
|
12
|
+
|
13
|
+
def crit(scope, *values)
|
14
|
+
Puppet::Util::Log.log_func(scope, :crit, values)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Logs a message on the server at level `debug`.
|
4
|
+
Puppet::Functions.create_function(:debug, Puppet::Functions::InternalFunction) do
|
5
|
+
# @param values The values to log.
|
6
|
+
# @return [Undef]
|
7
|
+
dispatch :debug do
|
8
|
+
scope_param
|
9
|
+
repeated_param 'Any', :values
|
10
|
+
return_type 'Undef'
|
11
|
+
end
|
12
|
+
|
13
|
+
def debug(scope, *values)
|
14
|
+
Puppet::Util::Log.log_func(scope, :debug, values)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Determines whether a given class or resource type is defined and returns a Boolean
|
4
|
+
# value. You can also use `defined` to determine whether a specific resource is defined,
|
5
|
+
# or whether a variable has a value (including `undef`, as opposed to the variable never
|
6
|
+
# being declared or assigned).
|
7
|
+
#
|
8
|
+
# This function takes at least one string argument, which can be a class name, type name,
|
9
|
+
# resource reference, or variable reference of the form `'$name'`. (Note that the `$` sign
|
10
|
+
# is included in the string which must be in single quotes to prevent the `$` character
|
11
|
+
# to be interpreted as interpolation.
|
12
|
+
#
|
13
|
+
# The `defined` function checks both native and defined types, including types
|
14
|
+
# provided by modules. Types and classes are matched by their names. The function matches
|
15
|
+
# resource declarations by using resource references.
|
16
|
+
#
|
17
|
+
# @example Different types of `defined` function matches
|
18
|
+
#
|
19
|
+
# ```puppet
|
20
|
+
# # Matching resource types
|
21
|
+
# defined("file")
|
22
|
+
# defined("customtype")
|
23
|
+
#
|
24
|
+
# # Matching defines and classes
|
25
|
+
# defined("foo")
|
26
|
+
# defined("foo::bar")
|
27
|
+
#
|
28
|
+
# # Matching variables (note the single quotes)
|
29
|
+
# defined('$name')
|
30
|
+
#
|
31
|
+
# # Matching declared resources
|
32
|
+
# defined(File['/tmp/file'])
|
33
|
+
# ```
|
34
|
+
#
|
35
|
+
# Puppet depends on the configuration's evaluation order when checking whether a resource
|
36
|
+
# is declared.
|
37
|
+
#
|
38
|
+
# @example Importance of evaluation order when using `defined`
|
39
|
+
#
|
40
|
+
# ```puppet
|
41
|
+
# # Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
42
|
+
# # functions.
|
43
|
+
#
|
44
|
+
# $is_defined_before = defined(File['/tmp/file'])
|
45
|
+
#
|
46
|
+
# file { "/tmp/file":
|
47
|
+
# ensure => present,
|
48
|
+
# }
|
49
|
+
#
|
50
|
+
# $is_defined_after = defined(File['/tmp/file'])
|
51
|
+
#
|
52
|
+
# # $is_defined_before returns false, but $is_defined_after returns true.
|
53
|
+
# ```
|
54
|
+
#
|
55
|
+
# This order requirement only refers to evaluation order. The order of resources in the
|
56
|
+
# configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
57
|
+
# function's behavior.
|
58
|
+
#
|
59
|
+
# > **Warning:** Avoid relying on the result of the `defined` function in modules, as you
|
60
|
+
# > might not be able to guarantee the evaluation order well enough to produce consistent
|
61
|
+
# > results. This can cause other code that relies on the function's result to behave
|
62
|
+
# > inconsistently or fail.
|
63
|
+
#
|
64
|
+
# If you pass more than one argument to `defined`, the function returns `true` if _any_
|
65
|
+
# of the arguments are defined. You can also match resources by type, allowing you to
|
66
|
+
# match conditions of different levels of specificity, such as whether a specific resource
|
67
|
+
# is of a specific data type.
|
68
|
+
#
|
69
|
+
# @example Matching multiple resources and resources by different types with `defined`
|
70
|
+
#
|
71
|
+
# ```puppet
|
72
|
+
# file { "/tmp/file1":
|
73
|
+
# ensure => file,
|
74
|
+
# }
|
75
|
+
#
|
76
|
+
# $tmp_file = file { "/tmp/file2":
|
77
|
+
# ensure => file,
|
78
|
+
# }
|
79
|
+
#
|
80
|
+
# # Each of these statements return `true` ...
|
81
|
+
# defined(File['/tmp/file1'])
|
82
|
+
# defined(File['/tmp/file1'],File['/tmp/file2'])
|
83
|
+
# defined(File['/tmp/file1'],File['/tmp/file2'],File['/tmp/file3'])
|
84
|
+
# # ... but this returns `false`.
|
85
|
+
# defined(File['/tmp/file3'])
|
86
|
+
#
|
87
|
+
# # Each of these statements returns `true` ...
|
88
|
+
# defined(Type[Resource['file','/tmp/file2']])
|
89
|
+
# defined(Resource['file','/tmp/file2'])
|
90
|
+
# defined(File['/tmp/file2'])
|
91
|
+
# defined('$tmp_file')
|
92
|
+
# # ... but each of these returns `false`.
|
93
|
+
# defined(Type[Resource['exec','/tmp/file2']])
|
94
|
+
# defined(Resource['exec','/tmp/file2'])
|
95
|
+
# defined(File['/tmp/file3'])
|
96
|
+
# defined('$tmp_file2')
|
97
|
+
# ```
|
98
|
+
#
|
99
|
+
# @since 2.7.0
|
100
|
+
# @since 3.6.0 variable reference and future parser types
|
101
|
+
# @since 3.8.1 type specific requests with future parser
|
102
|
+
# @since 4.0.0
|
103
|
+
#
|
104
|
+
Puppet::Functions.create_function(:defined, Puppet::Functions::InternalFunction) do
|
105
|
+
dispatch :is_defined do
|
106
|
+
scope_param
|
107
|
+
required_repeated_param 'Variant[String, Type[CatalogEntry], Type[Type[CatalogEntry]]]', :vals
|
108
|
+
end
|
109
|
+
|
110
|
+
def is_defined(scope, *vals) # rubocop:disable Naming/PredicateName
|
111
|
+
vals.any? do |val|
|
112
|
+
case val
|
113
|
+
when String
|
114
|
+
if val =~ /^\$(.+)$/
|
115
|
+
scope.exist?(Regexp.last_match(1))
|
116
|
+
else
|
117
|
+
case val
|
118
|
+
when ''
|
119
|
+
next nil
|
120
|
+
when 'main'
|
121
|
+
# Find the main class (known as ''), it does not have to be in the catalog
|
122
|
+
Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_main_class(scope)
|
123
|
+
else
|
124
|
+
# Find a resource type, definition or class definition
|
125
|
+
Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type_or_class(scope, val)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
when Puppet::Resource
|
129
|
+
# Find instance of given resource type and title that is in the catalog
|
130
|
+
scope.compiler.findresource(val.resource_type, val.title)
|
131
|
+
|
132
|
+
when Puppet::Pops::Types::PResourceType
|
133
|
+
raise ArgumentError, _('The given resource type is a reference to all kind of types') if val.type_name.nil?
|
134
|
+
|
135
|
+
type = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, val.type_name)
|
136
|
+
val.title.nil? ? type : scope.compiler.findresource(type, val.title)
|
137
|
+
|
138
|
+
when Puppet::Pops::Types::PClassType
|
139
|
+
raise ArgumentError, _('The given class type is a reference to all classes') if val.class_name.nil?
|
140
|
+
|
141
|
+
scope.compiler.findresource(:class, val.class_name)
|
142
|
+
|
143
|
+
when Puppet::Pops::Types::PTypeType
|
144
|
+
case val.type
|
145
|
+
when Puppet::Pops::Types::PResourceType
|
146
|
+
# It is most reasonable to take Type[File] and Type[File[foo]] to mean the same as if not wrapped in a Type
|
147
|
+
# Since the difference between File and File[foo] already captures the distinction of type vs instance.
|
148
|
+
is_defined(scope, val.type)
|
149
|
+
|
150
|
+
when Puppet::Pops::Types::PClassType
|
151
|
+
# Interpreted as asking if a class (and nothing else) is defined without having to be included in the catalog
|
152
|
+
# (this is the same as asking for just the class' name, but with the added certainty that it cannot be a defined type.
|
153
|
+
#
|
154
|
+
raise ArgumentError, _('The given class type is a reference to all classes') if val.type.class_name.nil?
|
155
|
+
|
156
|
+
Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_hostclass(scope, val.type.class_name)
|
157
|
+
end
|
158
|
+
else
|
159
|
+
raise ArgumentError, _("Invalid argument of type '%{value_class}' to 'defined'") % { value_class: val.class }
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Returns a value for a sequence of given keys/indexes into a structure, such as
|
4
|
+
# an array or hash.
|
5
|
+
#
|
6
|
+
# This function is used to "dig into" a complex data structure by
|
7
|
+
# using a sequence of keys / indexes to access a value from which
|
8
|
+
# the next key/index is accessed recursively.
|
9
|
+
#
|
10
|
+
# The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
11
|
+
#
|
12
|
+
# An error is raised if an attempt is made to "dig" into
|
13
|
+
# something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
14
|
+
#
|
15
|
+
# @example Using `dig`
|
16
|
+
#
|
17
|
+
# ```puppet
|
18
|
+
# $data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
19
|
+
# notice $data.dig('a', 'b', 1, 'x')
|
20
|
+
# ```
|
21
|
+
#
|
22
|
+
# Would notice the value 100.
|
23
|
+
#
|
24
|
+
# This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
25
|
+
# index will return an error and cause catalog compilation failure if any parent
|
26
|
+
# of the final key (`'x'`) is `undef`. The `dig` function will return `undef`,
|
27
|
+
# rather than failing catalog compilation. This allows you to check if data
|
28
|
+
# exists in a structure without mandating that it always exists.
|
29
|
+
#
|
30
|
+
# @since 4.5.0
|
31
|
+
#
|
32
|
+
Puppet::Functions.create_function(:dig) do
|
33
|
+
dispatch :dig do
|
34
|
+
param 'Optional[Collection]', :data
|
35
|
+
repeated_param 'Any', :arg
|
36
|
+
end
|
37
|
+
|
38
|
+
def dig(data, *args)
|
39
|
+
walked_path = []
|
40
|
+
args.reduce(data) do |d, k|
|
41
|
+
return nil if d.nil? || k.nil?
|
42
|
+
|
43
|
+
unless d.is_a?(Array) || d.is_a?(Hash)
|
44
|
+
t = Puppet::Pops::Types::TypeCalculator.infer(d)
|
45
|
+
msg = _("The given data does not contain a Collection at %{walked_path}, got '%{type}'") % { walked_path: walked_path, type: t }
|
46
|
+
error_data = Puppet::DataTypes::Error.new(
|
47
|
+
msg,
|
48
|
+
'SLICE_ERROR',
|
49
|
+
{ 'walked_path' => walked_path, 'value_type' => t },
|
50
|
+
'EXPECTED_COLLECTION'
|
51
|
+
)
|
52
|
+
raise Puppet::ErrorWithData.new(error_data, msg)
|
53
|
+
end
|
54
|
+
|
55
|
+
walked_path << k
|
56
|
+
if d.is_a?(Array) && !k.is_a?(Integer)
|
57
|
+
t = Puppet::Pops::Types::TypeCalculator.infer(k)
|
58
|
+
msg = _("The given data requires an Integer index at %{walked_path}, got '%{type}'") % { walked_path: walked_path, type: t }
|
59
|
+
error_data = Puppet::DataTypes::Error.new(
|
60
|
+
msg,
|
61
|
+
'SLICE_ERROR',
|
62
|
+
{ 'walked_path' => walked_path, 'index_type' => t },
|
63
|
+
'EXPECTED_INTEGER_INDEX'
|
64
|
+
)
|
65
|
+
raise Puppet::ErrorWithData.new(error_data, msg)
|
66
|
+
end
|
67
|
+
d[k]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Converts a String, Array or Hash (recursively) into lower case.
|
4
|
+
#
|
5
|
+
# This function is compatible with the stdlib function with the same name.
|
6
|
+
#
|
7
|
+
# The function does the following:
|
8
|
+
# * For a `String`, its lower case version is returned. This is done using Ruby system locale which handles some, but not all
|
9
|
+
# special international up-casing rules (for example German double-s ß is upcased to "SS", whereas upper case double-s
|
10
|
+
# is downcased to ß).
|
11
|
+
# * For `Array` and `Hash` the conversion to lower case is recursive and each key and value must be convertible by
|
12
|
+
# this function.
|
13
|
+
# * When a `Hash` is converted, some keys could result in the same key - in those cases, the
|
14
|
+
# latest key-value wins. For example if keys "aBC", and "abC" where both present, after downcase there would only be one
|
15
|
+
# key "abc".
|
16
|
+
# * If the value is `Numeric` it is simply returned (this is for backwards compatibility).
|
17
|
+
# * An error is raised for all other data types.
|
18
|
+
#
|
19
|
+
# Please note: This function relies directly on Ruby's String implementation and as such may not be entirely UTF8 compatible.
|
20
|
+
# To ensure best compatibility please use this function with Ruby 2.4.0 or greater - https://bugs.ruby-lang.org/issues/10085.
|
21
|
+
#
|
22
|
+
# @example Converting a String to lower case
|
23
|
+
# ```puppet
|
24
|
+
# 'HELLO'.downcase()
|
25
|
+
# downcase('HEllO')
|
26
|
+
# ```
|
27
|
+
# Would both result in `"hello"`
|
28
|
+
#
|
29
|
+
# @example Converting an Array to lower case
|
30
|
+
# ```puppet
|
31
|
+
# ['A', 'B'].downcase()
|
32
|
+
# downcase(['A', 'B'])
|
33
|
+
# ```
|
34
|
+
# Would both result in `['a', 'b']`
|
35
|
+
#
|
36
|
+
# @example Converting a Hash to lower case
|
37
|
+
# ```puppet
|
38
|
+
# {'A' => 'HEllO', 'B' => 'GOODBYE'}.downcase()
|
39
|
+
# ```
|
40
|
+
# Would result in `{'a' => 'hello', 'b' => 'goodbye'}`
|
41
|
+
#
|
42
|
+
# @example Converting a recursive structure
|
43
|
+
# ```puppet
|
44
|
+
# ['A', 'B', ['C', ['D']], {'X' => 'Y'}].downcase
|
45
|
+
# ```
|
46
|
+
# Would result in `['a', 'b', ['c', ['d']], {'x' => 'y'}]`
|
47
|
+
#
|
48
|
+
Puppet::Functions.create_function(:downcase) do
|
49
|
+
local_types do
|
50
|
+
type 'StringData = Variant[String, Numeric, Array[StringData], Hash[StringData, StringData]]'
|
51
|
+
end
|
52
|
+
|
53
|
+
dispatch :on_numeric do
|
54
|
+
param 'Numeric', :arg
|
55
|
+
end
|
56
|
+
|
57
|
+
dispatch :on_string do
|
58
|
+
param 'String', :arg
|
59
|
+
end
|
60
|
+
|
61
|
+
dispatch :on_array do
|
62
|
+
param 'Array[StringData]', :arg
|
63
|
+
end
|
64
|
+
|
65
|
+
dispatch :on_hash do
|
66
|
+
param 'Hash[StringData, StringData]', :arg
|
67
|
+
end
|
68
|
+
|
69
|
+
# unit function - since the old implementation skipped Numeric values
|
70
|
+
def on_numeric(n)
|
71
|
+
n
|
72
|
+
end
|
73
|
+
|
74
|
+
def on_string(s)
|
75
|
+
s.downcase
|
76
|
+
end
|
77
|
+
|
78
|
+
def on_array(a)
|
79
|
+
a.map { |x| do_downcase(x) }
|
80
|
+
end
|
81
|
+
|
82
|
+
def on_hash(h)
|
83
|
+
result = {}
|
84
|
+
h.each_pair { |k, v| result[do_downcase(k)] = do_downcase(v) }
|
85
|
+
result
|
86
|
+
end
|
87
|
+
|
88
|
+
def do_downcase(x)
|
89
|
+
x.is_a?(String) ? x.downcase : call_function('downcase', x)
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
4
|
+
# repeatedly using each value in a data structure, then returns the values unchanged.
|
5
|
+
#
|
6
|
+
# This function takes two mandatory arguments, in this order:
|
7
|
+
#
|
8
|
+
# 1. An array, hash, or other iterable object that the function will iterate over.
|
9
|
+
# 2. A lambda, which the function calls for each element in the first argument. It can
|
10
|
+
# request one or two parameters.
|
11
|
+
#
|
12
|
+
# @example Using the `each` function
|
13
|
+
#
|
14
|
+
# `$data.each |$parameter| { <PUPPET CODE BLOCK> }`
|
15
|
+
#
|
16
|
+
# or
|
17
|
+
#
|
18
|
+
# `each($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
19
|
+
#
|
20
|
+
# When the first argument (`$data` in the above example) is an array, Puppet passes each
|
21
|
+
# value in turn to the lambda, then returns the original values.
|
22
|
+
#
|
23
|
+
# @example Using the `each` function with an array and a one-parameter lambda
|
24
|
+
#
|
25
|
+
# ```puppet
|
26
|
+
# # For the array $data, run a lambda that creates a resource for each item.
|
27
|
+
# $data = ["routers", "servers", "workstations"]
|
28
|
+
# $data.each |$item| {
|
29
|
+
# notify { $item:
|
30
|
+
# message => $item
|
31
|
+
# }
|
32
|
+
# }
|
33
|
+
# # Puppet creates one resource for each of the three items in $data. Each resource is
|
34
|
+
# # named after the item's value and uses the item's value in a parameter.
|
35
|
+
# ```
|
36
|
+
#
|
37
|
+
# When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
38
|
+
# as an array in the form `[key, value]` and returns the original hash.
|
39
|
+
#
|
40
|
+
# @example Using the `each` function with a hash and a one-parameter lambda
|
41
|
+
#
|
42
|
+
# ```puppet
|
43
|
+
# # For the hash $data, run a lambda using each item as a key-value array that creates a
|
44
|
+
# # resource for each item.
|
45
|
+
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
46
|
+
# $data.each |$items| {
|
47
|
+
# notify { $items[0]:
|
48
|
+
# message => $items[1]
|
49
|
+
# }
|
50
|
+
# }
|
51
|
+
# # Puppet creates one resource for each of the three items in $data, each named after the
|
52
|
+
# # item's key and containing a parameter using the item's value.
|
53
|
+
# ```
|
54
|
+
#
|
55
|
+
# When the first argument is an array and the lambda has two parameters, Puppet passes the
|
56
|
+
# array's indexes (enumerated from 0) in the first parameter and its values in the second
|
57
|
+
# parameter.
|
58
|
+
#
|
59
|
+
# @example Using the `each` function with an array and a two-parameter lambda
|
60
|
+
#
|
61
|
+
# ```puppet
|
62
|
+
# # For the array $data, run a lambda using each item's index and value that creates a
|
63
|
+
# # resource for each item.
|
64
|
+
# $data = ["routers", "servers", "workstations"]
|
65
|
+
# $data.each |$index, $value| {
|
66
|
+
# notify { $value:
|
67
|
+
# message => $index
|
68
|
+
# }
|
69
|
+
# }
|
70
|
+
# # Puppet creates one resource for each of the three items in $data, each named after the
|
71
|
+
# # item's value and containing a parameter using the item's index.
|
72
|
+
# ```
|
73
|
+
#
|
74
|
+
# When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
75
|
+
# values to the second parameter.
|
76
|
+
#
|
77
|
+
# @example Using the `each` function with a hash and a two-parameter lambda
|
78
|
+
#
|
79
|
+
# ```puppet
|
80
|
+
# # For the hash $data, run a lambda using each item's key and value to create a resource
|
81
|
+
# # for each item.
|
82
|
+
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
83
|
+
# $data.each |$key, $value| {
|
84
|
+
# notify { $key:
|
85
|
+
# message => $value
|
86
|
+
# }
|
87
|
+
# }
|
88
|
+
# # Puppet creates one resource for each of the three items in $data, each named after the
|
89
|
+
# # item's key and containing a parameter using the item's value.
|
90
|
+
# ```
|
91
|
+
#
|
92
|
+
# For an example that demonstrates how to create multiple `file` resources using `each`,
|
93
|
+
# see the Puppet
|
94
|
+
# [iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
95
|
+
# documentation.
|
96
|
+
#
|
97
|
+
# @since 4.0.0
|
98
|
+
#
|
99
|
+
Puppet::Functions.create_function(:each) do
|
100
|
+
dispatch :foreach_Hash_2 do
|
101
|
+
param 'Hash[Any, Any]', :hash
|
102
|
+
block_param 'Callable[2,2]', :block
|
103
|
+
end
|
104
|
+
|
105
|
+
dispatch :foreach_Hash_1 do
|
106
|
+
param 'Hash[Any, Any]', :hash
|
107
|
+
block_param 'Callable[1,1]', :block
|
108
|
+
end
|
109
|
+
|
110
|
+
dispatch :foreach_Enumerable_2 do
|
111
|
+
param 'Iterable', :enumerable
|
112
|
+
block_param 'Callable[2,2]', :block
|
113
|
+
end
|
114
|
+
|
115
|
+
dispatch :foreach_Enumerable_1 do
|
116
|
+
param 'Iterable', :enumerable
|
117
|
+
block_param 'Callable[1,1]', :block
|
118
|
+
end
|
119
|
+
|
120
|
+
def foreach_Hash_1(hash)
|
121
|
+
begin
|
122
|
+
hash.each_pair do |pair|
|
123
|
+
yield(pair)
|
124
|
+
end
|
125
|
+
rescue StopIteration
|
126
|
+
end
|
127
|
+
# produces the receiver
|
128
|
+
hash
|
129
|
+
end
|
130
|
+
|
131
|
+
def foreach_Hash_2(hash)
|
132
|
+
begin
|
133
|
+
hash.each_pair do |pair|
|
134
|
+
yield(*pair)
|
135
|
+
end
|
136
|
+
rescue StopIteration
|
137
|
+
end
|
138
|
+
# produces the receiver
|
139
|
+
hash
|
140
|
+
end
|
141
|
+
|
142
|
+
def foreach_Enumerable_1(enumerable)
|
143
|
+
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
144
|
+
begin
|
145
|
+
enum.each do |value|
|
146
|
+
yield value
|
147
|
+
end
|
148
|
+
rescue StopIteration
|
149
|
+
end
|
150
|
+
# produces the receiver
|
151
|
+
enumerable
|
152
|
+
end
|
153
|
+
|
154
|
+
def foreach_Enumerable_2(enumerable)
|
155
|
+
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
156
|
+
if enum.hash_style?
|
157
|
+
enum.each { |entry| yield(*entry) }
|
158
|
+
else
|
159
|
+
begin
|
160
|
+
enum.each_with_index do |value, index|
|
161
|
+
yield(index, value)
|
162
|
+
end
|
163
|
+
rescue StopIteration
|
164
|
+
end
|
165
|
+
end
|
166
|
+
# produces the receiver
|
167
|
+
enumerable
|
168
|
+
end
|
169
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Logs a message on the server at level `emerg`.
|
4
|
+
Puppet::Functions.create_function(:emerg, Puppet::Functions::InternalFunction) do
|
5
|
+
# @param values The values to log.
|
6
|
+
# @return [Undef]
|
7
|
+
dispatch :emerg do
|
8
|
+
scope_param
|
9
|
+
repeated_param 'Any', :values
|
10
|
+
return_type 'Undef'
|
11
|
+
end
|
12
|
+
|
13
|
+
def emerg(scope, *values)
|
14
|
+
Puppet::Util::Log.log_func(scope, :emerg, values)
|
15
|
+
end
|
16
|
+
end
|