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,108 @@
|
|
1
|
+
# Handles annotations on objects. The function can be used in four different ways.
|
2
|
+
#
|
3
|
+
# With two arguments, an `Annotation` type and an object, the function returns the annotation
|
4
|
+
# for the object of the given type, or `undef` if no such annotation exists.
|
5
|
+
#
|
6
|
+
# @example Using `annotate` with two arguments
|
7
|
+
#
|
8
|
+
# ```puppet
|
9
|
+
# $annotation = Mod::NickNameAdapter.annotate(o)
|
10
|
+
#
|
11
|
+
# $annotation = annotate(Mod::NickNameAdapter.annotate, o)
|
12
|
+
# ```
|
13
|
+
#
|
14
|
+
# With three arguments, an `Annotation` type, an object, and a block, the function returns the
|
15
|
+
# annotation for the object of the given type, or annotates it with a new annotation initialized
|
16
|
+
# from the hash returned by the given block when no such annotation exists. The block will not
|
17
|
+
# be called when an annotation of the given type is already present.
|
18
|
+
#
|
19
|
+
# @example Using `annotate` with two arguments and a block
|
20
|
+
#
|
21
|
+
# ```puppet
|
22
|
+
# $annotation = Mod::NickNameAdapter.annotate(o) || { { 'nick_name' => 'Buddy' } }
|
23
|
+
#
|
24
|
+
# $annotation = annotate(Mod::NickNameAdapter.annotate, o) || { { 'nick_name' => 'Buddy' } }
|
25
|
+
# ```
|
26
|
+
#
|
27
|
+
# With three arguments, an `Annotation` type, an object, and an `Hash`, the function will annotate
|
28
|
+
# the given object with a new annotation of the given type that is initialized from the given hash.
|
29
|
+
# An existing annotation of the given type is discarded.
|
30
|
+
#
|
31
|
+
# @example Using `annotate` with three arguments where third argument is a Hash
|
32
|
+
#
|
33
|
+
# ```puppet
|
34
|
+
# $annotation = Mod::NickNameAdapter.annotate(o, { 'nick_name' => 'Buddy' })
|
35
|
+
#
|
36
|
+
# $annotation = annotate(Mod::NickNameAdapter.annotate, o, { 'nick_name' => 'Buddy' })
|
37
|
+
# ```
|
38
|
+
#
|
39
|
+
# With three arguments, an `Annotation` type, an object, and an the string `clear`, the function will
|
40
|
+
# clear the annotation of the given type in the given object. The old annotation is returned if
|
41
|
+
# it existed.
|
42
|
+
#
|
43
|
+
# @example Using `annotate` with three arguments where third argument is the string 'clear'
|
44
|
+
#
|
45
|
+
# ```puppet
|
46
|
+
# $annotation = Mod::NickNameAdapter.annotate(o, clear)
|
47
|
+
#
|
48
|
+
# $annotation = annotate(Mod::NickNameAdapter.annotate, o, clear)
|
49
|
+
# ```
|
50
|
+
#
|
51
|
+
# With three arguments, the type `Pcore`, an object, and a Hash of hashes keyed by `Annotation` types,
|
52
|
+
# the function will annotate the given object with all types used as keys in the given hash. Each annotation
|
53
|
+
# is initialized with the nested hash for the respective type. The annotated object is returned.
|
54
|
+
#
|
55
|
+
# @example Add multiple annotations to a new instance of `Mod::Person` using the `Pcore` type.
|
56
|
+
#
|
57
|
+
# ```puppet
|
58
|
+
# $person = Pcore.annotate(Mod::Person({'name' => 'William'}), {
|
59
|
+
# Mod::NickNameAdapter >= { 'nick_name' => 'Bill' },
|
60
|
+
# Mod::HobbiesAdapter => { 'hobbies' => ['Ham Radio', 'Philatelist'] }
|
61
|
+
# })
|
62
|
+
# ```
|
63
|
+
#
|
64
|
+
# @since 5.0.0
|
65
|
+
#
|
66
|
+
Puppet::Functions.create_function(:annotate) do
|
67
|
+
dispatch :annotate do
|
68
|
+
param 'Type[Annotation]', :type
|
69
|
+
param 'Any', :value
|
70
|
+
optional_block_param 'Callable[0, 0]', :block
|
71
|
+
end
|
72
|
+
|
73
|
+
dispatch :annotate_new do
|
74
|
+
param 'Type[Annotation]', :type
|
75
|
+
param 'Any', :value
|
76
|
+
param 'Variant[Enum[clear],Hash[Pcore::MemberName,Any]]', :annotation_hash
|
77
|
+
end
|
78
|
+
|
79
|
+
dispatch :annotate_multi do
|
80
|
+
param 'Type[Pcore]', :type
|
81
|
+
param 'Any', :value
|
82
|
+
param 'Hash[Type[Annotation], Hash[Pcore::MemberName,Any]]', :annotations
|
83
|
+
end
|
84
|
+
|
85
|
+
# @param type [Annotation] the annotation type
|
86
|
+
# @param value [Object] the value to annotate
|
87
|
+
# @param block [Proc] optional block to produce the annotation hash
|
88
|
+
#
|
89
|
+
def annotate(type, value, &block)
|
90
|
+
type.implementation_class.annotate(value, &block)
|
91
|
+
end
|
92
|
+
|
93
|
+
# @param type [Annotation] the annotation type
|
94
|
+
# @param value [Object] the value to annotate
|
95
|
+
# @param annotation_hash [Hash{String => Object}] the annotation hash
|
96
|
+
#
|
97
|
+
def annotate_new(type, value, annotation_hash)
|
98
|
+
type.implementation_class.annotate_new(value, annotation_hash)
|
99
|
+
end
|
100
|
+
|
101
|
+
# @param type [Type] the Pcore type
|
102
|
+
# @param value [Object] the value to annotate
|
103
|
+
# @param annotations [Hash{Annotation => Hash{String => Object}}] hash of annotation hashes
|
104
|
+
#
|
105
|
+
def annotate_multi(type, value, annotations)
|
106
|
+
type.implementation_class.annotate(value, annotations)
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
2
|
+
# repeatedly using each value in a data structure until the lambda returns a "truthy" value which
|
3
|
+
# makes the function return `true`, or if the end of the iteration is reached, false is returned.
|
4
|
+
#
|
5
|
+
# This function takes two mandatory arguments, in this order:
|
6
|
+
#
|
7
|
+
# 1. An array, hash, or other iterable object that the function will iterate over.
|
8
|
+
# 2. A lambda, which the function calls for each element in the first argument. It can
|
9
|
+
# request one or two parameters.
|
10
|
+
#
|
11
|
+
# @example Using the `any` function
|
12
|
+
#
|
13
|
+
# `$data.any |$parameter| { <PUPPET CODE BLOCK> }`
|
14
|
+
#
|
15
|
+
# or
|
16
|
+
#
|
17
|
+
# `any($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
18
|
+
#
|
19
|
+
# @example Using the `any` function with an Array and a one-parameter lambda
|
20
|
+
#
|
21
|
+
# ```puppet
|
22
|
+
# # For the array $data, run a lambda that checks if an unknown hash contains those keys
|
23
|
+
# $data = ["routers", "servers", "workstations"]
|
24
|
+
# $looked_up = lookup('somekey', Hash)
|
25
|
+
# notice $data.any |$item| { $looked_up[$item] }
|
26
|
+
# ```
|
27
|
+
#
|
28
|
+
# Would notice `true` if the looked up hash had a value that is neither `false` nor `undef` for at least
|
29
|
+
# one of the keys. That is, it is equivalent to the expression
|
30
|
+
# `$looked_up[routers] || $looked_up[servers] || $looked_up[workstations]`.
|
31
|
+
#
|
32
|
+
# When the first argument is a `Hash`, Puppet passes each key and value pair to the lambda
|
33
|
+
# as an array in the form `[key, value]`.
|
34
|
+
#
|
35
|
+
# @example Using the `any` function with a `Hash` and a one-parameter lambda
|
36
|
+
#
|
37
|
+
# ```puppet
|
38
|
+
# # For the hash $data, run a lambda using each item as a key-value array.
|
39
|
+
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
40
|
+
# $looked_up = lookup('somekey', Hash)
|
41
|
+
# notice $data.any |$item| { $looked_up[$item[0]] }
|
42
|
+
# ```
|
43
|
+
#
|
44
|
+
# Would notice `true` if the looked up hash had a value for one of the wanted key that is
|
45
|
+
# neither `false` nor `undef`.
|
46
|
+
#
|
47
|
+
# When the lambda accepts two arguments, the first argument gets the index in an array
|
48
|
+
# or the key from a hash, and the second argument the value.
|
49
|
+
#
|
50
|
+
#
|
51
|
+
# @example Using the `any` function with an array and a two-parameter lambda
|
52
|
+
#
|
53
|
+
# ```puppet
|
54
|
+
# # Check if there is an even numbered index that has a non String value
|
55
|
+
# $data = [key1, 1, 2, 2]
|
56
|
+
# notice $data.any |$index, $value| { $index % 2 == 0 and $value !~ String }
|
57
|
+
# ```
|
58
|
+
#
|
59
|
+
# Would notice true as the index `2` is even and not a `String`
|
60
|
+
#
|
61
|
+
# For an general examples that demonstrates iteration, see the Puppet
|
62
|
+
# [iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
63
|
+
# documentation.
|
64
|
+
#
|
65
|
+
# @since 5.2.0
|
66
|
+
#
|
67
|
+
Puppet::Functions.create_function(:any) do
|
68
|
+
dispatch :any_Hash_2 do
|
69
|
+
param 'Hash[Any, Any]', :hash
|
70
|
+
block_param 'Callable[2,2]', :block
|
71
|
+
end
|
72
|
+
|
73
|
+
dispatch :any_Hash_1 do
|
74
|
+
param 'Hash[Any, Any]', :hash
|
75
|
+
block_param 'Callable[1,1]', :block
|
76
|
+
end
|
77
|
+
|
78
|
+
dispatch :any_Enumerable_2 do
|
79
|
+
param 'Iterable', :enumerable
|
80
|
+
block_param 'Callable[2,2]', :block
|
81
|
+
end
|
82
|
+
|
83
|
+
dispatch :any_Enumerable_1 do
|
84
|
+
param 'Iterable', :enumerable
|
85
|
+
block_param 'Callable[1,1]', :block
|
86
|
+
end
|
87
|
+
|
88
|
+
def any_Hash_1(hash)
|
89
|
+
hash.each_pair.any? { |x| yield(x) }
|
90
|
+
end
|
91
|
+
|
92
|
+
def any_Hash_2(hash)
|
93
|
+
hash.each_pair.any? { |x,y| yield(x, y) }
|
94
|
+
end
|
95
|
+
|
96
|
+
def any_Enumerable_1(enumerable)
|
97
|
+
Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable).any? { |e| yield(e) }
|
98
|
+
end
|
99
|
+
|
100
|
+
def any_Enumerable_2(enumerable)
|
101
|
+
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
102
|
+
if enum.hash_style?
|
103
|
+
enum.any? { |entry| yield(*entry) }
|
104
|
+
else
|
105
|
+
enum.each_with_index { |e, i| return true if yield(i, e) }
|
106
|
+
false
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# Returns the given value if it is of the given
|
2
|
+
# [data type](https://puppet.com/docs/puppet/latest/lang_data.html), or
|
3
|
+
# otherwise either raises an error or executes an optional two-parameter
|
4
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html).
|
5
|
+
#
|
6
|
+
# The function takes two mandatory arguments, in this order:
|
7
|
+
#
|
8
|
+
# 1. The expected data type.
|
9
|
+
# 2. A value to compare against the expected data type.
|
10
|
+
#
|
11
|
+
# @example Using `assert_type`
|
12
|
+
#
|
13
|
+
# ```puppet
|
14
|
+
# $raw_username = 'Amy Berry'
|
15
|
+
#
|
16
|
+
# # Assert that $raw_username is a non-empty string and assign it to $valid_username.
|
17
|
+
# $valid_username = assert_type(String[1], $raw_username)
|
18
|
+
#
|
19
|
+
# # $valid_username contains "Amy Berry".
|
20
|
+
# # If $raw_username was an empty string or a different data type, the Puppet run would
|
21
|
+
# # fail with an "Expected type does not match actual" error.
|
22
|
+
# ```
|
23
|
+
#
|
24
|
+
# You can use an optional lambda to provide enhanced feedback. The lambda takes two
|
25
|
+
# mandatory parameters, in this order:
|
26
|
+
#
|
27
|
+
# 1. The expected data type as described in the function's first argument.
|
28
|
+
# 2. The actual data type of the value.
|
29
|
+
#
|
30
|
+
# @example Using `assert_type` with a warning and default value
|
31
|
+
#
|
32
|
+
# ```puppet
|
33
|
+
# $raw_username = 'Amy Berry'
|
34
|
+
#
|
35
|
+
# # Assert that $raw_username is a non-empty string and assign it to $valid_username.
|
36
|
+
# # If it isn't, output a warning describing the problem and use a default value.
|
37
|
+
# $valid_username = assert_type(String[1], $raw_username) |$expected, $actual| {
|
38
|
+
# warning( "The username should be \'${expected}\', not \'${actual}\'. Using 'anonymous'." )
|
39
|
+
# 'anonymous'
|
40
|
+
# }
|
41
|
+
#
|
42
|
+
# # $valid_username contains "Amy Berry".
|
43
|
+
# # If $raw_username was an empty string, the Puppet run would set $valid_username to
|
44
|
+
# # "anonymous" and output a warning: "The username should be 'String[1, default]', not
|
45
|
+
# # 'String[0, 0]'. Using 'anonymous'."
|
46
|
+
# ```
|
47
|
+
#
|
48
|
+
# For more information about data types, see the
|
49
|
+
# [documentation](https://puppet.com/docs/puppet/latest/lang_data.html).
|
50
|
+
#
|
51
|
+
# @since 4.0.0
|
52
|
+
#
|
53
|
+
Puppet::Functions.create_function(:assert_type) do
|
54
|
+
dispatch :assert_type do
|
55
|
+
param 'Type', :type
|
56
|
+
param 'Any', :value
|
57
|
+
optional_block_param 'Callable[Type, Type]', :block
|
58
|
+
end
|
59
|
+
|
60
|
+
dispatch :assert_type_s do
|
61
|
+
param 'String', :type_string
|
62
|
+
param 'Any', :value
|
63
|
+
optional_block_param 'Callable[Type, Type]', :block
|
64
|
+
end
|
65
|
+
|
66
|
+
# @param type [Type] the type the value must be an instance of
|
67
|
+
# @param value [Object] the value to assert
|
68
|
+
#
|
69
|
+
def assert_type(type, value)
|
70
|
+
unless Puppet::Pops::Types::TypeCalculator.instance?(type,value)
|
71
|
+
inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value)
|
72
|
+
if block_given?
|
73
|
+
# Give the inferred type to allow richer comparison in the given block (if generalized
|
74
|
+
# information is lost).
|
75
|
+
#
|
76
|
+
value = yield(type, inferred_type)
|
77
|
+
else
|
78
|
+
raise Puppet::Pops::Types::TypeAssertionError.new(
|
79
|
+
Puppet::Pops::Types::TypeMismatchDescriber.singleton.describe_mismatch('assert_type():', type, inferred_type),
|
80
|
+
type, inferred_type)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
value
|
84
|
+
end
|
85
|
+
|
86
|
+
# @param type_string [String] the type the value must be an instance of given in String form
|
87
|
+
# @param value [Object] the value to assert
|
88
|
+
#
|
89
|
+
def assert_type_s(type_string, value, &proc)
|
90
|
+
t = Puppet::Pops::Types::TypeParser.singleton.parse(type_string)
|
91
|
+
block_given? ? assert_type(t, value, &proc) : assert_type(t, value)
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Loads a binary file from a module or file system and returns its contents as a `Binary`.
|
2
|
+
# The argument to this function should be a `<MODULE NAME>/<FILE>`
|
3
|
+
# reference, which will load `<FILE>` from a module's `files`
|
4
|
+
# directory. (For example, the reference `mysql/mysqltuner.pl` will load the
|
5
|
+
# file `<MODULES DIRECTORY>/mysql/files/mysqltuner.pl`.)
|
6
|
+
#
|
7
|
+
# This function also accepts an absolute file path that allows reading
|
8
|
+
# binary file content from anywhere on disk.
|
9
|
+
#
|
10
|
+
# An error is raised if the given file does not exists.
|
11
|
+
#
|
12
|
+
# To search for the existence of files, use the `find_file()` function.
|
13
|
+
#
|
14
|
+
# - since 4.8.0
|
15
|
+
#
|
16
|
+
# @since 4.8.0
|
17
|
+
#
|
18
|
+
Puppet::Functions.create_function(:binary_file, Puppet::Functions::InternalFunction) do
|
19
|
+
dispatch :binary_file do
|
20
|
+
scope_param
|
21
|
+
param 'String', :path
|
22
|
+
end
|
23
|
+
|
24
|
+
def binary_file(scope, unresolved_path)
|
25
|
+
path = Puppet::Parser::Files.find_file(unresolved_path, scope.compiler.environment)
|
26
|
+
unless path && Puppet::FileSystem.exist?(path)
|
27
|
+
#TRANSLATORS the string "binary_file()" should not be translated
|
28
|
+
raise Puppet::ParseError, _("binary_file(): The given file '%{unresolved_path}' does not exist") % { unresolved_path: unresolved_path }
|
29
|
+
end
|
30
|
+
Puppet::Pops::Types::PBinaryType::Binary.from_binary_string(Puppet::FileSystem.binread(path))
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# Breaks an innermost iteration as if it encountered an end of input.
|
2
|
+
# This function does not return to the caller.
|
3
|
+
#
|
4
|
+
# The signal produced to stop the iteration bubbles up through
|
5
|
+
# the call stack until either terminating the innermost iteration or
|
6
|
+
# raising an error if the end of the call stack is reached.
|
7
|
+
#
|
8
|
+
# The break() function does not accept an argument.
|
9
|
+
#
|
10
|
+
# @example Using `break`
|
11
|
+
#
|
12
|
+
# ```puppet
|
13
|
+
# $data = [1,2,3]
|
14
|
+
# notice $data.map |$x| { if $x == 3 { break() } $x*10 }
|
15
|
+
# ```
|
16
|
+
#
|
17
|
+
# Would notice the value `[10, 20]`
|
18
|
+
#
|
19
|
+
# @example Using a nested `break`
|
20
|
+
#
|
21
|
+
# ```puppet
|
22
|
+
# function break_if_even($x) {
|
23
|
+
# if $x % 2 == 0 { break() }
|
24
|
+
# }
|
25
|
+
# $data = [1,2,3]
|
26
|
+
# notice $data.map |$x| { break_if_even($x); $x*10 }
|
27
|
+
#```
|
28
|
+
# Would notice the value `[10]`
|
29
|
+
#
|
30
|
+
# * Also see functions `next` and `return`
|
31
|
+
#
|
32
|
+
# @since 4.8.0
|
33
|
+
#
|
34
|
+
Puppet::Functions.create_function(:break) do
|
35
|
+
dispatch :break_impl do
|
36
|
+
end
|
37
|
+
|
38
|
+
def break_impl()
|
39
|
+
# get file, line if available, else they are set to nil
|
40
|
+
file, line = Puppet::Pops::PuppetStack.top_of_stack
|
41
|
+
|
42
|
+
# PuppetStopIteration contains file and line and is a StopIteration exception
|
43
|
+
# so it can break a Ruby Kernel#loop or enumeration
|
44
|
+
#
|
45
|
+
raise Puppet::Pops::Evaluator::PuppetStopIteration.new(file, line)
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# Calls an arbitrary Puppet function by name.
|
2
|
+
#
|
3
|
+
# This function takes one mandatory argument and one or more optional arguments:
|
4
|
+
#
|
5
|
+
# 1. A string corresponding to a function name.
|
6
|
+
# 2. Any number of arguments to be passed to the called function.
|
7
|
+
# 3. An optional lambda, if the function being called supports it.
|
8
|
+
#
|
9
|
+
# This function can also be used to resolve a `Deferred` given as
|
10
|
+
# the only argument to the function (does not accept arguments nor
|
11
|
+
# a block).
|
12
|
+
#
|
13
|
+
# @example Using the `call` function
|
14
|
+
#
|
15
|
+
# ```puppet
|
16
|
+
# $a = 'notice'
|
17
|
+
# call($a, 'message')
|
18
|
+
# ```
|
19
|
+
#
|
20
|
+
# @example Using the `call` function with a lambda
|
21
|
+
#
|
22
|
+
# ```puppet
|
23
|
+
# $a = 'each'
|
24
|
+
# $b = [1,2,3]
|
25
|
+
# call($a, $b) |$item| {
|
26
|
+
# notify { $item: }
|
27
|
+
# }
|
28
|
+
# ```
|
29
|
+
#
|
30
|
+
# The `call` function can be used to call either Ruby functions or Puppet language
|
31
|
+
# functions.
|
32
|
+
#
|
33
|
+
# When used with `Deferred` values, the deferred value can either describe
|
34
|
+
# a function call, or a dig into a variable.
|
35
|
+
#
|
36
|
+
# @example Resolving a deferred function call
|
37
|
+
#
|
38
|
+
# ```puppet
|
39
|
+
# $d = Deferred('join', [[1,2,3], ':']) # A future call to join that joins the arguments 1,2,3 with ':'
|
40
|
+
# notice($d.call())
|
41
|
+
# ```
|
42
|
+
#
|
43
|
+
# Would notice the string "1:2:3".
|
44
|
+
#
|
45
|
+
# @example Resolving a deferred variable value with optional dig into its structure
|
46
|
+
#
|
47
|
+
# ```puppet
|
48
|
+
# $d = Deferred('$facts', ['processors', 'count'])
|
49
|
+
# notice($d.call())
|
50
|
+
# ```
|
51
|
+
#
|
52
|
+
# Would notice the value of `$facts['processors']['count']` at the time when the `call` is made.
|
53
|
+
#
|
54
|
+
# * Deferred values supported since Puppet 6.0
|
55
|
+
#
|
56
|
+
# @since 5.0.0
|
57
|
+
#
|
58
|
+
Puppet::Functions.create_function(:call, Puppet::Functions::InternalFunction) do
|
59
|
+
dispatch :call_impl_block do
|
60
|
+
scope_param
|
61
|
+
param 'String', :function_name
|
62
|
+
repeated_param 'Any', :arguments
|
63
|
+
optional_block_param
|
64
|
+
end
|
65
|
+
|
66
|
+
dispatch :call_deferred do
|
67
|
+
scope_param
|
68
|
+
param 'Deferred', :deferred
|
69
|
+
end
|
70
|
+
|
71
|
+
def call_impl_block(scope, function_name, *args, &block)
|
72
|
+
# The call function must be able to call functions loaded by any loader visible from the calling scope.
|
73
|
+
Puppet::Pops::Parser::EvaluatingParser.new.evaluator.external_call_function(function_name, args, scope, &block)
|
74
|
+
end
|
75
|
+
|
76
|
+
def call_deferred(scope, deferred)
|
77
|
+
Puppet::Pops::Evaluator::DeferredResolver.resolve(deferred, scope.compiler)
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# Creates a Camel Case version of 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 replaces all combinations of `*_<char>*` with an upcased version of the
|
7
|
+
# character following the _. This is done using Ruby system locale which handles some, but not all
|
8
|
+
# special international up-casing rules (for example German double-s ß is upcased to "Ss").
|
9
|
+
# * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is capitalized 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
|
+
# * The result will not contain any underscore characters.
|
13
|
+
#
|
14
|
+
# Please note: This function relies directly on Ruby's String implementation and as such may not be entirely UTF8 compatible.
|
15
|
+
# To ensure best compatibility please use this function with Ruby 2.4.0 or greater - https://bugs.ruby-lang.org/issues/10085.
|
16
|
+
#
|
17
|
+
# @example Camelcase a String
|
18
|
+
# ```puppet
|
19
|
+
# 'hello_friend'.camelcase()
|
20
|
+
# camelcase('hello_friend')
|
21
|
+
# ```
|
22
|
+
# Would both result in `"HelloFriend"`
|
23
|
+
#
|
24
|
+
# @example Camelcase of strings in an Array
|
25
|
+
# ```puppet
|
26
|
+
# ['abc_def', 'bcd_xyz'].camelcase()
|
27
|
+
# camelcase(['abc_def', 'bcd_xyz'])
|
28
|
+
# ```
|
29
|
+
# Would both result in `['AbcDef', 'BcdXyz']`
|
30
|
+
#
|
31
|
+
Puppet::Functions.create_function(:camelcase) do
|
32
|
+
|
33
|
+
dispatch :on_numeric do
|
34
|
+
param 'Numeric', :arg
|
35
|
+
end
|
36
|
+
|
37
|
+
dispatch :on_string do
|
38
|
+
param 'String', :arg
|
39
|
+
end
|
40
|
+
|
41
|
+
dispatch :on_iterable do
|
42
|
+
param 'Iterable[Variant[String, Numeric]]', :arg
|
43
|
+
end
|
44
|
+
|
45
|
+
# unit function - since the old implementation skipped Numeric values
|
46
|
+
def on_numeric(n)
|
47
|
+
n
|
48
|
+
end
|
49
|
+
|
50
|
+
def on_string(s)
|
51
|
+
s.split('_').map {|x| x.capitalize }.join('')
|
52
|
+
end
|
53
|
+
|
54
|
+
def on_iterable(a)
|
55
|
+
a.map {|x| do_camelcase(x) }
|
56
|
+
end
|
57
|
+
|
58
|
+
def do_camelcase(x)
|
59
|
+
# x can only be a String or Numeric because type constraints have been automatically applied
|
60
|
+
x.is_a?(String) ? on_string(x) : x
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# Capitalizes the first character of a String, or the first character of every String in an Iterable value (such as an Array).
|
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`, a string with its first character in upper case version is returned.
|
7
|
+
# This is done using Ruby system locale which handles some, but not all
|
8
|
+
# special international up-casing rules (for example German double-s ß is capitalized to "Ss").
|
9
|
+
# * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is capitalized 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
|
+
# Please note: This function relies directly on Ruby's String implementation and as such may not be entirely UTF8 compatible.
|
14
|
+
# To ensure best compatibility please use this function with Ruby 2.4.0 or greater - https://bugs.ruby-lang.org/issues/10085.
|
15
|
+
#
|
16
|
+
# @example Capitalizing a String
|
17
|
+
# ```puppet
|
18
|
+
# 'hello'.capitalize()
|
19
|
+
# capitalize('hello')
|
20
|
+
# ```
|
21
|
+
# Would both result in `"Hello"`
|
22
|
+
#
|
23
|
+
# @example Capitalizing strings in an Array
|
24
|
+
# ```puppet
|
25
|
+
# ['abc', 'bcd'].capitalize()
|
26
|
+
# capitalize(['abc', 'bcd'])
|
27
|
+
# ```
|
28
|
+
# Would both result in `['Abc', 'Bcd']`
|
29
|
+
#
|
30
|
+
Puppet::Functions.create_function(:capitalize) do
|
31
|
+
|
32
|
+
dispatch :on_numeric do
|
33
|
+
param 'Numeric', :arg
|
34
|
+
end
|
35
|
+
|
36
|
+
dispatch :on_string do
|
37
|
+
param 'String', :arg
|
38
|
+
end
|
39
|
+
|
40
|
+
dispatch :on_iterable do
|
41
|
+
param 'Iterable[Variant[String, Numeric]]', :arg
|
42
|
+
end
|
43
|
+
|
44
|
+
# unit function - since the old implementation skipped Numeric values
|
45
|
+
def on_numeric(n)
|
46
|
+
n
|
47
|
+
end
|
48
|
+
|
49
|
+
def on_string(s)
|
50
|
+
s.capitalize
|
51
|
+
end
|
52
|
+
|
53
|
+
def on_iterable(a)
|
54
|
+
a.map {|x| do_capitalize(x) }
|
55
|
+
end
|
56
|
+
|
57
|
+
def do_capitalize(x)
|
58
|
+
# x can only be a String or Numeric because type constraints have been automatically applied
|
59
|
+
x.is_a?(String) ? x.capitalize : x
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Returns the smallest `Integer` greater or equal to the argument.
|
2
|
+
# Takes a single numeric value as an argument.
|
3
|
+
#
|
4
|
+
# This function is backwards compatible with the same function in stdlib
|
5
|
+
# and accepts a `Numeric` value. A `String` that can be converted
|
6
|
+
# to a floating point number can also be used in this version - but this
|
7
|
+
# is deprecated.
|
8
|
+
#
|
9
|
+
# In general convert string input to `Numeric` before calling this function
|
10
|
+
# to have full control over how the conversion is done.
|
11
|
+
#
|
12
|
+
Puppet::Functions.create_function(:ceiling) do
|
13
|
+
dispatch :on_numeric do
|
14
|
+
param 'Numeric', :val
|
15
|
+
end
|
16
|
+
|
17
|
+
dispatch :on_string do
|
18
|
+
param 'String', :val
|
19
|
+
end
|
20
|
+
|
21
|
+
def on_numeric(x)
|
22
|
+
x.ceil
|
23
|
+
end
|
24
|
+
|
25
|
+
def on_string(x)
|
26
|
+
Puppet.warn_once('deprecations', 'ceiling_function_numeric_coerce_string',
|
27
|
+
_("The ceiling() function's auto conversion of String to Float is deprecated - change to convert input before calling"))
|
28
|
+
|
29
|
+
begin
|
30
|
+
Float(x).ceil
|
31
|
+
rescue TypeError, ArgumentError => _e
|
32
|
+
# TRANSLATORS: 'ceiling' is a name and should not be translated
|
33
|
+
raise(ArgumentError, _('ceiling(): cannot convert given value to a floating point value.'))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# Returns a new string with the record separator character(s) removed.
|
2
|
+
# The record separator is the line ending characters `\r` and `\n`.
|
3
|
+
#
|
4
|
+
# This function is compatible with the stdlib function with the same name.
|
5
|
+
#
|
6
|
+
# The function does the following:
|
7
|
+
# * For a `String` the conversion removes `\r\n`, `\n` or `\r` from the end of a string.
|
8
|
+
# * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is processed and the conversion is not recursive.
|
9
|
+
# * If the value is `Numeric` it is simply returned (this is for backwards compatibility).
|
10
|
+
# * An error is raised for all other data types.
|
11
|
+
#
|
12
|
+
# @example Removing line endings
|
13
|
+
# ```puppet
|
14
|
+
# "hello\r\n".chomp()
|
15
|
+
# chomp("hello\r\n")
|
16
|
+
# ```
|
17
|
+
# Would both result in `"hello"`
|
18
|
+
#
|
19
|
+
# @example Removing line endings in an array
|
20
|
+
# ```puppet
|
21
|
+
# ["hello\r\n", "hi\r\n"].chomp()
|
22
|
+
# chomp(["hello\r\n", "hi\r\n"])
|
23
|
+
# ```
|
24
|
+
# Would both result in `['hello', 'hi']`
|
25
|
+
#
|
26
|
+
Puppet::Functions.create_function(:chomp) do
|
27
|
+
|
28
|
+
dispatch :on_numeric do
|
29
|
+
param 'Numeric', :arg
|
30
|
+
end
|
31
|
+
|
32
|
+
dispatch :on_string do
|
33
|
+
param 'String', :arg
|
34
|
+
end
|
35
|
+
|
36
|
+
dispatch :on_iterable do
|
37
|
+
param 'Iterable[Variant[String, Numeric]]', :arg
|
38
|
+
end
|
39
|
+
|
40
|
+
# unit function - since the old implementation skipped Numeric values
|
41
|
+
def on_numeric(n)
|
42
|
+
n
|
43
|
+
end
|
44
|
+
|
45
|
+
def on_string(s)
|
46
|
+
s.chomp
|
47
|
+
end
|
48
|
+
|
49
|
+
def on_iterable(a)
|
50
|
+
a.map {|x| do_chomp(x) }
|
51
|
+
end
|
52
|
+
|
53
|
+
def do_chomp(x)
|
54
|
+
# x can only be a String or Numeric because type constraints have been automatically applied
|
55
|
+
x.is_a?(String) ? x.chomp : x
|
56
|
+
end
|
57
|
+
end
|