puppet 4.2.0 → 4.3.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 +1 -1
- data/Gemfile +5 -7
- data/README.md +1 -1
- data/Rakefile +20 -0
- data/ext/debian/puppet.init +0 -1
- data/ext/debian/puppet.logrotate +14 -5
- data/ext/osx/puppet.plist +2 -4
- data/ext/project_data.yaml +1 -1
- data/ext/redhat/client.init +65 -12
- data/ext/redhat/logrotate +15 -3
- data/ext/redhat/puppet.spec.erb +5 -1
- data/ext/redhat/server.init +1 -1
- data/ext/solaris/smf/puppet +44 -0
- data/ext/solaris/smf/puppet.xml +44 -0
- data/ext/suse/client.init +27 -27
- data/ext/suse/server.init +2 -2
- data/ext/systemd/puppet.service +1 -0
- data/install.rb +21 -39
- data/lib/hiera/puppet_function.rb +5 -5
- data/lib/puppet/agent/locker.rb +11 -2
- data/lib/puppet/agent.rb +4 -4
- data/lib/puppet/application/agent.rb +28 -14
- data/lib/puppet/application/apply.rb +17 -4
- data/lib/puppet/application/cert.rb +16 -0
- data/lib/puppet/application/filebucket.rb +78 -4
- data/lib/puppet/application/lookup.rb +356 -0
- data/lib/puppet/application/master.rb +5 -1
- data/lib/puppet/configurer.rb +9 -5
- data/lib/puppet/context/trusted_information.rb +21 -1
- data/lib/puppet/context.rb +16 -1
- data/lib/puppet/daemon.rb +17 -13
- data/lib/puppet/data_binding.rb +4 -2
- data/lib/puppet/data_providers/data_adapter.rb +7 -68
- data/lib/puppet/data_providers/data_function_support.rb +5 -26
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -10
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -22
- data/lib/puppet/data_providers/hiera_config.rb +106 -0
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +18 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +97 -0
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +23 -0
- data/lib/puppet/data_providers/hiera_support.rb +37 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +31 -0
- data/lib/puppet/data_providers/lookup_adapter.rb +200 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +32 -0
- data/lib/puppet/data_providers.rb +12 -13
- data/lib/puppet/defaults.rb +14 -3
- data/lib/puppet/environments.rb +94 -6
- data/lib/puppet/error.rb +4 -0
- data/lib/puppet/face/module/changes.rb +2 -1
- data/lib/puppet/feature/cfacter.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +58 -2
- data/lib/puppet/file_system/windows.rb +3 -1
- data/lib/puppet/functions/assert_type.rb +48 -12
- data/lib/puppet/functions/defined.rb +79 -48
- data/lib/puppet/functions/each.rb +85 -27
- data/lib/puppet/functions/epp.rb +29 -37
- data/lib/puppet/functions/filter.rb +60 -25
- data/lib/puppet/functions/hiera.rb +76 -3
- data/lib/puppet/functions/hiera_array.rb +65 -3
- data/lib/puppet/functions/hiera_hash.rb +74 -2
- data/lib/puppet/functions/hiera_include.rb +77 -4
- data/lib/puppet/functions/inline_epp.rb +44 -71
- data/lib/puppet/functions/lookup.rb +19 -17
- data/lib/puppet/functions/map.rb +56 -21
- data/lib/puppet/functions/match.rb +29 -12
- data/lib/puppet/functions/reduce.rb +95 -58
- data/lib/puppet/functions/versioncmp.rb +36 -0
- data/lib/puppet/functions/with.rb +15 -7
- data/lib/puppet/functions.rb +2 -4
- data/lib/puppet/indirector/catalog/compiler.rb +3 -3
- data/lib/puppet/indirector/catalog/static_compiler.rb +46 -30
- data/lib/puppet/indirector/data_binding/none.rb +4 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +58 -1
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +6 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/request.rb +7 -8
- data/lib/puppet/indirector/resource_type/parser.rb +5 -3
- data/lib/puppet/info_service/class_information_service.rb +111 -0
- data/lib/puppet/info_service.rb +7 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/metadata.rb +32 -9
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
- data/lib/puppet/network/authconfig.rb +21 -1
- data/lib/puppet/network/authorization.rb +8 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +59 -0
- data/lib/puppet/network/http/api/master/v3.rb +7 -1
- data/lib/puppet/node/environment.rb +9 -2
- data/lib/puppet/node.rb +11 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +39 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +38 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler.rb +300 -12
- data/lib/puppet/parser/environment_compiler.rb +165 -0
- data/lib/puppet/parser/functions/assert_type.rb +46 -16
- data/lib/puppet/parser/functions/defined.rb +105 -68
- data/lib/puppet/parser/functions/each.rb +85 -27
- data/lib/puppet/parser/functions/epp.rb +29 -37
- data/lib/puppet/parser/functions/filter.rb +59 -23
- data/lib/puppet/parser/functions/hiera.rb +83 -27
- data/lib/puppet/parser/functions/hiera_array.rb +71 -28
- data/lib/puppet/parser/functions/hiera_hash.rb +81 -30
- data/lib/puppet/parser/functions/hiera_include.rb +81 -40
- data/lib/puppet/parser/functions/inline_epp.rb +35 -60
- data/lib/puppet/parser/functions/inline_template.rb +2 -2
- data/lib/puppet/parser/functions/map.rb +55 -20
- data/lib/puppet/parser/functions/match.rb +27 -12
- data/lib/puppet/parser/functions/reduce.rb +97 -60
- data/lib/puppet/parser/functions/with.rb +16 -8
- data/lib/puppet/parser/resource.rb +103 -21
- data/lib/puppet/parser.rb +3 -0
- data/lib/puppet/plugins/configuration.rb +3 -2
- data/lib/puppet/plugins/data_providers/data_provider.rb +283 -0
- data/lib/puppet/plugins/data_providers/registry.rb +84 -0
- data/lib/puppet/plugins/data_providers.rb +12 -60
- data/lib/puppet/pops/adapters.rb +12 -0
- data/lib/puppet/pops/binder/binder.rb +2 -2
- data/lib/puppet/pops/binder/bindings_checker.rb +1 -1
- data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
- data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
- data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
- data/lib/puppet/pops/binder/injector.rb +4 -4
- data/lib/puppet/pops/binder/key_factory.rb +3 -9
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
- data/lib/puppet/pops/evaluator/access_operator.rb +27 -60
- data/lib/puppet/pops/evaluator/closure.rb +8 -8
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +10 -6
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +7 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/issues.rb +11 -3
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +402 -0
- data/lib/puppet/pops/lookup/invocation.rb +117 -0
- data/lib/puppet/pops/lookup.rb +25 -47
- data/lib/puppet/pops/merge_strategy.rb +73 -5
- data/lib/puppet/pops/model/factory.rb +38 -3
- data/lib/puppet/pops/model/model_label_provider.rb +10 -1
- data/lib/puppet/pops/model/model_meta.rb +19 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +18 -0
- data/lib/puppet/pops/parser/code_merger.rb +13 -1
- data/lib/puppet/pops/parser/egrammar.ra +65 -2
- data/lib/puppet/pops/parser/eparser.rb +1569 -1241
- data/lib/puppet/pops/parser/lexer2.rb +32 -1
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +25 -13
- data/lib/puppet/pops/patterns.rb +3 -0
- data/lib/puppet/pops/types/enumeration.rb +1 -2
- data/lib/puppet/pops/types/type_asserter.rb +16 -15
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
- data/lib/puppet/pops/types/type_calculator.rb +171 -1020
- data/lib/puppet/pops/types/type_factory.rb +87 -148
- data/lib/puppet/pops/types/type_mismatch_describer.rb +743 -0
- data/lib/puppet/pops/types/type_parser.rb +118 -129
- data/lib/puppet/pops/types/types.rb +1394 -255
- data/lib/puppet/pops/types/types_meta.rb +0 -234
- data/lib/puppet/pops/validation/checker4_0.rb +49 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +3 -1
- data/lib/puppet/pops/validation.rb +7 -2
- data/lib/puppet/pops.rb +19 -17
- data/lib/puppet/provider/augeas/augeas.rb +50 -0
- data/lib/puppet/provider/exec.rb +6 -1
- data/lib/puppet/provider/group/directoryservice.rb +10 -0
- data/lib/puppet/provider/package/dnf.rb +41 -0
- data/lib/puppet/provider/package/gem.rb +7 -2
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
- data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
- data/lib/puppet/provider/package/windows/package.rb +9 -1
- data/lib/puppet/provider/package/yum.rb +20 -9
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +21 -0
- data/lib/puppet/provider/service/init.rb +6 -0
- data/lib/puppet/provider/service/launchd.rb +36 -7
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +43 -2
- data/lib/puppet/provider/service/src.rb +27 -0
- data/lib/puppet/provider/service/systemd.rb +25 -5
- data/lib/puppet/provider/sshkey/parsed.rb +19 -9
- data/lib/puppet/provider/zone/solaris.rb +2 -2
- data/lib/puppet/reference/configuration.rb +10 -4
- data/lib/puppet/reference/report.rb +9 -12
- data/lib/puppet/reports.rb +5 -1
- data/lib/puppet/resource/capability_finder.rb +95 -0
- data/lib/puppet/resource/catalog.rb +47 -7
- data/lib/puppet/resource/status.rb +0 -2
- data/lib/puppet/resource/type.rb +238 -44
- data/lib/puppet/resource/type_collection.rb +60 -2
- data/lib/puppet/resource.rb +50 -73
- data/lib/puppet/settings/file_setting.rb +10 -9
- data/lib/puppet/settings.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +2 -2
- data/lib/puppet/ssl/oids.rb +9 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +71 -8
- data/lib/puppet/transaction/resource_harness.rb +9 -4
- data/lib/puppet/transaction.rb +8 -1
- data/lib/puppet/type/augeas.rb +8 -0
- data/lib/puppet/type/file/source.rb +14 -12
- data/lib/puppet/type/package.rb +9 -6
- data/lib/puppet/type/user.rb +4 -2
- data/lib/puppet/type.rb +78 -7
- data/lib/puppet/util/command_line.rb +4 -0
- data/lib/puppet/util/execution.rb +18 -2
- data/lib/puppet/util/tagging.rb +7 -1
- data/lib/puppet/util/windows/adsi.rb +5 -2
- data/lib/puppet/util/windows/security.rb +4 -1
- data/lib/puppet/util/windows/taskscheduler.rb +1 -1
- data/lib/puppet/util.rb +9 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +12 -0
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +3 -0
- data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +46 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/hiera.yaml +8 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/metadata.json +9 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
- data/spec/integration/data_binding_spec.rb +229 -0
- data/spec/integration/file_bucket/file_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +30 -24
- data/spec/integration/parser/resource_expressions_spec.rb +4 -4
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/package_spec.rb +3 -1
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +0 -1
- data/spec/integration/type/package_spec.rb +2 -0
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +18 -0
- data/spec/lib/matchers/include_in_order.rb +2 -2
- data/spec/shared_behaviours/iterative_functions.rb +8 -8
- data/spec/spec_helper.rb +7 -0
- data/spec/unit/agent/locker_spec.rb +4 -4
- data/spec/unit/agent_spec.rb +0 -8
- data/spec/unit/application/agent_spec.rb +5 -0
- data/spec/unit/application/apply_spec.rb +9 -1
- data/spec/unit/application/filebucket_spec.rb +88 -2
- data/spec/unit/application/lookup_spec.rb +195 -0
- data/spec/unit/application/master_spec.rb +2 -2
- data/spec/unit/application_spec.rb +3 -3
- data/spec/unit/appmgmt_spec.rb +657 -0
- data/spec/unit/capability_spec.rb +414 -0
- data/spec/unit/configurer_spec.rb +7 -1
- data/spec/unit/context/trusted_information_spec.rb +24 -1
- data/spec/unit/daemon_spec.rb +18 -8
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +201 -0
- data/spec/unit/environments_spec.rb +2 -0
- data/spec/unit/face/node_spec.rb +1 -1
- data/spec/unit/file_bucket/dipper_spec.rb +210 -1
- data/spec/unit/file_serving/configuration_spec.rb +1 -1
- data/spec/unit/file_system_spec.rb +20 -0
- data/spec/unit/functions/assert_type_spec.rb +5 -7
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/filter_spec.rb +18 -0
- data/spec/unit/functions/hiera_spec.rb +2 -2
- data/spec/unit/functions/lookup_spec.rb +200 -9
- data/spec/unit/functions/regsubst_spec.rb +17 -8
- data/spec/unit/functions/scanf_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +2 -2
- data/spec/unit/functions/versioncmp_spec.rb +36 -0
- data/spec/unit/functions4_spec.rb +58 -72
- data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +28 -8
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
- data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +52 -1
- data/spec/unit/indirector/indirection_spec.rb +13 -2
- data/spec/unit/indirector/request_spec.rb +8 -8
- data/spec/unit/indirector/ssl_file_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +1 -1
- data/spec/unit/info_service_spec.rb +236 -0
- data/spec/unit/module_tool/application_spec.rb +1 -1
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/metadata_spec.rb +31 -2
- data/spec/unit/network/authconfig_spec.rb +62 -32
- data/spec/unit/network/authorization_spec.rb +30 -2
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/http/compression_spec.rb +1 -1
- data/spec/unit/network/http/connection_spec.rb +14 -19
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/network/rights_spec.rb +3 -3
- data/spec/unit/node_spec.rb +27 -0
- data/spec/unit/parser/ast/leaf_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +86 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +2 -20
- data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
- data/spec/unit/pops/binder/injector_spec.rb +3 -3
- data/spec/unit/pops/evaluator/access_ops_spec.rb +13 -11
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +20 -11
- data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
- data/spec/unit/pops/label_provider_spec.rb +5 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +39 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +40 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +47 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +38 -0
- data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
- data/spec/unit/pops/parser/parser_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +427 -444
- data/spec/unit/pops/types/type_factory_spec.rb +12 -12
- data/spec/unit/pops/types/type_parser_spec.rb +15 -12
- data/spec/unit/pops/validator/validator_spec.rb +68 -0
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/augeas/augeas_spec.rb +50 -0
- data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +3 -0
- data/spec/unit/provider/package/dnf_spec.rb +92 -0
- data/spec/unit/provider/package/gem_spec.rb +7 -0
- data/spec/unit/provider/package/nim_spec.rb +6 -6
- data/spec/unit/provider/package/rpm_spec.rb +25 -2
- data/spec/unit/provider/package/windows/package_spec.rb +41 -0
- data/spec/unit/provider/package/yum_spec.rb +35 -12
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +10 -0
- data/spec/unit/provider/service/debian_spec.rb +28 -0
- data/spec/unit/provider/service/gentoo_spec.rb +1 -0
- data/spec/unit/provider/service/init_spec.rb +6 -0
- data/spec/unit/provider/service/launchd_spec.rb +85 -10
- data/spec/unit/provider/service/openrc_spec.rb +1 -0
- data/spec/unit/provider/service/rcng_spec.rb +41 -0
- data/spec/unit/provider/service/redhat_spec.rb +8 -1
- data/spec/unit/provider/service/smf_spec.rb +30 -5
- data/spec/unit/provider/service/src_spec.rb +20 -4
- data/spec/unit/provider/service/systemd_spec.rb +79 -29
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +1 -1
- data/spec/unit/provider/sshkey/parsed_spec.rb +23 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +2 -1
- data/spec/unit/provider/zone/solaris_spec.rb +19 -0
- data/spec/unit/reports_spec.rb +10 -0
- data/spec/unit/resource/capability_finder_spec.rb +56 -0
- data/spec/unit/resource/catalog_spec.rb +31 -8
- data/spec/unit/resource/type_collection_spec.rb +23 -2
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +23 -5
- data/spec/unit/settings/file_setting_spec.rb +31 -0
- data/spec/unit/settings_spec.rb +91 -2
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +4 -3
- data/spec/unit/ssl/certificate_authority_spec.rb +5 -3
- data/spec/unit/ssl/host_spec.rb +2 -2
- data/spec/unit/ssl/oids_spec.rb +8 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +78 -5
- data/spec/unit/transaction/report_spec.rb +24 -1
- data/spec/unit/transaction_spec.rb +7 -0
- data/spec/unit/type/exec_spec.rb +16 -8
- data/spec/unit/type/host_spec.rb +4 -4
- data/spec/unit/type/package_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +4 -4
- data/spec/unit/type/user_spec.rb +14 -7
- data/spec/unit/type/vlan_spec.rb +1 -1
- data/spec/unit/type_spec.rb +1 -1
- data/spec/unit/util/ldap/generator_spec.rb +1 -1
- data/spec/unit/util/network_device/cisco/device_spec.rb +1 -1
- data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
- data/spec/unit/util/network_device_spec.rb +1 -1
- data/spec/unit/util/storage_spec.rb +5 -1
- data/spec/unit/util/windows/adsi_spec.rb +13 -0
- data/spec/unit/util_spec.rb +21 -2
- metadata +173 -7
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
- data/spec/integration/data_binding.rb +0 -104
|
@@ -3,66 +3,103 @@ Puppet::Parser::Functions::newfunction(
|
|
|
3
3
|
:type => :rvalue,
|
|
4
4
|
:arity => -3,
|
|
5
5
|
:doc => <<-DOC
|
|
6
|
-
Applies a
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
6
|
+
Applies a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
|
|
7
|
+
to every value in a data structure from the first argument, carrying over the returned
|
|
8
|
+
value of each iteration, and returns the result of the lambda's final iteration. This
|
|
9
|
+
lets you create a new value or data structure by combining values from the first
|
|
10
|
+
argument's data structure.
|
|
11
|
+
|
|
12
|
+
This function takes two mandatory arguments, in this order:
|
|
13
|
+
|
|
14
|
+
1. An array or hash the function will iterate over.
|
|
15
|
+
2. A lambda, which the function calls for each element in the first argument. It takes
|
|
16
|
+
two mandatory parameters:
|
|
17
|
+
1. A memo value that is overwritten after each iteration with the iteration's result.
|
|
18
|
+
2. A second value that is overwritten after each iteration with the next value in the
|
|
19
|
+
function's first argument.
|
|
20
|
+
|
|
21
|
+
**Example**: Using the `reduce` function
|
|
22
|
+
|
|
23
|
+
`$data.reduce |$memo, $value| { ... }`
|
|
24
|
+
|
|
25
|
+
or
|
|
26
|
+
|
|
27
|
+
`reduce($data) |$memo, $value| { ... }`
|
|
28
|
+
|
|
29
|
+
You can also pass an optional "start memo" value as an argument, such as `start` below:
|
|
30
|
+
|
|
31
|
+
`$data.reduce(start) |$memo, $value| { ... }`
|
|
32
|
+
|
|
33
|
+
or
|
|
34
|
+
|
|
35
|
+
`reduce($data, start) |$memo, $value| { ... }`
|
|
36
|
+
|
|
37
|
+
When the first argument (`$data` in the above example) is an array, Puppet passes each
|
|
38
|
+
of the data structure's values in turn to the lambda's parameters. When the first
|
|
39
|
+
argument is a hash, Puppet converts each of the hash's values to an array in the form
|
|
40
|
+
`[key, value]`.
|
|
41
|
+
|
|
42
|
+
If you pass a start memo value, Puppet executes the lambda with the provided memo value
|
|
43
|
+
and the data structure's first value. Otherwise, Puppet passes the structure's first two
|
|
44
|
+
values to the lambda.
|
|
45
|
+
|
|
46
|
+
Puppet calls the lambda for each of the data structure's remaining values. For each
|
|
47
|
+
call, it passes the result of the previous call as the first parameter ($memo in the
|
|
48
|
+
above examples) and the next value from the data structure as the second parameter
|
|
49
|
+
($value).
|
|
50
|
+
|
|
51
|
+
If the structure has one value, Puppet returns the value and does not call the lambda.
|
|
52
|
+
|
|
53
|
+
**Example**: Using the `reduce` function
|
|
54
|
+
|
|
55
|
+
~~~ puppet
|
|
56
|
+
# Reduce the array $data, returning the sum of all values in the array.
|
|
57
|
+
$data = [1, 2, 3]
|
|
58
|
+
$sum = $data.reduce |$memo, $value| { $memo + $value }
|
|
59
|
+
# $sum contains 6
|
|
60
|
+
|
|
61
|
+
# Reduce the array $data, returning the sum of a start memo value and all values in the
|
|
62
|
+
# array.
|
|
63
|
+
$data = [1, 2, 3]
|
|
64
|
+
$sum = $data.reduce(4) |$memo, $value| { $memo + $value }
|
|
65
|
+
# $sum contains 10
|
|
66
|
+
|
|
67
|
+
# Reduce the hash $data, returning the sum of all values and concatenated string of all
|
|
68
|
+
# keys.
|
|
69
|
+
$data = {a => 1, b => 2, c => 3}
|
|
70
|
+
$combine = $data.reduce |$memo, $value| {
|
|
71
|
+
$string = "${memo[0]}${value[0]}"
|
|
72
|
+
$number = $memo[1] + $value[1]
|
|
73
|
+
[$string, $number]
|
|
74
|
+
}
|
|
75
|
+
# $combine contains [abc, 6]
|
|
76
|
+
~~~
|
|
77
|
+
|
|
78
|
+
**Example**: Using the `reduce` function with a start memo and two-parameter lambda
|
|
79
|
+
|
|
80
|
+
~~~ puppet
|
|
81
|
+
# Reduce the array $data, returning the sum of all values in the array and starting
|
|
82
|
+
# with $memo set to an arbitrary value instead of $data's first value.
|
|
83
|
+
$data = [1, 2, 3]
|
|
84
|
+
$sum = $data.reduce(4) |$memo, $value| { $memo + $value }
|
|
85
|
+
# At the start of the lambda's first iteration, $memo contains 4 and $value contains 1.
|
|
86
|
+
# After all iterations, $sum contains 10.
|
|
87
|
+
|
|
88
|
+
# Reduce the hash $data, returning the sum of all values and concatenated string of
|
|
89
|
+
# all keys, and starting with $memo set to an arbitrary array instead of $data's first
|
|
90
|
+
# key-value pair.
|
|
91
|
+
$data = {a => 1, b => 2, c => 3}
|
|
92
|
+
$combine = $data.reduce( [d, 4] ) |$memo, $value| {
|
|
93
|
+
$string = "${memo[0]}${value[0]}"
|
|
94
|
+
$number = $memo[1] + $value[1]
|
|
95
|
+
[$string, $number]
|
|
96
|
+
}
|
|
97
|
+
# At the start of the lambda's first iteration, $memo contains [d, 4] and $value
|
|
98
|
+
# contains [a, 1].
|
|
99
|
+
# $combine contains [dabc, 10]
|
|
100
|
+
~~~
|
|
101
|
+
|
|
102
|
+
- Since 4.0.0
|
|
66
103
|
DOC
|
|
67
104
|
) do |args|
|
|
68
105
|
function_fail(["reduce() is only available when parser/evaluator future is in effect"])
|
|
@@ -3,17 +3,25 @@ Puppet::Parser::Functions::newfunction(
|
|
|
3
3
|
:type => :rvalue,
|
|
4
4
|
:arity => -1,
|
|
5
5
|
:doc => <<-DOC
|
|
6
|
-
Call a lambda
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
Call a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
|
|
7
|
+
with the given arguments and return the result. Since a lambda's scope is
|
|
8
|
+
[local](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html#lambda-scope)
|
|
9
|
+
to the lambda, you can use the `with` function to create private blocks of code within a
|
|
10
|
+
class using variables whose values cannot be accessed outside of the lambda.
|
|
10
11
|
|
|
11
|
-
Example
|
|
12
|
+
**Example**: Using `with`
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
~~~ puppet
|
|
15
|
+
# Concatenate three strings into a single string formatted as a list.
|
|
16
|
+
$fruit = with("apples", "oranges", "bananas") |$x, $y, $z| {
|
|
17
|
+
"${x}, ${y}, and ${z}"
|
|
18
|
+
}
|
|
19
|
+
$check_var = $x
|
|
20
|
+
# $fruit contains "apples, oranges, and bananas"
|
|
21
|
+
# $check_var is undefined, as the value of $x is local to the lambda.
|
|
22
|
+
~~~
|
|
15
23
|
|
|
16
|
-
-
|
|
24
|
+
- Since 4.0.0
|
|
17
25
|
DOC
|
|
18
26
|
) do |args|
|
|
19
27
|
function_fail(["with() is only available when parser/evaluator future is in effect"])
|
|
@@ -73,16 +73,16 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
73
73
|
# Retrieve the associated definition and evaluate it.
|
|
74
74
|
def evaluate
|
|
75
75
|
return if evaluated?
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
Puppet::Util::Profiler.profile("Evaluated resource #{self}", [:compiler, :evaluate_resource, self]) do
|
|
77
|
+
@evaluated = true
|
|
78
|
+
if builtin?
|
|
79
|
+
devfail "Cannot evaluate a builtin type (#{type})"
|
|
80
|
+
elsif resource_type.nil?
|
|
81
|
+
self.fail "Cannot find definition #{type}"
|
|
82
|
+
else
|
|
83
|
+
finish(false) # Call finish but do not validate
|
|
84
|
+
resource_type.evaluate_code(self)
|
|
85
|
+
end
|
|
86
86
|
end
|
|
87
87
|
end
|
|
88
88
|
|
|
@@ -98,13 +98,18 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
# Do any finishing work on this object, called before evaluation or
|
|
101
|
-
# before storage/translation.
|
|
102
|
-
|
|
101
|
+
# before storage/translation. The method does nothing the second time
|
|
102
|
+
# it is called on the same resource.
|
|
103
|
+
#
|
|
104
|
+
# @param do_validate [Boolean] true if validation should be performed
|
|
105
|
+
#
|
|
106
|
+
# @api private
|
|
107
|
+
def finish(do_validate = true)
|
|
103
108
|
return if finished?
|
|
104
109
|
@finished = true
|
|
105
110
|
add_defaults
|
|
106
111
|
add_scope_tags
|
|
107
|
-
validate
|
|
112
|
+
validate if do_validate
|
|
108
113
|
end
|
|
109
114
|
|
|
110
115
|
# Has this resource already been finished?
|
|
@@ -112,9 +117,9 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
112
117
|
@finished
|
|
113
118
|
end
|
|
114
119
|
|
|
115
|
-
def initialize(
|
|
116
|
-
raise ArgumentError,
|
|
117
|
-
raise ArgumentError,
|
|
120
|
+
def initialize(type, title, attributes)
|
|
121
|
+
raise ArgumentError, 'Resources require a hash as last argument' unless attributes.is_a? Hash
|
|
122
|
+
raise ArgumentError, 'Resources require a scope' unless attributes[:scope]
|
|
118
123
|
super
|
|
119
124
|
|
|
120
125
|
@source ||= scope.source
|
|
@@ -129,6 +134,15 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
129
134
|
end
|
|
130
135
|
end
|
|
131
136
|
|
|
137
|
+
def is_unevaluated_consumer?
|
|
138
|
+
# We don't declare a new variable here just to test. Saves memory
|
|
139
|
+
instance_variable_defined?(:@unevaluated_consumer)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def mark_unevaluated_consumer
|
|
143
|
+
@unevaluated_consumer = true
|
|
144
|
+
end
|
|
145
|
+
|
|
132
146
|
# Merge an override resource in. This will throw exceptions if
|
|
133
147
|
# any overrides aren't allowed.
|
|
134
148
|
def merge(resource)
|
|
@@ -199,6 +213,69 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
199
213
|
super || ((scope_resource = scope.resource) && !scope_resource.equal?(self) && scope_resource.raw_tagged?(tag_array))
|
|
200
214
|
end
|
|
201
215
|
|
|
216
|
+
# Fills resource params from a capability
|
|
217
|
+
#
|
|
218
|
+
# This backs 'consumes => Sql[one]'
|
|
219
|
+
# @api private
|
|
220
|
+
def add_parameters_from_consume
|
|
221
|
+
return if self[:consume].nil?
|
|
222
|
+
|
|
223
|
+
map = {}
|
|
224
|
+
[ self[:consume] ].flatten.map do |ref|
|
|
225
|
+
# Assert that the ref really is a resource reference
|
|
226
|
+
raise Puppet::Error, "Invalid consume in #{self.ref}: #{ref} is not a resource" unless ref.is_a?(Puppet::Resource)
|
|
227
|
+
|
|
228
|
+
# Resolve references
|
|
229
|
+
cap = catalog.resource(ref.type, ref.title)
|
|
230
|
+
if cap.nil?
|
|
231
|
+
raise "Resource #{ref} could not be found; it might not have been produced yet"
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# Ensure that the found resource is a capability resource
|
|
235
|
+
raise Puppet::Error, "Invalid consume in #{ref}: #{cap} is not a capability resource" unless cap.resource_type.is_capability?
|
|
236
|
+
cap
|
|
237
|
+
end.each do |cns|
|
|
238
|
+
# Establish mappings
|
|
239
|
+
blueprint = resource_type.consumes.find do |bp|
|
|
240
|
+
bp[:capability] == cns.type
|
|
241
|
+
end
|
|
242
|
+
# @todo lutter 2015-08-03: catch this earlier, can we do this during
|
|
243
|
+
# static analysis ?
|
|
244
|
+
raise "Resource #{self} tries to consume #{cns} but no 'consumes' mapping exists for #{self.resource_type} and #{cns.type}" unless blueprint
|
|
245
|
+
|
|
246
|
+
# setup scope that has, for each attr of cns, a binding to cns[attr]
|
|
247
|
+
cns_scope = scope.find_global_scope.newscope(:source => self, :resource => self)
|
|
248
|
+
cns.to_hash.each { |name, value| cns_scope[name.to_s] = value }
|
|
249
|
+
|
|
250
|
+
# evaluate mappings in that scope
|
|
251
|
+
resource_type.arguments.keys.each do |name|
|
|
252
|
+
if expr = blueprint[:mappings][name]
|
|
253
|
+
# Explicit mapping
|
|
254
|
+
value = expr.safeevaluate(cns_scope)
|
|
255
|
+
else
|
|
256
|
+
value = cns[name]
|
|
257
|
+
end
|
|
258
|
+
unless value.nil?
|
|
259
|
+
# @todo lutter 2015-07-01: this should be caught by the checker
|
|
260
|
+
# much earlier. We consume several capres, at least two of which
|
|
261
|
+
# want to map to the same parameter (PUP-5080)
|
|
262
|
+
raise "Attempt to reassign attribute '#{name}' in '#{self}' caused by multiple consumed mappings to the same attribute" if map[name]
|
|
263
|
+
map[name] = value
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
map.each { |name, value| self[name] = value if self[name].nil? }
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def offset
|
|
272
|
+
nil
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
def pos
|
|
276
|
+
nil
|
|
277
|
+
end
|
|
278
|
+
|
|
202
279
|
private
|
|
203
280
|
|
|
204
281
|
# Add default values from our definition.
|
|
@@ -213,7 +290,8 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
213
290
|
end
|
|
214
291
|
|
|
215
292
|
def add_scope_tags
|
|
216
|
-
|
|
293
|
+
scope_resource = scope.resource
|
|
294
|
+
unless scope_resource.nil? || scope_resource.equal?(self)
|
|
217
295
|
merge_tags(scope_resource)
|
|
218
296
|
end
|
|
219
297
|
end
|
|
@@ -256,11 +334,15 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
|
256
334
|
|
|
257
335
|
# Make sure the resource's parameters are all valid for the type.
|
|
258
336
|
def validate
|
|
259
|
-
|
|
260
|
-
|
|
337
|
+
if builtin_type?
|
|
338
|
+
begin
|
|
339
|
+
@parameters.each { |name, value| validate_parameter(name) }
|
|
340
|
+
rescue => detail
|
|
341
|
+
self.fail Puppet::ParseError, detail.to_s + " on #{self}", detail
|
|
342
|
+
end
|
|
343
|
+
else
|
|
344
|
+
resource_type.validate_resource(self)
|
|
261
345
|
end
|
|
262
|
-
rescue => detail
|
|
263
|
-
self.fail Puppet::ParseError, detail.to_s + " on #{self}", detail
|
|
264
346
|
end
|
|
265
347
|
|
|
266
348
|
def extract_parameters(params)
|
data/lib/puppet/parser.rb
CHANGED
|
@@ -3,6 +3,7 @@ module Puppet::Parser; end
|
|
|
3
3
|
|
|
4
4
|
require 'puppet/parser/ast'
|
|
5
5
|
require 'puppet/parser/compiler'
|
|
6
|
+
require 'puppet/parser/compiler/catalog_validator'
|
|
6
7
|
require 'puppet/resource/type_collection'
|
|
7
8
|
|
|
8
9
|
require 'puppet/parser/functions'
|
|
@@ -13,5 +14,7 @@ require 'puppet/resource/type_collection_helper'
|
|
|
13
14
|
require 'puppet/resource/type'
|
|
14
15
|
require 'monitor'
|
|
15
16
|
|
|
17
|
+
Dir[File.dirname(__FILE__) + '/parser/compiler/catalog_validator/*.rb'].each { |f| require f }
|
|
18
|
+
|
|
16
19
|
# PUP-3274 This should probably go someplace else
|
|
17
20
|
class Puppet::LexError < RuntimeError; end
|
|
@@ -11,6 +11,7 @@ module Puppet::Plugins::Configuration
|
|
|
11
11
|
require 'puppet/plugins/binding_schemes'
|
|
12
12
|
require 'puppet/plugins/syntax_checkers'
|
|
13
13
|
require 'puppet/plugins/data_providers'
|
|
14
|
+
require 'puppet/plugins/data_providers/registry'
|
|
14
15
|
|
|
15
16
|
# Extension-points are registered here:
|
|
16
17
|
#
|
|
@@ -33,7 +34,7 @@ module Puppet::Plugins::Configuration
|
|
|
33
34
|
|
|
34
35
|
extensions.multibind(checkers_name).name(checkers_name).hash_of(checkers_type)
|
|
35
36
|
extensions.multibind(schemes_name).name(schemes_name).hash_of(schemes_type)
|
|
36
|
-
Puppet::Plugins::DataProviders::register_extensions(extensions)
|
|
37
|
+
Puppet::Plugins::DataProviders::Registry.register_extensions(extensions)
|
|
37
38
|
|
|
38
39
|
# Register injector boot bindings
|
|
39
40
|
# -------------------------------
|
|
@@ -64,5 +65,5 @@ module Puppet::Plugins::Configuration
|
|
|
64
65
|
in_multibind(checkers_name)
|
|
65
66
|
to_instance('Puppet::SyntaxCheckers::Json')
|
|
66
67
|
end
|
|
67
|
-
Puppet::Plugins::DataProviders::register_defaults(bindings)
|
|
68
|
+
Puppet::Plugins::DataProviders::Registry.register_defaults(bindings)
|
|
68
69
|
end
|