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,33 @@
|
|
1
|
+
# Makes iteration continue with the next value, optionally with a given value for this iteration.
|
2
|
+
# If a value is not given it defaults to `undef`
|
3
|
+
#
|
4
|
+
# @example Using the `next()` function
|
5
|
+
#
|
6
|
+
# ```puppet
|
7
|
+
# $data = ['a','b','c']
|
8
|
+
# $data.each |Integer $index, String $value| {
|
9
|
+
# if $index == 1 {
|
10
|
+
# next()
|
11
|
+
# }
|
12
|
+
# notice ("${index} = ${value}")
|
13
|
+
# }
|
14
|
+
# ```
|
15
|
+
#
|
16
|
+
# Would notice:
|
17
|
+
# ```
|
18
|
+
# Notice: Scope(Class[main]): 0 = a
|
19
|
+
# Notice: Scope(Class[main]): 2 = c
|
20
|
+
# ```
|
21
|
+
#
|
22
|
+
# @since 4.7.0
|
23
|
+
Puppet::Functions.create_function(:next) do
|
24
|
+
dispatch :next_impl do
|
25
|
+
optional_param 'Any', :value
|
26
|
+
end
|
27
|
+
|
28
|
+
def next_impl(value = nil)
|
29
|
+
file, line = Puppet::Pops::PuppetStack.top_of_stack
|
30
|
+
exc = Puppet::Pops::Evaluator::Next.new(value, file, line)
|
31
|
+
raise exc
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Logs a message on the server at level `notice`.
|
2
|
+
Puppet::Functions.create_function(:notice, Puppet::Functions::InternalFunction) do
|
3
|
+
# @param values The values to log.
|
4
|
+
# @return [Undef]
|
5
|
+
dispatch :notice do
|
6
|
+
scope_param
|
7
|
+
repeated_param 'Any', :values
|
8
|
+
return_type 'Undef'
|
9
|
+
end
|
10
|
+
|
11
|
+
def notice(scope, *values)
|
12
|
+
Puppet::Util::Log.log_func(scope, :notice, values)
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Returns two arrays, the first containing the elements of enum for which the block evaluates to true,
|
4
|
+
# the second containing the rest.
|
5
|
+
Puppet::Functions.create_function(:partition) do
|
6
|
+
# @param collection A collection of things to partition.
|
7
|
+
# @example Partition array of empty strings, results in e.g. `[[''], [b, c]]`
|
8
|
+
# ```puppet
|
9
|
+
# ['', b, c].partition |$s| { $s.empty }
|
10
|
+
# ```
|
11
|
+
# @example Partition array of strings using index, results in e.g. `[['', 'ab'], ['b']]`
|
12
|
+
# ```puppet
|
13
|
+
# ['', b, ab].partition |$i, $s| { $i == 2 or $s.empty }
|
14
|
+
# ```
|
15
|
+
# @example Partition hash of strings by key-value pair, results in e.g. `[[['b', []]], [['a', [1, 2]]]]`
|
16
|
+
# ```puppet
|
17
|
+
# { a => [1, 2], b => [] }.partition |$kv| { $kv[1].empty }
|
18
|
+
# ```
|
19
|
+
# @example Partition hash of strings by key and value, results in e.g. `[[['b', []]], [['a', [1, 2]]]]`
|
20
|
+
# ```puppet
|
21
|
+
# { a => [1, 2], b => [] }.partition |$k, $v| { $v.empty }
|
22
|
+
# ```
|
23
|
+
dispatch :partition_1 do
|
24
|
+
required_param 'Collection', :collection
|
25
|
+
block_param 'Callable[1,1]', :block
|
26
|
+
return_type 'Tuple[Array, Array]'
|
27
|
+
end
|
28
|
+
|
29
|
+
dispatch :partition_2a do
|
30
|
+
required_param 'Array', :array
|
31
|
+
block_param 'Callable[2,2]', :block
|
32
|
+
return_type 'Tuple[Array, Array]'
|
33
|
+
end
|
34
|
+
|
35
|
+
dispatch :partition_2 do
|
36
|
+
required_param 'Collection', :collection
|
37
|
+
block_param 'Callable[2,2]', :block
|
38
|
+
return_type 'Tuple[Array, Array]'
|
39
|
+
end
|
40
|
+
|
41
|
+
def partition_1(collection)
|
42
|
+
collection.partition do |item|
|
43
|
+
yield(item)
|
44
|
+
end.freeze
|
45
|
+
end
|
46
|
+
|
47
|
+
def partition_2a(array)
|
48
|
+
partitioned = array.size.times.zip(array).partition do |k, v|
|
49
|
+
yield(k, v)
|
50
|
+
end
|
51
|
+
|
52
|
+
partitioned.map do |part|
|
53
|
+
part.map { |item| item[1] }
|
54
|
+
end.freeze
|
55
|
+
end
|
56
|
+
|
57
|
+
def partition_2(collection)
|
58
|
+
collection.partition do |k, v|
|
59
|
+
yield(k, v)
|
60
|
+
end.freeze
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# Applies a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
2
|
+
# to every value in a data structure from the first argument, carrying over the returned
|
3
|
+
# value of each iteration, and returns the result of the lambda's final iteration. This
|
4
|
+
# lets you create a new value or data structure by combining values from the first
|
5
|
+
# argument's data structure.
|
6
|
+
#
|
7
|
+
# This function takes two mandatory arguments, in this order:
|
8
|
+
#
|
9
|
+
# 1. An array, hash, or other iterable object that the function will iterate over.
|
10
|
+
# 2. A lambda, which the function calls for each element in the first argument. It takes
|
11
|
+
# two mandatory parameters:
|
12
|
+
# 1. A memo value that is overwritten after each iteration with the iteration's result.
|
13
|
+
# 2. A second value that is overwritten after each iteration with the next value in the
|
14
|
+
# function's first argument.
|
15
|
+
#
|
16
|
+
# @example Using the `reduce` function
|
17
|
+
#
|
18
|
+
# `$data.reduce |$memo, $value| { ... }`
|
19
|
+
#
|
20
|
+
# or
|
21
|
+
#
|
22
|
+
# `reduce($data) |$memo, $value| { ... }`
|
23
|
+
#
|
24
|
+
# You can also pass an optional "start memo" value as an argument, such as `start` below:
|
25
|
+
#
|
26
|
+
# `$data.reduce(start) |$memo, $value| { ... }`
|
27
|
+
#
|
28
|
+
# or
|
29
|
+
#
|
30
|
+
# `reduce($data, start) |$memo, $value| { ... }`
|
31
|
+
#
|
32
|
+
# When the first argument (`$data` in the above example) is an array, Puppet passes each
|
33
|
+
# of the data structure's values in turn to the lambda's parameters. When the first
|
34
|
+
# argument is a hash, Puppet converts each of the hash's values to an array in the form
|
35
|
+
# `[key, value]`.
|
36
|
+
#
|
37
|
+
# If you pass a start memo value, Puppet executes the lambda with the provided memo value
|
38
|
+
# and the data structure's first value. Otherwise, Puppet passes the structure's first two
|
39
|
+
# values to the lambda.
|
40
|
+
#
|
41
|
+
# Puppet calls the lambda for each of the data structure's remaining values. For each
|
42
|
+
# call, it passes the result of the previous call as the first parameter (`$memo` in the
|
43
|
+
# above examples) and the next value from the data structure as the second parameter
|
44
|
+
# (`$value`).
|
45
|
+
#
|
46
|
+
# @example Using the `reduce` function
|
47
|
+
#
|
48
|
+
# ```puppet
|
49
|
+
# # Reduce the array $data, returning the sum of all values in the array.
|
50
|
+
# $data = [1, 2, 3]
|
51
|
+
# $sum = $data.reduce |$memo, $value| { $memo + $value }
|
52
|
+
# # $sum contains 6
|
53
|
+
#
|
54
|
+
# # Reduce the array $data, returning the sum of a start memo value and all values in the
|
55
|
+
# # array.
|
56
|
+
# $data = [1, 2, 3]
|
57
|
+
# $sum = $data.reduce(4) |$memo, $value| { $memo + $value }
|
58
|
+
# # $sum contains 10
|
59
|
+
#
|
60
|
+
# # Reduce the hash $data, returning the sum of all values and concatenated string of all
|
61
|
+
# # keys.
|
62
|
+
# $data = {a => 1, b => 2, c => 3}
|
63
|
+
# $combine = $data.reduce |$memo, $value| {
|
64
|
+
# $string = "${memo[0]}${value[0]}"
|
65
|
+
# $number = $memo[1] + $value[1]
|
66
|
+
# [$string, $number]
|
67
|
+
# }
|
68
|
+
# # $combine contains [abc, 6]
|
69
|
+
# ```
|
70
|
+
#
|
71
|
+
# @example Using the `reduce` function with a start memo and two-parameter lambda
|
72
|
+
#
|
73
|
+
# ```puppet
|
74
|
+
# # Reduce the array $data, returning the sum of all values in the array and starting
|
75
|
+
# # with $memo set to an arbitrary value instead of $data's first value.
|
76
|
+
# $data = [1, 2, 3]
|
77
|
+
# $sum = $data.reduce(4) |$memo, $value| { $memo + $value }
|
78
|
+
# # At the start of the lambda's first iteration, $memo contains 4 and $value contains 1.
|
79
|
+
# # After all iterations, $sum contains 10.
|
80
|
+
#
|
81
|
+
# # Reduce the hash $data, returning the sum of all values and concatenated string of
|
82
|
+
# # all keys, and starting with $memo set to an arbitrary array instead of $data's first
|
83
|
+
# # key-value pair.
|
84
|
+
# $data = {a => 1, b => 2, c => 3}
|
85
|
+
# $combine = $data.reduce( [d, 4] ) |$memo, $value| {
|
86
|
+
# $string = "${memo[0]}${value[0]}"
|
87
|
+
# $number = $memo[1] + $value[1]
|
88
|
+
# [$string, $number]
|
89
|
+
# }
|
90
|
+
# # At the start of the lambda's first iteration, $memo contains [d, 4] and $value
|
91
|
+
# # contains [a, 1].
|
92
|
+
# # $combine contains [dabc, 10]
|
93
|
+
# ```
|
94
|
+
#
|
95
|
+
# @example Using the `reduce` function to reduce a hash of hashes
|
96
|
+
#
|
97
|
+
# ```puppet
|
98
|
+
# # Reduce a hash of hashes $data, merging defaults into the inner hashes.
|
99
|
+
# $data = {
|
100
|
+
# 'connection1' => {
|
101
|
+
# 'username' => 'user1',
|
102
|
+
# 'password' => 'pass1',
|
103
|
+
# },
|
104
|
+
# 'connection_name2' => {
|
105
|
+
# 'username' => 'user2',
|
106
|
+
# 'password' => 'pass2',
|
107
|
+
# },
|
108
|
+
# }
|
109
|
+
#
|
110
|
+
# $defaults = {
|
111
|
+
# 'maxActive' => '20',
|
112
|
+
# 'maxWait' => '10000',
|
113
|
+
# 'username' => 'defaultuser',
|
114
|
+
# 'password' => 'defaultpass',
|
115
|
+
# }
|
116
|
+
#
|
117
|
+
# $merged = $data.reduce( {} ) |$memo, $x| {
|
118
|
+
# $memo + { $x[0] => $defaults + $data[$x[0]] }
|
119
|
+
# }
|
120
|
+
# # At the start of the lambda's first iteration, $memo is set to {}, and $x is set to
|
121
|
+
# # the first [key, value] tuple. The key in $data is, therefore, given by $x[0]. In
|
122
|
+
# # subsequent rounds, $memo retains the value returned by the expression, i.e.
|
123
|
+
# # $memo + { $x[0] => $defaults + $data[$x[0]] }.
|
124
|
+
# ```
|
125
|
+
#
|
126
|
+
# @since 4.0.0
|
127
|
+
#
|
128
|
+
Puppet::Functions.create_function(:reduce) do
|
129
|
+
|
130
|
+
dispatch :reduce_without_memo do
|
131
|
+
param 'Iterable', :enumerable
|
132
|
+
block_param 'Callable[2,2]', :block
|
133
|
+
end
|
134
|
+
|
135
|
+
dispatch :reduce_with_memo do
|
136
|
+
param 'Iterable', :enumerable
|
137
|
+
param 'Any', :memo
|
138
|
+
block_param 'Callable[2,2]', :block
|
139
|
+
end
|
140
|
+
|
141
|
+
def reduce_without_memo(enumerable)
|
142
|
+
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
143
|
+
enum.reduce do |memo, x|
|
144
|
+
begin
|
145
|
+
yield(memo, x)
|
146
|
+
rescue StopIteration
|
147
|
+
return memo
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def reduce_with_memo(enumerable, given_memo)
|
153
|
+
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
154
|
+
enum.reduce(given_memo) do |memo, x|
|
155
|
+
begin
|
156
|
+
yield(memo, x)
|
157
|
+
rescue StopIteration
|
158
|
+
return memo
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Performs regexp replacement on a string or array of strings.
|
2
|
+
Puppet::Functions.create_function(:regsubst) do
|
3
|
+
# @param target [String]
|
4
|
+
# The string or array of strings to operate on. If an array, the replacement will be
|
5
|
+
# performed on each of the elements in the array, and the return value will be an array.
|
6
|
+
# @param pattern [String, Regexp, Type[Regexp]]
|
7
|
+
# The regular expression matching the target string. If you want it anchored at the start
|
8
|
+
# and or end of the string, you must do that with ^ and $ yourself.
|
9
|
+
# @param replacement [String, Hash[String, String]]
|
10
|
+
# Replacement string. Can contain backreferences to what was matched using \\0 (whole match),
|
11
|
+
# \\1 (first set of parentheses), and so on.
|
12
|
+
# If the second argument is a Hash, and the matched text is one of its keys, the corresponding value is the replacement string.
|
13
|
+
# @param flags [Optional[Pattern[/^[GEIM]*$/]], Pattern[/^G?$/]]
|
14
|
+
# Optional. String of single letter flags for how the regexp is interpreted (E, I, and M cannot be used
|
15
|
+
# if pattern is a precompiled regexp):
|
16
|
+
# - *E* Extended regexps
|
17
|
+
# - *I* Ignore case in regexps
|
18
|
+
# - *M* Multiline regexps
|
19
|
+
# - *G* Global replacement; all occurrences of the regexp in each target string will be replaced. Without this, only the first occurrence will be replaced.
|
20
|
+
# @param encoding [Enum['N','E','S','U']]
|
21
|
+
# Optional. How to handle multibyte characters when compiling the regexp (must not be used when pattern is a
|
22
|
+
# precompiled regexp). A single-character string with the following values:
|
23
|
+
# - *N* None
|
24
|
+
# - *E* EUC
|
25
|
+
# - *S* SJIS
|
26
|
+
# - *U* UTF-8
|
27
|
+
# @return [Array[String], String] The result of the substitution. Result type is the same as for the target parameter.
|
28
|
+
# @example Get the third octet from the node's IP address:
|
29
|
+
# ```puppet
|
30
|
+
# $i3 = regsubst($ipaddress,'^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$','\\3')
|
31
|
+
# ```
|
32
|
+
dispatch :regsubst_string do
|
33
|
+
param 'Variant[Array[String],String]', :target
|
34
|
+
param 'String', :pattern
|
35
|
+
param 'Variant[String,Hash[String,String]]', :replacement
|
36
|
+
optional_param 'Optional[Pattern[/^[GEIM]*$/]]', :flags
|
37
|
+
optional_param "Enum['N','E','S','U']", :encoding
|
38
|
+
end
|
39
|
+
|
40
|
+
# @param target [String, Array[String]]
|
41
|
+
# The string or array of strings to operate on. If an array, the replacement will be
|
42
|
+
# performed on each of the elements in the array, and the return value will be an array.
|
43
|
+
# @param pattern [Regexp, Type[Regexp]]
|
44
|
+
# The regular expression matching the target string. If you want it anchored at the start
|
45
|
+
# and or end of the string, you must do that with ^ and $ yourself.
|
46
|
+
# @param replacement [String, Hash[String, String]]
|
47
|
+
# Replacement string. Can contain backreferences to what was matched using \\0 (whole match),
|
48
|
+
# \\1 (first set of parentheses), and so on.
|
49
|
+
# If the second argument is a Hash, and the matched text is one of its keys, the corresponding value is the replacement string.
|
50
|
+
# @param flags [Optional[Pattern[/^[GEIM]*$/]], Pattern[/^G?$/]]
|
51
|
+
# Optional. String of single letter flags for how the regexp is interpreted (E, I, and M cannot be used
|
52
|
+
# if pattern is a precompiled regexp):
|
53
|
+
# - *E* Extended regexps
|
54
|
+
# - *I* Ignore case in regexps
|
55
|
+
# - *M* Multiline regexps
|
56
|
+
# - *G* Global replacement; all occurrences of the regexp in each target string will be replaced. Without this, only the first occurrence will be replaced.
|
57
|
+
# @param encoding [Enum['N','E','S','U']]
|
58
|
+
# Optional. How to handle multibyte characters when compiling the regexp (must not be used when pattern is a
|
59
|
+
# precompiled regexp). A single-character string with the following values:
|
60
|
+
# - *N* None
|
61
|
+
# - *E* EUC
|
62
|
+
# - *S* SJIS
|
63
|
+
# - *U* UTF-8
|
64
|
+
# @return [Array[String], String] The result of the substitution. Result type is the same as for the target parameter.
|
65
|
+
# @example Put angle brackets around each octet in the node's IP address:
|
66
|
+
# ```puppet
|
67
|
+
# $x = regsubst($ipaddress, /([0-9]+)/, '<\\1>', 'G')
|
68
|
+
# ```
|
69
|
+
dispatch :regsubst_regexp do
|
70
|
+
param 'Variant[Array[String],String]', :target
|
71
|
+
param 'Variant[Regexp,Type[Regexp]]', :pattern
|
72
|
+
param 'Variant[String,Hash[String,String]]', :replacement
|
73
|
+
optional_param 'Pattern[/^G?$/]', :flags
|
74
|
+
end
|
75
|
+
|
76
|
+
def regsubst_string(target, pattern, replacement, flags = nil, encoding = nil)
|
77
|
+
re_flags = 0
|
78
|
+
operation = :sub
|
79
|
+
if !flags.nil?
|
80
|
+
flags.split(//).each do |f|
|
81
|
+
case f
|
82
|
+
when 'G' then operation = :gsub
|
83
|
+
when 'E' then re_flags |= Regexp::EXTENDED
|
84
|
+
when 'I' then re_flags |= Regexp::IGNORECASE
|
85
|
+
when 'M' then re_flags |= Regexp::MULTILINE
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
inner_regsubst(target, Regexp.compile(pattern, re_flags, encoding), replacement, operation)
|
90
|
+
end
|
91
|
+
|
92
|
+
def regsubst_regexp(target, pattern, replacement, flags = nil)
|
93
|
+
pattern = (pattern.pattern || '') if pattern.is_a?(Puppet::Pops::Types::PRegexpType)
|
94
|
+
inner_regsubst(target, pattern, replacement, flags == 'G' ? :gsub : :sub)
|
95
|
+
end
|
96
|
+
|
97
|
+
def inner_regsubst(target, re, replacement, op)
|
98
|
+
target.respond_to?(op) ? target.send(op, re, replacement) : target.collect { |e| e.send(op, re, replacement) }
|
99
|
+
end
|
100
|
+
private :inner_regsubst
|
101
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# Requires the specified classes.
|
2
|
+
# Evaluate one or more classes, adding the required class as a dependency.
|
3
|
+
#
|
4
|
+
# The relationship metaparameters work well for specifying relationships
|
5
|
+
# between individual resources, but they can be clumsy for specifying
|
6
|
+
# relationships between classes. This function is a superset of the
|
7
|
+
# `include` function, adding a class relationship so that the requiring
|
8
|
+
# class depends on the required class.
|
9
|
+
#
|
10
|
+
# Warning: using `require` in place of `include` can lead to unwanted dependency cycles.
|
11
|
+
#
|
12
|
+
# For instance, the following manifest, with `require` instead of `include`, would produce a nasty
|
13
|
+
# dependence cycle, because `notify` imposes a `before` between `File[/foo]` and `Service[foo]`:
|
14
|
+
#
|
15
|
+
# ```puppet
|
16
|
+
# class myservice {
|
17
|
+
# service { foo: ensure => running }
|
18
|
+
# }
|
19
|
+
#
|
20
|
+
# class otherstuff {
|
21
|
+
# include myservice
|
22
|
+
# file { '/foo': notify => Service[foo] }
|
23
|
+
# }
|
24
|
+
# ```
|
25
|
+
#
|
26
|
+
# Note that this function only works with clients 0.25 and later, and it will
|
27
|
+
# fail if used with earlier clients.
|
28
|
+
#
|
29
|
+
# You must use the class's full name;
|
30
|
+
# relative names are not allowed. In addition to names in string form,
|
31
|
+
# you may also directly use Class and Resource Type values that are produced when evaluating
|
32
|
+
# resource and relationship expressions.
|
33
|
+
#
|
34
|
+
# - Since 4.0.0 Class and Resource types, absolute names
|
35
|
+
# - Since 4.7.0 Returns an `Array[Type[Class]]` with references to the required classes
|
36
|
+
#
|
37
|
+
Puppet::Functions.create_function(:require, Puppet::Functions::InternalFunction) do
|
38
|
+
dispatch :require_impl do
|
39
|
+
scope_param
|
40
|
+
# The function supports what the type system sees as Ruby runtime objects, and
|
41
|
+
# they cannot be parameterized to find what is actually valid instances.
|
42
|
+
# The validation is instead done in the function body itself via a call to
|
43
|
+
# `transform_and_assert_classnames` on the calling scope.
|
44
|
+
required_repeated_param 'Any', :names
|
45
|
+
end
|
46
|
+
|
47
|
+
def require_impl(scope, *classes)
|
48
|
+
if Puppet[:tasks]
|
49
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
50
|
+
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
51
|
+
{:operation => 'require'})
|
52
|
+
end
|
53
|
+
|
54
|
+
# Make call patterns uniform and protected against nested arrays, also make
|
55
|
+
# names absolute if so desired.
|
56
|
+
classes = scope.transform_and_assert_classnames(classes.flatten)
|
57
|
+
|
58
|
+
result = classes.map {|name| Puppet::Pops::Types::TypeFactory.host_class(name) }
|
59
|
+
|
60
|
+
# This is the same as calling the include function (but faster) since it again
|
61
|
+
# would otherwise need to perform the optional absolute name transformation
|
62
|
+
# (for no reason since they are already made absolute here).
|
63
|
+
#
|
64
|
+
scope.compiler.evaluate_classes(classes, scope, false)
|
65
|
+
krt = scope.environment.known_resource_types
|
66
|
+
|
67
|
+
classes.each do |klass|
|
68
|
+
# lookup the class in the scopes
|
69
|
+
klass = (classobj = krt.find_hostclass(klass)) ? classobj.name : nil
|
70
|
+
raise Puppet::ParseError.new(_("Could not find class %{klass}") % { klass: klass }) unless klass
|
71
|
+
ref = Puppet::Resource.new(:class, klass)
|
72
|
+
resource = scope.resource
|
73
|
+
resource.set_parameter(:require, [resource[:require]].flatten.compact << ref)
|
74
|
+
end
|
75
|
+
result
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Makes iteration continue with the next value, optionally with a given value for this iteration.
|
2
|
+
# If a value is not given it defaults to `undef`
|
3
|
+
#
|
4
|
+
# @since 4.7.0
|
5
|
+
#
|
6
|
+
Puppet::Functions.create_function(:return, Puppet::Functions::InternalFunction) do
|
7
|
+
dispatch :return_impl do
|
8
|
+
optional_param 'Any', :value
|
9
|
+
end
|
10
|
+
|
11
|
+
def return_impl(value = nil)
|
12
|
+
file, line = Puppet::Pops::PuppetStack.top_of_stack
|
13
|
+
raise Puppet::Pops::Evaluator::Return.new(value, file, line)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# Reverses the order of the elements of something that is iterable and optionally runs a
|
2
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) for each
|
3
|
+
# element.
|
4
|
+
#
|
5
|
+
# This function takes one to two arguments:
|
6
|
+
#
|
7
|
+
# 1. An `Iterable` that the function will iterate over.
|
8
|
+
# 2. An optional lambda, which the function calls for each element in the first argument. It must
|
9
|
+
# request one parameter.
|
10
|
+
#
|
11
|
+
# @example Using the `reverse_each` function
|
12
|
+
#
|
13
|
+
# ```puppet
|
14
|
+
# $data.reverse_each |$parameter| { <PUPPET CODE BLOCK> }
|
15
|
+
# ```
|
16
|
+
#
|
17
|
+
# or
|
18
|
+
#
|
19
|
+
# ```puppet
|
20
|
+
# $reverse_data = $data.reverse_each
|
21
|
+
# ```
|
22
|
+
#
|
23
|
+
# or
|
24
|
+
#
|
25
|
+
# ```puppet
|
26
|
+
# reverse_each($data) |$parameter| { <PUPPET CODE BLOCK> }
|
27
|
+
# ```
|
28
|
+
#
|
29
|
+
# or
|
30
|
+
#
|
31
|
+
# ```puppet
|
32
|
+
# $reverse_data = reverse_each($data)
|
33
|
+
# ```
|
34
|
+
#
|
35
|
+
# When no second argument is present, Puppet returns an `Iterable` that represents the reverse
|
36
|
+
# order of its first argument. This allows methods on `Iterable` to be chained.
|
37
|
+
#
|
38
|
+
# When a lambda is given as the second argument, Puppet iterates the first argument in reverse
|
39
|
+
# order and passes each value in turn to the lambda, then returns `undef`.
|
40
|
+
#
|
41
|
+
# @example Using the `reverse_each` function with an array and a one-parameter lambda
|
42
|
+
#
|
43
|
+
# ```puppet
|
44
|
+
# # Puppet will log a notice for each of the three items
|
45
|
+
# # in $data in reverse order.
|
46
|
+
# $data = [1,2,3]
|
47
|
+
# $data.reverse_each |$item| { notice($item) }
|
48
|
+
# ```
|
49
|
+
#
|
50
|
+
# When no second argument is present, Puppet returns a new `Iterable` which allows it to
|
51
|
+
# be directly chained into another function that takes an `Iterable` as an argument.
|
52
|
+
#
|
53
|
+
# @example Using the `reverse_each` function chained with a `map` function.
|
54
|
+
#
|
55
|
+
# ```puppet
|
56
|
+
# # For the array $data, return an array containing each
|
57
|
+
# # value multiplied by 10 in reverse order
|
58
|
+
# $data = [1,2,3]
|
59
|
+
# $transformed_data = $data.reverse_each.map |$item| { $item * 10 }
|
60
|
+
# # $transformed_data is set to [30,20,10]
|
61
|
+
# ```
|
62
|
+
#
|
63
|
+
# @example Using `reverse_each` function chained with a `map` in alternative syntax
|
64
|
+
#
|
65
|
+
# ```puppet
|
66
|
+
# # For the array $data, return an array containing each
|
67
|
+
# # value multiplied by 10 in reverse order
|
68
|
+
# $data = [1,2,3]
|
69
|
+
# $transformed_data = map(reverse_each($data)) |$item| { $item * 10 }
|
70
|
+
# # $transformed_data is set to [30,20,10]
|
71
|
+
# ```
|
72
|
+
#
|
73
|
+
# @since 4.4.0
|
74
|
+
#
|
75
|
+
Puppet::Functions.create_function(:reverse_each) do
|
76
|
+
dispatch :reverse_each do
|
77
|
+
param 'Iterable', :iterable
|
78
|
+
end
|
79
|
+
|
80
|
+
dispatch :reverse_each_block do
|
81
|
+
param 'Iterable', :iterable
|
82
|
+
block_param 'Callable[1,1]', :block
|
83
|
+
end
|
84
|
+
|
85
|
+
def reverse_each(iterable)
|
86
|
+
# produces an Iterable
|
87
|
+
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable, true).reverse_each
|
88
|
+
end
|
89
|
+
|
90
|
+
def reverse_each_block(iterable, &block)
|
91
|
+
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable).reverse_each(&block)
|
92
|
+
nil
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Returns an `Integer` value rounded to the nearest value.
|
2
|
+
# Takes a single `Numeric` value as an argument.
|
3
|
+
#
|
4
|
+
# @example 'rounding a value'
|
5
|
+
#
|
6
|
+
# ```puppet
|
7
|
+
# notice(round(2.9)) # would notice 3
|
8
|
+
# notice(round(2.1)) # would notice 2
|
9
|
+
# notice(round(-2.9)) # would notice -3
|
10
|
+
# ```
|
11
|
+
#
|
12
|
+
Puppet::Functions.create_function(:round) do
|
13
|
+
dispatch :on_numeric do
|
14
|
+
param 'Numeric', :val
|
15
|
+
end
|
16
|
+
|
17
|
+
def on_numeric(x)
|
18
|
+
if x > 0
|
19
|
+
Integer(x + 0.5)
|
20
|
+
else
|
21
|
+
Integer(x - 0.5)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# Strips trailing spaces from a String
|
2
|
+
#
|
3
|
+
# This function is compatible with the stdlib function with the same name.
|
4
|
+
#
|
5
|
+
# The function does the following:
|
6
|
+
# * For a `String` the conversion removes all trailing ASCII white space characters such as space, tab, newline, and return.
|
7
|
+
# It does not remove other space-like characters like hard space (Unicode U+00A0). (Tip, `/^[[:space:]]/` regular expression
|
8
|
+
# matches all space-like characters).
|
9
|
+
# * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is processed and the conversion is not recursive.
|
10
|
+
# * If the value is `Numeric` it is simply returned (this is for backwards compatibility).
|
11
|
+
# * An error is raised for all other data types.
|
12
|
+
#
|
13
|
+
# @example Removing trailing space from a String
|
14
|
+
# ```puppet
|
15
|
+
# " hello\n\t".rstrip()
|
16
|
+
# rstrip(" hello\n\t")
|
17
|
+
# ```
|
18
|
+
# Would both result in `"hello"`
|
19
|
+
#
|
20
|
+
# @example Removing trailing space from strings in an Array
|
21
|
+
# ```puppet
|
22
|
+
# [" hello\n\t", " hi\n\t"].rstrip()
|
23
|
+
# rstrip([" hello\n\t", " hi\n\t"])
|
24
|
+
# ```
|
25
|
+
# Would both result in `['hello', 'hi']`
|
26
|
+
#
|
27
|
+
Puppet::Functions.create_function(:rstrip) do
|
28
|
+
|
29
|
+
dispatch :on_numeric do
|
30
|
+
param 'Numeric', :arg
|
31
|
+
end
|
32
|
+
|
33
|
+
dispatch :on_string do
|
34
|
+
param 'String', :arg
|
35
|
+
end
|
36
|
+
|
37
|
+
dispatch :on_iterable do
|
38
|
+
param 'Iterable[Variant[String, Numeric]]', :arg
|
39
|
+
end
|
40
|
+
|
41
|
+
# unit function - since the old implementation skipped Numeric values
|
42
|
+
def on_numeric(n)
|
43
|
+
n
|
44
|
+
end
|
45
|
+
|
46
|
+
def on_string(s)
|
47
|
+
s.rstrip
|
48
|
+
end
|
49
|
+
|
50
|
+
def on_iterable(a)
|
51
|
+
a.map {|x| do_rstrip(x) }
|
52
|
+
end
|
53
|
+
|
54
|
+
def do_rstrip(x)
|
55
|
+
# x can only be a String or Numeric because type constraints have been automatically applied
|
56
|
+
x.is_a?(String) ? x.rstrip : x
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Scans a string and returns an array of one or more converted values based on the given format string.
|
2
|
+
# See the documentation of Ruby's String#scanf method for details about the supported formats (which
|
3
|
+
# are similar but not identical to the formats used in Puppet's `sprintf` function.)
|
4
|
+
#
|
5
|
+
# This function takes two mandatory arguments: the first is the string to convert, and the second is
|
6
|
+
# the format string. The result of the scan is an array, with each successfully scanned and transformed value.
|
7
|
+
# The scanning stops if a scan is unsuccessful, and the scanned result up to that point is returned. If there
|
8
|
+
# was no successful scan, the result is an empty array.
|
9
|
+
#
|
10
|
+
# "42".scanf("%i")
|
11
|
+
#
|
12
|
+
# You can also optionally pass a lambda to scanf, to do additional validation or processing.
|
13
|
+
#
|
14
|
+
#
|
15
|
+
# "42".scanf("%i") |$x| {
|
16
|
+
# unless $x[0] =~ Integer {
|
17
|
+
# fail "Expected a well formed integer value, got '$x[0]'"
|
18
|
+
# }
|
19
|
+
# $x[0]
|
20
|
+
# }
|
21
|
+
#
|
22
|
+
#
|
23
|
+
#
|
24
|
+
#
|
25
|
+
#
|
26
|
+
# @since 4.0.0
|
27
|
+
#
|
28
|
+
Puppet::Functions.create_function(:scanf) do
|
29
|
+
require 'scanf'
|
30
|
+
|
31
|
+
dispatch :scanf do
|
32
|
+
param 'String', :data
|
33
|
+
param 'String', :format
|
34
|
+
optional_block_param
|
35
|
+
end
|
36
|
+
|
37
|
+
def scanf(data, format)
|
38
|
+
result = data.scanf(format)
|
39
|
+
if block_given?
|
40
|
+
result = yield(result)
|
41
|
+
end
|
42
|
+
result
|
43
|
+
end
|
44
|
+
end
|