puppet 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CONTRIBUTING.md +52 -42
- data/Gemfile +48 -81
- data/Gemfile.lock +156 -0
- data/MAINTAINERS +0 -19
- data/README.md +19 -17
- data/Rakefile +47 -36
- data/conf/auth.conf +7 -2
- data/conf/environment.conf +1 -1
- data/conf/fileserver.conf +1 -1
- data/conf/puppet.conf +4 -4
- data/ext/README.environment +1 -1
- data/ext/build_defaults.yaml +0 -2
- data/ext/cert_inspector +2 -2
- data/ext/debian/copyright +2 -24
- data/ext/debian/puppetmaster.README.debian +2 -2
- data/ext/envpuppet +1 -1
- data/ext/gentoo/init.d/puppetmaster +4 -4
- data/ext/hiera/hiera.yaml +1 -1
- data/ext/ips/puppet-agent +11 -11
- data/ext/ips/puppet-master +11 -11
- data/ext/project_data.yaml +9 -8
- data/ext/puppet-test +5 -5
- data/ext/redhat/client.init +2 -2
- data/ext/redhat/logrotate +1 -1
- data/ext/redhat/puppet.spec.erb +0 -4
- data/ext/regexp_nodes/regexp_nodes.rb +15 -16
- data/ext/solaris/smf/puppet +11 -11
- data/ext/solaris/smf/svc-puppetd +5 -5
- data/ext/solaris/smf/svc-puppetmasterd +5 -5
- data/ext/upload_facts.rb +2 -2
- data/ext/windows/service/daemon.rb +1 -1
- data/install.rb +2 -3
- data/lib/hiera/puppet_function.rb +5 -2
- data/lib/hiera/scope.rb +24 -2
- data/lib/hiera_puppet.rb +3 -3
- data/lib/puppet/agent/locker.rb +6 -5
- data/lib/puppet/agent.rb +24 -3
- data/lib/puppet/application/agent.rb +19 -14
- data/lib/puppet/application/apply.rb +30 -17
- data/lib/puppet/application/cert.rb +30 -174
- data/lib/puppet/application/config.rb +1 -0
- data/lib/puppet/application/describe.rb +6 -3
- data/lib/puppet/application/device.rb +165 -60
- data/lib/puppet/application/doc.rb +10 -4
- data/lib/puppet/application/face_base.rb +1 -1
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/filebucket.rb +60 -18
- data/lib/puppet/application/help.rb +1 -0
- data/lib/puppet/application/lookup.rb +23 -11
- data/lib/puppet/application/resource.rb +8 -4
- data/lib/puppet/application/script.rb +261 -0
- data/lib/puppet/application/ssl.rb +133 -0
- data/lib/puppet/application.rb +42 -11
- data/lib/puppet/application_support.rb +7 -3
- data/lib/puppet/configurer/downloader.rb +1 -1
- data/lib/puppet/configurer/fact_handler.rb +5 -1
- data/lib/puppet/configurer/plugin_handler.rb +32 -9
- data/lib/puppet/configurer.rb +114 -76
- data/lib/puppet/confine.rb +4 -1
- data/lib/puppet/context.rb +1 -1
- data/lib/puppet/daemon.rb +3 -3
- 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 +279 -209
- data/lib/puppet/environments.rb +24 -11
- data/lib/puppet/error.rb +35 -18
- data/lib/puppet/etc.rb +6 -7
- data/lib/puppet/external/dot.rb +23 -24
- data/lib/puppet/external/pson/common.rb +2 -2
- data/lib/puppet/external/pson/pure/generator.rb +1 -1
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/catalog.rb +2 -2
- data/lib/puppet/face/config.rb +157 -11
- data/lib/puppet/face/epp.rb +66 -37
- data/lib/puppet/face/facts.rb +49 -0
- data/lib/puppet/face/help/action.erb +4 -1
- data/lib/puppet/face/help/face.erb +1 -1
- data/lib/puppet/face/help/global.erb +2 -2
- data/lib/puppet/face/help/man.erb +1 -1
- data/lib/puppet/face/help.rb +78 -64
- data/lib/puppet/face/man.rb +56 -12
- data/lib/puppet/face/module/build.rb +5 -54
- data/lib/puppet/face/module/generate.rb +6 -243
- data/lib/puppet/face/module/install.rb +1 -4
- data/lib/puppet/face/module/list.rb +6 -22
- data/lib/puppet/face/module/search.rb +7 -3
- data/lib/puppet/face/module/uninstall.rb +15 -7
- data/lib/puppet/face/module/upgrade.rb +1 -4
- data/lib/puppet/face/node/clean.rb +14 -10
- data/lib/puppet/face/node.rb +1 -0
- data/lib/puppet/face/parser.rb +30 -4
- data/lib/puppet/face/plugin.rb +1 -3
- data/lib/puppet/face/status.rb +3 -2
- data/lib/puppet/feature/base.rb +8 -27
- data/lib/puppet/feature/bolt.rb +3 -0
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -2
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +18 -17
- data/lib/puppet/file_serving/configuration/parser.rb +25 -9
- data/lib/puppet/file_serving/configuration.rb +6 -0
- data/lib/puppet/file_serving/fileset.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +4 -3
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/file_serving/mount/tasks.rb +21 -0
- data/lib/puppet/file_system/uniquefile.rb +2 -2
- data/lib/puppet/forge/errors.rb +27 -25
- data/lib/puppet/forge/repository.rb +1 -1
- data/lib/puppet/forge.rb +22 -9
- data/lib/puppet/functions/abs.rb +61 -0
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +104 -0
- data/lib/puppet/functions/annotate.rb +11 -11
- data/lib/puppet/functions/any.rb +109 -0
- data/lib/puppet/functions/assert_type.rb +7 -7
- data/lib/puppet/functions/binary_file.rb +15 -2
- data/lib/puppet/functions/break.rb +34 -9
- data/lib/puppet/functions/call.rb +41 -4
- 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 +25 -3
- data/lib/puppet/functions/convert_to.rb +34 -0
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +14 -15
- data/lib/puppet/functions/dig.rb +47 -3
- data/lib/puppet/functions/downcase.rb +89 -0
- data/lib/puppet/functions/each.rb +30 -20
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +77 -0
- data/lib/puppet/functions/epp.rb +3 -0
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -8
- data/lib/puppet/functions/filter.rb +30 -23
- data/lib/puppet/functions/find_file.rb +15 -2
- 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/hiera.rb +11 -11
- data/lib/puppet/functions/hiera_array.rb +11 -11
- data/lib/puppet/functions/hiera_hash.rb +12 -12
- data/lib/puppet/functions/hiera_include.rb +15 -15
- data/lib/puppet/functions/hocon_data.rb +1 -1
- data/lib/puppet/functions/include.rb +34 -2
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +2 -2
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +3 -3
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +7 -5
- data/lib/puppet/functions/lstrip.rb +58 -0
- data/lib/puppet/functions/map.rb +34 -20
- data/lib/puppet/functions/match.rb +17 -6
- 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 +982 -7
- data/lib/puppet/functions/next.rb +2 -9
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/reduce.rb +36 -5
- data/lib/puppet/functions/regsubst.rb +10 -4
- data/lib/puppet/functions/require.rb +42 -2
- data/lib/puppet/functions/return.rb +2 -9
- data/lib/puppet/functions/reverse_each.rb +71 -2
- data/lib/puppet/functions/round.rb +24 -0
- data/lib/puppet/functions/rstrip.rb +58 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/slice.rb +25 -12
- data/lib/puppet/functions/sort.rb +74 -0
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +73 -1
- data/lib/puppet/functions/strftime.rb +178 -10
- data/lib/puppet/functions/strip.rb +58 -0
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +200 -0
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +8 -4
- data/lib/puppet/functions/upcase.rb +89 -0
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +9 -7
- data/lib/puppet/functions/yaml_data.rb +8 -7
- data/lib/puppet/functions.rb +212 -95
- data/lib/puppet/generate/models/type/property.rb +1 -1
- data/lib/puppet/generate/type.rb +1 -1
- 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/relationship_graph.rb +7 -1
- data/lib/puppet/graph/simple_graph.rb +12 -8
- data/lib/puppet/graph.rb +0 -2
- data/lib/puppet/indirector/catalog/compiler.rb +48 -16
- data/lib/puppet/indirector/catalog/json.rb +14 -3
- data/lib/puppet/indirector/catalog/yaml.rb +0 -16
- data/lib/puppet/indirector/certificate/file.rb +0 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +4 -6
- data/lib/puppet/indirector/facts/network_device.rb +2 -2
- data/lib/puppet/indirector/facts/rest.rb +21 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -6
- data/lib/puppet/indirector/file_bucket_file/file.rb +11 -4
- data/lib/puppet/indirector/file_content/http.rb +3 -1
- data/lib/puppet/indirector/file_server.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +28 -24
- data/lib/puppet/indirector/key/file.rb +1 -6
- data/lib/puppet/indirector/node/exec.rb +2 -4
- data/lib/puppet/indirector/node/yaml.rb +0 -6
- data/lib/puppet/indirector/request.rb +19 -15
- data/lib/puppet/indirector/rest.rb +21 -68
- data/lib/puppet/indirector/ssl_file.rb +5 -46
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +4 -4
- data/lib/puppet/info_service/class_information_service.rb +1 -1
- data/lib/puppet/info_service/task_information_service.rb +36 -0
- data/lib/puppet/info_service.rb +10 -0
- data/lib/puppet/interface/action.rb +54 -29
- data/lib/puppet/interface/action_builder.rb +22 -5
- data/lib/puppet/interface/action_manager.rb +1 -1
- data/lib/puppet/interface/documentation.rb +21 -10
- data/lib/puppet/interface/face_collection.rb +7 -3
- data/lib/puppet/interface/option.rb +36 -15
- data/lib/puppet/interface/option_builder.rb +23 -9
- data/lib/puppet/interface/option_manager.rb +9 -4
- data/lib/puppet/interface.rb +3 -2
- data/lib/puppet/loaders.rb +3 -0
- data/lib/puppet/metatype/manager.rb +9 -7
- data/lib/puppet/module/task.rb +267 -0
- data/lib/puppet/module.rb +70 -14
- data/lib/puppet/module_tool/applications/application.rb +5 -5
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/installer.rb +9 -7
- data/lib/puppet/module_tool/applications/uninstaller.rb +4 -2
- data/lib/puppet/module_tool/applications/unpacker.rb +4 -4
- data/lib/puppet/module_tool/applications/upgrader.rb +8 -6
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/installer.rb +18 -20
- data/lib/puppet/module_tool/errors/shared.rb +20 -15
- data/lib/puppet/module_tool/errors/uninstaller.rb +1 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
- data/lib/puppet/module_tool/installed_modules.rb +3 -3
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +3 -5
- data/lib/puppet/module_tool/shared_behaviors.rb +2 -2
- data/lib/puppet/module_tool/tar/mini.rb +57 -4
- data/lib/puppet/module_tool.rb +2 -5
- data/lib/puppet/network/auth_config_parser.rb +18 -13
- data/lib/puppet/network/authconfig.rb +1 -14
- data/lib/puppet/network/authstore.rb +3 -3
- data/lib/puppet/network/client_request.rb +1 -1
- data/lib/puppet/network/format.rb +3 -3
- data/lib/puppet/network/format_support.rb +14 -9
- data/lib/puppet/network/formats.rb +98 -9
- data/lib/puppet/network/http/api/indirected_routes.rb +11 -3
- data/lib/puppet/network/http/api/indirection_type.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +7 -4
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
- data/lib/puppet/network/http/api.rb +1 -10
- data/lib/puppet/network/http/compression.rb +1 -1
- data/lib/puppet/network/http/connection.rb +105 -25
- data/lib/puppet/network/http/error.rb +10 -10
- data/lib/puppet/network/http/factory.rb +8 -0
- data/lib/puppet/network/http/handler.rb +59 -27
- data/lib/puppet/network/http.rb +0 -2
- data/lib/puppet/network/resolver.rb +139 -67
- data/lib/puppet/network/rights.rb +1 -1
- data/lib/puppet/node/environment.rb +23 -20
- data/lib/puppet/node/facts.rb +20 -1
- data/lib/puppet/node.rb +80 -8
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +9 -9
- data/lib/puppet/parameter.rb +15 -10
- data/lib/puppet/parser/abstract_compiler.rb +36 -0
- data/lib/puppet/parser/ast/branch.rb +4 -4
- data/lib/puppet/parser/ast/leaf.rb +7 -2
- data/lib/puppet/parser/ast/node.rb +2 -2
- data/lib/puppet/parser/ast/pops_bridge.rb +26 -52
- data/lib/puppet/parser/ast.rb +4 -8
- data/lib/puppet/parser/catalog_compiler.rb +32 -0
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +9 -2
- data/lib/puppet/parser/compiler.rb +29 -61
- data/lib/puppet/parser/functions/assert_type.rb +4 -4
- data/lib/puppet/parser/functions/binary_file.rb +1 -1
- data/lib/puppet/parser/functions/break.rb +1 -1
- data/lib/puppet/parser/functions/create_resources.rb +7 -7
- data/lib/puppet/parser/functions/defined.rb +1 -1
- data/lib/puppet/parser/functions/dig.rb +12 -3
- data/lib/puppet/parser/functions/each.rb +3 -3
- data/lib/puppet/parser/functions/epp.rb +4 -1
- data/lib/puppet/parser/functions/filter.rb +3 -3
- data/lib/puppet/parser/functions/find_file.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +16 -1
- data/lib/puppet/parser/functions/generate.rb +3 -5
- data/lib/puppet/parser/functions/hiera.rb +4 -4
- data/lib/puppet/parser/functions/hiera_array.rb +5 -5
- data/lib/puppet/parser/functions/hiera_hash.rb +6 -6
- data/lib/puppet/parser/functions/hiera_include.rb +10 -11
- data/lib/puppet/parser/functions/inline_epp.rb +1 -1
- data/lib/puppet/parser/functions/inline_template.rb +8 -3
- data/lib/puppet/parser/functions/lest.rb +2 -2
- data/lib/puppet/parser/functions/lookup.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +2 -2
- data/lib/puppet/parser/functions/match.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +106 -54
- data/lib/puppet/parser/functions/next.rb +1 -1
- data/lib/puppet/parser/functions/realize.rb +6 -0
- data/lib/puppet/parser/functions/reduce.rb +33 -2
- data/lib/puppet/parser/functions/return.rb +23 -2
- data/lib/puppet/parser/functions/reverse_each.rb +3 -3
- data/lib/puppet/parser/functions/scanf.rb +1 -1
- data/lib/puppet/parser/functions/sha256.rb +5 -0
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/functions/sprintf.rb +28 -3
- data/lib/puppet/parser/functions/step.rb +2 -2
- data/lib/puppet/parser/functions/strftime.rb +1 -1
- data/lib/puppet/parser/functions/tag.rb +6 -0
- data/lib/puppet/parser/functions/tagged.rb +6 -3
- data/lib/puppet/parser/functions/template.rb +11 -2
- data/lib/puppet/parser/functions/then.rb +2 -2
- data/lib/puppet/parser/functions/type.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +5 -5
- data/lib/puppet/parser/functions.rb +40 -7
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/relationship.rb +2 -2
- data/lib/puppet/parser/resource/param.rb +12 -5
- data/lib/puppet/parser/resource.rb +39 -12
- data/lib/puppet/parser/scope.rb +55 -24
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +4 -3
- data/lib/puppet/parser/type_loader.rb +12 -12
- data/lib/puppet/parser.rb +1 -0
- data/lib/puppet/pops/adapters.rb +14 -0
- data/lib/puppet/pops/evaluator/access_operator.rb +49 -8
- data/lib/puppet/pops/evaluator/closure.rb +12 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -3
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +7 -5
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +127 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +36 -10
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +61 -17
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -1
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +29 -8
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +4 -4
- data/lib/puppet/pops/evaluator/runtime3_support.rb +17 -20
- data/lib/puppet/pops/functions/dispatch.rb +13 -6
- data/lib/puppet/pops/functions/function.rb +10 -4
- data/lib/puppet/pops/issue_reporter.rb +25 -3
- data/lib/puppet/pops/issues.rb +82 -15
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/loader/base_loader.rb +10 -0
- data/lib/puppet/pops/loader/dependency_loader.rb +7 -0
- data/lib/puppet/pops/loader/loader.rb +22 -3
- data/lib/puppet/pops/loader/loader_paths.rb +183 -31
- data/lib/puppet/pops/loader/module_loaders.rb +239 -41
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +84 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +10 -10
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +54 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +6 -1
- data/lib/puppet/pops/loader/static_loader.rb +23 -45
- data/lib/puppet/pops/loader/task_instantiator.rb +97 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -1
- data/lib/puppet/pops/loaders.rb +158 -45
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -1
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +4 -4
- data/lib/puppet/pops/lookup/interpolation.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +61 -12
- data/lib/puppet/pops/merge_strategy.rb +7 -4
- data/lib/puppet/pops/migration/migration_checker.rb +8 -8
- data/lib/puppet/pops/model/ast.pp +19 -0
- data/lib/puppet/pops/model/ast.rb +567 -436
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +232 -147
- data/lib/puppet/pops/model/model_label_provider.rb +9 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +17 -2
- data/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/lib/puppet/pops/model/tree_dumper.rb +1 -1
- data/lib/puppet/pops/parser/code_merger.rb +2 -2
- data/lib/puppet/pops/parser/egrammar.ra +85 -24
- data/lib/puppet/pops/parser/eparser.rb +1791 -1578
- data/lib/puppet/pops/parser/epp_parser.rb +1 -1
- data/lib/puppet/pops/parser/epp_support.rb +7 -5
- data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
- data/lib/puppet/pops/parser/heredoc_support.rb +2 -2
- data/lib/puppet/pops/parser/interpolation_support.rb +2 -2
- data/lib/puppet/pops/parser/lexer2.rb +5 -5
- data/lib/puppet/pops/parser/lexer_support.rb +5 -4
- data/lib/puppet/pops/parser/locatable.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +7 -15
- data/lib/puppet/pops/parser/parser_support.rb +3 -3
- data/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/lib/puppet/pops/parser/slurp_support.rb +0 -3
- data/lib/puppet/pops/patterns.rb +2 -1
- data/lib/puppet/pops/pcore.rb +67 -12
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/puppet_stack.rb +15 -1
- data/lib/puppet/pops/resource/param.rb +2 -2
- data/lib/puppet/pops/resource/resource_type_impl.rb +4 -4
- data/lib/puppet/pops/serialization/abstract_reader.rb +4 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +8 -1
- data/lib/puppet/pops/serialization/extension.rb +1 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +69 -26
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/serialization/json_path.rb +3 -2
- data/lib/puppet/pops/serialization/object.rb +3 -4
- data/lib/puppet/pops/serialization/serializer.rb +2 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +27 -14
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
- data/lib/puppet/pops/serialization.rb +3 -2
- data/lib/puppet/pops/time/timespan.rb +1 -1
- data/lib/puppet/pops/time/timestamp.rb +31 -19
- data/lib/puppet/pops/types/annotatable.rb +2 -2
- data/lib/puppet/pops/types/annotation.rb +8 -8
- data/lib/puppet/pops/types/class_loader.rb +9 -6
- data/lib/puppet/pops/types/implementation_registry.rb +29 -36
- data/lib/puppet/pops/types/iterable.rb +42 -11
- data/lib/puppet/pops/types/p_binary_type.rb +12 -6
- data/lib/puppet/pops/types/p_init_type.rb +238 -0
- data/lib/puppet/pops/types/p_meta_type.rb +18 -11
- data/lib/puppet/pops/types/p_object_type.rb +240 -48
- data/lib/puppet/pops/types/p_object_type_extension.rb +218 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +5 -6
- data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -4
- data/lib/puppet/pops/types/p_sensitive_type.rb +2 -2
- data/lib/puppet/pops/types/p_timespan_type.rb +9 -9
- data/lib/puppet/pops/types/p_timestamp_type.rb +7 -3
- data/lib/puppet/pops/types/p_type_set_type.rb +33 -10
- data/lib/puppet/pops/types/p_uri_type.rb +190 -0
- data/lib/puppet/pops/types/puppet_object.rb +16 -2
- data/lib/puppet/pops/types/ruby_generator.rb +111 -78
- data/lib/puppet/pops/types/ruby_method.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +38 -14
- data/lib/puppet/pops/types/tree_iterators.rb +254 -0
- data/lib/puppet/pops/types/type_acceptor.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +31 -20
- data/lib/puppet/pops/types/type_factory.rb +82 -17
- data/lib/puppet/pops/types/type_formatter.rb +77 -9
- data/lib/puppet/pops/types/type_mismatch_describer.rb +106 -137
- data/lib/puppet/pops/types/type_parser.rb +130 -24
- data/lib/puppet/pops/types/type_set_reference.rb +2 -2
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +456 -219
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +145 -8
- data/lib/puppet/pops/validation/tasks_checker.rb +101 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -8
- data/lib/puppet/pops/validation.rb +14 -12
- data/lib/puppet/pops.rb +2 -1
- data/lib/puppet/property/ensure.rb +2 -2
- data/lib/puppet/property/keyvalue.rb +70 -8
- data/lib/puppet/property.rb +15 -7
- data/lib/puppet/provider/aix_object.rb +483 -0
- data/lib/puppet/provider/exec.rb +0 -2
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/group/aix.rb +51 -110
- data/lib/puppet/provider/group/groupadd.rb +27 -1
- data/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/lib/puppet/provider/ldap.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +7 -6
- data/lib/puppet/provider/nameservice/objectadd.rb +13 -24
- data/lib/puppet/provider/nameservice/pw.rb +14 -14
- data/lib/puppet/provider/nameservice.rb +20 -10
- data/lib/puppet/provider/package/aix.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/dnf.rb +2 -1
- data/lib/puppet/provider/package/gem.rb +13 -12
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +7 -8
- data/lib/puppet/provider/package/opkg.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +4 -4
- data/lib/puppet/provider/package/pip.rb +15 -6
- data/lib/puppet/provider/package/pkg.rb +12 -6
- data/lib/puppet/provider/package/pkgdmg.rb +3 -4
- data/lib/puppet/provider/package/pkgutil.rb +5 -5
- data/lib/puppet/provider/package/portage.rb +9 -10
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +34 -10
- data/lib/puppet/provider/package/zypper.rb +5 -5
- data/lib/puppet/provider/parsedfile.rb +4 -4
- data/lib/puppet/provider/service/base.rb +23 -10
- data/lib/puppet/provider/service/debian.rb +1 -0
- data/lib/puppet/provider/service/init.rb +2 -1
- data/lib/puppet/provider/service/launchd.rb +7 -8
- data/lib/puppet/provider/service/redhat.rb +3 -2
- data/lib/puppet/provider/service/runit.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +5 -3
- data/lib/puppet/provider/service/systemd.rb +6 -3
- data/lib/puppet/provider/service/upstart.rb +11 -1
- data/lib/puppet/provider/service/windows.rb +37 -40
- data/lib/puppet/provider/user/aix.rb +143 -247
- data/lib/puppet/provider/user/openbsd.rb +3 -2
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +7 -1
- data/lib/puppet/provider/user/useradd.rb +40 -6
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +34 -13
- data/lib/puppet/reference/configuration.rb +12 -2
- data/lib/puppet/reference/providers.rb +1 -1
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/reference/type.rb +11 -12
- data/lib/puppet/relationship.rb +2 -1
- data/lib/puppet/reports/http.rb +4 -2
- data/lib/puppet/reports/store.rb +1 -1
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/capability_finder.rb +49 -27
- data/lib/puppet/resource/catalog.rb +42 -34
- data/lib/puppet/resource/status.rb +11 -3
- data/lib/puppet/resource/type.rb +16 -12
- data/lib/puppet/resource/type_collection.rb +2 -2
- data/lib/puppet/resource.rb +30 -12
- data/lib/puppet/rest/client.rb +83 -0
- data/lib/puppet/rest/errors.rb +14 -0
- data/lib/puppet/rest/response.rb +34 -0
- data/lib/puppet/rest/route.rb +84 -0
- data/lib/puppet/rest/routes.rb +154 -0
- data/lib/puppet/rest/ssl_context.rb +13 -0
- data/lib/puppet/settings/base_setting.rb +29 -9
- data/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
- data/lib/puppet/settings/config_file.rb +16 -7
- data/lib/puppet/settings/environment_conf.rb +29 -11
- data/lib/puppet/settings/file_setting.rb +1 -1
- data/lib/puppet/settings/ini_file.rb +66 -12
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/settings.rb +68 -38
- data/lib/puppet/ssl/base.rb +10 -13
- data/lib/puppet/ssl/certificate.rb +6 -2
- data/lib/puppet/ssl/certificate_request.rb +19 -21
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/certificate_signer.rb +11 -0
- data/lib/puppet/ssl/host.rb +413 -174
- data/lib/puppet/ssl/key.rb +1 -5
- data/lib/puppet/ssl/oids.rb +10 -4
- data/lib/puppet/ssl/validator/default_validator.rb +33 -19
- data/lib/puppet/ssl.rb +0 -1
- data/lib/puppet/syntax_checkers/base64.rb +6 -7
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/test/test_helper.rb +2 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/lib/puppet/transaction/event.rb +38 -15
- data/lib/puppet/transaction/event_manager.rb +3 -1
- data/lib/puppet/transaction/persistence.rb +17 -2
- data/lib/puppet/transaction/report.rb +33 -16
- data/lib/puppet/transaction.rb +43 -16
- data/lib/puppet/type/exec.rb +23 -20
- data/lib/puppet/type/file/checksum.rb +7 -1
- data/lib/puppet/type/file/checksum_value.rb +4 -3
- data/lib/puppet/type/file/content.rb +17 -5
- data/lib/puppet/type/file/data_sync.rb +2 -1
- data/lib/puppet/type/file/ensure.rb +1 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/source.rb +21 -8
- data/lib/puppet/type/file.rb +36 -25
- data/lib/puppet/type/group.rb +7 -6
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +5 -8
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/schedule.rb +73 -112
- data/lib/puppet/type/service.rb +3 -6
- data/lib/puppet/type/stage.rb +1 -1
- data/lib/puppet/type/tidy.rb +21 -8
- data/lib/puppet/type/user.rb +98 -50
- data/lib/puppet/type.rb +76 -67
- data/lib/puppet/util/at_fork/solaris.rb +6 -4
- data/lib/puppet/util/autoload.rb +62 -54
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/character_encoding.rb +2 -24
- data/lib/puppet/util/checksums.rb +82 -3
- data/lib/puppet/util/classgen.rb +0 -6
- data/lib/puppet/util/command_line/trollop.rb +6 -5
- data/lib/puppet/util/command_line.rb +5 -1
- data/lib/puppet/util/connection.rb +74 -0
- data/lib/puppet/util/errors.rb +59 -8
- data/lib/puppet/util/execution.rb +70 -17
- data/lib/puppet/util/feature.rb +63 -41
- data/lib/puppet/util/fileparsing.rb +30 -10
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +18 -8
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/instance_loader.rb +4 -24
- data/lib/puppet/util/json.rb +69 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/ldap/connection.rb +7 -7
- data/lib/puppet/util/ldap/manager.rb +6 -3
- data/lib/puppet/util/log/destinations.rb +13 -4
- data/lib/puppet/util/log.rb +30 -33
- data/lib/puppet/util/logging.rb +26 -29
- data/lib/puppet/util/monkey_patches.rb +1 -1
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +22 -15
- data/lib/puppet/util/platform.rb +16 -0
- data/lib/puppet/util/plist.rb +7 -5
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -6
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +3 -3
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +8 -15
- data/lib/puppet/util/rubygems.rb +1 -13
- data/lib/puppet/util/run_mode.rb +1 -1
- data/lib/puppet/util/selinux.rb +1 -1
- data/lib/puppet/util/ssl.rb +40 -1
- data/lib/puppet/util/storage.rb +3 -3
- data/lib/puppet/util/suidmanager.rb +8 -5
- data/lib/puppet/util/tag_set.rb +1 -1
- data/lib/puppet/util/tagging.rb +18 -5
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +160 -214
- data/lib/puppet/util/windows/api_types.rb +9 -5
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/eventlog.rb +10 -5
- data/lib/puppet/util/windows/file.rb +113 -12
- data/lib/puppet/util/windows/principal.rb +7 -6
- data/lib/puppet/util/windows/process.rb +10 -2
- data/lib/puppet/util/windows/registry.rb +2 -2
- data/lib/puppet/util/windows/security.rb +26 -14
- data/lib/puppet/util/windows/service.rb +770 -0
- data/lib/puppet/util/windows/sid.rb +60 -9
- data/lib/puppet/util/windows.rb +19 -2
- data/lib/puppet/util/yaml.rb +41 -5
- data/lib/puppet/util.rb +50 -50
- data/lib/puppet/vendor/deep_merge/README.md +2 -2
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +18 -18
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +12 -68
- data/lib/puppet_pal.rb +1102 -0
- data/locales/en/puppet.po +19 -0
- data/locales/ja/puppet.po +11128 -0
- data/locales/puppet.pot +3723 -2251
- data/man/man5/puppet.conf.5 +342 -187
- data/man/man8/puppet-agent.8 +36 -10
- data/man/man8/puppet-apply.8 +21 -6
- data/man/man8/puppet-catalog.8 +12 -15
- data/man/man8/puppet-config.8 +40 -6
- data/man/man8/puppet-describe.8 +3 -3
- data/man/man8/puppet-device.8 +48 -14
- data/man/man8/puppet-doc.8 +5 -5
- data/man/man8/puppet-epp.8 +49 -21
- data/man/man8/puppet-facts.8 +58 -9
- data/man/man8/puppet-filebucket.8 +76 -10
- data/man/man8/puppet-generate.8 +84 -0
- data/man/man8/puppet-help.8 +4 -4
- data/man/man8/puppet-key.8 +11 -17
- data/man/man8/puppet-lookup.8 +104 -0
- data/man/man8/puppet-man.8 +13 -7
- data/man/man8/puppet-module.8 +29 -98
- data/man/man8/puppet-node.8 +12 -15
- data/man/man8/puppet-parser.8 +34 -11
- data/man/man8/puppet-plugin.8 +4 -4
- data/man/man8/puppet-report.8 +9 -9
- data/man/man8/puppet-resource.8 +4 -8
- data/man/man8/puppet-script.8 +67 -0
- data/man/man8/puppet-ssl.8 +28 -0
- data/man/man8/puppet-status.8 +9 -9
- data/man/man8/puppet.8 +21 -3
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +2 -0
- data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +22 -0
- data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +18 -0
- data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +7 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
- data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +1 -0
- data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +1 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -1
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +36 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +1 -0
- data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +3 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +32 -0
- data/spec/integration/agent/logging_spec.rb +4 -2
- data/spec/integration/application/apply_spec.rb +33 -26
- data/spec/integration/application/lookup_spec.rb +21 -0
- data/spec/integration/configurer_spec.rb +2 -5
- data/spec/integration/data_binding_spec.rb +1 -0
- data/spec/integration/defaults_spec.rb +5 -10
- data/spec/integration/faces/config_spec.rb +16 -4
- data/spec/integration/faces/plugin_spec.rb +3 -0
- data/spec/integration/file_bucket/file_spec.rb +20 -22
- data/spec/integration/file_system/uniquefile_spec.rb +26 -29
- data/spec/integration/indirector/facts/facter_spec.rb +4 -14
- data/spec/integration/indirector/file_content/file_server_spec.rb +17 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +10 -0
- data/spec/integration/network/authconfig_spec.rb +2 -2
- data/spec/integration/network/http/api/indirected_routes_spec.rb +9 -38
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/node_spec.rb +0 -4
- data/spec/integration/parser/catalog_spec.rb +10 -6
- data/spec/integration/parser/collection_spec.rb +42 -3
- data/spec/integration/parser/compiler_spec.rb +43 -24
- data/spec/integration/parser/pcore_resource_spec.rb +3 -3
- data/spec/integration/parser/scope_spec.rb +18 -5
- data/spec/integration/parser/script_compiler_spec.rb +113 -0
- data/spec/integration/provider/service/init_spec.rb +4 -2
- data/spec/integration/provider/service/systemd_spec.rb +8 -4
- data/spec/integration/provider/service/windows_spec.rb +5 -3
- data/spec/integration/reference/providers_spec.rb +6 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -2
- data/spec/integration/ssl/host_spec.rb +16 -24
- data/spec/integration/ssl/key_spec.rb +3 -3
- data/spec/integration/test/test_helper_spec.rb +32 -32
- data/spec/integration/transaction/report_spec.rb +11 -6
- data/spec/integration/type/exec_spec.rb +1 -1
- data/spec/integration/type/file_spec.rb +72 -18
- data/spec/integration/type/package_spec.rb +1 -1
- data/spec/integration/type_spec.rb +1 -2
- data/spec/integration/util/autoload_spec.rb +9 -6
- data/spec/integration/util/execution_spec.rb +13 -5
- data/spec/integration/util/rdoc/parser_spec.rb +13 -23
- data/spec/integration/util/settings_spec.rb +2 -1
- data/spec/integration/util/windows/adsi_spec.rb +89 -4
- data/spec/integration/util/windows/principal_spec.rb +12 -3
- data/spec/integration/util/windows/process_spec.rb +48 -3
- data/spec/integration/util/windows/registry_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +98 -8
- data/spec/integration/util/windows/user_spec.rb +1 -1
- data/spec/integration/util_spec.rb +3 -3
- data/spec/lib/matchers/json.rb +27 -32
- data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +5 -6
- data/spec/lib/puppet/test_ca.rb +109 -0
- data/spec/lib/puppet_spec/compiler.rb +27 -0
- data/spec/lib/puppet_spec/files.rb +28 -23
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/lib/puppet_spec/modules.rb +20 -0
- data/spec/lib/puppet_spec/ssl.rb +265 -0
- data/spec/lib/puppet_spec/validators.rb +37 -0
- data/spec/shared_behaviours/file_server_terminus.rb +0 -2
- data/spec/shared_behaviours/file_serving_model.rb +0 -19
- data/spec/shared_behaviours/path_parameters.rb +1 -1
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/shared_contexts/checksum.rb +4 -1
- data/spec/shared_contexts/digests.rb +46 -1
- data/spec/shared_contexts/types_setup.rb +66 -7
- data/spec/shared_examples/rhel_package_provider.rb +2 -2
- data/spec/spec_helper.rb +7 -14
- data/spec/unit/agent_spec.rb +48 -4
- data/spec/unit/application/agent_spec.rb +5 -20
- data/spec/unit/application/apply_spec.rb +4 -12
- data/spec/unit/application/config_spec.rb +4 -0
- data/spec/unit/application/device_spec.rb +141 -10
- data/spec/unit/application/face_base_spec.rb +2 -2
- data/spec/unit/application/filebucket_spec.rb +18 -4
- data/spec/unit/application/lookup_spec.rb +46 -9
- data/spec/unit/application/ssl_spec.rb +322 -0
- data/spec/unit/application_spec.rb +46 -4
- data/spec/unit/capability_spec.rb +11 -9
- data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +9 -18
- data/spec/unit/configurer/downloader_spec.rb +6 -1
- data/spec/unit/configurer/plugin_handler_spec.rb +46 -18
- data/spec/unit/configurer_spec.rb +90 -33
- data/spec/unit/confine_spec.rb +16 -0
- data/spec/unit/context/trusted_information_spec.rb +3 -2
- data/spec/unit/daemon_spec.rb +3 -2
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
- data/spec/unit/datatypes_spec.rb +353 -0
- data/spec/unit/defaults_spec.rb +108 -6
- data/spec/unit/environments_spec.rb +62 -0
- data/spec/unit/etc_spec.rb +1 -1
- data/spec/unit/face/config_spec.rb +185 -21
- data/spec/unit/face/epp_face_spec.rb +70 -6
- data/spec/unit/face/facts_spec.rb +53 -0
- data/spec/unit/face/help_spec.rb +64 -70
- data/spec/unit/face/man_spec.rb +26 -0
- data/spec/unit/face/module/list_spec.rb +0 -61
- data/spec/unit/face/module/search_spec.rb +12 -1
- data/spec/unit/face/node_spec.rb +9 -32
- data/spec/unit/face/parser_spec.rb +80 -2
- data/spec/unit/face/plugin_spec.rb +50 -4
- data/spec/unit/file_bucket/dipper_spec.rb +29 -13
- data/spec/unit/file_serving/base_spec.rb +6 -9
- data/spec/unit/file_serving/configuration/parser_spec.rb +2 -2
- data/spec/unit/file_serving/configuration_spec.rb +14 -4
- data/spec/unit/file_serving/content_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +4 -5
- data/spec/unit/file_serving/mount/locales_spec.rb +73 -0
- data/spec/unit/file_serving/mount/modules_spec.rb +1 -1
- data/spec/unit/file_serving/mount/tasks_spec.rb +72 -0
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
- data/spec/unit/file_system/path_pattern_spec.rb +1 -1
- data/spec/unit/file_system/uniquefile_spec.rb +2 -2
- data/spec/unit/file_system_spec.rb +7 -4
- data/spec/unit/forge/forge_spec.rb +2 -2
- data/spec/unit/forge/module_release_spec.rb +70 -0
- data/spec/unit/forge_spec.rb +106 -2
- data/spec/unit/functions/abs_spec.rb +70 -0
- data/spec/unit/functions/all_spec.rb +97 -0
- data/spec/unit/functions/any_spec.rb +109 -0
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/break_spec.rb +144 -54
- data/spec/unit/functions/call_spec.rb +59 -5
- data/spec/unit/functions/camelcase_spec.rb +34 -0
- data/spec/unit/functions/capitalize_spec.rb +34 -0
- data/spec/unit/functions/ceiling_spec.rb +65 -0
- data/spec/unit/functions/chomp_spec.rb +46 -0
- data/spec/unit/functions/chop_spec.rb +38 -0
- data/spec/unit/functions/compare_spec.rb +147 -0
- data/spec/unit/functions/contain_spec.rb +1 -0
- data/spec/unit/functions/convert_to_spec.rb +25 -0
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/downcase_spec.rb +34 -0
- data/spec/unit/functions/empty_spec.rb +77 -0
- data/spec/unit/functions/epp_spec.rb +21 -3
- data/spec/unit/functions/filter_spec.rb +4 -4
- data/spec/unit/functions/flatten_spec.rb +31 -0
- data/spec/unit/functions/floor_spec.rb +65 -0
- data/spec/unit/functions/get_spec.rb +135 -0
- data/spec/unit/functions/getvar_spec.rb +121 -0
- data/spec/unit/functions/hiera_spec.rb +19 -49
- data/spec/unit/functions/include_spec.rb +16 -1
- data/spec/unit/functions/inline_epp_spec.rb +1 -1
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
- data/spec/unit/functions/lookup_spec.rb +198 -80
- data/spec/unit/functions/lstrip_spec.rb +30 -0
- data/spec/unit/functions/match_spec.rb +21 -4
- data/spec/unit/functions/max_spec.rb +129 -0
- data/spec/unit/functions/min_spec.rb +129 -0
- data/spec/unit/functions/module_directory_spec.rb +43 -0
- data/spec/unit/functions/new_spec.rb +81 -14
- data/spec/unit/functions/next_spec.rb +1 -1
- data/spec/unit/functions/regsubst_spec.rb +4 -5
- data/spec/unit/functions/require_spec.rb +2 -0
- data/spec/unit/functions/return_spec.rb +2 -2
- data/spec/unit/functions/round_spec.rb +41 -0
- data/spec/unit/functions/rstrip_spec.rb +30 -0
- data/spec/unit/functions/shared.rb +12 -0
- data/spec/unit/functions/size_spec.rb +50 -0
- data/spec/unit/functions/sort_spec.rb +79 -0
- data/spec/unit/functions/split_spec.rb +3 -4
- data/spec/unit/functions/step_spec.rb +1 -1
- data/spec/unit/functions/strftime_spec.rb +2 -2
- data/spec/unit/functions/strip_spec.rb +30 -0
- data/spec/unit/functions/tree_each_spec.rb +493 -0
- data/spec/unit/functions/upcase_spec.rb +34 -0
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +3 -4
- data/spec/unit/functions4_spec.rb +146 -76
- data/spec/unit/gettext/config_spec.rb +144 -0
- data/spec/unit/gettext/module_loading_spec.rb +53 -0
- data/spec/unit/graph/relationship_graph_spec.rb +15 -0
- data/spec/unit/graph/simple_graph_spec.rb +43 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +3 -18
- data/spec/unit/indirector/certificate/file_spec.rb +0 -8
- data/spec/unit/indirector/direct_file_server_spec.rb +44 -46
- data/spec/unit/indirector/exec_spec.rb +29 -23
- data/spec/unit/indirector/facts/rest_spec.rb +45 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +95 -78
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +156 -99
- data/spec/unit/indirector/file_server_spec.rb +122 -116
- data/spec/unit/indirector/indirection_spec.rb +25 -10
- data/spec/unit/indirector/json_spec.rb +0 -11
- data/spec/unit/indirector/key/file_spec.rb +0 -17
- data/spec/unit/indirector/node/exec_spec.rb +43 -22
- data/spec/unit/indirector/request_spec.rb +47 -6
- data/spec/unit/indirector/resource/ral_spec.rb +1 -0
- data/spec/unit/indirector/rest_spec.rb +45 -2
- data/spec/unit/indirector/ssl_file_spec.rb +37 -59
- data/spec/unit/indirector/terminus_spec.rb +3 -3
- data/spec/unit/indirector/yaml_spec.rb +87 -64
- data/spec/unit/indirector_spec.rb +0 -1
- data/spec/unit/info_service_spec.rb +203 -3
- data/spec/unit/interface/action_manager_spec.rb +1 -1
- data/spec/unit/interface/action_spec.rb +34 -1
- data/spec/unit/interface_spec.rb +12 -0
- data/spec/unit/module_spec.rb +89 -4
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -2
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +8 -0
- data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
- data/spec/unit/module_tool/applications/upgrader_spec.rb +7 -1
- data/spec/unit/module_tool/tar/mini_spec.rb +34 -5
- data/spec/unit/network/formats_spec.rb +31 -13
- data/spec/unit/network/http/api/indirected_routes_spec.rb +9 -5
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +5 -7
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -1
- data/spec/unit/network/http/api_spec.rb +0 -26
- data/spec/unit/network/http/compression_spec.rb +6 -3
- data/spec/unit/network/http/connection_spec.rb +99 -47
- data/spec/unit/network/http/factory_spec.rb +32 -11
- data/spec/unit/network/http/handler_spec.rb +3 -2
- data/spec/unit/network/resolver_spec.rb +87 -12
- data/spec/unit/node/environment_spec.rb +38 -6
- data/spec/unit/node/facts_spec.rb +14 -1
- data/spec/unit/node_spec.rb +121 -23
- data/spec/unit/other/selinux_spec.rb +0 -71
- data/spec/unit/parser/ast/leaf_spec.rb +3 -4
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/environment_compiler_spec.rb +55 -17
- data/spec/unit/parser/functions/create_resources_spec.rb +10 -1
- data/spec/unit/parser/functions/digest_spec.rb +1 -5
- data/spec/unit/parser/functions/fail_spec.rb +1 -5
- data/spec/unit/parser/functions/file_spec.rb +0 -4
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
- data/spec/unit/parser/functions/generate_spec.rb +29 -31
- data/spec/unit/parser/functions/inline_template_spec.rb +7 -4
- data/spec/unit/parser/functions/realize_spec.rb +9 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -4
- data/spec/unit/parser/functions/scanf_spec.rb +0 -4
- data/spec/unit/parser/functions/split_spec.rb +0 -4
- data/spec/unit/parser/functions/sprintf_spec.rb +26 -4
- data/spec/unit/parser/functions/tag_spec.rb +7 -4
- data/spec/unit/parser/functions/tagged_spec.rb +37 -0
- data/spec/unit/parser/functions/template_spec.rb +8 -4
- data/spec/unit/parser/functions/versioncmp_spec.rb +0 -4
- data/spec/unit/parser/functions_spec.rb +27 -2
- data/spec/unit/parser/resource/param_spec.rb +2 -2
- data/spec/unit/parser/resource_spec.rb +0 -1
- data/spec/unit/parser/scope_spec.rb +23 -4
- data/spec/unit/parser/type_loader_spec.rb +1 -1
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +5 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +10 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +78 -16
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +4 -8
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +10 -6
- data/spec/unit/pops/issues_spec.rb +23 -8
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
- data/spec/unit/pops/loaders/loader_spec.rb +495 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +64 -19
- data/spec/unit/pops/loaders/module_loaders_spec.rb +75 -0
- data/spec/unit/pops/loaders/static_loader_spec.rb +16 -44
- data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
- data/spec/unit/pops/model/model_spec.rb +5 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +119 -26
- data/spec/unit/pops/parser/locator_spec.rb +20 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +67 -4
- data/spec/unit/pops/parser/parse_calls_spec.rb +28 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +48 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
- data/spec/unit/pops/parser/parser_spec.rb +138 -0
- data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
- data/spec/unit/pops/pn_spec.rb +148 -0
- data/spec/unit/pops/puppet_stack_spec.rb +38 -9
- data/spec/unit/pops/serialization/packer_spec.rb +8 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +38 -6
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +134 -5
- data/spec/unit/pops/serialization/to_stringified_spec.rb +157 -0
- data/spec/unit/pops/types/deferred_spec.rb +87 -0
- data/spec/unit/pops/types/error_spec.rb +207 -0
- data/spec/unit/pops/types/iterable_spec.rb +10 -10
- data/spec/unit/pops/types/p_init_type_spec.rb +383 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +531 -54
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +4 -0
- data/spec/unit/pops/types/p_timespan_type_spec.rb +32 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +64 -3
- data/spec/unit/pops/types/p_type_set_type_spec.rb +108 -4
- data/spec/unit/pops/types/p_uri_type_spec.rb +191 -0
- data/spec/unit/pops/types/ruby_generator_spec.rb +285 -73
- data/spec/unit/pops/types/string_converter_spec.rb +63 -17
- data/spec/unit/pops/types/task_spec.rb +485 -0
- data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +224 -63
- data/spec/unit/pops/types/type_factory_spec.rb +6 -6
- data/spec/unit/pops/types/type_formatter_spec.rb +37 -19
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +21 -0
- data/spec/unit/pops/types/type_parser_spec.rb +39 -2
- data/spec/unit/pops/types/types_spec.rb +88 -10
- data/spec/unit/pops/validator/validator_spec.rb +435 -7
- data/spec/unit/property/keyvalue_spec.rb +97 -6
- data/spec/unit/property_spec.rb +14 -5
- data/spec/unit/provider/aix_object_spec.rb +805 -0
- data/spec/unit/provider/exec/posix_spec.rb +8 -8
- data/spec/unit/provider/exec/shell_spec.rb +2 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -2
- data/spec/unit/provider/file/windows_spec.rb +2 -2
- data/spec/unit/provider/group/aix_spec.rb +76 -0
- data/spec/unit/provider/group/groupadd_spec.rb +77 -1
- data/spec/unit/provider/group/pw_spec.rb +4 -4
- data/spec/unit/provider/group/windows_adsi_spec.rb +80 -23
- data/spec/unit/provider/ldap_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +11 -11
- data/spec/unit/provider/package/aix_spec.rb +26 -1
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +9 -2
- data/spec/unit/provider/package/dpkg_spec.rb +2 -2
- data/spec/unit/provider/package/gem_spec.rb +17 -7
- data/spec/unit/provider/package/nim_spec.rb +2 -11
- data/spec/unit/provider/package/opkg_spec.rb +2 -2
- data/spec/unit/provider/package/pip_spec.rb +38 -41
- data/spec/unit/provider/package/pkg_spec.rb +64 -24
- data/spec/unit/provider/package/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/puppet_gem_spec.rb +2 -2
- data/spec/unit/provider/package/rpm_spec.rb +33 -14
- data/spec/unit/provider/package/urpmi_spec.rb +9 -3
- data/spec/unit/provider/package/windows/msi_package_spec.rb +1 -1
- data/spec/unit/provider/package/windows/package_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +3 -3
- data/spec/unit/provider/package/yum_spec.rb +69 -0
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/service/base_spec.rb +23 -5
- data/spec/unit/provider/service/bsd_spec.rb +17 -16
- data/spec/unit/provider/service/daemontools_spec.rb +2 -3
- data/spec/unit/provider/service/debian_spec.rb +8 -4
- data/spec/unit/provider/service/freebsd_spec.rb +2 -2
- data/spec/unit/provider/service/gentoo_spec.rb +27 -26
- data/spec/unit/provider/service/init_spec.rb +17 -16
- data/spec/unit/provider/service/launchd_spec.rb +6 -3
- data/spec/unit/provider/service/openbsd_spec.rb +43 -42
- data/spec/unit/provider/service/openrc_spec.rb +35 -34
- data/spec/unit/provider/service/openwrt_spec.rb +7 -5
- data/spec/unit/provider/service/rcng_spec.rb +7 -6
- data/spec/unit/provider/service/redhat_spec.rb +11 -6
- data/spec/unit/provider/service/runit_spec.rb +2 -3
- data/spec/unit/provider/service/smf_spec.rb +7 -7
- data/spec/unit/provider/service/src_spec.rb +3 -4
- data/spec/unit/provider/service/systemd_spec.rb +73 -51
- data/spec/unit/provider/service/upstart_spec.rb +53 -14
- data/spec/unit/provider/service/windows_spec.rb +49 -86
- data/spec/unit/provider/user/aix_spec.rb +126 -121
- data/spec/unit/provider/user/hpux_spec.rb +4 -3
- data/spec/unit/provider/user/openbsd_spec.rb +2 -2
- data/spec/unit/provider/user/pw_spec.rb +14 -14
- data/spec/unit/provider/user/user_role_add_spec.rb +20 -3
- data/spec/unit/provider/user/useradd_spec.rb +194 -22
- data/spec/unit/provider/user/windows_adsi_spec.rb +5 -5
- data/spec/unit/provider_spec.rb +210 -14
- data/spec/unit/puppet_pal_2pec.rb +1020 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +801 -0
- data/spec/unit/puppet_pal_spec.rb +4 -0
- data/spec/unit/puppet_spec.rb +31 -19
- data/spec/unit/resource/capability_finder_spec.rb +16 -18
- data/spec/unit/resource/catalog_spec.rb +27 -12
- data/spec/unit/resource/status_spec.rb +17 -4
- data/spec/unit/resource/type_collection_spec.rb +4 -1
- data/spec/unit/resource/type_spec.rb +24 -9
- data/spec/unit/resource_spec.rb +46 -5
- data/spec/unit/rest/client_spec.rb +135 -0
- data/spec/unit/rest/route_spec.rb +132 -0
- data/spec/unit/settings/autosign_setting_spec.rb +2 -2
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +37 -0
- data/spec/unit/settings/config_file_spec.rb +10 -1
- data/spec/unit/settings/file_setting_spec.rb +17 -9
- data/spec/unit/settings/ini_file_spec.rb +314 -5
- data/spec/unit/settings/path_setting_spec.rb +1 -1
- data/spec/unit/settings_spec.rb +57 -7
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +21 -8
- data/spec/unit/ssl/certificate_request_spec.rb +62 -41
- data/spec/unit/ssl/certificate_spec.rb +4 -7
- data/spec/unit/ssl/host_spec.rb +248 -579
- data/spec/unit/ssl/key_spec.rb +0 -15
- data/spec/unit/ssl/validator_spec.rb +36 -167
- data/spec/unit/task_spec.rb +247 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +64 -62
- data/spec/unit/transaction/event_manager_spec.rb +12 -0
- data/spec/unit/transaction/persistence_spec.rb +43 -1
- data/spec/unit/transaction/report_spec.rb +62 -19
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +134 -16
- data/spec/unit/type/exec_spec.rb +11 -13
- data/spec/unit/type/file/checksum_spec.rb +21 -1
- data/spec/unit/type/file/content_spec.rb +13 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -1
- data/spec/unit/type/file/source_spec.rb +15 -9
- data/spec/unit/type/file_spec.rb +37 -22
- data/spec/unit/type/group_spec.rb +8 -0
- data/spec/unit/type/package_spec.rb +10 -0
- data/spec/unit/type/resources_spec.rb +26 -12
- data/spec/unit/type/schedule_spec.rb +15 -1
- data/spec/unit/type/service_spec.rb +36 -10
- data/spec/unit/type/tidy_spec.rb +17 -1
- data/spec/unit/type/user_spec.rb +24 -115
- data/spec/unit/type_spec.rb +177 -98
- data/spec/unit/util/autoload_spec.rb +71 -43
- data/spec/unit/util/character_encoding_spec.rb +0 -43
- data/spec/unit/util/checksums_spec.rb +3 -3
- data/spec/unit/util/diff_spec.rb +11 -3
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/errors_spec.rb +1 -1
- data/spec/unit/util/execution_spec.rb +229 -95
- data/spec/unit/util/execution_stub_spec.rb +2 -2
- data/spec/unit/util/feature_spec.rb +35 -17
- data/spec/unit/util/filetype_spec.rb +8 -4
- data/spec/unit/util/http_proxy_spec.rb +57 -0
- data/spec/unit/util/inifile_spec.rb +35 -4
- data/spec/unit/util/ldap/manager_spec.rb +1 -16
- data/spec/unit/util/lockfile_spec.rb +1 -1
- data/spec/unit/util/log/destinations_spec.rb +45 -15
- data/spec/unit/util/log_spec.rb +42 -12
- data/spec/unit/util/logging_spec.rb +37 -15
- data/spec/unit/util/monkey_patches_spec.rb +6 -3
- data/spec/unit/util/plist_spec.rb +12 -6
- data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
- data/spec/unit/util/rubygems_spec.rb +0 -34
- data/spec/unit/util/run_mode_spec.rb +7 -7
- data/spec/unit/util/selinux_spec.rb +3 -3
- data/spec/unit/util/storage_spec.rb +13 -1
- data/spec/unit/util/suidmanager_spec.rb +5 -5
- data/spec/unit/util/tag_set_spec.rb +8 -1
- data/spec/unit/util/tagging_spec.rb +27 -8
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +1 -1
- data/spec/unit/util/windows/adsi_spec.rb +39 -35
- data/spec/unit/util/windows/api_types_spec.rb +52 -1
- data/spec/unit/util/windows/eventlog_spec.rb +1 -1
- data/spec/unit/util/windows/security_descriptor_spec.rb +1 -1
- data/spec/unit/util/windows/service_spec.rb +424 -0
- data/spec/unit/util/windows/sid_spec.rb +88 -17
- data/spec/unit/util/windows/string_spec.rb +1 -1
- data/spec/unit/util/yaml_spec.rb +162 -28
- data/spec/unit/util_spec.rb +41 -76
- data/spec/watchr.rb +0 -1
- data/tasks/benchmark.rake +41 -0
- data/tasks/ci.rake +0 -5
- data/tasks/generate_ast_model.rake +55 -43
- data/tasks/manpages.rake +19 -3
- data/tasks/parallel.rake +12 -7
- data/tasks/parser.rake +11 -3
- metadata +3262 -3438
- data/ext/rack/config.ru +0 -44
- data/ext/rack/example-passenger-vhost.conf +0 -57
- data/lib/puppet/application/ca.rb +0 -11
- data/lib/puppet/application/certificate.rb +0 -17
- data/lib/puppet/application/certificate_request.rb +0 -7
- data/lib/puppet/application/certificate_revocation_list.rb +0 -7
- data/lib/puppet/application/master.rb +0 -313
- data/lib/puppet/bindings.rb +0 -147
- data/lib/puppet/configurer/downloader_factory.rb +0 -34
- data/lib/puppet/external/nagios/base.rb +0 -472
- data/lib/puppet/external/nagios/grammar.ry +0 -248
- data/lib/puppet/external/nagios/makefile +0 -9
- data/lib/puppet/external/nagios/parser.rb +0 -400
- data/lib/puppet/external/nagios.rb +0 -46
- data/lib/puppet/face/ca.rb +0 -266
- data/lib/puppet/face/certificate.rb +0 -165
- data/lib/puppet/face/certificate_request.rb +0 -56
- data/lib/puppet/face/certificate_revocation_list.rb +0 -56
- data/lib/puppet/feature/rack.rb +0 -19
- data/lib/puppet/graph/random_prioritizer.rb +0 -16
- data/lib/puppet/graph/title_hash_prioritizer.rb +0 -16
- data/lib/puppet/indirector/certificate/ca.rb +0 -9
- data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_request/ca.rb +0 -22
- data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +0 -8
- data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +0 -8
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +0 -10
- data/lib/puppet/indirector/certificate_status/file.rb +0 -91
- data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
- data/lib/puppet/indirector/certificate_status.rb +0 -4
- data/lib/puppet/indirector/key/ca.rb +0 -16
- data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
- data/lib/puppet/indirector/ldap.rb +0 -80
- data/lib/puppet/indirector/node/ldap.rb +0 -259
- data/lib/puppet/indirector/node/write_only_yaml.rb +0 -37
- data/lib/puppet/module_tool/applications/builder.rb +0 -148
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
- data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
- data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
- data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +0 -1
- data/lib/puppet/network/http/api/ca/v1.rb +0 -11
- data/lib/puppet/network/http/api/ca.rb +0 -2
- data/lib/puppet/network/http/rack/rest.rb +0 -162
- data/lib/puppet/network/http/rack.rb +0 -33
- data/lib/puppet/network/http/webrick/rest.rb +0 -114
- data/lib/puppet/network/http/webrick.rb +0 -125
- data/lib/puppet/network/server.rb +0 -39
- data/lib/puppet/provider/aixobject.rb +0 -392
- data/lib/puppet/provider/augeas/augeas.rb +0 -567
- data/lib/puppet/provider/cisco.rb +0 -9
- data/lib/puppet/provider/computer/computer.rb +0 -20
- data/lib/puppet/provider/cron/crontab.rb +0 -297
- data/lib/puppet/provider/host/parsed.rb +0 -46
- data/lib/puppet/provider/interface/cisco.rb +0 -27
- data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -298
- data/lib/puppet/provider/mailalias/aliases.rb +0 -50
- data/lib/puppet/provider/maillist/mailman.rb +0 -108
- data/lib/puppet/provider/mcx/mcxcontent.rb +0 -173
- data/lib/puppet/provider/mount/parsed.rb +0 -282
- data/lib/puppet/provider/mount.rb +0 -59
- data/lib/puppet/provider/naginator.rb +0 -63
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +0 -590
- data/lib/puppet/provider/selboolean/getsetsebool.rb +0 -47
- data/lib/puppet/provider/selmodule/semodule.rb +0 -138
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +0 -105
- data/lib/puppet/provider/sshkey/parsed.rb +0 -50
- data/lib/puppet/provider/vlan/cisco.rb +0 -28
- data/lib/puppet/provider/yumrepo/inifile.rb +0 -304
- data/lib/puppet/provider/zfs/zfs.rb +0 -84
- data/lib/puppet/provider/zone/solaris.rb +0 -364
- data/lib/puppet/provider/zpool/zpool.rb +0 -125
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +0 -45
- data/lib/puppet/ssl/certificate_authority/interface.rb +0 -324
- data/lib/puppet/ssl/certificate_authority.rb +0 -553
- data/lib/puppet/ssl/certificate_revocation_list.rb +0 -110
- data/lib/puppet/ssl/configuration.rb +0 -61
- data/lib/puppet/ssl/inventory.rb +0 -55
- data/lib/puppet/type/augeas.rb +0 -211
- data/lib/puppet/type/computer.rb +0 -66
- data/lib/puppet/type/cron.rb +0 -475
- data/lib/puppet/type/host.rb +0 -95
- data/lib/puppet/type/interface.rb +0 -121
- data/lib/puppet/type/k5login.rb +0 -88
- data/lib/puppet/type/macauthorization.rb +0 -167
- data/lib/puppet/type/mailalias.rb +0 -46
- data/lib/puppet/type/maillist.rb +0 -62
- data/lib/puppet/type/mcx.rb +0 -98
- data/lib/puppet/type/mount.rb +0 -310
- data/lib/puppet/type/nagios_command.rb +0 -3
- data/lib/puppet/type/nagios_contact.rb +0 -3
- data/lib/puppet/type/nagios_contactgroup.rb +0 -3
- data/lib/puppet/type/nagios_host.rb +0 -3
- data/lib/puppet/type/nagios_hostdependency.rb +0 -3
- data/lib/puppet/type/nagios_hostescalation.rb +0 -3
- data/lib/puppet/type/nagios_hostextinfo.rb +0 -3
- data/lib/puppet/type/nagios_hostgroup.rb +0 -3
- data/lib/puppet/type/nagios_service.rb +0 -3
- data/lib/puppet/type/nagios_servicedependency.rb +0 -3
- data/lib/puppet/type/nagios_serviceescalation.rb +0 -3
- data/lib/puppet/type/nagios_serviceextinfo.rb +0 -3
- data/lib/puppet/type/nagios_servicegroup.rb +0 -3
- data/lib/puppet/type/nagios_timeperiod.rb +0 -3
- data/lib/puppet/type/router.rb +0 -17
- data/lib/puppet/type/scheduled_task.rb +0 -184
- data/lib/puppet/type/selboolean.rb +0 -26
- data/lib/puppet/type/selmodule.rb +0 -59
- data/lib/puppet/type/ssh_authorized_key.rb +0 -143
- data/lib/puppet/type/sshkey.rb +0 -75
- data/lib/puppet/type/vlan.rb +0 -26
- data/lib/puppet/type/yumrepo.rb +0 -409
- data/lib/puppet/type/zfs.rb +0 -150
- data/lib/puppet/type/zone.rb +0 -382
- data/lib/puppet/type/zpool.rb +0 -91
- data/lib/puppet/util/methodhelper.rb +0 -32
- data/lib/puppet/util/nagios_maker.rb +0 -85
- data/lib/puppet/util/network_device/cisco/device.rb +0 -285
- data/lib/puppet/util/network_device/cisco/facts.rb +0 -72
- data/lib/puppet/util/network_device/cisco/interface.rb +0 -94
- data/lib/puppet/util/network_device/cisco.rb +0 -4
- data/lib/puppet/util/network_device/ipcalc.rb +0 -68
- data/lib/puppet/util/network_device/transport/ssh.rb +0 -126
- data/lib/puppet/util/network_device/transport/telnet.rb +0 -47
- data/lib/puppet/util/windows/taskscheduler.rb +0 -1276
- data/lib/puppet/vendor/load_semantic.rb +0 -1
- data/lib/puppet/vendor/load_semantic_puppet.rb +0 -1
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -5
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +0 -60
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +0 -117
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +0 -58
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +0 -25
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +0 -31
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +0 -181
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +0 -3
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +0 -203
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +0 -758
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +0 -9
- data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +0 -21
- data/man/man8/puppet-ca.8 +0 -182
- data/man/man8/puppet-cert.8 +0 -101
- data/man/man8/puppet-certificate.8 +0 -224
- data/man/man8/puppet-certificate_request.8 +0 -161
- data/man/man8/puppet-certificate_revocation_list.8 +0 -139
- data/man/man8/puppet-inspect.8 +0 -36
- data/man/man8/puppet-master.8 +0 -85
- data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +0 -19
- data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +0 -18
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +0 -15
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +0 -4
- data/spec/fixtures/integration/provider/cron/crontab/modify_entry +0 -13
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +0 -15
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +0 -6
- data/spec/fixtures/integration/provider/cron/crontab/purged +0 -8
- data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +0 -12
- data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +0 -14
- data/spec/fixtures/integration/provider/cron/crontab/unspecialized +0 -15
- data/spec/fixtures/integration/provider/mailalias/aliases/test1 +0 -31
- data/spec/fixtures/integration/provider/sshkey/sample +0 -21
- data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +0 -13
- data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +0 -10
- data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +0 -6
- data/spec/fixtures/unit/provider/augeas/augeas/etc/test +0 -3
- data/spec/fixtures/unit/provider/augeas/augeas/test.aug +0 -13
- data/spec/fixtures/unit/provider/host/parsed/valid_hosts +0 -19
- data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +0 -7
- data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +0 -152
- data/spec/fixtures/unit/provider/mount/parsed/aix.mount +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +0 -6
- data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +0 -8
- data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -3
- data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
- data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -5
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -9
- data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -8
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -4
- data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -4
- data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +0 -11
- data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +0 -6
- data/spec/fixtures/unit/provider/naginator/define_empty_param +0 -6
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +0 -7
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +0 -3
- data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +0 -1
- data/spec/fixtures/unit/provider/sshkey/parsed/sample +0 -21
- data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +0 -8
- data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +0 -2
- data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +0 -2
- data/spec/integration/faces/ca_spec.rb +0 -354
- data/spec/integration/indirector/node/ldap_spec.rb +0 -14
- data/spec/integration/provider/cron/crontab_spec.rb +0 -241
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -10
- data/spec/integration/provider/mount_spec.rb +0 -161
- data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -219
- data/spec/integration/provider/sshkey_spec.rb +0 -159
- data/spec/integration/provider/yumrepo_spec.rb +0 -130
- data/spec/integration/ssl/autosign_spec.rb +0 -145
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -162
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -34
- data/spec/integration/transaction_spec.rb +0 -522
- data/spec/integration/type/nagios_spec.rb +0 -71
- data/spec/integration/type/user_spec.rb +0 -64
- data/spec/unit/application/cert_spec.rb +0 -240
- data/spec/unit/application/certificate_spec.rb +0 -22
- data/spec/unit/application/master_spec.rb +0 -404
- data/spec/unit/configurer/downloader_factory_spec.rb +0 -96
- data/spec/unit/face/ca_spec.rb +0 -10
- data/spec/unit/face/certificate_request_spec.rb +0 -10
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -10
- data/spec/unit/face/certificate_spec.rb +0 -231
- data/spec/unit/face/module/build_spec.rb +0 -69
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -49
- data/spec/unit/indirector/certificate/ca_spec.rb +0 -23
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -57
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -16
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -17
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -26
- data/spec/unit/indirector/certificate_status/file_spec.rb +0 -191
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -18
- data/spec/unit/indirector/code_spec.rb +0 -31
- data/spec/unit/indirector/key/ca_spec.rb +0 -23
- data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -33
- data/spec/unit/indirector/ldap_spec.rb +0 -137
- data/spec/unit/indirector/node/ldap_spec.rb +0 -462
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -12
- data/spec/unit/module_tool/applications/builder_spec.rb +0 -432
- data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
- data/spec/unit/network/http/rack/rest_spec.rb +0 -325
- data/spec/unit/network/http/rack_spec.rb +0 -43
- data/spec/unit/network/http/webrick/rest_spec.rb +0 -231
- data/spec/unit/network/http/webrick_spec.rb +0 -279
- data/spec/unit/network/server_spec.rb +0 -95
- data/spec/unit/provider/aixobject_spec.rb +0 -101
- data/spec/unit/provider/augeas/augeas_spec.rb +0 -1025
- data/spec/unit/provider/cisco_spec.rb +0 -15
- data/spec/unit/provider/cron/crontab_spec.rb +0 -207
- data/spec/unit/provider/cron/parsed_spec.rb +0 -358
- data/spec/unit/provider/host/parsed_spec.rb +0 -233
- data/spec/unit/provider/interface/cisco_spec.rb +0 -57
- data/spec/unit/provider/macauthorization_spec.rb +0 -155
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -192
- data/spec/unit/provider/mount/parsed_spec.rb +0 -317
- data/spec/unit/provider/mount_spec.rb +0 -165
- data/spec/unit/provider/naginator_spec.rb +0 -79
- data/spec/unit/provider/network_device_spec.rb +0 -152
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2060
- data/spec/unit/provider/selboolean_spec.rb +0 -36
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule_spec.rb +0 -73
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -277
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -95
- data/spec/unit/provider/vlan/cisco_spec.rb +0 -55
- data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -326
- data/spec/unit/provider/zfs/zfs_spec.rb +0 -106
- data/spec/unit/provider/zone/solaris_spec.rb +0 -247
- data/spec/unit/provider/zpool/zpool_spec.rb +0 -251
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -30
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -560
- data/spec/unit/ssl/certificate_authority_spec.rb +0 -1184
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
- data/spec/unit/ssl/configuration_spec.rb +0 -141
- data/spec/unit/ssl/inventory_spec.rb +0 -151
- data/spec/unit/type/augeas_spec.rb +0 -119
- data/spec/unit/type/computer_spec.rb +0 -80
- data/spec/unit/type/cron_spec.rb +0 -543
- data/spec/unit/type/host_spec.rb +0 -681
- data/spec/unit/type/interface_spec.rb +0 -129
- data/spec/unit/type/k5login_spec.rb +0 -115
- data/spec/unit/type/macauthorization_spec.rb +0 -113
- data/spec/unit/type/mailalias_spec.rb +0 -49
- data/spec/unit/type/maillist_spec.rb +0 -41
- data/spec/unit/type/mcx_spec.rb +0 -79
- data/spec/unit/type/mount_spec.rb +0 -634
- data/spec/unit/type/nagios_spec.rb +0 -293
- data/spec/unit/type/scheduled_task_spec.rb +0 -103
- data/spec/unit/type/selboolean_spec.rb +0 -44
- data/spec/unit/type/selmodule_spec.rb +0 -17
- data/spec/unit/type/ssh_authorized_key_spec.rb +0 -258
- data/spec/unit/type/sshkey_spec.rb +0 -77
- data/spec/unit/type/vlan_spec.rb +0 -44
- data/spec/unit/type/yumrepo_spec.rb +0 -398
- data/spec/unit/type/zfs_spec.rb +0 -46
- data/spec/unit/type/zone_spec.rb +0 -172
- data/spec/unit/type/zpool_spec.rb +0 -109
- data/spec/unit/util/nagios_maker_spec.rb +0 -122
- data/spec/unit/util/network_device/cisco/device_spec.rb +0 -482
- data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -64
- data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -88
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -62
- data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -218
- data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -86
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Digs into a variable with dot notation to get a value from a structure.
|
|
2
|
+
#
|
|
3
|
+
# **To get the value from a variable** (that may or may not exist), call the function with
|
|
4
|
+
# one or two arguments:
|
|
5
|
+
#
|
|
6
|
+
# * The **first** argument must be a string, and must start with a variable name without leading `$`,
|
|
7
|
+
# for example `get('facts')`. The variable name can be followed
|
|
8
|
+
# by a _dot notation navigation string_ to dig out a value in the array or hash value
|
|
9
|
+
# of the variable.
|
|
10
|
+
# * The **optional second** argument can be any type of value and it is used as the
|
|
11
|
+
# _default value_ if the function would otherwise return `undef`.
|
|
12
|
+
# * An **optional lambda** for error handling taking one `Error` argument.
|
|
13
|
+
#
|
|
14
|
+
# **Dot notation navigation string** -
|
|
15
|
+
# The dot string consists of period `.` separated segments where each
|
|
16
|
+
# segment is either the index into an array or the value of a hash key.
|
|
17
|
+
# If a wanted key contains a period it must be quoted to avoid it being
|
|
18
|
+
# taken as a segment separator. Quoting can be done with either
|
|
19
|
+
# single quotes `'` or double quotes `"`. If a segment is
|
|
20
|
+
# a decimal number it is converted to an Integer index. This conversion
|
|
21
|
+
# can be prevented by quoting the value.
|
|
22
|
+
#
|
|
23
|
+
# @example Getting the value of a variable
|
|
24
|
+
# ```puppet
|
|
25
|
+
# getvar('facts') # results in the value of $facts
|
|
26
|
+
# ```
|
|
27
|
+
#
|
|
28
|
+
# @example Navigating into a variable
|
|
29
|
+
# ```puppet
|
|
30
|
+
# getvar('facts.os.family') # results in the value of $facts['os']['family']
|
|
31
|
+
# ```
|
|
32
|
+
#
|
|
33
|
+
# @example Using a default value
|
|
34
|
+
# ```puppet
|
|
35
|
+
# $x = [1,2,[{'name' =>'waldo'}]]
|
|
36
|
+
# getvar('x.2.1.name', 'not waldo')
|
|
37
|
+
# # results in 'not waldo'
|
|
38
|
+
# ```
|
|
39
|
+
#
|
|
40
|
+
# For further examples and how to perform error handling, see the `get()` function
|
|
41
|
+
# which this function delegates to after having resolved the variable value.
|
|
42
|
+
#
|
|
43
|
+
# @since 6.0.0 - the ability to dig into the variable's value with dot notation.
|
|
44
|
+
#
|
|
45
|
+
Puppet::Functions.create_function(:getvar, Puppet::Functions::InternalFunction) do
|
|
46
|
+
dispatch :get_from_navigation do
|
|
47
|
+
scope_param
|
|
48
|
+
param 'Pattern[/\A(?:::)?(?:[a-z]\w*::)*[a-z_]\w*(?:\.|\Z)/]', :get_string
|
|
49
|
+
optional_param 'Any', :default_value
|
|
50
|
+
optional_block_param 'Callable[1,1]', :block
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
argument_mismatch :invalid_variable_error do
|
|
54
|
+
param 'String', :get_string
|
|
55
|
+
optional_param 'Any', :default_value
|
|
56
|
+
optional_block_param 'Callable', :block
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def invalid_variable_error(navigation, default_value=nil, &block)
|
|
60
|
+
_("The given string does not start with a valid variable name")
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Gets a result from a navigation string starting with $var
|
|
64
|
+
#
|
|
65
|
+
def get_from_navigation(scope, navigation, default_value = nil, &block)
|
|
66
|
+
# asserted to start with a valid variable name - dig out the variable
|
|
67
|
+
matches = navigation.match(/^((::)?(\w+::)*\w+)(.*)\z/)
|
|
68
|
+
navigation = matches[4]
|
|
69
|
+
if navigation[0] == '.'
|
|
70
|
+
navigation = navigation[1..-1]
|
|
71
|
+
else
|
|
72
|
+
unless navigation.empty?
|
|
73
|
+
raise ArgumentError, _("First character after var name in get string must be a '.' - got %{char}") % {char: navigation[0]}
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
get_from_var_name(scope, matches[1], navigation, default_value, &block)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Gets a result from a $var name and a navigation string
|
|
80
|
+
#
|
|
81
|
+
def get_from_var_name(scope, var_string, navigation, default_value = nil, &block)
|
|
82
|
+
catch(:undefined_variable) do
|
|
83
|
+
return call_function_with_scope(scope,'get', scope.lookupvar(var_string), navigation, default_value, &block)
|
|
84
|
+
end
|
|
85
|
+
default_value
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -14,7 +14,7 @@ require 'hiera/puppet_function'
|
|
|
14
14
|
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
|
15
15
|
# fails with a compilation error.
|
|
16
16
|
# 3. The optional name of an arbitrary
|
|
17
|
-
# [hierarchy level](https://
|
|
17
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
|
18
18
|
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
|
19
19
|
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
|
20
20
|
# searching the rest of the hierarchy.
|
|
@@ -25,7 +25,7 @@ require 'hiera/puppet_function'
|
|
|
25
25
|
#
|
|
26
26
|
# @example Using `hiera`
|
|
27
27
|
#
|
|
28
|
-
#
|
|
28
|
+
# ```yaml
|
|
29
29
|
# # Assuming hiera.yaml
|
|
30
30
|
# # :hierarchy:
|
|
31
31
|
# # - web01.example.com
|
|
@@ -44,24 +44,24 @@ require 'hiera/puppet_function'
|
|
|
44
44
|
# regular:
|
|
45
45
|
# - "Iris Jackson"
|
|
46
46
|
# - "Kelly Lambert"
|
|
47
|
-
#
|
|
47
|
+
# ```
|
|
48
48
|
#
|
|
49
|
-
#
|
|
49
|
+
# ```puppet
|
|
50
50
|
# # Assuming we are not web01.example.com:
|
|
51
51
|
#
|
|
52
52
|
# $users = hiera('users', undef)
|
|
53
53
|
#
|
|
54
54
|
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
|
55
55
|
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
|
56
|
-
#
|
|
56
|
+
# ```
|
|
57
57
|
#
|
|
58
58
|
# You can optionally generate the default value with a
|
|
59
|
-
# [lambda](https://
|
|
59
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
|
60
60
|
# takes one parameter.
|
|
61
61
|
#
|
|
62
62
|
# @example Using `hiera` with a lambda
|
|
63
63
|
#
|
|
64
|
-
#
|
|
64
|
+
# ```puppet
|
|
65
65
|
# # Assuming the same Hiera data as the previous example:
|
|
66
66
|
#
|
|
67
67
|
# $users = hiera('users') | $key | { "Key \'${key}\' not found" }
|
|
@@ -70,15 +70,15 @@ require 'hiera/puppet_function'
|
|
|
70
70
|
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
|
71
71
|
# # If hiera couldn't match its key, it would return the lambda result,
|
|
72
72
|
# # "Key 'users' not found".
|
|
73
|
-
#
|
|
73
|
+
# ```
|
|
74
74
|
#
|
|
75
|
-
# The returned value's data type depends on the types of the results. In the example
|
|
75
|
+
# The returned value's data type depends on the types of the results. In the example
|
|
76
76
|
# above, Hiera matches the 'users' key and returns it as a hash.
|
|
77
77
|
#
|
|
78
78
|
# See
|
|
79
|
-
# [the 'Using the lookup function' documentation](https://
|
|
79
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
|
80
80
|
# Also see
|
|
81
|
-
# [the 'Using the deprecated hiera functions' documentation](https://
|
|
81
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
|
82
82
|
# for more information about the Hiera 3 functions.
|
|
83
83
|
#
|
|
84
84
|
# @since 4.0.0
|
|
@@ -3,7 +3,7 @@ require 'hiera/puppet_function'
|
|
|
3
3
|
# Finds all matches of a key throughout the hierarchy and returns them as a single flattened
|
|
4
4
|
# array of unique values. If any of the matched values are arrays, they're flattened and
|
|
5
5
|
# included in the results. This is called an
|
|
6
|
-
# [array merge lookup](https://
|
|
6
|
+
# [array merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#array-merge).
|
|
7
7
|
#
|
|
8
8
|
# This function is deprecated in favor of the `lookup` function. While this function
|
|
9
9
|
# continues to work, it does **not** support:
|
|
@@ -17,14 +17,14 @@ require 'hiera/puppet_function'
|
|
|
17
17
|
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
|
18
18
|
# fails with a compilation error.
|
|
19
19
|
# 3. The optional name of an arbitrary
|
|
20
|
-
# [hierarchy level](https://
|
|
20
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
|
21
21
|
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
|
22
22
|
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
|
23
23
|
# searching the rest of the hierarchy.
|
|
24
24
|
#
|
|
25
25
|
# @example Using `hiera_array`
|
|
26
26
|
#
|
|
27
|
-
#
|
|
27
|
+
# ```yaml
|
|
28
28
|
# # Assuming hiera.yaml
|
|
29
29
|
# # :hierarchy:
|
|
30
30
|
# # - web01.example.com
|
|
@@ -37,21 +37,21 @@ require 'hiera/puppet_function'
|
|
|
37
37
|
#
|
|
38
38
|
# # Assuming web01.example.com.yaml:
|
|
39
39
|
# # users: 'abarry = admin'
|
|
40
|
-
#
|
|
40
|
+
# ```
|
|
41
41
|
#
|
|
42
|
-
#
|
|
42
|
+
# ```puppet
|
|
43
43
|
# $allusers = hiera_array('users', undef)
|
|
44
44
|
#
|
|
45
45
|
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
|
46
|
-
#
|
|
46
|
+
# ```
|
|
47
47
|
#
|
|
48
48
|
# You can optionally generate the default value with a
|
|
49
|
-
# [lambda](https://
|
|
49
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
|
50
50
|
# takes one parameter.
|
|
51
51
|
#
|
|
52
52
|
# @example Using `hiera_array` with a lambda
|
|
53
53
|
#
|
|
54
|
-
#
|
|
54
|
+
# ```puppet
|
|
55
55
|
# # Assuming the same Hiera data as the previous example:
|
|
56
56
|
#
|
|
57
57
|
# $allusers = hiera_array('users') | $key | { "Key \'${key}\' not found" }
|
|
@@ -59,15 +59,15 @@ require 'hiera/puppet_function'
|
|
|
59
59
|
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
|
60
60
|
# # If hiera_array couldn't match its key, it would return the lambda result,
|
|
61
61
|
# # "Key 'users' not found".
|
|
62
|
-
#
|
|
62
|
+
# ```
|
|
63
63
|
#
|
|
64
64
|
# `hiera_array` expects that all values returned will be strings or arrays. If any matched
|
|
65
65
|
# value is a hash, Puppet raises a type mismatch error.
|
|
66
66
|
#
|
|
67
67
|
# See
|
|
68
|
-
# [the 'Using the lookup function' documentation](https://
|
|
68
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
|
69
69
|
# Also see
|
|
70
|
-
# [the 'Using the deprecated hiera functions' documentation](https://
|
|
70
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
|
71
71
|
# for more information about the Hiera 3 functions.
|
|
72
72
|
#
|
|
73
73
|
# @since 4.0.0
|
|
@@ -9,10 +9,10 @@ require 'hiera/puppet_function'
|
|
|
9
9
|
#
|
|
10
10
|
# If any of the matched hashes share keys, the final hash uses the value from the
|
|
11
11
|
# highest priority match. This is called a
|
|
12
|
-
# [hash merge lookup](https://
|
|
12
|
+
# [hash merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#hash-merge).
|
|
13
13
|
#
|
|
14
14
|
# The merge strategy is determined by Hiera's
|
|
15
|
-
# [`:merge_behavior`](https://
|
|
15
|
+
# [`:merge_behavior`](https://puppet.com/docs/hiera/latest/configuring.html#mergebehavior)
|
|
16
16
|
# setting.
|
|
17
17
|
#
|
|
18
18
|
# The `hiera_hash` function takes up to three arguments, in this order:
|
|
@@ -22,14 +22,14 @@ require 'hiera/puppet_function'
|
|
|
22
22
|
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
|
23
23
|
# fails with a compilation error.
|
|
24
24
|
# 3. The optional name of an arbitrary
|
|
25
|
-
# [hierarchy level](https://
|
|
25
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
|
26
26
|
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
|
27
27
|
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
|
28
28
|
# searching the rest of the hierarchy.
|
|
29
29
|
#
|
|
30
30
|
# @example Using `hiera_hash`
|
|
31
31
|
#
|
|
32
|
-
#
|
|
32
|
+
# ```yaml
|
|
33
33
|
# # Assuming hiera.yaml
|
|
34
34
|
# # :hierarchy:
|
|
35
35
|
# # - web01.example.com
|
|
@@ -44,24 +44,24 @@ require 'hiera/puppet_function'
|
|
|
44
44
|
# # users:
|
|
45
45
|
# # administrators:
|
|
46
46
|
# # 'aberry': 'Amy Berry'
|
|
47
|
-
#
|
|
47
|
+
# ```
|
|
48
48
|
#
|
|
49
|
-
#
|
|
49
|
+
# ```puppet
|
|
50
50
|
# # Assuming we are not web01.example.com:
|
|
51
51
|
#
|
|
52
52
|
# $allusers = hiera_hash('users', undef)
|
|
53
53
|
#
|
|
54
54
|
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
|
55
55
|
# # administrators => {"aberry" => "Amy Berry"}}
|
|
56
|
-
#
|
|
56
|
+
# ```
|
|
57
57
|
#
|
|
58
58
|
# You can optionally generate the default value with a
|
|
59
|
-
# [lambda](https://
|
|
59
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
|
60
60
|
# takes one parameter.
|
|
61
61
|
#
|
|
62
62
|
# @example Using `hiera_hash` with a lambda
|
|
63
63
|
#
|
|
64
|
-
#
|
|
64
|
+
# ```puppet
|
|
65
65
|
# # Assuming the same Hiera data as the previous example:
|
|
66
66
|
#
|
|
67
67
|
# $allusers = hiera_hash('users') | $key | { "Key \'${key}\' not found" }
|
|
@@ -70,15 +70,15 @@ require 'hiera/puppet_function'
|
|
|
70
70
|
# # administrators => {"aberry" => "Amy Berry"}}
|
|
71
71
|
# # If hiera_hash couldn't match its key, it would return the lambda result,
|
|
72
72
|
# # "Key 'users' not found".
|
|
73
|
-
#
|
|
73
|
+
# ```
|
|
74
74
|
#
|
|
75
75
|
# `hiera_hash` expects that all values returned will be hashes. If any of the values
|
|
76
76
|
# found in the data sources are strings or arrays, Puppet raises a type mismatch error.
|
|
77
77
|
#
|
|
78
78
|
# See
|
|
79
|
-
# [the 'Using the lookup function' documentation](https://
|
|
79
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
|
80
80
|
# Also see
|
|
81
|
-
# [the 'Using the deprecated hiera functions' documentation](https://
|
|
81
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
|
82
82
|
# for more information about the Hiera 3 functions.
|
|
83
83
|
#
|
|
84
84
|
# @since 4.0.0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'hiera/puppet_function'
|
|
2
2
|
|
|
3
3
|
# Assigns classes to a node using an
|
|
4
|
-
# [array merge lookup](https://
|
|
4
|
+
# [array merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#array-merge)
|
|
5
5
|
# that retrieves the value for a user-specified key from Hiera's data.
|
|
6
6
|
#
|
|
7
7
|
# This function is deprecated in favor of the `lookup` function in combination with `include`.
|
|
@@ -10,11 +10,11 @@ require 'hiera/puppet_function'
|
|
|
10
10
|
# * lookup across global, environment, and module layers
|
|
11
11
|
#
|
|
12
12
|
# @example Using `lookup` and `include` instead of of the deprecated `hiera_include`
|
|
13
|
-
#
|
|
14
|
-
#
|
|
13
|
+
#
|
|
14
|
+
# ```puppet
|
|
15
15
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
|
16
16
|
# lookup('classes', Array[String], 'unique').include
|
|
17
|
-
#
|
|
17
|
+
# ```
|
|
18
18
|
#
|
|
19
19
|
# The `hiera_include` function requires:
|
|
20
20
|
#
|
|
@@ -32,18 +32,18 @@ require 'hiera/puppet_function'
|
|
|
32
32
|
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
|
33
33
|
# fails with a compilation error.
|
|
34
34
|
# 3. The optional name of an arbitrary
|
|
35
|
-
# [hierarchy level](https://
|
|
35
|
+
# [hierarchy level](https://puppet.com/docs/hiera/latest/hierarchy.html) to insert at the
|
|
36
36
|
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
|
37
37
|
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
|
38
38
|
# searching the rest of the hierarchy.
|
|
39
39
|
#
|
|
40
40
|
# The function uses an
|
|
41
|
-
# [array merge lookup](https://
|
|
41
|
+
# [array merge lookup](https://puppet.com/docs/hiera/latest/lookup_types.html#array-merge)
|
|
42
42
|
# to retrieve the `classes` array, so every node gets every class from the hierarchy.
|
|
43
43
|
#
|
|
44
44
|
# @example Using `hiera_include`
|
|
45
45
|
#
|
|
46
|
-
#
|
|
46
|
+
# ```yaml
|
|
47
47
|
# # Assuming hiera.yaml
|
|
48
48
|
# # :hierarchy:
|
|
49
49
|
# # - web01.example.com
|
|
@@ -56,22 +56,22 @@ require 'hiera/puppet_function'
|
|
|
56
56
|
# # Assuming common.yaml:
|
|
57
57
|
# # classes:
|
|
58
58
|
# # - apache
|
|
59
|
-
#
|
|
59
|
+
# ```
|
|
60
60
|
#
|
|
61
|
-
#
|
|
61
|
+
# ```puppet
|
|
62
62
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
|
63
63
|
# hiera_include('classes', undef)
|
|
64
64
|
#
|
|
65
65
|
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
|
66
|
-
#
|
|
66
|
+
# ```
|
|
67
67
|
#
|
|
68
68
|
# You can optionally generate the default value with a
|
|
69
|
-
# [lambda](https://
|
|
69
|
+
# [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html) that
|
|
70
70
|
# takes one parameter.
|
|
71
71
|
#
|
|
72
72
|
# @example Using `hiera_include` with a lambda
|
|
73
73
|
#
|
|
74
|
-
#
|
|
74
|
+
# ```puppet
|
|
75
75
|
# # Assuming the same Hiera data as the previous example:
|
|
76
76
|
#
|
|
77
77
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
|
@@ -80,12 +80,12 @@ require 'hiera/puppet_function'
|
|
|
80
80
|
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
|
81
81
|
# # If hiera_include couldn't match its key, it would return the lambda result,
|
|
82
82
|
# # "Key 'classes' not found".
|
|
83
|
-
#
|
|
83
|
+
# ```
|
|
84
84
|
#
|
|
85
85
|
# See
|
|
86
|
-
# [the 'Using the lookup function' documentation](https://
|
|
86
|
+
# [the 'Using the lookup function' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html) for how to perform lookup of data.
|
|
87
87
|
# Also see
|
|
88
|
-
# [the 'Using the deprecated hiera functions' documentation](https://
|
|
88
|
+
# [the 'Using the deprecated hiera functions' documentation](https://puppet.com/docs/puppet/latest/hiera_automatic.html)
|
|
89
89
|
# for more information about the Hiera 3 functions.
|
|
90
90
|
#
|
|
91
91
|
# @since 4.0.0
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# The `hocon_data` is a hiera 5 `data_hash` data provider function.
|
|
2
|
-
# See [the configuration guide documentation](https://
|
|
2
|
+
# See [the configuration guide documentation](https://puppet.com/docs/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
|
|
3
3
|
# how to use this function.
|
|
4
4
|
#
|
|
5
5
|
# Note that this function is not supported without a hocon library being present.
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
1
|
+
# Declares one or more classes, causing the resources in them to be
|
|
2
|
+
# evaluated and added to the catalog. Accepts a class name, an array of class
|
|
3
|
+
# names, or a comma-separated list of class names.
|
|
4
|
+
#
|
|
5
|
+
# The `include` function can be used multiple times on the same class and will
|
|
6
|
+
# only declare a given class once. If a class declared with `include` has any
|
|
7
|
+
# parameters, Puppet will automatically look up values for them in Hiera, using
|
|
8
|
+
# `<class name>::<parameter name>` as the lookup key.
|
|
9
|
+
#
|
|
10
|
+
# Contrast this behavior with resource-like class declarations
|
|
11
|
+
# (`class {'name': parameter => 'value',}`), which must be used in only one place
|
|
12
|
+
# per class and can directly set parameters. You should avoid using both `include`
|
|
13
|
+
# and resource-like declarations with the same class.
|
|
14
|
+
#
|
|
15
|
+
# The `include` function does not cause classes to be contained in the class
|
|
16
|
+
# where they are declared. For that, see the `contain` function. It also
|
|
17
|
+
# does not create a dependency relationship between the declared class and the
|
|
18
|
+
# surrounding class; for that, see the `require` function.
|
|
19
|
+
#
|
|
20
|
+
# You must use the class's full name;
|
|
21
|
+
# relative names are not allowed. In addition to names in string form,
|
|
22
|
+
# you may also directly use `Class` and `Resource` `Type`-values that are produced by
|
|
23
|
+
# the resource and relationship expressions.
|
|
24
|
+
#
|
|
25
|
+
# - Since < 3.0.0
|
|
26
|
+
# - Since 4.0.0 support for class and resource type values, absolute names
|
|
27
|
+
# - Since 4.7.0 returns an `Array[Type[Class]]` of all included classes
|
|
28
|
+
#
|
|
3
29
|
Puppet::Functions.create_function(:include, Puppet::Functions::InternalFunction) do
|
|
4
30
|
dispatch :include do
|
|
5
31
|
scope_param
|
|
@@ -11,6 +37,12 @@ Puppet::Functions.create_function(:include, Puppet::Functions::InternalFunction)
|
|
|
11
37
|
end
|
|
12
38
|
|
|
13
39
|
def include(scope, *classes)
|
|
40
|
+
if Puppet[:tasks]
|
|
41
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
|
42
|
+
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
|
43
|
+
{:operation => 'include'})
|
|
44
|
+
end
|
|
45
|
+
|
|
14
46
|
classes = scope.transform_and_assert_classnames(classes.flatten)
|
|
15
47
|
result = classes.map {|name| Puppet::Pops::Types::TypeFactory.host_class(name) }
|
|
16
48
|
scope.compiler.evaluate_classes(classes, scope, false)
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
# For example, to evaluate an inline EPP template using a heredoc, call the
|
|
36
36
|
# `inline_epp` function like this:
|
|
37
37
|
#
|
|
38
|
-
#
|
|
38
|
+
# ```puppet
|
|
39
39
|
# # Outputs 'Hello given argument planet!'
|
|
40
40
|
# inline_epp(@(END), { x => 'given argument' })
|
|
41
41
|
# <%- | $x, $y = planet | -%>
|
|
42
42
|
# Hello <%= $x %> <%= $y %>!
|
|
43
43
|
# END
|
|
44
|
-
#
|
|
44
|
+
# ```
|
|
45
45
|
#
|
|
46
46
|
# @since 4.0.0
|
|
47
47
|
#
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Joins the values of an Array into a string with elements separated by a delimiter.
|
|
2
|
+
#
|
|
3
|
+
# Supports up to two arguments
|
|
4
|
+
# * **values** - first argument is required and must be an an `Array`
|
|
5
|
+
# * **delimiter** - second arguments is the delimiter between elements, must be a `String` if given, and defaults to an empty string.
|
|
6
|
+
#
|
|
7
|
+
# @example Typical use of `join`
|
|
8
|
+
#
|
|
9
|
+
# ```puppet
|
|
10
|
+
# join(['a','b','c'], ",")
|
|
11
|
+
# # Would result in: "a,b,c"
|
|
12
|
+
# ```
|
|
13
|
+
#
|
|
14
|
+
# Note that array is flattened before elements are joined, but flattening does not extend to arrays nested in hashes or other objects.
|
|
15
|
+
#
|
|
16
|
+
# @example Arrays nested in hashes are not joined
|
|
17
|
+
#
|
|
18
|
+
# ```puppet
|
|
19
|
+
# $a = [1,2, undef, 'hello', [x,y,z], {a => 2, b => [3, 4]}]
|
|
20
|
+
# notice join($a, ', ')
|
|
21
|
+
#
|
|
22
|
+
# # would result in noticing:
|
|
23
|
+
# # 1, 2, , hello, x, y, z, {"a"=>2, "b"=>[3, 4]}
|
|
24
|
+
# ```
|
|
25
|
+
#
|
|
26
|
+
# For joining iterators and other containers of elements a conversion must first be made to
|
|
27
|
+
# an `Array`. The reason for this is that there are many options how such a conversion should
|
|
28
|
+
# be made.
|
|
29
|
+
#
|
|
30
|
+
# @example Joining the result of a reverse_each converted to an array
|
|
31
|
+
#
|
|
32
|
+
# ```puppet
|
|
33
|
+
# [1,2,3].reverse_each.convert_to(Array).join(', ')
|
|
34
|
+
# # would result in: "3, 2, 1"
|
|
35
|
+
# ```
|
|
36
|
+
# @example Joining a hash
|
|
37
|
+
#
|
|
38
|
+
# ```puppet
|
|
39
|
+
# {a => 1, b => 2}.convert_to(Array).join(', ')
|
|
40
|
+
# # would result in "a, 1, b, 2"
|
|
41
|
+
# ```
|
|
42
|
+
#
|
|
43
|
+
# For more detailed control over the formatting (including indentations and line breaks, delimiters around arrays
|
|
44
|
+
# and hash entries, between key/values in hash entries, and individual formatting of values in the array)
|
|
45
|
+
# see the `new` function for `String` and its formatting options for `Array` and `Hash`.
|
|
46
|
+
#
|
|
47
|
+
Puppet::Functions.create_function(:join) do
|
|
48
|
+
dispatch :join do
|
|
49
|
+
param 'Array', :arg
|
|
50
|
+
optional_param 'String', :delimiter
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def join(arg, delimiter = '', puppet_formatting = false)
|
|
54
|
+
arg.join(delimiter)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# The `json_data` is a hiera 5 `data_hash` data provider function.
|
|
2
|
-
# See [the configuration guide documentation](https://
|
|
2
|
+
# See [the configuration guide documentation](https://puppet.com/docs/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
|
|
3
3
|
# how to use this function.
|
|
4
4
|
#
|
|
5
5
|
# @since 4.8.0
|
|
@@ -19,8 +19,8 @@ Puppet::Functions.create_function(:json_data) do
|
|
|
19
19
|
path = options['path']
|
|
20
20
|
context.cached_file_data(path) do |content|
|
|
21
21
|
begin
|
|
22
|
-
|
|
23
|
-
rescue
|
|
22
|
+
Puppet::Util::Json.load(content)
|
|
23
|
+
rescue Puppet::Util::Json::ParseError => ex
|
|
24
24
|
# Filename not included in message, so we add it here.
|
|
25
25
|
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
|
26
26
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Returns the keys of a hash as an Array
|
|
2
|
+
#
|
|
3
|
+
# @example Using `keys`
|
|
4
|
+
#
|
|
5
|
+
# ```puppet
|
|
6
|
+
# $hsh = {"apples" => 3, "oranges" => 4 }
|
|
7
|
+
# $hsh.keys()
|
|
8
|
+
# keys($hsh)
|
|
9
|
+
# # both results in the array ["apples", "oranges"]
|
|
10
|
+
# ```
|
|
11
|
+
#
|
|
12
|
+
# * Note that a hash in the puppet language accepts any data value (including `undef`) unless
|
|
13
|
+
# it is constrained with a `Hash` data type that narrows the allowed data types.
|
|
14
|
+
# * For an empty hash, an empty array is returned.
|
|
15
|
+
# * The order of the keys is the same as the order in the hash (typically the order in which they were added).
|
|
16
|
+
#
|
|
17
|
+
Puppet::Functions.create_function(:keys) do
|
|
18
|
+
dispatch :keys do
|
|
19
|
+
param 'Hash', :hsh
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def keys(hsh)
|
|
23
|
+
hsh.keys
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Returns the length of an Array, Hash, String, or Binary value.
|
|
2
|
+
#
|
|
3
|
+
# The returned value is a positive integer indicating the number
|
|
4
|
+
# of elements in the container; counting (possibly multibyte) characters for a `String`,
|
|
5
|
+
# bytes in a `Binary`, number of elements in an `Array`, and number of
|
|
6
|
+
# key-value associations in a Hash.
|
|
7
|
+
#
|
|
8
|
+
# @example Using `length`
|
|
9
|
+
#
|
|
10
|
+
# ```puppet
|
|
11
|
+
# "roses".length() # 5
|
|
12
|
+
# length("violets") # 7
|
|
13
|
+
# [10, 20].length # 2
|
|
14
|
+
# {a => 1, b => 3}.length # 2
|
|
15
|
+
# ```
|
|
16
|
+
#
|
|
17
|
+
# @since 5.5.0 - also supporting Binary
|
|
18
|
+
#
|
|
19
|
+
Puppet::Functions.create_function(:length) do
|
|
20
|
+
dispatch :collection_length do
|
|
21
|
+
param 'Collection', :arg
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
dispatch :string_length do
|
|
25
|
+
param 'String', :arg
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
dispatch :binary_length do
|
|
29
|
+
param 'Binary', :arg
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def collection_length(col)
|
|
33
|
+
col.size
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def string_length(s)
|
|
37
|
+
s.length
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def binary_length(bin)
|
|
41
|
+
bin.length
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
end
|
|
@@ -1,4 +1,42 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Calls a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
|
2
|
+
# without arguments if the value given to `lest` is `undef`.
|
|
3
|
+
# Returns the result of calling the lambda if the argument is `undef`, otherwise the
|
|
4
|
+
# given argument.
|
|
5
|
+
#
|
|
6
|
+
# The `lest` function is useful in a chain of `then` calls, or in general
|
|
7
|
+
# as a guard against `undef` values. The function can be used to call `fail`, or to
|
|
8
|
+
# return a default value.
|
|
9
|
+
#
|
|
10
|
+
# These two expressions are equivalent:
|
|
11
|
+
#
|
|
12
|
+
# ```puppet
|
|
13
|
+
# if $x == undef { do_things() }
|
|
14
|
+
# lest($x) || { do_things() }
|
|
15
|
+
# ```
|
|
16
|
+
#
|
|
17
|
+
# @example Using the `lest` function
|
|
18
|
+
#
|
|
19
|
+
# ```puppet
|
|
20
|
+
# $data = {a => [ b, c ] }
|
|
21
|
+
# notice $data.dig(a, b, c)
|
|
22
|
+
# .then |$x| { $x * 2 }
|
|
23
|
+
# .lest || { fail("no value for $data[a][b][c]" }
|
|
24
|
+
# ```
|
|
25
|
+
#
|
|
26
|
+
# Would fail the operation because $data[a][b][c] results in `undef`
|
|
27
|
+
# (there is no `b` key in `a`).
|
|
28
|
+
#
|
|
29
|
+
# In contrast - this example:
|
|
30
|
+
#
|
|
31
|
+
# ```puppet
|
|
32
|
+
# $data = {a => { b => { c => 10 } } }
|
|
33
|
+
# notice $data.dig(a, b, c)
|
|
34
|
+
# .then |$x| { $x * 2 }
|
|
35
|
+
# .lest || { fail("no value for $data[a][b][c]" }
|
|
36
|
+
# ```
|
|
37
|
+
#
|
|
38
|
+
# Would notice the value `20`
|
|
39
|
+
#
|
|
2
40
|
# @since 4.5.0
|
|
3
41
|
#
|
|
4
42
|
Puppet::Functions.create_function(:lest) do
|