puppet 4.10.0 → 5.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.
- data/CONTRIBUTING.md +17 -0
- data/Gemfile +6 -10
- data/MAINTAINERS +0 -5
- data/Rakefile +2 -1
- data/conf/auth.conf +21 -0
- data/conf/fileserver.conf +7 -12
- data/conf/hiera.yaml +11 -0
- data/ext/debian/puppet-common.install +0 -1
- data/ext/debian/puppet-common.manpages +0 -2
- data/ext/hiera/hiera.yaml +15 -0
- data/ext/logcheck/puppet +1 -1
- data/ext/project_data.yaml +3 -6
- data/ext/puppet-test +0 -24
- data/ext/rack/config.ru +2 -2
- data/ext/redhat/puppet.spec.erb +0 -3
- data/ext/windows/service/daemon.rb +8 -14
- data/install.rb +1 -1
- data/lib/hiera/puppet_function.rb +1 -1
- data/lib/puppet/agent/disabler.rb +3 -3
- data/lib/puppet/agent/locker.rb +3 -3
- data/lib/puppet/agent.rb +27 -16
- data/lib/puppet/application/agent.rb +16 -9
- data/lib/puppet/application/apply.rb +19 -17
- data/lib/puppet/application/cert.rb +2 -2
- data/lib/puppet/application/describe.rb +2 -2
- data/lib/puppet/application/device.rb +71 -46
- data/lib/puppet/application/doc.rb +9 -9
- data/lib/puppet/application/face_base.rb +8 -13
- data/lib/puppet/application/filebucket.rb +8 -8
- data/lib/puppet/application/lookup.rb +101 -88
- data/lib/puppet/application/master.rb +15 -23
- data/lib/puppet/application/resource.rb +20 -17
- data/lib/puppet/application.rb +11 -11
- data/lib/puppet/configurer/downloader.rb +2 -2
- data/lib/puppet/configurer/fact_handler.rb +13 -4
- data/lib/puppet/configurer.rb +29 -28
- data/lib/puppet/context/trusted_information.rb +1 -1
- data/lib/puppet/context.rb +5 -5
- data/lib/puppet/defaults.rb +58 -104
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/etc.rb +75 -39
- data/lib/puppet/external/pson/common.rb +4 -0
- data/lib/puppet/face/ca.rb +50 -43
- data/lib/puppet/face/catalog/select.rb +4 -4
- data/lib/puppet/face/catalog.rb +2 -2
- data/lib/puppet/face/certificate.rb +21 -21
- data/lib/puppet/face/certificate_request.rb +1 -1
- data/lib/puppet/face/certificate_revocation_list.rb +1 -1
- data/lib/puppet/face/config.rb +10 -10
- data/lib/puppet/face/epp.rb +38 -38
- data/lib/puppet/face/facts.rb +5 -5
- data/lib/puppet/face/generate.rb +8 -8
- data/lib/puppet/face/help.rb +8 -8
- data/lib/puppet/face/key.rb +3 -3
- data/lib/puppet/face/man.rb +7 -7
- data/lib/puppet/face/module/build.rb +7 -7
- data/lib/puppet/face/module/changes.rb +6 -6
- data/lib/puppet/face/module/generate.rb +24 -24
- data/lib/puppet/face/module/install.rb +13 -9
- data/lib/puppet/face/module/list.rb +16 -12
- data/lib/puppet/face/module/search.rb +4 -4
- data/lib/puppet/face/module/uninstall.rb +13 -10
- data/lib/puppet/face/module/upgrade.rb +11 -7
- data/lib/puppet/face/module.rb +3 -3
- data/lib/puppet/face/node/clean.rb +8 -8
- data/lib/puppet/face/node.rb +6 -6
- data/lib/puppet/face/parser.rb +17 -17
- data/lib/puppet/face/plugin.rb +7 -7
- data/lib/puppet/face/report.rb +10 -10
- data/lib/puppet/face/resource.rb +13 -13
- data/lib/puppet/face/status.rb +5 -5
- data/lib/puppet/feature/base.rb +4 -3
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +9 -9
- data/lib/puppet/file_bucket/file.rb +4 -17
- data/lib/puppet/file_serving/base.rb +3 -3
- data/lib/puppet/file_serving/configuration/parser.rb +12 -12
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/content.rb +1 -1
- data/lib/puppet/file_serving/fileset.rb +7 -5
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +9 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/modules.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_serving/terminus_selector.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +6 -6
- data/lib/puppet/file_system/uniquefile.rb +2 -2
- data/lib/puppet/file_system/windows.rb +3 -3
- data/lib/puppet/forge/cache.rb +1 -0
- data/lib/puppet/forge/errors.rb +12 -12
- data/lib/puppet/forge/repository.rb +2 -1
- data/lib/puppet/forge.rb +10 -8
- data/lib/puppet/functions/annotate.rb +108 -0
- data/lib/puppet/functions/binary_file.rb +1 -1
- data/lib/puppet/functions/call.rb +42 -0
- data/lib/puppet/functions/defined.rb +4 -4
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +16 -12
- data/lib/puppet/functions/hiera.rb +9 -2
- data/lib/puppet/functions/hiera_array.rb +9 -2
- data/lib/puppet/functions/hiera_hash.rb +10 -2
- data/lib/puppet/functions/hiera_include.rb +18 -4
- data/lib/puppet/functions/hocon_data.rb +8 -2
- data/lib/puppet/functions/json_data.rb +5 -1
- data/lib/puppet/functions/match.rb +2 -2
- data/lib/puppet/functions/reduce.rb +14 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/slice.rb +3 -3
- data/lib/puppet/functions/strftime.rb +10 -2
- data/lib/puppet/functions/unique.rb +132 -0
- data/lib/puppet/functions/yaml_data.rb +4 -0
- data/lib/puppet/functions.rb +17 -45
- data/lib/puppet/generate/models/type/type.rb +6 -5
- data/lib/puppet/generate/templates/type/pcore.erb +1 -1
- data/lib/puppet/generate/type.rb +12 -12
- data/lib/puppet/graph/relationship_graph.rb +4 -1
- data/lib/puppet/graph/simple_graph.rb +45 -66
- data/lib/puppet/indirector/catalog/compiler.rb +61 -44
- data/lib/puppet/indirector/catalog/json.rb +18 -0
- data/lib/puppet/indirector/certificate/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_request/ca.rb +3 -3
- data/lib/puppet/indirector/certificate_request/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_status/file.rb +6 -6
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +18 -18
- data/lib/puppet/indirector/file_bucket_file/file.rb +9 -8
- data/lib/puppet/indirector/file_metadata/http.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +10 -2
- data/lib/puppet/indirector/hiera.rb +5 -3
- data/lib/puppet/indirector/indirection.rb +13 -15
- data/lib/puppet/indirector/json.rb +11 -12
- data/lib/puppet/indirector/key/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/key/file.rb +2 -2
- data/lib/puppet/indirector/ldap.rb +6 -5
- data/lib/puppet/indirector/memory.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +8 -7
- data/lib/puppet/indirector/node/exec.rb +8 -6
- data/lib/puppet/indirector/node/ldap.rb +9 -7
- data/lib/puppet/indirector/node/plain.rb +2 -1
- data/lib/puppet/indirector/node/write_only_yaml.rb +6 -1
- data/lib/puppet/indirector/node/yaml.rb +0 -9
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +13 -0
- data/lib/puppet/indirector/request.rb +9 -16
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/indirector/rest.rb +28 -10
- data/lib/puppet/indirector/ssl_file.rb +9 -9
- data/lib/puppet/indirector/terminus.rb +3 -3
- data/lib/puppet/indirector/yaml.rb +5 -5
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/info_service/class_information_service.rb +4 -5
- data/lib/puppet/interface/face_collection.rb +6 -1
- data/lib/puppet/interface.rb +2 -6
- data/lib/puppet/module.rb +12 -7
- data/lib/puppet/module_tool/applications/application.rb +8 -9
- data/lib/puppet/module_tool/applications/builder.rb +5 -6
- data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
- data/lib/puppet/module_tool/applications/installer.rb +11 -10
- data/lib/puppet/module_tool/applications/searcher.rb +1 -1
- data/lib/puppet/module_tool/applications/uninstaller.rb +2 -1
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -3
- data/lib/puppet/module_tool/applications/upgrader.rb +10 -9
- data/lib/puppet/module_tool/contents_description.rb +1 -1
- data/lib/puppet/module_tool/dependency.rb +0 -1
- data/lib/puppet/module_tool/errors/installer.rb +22 -22
- data/lib/puppet/module_tool/errors/shared.rb +44 -42
- data/lib/puppet/module_tool/errors/uninstaller.rb +13 -9
- data/lib/puppet/module_tool/errors/upgrader.rb +11 -11
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/installed_modules.rb +3 -3
- data/lib/puppet/module_tool/local_tarball.rb +4 -4
- data/lib/puppet/module_tool/metadata.rb +16 -13
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +10 -4
- data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +2 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +1 -1
- data/lib/puppet/module_tool/tar.rb +5 -4
- data/lib/puppet/module_tool.rb +7 -3
- data/lib/puppet/network/auth_config_parser.rb +12 -11
- data/lib/puppet/network/authconfig.rb +2 -2
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/format.rb +7 -7
- data/lib/puppet/network/format_handler.rb +12 -9
- data/lib/puppet/network/format_support.rb +11 -5
- data/lib/puppet/network/formats.rb +38 -27
- data/lib/puppet/network/http/api/indirected_routes.rb +72 -33
- data/lib/puppet/network/http/api/master/v3/environment.rb +33 -14
- data/lib/puppet/network/http/compression.rb +10 -7
- data/lib/puppet/network/http/connection.rb +19 -15
- data/lib/puppet/network/http/error.rb +14 -10
- data/lib/puppet/network/http/handler.rb +8 -4
- data/lib/puppet/network/http/issues.rb +1 -0
- data/lib/puppet/network/http/pool.rb +1 -1
- data/lib/puppet/network/http/rack/rest.rb +3 -2
- data/lib/puppet/network/http/rack.rb +2 -2
- data/lib/puppet/network/http/request.rb +34 -20
- data/lib/puppet/network/http/response.rb +13 -1
- data/lib/puppet/network/http/webrick/rest.rb +2 -2
- data/lib/puppet/network/http/webrick.rb +5 -5
- data/lib/puppet/network/rights.rb +6 -6
- data/lib/puppet/network/server.rb +2 -2
- data/lib/puppet/node/environment.rb +21 -4
- data/lib/puppet/node/facts.rb +0 -5
- data/lib/puppet/node.rb +25 -13
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/path.rb +3 -3
- data/lib/puppet/parameter/value_collection.rb +4 -4
- data/lib/puppet/parameter.rb +3 -28
- data/lib/puppet/parser/ast/node.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -3
- data/lib/puppet/parser/ast/resource.rb +1 -1
- data/lib/puppet/parser/ast/resource_instance.rb +1 -1
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -2
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +6 -9
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +1 -1
- data/lib/puppet/parser/compiler.rb +44 -113
- data/lib/puppet/parser/e4_parser_adapter.rb +1 -2
- data/lib/puppet/parser/environment_compiler.rb +13 -15
- data/lib/puppet/parser/functions/contain.rb +1 -1
- data/lib/puppet/parser/functions/create_resources.rb +11 -3
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +5 -4
- data/lib/puppet/parser/functions/hiera_include.rb +1 -1
- data/lib/puppet/parser/functions/include.rb +2 -1
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +14 -1
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions.rb +6 -6
- data/lib/puppet/parser/parser_factory.rb +0 -30
- data/lib/puppet/parser/relationship.rb +49 -20
- data/lib/puppet/parser/resource/param.rb +0 -3
- data/lib/puppet/parser/resource.rb +31 -30
- data/lib/puppet/parser/scope.rb +124 -170
- data/lib/puppet/parser/templatewrapper.rb +2 -2
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/configuration.rb +15 -67
- data/lib/puppet/plugins/syntax_checkers.rb +6 -11
- data/lib/puppet/pops/adaptable.rb +8 -3
- data/lib/puppet/pops/adapters.rb +33 -87
- data/lib/puppet/pops/evaluator/access_operator.rb +10 -39
- data/lib/puppet/pops/evaluator/collector_transformer.rb +9 -14
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +3 -3
- data/lib/puppet/pops/evaluator/compare_operator.rb +7 -7
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +45 -37
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -9
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -2
- data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +26 -9
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +17 -1
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +44 -30
- data/lib/puppet/pops/functions/dispatch.rb +1 -6
- data/lib/puppet/pops/issues.rb +189 -161
- data/lib/puppet/pops/loader/base_loader.rb +2 -2
- data/lib/puppet/pops/loader/gem_support.rb +2 -2
- data/lib/puppet/pops/loader/loader.rb +4 -0
- data/lib/puppet/pops/loader/module_loaders.rb +59 -10
- data/lib/puppet/pops/loader/predefined_loader.rb +1 -6
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +8 -8
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -10
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +3 -3
- data/lib/puppet/pops/loader/static_loader.rb +32 -63
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -8
- data/lib/puppet/pops/loader/typed_name.rb +6 -0
- data/lib/puppet/pops/loaders.rb +22 -20
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/data_provider.rb +3 -18
- data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/global_data_provider.rb +7 -10
- data/lib/puppet/pops/lookup/hiera_config.rb +13 -34
- data/lib/puppet/pops/lookup/interpolation.rb +9 -8
- data/lib/puppet/pops/lookup/invocation.rb +13 -3
- data/lib/puppet/pops/lookup/lookup_adapter.rb +30 -69
- data/lib/puppet/pops/lookup/lookup_key.rb +2 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +11 -3
- data/lib/puppet/pops/lookup/sub_lookup.rb +12 -10
- data/lib/puppet/pops/lookup.rb +7 -5
- data/lib/puppet/pops/merge_strategy.rb +16 -1
- data/lib/puppet/pops/model/ast.pp +692 -0
- data/lib/puppet/pops/model/ast.rb +4833 -0
- data/lib/puppet/pops/model/ast_transformer.rb +9 -10
- data/lib/puppet/pops/model/factory.rb +454 -527
- data/lib/puppet/pops/model/model_label_provider.rb +3 -2
- data/lib/puppet/pops/model/model_tree_dumper.rb +8 -7
- data/lib/puppet/pops/parser/egrammar.ra +66 -60
- data/lib/puppet/pops/parser/eparser.rb +1483 -1578
- data/lib/puppet/pops/parser/evaluating_parser.rb +5 -5
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/lexer2.rb +27 -36
- data/lib/puppet/pops/parser/locator.rb +39 -16
- data/lib/puppet/pops/parser/parser_support.rb +25 -29
- data/lib/puppet/pops/pcore.rb +28 -21
- data/lib/puppet/pops/resource/param.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +3 -3
- data/lib/puppet/pops/semantic_error.rb +12 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +9 -1
- data/lib/puppet/pops/serialization/deserializer.rb +8 -5
- data/lib/puppet/pops/serialization/from_data_converter.rb +181 -0
- data/lib/puppet/pops/serialization/json.rb +4 -4
- data/lib/puppet/pops/serialization/json_path.rb +126 -0
- data/lib/puppet/pops/serialization/object.rb +6 -6
- data/lib/puppet/pops/serialization/serializer.rb +32 -11
- data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
- data/lib/puppet/pops/serialization.rb +25 -1
- data/lib/puppet/pops/time/timespan.rb +11 -11
- data/lib/puppet/pops/time/timestamp.rb +8 -8
- data/lib/puppet/pops/types/annotatable.rb +7 -7
- data/lib/puppet/pops/types/annotation.rb +71 -0
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/enumeration.rb +2 -2
- data/lib/puppet/pops/types/iterable.rb +2 -2
- data/lib/puppet/pops/types/p_binary_type.rb +7 -1
- data/lib/puppet/pops/types/p_meta_type.rb +16 -12
- data/lib/puppet/pops/types/p_object_type.rb +135 -96
- data/lib/puppet/pops/types/p_runtime_type.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +6 -2
- data/lib/puppet/pops/types/p_timespan_type.rb +55 -4
- data/lib/puppet/pops/types/p_type_set_type.rb +44 -36
- data/lib/puppet/pops/types/puppet_object.rb +13 -3
- data/lib/puppet/pops/types/ruby_generator.rb +291 -127
- data/lib/puppet/pops/types/ruby_method.rb +31 -0
- data/lib/puppet/pops/types/string_converter.rb +125 -59
- data/lib/puppet/pops/types/type_calculator.rb +55 -93
- data/lib/puppet/pops/types/type_factory.rb +34 -6
- data/lib/puppet/pops/types/type_formatter.rb +63 -15
- data/lib/puppet/pops/types/type_mismatch_describer.rb +8 -7
- data/lib/puppet/pops/types/type_parser.rb +28 -13
- data/lib/puppet/pops/types/type_set_reference.rb +7 -7
- data/lib/puppet/pops/types/types.rb +186 -186
- data/lib/puppet/pops/utils.rb +0 -24
- data/lib/puppet/pops/validation/checker4_0.rb +89 -75
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +3 -9
- data/lib/puppet/pops/visitor.rb +21 -0
- data/lib/puppet/pops.rb +7 -37
- data/lib/puppet/property/ensure.rb +3 -3
- data/lib/puppet/property/list.rb +1 -10
- data/lib/puppet/property.rb +17 -14
- data/lib/puppet/provider/aixobject.rb +7 -7
- data/lib/puppet/provider/augeas/augeas.rb +37 -37
- data/lib/puppet/provider/command.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +2 -2
- data/lib/puppet/provider/exec/posix.rb +4 -4
- data/lib/puppet/provider/exec/windows.rb +3 -3
- data/lib/puppet/provider/exec.rb +4 -4
- data/lib/puppet/provider/file/posix.rb +5 -5
- data/lib/puppet/provider/file/windows.rb +4 -4
- data/lib/puppet/provider/group/aix.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +2 -2
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +9 -9
- data/lib/puppet/provider/maillist/mailman.rb +2 -2
- data/lib/puppet/provider/mcx/mcxcontent.rb +3 -3
- data/lib/puppet/provider/mount/parsed.rb +10 -8
- data/lib/puppet/provider/mount.rb +2 -1
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
- data/lib/puppet/provider/nameservice.rb +18 -10
- data/lib/puppet/provider/network_device.rb +2 -1
- data/lib/puppet/provider/package/aix.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +4 -4
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +2 -2
- data/lib/puppet/provider/package/blastwave.rb +4 -4
- data/lib/puppet/provider/package/dpkg.rb +3 -3
- data/lib/puppet/provider/package/fink.rb +3 -3
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +6 -6
- data/lib/puppet/provider/package/hpux.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +15 -12
- data/lib/puppet/provider/package/openbsd.rb +4 -4
- data/lib/puppet/provider/package/opkg.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +9 -9
- data/lib/puppet/provider/package/pkg.rb +9 -9
- data/lib/puppet/provider/package/pkgdmg.rb +4 -4
- data/lib/puppet/provider/package/pkgin.rb +3 -3
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +6 -6
- data/lib/puppet/provider/package/portage.rb +167 -59
- data/lib/puppet/provider/package/ports.rb +3 -3
- data/lib/puppet/provider/package/portupgrade.rb +4 -4
- data/lib/puppet/provider/package/rpm.rb +7 -4
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +3 -2
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/urpmi.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +3 -3
- data/lib/puppet/provider/package/windows.rb +4 -4
- data/lib/puppet/provider/package/yum.rb +13 -13
- data/lib/puppet/provider/package/zypper.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/service/upstart.rb +0 -2
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +3 -3
- data/lib/puppet/provider.rb +2 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +2 -2
- data/lib/puppet/relationship.rb +7 -9
- data/lib/puppet/reports/http.rb +6 -2
- data/lib/puppet/resource/capability_finder.rb +2 -2
- data/lib/puppet/resource/catalog.rb +26 -41
- data/lib/puppet/resource/status.rb +13 -24
- data/lib/puppet/resource/type.rb +13 -61
- data/lib/puppet/resource/type_collection.rb +30 -23
- data/lib/puppet/resource.rb +85 -108
- data/lib/puppet/settings/array_setting.rb +1 -1
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/boolean_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +2 -2
- data/lib/puppet/settings/duration_setting.rb +1 -1
- data/lib/puppet/settings/enum_setting.rb +1 -1
- data/lib/puppet/settings/environment_conf.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +2 -2
- data/lib/puppet/settings/priority_setting.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +1 -1
- data/lib/puppet/settings/symbolic_enum_setting.rb +1 -1
- data/lib/puppet/settings/terminus_setting.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/ssl/base.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +13 -13
- data/lib/puppet/ssl/certificate_authority.rb +21 -21
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +14 -14
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/certificate_revocation_list.rb +3 -3
- data/lib/puppet/ssl/host.rb +29 -29
- data/lib/puppet/ssl/inventory.rb +1 -1
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/oids.rb +5 -5
- data/lib/puppet/ssl/validator/default_validator.rb +3 -4
- data/lib/puppet/syntax_checkers/base64.rb +7 -7
- data/lib/puppet/syntax_checkers/json.rb +5 -5
- data/lib/puppet/test/test_helper.rb +0 -4
- data/lib/puppet/transaction/additional_resource_generator.rb +4 -3
- data/lib/puppet/transaction/event.rb +19 -8
- data/lib/puppet/transaction/event_manager.rb +6 -6
- data/lib/puppet/transaction/persistence.rb +6 -6
- data/lib/puppet/transaction/report.rb +35 -41
- data/lib/puppet/transaction/resource_harness.rb +14 -12
- data/lib/puppet/transaction.rb +38 -20
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +14 -31
- data/lib/puppet/type/exec.rb +48 -42
- data/lib/puppet/type/file/content.rb +1 -1
- data/lib/puppet/type/file/group.rb +3 -3
- data/lib/puppet/type/file/mode.rb +10 -6
- data/lib/puppet/type/file/owner.rb +3 -3
- data/lib/puppet/type/file/selcontext.rb +18 -1
- data/lib/puppet/type/file/source.rb +14 -4
- data/lib/puppet/type/file.rb +21 -22
- data/lib/puppet/type/filebucket.rb +3 -8
- data/lib/puppet/type/group.rb +2 -2
- data/lib/puppet/type/host.rb +6 -6
- data/lib/puppet/type/interface.rb +1 -1
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +1 -1
- data/lib/puppet/type/mailalias.rb +2 -18
- data/lib/puppet/type/maillist.rb +1 -1
- data/lib/puppet/type/mount.rb +8 -8
- data/lib/puppet/type/notify.rb +2 -0
- data/lib/puppet/type/package.rb +5 -5
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/scheduled_task.rb +4 -4
- data/lib/puppet/type/service.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +3 -19
- data/lib/puppet/type/sshkey.rb +4 -4
- data/lib/puppet/type/tidy.rb +15 -11
- data/lib/puppet/type/user.rb +29 -27
- data/lib/puppet/type/yumrepo.rb +8 -8
- data/lib/puppet/type/zone.rb +7 -7
- data/lib/puppet/type/zpool.rb +3 -3
- data/lib/puppet/type.rb +0 -6
- data/lib/puppet/util/at_fork/noop.rb +18 -0
- data/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/lib/puppet/util/at_fork.rb +35 -0
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/character_encoding.rb +77 -74
- data/lib/puppet/util/classgen.rb +4 -4
- data/lib/puppet/util/command_line/puppet_option_parser.rb +3 -3
- data/lib/puppet/util/command_line/trollop.rb +31 -31
- data/lib/puppet/util/command_line.rb +4 -4
- data/lib/puppet/util/diff.rb +1 -1
- data/lib/puppet/util/errors.rb +4 -4
- data/lib/puppet/util/execution.rb +8 -8
- data/lib/puppet/util/feature.rb +5 -5
- data/lib/puppet/util/fileparsing.rb +8 -8
- data/lib/puppet/util/filetype.rb +15 -15
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +4 -4
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/json_lockfile.rb +4 -4
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/ldap/manager.rb +2 -2
- data/lib/puppet/util/limits.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +10 -16
- data/lib/puppet/util/log.rb +23 -16
- data/lib/puppet/util/logging.rb +11 -8
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +30 -67
- data/lib/puppet/util/network_device/cisco/device.rb +7 -7
- data/lib/puppet/util/network_device/cisco/interface.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +6 -6
- data/lib/puppet/util/network_device/transport/ssh.rb +6 -6
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/plist.rb +4 -2
- data/lib/puppet/util/posix.rb +5 -5
- data/lib/puppet/util/profiler/wall_clock.rb +1 -1
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/psych_support.rb +3 -11
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc.rb +4 -4
- data/lib/puppet/util/reference.rb +5 -5
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/retry_action.rb +2 -2
- data/lib/puppet/util/selinux.rb +54 -12
- data/lib/puppet/util/splayer.rb +1 -1
- data/lib/puppet/util/storage.rb +5 -5
- data/lib/puppet/util/suidmanager.rb +4 -4
- data/lib/puppet/util/symbolic_file_mode.rb +9 -9
- data/lib/puppet/util/tag_set.rb +1 -4
- data/lib/puppet/util/tagging.rb +2 -2
- data/lib/puppet/util/windows/adsi.rb +14 -14
- data/lib/puppet/util/windows/api_types.rb +5 -2
- data/lib/puppet/util/windows/com.rb +4 -4
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/eventlog.rb +192 -0
- data/lib/puppet/util/windows/file.rb +4 -4
- data/lib/puppet/util/windows/principal.rb +6 -5
- data/lib/puppet/util/windows/process.rb +5 -5
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/root_certs.rb +1 -1
- data/lib/puppet/util/windows/security.rb +14 -14
- data/lib/puppet/util/windows/sid.rb +6 -6
- data/lib/puppet/util/windows/taskscheduler.rb +62 -62
- data/lib/puppet/util/windows/user.rb +6 -6
- data/lib/puppet/util/windows.rb +2 -0
- data/lib/puppet/util.rb +138 -14
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +1 -1
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +122 -114
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +678 -342
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +2 -10
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +47 -33
- data/locales/config.yaml +1 -1
- data/locales/puppet.pot +7931 -29
- data/man/man5/puppet.conf.5 +0 -22
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +9 -0
- data/spec/integration/application/apply_spec.rb +29 -22
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +2 -2
- data/spec/integration/faces/documentation_spec.rb +2 -2
- data/spec/integration/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/class_spec.rb +6 -6
- data/spec/integration/parser/compiler_spec.rb +184 -142
- data/spec/integration/parser/dynamic_scoping_spec.rb +0 -1
- data/spec/integration/parser/pcore_resource_spec.rb +15 -0
- data/spec/integration/parser/scope_spec.rb +53 -4
- data/spec/integration/resource/catalog_spec.rb +0 -4
- data/spec/integration/resource/type_collection_spec.rb +6 -0
- data/spec/integration/transaction/report_spec.rb +2 -2
- data/spec/integration/transaction_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +29 -0
- data/spec/integration/type/package_spec.rb +7 -1
- data/spec/lib/matchers/json.rb +3 -3
- data/spec/lib/puppet/face/1.0.0/huzzah.rb +1 -1
- data/spec/lib/puppet/face/basetest.rb +1 -1
- data/spec/lib/puppet/face/huzzah.rb +1 -1
- data/spec/lib/puppet/face/version_matching.rb +1 -1
- data/spec/lib/puppet/indirector_testing.rb +4 -0
- data/spec/lib/puppet_spec/character_encoding.rb +12 -0
- data/spec/lib/puppet_spec/compiler.rb +8 -1
- data/spec/lib/puppet_spec/modules.rb +2 -2
- data/spec/lib/puppet_spec/network.rb +10 -6
- data/spec/shared_contexts/types_setup.rb +52 -15
- data/spec/shared_examples/rhel_package_provider.rb +10 -11
- data/spec/spec_helper.rb +0 -11
- data/spec/unit/agent_spec.rb +12 -1
- data/spec/unit/application/agent_spec.rb +7 -0
- data/spec/unit/application/apply_spec.rb +28 -13
- data/spec/unit/application/describe_spec.rb +19 -0
- data/spec/unit/application/device_spec.rb +41 -2
- data/spec/unit/application/face_base_spec.rb +6 -6
- data/spec/unit/application/master_spec.rb +22 -6
- data/spec/unit/application/resource_spec.rb +39 -1
- data/spec/unit/application_spec.rb +0 -6
- data/spec/unit/capability_spec.rb +2 -6
- data/spec/unit/configurer/fact_handler_spec.rb +76 -20
- data/spec/unit/configurer/plugin_handler_spec.rb +13 -19
- data/spec/unit/configurer_spec.rb +36 -19
- data/spec/unit/defaults_spec.rb +0 -30
- data/spec/unit/etc_spec.rb +361 -153
- data/spec/unit/face/module/list_spec.rb +60 -0
- data/spec/unit/file_bucket/file_spec.rb +3 -3
- data/spec/unit/file_serving/http_metadata_spec.rb +1 -1
- data/spec/unit/file_serving/metadata_spec.rb +35 -9
- data/spec/unit/forge/forge_spec.rb +112 -0
- data/spec/unit/forge/repository_spec.rb +4 -4
- data/spec/unit/functions/annotate_spec.rb +175 -0
- data/spec/unit/functions/break_spec.rb +29 -1
- data/spec/unit/functions/call_spec.rb +77 -0
- data/spec/unit/functions/contain_spec.rb +1 -1
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -6
- data/spec/unit/functions/lookup_spec.rb +208 -3
- data/spec/unit/functions/new_spec.rb +1 -1
- data/spec/unit/functions/unique_spec.rb +111 -0
- data/spec/unit/functions4_spec.rb +2 -43
- data/spec/unit/graph/simple_graph_spec.rb +58 -55
- data/spec/unit/indirector/catalog/compiler_spec.rb +213 -153
- data/spec/unit/indirector/catalog/json_spec.rb +50 -1
- data/spec/unit/indirector/facts/facter_spec.rb +1 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
- data/spec/unit/indirector/file_server_spec.rb +17 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -36
- data/spec/unit/indirector/json_spec.rb +27 -6
- data/spec/unit/indirector/node/exec_spec.rb +12 -12
- data/spec/unit/indirector/node/ldap_spec.rb +29 -8
- data/spec/unit/indirector/node/plain_spec.rb +16 -6
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +12 -0
- data/spec/unit/indirector/report/processor_spec.rb +2 -2
- data/spec/unit/indirector/report/rest_spec.rb +29 -3
- data/spec/unit/indirector/request_spec.rb +15 -4
- data/spec/unit/indirector/rest_spec.rb +57 -15
- data/spec/unit/interface/face_collection_spec.rb +7 -7
- data/spec/unit/module_spec.rb +10 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -1
- data/spec/unit/module_tool/tar_spec.rb +16 -10
- data/spec/unit/network/format_handler_spec.rb +11 -11
- data/spec/unit/network/format_spec.rb +9 -0
- data/spec/unit/network/formats_spec.rb +322 -138
- data/spec/unit/network/http/api/indirected_routes_spec.rb +65 -55
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +128 -2
- data/spec/unit/network/http/api/master/v3_spec.rb +1 -1
- data/spec/unit/network/http/api_spec.rb +1 -1
- data/spec/unit/network/http/compression_spec.rb +105 -88
- data/spec/unit/network/http/error_spec.rb +1 -2
- data/spec/unit/network/http/handler_spec.rb +8 -12
- data/spec/unit/network/http/rack/rest_spec.rb +3 -3
- data/spec/unit/network/http/request_spec.rb +110 -0
- data/spec/unit/network/http/response_spec.rb +108 -0
- data/spec/unit/node/facts_spec.rb +13 -13
- data/spec/unit/node_spec.rb +33 -10
- data/spec/unit/parameter_spec.rb +73 -5
- data/spec/unit/parser/compiler_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +0 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +47 -6
- data/spec/unit/parser/resource_spec.rb +86 -24
- data/spec/unit/parser/scope_spec.rb +10 -79
- data/spec/unit/pops/benchmark_spec.rb +8 -26
- data/spec/unit/pops/containment_spec.rb +0 -26
- data/spec/unit/pops/evaluator/access_ops_spec.rb +103 -103
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +59 -6
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +5 -5
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +26 -26
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +59 -7
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +7 -7
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +36 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +10 -10
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -1
- data/spec/unit/pops/factory_rspec_helper.rb +0 -4
- data/spec/unit/pops/factory_spec.rb +83 -83
- data/spec/unit/pops/loaders/loaders_spec.rb +209 -79
- data/spec/unit/pops/loaders/static_loader_spec.rb +2 -6
- data/spec/unit/pops/lookup/interpolation_spec.rb +50 -10
- data/spec/unit/pops/lookup/lookup_spec.rb +32 -0
- data/spec/unit/pops/model/model_spec.rb +10 -10
- data/spec/unit/pops/parser/epp_parser_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +32 -29
- data/spec/unit/pops/parser/{source_pos_adapter_spec.rb → locator_spec.rb} +9 -11
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -3
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -4
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -3
- data/spec/unit/pops/parser/parse_containers_spec.rb +17 -19
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -3
- data/spec/unit/pops/parser/parser_spec.rb +8 -10
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -3
- data/spec/unit/pops/serialization/serialization_spec.rb +117 -5
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +494 -0
- data/spec/unit/pops/time/timestamp_spec.rb +13 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +100 -14
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +12 -17
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +8 -8
- data/spec/unit/pops/types/p_type_set_type_spec.rb +4 -12
- data/spec/unit/pops/types/ruby_generator_spec.rb +57 -20
- data/spec/unit/pops/types/string_converter_spec.rb +119 -16
- data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +211 -87
- data/spec/unit/pops/types/type_factory_spec.rb +9 -9
- data/spec/unit/pops/types/type_formatter_spec.rb +32 -19
- data/spec/unit/pops/types/type_parser_spec.rb +6 -6
- data/spec/unit/pops/types/types_spec.rb +53 -2
- data/spec/unit/pops/validator/validator_spec.rb +53 -61
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/property/list_spec.rb +2 -2
- data/spec/unit/provider/augeas/augeas_spec.rb +1 -1
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -0
- data/spec/unit/provider/nameservice_spec.rb +113 -3
- data/spec/unit/provider/package/portage_spec.rb +103 -17
- data/spec/unit/provider/package/rpm_spec.rb +14 -1
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/useradd_spec.rb +13 -0
- data/spec/unit/puppet_spec.rb +2 -3
- data/spec/unit/relationship_spec.rb +15 -36
- data/spec/unit/reports/http_spec.rb +11 -8
- data/spec/unit/resource/catalog_spec.rb +81 -53
- data/spec/unit/resource/status_spec.rb +114 -103
- data/spec/unit/resource/type_collection_spec.rb +5 -5
- data/spec/unit/resource/type_spec.rb +4 -71
- data/spec/unit/resource_spec.rb +30 -34
- data/spec/unit/settings_spec.rb +4 -2
- data/spec/unit/ssl/host_spec.rb +34 -34
- data/spec/unit/status_spec.rb +7 -7
- data/spec/unit/transaction/event_spec.rb +18 -15
- data/spec/unit/transaction/report_spec.rb +100 -62
- data/spec/unit/transaction/resource_harness_spec.rb +3 -3
- data/spec/unit/transaction_spec.rb +53 -8
- data/spec/unit/type/file/group_spec.rb +2 -2
- data/spec/unit/type/file/mode_spec.rb +9 -9
- data/spec/unit/type/file/owner_spec.rb +2 -2
- data/spec/unit/type/file/selinux_spec.rb +2 -0
- data/spec/unit/type/file/source_spec.rb +13 -0
- data/spec/unit/type/file_spec.rb +46 -0
- data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
- data/spec/unit/type/user_spec.rb +2 -4
- data/spec/unit/util/at_fork_spec.rb +150 -0
- data/spec/unit/util/character_encoding_spec.rb +193 -52
- data/spec/unit/util/execution_spec.rb +31 -2
- data/spec/unit/util/log/destinations_spec.rb +5 -6
- data/spec/unit/util/log_spec.rb +62 -17
- data/spec/unit/util/metric_spec.rb +9 -2
- data/spec/unit/util/monkey_patches_spec.rb +6 -188
- data/spec/unit/util/run_mode_spec.rb +17 -10
- data/spec/unit/util/tag_set_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +55 -0
- data/spec/unit/util/windows/eventlog_spec.rb +123 -0
- data/spec/unit/util_spec.rb +237 -2
- data/tasks/benchmark.rake +3 -3
- data/tasks/cfpropertylist.rake +1 -1
- data/tasks/generate_ast_model.rake +78 -0
- metadata +3386 -3635
- checksums.yaml +0 -7
- data/bin/extlookup2hiera +0 -56
- data/ext/emacs/puppet-mode-init.el +0 -6
- data/ext/emacs/puppet-mode.el +0 -433
- data/ext/vim/README +0 -3
- data/ext/vim/ftdetect/puppet.vim +0 -2
- data/ext/vim/ftplugin/puppet.vim +0 -94
- data/ext/vim/indent/puppet.vim +0 -76
- data/ext/vim/syntax/puppet.vim +0 -115
- data/lib/puppet/application/file.rb +0 -4
- data/lib/puppet/application/inspect.rb +0 -182
- data/lib/puppet/application/resource_type.rb +0 -7
- data/lib/puppet/data_providers/data_adapter.rb +0 -37
- data/lib/puppet/data_providers/data_function_support.rb +0 -32
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -26
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -24
- data/lib/puppet/data_providers/hiera_config.rb +0 -151
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +0 -25
- data/lib/puppet/data_providers/hiera_interpolate.rb +0 -21
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +0 -30
- data/lib/puppet/data_providers/hiera_support.rb +0 -42
- data/lib/puppet/data_providers/json_data_provider_factory.rb +0 -38
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +0 -40
- data/lib/puppet/data_providers.rb +0 -34
- data/lib/puppet/face/file/download.rb +0 -56
- data/lib/puppet/face/file/store.rb +0 -21
- data/lib/puppet/face/file.rb +0 -50
- data/lib/puppet/face/resource_type.rb +0 -84
- data/lib/puppet/feature/cfacter.rb +0 -15
- data/lib/puppet/feature/external_facts.rb +0 -5
- data/lib/puppet/indirector/catalog/static_compiler.rb +0 -232
- data/lib/puppet/indirector/resource_type/parser.rb +0 -108
- data/lib/puppet/indirector/resource_type/rest.rb +0 -7
- data/lib/puppet/indirector/resource_type.rb +0 -5
- data/lib/puppet/parser/yaml_trimmer.rb +0 -7
- data/lib/puppet/plugins/binding_schemes.rb +0 -140
- data/lib/puppet/plugins/data_providers/data_provider.rb +0 -406
- data/lib/puppet/plugins/data_providers/registry.rb +0 -51
- data/lib/puppet/plugins/data_providers.rb +0 -45
- data/lib/puppet/pops/binder/binder.rb +0 -398
- data/lib/puppet/pops/binder/binder_issues.rb +0 -124
- data/lib/puppet/pops/binder/bindings_checker.rb +0 -201
- data/lib/puppet/pops/binder/bindings_composer.rb +0 -181
- data/lib/puppet/pops/binder/bindings_factory.rb +0 -813
- data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -45
- data/lib/puppet/pops/binder/bindings_loader.rb +0 -87
- data/lib/puppet/pops/binder/bindings_model.rb +0 -70
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +0 -215
- data/lib/puppet/pops/binder/bindings_model_meta.rb +0 -215
- data/lib/puppet/pops/binder/bindings_validator_factory.rb +0 -28
- data/lib/puppet/pops/binder/config/binder_config.rb +0 -107
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +0 -142
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +0 -36
- data/lib/puppet/pops/binder/config/issues.rb +0 -90
- data/lib/puppet/pops/binder/injector.rb +0 -771
- data/lib/puppet/pops/binder/injector_entry.rb +0 -57
- data/lib/puppet/pops/binder/key_factory.rb +0 -65
- data/lib/puppet/pops/binder/producers.rb +0 -831
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +0 -34
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +0 -143
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +0 -53
- data/lib/puppet/pops/binder/system_bindings.rb +0 -60
- data/lib/puppet/pops/containment.rb +0 -104
- data/lib/puppet/pops/model/model.rb +0 -131
- data/lib/puppet/pops/model/model_meta.rb +0 -629
- data/lib/puppet/pops/serialization/rgen.rb +0 -152
- data/lib/puppet/vendor/load_rgen.rb +0 -2
- data/lib/puppet/vendor/rgen/CHANGELOG +0 -197
- data/lib/puppet/vendor/rgen/MIT-LICENSE +0 -20
- data/lib/puppet/vendor/rgen/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/rgen/README.rdoc +0 -78
- data/lib/puppet/vendor/rgen/Rakefile +0 -41
- data/lib/puppet/vendor/rgen/TODO +0 -41
- data/lib/puppet/vendor/rgen/anounce.txt +0 -61
- data/lib/puppet/vendor/rgen/design_rationale.txt +0 -71
- data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +0 -54
- data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +0 -32
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +0 -562
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +0 -45
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +0 -43
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +0 -103
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +0 -89
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +0 -559
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +0 -26
- data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +0 -20
- data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +0 -91
- data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +0 -28
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +0 -37
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +0 -172
- data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +0 -45
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +0 -218
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +0 -81
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +0 -69
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +0 -167
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +0 -91
- data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +0 -129
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +0 -63
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +0 -140
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +0 -289
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +0 -66
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +0 -66
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +0 -117
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +0 -169
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +0 -126
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +0 -331
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +0 -94
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +0 -137
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +0 -97
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +0 -128
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +0 -168
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +0 -556
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +0 -174
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +0 -89
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +0 -77
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +0 -30
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +0 -168
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +0 -23
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +0 -42
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +0 -224
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +0 -334
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +0 -225
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +0 -156
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +0 -32
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +0 -121
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +0 -18
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +0 -116
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +0 -71
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +0 -98
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +0 -83
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +0 -87
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +0 -234
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +0 -26
- data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +0 -297
- data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +0 -475
- data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +0 -61
- data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +0 -67
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +0 -124
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +0 -84
- data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +0 -114
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +0 -68
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +0 -142
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +0 -29
- data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +0 -42
- data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +0 -329
- data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +0 -79
- data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +0 -127
- data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +0 -64
- data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +0 -35
- data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +0 -23
- data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +0 -54
- data/lib/puppet/vendor/rgen/test/environment_test.rb +0 -90
- data/lib/puppet/vendor/rgen/test/json_test.rb +0 -171
- data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +0 -1482
- data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +0 -57
- data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +0 -131
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +0 -70
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +0 -42
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +0 -44
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +0 -9
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +0 -98
- data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +0 -178
- data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +0 -59
- data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +0 -242
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +0 -163
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +0 -163
- data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +0 -156
- data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +0 -94
- data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +0 -42
- data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +0 -23
- data/lib/puppet/vendor/rgen/test/model_builder_test.rb +0 -6
- data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +0 -30
- data/lib/puppet/vendor/rgen/test/output_handler_test.rb +0 -58
- data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +0 -48
- data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +0 -102
- data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +0 -117
- data/lib/puppet/vendor/rgen/test/rgen_test.rb +0 -26
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +0 -29
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +0 -9
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +0 -4
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +0 -12
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +0 -11
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +0 -7
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +0 -8
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +0 -8
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +0 -7
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +0 -12
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +0 -24
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +0 -13
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +0 -10
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +0 -17
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +0 -31
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +0 -9
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +0 -4
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
- data/lib/puppet/vendor/rgen/test/template_language_test.rb +0 -163
- data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +0 -119
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +0 -1029
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +0 -317
- data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +0 -101
- data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +0 -22
- data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +0 -67
- data/lib/puppet/vendor/rgen/test/transformer_test.rb +0 -254
- data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +0 -99
- data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +0 -97
- data/lib/puppet/vendor/rgen/test/util_test.rb +0 -5
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +0 -94
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +0 -53
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +0 -49
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +0 -75
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +0 -160
- data/lib/puppet/vendor/rgen_patch.rb +0 -132
- data/lib/semver.rb +0 -146
- data/man/man8/extlookup2hiera.8 +0 -10
- data/man/man8/puppet-file.8 +0 -189
- data/man/man8/puppet-resource_type.8 +0 -188
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +0 -2
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +0 -5
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +0 -23
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +0 -5
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +0 -54
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +0 -33
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +0 -33
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +0 -5
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -10
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -23
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +0 -3
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +0 -9
- data/spec/unit/application/inspect_spec.rb +0 -305
- data/spec/unit/data_providers/custom_data_provider_spec.rb +0 -50
- data/spec/unit/face/file_spec.rb +0 -14
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -255
- data/spec/unit/indirector/resource_type/parser_spec.rb +0 -259
- data/spec/unit/indirector/resource_type/rest_spec.rb +0 -14
- data/spec/unit/pops/binder/binder_spec.rb +0 -43
- data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -155
- data/spec/unit/pops/binder/bindings_composer_spec.rb +0 -64
- data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +0 -18
- data/spec/unit/pops/binder/config/binder_config_spec.rb +0 -42
- data/spec/unit/pops/binder/injector_spec.rb +0 -768
- data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +0 -23
- data/spec/unit/pops/serialization/rgen_spec.rb +0 -88
- data/spec/unit/semver_spec.rb +0 -546
- /data/lib/puppet/vendor/semantic_puppet/{lib/semantic_puppet/locales → locales}/config.yaml +0 -0
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# The `eyaml_lookup_key` is a hiera 5 `lookup_key` data provider function.
|
|
2
|
+
# See [the configuration guide documentation](https://docs.puppet.com/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-hiera-eyaml) for
|
|
3
|
+
# how to use this function.
|
|
4
|
+
#
|
|
1
5
|
# @since 5.0.0
|
|
2
6
|
#
|
|
3
7
|
Puppet::Functions.create_function(:eyaml_lookup_key) do
|
|
@@ -29,17 +33,11 @@ Puppet::Functions.create_function(:eyaml_lookup_key) do
|
|
|
29
33
|
# nil key is used to indicate that the cache contains the raw content of the eyaml file
|
|
30
34
|
raw_data = context.cached_value(nil)
|
|
31
35
|
if raw_data.nil?
|
|
32
|
-
options.each_pair do |k, v|
|
|
33
|
-
unless k == 'path'
|
|
34
|
-
Hiera::Backend::Eyaml::Options[k.to_sym] = v
|
|
35
|
-
context.explain { "Setting Eyaml option '#{k}' to '#{v}'" }
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
36
|
raw_data = load_data_hash(options, context)
|
|
39
37
|
context.cache(nil, raw_data)
|
|
40
38
|
end
|
|
41
39
|
context.not_found unless raw_data.include?(key)
|
|
42
|
-
context.cache(key, decrypt_value(raw_data[key], context))
|
|
40
|
+
context.cache(key, decrypt_value(raw_data[key], context, options))
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def load_data_hash(options, context)
|
|
@@ -61,23 +59,29 @@ Puppet::Functions.create_function(:eyaml_lookup_key) do
|
|
|
61
59
|
end
|
|
62
60
|
end
|
|
63
61
|
|
|
64
|
-
def decrypt_value(value, context)
|
|
62
|
+
def decrypt_value(value, context, options)
|
|
65
63
|
case value
|
|
66
64
|
when String
|
|
67
|
-
decrypt(value, context)
|
|
65
|
+
decrypt(value, context, options)
|
|
68
66
|
when Hash
|
|
69
67
|
result = {}
|
|
70
|
-
value.each_pair { |k, v| result[context.interpolate(k)] = decrypt_value(v, context) }
|
|
68
|
+
value.each_pair { |k, v| result[context.interpolate(k)] = decrypt_value(v, context, options) }
|
|
71
69
|
result
|
|
72
70
|
when Array
|
|
73
|
-
value.map { |v| decrypt_value(v, context) }
|
|
71
|
+
value.map { |v| decrypt_value(v, context, options) }
|
|
74
72
|
else
|
|
75
73
|
value
|
|
76
74
|
end
|
|
77
75
|
end
|
|
78
76
|
|
|
79
|
-
def decrypt(data, context)
|
|
77
|
+
def decrypt(data, context, options)
|
|
80
78
|
if encrypted?(data)
|
|
79
|
+
# Options must be set prior to each call to #parse since they end up as static variables in
|
|
80
|
+
# the Options class. They cannot be set once before #decrypt_value is called, since each #decrypt
|
|
81
|
+
# might cause a new lookup through interpolation. That lookup in turn, might use a different eyaml
|
|
82
|
+
# config.
|
|
83
|
+
#
|
|
84
|
+
Hiera::Backend::Eyaml::Options.set(options)
|
|
81
85
|
tokens = Hiera::Backend::Eyaml::Parser::ParserFactory.hiera_backend_parser.parse(data)
|
|
82
86
|
data = tokens.map(&:to_plain_text).join.chomp
|
|
83
87
|
end
|
|
@@ -2,6 +2,11 @@ require 'hiera/puppet_function'
|
|
|
2
2
|
# Performs a standard priority lookup of the hierarchy and returns the most specific value
|
|
3
3
|
# for a given key. The returned value can be any type of data.
|
|
4
4
|
#
|
|
5
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
|
6
|
+
# continues to work, it does **not** support:
|
|
7
|
+
# * `lookup_options` stored in the data
|
|
8
|
+
# * lookup across global, environment, and module layers
|
|
9
|
+
#
|
|
5
10
|
# The function takes up to three arguments, in this order:
|
|
6
11
|
#
|
|
7
12
|
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
|
@@ -71,8 +76,10 @@ require 'hiera/puppet_function'
|
|
|
71
76
|
# above, Hiera matches the 'users' key and returns it as a hash.
|
|
72
77
|
#
|
|
73
78
|
# See
|
|
74
|
-
# [the documentation](https://docs.
|
|
75
|
-
#
|
|
79
|
+
# [the 'Using the lookup function' documentation](https://docs.puppet.com/puppet/latest/hiera_use_function.html) for how to perform lookup of data.
|
|
80
|
+
# Also see
|
|
81
|
+
# [the 'Using the deprecated hiera functions' documentation](https://docs.puppet.com/puppet/latest/hiera_use_hiera_functions.html)
|
|
82
|
+
# for more information about the Hiera 3 functions.
|
|
76
83
|
#
|
|
77
84
|
# @since 4.0.0
|
|
78
85
|
#
|
|
@@ -5,6 +5,11 @@ require 'hiera/puppet_function'
|
|
|
5
5
|
# included in the results. This is called an
|
|
6
6
|
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#array-merge).
|
|
7
7
|
#
|
|
8
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
|
9
|
+
# continues to work, it does **not** support:
|
|
10
|
+
# * `lookup_options` stored in the data
|
|
11
|
+
# * lookup across global, environment, and module layers
|
|
12
|
+
#
|
|
8
13
|
# The `hiera_array` function takes up to three arguments, in this order:
|
|
9
14
|
#
|
|
10
15
|
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
|
@@ -60,8 +65,10 @@ require 'hiera/puppet_function'
|
|
|
60
65
|
# value is a hash, Puppet raises a type mismatch error.
|
|
61
66
|
#
|
|
62
67
|
# See
|
|
63
|
-
# [the documentation](https://docs.
|
|
64
|
-
#
|
|
68
|
+
# [the 'Using the lookup function' documentation](https://docs.puppet.com/puppet/latest/hiera_use_function.html) for how to perform lookup of data.
|
|
69
|
+
# Also see
|
|
70
|
+
# [the 'Using the deprecated hiera functions' documentation](https://docs.puppet.com/puppet/latest/hiera_use_hiera_functions.html)
|
|
71
|
+
# for more information about the Hiera 3 functions.
|
|
65
72
|
#
|
|
66
73
|
# @since 4.0.0
|
|
67
74
|
#
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
require 'hiera/puppet_function'
|
|
2
2
|
|
|
3
3
|
# Finds all matches of a key throughout the hierarchy and returns them in a merged hash.
|
|
4
|
+
#
|
|
5
|
+
# This function is deprecated in favor of the `lookup` function. While this function
|
|
6
|
+
# continues to work, it does **not** support:
|
|
7
|
+
# * `lookup_options` stored in the data
|
|
8
|
+
# * lookup across global, environment, and module layers
|
|
9
|
+
#
|
|
4
10
|
# If any of the matched hashes share keys, the final hash uses the value from the
|
|
5
11
|
# highest priority match. This is called a
|
|
6
12
|
# [hash merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#hash-merge).
|
|
@@ -70,8 +76,10 @@ require 'hiera/puppet_function'
|
|
|
70
76
|
# found in the data sources are strings or arrays, Puppet raises a type mismatch error.
|
|
71
77
|
#
|
|
72
78
|
# See
|
|
73
|
-
# [the documentation](https://docs.
|
|
74
|
-
#
|
|
79
|
+
# [the 'Using the lookup function' documentation](https://docs.puppet.com/puppet/latest/hiera_use_function.html) for how to perform lookup of data.
|
|
80
|
+
# Also see
|
|
81
|
+
# [the 'Using the deprecated hiera functions' documentation](https://docs.puppet.com/puppet/latest/hiera_use_hiera_functions.html)
|
|
82
|
+
# for more information about the Hiera 3 functions.
|
|
75
83
|
#
|
|
76
84
|
# @since 4.0.0
|
|
77
85
|
#
|
|
@@ -4,6 +4,18 @@ require 'hiera/puppet_function'
|
|
|
4
4
|
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#array-merge)
|
|
5
5
|
# that retrieves the value for a user-specified key from Hiera's data.
|
|
6
6
|
#
|
|
7
|
+
# This function is deprecated in favor of the `lookup` function in combination with `include`.
|
|
8
|
+
# While this function continues to work, it does **not** support:
|
|
9
|
+
# * `lookup_options` stored in the data
|
|
10
|
+
# * lookup across global, environment, and module layers
|
|
11
|
+
#
|
|
12
|
+
# @example Using `lookup` and `include` instead of of the deprecated `hiera_include`
|
|
13
|
+
#
|
|
14
|
+
# ~~~puppet
|
|
15
|
+
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
|
16
|
+
# lookup('classes', Array[String], 'unique').include
|
|
17
|
+
# ~~~
|
|
18
|
+
#
|
|
7
19
|
# The `hiera_include` function requires:
|
|
8
20
|
#
|
|
9
21
|
# - A string key name to use for classes.
|
|
@@ -70,9 +82,11 @@ require 'hiera/puppet_function'
|
|
|
70
82
|
# # "Key 'classes' not found".
|
|
71
83
|
# ~~~
|
|
72
84
|
#
|
|
73
|
-
# See
|
|
74
|
-
#
|
|
75
|
-
#
|
|
85
|
+
# See
|
|
86
|
+
# [the 'Using the lookup function' documentation](https://docs.puppet.com/puppet/latest/hiera_use_function.html) for how to perform lookup of data.
|
|
87
|
+
# Also see
|
|
88
|
+
# [the 'Using the deprecated hiera functions' documentation](https://docs.puppet.com/puppet/latest/hiera_use_hiera_functions.html)
|
|
89
|
+
# for more information about the Hiera 3 functions.
|
|
76
90
|
#
|
|
77
91
|
# @since 4.0.0
|
|
78
92
|
#
|
|
@@ -84,7 +98,7 @@ Puppet::Functions.create_function(:hiera_include, Hiera::PuppetFunction) do
|
|
|
84
98
|
end
|
|
85
99
|
|
|
86
100
|
def post_lookup(scope, key, value)
|
|
87
|
-
raise Puppet::ParseError, "Could not find data item
|
|
101
|
+
raise Puppet::ParseError, _("Could not find data item %{key}") % { key: key } if value.nil?
|
|
88
102
|
call_function_with_scope(scope, 'include', value) unless value.empty?
|
|
89
103
|
end
|
|
90
104
|
end
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
# The `hocon_data` is a hiera 5 `data_hash` data provider function.
|
|
2
|
+
# See [the configuration guide documentation](https://docs.puppet.com/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
|
|
3
|
+
# how to use this function.
|
|
4
|
+
#
|
|
5
|
+
# Note that this function is not supported without a hocon library being present.
|
|
6
|
+
#
|
|
1
7
|
# @since 4.9.0
|
|
2
8
|
#
|
|
3
9
|
Puppet::Functions.create_function(:hocon_data) do
|
|
4
10
|
unless Puppet.features.hocon?
|
|
5
|
-
raise Puppet::DataBinding::LookupError, 'Lookup using Hocon data_hash function is not supported without hocon library'
|
|
11
|
+
raise Puppet::DataBinding::LookupError, _('Lookup using Hocon data_hash function is not supported without hocon library')
|
|
6
12
|
end
|
|
7
13
|
|
|
8
14
|
require 'hocon'
|
|
@@ -24,7 +30,7 @@ Puppet::Functions.create_function(:hocon_data) do
|
|
|
24
30
|
begin
|
|
25
31
|
Hocon.parse(content)
|
|
26
32
|
rescue Hocon::ConfigError => ex
|
|
27
|
-
raise Puppet::DataBinding::LookupError, "Unable to parse (
|
|
33
|
+
raise Puppet::DataBinding::LookupError, _("Unable to parse (%{path}): %{message}") % { path: path, message: ex.message }
|
|
28
34
|
end
|
|
29
35
|
end
|
|
30
36
|
end
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# The `json_data` is a hiera 5 `data_hash` data provider function.
|
|
2
|
+
# See [the configuration guide documentation](https://docs.puppet.com/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
|
|
3
|
+
# how to use this function.
|
|
4
|
+
#
|
|
1
5
|
# @since 4.8.0
|
|
2
6
|
#
|
|
3
7
|
Puppet::Functions.create_function(:json_data) do
|
|
@@ -18,7 +22,7 @@ Puppet::Functions.create_function(:json_data) do
|
|
|
18
22
|
JSON.parse(content)
|
|
19
23
|
rescue JSON::ParserError => ex
|
|
20
24
|
# Filename not included in message, so we add it here.
|
|
21
|
-
raise Puppet::DataBinding::LookupError, "Unable to parse (
|
|
25
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse (%{path}): %{message}" % { path: path, message: ex.message }
|
|
22
26
|
end
|
|
23
27
|
end
|
|
24
28
|
end
|
|
@@ -78,7 +78,7 @@ Puppet::Functions.create_function(:match) do
|
|
|
78
78
|
protected
|
|
79
79
|
|
|
80
80
|
def match_Object(obj, s)
|
|
81
|
-
msg = "match() expects pattern of T, where T is String, Regexp, Regexp[r], Pattern[p], or Array[T]. Got
|
|
81
|
+
msg = _("match() expects pattern of T, where T is String, Regexp, Regexp[r], Pattern[p], or Array[T]. Got %{klass}") % { klass: obj.class }
|
|
82
82
|
raise ArgumentError, msg
|
|
83
83
|
end
|
|
84
84
|
|
|
@@ -91,7 +91,7 @@ Puppet::Functions.create_function(:match) do
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def match_PRegexpType(regexp_t, s)
|
|
94
|
-
raise ArgumentError, "Given Regexp Type has no regular expression" unless regexp_t.pattern
|
|
94
|
+
raise ArgumentError, _("Given Regexp Type has no regular expression") unless regexp_t.pattern
|
|
95
95
|
do_match(s, regexp_t.regexp)
|
|
96
96
|
end
|
|
97
97
|
|
|
@@ -111,11 +111,23 @@ Puppet::Functions.create_function(:reduce) do
|
|
|
111
111
|
|
|
112
112
|
def reduce_without_memo(enumerable)
|
|
113
113
|
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
|
114
|
-
enum.reduce
|
|
114
|
+
enum.reduce do |memo, x|
|
|
115
|
+
begin
|
|
116
|
+
yield(memo, x)
|
|
117
|
+
rescue StopIteration
|
|
118
|
+
return memo
|
|
119
|
+
end
|
|
120
|
+
end
|
|
115
121
|
end
|
|
116
122
|
|
|
117
123
|
def reduce_with_memo(enumerable, given_memo)
|
|
118
124
|
enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
|
|
119
|
-
enum.reduce(given_memo)
|
|
125
|
+
enum.reduce(given_memo) do |memo, x|
|
|
126
|
+
begin
|
|
127
|
+
yield(memo, x)
|
|
128
|
+
rescue StopIteration
|
|
129
|
+
return memo
|
|
130
|
+
end
|
|
131
|
+
end
|
|
120
132
|
end
|
|
121
133
|
end
|
|
@@ -27,7 +27,7 @@ Puppet::Functions.create_function(:require, Puppet::Functions::InternalFunction)
|
|
|
27
27
|
classes.each do |klass|
|
|
28
28
|
# lookup the class in the scopes
|
|
29
29
|
klass = (classobj = krt.find_hostclass(klass)) ? classobj.name : nil
|
|
30
|
-
raise Puppet::ParseError.new("Could not find class
|
|
30
|
+
raise Puppet::ParseError.new(_("Could not find class %{klass}") % { klass: klass }) unless klass
|
|
31
31
|
ref = Puppet::Resource.new(:class, klass)
|
|
32
32
|
resource = scope.resource
|
|
33
33
|
resource.set_parameter(:require, [resource[:require]].flatten.compact << ref)
|
|
@@ -99,11 +99,11 @@ Puppet::Functions.create_function(:slice) do
|
|
|
99
99
|
serving_size = 1
|
|
100
100
|
end
|
|
101
101
|
if serving_size == 0
|
|
102
|
-
raise ArgumentError, "slice(): block must define at least one parameter. Block has 0."
|
|
102
|
+
raise ArgumentError, _("slice(): block must define at least one parameter. Block has 0.")
|
|
103
103
|
end
|
|
104
104
|
unless serving_size == 1 || serving_size == slice_size
|
|
105
|
-
raise ArgumentError, "slice(): block must define one parameter, or " +
|
|
106
|
-
"the same number of parameters as the given size of the slice (
|
|
105
|
+
raise ArgumentError, _("slice(): block must define one parameter, or ") +
|
|
106
|
+
_("the same number of parameters as the given size of the slice (%{slice_size}). Block has %{serving_size}; ") % { slice_size: slice_size, serving_size: serving_size }+
|
|
107
107
|
pblock.parameter_names.join(', ')
|
|
108
108
|
end
|
|
109
109
|
serving_size
|
|
@@ -28,8 +28,16 @@ Puppet::Functions.create_function(:strftime) do
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def legacy_strftime(format, timezone = nil)
|
|
31
|
-
Puppet.
|
|
32
|
-
|
|
31
|
+
stacktrace = Puppet::Pops::PuppetStack.stacktrace()
|
|
32
|
+
if stacktrace.size > 0
|
|
33
|
+
file, line = stacktrace[0]
|
|
34
|
+
else
|
|
35
|
+
file = nil
|
|
36
|
+
line = nil
|
|
37
|
+
end
|
|
38
|
+
Puppet.warn_once('deprecations', 'legacy#strftime',
|
|
39
|
+
_('The argument signature (String format, [String timezone]) is deprecated for #strfime. See #strftime documentation and Timespan type for more info'),
|
|
40
|
+
file, line)
|
|
33
41
|
Puppet::Pops::Time::Timestamp.format_time(format, Time.now.utc, timezone)
|
|
34
42
|
end
|
|
35
43
|
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# The `unique` function returns a unique set of values from an `Iterable` argument.
|
|
2
|
+
#
|
|
3
|
+
# * If the argument is a `String`, the unique set of characters are returned as a new `String`.
|
|
4
|
+
# * If the argument is a `Hash`, the resulting hash associates a set of keys with a set of unique values.
|
|
5
|
+
# * For all other types of `Iterable` (`Array`, `Iterator`) the result is an `Array` with
|
|
6
|
+
# a unique set of entries.
|
|
7
|
+
# * Comparison of all `String` values are case sensitive.
|
|
8
|
+
# * An optional code block can be given - if present it is given each candidate value and its return is used instead of the given value. This
|
|
9
|
+
# enables transformation of the value before comparison. The result of the lambda is only used for comparison.
|
|
10
|
+
# * The optional code block when used with a hash is given each value (not the keys).
|
|
11
|
+
#
|
|
12
|
+
# @example Using unique with a String
|
|
13
|
+
#
|
|
14
|
+
# ~~~puppet
|
|
15
|
+
# # will produce 'abc'
|
|
16
|
+
# "abcaabb".unique
|
|
17
|
+
# ~~~
|
|
18
|
+
#
|
|
19
|
+
# @example Using unique with an Array
|
|
20
|
+
#
|
|
21
|
+
# ~~~puppet
|
|
22
|
+
# # will produce ['a', 'b', 'c']
|
|
23
|
+
# ['a', 'b', 'c', 'a', 'a', 'b'].unique
|
|
24
|
+
# ~~~
|
|
25
|
+
#
|
|
26
|
+
# @example Using unique with a Hash
|
|
27
|
+
#
|
|
28
|
+
# ~~~puppet
|
|
29
|
+
# # will produce { ['a', 'b'] => [10], ['c'] => [20]}
|
|
30
|
+
# {'a' => 10, 'b' => 10, 'c' => 20}.unique
|
|
31
|
+
#
|
|
32
|
+
# # will produce { 'a' => 10, 'c' => 20 } (use first key with first value)
|
|
33
|
+
# Hash.new({'a' => 10, 'b' => 10, 'c' => 20}.unique.map |$k, $v| { [ $k[0] , $v[0]] })
|
|
34
|
+
#
|
|
35
|
+
# # will produce { 'b' => 10, 'c' => 20 } (use last key with first value)
|
|
36
|
+
# Hash.new({'a' => 10, 'b' => 10, 'c' => 20}.unique.map |$k, $v| { [ $k[-1] , $v[0]] })
|
|
37
|
+
# ~~~
|
|
38
|
+
#
|
|
39
|
+
# @example Using unique with an Iterable
|
|
40
|
+
#
|
|
41
|
+
# ~~~
|
|
42
|
+
# # will produce [3, 2, 1]
|
|
43
|
+
# [1,2,2,3,3].reverse_each.unique
|
|
44
|
+
# ~~~
|
|
45
|
+
#
|
|
46
|
+
# @example Using unique with a lambda
|
|
47
|
+
#
|
|
48
|
+
# ~~~puppet
|
|
49
|
+
# # will produce [['sam', 'smith'], ['sue', 'smith']]
|
|
50
|
+
# [['sam', 'smith'], ['sam', 'brown'], ['sue', 'smith']].unique |$x| { $x[0] }
|
|
51
|
+
#
|
|
52
|
+
# # will produce [['sam', 'smith'], ['sam', 'brown']]
|
|
53
|
+
# [['sam', 'smith'], ['sam', 'brown'], ['sue', 'smith']].unique |$x| { $x[1] }
|
|
54
|
+
#
|
|
55
|
+
# # will produce ['aBc', 'bbb'] (using a lambda to make comparison using downcased (%d) strings)
|
|
56
|
+
# ['aBc', 'AbC', 'bbb'].unique |$x| { String($x,'%d') }
|
|
57
|
+
#
|
|
58
|
+
# # will produce {[a] => [10], [b, c, d, e] => [11, 12, 100]}
|
|
59
|
+
# {a => 10, b => 11, c => 12, d => 100, e => 11}.unique |$v| { if $v > 10 { big } else { $v } }
|
|
60
|
+
# ~~~
|
|
61
|
+
#
|
|
62
|
+
# Note that for `Hash` the result is slightly different than for the other data types. For those the result contains the
|
|
63
|
+
# *first-found* unique value, but for `Hash` it contains associations from a set of keys to the set of values clustered by the
|
|
64
|
+
# equality lambda (or the default value equality if no lambda was given). This makes the `unique` function more versatile for hashes
|
|
65
|
+
# in general, while requiring that the simple computation of "hash's unique set of values" is performed as `$hsh.map |$k, $v| { $v }.unique`.
|
|
66
|
+
# (A unique set of hash keys is in general meaningless (since they are unique by definition) - although if processed with a different
|
|
67
|
+
# lambda for equality that would be different. First map the hash to an array of its keys if such a unique computation is wanted).
|
|
68
|
+
# If the more advanced clustering is wanted for one of the other data types, simply transform it into a `Hash` as shown in the
|
|
69
|
+
# following example.
|
|
70
|
+
#
|
|
71
|
+
# @example turning a string or array into a hash with index keys
|
|
72
|
+
#
|
|
73
|
+
# ~~puppet
|
|
74
|
+
# # Array ['a', 'b', 'c'] to Hash with index results in
|
|
75
|
+
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
|
76
|
+
# Hash(['a', 'b', 'c'].map |$i, $v| { [$i, $v]})
|
|
77
|
+
#
|
|
78
|
+
# # String "abc" to Hash with index results in
|
|
79
|
+
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
|
80
|
+
# Hash(Array("abc").map |$i,$v| { [$i, $v]})
|
|
81
|
+
# "abc".to(Array).map |$i,$v| { [$i, $v]}.to(Hash)
|
|
82
|
+
# ~~~
|
|
83
|
+
#
|
|
84
|
+
# @since Puppet 5.0.0
|
|
85
|
+
#
|
|
86
|
+
Puppet::Functions.create_function(:unique) do
|
|
87
|
+
dispatch :unique_string do
|
|
88
|
+
param 'String', :string
|
|
89
|
+
optional_block_param 'Callable[String]', :block
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
dispatch :unique_hash do
|
|
93
|
+
param 'Hash', :hash
|
|
94
|
+
optional_block_param 'Callable[Any]', :block
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
dispatch :unique_array do
|
|
98
|
+
param 'Array', :array
|
|
99
|
+
optional_block_param 'Callable[Any]', :block
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
dispatch :unique_iterable do
|
|
103
|
+
param 'Iterable', :iterable
|
|
104
|
+
optional_block_param 'Callable[Any]', :block
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def unique_string(string, &block)
|
|
108
|
+
string.split('').uniq(&block).join('')
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def unique_hash(hash, &block)
|
|
112
|
+
block = lambda {|v| v } unless block_given?
|
|
113
|
+
result = Hash.new {|h, k| h[k] = {:keys =>[], :values =>[]} }
|
|
114
|
+
hash.each_pair do |k,v|
|
|
115
|
+
rc = result[ block.call(v) ]
|
|
116
|
+
rc[:keys] << k
|
|
117
|
+
rc[:values] << v
|
|
118
|
+
end
|
|
119
|
+
# reduce the set of possibly duplicated value entries
|
|
120
|
+
inverted = {}
|
|
121
|
+
result.each_pair {|k,v| inverted[v[:keys]] = v[:values].uniq }
|
|
122
|
+
inverted
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def unique_array(array,&block)
|
|
126
|
+
array.uniq(&block)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def unique_iterable(iterable, &block)
|
|
130
|
+
Puppet::Pops::Types::Iterable.on(iterable).uniq(&block)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
# The `yaml_data` is a hiera 5 `data_hash` data provider function.
|
|
2
|
+
# See [the configuration guide documentation](https://docs.puppet.com/puppet/latest/hiera_config_yaml_5.html#configuring-a-hierarchy-level-built-in-backends) for
|
|
3
|
+
# how to use this function.
|
|
4
|
+
#
|
|
1
5
|
# @since 4.8.0
|
|
2
6
|
#
|
|
3
7
|
require 'yaml'
|
data/lib/puppet/functions.rb
CHANGED
|
@@ -205,7 +205,7 @@ module Puppet::Functions
|
|
|
205
205
|
# @api public
|
|
206
206
|
def self.create_loaded_function(func_name, loader, function_base = Function, &block)
|
|
207
207
|
if function_base.ancestors.none? { |s| s == Puppet::Pops::Functions::Function }
|
|
208
|
-
raise ArgumentError, "Functions must be based on Puppet::Pops::Functions::Function. Got
|
|
208
|
+
raise ArgumentError, _("Functions must be based on Puppet::Pops::Functions::Function. Got %{function_base}") % { function_base: function_base }
|
|
209
209
|
end
|
|
210
210
|
|
|
211
211
|
func_name = func_name.to_s
|
|
@@ -265,7 +265,7 @@ module Puppet::Functions
|
|
|
265
265
|
# @api private
|
|
266
266
|
def self.default_dispatcher(the_class, func_name)
|
|
267
267
|
unless the_class.method_defined?(func_name)
|
|
268
|
-
raise ArgumentError, "Function Creation Error, cannot create a default dispatcher for function '
|
|
268
|
+
raise ArgumentError, _("Function Creation Error, cannot create a default dispatcher for function '%{func_name}', no method with this name found") % { func_name: func_name }
|
|
269
269
|
end
|
|
270
270
|
any_signature(*min_max_param(the_class.instance_method(func_name)))
|
|
271
271
|
end
|
|
@@ -343,7 +343,7 @@ module Puppet::Functions
|
|
|
343
343
|
#
|
|
344
344
|
def self.local_types(&block)
|
|
345
345
|
if loader.nil?
|
|
346
|
-
raise ArgumentError, "No loader present. Call create_loaded_function(:myname, loader,...), instead of 'create_function' if running tests"
|
|
346
|
+
raise ArgumentError, _("No loader present. Call create_loaded_function(:myname, loader,...), instead of 'create_function' if running tests")
|
|
347
347
|
end
|
|
348
348
|
aliases = LocalTypeAliasesBuilder.new(loader, name)
|
|
349
349
|
aliases.instance_eval(&block)
|
|
@@ -407,7 +407,7 @@ module Puppet::Functions
|
|
|
407
407
|
# @api public
|
|
408
408
|
def param(type, name)
|
|
409
409
|
internal_param(type, name)
|
|
410
|
-
raise ArgumentError, 'A required parameter cannot be added after an optional parameter' if @min != @max
|
|
410
|
+
raise ArgumentError, _('A required parameter cannot be added after an optional parameter') if @min != @max
|
|
411
411
|
@min += 1
|
|
412
412
|
@max += 1
|
|
413
413
|
end
|
|
@@ -456,7 +456,7 @@ module Puppet::Functions
|
|
|
456
456
|
# @api public
|
|
457
457
|
def required_repeated_param(type, name)
|
|
458
458
|
internal_param(type, name, true)
|
|
459
|
-
raise ArgumentError, 'A required repeated parameter cannot be added after an optional parameter' if @min != @max
|
|
459
|
+
raise ArgumentError, _('A required repeated parameter cannot be added after an optional parameter') if @min != @max
|
|
460
460
|
@min += 1
|
|
461
461
|
@max = :default
|
|
462
462
|
end
|
|
@@ -478,22 +478,22 @@ module Puppet::Functions
|
|
|
478
478
|
type_string, name = type_and_name
|
|
479
479
|
type = @type_parser.parse(type_string, loader)
|
|
480
480
|
else
|
|
481
|
-
raise ArgumentError, "block_param accepts max 2 arguments (type, name), got
|
|
481
|
+
raise ArgumentError, _("block_param accepts max 2 arguments (type, name), got %{size}.") % { size: type_and_name.size }
|
|
482
482
|
end
|
|
483
483
|
|
|
484
484
|
unless Puppet::Pops::Types::TypeCalculator.is_kind_of_callable?(type, false)
|
|
485
|
-
raise ArgumentError, "Expected PCallableType or PVariantType thereof, got
|
|
485
|
+
raise ArgumentError, _("Expected PCallableType or PVariantType thereof, got %{type_class}") % { type_class: type.class }
|
|
486
486
|
end
|
|
487
487
|
|
|
488
488
|
unless name.is_a?(Symbol)
|
|
489
|
-
raise ArgumentError, "Expected block_param name to be a Symbol, got
|
|
489
|
+
raise ArgumentError, _("Expected block_param name to be a Symbol, got %{name_class}") % { name_class: name.class }
|
|
490
490
|
end
|
|
491
491
|
|
|
492
492
|
if @block_type.nil?
|
|
493
493
|
@block_type = type
|
|
494
494
|
@block_name = name
|
|
495
495
|
else
|
|
496
|
-
raise ArgumentError, 'Attempt to redefine block'
|
|
496
|
+
raise ArgumentError, _('Attempt to redefine block')
|
|
497
497
|
end
|
|
498
498
|
end
|
|
499
499
|
alias required_block_param block_param
|
|
@@ -514,7 +514,7 @@ module Puppet::Functions
|
|
|
514
514
|
#
|
|
515
515
|
# @api public
|
|
516
516
|
def return_type(type)
|
|
517
|
-
raise ArgumentError, "Argument to 'return_type' must be a String reference to a Puppet Data Type. Got
|
|
517
|
+
raise ArgumentError, _("Argument to 'return_type' must be a String reference to a Puppet Data Type. Got %{type_class}") % { type_class: type.class } unless type.is_a?(String)
|
|
518
518
|
@return_type = type
|
|
519
519
|
end
|
|
520
520
|
|
|
@@ -522,11 +522,11 @@ module Puppet::Functions
|
|
|
522
522
|
|
|
523
523
|
# @api private
|
|
524
524
|
def internal_param(type, name, repeat = false)
|
|
525
|
-
raise ArgumentError, 'Parameters cannot be added after a block parameter' unless @block_type.nil?
|
|
526
|
-
raise ArgumentError, 'Parameters cannot be added after a repeated parameter' if @max == :default
|
|
525
|
+
raise ArgumentError, _('Parameters cannot be added after a block parameter') unless @block_type.nil?
|
|
526
|
+
raise ArgumentError, _('Parameters cannot be added after a repeated parameter') if @max == :default
|
|
527
527
|
|
|
528
528
|
if name.is_a?(String)
|
|
529
|
-
raise ArgumentError, "Parameter name argument must be a Symbol. Got
|
|
529
|
+
raise ArgumentError, _("Parameter name argument must be a Symbol. Got %{name_class}") % { name_class: name.class }
|
|
530
530
|
end
|
|
531
531
|
|
|
532
532
|
if type.is_a?(String)
|
|
@@ -539,7 +539,7 @@ module Puppet::Functions
|
|
|
539
539
|
@weaving << @names.size()-1
|
|
540
540
|
end
|
|
541
541
|
else
|
|
542
|
-
raise ArgumentError, "Parameter 'type' must be a String reference to a Puppet Data Type. Got
|
|
542
|
+
raise ArgumentError, _("Parameter 'type' must be a String reference to a Puppet Data Type. Got %{type_class}") % { type_class: type.class }
|
|
543
543
|
end
|
|
544
544
|
end
|
|
545
545
|
|
|
@@ -604,7 +604,7 @@ module Puppet::Functions
|
|
|
604
604
|
def type(assignment_string)
|
|
605
605
|
result = parser.parse_string("type #{assignment_string}", nil) # no file source :-(
|
|
606
606
|
unless result.body.kind_of?(Puppet::Pops::Model::TypeAlias)
|
|
607
|
-
raise ArgumentError, "Expected a type alias assignment on the form 'AliasType = T', got '
|
|
607
|
+
raise ArgumentError, _("Expected a type alias assignment on the form 'AliasType = T', got '%{assignment_string}'") % { assignment_string: assignment_string }
|
|
608
608
|
end
|
|
609
609
|
@local_types << result.body
|
|
610
610
|
end
|
|
@@ -649,34 +649,6 @@ module Puppet::Functions
|
|
|
649
649
|
InternalDispatchBuilder.new(dispatcher, Puppet::Pops::Types::TypeParser.singleton, Puppet::Pops::Types::PCallableType::DEFAULT, loader)
|
|
650
650
|
end
|
|
651
651
|
|
|
652
|
-
# Defines class level injected attribute with reader method
|
|
653
|
-
#
|
|
654
|
-
# @api private
|
|
655
|
-
def self.attr_injected(type, attribute_name, injection_name = nil)
|
|
656
|
-
define_method(attribute_name) do
|
|
657
|
-
ivar = :"@#{attribute_name.to_s}"
|
|
658
|
-
unless instance_variable_defined?(ivar)
|
|
659
|
-
injector = Puppet.lookup(:injector)
|
|
660
|
-
instance_variable_set(ivar, injector.lookup(closure_scope, type, injection_name))
|
|
661
|
-
end
|
|
662
|
-
instance_variable_get(ivar)
|
|
663
|
-
end
|
|
664
|
-
end
|
|
665
|
-
|
|
666
|
-
# Defines class level injected producer attribute with reader method
|
|
667
|
-
#
|
|
668
|
-
# @api private
|
|
669
|
-
def self.attr_injected_producer(type, attribute_name, injection_name = nil)
|
|
670
|
-
define_method(attribute_name) do
|
|
671
|
-
ivar = :"@#{attribute_name.to_s}"
|
|
672
|
-
unless instance_variable_defined?(ivar)
|
|
673
|
-
injector = Puppet.lookup(:injector)
|
|
674
|
-
instance_variable_set(ivar, injector.lookup_producer(closure_scope, type, injection_name))
|
|
675
|
-
end
|
|
676
|
-
instance_variable_get(ivar)
|
|
677
|
-
end
|
|
678
|
-
end
|
|
679
|
-
|
|
680
652
|
# Allows the implementation of a function to call other functions by name and pass the caller
|
|
681
653
|
# scope. The callable functions are those visible to the same loader that loaded this function
|
|
682
654
|
# (the calling function).
|
|
@@ -687,8 +659,8 @@ module Puppet::Functions
|
|
|
687
659
|
# @return [Object] The result returned by the called function
|
|
688
660
|
#
|
|
689
661
|
# @api public
|
|
690
|
-
def call_function_with_scope(scope, function_name, *args)
|
|
691
|
-
internal_call_function(scope, function_name, args)
|
|
662
|
+
def call_function_with_scope(scope, function_name, *args, &block)
|
|
663
|
+
internal_call_function(scope, function_name, args, &block)
|
|
692
664
|
end
|
|
693
665
|
end
|
|
694
666
|
|
|
@@ -37,14 +37,15 @@ module Puppet
|
|
|
37
37
|
@parameters = type.parameters.map do |name|
|
|
38
38
|
Property.new(type.paramclass(name))
|
|
39
39
|
end
|
|
40
|
+
sc = Puppet::Pops::Types::StringConverter.singleton
|
|
40
41
|
@title_patterns = Hash[type.title_patterns.map do |mapping|
|
|
41
42
|
[
|
|
42
|
-
|
|
43
|
-
mapping[1].map
|
|
43
|
+
sc.convert(mapping[0], '%p'),
|
|
44
|
+
sc.convert(mapping[1].map do |names|
|
|
44
45
|
next if names.empty?
|
|
45
|
-
raise Puppet::Error, 'title patterns that use procs are not supported.'
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
raise Puppet::Error, _('title patterns that use procs are not supported.') unless names.size == 1
|
|
47
|
+
names[0].to_s
|
|
48
|
+
end, '%p')
|
|
48
49
|
]
|
|
49
50
|
end]
|
|
50
51
|
@isomorphic = type.isomorphic?
|
|
@@ -34,7 +34,7 @@ Puppet::Resource::ResourceType3.new(
|
|
|
34
34
|
],
|
|
35
35
|
{
|
|
36
36
|
<%- title_patterns.each_with_index do |mapping, index| -%>
|
|
37
|
-
<%= mapping[0] %> =>
|
|
37
|
+
<%= mapping[0] %> => <%= mapping[1] %><%= "," if index + 1 < title_patterns.size %>
|
|
38
38
|
<%- end -%>
|
|
39
39
|
},
|
|
40
40
|
<%= isomorphic -%>,
|