puppet 5.4.0 → 5.5.0
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.
- data/Gemfile +3 -3
- data/MAINTAINERS +0 -19
- data/README.md +5 -5
- data/Rakefile +26 -0
- data/conf/auth.conf +5 -0
- data/ext/project_data.yaml +1 -0
- data/ext/regexp_nodes/regexp_nodes.rb +3 -4
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/cert.rb +3 -1
- data/lib/puppet/application/device.rb +100 -13
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/lookup.rb +12 -2
- data/lib/puppet/configurer.rb +37 -17
- data/lib/puppet/confine.rb +4 -1
- data/lib/puppet/datatypes.rb +1 -1
- data/lib/puppet/environments.rb +1 -1
- data/lib/puppet/error.rb +6 -3
- data/lib/puppet/external/dot.rb +0 -7
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/face/config.rb +92 -10
- data/lib/puppet/face/epp.rb +31 -6
- data/lib/puppet/face/facts.rb +49 -0
- data/lib/puppet/face/help.rb +33 -35
- data/lib/puppet/face/help/action.erb +1 -1
- data/lib/puppet/face/help/face.erb +1 -1
- data/lib/puppet/face/man.rb +55 -12
- data/lib/puppet/face/parser.rb +30 -3
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +10 -10
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/functions.rb +1 -3
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +6 -6
- data/lib/puppet/functions/annotate.rb +10 -10
- data/lib/puppet/functions/any.rb +6 -6
- data/lib/puppet/functions/assert_type.rb +4 -4
- data/lib/puppet/functions/binary_file.rb +14 -2
- data/lib/puppet/functions/break.rb +31 -2
- data/lib/puppet/functions/call.rb +4 -4
- data/lib/puppet/functions/contain.rb +19 -3
- data/lib/puppet/functions/convert_to.rb +6 -5
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +11 -9
- data/lib/puppet/functions/dig.rb +26 -2
- data/lib/puppet/functions/each.rb +8 -8
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +79 -0
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
- data/lib/puppet/functions/filter.rb +7 -7
- data/lib/puppet/functions/find_file.rb +15 -1
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/hiera.rb +6 -6
- data/lib/puppet/functions/hiera_array.rb +6 -6
- data/lib/puppet/functions/hiera_hash.rb +6 -6
- data/lib/puppet/functions/hiera_include.rb +8 -8
- data/lib/puppet/functions/include.rb +28 -2
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +2 -2
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +2 -2
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +2 -1
- data/lib/puppet/functions/map.rb +10 -9
- data/lib/puppet/functions/match.rb +6 -6
- data/lib/puppet/functions/new.rb +995 -2
- data/lib/puppet/functions/next.rb +1 -1
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -6
- data/lib/puppet/functions/regsubst.rb +9 -3
- data/lib/puppet/functions/require.rb +36 -2
- data/lib/puppet/functions/return.rb +1 -1
- data/lib/puppet/functions/reverse_each.rb +71 -2
- data/lib/puppet/functions/slice.rb +23 -9
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +73 -1
- data/lib/puppet/functions/strftime.rb +176 -2
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +19 -19
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +8 -4
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +6 -4
- data/lib/puppet/functions/yaml_data.rb +3 -1
- data/lib/puppet/indirector/certificate_status/file.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +1 -3
- data/lib/puppet/indirector/facts/rest.rb +21 -0
- data/lib/puppet/indirector/facts/yaml.rb +0 -4
- data/lib/puppet/indirector/rest.rb +2 -2
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module/task.rb +2 -3
- data/lib/puppet/module_tool/applications/application.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +3 -3
- data/lib/puppet/network/authconfig.rb +1 -1
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +5 -7
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
- data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
- data/lib/puppet/network/http/error.rb +3 -3
- data/lib/puppet/network/resolver.rb +1 -2
- data/lib/puppet/parser/compiler.rb +12 -5
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
- data/lib/puppet/parser/functions/new.rb +31 -46
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +11 -11
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
- data/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/lib/puppet/pops/issue_reporter.rb +18 -1
- data/lib/puppet/pops/issues.rb +6 -3
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
- data/lib/puppet/pops/loaders.rb +18 -7
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
- data/lib/puppet/pops/model/factory.rb +6 -3
- data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/lib/puppet/pops/parser/egrammar.ra +1 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -1
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/lexer_support.rb +3 -2
- data/lib/puppet/pops/parser/locator.rb +0 -2
- data/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/lib/puppet/pops/pcore.rb +17 -17
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/types/class_loader.rb +6 -3
- data/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/lib/puppet/pops/types/p_object_type.rb +3 -3
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
- data/lib/puppet/pops/types/ruby_generator.rb +3 -4
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_factory.rb +0 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +14 -7
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +6 -2
- data/lib/puppet/provider/group/groupadd.rb +3 -1
- data/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/package/pacman.rb +4 -4
- data/lib/puppet/provider/package/pip.rb +3 -3
- data/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/lib/puppet/provider/package/pkgutil.rb +2 -2
- data/lib/puppet/provider/package/portage.rb +9 -9
- data/lib/puppet/provider/package/zypper.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +6 -2
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/type.rb +11 -11
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/capability_finder.rb +5 -5
- data/lib/puppet/resource/catalog.rb +6 -3
- data/lib/puppet/resource/status.rb +9 -2
- data/lib/puppet/resource/type.rb +1 -1
- data/lib/puppet/settings.rb +31 -19
- data/lib/puppet/settings/base_setting.rb +5 -0
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +0 -2
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +18 -12
- data/lib/puppet/type.rb +9 -13
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +11 -6
- data/lib/puppet/type/exec.rb +1 -1
- data/lib/puppet/type/file.rb +4 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/k5login.rb +30 -54
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/schedule.rb +12 -12
- data/lib/puppet/type/scheduled_task.rb +2 -2
- data/lib/puppet/type/ssh_authorized_key.rb +5 -5
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +26 -5
- data/lib/puppet/util.rb +0 -4
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/json.rb +68 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/log.rb +2 -5
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -8
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +15 -18
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/file.rb +2 -2
- data/lib/puppet/util/windows/principal.rb +7 -6
- data/lib/puppet/util/windows/sid.rb +60 -7
- data/lib/puppet/util/windows/taskscheduler.rb +0 -9
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +53 -48
- data/locales/ja/puppet.po +1357 -912
- data/locales/puppet.pot +549 -466
- data/man/man5/puppet.conf.5 +103 -20
- data/man/man8/puppet-agent.8 +6 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +35 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +33 -11
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +34 -12
- data/man/man8/puppet-facts.8 +50 -1
- data/man/man8/puppet-filebucket.8 +38 -11
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +10 -4
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +15 -6
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +31 -8
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +67 -0
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +3 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/integration/application/apply_spec.rb +15 -15
- data/spec/integration/application/lookup_spec.rb +21 -0
- data/spec/integration/faces/config_spec.rb +16 -4
- data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/collection_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +17 -18
- data/spec/integration/parser/pcore_resource_spec.rb +2 -2
- data/spec/integration/parser/scope_spec.rb +2 -2
- data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/key_spec.rb +1 -1
- data/spec/integration/transaction/report_spec.rb +3 -3
- data/spec/integration/transaction_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +10 -11
- data/spec/integration/type_spec.rb +1 -2
- data/spec/integration/util/windows/adsi_spec.rb +86 -1
- data/spec/integration/util/windows/principal_spec.rb +11 -2
- data/spec/integration/util/windows/security_spec.rb +2 -2
- data/spec/lib/matchers/json.rb +4 -4
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/shared_behaviours/file_server_terminus.rb +0 -2
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/application/cert_spec.rb +21 -9
- data/spec/unit/application/device_spec.rb +96 -2
- data/spec/unit/application/face_base_spec.rb +2 -2
- data/spec/unit/application/lookup_spec.rb +0 -1
- data/spec/unit/configurer_spec.rb +14 -0
- data/spec/unit/confine_spec.rb +16 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
- data/spec/unit/datatypes_spec.rb +49 -0
- data/spec/unit/environments_spec.rb +7 -0
- data/spec/unit/face/config_spec.rb +116 -12
- data/spec/unit/face/epp_face_spec.rb +53 -2
- data/spec/unit/face/facts_spec.rb +53 -0
- data/spec/unit/face/help_spec.rb +62 -69
- data/spec/unit/face/man_spec.rb +26 -0
- data/spec/unit/face/module/list_spec.rb +0 -1
- data/spec/unit/face/parser_spec.rb +78 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -4
- data/spec/unit/file_serving/content_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
- data/spec/unit/forge_spec.rb +1 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +77 -0
- data/spec/unit/functions/epp_spec.rb +1 -1
- data/spec/unit/functions/flatten_spec.rb +31 -0
- data/spec/unit/functions/include_spec.rb +2 -2
- data/spec/unit/functions/inline_epp_spec.rb +1 -1
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
- data/spec/unit/functions/lookup_spec.rb +52 -0
- data/spec/unit/functions/shared.rb +1 -1
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +30 -32
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
- data/spec/unit/indirector/facts/rest_spec.rb +45 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +2 -2
- data/spec/unit/indirector/request_spec.rb +0 -2
- data/spec/unit/indirector/rest_spec.rb +2 -2
- data/spec/unit/indirector_spec.rb +0 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_manager_spec.rb +1 -1
- data/spec/unit/interface/action_spec.rb +1 -1
- data/spec/unit/module_spec.rb +0 -5
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
- data/spec/unit/network/formats_spec.rb +5 -13
- data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
- data/spec/unit/network/http/connection_spec.rb +1 -1
- data/spec/unit/network/http/handler_spec.rb +3 -2
- data/spec/unit/node/environment_spec.rb +1 -1
- data/spec/unit/node_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/environment_compiler_spec.rb +8 -8
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -1
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
- data/spec/unit/parser/functions/realize_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +0 -1
- data/spec/unit/parser/scope_spec.rb +3 -3
- data/spec/unit/parser/type_loader_spec.rb +1 -1
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +5 -5
- data/spec/unit/pops/issues_spec.rb +23 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
- data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
- data/spec/unit/pops/pn_spec.rb +148 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
- data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
- data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
- data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
- data/spec/unit/pops/types/string_converter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +3 -1
- data/spec/unit/property_spec.rb +2 -2
- data/spec/unit/provider/aixobject_spec.rb +1 -1
- data/spec/unit/provider/cron/crontab_spec.rb +3 -3
- data/spec/unit/provider/exec/posix_spec.rb +6 -6
- data/spec/unit/provider/group/groupadd_spec.rb +4 -4
- data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
- data/spec/unit/provider/ldap_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +5 -5
- data/spec/unit/provider/package/rpm_spec.rb +3 -4
- data/spec/unit/provider/package/yum_spec.rb +6 -2
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/init_spec.rb +2 -2
- data/spec/unit/provider/service/openrc_spec.rb +2 -2
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/smf_spec.rb +2 -0
- data/spec/unit/provider/service/systemd_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_spec.rb +7 -7
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +15 -9
- data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
- data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/resource/catalog_spec.rb +8 -3
- data/spec/unit/resource/status_spec.rb +15 -4
- data/spec/unit/resource/type_spec.rb +2 -3
- data/spec/unit/settings_spec.rb +9 -4
- data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
- data/spec/unit/ssl/certificate_request_spec.rb +1 -2
- data/spec/unit/transaction/report_spec.rb +41 -0
- data/spec/unit/transaction_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +7 -9
- data/spec/unit/type/file/selinux_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +4 -3
- data/spec/unit/type/k5login_spec.rb +79 -10
- data/spec/unit/type/mount_spec.rb +1 -1
- data/spec/unit/type/nagios_spec.rb +6 -6
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +18 -0
- data/spec/unit/type/zfs_spec.rb +1 -1
- data/spec/unit/type_spec.rb +14 -15
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/execution_spec.rb +0 -1
- data/spec/unit/util/inifile_spec.rb +35 -4
- data/spec/unit/util/log/destinations_spec.rb +2 -2
- data/spec/unit/util/log_spec.rb +6 -5
- data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
- data/spec/unit/util/plist_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +1 -7
- data/spec/unit/util/windows/adsi_spec.rb +31 -27
- data/spec/unit/util/windows/sid_spec.rb +86 -15
- data/spec/unit/util_spec.rb +2 -2
- data/spec/watchr.rb +0 -1
- data/tasks/benchmark.rake +37 -0
- data/tasks/manpages.rake +1 -1
- metadata +71 -11
- checksums.yaml +0 -7
@@ -153,9 +153,6 @@ describe Puppet::FileBucket::Dipper, :uses_checksums => true do
|
|
153
153
|
|
154
154
|
@dipper = Puppet::FileBucket::Dipper.new(:Path => file_bucket)
|
155
155
|
|
156
|
-
onehour=60*60
|
157
|
-
twohours=onehour*2
|
158
|
-
|
159
156
|
#First File
|
160
157
|
file1 = make_tmp_file(plaintext)
|
161
158
|
real_path = Pathname.new(file1).realpath
|
@@ -182,7 +179,6 @@ describe Puppet::FileBucket::Dipper, :uses_checksums => true do
|
|
182
179
|
checksum = digest(plaintext)
|
183
180
|
expect(digest(plaintext)).to eq(checksum)
|
184
181
|
expect(@dipper.backup(file3)).to eq(checksum)
|
185
|
-
date = Time.now
|
186
182
|
expected_list3 = /#{checksum} \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} #{real_path}\n/
|
187
183
|
|
188
184
|
result = @dipper.list(nil, nil)
|
@@ -25,7 +25,6 @@ describe Puppet::FileServing::Content do
|
|
25
25
|
it "should not retrieve and store its contents when its attributes are collected" do
|
26
26
|
content = Puppet::FileServing::Content.new(path)
|
27
27
|
|
28
|
-
result = "foo"
|
29
28
|
File.expects(:read).with(path).never
|
30
29
|
content.collect
|
31
30
|
|
@@ -277,7 +277,6 @@ describe Puppet::FileServing::Fileset do
|
|
277
277
|
it "works when paths have regexp significant characters" do
|
278
278
|
@path = make_absolute("/my/path/rV1x2DafFr0R6tGG+1bbk++++TM")
|
279
279
|
stat = stub('dir_stat', :directory? => true)
|
280
|
-
stub_file = stub(@path, :stat => stat, :lstat => stat)
|
281
280
|
Puppet::FileSystem.expects(:lstat).with(@path).returns stub(@path, :stat => stat, :lstat => stat)
|
282
281
|
@fileset = Puppet::FileServing::Fileset.new(@path)
|
283
282
|
mock_dir_structure(@path)
|
@@ -495,7 +495,6 @@ describe Puppet::FileServing::Metadata, " when pointing to a link", :if => Puppe
|
|
495
495
|
path = "/base/path/my/file"
|
496
496
|
@file = Puppet::FileServing::Metadata.new(path, :links => :manage)
|
497
497
|
stat = stub("stat", :uid => 1, :gid => 2, :ftype => "link", :mode => 0755)
|
498
|
-
stub_file = stub(:readlink => "/some/other/path", :lstat => stat)
|
499
498
|
Puppet::FileSystem.expects(:lstat).with(path).at_least_once.returns stat
|
500
499
|
Puppet::FileSystem.expects(:readlink).with(path).at_least_once.returns "/some/other/path"
|
501
500
|
@file.stubs("#{digest_algorithm}_file".intern).returns(checksum) # Remove these when :managed links are no longer checksumed.
|
@@ -56,8 +56,6 @@ describe Puppet::FileServing::TerminusSelector do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it "should choose :file_server when default_file_terminus is file_server and no server is specified on the request" do
|
59
|
-
modules = mock 'modules'
|
60
|
-
|
61
59
|
@request.expects(:protocol).returns "puppet"
|
62
60
|
@request.expects(:server).returns nil
|
63
61
|
Puppet[:default_file_terminus] = 'file_server'
|
data/spec/unit/forge_spec.rb
CHANGED
@@ -270,8 +270,7 @@ describe Puppet::Forge do
|
|
270
270
|
end
|
271
271
|
|
272
272
|
it "ignores modules with unparseable dependencies" do
|
273
|
-
expect
|
274
|
-
expect { result.to be_empty }
|
273
|
+
expect(forge.fetch('puppetlabs/bacula')).to be_empty
|
275
274
|
end
|
276
275
|
end
|
277
276
|
end
|
@@ -42,7 +42,7 @@ describe 'the assert_type function' do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'can be called with a callable that receives a specific type' do
|
45
|
-
expected, actual, actual2 = func.call({}, 'Optional[String]', 1) { |
|
45
|
+
expected, actual, actual2 = func.call({}, 'Optional[String]', 1) { |expctd, actul| [expctd, actul, actul] }
|
46
46
|
expect(expected.to_s).to eql('Optional[String]')
|
47
47
|
expect(actual.to_s).to eql('Integer[1, 1]')
|
48
48
|
expect(actual2.to_s).to eql('Integer[1, 1]')
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the empty function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
let(:logs) { [] }
|
11
|
+
let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
|
12
|
+
|
13
|
+
context 'for an array it' do
|
14
|
+
it 'returns true when empty' do
|
15
|
+
expect(compile_to_catalog("notify { String(empty([])): }")).to have_resource('Notify[true]')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns false when not empty' do
|
19
|
+
expect(compile_to_catalog("notify { String(empty([1])): }")).to have_resource('Notify[false]')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'for a hash it' do
|
24
|
+
it 'returns true when empty' do
|
25
|
+
expect(compile_to_catalog("notify { String(empty({})): }")).to have_resource('Notify[true]')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'returns false when not empty' do
|
29
|
+
expect(compile_to_catalog("notify { String(empty({1=>1})): }")).to have_resource('Notify[false]')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'for numeric values it' do
|
34
|
+
it 'always returns false for integer values (including 0)' do
|
35
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
36
|
+
expect(compile_to_catalog("notify { String(empty(0)): }")).to have_resource('Notify[false]')
|
37
|
+
end
|
38
|
+
expect(warnings).to include(/Calling function empty\(\) with Numeric value is deprecated/)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'always returns false for float values (including 0.0)' do
|
42
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
43
|
+
expect(compile_to_catalog("notify { String(empty(0.0)): }")).to have_resource('Notify[false]')
|
44
|
+
end
|
45
|
+
expect(warnings).to include(/Calling function empty\(\) with Numeric value is deprecated/)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'for a string it' do
|
50
|
+
it 'returns true when empty' do
|
51
|
+
expect(compile_to_catalog("notify { String(empty('')): }")).to have_resource('Notify[true]')
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'returns false when not empty' do
|
55
|
+
expect(compile_to_catalog("notify { String(empty(' ')): }")).to have_resource('Notify[false]')
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'for a binary it' do
|
60
|
+
it 'returns true when empty' do
|
61
|
+
expect(compile_to_catalog("notify { String(empty(Binary(''))): }")).to have_resource('Notify[true]')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'returns false when not empty' do
|
65
|
+
expect(compile_to_catalog("notify { String(empty(Binary('b25l'))): }")).to have_resource('Notify[false]')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'for undef it' do
|
70
|
+
it 'returns true and issues deprecation warning' do
|
71
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
72
|
+
expect(compile_to_catalog("notify { String(empty(undef)): }")).to have_resource('Notify[true]')
|
73
|
+
end
|
74
|
+
expect(warnings).to include(/Calling function empty\(\) with Undef value is deprecated/)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the flatten function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
let(:array_fmt) { { 'format' => "%(a", 'separator'=>""} }
|
11
|
+
|
12
|
+
it 'returns flattened array of all its given arguments' do
|
13
|
+
expect(compile_to_catalog("notify { String([1,[2,[3]]].flatten, Array => #{array_fmt}): }")).to have_resource('Notify[(123)]')
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'accepts a single non array value which results in it being wrapped in an array' do
|
17
|
+
expect(compile_to_catalog("notify { String(flatten(1), Array => #{array_fmt}): }")).to have_resource('Notify[(1)]')
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'accepts a single array value - (which is a noop)' do
|
21
|
+
expect(compile_to_catalog("notify { String(flatten([1]), Array => #{array_fmt}): }")).to have_resource('Notify[(1)]')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'it does not flatten a hash - it is a value that gets wrapped' do
|
25
|
+
expect(compile_to_catalog("notify { String(flatten({a=>1}), Array => #{array_fmt}): }")).to have_resource("Notify[({'a' => 1})]")
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'accepts mix of array and non array arguments and concatenates and flattens them' do
|
29
|
+
expect(compile_to_catalog("notify { String(flatten([1],2,[[3,4]]), Array => #{array_fmt}): }")).to have_resource('Notify[(1234)]')
|
30
|
+
end
|
31
|
+
end
|
@@ -92,7 +92,7 @@ describe 'The "include" function' do
|
|
92
92
|
|
93
93
|
it "raises an error if class does not exist" do
|
94
94
|
expect {
|
95
|
-
|
95
|
+
compile_to_catalog(<<-MANIFEST)
|
96
96
|
include the_god_in_your_religion
|
97
97
|
MANIFEST
|
98
98
|
}.to raise_error(Puppet::Error)
|
@@ -105,7 +105,7 @@ describe 'The "include" function' do
|
|
105
105
|
}.each_pair do |value, name_kind|
|
106
106
|
it "raises an error if class is #{name_kind}" do
|
107
107
|
expect {
|
108
|
-
|
108
|
+
compile_to_catalog(<<-MANIFEST)
|
109
109
|
include #{value}
|
110
110
|
MANIFEST
|
111
111
|
}.to raise_error(/Cannot use #{name_kind}/)
|
@@ -83,7 +83,7 @@ describe "the inline_epp function" do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def epp_function()
|
86
|
-
|
86
|
+
scope.compiler.loaders.public_environment_loader.load(:function, 'inline_epp')
|
87
87
|
end
|
88
88
|
|
89
89
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the join function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
it 'joins an array with empty string delimiter if delimiter is not given' do
|
11
|
+
expect(compile_to_catalog("notify { join([1,2,3]): }")).to have_resource('Notify[123]')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'joins an array with given string delimiter' do
|
15
|
+
expect(compile_to_catalog("notify { join([1,2,3],'x'): }")).to have_resource('Notify[1x2x3]')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'results in empty string if array is empty' do
|
19
|
+
expect(compile_to_catalog('notify { "x${join([])}y": }')).to have_resource('Notify[xy]')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'flattens nested arrays' do
|
23
|
+
expect(compile_to_catalog("notify { join([1,2,[3,4]]): }")).to have_resource('Notify[1234]')
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'does not flatten arrays nested in hashes' do
|
27
|
+
expect(compile_to_catalog("notify { join([1,2,{a => [3,4]}]): }")).to have_resource('Notify[12{"a"=>[3, 4]}]')
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'formats nil/undef as empty string' do
|
31
|
+
expect(compile_to_catalog('notify { join([undef, undef], "x"): }')).to have_resource('Notify[x]')
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the keys function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
it 'returns the keys in the hash in the order they appear in a hash iteration' do
|
11
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[apples & oranges]')
|
12
|
+
$k = {'apples' => 1, 'oranges' => 2}.keys
|
13
|
+
notify { "${k[0]} & ${k[1]}": }
|
14
|
+
SRC
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'returns an empty array for an empty hash' do
|
18
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[0]')
|
19
|
+
$v = {}.keys.reduce(0) |$m, $v| { $m+1 }
|
20
|
+
notify { "${v}": }
|
21
|
+
SRC
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'includes an undef key if one is present in the hash' do
|
25
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[Undef]')
|
26
|
+
$types = {undef => 1}.keys.map |$v| { $v.type }
|
27
|
+
notify { "${types[0]}": }
|
28
|
+
SRC
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the length function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
context 'for an array it' do
|
11
|
+
it 'returns 0 when empty' do
|
12
|
+
expect(compile_to_catalog("notify { String(length([])): }")).to have_resource('Notify[0]')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns number of elements when not empty' do
|
16
|
+
expect(compile_to_catalog("notify { String(length([1, 2, 3])): }")).to have_resource('Notify[3]')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'for a hash it' do
|
21
|
+
it 'returns 0 empty' do
|
22
|
+
expect(compile_to_catalog("notify { String(length({})): }")).to have_resource('Notify[0]')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'returns number of elements when not empty' do
|
26
|
+
expect(compile_to_catalog("notify { String(length({1=>1,2=>2})): }")).to have_resource('Notify[2]')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'for a string it' do
|
31
|
+
it 'returns 0 when empty' do
|
32
|
+
expect(compile_to_catalog("notify { String(length('')): }")).to have_resource('Notify[0]')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'returns number of characters when not empty' do
|
36
|
+
# note the multibyte characters - åäö each taking two bytes in UTF-8
|
37
|
+
expect(compile_to_catalog('notify { String(length("\u00e5\u00e4\u00f6")): }')).to have_resource('Notify[3]')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'for a binary it' do
|
42
|
+
it 'returns 0 when empty' do
|
43
|
+
expect(compile_to_catalog("notify { String(length(Binary(''))): }")).to have_resource('Notify[0]')
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'returns number of bytes when not empty' do
|
47
|
+
expect(compile_to_catalog("notify { String(length(Binary('b25l'))): }")).to have_resource('Notify[3]')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -47,7 +47,7 @@ describe 'The lookup function' do
|
|
47
47
|
def compile_and_get_notifications(code)
|
48
48
|
Puppet[:code] = code
|
49
49
|
node.environment.check_for_reparse
|
50
|
-
catalog = block_given? ? compiler.compile { |
|
50
|
+
catalog = block_given? ? compiler.compile { |cat| yield(compiler.topscope); cat } : compiler.compile
|
51
51
|
catalog.resources.map(&:ref).select { |r| r.start_with?('Notify[') }.map { |r| r[7..-2] }
|
52
52
|
end
|
53
53
|
|
@@ -2806,9 +2806,29 @@ describe "The lookup function" do
|
|
2806
2806
|
mod_a::f:
|
2807
2807
|
a:
|
2808
2808
|
a: value mod_a::f.a.a (from module)
|
2809
|
+
mod_a::to_array1: 'hello'
|
2810
|
+
mod_a::to_array2: 'hello'
|
2811
|
+
mod_a::to_int: 'bananas'
|
2812
|
+
mod_a::to_bad_type: 'pyjamas'
|
2813
|
+
mod_a::undef_value: null
|
2809
2814
|
lookup_options:
|
2810
2815
|
mod_a::e:
|
2811
2816
|
merge: deep
|
2817
|
+
mod_a::to_array1:
|
2818
|
+
merge: deep
|
2819
|
+
convert_to: "Array"
|
2820
|
+
mod_a::to_array2:
|
2821
|
+
convert_to:
|
2822
|
+
- "Array"
|
2823
|
+
- true
|
2824
|
+
mod_a::to_int:
|
2825
|
+
convert_to: "Integer"
|
2826
|
+
mod_a::to_bad_type:
|
2827
|
+
convert_to: "ComicSans"
|
2828
|
+
mod_a::undef_value:
|
2829
|
+
convert_to:
|
2830
|
+
- "Array"
|
2831
|
+
- true
|
2812
2832
|
YAML
|
2813
2833
|
|
2814
2834
|
|
@@ -2896,6 +2916,38 @@ describe "The lookup function" do
|
|
2896
2916
|
expect(lookup('mod_a::d')).to eql('a' => 'value mod_a::d.a (from module)')
|
2897
2917
|
end
|
2898
2918
|
|
2919
|
+
context "and conversion via convert_to" do
|
2920
|
+
it 'converts with a single data type value' do
|
2921
|
+
expect(lookup('mod_a::to_array1')).to eql(['h', 'e', 'l', 'l', 'o'])
|
2922
|
+
end
|
2923
|
+
|
2924
|
+
it 'converts with an array of arguments to the convert_to call' do
|
2925
|
+
expect(lookup('mod_a::to_array2')).to eql(['hello'])
|
2926
|
+
end
|
2927
|
+
|
2928
|
+
it 'converts an undef/nil value that has convert_to option' do
|
2929
|
+
expect(lookup('mod_a::undef_value')).to eql([nil])
|
2930
|
+
end
|
2931
|
+
|
2932
|
+
it 'errors if a convert_to lookup_option cannot be performed because value does not match type' do
|
2933
|
+
expect{lookup('mod_a::to_int')}.to raise_error(/The convert_to lookup_option for key 'mod_a::to_int' raised error.*The string 'bananas' cannot be converted to Integer/)
|
2934
|
+
end
|
2935
|
+
|
2936
|
+
it 'errors if a convert_to lookup_option cannot be performed because type does not exist' do
|
2937
|
+
expect{lookup('mod_a::to_bad_type')}.to raise_error(/The convert_to lookup_option for key 'mod_a::to_bad_type' raised error.*Creation of new instance of type 'TypeReference\['ComicSans'\]' is not supported/)
|
2938
|
+
end
|
2939
|
+
|
2940
|
+
it 'adds explanation that conversion took place with a type' do
|
2941
|
+
explanation = explain('mod_a::to_array1')
|
2942
|
+
expect(explanation).to include('Applying convert_to lookup_option with arguments [Array]')
|
2943
|
+
end
|
2944
|
+
|
2945
|
+
it 'adds explanation that conversion took place with a type and arguments' do
|
2946
|
+
explanation = explain('mod_a::to_array2')
|
2947
|
+
expect(explanation).to include('Applying convert_to lookup_option with arguments [Array, true]')
|
2948
|
+
end
|
2949
|
+
end
|
2950
|
+
|
2899
2951
|
it 'the default hierarchy lookup is included in the explain output' do
|
2900
2952
|
explanation = explain('mod_a::c')
|
2901
2953
|
expect(explanation).to match(/Searching default_hierarchy of module "mod_a".+Original path: "defaults.yaml"/m)
|
@@ -88,7 +88,7 @@ shared_examples_for 'an inclusion function, when --tasks is on,' do |function|
|
|
88
88
|
it "is not available when --tasks is on" do
|
89
89
|
Puppet[:tasks] = true
|
90
90
|
expect do
|
91
|
-
|
91
|
+
compile_to_catalog(<<-MANIFEST)
|
92
92
|
#{function}(bar)
|
93
93
|
MANIFEST
|
94
94
|
end.to raise_error(Puppet::ParseError, /is only available when compiling a catalog/)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'matchers/resource'
|
5
|
+
|
6
|
+
describe 'the values function' do
|
7
|
+
include PuppetSpec::Compiler
|
8
|
+
include Matchers::Resource
|
9
|
+
|
10
|
+
it 'returns the values in the hash in the order they appear in a hash iteration' do
|
11
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[1 & 2]')
|
12
|
+
$k = {'apples' => 1, 'oranges' => 2}.values
|
13
|
+
notify { "${k[0]} & ${k[1]}": }
|
14
|
+
SRC
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'returns an empty array for an empty hash' do
|
18
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[0]')
|
19
|
+
$v = {}.values.reduce(0) |$m, $v| { $m+1 }
|
20
|
+
notify { "${v}": }
|
21
|
+
SRC
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'includes an undef value if one is present in the hash' do
|
25
|
+
expect(compile_to_catalog(<<-'SRC'.unindent)).to have_resource('Notify[Undef]')
|
26
|
+
$types = {a => undef}.values.map |$v| { $v.type }
|
27
|
+
notify { "${types[0]}": }
|
28
|
+
SRC
|
29
|
+
end
|
30
|
+
end
|