puppet 5.4.0-universal-darwin → 5.5.0-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.
- 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 +73 -11
- checksums.yaml +0 -7
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# @example Using `assert_type`
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# ```puppet
|
14
14
|
# $raw_username = 'Amy Berry'
|
15
15
|
#
|
16
16
|
# # Assert that $raw_username is a non-empty string and assign it to $valid_username.
|
@@ -19,7 +19,7 @@
|
|
19
19
|
# # $valid_username contains "Amy Berry".
|
20
20
|
# # If $raw_username was an empty string or a different data type, the Puppet run would
|
21
21
|
# # fail with an "Expected type does not match actual" error.
|
22
|
-
#
|
22
|
+
# ```
|
23
23
|
#
|
24
24
|
# You can use an optional lambda to provide enhanced feedback. The lambda takes two
|
25
25
|
# mandatory parameters, in this order:
|
@@ -29,7 +29,7 @@
|
|
29
29
|
#
|
30
30
|
# @example Using `assert_type` with a warning and default value
|
31
31
|
#
|
32
|
-
#
|
32
|
+
# ```puppet
|
33
33
|
# $raw_username = 'Amy Berry'
|
34
34
|
#
|
35
35
|
# # Assert that $raw_username is a non-empty string and assign it to $valid_username.
|
@@ -43,7 +43,7 @@
|
|
43
43
|
# # If $raw_username was an empty string, the Puppet run would set $valid_username to
|
44
44
|
# # "anonymous" and output a warning: "The username should be 'String[1, default]', not
|
45
45
|
# # 'String[0, 0]'. Using 'anonymous'."
|
46
|
-
#
|
46
|
+
# ```
|
47
47
|
#
|
48
48
|
# For more information about data types, see the
|
49
49
|
# [documentation](https://docs.puppetlabs.com/puppet/latest/reference/lang_data.html).
|
@@ -1,5 +1,17 @@
|
|
1
|
-
# Loads a binary file from a module or file system and returns its contents as a Binary
|
2
|
-
#
|
1
|
+
# Loads a binary file from a module or file system and returns its contents as a `Binary`.
|
2
|
+
# The argument to this function should be a `<MODULE NAME>/<FILE>`
|
3
|
+
# reference, which will load `<FILE>` from a module's `files`
|
4
|
+
# directory. (For example, the reference `mysql/mysqltuner.pl` will load the
|
5
|
+
# file `<MODULES DIRECTORY>/mysql/files/mysqltuner.pl`.)
|
6
|
+
#
|
7
|
+
# This function also accepts an absolute file path that allows reading
|
8
|
+
# binary file content from anywhere on disk.
|
9
|
+
#
|
10
|
+
# An error is raised if the given file does not exists.
|
11
|
+
#
|
12
|
+
# To search for the existence of files, use the `find_file()` function.
|
13
|
+
#
|
14
|
+
# - since 4.8.0
|
3
15
|
#
|
4
16
|
# @since 4.8.0
|
5
17
|
#
|
@@ -1,6 +1,35 @@
|
|
1
|
-
#
|
1
|
+
# Breaks an innermost iteration as if it encountered an end of input.
|
2
|
+
# This function does not return to the caller.
|
2
3
|
#
|
3
|
-
#
|
4
|
+
# The signal produced to stop the iteration bubbles up through
|
5
|
+
# the call stack until either terminating the innermost iteration or
|
6
|
+
# raising an error if the end of the call stack is reached.
|
7
|
+
#
|
8
|
+
# The break() function does not accept an argument.
|
9
|
+
#
|
10
|
+
# @example Using `break`
|
11
|
+
#
|
12
|
+
# ```puppet
|
13
|
+
# $data = [1,2,3]
|
14
|
+
# notice $data.map |$x| { if $x == 3 { break() } $x*10 }
|
15
|
+
# ```
|
16
|
+
#
|
17
|
+
# Would notice the value `[10, 20]`
|
18
|
+
#
|
19
|
+
# @example Using a nested `break`
|
20
|
+
#
|
21
|
+
# ```puppet
|
22
|
+
# function break_if_even($x) {
|
23
|
+
# if $x % 2 == 0 { break() }
|
24
|
+
# }
|
25
|
+
# $data = [1,2,3]
|
26
|
+
# notice $data.map |$x| { break_if_even($x); $x*10 }
|
27
|
+
#```
|
28
|
+
# Would notice the value `[10]`
|
29
|
+
#
|
30
|
+
# * Also see functions `next` and `return`
|
31
|
+
#
|
32
|
+
# @since 4.8.0
|
4
33
|
#
|
5
34
|
Puppet::Functions.create_function(:break) do
|
6
35
|
dispatch :break_impl do
|
@@ -8,20 +8,20 @@
|
|
8
8
|
#
|
9
9
|
# @example Using the `call` function
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# ```puppet
|
12
12
|
# $a = 'notice'
|
13
13
|
# call($a, 'message')
|
14
|
-
#
|
14
|
+
# ```
|
15
15
|
#
|
16
16
|
# @example Using the `call` function with a lambda
|
17
17
|
#
|
18
|
-
#
|
18
|
+
# ```puppet
|
19
19
|
# $a = 'each'
|
20
20
|
# $b = [1,2,3]
|
21
21
|
# call($a, $b) |$item| {
|
22
22
|
# notify { $item: }
|
23
23
|
# }
|
24
|
-
#
|
24
|
+
# ```
|
25
25
|
#
|
26
26
|
# The `call` function can be used to call either Ruby functions or Puppet language
|
27
27
|
# functions.
|
@@ -1,6 +1,22 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
#
|
1
|
+
# Makes one or more classes be contained inside the current class.
|
2
|
+
# If any of these classes are undeclared, they will be declared as if
|
3
|
+
# there were declared with the `include` function.
|
4
|
+
# Accepts a class name, an array of class names, or a comma-separated
|
5
|
+
# list of class names.
|
6
|
+
#
|
7
|
+
# A contained class will not be applied before the containing class is
|
8
|
+
# begun, and will be finished before the containing class is finished.
|
9
|
+
#
|
10
|
+
# You must use the class's full name;
|
11
|
+
# relative names are not allowed. In addition to names in string form,
|
12
|
+
# you may also directly use `Class` and `Resource` `Type`-values that are produced by
|
13
|
+
# evaluating resource and relationship expressions.
|
14
|
+
#
|
15
|
+
# The function returns an array of references to the classes that were contained thus
|
16
|
+
# allowing the function call to `contain` to directly continue.
|
17
|
+
#
|
18
|
+
# - Since 4.0.0 support for `Class` and `Resource` `Type`-values, absolute names
|
19
|
+
# - Since 4.7.0 a value of type `Array[Type[Class[n]]]` is returned with all the contained classes
|
4
20
|
#
|
5
21
|
Puppet::Functions.create_function(:contain, Puppet::Functions::InternalFunction) do
|
6
22
|
dispatch :contain do
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# The `convert_to(value, type)` is a convenience function does the same as `new(type, value)`.
|
1
|
+
# The `convert_to(value, type)` is a convenience function that does the same as `new(type, value)`.
|
2
2
|
# The difference in the argument ordering allows it to be used in chained style for
|
3
3
|
# improved readability "left to right".
|
4
4
|
#
|
@@ -7,14 +7,15 @@
|
|
7
7
|
#
|
8
8
|
# @example 'convert_to' instead of 'new'
|
9
9
|
#
|
10
|
-
#
|
11
|
-
# #
|
10
|
+
# ```puppet
|
11
|
+
# # The harder to read variant:
|
12
|
+
# # Using new operator - that is "calling the type" with operator ()
|
12
13
|
# Hash(Array("abc").map |$i,$v| { [$i, $v] })
|
13
14
|
#
|
15
|
+
# # The easier to read variant:
|
14
16
|
# # using 'convert_to'
|
15
17
|
# "abc".convert_to(Array).map |$i,$v| { [$i, $v] }.convert_to(Hash)
|
16
|
-
#
|
17
|
-
# ~~~
|
18
|
+
# ```
|
18
19
|
#
|
19
20
|
# @since 5.4.0
|
20
21
|
#
|
@@ -4,15 +4,17 @@
|
|
4
4
|
# being declared or assigned).
|
5
5
|
#
|
6
6
|
# This function takes at least one string argument, which can be a class name, type name,
|
7
|
-
# resource reference, or variable reference of the form `'$name'`.
|
7
|
+
# resource reference, or variable reference of the form `'$name'`. (Note that the `$` sign
|
8
|
+
# is included in the string which must be in single quotes to prevent the `$` character
|
9
|
+
# to be interpreted as interpolation.
|
8
10
|
#
|
9
11
|
# The `defined` function checks both native and defined types, including types
|
10
12
|
# provided by modules. Types and classes are matched by their names. The function matches
|
11
13
|
# resource declarations by using resource references.
|
12
14
|
#
|
13
|
-
#
|
15
|
+
# @example Different types of `defined` function matches
|
14
16
|
#
|
15
|
-
#
|
17
|
+
# ```puppet
|
16
18
|
# # Matching resource types
|
17
19
|
# defined("file")
|
18
20
|
# defined("customtype")
|
@@ -21,19 +23,19 @@
|
|
21
23
|
# defined("foo")
|
22
24
|
# defined("foo::bar")
|
23
25
|
#
|
24
|
-
# # Matching variables
|
26
|
+
# # Matching variables (note the single quotes)
|
25
27
|
# defined('$name')
|
26
28
|
#
|
27
29
|
# # Matching declared resources
|
28
30
|
# defined(File['/tmp/file'])
|
29
|
-
#
|
31
|
+
# ```
|
30
32
|
#
|
31
33
|
# Puppet depends on the configuration's evaluation order when checking whether a resource
|
32
34
|
# is declared.
|
33
35
|
#
|
34
36
|
# @example Importance of evaluation order when using `defined`
|
35
37
|
#
|
36
|
-
#
|
38
|
+
# ```puppet
|
37
39
|
# # Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
38
40
|
# # functions.
|
39
41
|
#
|
@@ -46,7 +48,7 @@
|
|
46
48
|
# $is_defined_after = defined(File['/tmp/file'])
|
47
49
|
#
|
48
50
|
# # $is_defined_before returns false, but $is_defined_after returns true.
|
49
|
-
#
|
51
|
+
# ```
|
50
52
|
#
|
51
53
|
# This order requirement only refers to evaluation order. The order of resources in the
|
52
54
|
# configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
@@ -64,7 +66,7 @@
|
|
64
66
|
#
|
65
67
|
# @example Matching multiple resources and resources by different types with `defined`
|
66
68
|
#
|
67
|
-
#
|
69
|
+
# ```puppet
|
68
70
|
# file { "/tmp/file1":
|
69
71
|
# ensure => file,
|
70
72
|
# }
|
@@ -90,7 +92,7 @@
|
|
90
92
|
# defined(Resource['exec','/tmp/file2'])
|
91
93
|
# defined(File['/tmp/file3'])
|
92
94
|
# defined('$tmp_file2')
|
93
|
-
#
|
95
|
+
# ```
|
94
96
|
#
|
95
97
|
# @since 2.7.0
|
96
98
|
# @since 3.6.0 variable reference and future parser types
|
data/lib/puppet/functions/dig.rb
CHANGED
@@ -1,5 +1,29 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# Returns a value for a sequence of given keys/indexes into a structure, such as
|
2
|
+
# an array or hash.
|
3
|
+
#
|
4
|
+
# This function is used to "dig into" a complex data structure by
|
5
|
+
# using a sequence of keys / indexes to access a value from which
|
6
|
+
# the next key/index is accessed recursively.
|
7
|
+
#
|
8
|
+
# The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
9
|
+
#
|
10
|
+
# An error is raised if an attempt is made to "dig" into
|
11
|
+
# something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
12
|
+
#
|
13
|
+
# @example Using `dig`
|
14
|
+
#
|
15
|
+
# ```puppet
|
16
|
+
# $data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
17
|
+
# notice $data.dig('a', 'b', 1, 'x')
|
18
|
+
# ```
|
19
|
+
#
|
20
|
+
# Would notice the value 100.
|
21
|
+
#
|
22
|
+
# This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
23
|
+
# index will return an error and cause catalog compilation failure if any parent
|
24
|
+
# of the final key (`'x'`) is `undef`. The `dig` function will return `undef`,
|
25
|
+
# rather than failing catalog compilation. This allows you to check if data
|
26
|
+
# exists in a structure without mandating that it always exists.
|
3
27
|
#
|
4
28
|
# @since 4.5.0
|
5
29
|
#
|
@@ -20,7 +20,7 @@
|
|
20
20
|
#
|
21
21
|
# @example Using the `each` function with an array and a one-parameter lambda
|
22
22
|
#
|
23
|
-
#
|
23
|
+
# ```puppet
|
24
24
|
# # For the array $data, run a lambda that creates a resource for each item.
|
25
25
|
# $data = ["routers", "servers", "workstations"]
|
26
26
|
# $data.each |$item| {
|
@@ -30,14 +30,14 @@
|
|
30
30
|
# }
|
31
31
|
# # Puppet creates one resource for each of the three items in $data. Each resource is
|
32
32
|
# # named after the item's value and uses the item's value in a parameter.
|
33
|
-
#
|
33
|
+
# ```
|
34
34
|
#
|
35
35
|
# When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
36
36
|
# as an array in the form `[key, value]` and returns the original hash.
|
37
37
|
#
|
38
38
|
# @example Using the `each` function with a hash and a one-parameter lambda
|
39
39
|
#
|
40
|
-
#
|
40
|
+
# ```puppet
|
41
41
|
# # For the hash $data, run a lambda using each item as a key-value array that creates a
|
42
42
|
# # resource for each item.
|
43
43
|
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
@@ -48,7 +48,7 @@
|
|
48
48
|
# }
|
49
49
|
# # Puppet creates one resource for each of the three items in $data, each named after the
|
50
50
|
# # item's key and containing a parameter using the item's value.
|
51
|
-
#
|
51
|
+
# ```
|
52
52
|
#
|
53
53
|
# When the first argument is an array and the lambda has two parameters, Puppet passes the
|
54
54
|
# array's indexes (enumerated from 0) in the first parameter and its values in the second
|
@@ -56,7 +56,7 @@
|
|
56
56
|
#
|
57
57
|
# @example Using the `each` function with an array and a two-parameter lambda
|
58
58
|
#
|
59
|
-
#
|
59
|
+
# ```puppet
|
60
60
|
# # For the array $data, run a lambda using each item's index and value that creates a
|
61
61
|
# # resource for each item.
|
62
62
|
# $data = ["routers", "servers", "workstations"]
|
@@ -67,14 +67,14 @@
|
|
67
67
|
# }
|
68
68
|
# # Puppet creates one resource for each of the three items in $data, each named after the
|
69
69
|
# # item's value and containing a parameter using the item's index.
|
70
|
-
#
|
70
|
+
# ```
|
71
71
|
#
|
72
72
|
# When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
73
73
|
# values to the second parameter.
|
74
74
|
#
|
75
75
|
# @example Using the `each` function with a hash and a two-parameter lambda
|
76
76
|
#
|
77
|
-
#
|
77
|
+
# ```puppet
|
78
78
|
# # For the hash $data, run a lambda using each item's key and value to create a resource
|
79
79
|
# # for each item.
|
80
80
|
# $data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
@@ -85,7 +85,7 @@
|
|
85
85
|
# }
|
86
86
|
# # Puppet creates one resource for each of the three items in $data, each named after the
|
87
87
|
# # item's key and containing a parameter using the item's value.
|
88
|
-
#
|
88
|
+
# ```
|
89
89
|
#
|
90
90
|
# For an example that demonstrates how to create multiple `file` resources using `each`,
|
91
91
|
# see the Puppet
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# Returns `true` if the given argument is an empty collection of values.
|
2
|
+
#
|
3
|
+
# This function can answer if one of the following is empty:
|
4
|
+
# * `Array`, `Hash` - having zero entries
|
5
|
+
# * `String`, `Binary` - having zero length
|
6
|
+
#
|
7
|
+
# For backwards compatibility with the stdlib function with the same name the
|
8
|
+
# following data types are also accepted by the function instead of raising an error.
|
9
|
+
# Using these is deprecated and will raise a warning:
|
10
|
+
#
|
11
|
+
# * `Numeric` - `false` is returned for all `Numeric` values.
|
12
|
+
# * `Undef` - `true` is returned for all `Undef` values.
|
13
|
+
#
|
14
|
+
# @example Using `empty`
|
15
|
+
#
|
16
|
+
# ```puppet
|
17
|
+
# notice([].empty)
|
18
|
+
# notice(empty([]))
|
19
|
+
# # would both notice 'true'
|
20
|
+
# ```
|
21
|
+
#
|
22
|
+
# @since Puppet 5.5.0 - support for Binary
|
23
|
+
#
|
24
|
+
Puppet::Functions.create_function(:empty) do
|
25
|
+
dispatch :collection_empty do
|
26
|
+
param 'Collection', :coll
|
27
|
+
end
|
28
|
+
|
29
|
+
dispatch :string_empty do
|
30
|
+
param 'String', :str
|
31
|
+
end
|
32
|
+
|
33
|
+
dispatch :numeric_empty do
|
34
|
+
param 'Numeric', :num
|
35
|
+
end
|
36
|
+
|
37
|
+
dispatch :binary_empty do
|
38
|
+
param 'Binary', :bin
|
39
|
+
end
|
40
|
+
|
41
|
+
dispatch :undef_empty do
|
42
|
+
param 'Undef', :x
|
43
|
+
end
|
44
|
+
|
45
|
+
def collection_empty(coll)
|
46
|
+
coll.empty?
|
47
|
+
end
|
48
|
+
|
49
|
+
def string_empty(str)
|
50
|
+
str.empty?
|
51
|
+
end
|
52
|
+
|
53
|
+
# For compatibility reasons - return false rather than error on floats and integers
|
54
|
+
# (Yes, it is strange)
|
55
|
+
#
|
56
|
+
def numeric_empty(num)
|
57
|
+
deprecation_warning_for('Numeric')
|
58
|
+
false
|
59
|
+
end
|
60
|
+
|
61
|
+
def binary_empty(bin)
|
62
|
+
bin.length == 0
|
63
|
+
end
|
64
|
+
|
65
|
+
# For compatibility reasons - return true rather than error on undef
|
66
|
+
# (Yes, it is strange, but undef was passed as empty string in 3.x API)
|
67
|
+
#
|
68
|
+
def undef_empty(x)
|
69
|
+
deprecation_warning_for('Undef')
|
70
|
+
true
|
71
|
+
end
|
72
|
+
|
73
|
+
def deprecation_warning_for(arg_type)
|
74
|
+
stacktrace = Puppet::Pops::PuppetStack.stacktrace()
|
75
|
+
file, line = stacktrace[0] # defaults to nil
|
76
|
+
msg = _("Calling function empty() with %{arg_type} value is deprecated.") % { arg_type: arg_type }
|
77
|
+
Puppet.warn_once('deprecations', "empty-from-#{file}-#{line}", msg, file, line)
|
78
|
+
end
|
79
|
+
end
|