puppet 4.4.0 → 4.5.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 +5 -5
- data/Gemfile +2 -2
- data/LICENSE +2 -2
- data/README.md +5 -0
- data/conf/puppet.conf +1 -1
- data/ext/project_data.yaml +2 -0
- data/ext/redhat/puppet.spec.erb +0 -9
- data/ext/upload_facts.rb +1 -1
- data/lib/hiera_puppet.rb +6 -14
- data/lib/puppet/application/agent.rb +3 -4
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/ca.rb +1 -0
- data/lib/puppet/application/cert.rb +1 -1
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/inspect.rb +2 -2
- data/lib/puppet/application/lookup.rb +8 -20
- data/lib/puppet/application/master.rb +1 -1
- data/lib/puppet/application/resource.rb +1 -5
- data/lib/puppet/data_providers/hiera_config.rb +2 -4
- data/lib/puppet/data_providers/hiera_interpolate.rb +12 -105
- data/lib/puppet/data_providers/json_data_provider_factory.rb +1 -8
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -8
- data/lib/puppet/defaults.rb +104 -25
- data/lib/puppet/face/config.rb +1 -1
- data/lib/puppet/face/help/man.erb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +2 -2
- data/lib/puppet/file_system/windows.rb +1 -15
- data/lib/puppet/functions/assert_type.rb +1 -1
- data/lib/puppet/functions/dig.rb +39 -0
- data/lib/puppet/functions/hiera_include.rb +2 -2
- data/lib/puppet/functions/inline_epp.rb +1 -1
- data/lib/puppet/functions/lest.rb +53 -0
- data/lib/puppet/functions/lookup.rb +40 -30
- data/lib/puppet/functions/new.rb +502 -0
- data/lib/puppet/functions/regsubst.rb +11 -10
- data/lib/puppet/functions/then.rb +74 -0
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/with.rb +1 -1
- data/lib/puppet/functions.rb +69 -0
- data/lib/puppet/indirector/catalog/compiler.rb +4 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +5 -0
- data/lib/puppet/indirector/rest.rb +5 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/loaders.rb +2 -0
- data/lib/puppet/metatype/manager.rb +19 -2
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module_tool/applications/application.rb +1 -1
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +6 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +19 -4
- data/lib/puppet/module_tool/skeleton/templates/generator/{tests → examples}/init.pp.erb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -1
- data/lib/puppet/network/auth_config_parser.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +0 -2
- data/lib/puppet/network/http/api/master/v3/environment.rb +6 -2
- data/lib/puppet/network/http/rack/rest.rb +10 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +20 -3
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +24 -2
- data/lib/puppet/parser/e4_parser_adapter.rb +13 -12
- data/lib/puppet/parser/environment_compiler.rb +2 -2
- data/lib/puppet/parser/functions/hiera_include.rb +2 -2
- data/lib/puppet/parser/functions/inline_epp.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +0 -3
- data/lib/puppet/parser/resource.rb +14 -5
- data/lib/puppet/parser/scope.rb +18 -15
- data/lib/puppet/plugins/data_providers/data_provider.rb +19 -8
- data/lib/puppet/pops/adapters.rb +5 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +77 -15
- data/lib/puppet/pops/evaluator/closure.rb +10 -5
- data/lib/puppet/pops/evaluator/compare_operator.rb +34 -4
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +75 -22
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +7 -6
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +13 -1
- data/lib/puppet/pops/evaluator/runtime3_support.rb +14 -4
- data/lib/puppet/pops/functions/dispatcher.rb +1 -1
- data/lib/puppet/pops/issues.rb +18 -2
- data/lib/puppet/pops/loader/base_loader.rb +48 -7
- data/lib/puppet/pops/loader/dependency_loader.rb +27 -2
- data/lib/puppet/pops/loader/loader.rb +12 -0
- data/lib/puppet/pops/loader/predefined_loader.rb +29 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +57 -0
- data/lib/puppet/pops/loader/static_loader.rb +92 -5
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +25 -3
- data/lib/puppet/pops/loaders.rb +84 -14
- data/lib/puppet/pops/lookup/explainer.rb +38 -1
- data/lib/puppet/pops/lookup/interpolation.rb +115 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +86 -0
- data/lib/puppet/pops/merge_strategy.rb +0 -10
- data/lib/puppet/pops/model/ast_transformer.rb +8 -1
- data/lib/puppet/pops/model/factory.rb +31 -8
- data/lib/puppet/pops/model/model.rb +8 -0
- data/lib/puppet/pops/model/model_label_provider.rb +1 -0
- data/lib/puppet/pops/model/model_meta.rb +7 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/lib/puppet/pops/parser/egrammar.ra +24 -7
- data/lib/puppet/pops/parser/eparser.rb +863 -798
- data/lib/puppet/pops/parser/evaluating_parser.rb +4 -0
- data/lib/puppet/pops/parser/locator.rb +8 -4
- data/lib/puppet/pops/pcore.rb +30 -0
- data/lib/puppet/pops/types/class_loader.rb +2 -4
- data/lib/puppet/pops/types/implementation_registry.rb +146 -0
- data/lib/puppet/pops/types/iterable.rb +4 -4
- data/lib/puppet/pops/types/p_object_type.rb +846 -0
- data/lib/puppet/pops/types/p_runtime_type.rb +102 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +164 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +113 -0
- data/lib/puppet/pops/types/puppet_object.rb +21 -0
- data/lib/puppet/pops/types/recursion_guard.rb +10 -0
- data/lib/puppet/pops/types/ruby_generator.rb +258 -0
- data/lib/puppet/pops/types/string_converter.rb +922 -0
- data/lib/puppet/pops/types/type_asserter.rb +2 -2
- data/lib/puppet/pops/types/type_calculator.rb +30 -6
- data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
- data/lib/puppet/pops/types/type_factory.rb +49 -16
- data/lib/puppet/pops/types/type_formatter.rb +341 -106
- data/lib/puppet/pops/types/type_mismatch_describer.rb +132 -41
- data/lib/puppet/pops/types/type_parser.rb +205 -197
- data/lib/puppet/pops/types/types.rb +722 -202
- data/lib/puppet/pops/validation/checker4_0.rb +66 -4
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/pops/validation.rb +1 -1
- data/lib/puppet/pops/visitor.rb +3 -1
- data/lib/puppet/pops.rb +6 -0
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/provider/augeas/augeas.rb +1 -1
- data/lib/puppet/provider/package/pip.rb +64 -20
- data/lib/puppet/provider/package/pip3.rb +2 -0
- data/lib/puppet/provider/package/puppet_gem.rb +0 -0
- data/lib/puppet/provider/package/rpm.rb +112 -0
- data/lib/puppet/provider/package/yum.rb +7 -68
- data/lib/puppet/provider/service/daemontools.rb +3 -3
- data/lib/puppet/provider/service/init.rb +4 -2
- data/lib/puppet/provider/service/runit.rb +3 -3
- data/lib/puppet/provider/service/smf.rb +6 -3
- data/lib/puppet/provider/service/systemd.rb +59 -73
- data/lib/puppet/provider/user/user_role_add.rb +3 -1
- data/lib/puppet/reference/providers.rb +2 -3
- data/lib/puppet/resource/catalog.rb +34 -30
- data/lib/puppet/resource/type_collection.rb +23 -8
- data/lib/puppet/resource.rb +54 -37
- data/lib/puppet/settings/base_setting.rb +9 -3
- data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
- data/lib/puppet/settings.rb +5 -3
- data/lib/puppet/ssl/oids.rb +24 -2
- data/lib/puppet/test/test_helper.rb +0 -1
- data/lib/puppet/transaction.rb +0 -24
- data/lib/puppet/type/exec.rb +17 -17
- data/lib/puppet/type/file/content.rb +8 -8
- data/lib/puppet/type/file/ensure.rb +4 -4
- data/lib/puppet/type/file/source.rb +4 -4
- data/lib/puppet/type/file/target.rb +2 -2
- data/lib/puppet/type/file.rb +15 -5
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/mount.rb +18 -1
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/schedule.rb +5 -5
- data/lib/puppet/type/service.rb +15 -0
- data/lib/puppet/type/sshkey.rb +5 -3
- data/lib/puppet/type/stage.rb +1 -1
- data/lib/puppet/type/tidy.rb +3 -3
- data/lib/puppet/type/zone.rb +5 -5
- data/lib/puppet/type.rb +13 -7
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/monkey_patches.rb +18 -5
- data/lib/puppet/util/network_device/cisco/device.rb +16 -6
- data/lib/puppet/util/network_device/cisco/interface.rb +5 -6
- data/lib/puppet/util/plist.rb +3 -3
- data/lib/puppet/util/windows/file.rb +40 -10
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +13 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +5 -1
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +2 -2
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +2 -1
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +2 -1
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_json/data/empty_key.json +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_json/manifests/init.pp +2 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_json/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_yaml/data/empty_key.yaml +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_yaml/manifests/init.pp +2 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_key_yaml/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
- data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +5 -0
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -0
- data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
- data/spec/fixtures/unit/provider/service/smf/svcs.out +4 -3
- data/spec/integration/agent/logging_spec.rb +0 -0
- data/spec/integration/application/apply_spec.rb +0 -0
- data/spec/integration/application/doc_spec.rb +0 -0
- data/spec/integration/configurer_spec.rb +0 -0
- data/spec/integration/data_binding_spec.rb +0 -34
- data/spec/integration/defaults_spec.rb +0 -0
- data/spec/integration/faces/ca_spec.rb +0 -0
- data/spec/integration/faces/documentation_spec.rb +0 -0
- data/spec/integration/file_serving/fileset_spec.rb +0 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
- data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
- data/spec/integration/indirector/node/ldap_spec.rb +0 -0
- data/spec/integration/module_tool/tar/mini_spec.rb +27 -27
- data/spec/integration/network/formats_spec.rb +0 -0
- data/spec/integration/node/environment_spec.rb +0 -0
- data/spec/integration/node/facts_spec.rb +0 -0
- data/spec/integration/node_spec.rb +0 -0
- data/spec/integration/parser/catalog_spec.rb +14 -2
- data/spec/integration/parser/collection_spec.rb +0 -0
- data/spec/integration/parser/compiler_spec.rb +94 -3
- data/spec/integration/parser/functions/require_spec.rb +0 -0
- data/spec/integration/parser/parameter_defaults_spec.rb +19 -1
- data/spec/integration/parser/resource_expressions_spec.rb +1 -1
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
- data/spec/integration/provider/mount_spec.rb +0 -0
- data/spec/integration/provider/service/init_spec.rb +0 -0
- data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
- data/spec/integration/reference/providers_spec.rb +0 -0
- data/spec/integration/reports_spec.rb +0 -0
- data/spec/integration/resource/catalog_spec.rb +0 -0
- data/spec/integration/resource/type_collection_spec.rb +8 -0
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -0
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
- data/spec/integration/ssl/host_spec.rb +0 -0
- data/spec/integration/transaction/report_spec.rb +0 -0
- data/spec/integration/transaction_spec.rb +0 -0
- data/spec/integration/type/exec_spec.rb +0 -0
- data/spec/integration/type/file_spec.rb +0 -0
- data/spec/integration/type/package_spec.rb +0 -0
- data/spec/integration/type/tidy_spec.rb +0 -0
- data/spec/integration/type_spec.rb +0 -0
- data/spec/integration/util/autoload_spec.rb +0 -0
- data/spec/integration/util/rdoc/parser_spec.rb +0 -0
- data/spec/integration/util/settings_spec.rb +26 -0
- data/spec/integration/util/windows/registry_spec.rb +0 -0
- data/spec/integration/util/windows/security_spec.rb +0 -0
- data/spec/integration/util/windows/user_spec.rb +0 -0
- data/spec/integration/util_spec.rb +0 -0
- data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
- data/spec/lib/puppet/face/basetest.rb +0 -0
- data/spec/lib/puppet/face/huzzah.rb +0 -0
- data/spec/lib/puppet_spec/compiler.rb +11 -4
- data/spec/lib/puppet_spec/files.rb +0 -0
- data/spec/lib/puppet_spec/fixtures.rb +0 -0
- data/spec/lib/puppet_spec/verbose.rb +0 -0
- data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
- data/spec/shared_behaviours/file_server_terminus.rb +0 -0
- data/spec/shared_behaviours/file_serving.rb +0 -0
- data/spec/shared_behaviours/memory_terminus.rb +0 -0
- data/spec/shared_behaviours/path_parameters.rb +0 -0
- data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
- data/spec/shared_contexts/types_setup.rb +4 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/unit/agent/locker_spec.rb +0 -0
- data/spec/unit/agent_spec.rb +0 -0
- data/spec/unit/application/agent_spec.rb +0 -0
- data/spec/unit/application/apply_spec.rb +0 -0
- data/spec/unit/application/cert_spec.rb +0 -0
- data/spec/unit/application/certificate_spec.rb +0 -0
- data/spec/unit/application/config_spec.rb +0 -0
- data/spec/unit/application/describe_spec.rb +0 -0
- data/spec/unit/application/device_spec.rb +0 -0
- data/spec/unit/application/doc_spec.rb +0 -0
- data/spec/unit/application/face_base_spec.rb +0 -0
- data/spec/unit/application/facts_spec.rb +0 -0
- data/spec/unit/application/filebucket_spec.rb +0 -0
- data/spec/unit/application/indirection_base_spec.rb +0 -0
- data/spec/unit/application/inspect_spec.rb +19 -8
- data/spec/unit/application/lookup_spec.rb +92 -10
- data/spec/unit/application/master_spec.rb +0 -0
- data/spec/unit/application/resource_spec.rb +0 -0
- data/spec/unit/application_spec.rb +0 -0
- data/spec/unit/appmgmt_spec.rb +44 -35
- data/spec/unit/capability_spec.rb +33 -53
- data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
- data/spec/unit/configurer/downloader_spec.rb +0 -0
- data/spec/unit/configurer/fact_handler_spec.rb +0 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
- data/spec/unit/configurer_spec.rb +0 -0
- data/spec/unit/confine/exists_spec.rb +0 -0
- data/spec/unit/confine/false_spec.rb +0 -0
- data/spec/unit/confine/feature_spec.rb +0 -0
- data/spec/unit/confine/true_spec.rb +0 -0
- data/spec/unit/confine/variable_spec.rb +0 -0
- data/spec/unit/confine_collection_spec.rb +0 -0
- data/spec/unit/confine_spec.rb +0 -0
- data/spec/unit/confiner_spec.rb +0 -0
- data/spec/unit/daemon_spec.rb +0 -0
- data/spec/unit/data_providers/function_data_provider_spec.rb +19 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +2 -2
- data/spec/unit/defaults_spec.rb +18 -0
- data/spec/unit/external/pson_spec.rb +0 -0
- data/spec/unit/face/catalog_spec.rb +0 -0
- data/spec/unit/face/certificate_spec.rb +0 -0
- data/spec/unit/face/config_spec.rb +0 -0
- data/spec/unit/face/facts_spec.rb +0 -0
- data/spec/unit/face/file_spec.rb +0 -0
- data/spec/unit/face/help_spec.rb +0 -0
- data/spec/unit/face/node_spec.rb +0 -0
- data/spec/unit/face/plugin_spec.rb +0 -0
- data/spec/unit/face_spec.rb +0 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -0
- data/spec/unit/file_bucket/file_spec.rb +0 -0
- data/spec/unit/file_serving/base_spec.rb +0 -0
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -0
- data/spec/unit/file_serving/configuration_spec.rb +0 -0
- data/spec/unit/file_serving/content_spec.rb +0 -0
- data/spec/unit/file_serving/fileset_spec.rb +0 -0
- data/spec/unit/file_serving/metadata_spec.rb +0 -0
- data/spec/unit/file_serving/mount/file_spec.rb +0 -0
- data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
- data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
- data/spec/unit/file_serving/mount_spec.rb +0 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +0 -0
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -0
- data/spec/unit/file_system/uniquefile_spec.rb +20 -0
- data/spec/unit/file_system_spec.rb +61 -0
- data/spec/unit/functions/assert_type_spec.rb +8 -0
- data/spec/unit/functions/defined_spec.rb +0 -0
- data/spec/unit/functions/dig_spec.rb +58 -0
- data/spec/unit/functions/hiera_spec.rb +0 -0
- data/spec/unit/functions/lest_spec.rb +34 -0
- data/spec/unit/functions/lookup_spec.rb +109 -3
- data/spec/unit/functions/new_spec.rb +543 -0
- data/spec/unit/functions/regsubst_spec.rb +8 -0
- data/spec/unit/functions/split_spec.rb +0 -0
- data/spec/unit/functions/then_spec.rb +40 -0
- data/spec/unit/functions/versioncmp_spec.rb +0 -0
- data/spec/unit/functions4_spec.rb +78 -10
- data/spec/unit/graph/relationship_graph_spec.rb +0 -0
- data/spec/unit/graph/simple_graph_spec.rb +0 -0
- data/spec/unit/hiera_puppet_spec.rb +49 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +7 -0
- data/spec/unit/indirector/catalog/json_spec.rb +0 -0
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
- data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
- data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
- data/spec/unit/indirector/code_spec.rb +0 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
- data/spec/unit/indirector/envelope_spec.rb +0 -0
- data/spec/unit/indirector/exec_spec.rb +0 -0
- data/spec/unit/indirector/face_spec.rb +0 -0
- data/spec/unit/indirector/facts/facter_spec.rb +0 -0
- data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -0
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
- data/spec/unit/indirector/file_content/file_spec.rb +0 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
- data/spec/unit/indirector/file_server_spec.rb +0 -0
- data/spec/unit/indirector/indirection_spec.rb +0 -0
- data/spec/unit/indirector/json_spec.rb +0 -0
- data/spec/unit/indirector/key/ca_spec.rb +0 -0
- data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
- data/spec/unit/indirector/key/file_spec.rb +0 -0
- data/spec/unit/indirector/ldap_spec.rb +0 -0
- data/spec/unit/indirector/memory_spec.rb +0 -0
- data/spec/unit/indirector/msgpack_spec.rb +11 -1
- data/spec/unit/indirector/node/exec_spec.rb +0 -0
- data/spec/unit/indirector/node/ldap_spec.rb +0 -0
- data/spec/unit/indirector/node/memory_spec.rb +0 -0
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/node/plain_spec.rb +0 -0
- data/spec/unit/indirector/node/rest_spec.rb +0 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/node/yaml_spec.rb +0 -0
- data/spec/unit/indirector/plain_spec.rb +0 -0
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
- data/spec/unit/indirector/report/processor_spec.rb +0 -0
- data/spec/unit/indirector/report/rest_spec.rb +0 -0
- data/spec/unit/indirector/report/yaml_spec.rb +0 -0
- data/spec/unit/indirector/request_spec.rb +0 -0
- data/spec/unit/indirector/resource/ral_spec.rb +0 -0
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +5 -0
- data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
- data/spec/unit/indirector/rest_spec.rb +12 -0
- data/spec/unit/indirector/ssl_file_spec.rb +0 -0
- data/spec/unit/indirector/status/rest_spec.rb +0 -0
- data/spec/unit/indirector/store_configs_spec.rb +0 -0
- data/spec/unit/indirector/terminus_spec.rb +0 -0
- data/spec/unit/indirector/yaml_spec.rb +0 -0
- data/spec/unit/indirector_spec.rb +0 -0
- data/spec/unit/interface/action_builder_spec.rb +0 -0
- data/spec/unit/interface/action_manager_spec.rb +0 -0
- data/spec/unit/interface/action_spec.rb +0 -0
- data/spec/unit/interface/documentation_spec.rb +0 -0
- data/spec/unit/interface/face_collection_spec.rb +0 -0
- data/spec/unit/interface/option_builder_spec.rb +0 -0
- data/spec/unit/interface/option_spec.rb +0 -0
- data/spec/unit/interface_spec.rb +0 -0
- data/spec/unit/man_spec.rb +0 -0
- data/spec/unit/module_spec.rb +30 -6
- data/spec/unit/module_tool/applications/builder_spec.rb +23 -3
- data/spec/unit/module_tool_spec.rb +0 -0
- data/spec/unit/network/auth_config_parser_spec.rb +16 -0
- data/spec/unit/network/authconfig_spec.rb +0 -0
- data/spec/unit/network/authstore_spec.rb +0 -0
- data/spec/unit/network/format_handler_spec.rb +0 -0
- data/spec/unit/network/format_spec.rb +0 -0
- data/spec/unit/network/formats_spec.rb +0 -0
- data/spec/unit/network/http/api/indirected_routes_spec.rb +21 -13
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +60 -0
- data/spec/unit/network/http/api/master/v3_spec.rb +0 -0
- data/spec/unit/network/http/compression_spec.rb +0 -0
- data/spec/unit/network/http/connection_spec.rb +0 -0
- data/spec/unit/network/http/factory_spec.rb +0 -0
- data/spec/unit/network/http/handler_spec.rb +0 -0
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
- data/spec/unit/network/http/pool_spec.rb +0 -0
- data/spec/unit/network/http/rack/rest_spec.rb +7 -0
- data/spec/unit/network/http/rack_spec.rb +0 -0
- data/spec/unit/network/http/session_spec.rb +0 -0
- data/spec/unit/network/http/site_spec.rb +0 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
- data/spec/unit/network/http/webrick_spec.rb +0 -0
- data/spec/unit/network/http_pool_spec.rb +0 -0
- data/spec/unit/network/http_spec.rb +0 -0
- data/spec/unit/network/resolver_spec.rb +0 -0
- data/spec/unit/network/rights_spec.rb +0 -0
- data/spec/unit/network/server_spec.rb +0 -0
- data/spec/unit/node/environment_spec.rb +10 -0
- data/spec/unit/node/facts_spec.rb +0 -0
- data/spec/unit/node_spec.rb +0 -0
- data/spec/unit/other/selinux_spec.rb +0 -0
- data/spec/unit/parameter/path_spec.rb +0 -0
- data/spec/unit/parameter/value_collection_spec.rb +0 -0
- data/spec/unit/parameter/value_spec.rb +0 -0
- data/spec/unit/parameter_spec.rb +0 -0
- data/spec/unit/parser/ast/leaf_spec.rb +0 -0
- data/spec/unit/parser/compiler_spec.rb +20 -1
- data/spec/unit/parser/files_spec.rb +0 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -2
- data/spec/unit/parser/functions/defined_spec.rb +0 -0
- data/spec/unit/parser/functions/digest_spec.rb +0 -0
- data/spec/unit/parser/functions/fail_spec.rb +0 -0
- data/spec/unit/parser/functions/file_spec.rb +0 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -0
- data/spec/unit/parser/functions/generate_spec.rb +0 -0
- data/spec/unit/parser/functions/hiera_spec.rb +0 -0
- data/spec/unit/parser/functions/include_spec.rb +0 -0
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
- data/spec/unit/parser/functions/realize_spec.rb +0 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -0
- data/spec/unit/parser/functions/require_spec.rb +0 -0
- data/spec/unit/parser/functions/scanf_spec.rb +0 -0
- data/spec/unit/parser/functions/shared.rb +1 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
- data/spec/unit/parser/functions/split_spec.rb +0 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
- data/spec/unit/parser/functions/tag_spec.rb +0 -0
- data/spec/unit/parser/functions/template_spec.rb +0 -0
- data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
- data/spec/unit/parser/functions_spec.rb +0 -0
- data/spec/unit/parser/relationship_spec.rb +0 -0
- data/spec/unit/parser/resource/param_spec.rb +0 -0
- data/spec/unit/parser/resource_spec.rb +8 -1
- data/spec/unit/parser/scope_spec.rb +45 -0
- data/spec/unit/parser/templatewrapper_spec.rb +0 -0
- data/spec/unit/parser/type_loader_spec.rb +0 -0
- data/spec/unit/pops/evaluator/access_ops_spec.rb +14 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +13 -5
- data/spec/unit/pops/loaders/loaders_spec.rb +8 -8
- data/spec/unit/pops/loaders/static_loader_spec.rb +92 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +313 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +2 -9
- data/spec/unit/pops/parser/parse_application_spec.rb +3 -8
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +19 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +3 -10
- data/spec/unit/pops/parser/parse_site_spec.rb +19 -10
- data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -4
- data/spec/unit/pops/types/enumeration_spec.rb +13 -12
- data/spec/unit/pops/types/iterable_spec.rb +2 -2
- data/spec/unit/pops/types/p_object_type_spec.rb +1060 -0
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +285 -0
- data/spec/unit/pops/types/recursion_guard_spec.rb +19 -17
- data/spec/unit/pops/types/ruby_generator_spec.rb +261 -0
- data/spec/unit/pops/types/string_converter_spec.rb +904 -0
- data/spec/unit/pops/types/type_asserter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +462 -412
- data/spec/unit/pops/types/type_factory_spec.rb +129 -88
- data/spec/unit/pops/types/type_formatter_spec.rb +80 -8
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +27 -2
- data/spec/unit/pops/types/type_parser_spec.rb +55 -16
- data/spec/unit/pops/types/types_spec.rb +320 -0
- data/spec/unit/pops/validator/validator_spec.rb +84 -10
- data/spec/unit/property/ensure_spec.rb +0 -0
- data/spec/unit/property/keyvalue_spec.rb +0 -0
- data/spec/unit/property/list_spec.rb +0 -0
- data/spec/unit/property/ordered_list_spec.rb +0 -0
- data/spec/unit/property_spec.rb +0 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +0 -0
- data/spec/unit/provider/cisco_spec.rb +0 -0
- data/spec/unit/provider/command_spec.rb +0 -0
- data/spec/unit/provider/cron/crontab_spec.rb +0 -0
- data/spec/unit/provider/exec/posix_spec.rb +0 -0
- data/spec/unit/provider/exec/shell_spec.rb +0 -0
- data/spec/unit/provider/exec/windows_spec.rb +0 -0
- data/spec/unit/provider/exec_spec.rb +0 -0
- data/spec/unit/provider/file/posix_spec.rb +0 -0
- data/spec/unit/provider/file/windows_spec.rb +0 -0
- data/spec/unit/provider/group/groupadd_spec.rb +0 -0
- data/spec/unit/provider/group/ldap_spec.rb +0 -0
- data/spec/unit/provider/group/pw_spec.rb +0 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +0 -0
- data/spec/unit/provider/host/parsed_spec.rb +0 -0
- data/spec/unit/provider/interface/cisco_spec.rb +0 -0
- data/spec/unit/provider/ldap_spec.rb +0 -0
- data/spec/unit/provider/macauthorization_spec.rb +0 -0
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
- data/spec/unit/provider/mount/parsed_spec.rb +0 -0
- data/spec/unit/provider/mount_spec.rb +0 -0
- data/spec/unit/provider/naginator_spec.rb +0 -0
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -0
- data/spec/unit/provider/nameservice_spec.rb +0 -0
- data/spec/unit/provider/network_device_spec.rb +0 -0
- data/spec/unit/provider/package/aix_spec.rb +0 -0
- data/spec/unit/provider/package/appdmg_spec.rb +0 -0
- data/spec/unit/provider/package/apt_spec.rb +0 -0
- data/spec/unit/provider/package/aptitude_spec.rb +0 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +0 -0
- data/spec/unit/provider/package/dpkg_spec.rb +0 -0
- data/spec/unit/provider/package/freebsd_spec.rb +0 -0
- data/spec/unit/provider/package/gem_spec.rb +0 -0
- data/spec/unit/provider/package/hpux_spec.rb +0 -0
- data/spec/unit/provider/package/macports_spec.rb +0 -0
- data/spec/unit/provider/package/nim_spec.rb +0 -0
- data/spec/unit/provider/package/openbsd_spec.rb +0 -0
- data/spec/unit/provider/package/opkg_spec.rb +0 -0
- data/spec/unit/provider/package/pacman_spec.rb +0 -0
- data/spec/unit/provider/package/pip3_spec.rb +9 -262
- data/spec/unit/provider/package/pip_spec.rb +85 -22
- data/spec/unit/provider/package/pkg_spec.rb +0 -0
- data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
- data/spec/unit/provider/package/rpm_spec.rb +160 -3
- data/spec/unit/provider/package/sun_spec.rb +0 -0
- data/spec/unit/provider/package/windows/package_spec.rb +0 -0
- data/spec/unit/provider/package/windows_spec.rb +0 -0
- data/spec/unit/provider/package/yum_spec.rb +23 -134
- data/spec/unit/provider/package/zypper_spec.rb +0 -0
- data/spec/unit/provider/parsedfile_spec.rb +0 -0
- data/spec/unit/provider/selboolean_spec.rb +0 -0
- data/spec/unit/provider/selmodule_spec.rb +0 -0
- data/spec/unit/provider/service/base_spec.rb +0 -0
- data/spec/unit/provider/service/bsd_spec.rb +0 -0
- data/spec/unit/provider/service/daemontools_spec.rb +0 -0
- data/spec/unit/provider/service/debian_spec.rb +0 -0
- data/spec/unit/provider/service/freebsd_spec.rb +0 -0
- data/spec/unit/provider/service/gentoo_spec.rb +0 -0
- data/spec/unit/provider/service/init_spec.rb +0 -0
- data/spec/unit/provider/service/launchd_spec.rb +0 -0
- data/spec/unit/provider/service/openbsd_spec.rb +0 -0
- data/spec/unit/provider/service/openrc_spec.rb +0 -0
- data/spec/unit/provider/service/openwrt_spec.rb +0 -0
- data/spec/unit/provider/service/rcng_spec.rb +0 -0
- data/spec/unit/provider/service/redhat_spec.rb +0 -0
- data/spec/unit/provider/service/runit_spec.rb +0 -0
- data/spec/unit/provider/service/smf_spec.rb +14 -2
- data/spec/unit/provider/service/src_spec.rb +0 -0
- data/spec/unit/provider/service/systemd_spec.rb +34 -42
- data/spec/unit/provider/service/upstart_spec.rb +0 -0
- data/spec/unit/provider/service/windows_spec.rb +0 -0
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -0
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +0 -0
- data/spec/unit/provider/user/hpux_spec.rb +0 -0
- data/spec/unit/provider/user/ldap_spec.rb +0 -0
- data/spec/unit/provider/user/openbsd_spec.rb +0 -0
- data/spec/unit/provider/user/pw_spec.rb +0 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
- data/spec/unit/provider/user/useradd_spec.rb +0 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +0 -0
- data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
- data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
- data/spec/unit/provider/zone/solaris_spec.rb +0 -0
- data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
- data/spec/unit/provider_spec.rb +0 -0
- data/spec/unit/puppet_spec.rb +0 -0
- data/spec/unit/relationship_spec.rb +0 -0
- data/spec/unit/reports/http_spec.rb +0 -0
- data/spec/unit/reports/store_spec.rb +0 -0
- data/spec/unit/reports_spec.rb +0 -0
- data/spec/unit/resource/capability_finder_spec.rb +10 -2
- data/spec/unit/resource/catalog_spec.rb +27 -0
- data/spec/unit/resource/status_spec.rb +0 -0
- data/spec/unit/resource/type_collection_helper_spec.rb +0 -0
- data/spec/unit/resource/type_collection_spec.rb +0 -0
- data/spec/unit/resource/type_spec.rb +0 -0
- data/spec/unit/resource_spec.rb +0 -0
- data/spec/unit/settings/directory_setting_spec.rb +0 -0
- data/spec/unit/settings/duration_setting_spec.rb +0 -0
- data/spec/unit/settings/file_setting_spec.rb +6 -0
- data/spec/unit/settings/path_setting_spec.rb +0 -0
- data/spec/unit/settings/priority_setting_spec.rb +0 -0
- data/spec/unit/settings_spec.rb +1 -1
- data/spec/unit/ssl/base_spec.rb +0 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +0 -0
- data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
- data/spec/unit/ssl/certificate_request_spec.rb +0 -0
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -0
- data/spec/unit/ssl/certificate_spec.rb +0 -0
- data/spec/unit/ssl/configuration_spec.rb +0 -0
- data/spec/unit/ssl/host_spec.rb +0 -0
- data/spec/unit/ssl/inventory_spec.rb +0 -0
- data/spec/unit/ssl/key_spec.rb +0 -0
- data/spec/unit/status_spec.rb +0 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +80 -65
- data/spec/unit/transaction/event_manager_spec.rb +0 -0
- data/spec/unit/transaction/event_spec.rb +0 -0
- data/spec/unit/transaction/report_spec.rb +0 -0
- data/spec/unit/transaction/resource_harness_spec.rb +0 -0
- data/spec/unit/transaction_spec.rb +0 -0
- data/spec/unit/type/augeas_spec.rb +0 -0
- data/spec/unit/type/component_spec.rb +0 -0
- data/spec/unit/type/computer_spec.rb +0 -0
- data/spec/unit/type/cron_spec.rb +0 -0
- data/spec/unit/type/exec_spec.rb +0 -0
- data/spec/unit/type/file/checksum_spec.rb +0 -0
- data/spec/unit/type/file/checksum_value_spec.rb +0 -0
- data/spec/unit/type/file/content_spec.rb +0 -0
- data/spec/unit/type/file/ctime_spec.rb +0 -0
- data/spec/unit/type/file/ensure_spec.rb +0 -0
- data/spec/unit/type/file/group_spec.rb +0 -0
- data/spec/unit/type/file/mode_spec.rb +0 -0
- data/spec/unit/type/file/mtime_spec.rb +0 -0
- data/spec/unit/type/file/owner_spec.rb +0 -0
- data/spec/unit/type/file/selinux_spec.rb +0 -0
- data/spec/unit/type/file/source_spec.rb +0 -0
- data/spec/unit/type/file/type_spec.rb +0 -0
- data/spec/unit/type/file_spec.rb +0 -0
- data/spec/unit/type/filebucket_spec.rb +0 -0
- data/spec/unit/type/group_spec.rb +0 -0
- data/spec/unit/type/host_spec.rb +0 -0
- data/spec/unit/type/interface_spec.rb +0 -0
- data/spec/unit/type/k5login_spec.rb +0 -0
- data/spec/unit/type/macauthorization_spec.rb +0 -0
- data/spec/unit/type/mailalias_spec.rb +0 -0
- data/spec/unit/type/maillist_spec.rb +0 -0
- data/spec/unit/type/mcx_spec.rb +0 -0
- data/spec/unit/type/mount_spec.rb +51 -10
- data/spec/unit/type/nagios_spec.rb +0 -0
- data/spec/unit/type/noop_metaparam_spec.rb +0 -0
- data/spec/unit/type/package/package_settings_spec.rb +0 -0
- data/spec/unit/type/package_spec.rb +0 -0
- data/spec/unit/type/resources_spec.rb +0 -0
- data/spec/unit/type/schedule_spec.rb +0 -0
- data/spec/unit/type/selboolean_spec.rb +0 -0
- data/spec/unit/type/selmodule_spec.rb +0 -0
- data/spec/unit/type/service_spec.rb +16 -0
- data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
- data/spec/unit/type/sshkey_spec.rb +0 -0
- data/spec/unit/type/stage_spec.rb +0 -0
- data/spec/unit/type/tidy_spec.rb +0 -0
- data/spec/unit/type/user_spec.rb +0 -0
- data/spec/unit/type/vlan_spec.rb +0 -0
- data/spec/unit/type/whit_spec.rb +0 -0
- data/spec/unit/type/yumrepo_spec.rb +0 -0
- data/spec/unit/type/zfs_spec.rb +0 -0
- data/spec/unit/type/zone_spec.rb +0 -0
- data/spec/unit/type/zpool_spec.rb +0 -0
- data/spec/unit/type_spec.rb +14 -0
- data/spec/unit/util/autoload_spec.rb +0 -0
- data/spec/unit/util/backups_spec.rb +0 -0
- data/spec/unit/util/checksums_spec.rb +0 -0
- data/spec/unit/util/colors_spec.rb +0 -0
- data/spec/unit/util/command_line_spec.rb +0 -0
- data/spec/unit/util/constant_inflector_spec.rb +0 -0
- data/spec/unit/util/diff_spec.rb +0 -0
- data/spec/unit/util/errors_spec.rb +0 -0
- data/spec/unit/util/execution_spec.rb +0 -0
- data/spec/unit/util/execution_stub_spec.rb +0 -0
- data/spec/unit/util/feature_spec.rb +1 -1
- data/spec/unit/util/filetype_spec.rb +0 -0
- data/spec/unit/util/ldap/connection_spec.rb +0 -0
- data/spec/unit/util/ldap/generator_spec.rb +0 -0
- data/spec/unit/util/ldap/manager_spec.rb +0 -0
- data/spec/unit/util/log/destinations_spec.rb +0 -0
- data/spec/unit/util/log_spec.rb +0 -0
- data/spec/unit/util/logging_spec.rb +0 -0
- data/spec/unit/util/metric_spec.rb +0 -0
- data/spec/unit/util/monkey_patches_spec.rb +79 -3
- data/spec/unit/util/nagios_maker_spec.rb +0 -0
- data/spec/unit/util/network_device/cisco/device_spec.rb +1 -1
- data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
- data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
- data/spec/unit/util/network_device/config_spec.rb +0 -0
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -0
- data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -0
- data/spec/unit/util/package_spec.rb +0 -0
- data/spec/unit/util/posix_spec.rb +0 -0
- data/spec/unit/util/rdoc_spec.rb +0 -0
- data/spec/unit/util/resource_template_spec.rb +0 -0
- data/spec/unit/util/retry_action_spec.rb +0 -0
- data/spec/unit/util/run_mode_spec.rb +0 -0
- data/spec/unit/util/selinux_spec.rb +0 -0
- data/spec/unit/util/storage_spec.rb +0 -0
- data/spec/unit/util/suidmanager_spec.rb +0 -0
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
- data/spec/unit/util/tagging_spec.rb +0 -0
- data/spec/unit/util/user_attr_spec.rb +0 -0
- data/spec/unit/util/warnings_spec.rb +0 -0
- data/spec/unit/util/windows/adsi_spec.rb +0 -0
- data/spec/unit/util/windows/file_spec.rb +34 -0
- data/spec/unit/util/windows/root_certs_spec.rb +0 -0
- data/spec/unit/util/windows/sid_spec.rb +0 -0
- data/spec/unit/util_spec.rb +0 -0
- data/spec/watchr.rb +0 -0
- metadata +3402 -3337
- checksums.yaml +0 -7
- data/ext/puppet-nm-dispatcher +0 -13
- data/lib/puppet/pops/types/types_meta.rb +0 -0
- data/spec/integration/provider/package_spec.rb +0 -35
- data/spec/unit/data_providers/hiera_interpolation_spec.rb +0 -57
data/lib/puppet/defaults.rb
CHANGED
|
@@ -115,12 +115,36 @@ module Puppet
|
|
|
115
115
|
* `undefined_variables` --- disables warnings about non existing variables.",
|
|
116
116
|
:hook => proc do |value|
|
|
117
117
|
values = munge(value)
|
|
118
|
-
valid = %w[deprecations undefined_variables]
|
|
118
|
+
valid = %w[deprecations undefined_variables undefined_resources]
|
|
119
119
|
invalid = values - (values & valid)
|
|
120
120
|
if not invalid.empty?
|
|
121
121
|
raise ArgumentError, "Cannot disable unrecognized warning types #{invalid.inspect}. Valid values are #{valid.inspect}."
|
|
122
122
|
end
|
|
123
123
|
end
|
|
124
|
+
},
|
|
125
|
+
:strict => {
|
|
126
|
+
:default => :warning,
|
|
127
|
+
:type => :symbolic_enum,
|
|
128
|
+
:values => [:off, :warning, :error],
|
|
129
|
+
:desc => "The strictness level of puppet. Allowed values are:
|
|
130
|
+
|
|
131
|
+
* off - do not perform extra validation, do not report
|
|
132
|
+
* warning - perform extra validation, report as warning (default)
|
|
133
|
+
* error - perform extra validation, fail with error
|
|
134
|
+
|
|
135
|
+
The strictness level is for both language semantics and runtime
|
|
136
|
+
evaluation validation. In addition to controlling the behavior with
|
|
137
|
+
this master switch some individual warnings may also be controlled
|
|
138
|
+
by the disable_warnings setting.
|
|
139
|
+
|
|
140
|
+
No new validations will be added to a micro (x.y.z) release,
|
|
141
|
+
but may be added in minor releases (x.y.0). In major releases
|
|
142
|
+
it expected that most (if not all) strictness validation become
|
|
143
|
+
standard behavior.",
|
|
144
|
+
:hook => proc do |value|
|
|
145
|
+
munge(value)
|
|
146
|
+
value.to_sym
|
|
147
|
+
end
|
|
124
148
|
}
|
|
125
149
|
)
|
|
126
150
|
|
|
@@ -290,7 +314,13 @@ module Puppet
|
|
|
290
314
|
:always_cache_features => {
|
|
291
315
|
:type => :boolean,
|
|
292
316
|
:default => false,
|
|
317
|
+
:hook => proc { |value|
|
|
318
|
+
Puppet.deprecation_warning "Setting 'always_cache_features' is
|
|
319
|
+
deprecated and has been replaced by 'always_retry_plugins'."
|
|
320
|
+
},
|
|
293
321
|
:desc => <<-'EOT'
|
|
322
|
+
This setting is deprecated and has been replaced by always_retry_plugins.
|
|
323
|
+
|
|
294
324
|
Affects how we cache attempts to load Puppet 'features'. If false, then
|
|
295
325
|
calls to `Puppet.features.<feature>?` will always attempt to load the
|
|
296
326
|
feature (which can be an expensive operation) unless it has already been
|
|
@@ -306,6 +336,27 @@ module Puppet
|
|
|
306
336
|
improvement for features that are checked frequently.
|
|
307
337
|
EOT
|
|
308
338
|
},
|
|
339
|
+
:always_retry_plugins => {
|
|
340
|
+
:type => :boolean,
|
|
341
|
+
:default => true,
|
|
342
|
+
:desc => <<-'EOT'
|
|
343
|
+
Affects how we cache attempts to load Puppet resource types and features. If
|
|
344
|
+
true, then calls to `Puppet.type.<type>?` `Puppet.feature.<feature>?`
|
|
345
|
+
will always attempt to load the type or feature (which can be an
|
|
346
|
+
expensive operation) unless it has already been loaded successfully.
|
|
347
|
+
This makes it possible for a single agent run to, e.g., install a
|
|
348
|
+
package that provides the underlying capabilities for a type or feature,
|
|
349
|
+
and then later load that type or feature during the same run (even if
|
|
350
|
+
the type or feature had been tested earlier and had not been available).
|
|
351
|
+
|
|
352
|
+
If this setting is set to false, then types and features will only be
|
|
353
|
+
checked once, and if they are not available, the negative result is
|
|
354
|
+
cached and returned for all subsequent attempts to load the type or
|
|
355
|
+
feature. This behavior is almost always appropriate for the server,
|
|
356
|
+
and can result in a significant performance improvement for types and
|
|
357
|
+
features that are checked frequently.
|
|
358
|
+
EOT
|
|
359
|
+
},
|
|
309
360
|
:diff_args => {
|
|
310
361
|
:default => lambda { default_diffargs },
|
|
311
362
|
:desc => "Which arguments to pass to the diff command when printing differences between
|
|
@@ -370,7 +421,16 @@ module Puppet
|
|
|
370
421
|
:desc => "Where to retrive information about data.",
|
|
371
422
|
},
|
|
372
423
|
:hiera_config => {
|
|
373
|
-
:default =>
|
|
424
|
+
:default => lambda do
|
|
425
|
+
config = nil
|
|
426
|
+
codedir = Puppet.settings[:codedir]
|
|
427
|
+
if codedir.is_a?(String)
|
|
428
|
+
config = File.expand_path(File.join(codedir, 'hiera.yaml'))
|
|
429
|
+
config = nil unless Puppet::FileSystem.exist?(config)
|
|
430
|
+
end
|
|
431
|
+
config = File.expand_path(File.join(Puppet.settings[:confdir], 'hiera.yaml')) if config.nil?
|
|
432
|
+
config
|
|
433
|
+
end,
|
|
374
434
|
:desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet master every time you edit it.",
|
|
375
435
|
:type => :file,
|
|
376
436
|
},
|
|
@@ -546,6 +606,10 @@ module Puppet
|
|
|
546
606
|
:default => false,
|
|
547
607
|
:type => :boolean,
|
|
548
608
|
:desc => "Whether the application management feature is on or off. You must restart Puppet Server after changing this setting.",
|
|
609
|
+
:hook => proc do |value|
|
|
610
|
+
# Statically loaded resource types differ depending on setting
|
|
611
|
+
Puppet::Pops::Loaders.clear
|
|
612
|
+
end
|
|
549
613
|
}
|
|
550
614
|
)
|
|
551
615
|
|
|
@@ -606,22 +670,38 @@ module Puppet
|
|
|
606
670
|
:dns_alt_names => {
|
|
607
671
|
:default => '',
|
|
608
672
|
:desc => <<EOT,
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
673
|
+
A comma-separated list of alternate DNS names for Puppet Server. These are extra
|
|
674
|
+
hostnames (in addition to its `certname`) that the server is allowed to use when
|
|
675
|
+
serving agents. Puppet checks this setting when automatically requesting a
|
|
676
|
+
certificate for Puppet agent or Puppet Server, and when manually generating a
|
|
677
|
+
certificate with `puppet cert generate`.
|
|
678
|
+
|
|
679
|
+
In order to handle agent requests at a given hostname (like
|
|
680
|
+
"puppet.example.com"), Puppet Server needs a certificate that proves it's
|
|
681
|
+
allowed to use that name; if a server shows a certificate that doesn't include
|
|
682
|
+
its hostname, Puppet agents will refuse to trust it. If you use a single
|
|
683
|
+
hostname for Puppet traffic but load-balance it to multiple Puppet Servers, each
|
|
684
|
+
of those servers needs to include the official hostname in its list of extra
|
|
685
|
+
names.
|
|
686
|
+
|
|
687
|
+
**Note:** The list of alternate names is locked in when the server's
|
|
688
|
+
certificate is signed. If you need to change the list later, you can't just
|
|
689
|
+
change this setting; you also need to:
|
|
690
|
+
|
|
691
|
+
* On the server: Stop Puppet Server.
|
|
692
|
+
* On the CA server: Revoke and clean the server's old certificate. (`puppet cert clean <NAME>`)
|
|
693
|
+
* On the server: Delete the old certificate (and any old certificate signing requests)
|
|
694
|
+
from the [ssldir](https://docs.puppetlabs.com/puppet/latest/reference/dirs_ssldir.html).
|
|
695
|
+
* On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to request a new certificate
|
|
696
|
+
* On the CA server: Sign the certificate request, explicitly allowing alternate names
|
|
697
|
+
(`puppet cert sign --allow-dns-alt-names <NAME>`).
|
|
698
|
+
* On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to retrieve the cert.
|
|
699
|
+
* On the server: Start Puppet Server again.
|
|
700
|
+
|
|
701
|
+
To see all the alternate names your servers are using, log into your CA server
|
|
702
|
+
and run `puppet cert list -a`, then check the output for `(alt names: ...)`.
|
|
703
|
+
Most agent nodes should NOT have alternate names; the only certs that should
|
|
704
|
+
have them are Puppet Server nodes that you want other agents to trust.
|
|
625
705
|
EOT
|
|
626
706
|
},
|
|
627
707
|
:csr_attributes => {
|
|
@@ -939,7 +1019,8 @@ EOT
|
|
|
939
1019
|
},
|
|
940
1020
|
:req_bits => {
|
|
941
1021
|
:default => 4096,
|
|
942
|
-
:desc => "
|
|
1022
|
+
:desc => "This setting has no effect and will be removed in a future Puppet version.",
|
|
1023
|
+
:deprecated => :completely,
|
|
943
1024
|
},
|
|
944
1025
|
:keylength => {
|
|
945
1026
|
:default => 4096,
|
|
@@ -1310,7 +1391,7 @@ EOT
|
|
|
1310
1391
|
For control over logging destinations, see the `--logdest` command line
|
|
1311
1392
|
option in the manual pages for puppet master, puppet agent, and puppet
|
|
1312
1393
|
apply. You can see man pages by running `puppet <SUBCOMMAND> --help`,
|
|
1313
|
-
or read them online at https://docs.puppetlabs.com/
|
|
1394
|
+
or read them online at https://docs.puppetlabs.com/puppet/latest/reference/man/."
|
|
1314
1395
|
},
|
|
1315
1396
|
:server => {
|
|
1316
1397
|
:default => "puppet",
|
|
@@ -1355,7 +1436,7 @@ EOT
|
|
|
1355
1436
|
event _would_ have been sent.
|
|
1356
1437
|
|
|
1357
1438
|
**Important note:**
|
|
1358
|
-
[The `noop` metaparameter](https://docs.puppetlabs.com/
|
|
1439
|
+
[The `noop` metaparameter](https://docs.puppetlabs.com/puppet/latest/reference/metaparameter.html#noop)
|
|
1359
1440
|
allows you to apply individual resources in noop mode, and will override
|
|
1360
1441
|
the global value of the `noop` setting. This means a resource with
|
|
1361
1442
|
`noop => false` _will_ be changed if necessary, even when running puppet
|
|
@@ -1425,10 +1506,8 @@ EOT
|
|
|
1425
1506
|
:ignorecache => {
|
|
1426
1507
|
:default => false,
|
|
1427
1508
|
:type => :boolean,
|
|
1428
|
-
:desc => "
|
|
1429
|
-
|
|
1430
|
-
fact be stale even if the timestamps are up to date - if the facts
|
|
1431
|
-
change or if the server changes.",
|
|
1509
|
+
:desc => "This setting has no effect and will be removed in a future Puppet version.",
|
|
1510
|
+
:deprecated => :completely,
|
|
1432
1511
|
},
|
|
1433
1512
|
:splaylimit => {
|
|
1434
1513
|
:default => "$runinterval",
|
data/lib/puppet/face/config.rb
CHANGED
|
@@ -9,7 +9,7 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
|
9
9
|
|
|
10
10
|
description "This subcommand can inspect and modify settings from Puppet's
|
|
11
11
|
'puppet.conf' configuration file. For documentation about individual settings,
|
|
12
|
-
see https://docs.puppetlabs.com/
|
|
12
|
+
see https://docs.puppetlabs.com/puppet/latest/reference/configuration.html."
|
|
13
13
|
|
|
14
14
|
option "--section SECTION_NAME" do
|
|
15
15
|
default_to { "main" }
|
|
@@ -23,7 +23,7 @@ settings, so you can specify `--server <servername>`, or
|
|
|
23
23
|
`--run_mode <runmode>` as an argument.
|
|
24
24
|
|
|
25
25
|
See the configuration file documentation at
|
|
26
|
-
<https://docs.puppetlabs.com/
|
|
26
|
+
<https://docs.puppetlabs.com/puppet/latest/reference/configuration.html> for the
|
|
27
27
|
full list of acceptable parameters. A commented list of all
|
|
28
28
|
configuration options can also be generated by running puppet with
|
|
29
29
|
`--genconfig`.
|
|
@@ -175,7 +175,7 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
|
175
175
|
mkdir(lock)
|
|
176
176
|
yield
|
|
177
177
|
ensure
|
|
178
|
-
rmdir(lock) if lock
|
|
178
|
+
rmdir(lock) if Puppet::FileSystem.exist?(lock)
|
|
179
179
|
end
|
|
180
180
|
|
|
181
181
|
def mkdir(*args)
|
|
@@ -187,4 +187,4 @@ class Puppet::FileSystem::Uniquefile < DelegateClass(File)
|
|
|
187
187
|
end
|
|
188
188
|
end
|
|
189
189
|
|
|
190
|
-
end
|
|
190
|
+
end
|
|
@@ -4,21 +4,7 @@ require 'puppet/util/windows'
|
|
|
4
4
|
class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
|
5
5
|
|
|
6
6
|
def exist?(path)
|
|
7
|
-
|
|
8
|
-
return ::File.exist?(path)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
path = path.to_str if path.respond_to?(:to_str) # support WatchedFile
|
|
12
|
-
path = path.to_s # support String and Pathname
|
|
13
|
-
|
|
14
|
-
begin
|
|
15
|
-
if Puppet::Util::Windows::File.symlink?(path)
|
|
16
|
-
path = Puppet::Util::Windows::File.readlink(path)
|
|
17
|
-
end
|
|
18
|
-
! Puppet::Util::Windows::File.stat(path).nil?
|
|
19
|
-
rescue # generally INVALID_HANDLE_VALUE which means 'file not found'
|
|
20
|
-
false
|
|
21
|
-
end
|
|
7
|
+
return Puppet::Util::Windows::File.exist?(path)
|
|
22
8
|
end
|
|
23
9
|
|
|
24
10
|
def symlink(path, dest, options = {})
|
|
@@ -69,7 +69,7 @@ Puppet::Functions.create_function(:assert_type, Puppet::Functions::InternalFunct
|
|
|
69
69
|
#
|
|
70
70
|
def assert_type(type, value)
|
|
71
71
|
unless Puppet::Pops::Types::TypeCalculator.instance?(type,value)
|
|
72
|
-
inferred_type = Puppet::Pops::Types::TypeCalculator.
|
|
72
|
+
inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value)
|
|
73
73
|
if block_given?
|
|
74
74
|
# Give the inferred type to allow richer comparison in the given block (if generalized
|
|
75
75
|
# information is lost).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Returns a value for a sequence of given keys/indexes into a structure.
|
|
2
|
+
# This function is used to "dig into" a complex data structure by
|
|
3
|
+
# using a sequence of keys / indexes to access a value from which
|
|
4
|
+
# the next key/index is accessed recursively.
|
|
5
|
+
#
|
|
6
|
+
# The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
|
7
|
+
#
|
|
8
|
+
# An error is raised if an attempt is made to "dig" into
|
|
9
|
+
# something other than an `undef` (which immediately returns `undef`), an Array or a Hash.
|
|
10
|
+
#
|
|
11
|
+
# @example Using `dig`
|
|
12
|
+
#
|
|
13
|
+
# ~~~ puppet
|
|
14
|
+
# $data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
|
15
|
+
# notice $data.dig(a, b, 1, x)
|
|
16
|
+
# ~~~
|
|
17
|
+
#
|
|
18
|
+
# Would notice the value 100.
|
|
19
|
+
#
|
|
20
|
+
# @since 4.5.0
|
|
21
|
+
#
|
|
22
|
+
Puppet::Functions.create_function(:dig) do
|
|
23
|
+
dispatch :dig do
|
|
24
|
+
param 'Optional[Collection]', :data
|
|
25
|
+
repeated_param 'Any', :arg
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def dig(data, *args)
|
|
29
|
+
walked_path = []
|
|
30
|
+
args.reduce(data) do | d, k |
|
|
31
|
+
return nil if d.nil? || k.nil?
|
|
32
|
+
if !(d.is_a?(Array) || d.is_a?(Hash))
|
|
33
|
+
raise ArgumentError, "The given data does not contain a Collection at #{walked_path}, got '#{d.class}'"
|
|
34
|
+
end
|
|
35
|
+
walked_path << k
|
|
36
|
+
d[k]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'hiera/puppet_function'
|
|
2
2
|
|
|
3
3
|
# Assigns classes to a node using an
|
|
4
|
-
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.
|
|
4
|
+
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#array-merge)
|
|
5
5
|
# that retrieves the value for a user-specified key from Hiera's data.
|
|
6
6
|
#
|
|
7
7
|
# The `hiera_include` function requires:
|
|
@@ -26,7 +26,7 @@ require 'hiera/puppet_function'
|
|
|
26
26
|
# searching the rest of the hierarchy.
|
|
27
27
|
#
|
|
28
28
|
# The function uses an
|
|
29
|
-
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.
|
|
29
|
+
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#array-merge)
|
|
30
30
|
# to retrieve the `classes` array, so every node gets every class from the hierarchy.
|
|
31
31
|
#
|
|
32
32
|
# @example Using `hiera_include`
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
# `inline_epp` function fails to pass any required parameter.
|
|
29
29
|
#
|
|
30
30
|
# An inline EPP template should be written as a single-quoted string or
|
|
31
|
-
# [heredoc](puppet/latest/reference/lang_data_string.html#heredocs).
|
|
31
|
+
# [heredoc](/puppet/latest/reference/lang_data_string.html#heredocs).
|
|
32
32
|
# A double-quoted string is subject to expression interpolation before the string
|
|
33
33
|
# is parsed as an EPP template.
|
|
34
34
|
#
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Call a [lambda](https://docs.puppet.com/puppet/latest/reference/lang_lambdas.html)
|
|
2
|
+
# (which should accept no arguments) if the argument given to the function is `undef`.
|
|
3
|
+
# Returns the result of calling the lambda if the argument is `undef`, otherwwise the
|
|
4
|
+
# given argument.
|
|
5
|
+
#
|
|
6
|
+
# The `lest` function is useful in a chain of `then` calls, or in general
|
|
7
|
+
# as a guard against `undef` values. The function can be used to call `fail`, or to
|
|
8
|
+
# return a default value.
|
|
9
|
+
#
|
|
10
|
+
# These two expressions are equivalent:
|
|
11
|
+
# ~~~puppet
|
|
12
|
+
# if $x == undef { do_things() }
|
|
13
|
+
# lest($x) || { do_things() }
|
|
14
|
+
# ~~
|
|
15
|
+
#
|
|
16
|
+
# @example Using `lest`
|
|
17
|
+
#
|
|
18
|
+
# ~~~ puppet
|
|
19
|
+
# $data = {a => [ b, c ] }
|
|
20
|
+
# notice $data.dig(a, b, c)
|
|
21
|
+
# .then |$x| { $x * 2 }
|
|
22
|
+
# .lest || { fail("no value for $data[a][b][c]" }
|
|
23
|
+
# ~~~
|
|
24
|
+
#
|
|
25
|
+
# Would fail the operation because $data[a][b][c] results in `undef`
|
|
26
|
+
#
|
|
27
|
+
# In contrast - this example:
|
|
28
|
+
#
|
|
29
|
+
# ~~~ puppet
|
|
30
|
+
# $data = {a => { b => { c => 10 } } }
|
|
31
|
+
# notice $data.dig(a, b, c)
|
|
32
|
+
# .then |$x| { $x * 2 }
|
|
33
|
+
# .lest || { fail("no value for $data[a][b][c]" }
|
|
34
|
+
# ~~~
|
|
35
|
+
#
|
|
36
|
+
# Would notice the value 20
|
|
37
|
+
#
|
|
38
|
+
# @since 4.5.0
|
|
39
|
+
#
|
|
40
|
+
Puppet::Functions.create_function(:lest) do
|
|
41
|
+
dispatch :lest do
|
|
42
|
+
param 'Any', :arg
|
|
43
|
+
block_param 'Callable[0,0]', :block
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def lest(arg)
|
|
47
|
+
if arg.nil?
|
|
48
|
+
yield()
|
|
49
|
+
else
|
|
50
|
+
arg
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -100,9 +100,6 @@
|
|
|
100
100
|
# disables this feature.
|
|
101
101
|
# * `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
|
|
102
102
|
# merged together. Defaults to `false`.
|
|
103
|
-
# * `'unpack_arrays'` (string or undef) --- A delimiter string; Puppet will
|
|
104
|
-
# join merged arrays with this delimiter, then split them again. Defaults to
|
|
105
|
-
# `undef`, which disables this feature.
|
|
106
103
|
# * `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
|
|
107
104
|
# Defaults to `false`.
|
|
108
105
|
#
|
|
@@ -125,54 +122,67 @@
|
|
|
125
122
|
#
|
|
126
123
|
# @since 4.0.0
|
|
127
124
|
Puppet::Functions.create_function(:lookup, Puppet::Functions::InternalFunction) do
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
125
|
+
|
|
126
|
+
local_types do
|
|
127
|
+
type 'NameType = Variant[String, Array[String]]'
|
|
128
|
+
type 'ValueType = Type'
|
|
129
|
+
type 'DefaultValueType = Any'
|
|
130
|
+
type 'MergeType = Variant[String[1], Hash[String, Scalar]]'
|
|
131
|
+
type 'BlockType = Callable[NameType]'
|
|
132
|
+
type "OptionsWithName = Struct[{\
|
|
133
|
+
name => NameType,\
|
|
134
|
+
value_type => Optional[ValueType],\
|
|
135
|
+
default_value => Optional[DefaultValueType],\
|
|
136
|
+
override => Optional[Hash[String,Any]],\
|
|
137
|
+
default_values_hash => Optional[Hash[String,Any]],\
|
|
138
|
+
merge => Optional[MergeType]\
|
|
139
|
+
}]"
|
|
140
|
+
type "OptionsWithoutName = Struct[{\
|
|
141
|
+
value_type => Optional[ValueType],\
|
|
142
|
+
default_value => Optional[DefaultValueType],\
|
|
143
|
+
override => Optional[Hash[String,Any]],\
|
|
144
|
+
default_values_hash => Optional[Hash[String,Any]],\
|
|
145
|
+
merge => Optional[MergeType]\
|
|
146
|
+
}]"
|
|
147
|
+
|
|
148
|
+
end
|
|
139
149
|
|
|
140
150
|
dispatch :lookup_1 do
|
|
141
151
|
scope_param
|
|
142
|
-
param
|
|
143
|
-
optional_param
|
|
144
|
-
optional_param
|
|
152
|
+
param 'NameType', :name
|
|
153
|
+
optional_param 'ValueType', :value_type
|
|
154
|
+
optional_param 'MergeType', :merge
|
|
145
155
|
end
|
|
146
156
|
|
|
147
157
|
dispatch :lookup_2 do
|
|
148
158
|
scope_param
|
|
149
|
-
param
|
|
150
|
-
param
|
|
151
|
-
param
|
|
152
|
-
param
|
|
159
|
+
param 'NameType', :name
|
|
160
|
+
param 'Optional[ValueType]', :value_type
|
|
161
|
+
param 'Optional[MergeType]', :merge
|
|
162
|
+
param 'DefaultValueType', :default_value
|
|
153
163
|
end
|
|
154
164
|
|
|
155
165
|
dispatch :lookup_3 do
|
|
156
166
|
scope_param
|
|
157
|
-
param
|
|
158
|
-
optional_param
|
|
159
|
-
optional_param
|
|
160
|
-
required_block_param
|
|
167
|
+
param 'NameType', :name
|
|
168
|
+
optional_param 'ValueType', :value_type
|
|
169
|
+
optional_param 'MergeType', :merge
|
|
170
|
+
required_block_param 'BlockType', :block
|
|
161
171
|
end
|
|
162
172
|
|
|
163
173
|
# Lookup without name. Name then becomes a required entry in the options hash
|
|
164
174
|
dispatch :lookup_4 do
|
|
165
175
|
scope_param
|
|
166
|
-
param
|
|
167
|
-
optional_block_param
|
|
176
|
+
param 'OptionsWithName', :options_hash
|
|
177
|
+
optional_block_param 'BlockType', :block
|
|
168
178
|
end
|
|
169
179
|
|
|
170
180
|
# Lookup using name and options hash.
|
|
171
181
|
dispatch :lookup_5 do
|
|
172
182
|
scope_param
|
|
173
|
-
param
|
|
174
|
-
param
|
|
175
|
-
optional_block_param
|
|
183
|
+
param 'Variant[String,Array[String]]', :name
|
|
184
|
+
param 'OptionsWithoutName', :options_hash
|
|
185
|
+
optional_block_param 'BlockType', :block
|
|
176
186
|
end
|
|
177
187
|
|
|
178
188
|
def lookup_1(scope, name, value_type=nil, merge=nil)
|