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
data/lib/puppet/pops/utils.rb
CHANGED
@@ -105,11 +105,11 @@ module Utils
|
|
105
105
|
|
106
106
|
# is the name absolute (i.e. starts with ::)
|
107
107
|
def self.is_absolute? name
|
108
|
-
name.start_with? "::"
|
108
|
+
name.start_with? "::".freeze
|
109
109
|
end
|
110
110
|
|
111
111
|
def self.name_to_segments name
|
112
|
-
name.split("::")
|
112
|
+
name.split("::".freeze)
|
113
113
|
end
|
114
114
|
|
115
115
|
def self.relativize_name name
|
@@ -292,8 +292,8 @@ class Checker4_0 < Evaluator::LiteralEvaluator
|
|
292
292
|
def check_CapabilityMapping(o)
|
293
293
|
ok =
|
294
294
|
case o.component
|
295
|
-
when Model::
|
296
|
-
name = o.component.
|
295
|
+
when Model::QualifiedReference
|
296
|
+
name = o.component.cased_value
|
297
297
|
acceptor.accept(Issues::ILLEGAL_CLASSREF, o.component, {:name=>name}) unless name =~ Patterns::CLASSREF_EXT
|
298
298
|
true
|
299
299
|
when Model::AccessExpression
|
@@ -908,6 +908,10 @@ class Checker4_0 < Evaluator::LiteralEvaluator
|
|
908
908
|
true
|
909
909
|
end
|
910
910
|
|
911
|
+
def idem_MatchExpression(o)
|
912
|
+
false # can have side effect of setting $n match variables
|
913
|
+
end
|
914
|
+
|
911
915
|
def idem_RelationshipExpression(o)
|
912
916
|
# Always side effect
|
913
917
|
false
|
@@ -92,7 +92,9 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe
|
|
92
92
|
cmd = [command(:modify)]
|
93
93
|
end
|
94
94
|
cmd << flag(param) << value
|
95
|
-
|
95
|
+
# TODO the group type only really manages gid, so there are currently no
|
96
|
+
# tests for this behavior
|
97
|
+
cmd += check_allow_dup if param == :gid
|
96
98
|
cmd << @resource[:name]
|
97
99
|
|
98
100
|
cmd
|
@@ -23,12 +23,9 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
23
23
|
# Cannot use munge of the group property to canonicalize @should
|
24
24
|
# since the default array_matching comparison is not commutative
|
25
25
|
|
26
|
+
current_sids = current.map(&:sid)
|
26
27
|
# dupes automatically weeded out when hashes built
|
27
|
-
|
28
|
-
specified_users = Puppet::Util::Windows::ADSI::Group.name_sid_hash(should)
|
29
|
-
|
30
|
-
current_sids = current_users.keys.to_a
|
31
|
-
specified_sids = specified_users.keys.to_a
|
28
|
+
specified_sids = Puppet::Util::Windows::ADSI::Group.name_sid_hash(should).keys.to_a
|
32
29
|
|
33
30
|
if @resource[:auth_membership]
|
34
31
|
current_sids.sort == specified_sids.sort
|
@@ -40,7 +37,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
40
37
|
def members_to_s(users)
|
41
38
|
return '' if users.nil? or !users.kind_of?(Array)
|
42
39
|
users = users.map do |user_name|
|
43
|
-
sid = Puppet::Util::Windows::SID.
|
40
|
+
sid = Puppet::Util::Windows::SID.name_to_principal(user_name)
|
44
41
|
if !sid
|
45
42
|
resource.debug("#{user_name} (unresolvable to SID)")
|
46
43
|
next user_name
|
@@ -58,7 +55,7 @@ Puppet::Type.type(:group).provide :windows_adsi do
|
|
58
55
|
end
|
59
56
|
|
60
57
|
def member_valid?(user_name)
|
61
|
-
! Puppet::Util::Windows::SID.
|
58
|
+
! Puppet::Util::Windows::SID.name_to_principal(user_name).nil?
|
62
59
|
end
|
63
60
|
|
64
61
|
def group
|
@@ -174,7 +174,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
174
174
|
begin
|
175
175
|
execute(self.addcmd, {:failonfail => true, :combine => true, :custom_environment => @custom_environment})
|
176
176
|
if feature?(:manages_password_age) && (cmd = passcmd)
|
177
|
-
execute(cmd, { :custom_environment => @custom_environment
|
177
|
+
execute(cmd, {:failonfail => true, :combine => true, :custom_environment => @custom_environment})
|
178
178
|
end
|
179
179
|
rescue Puppet::ExecutionFailure => detail
|
180
180
|
raise Puppet::Error, _("Could not create %{resource} %{name}: %{detail}") % { resource: @resource.class.name, name: @resource.name, detail: detail }, detail.backtrace
|
@@ -189,7 +189,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
189
189
|
end
|
190
190
|
|
191
191
|
begin
|
192
|
-
execute(self.deletecmd, { :custom_environment => @custom_environment
|
192
|
+
execute(self.deletecmd, {:failonfail => true, :combine => true, :custom_environment => @custom_environment})
|
193
193
|
rescue Puppet::ExecutionFailure => detail
|
194
194
|
raise Puppet::Error, _("Could not delete %{resource} %{name}: %{detail}") % { resource: @resource.class.name, name: @resource.name, detail: detail }, detail.backtrace
|
195
195
|
end
|
@@ -301,7 +301,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
301
301
|
cmd = modifycmd(param, munge(param, value))
|
302
302
|
raise Puppet::DevError, _("Nameservice command must be an array") unless cmd.is_a?(Array)
|
303
303
|
begin
|
304
|
-
execute(cmd, { :custom_environment => @custom_environment
|
304
|
+
execute(cmd, {:failonfail => true, :combine => true, :custom_environment => @custom_environment})
|
305
305
|
rescue Puppet::ExecutionFailure => detail
|
306
306
|
raise Puppet::Error, _("Could not set %{param} on %{resource}[%{name}]: %{detail}") % { param: param, resource: @resource.class.name, name: @resource.name, detail: detail }, detail.backtrace
|
307
307
|
end
|
@@ -209,9 +209,9 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
209
209
|
cmd << resource_name
|
210
210
|
|
211
211
|
if self.class.yaourt?
|
212
|
-
yaourt
|
212
|
+
yaourt(*cmd)
|
213
213
|
else
|
214
|
-
pacman
|
214
|
+
pacman(*cmd)
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
@@ -258,9 +258,9 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
258
258
|
cmd << "-Sy" << resource_name
|
259
259
|
|
260
260
|
if self.class.yaourt?
|
261
|
-
yaourt
|
261
|
+
yaourt(*cmd)
|
262
262
|
else
|
263
|
-
pacman
|
263
|
+
pacman(*cmd)
|
264
264
|
end
|
265
265
|
end
|
266
266
|
|
@@ -117,7 +117,7 @@ Puppet::Type.type(:package).provide :pip,
|
|
117
117
|
args << @resource[:name]
|
118
118
|
end
|
119
119
|
end
|
120
|
-
lazy_pip
|
120
|
+
lazy_pip(*args)
|
121
121
|
end
|
122
122
|
|
123
123
|
# Uninstall a package. Uninstall won't work reliably on Debian/Ubuntu
|
@@ -135,7 +135,7 @@ Puppet::Type.type(:package).provide :pip,
|
|
135
135
|
# try to teach it and if even that fails, raise the error.
|
136
136
|
private
|
137
137
|
def lazy_pip(*args)
|
138
|
-
pip
|
138
|
+
pip(*args)
|
139
139
|
rescue NoMethodError => e
|
140
140
|
# Ensure pip can upgrade pip, which usually puts pip into a new path /usr/local/bin/pip (compared to /usr/bin/pip)
|
141
141
|
# The path to pip needs to be looked up again in the subsequent request. Using the preferred approach as noted
|
@@ -145,7 +145,7 @@ Puppet::Type.type(:package).provide :pip,
|
|
145
145
|
# to search for them using the PATH variable.
|
146
146
|
if pathname = self.class.cmd.map { |c| which(c) }.find { |c| c != nil }
|
147
147
|
self.class.commands :pip => File.basename(pathname)
|
148
|
-
pip
|
148
|
+
pip(*args)
|
149
149
|
else
|
150
150
|
raise e, "Could not locate command #{self.class.cmd.join(' and ')}.", e.backtrace
|
151
151
|
end
|
@@ -90,9 +90,9 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
90
90
|
elsif http_proxy_host and not http_proxy_port
|
91
91
|
args << "--proxy" << http_proxy_host
|
92
92
|
end
|
93
|
-
|
94
|
-
|
95
|
-
|
93
|
+
begin
|
94
|
+
curl(*args)
|
95
|
+
Puppet.debug "Success: curl transferred [#{name}] (via: curl #{args.join(" ")})"
|
96
96
|
rescue Puppet::ExecutionFailure
|
97
97
|
Puppet.debug "curl #{args.join(" ")} did not transfer [#{name}]. Falling back to local file." # This used to fall back to open-uri. -NF
|
98
98
|
cached_source = source
|
@@ -152,9 +152,9 @@ Puppet::Type.type(:package).provide :pkgutil, :parent => :sun, :source => :sun d
|
|
152
152
|
# get passed to pkgutil via one or more -t options
|
153
153
|
if resource[:source]
|
154
154
|
sources = [resource[:source]].flatten
|
155
|
-
pkguti
|
155
|
+
pkguti(*[sources.map{|src| [ "-t", src ]}, *args].flatten)
|
156
156
|
else
|
157
|
-
pkguti
|
157
|
+
pkguti(*args.flatten)
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
@@ -40,7 +40,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
40
40
|
|
41
41
|
search_output = nil
|
42
42
|
Puppet::Util.withenv :EIX_LIMIT => limit, :LASTVERSION => version_format, :LASTSLOTVERSIONS => slot_versions_format, :INSTALLEDVERSIONS => installed_versions_format, :STABLEVERSIONS => installable_versions_format do
|
43
|
-
search_output = eix
|
43
|
+
search_output = eix(*(self.eix_search_arguments + ['--installed']))
|
44
44
|
end
|
45
45
|
|
46
46
|
packages = []
|
@@ -74,7 +74,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
74
74
|
cmd << '--update' if [:latest].include?(should)
|
75
75
|
cmd += install_options if @resource[:install_options]
|
76
76
|
cmd << name
|
77
|
-
emerge
|
77
|
+
emerge(*cmd)
|
78
78
|
end
|
79
79
|
|
80
80
|
def uninstall
|
@@ -89,10 +89,10 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
89
89
|
cmd << name
|
90
90
|
if [:purged].include?(should)
|
91
91
|
Puppet::Util.withenv :CONFIG_PROTECT => "-*" do
|
92
|
-
emerge
|
92
|
+
emerge(*cmd)
|
93
93
|
end
|
94
94
|
else
|
95
|
-
emerge
|
95
|
+
emerge(*cmd)
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
@@ -111,7 +111,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
111
111
|
@atom ||= begin
|
112
112
|
package_info = {}
|
113
113
|
# do the search
|
114
|
-
search_output = qatom_bin
|
114
|
+
search_output = qatom_bin(*([@resource[:name], '--format', output_format]))
|
115
115
|
# verify if the search found anything
|
116
116
|
match = result_format.match(search_output)
|
117
117
|
if match
|
@@ -146,7 +146,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
146
146
|
|
147
147
|
def self.get_sets
|
148
148
|
@sets ||= begin
|
149
|
-
@sets = emerge
|
149
|
+
@sets = emerge(*(['--list-sets']))
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
@@ -170,8 +170,8 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
170
170
|
end
|
171
171
|
|
172
172
|
if @resource[:name].match(/^@/)
|
173
|
-
|
174
|
-
|
173
|
+
if package_sets.include?(@resource[:name][1..-1].to_s)
|
174
|
+
return({:name => "#{@resource[:name]}", :ensure => '9999', :version_available => nil, :installed_versions => nil, :installable_versions => "9999,"})
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
@@ -180,7 +180,7 @@ Puppet::Type.type(:package).provide :portage, :parent => Puppet::Provider::Packa
|
|
180
180
|
|
181
181
|
search_output = nil
|
182
182
|
Puppet::Util.withenv :EIX_LIMIT => limit, :LASTVERSION => version_format, :LASTSLOTVERSIONS => slot_versions_format, :INSTALLEDVERSIONS => installed_versions_format, :STABLEVERSIONS => installable_versions_format do
|
183
|
-
search_output = eix
|
183
|
+
search_output = eix(*(self.class.eix_search_arguments + ['--exact',search_field,search_value]))
|
184
184
|
end
|
185
185
|
|
186
186
|
packages = []
|
@@ -102,7 +102,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm do
|
|
102
102
|
options << '--name' unless major < 1 || @resource.allow_virtual? || should
|
103
103
|
options << wanted
|
104
104
|
|
105
|
-
zypper
|
105
|
+
zypper(*options)
|
106
106
|
|
107
107
|
unless self.query
|
108
108
|
raise Puppet::ExecutionFailure.new(
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:package).provide :zypper, :parent => :rpm do
|
|
138
138
|
|
139
139
|
options << @resource[:name]
|
140
140
|
|
141
|
-
zypper
|
141
|
+
zypper(*options)
|
142
142
|
end
|
143
143
|
|
144
144
|
end
|
@@ -25,8 +25,9 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
25
25
|
|
26
26
|
def setupservice
|
27
27
|
if resource[:manifest]
|
28
|
-
|
29
|
-
|
28
|
+
begin
|
29
|
+
svcs("-l", @resource[:name])
|
30
|
+
rescue Puppet::ExecutionFailure
|
30
31
|
Puppet.notice "Importing #{@resource[:manifest]} for #{@resource[:name]}"
|
31
32
|
svccfg :import, resource[:manifest]
|
32
33
|
end
|
@@ -25,7 +25,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
25
25
|
defaultfor :osfamily => :coreos
|
26
26
|
defaultfor :operatingsystem => :amazon, :operatingsystemmajrelease => ["2"]
|
27
27
|
defaultfor :operatingsystem => :debian, :operatingsystemmajrelease => ["8", "stretch/sid", "9", "buster/sid"]
|
28
|
-
defaultfor :operatingsystem => :ubuntu, :operatingsystemmajrelease => ["15.04","15.10","16.04","16.10"]
|
28
|
+
defaultfor :operatingsystem => :ubuntu, :operatingsystemmajrelease => ["15.04","15.10","16.04","16.10","17.04","17.10"]
|
29
29
|
defaultfor :operatingsystem => :cumuluslinux, :operatingsystemmajrelease => ["3"]
|
30
30
|
|
31
31
|
def self.instances
|
@@ -188,13 +188,17 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
188
188
|
|
189
189
|
def modifycmd(param, value)
|
190
190
|
if @resource.forcelocal?
|
191
|
-
|
191
|
+
if param == :groups
|
192
|
+
cmd = [command(:modify)]
|
193
|
+
else
|
194
|
+
cmd = [command(property_manages_password_age?(param) ? :localpassword : :localmodify)]
|
195
|
+
end
|
192
196
|
@custom_environment = Puppet::Util::Libuser.getenv
|
193
197
|
else
|
194
198
|
cmd = [command(property_manages_password_age?(param) ? :password : :modify)]
|
195
199
|
end
|
196
200
|
cmd << flag(param) << value
|
197
|
-
cmd += check_allow_dup
|
201
|
+
cmd += check_allow_dup if param == :uid
|
198
202
|
cmd << @resource[:name]
|
199
203
|
|
200
204
|
cmd
|
@@ -52,7 +52,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
52
52
|
def groups_to_s(groups)
|
53
53
|
return '' if groups.nil? || !groups.kind_of?(Array)
|
54
54
|
groups = groups.map do |group_name|
|
55
|
-
sid = Puppet::Util::Windows::SID.
|
55
|
+
sid = Puppet::Util::Windows::SID.name_to_principal(group_name)
|
56
56
|
if sid.account =~ /\\/
|
57
57
|
account, _ = Puppet::Util::Windows::ADSI::Group.parse_name(sid.account)
|
58
58
|
else
|
@@ -164,15 +164,7 @@ Puppet::Type.type(:yumrepo).provide(:inifile) do
|
|
164
164
|
result = self.virtual_inifile[name]
|
165
165
|
# Create a new section if not found.
|
166
166
|
unless result
|
167
|
-
|
168
|
-
if dirs.empty?
|
169
|
-
# If no repo directories are present, default to using yum.conf.
|
170
|
-
path = '/etc/yum.conf'
|
171
|
-
else
|
172
|
-
# The ordering of reposdir is [defaults, custom], and we want to use
|
173
|
-
# the custom directory if present.
|
174
|
-
path = File.join(dirs.last, "#{name}.repo")
|
175
|
-
end
|
167
|
+
path = getRepoPath(name)
|
176
168
|
result = self.virtual_inifile.add_section(name, path)
|
177
169
|
end
|
178
170
|
result
|
@@ -196,6 +188,19 @@ Puppet::Type.type(:yumrepo).provide(:inifile) do
|
|
196
188
|
end
|
197
189
|
end
|
198
190
|
|
191
|
+
def self.getRepoPath(name)
|
192
|
+
dirs = reposdir()
|
193
|
+
if dirs.empty?
|
194
|
+
# If no repo directories are present, default to using yum.conf.
|
195
|
+
path = '/etc/yum.conf'
|
196
|
+
else
|
197
|
+
# The ordering of reposdir is [defaults, custom], and we want to use
|
198
|
+
# the custom directory if present.
|
199
|
+
path = File.join(dirs.last, "#{name}.repo")
|
200
|
+
end
|
201
|
+
path
|
202
|
+
end
|
203
|
+
|
199
204
|
# Create a new section for the given repository and set all the specified
|
200
205
|
# properties in the section.
|
201
206
|
#
|
@@ -204,6 +209,12 @@ Puppet::Type.type(:yumrepo).provide(:inifile) do
|
|
204
209
|
def create
|
205
210
|
@property_hash[:ensure] = :present
|
206
211
|
|
212
|
+
# Check to see if the file that would be created in the
|
213
|
+
# default location for the yumrepo already exists on disk.
|
214
|
+
# If it does, read it in to the virtual inifile
|
215
|
+
path = self.class.getRepoPath(name)
|
216
|
+
self.class.virtual_inifile.read(path) if Puppet::FileSystem.file?(path)
|
217
|
+
|
207
218
|
# We fetch a list of properties from the type, then iterate
|
208
219
|
# over them, avoiding ensure. We're relying on .should to
|
209
220
|
# check if the property has been set and should be modified,
|
@@ -34,6 +34,8 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
34
34
|
val = 'Unix/Linux: /var/log/puppetlabs/puppet -- Windows: C:\ProgramData\PuppetLabs\puppet\var\log -- Non-root user: ~/.puppetlabs/var/log'
|
35
35
|
elsif name.to_s == 'hiera_config'
|
36
36
|
val = '$confdir/hiera.yaml. However, if a file exists at $codedir/hiera.yaml, Puppet uses that instead.'
|
37
|
+
elsif name.to_s == 'certname'
|
38
|
+
val = "the Host's fully qualified domain name, as determined by facter"
|
37
39
|
end
|
38
40
|
|
39
41
|
# Leave out the section information; it was apparently confusing people.
|
@@ -47,25 +47,25 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
|
|
47
47
|
Resource types define features they can use, and providers can be tested to see
|
48
48
|
which features they provide.
|
49
49
|
|
50
|
-
|
50
|
+
}
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
types.sort { |a,b|
|
53
|
+
a.to_s <=> b.to_s
|
54
|
+
}.each { |name,type|
|
55
55
|
|
56
|
-
|
56
|
+
str << "
|
57
57
|
|
58
58
|
----------------
|
59
59
|
|
60
60
|
"
|
61
61
|
|
62
|
-
|
63
|
-
|
62
|
+
str << markdown_header(name, 3)
|
63
|
+
str << scrub(type.doc) + "\n\n"
|
64
64
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
65
|
+
# Handle the feature docs.
|
66
|
+
if featuredocs = type.featuredocs
|
67
|
+
str << markdown_header("Features", 4)
|
68
|
+
str << featuredocs
|
69
69
|
end
|
70
70
|
|
71
71
|
docs = {}
|