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
data/lib/puppet/type.rb
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
1
2
|
require 'puppet'
|
|
2
3
|
require 'puppet/util/log'
|
|
3
4
|
require 'puppet/util/metric'
|
|
@@ -106,6 +107,24 @@ class Type
|
|
|
106
107
|
attr_reader :properties
|
|
107
108
|
end
|
|
108
109
|
|
|
110
|
+
# Allow declaring that a type is actually a capability
|
|
111
|
+
class << self
|
|
112
|
+
attr_accessor :is_capability
|
|
113
|
+
|
|
114
|
+
def is_capability?
|
|
115
|
+
is_capability
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Returns whether this type represents an application instance; since
|
|
120
|
+
# only defined types, i.e., instances of Puppet::Resource::Type can
|
|
121
|
+
# represent application instances, this implementation always returns
|
|
122
|
+
# +false+. Having this method though makes code checking whether a
|
|
123
|
+
# resource is an application instance simpler
|
|
124
|
+
def self.application?
|
|
125
|
+
false
|
|
126
|
+
end
|
|
127
|
+
|
|
109
128
|
# Returns all the attribute names of the type in the appropriate order.
|
|
110
129
|
# The {key_attributes} come first, then the {provider}, then the {properties}, and finally
|
|
111
130
|
# the {parameters} and {metaparams},
|
|
@@ -639,7 +658,7 @@ class Type
|
|
|
639
658
|
def []=(name,value)
|
|
640
659
|
name = name.intern
|
|
641
660
|
|
|
642
|
-
fail("
|
|
661
|
+
fail("no parameter named '#{name}'") unless self.class.validattr?(name)
|
|
643
662
|
|
|
644
663
|
if name == :name && nv = name_var
|
|
645
664
|
name = nv
|
|
@@ -1539,7 +1558,7 @@ class Type
|
|
|
1539
1558
|
|
|
1540
1559
|
newmetaparam(:require, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
|
|
1541
1560
|
desc "One or more resources that this resource depends on, expressed as
|
|
1542
|
-
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/
|
|
1561
|
+
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
|
|
1543
1562
|
Multiple resources can be specified as an array of references. When this
|
|
1544
1563
|
attribute is present:
|
|
1545
1564
|
|
|
@@ -1553,7 +1572,7 @@ class Type
|
|
|
1553
1572
|
|
|
1554
1573
|
newmetaparam(:subscribe, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :ALL_EVENTS, :callback => :refresh}) do
|
|
1555
1574
|
desc "One or more resources that this resource depends on, expressed as
|
|
1556
|
-
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/
|
|
1575
|
+
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
|
|
1557
1576
|
Multiple resources can be specified as an array of references. When this
|
|
1558
1577
|
attribute is present:
|
|
1559
1578
|
|
|
@@ -1571,7 +1590,7 @@ class Type
|
|
|
1571
1590
|
|
|
1572
1591
|
newmetaparam(:before, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
|
|
1573
1592
|
desc "One or more resources that depend on this resource, expressed as
|
|
1574
|
-
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/
|
|
1593
|
+
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
|
|
1575
1594
|
Multiple resources can be specified as an array of references. When this
|
|
1576
1595
|
attribute is present:
|
|
1577
1596
|
|
|
@@ -1585,7 +1604,7 @@ class Type
|
|
|
1585
1604
|
|
|
1586
1605
|
newmetaparam(:notify, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :ALL_EVENTS, :callback => :refresh}) do
|
|
1587
1606
|
desc "One or more resources that depend on this resource, expressed as
|
|
1588
|
-
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/
|
|
1607
|
+
[resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
|
|
1589
1608
|
Multiple resources can be specified as an array of references. When this
|
|
1590
1609
|
attribute is present:
|
|
1591
1610
|
|
|
@@ -1628,6 +1647,57 @@ class Type
|
|
|
1628
1647
|
}
|
|
1629
1648
|
end
|
|
1630
1649
|
|
|
1650
|
+
newmetaparam(:export, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
|
|
1651
|
+
desc <<EOS
|
|
1652
|
+
Export a capability resource.
|
|
1653
|
+
|
|
1654
|
+
The value of this parameter must be a reference to a capability resource,
|
|
1655
|
+
or an array of such references. Each capability resource referenced here
|
|
1656
|
+
will be instantiated in the node catalog and exported to consumers of this
|
|
1657
|
+
resource. The title of the capability resource will be the title given in
|
|
1658
|
+
the reference, and all other attributes of the resource will be filled
|
|
1659
|
+
according to the corresponding produces statement.
|
|
1660
|
+
|
|
1661
|
+
It is an error if this metaparameter references resources whose type is not
|
|
1662
|
+
a capability type, or of there is no produces clause for the type of the
|
|
1663
|
+
current resource and the capability resource mentioned in this parameter.
|
|
1664
|
+
|
|
1665
|
+
For example:
|
|
1666
|
+
|
|
1667
|
+
define web(..) { .. }
|
|
1668
|
+
Web produces Http { .. }
|
|
1669
|
+
web { server:
|
|
1670
|
+
export => Http[main_server]
|
|
1671
|
+
}
|
|
1672
|
+
EOS
|
|
1673
|
+
end
|
|
1674
|
+
|
|
1675
|
+
newmetaparam(:consume, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
|
|
1676
|
+
desc <<EOS
|
|
1677
|
+
Consume a capability resource.
|
|
1678
|
+
|
|
1679
|
+
The value of this parameter must be a reference to a capability resource,
|
|
1680
|
+
or an array of such references. Each capability resource referenced here
|
|
1681
|
+
must have been exported by another resource in the same environment.
|
|
1682
|
+
|
|
1683
|
+
The referenced capability resource(s) will be looked up, added to the
|
|
1684
|
+
current node catalog, and processed following the underlying consumes
|
|
1685
|
+
clause.
|
|
1686
|
+
|
|
1687
|
+
It is an error if this metaparameter references resources whose type is not
|
|
1688
|
+
a capability type, or of there is no consumes clause for the type of the
|
|
1689
|
+
current resource and the capability resource mentioned in this parameter.
|
|
1690
|
+
|
|
1691
|
+
For example:
|
|
1692
|
+
|
|
1693
|
+
define web(..) { .. }
|
|
1694
|
+
Web consumes Sql { .. }
|
|
1695
|
+
web { server:
|
|
1696
|
+
consume => Sql[my_db]
|
|
1697
|
+
}
|
|
1698
|
+
EOS
|
|
1699
|
+
end
|
|
1700
|
+
|
|
1631
1701
|
###############################
|
|
1632
1702
|
# All of the provider plumbing for the resource types.
|
|
1633
1703
|
require 'puppet/provider'
|
|
@@ -1795,7 +1865,7 @@ class Type
|
|
|
1795
1865
|
def self.providify
|
|
1796
1866
|
return if @paramhash.has_key? :provider
|
|
1797
1867
|
|
|
1798
|
-
newparam(:provider) do
|
|
1868
|
+
param = newparam(:provider) do
|
|
1799
1869
|
# We're using a hacky way to get the name of our type, since there doesn't
|
|
1800
1870
|
# seem to be a correct way to introspect this at the time this code is run.
|
|
1801
1871
|
# We expect that the class in which this code is executed will be something
|
|
@@ -1855,7 +1925,8 @@ class Type
|
|
|
1855
1925
|
provider
|
|
1856
1926
|
end
|
|
1857
1927
|
end
|
|
1858
|
-
end
|
|
1928
|
+
end
|
|
1929
|
+
param.parenttype = self
|
|
1859
1930
|
end
|
|
1860
1931
|
|
|
1861
1932
|
# @todo this needs a better explanation
|
|
@@ -117,6 +117,10 @@ module Puppet
|
|
|
117
117
|
configured_environment.each_plugin_directory do |dir|
|
|
118
118
|
$LOAD_PATH << dir unless $LOAD_PATH.include?(dir)
|
|
119
119
|
end
|
|
120
|
+
|
|
121
|
+
# Puppet requires Facter, which initializes its lookup paths. Reset Facter to
|
|
122
|
+
# pickup the new $LOAD_PATH.
|
|
123
|
+
Facter.reset
|
|
120
124
|
end
|
|
121
125
|
end
|
|
122
126
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require 'timeout'
|
|
1
2
|
require 'puppet/file_system/uniquefile'
|
|
2
3
|
|
|
3
4
|
module Puppet
|
|
@@ -192,8 +193,23 @@ module Puppet::Util::Execution
|
|
|
192
193
|
if execution_stub = Puppet::Util::ExecutionStub.current_value
|
|
193
194
|
return execution_stub.call(*exec_args)
|
|
194
195
|
elsif Puppet.features.posix?
|
|
195
|
-
child_pid =
|
|
196
|
-
|
|
196
|
+
child_pid = nil
|
|
197
|
+
begin
|
|
198
|
+
child_pid = execute_posix(*exec_args)
|
|
199
|
+
exit_status = Process.waitpid2(child_pid).last.exitstatus
|
|
200
|
+
child_pid = nil
|
|
201
|
+
rescue Timeout::Error => e
|
|
202
|
+
# NOTE: For Ruby 2.1+, an explicit Timeout::Error class has to be
|
|
203
|
+
# passed to Timeout.timeout in order for there to be something for
|
|
204
|
+
# this block to rescue.
|
|
205
|
+
unless child_pid.nil?
|
|
206
|
+
Process.kill(:TERM, child_pid)
|
|
207
|
+
# Spawn a thread to reap the process if it dies.
|
|
208
|
+
Thread.new { Process.waitpid(child_pid) }
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
raise e
|
|
212
|
+
end
|
|
197
213
|
elsif Puppet.features.microsoft_windows?
|
|
198
214
|
process_info = execute_windows(*exec_args)
|
|
199
215
|
begin
|
data/lib/puppet/util/tagging.rb
CHANGED
|
@@ -18,8 +18,10 @@ module Puppet::Util::Tagging
|
|
|
18
18
|
if @tags.add?(name)
|
|
19
19
|
# not seen before, so now we test if it is valid
|
|
20
20
|
if name =~ ValidTagRegex
|
|
21
|
+
if split_qualified_tags?
|
|
21
22
|
# avoid adding twice by first testing if the string contains '::'
|
|
22
|
-
|
|
23
|
+
@tags.merge(name.split('::')) if name.include?('::')
|
|
24
|
+
end
|
|
23
25
|
else
|
|
24
26
|
@tags.delete(name)
|
|
25
27
|
fail(Puppet::ParseError, "Invalid tag '#{name}'")
|
|
@@ -106,6 +108,10 @@ module Puppet::Util::Tagging
|
|
|
106
108
|
|
|
107
109
|
private
|
|
108
110
|
|
|
111
|
+
def split_qualified_tags?
|
|
112
|
+
true
|
|
113
|
+
end
|
|
114
|
+
|
|
109
115
|
def new_tags
|
|
110
116
|
Puppet::Util::TagSet.new
|
|
111
117
|
end
|
|
@@ -214,8 +214,11 @@ module Puppet::Util::Windows::ADSI
|
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
def password=(password)
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
if !password.nil?
|
|
218
|
+
native_user.SetPassword(password)
|
|
219
|
+
commit
|
|
220
|
+
end
|
|
221
|
+
|
|
219
222
|
fADS_UF_DONT_EXPIRE_PASSWD = 0x10000
|
|
220
223
|
add_flag("UserFlags", fADS_UF_DONT_EXPIRE_PASSWD)
|
|
221
224
|
end
|
|
@@ -352,7 +352,10 @@ module Puppet::Util::Windows::Security
|
|
|
352
352
|
dacl.allow(well_known_nobody_sid, nobody_allow)
|
|
353
353
|
|
|
354
354
|
# TODO: system should be first?
|
|
355
|
-
|
|
355
|
+
flags = !isdir ? 0 :
|
|
356
|
+
Puppet::Util::Windows::AccessControlEntry::CONTAINER_INHERIT_ACE |
|
|
357
|
+
Puppet::Util::Windows::AccessControlEntry::OBJECT_INHERIT_ACE
|
|
358
|
+
dacl.allow(well_known_system_sid, system_allow, flags)
|
|
356
359
|
|
|
357
360
|
# add inherit-only aces for child dirs and files that are created within the dir
|
|
358
361
|
inherit_only = Puppet::Util::Windows::AccessControlEntry::INHERIT_ONLY_ACE
|
|
@@ -809,7 +809,7 @@ module Win32
|
|
|
809
809
|
# Returns whether or not the scheduled task exists.
|
|
810
810
|
def exists?(job_name)
|
|
811
811
|
bool = false
|
|
812
|
-
Dir.foreach('
|
|
812
|
+
Dir.foreach("#{ENV['SystemRoot']}/Tasks"){ |file|
|
|
813
813
|
if File.basename(file, '.job') == job_name
|
|
814
814
|
bool = true
|
|
815
815
|
break
|
data/lib/puppet/util.rb
CHANGED
|
@@ -260,7 +260,15 @@ module Util
|
|
|
260
260
|
$stdout.reopen(stdout)
|
|
261
261
|
$stderr.reopen(stderr)
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
begin
|
|
264
|
+
Dir.foreach('/proc/self/fd') do |f|
|
|
265
|
+
if f != '.' && f != '..' && f.to_i >= 3
|
|
266
|
+
IO::new(f.to_i).close rescue nil
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
rescue Errno::ENOENT # /proc/self/fd not found
|
|
270
|
+
3.upto(256){|fd| IO::new(fd).close rescue nil}
|
|
271
|
+
end
|
|
264
272
|
|
|
265
273
|
block.call if block
|
|
266
274
|
end
|
data/lib/puppet/version.rb
CHANGED
data/lib/puppet.rb
CHANGED
|
@@ -223,6 +223,18 @@ module Puppet
|
|
|
223
223
|
@context.override(bindings, description, &block)
|
|
224
224
|
end
|
|
225
225
|
|
|
226
|
+
# @param name The name of a context key to ignore; intended for test usage.
|
|
227
|
+
# @api private
|
|
228
|
+
def self.ignore(name)
|
|
229
|
+
@context.ignore(name)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
# @param name The name of a previously ignored context key to restore; intended for test usage.
|
|
233
|
+
# @api private
|
|
234
|
+
def self.restore(name)
|
|
235
|
+
@context.restore(name)
|
|
236
|
+
end
|
|
237
|
+
|
|
226
238
|
# @api private
|
|
227
239
|
def self.mark_context(name)
|
|
228
240
|
@context.mark(name)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
environment_data_provider = 'hiera'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include one::test
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
:version: 4
|
|
3
|
+
:hierarchy:
|
|
4
|
+
- :name: "name"
|
|
5
|
+
:backend: yaml
|
|
6
|
+
- :name: "one path"
|
|
7
|
+
:backend: yaml
|
|
8
|
+
:path: "single"
|
|
9
|
+
- :name: "two paths"
|
|
10
|
+
:backend: json
|
|
11
|
+
:paths:
|
|
12
|
+
- "first"
|
|
13
|
+
- "second"
|
|
14
|
+
- :name: 'other datadir'
|
|
15
|
+
:backend: yaml
|
|
16
|
+
:datadir: "data2"
|
|
17
|
+
:path: "single"
|
|
18
|
+
:datadir: "data1"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
lookup_options:
|
|
3
|
+
one::lopts_test::hash:
|
|
4
|
+
merge: deep
|
|
5
|
+
|
|
6
|
+
one::test::param:
|
|
7
|
+
key1: env 1
|
|
8
|
+
|
|
9
|
+
one::array:
|
|
10
|
+
- second
|
|
11
|
+
- third
|
|
12
|
+
- fourth
|
|
13
|
+
|
|
14
|
+
one::lopts_test::hash:
|
|
15
|
+
a: A
|
|
16
|
+
b: B
|
|
17
|
+
m:
|
|
18
|
+
ma: MA
|
|
19
|
+
mb: MB
|
|
20
|
+
|
|
21
|
+
one::loptsm_test::hash:
|
|
22
|
+
a: A
|
|
23
|
+
b: B
|
|
24
|
+
m:
|
|
25
|
+
ma: MA
|
|
26
|
+
mb: MB
|
|
27
|
+
|
|
28
|
+
ukey1: Some value
|
|
29
|
+
|
|
30
|
+
target_lookup: with lookup
|
|
31
|
+
target_hiera: with hiera
|
|
32
|
+
target_alias: Value from interpolation with alias
|
|
33
|
+
|
|
34
|
+
km_default: 'Value from interpolation %{target_default}'
|
|
35
|
+
km_alias: '%{alias("target_alias")}'
|
|
36
|
+
km_lookup: 'Value from interpolation %{lookup("target_lookup")}'
|
|
37
|
+
km_hiera: 'Value from interpolation %{hiera("target_hiera")}'
|
|
38
|
+
km_scope: 'Value from interpolation %{scope("target_scope")}'
|
|
39
|
+
km_literal: 'Value from interpolation %{literal("with literal")}'
|
|
40
|
+
|
|
41
|
+
km_sqalias: "%{alias('target_alias')}"
|
|
42
|
+
recursive: '%{r1}'
|
|
43
|
+
|
|
44
|
+
km_qualified: "Value from qualified interpolation OS = %{os.name}"
|
|
45
|
+
|
|
46
|
+
km_multi: "cluster/%{literal('%')}{::cluster}/%{literal('%')}{role}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include one::test
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
one::test::param:
|
|
3
|
+
key2: module 2
|
|
4
|
+
|
|
5
|
+
one::array:
|
|
6
|
+
- first
|
|
7
|
+
- second
|
|
8
|
+
- third
|
|
9
|
+
|
|
10
|
+
one::lopts_test::hash:
|
|
11
|
+
a: A
|
|
12
|
+
c: C
|
|
13
|
+
m:
|
|
14
|
+
ma: MA
|
|
15
|
+
mc: MC
|
|
16
|
+
|
|
17
|
+
one::loptsm_test::hash:
|
|
18
|
+
a: A
|
|
19
|
+
c: C
|
|
20
|
+
m:
|
|
21
|
+
ma: MA
|
|
22
|
+
mc: MC
|
|
23
|
+
|
|
24
|
+
lookup_options:
|
|
25
|
+
one::loptsm_test::hash:
|
|
26
|
+
merge: deep
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# should not be found since it's not qualified with module name
|
|
30
|
+
ukey2: Some value
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class one {
|
|
2
|
+
class test($param = { key1 => 'default 1', key2 => 'default 2' }) {
|
|
3
|
+
notify { "${param[key1]}, ${param[key2]}": }
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
class lopts_test($hash = { a => 'default A', b => 'default B', c => 'default C', m => {} }) {
|
|
7
|
+
notify { "${hash[a]}, ${hash[b]}, ${hash[c]}, ${hash[m]['ma']}, ${hash[m]['mb']}, ${hash[m]['mc']}": }
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
class loptsm_test($hash = { a => 'default A', b => 'default B', c => 'default C', m => {} }) {
|
|
11
|
+
notify { "${hash[a]}, ${hash[b]}, ${hash[c]}, ${hash[m]['ma']}, ${hash[m]['mb']}, ${hash[m]['mc']}": }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include one::test
|
data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
one::test::param_b: module data param_b is 200
|
data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
:version: 4
|
|
3
|
+
:hierarchy:
|
|
4
|
+
- :name: "name"
|
|
5
|
+
:backend: yaml
|
|
6
|
+
- :name: "one path"
|
|
7
|
+
:backend: yaml
|
|
8
|
+
:path: "single"
|
|
9
|
+
- :name: "two paths"
|
|
10
|
+
:backend: json
|
|
11
|
+
:paths:
|
|
12
|
+
- "first"
|
|
13
|
+
- "second"
|
|
14
|
+
- :name: 'other datadir'
|
|
15
|
+
:backend: yaml
|
|
16
|
+
:datadir: "data2"
|
|
17
|
+
:path: "single"
|
|
18
|
+
:datadir: "data1"
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
class one {
|
|
2
|
+
class test($param_a = "param default is 100", $param_b = "param default is 200", $param_c = "param default is 300", $param_d = "param default is 400", $param_e = "param default is 500") {
|
|
3
|
+
notify { "$param_a, $param_b, $param_c, $param_d, $param_e": }
|
|
4
|
+
}
|
|
5
|
+
}
|