puppet 4.5.3-universal-darwin → 4.6.1-universal-darwin
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 +89 -34
- 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
data/spec/unit/module_spec.rb
CHANGED
@@ -614,13 +614,6 @@ describe Puppet::Module do
|
|
614
614
|
expect(@module).to be_has_metadata
|
615
615
|
end
|
616
616
|
|
617
|
-
it "should have metadata if it has a metadata file and its data is not empty" do
|
618
|
-
Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
|
619
|
-
File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns "{\"foo\" : \"bar\"}"
|
620
|
-
|
621
|
-
expect(@module).to be_has_metadata
|
622
|
-
end
|
623
|
-
|
624
617
|
it "should not have metadata if has a metadata file and its data is empty" do
|
625
618
|
Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
|
626
619
|
File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns "This is some invalid json.\n"
|
@@ -651,6 +644,49 @@ describe Puppet::Module do
|
|
651
644
|
expect(@module.has_metadata?).to be_falsey
|
652
645
|
end
|
653
646
|
|
647
|
+
describe 'when --strict is warning' do
|
648
|
+
before :each do
|
649
|
+
Puppet[:strict] = :warning
|
650
|
+
end
|
651
|
+
|
652
|
+
it "should warn about a failure to parse" do
|
653
|
+
Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
|
654
|
+
File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns(my_fixture('trailing-comma.json'))
|
655
|
+
|
656
|
+
expect(@module.has_metadata?).to be_falsey
|
657
|
+
expect(@logs).to have_matching_log(/mymod has an invalid and unparsable metadata\.json file/)
|
658
|
+
end
|
659
|
+
end
|
660
|
+
|
661
|
+
describe 'when --strict is off' do
|
662
|
+
before :each do
|
663
|
+
Puppet[:strict] = :off
|
664
|
+
end
|
665
|
+
|
666
|
+
it "should warn about a failure to parse" do
|
667
|
+
Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
|
668
|
+
File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns(my_fixture('trailing-comma.json'))
|
669
|
+
|
670
|
+
expect(@module.has_metadata?).to be_falsey
|
671
|
+
expect(@logs).to have_matching_log(/mymod has an invalid and unparsable metadata\.json file.*/)
|
672
|
+
end
|
673
|
+
end
|
674
|
+
|
675
|
+
describe 'when --strict is error' do
|
676
|
+
before :each do
|
677
|
+
Puppet[:strict] = :error
|
678
|
+
end
|
679
|
+
|
680
|
+
it "should fail on a failure to parse" do
|
681
|
+
Puppet::FileSystem.expects(:exist?).with(@module.metadata_file).returns true
|
682
|
+
File.stubs(:read).with(@module.metadata_file, {:encoding => 'utf-8'}).returns(my_fixture('trailing-comma.json'))
|
683
|
+
|
684
|
+
expect do
|
685
|
+
expect(@module.has_metadata?).to be_falsey
|
686
|
+
end.to raise_error(/mymod has an invalid and unparsable metadata\.json file/)
|
687
|
+
end
|
688
|
+
end
|
689
|
+
|
654
690
|
def a_module_with_metadata(data)
|
655
691
|
text = data.to_pson
|
656
692
|
|
@@ -4,6 +4,8 @@ require 'puppet_spec/module_tool/shared_functions'
|
|
4
4
|
require 'puppet_spec/module_tool/stub_source'
|
5
5
|
require 'semver'
|
6
6
|
|
7
|
+
require 'tmpdir'
|
8
|
+
|
7
9
|
describe Puppet::ModuleTool::Applications::Installer do
|
8
10
|
include PuppetSpec::ModuleTool::SharedFunctions
|
9
11
|
include PuppetSpec::Files
|
@@ -32,6 +34,13 @@ describe Puppet::ModuleTool::Applications::Installer do
|
|
32
34
|
installer.stubs(:module_repository).returns(remote_source)
|
33
35
|
end
|
34
36
|
|
37
|
+
if Puppet.features.microsoft_windows?
|
38
|
+
before :each do
|
39
|
+
Puppet.settings.stubs(:[])
|
40
|
+
Puppet.settings.stubs(:[]).with(:module_working_dir).returns(Dir.mktmpdir('installertmp'))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
35
44
|
def installer(modname, target_dir, options)
|
36
45
|
Puppet::ModuleTool.set_option_defaults(options)
|
37
46
|
Puppet::ModuleTool::Applications::Installer.new(modname, target_dir, options)
|
@@ -358,6 +367,6 @@ describe Puppet::ModuleTool::Applications::Installer do
|
|
358
367
|
end
|
359
368
|
end
|
360
369
|
end
|
361
|
-
|
362
370
|
end
|
371
|
+
|
363
372
|
end
|
@@ -14,7 +14,8 @@ describe Puppet::ModuleTool::Applications::Unpacker do
|
|
14
14
|
let(:working_dir) { tmpdir("working_dir") }
|
15
15
|
|
16
16
|
before :each do
|
17
|
-
Puppet.settings[
|
17
|
+
Puppet.settings.stubs(:[])
|
18
|
+
Puppet.settings.stubs(:[]).with(:module_working_dir).returns(working_dir)
|
18
19
|
end
|
19
20
|
|
20
21
|
it "should attempt to untar file to temporary location" do
|
@@ -3,6 +3,7 @@ require 'puppet/module_tool/applications'
|
|
3
3
|
require 'puppet_spec/module_tool/shared_functions'
|
4
4
|
require 'puppet_spec/module_tool/stub_source'
|
5
5
|
require 'semver'
|
6
|
+
require 'tmpdir'
|
6
7
|
|
7
8
|
describe Puppet::ModuleTool::Applications::Upgrader do
|
8
9
|
include PuppetSpec::ModuleTool::SharedFunctions
|
@@ -31,6 +32,13 @@ describe Puppet::ModuleTool::Applications::Upgrader do
|
|
31
32
|
installer.stubs(:module_repository).returns(remote_source)
|
32
33
|
end
|
33
34
|
|
35
|
+
if Puppet.features.microsoft_windows?
|
36
|
+
before :each do
|
37
|
+
Puppet.settings.stubs(:[])
|
38
|
+
Puppet.settings.stubs(:[]).with(:module_working_dir).returns(Dir.mktmpdir('upgradertmp'))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
34
42
|
def upgrader(name, options = {})
|
35
43
|
Puppet::ModuleTool.set_option_defaults(options)
|
36
44
|
Puppet::ModuleTool::Applications::Upgrader.new(name, options)
|
@@ -20,7 +20,7 @@ describe Puppet::ModuleTool::Tar::Mini, :if => (Puppet.features.minitar? and Pup
|
|
20
20
|
expect {
|
21
21
|
minitar.unpack(sourcefile, destdir, 'uid')
|
22
22
|
}.to raise_error(Puppet::ModuleTool::Errors::InvalidPathInPackageError,
|
23
|
-
"Attempt to install file into \"/thefile\" under \"#{destdir}\"")
|
23
|
+
"Attempt to install file with an invalid path into \"/thefile\" under \"#{destdir}\"")
|
24
24
|
end
|
25
25
|
|
26
26
|
it "does not allow a file to be written outside the destination directory" do
|
@@ -29,7 +29,7 @@ describe Puppet::ModuleTool::Tar::Mini, :if => (Puppet.features.minitar? and Pup
|
|
29
29
|
expect {
|
30
30
|
minitar.unpack(sourcefile, destdir, 'uid')
|
31
31
|
}.to raise_error(Puppet::ModuleTool::Errors::InvalidPathInPackageError,
|
32
|
-
"Attempt to install file into \"#{File.expand_path('/the/thefile')}\" under \"#{destdir}\"")
|
32
|
+
"Attempt to install file with an invalid path into \"#{File.expand_path('/the/thefile')}\" under \"#{destdir}\"")
|
33
33
|
end
|
34
34
|
|
35
35
|
it "does not allow a directory to be written outside the destination directory" do
|
@@ -38,7 +38,7 @@ describe Puppet::ModuleTool::Tar::Mini, :if => (Puppet.features.minitar? and Pup
|
|
38
38
|
expect {
|
39
39
|
minitar.unpack(sourcefile, destdir, 'uid')
|
40
40
|
}.to raise_error(Puppet::ModuleTool::Errors::InvalidPathInPackageError,
|
41
|
-
"Attempt to install file into \"#{File.expand_path('/the/thedir')}\" under \"#{destdir}\"")
|
41
|
+
"Attempt to install file with an invalid path into \"#{File.expand_path('/the/thedir')}\" under \"#{destdir}\"")
|
42
42
|
end
|
43
43
|
|
44
44
|
it "packs a tar file" do
|
@@ -16,7 +16,6 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
16
16
|
before do
|
17
17
|
Puppet::IndirectorTesting.indirection.terminus_class = :memory
|
18
18
|
Puppet::IndirectorTesting.indirection.terminus.clear
|
19
|
-
handler.stubs(:check_authorization)
|
20
19
|
handler.stubs(:warn_if_near_expiration)
|
21
20
|
end
|
22
21
|
|
@@ -40,19 +39,19 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
40
39
|
end
|
41
40
|
|
42
41
|
it "should fail if there is no environment specified" do
|
43
|
-
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", {}) }).to raise_error(
|
42
|
+
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", {}) }).to raise_error(bad_request_error)
|
44
43
|
end
|
45
44
|
|
46
45
|
it "should fail if the environment is not alphanumeric" do
|
47
|
-
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", {:environment => "env ness"}) }).to raise_error(
|
46
|
+
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", {:environment => "env ness"}) }).to raise_error(bad_request_error)
|
48
47
|
end
|
49
48
|
|
50
49
|
it "should fail if the indirection does not match the prefix" do
|
51
|
-
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/certificate/foo", params) }).to raise_error(
|
50
|
+
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/certificate/foo", params) }).to raise_error(bad_request_error)
|
52
51
|
end
|
53
52
|
|
54
53
|
it "should fail if the indirection does not have the correct version" do
|
55
|
-
expect(lambda { handler.uri2indirection("GET", "#{Puppet::Network::HTTP::CA_URL_PREFIX}/v3/certificate/foo", params) }).to raise_error(
|
54
|
+
expect(lambda { handler.uri2indirection("GET", "#{Puppet::Network::HTTP::CA_URL_PREFIX}/v3/certificate/foo", params) }).to raise_error(bad_request_error)
|
56
55
|
end
|
57
56
|
|
58
57
|
it "should not pass a buck_path parameter through (See Bugs #13553, #13518, #13511)" do
|
@@ -76,7 +75,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
76
75
|
end
|
77
76
|
|
78
77
|
it "should fail if the indirection name is not alphanumeric" do
|
79
|
-
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/foo ness/bar", params) }).to raise_error(
|
78
|
+
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/foo ness/bar", params) }).to raise_error(bad_request_error)
|
80
79
|
end
|
81
80
|
|
82
81
|
it "should use the remainder of the URI as the indirection key" do
|
@@ -88,7 +87,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
88
87
|
end
|
89
88
|
|
90
89
|
it "should fail if no indirection key is specified" do
|
91
|
-
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node", params) }).to raise_error(
|
90
|
+
expect(lambda { handler.uri2indirection("GET", "#{master_url_prefix}/node", params) }).to raise_error(bad_request_error)
|
92
91
|
end
|
93
92
|
|
94
93
|
it "should choose 'find' as the indirection method if the http method is a GET and the indirection name is singular" do
|
@@ -124,7 +123,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
124
123
|
end
|
125
124
|
|
126
125
|
it "should fail if an indirection method cannot be picked" do
|
127
|
-
expect(lambda { handler.uri2indirection("UPDATE", "#{master_url_prefix}/node/bar", params) }).to raise_error(
|
126
|
+
expect(lambda { handler.uri2indirection("UPDATE", "#{master_url_prefix}/node/bar", params) }).to raise_error(method_not_allowed_error)
|
128
127
|
end
|
129
128
|
|
130
129
|
it "should not URI unescape the indirection key" do
|
@@ -146,7 +145,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
146
145
|
Not(has_entry(:environment)))
|
147
146
|
expect(lambda { handler.uri2indirection("GET",
|
148
147
|
"#{master_url_prefix}/node/bar",
|
149
|
-
{:environment => 'bogus'}) }).to raise_error(
|
148
|
+
{:environment => 'bogus'}) }).to raise_error(not_found_error)
|
150
149
|
end
|
151
150
|
|
152
151
|
it "should not URI unescape the indirection key as passed through to a call to check_authorization" do
|
@@ -219,46 +218,37 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
219
218
|
end
|
220
219
|
|
221
220
|
describe "when processing a request" do
|
222
|
-
it "should
|
223
|
-
|
221
|
+
it "should raise not_authorized_error when authorization fails" do
|
222
|
+
data = Puppet::IndirectorTesting.new("my data")
|
223
|
+
indirection.save(data, "my data")
|
224
|
+
request = a_request_that_heads(data)
|
224
225
|
|
225
226
|
handler.expects(:check_authorization).raises(Puppet::Network::AuthorizationError.new("forbidden"))
|
226
227
|
|
227
|
-
|
228
|
-
|
229
|
-
|
228
|
+
expect {
|
229
|
+
handler.call(request, response)
|
230
|
+
}.to raise_error(not_authorized_error)
|
230
231
|
end
|
231
232
|
|
232
|
-
it "should
|
233
|
+
it "should raise not_found_error if the indirection does not support remote requests" do
|
233
234
|
request = a_request_that_heads(Puppet::IndirectorTesting.new("my data"))
|
234
235
|
|
235
236
|
indirection.expects(:allow_remote_requests?).returns(false)
|
236
237
|
|
237
|
-
|
238
|
-
|
239
|
-
|
238
|
+
expect {
|
239
|
+
handler.call(request, response)
|
240
|
+
}.to raise_error(not_found_error)
|
240
241
|
end
|
241
242
|
|
242
|
-
it "should
|
243
|
+
it "should raise not_found_error if the environment does not exist" do
|
243
244
|
Puppet.override(:environments => Puppet::Environments::Static.new()) do
|
244
245
|
request = a_request_that_heads(Puppet::IndirectorTesting.new("my data"))
|
245
246
|
|
246
|
-
|
247
|
-
|
248
|
-
|
247
|
+
expect {
|
248
|
+
handler.call(request, response)
|
249
|
+
}.to raise_error(not_found_error)
|
249
250
|
end
|
250
251
|
end
|
251
|
-
|
252
|
-
it "should serialize a controller exception when an exception is thrown while finding the model instance" do
|
253
|
-
request = a_request_that_finds(Puppet::IndirectorTesting.new("key"))
|
254
|
-
handler.expects(:do_find).raises(ArgumentError, "The exception")
|
255
|
-
|
256
|
-
handler.call(request, response)
|
257
|
-
|
258
|
-
expect(response.code).to eq(bad_request_code)
|
259
|
-
expect(response.body).to eq("The exception")
|
260
|
-
expect(response.type).to eq("text/plain")
|
261
|
-
end
|
262
252
|
end
|
263
253
|
|
264
254
|
describe "when finding a model instance" do
|
@@ -273,24 +263,24 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
273
263
|
expect(response.type).to eq(Puppet::Network::FormatHandler.format(:pson))
|
274
264
|
end
|
275
265
|
|
276
|
-
it "
|
266
|
+
it "raises not_acceptable_error when no accept header is provided" do
|
277
267
|
data = Puppet::IndirectorTesting.new("my data")
|
278
268
|
indirection.save(data, "my data")
|
279
269
|
request = a_request_that_finds(data, :accept_header => nil)
|
280
270
|
|
281
|
-
|
282
|
-
|
283
|
-
|
271
|
+
expect {
|
272
|
+
handler.call(request, response)
|
273
|
+
}.to raise_error(not_acceptable_error)
|
284
274
|
end
|
285
275
|
|
286
|
-
it "raises
|
276
|
+
it "raises not_acceptable_error when no accepted formats are known" do
|
287
277
|
data = Puppet::IndirectorTesting.new("my data")
|
288
278
|
indirection.save(data, "my data")
|
289
279
|
request = a_request_that_finds(data, :accept_header => "unknown, also/unknown")
|
290
280
|
|
291
|
-
|
292
|
-
|
293
|
-
|
281
|
+
expect {
|
282
|
+
handler.call(request, response)
|
283
|
+
}.to raise_error(not_acceptable_error)
|
294
284
|
end
|
295
285
|
|
296
286
|
it "should pass the result through without rendering it if the result is a string" do
|
@@ -305,12 +295,13 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
305
295
|
expect(response.type).to eq(Puppet::Network::FormatHandler.format(:pson))
|
306
296
|
end
|
307
297
|
|
308
|
-
it "should
|
298
|
+
it "should raise not_found_error when no model instance can be found" do
|
309
299
|
data = Puppet::IndirectorTesting.new("my data")
|
310
300
|
request = a_request_that_finds(data, :accept_header => "unknown, text/pson")
|
311
301
|
|
312
|
-
|
313
|
-
|
302
|
+
expect {
|
303
|
+
handler.call(request, response)
|
304
|
+
}.to raise_error(not_found_error)
|
314
305
|
end
|
315
306
|
end
|
316
307
|
|
@@ -335,13 +326,13 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
335
326
|
expect(response.type).to eq(Puppet::Network::FormatHandler.format(:pson))
|
336
327
|
end
|
337
328
|
|
338
|
-
it "should
|
329
|
+
it "should raise not_found_error when searching returns nil" do
|
339
330
|
request = a_request_that_searches(Puppet::IndirectorTesting.new("nothing"), :accept_header => "unknown, text/pson")
|
340
331
|
indirection.expects(:search).returns(nil)
|
341
332
|
|
342
|
-
|
343
|
-
|
344
|
-
|
333
|
+
expect {
|
334
|
+
handler.call(request, response)
|
335
|
+
}.to raise_error(not_found_error)
|
345
336
|
end
|
346
337
|
end
|
347
338
|
|
@@ -383,9 +374,10 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
383
374
|
indirection.save(data, "my data")
|
384
375
|
request = a_request_that_destroys(data, :accept_header => "unknown, also/unknown")
|
385
376
|
|
386
|
-
|
377
|
+
expect {
|
378
|
+
handler.call(request, response)
|
379
|
+
}.to raise_error(not_acceptable_error)
|
387
380
|
|
388
|
-
expect(response.code).to eq(not_acceptable_code)
|
389
381
|
expect(Puppet::IndirectorTesting.indirection.find("my data")).not_to be_nil
|
390
382
|
end
|
391
383
|
end
|
@@ -449,10 +441,11 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
449
441
|
data = Puppet::IndirectorTesting.new("my data")
|
450
442
|
request = a_request_that_submits(data, :accept_header => "unknown, also/unknown")
|
451
443
|
|
452
|
-
|
444
|
+
expect {
|
445
|
+
handler.call(request, response)
|
446
|
+
}.to raise_error(not_acceptable_error)
|
453
447
|
|
454
448
|
expect(Puppet::IndirectorTesting.indirection.find("my data")).to be_nil
|
455
|
-
expect(response.code).to eq(not_acceptable_code)
|
456
449
|
end
|
457
450
|
end
|
458
451
|
|
@@ -467,15 +460,13 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
467
460
|
expect(response.code).to eq(nil)
|
468
461
|
end
|
469
462
|
|
470
|
-
it "should
|
463
|
+
it "should raise not_found_error when the model head call returns false" do
|
471
464
|
data = Puppet::IndirectorTesting.new("my data")
|
472
465
|
request = a_request_that_heads(data)
|
473
466
|
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
expect(response.type).to eq("text/plain")
|
478
|
-
expect(response.body).to eq("Not Found: Could not find indirector_testing my data")
|
467
|
+
expect {
|
468
|
+
handler.call(request, response)
|
469
|
+
}.to raise_error(not_found_error)
|
479
470
|
end
|
480
471
|
end
|
481
472
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'puppet/network/http'
|
4
|
+
require 'puppet_spec/network'
|
4
5
|
|
5
6
|
describe Puppet::Network::HTTP::API::Master::V3 do
|
7
|
+
include PuppetSpec::Network
|
8
|
+
|
6
9
|
let(:response) { Puppet::Network::HTTP::MemoryResponse.new }
|
7
10
|
let(:master_url_prefix) { "#{Puppet::Network::HTTP::MASTER_URL_PREFIX}/v3" }
|
8
11
|
let(:master_routes) {
|
@@ -29,11 +32,11 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
29
32
|
expect(response.code).to eq(200)
|
30
33
|
end
|
31
34
|
|
32
|
-
it "responds to unknown paths
|
35
|
+
it "responds to unknown paths by raising not_found_error" do
|
33
36
|
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/unknown")
|
34
|
-
master_routes.process(request, response)
|
35
37
|
|
36
|
-
expect
|
37
|
-
|
38
|
+
expect {
|
39
|
+
master_routes.process(request, response)
|
40
|
+
}.to raise_error(not_found_error)
|
38
41
|
end
|
39
42
|
end
|
@@ -24,7 +24,7 @@ describe Puppet::Network::Rights do
|
|
24
24
|
rights = Puppet::Network::Rights.new
|
25
25
|
why_forbidden = rights.is_request_forbidden_and_why?(:head, "/indirection_name/key", {})
|
26
26
|
expect(why_forbidden).to be_instance_of(Puppet::Network::AuthorizationError)
|
27
|
-
expect(why_forbidden.to_s).to eq("Forbidden request:
|
27
|
+
expect(why_forbidden.to_s).to eq("Forbidden request: /indirection_name/key [find]")
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
data/spec/unit/parameter_spec.rb
CHANGED
@@ -190,4 +190,15 @@ describe Puppet::Parameter do
|
|
190
190
|
)).to eq("{'1' => 'foo', 'bar' => ['2', '3', '4'], 'baz' => {'quux' => 'two', 'qux' => '1'}}")
|
191
191
|
end
|
192
192
|
end
|
193
|
+
|
194
|
+
describe 'formatting messages' do
|
195
|
+
it "formats messages as-is when the parameter is not sensitive" do
|
196
|
+
expect(@parameter.format("hello %s", "world")).to eq("hello world")
|
197
|
+
end
|
198
|
+
|
199
|
+
it "formats messages with redacted values when the parameter is not sensitive" do
|
200
|
+
@parameter.sensitive = true
|
201
|
+
expect(@parameter.format("hello %s", "world")).to eq("hello [redacted]")
|
202
|
+
end
|
203
|
+
end
|
193
204
|
end
|
@@ -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
|