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
@@ -86,4 +86,4 @@ undocumented option
|
|
86
86
|
TERMINI: <%= face.class.terminus_classes(face.indirection.name).join(", ") %>
|
87
87
|
|
88
88
|
<% end -%>
|
89
|
-
See 'puppet
|
89
|
+
See 'puppet help <%= face.name %>' or 'man puppet-<%= face.name %>' for full help.
|
@@ -111,4 +111,4 @@ end -%>
|
|
111
111
|
TERMINI: <%= face.class.terminus_classes(face.indirection.name).join(", ") %>
|
112
112
|
|
113
113
|
<% end -%>
|
114
|
-
See 'puppet
|
114
|
+
See 'puppet help <%= face.name %>' or 'man puppet-<%= face.name %>' for full help.
|
data/lib/puppet/face/man.rb
CHANGED
@@ -10,8 +10,10 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
10
10
|
summary _("Display Puppet manual pages.")
|
11
11
|
|
12
12
|
description <<-EOT
|
13
|
-
|
14
|
-
|
13
|
+
Please use the command 'puppet help <subcommand>' or the system manpage system
|
14
|
+
'man puppet-<subcommand>' to display information about Puppet subcommands. The
|
15
|
+
deprecated man subcommand displays manual pages for all Puppet subcommands. If
|
16
|
+
the `ronn` gem (<https://github.com/rtomayko/ronn/>) is installed on your
|
15
17
|
system, puppet man will display fully-formatted man pages. If `ronn` is not
|
16
18
|
available, puppet man will display the raw (but human-readable) source text
|
17
19
|
in a pager.
|
@@ -33,18 +35,40 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
33
35
|
text (e.g. for use in a pipeline), call this action with '--render-as s'.
|
34
36
|
EOT
|
35
37
|
examples <<-'EOT'
|
36
|
-
View the manual page for
|
38
|
+
View the installed manual page for the subcommand 'config':
|
37
39
|
|
38
|
-
$
|
40
|
+
$ man puppet-config
|
41
|
+
|
42
|
+
(Deprecated) View the manual page for the subcommand 'config':
|
43
|
+
|
44
|
+
$ puppet man config
|
39
45
|
EOT
|
40
46
|
|
41
47
|
default
|
42
|
-
when_invoked do |
|
43
|
-
|
44
|
-
|
48
|
+
when_invoked do |*args|
|
49
|
+
# 'args' is an array of the subcommand and arguments from the command line and an options hash
|
50
|
+
# [<arg1>, ..., {options}]
|
51
|
+
_options = args.pop
|
52
|
+
|
53
|
+
unless valid_command_line?(args)
|
54
|
+
print_man_help
|
55
|
+
#TRANSLATORS 'puppet man' is a specific command line and should not be translated
|
56
|
+
raise ArgumentError, _("The 'puppet man' command takes a single subcommand to review the subcommand's manpage")
|
45
57
|
end
|
46
58
|
|
47
|
-
|
59
|
+
manpage = args.first
|
60
|
+
if default_case?(manpage)
|
61
|
+
print_man_help
|
62
|
+
return nil
|
63
|
+
end
|
64
|
+
|
65
|
+
if legacy_applications.include?(manpage)
|
66
|
+
return Puppet::Application[manpage].help
|
67
|
+
end
|
68
|
+
|
69
|
+
# set 'face' as it's used in the erb processing.
|
70
|
+
face = Puppet::Face[manpage.to_sym, :current]
|
71
|
+
_face = face # suppress the unused variable warning
|
48
72
|
|
49
73
|
file = (Pathname(__FILE__).dirname + "help" + 'man.erb')
|
50
74
|
erb = ERB.new(file.read, nil, '-')
|
@@ -55,7 +79,6 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
55
79
|
return erb.result(binding)
|
56
80
|
end
|
57
81
|
|
58
|
-
|
59
82
|
when_rendering :console do |text|
|
60
83
|
# OK, if we have Ronn on the path we can delegate to it and override the
|
61
84
|
# normal output process. Otherwise delegate to a pager on the raw text,
|
@@ -72,16 +95,16 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
72
95
|
pager = [ENV['MANPAGER'], ENV['PAGER'], 'less', 'most', 'more'].
|
73
96
|
detect {|x| x and x.length > 0 and Puppet::Util.which(x) }
|
74
97
|
|
75
|
-
if ronn
|
98
|
+
if ronn
|
76
99
|
# ronn is a stupid about pager selection, we can be smarter. :)
|
77
|
-
|
100
|
+
ENV['PAGER'] = pager if pager
|
78
101
|
|
79
102
|
args = "--man --manual='Puppet Manual' --organization='Puppet Inc., LLC'"
|
80
103
|
# manual pages could contain UTF-8 text
|
81
104
|
IO.popen("#{ronn} #{args}", 'w:UTF-8') do |fh| fh.write text end
|
82
105
|
|
83
106
|
'' # suppress local output, neh?
|
84
|
-
elsif pager
|
107
|
+
elsif pager
|
85
108
|
# manual pages could contain UTF-8 text
|
86
109
|
IO.popen(pager, 'w:UTF-8') do |fh| fh.write text end
|
87
110
|
''
|
@@ -91,6 +114,24 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
91
114
|
end
|
92
115
|
end
|
93
116
|
|
117
|
+
def valid_command_line?(args)
|
118
|
+
# not too many arguments
|
119
|
+
# This allows the command line case of "puppet man man man" to not throw an error because face_based eats
|
120
|
+
# one of the "man"'s, which means this command line ends up looking like this in the code: 'manface.man("man")'
|
121
|
+
# However when we generate manpages, we do the same call. So we have to allow it and generate the real manpage.
|
122
|
+
args.length <= 1
|
123
|
+
end
|
124
|
+
|
125
|
+
# by default, if you ask for the man manpage "puppet man man" face_base removes the "man" from the args that we
|
126
|
+
# are passed, so we get nil instead
|
127
|
+
def default_case?(manpage)
|
128
|
+
manpage.nil?
|
129
|
+
end
|
130
|
+
|
131
|
+
def print_man_help
|
132
|
+
puts Puppet::Face[:help, :current].help(:man)
|
133
|
+
end
|
134
|
+
|
94
135
|
def legacy_applications
|
95
136
|
# The list of applications, less those that are duplicated as a face.
|
96
137
|
Puppet::Application.available_application_names.reject do |appname|
|
@@ -99,4 +140,6 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
99
140
|
%w{face_base indirection_base}.include? appname
|
100
141
|
end
|
101
142
|
end
|
143
|
+
|
144
|
+
deprecate
|
102
145
|
end
|
data/lib/puppet/face/parser.rb
CHANGED
@@ -64,12 +64,20 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
64
64
|
|
65
65
|
action (:dump) do
|
66
66
|
summary _("Outputs a dump of the internal parse tree for debugging")
|
67
|
-
arguments "-e
|
67
|
+
arguments "[--format <old|pn|json>] [--pretty] { -e <source> | [<templates> ...] } "
|
68
68
|
returns _("A dump of the resulting AST model unless there are syntax or validation errors.")
|
69
69
|
description <<-'EOT'
|
70
70
|
This action parses and validates the Puppet DSL syntax without compiling a catalog
|
71
71
|
or syncing any resources.
|
72
72
|
|
73
|
+
The output format can be controlled using the --format <old|pn|json> where:
|
74
|
+
* 'old' is the default, but now deprecated format which is not API.
|
75
|
+
* 'pn' is the Puppet Extended S-Expression Notation.
|
76
|
+
* 'json' outputs the same graph as 'pn' but with JSON syntax.
|
77
|
+
|
78
|
+
The output will be "pretty printed" when the option --pretty is given together with --format 'pn' or 'json'.
|
79
|
+
This option has no effect on the 'old' format.
|
80
|
+
|
73
81
|
The command accepts one or more manifests (.pp) files, or an -e followed by the puppet
|
74
82
|
source text.
|
75
83
|
If no arguments are given, the stdin is read (unless it is attached to a terminal)
|
@@ -87,6 +95,14 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
87
95
|
summary _("Whether or not to validate the parsed result, if no-validate only syntax errors are reported")
|
88
96
|
end
|
89
97
|
|
98
|
+
option('--format ' + _('<old, pn, or json>')) do
|
99
|
+
summary _("Get result in 'old' (deprecated format), 'pn' (new format), or 'json' (new format in JSON).")
|
100
|
+
end
|
101
|
+
|
102
|
+
option('--pretty') do
|
103
|
+
summary _('Pretty print output. Only applicable together with --format pn or json')
|
104
|
+
end
|
105
|
+
|
90
106
|
when_invoked do |*args|
|
91
107
|
require 'puppet/pops'
|
92
108
|
options = args.pop
|
@@ -120,7 +136,6 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
120
136
|
|
121
137
|
def dump_parse(source, filename, options, show_filename = true)
|
122
138
|
output = ""
|
123
|
-
dumper = Puppet::Pops::Model::ModelTreeDumper.new
|
124
139
|
evaluating_parser = Puppet::Pops::Parser::EvaluatingParser.new
|
125
140
|
begin
|
126
141
|
if options[:validate]
|
@@ -132,7 +147,19 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
132
147
|
if show_filename
|
133
148
|
output << "--- #{filename}"
|
134
149
|
end
|
135
|
-
|
150
|
+
fmt = options[:format]
|
151
|
+
if fmt.nil? || fmt == 'old'
|
152
|
+
output << Puppet::Pops::Model::ModelTreeDumper.new.dump(parse_result) << "\n"
|
153
|
+
else
|
154
|
+
require 'puppet/pops/pn'
|
155
|
+
pn = Puppet::Pops::Model::PNTransformer.transform(parse_result)
|
156
|
+
case fmt
|
157
|
+
when 'json'
|
158
|
+
options[:pretty] ? JSON.pretty_unparse(pn.to_data) : JSON.dump(pn.to_data)
|
159
|
+
else
|
160
|
+
pn.format(options[:pretty] ? Puppet::Pops::PN::Indent.new(' ') : nil, output)
|
161
|
+
end
|
162
|
+
end
|
136
163
|
rescue Puppet::ParseError => detail
|
137
164
|
if show_filename
|
138
165
|
Puppet.err("--- #{filename}")
|
@@ -22,17 +22,17 @@ class Puppet::FileServing::Base
|
|
22
22
|
# Return the full path to our file. Fails if there's no path set.
|
23
23
|
def full_path
|
24
24
|
if relative_path.nil? or relative_path == "" or relative_path == "."
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
full_path = path
|
26
|
+
else
|
27
|
+
full_path = File.join(path, relative_path)
|
28
|
+
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
if Puppet.features.microsoft_windows?
|
31
|
+
# Replace multiple slashes as long as they aren't at the beginning of a filename
|
32
|
+
full_path.gsub(%r{(./)/+}, '\1')
|
33
|
+
else
|
34
|
+
full_path.gsub(%r{//+}, '/')
|
35
|
+
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def initialize(path, options = {})
|
data/lib/puppet/forge.rb
CHANGED
@@ -5,7 +5,7 @@ require 'net/http'
|
|
5
5
|
require 'tempfile'
|
6
6
|
require 'uri'
|
7
7
|
require 'pathname'
|
8
|
-
require 'json'
|
8
|
+
require 'puppet/util/json'
|
9
9
|
require 'semantic_puppet'
|
10
10
|
|
11
11
|
class Puppet::Forge < SemanticPuppet::Dependency::Source
|
@@ -64,7 +64,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
64
64
|
response = make_http_request(uri)
|
65
65
|
|
66
66
|
if response.code == '200'
|
67
|
-
result =
|
67
|
+
result = Puppet::Util::Json.load(response.body)
|
68
68
|
uri = decode_uri(result['pagination']['next'])
|
69
69
|
matches.concat result['results']
|
70
70
|
else
|
@@ -101,7 +101,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
|
|
101
101
|
response = make_http_request(uri)
|
102
102
|
|
103
103
|
if response.code == '200'
|
104
|
-
response =
|
104
|
+
response = Puppet::Util::Json.load(response.body)
|
105
105
|
else
|
106
106
|
raise ResponseError.new(:uri => URI.parse(@host).merge(uri), :response => response)
|
107
107
|
end
|
data/lib/puppet/forge/errors.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'json'
|
1
|
+
require 'puppet/util/json'
|
2
2
|
require 'puppet/error'
|
3
3
|
require 'puppet/forge'
|
4
4
|
|
@@ -82,11 +82,11 @@ module Puppet::Forge::Errors
|
|
82
82
|
@response = "#{response.code} #{response.message.strip}"
|
83
83
|
|
84
84
|
begin
|
85
|
-
body =
|
85
|
+
body = Puppet::Util::Json.load(response.body)
|
86
86
|
if body['message']
|
87
87
|
@message ||= body['message'].strip
|
88
88
|
end
|
89
|
-
rescue
|
89
|
+
rescue Puppet::Util::Json::ParseError
|
90
90
|
end
|
91
91
|
|
92
92
|
message = if @message
|
data/lib/puppet/functions.rb
CHANGED
@@ -564,7 +564,7 @@ module Puppet::Functions
|
|
564
564
|
@block_name = nil
|
565
565
|
@return_type = nil
|
566
566
|
@argument_mismatch_hander = argument_mismatch_handler
|
567
|
-
self.instance_eval
|
567
|
+
self.instance_eval(&block)
|
568
568
|
callable_t = create_callable(@types, @block_type, @return_type, @min, @max)
|
569
569
|
@dispatcher.add(Puppet::Pops::Functions::Dispatch.new(callable_t, meth_name, @names, @max == :default, @block_name, @injections, @weaving, @argument_mismatch_hander))
|
570
570
|
end
|
@@ -650,8 +650,6 @@ module Puppet::Functions
|
|
650
650
|
end
|
651
651
|
end
|
652
652
|
|
653
|
-
private
|
654
|
-
|
655
653
|
# @note WARNING: This style of creating functions is not public. It is a system
|
656
654
|
# under development that will be used for creating "system" functions.
|
657
655
|
#
|
data/lib/puppet/functions/all.rb
CHANGED
@@ -18,11 +18,11 @@
|
|
18
18
|
#
|
19
19
|
# @example Using the `all` function with an Array and a one-parameter lambda
|
20
20
|
#
|
21
|
-
#
|
21
|
+
# ```puppet
|
22
22
|
# # For the array $data, run a lambda that checks that all values are multiples of 10
|
23
23
|
# $data = [10, 20, 30]
|
24
24
|
# notice $data.all |$item| { $item % 10 == 0 }
|
25
|
-
#
|
25
|
+
# ```
|
26
26
|
#
|
27
27
|
# Would notice `true`.
|
28
28
|
#
|
@@ -31,11 +31,11 @@
|
|
31
31
|
#
|
32
32
|
# @example Using the `all` function with a `Hash` and a one-parameter lambda
|
33
33
|
#
|
34
|
-
#
|
34
|
+
# ```puppet
|
35
35
|
# # For the hash $data, run a lambda using each item as a key-value array
|
36
36
|
# $data = { 'a_0'=> 10, 'b_1' => 20 }
|
37
37
|
# notice $data.all |$item| { $item[1] % 10 == 0 }
|
38
|
-
#
|
38
|
+
# ```
|
39
39
|
#
|
40
40
|
# Would notice `true` if all values in the hash are multiples of 10.
|
41
41
|
#
|
@@ -45,11 +45,11 @@
|
|
45
45
|
#
|
46
46
|
# @example Using the `all` function with a hash and a two-parameter lambda
|
47
47
|
#
|
48
|
-
#
|
48
|
+
# ```puppet
|
49
49
|
# # Check that all values are a multiple of 10 and keys start with 'abc'
|
50
50
|
# $data = {abc_123 => 10, abc_42 => 20, abc_blue => 30}
|
51
51
|
# notice $data.all |$key, $value| { $value % 10 == 0 and $key =~ /^abc/ }
|
52
|
-
#
|
52
|
+
# ```
|
53
53
|
#
|
54
54
|
# Would notice true.
|
55
55
|
#
|
@@ -5,11 +5,11 @@
|
|
5
5
|
#
|
6
6
|
# @example Using `annotate` with two arguments
|
7
7
|
#
|
8
|
-
#
|
8
|
+
# ```puppet
|
9
9
|
# $annotation = Mod::NickNameAdapter.annotate(o)
|
10
10
|
#
|
11
11
|
# $annotation = annotate(Mod::NickNameAdapter.annotate, o)
|
12
|
-
#
|
12
|
+
# ```
|
13
13
|
#
|
14
14
|
# With three arguments, an `Annotation` type, an object, and a block, the function returns the
|
15
15
|
# annotation for the object of the given type, or annotates it with a new annotation initialized
|
@@ -18,11 +18,11 @@
|
|
18
18
|
#
|
19
19
|
# @example Using `annotate` with two arguments and a block
|
20
20
|
#
|
21
|
-
#
|
21
|
+
# ```puppet
|
22
22
|
# $annotation = Mod::NickNameAdapter.annotate(o) || { { 'nick_name' => 'Buddy' } }
|
23
23
|
#
|
24
24
|
# $annotation = annotate(Mod::NickNameAdapter.annotate, o) || { { 'nick_name' => 'Buddy' } }
|
25
|
-
#
|
25
|
+
# ```
|
26
26
|
#
|
27
27
|
# With three arguments, an `Annotation` type, an object, and an `Hash`, the function will annotate
|
28
28
|
# the given object with a new annotation of the given type that is initialized from the given hash.
|
@@ -30,11 +30,11 @@
|
|
30
30
|
#
|
31
31
|
# @example Using `annotate` with three arguments where third argument is a Hash
|
32
32
|
#
|
33
|
-
#
|
33
|
+
# ```puppet
|
34
34
|
# $annotation = Mod::NickNameAdapter.annotate(o, { 'nick_name' => 'Buddy' })
|
35
35
|
#
|
36
36
|
# $annotation = annotate(Mod::NickNameAdapter.annotate, o, { 'nick_name' => 'Buddy' })
|
37
|
-
#
|
37
|
+
# ```
|
38
38
|
#
|
39
39
|
# With three arguments, an `Annotation` type, an object, and an the string `clear`, the function will
|
40
40
|
# clear the annotation of the given type in the given object. The old annotation is returned if
|
@@ -42,11 +42,11 @@
|
|
42
42
|
#
|
43
43
|
# @example Using `annotate` with three arguments where third argument is the string 'clear'
|
44
44
|
#
|
45
|
-
#
|
45
|
+
# ```puppet
|
46
46
|
# $annotation = Mod::NickNameAdapter.annotate(o, clear)
|
47
47
|
#
|
48
48
|
# $annotation = annotate(Mod::NickNameAdapter.annotate, o, clear)
|
49
|
-
#
|
49
|
+
# ```
|
50
50
|
#
|
51
51
|
# With three arguments, the type `Pcore`, an object, and a Hash of hashes keyed by `Annotation` types,
|
52
52
|
# the function will annotate the given object with all types used as keys in the given hash. Each annotation
|
@@ -54,12 +54,12 @@
|
|
54
54
|
#
|
55
55
|
# @example Add multiple annotations to a new instance of `Mod::Person` using the `Pcore` type.
|
56
56
|
#
|
57
|
-
#
|
57
|
+
# ```puppet
|
58
58
|
# $person = Pcore.annotate(Mod::Person({'name' => 'William'}), {
|
59
59
|
# Mod::NickNameAdapter >= { 'nick_name' => 'Bill' },
|
60
60
|
# Mod::HobbiesAdapter => { 'hobbies' => ['Ham Radio', 'Philatelist'] }
|
61
61
|
# })
|
62
|
-
#
|
62
|
+
# ```
|
63
63
|
#
|
64
64
|
# @since 5.0.0
|
65
65
|
#
|
data/lib/puppet/functions/any.rb
CHANGED
@@ -18,12 +18,12 @@
|
|
18
18
|
#
|
19
19
|
# @example Using the `any` function with an Array and a one-parameter lambda
|
20
20
|
#
|
21
|
-
#
|
21
|
+
# ```puppet
|
22
22
|
# # For the array $data, run a lambda that checks if an unknown hash contains those keys
|
23
23
|
# $data = ["routers", "servers", "workstations"]
|
24
24
|
# $looked_up = lookup('somekey', Hash)
|
25
25
|
# notice $data.any |$item| { $looked_up[$item] }
|
26
|
-
#
|
26
|
+
# ```
|
27
27
|
#
|
28
28
|
# Would notice `true` if the looked up hash had a value that is neither `false` nor `undef` for at least
|
29
29
|
# one of the keys. That is, it is equivalent to the expression
|
@@ -34,12 +34,12 @@
|
|
34
34
|
#
|
35
35
|
# @example Using the `any` function with a `Hash` and a one-parameter lambda
|
36
36
|
#
|
37
|
-
#
|
37
|
+
# ```puppet
|
38
38
|
# # For the hash $data, run a lambda using each item as a key-value array.
|
39
39
|
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
40
40
|
# $looked_up = lookup('somekey', Hash)
|
41
41
|
# notice $data.any |$item| { $looked_up[$item[0]] }
|
42
|
-
#
|
42
|
+
# ```
|
43
43
|
#
|
44
44
|
# Would notice `true` if the looked up hash had a value for one of the wanted key that is
|
45
45
|
# neither `false` nor `undef`.
|
@@ -50,11 +50,11 @@
|
|
50
50
|
#
|
51
51
|
# @example Using the `any` function with an array and a two-parameter lambda
|
52
52
|
#
|
53
|
-
#
|
53
|
+
# ```puppet
|
54
54
|
# # Check if there is an even numbered index that has a non String value
|
55
55
|
# $data = [key1, 1, 2, 2]
|
56
56
|
# notice $data.any |$index, $value| { $index % 2 == 0 and $value !~ String }
|
57
|
-
#
|
57
|
+
# ```
|
58
58
|
#
|
59
59
|
# Would notice true as the index `2` is even and not a `String`
|
60
60
|
#
|