puppet 4.5.3-x64-mingw32 → 4.6.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/Gemfile +10 -1
- data/ext/debian/control +2 -4
- data/ext/project_data.yaml +4 -4
- data/install.rb +6 -2
- data/lib/puppet.rb +3 -1
- data/lib/puppet/agent/locker.rb +1 -1
- data/lib/puppet/application.rb +6 -4
- data/lib/puppet/application/agent.rb +2 -1
- data/lib/puppet/application/cert.rb +35 -2
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/generate.rb +5 -0
- data/lib/puppet/application/lookup.rb +3 -3
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/compilable_resource_type.rb +15 -0
- data/lib/puppet/configurer.rb +67 -10
- data/lib/puppet/configurer/plugin_handler.rb +2 -4
- data/lib/puppet/data_providers/hiera_config.rb +1 -1
- data/lib/puppet/defaults.rb +34 -7
- data/lib/puppet/environments.rb +4 -2
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +1 -1
- data/lib/puppet/face/ca.rb +4 -1
- data/lib/puppet/face/certificate.rb +7 -1
- data/lib/puppet/face/epp.rb +5 -5
- data/lib/puppet/face/generate.rb +64 -0
- data/lib/puppet/face/help.rb +19 -13
- data/lib/puppet/face/man.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +1 -1
- data/lib/puppet/file_system.rb +16 -0
- data/lib/puppet/file_system/file_impl.rb +5 -0
- data/lib/puppet/file_system/memory_impl.rb +4 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/windows.rb +19 -0
- data/lib/puppet/functions.rb +3 -5
- data/lib/puppet/functions/assert_type.rb +1 -1
- data/lib/puppet/functions/defined.rb +7 -5
- data/lib/puppet/functions/dig.rb +2 -18
- data/lib/puppet/functions/hiera.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -37
- data/lib/puppet/functions/new.rb +2 -473
- data/lib/puppet/functions/reverse_each.rb +2 -59
- data/lib/puppet/functions/scanf.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -63
- data/lib/puppet/functions/then.rb +1 -61
- data/lib/puppet/functions/type.rb +1 -40
- data/lib/puppet/functions/unwrap.rb +40 -0
- data/lib/puppet/generate/models/type/property.rb +70 -0
- data/lib/puppet/generate/models/type/type.rb +57 -0
- data/lib/puppet/generate/templates/type/pcore.erb +41 -0
- data/lib/puppet/generate/type.rb +239 -0
- data/lib/puppet/graph/simple_graph.rb +2 -6
- data/lib/puppet/indirector/catalog/static_compiler.rb +5 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/key/ca.rb +2 -2
- data/lib/puppet/indirector/request.rb +25 -4
- data/lib/puppet/indirector/rest.rb +73 -3
- data/lib/puppet/info_service/class_information_service.rb +1 -2
- data/lib/puppet/interface/documentation.rb +1 -1
- data/lib/puppet/loaders.rb +2 -0
- data/lib/puppet/metatype/manager.rb +6 -6
- data/lib/puppet/module.rb +8 -1
- data/lib/puppet/module_tool.rb +2 -2
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/errors/installer.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +23 -32
- data/lib/puppet/network/http/rack/rest.rb +15 -1
- data/lib/puppet/network/rights.rb +1 -11
- data/lib/puppet/node/environment.rb +7 -3
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/parameter.rb +23 -3
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parser.rb +0 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
- data/lib/puppet/parser/ast/resource.rb +5 -0
- data/lib/puppet/parser/ast/resource_instance.rb +5 -1
- data/lib/puppet/parser/ast/resourceparam.rb +5 -0
- data/lib/puppet/parser/compiler.rb +14 -17
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -1
- data/lib/puppet/parser/environment_compiler.rb +10 -0
- data/lib/puppet/parser/functions/create_resources.rb +39 -24
- data/lib/puppet/parser/functions/defined.rb +2 -26
- data/lib/puppet/parser/functions/dig.rb +29 -0
- data/lib/puppet/parser/functions/lest.rb +49 -0
- data/lib/puppet/parser/functions/new.rb +530 -0
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/lib/puppet/parser/functions/scanf.rb +4 -4
- data/lib/puppet/parser/functions/step.rb +84 -0
- data/lib/puppet/parser/functions/then.rb +73 -0
- data/lib/puppet/parser/functions/type.rb +53 -0
- data/lib/puppet/parser/resource.rb +16 -7
- data/lib/puppet/parser/scope.rb +36 -28
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/data_providers/data_provider.rb +1 -1
- data/lib/puppet/pops.rb +13 -0
- data/lib/puppet/pops/adapters.rb +49 -49
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +39 -2
- data/lib/puppet/pops/evaluator/closure.rb +39 -13
- data/lib/puppet/pops/evaluator/collector_transformer.rb +10 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +16 -11
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +19 -45
- data/lib/puppet/pops/functions/function.rb +5 -0
- data/lib/puppet/pops/issues.rb +1 -1
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/base_loader.rb +12 -15
- data/lib/puppet/pops/loader/loader.rb +15 -50
- data/lib/puppet/pops/loader/loader_paths.rb +28 -2
- data/lib/puppet/pops/loader/module_loaders.rb +16 -1
- data/lib/puppet/pops/loader/null_loader.rb +17 -1
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +12 -11
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -3
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +52 -13
- data/lib/puppet/pops/loader/static_loader.rb +55 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +30 -14
- data/lib/puppet/pops/loader/typed_name.rb +50 -0
- data/lib/puppet/pops/loaders.rb +64 -19
- data/lib/puppet/pops/merge_strategy.rb +7 -7
- data/lib/puppet/pops/migration/migration_checker.rb +4 -0
- data/lib/puppet/pops/model/model_label_provider.rb +2 -0
- data/lib/puppet/pops/parser/egrammar.ra +8 -5
- data/lib/puppet/pops/parser/eparser.rb +1550 -1498
- data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
- data/lib/puppet/pops/parser/lexer2.rb +14 -1
- data/lib/puppet/pops/parser/locator.rb +30 -1
- data/lib/puppet/pops/parser/parser_support.rb +0 -3
- data/lib/puppet/pops/parser/slurp_support.rb +3 -3
- data/lib/puppet/pops/patterns.rb +9 -1
- data/lib/puppet/pops/pcore.rb +67 -11
- data/lib/puppet/pops/puppet_stack.rb +43 -0
- data/lib/puppet/pops/resource/param.rb +51 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +301 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +21 -0
- data/lib/puppet/pops/serialization.rb +17 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +149 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +179 -0
- data/lib/puppet/pops/serialization/deserializer.rb +60 -0
- data/lib/puppet/pops/serialization/extension.rb +126 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/lib/puppet/pops/serialization/json.rb +247 -0
- data/lib/puppet/pops/serialization/object.rb +63 -0
- data/lib/puppet/pops/serialization/rgen.rb +151 -0
- data/lib/puppet/pops/serialization/serializer.rb +91 -0
- data/lib/puppet/pops/serialization/time_factory.rb +66 -0
- data/lib/puppet/pops/types/annotatable.rb +36 -0
- data/lib/puppet/pops/types/implementation_registry.rb +3 -8
- data/lib/puppet/pops/types/p_meta_type.rb +83 -0
- data/lib/puppet/pops/types/p_object_type.rb +110 -117
- data/lib/puppet/pops/types/p_runtime_type.rb +13 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +23 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +30 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +69 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +361 -0
- data/lib/puppet/pops/types/puppet_object.rb +0 -5
- data/lib/puppet/pops/types/ruby_generator.rb +9 -2
- data/lib/puppet/pops/types/type_calculator.rb +6 -1
- data/lib/puppet/pops/types/type_factory.rb +14 -12
- data/lib/puppet/pops/types/type_formatter.rb +78 -33
- data/lib/puppet/pops/types/type_mismatch_describer.rb +0 -2
- data/lib/puppet/pops/types/type_parser.rb +27 -2
- data/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/lib/puppet/pops/types/types.rb +366 -13
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/validation/checker4_0.rb +5 -2
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property.rb +64 -5
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/group/aix.rb +4 -4
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +1 -1
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -2
- data/lib/puppet/provider/mount/parsed.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +3 -3
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +5 -0
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/pip.rb +5 -3
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +4 -4
- data/lib/puppet/provider/package/pkgin.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +48 -8
- data/lib/puppet/provider/package/sun.rb +1 -1
- data/lib/puppet/provider/package/tdnf.rb +28 -0
- data/lib/puppet/provider/package/yum.rb +22 -4
- data/lib/puppet/provider/parsedfile.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +2 -2
- data/lib/puppet/provider/service/debian.rb +3 -3
- data/lib/puppet/provider/service/init.rb +5 -3
- data/lib/puppet/provider/service/launchd.rb +16 -2
- data/lib/puppet/provider/service/runit.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +8 -1
- data/lib/puppet/provider/service/systemd.rb +39 -6
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +4 -3
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +3 -0
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/resource.rb +33 -7
- data/lib/puppet/resource/capability_finder.rb +74 -54
- data/lib/puppet/resource/status.rb +11 -2
- data/lib/puppet/settings.rb +17 -6
- data/lib/puppet/settings/environment_conf.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +20 -0
- data/lib/puppet/ssl/certificate_authority.rb +32 -9
- data/lib/puppet/ssl/certificate_authority/interface.rb +164 -24
- data/lib/puppet/ssl/host.rb +3 -3
- data/lib/puppet/ssl/oids.rb +10 -0
- data/lib/puppet/ssl/validator/default_validator.rb +2 -2
- data/lib/puppet/test/test_helper.rb +2 -2
- data/lib/puppet/transaction.rb +12 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +29 -2
- data/lib/puppet/transaction/event_manager.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +84 -0
- data/lib/puppet/transaction/report.rb +49 -2
- data/lib/puppet/transaction/resource_harness.rb +98 -18
- data/lib/puppet/type.rb +63 -21
- data/lib/puppet/type/augeas.rb +3 -3
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/file.rb +39 -2
- data/lib/puppet/type/file/data_sync.rb +13 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/mount.rb +2 -6
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +1 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/scheduled_task.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +3 -3
- data/lib/puppet/type/zone.rb +1 -1
- data/lib/puppet/util.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line.rb +6 -2
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +1 -1
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/logging.rb +1 -1
- data/lib/puppet/util/multi_match.rb +1 -1
- data/lib/puppet/util/plist.rb +15 -5
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/psych_support.rb +1 -1
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
- data/lib/puppet/util/windows/access_control_entry.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +30 -8
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/file.rb +59 -0
- data/lib/puppet/util/windows/process.rb +10 -0
- data/lib/puppet/util/windows/security.rb +1 -1
- data/lib/puppet/util/windows/user.rb +22 -4
- data/lib/puppet/util/yaml.rb +15 -3
- data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
- data/lib/puppet/vendor/rgen_patch.rb +1 -1
- data/lib/puppet/version.rb +2 -2
- data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
- data/spec/integration/agent/logging_spec.rb +15 -14
- data/spec/integration/application/apply_spec.rb +1 -0
- data/spec/integration/directory_environments_spec.rb +16 -0
- data/spec/integration/environments/settings_spec.rb +32 -4
- data/spec/integration/faces/documentation_spec.rb +1 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
- data/spec/integration/node/environment_spec.rb +21 -0
- data/spec/integration/parser/collection_spec.rb +10 -0
- data/spec/integration/parser/compiler_spec.rb +76 -840
- data/spec/integration/parser/functions/require_spec.rb +3 -3
- data/spec/integration/parser/parameter_defaults_spec.rb +6 -2
- data/spec/integration/parser/pcore_resource_spec.rb +208 -0
- data/spec/integration/parser/resource_expressions_spec.rb +4 -2
- data/spec/integration/provider/yumrepo_spec.rb +4 -1
- data/spec/integration/transaction/report_spec.rb +666 -0
- data/spec/integration/type/file_spec.rb +11 -12
- data/spec/integration/util/windows/adsi_spec.rb +99 -0
- data/spec/integration/util/windows/principal_spec.rb +109 -60
- data/spec/integration/util/windows/process_spec.rb +4 -2
- data/spec/integration/util/windows/security_spec.rb +34 -8
- data/spec/integration/util/windows/user_spec.rb +26 -4
- data/spec/lib/puppet_spec/files.rb +2 -2
- data/spec/lib/puppet_spec/network.rb +12 -8
- data/spec/shared_examples/rhel_package_provider.rb +341 -0
- data/spec/spec_helper.rb +8 -2
- data/spec/unit/application/cert_spec.rb +20 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +0 -26
- data/spec/unit/configurer_spec.rb +46 -0
- data/spec/unit/defaults_spec.rb +14 -0
- data/spec/unit/face/generate_spec.rb +230 -0
- data/spec/unit/face/help_spec.rb +53 -0
- data/spec/unit/face/parser_spec.rb +6 -0
- data/spec/unit/face/plugin_spec.rb +0 -4
- data/spec/unit/file_system_spec.rb +85 -0
- data/spec/unit/functions/lookup_spec.rb +4 -4
- data/spec/unit/functions/match_spec.rb +2 -2
- data/spec/unit/functions/regsubst_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +1 -1
- data/spec/unit/functions/unwrap_spec.rb +29 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +8 -8
- data/spec/unit/indirector/facts/facter_spec.rb +1 -9
- data/spec/unit/indirector/rest_spec.rb +95 -9
- data/spec/unit/module_spec.rb +43 -7
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +8 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
- data/spec/unit/network/http/api/indirected_routes_spec.rb +49 -58
- data/spec/unit/network/http/api/master/v3_spec.rb +7 -4
- data/spec/unit/network/rights_spec.rb +1 -1
- data/spec/unit/parameter_spec.rb +11 -0
- data/spec/unit/parser/compiler_spec.rb +19 -33
- data/spec/unit/{appmgmt_spec.rb → parser/environment_compiler_spec.rb} +12 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +76 -4
- data/spec/unit/parser/functions/require_spec.rb +2 -2
- data/spec/unit/parser/resource_spec.rb +21 -11
- data/spec/unit/parser/scope_spec.rb +1 -5
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1 -1
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
- data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +63 -5
- data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +27 -3
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +8 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +9 -0
- data/spec/unit/pops/puppet_stack_spec.rb +79 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +37 -0
- data/spec/unit/pops/serialization/packer_spec.rb +153 -0
- data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +228 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +44 -2
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +42 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +139 -0
- data/spec/unit/pops/types/p_type_set_type_spec.rb +424 -0
- data/spec/unit/pops/types/ruby_generator_spec.rb +497 -181
- data/spec/unit/pops/types/type_calculator_spec.rb +10 -4
- data/spec/unit/pops/types/type_formatter_spec.rb +1 -1
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +2 -2
- data/spec/unit/pops/types/type_parser_spec.rb +1 -1
- data/spec/unit/pops/types/types_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +18 -1
- data/spec/unit/property_spec.rb +48 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +11 -1
- data/spec/unit/provider/package/dnf_spec.rb +1 -99
- data/spec/unit/provider/package/pacman_spec.rb +4 -4
- data/spec/unit/provider/package/pip_spec.rb +14 -0
- data/spec/unit/provider/package/pkg_spec.rb +6 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -3
- data/spec/unit/provider/package/portage_spec.rb +64 -8
- data/spec/unit/provider/package/tdnf_spec.rb +18 -0
- data/spec/unit/provider/package/windows/package_spec.rb +4 -1
- data/spec/unit/provider/package/windows_spec.rb +8 -2
- data/spec/unit/provider/package/yum_spec.rb +6 -377
- data/spec/unit/provider/service/base_spec.rb +6 -0
- data/spec/unit/provider/service/debian_spec.rb +16 -7
- data/spec/unit/provider/service/gentoo_spec.rb +6 -0
- data/spec/unit/provider/service/init_spec.rb +7 -0
- data/spec/unit/provider/service/launchd_spec.rb +35 -4
- data/spec/unit/provider/service/openrc_spec.rb +6 -0
- data/spec/unit/provider/service/smf_spec.rb +31 -6
- data/spec/unit/provider/service/src_spec.rb +6 -0
- data/spec/unit/provider/service/systemd_spec.rb +70 -20
- data/spec/unit/provider/service/upstart_spec.rb +6 -0
- data/spec/unit/provider/user/aix_spec.rb +7 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +30 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +19 -0
- data/spec/unit/resource/capability_finder_spec.rb +51 -3
- data/spec/unit/resource/catalog_spec.rb +5 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +19 -0
- data/spec/unit/settings_spec.rb +13 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +176 -10
- data/spec/unit/ssl/certificate_authority_spec.rb +63 -22
- data/spec/unit/ssl/host_spec.rb +1 -1
- data/spec/unit/ssl/oids_spec.rb +24 -21
- data/spec/unit/transaction/event_spec.rb +3 -1
- data/spec/unit/transaction/persistence_spec.rb +173 -0
- data/spec/unit/transaction/report_spec.rb +64 -1
- data/spec/unit/transaction/resource_harness_spec.rb +91 -0
- data/spec/unit/type/file/content_spec.rb +47 -15
- data/spec/unit/type/file_spec.rb +28 -0
- data/spec/unit/type/mount_spec.rb +5 -12
- data/spec/unit/type/yumrepo_spec.rb +1 -5
- data/spec/unit/type_spec.rb +32 -0
- data/spec/unit/util/command_line_spec.rb +11 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/plist_spec.rb +16 -3
- data/spec/unit/util/storage_spec.rb +4 -1
- data/spec/unit/util/windows/adsi_spec.rb +23 -2
- data/spec/unit/util/windows/file_spec.rb +56 -1
- data/spec/unit/util/windows/sid_spec.rb +31 -7
- data/spec/unit/util/yaml_spec.rb +12 -0
- data/spec/unit/util_spec.rb +87 -20
- metadata +91 -48
- data/ext/puppetlisten/puppetlisten.rb +0 -77
- data/ext/puppetlisten/puppetrun.rb +0 -38
- data/lib/puppet/resource/type_collection_helper.rb +0 -7
- data/spec/unit/parser/functions/defined_spec.rb +0 -120
- data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
@@ -46,7 +46,7 @@ resource and relationship expressions.
|
|
46
46
|
|
47
47
|
vals.each do |klass|
|
48
48
|
# lookup the class in the scopes
|
49
|
-
if classobj = find_hostclass(klass)
|
49
|
+
if classobj = environment.known_resource_types.find_hostclass(klass)
|
50
50
|
klass = classobj.name
|
51
51
|
else
|
52
52
|
raise Puppet::ParseError, "Could not find class #{klass}"
|
@@ -0,0 +1,83 @@
|
|
1
|
+
Puppet::Parser::Functions::newfunction(
|
2
|
+
:reverse_each,
|
3
|
+
:type => :rvalue,
|
4
|
+
:arity => -1,
|
5
|
+
:doc => <<-DOC
|
6
|
+
Reverses the order of the elements of something that is iterable and optionally runs a
|
7
|
+
[lambda](http://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) for each
|
8
|
+
element.
|
9
|
+
|
10
|
+
This function takes one to two arguments:
|
11
|
+
|
12
|
+
1. An `Iterable` that the function will iterate over.
|
13
|
+
2. An optional lambda, which the function calls for each element in the first argument. It must
|
14
|
+
request one parameter.
|
15
|
+
|
16
|
+
**Example:** Using the `reverse_each` function
|
17
|
+
|
18
|
+
```puppet
|
19
|
+
$data.reverse_each |$parameter| { <PUPPET CODE BLOCK> }
|
20
|
+
```
|
21
|
+
|
22
|
+
or
|
23
|
+
|
24
|
+
```puppet
|
25
|
+
$reverse_data = $data.reverse_each
|
26
|
+
```
|
27
|
+
|
28
|
+
or
|
29
|
+
|
30
|
+
```puppet
|
31
|
+
reverse_each($data) |$parameter| { <PUPPET CODE BLOCK> }
|
32
|
+
```
|
33
|
+
|
34
|
+
or
|
35
|
+
|
36
|
+
```puppet
|
37
|
+
$reverse_data = reverse_each($data)
|
38
|
+
```
|
39
|
+
|
40
|
+
When no second argument is present, Puppet returns an `Iterable` that represents the reverse
|
41
|
+
order of its first argument. This allows methods on `Iterable` to be chained.
|
42
|
+
|
43
|
+
When a lamdba is given as the second argument, Puppet iterates the first argument in reverse
|
44
|
+
order and passes each value in turn to the lambda, then returns `undef`.
|
45
|
+
|
46
|
+
**Example:** Using the `reverse_each` function with an array and a one-parameter lambda
|
47
|
+
|
48
|
+
``` puppet
|
49
|
+
# Puppet will log a notice for each of the three items
|
50
|
+
# in $data in reverse order.
|
51
|
+
$data = [1,2,3]
|
52
|
+
$data.reverse_each |$item| { notice($item) }
|
53
|
+
```
|
54
|
+
|
55
|
+
When no second argument is present, Puppet returns a new `Iterable` which allows it to
|
56
|
+
be directly chained into another function that takes an `Iterable` as an argument.
|
57
|
+
|
58
|
+
**Example:** Using the `reverse_each` function chained with a `map` function.
|
59
|
+
|
60
|
+
```puppet
|
61
|
+
# For the array $data, return an array containing each
|
62
|
+
# value multiplied by 10 in reverse order
|
63
|
+
$data = [1,2,3]
|
64
|
+
$transformed_data = $data.reverse_each.map |$item| { $item * 10 }
|
65
|
+
# $transformed_data is set to [30,20,10]
|
66
|
+
```
|
67
|
+
|
68
|
+
**Example:** Using `reverse_each` function chained with a `map` in alternative syntax
|
69
|
+
|
70
|
+
```puppet
|
71
|
+
# For the array $data, return an array containing each
|
72
|
+
# value multiplied by 10 in reverse order
|
73
|
+
$data = [1,2,3]
|
74
|
+
$transformed_data = map(reverse_each($data)) |$item| { $item * 10 }
|
75
|
+
# $transformed_data is set to [30,20,10]
|
76
|
+
```
|
77
|
+
|
78
|
+
* Since 4.4.0
|
79
|
+
|
80
|
+
DOC
|
81
|
+
) do |args|
|
82
|
+
function_fail(["reverse_each() is only available when parser/evaluator future is in effect"])
|
83
|
+
end
|
@@ -6,13 +6,13 @@ Puppet::Parser::Functions::newfunction(
|
|
6
6
|
:arity => 2,
|
7
7
|
:doc => <<-DOC
|
8
8
|
Scans a string and returns an array of one or more converted values based on the given format string.
|
9
|
-
See the
|
9
|
+
See the documentation of Ruby's String#scanf method for details about the supported formats (which
|
10
10
|
are similar but not identical to the formats used in Puppet's `sprintf` function.)
|
11
11
|
|
12
12
|
This function takes two mandatory arguments: the first is the string to convert, and the second is
|
13
|
-
the format string. The result of the scan is an array, with each
|
14
|
-
The scanning stops if a scan is
|
15
|
-
was no
|
13
|
+
the format string. The result of the scan is an array, with each successfully scanned and transformed value.
|
14
|
+
The scanning stops if a scan is unsuccessful, and the scanned result up to that point is returned. If there
|
15
|
+
was no successful scan, the result is an empty array.
|
16
16
|
|
17
17
|
"42".scanf("%i")
|
18
18
|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
Puppet::Parser::Functions::newfunction(
|
2
|
+
:step,
|
3
|
+
:type => :rvalue,
|
4
|
+
:arity => -1,
|
5
|
+
:doc => <<-DOC
|
6
|
+
Provides stepping with given interval over elements in an iterable and optionally runs a
|
7
|
+
[lambda](http://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) for each
|
8
|
+
element.
|
9
|
+
|
10
|
+
This function takes two to three arguments:
|
11
|
+
|
12
|
+
1. An 'Iterable' that the function will iterate over.
|
13
|
+
2. An `Integer` step factor. This must be a positive integer.
|
14
|
+
3. An optional lambda, which the function calls for each element in the interval. It must
|
15
|
+
request one parameter.
|
16
|
+
|
17
|
+
**Example:** Using the `step` function
|
18
|
+
|
19
|
+
```puppet
|
20
|
+
$data.step(<n>) |$parameter| { <PUPPET CODE BLOCK> }
|
21
|
+
```
|
22
|
+
|
23
|
+
or
|
24
|
+
|
25
|
+
```puppet
|
26
|
+
$stepped_data = $data.step(<n>)
|
27
|
+
```
|
28
|
+
|
29
|
+
or
|
30
|
+
```puppet
|
31
|
+
step($data, <n>) |$parameter| { <PUPPET CODE BLOCK> }
|
32
|
+
```
|
33
|
+
|
34
|
+
or
|
35
|
+
|
36
|
+
```puppet
|
37
|
+
$stepped_data = step($data, <n>)
|
38
|
+
```
|
39
|
+
|
40
|
+
When no block is given, Puppet returns an `Iterable` that yields the first element and every nth successor
|
41
|
+
element, from its first argument. This allows functions on iterables to be chained.
|
42
|
+
When a block is given, Puppet iterates and calls the block with the first element and then with
|
43
|
+
every nth successor element. It then returns `undef`.
|
44
|
+
|
45
|
+
**Example:** Using the `step` function with an array, a step factor, and a one-parameter block
|
46
|
+
|
47
|
+
```puppet
|
48
|
+
# For the array $data, call a block with the first element and then with each 3rd successor element
|
49
|
+
$data = [1,2,3,4,5,6,7,8]
|
50
|
+
$data.step(3) |$item| {
|
51
|
+
notice($item)
|
52
|
+
}
|
53
|
+
# Puppet notices the values '1', '4', '7'.
|
54
|
+
```
|
55
|
+
|
56
|
+
When no block is given, Puppet returns a new `Iterable` which allows it to be directly chained into
|
57
|
+
another function that takes an `Iterable` as an argument.
|
58
|
+
|
59
|
+
**Example:** Using the `step` function chained with a `map` function.
|
60
|
+
|
61
|
+
```puppet
|
62
|
+
# For the array $data, return an array, set to the first element and each 5th successor element, in reverse
|
63
|
+
# order multiplied by 10
|
64
|
+
$data = Integer[0,20]
|
65
|
+
$transformed_data = $data.step(5).map |$item| { $item * 10 }
|
66
|
+
$transformed_data contains [0,50,100,150,200]
|
67
|
+
```
|
68
|
+
|
69
|
+
**Example:** The same example using `step` function chained with a `map` in alternative syntax
|
70
|
+
|
71
|
+
```puppet
|
72
|
+
# For the array $data, return an array, set to the first and each 5th
|
73
|
+
# successor, in reverse order, multiplied by 10
|
74
|
+
$data = Integer[0,20]
|
75
|
+
$transformed_data = map(step($data, 5)) |$item| { $item * 10 }
|
76
|
+
$transformed_data contains [0,50,100,150,200]
|
77
|
+
```
|
78
|
+
|
79
|
+
* Since 4.4.0
|
80
|
+
|
81
|
+
DOC
|
82
|
+
) do |args|
|
83
|
+
function_fail(["step() is only available when parser/evaluator future is in effect"])
|
84
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
Puppet::Parser::Functions::newfunction(
|
2
|
+
:lest,
|
3
|
+
:type => :rvalue,
|
4
|
+
:arity => -2,
|
5
|
+
:doc => <<-DOC
|
6
|
+
Call a [lambda](https://docs.puppet.com/puppet/latest/reference/lang_lambdas.html)
|
7
|
+
with the given argument unless the argument is undef. Return `undef` if argument is
|
8
|
+
`undef`, and otherwise the result of giving the argument to the lambda.
|
9
|
+
|
10
|
+
This is useful to process a sequence of operations where an intermediate
|
11
|
+
result may be `undef` (which makes the entire sequence `undef`).
|
12
|
+
The `then` function is especially useful with the function `dig` which
|
13
|
+
performs in a similar way "digging out" a value in a complex structure.
|
14
|
+
|
15
|
+
**Example:** Using `dig` and `then`
|
16
|
+
|
17
|
+
```puppet
|
18
|
+
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
19
|
+
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
20
|
+
```
|
21
|
+
|
22
|
+
Would notice the value 200
|
23
|
+
|
24
|
+
Contrast this with:
|
25
|
+
|
26
|
+
```puppet
|
27
|
+
$data = {a => { b => [{x => 10, y => 20}, {ex => 100, why => 200}]}}
|
28
|
+
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
29
|
+
```
|
30
|
+
|
31
|
+
Which would notice `undef` since the last lookup of 'x' results in `undef` which
|
32
|
+
is returned (without calling the lambda given to the `then` function).
|
33
|
+
|
34
|
+
As a result there is no need for conditional logic or a temporary (non local)
|
35
|
+
variable as the result is now either the wanted value (`x`) multiplied
|
36
|
+
by 2 or `undef`.
|
37
|
+
|
38
|
+
Calls to `then` can be chained. In the next example, a structure is using an offset based on
|
39
|
+
using 1 as the index to the first element (instead of 0 which is used in the language).
|
40
|
+
We are not sure if user input actually contains an index at all, or if it is
|
41
|
+
outside the range of available names.args.
|
42
|
+
|
43
|
+
**Example:** Chaining calls to the `then` function
|
44
|
+
|
45
|
+
```puppet
|
46
|
+
# Names to choose from
|
47
|
+
$names = ['Ringo', 'Paul', 'George', 'John']
|
48
|
+
|
49
|
+
# Structure where 'beatle 2' is wanted (but where the number refers
|
50
|
+
# to 'Paul' because input comes from a source using 1 for the first
|
51
|
+
# element).
|
52
|
+
|
53
|
+
$data = ['singer', { beatle => 2 }]
|
54
|
+
$picked = assert_type(String,
|
55
|
+
# the data we are interested in is the second in the array,
|
56
|
+
# a hash, where we want the value of the key 'beatle'
|
57
|
+
$data.dig(1, 'beatle')
|
58
|
+
# and we want the index in $names before the given index
|
59
|
+
.then |$x| { $names[$x-1] }
|
60
|
+
# so we can construct a string with that beatle's name
|
61
|
+
.then |$x| { "Picked Beatle '${x}'" }
|
62
|
+
)
|
63
|
+
```
|
64
|
+
|
65
|
+
Would notice "Picked Beatle 'Paul'", and would raise an error if the result
|
66
|
+
was not a String.
|
67
|
+
|
68
|
+
* Since 4.5.0
|
69
|
+
|
70
|
+
DOC
|
71
|
+
) do |args|
|
72
|
+
function_fail(["then() is only available when parser/evaluator future is in effect"])
|
73
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Puppet::Parser::Functions::newfunction(
|
2
|
+
:type,
|
3
|
+
:type => :rvalue,
|
4
|
+
:arity => -1,
|
5
|
+
:doc => <<-DOC
|
6
|
+
Returns the data type of a given value with a given degree of generality.
|
7
|
+
|
8
|
+
```puppet
|
9
|
+
type InferenceFidelity = Enum[generalized, reduced, detailed]
|
10
|
+
|
11
|
+
function type(Any $value, InferenceFidelity $fidelity = 'detailed') # returns Type
|
12
|
+
```
|
13
|
+
|
14
|
+
**Example:** Using `type`
|
15
|
+
|
16
|
+
``` puppet
|
17
|
+
notice type(42) =~ Type[Integer]
|
18
|
+
```
|
19
|
+
|
20
|
+
Would notice `true`.
|
21
|
+
|
22
|
+
By default, the best possible inference is made where all details are retained.
|
23
|
+
This is good when the type is used for further type calculations but is overwhelmingly
|
24
|
+
rich in information if it is used in a error message.
|
25
|
+
|
26
|
+
The optional argument `$fidelity` may be given as (from lowest to highest fidelity):
|
27
|
+
|
28
|
+
* `generalized` - reduces to common type and drops size constraints
|
29
|
+
* `reduced` - reduces to common type in collections
|
30
|
+
* `detailed` - (default) all details about inferred types is retained
|
31
|
+
|
32
|
+
**Example:** Using `type()` with different inference fidelity:
|
33
|
+
|
34
|
+
``` puppet
|
35
|
+
notice type([3.14, 42], 'generalized')
|
36
|
+
notice type([3.14, 42], 'reduced'')
|
37
|
+
notice type([3.14, 42], 'detailed')
|
38
|
+
notice type([3.14, 42])
|
39
|
+
```
|
40
|
+
|
41
|
+
Would notice the four values:
|
42
|
+
|
43
|
+
1. 'Array[Numeric]'
|
44
|
+
2. 'Array[Numeric, 2, 2]'
|
45
|
+
3. 'Tuple[Float[3.14], Integer[42,42]]]'
|
46
|
+
4. 'Tuple[Float[3.14], Integer[42,42]]]'
|
47
|
+
|
48
|
+
* Since 4.4.0
|
49
|
+
|
50
|
+
DOC
|
51
|
+
) do |args|
|
52
|
+
function_fail(["type() is only available when parser/evaluator future is in effect"])
|
53
|
+
end
|
@@ -7,9 +7,6 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
7
7
|
require 'puppet/parser/resource/param'
|
8
8
|
require 'puppet/util/tagging'
|
9
9
|
require 'puppet/parser/yaml_trimmer'
|
10
|
-
require 'puppet/resource/type_collection_helper'
|
11
|
-
|
12
|
-
include Puppet::Resource::TypeCollectionHelper
|
13
10
|
|
14
11
|
include Puppet::Util
|
15
12
|
include Puppet::Util::MethodHelper
|
@@ -75,7 +72,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
75
72
|
return if evaluated?
|
76
73
|
Puppet::Util::Profiler.profile("Evaluated resource #{self}", [:compiler, :evaluate_resource, self]) do
|
77
74
|
@evaluated = true
|
78
|
-
if
|
75
|
+
if builtin_type?
|
79
76
|
devfail "Cannot evaluate a builtin type (#{type})"
|
80
77
|
elsif resource_type.nil?
|
81
78
|
self.fail "Cannot find definition #{type}"
|
@@ -109,6 +106,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
109
106
|
@finished = true
|
110
107
|
add_defaults
|
111
108
|
add_scope_tags
|
109
|
+
replace_sensitive_data
|
112
110
|
validate if do_validate
|
113
111
|
end
|
114
112
|
|
@@ -189,7 +187,9 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
189
187
|
unless value.nil?
|
190
188
|
case param.name
|
191
189
|
when :before, :subscribe, :notify, :require
|
192
|
-
|
190
|
+
if value.is_a?(Array)
|
191
|
+
value = value.flatten.reject {|v| v.nil? || v == :undef }
|
192
|
+
end
|
193
193
|
result[param.name] = value
|
194
194
|
else
|
195
195
|
result[param.name] = value
|
@@ -256,7 +256,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
256
256
|
scope.with_global_scope do |global_scope|
|
257
257
|
cns_scope = global_scope.newscope(:source => self, :resource => self)
|
258
258
|
cns.to_hash.each { |name, value| cns_scope[name.to_s] = value }
|
259
|
-
|
259
|
+
|
260
260
|
# evaluate mappings in that scope
|
261
261
|
resource_type.arguments.keys.each do |name|
|
262
262
|
if expr = blueprint[:mappings][name]
|
@@ -307,6 +307,15 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
307
307
|
end
|
308
308
|
end
|
309
309
|
|
310
|
+
def replace_sensitive_data
|
311
|
+
parameters.each_pair do |name, param|
|
312
|
+
if param.value.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
313
|
+
@sensitive_parameters << name
|
314
|
+
param.value = param.value.unwrap
|
315
|
+
end
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
310
319
|
# Accept a parameter from an override.
|
311
320
|
def override_parameter(param)
|
312
321
|
# This can happen if the override is defining a new parameter, rather
|
@@ -333,7 +342,7 @@ class Puppet::Parser::Resource < Puppet::Resource
|
|
333
342
|
# syntax. It's important that we use a copy of the new param instance
|
334
343
|
# here, not the old one, and not the original new one, so that the source
|
335
344
|
# is registered correctly for later overrides but the values aren't
|
336
|
-
#
|
345
|
+
# implicitly shared when multiple resources are overridden at once (see
|
337
346
|
# ticket #3556).
|
338
347
|
if param.add
|
339
348
|
param = param.dup
|
data/lib/puppet/parser/scope.rb
CHANGED
@@ -6,7 +6,6 @@ require 'forwardable'
|
|
6
6
|
require 'puppet/parser'
|
7
7
|
require 'puppet/parser/templatewrapper'
|
8
8
|
|
9
|
-
require 'puppet/resource/type_collection_helper'
|
10
9
|
require 'puppet/util/methodhelper'
|
11
10
|
|
12
11
|
# This class is part of the internal parser/evaluator/compiler functionality of Puppet.
|
@@ -18,7 +17,6 @@ class Puppet::Parser::Scope
|
|
18
17
|
extend Forwardable
|
19
18
|
include Puppet::Util::MethodHelper
|
20
19
|
|
21
|
-
include Puppet::Resource::TypeCollectionHelper
|
22
20
|
require 'puppet/parser/resource'
|
23
21
|
|
24
22
|
AST = Puppet::Parser::AST
|
@@ -349,11 +347,11 @@ class Puppet::Parser::Scope
|
|
349
347
|
end
|
350
348
|
|
351
349
|
def find_hostclass(name)
|
352
|
-
known_resource_types.find_hostclass(name)
|
350
|
+
environment.known_resource_types.find_hostclass(name)
|
353
351
|
end
|
354
352
|
|
355
353
|
def find_definition(name)
|
356
|
-
known_resource_types.find_definition(name)
|
354
|
+
environment.known_resource_types.find_definition(name)
|
357
355
|
end
|
358
356
|
|
359
357
|
def find_global_scope()
|
@@ -467,7 +465,8 @@ class Puppet::Parser::Scope
|
|
467
465
|
# Look up a defined type.
|
468
466
|
def lookuptype(name)
|
469
467
|
# This happens a lot, avoid making a call to make a call
|
470
|
-
|
468
|
+
krt = environment.known_resource_types
|
469
|
+
krt.find_definition(name) || krt.find_hostclass(name)
|
471
470
|
end
|
472
471
|
|
473
472
|
def undef_as(x,v)
|
@@ -976,18 +975,19 @@ class Puppet::Parser::Scope
|
|
976
975
|
end
|
977
976
|
end
|
978
977
|
|
978
|
+
# @api private
|
979
979
|
def find_resource_type(type)
|
980
|
-
|
981
|
-
return nil if ["class", "node"].include? type.to_s.downcase
|
982
|
-
find_builtin_resource_type(type) || find_defined_resource_type(type)
|
980
|
+
raise Puppet::DevError, "Scope#find_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
983
981
|
end
|
984
982
|
|
983
|
+
# @api private
|
985
984
|
def find_builtin_resource_type(type)
|
986
|
-
Puppet::
|
985
|
+
raise Puppet::DevError, "Scope#find_builtin_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
987
986
|
end
|
988
987
|
|
988
|
+
# @api private
|
989
989
|
def find_defined_resource_type(type)
|
990
|
-
|
990
|
+
raise Puppet::DevError, "Scope#find_defined_resource_type() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
991
991
|
end
|
992
992
|
|
993
993
|
|
@@ -1005,25 +1005,33 @@ class Puppet::Parser::Scope
|
|
1005
1005
|
end
|
1006
1006
|
end
|
1007
1007
|
|
1008
|
+
# Called from two places:
|
1009
|
+
# runtime3support when creating resources
|
1010
|
+
# ast::resource - used by create resources ?
|
1011
|
+
# @api private
|
1008
1012
|
def resolve_type_and_titles(type, titles)
|
1009
|
-
raise
|
1010
|
-
|
1011
|
-
case type.downcase
|
1012
|
-
when "class"
|
1013
|
-
# resolve the titles
|
1014
|
-
titles = titles.collect do |a_title|
|
1015
|
-
hostclass = find_hostclass(a_title)
|
1016
|
-
hostclass ? hostclass.name : a_title
|
1017
|
-
end
|
1018
|
-
when "node"
|
1019
|
-
# no-op
|
1020
|
-
else
|
1021
|
-
# resolve the type
|
1022
|
-
resource_type = find_resource_type(type)
|
1023
|
-
type = resource_type.name if resource_type
|
1024
|
-
end
|
1013
|
+
raise Puppet::DevError, "Scope#resolve_type_and_title() is no longer supported, use Puppet::Pops::Evaluator::Runtime3ResourceSupport instead"
|
1025
1014
|
|
1026
|
-
|
1015
|
+
# Puppet.deprecation_warning('Scope#resolve_type_and_titles is deprecated.')
|
1016
|
+
#
|
1017
|
+
# raise ArgumentError, "titles must be an array" unless titles.is_a?(Array)
|
1018
|
+
#
|
1019
|
+
# case type.downcase
|
1020
|
+
# when "class"
|
1021
|
+
# # resolve the titles
|
1022
|
+
# titles = titles.collect do |a_title|
|
1023
|
+
# hostclass = find_hostclass(a_title)
|
1024
|
+
# hostclass ? hostclass.name : a_title
|
1025
|
+
# end
|
1026
|
+
# when "node"
|
1027
|
+
# # no-op
|
1028
|
+
# else
|
1029
|
+
# # resolve the type
|
1030
|
+
# resource_type = find_resource_type(type)
|
1031
|
+
# type = resource_type.name if resource_type
|
1032
|
+
# end
|
1033
|
+
#
|
1034
|
+
# return [type, titles]
|
1027
1035
|
end
|
1028
1036
|
|
1029
1037
|
# Transforms references to classes to the form suitable for
|
@@ -1056,7 +1064,7 @@ class Puppet::Parser::Scope
|
|
1056
1064
|
when Puppet::Pops::Types::PResourceType
|
1057
1065
|
assert_class_and_title(name.type_name, name.title)
|
1058
1066
|
name.title.sub(/^([^:]{1,2})/, '::\1')
|
1059
|
-
end
|
1067
|
+
end.downcase
|
1060
1068
|
end
|
1061
1069
|
end
|
1062
1070
|
|