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/CONTRIBUTING.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# How to contribute
|
|
2
2
|
|
|
3
|
-
Third-party patches are essential for keeping
|
|
3
|
+
Third-party patches are essential for keeping Puppet great. We simply can't
|
|
4
4
|
access the huge number of platforms and myriad configurations for running
|
|
5
|
-
|
|
5
|
+
Puppet. We want to keep it as easy as possible to contribute changes that
|
|
6
6
|
get things working in your environment. There are a few guidelines that we
|
|
7
7
|
need contributors to follow so that we can have a chance of keeping on
|
|
8
8
|
top of things.
|
|
@@ -90,7 +90,7 @@ a ticket number.
|
|
|
90
90
|
|
|
91
91
|
## Submitting Changes
|
|
92
92
|
|
|
93
|
-
* Sign the [Contributor License Agreement](http://links.
|
|
93
|
+
* Sign the [Contributor License Agreement](http://links.puppet.com/cla).
|
|
94
94
|
* Push your changes to a topic branch in your fork of the repository.
|
|
95
95
|
* Submit a pull request to the repository in the puppetlabs organization.
|
|
96
96
|
* Update your Jira ticket to mark that you have submitted code and are ready for it to be reviewed (Status: Ready for Merge).
|
|
@@ -106,9 +106,9 @@ a ticket number.
|
|
|
106
106
|
|
|
107
107
|
# Additional Resources
|
|
108
108
|
|
|
109
|
-
* [Puppet
|
|
109
|
+
* [Puppet community guidelines](https://docs.puppet.com/community/community_guidelines.html)
|
|
110
110
|
* [Bug tracker (Jira)](https://tickets.puppetlabs.com)
|
|
111
|
-
* [Contributor License Agreement](http://links.
|
|
111
|
+
* [Contributor License Agreement](http://links.puppet.com/cla)
|
|
112
112
|
* [General GitHub documentation](https://help.github.com/)
|
|
113
113
|
* [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
|
|
114
114
|
* #puppet-dev IRC channel on freenode.org ([Archive](https://botbot.me/freenode/puppet-dev/))
|
data/Gemfile
CHANGED
|
@@ -46,11 +46,11 @@ group(:development, :test) do
|
|
|
46
46
|
gem "multi_json", "1.7.7", :require => false, :platforms => [:ruby, :jruby]
|
|
47
47
|
gem "json-schema", "2.1.1", :require => false, :platforms => [:ruby, :jruby]
|
|
48
48
|
|
|
49
|
-
gem "rubocop", "~> 0.
|
|
49
|
+
gem "rubocop", "~> 0.39.0", :platforms => [:ruby]
|
|
50
50
|
|
|
51
51
|
gem 'rdoc', "~> 4.1", :platforms => [:ruby]
|
|
52
52
|
|
|
53
|
-
gem 'webmock'
|
|
53
|
+
gem 'webmock', '~> 1.24'
|
|
54
54
|
gem 'vcr', '~> 2.9'
|
|
55
55
|
end
|
|
56
56
|
|
data/LICENSE
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Puppet - Automating Configuration Management.
|
|
2
2
|
|
|
3
|
-
Copyright (C) 2005-
|
|
3
|
+
Copyright (C) 2005-2016 Puppet, Inc.
|
|
4
4
|
|
|
5
|
-
Puppet
|
|
5
|
+
Puppet, Inc. can be contacted at: info@puppet.com
|
|
6
6
|
|
|
7
7
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
8
|
you may not use this file except in compliance with the License.
|
data/README.md
CHANGED
|
@@ -73,3 +73,8 @@ commercial customers. Please see the following page for more details:
|
|
|
73
73
|
|
|
74
74
|
[Puppet Enterprise Support Lifecycle](https://puppetlabs.com/misc/puppet-enterprise-lifecycle)
|
|
75
75
|
|
|
76
|
+
Maintainers
|
|
77
|
+
-------
|
|
78
|
+
|
|
79
|
+
* Kylo Ginsberg, kylo@puppet.com, github:kylog, jira:kylo
|
|
80
|
+
* Henrik Lindberg, henrik.lindberg@puppet.com, github:hlindberg, jira:henrik.lindberg
|
data/conf/puppet.conf
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
# - https://docs.puppetlabs.com/puppet/latest/reference/config_important_settings.html
|
|
4
4
|
# - https://docs.puppetlabs.com/puppet/latest/reference/config_about_settings.html
|
|
5
5
|
# - https://docs.puppetlabs.com/puppet/latest/reference/config_file_main.html
|
|
6
|
-
# - https://docs.puppetlabs.com/
|
|
6
|
+
# - https://docs.puppetlabs.com/puppet/latest/reference/configuration.html
|
data/ext/project_data.yaml
CHANGED
|
@@ -14,6 +14,8 @@ gem_test_files: 'spec/**/*'
|
|
|
14
14
|
gem_executables: 'puppet'
|
|
15
15
|
gem_default_executables: 'puppet'
|
|
16
16
|
gem_forge_project: 'puppet'
|
|
17
|
+
gem_required_ruby_version: '>= 1.9.3'
|
|
18
|
+
gem_required_rubygems_version: '> 1.3.1'
|
|
17
19
|
gem_runtime_dependencies:
|
|
18
20
|
facter: ['> 2.0', '< 4']
|
|
19
21
|
hiera: ['>= 2.0', '< 4']
|
data/ext/redhat/puppet.spec.erb
CHANGED
|
@@ -181,12 +181,6 @@ echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
|
|
|
181
181
|
# Create puppet modules directory for puppet module tool
|
|
182
182
|
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules
|
|
183
183
|
|
|
184
|
-
# Install a NetworkManager dispatcher script to pickup changes to
|
|
185
|
-
# # /etc/resolv.conf and such (https://bugzilla.redhat.com/532085).
|
|
186
|
-
mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
|
|
187
|
-
cp -pr ext/puppet-nm-dispatcher \
|
|
188
|
-
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name}
|
|
189
|
-
|
|
190
184
|
# Masterhttp.log is created on server start and should be distributed
|
|
191
185
|
# with correct permissions
|
|
192
186
|
touch %{buildroot}%{_localstatedir}/log/puppet/masterhttp.log
|
|
@@ -197,9 +191,6 @@ touch %{buildroot}%{_localstatedir}/log/puppet/masterhttp.log
|
|
|
197
191
|
%{_bindir}/puppet
|
|
198
192
|
%{_bindir}/extlookup2hiera
|
|
199
193
|
%{puppet_libdir}/*
|
|
200
|
-
%dir %{_sysconfdir}/NetworkManager
|
|
201
|
-
%dir %{_sysconfdir}/NetworkManager/dispatcher.d
|
|
202
|
-
%{_sysconfdir}/NetworkManager/dispatcher.d/98-puppet
|
|
203
194
|
%if 0%{?_with_systemd}
|
|
204
195
|
%{_unitdir}/puppet.service
|
|
205
196
|
%{_unitdir}/puppetagent.service
|
data/ext/upload_facts.rb
CHANGED
|
@@ -58,7 +58,7 @@ is also a valid long argument. For example, 'server' is a valid configuration
|
|
|
58
58
|
parameter, so you can specify '--server <servername>' as an argument.
|
|
59
59
|
|
|
60
60
|
See the configuration file documentation at
|
|
61
|
-
https://docs.puppetlabs.com/
|
|
61
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for
|
|
62
62
|
the full list of acceptable parameters. A commented list of all
|
|
63
63
|
configuration options can also be generated by running puppet agent with
|
|
64
64
|
'--genconfig'.
|
data/lib/hiera_puppet.rb
CHANGED
|
@@ -67,21 +67,13 @@ module HieraPuppet
|
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def hiera_config_file
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
end
|
|
77
|
-
elsif Puppet.settings[:confdir].is_a?(String)
|
|
78
|
-
expanded_config_file = File.expand_path(File.join(Puppet.settings[:confdir], '/hiera.yaml'))
|
|
79
|
-
if Puppet::FileSystem.exist?(expanded_config_file)
|
|
80
|
-
config_file = expanded_config_file
|
|
81
|
-
end
|
|
70
|
+
hiera_config = Puppet.settings[:hiera_config]
|
|
71
|
+
if Puppet::FileSystem.exist?(hiera_config)
|
|
72
|
+
hiera_config
|
|
73
|
+
else
|
|
74
|
+
Puppet.warning "Config file #{hiera_config} not found, using Hiera defaults"
|
|
75
|
+
nil
|
|
82
76
|
end
|
|
83
|
-
|
|
84
|
-
config_file
|
|
85
77
|
end
|
|
86
78
|
end
|
|
87
79
|
|
|
@@ -155,7 +155,7 @@ specify '--server <servername>' as an argument. Boolean settings translate into
|
|
|
155
155
|
'--setting' and '--no-setting' pairs.
|
|
156
156
|
|
|
157
157
|
See the configuration file documentation at
|
|
158
|
-
https://docs.puppetlabs.com/
|
|
158
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
159
159
|
full list of acceptable settings. A commented list of all settings can also be
|
|
160
160
|
generated by running puppet agent with '--genconfig'.
|
|
161
161
|
|
|
@@ -263,8 +263,8 @@ generated by running puppet agent with '--genconfig'.
|
|
|
263
263
|
|
|
264
264
|
* --test:
|
|
265
265
|
Enable the most common options used for testing. These are 'onetime',
|
|
266
|
-
'verbose', '
|
|
267
|
-
'
|
|
266
|
+
'verbose', 'no-daemonize', 'no-usecacheonfailure', 'detailed-exitcodes',
|
|
267
|
+
'no-splay', and 'show_diff'.
|
|
268
268
|
|
|
269
269
|
* --verbose:
|
|
270
270
|
Turn on verbose reporting.
|
|
@@ -373,7 +373,6 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
|
373
373
|
|
|
374
374
|
# Enable all of the most common test options.
|
|
375
375
|
def setup_test
|
|
376
|
-
Puppet.settings.handlearg("--ignorecache")
|
|
377
376
|
Puppet.settings.handlearg("--no-usecacheonfailure")
|
|
378
377
|
Puppet.settings.handlearg("--no-splay")
|
|
379
378
|
Puppet.settings.handlearg("--show_diff")
|
|
@@ -74,7 +74,7 @@ valid setting, so you can specify '--tags <class>,<tag>'
|
|
|
74
74
|
as an argument.
|
|
75
75
|
|
|
76
76
|
See the configuration file documentation at
|
|
77
|
-
https://docs.puppetlabs.com/
|
|
77
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
78
78
|
full list of acceptable parameters. A commented list of all
|
|
79
79
|
configuration options can also be generated by running puppet with
|
|
80
80
|
'--genconfig'.
|
|
@@ -164,7 +164,7 @@ setting, so you can specify '--ssldir <directory>' as an
|
|
|
164
164
|
argument.
|
|
165
165
|
|
|
166
166
|
See the configuration file documentation at
|
|
167
|
-
https://docs.puppetlabs.com/
|
|
167
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
168
168
|
full list of acceptable parameters. A commented list of all
|
|
169
169
|
configuration options can also be generated by running puppet cert with
|
|
170
170
|
'--genconfig'.
|
|
@@ -73,7 +73,7 @@ setting, so you can specify '--ssldir <directory>' as an
|
|
|
73
73
|
argument.
|
|
74
74
|
|
|
75
75
|
See the configuration file documentation at
|
|
76
|
-
https://docs.puppetlabs.com/
|
|
76
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
77
77
|
full list of acceptable parameters. A commented list of all
|
|
78
78
|
configuration options can also be generated by running puppet with
|
|
79
79
|
'--genconfig'.
|
|
@@ -48,7 +48,7 @@ OPTIONS
|
|
|
48
48
|
Any configuration setting which is valid in the configuration file is
|
|
49
49
|
also a valid long argument, e.g. '--server=master.domain.com'. See the
|
|
50
50
|
configuration file documentation at
|
|
51
|
-
https://docs.puppetlabs.com/
|
|
51
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for
|
|
52
52
|
the full list of acceptable settings.
|
|
53
53
|
|
|
54
54
|
* --archive_files:
|
|
@@ -91,7 +91,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
|
91
91
|
set_log_level
|
|
92
92
|
|
|
93
93
|
Puppet::Transaction::Report.indirection.terminus_class = :rest
|
|
94
|
-
Puppet::Resource::Catalog.indirection.terminus_class = :
|
|
94
|
+
Puppet::Resource::Catalog.indirection.terminus_class = Puppet[:catalog_cache_terminus] || :json
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
def preinit
|
|
@@ -6,7 +6,7 @@ require 'puppet/parser/compiler'
|
|
|
6
6
|
class Puppet::Application::Lookup < Puppet::Application
|
|
7
7
|
|
|
8
8
|
RUN_HELP = "Run 'puppet lookup --help' for more details".freeze
|
|
9
|
-
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays,
|
|
9
|
+
DEEP_MERGE_OPTIONS = '--knock-out-prefix, --sort-merged-arrays, and --merge-hash-arrays'.freeze
|
|
10
10
|
|
|
11
11
|
run_mode :master
|
|
12
12
|
|
|
@@ -35,10 +35,6 @@ class Puppet::Application::Lookup < Puppet::Application
|
|
|
35
35
|
|
|
36
36
|
option('--sort-merge-arrays')
|
|
37
37
|
|
|
38
|
-
option('--unpack-arrays') do |arg|
|
|
39
|
-
options[:unpack_arrays] = arg
|
|
40
|
-
end
|
|
41
|
-
|
|
42
38
|
option('--merge-hash-arrays')
|
|
43
39
|
|
|
44
40
|
option('--explain')
|
|
@@ -124,7 +120,7 @@ USAGE
|
|
|
124
120
|
-----
|
|
125
121
|
puppet lookup [--help] [--type <TYPESTRING>] [--merge unique|hash|deep]
|
|
126
122
|
[--knock-out-prefix <PREFIX-STRING>] [--sort-merged-arrays]
|
|
127
|
-
[--
|
|
123
|
+
[--merge-hash-arrays] [--explain]
|
|
128
124
|
[--default <VALUE>] [--node <NODE-NAME>] [--facts <FILE>]
|
|
129
125
|
[--compile]
|
|
130
126
|
[--render-as s|json|yaml|binary|msgpack] <keys>
|
|
@@ -164,19 +160,15 @@ the puppet lookup function linked to above.
|
|
|
164
160
|
removed. 'deep' Performs a deep merge on values of Array and Hash type. There
|
|
165
161
|
are additional option flags that can be used with 'deep'.
|
|
166
162
|
|
|
167
|
-
* --
|
|
163
|
+
* --knock-out-prefix <PREFIX-STRING>
|
|
168
164
|
Can be used with the 'deep' merge strategy. Specify string value to signify
|
|
169
165
|
prefix which deletes elements from existing element.
|
|
170
166
|
|
|
171
|
-
* --
|
|
167
|
+
* --sort-merged-arrays
|
|
172
168
|
Can be used with the 'deep' merge strategy. When this flag is used all
|
|
173
169
|
merged arrays will be sorted.
|
|
174
170
|
|
|
175
|
-
* --
|
|
176
|
-
Can be used with the 'deep' merge strategy. Specify a string value used
|
|
177
|
-
as a deliminator to join all array values and then split them again.
|
|
178
|
-
|
|
179
|
-
* --merge_hash_arrays
|
|
171
|
+
* --merge-hash-arrays
|
|
180
172
|
Can be used with the 'deep' merge strategy. When this flag is used arrays
|
|
181
173
|
and hashes will be merged.
|
|
182
174
|
|
|
@@ -225,7 +217,7 @@ EXAMPLE
|
|
|
225
217
|
If you wanted to get the first value found for 'key_name_one' and 'key_name_two'
|
|
226
218
|
within the scope of the agent.local node while merging values and knocking out
|
|
227
219
|
the prefix 'foo' while merging, you would call lookup like this:
|
|
228
|
-
$ puppet lookup --node agent.local --merge deep --
|
|
220
|
+
$ puppet lookup --node agent.local --merge deep --knock-out-prefix foo key_name_one key_name_two
|
|
229
221
|
|
|
230
222
|
If you wanted to lookup 'key_name' within the scope of the agent.local node,
|
|
231
223
|
and return a default value of 'bar' if nothing was found, you would call
|
|
@@ -251,7 +243,7 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
|
251
243
|
# raise "No node was given via the '--node' flag for the scope of the lookup.\n#{RUN_HELP}"
|
|
252
244
|
#end
|
|
253
245
|
|
|
254
|
-
if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix]
|
|
246
|
+
if (options[:sort_merge_arrays] || options[:merge_hash_arrays] || options[:prefix]) && options[:merge] != 'deep'
|
|
255
247
|
raise "The options #{DEEP_MERGE_OPTIONS} are only available with '--merge deep'\n#{RUN_HELP}"
|
|
256
248
|
end
|
|
257
249
|
|
|
@@ -272,11 +264,7 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
|
272
264
|
'merge_hash_arrays' => !options[:merge_hash_arrays].nil?}
|
|
273
265
|
|
|
274
266
|
if options[:prefix]
|
|
275
|
-
merge_options.merge({'
|
|
276
|
-
end
|
|
277
|
-
|
|
278
|
-
if options[:unpack_arrays]
|
|
279
|
-
merge_options.merge({'unpack_arrays' => options[:unpack_arrays]})
|
|
267
|
+
merge_options.merge!({'knockout_prefix' => options[:prefix]})
|
|
280
268
|
end
|
|
281
269
|
|
|
282
270
|
else
|
|
@@ -61,7 +61,7 @@ specify '--server <servername>' as an argument. Boolean settings translate into
|
|
|
61
61
|
'--setting' and '--no-setting' pairs.
|
|
62
62
|
|
|
63
63
|
See the configuration file documentation at
|
|
64
|
-
https://docs.puppetlabs.com/
|
|
64
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
65
65
|
full list of acceptable settings. A commented list of all settings can also be
|
|
66
66
|
generated by running puppet master with '--genconfig'.
|
|
67
67
|
|
|
@@ -72,7 +72,7 @@ setting, so you can specify '--ssldir <directory>' as an
|
|
|
72
72
|
argument.
|
|
73
73
|
|
|
74
74
|
See the configuration file documentation at
|
|
75
|
-
https://docs.puppetlabs.com/
|
|
75
|
+
https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
|
|
76
76
|
full list of acceptable parameters. A commented list of all
|
|
77
77
|
configuration options can also be generated by running puppet with
|
|
78
78
|
'--genconfig'.
|
|
@@ -84,10 +84,6 @@ configuration options can also be generated by running puppet with
|
|
|
84
84
|
Write the results of the query to a file, open the file in an editor,
|
|
85
85
|
and read the file back in as an executable Puppet manifest.
|
|
86
86
|
|
|
87
|
-
* --host:
|
|
88
|
-
When specified, connect to the resource server on the named host
|
|
89
|
-
and retrieve the list of resouces of the type specified.
|
|
90
|
-
|
|
91
87
|
* --help:
|
|
92
88
|
Print this help message.
|
|
93
89
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'pathname'
|
|
2
|
-
|
|
2
|
+
require 'puppet/pops/lookup/interpolation'
|
|
3
3
|
|
|
4
4
|
module Puppet::DataProviders
|
|
5
5
|
class HieraConfig
|
|
6
6
|
include Puppet::Plugins::DataProviders
|
|
7
|
-
include
|
|
7
|
+
include Puppet::Pops::Lookup::Interpolation
|
|
8
8
|
|
|
9
9
|
DEFAULT_CONFIG = {
|
|
10
10
|
'version' => 4,
|
|
@@ -27,8 +27,6 @@ module Puppet::DataProviders
|
|
|
27
27
|
Hash[struct.map { |k,v| [k.to_s, symkeys_to_string(v)] }]
|
|
28
28
|
when Array
|
|
29
29
|
struct.map { |v| symkeys_to_string(v) }
|
|
30
|
-
when nil
|
|
31
|
-
{}
|
|
32
30
|
else
|
|
33
31
|
struct
|
|
34
32
|
end
|
|
@@ -1,112 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
# Add support for Hiera-like interpolation expressions. The expressions may contain keys that uses dot-notation
|
|
4
|
-
# to further navigate into hashes and arrays
|
|
5
|
-
#
|
|
1
|
+
# @deprecated Moved to Puppet::Pops::Lookup::Interpolation
|
|
6
2
|
module Puppet::DataProviders::HieraInterpolate
|
|
7
|
-
|
|
8
|
-
case subject
|
|
9
|
-
when String
|
|
10
|
-
subject.index('%{').nil? ? subject : interpolate_string(subject, lookup_invocation, allow_methods)
|
|
11
|
-
when Array
|
|
12
|
-
subject.map { |element| interpolate(element, lookup_invocation, allow_methods) }
|
|
13
|
-
when Hash
|
|
14
|
-
Hash[subject.map { |k, v| [k, interpolate(v, lookup_invocation, allow_methods)] }]
|
|
15
|
-
else
|
|
16
|
-
subject
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def interpolate_string(subject, lookup_invocation, allow_methods)
|
|
23
|
-
lookup_invocation.with(:interpolate, subject) do
|
|
24
|
-
subject.gsub(/%\{([^\}]*)\}/) do |match|
|
|
25
|
-
expr = $1
|
|
26
|
-
# Leading and trailing spaces inside an interpolation expression are insignificant
|
|
27
|
-
expr.strip!
|
|
28
|
-
unless expr.empty? || expr == '::'
|
|
29
|
-
method_key, key = get_method_and_data(expr, allow_methods)
|
|
30
|
-
is_alias = method_key == 'alias'
|
|
31
|
-
|
|
32
|
-
# Alias is only permitted if the entire string is equal to the interpolate expression
|
|
33
|
-
raise Puppet::DataBinding::LookupError, "'alias' interpolation is only permitted if the expression is equal to the entire string" if is_alias && subject != match
|
|
34
|
-
|
|
35
|
-
segments = key.split('.')
|
|
36
|
-
value = interpolate_method(method_key).call(segments[0], lookup_invocation)
|
|
37
|
-
value = qualified_lookup(segments.drop(1), value) if segments.size > 1
|
|
38
|
-
value = lookup_invocation.check(key) { interpolate(value, lookup_invocation, allow_methods) }
|
|
39
|
-
|
|
40
|
-
# break gsub and return value immediately if this was an alias substitution. The value might be something other than a String
|
|
41
|
-
return value if is_alias
|
|
42
|
-
end
|
|
43
|
-
value || ''
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def interpolate_method(method_key)
|
|
49
|
-
@@interpolate_methods ||= begin
|
|
50
|
-
global_lookup = lambda { |key, lookup_invocation| Puppet::Pops::Lookup.lookup(key, nil, '', true, nil, lookup_invocation) }
|
|
51
|
-
scope_lookup = lambda do |key, lookup_invocation|
|
|
52
|
-
lookup_invocation.with(:scope, nil) do
|
|
53
|
-
ovr = lookup_invocation.override_values
|
|
54
|
-
if ovr.include?(key)
|
|
55
|
-
lookup_invocation.report_found_in_overrides(key, ovr[key])
|
|
56
|
-
else
|
|
57
|
-
scope = lookup_invocation.scope
|
|
58
|
-
if scope.include?(key)
|
|
59
|
-
lookup_invocation.report_found(key, scope[key])
|
|
60
|
-
else
|
|
61
|
-
defaults = lookup_invocation.default_values
|
|
62
|
-
if defaults.include?(key)
|
|
63
|
-
lookup_invocation.report_found_in_defaults(key, defaults[key])
|
|
64
|
-
else
|
|
65
|
-
nil
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
'lookup' => global_lookup,
|
|
75
|
-
'hiera' => global_lookup, # this is just an alias for 'lookup'
|
|
76
|
-
'alias' => global_lookup, # same as 'lookup' but expression must be entire string. The result that is not subject to string substitution
|
|
77
|
-
'scope' => scope_lookup,
|
|
78
|
-
'literal' => lambda { |key, _| key }
|
|
79
|
-
}
|
|
80
|
-
end
|
|
81
|
-
interpolate_method = @@interpolate_methods[method_key]
|
|
82
|
-
raise Puppet::DataBinding::LookupError, "Unknown interpolation method '#{method_key}'" unless interpolate_method
|
|
83
|
-
interpolate_method
|
|
84
|
-
end
|
|
3
|
+
include Puppet::Pops::Lookup::Interpolation
|
|
85
4
|
|
|
5
|
+
# For backward compatibility
|
|
6
|
+
# @deprecated
|
|
86
7
|
def qualified_lookup(segments, value)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
raise Puppet::DataBinding::LookupError
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
raise Puppet::DataBinding::LookupError, "Data provider type mismatch: Got #{value.class.name} when a non Array object that responds to '[]' was expected to enable lookup using key '#{segment}'" unless value.respond_to?(:'[]') && !value.instance_of?(Array)
|
|
95
|
-
throw :no_such_key unless value.include?(segment)
|
|
8
|
+
if Puppet[:strict] != :off
|
|
9
|
+
msg = 'Puppet::DataProviders::HieraInterpolate#qualified_lookup is deprecated, use Puppet::Pops::Lookup::SubLookup#sub_lookup'
|
|
10
|
+
case Puppet[:strict]
|
|
11
|
+
when :error
|
|
12
|
+
raise Puppet::DataBinding::LookupError.new(msg)
|
|
13
|
+
when :warning
|
|
14
|
+
Puppet.warn_once(:deprecation, 'HieraInterpolate#qualified_lookup', msg)
|
|
96
15
|
end
|
|
97
|
-
value = value[segment]
|
|
98
|
-
end
|
|
99
|
-
value
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def get_method_and_data(data, allow_methods)
|
|
103
|
-
if match = data.match(/^(\w+)\((?:["]([^"]+)["]|[']([^']+)['])\)$/)
|
|
104
|
-
raise Puppet::DataBinding::LoookupError, 'Interpolation using method syntax is not allowed in this context' unless allow_methods
|
|
105
|
-
key = match[1]
|
|
106
|
-
data = match[2] || match[3] # double or single qouted
|
|
107
|
-
else
|
|
108
|
-
key = 'scope'
|
|
109
16
|
end
|
|
110
|
-
|
|
17
|
+
sub_lookup('<unknown key>', Puppet::Pops::Lookup::Invocation.new(nil), segments, value)
|
|
111
18
|
end
|
|
112
19
|
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# This file is loaded by the autoloader, and it does not find the data function support unless required relative
|
|
2
2
|
#
|
|
3
3
|
require 'json'
|
|
4
|
-
require_relative 'hiera_interpolate'
|
|
5
4
|
|
|
6
5
|
module Puppet::DataProviders
|
|
7
6
|
class JsonDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
|
|
@@ -15,17 +14,11 @@ module Puppet::DataProviders
|
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
class JsonDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
|
|
18
|
-
include HieraInterpolate
|
|
19
|
-
|
|
20
17
|
def initialize_data(path, lookup_invocation)
|
|
21
|
-
JSON.parse(
|
|
18
|
+
JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
|
|
22
19
|
rescue JSON::ParserError => ex
|
|
23
20
|
# Filename not included in message, so we add it here.
|
|
24
21
|
raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}"
|
|
25
22
|
end
|
|
26
|
-
|
|
27
|
-
def post_process(value, lookup_invocation)
|
|
28
|
-
interpolate(value, lookup_invocation, true)
|
|
29
|
-
end
|
|
30
23
|
end
|
|
31
24
|
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# This file is loaded by the autoloader, and it does not find the data function support unless required relative
|
|
2
2
|
#
|
|
3
3
|
require 'yaml'
|
|
4
|
-
require_relative 'hiera_interpolate'
|
|
5
4
|
|
|
6
5
|
module Puppet::DataProviders
|
|
7
6
|
class YamlDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
|
|
@@ -15,18 +14,13 @@ module Puppet::DataProviders
|
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
class YamlDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
|
|
18
|
-
include HieraInterpolate
|
|
19
|
-
|
|
20
17
|
def initialize_data(path, lookup_invocation)
|
|
21
|
-
|
|
18
|
+
data = YAML.load_file(path)
|
|
19
|
+
HieraConfig.symkeys_to_string(data.nil? ? {} : data)
|
|
22
20
|
rescue YAML::SyntaxError => ex
|
|
23
21
|
# Psych errors includes the absolute path to the file, so no need to add that
|
|
24
22
|
# to the message
|
|
25
23
|
raise Puppet::DataBinding::LookupError, "Unable to parse #{ex.message}"
|
|
26
24
|
end
|
|
27
|
-
|
|
28
|
-
def post_process(value, lookup_invocation)
|
|
29
|
-
interpolate(value, lookup_invocation, true)
|
|
30
|
-
end
|
|
31
25
|
end
|
|
32
26
|
end
|