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
|
@@ -1,7 +1,181 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Formats timestamp or timespan according to the directives in the given format string. The directives begins with a percent (%) character.
|
|
2
|
+
# Any text not listed as a directive will be passed through to the output string.
|
|
2
3
|
#
|
|
3
|
-
#
|
|
4
|
+
# A third optional timezone argument can be provided. The first argument will then be formatted to represent a local time in that
|
|
5
|
+
# timezone. The timezone can be any timezone that is recognized when using the '%z' or '%Z' formats, or the word 'current', in which
|
|
6
|
+
# case the current timezone of the evaluating process will be used. The timezone argument is case insensitive.
|
|
4
7
|
#
|
|
8
|
+
# The default timezone, when no argument is provided, or when using the keyword `default`, is 'UTC'.
|
|
9
|
+
#
|
|
10
|
+
# The directive consists of a percent (%) character, zero or more flags, optional minimum field width and
|
|
11
|
+
# a conversion specifier as follows:
|
|
12
|
+
#
|
|
13
|
+
# ```
|
|
14
|
+
# %[Flags][Width]Conversion
|
|
15
|
+
# ```
|
|
16
|
+
#
|
|
17
|
+
# ### Flags that controls padding
|
|
18
|
+
#
|
|
19
|
+
# | Flag | Meaning
|
|
20
|
+
# | ---- | ---------------
|
|
21
|
+
# | - | Don't pad numerical output
|
|
22
|
+
# | _ | Use spaces for padding
|
|
23
|
+
# | 0 | Use zeros for padding
|
|
24
|
+
#
|
|
25
|
+
# ### `Timestamp` specific flags
|
|
26
|
+
#
|
|
27
|
+
# | Flag | Meaning
|
|
28
|
+
# | ---- | ---------------
|
|
29
|
+
# | # | Change case
|
|
30
|
+
# | ^ | Use uppercase
|
|
31
|
+
# | : | Use colons for %z
|
|
32
|
+
#
|
|
33
|
+
# ### Format directives applicable to `Timestamp` (names and padding can be altered using flags):
|
|
34
|
+
#
|
|
35
|
+
# **Date (Year, Month, Day):**
|
|
36
|
+
#
|
|
37
|
+
# | Format | Meaning |
|
|
38
|
+
# | ------ | ------- |
|
|
39
|
+
# | Y | Year with century, zero-padded to at least 4 digits |
|
|
40
|
+
# | C | year / 100 (rounded down such as 20 in 2009) |
|
|
41
|
+
# | y | year % 100 (00..99) |
|
|
42
|
+
# | m | Month of the year, zero-padded (01..12) |
|
|
43
|
+
# | B | The full month name ("January") |
|
|
44
|
+
# | b | The abbreviated month name ("Jan") |
|
|
45
|
+
# | h | Equivalent to %b |
|
|
46
|
+
# | d | Day of the month, zero-padded (01..31) |
|
|
47
|
+
# | e | Day of the month, blank-padded ( 1..31) |
|
|
48
|
+
# | j | Day of the year (001..366) |
|
|
49
|
+
#
|
|
50
|
+
# **Time (Hour, Minute, Second, Subsecond):**
|
|
51
|
+
#
|
|
52
|
+
# | Format | Meaning |
|
|
53
|
+
# | ------ | ------- |
|
|
54
|
+
# | H | Hour of the day, 24-hour clock, zero-padded (00..23) |
|
|
55
|
+
# | k | Hour of the day, 24-hour clock, blank-padded ( 0..23) |
|
|
56
|
+
# | I | Hour of the day, 12-hour clock, zero-padded (01..12) |
|
|
57
|
+
# | l | Hour of the day, 12-hour clock, blank-padded ( 1..12) |
|
|
58
|
+
# | P | Meridian indicator, lowercase ("am" or "pm") |
|
|
59
|
+
# | p | Meridian indicator, uppercase ("AM" or "PM") |
|
|
60
|
+
# | M | Minute of the hour (00..59) |
|
|
61
|
+
# | S | Second of the minute (00..60) |
|
|
62
|
+
# | L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000 |
|
|
63
|
+
# | N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified width are truncated to avoid carry up |
|
|
64
|
+
#
|
|
65
|
+
# **Time (Hour, Minute, Second, Subsecond):**
|
|
66
|
+
#
|
|
67
|
+
# | Format | Meaning |
|
|
68
|
+
# | ------ | ------- |
|
|
69
|
+
# | z | Time zone as hour and minute offset from UTC (e.g. +0900) |
|
|
70
|
+
# | :z | hour and minute offset from UTC with a colon (e.g. +09:00) |
|
|
71
|
+
# | ::z | hour, minute and second offset from UTC (e.g. +09:00:00) |
|
|
72
|
+
# | Z | Abbreviated time zone name or similar information. (OS dependent) |
|
|
73
|
+
#
|
|
74
|
+
# **Weekday:**
|
|
75
|
+
#
|
|
76
|
+
# | Format | Meaning |
|
|
77
|
+
# | ------ | ------- |
|
|
78
|
+
# | A | The full weekday name ("Sunday") |
|
|
79
|
+
# | a | The abbreviated name ("Sun") |
|
|
80
|
+
# | u | Day of the week (Monday is 1, 1..7) |
|
|
81
|
+
# | w | Day of the week (Sunday is 0, 0..6) |
|
|
82
|
+
#
|
|
83
|
+
# **ISO 8601 week-based year and week number:**
|
|
84
|
+
#
|
|
85
|
+
# The first week of YYYY starts with a Monday and includes YYYY-01-04.
|
|
86
|
+
# The days in the year before the first week are in the last week of
|
|
87
|
+
# the previous year.
|
|
88
|
+
#
|
|
89
|
+
# | Format | Meaning |
|
|
90
|
+
# | ------ | ------- |
|
|
91
|
+
# | G | The week-based year |
|
|
92
|
+
# | g | The last 2 digits of the week-based year (00..99) |
|
|
93
|
+
# | V | Week number of the week-based year (01..53) |
|
|
94
|
+
#
|
|
95
|
+
# **Week number:**
|
|
96
|
+
#
|
|
97
|
+
# The first week of YYYY that starts with a Sunday or Monday (according to %U
|
|
98
|
+
# or %W). The days in the year before the first week are in week 0.
|
|
99
|
+
#
|
|
100
|
+
# | Format | Meaning |
|
|
101
|
+
# | ------ | ------- |
|
|
102
|
+
# | U | Week number of the year. The week starts with Sunday. (00..53) |
|
|
103
|
+
# | W | Week number of the year. The week starts with Monday. (00..53) |
|
|
104
|
+
#
|
|
105
|
+
# **Seconds since the Epoch:**
|
|
106
|
+
#
|
|
107
|
+
# | Format | Meaning |
|
|
108
|
+
# | s | Number of seconds since 1970-01-01 00:00:00 UTC. |
|
|
109
|
+
#
|
|
110
|
+
# **Literal string:**
|
|
111
|
+
#
|
|
112
|
+
# | Format | Meaning |
|
|
113
|
+
# | ------ | ------- |
|
|
114
|
+
# | n | Newline character (\n) |
|
|
115
|
+
# | t | Tab character (\t) |
|
|
116
|
+
# | % | Literal "%" character |
|
|
117
|
+
#
|
|
118
|
+
# **Combination:**
|
|
119
|
+
#
|
|
120
|
+
# | Format | Meaning |
|
|
121
|
+
# | ------ | ------- |
|
|
122
|
+
# | c | date and time (%a %b %e %T %Y) |
|
|
123
|
+
# | D | Date (%m/%d/%y) |
|
|
124
|
+
# | F | The ISO 8601 date format (%Y-%m-%d) |
|
|
125
|
+
# | v | VMS date (%e-%^b-%4Y) |
|
|
126
|
+
# | x | Same as %D |
|
|
127
|
+
# | X | Same as %T |
|
|
128
|
+
# | r | 12-hour time (%I:%M:%S %p) |
|
|
129
|
+
# | R | 24-hour time (%H:%M) |
|
|
130
|
+
# | T | 24-hour time (%H:%M:%S) |
|
|
131
|
+
#
|
|
132
|
+
# @example Using `strftime` with a `Timestamp`:
|
|
133
|
+
#
|
|
134
|
+
# ```puppet
|
|
135
|
+
# $timestamp = Timestamp('2016-08-24T12:13:14')
|
|
136
|
+
#
|
|
137
|
+
# # Notice the timestamp using a format that notices the ISO 8601 date format
|
|
138
|
+
# notice($timestamp.strftime('%F')) # outputs '2016-08-24'
|
|
139
|
+
#
|
|
140
|
+
# # Notice the timestamp using a format that notices weekday, month, day, time (as UTC), and year
|
|
141
|
+
# notice($timestamp.strftime('%c')) # outputs 'Wed Aug 24 12:13:14 2016'
|
|
142
|
+
#
|
|
143
|
+
# # Notice the timestamp using a specific timezone
|
|
144
|
+
# notice($timestamp.strftime('%F %T %z', 'PST')) # outputs '2016-08-24 04:13:14 -0800'
|
|
145
|
+
#
|
|
146
|
+
# # Notice the timestamp using timezone that is current for the evaluating process
|
|
147
|
+
# notice($timestamp.strftime('%F %T', 'current')) # outputs the timestamp using the timezone for the current process
|
|
148
|
+
# ```
|
|
149
|
+
#
|
|
150
|
+
# ### Format directives applicable to `Timespan`:
|
|
151
|
+
#
|
|
152
|
+
# | Format | Meaning |
|
|
153
|
+
# | ------ | ------- |
|
|
154
|
+
# | D | Number of Days |
|
|
155
|
+
# | H | Hour of the day, 24-hour clock |
|
|
156
|
+
# | M | Minute of the hour (00..59) |
|
|
157
|
+
# | S | Second of the minute (00..59) |
|
|
158
|
+
# | L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000. |
|
|
159
|
+
# | N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified length are truncated to avoid carry up |
|
|
160
|
+
#
|
|
161
|
+
# The format directive that represents the highest magnitude in the format will be allowed to overflow.
|
|
162
|
+
# I.e. if no "%D" is used but a "%H" is present, then the hours will be more than 23 in case the
|
|
163
|
+
# timespan reflects more than a day.
|
|
164
|
+
#
|
|
165
|
+
# @example Using `strftime` with a Timespan and a format
|
|
166
|
+
#
|
|
167
|
+
# ```puppet
|
|
168
|
+
# $duration = Timespan({ hours => 3, minutes => 20, seconds => 30 })
|
|
169
|
+
#
|
|
170
|
+
# # Notice the duration using a format that outputs <hours>:<minutes>:<seconds>
|
|
171
|
+
# notice($duration.strftime('%H:%M:%S')) # outputs '03:20:30'
|
|
172
|
+
#
|
|
173
|
+
# # Notice the duration using a format that outputs <minutes>:<seconds>
|
|
174
|
+
# notice($duration.strftime('%M:%S')) # outputs '200:30'
|
|
175
|
+
# ```
|
|
176
|
+
#
|
|
177
|
+
# - Since 4.8.0
|
|
178
|
+
#
|
|
5
179
|
Puppet::Functions.create_function(:strftime) do
|
|
6
180
|
dispatch :format_timespan do
|
|
7
181
|
param 'Timespan', :time_object
|
|
@@ -28,15 +202,9 @@ Puppet::Functions.create_function(:strftime) do
|
|
|
28
202
|
end
|
|
29
203
|
|
|
30
204
|
def legacy_strftime(format, timezone = nil)
|
|
31
|
-
|
|
32
|
-
if stacktrace.size > 0
|
|
33
|
-
file, line = stacktrace[0]
|
|
34
|
-
else
|
|
35
|
-
file = nil
|
|
36
|
-
line = nil
|
|
37
|
-
end
|
|
205
|
+
file, line = Puppet::Pops::PuppetStack.top_of_stack
|
|
38
206
|
Puppet.warn_once('deprecations', 'legacy#strftime',
|
|
39
|
-
_('The argument signature (String format, [String timezone]) is deprecated for #
|
|
207
|
+
_('The argument signature (String format, [String timezone]) is deprecated for #strftime. See #strftime documentation and Timespan type for more info'),
|
|
40
208
|
file, line)
|
|
41
209
|
Puppet::Pops::Time::Timestamp.format_time(format, Time.now.utc, timezone)
|
|
42
210
|
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Strips leading and trailing spaces from a String
|
|
2
|
+
#
|
|
3
|
+
# This function is compatible with the stdlib function with the same name.
|
|
4
|
+
#
|
|
5
|
+
# The function does the following:
|
|
6
|
+
# * For a `String` the conversion removes all leading and trailing ASCII white space characters such as space, tab, newline, and return.
|
|
7
|
+
# It does not remove other space-like characters like hard space (Unicode U+00A0). (Tip, `/^[[:space:]]/` regular expression
|
|
8
|
+
# matches all space-like characters).
|
|
9
|
+
# * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is processed and the conversion is not recursive.
|
|
10
|
+
# * If the value is `Numeric` it is simply returned (this is for backwards compatibility).
|
|
11
|
+
# * An error is raised for all other data types.
|
|
12
|
+
#
|
|
13
|
+
# @example Removing leading and trailing space from a String
|
|
14
|
+
# ```puppet
|
|
15
|
+
# " hello\n\t".lstrip()
|
|
16
|
+
# camelcase(" hello\n\t")
|
|
17
|
+
# ```
|
|
18
|
+
# Would both result in `"hello"`
|
|
19
|
+
#
|
|
20
|
+
# @example Removing trailing space from strings in an Array
|
|
21
|
+
# ```puppet
|
|
22
|
+
# [" hello\n\t", " hi\n\t"].lstrip()
|
|
23
|
+
# lstrip([" hello\n\t", " hi\n\t"])
|
|
24
|
+
# ```
|
|
25
|
+
# Would both result in `['hello', 'hi']`
|
|
26
|
+
#
|
|
27
|
+
Puppet::Functions.create_function(:strip) do
|
|
28
|
+
|
|
29
|
+
dispatch :on_numeric do
|
|
30
|
+
param 'Numeric', :arg
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
dispatch :on_string do
|
|
34
|
+
param 'String', :arg
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
dispatch :on_iterable do
|
|
38
|
+
param 'Iterable[Variant[String, Numeric]]', :arg
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# unit function - since the old implementation skipped Numeric values
|
|
42
|
+
def on_numeric(n)
|
|
43
|
+
n
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def on_string(s)
|
|
47
|
+
s.strip
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def on_iterable(a)
|
|
51
|
+
a.map {|x| do_strip(x) }
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def do_strip(x)
|
|
55
|
+
# x can only be a String or Numeric because type constraints have been automatically applied
|
|
56
|
+
x.is_a?(String) ? x.strip : x
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -1,5 +1,68 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
1
|
+
# Calls a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
|
2
|
+
# with the given argument unless the argument is `undef`.
|
|
3
|
+
# Returns `undef` if the argument is `undef`, and otherwise the result of giving the
|
|
4
|
+
# argument to the lambda.
|
|
5
|
+
#
|
|
6
|
+
# This is useful to process a sequence of operations where an intermediate
|
|
7
|
+
# result may be `undef` (which makes the entire sequence `undef`).
|
|
8
|
+
# The `then` function is especially useful with the function `dig` which
|
|
9
|
+
# performs in a similar way "digging out" a value in a complex structure.
|
|
10
|
+
#
|
|
11
|
+
# @example Using `dig` and `then`
|
|
12
|
+
#
|
|
13
|
+
# ```puppet
|
|
14
|
+
# $data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
|
15
|
+
# notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
|
16
|
+
# ```
|
|
17
|
+
#
|
|
18
|
+
# Would notice the value 200
|
|
19
|
+
#
|
|
20
|
+
# Contrast this with:
|
|
21
|
+
#
|
|
22
|
+
# ```puppet
|
|
23
|
+
# $data = {a => { b => [{x => 10, y => 20}, {not_x => 100, why => 200}]}}
|
|
24
|
+
# notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
|
25
|
+
# ```
|
|
26
|
+
#
|
|
27
|
+
# Which would notice `undef` since the last lookup of 'x' results in `undef` which
|
|
28
|
+
# is returned (without calling the lambda given to the `then` function).
|
|
29
|
+
#
|
|
30
|
+
# As a result there is no need for conditional logic or a temporary (non local)
|
|
31
|
+
# variable as the result is now either the wanted value (`x`) multiplied
|
|
32
|
+
# by 2 or `undef`.
|
|
33
|
+
#
|
|
34
|
+
# Calls to `then` can be chained. In the next example, a structure is using an offset based on
|
|
35
|
+
# using 1 as the index to the first element (instead of 0 which is used in the language).
|
|
36
|
+
# We are not sure if user input actually contains an index at all, or if it is
|
|
37
|
+
# outside the range of available names.args.
|
|
38
|
+
#
|
|
39
|
+
# @example Chaining calls to the `then` function
|
|
40
|
+
#
|
|
41
|
+
# ```puppet
|
|
42
|
+
# # Names to choose from
|
|
43
|
+
# $names = ['Ringo', 'Paul', 'George', 'John']
|
|
44
|
+
#
|
|
45
|
+
# # Structure where 'beatle 2' is wanted (but where the number refers
|
|
46
|
+
# # to 'Paul' because input comes from a source using 1 for the first
|
|
47
|
+
# # element).
|
|
48
|
+
#
|
|
49
|
+
# $data = ['singer', { beatle => 2 }]
|
|
50
|
+
# $picked = assert_type(String,
|
|
51
|
+
# # the data we are interested in is the second in the array,
|
|
52
|
+
# # a hash, where we want the value of the key 'beatle'
|
|
53
|
+
# $data.dig(1, 'beatle')
|
|
54
|
+
# # and we want the index in $names before the given index
|
|
55
|
+
# .then |$x| { $names[$x-1] }
|
|
56
|
+
# # so we can construct a string with that beatle's name
|
|
57
|
+
# .then |$x| { "Picked Beatle '${x}'" }
|
|
58
|
+
# )
|
|
59
|
+
# notice $picked
|
|
60
|
+
# ```
|
|
61
|
+
#
|
|
62
|
+
# Would notice "Picked Beatle 'Paul'", and would raise an error if the result
|
|
63
|
+
# was not a String.
|
|
64
|
+
#
|
|
65
|
+
# * Since 4.5.0
|
|
3
66
|
#
|
|
4
67
|
Puppet::Functions.create_function(:then) do
|
|
5
68
|
dispatch :then do
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
|
2
|
+
# recursively and repeatedly using values from a data structure, then returns the unchanged data structure, or if
|
|
3
|
+
# a lambda is not given, returns an `Iterator` for the tree.
|
|
4
|
+
#
|
|
5
|
+
# This function takes one mandatory argument, one optional, and an optional block in this order:
|
|
6
|
+
#
|
|
7
|
+
# 1. An `Array`, `Hash`, `Iterator`, or `Object` that the function will iterate over.
|
|
8
|
+
# 2. An optional hash with the options:
|
|
9
|
+
# * `include_containers` => `Optional[Boolean]` # default true - if containers should be given to the lambda
|
|
10
|
+
# * `include_values` => `Optional[Boolean]` # default true - if non containers should be given to the lambda
|
|
11
|
+
# * `include_root` => `Optional[Boolean]` # default true - if the root container should be given to the lambda
|
|
12
|
+
# * `container_type` => `Optional[Type[Variant[Array, Hash, Object]]]` # a type that determines what a container is - can only
|
|
13
|
+
# be set to a type that matches the default `Variant[Array, Hash, Object]`.
|
|
14
|
+
# * `order` => `Enum[depth_first, breadth_first]` # default ´depth_first`, the order in which elements are visited
|
|
15
|
+
# * `include_refs` => Optional[Boolean] # default `false`, if attributes in objects marked as bing of `reference` kind
|
|
16
|
+
# should be included.
|
|
17
|
+
# 3. An optional lambda, which the function calls for each element in the first argument. It must
|
|
18
|
+
# accept one or two arguments; either `$path`, and `$value`, or just `$value`.
|
|
19
|
+
#
|
|
20
|
+
# @example Using the `tree_each` function
|
|
21
|
+
#
|
|
22
|
+
# `$data.tree_each |$path, $value| { <PUPPET CODE BLOCK> }`
|
|
23
|
+
# `$data.tree_each |$value| { <PUPPET CODE BLOCK> }`
|
|
24
|
+
#
|
|
25
|
+
# or
|
|
26
|
+
#
|
|
27
|
+
# `tree_each($data) |$path, $value| { <PUPPET CODE BLOCK> }`
|
|
28
|
+
# `tree_each($data) |$value| { <PUPPET CODE BLOCK> }`
|
|
29
|
+
#
|
|
30
|
+
# The parameter `$path` is always given as an `Array` containing the path that when applied to
|
|
31
|
+
# the tree as `$data.dig(*$path) yields the `$value`.
|
|
32
|
+
# The `$value` is the value at that path.
|
|
33
|
+
#
|
|
34
|
+
# For `Array` values, the path will contain `Integer` entries with the array index,
|
|
35
|
+
# and for `Hash` values, the path will contain the hash key, which may be `Any` value.
|
|
36
|
+
# For `Object` containers, the entry is the name of the attribute (a `String`).
|
|
37
|
+
#
|
|
38
|
+
# The tree is walked in either depth-first order, or in breadth-first order under the control of the
|
|
39
|
+
# `order` option, yielding each `Array`, `Hash`, `Object`, and each entry/attribute.
|
|
40
|
+
# The default is `depth_first` which means that children are processed before siblings.
|
|
41
|
+
# An order of `breadth_first` means that siblings are processed before children.
|
|
42
|
+
#
|
|
43
|
+
# @example depth- or breadth-first order
|
|
44
|
+
#
|
|
45
|
+
# ```puppet
|
|
46
|
+
# [1, [2, 3], 4]
|
|
47
|
+
# ```
|
|
48
|
+
#
|
|
49
|
+
# Results in:
|
|
50
|
+
#
|
|
51
|
+
# If containers are skipped:
|
|
52
|
+
#
|
|
53
|
+
# * `depth_first` order `1`, `2`, `3`, `4`
|
|
54
|
+
# * `breadth_first` order `1`, `4`,`2`, `3`
|
|
55
|
+
#
|
|
56
|
+
# If containers and root, are included:
|
|
57
|
+
#
|
|
58
|
+
# * `depth_first` order `[1, [2, 3], 4]`, `1`, `[2, 3]`, `2`, `3`, `4`
|
|
59
|
+
# * `breadth_first` order `[1, [2, 3], 4]`, `1`, `[2, 3]`, `4`, `2`, `3`
|
|
60
|
+
#
|
|
61
|
+
# Typical use of the `tree_each` function include:
|
|
62
|
+
# * a more efficient way to iterate over a tree than first using `flatten` on an array
|
|
63
|
+
# as that requires a new (potentially very large) array to be created
|
|
64
|
+
# * when a tree needs to be transformed and 'pretty printed' in a template
|
|
65
|
+
# * avoiding having to write a special recursive function when tree contains hashes (flatten does
|
|
66
|
+
# not work on hashes)
|
|
67
|
+
#
|
|
68
|
+
# @example A flattened iteration over a tree excluding Collections
|
|
69
|
+
#
|
|
70
|
+
# ```puppet
|
|
71
|
+
# $data = [1, 2, [3, [4, 5]]]
|
|
72
|
+
# $data.tree_each({include_containers => false}) |$v| { notice "$v" }
|
|
73
|
+
# ```
|
|
74
|
+
#
|
|
75
|
+
# This would call the lambda 5 times with with the following values in sequence: `1`, `2`, `3`, `4`, `5`
|
|
76
|
+
#
|
|
77
|
+
# @example A flattened iteration over a tree (including containers by default)
|
|
78
|
+
#
|
|
79
|
+
# ```puppet
|
|
80
|
+
# $data = [1, 2, [3, [4, 5]]]
|
|
81
|
+
# $data.tree_each |$v| { notice "$v" }
|
|
82
|
+
# ```
|
|
83
|
+
#
|
|
84
|
+
# This would call the lambda 7 times with the following values in sequence:
|
|
85
|
+
# `1`, `2`, `[3, [4, 5]]`, `3`, `[4, 5]`, `4`, `5`
|
|
86
|
+
#
|
|
87
|
+
# @example A flattened iteration over a tree (including only non root containers)
|
|
88
|
+
#
|
|
89
|
+
# ```puppet
|
|
90
|
+
# $data = [1, 2, [3, [4, 5]]]
|
|
91
|
+
# $data.tree_each({include_values => false, include_root => false}) |$v| { notice "$v" }
|
|
92
|
+
# ```
|
|
93
|
+
#
|
|
94
|
+
# This would call the lambda 2 times with the following values in sequence:
|
|
95
|
+
# `[3, [4, 5]]`, `[4, 5]`
|
|
96
|
+
#
|
|
97
|
+
# Any Puppet Type system data type can be used to filter what is
|
|
98
|
+
# considered to be a container, but it must be a narrower type than one of
|
|
99
|
+
# the default Array, Hash, Object types - for example it is not possible to make a
|
|
100
|
+
# `String` be a container type.
|
|
101
|
+
#
|
|
102
|
+
# @example Only `Array` as container type
|
|
103
|
+
#
|
|
104
|
+
# ```puppet
|
|
105
|
+
# $data = [1, {a => 'hello', b => [100, 200]}, [3, [4, 5]]]
|
|
106
|
+
# $data.tree_each({container_type => Array, include_containers => false} |$v| { notice "$v" }
|
|
107
|
+
# ```
|
|
108
|
+
#
|
|
109
|
+
# Would call the lambda 5 times with `1`, `{a => 'hello', b => [100, 200]}`, `3`, `4`, `5`
|
|
110
|
+
#
|
|
111
|
+
# **Chaining** When calling `tree_each` without a lambda the function produces an `Iterator`
|
|
112
|
+
# that can be chained into another iteration. Thus it is easy to use one of:
|
|
113
|
+
#
|
|
114
|
+
# * `reverse_each` - get "leaves before root"
|
|
115
|
+
# * `filter` - prune the tree
|
|
116
|
+
# * `map` - transform each element
|
|
117
|
+
# * `reduce` - produce something else
|
|
118
|
+
#
|
|
119
|
+
# Note than when chaining, the value passed on is a `Tuple` with `[path, value]`.
|
|
120
|
+
#
|
|
121
|
+
# @example Pruning a tree
|
|
122
|
+
#
|
|
123
|
+
# ```puppet
|
|
124
|
+
# # A tree of some complexity (here very simple for readability)
|
|
125
|
+
# $tree = [
|
|
126
|
+
# { name => 'user1', status => 'inactive', id => '10'},
|
|
127
|
+
# { name => 'user2', status => 'active', id => '20'}
|
|
128
|
+
# ]
|
|
129
|
+
# notice $tree.tree_each.filter |$v| {
|
|
130
|
+
# $value = $v[1]
|
|
131
|
+
# $value =~ Hash and $value[status] == active
|
|
132
|
+
# }
|
|
133
|
+
# ```
|
|
134
|
+
#
|
|
135
|
+
# Would notice `[[[1], {name => user2, status => active, id => 20}]]`, which can then be processed
|
|
136
|
+
# further as each filtered result appears as a `Tuple` with `[path, value]`.
|
|
137
|
+
#
|
|
138
|
+
#
|
|
139
|
+
# For general examples that demonstrates iteration see the Puppet
|
|
140
|
+
# [iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
|
141
|
+
# documentation.
|
|
142
|
+
#
|
|
143
|
+
# @since 5.0.0
|
|
144
|
+
#
|
|
145
|
+
Puppet::Functions.create_function(:tree_each) do
|
|
146
|
+
|
|
147
|
+
local_types do
|
|
148
|
+
type "OptionsType = Struct[{\
|
|
149
|
+
container_type => Optional[Type],\
|
|
150
|
+
include_root => Optional[Boolean],
|
|
151
|
+
include_containers => Optional[Boolean],\
|
|
152
|
+
include_values => Optional[Boolean],\
|
|
153
|
+
order => Optional[Enum[depth_first, breadth_first]],\
|
|
154
|
+
include_refs => Optional[Boolean]\
|
|
155
|
+
}]"
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
dispatch :tree_Enumerable2 do
|
|
159
|
+
param 'Variant[Iterator, Array, Hash, Object]', :tree
|
|
160
|
+
optional_param 'OptionsType', :options
|
|
161
|
+
block_param 'Callable[2,2]', :block
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
dispatch :tree_Enumerable1 do
|
|
165
|
+
param 'Variant[Iterator, Array, Hash, Object]', :tree
|
|
166
|
+
optional_param 'OptionsType', :options
|
|
167
|
+
block_param 'Callable[1,1]', :block
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
dispatch :tree_Iterable do
|
|
171
|
+
param 'Variant[Iterator, Array, Hash, Object]', :tree
|
|
172
|
+
optional_param 'OptionsType', :options
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def tree_Enumerable1(enum, options = {}, &block)
|
|
176
|
+
iterator(enum, options).each {|_, v| yield(v) }
|
|
177
|
+
enum
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def tree_Enumerable2(enum, options = {}, &block)
|
|
181
|
+
iterator(enum, options).each {|path, v| yield(path, v) }
|
|
182
|
+
enum
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def tree_Iterable(enum, options = {}, &block)
|
|
186
|
+
Puppet::Pops::Types::Iterable.on(iterator(enum, options))
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def iterator(enum, options)
|
|
190
|
+
if depth_first?(options)
|
|
191
|
+
Puppet::Pops::Types::Iterable::DepthFirstTreeIterator.new(enum, options)
|
|
192
|
+
else
|
|
193
|
+
Puppet::Pops::Types::Iterable::BreadthFirstTreeIterator.new(enum, options)
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def depth_first?(options)
|
|
198
|
+
(order = options['order']).nil? ? true : order == 'depth_first'
|
|
199
|
+
end
|
|
200
|
+
end
|
|
@@ -1,4 +1,45 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Returns the data type of a given value with a given degree of generality.
|
|
2
|
+
#
|
|
3
|
+
# ```puppet
|
|
4
|
+
# type InferenceFidelity = Enum[generalized, reduced, detailed]
|
|
5
|
+
#
|
|
6
|
+
# function type(Any $value, InferenceFidelity $fidelity = 'detailed') # returns Type
|
|
7
|
+
# ```
|
|
8
|
+
#
|
|
9
|
+
# @example Using `type`
|
|
10
|
+
#
|
|
11
|
+
# ``` puppet
|
|
12
|
+
# notice type(42) =~ Type[Integer]
|
|
13
|
+
# ```
|
|
14
|
+
#
|
|
15
|
+
# Would notice `true`.
|
|
16
|
+
#
|
|
17
|
+
# By default, the best possible inference is made where all details are retained.
|
|
18
|
+
# This is good when the type is used for further type calculations but is overwhelmingly
|
|
19
|
+
# rich in information if it is used in a error message.
|
|
20
|
+
#
|
|
21
|
+
# The optional argument `$fidelity` may be given as (from lowest to highest fidelity):
|
|
22
|
+
#
|
|
23
|
+
# * `generalized` - reduces to common type and drops size constraints
|
|
24
|
+
# * `reduced` - reduces to common type in collections
|
|
25
|
+
# * `detailed` - (default) all details about inferred types is retained
|
|
26
|
+
#
|
|
27
|
+
# @example Using `type()` with different inference fidelity:
|
|
28
|
+
#
|
|
29
|
+
# ``` puppet
|
|
30
|
+
# notice type([3.14, 42], 'generalized')
|
|
31
|
+
# notice type([3.14, 42], 'reduced'')
|
|
32
|
+
# notice type([3.14, 42], 'detailed')
|
|
33
|
+
# notice type([3.14, 42])
|
|
34
|
+
# ```
|
|
35
|
+
#
|
|
36
|
+
# Would notice the four values:
|
|
37
|
+
#
|
|
38
|
+
# 1. 'Array[Numeric]'
|
|
39
|
+
# 2. 'Array[Numeric, 2, 2]'
|
|
40
|
+
# 3. 'Tuple[Float[3.14], Integer[42,42]]]'
|
|
41
|
+
# 4. 'Tuple[Float[3.14], Integer[42,42]]]'
|
|
42
|
+
#
|
|
2
43
|
# @since 4.4.0
|
|
3
44
|
#
|
|
4
45
|
Puppet::Functions.create_function(:type) do
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Produces a unique set of values from an `Iterable` argument.
|
|
2
2
|
#
|
|
3
3
|
# * If the argument is a `String`, the unique set of characters are returned as a new `String`.
|
|
4
4
|
# * If the argument is a `Hash`, the resulting hash associates a set of keys with a set of unique values.
|
|
@@ -11,21 +11,21 @@
|
|
|
11
11
|
#
|
|
12
12
|
# @example Using unique with a String
|
|
13
13
|
#
|
|
14
|
-
#
|
|
14
|
+
# ```puppet
|
|
15
15
|
# # will produce 'abc'
|
|
16
16
|
# "abcaabb".unique
|
|
17
|
-
#
|
|
17
|
+
# ```
|
|
18
18
|
#
|
|
19
19
|
# @example Using unique with an Array
|
|
20
20
|
#
|
|
21
|
-
#
|
|
21
|
+
# ```puppet
|
|
22
22
|
# # will produce ['a', 'b', 'c']
|
|
23
23
|
# ['a', 'b', 'c', 'a', 'a', 'b'].unique
|
|
24
|
-
#
|
|
24
|
+
# ```
|
|
25
25
|
#
|
|
26
26
|
# @example Using unique with a Hash
|
|
27
27
|
#
|
|
28
|
-
#
|
|
28
|
+
# ```puppet
|
|
29
29
|
# # will produce { ['a', 'b'] => [10], ['c'] => [20]}
|
|
30
30
|
# {'a' => 10, 'b' => 10, 'c' => 20}.unique
|
|
31
31
|
#
|
|
@@ -34,18 +34,18 @@
|
|
|
34
34
|
#
|
|
35
35
|
# # will produce { 'b' => 10, 'c' => 20 } (use last key with first value)
|
|
36
36
|
# Hash.new({'a' => 10, 'b' => 10, 'c' => 20}.unique.map |$k, $v| { [ $k[-1] , $v[0]] })
|
|
37
|
-
#
|
|
37
|
+
# ```
|
|
38
38
|
#
|
|
39
39
|
# @example Using unique with an Iterable
|
|
40
40
|
#
|
|
41
|
-
#
|
|
41
|
+
# ```
|
|
42
42
|
# # will produce [3, 2, 1]
|
|
43
43
|
# [1,2,2,3,3].reverse_each.unique
|
|
44
|
-
#
|
|
44
|
+
# ```
|
|
45
45
|
#
|
|
46
46
|
# @example Using unique with a lambda
|
|
47
47
|
#
|
|
48
|
-
#
|
|
48
|
+
# ```puppet
|
|
49
49
|
# # will produce [['sam', 'smith'], ['sue', 'smith']]
|
|
50
50
|
# [['sam', 'smith'], ['sam', 'brown'], ['sue', 'smith']].unique |$x| { $x[0] }
|
|
51
51
|
#
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
#
|
|
58
58
|
# # will produce {[a] => [10], [b, c, d, e] => [11, 12, 100]}
|
|
59
59
|
# {a => 10, b => 11, c => 12, d => 100, e => 11}.unique |$v| { if $v > 10 { big } else { $v } }
|
|
60
|
-
#
|
|
60
|
+
# ```
|
|
61
61
|
#
|
|
62
62
|
# Note that for `Hash` the result is slightly different than for the other data types. For those the result contains the
|
|
63
63
|
# *first-found* unique value, but for `Hash` it contains associations from a set of keys to the set of values clustered by the
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
#
|
|
71
71
|
# @example turning a string or array into a hash with index keys
|
|
72
72
|
#
|
|
73
|
-
#
|
|
73
|
+
# ```puppet
|
|
74
74
|
# # Array ['a', 'b', 'c'] to Hash with index results in
|
|
75
75
|
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
|
76
76
|
# Hash(['a', 'b', 'c'].map |$i, $v| { [$i, $v]})
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
|
80
80
|
# Hash(Array("abc").map |$i,$v| { [$i, $v]})
|
|
81
81
|
# "abc".to(Array).map |$i,$v| { [$i, $v]}.to(Hash)
|
|
82
|
-
#
|
|
82
|
+
# ```
|
|
83
83
|
#
|
|
84
84
|
# @since Puppet 5.0.0
|
|
85
85
|
#
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
# Unwraps a Sensitive value and returns the wrapped object.
|
|
2
2
|
#
|
|
3
|
-
#
|
|
3
|
+
# @example Usage of unwrap
|
|
4
|
+
#
|
|
5
|
+
# ```puppet
|
|
4
6
|
# $plaintext = 'hunter2'
|
|
5
7
|
# $pw = Sensitive.new($plaintext)
|
|
6
8
|
# notice("Wrapped object is $pw") #=> Prints "Wrapped object is Sensitive [value redacted]"
|
|
7
9
|
# $unwrapped = $pw.unwrap
|
|
8
10
|
# notice("Unwrapped object is $unwrapped") #=> Prints "Unwrapped object is hunter2"
|
|
9
|
-
#
|
|
11
|
+
# ```
|
|
10
12
|
#
|
|
11
13
|
# You can optionally pass a block to unwrap in order to limit the scope where the
|
|
12
14
|
# unwrapped value is visible.
|
|
13
15
|
#
|
|
14
|
-
#
|
|
16
|
+
# @example Unwrapping with a block of code
|
|
17
|
+
#
|
|
18
|
+
# ```puppet
|
|
15
19
|
# $pw = Sensitive.new('hunter2')
|
|
16
20
|
# notice("Wrapped object is $pw") #=> Prints "Wrapped object is Sensitive [value redacted]"
|
|
17
21
|
# $pw.unwrap |$unwrapped| {
|
|
@@ -19,7 +23,7 @@
|
|
|
19
23
|
# Sensitive.new($conf)
|
|
20
24
|
# } #=> Returns a new Sensitive object containing an interpolated config file
|
|
21
25
|
# # $unwrapped is now out of scope
|
|
22
|
-
#
|
|
26
|
+
# ```
|
|
23
27
|
#
|
|
24
28
|
# @since 4.0.0
|
|
25
29
|
#
|