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
|
@@ -14,7 +14,8 @@ class Puppet::Node::Plain < Puppet::Indirector::Plain
|
|
|
14
14
|
def find(request)
|
|
15
15
|
node = super
|
|
16
16
|
node.environment = request.environment
|
|
17
|
-
|
|
17
|
+
facts = request.options[:facts].is_a?(Puppet::Node::Facts) ? request.options[:facts] : nil
|
|
18
|
+
node.fact_merge(facts)
|
|
18
19
|
node
|
|
19
20
|
end
|
|
20
21
|
end
|
|
@@ -11,7 +11,12 @@ require 'puppet/indirector/yaml'
|
|
|
11
11
|
# @api private
|
|
12
12
|
#
|
|
13
13
|
class Puppet::Node::WriteOnlyYaml < Puppet::Indirector::Yaml
|
|
14
|
-
|
|
14
|
+
def initialize
|
|
15
|
+
Puppet.warn_once('deprecations', 'Puppet::Node::WriteOnlyYaml', _('Puppet::Node::WriteOnlyYaml is deprecated and will be removed in a future release of Puppet.'))
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
desc "(Deprecated) Store node information as flat files, serialized using YAML,
|
|
15
20
|
does not deserialize (write only)."
|
|
16
21
|
|
|
17
22
|
# Overridden to always return nil. This is a write only terminus.
|
|
@@ -8,15 +8,6 @@ class Puppet::Node::Yaml < Puppet::Indirector::Yaml
|
|
|
8
8
|
protected
|
|
9
9
|
|
|
10
10
|
def fix(object)
|
|
11
|
-
# This looks very strange because when the object is read from disk the
|
|
12
|
-
# environment is a string and by assigning it back onto the object it gets
|
|
13
|
-
# converted to a Puppet::Node::Environment.
|
|
14
|
-
#
|
|
15
|
-
# The Puppet::Node class can't handle this itself because we are loading
|
|
16
|
-
# with just straight YAML, which doesn't give the object a chance to modify
|
|
17
|
-
# things as it is loaded. Instead YAML simply sets the instance variable
|
|
18
|
-
# and leaves it at that.
|
|
19
|
-
object.environment = object.environment
|
|
20
11
|
object
|
|
21
12
|
end
|
|
22
13
|
end
|
|
@@ -36,7 +36,7 @@ class Puppet::Transaction::Report::Processor < Puppet::Indirector::Code
|
|
|
36
36
|
newrep.extend(mod)
|
|
37
37
|
newrep.process
|
|
38
38
|
rescue => detail
|
|
39
|
-
Puppet.log_exception(detail, "Report
|
|
39
|
+
Puppet.log_exception(detail, _("Report %{report} failed: %{detail}") % { report: name, detail: detail })
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
end
|
|
@@ -52,7 +52,7 @@ class Puppet::Transaction::Report::Processor < Puppet::Indirector::Code
|
|
|
52
52
|
if mod = Puppet::Reports.report(name)
|
|
53
53
|
yield(mod)
|
|
54
54
|
else
|
|
55
|
-
Puppet.warning "No report named '
|
|
55
|
+
Puppet.warning _("No report named '%{name}'") % { name: name }
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'puppet/indirector/rest'
|
|
2
|
+
require 'semantic_puppet'
|
|
2
3
|
|
|
3
4
|
class Puppet::Transaction::Report::Rest < Puppet::Indirector::REST
|
|
4
5
|
desc "Get server report over HTTP via REST."
|
|
@@ -6,6 +7,18 @@ class Puppet::Transaction::Report::Rest < Puppet::Indirector::REST
|
|
|
6
7
|
use_port_setting(:report_port)
|
|
7
8
|
use_srv_service(:report)
|
|
8
9
|
|
|
10
|
+
def handle_response(request, response)
|
|
11
|
+
if !response.is_a?(Net::HTTPSuccess)
|
|
12
|
+
server_version = response[Puppet::Network::HTTP::HEADER_PUPPET_VERSION]
|
|
13
|
+
if server_version &&
|
|
14
|
+
SemanticPuppet::Version.parse(server_version).major < Puppet::Indirector::REST::MAJOR_VERSION_JSON_DEFAULT &&
|
|
15
|
+
Puppet[:preferred_serialization_format] != 'pson'
|
|
16
|
+
format = Puppet[:preferred_serialization_format]
|
|
17
|
+
raise Puppet::Error.new(_("Server version %{version} does not accept reports in '%{format}', use `preferred_serialization_format=pson`") % {version: server_version, format: format})
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
9
22
|
private
|
|
10
23
|
|
|
11
24
|
def deserialize_save(content_type, body)
|
|
@@ -41,10 +41,6 @@ class Puppet::Indirector::Request
|
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
def escaped_key
|
|
45
|
-
URI.escape(key)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
44
|
# LAK:NOTE This is a messy interface to the cache, and it's only
|
|
49
45
|
# used by the Configurer class. I decided it was better to implement
|
|
50
46
|
# it now and refactor later, when we have a better design, than
|
|
@@ -97,7 +93,7 @@ class Puppet::Indirector::Request
|
|
|
97
93
|
end
|
|
98
94
|
|
|
99
95
|
def model
|
|
100
|
-
raise ArgumentError, "Could not find indirection '
|
|
96
|
+
raise ArgumentError, _("Could not find indirection '%{indirection}'") % { indirection: indirection_name } unless i = indirection
|
|
101
97
|
i.model
|
|
102
98
|
end
|
|
103
99
|
|
|
@@ -133,17 +129,17 @@ class Puppet::Indirector::Request
|
|
|
133
129
|
case value
|
|
134
130
|
when nil
|
|
135
131
|
params
|
|
136
|
-
when true, false, String, Symbol,
|
|
132
|
+
when true, false, String, Symbol, Integer, Float
|
|
137
133
|
params << [key, value]
|
|
138
134
|
else
|
|
139
|
-
raise ArgumentError, "HTTP REST queries cannot handle values of type '
|
|
135
|
+
raise ArgumentError, _("HTTP REST queries cannot handle values of type '%{klass}'") % { klass: value.class }
|
|
140
136
|
end
|
|
141
137
|
end
|
|
142
138
|
end
|
|
143
139
|
|
|
144
140
|
def encode_params(params)
|
|
145
141
|
params.collect do |key, value|
|
|
146
|
-
"#{key}=#{
|
|
142
|
+
"#{key}=#{Puppet::Util.uri_query_encode(value.to_s)}"
|
|
147
143
|
end.join("&")
|
|
148
144
|
end
|
|
149
145
|
|
|
@@ -191,7 +187,7 @@ class Puppet::Indirector::Request
|
|
|
191
187
|
self.port = srv_port
|
|
192
188
|
return yield(self)
|
|
193
189
|
rescue SystemCallError => e
|
|
194
|
-
Puppet.warning "Error connecting to
|
|
190
|
+
Puppet.warning _("Error connecting to %{srv_server}:%{srv_port}: %{message}") % { srv_server: srv_server, srv_port: srv_port, message: e.message }
|
|
195
191
|
end
|
|
196
192
|
end
|
|
197
193
|
end
|
|
@@ -243,11 +239,10 @@ class Puppet::Indirector::Request
|
|
|
243
239
|
def set_uri_key(key)
|
|
244
240
|
@uri = key
|
|
245
241
|
begin
|
|
246
|
-
# calling
|
|
247
|
-
|
|
248
|
-
uri = URI.parse(URI.escape(key))
|
|
242
|
+
# calling uri_encode for UTF-8 characters will % escape them and keep them UTF-8
|
|
243
|
+
uri = URI.parse(Puppet::Util.uri_encode(key))
|
|
249
244
|
rescue => detail
|
|
250
|
-
raise ArgumentError, "Could not understand URL
|
|
245
|
+
raise ArgumentError, _("Could not understand URL %{key}: %{detail}") % { key: key, detail: detail }, detail.backtrace
|
|
251
246
|
end
|
|
252
247
|
|
|
253
248
|
# Just short-circuit these to full paths
|
|
@@ -274,8 +269,6 @@ class Puppet::Indirector::Request
|
|
|
274
269
|
@protocol = uri.scheme
|
|
275
270
|
end
|
|
276
271
|
|
|
277
|
-
|
|
278
|
-
# as UTF-8 for the sake of performing string comparisons later
|
|
279
|
-
@key = URI.unescape(uri.path.sub(/^\//, '')).force_encoding(Encoding::UTF_8)
|
|
272
|
+
@key = URI.unescape(uri.path.sub(/^\//, ''))
|
|
280
273
|
end
|
|
281
274
|
end
|
|
@@ -58,6 +58,6 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def type( request )
|
|
61
|
-
Puppet::Type.type(type_name(request)) or raise Puppet::Error, "Could not find type
|
|
61
|
+
Puppet::Type.type(type_name(request)) or raise Puppet::Error, _("Could not find type %{request_type}") % { request_type: type_name(request) }
|
|
62
62
|
end
|
|
63
63
|
end
|
|
@@ -2,7 +2,7 @@ module Puppet::Resource::Validator
|
|
|
2
2
|
def validate_key(request)
|
|
3
3
|
type, title = request.key.split('/', 2)
|
|
4
4
|
unless type.downcase == request.instance.type.downcase and title == request.instance.title
|
|
5
|
-
raise Puppet::Indirector::ValidationError, "Resource instance does not match request key"
|
|
5
|
+
raise Puppet::Indirector::ValidationError, _("Resource instance does not match request key")
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'net/http'
|
|
2
2
|
require 'uri'
|
|
3
3
|
require 'json'
|
|
4
|
+
require 'semantic_puppet'
|
|
4
5
|
|
|
5
6
|
require 'puppet/network/http'
|
|
6
7
|
require 'puppet/network/http_pool'
|
|
@@ -10,6 +11,10 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
10
11
|
include Puppet::Network::HTTP::Compression.module
|
|
11
12
|
|
|
12
13
|
IndirectedRoutes = Puppet::Network::HTTP::API::IndirectedRoutes
|
|
14
|
+
EXCLUDED_FORMATS = [:yaml, :b64_zlib_yaml, :dot]
|
|
15
|
+
|
|
16
|
+
# puppet major version where JSON is enabled by default
|
|
17
|
+
MAJOR_VERSION_JSON_DEFAULT = 5
|
|
13
18
|
|
|
14
19
|
class << self
|
|
15
20
|
attr_reader :server_setting, :port_setting
|
|
@@ -101,11 +106,10 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
101
106
|
# Provide appropriate headers.
|
|
102
107
|
def headers
|
|
103
108
|
# yaml is not allowed on the network
|
|
104
|
-
network_formats = model.supported_formats
|
|
105
|
-
|
|
106
|
-
end
|
|
109
|
+
network_formats = model.supported_formats - EXCLUDED_FORMATS
|
|
110
|
+
mime_types = network_formats.map { |f| model.get_format(f).mime }
|
|
107
111
|
common_headers = {
|
|
108
|
-
"Accept" =>
|
|
112
|
+
"Accept" => mime_types.join(', '),
|
|
109
113
|
Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version
|
|
110
114
|
}
|
|
111
115
|
|
|
@@ -180,7 +184,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
180
184
|
# that makes a user aware of the reason for the failure.
|
|
181
185
|
#
|
|
182
186
|
content_type, body = parse_response(response)
|
|
183
|
-
msg = "Find
|
|
187
|
+
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(uri_with_query_string, 100), body: body }
|
|
184
188
|
raise Puppet::Error, msg
|
|
185
189
|
else
|
|
186
190
|
nil
|
|
@@ -213,7 +217,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
213
217
|
end
|
|
214
218
|
|
|
215
219
|
def destroy(request)
|
|
216
|
-
raise ArgumentError, "DELETE does not accept options" unless request.options.empty?
|
|
220
|
+
raise ArgumentError, _("DELETE does not accept options") unless request.options.empty?
|
|
217
221
|
|
|
218
222
|
response = do_request(request) do |req|
|
|
219
223
|
http_delete(req, IndirectedRoutes.request_to_uri(req), headers)
|
|
@@ -228,7 +232,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
228
232
|
end
|
|
229
233
|
|
|
230
234
|
def save(request)
|
|
231
|
-
raise ArgumentError, "PUT does not accept options" unless request.options.empty?
|
|
235
|
+
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
|
232
236
|
|
|
233
237
|
response = do_request(request) do |req|
|
|
234
238
|
http_put(req, IndirectedRoutes.request_to_uri(req), req.instance.render, headers.merge({ "Content-Type" => req.instance.mime }))
|
|
@@ -249,7 +253,21 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
249
253
|
# to request.do_request from here, thus if we change what we pass or how we
|
|
250
254
|
# get it, we only need to change it here.
|
|
251
255
|
def do_request(request)
|
|
252
|
-
request.do_request(self.class.srv_service, self.class.server, self.class.port) { |req| yield(req) }
|
|
256
|
+
response = request.do_request(self.class.srv_service, self.class.server, self.class.port) { |req| yield(req) }
|
|
257
|
+
|
|
258
|
+
handle_response(request, response) if response
|
|
259
|
+
|
|
260
|
+
response
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
def handle_response(request, response)
|
|
264
|
+
server_version = response[Puppet::Network::HTTP::HEADER_PUPPET_VERSION]
|
|
265
|
+
if server_version &&
|
|
266
|
+
SemanticPuppet::Version.parse(server_version).major < MAJOR_VERSION_JSON_DEFAULT &&
|
|
267
|
+
Puppet[:preferred_serialization_format] != 'pson'
|
|
268
|
+
Puppet.warning("Downgrading to PSON for future requests")
|
|
269
|
+
Puppet[:preferred_serialization_format] = 'pson'
|
|
270
|
+
end
|
|
253
271
|
end
|
|
254
272
|
|
|
255
273
|
def validate_key(request)
|
|
@@ -288,7 +306,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
288
306
|
returned_message = uncompress_body(response)
|
|
289
307
|
end
|
|
290
308
|
|
|
291
|
-
message = "Error
|
|
309
|
+
message = _("Error %{code} on SERVER: %{returned_message}") % { code: response.code, returned_message: returned_message }
|
|
292
310
|
Net::HTTPError.new(message, response)
|
|
293
311
|
end
|
|
294
312
|
|
|
@@ -300,7 +318,7 @@ class Puppet::Indirector::REST < Puppet::Indirector::Terminus
|
|
|
300
318
|
[ response['content-type'].gsub(/\s*;.*$/,''),
|
|
301
319
|
body = uncompress_body(response) ]
|
|
302
320
|
else
|
|
303
|
-
raise "No content type in http response; cannot parse"
|
|
321
|
+
raise _("No content type in http response; cannot parse")
|
|
304
322
|
end
|
|
305
323
|
end
|
|
306
324
|
|
|
@@ -54,8 +54,8 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
54
54
|
|
|
55
55
|
def path(name)
|
|
56
56
|
if name =~ Puppet::Indirector::BadNameRegexp then
|
|
57
|
-
Puppet.crit("directory traversal detected in
|
|
58
|
-
raise ArgumentError, "invalid key"
|
|
57
|
+
Puppet.crit(_("directory traversal detected in %{indirection}: %{name}") % { indirection: self.class, name: name.inspect })
|
|
58
|
+
raise ArgumentError, _("invalid key")
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
if ca?(name) and ca_location
|
|
@@ -72,11 +72,11 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
72
72
|
path = Puppet::FileSystem.pathname(path(request.key))
|
|
73
73
|
return false unless Puppet::FileSystem.exist?(path)
|
|
74
74
|
|
|
75
|
-
Puppet.notice "Removing file
|
|
75
|
+
Puppet.notice _("Removing file %{model} %{request} at '%{path}'") % { model: model, request: request.key, path: path }
|
|
76
76
|
begin
|
|
77
77
|
Puppet::FileSystem.unlink(path)
|
|
78
78
|
rescue => detail
|
|
79
|
-
raise Puppet::Error, "Could not remove
|
|
79
|
+
raise Puppet::Error, _("Could not remove %{request}: %{detail}") % { request: request.key, detail: detail }, detail.backtrace
|
|
80
80
|
end
|
|
81
81
|
end
|
|
82
82
|
|
|
@@ -92,8 +92,8 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
92
92
|
path = path(request.key)
|
|
93
93
|
dir = File.dirname(path)
|
|
94
94
|
|
|
95
|
-
raise Puppet::Error.new("Cannot save
|
|
96
|
-
raise Puppet::Error.new("Cannot save
|
|
95
|
+
raise Puppet::Error.new(_("Cannot save %{request}; parent directory %{dir} does not exist") % { request: request.key, dir: dir }) unless FileTest.directory?(dir)
|
|
96
|
+
raise Puppet::Error.new(_("Cannot save %{request}; parent directory %{dir} is not writable") % { request: request.key, dir: dir }) unless FileTest.writable?(dir)
|
|
97
97
|
|
|
98
98
|
write(request.key, path) { |f| f.print request.instance.to_s }
|
|
99
99
|
end
|
|
@@ -142,7 +142,7 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
142
142
|
dir, short = File.split(file)
|
|
143
143
|
return nil unless Puppet::FileSystem.exist?(dir)
|
|
144
144
|
|
|
145
|
-
raise ArgumentError, "Tried to fix SSL files to a file containing uppercase" unless short.downcase == short
|
|
145
|
+
raise ArgumentError, _("Tried to fix SSL files to a file containing uppercase") unless short.downcase == short
|
|
146
146
|
real_file = Dir.entries(dir).reject { |f| f =~ /^\./ }.find do |other|
|
|
147
147
|
other.downcase == short
|
|
148
148
|
end
|
|
@@ -151,7 +151,7 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
151
151
|
|
|
152
152
|
full_file = File.join(dir, real_file)
|
|
153
153
|
|
|
154
|
-
Puppet.deprecation_warning "Automatic downcasing and renaming of ssl files is deprecated; please request the file using its correct case:
|
|
154
|
+
Puppet.deprecation_warning _("Automatic downcasing and renaming of ssl files is deprecated; please request the file using its correct case: %{full_file}") % { full_file: full_file }
|
|
155
155
|
File.rename(full_file, file)
|
|
156
156
|
|
|
157
157
|
file
|
|
@@ -187,7 +187,7 @@ class Puppet::Indirector::SslFile < Puppet::Indirector::Terminus
|
|
|
187
187
|
begin
|
|
188
188
|
Puppet.settings.setting(setting).open_file(path, 'w:ASCII') { |f| yield f }
|
|
189
189
|
rescue => detail
|
|
190
|
-
raise Puppet::Error, "Could not write
|
|
190
|
+
raise Puppet::Error, _("Could not write %{path} to %{setting}: %{detail}") % { path: path, setting: setting, detail: detail }, detail.backtrace
|
|
191
191
|
end
|
|
192
192
|
else
|
|
193
193
|
raise Puppet::DevError, "You must provide a setting to determine where the files are stored"
|
|
@@ -32,7 +32,7 @@ class Puppet::Indirector::Terminus
|
|
|
32
32
|
elsif ind = Puppet::Indirector::Indirection.instance(name)
|
|
33
33
|
@indirection = ind
|
|
34
34
|
else
|
|
35
|
-
raise ArgumentError, "Could not find indirection instance
|
|
35
|
+
raise ArgumentError, _("Could not find indirection instance %{name} for %{terminus}") % { name: name, terminus: self.name }
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -157,13 +157,13 @@ class Puppet::Indirector::Terminus
|
|
|
157
157
|
|
|
158
158
|
def validate_key(request)
|
|
159
159
|
unless request.key == request.instance.name
|
|
160
|
-
raise Puppet::Indirector::ValidationError, "Instance name
|
|
160
|
+
raise Puppet::Indirector::ValidationError, _("Instance name %{name} does not match requested key %{key}") % { name: request.instance.name.inspect, key: request.key.inspect }
|
|
161
161
|
end
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
def validate_model(request)
|
|
165
165
|
unless model === request.instance
|
|
166
|
-
raise Puppet::Indirector::ValidationError, "Invalid instance type
|
|
166
|
+
raise Puppet::Indirector::ValidationError, _("Invalid instance type %{klass}, expected %{model_type}") % { klass: request.instance.class.inspect, model_type: model.inspect }
|
|
167
167
|
end
|
|
168
168
|
end
|
|
169
169
|
end
|
|
@@ -11,13 +11,13 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
|
11
11
|
begin
|
|
12
12
|
return fix(Puppet::Util::Yaml.load_file(file))
|
|
13
13
|
rescue Puppet::Util::Yaml::YamlLoadError => detail
|
|
14
|
-
raise Puppet::Error, "Could not parse YAML data for
|
|
14
|
+
raise Puppet::Error, _("Could not parse YAML data for %{indirection} %{request}: %{detail}") % { indirection: indirection.name, request: request.key, detail: detail }, detail.backtrace
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
# Convert our object to YAML and store it to the disk.
|
|
19
19
|
def save(request)
|
|
20
|
-
raise ArgumentError.new("You can only save objects that respond to :name") unless request.instance.respond_to?(:name)
|
|
20
|
+
raise ArgumentError.new(_("You can only save objects that respond to :name")) unless request.instance.respond_to?(:name)
|
|
21
21
|
|
|
22
22
|
file = path(request.key)
|
|
23
23
|
|
|
@@ -29,15 +29,15 @@ class Puppet::Indirector::Yaml < Puppet::Indirector::Terminus
|
|
|
29
29
|
begin
|
|
30
30
|
Puppet::Util::Yaml.dump(request.instance, file)
|
|
31
31
|
rescue TypeError => detail
|
|
32
|
-
Puppet.err "Could not save
|
|
32
|
+
Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: self.name, request: request.key, detail: detail }
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
# Return the path to a given node's file.
|
|
37
37
|
def path(name,ext='.yaml')
|
|
38
38
|
if name =~ Puppet::Indirector::BadNameRegexp then
|
|
39
|
-
Puppet.crit("directory traversal detected in
|
|
40
|
-
raise ArgumentError, "invalid key"
|
|
39
|
+
Puppet.crit(_("directory traversal detected in %{indirection}: %{name}") % { indirection: self.class, name: name.inspect })
|
|
40
|
+
raise ArgumentError, _("invalid key")
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
base = Puppet.run_mode.master? ? Puppet[:yamldir] : Puppet[:clientyamldir]
|
data/lib/puppet/indirector.rb
CHANGED
|
@@ -22,7 +22,7 @@ module Puppet::Indirector
|
|
|
22
22
|
Puppet::Indirector::Terminus.terminus_class(indirection_name, terminus_name || cache_name)
|
|
23
23
|
|
|
24
24
|
indirection = Puppet::Indirector::Indirection.instance(indirection_name)
|
|
25
|
-
raise "Indirection
|
|
25
|
+
raise _("Indirection %{indirection_name} does not exist") % { indirection_name: indirection_name } unless indirection
|
|
26
26
|
|
|
27
27
|
indirection.terminus_class = terminus_name if terminus_name
|
|
28
28
|
indirection.cache_class = cache_name if cache_name
|
|
@@ -35,7 +35,7 @@ module Puppet::Indirector
|
|
|
35
35
|
# evaluated at parse time, which is before the user has had a chance
|
|
36
36
|
# to override it.
|
|
37
37
|
def indirects(indirection, options = {})
|
|
38
|
-
raise(ArgumentError, "Already handling indirection for
|
|
38
|
+
raise(ArgumentError, _("Already handling indirection for %{current}; cannot also handle %{next}") % { current: @indirection.name, next: indirection }) if @indirection
|
|
39
39
|
# populate this class with the various new methods
|
|
40
40
|
extend ClassMethods
|
|
41
41
|
include Puppet::Indirector::Envelope
|
|
@@ -15,7 +15,7 @@ class Puppet::InfoService::ClassInformationService
|
|
|
15
15
|
# feature flags in effect.
|
|
16
16
|
|
|
17
17
|
unless env_file_hash.is_a?(Hash)
|
|
18
|
-
raise ArgumentError, 'Given argument must be a Hash'
|
|
18
|
+
raise ArgumentError, _('Given argument must be a Hash')
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
result = {}
|
|
@@ -52,7 +52,7 @@ class Puppet::InfoService::ClassInformationService
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def parse_file(f)
|
|
55
|
-
return {:error => "The file
|
|
55
|
+
return {:error => _("The file %{f} does not exist") % { f: f }} unless Puppet::FileSystem.exist?(f)
|
|
56
56
|
|
|
57
57
|
begin
|
|
58
58
|
parse_result = @parser.parse_file(f)
|
|
@@ -105,7 +105,6 @@ class Puppet::InfoService::ClassInformationService
|
|
|
105
105
|
|
|
106
106
|
# Extracts the source for the expression
|
|
107
107
|
def extract_value_source(value_expr)
|
|
108
|
-
|
|
109
|
-
position.extract_tree_text
|
|
108
|
+
value_expr.locator.extract_tree_text(value_expr)
|
|
110
109
|
end
|
|
111
|
-
end
|
|
110
|
+
end
|
|
@@ -41,10 +41,15 @@ module Puppet::Interface::FaceCollection
|
|
|
41
41
|
return @faces[name][:current] if pattern == :current
|
|
42
42
|
|
|
43
43
|
versions = @faces[name].keys - [ :current ]
|
|
44
|
-
|
|
44
|
+
range = pattern.is_a?(SemanticPuppet::Version) ? SemanticPuppet::VersionRange.new(pattern, pattern) : SemanticPuppet::VersionRange.parse(pattern)
|
|
45
|
+
found = find_matching(range, versions)
|
|
45
46
|
return @faces[name][found]
|
|
46
47
|
end
|
|
47
48
|
|
|
49
|
+
def self.find_matching(range, versions)
|
|
50
|
+
versions.select { |v| range === v }.sort.last
|
|
51
|
+
end
|
|
52
|
+
|
|
48
53
|
# try to load the face, and return it.
|
|
49
54
|
def self.load_face(name, version)
|
|
50
55
|
# We always load the current version file; the common case is that we have
|
data/lib/puppet/interface.rb
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require 'puppet'
|
|
2
2
|
require 'puppet/util/autoload'
|
|
3
3
|
require 'prettyprint'
|
|
4
|
-
require 'semver'
|
|
5
4
|
|
|
6
5
|
# @api public
|
|
7
6
|
class Puppet::Interface
|
|
@@ -138,7 +137,7 @@ class Puppet::Interface
|
|
|
138
137
|
attr_reader :name
|
|
139
138
|
|
|
140
139
|
# The version of the face
|
|
141
|
-
# @return [
|
|
140
|
+
# @return [SemanticPuppet::Version]
|
|
142
141
|
attr_reader :version
|
|
143
142
|
|
|
144
143
|
# The autoloader instance for the face
|
|
@@ -154,10 +153,7 @@ class Puppet::Interface
|
|
|
154
153
|
end
|
|
155
154
|
|
|
156
155
|
@name = Puppet::Interface::FaceCollection.underscorize(name)
|
|
157
|
-
|
|
158
|
-
# SemVer is deprecated but in 4.x we must use it here (the attr_reader is public api). The
|
|
159
|
-
# extra boolean argument suppresses the deprecation warning.
|
|
160
|
-
@version = SemVer.new(version, true)
|
|
156
|
+
@version = SemanticPuppet::Version.parse(version)
|
|
161
157
|
|
|
162
158
|
# The few bits of documentation we actually demand. The default license
|
|
163
159
|
# is a favour to our end users; if you happen to get that in a core face
|
data/lib/puppet/module.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require 'puppet/util/logging'
|
|
2
|
-
require 'semver'
|
|
3
2
|
require 'json'
|
|
4
3
|
|
|
5
4
|
# Support for modules
|
|
@@ -59,9 +58,10 @@ class Puppet::Module
|
|
|
59
58
|
attr_accessor :dependencies, :forge_name
|
|
60
59
|
attr_accessor :source, :author, :version, :license, :summary, :description, :project_page
|
|
61
60
|
|
|
62
|
-
def initialize(name, path, environment)
|
|
61
|
+
def initialize(name, path, environment, strict_semver = true)
|
|
63
62
|
@name = name
|
|
64
63
|
@path = path
|
|
64
|
+
@strict_semver = strict_semver
|
|
65
65
|
@environment = environment
|
|
66
66
|
|
|
67
67
|
assert_validity
|
|
@@ -96,7 +96,7 @@ class Puppet::Module
|
|
|
96
96
|
FILETYPES.each do |type, location|
|
|
97
97
|
# A boolean method to let external callers determine if
|
|
98
98
|
# we have files of a given type.
|
|
99
|
-
define_method(type +'?') do
|
|
99
|
+
define_method(type + '?') do
|
|
100
100
|
type_subpath = subpath(location)
|
|
101
101
|
unless Puppet::FileSystem.exist?(type_subpath)
|
|
102
102
|
Puppet.debug("No #{type} found in subpath '#{type_subpath}' " +
|
|
@@ -146,7 +146,9 @@ class Puppet::Module
|
|
|
146
146
|
rescue JSON::JSONError => e
|
|
147
147
|
msg = "#{name} has an invalid and unparsable metadata.json file. The parse error: #{e.message}"
|
|
148
148
|
case Puppet[:strict]
|
|
149
|
-
when :off
|
|
149
|
+
when :off
|
|
150
|
+
Puppet.debug(msg)
|
|
151
|
+
when :warning
|
|
150
152
|
Puppet.warning(msg)
|
|
151
153
|
when :error
|
|
152
154
|
raise FaultyMetadata, msg
|
|
@@ -326,9 +328,8 @@ class Puppet::Module
|
|
|
326
328
|
|
|
327
329
|
if version_string
|
|
328
330
|
begin
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
actual_version_semver = SemVer.new(dep_mod.version, true)
|
|
331
|
+
required_version_semver_range = SemanticPuppet::VersionRange.parse(version_string, @strict_semver)
|
|
332
|
+
actual_version_semver = SemanticPuppet::Version.parse(dep_mod.version)
|
|
332
333
|
rescue ArgumentError
|
|
333
334
|
error_details[:reason] = :non_semantic_version
|
|
334
335
|
unmet_dependencies << error_details
|
|
@@ -353,6 +354,10 @@ class Puppet::Module
|
|
|
353
354
|
self.environment == other.environment
|
|
354
355
|
end
|
|
355
356
|
|
|
357
|
+
def strict_semver?
|
|
358
|
+
@strict_semver
|
|
359
|
+
end
|
|
360
|
+
|
|
356
361
|
private
|
|
357
362
|
|
|
358
363
|
def wanted_manifests_from(pattern)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require 'net/http'
|
|
2
|
-
require 'semver'
|
|
3
2
|
require 'json'
|
|
4
3
|
require 'puppet/util/colors'
|
|
5
4
|
|
|
@@ -37,11 +36,11 @@ module Puppet::ModuleTool
|
|
|
37
36
|
@metadata = Puppet::ModuleTool::Metadata.new
|
|
38
37
|
|
|
39
38
|
unless @path
|
|
40
|
-
raise ArgumentError, "Could not determine module path"
|
|
39
|
+
raise ArgumentError, _("Could not determine module path")
|
|
41
40
|
end
|
|
42
41
|
|
|
43
42
|
if require_metadata && !Puppet::ModuleTool.is_module_root?(@path)
|
|
44
|
-
raise ArgumentError, "Unable to find metadata.json in module root at
|
|
43
|
+
raise ArgumentError, _("Unable to find metadata.json in module root at %{path} See https://docs.puppet.com/puppet/latest/reference/modules_publishing.html for required file format.") % { path: @path }
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
metadata_path = File.join(@path, 'metadata.json')
|
|
@@ -51,13 +50,13 @@ module Puppet::ModuleTool
|
|
|
51
50
|
begin
|
|
52
51
|
@metadata.update(JSON.load(f))
|
|
53
52
|
rescue JSON::ParserError => ex
|
|
54
|
-
raise ArgumentError, "Could not parse JSON
|
|
53
|
+
raise ArgumentError, _("Could not parse JSON %{metadata_path}") % { metadata_path: metadata_path }, ex.backtrace
|
|
55
54
|
end
|
|
56
55
|
end
|
|
57
56
|
end
|
|
58
57
|
|
|
59
58
|
if File.file?(File.join(@path, 'Modulefile'))
|
|
60
|
-
Puppet.warning "A Modulefile was found in the root directory of the module. This file will be ignored and can safely be removed."
|
|
59
|
+
Puppet.warning _("A Modulefile was found in the root directory of the module. This file will be ignored and can safely be removed.")
|
|
61
60
|
end
|
|
62
61
|
|
|
63
62
|
return @metadata
|
|
@@ -69,14 +68,14 @@ module Puppet::ModuleTool
|
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
def parse_filename(filename)
|
|
72
|
-
if match = /^((.*?)-(.*?))-(\d+\.\d+\.\d+.*?)$/.match(File.basename(filename,'.tar.gz'))
|
|
71
|
+
if match = /^((.*?)-(.*?))-(\d+\.\d+\.\d+.*?)$/.match(File.basename(filename, '.tar.gz'))
|
|
73
72
|
module_name, author, shortname, version = match.captures
|
|
74
73
|
else
|
|
75
|
-
raise ArgumentError, "Could not parse filename to obtain the username, module name and version. (
|
|
74
|
+
raise ArgumentError, _("Could not parse filename to obtain the username, module name and version. (%{release_name})") % { release_name: @release_name }
|
|
76
75
|
end
|
|
77
76
|
|
|
78
|
-
unless
|
|
79
|
-
raise ArgumentError, "Invalid version format:
|
|
77
|
+
unless SemanticPuppet::Version.valid?(version)
|
|
78
|
+
raise ArgumentError, _("Invalid version format: %{version} (Semantic Versions are acceptable: http://semver.org)") % { version: version }
|
|
80
79
|
end
|
|
81
80
|
|
|
82
81
|
return {
|
|
@@ -18,7 +18,7 @@ module Puppet::ModuleTool
|
|
|
18
18
|
create_directory
|
|
19
19
|
copy_contents
|
|
20
20
|
write_json
|
|
21
|
-
Puppet.notice "Building
|
|
21
|
+
Puppet.notice _("Building %{path} for release") % { path: @path }
|
|
22
22
|
pack
|
|
23
23
|
relative = Pathname.new(archive_file).relative_path_from(Pathname.new(File.expand_path(Dir.pwd)))
|
|
24
24
|
|
|
@@ -114,10 +114,10 @@ module Puppet::ModuleTool
|
|
|
114
114
|
symlinks.each do |s|
|
|
115
115
|
s = Pathname.new s
|
|
116
116
|
mpath = Pathname.new @path
|
|
117
|
-
Puppet.warning "Symlinks in modules are unsupported. Please investigate symlink
|
|
117
|
+
Puppet.warning _("Symlinks in modules are unsupported. Please investigate symlink %{from} -> %{to}.") % { from: s.relative_path_from(mpath), to: s.realpath.relative_path_from(mpath) }
|
|
118
118
|
end
|
|
119
119
|
|
|
120
|
-
raise Puppet::ModuleTool::Errors::ModuleToolError, "Found symlinks. Symlinks in modules are not allowed, please remove them."
|
|
120
|
+
raise Puppet::ModuleTool::Errors::ModuleToolError, _("Found symlinks. Symlinks in modules are not allowed, please remove them.")
|
|
121
121
|
end
|
|
122
122
|
end
|
|
123
123
|
|
|
@@ -125,7 +125,7 @@ module Puppet::ModuleTool
|
|
|
125
125
|
metadata_path = File.join(build_path, 'metadata.json')
|
|
126
126
|
|
|
127
127
|
if metadata.to_hash.include? 'checksums'
|
|
128
|
-
Puppet.warning "A 'checksums' field was found in metadata.json. This field will be ignored and can safely be removed."
|
|
128
|
+
Puppet.warning _("A 'checksums' field was found in metadata.json. This field will be ignored and can safely be removed.")
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
# TODO: This may necessarily change the order in which the metadata.json
|
|
@@ -135,9 +135,8 @@ module Puppet::ModuleTool
|
|
|
135
135
|
f.write(metadata.to_json)
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
-
# PSON.pretty_generate is a BINARY string
|
|
139
138
|
Puppet::FileSystem.open(File.join(build_path, 'checksums.json'), nil, 'wb') do |f|
|
|
140
|
-
f.write(
|
|
139
|
+
f.write(JSON.pretty_generate(Checksums.new(build_path)))
|
|
141
140
|
end
|
|
142
141
|
end
|
|
143
142
|
|