puppet 4.5.3-x86-mingw32 → 4.6.1-x86-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
@@ -99,10 +99,6 @@ describe Puppet::Parser::Compiler do
|
|
99
99
|
expect { Puppet::Parser::Compiler.compile(@node) }.to raise_error(Puppet::Error, /Compilation has been halted because.*bad environment/)
|
100
100
|
end
|
101
101
|
|
102
|
-
it "should include the resource type collection helper" do
|
103
|
-
expect(Puppet::Parser::Compiler.ancestors).to be_include(Puppet::Resource::TypeCollectionHelper)
|
104
|
-
end
|
105
|
-
|
106
102
|
it "should be able to return a class list containing all added classes" do
|
107
103
|
@compiler.add_class ""
|
108
104
|
@compiler.add_class "one"
|
@@ -117,13 +113,8 @@ describe Puppet::Parser::Compiler do
|
|
117
113
|
expect(@compiler.node).to equal(@node)
|
118
114
|
end
|
119
115
|
|
120
|
-
it "
|
121
|
-
expect(@compiler.
|
122
|
-
end
|
123
|
-
|
124
|
-
it "should detect when ast nodes are present" do
|
125
|
-
@known_resource_types.expects(:nodes?).returns true
|
126
|
-
expect(@compiler.ast_nodes?).to be_truthy
|
116
|
+
it "the set of ast_nodes should be empty" do
|
117
|
+
expect(@compiler.environment.known_resource_types.nodes?).to be_falsey
|
127
118
|
end
|
128
119
|
|
129
120
|
it "should copy the known_resource_types version to the catalog" do
|
@@ -608,14 +599,13 @@ describe Puppet::Parser::Compiler do
|
|
608
599
|
end
|
609
600
|
|
610
601
|
it "should raise an error if a class is not found" do
|
611
|
-
@scope.expects(:find_hostclass).with("notfound").returns(nil)
|
602
|
+
@scope.environment.known_resource_types.expects(:find_hostclass).with("notfound").returns(nil)
|
612
603
|
expect{ @compiler.evaluate_classes(%w{notfound}, @scope) }.to raise_error(Puppet::Error, /Could not find class/)
|
613
604
|
end
|
614
605
|
|
615
606
|
it "should raise an error when it can't find class" do
|
616
607
|
klasses = {'foo'=>nil}
|
617
608
|
@node.classes = klasses
|
618
|
-
@compiler.topscope.expects(:find_hostclass).with('foo').returns(nil)
|
619
609
|
expect{ @compiler.compile }.to raise_error(Puppet::Error, /Could not find class foo for testnode/)
|
620
610
|
end
|
621
611
|
end
|
@@ -624,9 +614,7 @@ describe Puppet::Parser::Compiler do
|
|
624
614
|
|
625
615
|
before do
|
626
616
|
Puppet.settings[:data_binding_terminus] = "none"
|
627
|
-
@class =
|
628
|
-
@scope.stubs(:find_hostclass).with("myclass").returns(@class)
|
629
|
-
|
617
|
+
@class = @known_resource_types.add Puppet::Resource::Type.new(:hostclass, "myclass")
|
630
618
|
@resource = stub 'resource', :ref => "Class[myclass]", :type => "file"
|
631
619
|
end
|
632
620
|
|
@@ -658,7 +646,7 @@ describe Puppet::Parser::Compiler do
|
|
658
646
|
def define_class(name, parameters)
|
659
647
|
@node.classes[name] = parameters
|
660
648
|
klass = Puppet::Resource::Type.new(:hostclass, name, :arguments => {'p1' => @ast_obj, 'p2' => @ast_obj})
|
661
|
-
@compiler.
|
649
|
+
@compiler.environment.known_resource_types.add klass
|
662
650
|
end
|
663
651
|
|
664
652
|
def compile
|
@@ -697,7 +685,7 @@ describe Puppet::Parser::Compiler do
|
|
697
685
|
ast_obj = Puppet::Parser::AST::Leaf.new(:value => 'foo')
|
698
686
|
klasses.each do |name|
|
699
687
|
klass = Puppet::Resource::Type.new(:hostclass, name, :arguments => {'p1' => ast_obj, 'p2' => ast_obj})
|
700
|
-
@compiler.
|
688
|
+
@compiler.environment.known_resource_types.add klass
|
701
689
|
end
|
702
690
|
catalog = @compiler.compile
|
703
691
|
|
@@ -710,7 +698,7 @@ describe Puppet::Parser::Compiler do
|
|
710
698
|
klass = {'foo'=>{'a'=>'one'}}
|
711
699
|
@node.classes = klass
|
712
700
|
klass = Puppet::Resource::Type.new(:hostclass, 'foo', :arguments => {'a' => nil, 'b' => nil})
|
713
|
-
@compiler.
|
701
|
+
@compiler.environment.known_resource_types.add klass
|
714
702
|
expect { @compiler.compile }.to raise_error(Puppet::PreformattedError, /Class\[Foo\]: expects a value for parameter 'b'/)
|
715
703
|
end
|
716
704
|
|
@@ -718,14 +706,14 @@ describe Puppet::Parser::Compiler do
|
|
718
706
|
klass = {'foo'=>{'3'=>'one'}}
|
719
707
|
@node.classes = klass
|
720
708
|
klass = Puppet::Resource::Type.new(:hostclass, 'foo', :arguments => {})
|
721
|
-
@compiler.
|
709
|
+
@compiler.environment.known_resource_types.add klass
|
722
710
|
expect { @compiler.compile }.to raise_error(Puppet::PreformattedError, /Class\[Foo\]: has no parameter named '3'/)
|
723
711
|
end
|
724
712
|
|
725
713
|
it "should ensure class is in catalog without params" do
|
726
714
|
@node.classes = klasses = {'foo'=>nil}
|
727
715
|
foo = Puppet::Resource::Type.new(:hostclass, 'foo')
|
728
|
-
@compiler.
|
716
|
+
@compiler.environment.known_resource_types.add foo
|
729
717
|
catalog = @compiler.compile
|
730
718
|
expect(catalog.classes).to include 'foo'
|
731
719
|
end
|
@@ -766,7 +754,7 @@ describe Puppet::Parser::Compiler do
|
|
766
754
|
|
767
755
|
it "should skip classes previously evaluated with different capitalization" do
|
768
756
|
@compiler.catalog.stubs(:tag)
|
769
|
-
@scope.stubs(:find_hostclass).with("MyClass").returns(@class)
|
757
|
+
@scope.environment.known_resource_types.stubs(:find_hostclass).with("MyClass").returns(@class)
|
770
758
|
@scope.stubs(:class_scope).with(@class).returns(@scope)
|
771
759
|
@compiler.expects(:add_resource).never
|
772
760
|
@resource.expects(:evaluate).never
|
@@ -778,8 +766,7 @@ describe Puppet::Parser::Compiler do
|
|
778
766
|
describe "when evaluating AST nodes with no AST nodes present" do
|
779
767
|
|
780
768
|
it "should do nothing" do
|
781
|
-
@compiler.
|
782
|
-
@compiler.known_resource_types.expects(:nodes).never
|
769
|
+
@compiler.environment.known_resource_types.stubs(:nodes).returns(false)
|
783
770
|
Puppet::Parser::Resource.expects(:new).never
|
784
771
|
|
785
772
|
@compiler.send(:evaluate_ast_node)
|
@@ -789,16 +776,16 @@ describe Puppet::Parser::Compiler do
|
|
789
776
|
describe "when evaluating AST nodes with AST nodes present" do
|
790
777
|
|
791
778
|
before do
|
792
|
-
@compiler.known_resource_types.stubs(:nodes?).returns true
|
779
|
+
@compiler.environment.known_resource_types.stubs(:nodes?).returns true
|
793
780
|
|
794
781
|
# Set some names for our test
|
795
782
|
@node.stubs(:names).returns(%w{a b c})
|
796
|
-
@compiler.known_resource_types.stubs(:node).with("a").returns(nil)
|
797
|
-
@compiler.known_resource_types.stubs(:node).with("b").returns(nil)
|
798
|
-
@compiler.known_resource_types.stubs(:node).with("c").returns(nil)
|
783
|
+
@compiler.environment.known_resource_types.stubs(:node).with("a").returns(nil)
|
784
|
+
@compiler.environment.known_resource_types.stubs(:node).with("b").returns(nil)
|
785
|
+
@compiler.environment.known_resource_types.stubs(:node).with("c").returns(nil)
|
799
786
|
|
800
787
|
# It should check this last, of course.
|
801
|
-
@compiler.known_resource_types.stubs(:node).with("default").returns(nil)
|
788
|
+
@compiler.environment.known_resource_types.stubs(:node).with("default").returns(nil)
|
802
789
|
end
|
803
790
|
|
804
791
|
it "should fail if the named node cannot be found" do
|
@@ -807,7 +794,7 @@ describe Puppet::Parser::Compiler do
|
|
807
794
|
|
808
795
|
it "should evaluate the first node class matching the node name" do
|
809
796
|
node_class = stub 'node', :name => "c", :evaluate_code => nil
|
810
|
-
@compiler.known_resource_types.stubs(:node).with("c").returns(node_class)
|
797
|
+
@compiler.environment.known_resource_types.stubs(:node).with("c").returns(node_class)
|
811
798
|
|
812
799
|
node_resource = stub 'node resource', :ref => "Node[c]", :evaluate => nil, :type => "node"
|
813
800
|
node_class.expects(:ensure_in_catalog).returns(node_resource)
|
@@ -817,7 +804,7 @@ describe Puppet::Parser::Compiler do
|
|
817
804
|
|
818
805
|
it "should match the default node if no matching node can be found" do
|
819
806
|
node_class = stub 'node', :name => "default", :evaluate_code => nil
|
820
|
-
@compiler.known_resource_types.stubs(:node).with("default").returns(node_class)
|
807
|
+
@compiler.environment.known_resource_types.stubs(:node).with("default").returns(node_class)
|
821
808
|
|
822
809
|
node_resource = stub 'node resource', :ref => "Node[default]", :evaluate => nil, :type => "node"
|
823
810
|
node_class.expects(:ensure_in_catalog).returns(node_resource)
|
@@ -827,7 +814,7 @@ describe Puppet::Parser::Compiler do
|
|
827
814
|
|
828
815
|
it "should evaluate the node resource immediately rather than using lazy evaluation" do
|
829
816
|
node_class = stub 'node', :name => "c"
|
830
|
-
@compiler.known_resource_types.stubs(:node).with("c").returns(node_class)
|
817
|
+
@compiler.environment.known_resource_types.stubs(:node).with("c").returns(node_class)
|
831
818
|
|
832
819
|
node_resource = stub 'node resource', :ref => "Node[c]", :type => "node"
|
833
820
|
node_class.expects(:ensure_in_catalog).returns(node_resource)
|
@@ -969,7 +956,6 @@ describe Puppet::Parser::Compiler do
|
|
969
956
|
end
|
970
957
|
end
|
971
958
|
|
972
|
-
|
973
959
|
describe "when managing resource overrides" do
|
974
960
|
|
975
961
|
before do
|
@@ -480,7 +480,6 @@ EOS
|
|
480
480
|
end
|
481
481
|
end
|
482
482
|
|
483
|
-
|
484
483
|
describe "in the environment catalog" do
|
485
484
|
it "does not fail if there is no site expression" do
|
486
485
|
expect {
|
@@ -490,6 +489,18 @@ EOS
|
|
490
489
|
}.to_not raise_error()
|
491
490
|
end
|
492
491
|
|
492
|
+
it "ignores usage of hiera_include() at topscope for classification" do
|
493
|
+
Puppet.expects(:debug).with(regexp_matches /Ignoring hiera_include/)
|
494
|
+
|
495
|
+
expect {
|
496
|
+
catalog = compile_to_env_catalog(<<-EOC).to_resource
|
497
|
+
hiera_include('classes')
|
498
|
+
site { }
|
499
|
+
EOC
|
500
|
+
}.to_not raise_error()
|
501
|
+
|
502
|
+
end
|
503
|
+
|
493
504
|
it "includes components and capability resources" do
|
494
505
|
catalog = compile_to_env_catalog(MANIFEST).to_resource
|
495
506
|
apps = catalog.resources.select do |res|
|
@@ -1,9 +1,11 @@
|
|
1
1
|
require 'puppet'
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'puppet_spec/compiler'
|
4
|
+
require 'puppet_spec/files'
|
4
5
|
|
5
6
|
describe 'function for dynamically creating resources' do
|
6
7
|
include PuppetSpec::Compiler
|
8
|
+
include PuppetSpec::Files
|
7
9
|
|
8
10
|
before :each do
|
9
11
|
node = Puppet::Node.new("floppy", :environment => 'production')
|
@@ -31,6 +33,35 @@ describe 'function for dynamically creating resources' do
|
|
31
33
|
expect { @scope.function_create_resources(['foo',{},'foo']) }.to raise_error(ArgumentError, 'create_resources(): third argument, if provided, must be a hash')
|
32
34
|
end
|
33
35
|
|
36
|
+
context 'when being called from a manifest in a file' do
|
37
|
+
let(:dir) do
|
38
|
+
dir_containing('manifests', {
|
39
|
+
'site.pp' => <<-EOF
|
40
|
+
# comment here to make the call be on a particular
|
41
|
+
# source line (3)
|
42
|
+
create_resources('notify', {
|
43
|
+
'a' => { 'message'=>'message a'},
|
44
|
+
'b' => { 'message'=>'message b'},
|
45
|
+
}
|
46
|
+
)
|
47
|
+
EOF
|
48
|
+
}
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'file and line information where call originates is written to all resources created in one call' do
|
53
|
+
node = Puppet::Node.new('test')
|
54
|
+
file = File.join(dir, 'site.pp')
|
55
|
+
Puppet[:manifest] = file
|
56
|
+
catalog = Puppet::Parser::Compiler.compile(node).filter { |r| r.virtual? }
|
57
|
+
|
58
|
+
expect(catalog.resource(:notify, 'a').file).to eq(file)
|
59
|
+
expect(catalog.resource(:notify, 'a').line).to eq(3)
|
60
|
+
expect(catalog.resource(:notify, 'b').file).to eq(file)
|
61
|
+
expect(catalog.resource(:notify, 'b').line).to eq(3)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
34
65
|
describe 'when creating native types' do
|
35
66
|
it 'empty hash should not cause resources to be added' do
|
36
67
|
noop_catalog = compile_to_catalog("create_resources('file', {})")
|
@@ -43,6 +74,16 @@ describe 'function for dynamically creating resources' do
|
|
43
74
|
expect(catalog.resource(:file, "/etc/foo")['ensure']).to eq('present')
|
44
75
|
end
|
45
76
|
|
77
|
+
it 'should pick up and pass on file and line information' do
|
78
|
+
# mock location as the compile_to_catalog sets Puppet[:code} which does not
|
79
|
+
# have file/line support.
|
80
|
+
Puppet::Pops::PuppetStack.expects(:stacktrace).once.returns([['test.pp', 1234]])
|
81
|
+
catalog = compile_to_catalog("create_resources('file', {'/etc/foo'=>{'ensure'=>'present'}})")
|
82
|
+
r = catalog.resource(:file, "/etc/foo")
|
83
|
+
expect(r.file).to eq('test.pp')
|
84
|
+
expect(r.line).to eq(1234)
|
85
|
+
end
|
86
|
+
|
46
87
|
it 'should be able to add virtual resources' do
|
47
88
|
catalog = compile_to_catalog("create_resources('@file', {'/etc/foo'=>{'ensure'=>'present'}})\nrealize(File['/etc/foo'])")
|
48
89
|
expect(catalog.resource(:file, "/etc/foo")['ensure']).to eq('present')
|
@@ -54,16 +95,16 @@ describe 'function for dynamically creating resources' do
|
|
54
95
|
expect(catalog.resource(:file, "/etc/foo").exported).to eq(true)
|
55
96
|
end
|
56
97
|
|
57
|
-
it 'should accept multiple
|
98
|
+
it 'should accept multiple resources' do
|
58
99
|
catalog = compile_to_catalog("create_resources('notify', {'foo'=>{'message'=>'one'}, 'bar'=>{'message'=>'two'}})")
|
59
100
|
expect(catalog.resource(:notify, "foo")['message']).to eq('one')
|
60
101
|
expect(catalog.resource(:notify, "bar")['message']).to eq('two')
|
61
102
|
end
|
62
103
|
|
63
|
-
it 'should fail to add non-existing type' do
|
104
|
+
it 'should fail to add non-existing resource type' do
|
64
105
|
expect do
|
65
106
|
@scope.function_create_resources(['create-resource-foo', { 'foo' => {} }])
|
66
|
-
end.to raise_error(/
|
107
|
+
end.to raise_error(/Unknown resource type: 'create-resource-foo'/)
|
67
108
|
end
|
68
109
|
|
69
110
|
it 'should be able to add edges' do
|
@@ -84,6 +125,15 @@ describe 'function for dynamically creating resources' do
|
|
84
125
|
expect(rg.path_between(foo,nil)).to_not be
|
85
126
|
end
|
86
127
|
|
128
|
+
it 'should filter out undefined edges in an array as they cause errors' do
|
129
|
+
rg = compile_to_relationship_graph("notify { test: }\n create_resources('notify', {'foo'=>{'require'=>[undef]}})")
|
130
|
+
test = rg.vertices.find { |v| v.title == 'test' }
|
131
|
+
foo = rg.vertices.find { |v| v.title == 'foo' }
|
132
|
+
expect(test).to be
|
133
|
+
expect(foo).to be
|
134
|
+
expect(rg.path_between(foo,nil)).to_not be
|
135
|
+
end
|
136
|
+
|
87
137
|
it 'should account for default values' do
|
88
138
|
catalog = compile_to_catalog("create_resources('file', {'/etc/foo'=>{'ensure'=>'present'}, '/etc/baz'=>{'group'=>'food'}}, {'group' => 'bar'})")
|
89
139
|
expect(catalog.resource(:file, "/etc/foo")['group']).to eq('bar')
|
@@ -112,7 +162,29 @@ describe 'function for dynamically creating resources' do
|
|
112
162
|
|
113
163
|
create_resources('foocreateresource', {'blah'=>{}})
|
114
164
|
MANIFEST
|
115
|
-
}.to raise_error(Puppet::Error, /Foocreateresource\[blah\]: expects a value for parameter 'one'
|
165
|
+
}.to raise_error(Puppet::Error, /Foocreateresource\[blah\]: expects a value for parameter 'one'/)
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'should accept undef as explicit value when parameter has no default value' do
|
169
|
+
catalog = compile_to_catalog(<<-MANIFEST)
|
170
|
+
define foocreateresource($one) {
|
171
|
+
notify { $name: message => "aaa${one}bbb" }
|
172
|
+
}
|
173
|
+
|
174
|
+
create_resources('foocreateresource', {'blah'=>{ one => undef}})
|
175
|
+
MANIFEST
|
176
|
+
expect(catalog.resource(:notify, "blah")['message']).to eq('aaabbb')
|
177
|
+
end
|
178
|
+
|
179
|
+
it 'should use default value expression if given value is undef' do
|
180
|
+
catalog = compile_to_catalog(<<-MANIFEST)
|
181
|
+
define foocreateresource($one = 'xx') {
|
182
|
+
notify { $name: message => "aaa${one}bbb" }
|
183
|
+
}
|
184
|
+
|
185
|
+
create_resources('foocreateresource', {'blah'=>{ one => undef}})
|
186
|
+
MANIFEST
|
187
|
+
expect(catalog.resource(:notify, "blah")['message']).to eq('aaaxxbbb')
|
116
188
|
end
|
117
189
|
|
118
190
|
it 'should be able to add multiple defines' do
|
@@ -18,7 +18,7 @@ describe "the require function" do
|
|
18
18
|
|
19
19
|
@scope.stubs(:findresource)
|
20
20
|
@klass = stub 'class', :name => "myclass"
|
21
|
-
@scope.stubs(:find_hostclass).returns(@klass)
|
21
|
+
@scope.environment.known_resource_types.stubs(:find_hostclass).returns(@klass)
|
22
22
|
|
23
23
|
@resource = Puppet::Parser::Resource.new(:file, "/my/file", :scope => @scope, :source => "source")
|
24
24
|
@scope.stubs(:resource).returns @resource
|
@@ -45,7 +45,7 @@ describe "the require function" do
|
|
45
45
|
it "should lookup the absolute class path" do
|
46
46
|
@scope.compiler.stubs(:evaluate_classes)
|
47
47
|
|
48
|
-
@scope.expects(:find_hostclass).with("::myclass").returns(@klass)
|
48
|
+
@scope.environment.known_resource_types.expects(:find_hostclass).with("::myclass").returns(@klass)
|
49
49
|
@klass.expects(:name).returns("myclass")
|
50
50
|
|
51
51
|
@scope.function_require(["myclass"])
|
@@ -54,10 +54,6 @@ describe Puppet::Parser::Resource do
|
|
54
54
|
expect(Puppet::Parser::Resource.new("file", "whatever", :scope => scope).environment).to eq("foo")
|
55
55
|
end
|
56
56
|
|
57
|
-
it "should use the resource type collection helper module" do
|
58
|
-
expect(Puppet::Parser::Resource.ancestors).to be_include(Puppet::Resource::TypeCollectionHelper)
|
59
|
-
end
|
60
|
-
|
61
57
|
it "should use the scope's environment as its environment" do
|
62
58
|
@scope.expects(:environment).returns("myenv").at_least_once
|
63
59
|
expect(Puppet::Parser::Resource.new("file", "whatever", :scope => @scope).environment).to eq("myenv")
|
@@ -157,7 +153,7 @@ describe Puppet::Parser::Resource do
|
|
157
153
|
end
|
158
154
|
|
159
155
|
it "should add an edge to any specified stage for class resources" do
|
160
|
-
@compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
156
|
+
@compiler.environment.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
161
157
|
|
162
158
|
other_stage = Puppet::Parser::Resource.new(:stage, "other", :scope => @scope, :catalog => @catalog)
|
163
159
|
@compiler.add_resource(@scope, other_stage)
|
@@ -171,7 +167,7 @@ describe Puppet::Parser::Resource do
|
|
171
167
|
end
|
172
168
|
|
173
169
|
it "should fail if an unknown stage is specified" do
|
174
|
-
@compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
170
|
+
@compiler.environment.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
175
171
|
|
176
172
|
resource = Puppet::Parser::Resource.new(:class, "foo", :scope => @scope, :catalog => @catalog)
|
177
173
|
resource[:stage] = 'other'
|
@@ -183,7 +179,7 @@ describe Puppet::Parser::Resource do
|
|
183
179
|
main = @compiler.catalog.resource(:stage, :main)
|
184
180
|
foo_stage = Puppet::Parser::Resource.new(:stage, :foo_stage, :scope => @scope, :catalog => @catalog)
|
185
181
|
@compiler.add_resource(@scope, foo_stage)
|
186
|
-
@compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
182
|
+
@compiler.environment.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
187
183
|
resource = Puppet::Parser::Resource.new(:class, "foo", :scope => @scope, :catalog => @catalog)
|
188
184
|
resource[:stage] = 'foo_stage'
|
189
185
|
@compiler.add_resource(@scope, resource)
|
@@ -200,6 +196,16 @@ describe Puppet::Parser::Resource do
|
|
200
196
|
expect(edges).to include(['Class[main]', 'Notify[hello]'])
|
201
197
|
end
|
202
198
|
|
199
|
+
it 'should evaluate class in the same file without include' do
|
200
|
+
Puppet[:code] = <<-MANIFEST
|
201
|
+
class a($myvar = 'hello') {}
|
202
|
+
class { 'a': myvar => 'goodbye' }
|
203
|
+
notify { $a::myvar: }
|
204
|
+
MANIFEST
|
205
|
+
catalog = Puppet::Parser::Compiler.compile(Puppet::Node.new 'anyone')
|
206
|
+
expect(catalog.resource('Notify[goodbye]')).to be_a(Puppet::Resource)
|
207
|
+
end
|
208
|
+
|
203
209
|
it "should allow edges to propagate multiple levels down the scope hierarchy" do
|
204
210
|
Puppet[:code] = <<-MANIFEST
|
205
211
|
stage { before: before => Stage[main] }
|
@@ -246,7 +252,7 @@ describe Puppet::Parser::Resource do
|
|
246
252
|
|
247
253
|
it "should add edges from top-level class resources to the main stage if no stage is specified" do
|
248
254
|
main = @compiler.catalog.resource(:stage, :main)
|
249
|
-
@compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
255
|
+
@compiler.environment.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", {})
|
250
256
|
resource = Puppet::Parser::Resource.new(:class, "foo", :scope => @scope, :catalog => @catalog)
|
251
257
|
@compiler.add_resource(@scope, resource)
|
252
258
|
|
@@ -258,9 +264,6 @@ describe Puppet::Parser::Resource do
|
|
258
264
|
|
259
265
|
describe "when finishing" do
|
260
266
|
before do
|
261
|
-
@class = newclass "myclass"
|
262
|
-
@nodedef = newnode("mynode")
|
263
|
-
|
264
267
|
@resource = Puppet::Parser::Resource.new("file", "whatever", :scope => @scope, :source => @source)
|
265
268
|
end
|
266
269
|
|
@@ -295,6 +298,13 @@ describe Puppet::Parser::Resource do
|
|
295
298
|
|
296
299
|
expect(@resource[:owner]).to eq("other")
|
297
300
|
end
|
301
|
+
|
302
|
+
it "converts parameters with Sensitive values to unwrapped values and metadata" do
|
303
|
+
@resource[:content] = Puppet::Pops::Types::PSensitiveType::Sensitive.new("hunter2")
|
304
|
+
@resource.finish
|
305
|
+
expect(@resource[:content]).to eq "hunter2"
|
306
|
+
expect(@resource.sensitive_parameters).to eq [:content]
|
307
|
+
end
|
298
308
|
end
|
299
309
|
|
300
310
|
describe "when being tagged" do
|
@@ -91,10 +91,6 @@ describe Puppet::Parser::Scope do
|
|
91
91
|
}.to raise_error(Puppet::DevError, /you must pass a compiler instance/)
|
92
92
|
end
|
93
93
|
|
94
|
-
it "should use the resource type collection helper to find its known resource types" do
|
95
|
-
expect(Puppet::Parser::Scope.ancestors).to include(Puppet::Resource::TypeCollectionHelper)
|
96
|
-
end
|
97
|
-
|
98
94
|
describe "when custom functions are called" do
|
99
95
|
let(:env) { Puppet::Node::Environment.create(:testing, []) }
|
100
96
|
let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new('foo', :environment => env)) }
|
@@ -230,7 +226,7 @@ describe Puppet::Parser::Scope do
|
|
230
226
|
|
231
227
|
describe "and the variable is qualified" do
|
232
228
|
before :each do
|
233
|
-
@known_resource_types = @scope.known_resource_types
|
229
|
+
@known_resource_types = @scope.environment.known_resource_types
|
234
230
|
|
235
231
|
node = Puppet::Node.new('localhost')
|
236
232
|
@compiler = Puppet::Parser::Compiler.new(node)
|