puppet 5.4.0-x64-mingw32 → 5.5.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- 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 +83 -11
- checksums.yaml +0 -7
@@ -1,5 +1,68 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# Calls a [lambda](https://docs.puppet.com/puppet/latest/reference/lang_lambdas.html)
|
2
|
+
# with the given argument unless the argument is `undef`.
|
3
|
+
# Returns `undef` if the argument is `undef`, and otherwise the result of giving the
|
4
|
+
# argument to the lambda.
|
5
|
+
#
|
6
|
+
# This is useful to process a sequence of operations where an intermediate
|
7
|
+
# result may be `undef` (which makes the entire sequence `undef`).
|
8
|
+
# The `then` function is especially useful with the function `dig` which
|
9
|
+
# performs in a similar way "digging out" a value in a complex structure.
|
10
|
+
#
|
11
|
+
# @example Using `dig` and `then`
|
12
|
+
#
|
13
|
+
# ```puppet
|
14
|
+
# $data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
15
|
+
# notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
16
|
+
# ```
|
17
|
+
#
|
18
|
+
# Would notice the value 200
|
19
|
+
#
|
20
|
+
# Contrast this with:
|
21
|
+
#
|
22
|
+
# ```puppet
|
23
|
+
# $data = {a => { b => [{x => 10, y => 20}, {not_x => 100, why => 200}]}}
|
24
|
+
# notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
25
|
+
# ```
|
26
|
+
#
|
27
|
+
# Which would notice `undef` since the last lookup of 'x' results in `undef` which
|
28
|
+
# is returned (without calling the lambda given to the `then` function).
|
29
|
+
#
|
30
|
+
# As a result there is no need for conditional logic or a temporary (non local)
|
31
|
+
# variable as the result is now either the wanted value (`x`) multiplied
|
32
|
+
# by 2 or `undef`.
|
33
|
+
#
|
34
|
+
# Calls to `then` can be chained. In the next example, a structure is using an offset based on
|
35
|
+
# using 1 as the index to the first element (instead of 0 which is used in the language).
|
36
|
+
# We are not sure if user input actually contains an index at all, or if it is
|
37
|
+
# outside the range of available names.args.
|
38
|
+
#
|
39
|
+
# @example Chaining calls to the `then` function
|
40
|
+
#
|
41
|
+
# ```puppet
|
42
|
+
# # Names to choose from
|
43
|
+
# $names = ['Ringo', 'Paul', 'George', 'John']
|
44
|
+
#
|
45
|
+
# # Structure where 'beatle 2' is wanted (but where the number refers
|
46
|
+
# # to 'Paul' because input comes from a source using 1 for the first
|
47
|
+
# # element).
|
48
|
+
#
|
49
|
+
# $data = ['singer', { beatle => 2 }]
|
50
|
+
# $picked = assert_type(String,
|
51
|
+
# # the data we are interested in is the second in the array,
|
52
|
+
# # a hash, where we want the value of the key 'beatle'
|
53
|
+
# $data.dig(1, 'beatle')
|
54
|
+
# # and we want the index in $names before the given index
|
55
|
+
# .then |$x| { $names[$x-1] }
|
56
|
+
# # so we can construct a string with that beatle's name
|
57
|
+
# .then |$x| { "Picked Beatle '${x}'" }
|
58
|
+
# )
|
59
|
+
# notice $picked
|
60
|
+
# ```
|
61
|
+
#
|
62
|
+
# Would notice "Picked Beatle 'Paul'", and would raise an error if the result
|
63
|
+
# was not a String.
|
64
|
+
#
|
65
|
+
# * Since 4.5.0
|
3
66
|
#
|
4
67
|
Puppet::Functions.create_function(:then) do
|
5
68
|
dispatch :then do
|
@@ -42,12 +42,12 @@
|
|
42
42
|
#
|
43
43
|
# @example depth- or breadth-first order
|
44
44
|
#
|
45
|
-
#
|
45
|
+
# ```puppet
|
46
46
|
# [1, [2, 3], 4]
|
47
|
-
#
|
48
|
-
#
|
47
|
+
# ```
|
48
|
+
#
|
49
49
|
# Results in:
|
50
|
-
#
|
50
|
+
#
|
51
51
|
# If containers are skipped:
|
52
52
|
#
|
53
53
|
# * `depth_first` order `1`, `2`, `3`, `4`
|
@@ -67,33 +67,33 @@
|
|
67
67
|
#
|
68
68
|
# @example A flattened iteration over a tree excluding Collections
|
69
69
|
#
|
70
|
-
#
|
70
|
+
# ```puppet
|
71
71
|
# $data = [1, 2, [3, [4, 5]]]
|
72
72
|
# $data.tree_each({include_containers => false}) |$v| { notice "$v" }
|
73
|
-
#
|
73
|
+
# ```
|
74
74
|
#
|
75
75
|
# This would call the lambda 5 times with with the following values in sequence: `1`, `2`, `3`, `4`, `5`
|
76
76
|
#
|
77
77
|
# @example A flattened iteration over a tree (including containers by default)
|
78
78
|
#
|
79
|
-
#
|
79
|
+
# ```puppet
|
80
80
|
# $data = [1, 2, [3, [4, 5]]]
|
81
81
|
# $data.tree_each |$v| { notice "$v" }
|
82
|
-
#
|
82
|
+
# ```
|
83
83
|
#
|
84
84
|
# This would call the lambda 7 times with the following values in sequence:
|
85
85
|
# `1`, `2`, `[3, [4, 5]]`, `3`, `[4, 5]`, `4`, `5`
|
86
86
|
#
|
87
87
|
# @example A flattened iteration over a tree (including only non root containers)
|
88
88
|
#
|
89
|
-
#
|
89
|
+
# ```puppet
|
90
90
|
# $data = [1, 2, [3, [4, 5]]]
|
91
91
|
# $data.tree_each({include_values => false, include_root => false}) |$v| { notice "$v" }
|
92
|
-
#
|
92
|
+
# ```
|
93
93
|
#
|
94
94
|
# This would call the lambda 2 times with the following values in sequence:
|
95
95
|
# `[3, [4, 5]]`, `[4, 5]`
|
96
|
-
|
96
|
+
#
|
97
97
|
# Any Puppet Type system data type can be used to filter what is
|
98
98
|
# considered to be a container, but it must be a narrower type than one of
|
99
99
|
# the default Array, Hash, Object types - for example it is not possible to make a
|
@@ -101,16 +101,16 @@
|
|
101
101
|
#
|
102
102
|
# @example Only `Array` as container type
|
103
103
|
#
|
104
|
-
#
|
104
|
+
# ```puppet
|
105
105
|
# $data = [1, {a => 'hello', b => [100, 200]}, [3, [4, 5]]]
|
106
106
|
# $data.tree_each({container_type => Array, include_containers => false} |$v| { notice "$v" }
|
107
|
-
#
|
108
|
-
#
|
107
|
+
# ```
|
108
|
+
#
|
109
109
|
# Would call the lambda 5 times with `1`, `{a => 'hello', b => [100, 200]}`, `3`, `4`, `5`
|
110
110
|
#
|
111
111
|
# **Chaining** When calling `tree_each` without a lambda the function produces an `Iterator`
|
112
112
|
# that can be chained into another iteration. Thus it is easy to use one of:
|
113
|
-
#
|
113
|
+
#
|
114
114
|
# * `reverse_each` - get "leaves before root"
|
115
115
|
# * `filter` - prune the tree
|
116
116
|
# * `map` - transform each element
|
@@ -118,9 +118,9 @@
|
|
118
118
|
#
|
119
119
|
# Note than when chaining, the value passed on is a `Tuple` with `[path, value]`.
|
120
120
|
#
|
121
|
-
# @example
|
122
|
-
#
|
123
|
-
#
|
121
|
+
# @example Pruning a tree
|
122
|
+
#
|
123
|
+
# ```puppet
|
124
124
|
# # A tree of some complexity (here very simple for readability)
|
125
125
|
# $tree = [
|
126
126
|
# { name => 'user1', status => 'inactive', id => '10'},
|
@@ -130,7 +130,7 @@
|
|
130
130
|
# $value = $v[1]
|
131
131
|
# $value =~ Hash and $value[status] == active
|
132
132
|
# }
|
133
|
-
#
|
133
|
+
# ```
|
134
134
|
#
|
135
135
|
# Would notice `[[[1], {name => user2, status => active, id => 20}]]`, which can then be processed
|
136
136
|
# further as each filtered result appears as a `Tuple` with `[path, value]`.
|
@@ -1,4 +1,45 @@
|
|
1
|
-
#
|
1
|
+
# Returns the data type of a given value with a given degree of generality.
|
2
|
+
#
|
3
|
+
# ```puppet
|
4
|
+
# type InferenceFidelity = Enum[generalized, reduced, detailed]
|
5
|
+
#
|
6
|
+
# function type(Any $value, InferenceFidelity $fidelity = 'detailed') # returns Type
|
7
|
+
# ```
|
8
|
+
#
|
9
|
+
# @example Using `type`
|
10
|
+
#
|
11
|
+
# ``` puppet
|
12
|
+
# notice type(42) =~ Type[Integer]
|
13
|
+
# ```
|
14
|
+
#
|
15
|
+
# Would notice `true`.
|
16
|
+
#
|
17
|
+
# By default, the best possible inference is made where all details are retained.
|
18
|
+
# This is good when the type is used for further type calculations but is overwhelmingly
|
19
|
+
# rich in information if it is used in a error message.
|
20
|
+
#
|
21
|
+
# The optional argument `$fidelity` may be given as (from lowest to highest fidelity):
|
22
|
+
#
|
23
|
+
# * `generalized` - reduces to common type and drops size constraints
|
24
|
+
# * `reduced` - reduces to common type in collections
|
25
|
+
# * `detailed` - (default) all details about inferred types is retained
|
26
|
+
#
|
27
|
+
# @example Using `type()` with different inference fidelity:
|
28
|
+
#
|
29
|
+
# ``` puppet
|
30
|
+
# notice type([3.14, 42], 'generalized')
|
31
|
+
# notice type([3.14, 42], 'reduced'')
|
32
|
+
# notice type([3.14, 42], 'detailed')
|
33
|
+
# notice type([3.14, 42])
|
34
|
+
# ```
|
35
|
+
#
|
36
|
+
# Would notice the four values:
|
37
|
+
#
|
38
|
+
# 1. 'Array[Numeric]'
|
39
|
+
# 2. 'Array[Numeric, 2, 2]'
|
40
|
+
# 3. 'Tuple[Float[3.14], Integer[42,42]]]'
|
41
|
+
# 4. 'Tuple[Float[3.14], Integer[42,42]]]'
|
42
|
+
#
|
2
43
|
# @since 4.4.0
|
3
44
|
#
|
4
45
|
Puppet::Functions.create_function(:type) do
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Produces a unique set of values from an `Iterable` argument.
|
2
2
|
#
|
3
3
|
# * If the argument is a `String`, the unique set of characters are returned as a new `String`.
|
4
4
|
# * If the argument is a `Hash`, the resulting hash associates a set of keys with a set of unique values.
|
@@ -11,21 +11,21 @@
|
|
11
11
|
#
|
12
12
|
# @example Using unique with a String
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# ```puppet
|
15
15
|
# # will produce 'abc'
|
16
16
|
# "abcaabb".unique
|
17
|
-
#
|
17
|
+
# ```
|
18
18
|
#
|
19
19
|
# @example Using unique with an Array
|
20
20
|
#
|
21
|
-
#
|
21
|
+
# ```puppet
|
22
22
|
# # will produce ['a', 'b', 'c']
|
23
23
|
# ['a', 'b', 'c', 'a', 'a', 'b'].unique
|
24
|
-
#
|
24
|
+
# ```
|
25
25
|
#
|
26
26
|
# @example Using unique with a Hash
|
27
27
|
#
|
28
|
-
#
|
28
|
+
# ```puppet
|
29
29
|
# # will produce { ['a', 'b'] => [10], ['c'] => [20]}
|
30
30
|
# {'a' => 10, 'b' => 10, 'c' => 20}.unique
|
31
31
|
#
|
@@ -34,18 +34,18 @@
|
|
34
34
|
#
|
35
35
|
# # will produce { 'b' => 10, 'c' => 20 } (use last key with first value)
|
36
36
|
# Hash.new({'a' => 10, 'b' => 10, 'c' => 20}.unique.map |$k, $v| { [ $k[-1] , $v[0]] })
|
37
|
-
#
|
37
|
+
# ```
|
38
38
|
#
|
39
39
|
# @example Using unique with an Iterable
|
40
40
|
#
|
41
|
-
#
|
41
|
+
# ```
|
42
42
|
# # will produce [3, 2, 1]
|
43
43
|
# [1,2,2,3,3].reverse_each.unique
|
44
|
-
#
|
44
|
+
# ```
|
45
45
|
#
|
46
46
|
# @example Using unique with a lambda
|
47
47
|
#
|
48
|
-
#
|
48
|
+
# ```puppet
|
49
49
|
# # will produce [['sam', 'smith'], ['sue', 'smith']]
|
50
50
|
# [['sam', 'smith'], ['sam', 'brown'], ['sue', 'smith']].unique |$x| { $x[0] }
|
51
51
|
#
|
@@ -57,7 +57,7 @@
|
|
57
57
|
#
|
58
58
|
# # will produce {[a] => [10], [b, c, d, e] => [11, 12, 100]}
|
59
59
|
# {a => 10, b => 11, c => 12, d => 100, e => 11}.unique |$v| { if $v > 10 { big } else { $v } }
|
60
|
-
#
|
60
|
+
# ```
|
61
61
|
#
|
62
62
|
# Note that for `Hash` the result is slightly different than for the other data types. For those the result contains the
|
63
63
|
# *first-found* unique value, but for `Hash` it contains associations from a set of keys to the set of values clustered by the
|
@@ -70,7 +70,7 @@
|
|
70
70
|
#
|
71
71
|
# @example turning a string or array into a hash with index keys
|
72
72
|
#
|
73
|
-
#
|
73
|
+
# ```puppet
|
74
74
|
# # Array ['a', 'b', 'c'] to Hash with index results in
|
75
75
|
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
76
76
|
# Hash(['a', 'b', 'c'].map |$i, $v| { [$i, $v]})
|
@@ -79,7 +79,7 @@
|
|
79
79
|
# # {0 => 'a', 1 => 'b', 2 => 'c'}
|
80
80
|
# Hash(Array("abc").map |$i,$v| { [$i, $v]})
|
81
81
|
# "abc".to(Array).map |$i,$v| { [$i, $v]}.to(Hash)
|
82
|
-
#
|
82
|
+
# ```
|
83
83
|
#
|
84
84
|
# @since Puppet 5.0.0
|
85
85
|
#
|
@@ -1,17 +1,21 @@
|
|
1
1
|
# Unwraps a Sensitive value and returns the wrapped object.
|
2
2
|
#
|
3
|
-
#
|
3
|
+
# @example Usage of unwrap
|
4
|
+
#
|
5
|
+
# ```puppet
|
4
6
|
# $plaintext = 'hunter2'
|
5
7
|
# $pw = Sensitive.new($plaintext)
|
6
8
|
# notice("Wrapped object is $pw") #=> Prints "Wrapped object is Sensitive [value redacted]"
|
7
9
|
# $unwrapped = $pw.unwrap
|
8
10
|
# notice("Unwrapped object is $unwrapped") #=> Prints "Unwrapped object is hunter2"
|
9
|
-
#
|
11
|
+
# ```
|
10
12
|
#
|
11
13
|
# You can optionally pass a block to unwrap in order to limit the scope where the
|
12
14
|
# unwrapped value is visible.
|
13
15
|
#
|
14
|
-
#
|
16
|
+
# @example Unwrapping with a block of code
|
17
|
+
#
|
18
|
+
# ```puppet
|
15
19
|
# $pw = Sensitive.new('hunter2')
|
16
20
|
# notice("Wrapped object is $pw") #=> Prints "Wrapped object is Sensitive [value redacted]"
|
17
21
|
# $pw.unwrap |$unwrapped| {
|
@@ -19,7 +23,7 @@
|
|
19
23
|
# Sensitive.new($conf)
|
20
24
|
# } #=> Returns a new Sensitive object containing an interpolated config file
|
21
25
|
# # $unwrapped is now out of scope
|
22
|
-
#
|
26
|
+
# ```
|
23
27
|
#
|
24
28
|
# @since 4.0.0
|
25
29
|
#
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Returns the values of a hash as an Array
|
2
|
+
#
|
3
|
+
# @example Using `values`
|
4
|
+
#
|
5
|
+
# ```puppet
|
6
|
+
# $hsh = {"apples" => 3, "oranges" => 4 }
|
7
|
+
# $hsh.values()
|
8
|
+
# values($hsh)
|
9
|
+
# # both results in the array [3, 4]
|
10
|
+
# ```
|
11
|
+
#
|
12
|
+
# * Note that a hash in the puppet language accepts any data value (including `undef`) unless
|
13
|
+
# it is constrained with a `Hash` data type that narrows the allowed data types.
|
14
|
+
# * For an empty hash, an empty array is returned.
|
15
|
+
# * The order of the values is the same as the order in the hash (typically the order in which they were added).
|
16
|
+
#
|
17
|
+
Puppet::Functions.create_function(:values) do
|
18
|
+
dispatch :values do
|
19
|
+
param 'Hash', :hsh
|
20
|
+
end
|
21
|
+
|
22
|
+
def values(hsh)
|
23
|
+
hsh.values
|
24
|
+
end
|
25
|
+
end
|
@@ -1,12 +1,14 @@
|
|
1
|
-
#
|
2
|
-
# with the given arguments and
|
1
|
+
# Calls a [lambda](https://docs.puppet.com/puppet/latest/reference/lang_lambdas.html)
|
2
|
+
# with the given arguments and returns the result.
|
3
|
+
#
|
4
|
+
# Since a lambda's scope is
|
3
5
|
# [local](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html#lambda-scope)
|
4
6
|
# to the lambda, you can use the `with` function to create private blocks of code within a
|
5
7
|
# class using variables whose values cannot be accessed outside of the lambda.
|
6
8
|
#
|
7
9
|
# @example Using `with`
|
8
10
|
#
|
9
|
-
#
|
11
|
+
# ```puppet
|
10
12
|
# # Concatenate three strings into a single string formatted as a list.
|
11
13
|
# $fruit = with("apples", "oranges", "bananas") |$x, $y, $z| {
|
12
14
|
# "${x}, ${y}, and ${z}"
|
@@ -14,7 +16,7 @@
|
|
14
16
|
# $check_var = $x
|
15
17
|
# # $fruit contains "apples, oranges, and bananas"
|
16
18
|
# # $check_var is undefined, as the value of $x is local to the lambda.
|
17
|
-
#
|
19
|
+
# ```
|
18
20
|
#
|
19
21
|
# @since 4.0.0
|
20
22
|
#
|
@@ -25,7 +25,9 @@ Puppet::Functions.create_function(:yaml_data) do
|
|
25
25
|
if data.is_a?(Hash)
|
26
26
|
Puppet::Pops::Lookup::HieraConfig.symkeys_to_string(data)
|
27
27
|
else
|
28
|
-
|
28
|
+
msg = _("%{path}: file does not contain a valid yaml hash" % { path: path })
|
29
|
+
raise Puppet::DataBinding::LookupError, msg if Puppet[:strict] == :error && data != false
|
30
|
+
Puppet.warning(msg)
|
29
31
|
{}
|
30
32
|
end
|
31
33
|
rescue YAML::SyntaxError => ex
|
@@ -70,7 +70,7 @@ class Puppet::Indirector::CertificateStatus::File < Puppet::Indirector::Code
|
|
70
70
|
klass.indirection.search(request.key, request.options)
|
71
71
|
end.flatten.collect do |result|
|
72
72
|
result.name
|
73
|
-
end.uniq.collect
|
73
|
+
end.uniq.collect(&Puppet::SSL::Host.method(:new))
|
74
74
|
end
|
75
75
|
|
76
76
|
def find(request)
|
@@ -38,8 +38,6 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
38
38
|
result
|
39
39
|
end
|
40
40
|
|
41
|
-
private
|
42
|
-
|
43
41
|
def self.setup_search_paths(request)
|
44
42
|
# Add any per-module fact directories to facter's search path
|
45
43
|
dirs = request.environment.modulepath.collect do |dir|
|
@@ -64,7 +62,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
64
62
|
true
|
65
63
|
end
|
66
64
|
|
67
|
-
Facter.search
|
65
|
+
Facter.search(*dirs)
|
68
66
|
end
|
69
67
|
|
70
68
|
def self.setup_external_search_paths(request)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'puppet/node/facts'
|
2
|
+
require 'puppet/indirector/rest'
|
3
|
+
|
4
|
+
class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
|
5
|
+
desc "Find and save facts about nodes over HTTP via REST."
|
6
|
+
|
7
|
+
def save(request)
|
8
|
+
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
9
|
+
|
10
|
+
response = do_request(request) do |req|
|
11
|
+
http_put(req, IndirectedRoutes.request_to_uri(req), req.instance.render, headers.merge({ "Content-Type" => req.instance.mime }))
|
12
|
+
end
|
13
|
+
|
14
|
+
if is_http_200?(response)
|
15
|
+
content_type, body = parse_response(response)
|
16
|
+
deserialize_save(content_type, body)
|
17
|
+
else
|
18
|
+
raise convert_to_http_error(response)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|