puppet 8.3.1-x64-mingw32 → 8.4.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +51 -43
- data/README.md +4 -4
- data/Rakefile +0 -27
- data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
- data/ext/windows/service/daemon.rb +4 -5
- data/lib/hiera/puppet_function.rb +3 -2
- data/lib/hiera/scope.rb +2 -2
- data/lib/hiera_puppet.rb +1 -3
- data/lib/puppet/agent/disabler.rb +2 -1
- data/lib/puppet/agent/locker.rb +1 -2
- data/lib/puppet/agent.rb +2 -1
- data/lib/puppet/application/agent.rb +292 -291
- data/lib/puppet/application/apply.rb +143 -139
- data/lib/puppet/application/catalog.rb +1 -0
- data/lib/puppet/application/config.rb +1 -0
- data/lib/puppet/application/describe.rb +53 -55
- data/lib/puppet/application/device.rb +150 -150
- data/lib/puppet/application/doc.rb +60 -59
- data/lib/puppet/application/epp.rb +1 -0
- data/lib/puppet/application/face_base.rb +8 -7
- data/lib/puppet/application/facts.rb +1 -0
- data/lib/puppet/application/filebucket.rb +186 -184
- data/lib/puppet/application/generate.rb +1 -0
- data/lib/puppet/application/help.rb +1 -0
- data/lib/puppet/application/indirection_base.rb +1 -0
- data/lib/puppet/application/lookup.rb +168 -171
- data/lib/puppet/application/module.rb +1 -0
- data/lib/puppet/application/node.rb +1 -0
- data/lib/puppet/application/parser.rb +1 -0
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/report.rb +1 -0
- data/lib/puppet/application/resource.rb +111 -108
- data/lib/puppet/application/script.rb +92 -93
- data/lib/puppet/application/ssl.rb +89 -88
- data/lib/puppet/application.rb +9 -8
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/coercion.rb +3 -2
- data/lib/puppet/compilable_resource_type.rb +1 -0
- data/lib/puppet/concurrent/lock.rb +1 -2
- data/lib/puppet/concurrent/synchronized.rb +1 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +1 -0
- data/lib/puppet/configurer/downloader.rb +1 -1
- data/lib/puppet/configurer/fact_handler.rb +2 -1
- data/lib/puppet/configurer/plugin_handler.rb +1 -0
- data/lib/puppet/configurer.rb +17 -13
- data/lib/puppet/confine/any.rb +1 -0
- data/lib/puppet/confine/boolean.rb +1 -0
- data/lib/puppet/confine/exists.rb +1 -0
- data/lib/puppet/confine/false.rb +1 -0
- data/lib/puppet/confine/feature.rb +1 -0
- data/lib/puppet/confine/true.rb +1 -0
- data/lib/puppet/confine/variable.rb +1 -0
- data/lib/puppet/confine.rb +2 -0
- data/lib/puppet/confine_collection.rb +3 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context/trusted_information.rb +1 -0
- data/lib/puppet/context.rb +1 -0
- data/lib/puppet/daemon.rb +4 -1
- data/lib/puppet/data_binding.rb +2 -1
- data/lib/puppet/datatypes/error.rb +2 -1
- data/lib/puppet/datatypes/impl/error.rb +1 -0
- data/lib/puppet/datatypes.rb +5 -1
- data/lib/puppet/defaults.rb +19 -18
- data/lib/puppet/environments.rb +3 -2
- data/lib/puppet/error.rb +9 -7
- data/lib/puppet/etc.rb +6 -3
- data/lib/puppet/external/dot.rb +12 -31
- data/lib/puppet/face/catalog/select.rb +2 -1
- data/lib/puppet/face/catalog.rb +3 -2
- data/lib/puppet/face/config.rb +18 -20
- data/lib/puppet/face/epp.rb +6 -6
- data/lib/puppet/face/facts.rb +4 -3
- data/lib/puppet/face/generate.rb +2 -0
- data/lib/puppet/face/help.rb +8 -7
- data/lib/puppet/face/module/changes.rb +2 -0
- data/lib/puppet/face/module/install.rb +2 -1
- data/lib/puppet/face/module/list.rb +7 -8
- data/lib/puppet/face/module/uninstall.rb +1 -0
- data/lib/puppet/face/module.rb +1 -0
- data/lib/puppet/face/node/clean.rb +2 -1
- data/lib/puppet/face/node.rb +2 -1
- data/lib/puppet/face/parser.rb +2 -2
- data/lib/puppet/face/plugin.rb +2 -1
- data/lib/puppet/face/report.rb +2 -1
- data/lib/puppet/face/resource.rb +1 -0
- data/lib/puppet/face.rb +1 -0
- data/lib/puppet/feature/base.rb +2 -1
- data/lib/puppet/feature/bolt.rb +1 -0
- data/lib/puppet/feature/cfpropertylist.rb +1 -0
- data/lib/puppet/feature/eventlog.rb +1 -0
- data/lib/puppet/feature/hiera_eyaml.rb +1 -0
- data/lib/puppet/feature/hocon.rb +1 -0
- data/lib/puppet/feature/libuser.rb +4 -3
- data/lib/puppet/feature/msgpack.rb +1 -0
- data/lib/puppet/feature/pe_license.rb +2 -1
- data/lib/puppet/feature/pson.rb +1 -0
- data/lib/puppet/feature/selinux.rb +1 -0
- data/lib/puppet/feature/ssh.rb +1 -0
- data/lib/puppet/feature/telnet.rb +1 -0
- data/lib/puppet/feature/zlib.rb +1 -0
- data/lib/puppet/ffi/posix/constants.rb +1 -0
- data/lib/puppet/ffi/posix/functions.rb +1 -1
- data/lib/puppet/ffi/posix.rb +1 -0
- data/lib/puppet/ffi/windows/api_types.rb +1 -0
- data/lib/puppet/ffi/windows/constants.rb +78 -77
- data/lib/puppet/ffi/windows/functions.rb +73 -73
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/ffi/windows.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +7 -1
- data/lib/puppet/file_bucket/file.rb +1 -0
- data/lib/puppet/file_bucket.rb +1 -0
- data/lib/puppet/file_serving/base.rb +13 -6
- data/lib/puppet/file_serving/configuration/parser.rb +3 -1
- data/lib/puppet/file_serving/configuration.rb +5 -3
- data/lib/puppet/file_serving/content.rb +1 -0
- data/lib/puppet/file_serving/fileset.rb +9 -6
- data/lib/puppet/file_serving/http_metadata.rb +1 -3
- data/lib/puppet/file_serving/metadata.rb +9 -10
- data/lib/puppet/file_serving/mount/file.rb +6 -3
- data/lib/puppet/file_serving/mount/locales.rb +2 -1
- data/lib/puppet/file_serving/mount/modules.rb +2 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
- data/lib/puppet/file_serving/mount/plugins.rb +2 -1
- data/lib/puppet/file_serving/mount/scripts.rb +2 -0
- data/lib/puppet/file_serving/mount/tasks.rb +2 -0
- data/lib/puppet/file_serving/mount.rb +2 -0
- data/lib/puppet/file_serving/terminus_helper.rb +1 -0
- data/lib/puppet/file_serving/terminus_selector.rb +1 -0
- data/lib/puppet/file_serving.rb +1 -0
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/jruby.rb +1 -0
- data/lib/puppet/file_system/memory_file.rb +2 -0
- data/lib/puppet/file_system/memory_impl.rb +3 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/posix.rb +5 -1
- data/lib/puppet/file_system/uniquefile.rb +11 -11
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/file_system.rb +3 -2
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +1 -3
- data/lib/puppet/forge/repository.rb +2 -0
- data/lib/puppet/forge.rb +3 -0
- data/lib/puppet/functions/abs.rb +2 -1
- data/lib/puppet/functions/alert.rb +1 -0
- data/lib/puppet/functions/all.rb +1 -0
- data/lib/puppet/functions/annotate.rb +1 -0
- data/lib/puppet/functions/any.rb +1 -0
- data/lib/puppet/functions/assert_type.rb +1 -0
- data/lib/puppet/functions/binary_file.rb +3 -1
- data/lib/puppet/functions/break.rb +2 -1
- data/lib/puppet/functions/call.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +1 -1
- data/lib/puppet/functions/ceiling.rb +2 -2
- data/lib/puppet/functions/chomp.rb +1 -1
- data/lib/puppet/functions/chop.rb +1 -1
- data/lib/puppet/functions/compare.rb +1 -0
- data/lib/puppet/functions/contain.rb +1 -0
- data/lib/puppet/functions/convert_to.rb +1 -0
- data/lib/puppet/functions/crit.rb +1 -0
- data/lib/puppet/functions/debug.rb +1 -0
- data/lib/puppet/functions/defined.rb +7 -4
- data/lib/puppet/functions/dig.rb +10 -8
- data/lib/puppet/functions/downcase.rb +1 -0
- data/lib/puppet/functions/each.rb +1 -0
- data/lib/puppet/functions/emerg.rb +1 -0
- data/lib/puppet/functions/empty.rb +1 -0
- data/lib/puppet/functions/epp.rb +1 -1
- data/lib/puppet/functions/err.rb +1 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +6 -4
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/find_file.rb +1 -0
- data/lib/puppet/functions/find_template.rb +1 -0
- data/lib/puppet/functions/flatten.rb +1 -0
- data/lib/puppet/functions/floor.rb +2 -2
- data/lib/puppet/functions/get.rb +2 -1
- data/lib/puppet/functions/getvar.rb +2 -1
- data/lib/puppet/functions/hiera.rb +1 -0
- data/lib/puppet/functions/hiera_array.rb +1 -0
- data/lib/puppet/functions/hiera_hash.rb +1 -0
- data/lib/puppet/functions/hiera_include.rb +2 -0
- data/lib/puppet/functions/hocon_data.rb +1 -0
- data/lib/puppet/functions/import.rb +1 -0
- data/lib/puppet/functions/include.rb +1 -0
- data/lib/puppet/functions/index.rb +2 -2
- data/lib/puppet/functions/info.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -1
- data/lib/puppet/functions/join.rb +2 -1
- data/lib/puppet/functions/json_data.rb +1 -0
- data/lib/puppet/functions/keys.rb +1 -0
- data/lib/puppet/functions/length.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -0
- data/lib/puppet/functions/lookup.rb +8 -9
- data/lib/puppet/functions/lstrip.rb +1 -1
- data/lib/puppet/functions/map.rb +1 -0
- data/lib/puppet/functions/match.rb +3 -1
- data/lib/puppet/functions/max.rb +4 -4
- data/lib/puppet/functions/min.rb +4 -4
- data/lib/puppet/functions/module_directory.rb +1 -0
- data/lib/puppet/functions/new.rb +2 -1
- data/lib/puppet/functions/next.rb +1 -0
- data/lib/puppet/functions/notice.rb +1 -0
- data/lib/puppet/functions/reduce.rb +1 -1
- data/lib/puppet/functions/regsubst.rb +1 -0
- data/lib/puppet/functions/require.rb +2 -0
- data/lib/puppet/functions/return.rb +1 -0
- data/lib/puppet/functions/reverse_each.rb +1 -0
- data/lib/puppet/functions/round.rb +1 -0
- data/lib/puppet/functions/rstrip.rb +1 -1
- data/lib/puppet/functions/scanf.rb +1 -0
- data/lib/puppet/functions/size.rb +1 -2
- data/lib/puppet/functions/slice.rb +2 -0
- data/lib/puppet/functions/sort.rb +1 -0
- data/lib/puppet/functions/split.rb +1 -0
- data/lib/puppet/functions/step.rb +1 -0
- data/lib/puppet/functions/strftime.rb +3 -2
- data/lib/puppet/functions/strip.rb +1 -1
- data/lib/puppet/functions/then.rb +2 -0
- data/lib/puppet/functions/tree_each.rb +1 -1
- data/lib/puppet/functions/type.rb +1 -0
- data/lib/puppet/functions/unique.rb +2 -1
- data/lib/puppet/functions/unwrap.rb +1 -0
- data/lib/puppet/functions/upcase.rb +1 -0
- data/lib/puppet/functions/values.rb +1 -0
- data/lib/puppet/functions/versioncmp.rb +2 -2
- data/lib/puppet/functions/warning.rb +1 -0
- data/lib/puppet/functions/with.rb +1 -0
- data/lib/puppet/functions/yaml_data.rb +1 -0
- data/lib/puppet/functions.rb +9 -9
- data/lib/puppet/generate/models/type/property.rb +2 -0
- data/lib/puppet/generate/models/type/type.rb +2 -0
- data/lib/puppet/generate/type.rb +6 -1
- data/lib/puppet/gettext/config.rb +6 -0
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/gettext/stubs.rb +1 -0
- data/lib/puppet/graph/key.rb +1 -0
- data/lib/puppet/graph/prioritizer.rb +1 -0
- data/lib/puppet/graph/rb_tree_map.rb +12 -2
- data/lib/puppet/graph/relationship_graph.rb +3 -2
- data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
- data/lib/puppet/graph/simple_graph.rb +38 -31
- data/lib/puppet/graph.rb +1 -0
- data/lib/puppet/http/client.rb +4 -1
- data/lib/puppet/http/dns.rb +5 -5
- data/lib/puppet/http/errors.rb +1 -0
- data/lib/puppet/http/external_client.rb +2 -2
- data/lib/puppet/http/factory.rb +1 -0
- data/lib/puppet/http/pool.rb +2 -1
- data/lib/puppet/http/pool_entry.rb +1 -0
- data/lib/puppet/http/proxy.rb +3 -2
- data/lib/puppet/http/redirector.rb +1 -0
- data/lib/puppet/http/resolver/server_list.rb +1 -1
- data/lib/puppet/http/resolver/settings.rb +1 -1
- data/lib/puppet/http/resolver/srv.rb +1 -1
- data/lib/puppet/http/resolver.rb +1 -0
- data/lib/puppet/http/response.rb +1 -0
- data/lib/puppet/http/response_converter.rb +1 -0
- data/lib/puppet/http/response_net_http.rb +1 -1
- data/lib/puppet/http/retry_after_handler.rb +1 -1
- data/lib/puppet/http/service/ca.rb +1 -0
- data/lib/puppet/http/service/compiler.rb +9 -3
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/http/service/puppetserver.rb +1 -1
- data/lib/puppet/http/service/report.rb +1 -1
- data/lib/puppet/http/service.rb +1 -0
- data/lib/puppet/http/session.rb +2 -1
- data/lib/puppet/http/site.rb +1 -0
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -40
- data/lib/puppet/indirector/catalog/json.rb +1 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
- data/lib/puppet/indirector/catalog/rest.rb +9 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -2
- data/lib/puppet/indirector/catalog/yaml.rb +1 -0
- data/lib/puppet/indirector/code.rb +1 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
- data/lib/puppet/indirector/data_binding/none.rb +1 -0
- data/lib/puppet/indirector/direct_file_server.rb +3 -1
- data/lib/puppet/indirector/envelope.rb +1 -0
- data/lib/puppet/indirector/errors.rb +1 -0
- data/lib/puppet/indirector/exec.rb +1 -0
- data/lib/puppet/indirector/face.rb +7 -6
- data/lib/puppet/indirector/fact_search.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +2 -0
- data/lib/puppet/indirector/facts/json.rb +1 -0
- data/lib/puppet/indirector/facts/memory.rb +1 -0
- data/lib/puppet/indirector/facts/network_device.rb +1 -0
- data/lib/puppet/indirector/facts/rest.rb +1 -0
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/facts/yaml.rb +1 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +10 -5
- data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
- data/lib/puppet/indirector/file_content/file.rb +1 -0
- data/lib/puppet/indirector/file_content/file_server.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -0
- data/lib/puppet/indirector/file_content/selector.rb +1 -0
- data/lib/puppet/indirector/file_content.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
- data/lib/puppet/indirector/file_metadata.rb +1 -0
- data/lib/puppet/indirector/file_server.rb +2 -0
- data/lib/puppet/indirector/generic_http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +5 -4
- data/lib/puppet/indirector/indirection.rb +11 -1
- data/lib/puppet/indirector/json.rb +3 -1
- data/lib/puppet/indirector/memory.rb +2 -0
- data/lib/puppet/indirector/msgpack.rb +5 -2
- data/lib/puppet/indirector/node/exec.rb +3 -2
- data/lib/puppet/indirector/node/json.rb +1 -1
- data/lib/puppet/indirector/node/memory.rb +1 -0
- data/lib/puppet/indirector/node/msgpack.rb +1 -0
- data/lib/puppet/indirector/node/plain.rb +1 -0
- data/lib/puppet/indirector/node/rest.rb +1 -0
- data/lib/puppet/indirector/node/store_configs.rb +1 -2
- data/lib/puppet/indirector/node/yaml.rb +1 -0
- data/lib/puppet/indirector/none.rb +1 -0
- data/lib/puppet/indirector/plain.rb +1 -0
- data/lib/puppet/indirector/report/json.rb +1 -0
- data/lib/puppet/indirector/report/msgpack.rb +1 -0
- data/lib/puppet/indirector/report/processor.rb +2 -0
- data/lib/puppet/indirector/report/rest.rb +1 -0
- data/lib/puppet/indirector/report/yaml.rb +1 -0
- data/lib/puppet/indirector/request.rb +7 -5
- data/lib/puppet/indirector/resource/ral.rb +1 -0
- data/lib/puppet/indirector/resource/store_configs.rb +1 -0
- data/lib/puppet/indirector/resource/validator.rb +1 -0
- data/lib/puppet/indirector/rest.rb +1 -0
- data/lib/puppet/indirector/store_configs.rb +1 -0
- data/lib/puppet/indirector/terminus.rb +4 -1
- data/lib/puppet/indirector/yaml.rb +1 -0
- data/lib/puppet/indirector.rb +2 -0
- data/lib/puppet/info_service/class_information_service.rb +5 -3
- data/lib/puppet/info_service/plan_information_service.rb +1 -0
- data/lib/puppet/info_service/task_information_service.rb +1 -0
- data/lib/puppet/interface/action.rb +32 -27
- data/lib/puppet/interface/action_builder.rb +14 -14
- data/lib/puppet/interface/action_manager.rb +2 -0
- data/lib/puppet/interface/documentation.rb +21 -15
- data/lib/puppet/interface/face_collection.rb +5 -2
- data/lib/puppet/interface/option.rb +15 -4
- data/lib/puppet/interface/option_builder.rb +13 -9
- data/lib/puppet/interface/option_manager.rb +3 -2
- data/lib/puppet/interface.rb +3 -3
- data/lib/puppet/loaders.rb +1 -1
- data/lib/puppet/metatype/manager.rb +9 -8
- data/lib/puppet/module/plan.rb +10 -4
- data/lib/puppet/module/task.rb +8 -2
- data/lib/puppet/module.rb +13 -3
- data/lib/puppet/module_tool/applications/application.rb +6 -4
- data/lib/puppet/module_tool/applications/checksummer.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +32 -45
- data/lib/puppet/module_tool/applications/uninstaller.rb +22 -21
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +28 -26
- data/lib/puppet/module_tool/applications.rb +1 -0
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +1 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -0
- data/lib/puppet/module_tool/errors/installer.rb +4 -4
- data/lib/puppet/module_tool/errors/shared.rb +12 -12
- data/lib/puppet/module_tool/errors/uninstaller.rb +2 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +3 -3
- data/lib/puppet/module_tool/errors.rb +1 -0
- data/lib/puppet/module_tool/install_directory.rb +6 -4
- data/lib/puppet/module_tool/installed_modules.rb +2 -0
- data/lib/puppet/module_tool/local_tarball.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +21 -20
- data/lib/puppet/module_tool/shared_behaviors.rb +23 -21
- data/lib/puppet/module_tool/tar/gnu.rb +1 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -0
- data/lib/puppet/module_tool/tar.rb +2 -1
- data/lib/puppet/module_tool.rb +1 -1
- data/lib/puppet/network/authconfig.rb +1 -0
- data/lib/puppet/network/authorization.rb +1 -0
- data/lib/puppet/network/client_request.rb +1 -0
- data/lib/puppet/network/format.rb +5 -0
- data/lib/puppet/network/format_handler.rb +2 -1
- data/lib/puppet/network/format_support.rb +6 -5
- data/lib/puppet/network/formats.rb +15 -11
- data/lib/puppet/network/http/api/indirected_routes.rb +8 -8
- data/lib/puppet/network/http/api/indirection_type.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
- data/lib/puppet/network/http/api/master/v3.rb +1 -0
- data/lib/puppet/network/http/api/master.rb +1 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +20 -14
- data/lib/puppet/network/http/api/server/v3.rb +13 -13
- data/lib/puppet/network/http/api/server.rb +1 -0
- data/lib/puppet/network/http/api.rb +11 -10
- data/lib/puppet/network/http/connection.rb +1 -0
- data/lib/puppet/network/http/error.rb +2 -1
- data/lib/puppet/network/http/handler.rb +3 -2
- data/lib/puppet/network/http/issues.rb +1 -0
- data/lib/puppet/network/http/memory_response.rb +1 -0
- data/lib/puppet/network/http/request.rb +13 -6
- data/lib/puppet/network/http/response.rb +1 -0
- data/lib/puppet/network/http/route.rb +4 -2
- data/lib/puppet/network/http.rb +1 -0
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/network/uri.rb +1 -0
- data/lib/puppet/network.rb +1 -0
- data/lib/puppet/node/environment.rb +12 -9
- data/lib/puppet/node/facts.rb +2 -1
- data/lib/puppet/node.rb +3 -2
- data/lib/puppet/pal/catalog_compiler.rb +1 -3
- data/lib/puppet/pal/compiler.rb +6 -2
- data/lib/puppet/pal/function_signature.rb +2 -1
- data/lib/puppet/pal/json_catalog_encoder.rb +5 -1
- data/lib/puppet/pal/pal_api.rb +1 -0
- data/lib/puppet/pal/pal_impl.rb +20 -19
- data/lib/puppet/pal/plan_signature.rb +2 -1
- data/lib/puppet/pal/script_compiler.rb +3 -2
- data/lib/puppet/pal/task_signature.rb +14 -9
- data/lib/puppet/parameter/boolean.rb +1 -0
- data/lib/puppet/parameter/package_options.rb +1 -0
- data/lib/puppet/parameter/path.rb +3 -0
- data/lib/puppet/parameter/value.rb +1 -0
- data/lib/puppet/parameter/value_collection.rb +5 -5
- data/lib/puppet/parameter.rb +4 -3
- data/lib/puppet/parser/abstract_compiler.rb +0 -2
- data/lib/puppet/parser/ast/block_expression.rb +1 -0
- data/lib/puppet/parser/ast/branch.rb +1 -0
- data/lib/puppet/parser/ast/hostclass.rb +1 -0
- data/lib/puppet/parser/ast/leaf.rb +2 -0
- data/lib/puppet/parser/ast/node.rb +1 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +6 -6
- data/lib/puppet/parser/ast/resource.rb +2 -3
- data/lib/puppet/parser/ast/resource_instance.rb +2 -0
- data/lib/puppet/parser/ast/resourceparam.rb +6 -5
- data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
- data/lib/puppet/parser/ast.rb +4 -3
- data/lib/puppet/parser/catalog_compiler.rb +1 -2
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +3 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
- data/lib/puppet/parser/compiler.rb +10 -8
- data/lib/puppet/parser/e4_parser_adapter.rb +15 -15
- data/lib/puppet/parser/files.rb +1 -1
- data/lib/puppet/parser/functions/assert_type.rb +55 -54
- data/lib/puppet/parser/functions/binary_file.rb +19 -18
- data/lib/puppet/parser/functions/break.rb +35 -34
- data/lib/puppet/parser/functions/contain.rb +1 -0
- data/lib/puppet/parser/functions/create_resources.rb +8 -6
- data/lib/puppet/parser/functions/defined.rb +102 -101
- data/lib/puppet/parser/functions/dig.rb +33 -32
- data/lib/puppet/parser/functions/digest.rb +1 -0
- data/lib/puppet/parser/functions/each.rb +99 -98
- data/lib/puppet/parser/functions/epp.rb +2 -2
- data/lib/puppet/parser/functions/fail.rb +9 -8
- data/lib/puppet/parser/functions/file.rb +14 -13
- data/lib/puppet/parser/functions/filter.rb +74 -73
- data/lib/puppet/parser/functions/find_file.rb +22 -21
- data/lib/puppet/parser/functions/fqdn_rand.rb +23 -22
- data/lib/puppet/parser/functions/generate.rb +20 -20
- data/lib/puppet/parser/functions/hiera.rb +94 -93
- data/lib/puppet/parser/functions/hiera_array.rb +82 -81
- data/lib/puppet/parser/functions/hiera_hash.rb +92 -91
- data/lib/puppet/parser/functions/hiera_include.rb +92 -91
- data/lib/puppet/parser/functions/include.rb +2 -1
- data/lib/puppet/parser/functions/inline_epp.rb +2 -2
- data/lib/puppet/parser/functions/inline_template.rb +11 -11
- data/lib/puppet/parser/functions/lest.rb +44 -43
- data/lib/puppet/parser/functions/lookup.rb +131 -130
- data/lib/puppet/parser/functions/map.rb +71 -70
- data/lib/puppet/parser/functions/match.rb +39 -38
- data/lib/puppet/parser/functions/md5.rb +2 -1
- data/lib/puppet/parser/functions/new.rb +985 -984
- data/lib/puppet/parser/functions/next.rb +34 -33
- data/lib/puppet/parser/functions/realize.rb +9 -9
- data/lib/puppet/parser/functions/reduce.rb +132 -131
- data/lib/puppet/parser/functions/regsubst.rb +6 -5
- data/lib/puppet/parser/functions/require.rb +5 -4
- data/lib/puppet/parser/functions/return.rb +88 -87
- data/lib/puppet/parser/functions/reverse_each.rb +78 -77
- data/lib/puppet/parser/functions/scanf.rb +28 -27
- data/lib/puppet/parser/functions/sha1.rb +2 -1
- data/lib/puppet/parser/functions/sha256.rb +1 -0
- data/lib/puppet/parser/functions/shellquote.rb +1 -0
- data/lib/puppet/parser/functions/slice.rb +34 -33
- data/lib/puppet/parser/functions/split.rb +5 -6
- data/lib/puppet/parser/functions/sprintf.rb +3 -3
- data/lib/puppet/parser/functions/step.rb +79 -78
- data/lib/puppet/parser/functions/strftime.rb +180 -179
- data/lib/puppet/parser/functions/tag.rb +7 -6
- data/lib/puppet/parser/functions/tagged.rb +13 -12
- data/lib/puppet/parser/functions/template.rb +24 -23
- data/lib/puppet/parser/functions/then.rb +68 -67
- data/lib/puppet/parser/functions/type.rb +48 -47
- data/lib/puppet/parser/functions/versioncmp.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +23 -22
- data/lib/puppet/parser/functions.rb +2 -0
- data/lib/puppet/parser/parser_factory.rb +1 -0
- data/lib/puppet/parser/relationship.rb +3 -0
- data/lib/puppet/parser/resource/param.rb +1 -0
- data/lib/puppet/parser/resource.rb +10 -4
- data/lib/puppet/parser/scope.rb +40 -32
- data/lib/puppet/parser/script_compiler.rb +5 -6
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/parser/type_loader.rb +19 -17
- data/lib/puppet/parser.rb +1 -0
- data/lib/puppet/plugins/configuration.rb +1 -0
- data/lib/puppet/plugins/syntax_checkers.rb +1 -1
- data/lib/puppet/plugins.rb +1 -0
- data/lib/puppet/pops/adaptable.rb +3 -1
- data/lib/puppet/pops/adapters.rb +3 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +79 -65
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -1
- data/lib/puppet/pops/evaluator/closure.rb +273 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -9
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +15 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +2 -2
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +10 -10
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +140 -138
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/puppet_proc.rb +2 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +5 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +21 -19
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +31 -33
- data/lib/puppet/pops/evaluator/runtime3_support.rb +16 -19
- data/lib/puppet/pops/functions/dispatch.rb +1 -0
- data/lib/puppet/pops/functions/dispatcher.rb +1 -1
- data/lib/puppet/pops/functions/function.rb +1 -2
- data/lib/puppet/pops/issue_reporter.rb +19 -17
- data/lib/puppet/pops/issues.rb +8 -4
- data/lib/puppet/pops/label_provider.rb +1 -0
- data/lib/puppet/pops/loader/base_loader.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -0
- data/lib/puppet/pops/loader/gem_support.rb +3 -1
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/loader.rb +1 -2
- data/lib/puppet/pops/loader/loader_paths.rb +20 -19
- data/lib/puppet/pops/loader/module_loaders.rb +28 -28
- data/lib/puppet/pops/loader/predefined_loader.rb +1 -2
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +2 -2
- data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -2
- data/lib/puppet/pops/loader/static_loader.rb +22 -21
- data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +6 -4
- data/lib/puppet/pops/loader/typed_name.rb +1 -0
- data/lib/puppet/pops/loader/uri_helper.rb +1 -0
- data/lib/puppet/pops/loaders.rb +21 -18
- data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/context.rb +24 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +2 -2
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/explainer.rb +34 -33
- data/lib/puppet/pops/lookup/function_provider.rb +7 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +136 -100
- data/lib/puppet/pops/lookup/interpolation.rb +5 -1
- data/lib/puppet/pops/lookup/invocation.rb +3 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +3 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +2 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +22 -20
- data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +3 -1
- data/lib/puppet/pops/lookup/sub_lookup.rb +5 -2
- data/lib/puppet/pops/lookup.rb +13 -8
- data/lib/puppet/pops/merge_strategy.rb +5 -2
- data/lib/puppet/pops/migration/migration_checker.rb +3 -1
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +4 -3
- data/lib/puppet/pops/model/factory.rb +17 -13
- data/lib/puppet/pops/model/model_label_provider.rb +1 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +10 -9
- data/lib/puppet/pops/model/pn_transformer.rb +4 -6
- data/lib/puppet/pops/model/tree_dumper.rb +2 -0
- data/lib/puppet/pops/parser/code_merger.rb +0 -1
- data/lib/puppet/pops/parser/epp_parser.rb +1 -1
- data/lib/puppet/pops/parser/epp_support.rb +2 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +5 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +6 -7
- data/lib/puppet/pops/parser/interpolation_support.rb +2 -3
- data/lib/puppet/pops/parser/lexer2.rb +32 -29
- data/lib/puppet/pops/parser/lexer_support.rb +38 -41
- data/lib/puppet/pops/parser/locatable.rb +1 -2
- data/lib/puppet/pops/parser/locator.rb +31 -28
- data/lib/puppet/pops/parser/parser_support.rb +2 -0
- data/lib/puppet/pops/parser/pn_parser.rb +1 -1
- data/lib/puppet/pops/parser/slurp_support.rb +33 -32
- data/lib/puppet/pops/patterns.rb +2 -3
- data/lib/puppet/pops/pcore.rb +2 -2
- data/lib/puppet/pops/pn.rb +3 -0
- data/lib/puppet/pops/puppet_stack.rb +1 -0
- data/lib/puppet/pops/resource/param.rb +11 -10
- data/lib/puppet/pops/resource/resource_type_impl.rb +37 -36
- data/lib/puppet/pops/semantic_error.rb +1 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +3 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +5 -4
- data/lib/puppet/pops/serialization/deserializer.rb +2 -0
- data/lib/puppet/pops/serialization/extension.rb +7 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +3 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
- data/lib/puppet/pops/serialization/json.rb +6 -3
- data/lib/puppet/pops/serialization/json_path.rb +1 -0
- data/lib/puppet/pops/serialization/object.rb +4 -1
- data/lib/puppet/pops/serialization/serializer.rb +6 -2
- data/lib/puppet/pops/serialization/time_factory.rb +1 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +4 -2
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +2 -2
- data/lib/puppet/pops/serialization.rb +1 -0
- data/lib/puppet/pops/time/timespan.rb +12 -2
- data/lib/puppet/pops/time/timestamp.rb +4 -0
- data/lib/puppet/pops/types/annotatable.rb +1 -1
- data/lib/puppet/pops/types/annotation.rb +1 -0
- data/lib/puppet/pops/types/class_loader.rb +8 -6
- data/lib/puppet/pops/types/implementation_registry.rb +1 -0
- data/lib/puppet/pops/types/iterable.rb +18 -9
- data/lib/puppet/pops/types/p_binary_type.rb +2 -3
- data/lib/puppet/pops/types/p_init_type.rb +12 -9
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +65 -42
- data/lib/puppet/pops/types/p_object_type_extension.rb +10 -7
- data/lib/puppet/pops/types/p_runtime_type.rb +11 -9
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +5 -5
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -4
- data/lib/puppet/pops/types/p_timespan_type.rb +4 -2
- data/lib/puppet/pops/types/p_timestamp_type.rb +3 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +36 -28
- data/lib/puppet/pops/types/p_uri_type.rb +25 -18
- data/lib/puppet/pops/types/puppet_object.rb +1 -1
- data/lib/puppet/pops/types/recursion_guard.rb +7 -2
- data/lib/puppet/pops/types/ruby_generator.rb +7 -4
- data/lib/puppet/pops/types/ruby_method.rb +6 -5
- data/lib/puppet/pops/types/string_converter.rb +65 -57
- data/lib/puppet/pops/types/tree_iterators.rb +6 -7
- data/lib/puppet/pops/types/type_acceptor.rb +1 -0
- data/lib/puppet/pops/types/type_asserter.rb +1 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +0 -1
- data/lib/puppet/pops/types/type_calculator.rb +10 -4
- data/lib/puppet/pops/types/type_conversion_error.rb +1 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -4
- data/lib/puppet/pops/types/type_formatter.rb +12 -11
- data/lib/puppet/pops/types/type_mismatch_describer.rb +13 -8
- data/lib/puppet/pops/types/type_parser.rb +111 -107
- data/lib/puppet/pops/types/type_set_reference.rb +2 -0
- data/lib/puppet/pops/types/type_with_members.rb +1 -1
- data/lib/puppet/pops/types/types.rb +177 -152
- data/lib/puppet/pops/utils.rb +1 -0
- data/lib/puppet/pops/validation/checker4_0.rb +17 -11
- data/lib/puppet/pops/validation/tasks_checker.rb +2 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/pops/validation.rb +8 -6
- data/lib/puppet/pops/visitable.rb +1 -0
- data/lib/puppet/pops/visitor.rb +14 -1
- data/lib/puppet/pops.rb +2 -0
- data/lib/puppet/property/boolean.rb +1 -0
- data/lib/puppet/property/ensure.rb +4 -1
- data/lib/puppet/property/keyvalue.rb +5 -4
- data/lib/puppet/property/list.rb +5 -5
- data/lib/puppet/property/ordered_list.rb +4 -4
- data/lib/puppet/property.rb +13 -11
- data/lib/puppet/provider/aix_object.rb +5 -0
- data/lib/puppet/provider/command.rb +1 -0
- data/lib/puppet/provider/confine.rb +1 -0
- data/lib/puppet/provider/exec/posix.rb +2 -0
- data/lib/puppet/provider/exec/shell.rb +1 -0
- data/lib/puppet/provider/exec/windows.rb +2 -1
- data/lib/puppet/provider/exec.rb +1 -0
- data/lib/puppet/provider/file/posix.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +10 -6
- data/lib/puppet/provider/group/aix.rb +1 -0
- data/lib/puppet/provider/group/directoryservice.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +9 -4
- data/lib/puppet/provider/group/ldap.rb +2 -0
- data/lib/puppet/provider/group/pw.rb +1 -0
- data/lib/puppet/provider/group/windows_adsi.rb +2 -0
- data/lib/puppet/provider/ldap.rb +2 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +28 -19
- data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
- data/lib/puppet/provider/nameservice/pw.rb +6 -5
- data/lib/puppet/provider/nameservice.rb +8 -4
- data/lib/puppet/provider/network_device.rb +1 -2
- data/lib/puppet/provider/package/aix.rb +5 -4
- data/lib/puppet/provider/package/appdmg.rb +20 -19
- data/lib/puppet/provider/package/apple.rb +3 -2
- data/lib/puppet/provider/package/apt.rb +4 -4
- data/lib/puppet/provider/package/aptitude.rb +1 -0
- data/lib/puppet/provider/package/aptrpm.rb +2 -1
- data/lib/puppet/provider/package/blastwave.rb +6 -6
- data/lib/puppet/provider/package/dnf.rb +2 -0
- data/lib/puppet/provider/package/dnfmodule.rb +8 -7
- data/lib/puppet/provider/package/dpkg.rb +4 -4
- data/lib/puppet/provider/package/fink.rb +2 -1
- data/lib/puppet/provider/package/freebsd.rb +3 -2
- data/lib/puppet/provider/package/gem.rb +9 -5
- data/lib/puppet/provider/package/hpux.rb +4 -3
- data/lib/puppet/provider/package/macports.rb +2 -1
- data/lib/puppet/provider/package/nim.rb +13 -15
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/opkg.rb +2 -0
- data/lib/puppet/provider/package/pacman.rb +12 -12
- data/lib/puppet/provider/package/pip.rb +3 -1
- data/lib/puppet/provider/package/pip2.rb +2 -2
- data/lib/puppet/provider/package/pip3.rb +2 -2
- data/lib/puppet/provider/package/pkg.rb +17 -13
- data/lib/puppet/provider/package/pkgdmg.rb +7 -2
- data/lib/puppet/provider/package/pkgin.rb +5 -5
- data/lib/puppet/provider/package/pkgng.rb +11 -7
- data/lib/puppet/provider/package/pkgutil.rb +7 -6
- data/lib/puppet/provider/package/portage.rb +11 -6
- data/lib/puppet/provider/package/ports.rb +6 -5
- data/lib/puppet/provider/package/portupgrade.rb +6 -12
- data/lib/puppet/provider/package/puppet_gem.rb +1 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
- data/lib/puppet/provider/package/rpm.rb +10 -6
- data/lib/puppet/provider/package/rug.rb +2 -1
- data/lib/puppet/provider/package/sun.rb +20 -17
- data/lib/puppet/provider/package/sunfreeware.rb +1 -0
- data/lib/puppet/provider/package/tdnf.rb +1 -0
- data/lib/puppet/provider/package/up2date.rb +2 -1
- data/lib/puppet/provider/package/urpmi.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
- data/lib/puppet/provider/package/windows/package.rb +5 -3
- data/lib/puppet/provider/package/windows.rb +4 -2
- data/lib/puppet/provider/package/yum.rb +16 -13
- data/lib/puppet/provider/package/zypper.rb +15 -14
- data/lib/puppet/provider/package.rb +7 -6
- data/lib/puppet/provider/package_targetable.rb +1 -0
- data/lib/puppet/provider/parsedfile.rb +7 -2
- data/lib/puppet/provider/service/base.rb +2 -1
- data/lib/puppet/provider/service/bsd.rb +1 -0
- data/lib/puppet/provider/service/daemontools.rb +9 -7
- data/lib/puppet/provider/service/debian.rb +4 -3
- data/lib/puppet/provider/service/freebsd.rb +5 -6
- data/lib/puppet/provider/service/gentoo.rb +5 -4
- data/lib/puppet/provider/service/init.rb +10 -11
- data/lib/puppet/provider/service/launchd.rb +10 -4
- data/lib/puppet/provider/service/openbsd.rb +4 -4
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +1 -0
- data/lib/puppet/provider/service/redhat.rb +3 -2
- data/lib/puppet/provider/service/runit.rb +8 -7
- data/lib/puppet/provider/service/service.rb +1 -0
- data/lib/puppet/provider/service/smf.rb +5 -2
- data/lib/puppet/provider/service/src.rb +16 -16
- data/lib/puppet/provider/service/systemd.rb +8 -4
- data/lib/puppet/provider/service/upstart.rb +8 -7
- data/lib/puppet/provider/service/windows.rb +22 -26
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +52 -44
- data/lib/puppet/provider/user/hpux.rb +15 -14
- data/lib/puppet/provider/user/ldap.rb +8 -6
- data/lib/puppet/provider/user/openbsd.rb +21 -20
- data/lib/puppet/provider/user/pw.rb +3 -2
- data/lib/puppet/provider/user/user_role_add.rb +19 -14
- data/lib/puppet/provider/user/useradd.rb +51 -41
- data/lib/puppet/provider/user/windows_adsi.rb +4 -1
- data/lib/puppet/provider.rb +9 -9
- data/lib/puppet/reference/configuration.rb +43 -42
- data/lib/puppet/reference/function.rb +1 -0
- data/lib/puppet/reference/indirection.rb +42 -41
- data/lib/puppet/reference/metaparameter.rb +1 -0
- data/lib/puppet/reference/providers.rb +2 -0
- data/lib/puppet/reference/report.rb +1 -0
- data/lib/puppet/reference/type.rb +4 -3
- data/lib/puppet/relationship.rb +3 -2
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +1 -0
- data/lib/puppet/reports/store.rb +3 -1
- data/lib/puppet/reports.rb +4 -3
- data/lib/puppet/resource/catalog.rb +14 -10
- data/lib/puppet/resource/status.rb +1 -1
- data/lib/puppet/resource/type.rb +28 -18
- data/lib/puppet/resource/type_collection.rb +4 -0
- data/lib/puppet/resource.rb +24 -16
- data/lib/puppet/runtime.rb +1 -0
- data/lib/puppet/scheduler/job.rb +1 -0
- data/lib/puppet/scheduler/scheduler.rb +1 -0
- data/lib/puppet/scheduler/splay_job.rb +1 -0
- data/lib/puppet/scheduler/timer.rb +1 -0
- data/lib/puppet/scheduler.rb +1 -0
- data/lib/puppet/settings/alias_setting.rb +1 -0
- data/lib/puppet/settings/array_setting.rb +1 -1
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/base_setting.rb +9 -5
- data/lib/puppet/settings/boolean_setting.rb +1 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +3 -3
- data/lib/puppet/settings/directory_setting.rb +1 -0
- data/lib/puppet/settings/duration_setting.rb +1 -0
- data/lib/puppet/settings/enum_setting.rb +2 -1
- data/lib/puppet/settings/environment_conf.rb +9 -8
- data/lib/puppet/settings/errors.rb +2 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +1 -5
- data/lib/puppet/settings/file_setting.rb +3 -13
- data/lib/puppet/settings/http_extra_headers_setting.rb +1 -1
- data/lib/puppet/settings/ini_file.rb +1 -0
- data/lib/puppet/settings/integer_setting.rb +1 -0
- data/lib/puppet/settings/path_setting.rb +1 -0
- data/lib/puppet/settings/port_setting.rb +2 -1
- data/lib/puppet/settings/priority_setting.rb +9 -8
- data/lib/puppet/settings/server_list_setting.rb +2 -2
- data/lib/puppet/settings/string_setting.rb +1 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +2 -1
- data/lib/puppet/settings/terminus_setting.rb +1 -0
- data/lib/puppet/settings/ttl_setting.rb +2 -0
- data/lib/puppet/settings/value_translator.rb +8 -7
- data/lib/puppet/settings.rb +89 -66
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate.rb +3 -2
- data/lib/puppet/ssl/certificate_request.rb +9 -7
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -1
- data/lib/puppet/ssl/certificate_signer.rb +2 -3
- data/lib/puppet/ssl/digest.rb +1 -0
- data/lib/puppet/ssl/error.rb +2 -0
- data/lib/puppet/ssl/oids.rb +3 -3
- data/lib/puppet/ssl/openssl_loader.rb +1 -0
- data/lib/puppet/ssl/ssl_context.rb +11 -15
- data/lib/puppet/ssl/ssl_provider.rb +2 -1
- data/lib/puppet/ssl/state_machine.rb +1 -0
- data/lib/puppet/ssl/verifier.rb +2 -2
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/syntax_checkers/base64.rb +2 -1
- data/lib/puppet/syntax_checkers/epp.rb +1 -1
- data/lib/puppet/syntax_checkers/json.rb +1 -2
- data/lib/puppet/syntax_checkers/pp.rb +1 -1
- data/lib/puppet/syntax_checkers.rb +1 -0
- data/lib/puppet/test/test_helper.rb +16 -14
- data/lib/puppet/thread_local.rb +1 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +5 -1
- data/lib/puppet/transaction/event.rb +5 -3
- data/lib/puppet/transaction/event_manager.rb +4 -3
- data/lib/puppet/transaction/persistence.rb +2 -1
- data/lib/puppet/transaction/report.rb +23 -15
- data/lib/puppet/transaction/resource_harness.rb +6 -3
- data/lib/puppet/transaction.rb +11 -6
- data/lib/puppet/trusted_external.rb +8 -4
- data/lib/puppet/type/component.rb +11 -5
- data/lib/puppet/type/exec.rb +26 -10
- data/lib/puppet/type/file/checksum.rb +1 -0
- data/lib/puppet/type/file/checksum_value.rb +3 -2
- data/lib/puppet/type/file/content.rb +16 -13
- data/lib/puppet/type/file/ctime.rb +2 -1
- data/lib/puppet/type/file/data_sync.rb +4 -2
- data/lib/puppet/type/file/ensure.rb +5 -5
- data/lib/puppet/type/file/group.rb +2 -1
- data/lib/puppet/type/file/mode.rb +4 -2
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/file/owner.rb +2 -1
- data/lib/puppet/type/file/selcontext.rb +2 -2
- data/lib/puppet/type/file/source.rb +12 -10
- data/lib/puppet/type/file/target.rb +2 -2
- data/lib/puppet/type/file/type.rb +2 -1
- data/lib/puppet/type/file.rb +22 -13
- data/lib/puppet/type/filebucket.rb +1 -0
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +21 -21
- data/lib/puppet/type/resources.rb +30 -25
- data/lib/puppet/type/schedule.rb +9 -10
- data/lib/puppet/type/service.rb +9 -7
- data/lib/puppet/type/stage.rb +1 -0
- data/lib/puppet/type/tidy.rb +9 -4
- data/lib/puppet/type/user.rb +28 -24
- data/lib/puppet/type/whit.rb +1 -1
- data/lib/puppet/type.rb +71 -61
- data/lib/puppet/util/at_fork/noop.rb +1 -0
- data/lib/puppet/util/at_fork/solaris.rb +2 -1
- data/lib/puppet/util/at_fork.rb +2 -1
- data/lib/puppet/util/autoload.rb +5 -0
- data/lib/puppet/util/backups.rb +3 -2
- data/lib/puppet/util/character_encoding.rb +1 -0
- data/lib/puppet/util/checksums.rb +11 -9
- data/lib/puppet/util/classgen.rb +8 -13
- data/lib/puppet/util/colors.rb +32 -31
- data/lib/puppet/util/command_line/puppet_option_parser.rb +12 -12
- data/lib/puppet/util/command_line/trollop.rb +693 -690
- data/lib/puppet/util/command_line.rb +1 -0
- data/lib/puppet/util/constant_inflector.rb +3 -3
- data/lib/puppet/util/diff.rb +13 -13
- data/lib/puppet/util/docs.rb +3 -0
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/execution.rb +16 -18
- data/lib/puppet/util/execution_stub.rb +1 -0
- data/lib/puppet/util/feature.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +2 -0
- data/lib/puppet/util/fileparsing.rb +2 -0
- data/lib/puppet/util/filetype.rb +3 -0
- data/lib/puppet/util/http_proxy.rb +1 -0
- data/lib/puppet/util/inifile.rb +3 -3
- data/lib/puppet/util/instance_loader.rb +2 -0
- data/lib/puppet/util/json.rb +1 -0
- data/lib/puppet/util/json_lockfile.rb +3 -1
- data/lib/puppet/util/ldap/connection.rb +19 -18
- data/lib/puppet/util/ldap/generator.rb +1 -0
- data/lib/puppet/util/ldap/manager.rb +3 -2
- data/lib/puppet/util/ldap.rb +1 -0
- data/lib/puppet/util/libuser.rb +1 -1
- data/lib/puppet/util/limits.rb +1 -0
- data/lib/puppet/util/lockfile.rb +1 -0
- data/lib/puppet/util/log/destination.rb +1 -0
- data/lib/puppet/util/log/destinations.rb +14 -13
- data/lib/puppet/util/log.rb +21 -17
- data/lib/puppet/util/logging.rb +18 -14
- data/lib/puppet/util/metaid.rb +1 -0
- data/lib/puppet/util/metric.rb +2 -0
- data/lib/puppet/util/monkey_patches.rb +1 -0
- data/lib/puppet/util/multi_match.rb +4 -1
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +3 -4
- data/lib/puppet/util/network_device/transport/base.rb +0 -1
- data/lib/puppet/util/network_device/transport.rb +1 -0
- data/lib/puppet/util/network_device.rb +1 -0
- data/lib/puppet/util/package/version/debian.rb +5 -3
- data/lib/puppet/util/package/version/gem.rb +2 -0
- data/lib/puppet/util/package/version/pip.rb +7 -2
- data/lib/puppet/util/package/version/range/eq.rb +2 -0
- data/lib/puppet/util/package/version/range/gt.rb +2 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/lt.rb +2 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/min_max.rb +4 -0
- data/lib/puppet/util/package/version/range/simple.rb +1 -0
- data/lib/puppet/util/package/version/range.rb +3 -0
- data/lib/puppet/util/package/version/rpm.rb +6 -4
- data/lib/puppet/util/package.rb +3 -0
- data/lib/puppet/util/pidlock.rb +7 -7
- data/lib/puppet/util/platform.rb +1 -0
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/posix.rb +8 -5
- data/lib/puppet/util/profiler/aggregate.rb +2 -5
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/profiler/logging.rb +1 -0
- data/lib/puppet/util/profiler/object_counts.rb +1 -0
- data/lib/puppet/util/profiler/wall_clock.rb +1 -0
- data/lib/puppet/util/profiler.rb +1 -0
- data/lib/puppet/util/provider_features.rb +4 -0
- data/lib/puppet/util/psych_support.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +3 -7
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -50
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -68
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +5 -5
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -0
- data/lib/puppet/util/rdoc/parser.rb +1 -0
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +2 -0
- data/lib/puppet/util/retry_action.rb +3 -3
- data/lib/puppet/util/rpm_compare.rb +6 -3
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/run_mode.rb +2 -1
- data/lib/puppet/util/selinux.rb +22 -11
- data/lib/puppet/util/skip_tags.rb +1 -0
- data/lib/puppet/util/splayer.rb +1 -0
- data/lib/puppet/util/storage.rb +2 -1
- data/lib/puppet/util/suidmanager.rb +8 -5
- data/lib/puppet/util/symbolic_file_mode.rb +3 -1
- data/lib/puppet/util/tag_set.rb +1 -0
- data/lib/puppet/util/tagging.rb +2 -1
- data/lib/puppet/util/terminal.rb +1 -0
- data/lib/puppet/util/user_attr.rb +1 -0
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +1 -0
- data/lib/puppet/util/watcher/change_watcher.rb +1 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
- data/lib/puppet/util/watcher/timer.rb +1 -0
- data/lib/puppet/util/watcher.rb +1 -0
- data/lib/puppet/util/windows/access_control_entry.rb +1 -0
- data/lib/puppet/util/windows/access_control_list.rb +3 -2
- data/lib/puppet/util/windows/adsi.rb +32 -25
- data/lib/puppet/util/windows/com.rb +5 -3
- data/lib/puppet/util/windows/daemon.rb +33 -33
- data/lib/puppet/util/windows/error.rb +3 -2
- data/lib/puppet/util/windows/eventlog.rb +8 -5
- data/lib/puppet/util/windows/file.rb +30 -24
- data/lib/puppet/util/windows/monkey_patches/process.rb +0 -1
- data/lib/puppet/util/windows/principal.rb +27 -27
- data/lib/puppet/util/windows/process.rb +7 -6
- data/lib/puppet/util/windows/registry.rb +43 -41
- data/lib/puppet/util/windows/root_certs.rb +1 -0
- data/lib/puppet/util/windows/security.rb +43 -44
- data/lib/puppet/util/windows/security_descriptor.rb +1 -0
- data/lib/puppet/util/windows/service.rb +12 -1
- data/lib/puppet/util/windows/sid.rb +6 -6
- data/lib/puppet/util/windows/string.rb +1 -0
- data/lib/puppet/util/windows/user.rb +33 -33
- data/lib/puppet/util/windows.rb +6 -0
- data/lib/puppet/util/yaml.rb +1 -0
- data/lib/puppet/util.rb +18 -20
- data/lib/puppet/vendor.rb +2 -1
- data/lib/puppet/version.rb +3 -1
- data/lib/puppet/x509/cert_provider.rb +7 -1
- data/lib/puppet/x509/pem_store.rb +1 -0
- data/lib/puppet/x509.rb +1 -0
- data/lib/puppet.rb +1 -0
- data/lib/puppet_pal.rb +1 -0
- data/lib/puppet_x.rb +1 -0
- data/locales/puppet.pot +195 -199
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/application/agent_spec.rb +13 -0
- data/spec/lib/puppet_spec/puppetserver.rb +1 -0
- data/spec/lib/puppet_spec/verbose.rb +5 -3
- data/spec/unit/agent_spec.rb +2 -7
- data/spec/unit/daemon_spec.rb +3 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +17 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +17 -0
- data/spec/unit/provider/package/appdmg_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +7 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +22 -2
- data/spec/unit/provider/service/systemd_spec.rb +8 -6
- data/spec/unit/type/exec_spec.rb +14 -9
- data/spec/unit/util/rpm_compare_spec.rb +8 -8
- metadata +2 -3
- data/CONTRIBUTING.md +0 -161
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/provider/nameservice/pw'
|
3
4
|
require 'open3'
|
4
5
|
|
@@ -19,7 +20,6 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
19
20
|
value.split("-").reverse.join("-")
|
20
21
|
}
|
21
22
|
|
22
|
-
|
23
23
|
verify :gid, "GID must be an integer" do |value|
|
24
24
|
value.is_a? Integer
|
25
25
|
end
|
@@ -32,6 +32,7 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
32
32
|
cmd = [command(:pw), "useradd", @resource[:name]]
|
33
33
|
@resource.class.validproperties.each do |property|
|
34
34
|
next if property == :ensure or property == :password
|
35
|
+
|
35
36
|
value = @resource.should(property)
|
36
37
|
if value and value != ""
|
37
38
|
cmd << flag(property) << munge(property,value)
|
@@ -85,7 +86,7 @@ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::
|
|
85
86
|
end
|
86
87
|
|
87
88
|
def has_sensitive_data?(property = nil)
|
88
|
-
#Check for sensitive values?
|
89
|
+
# Check for sensitive values?
|
89
90
|
properties = property ? [property] : Puppet::Type.type(:user).validproperties
|
90
91
|
properties.any? do |prop|
|
91
92
|
p = @resource.parameter(prop)
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/util'
|
3
4
|
require_relative '../../../puppet/util/user_attr'
|
4
5
|
require 'date'
|
5
6
|
|
6
7
|
Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source => :useradd do
|
7
|
-
|
8
8
|
desc "User and role management on Solaris, via `useradd` and `roleadd`."
|
9
9
|
|
10
10
|
defaultfor 'os.family' => :solaris
|
@@ -45,12 +45,13 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
#must override this to hand the keyvalue pairs
|
48
|
+
# must override this to hand the keyvalue pairs
|
49
49
|
def add_properties
|
50
50
|
cmd = []
|
51
51
|
Puppet::Type.type(:user).validproperties.each do |property|
|
52
|
-
#skip the password because we can't create it with the solaris useradd
|
52
|
+
# skip the password because we can't create it with the solaris useradd
|
53
53
|
next if [:ensure, :password, :password_min_age, :password_max_age, :password_warn_days].include?(property)
|
54
|
+
|
54
55
|
# 1680 Now you can set the hashed passwords on solaris:lib/puppet/provider/user/user_role_add.rb
|
55
56
|
# the value needs to be quoted, mostly because -c might
|
56
57
|
# have spaces in it
|
@@ -84,9 +85,9 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
84
85
|
end
|
85
86
|
|
86
87
|
def run(cmd, msg)
|
87
|
-
|
88
|
+
execute(cmd)
|
88
89
|
rescue Puppet::ExecutionFailure => detail
|
89
|
-
|
90
|
+
raise Puppet::Error, "Could not #{msg} #{@resource.class.name} #{@resource.name}: #{detail}", detail.backtrace
|
90
91
|
end
|
91
92
|
|
92
93
|
def transition(type)
|
@@ -144,12 +145,12 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
144
145
|
|
145
146
|
def remove_managed_attributes
|
146
147
|
managed = managed_attributes
|
147
|
-
user_attributes.select { |k,
|
148
|
+
user_attributes.select { |k,_v| !managed.include?(k) }.inject({}) { |hash, array| hash[array[0]] = array[1]; hash }
|
148
149
|
end
|
149
150
|
|
150
151
|
def keys
|
151
152
|
if user_attributes
|
152
|
-
#we have to get rid of all the keys we are managing another way
|
153
|
+
# we have to get rid of all the keys we are managing another way
|
153
154
|
remove_managed_attributes
|
154
155
|
end
|
155
156
|
end
|
@@ -166,7 +167,6 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
166
167
|
run([command(:modify)] + build_keys_cmd(keys_hash) << @resource[:name], "modify attribute key pairs")
|
167
168
|
end
|
168
169
|
|
169
|
-
|
170
170
|
# This helper makes it possible to test this on stub data without having to
|
171
171
|
# do too many crazy things!
|
172
172
|
def target_file_path
|
@@ -174,34 +174,39 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
174
174
|
end
|
175
175
|
private :target_file_path
|
176
176
|
|
177
|
-
#Read in /etc/shadow, find the line for this user (skipping comments, because who knows) and return it
|
178
|
-
#No abstraction, all esoteric knowledge of file formats, yay
|
177
|
+
# Read in /etc/shadow, find the line for this user (skipping comments, because who knows) and return it
|
178
|
+
# No abstraction, all esoteric knowledge of file formats, yay
|
179
179
|
def shadow_entry
|
180
180
|
return @shadow_entry if defined? @shadow_entry
|
181
|
-
|
182
|
-
|
181
|
+
|
182
|
+
@shadow_entry = File.readlines(target_file_path)
|
183
|
+
.reject { |r| r =~ /^[^\w]/ }.
|
183
184
|
# PUP-229: don't suppress the empty fields
|
184
|
-
collect { |l| l.chomp.split(':', -1) }
|
185
|
-
find { |user, _| user == @resource[:name] }
|
185
|
+
collect { |l| l.chomp.split(':', -1) }
|
186
|
+
.find { |user, _| user == @resource[:name] }
|
186
187
|
end
|
187
188
|
|
188
189
|
def password
|
189
190
|
return :absent unless shadow_entry
|
191
|
+
|
190
192
|
shadow_entry[1]
|
191
193
|
end
|
192
194
|
|
193
195
|
def password_min_age
|
194
196
|
return :absent unless shadow_entry
|
197
|
+
|
195
198
|
shadow_entry[3].empty? ? -1 : shadow_entry[3]
|
196
199
|
end
|
197
200
|
|
198
201
|
def password_max_age
|
199
202
|
return :absent unless shadow_entry
|
203
|
+
|
200
204
|
shadow_entry[4].empty? ? -1 : shadow_entry[4]
|
201
205
|
end
|
202
206
|
|
203
207
|
def password_warn_days
|
204
208
|
return :absent unless shadow_entry
|
209
|
+
|
205
210
|
shadow_entry[5].empty? ? -1 : shadow_entry[5]
|
206
211
|
end
|
207
212
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/provider/nameservice/objectadd'
|
3
4
|
require 'date'
|
4
5
|
require_relative '../../../puppet/util/libuser'
|
@@ -13,7 +14,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
13
14
|
To use the `forcelocal` parameter, you need to install the `libuser` package (providing
|
14
15
|
`/usr/sbin/lgroupadd` and `/usr/sbin/luseradd`)."
|
15
16
|
|
16
|
-
commands :add => "useradd", :delete => "userdel", :modify => "usermod", :password => "chage", :chpasswd
|
17
|
+
commands :add => "useradd", :delete => "userdel", :modify => "usermod", :password => "chage", :chpasswd => "chpasswd"
|
17
18
|
|
18
19
|
options :home, :flag => "-d", :method => :dir
|
19
20
|
options :comment, :method => :gecos
|
@@ -23,69 +24,76 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
23
24
|
options :password_warn_days, :flag => "-W", :method => :sp_warn
|
24
25
|
options :password, :method => :sp_pwdp
|
25
26
|
options :expiry, :method => :sp_expire,
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
27
|
+
:munge => proc { |value|
|
28
|
+
if value == :absent
|
29
|
+
if Puppet.runtime[:facter].value('os.name')=='SLES' && Puppet.runtime[:facter].value('os.release.major') == "11"
|
30
|
+
-1
|
31
|
+
else
|
32
|
+
''
|
33
|
+
end
|
34
|
+
else
|
35
|
+
case Puppet.runtime[:facter].value('os.name')
|
36
|
+
when 'Solaris'
|
37
|
+
# Solaris uses %m/%d/%Y for useradd/usermod
|
38
|
+
expiry_year, expiry_month, expiry_day = value.split('-')
|
39
|
+
[expiry_month, expiry_day, expiry_year].join('/')
|
40
|
+
else
|
41
|
+
value
|
42
|
+
end
|
43
|
+
end
|
44
|
+
},
|
45
|
+
:unmunge => proc { |value|
|
46
|
+
if value == -1
|
47
|
+
:absent
|
48
|
+
else
|
49
|
+
# Expiry is days after 1970-01-01
|
50
|
+
(Date.new(1970,1,1) + value).strftime('%Y-%m-%d')
|
51
|
+
end
|
52
|
+
}
|
52
53
|
|
53
54
|
optional_commands :localadd => "luseradd", :localdelete => "luserdel", :localmodify => "lusermod", :localpassword => "lchage"
|
54
55
|
has_feature :manages_local_users_and_groups if Puppet.features.libuser?
|
55
56
|
|
56
57
|
def exists?
|
57
58
|
return !!localuid if @resource.forcelocal?
|
59
|
+
|
58
60
|
super
|
59
61
|
end
|
60
62
|
|
61
63
|
def uid
|
62
|
-
|
63
|
-
|
64
|
+
return localuid if @resource.forcelocal?
|
65
|
+
|
66
|
+
get(:uid)
|
64
67
|
end
|
65
68
|
|
66
69
|
def gid
|
67
|
-
|
68
|
-
|
70
|
+
return localgid if @resource.forcelocal?
|
71
|
+
|
72
|
+
get(:gid)
|
69
73
|
end
|
70
74
|
|
71
75
|
def comment
|
72
|
-
|
73
|
-
|
76
|
+
return localcomment if @resource.forcelocal?
|
77
|
+
|
78
|
+
get(:comment)
|
74
79
|
end
|
75
80
|
|
76
81
|
def shell
|
77
82
|
return localshell if @resource.forcelocal?
|
83
|
+
|
78
84
|
get(:shell)
|
79
85
|
end
|
80
86
|
|
81
87
|
def home
|
82
88
|
return localhome if @resource.forcelocal?
|
89
|
+
|
83
90
|
get(:home)
|
84
91
|
end
|
85
92
|
|
86
93
|
def groups
|
87
|
-
|
88
|
-
|
94
|
+
return localgroups if @resource.forcelocal?
|
95
|
+
|
96
|
+
super
|
89
97
|
end
|
90
98
|
|
91
99
|
def finduser(key, value)
|
@@ -113,6 +121,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
113
121
|
def localuid
|
114
122
|
user = finduser(:account, resource[:name])
|
115
123
|
return user[:uid] if user
|
124
|
+
|
116
125
|
false
|
117
126
|
end
|
118
127
|
|
@@ -196,7 +205,6 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
196
205
|
:sensitive => has_sensitive_data?
|
197
206
|
}
|
198
207
|
output = execute(cmd, execute_options)
|
199
|
-
|
200
208
|
rescue => detail
|
201
209
|
tempfile.close
|
202
210
|
tempfile.delete
|
@@ -228,11 +236,11 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
228
236
|
# to ensure consistent behaviour of the useradd provider when
|
229
237
|
# using both useradd and luseradd
|
230
238
|
if (!@resource.allowdupe?) && @resource.forcelocal?
|
231
|
-
|
232
|
-
|
233
|
-
|
239
|
+
if @resource.should(:uid) && finduser(:uid, @resource.should(:uid).to_s)
|
240
|
+
raise(Puppet::Error, "UID #{@resource.should(:uid)} already exists, use allowdupe to force user creation")
|
241
|
+
end
|
234
242
|
elsif @resource.allowdupe? && (!@resource.forcelocal?)
|
235
|
-
|
243
|
+
return ["-o"]
|
236
244
|
end
|
237
245
|
[]
|
238
246
|
end
|
@@ -280,6 +288,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
280
288
|
Puppet::Type.type(:user).validproperties.sort.each do |property|
|
281
289
|
value = get_value_for_property(property)
|
282
290
|
next if value.nil? || property == :password
|
291
|
+
|
283
292
|
# the value needs to be quoted, mostly because -c might
|
284
293
|
# have spaces in it
|
285
294
|
cmd << flag(property) << munge(property, value)
|
@@ -292,6 +301,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
292
301
|
return nil if property_manages_password_age?(property)
|
293
302
|
return nil if property == :groups and @resource.forcelocal?
|
294
303
|
return nil if property == :expiry and @resource.forcelocal?
|
304
|
+
|
295
305
|
value = @resource.should(property)
|
296
306
|
return nil if !value || value == ""
|
297
307
|
|
@@ -299,7 +309,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ
|
|
299
309
|
end
|
300
310
|
|
301
311
|
def has_sensitive_data?(property = nil)
|
302
|
-
#Check for sensitive values?
|
312
|
+
# Check for sensitive values?
|
303
313
|
properties = property ? [property] : Puppet::Type.type(:user).validproperties
|
304
314
|
properties.any? do |prop|
|
305
315
|
p = @resource.parameter(prop)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../../puppet/util/windows'
|
3
4
|
|
4
5
|
Puppet::Type.type(:user).provide :windows_adsi do
|
@@ -69,6 +70,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
69
70
|
|
70
71
|
def groups_to_s(groups)
|
71
72
|
return '' if groups.nil? || !groups.kind_of?(Array)
|
73
|
+
|
72
74
|
groups = groups.map do |group_name|
|
73
75
|
sid = Puppet::Util::Windows::SID.name_to_principal(group_name)
|
74
76
|
if sid.account =~ /\\/
|
@@ -138,6 +140,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
138
140
|
# avoid a LogonUserW style password check when the resource is not yet
|
139
141
|
# populated with a password (as is the case with `puppet resource user`)
|
140
142
|
return nil if @resource[:password].nil?
|
143
|
+
|
141
144
|
user.password_is?( @resource[:password] ) ? @resource[:password] : nil
|
142
145
|
end
|
143
146
|
|
@@ -162,7 +165,7 @@ Puppet::Type.type(:user).provide :windows_adsi do
|
|
162
165
|
|
163
166
|
[:gid, :shell].each do |prop|
|
164
167
|
define_method(prop) { nil }
|
165
|
-
define_method("#{prop}=") do |
|
168
|
+
define_method("#{prop}=") do |_v|
|
166
169
|
fail "No support for managing property #{prop} of user #{@resource[:name]} on Windows"
|
167
170
|
end
|
168
171
|
end
|
data/lib/puppet/provider.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# A Provider is an implementation of the actions that manage resources (of some type) on a system.
|
3
4
|
# This class is the base class for all implementation of a Puppet Provider.
|
4
5
|
#
|
@@ -198,7 +199,7 @@ class Puppet::Provider
|
|
198
199
|
# @note the name ´has_command´ looks odd in an API context, but makes more sense when seen in the internal
|
199
200
|
# DSL context where a Provider is declaratively defined.
|
200
201
|
# @api public
|
201
|
-
#
|
202
|
+
# rubocop:disable Naming/PredicateName
|
202
203
|
def self.has_command(name, path, &block)
|
203
204
|
name = name.intern
|
204
205
|
command = CommandDefiner.define(name, path, self, &block)
|
@@ -210,6 +211,7 @@ class Puppet::Provider
|
|
210
211
|
return command.execute(*args)
|
211
212
|
end
|
212
213
|
end
|
214
|
+
# rubocop:enable Naming/PredicateName
|
213
215
|
|
214
216
|
# Internal helper class when creating commands - undocumented.
|
215
217
|
# @api private
|
@@ -230,7 +232,7 @@ class Puppet::Provider
|
|
230
232
|
@custom_environment = {}
|
231
233
|
end
|
232
234
|
|
233
|
-
def is_optional
|
235
|
+
def is_optional # rubocop:disable Naming/PredicateName
|
234
236
|
@optional = true
|
235
237
|
end
|
236
238
|
|
@@ -266,18 +268,14 @@ class Puppet::Provider
|
|
266
268
|
# @api private
|
267
269
|
def self.default_match
|
268
270
|
return nil if some_default_match(@notdefaults) # Blacklist means this provider cannot be a default
|
271
|
+
|
269
272
|
some_default_match(@defaults)
|
270
273
|
end
|
271
274
|
|
272
275
|
def self.some_default_match(defaultlist)
|
273
276
|
defaultlist.find do |default|
|
274
277
|
default.all? do |key, values|
|
275
|
-
|
276
|
-
when :feature
|
277
|
-
feature_match(values)
|
278
|
-
else
|
279
|
-
fact_match(key, values)
|
280
|
-
end
|
278
|
+
key == :feature ? feature_match(values) : fact_match(key, values)
|
281
279
|
end
|
282
280
|
end
|
283
281
|
end
|
@@ -402,6 +400,7 @@ class Puppet::Provider
|
|
402
400
|
[resource_type.validproperties, resource_type.parameters].flatten.each do |attr|
|
403
401
|
attr = attr.intern
|
404
402
|
next if attr == :name
|
403
|
+
|
405
404
|
define_method(attr) do
|
406
405
|
if @property_hash[attr].nil?
|
407
406
|
:absent
|
@@ -476,7 +475,7 @@ class Puppet::Provider
|
|
476
475
|
|
477
476
|
dochook(:commands) do
|
478
477
|
if @commands.length > 0
|
479
|
-
return "Required binaries: " + @commands.collect do |
|
478
|
+
return "Required binaries: " + @commands.collect do |_n, c|
|
480
479
|
"`#{c}`"
|
481
480
|
end.sort.join(", ") + "."
|
482
481
|
end
|
@@ -578,6 +577,7 @@ class Puppet::Provider
|
|
578
577
|
def <=>(other)
|
579
578
|
# We can only have ordering against other providers.
|
580
579
|
return nil unless other.is_a? Puppet::Provider
|
580
|
+
|
581
581
|
# Otherwise, order by the providers class name.
|
582
582
|
return self.class.name <=> other.class.name
|
583
583
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc => "A reference for all settings") do
|
3
4
|
docs = {}
|
4
5
|
Puppet.settings.each do |name, object|
|
@@ -44,7 +45,7 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
44
45
|
end
|
45
46
|
|
46
47
|
# Leave out the section information; it was apparently confusing people.
|
47
|
-
#str << "- **Section**: #{object.section}\n"
|
48
|
+
# str << "- **Section**: #{object.section}\n"
|
48
49
|
unless val == ""
|
49
50
|
str << "- *Default*: `#{val}`\n"
|
50
51
|
end
|
@@ -54,45 +55,45 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
|
|
54
55
|
return str
|
55
56
|
end
|
56
57
|
|
57
|
-
config.header =
|
58
|
-
## Configuration settings
|
59
|
-
|
60
|
-
* Each of these settings can be specified in `puppet.conf` or on the
|
61
|
-
|
62
|
-
* Puppet Enterprise (PE) and open source Puppet share the configuration settings
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
* When using boolean settings on the command line, use `--setting` and
|
70
|
-
|
71
|
-
|
72
|
-
* Settings can be interpolated as `$variables` in other settings; `$environment`
|
73
|
-
|
74
|
-
|
75
|
-
* Multiple values should be specified as comma-separated lists; multiple
|
76
|
-
|
77
|
-
|
78
|
-
* Settings that represent time intervals should be specified in duration format:
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
* If you use the `splay` setting, note that the period that it waits changes
|
85
|
-
|
86
|
-
* Settings that take a single file or directory can optionally set the owner,
|
87
|
-
|
88
|
-
|
89
|
-
* The Puppet executables ignores any setting that isn't relevant to
|
90
|
-
|
91
|
-
|
92
|
-
See the [configuration guide][confguide] for more details.
|
93
|
-
|
94
|
-
[confguide]: https://puppet.com/docs/puppet/latest/config_about_settings.html
|
95
|
-
|
96
|
-
* * *
|
97
|
-
|
58
|
+
config.header = <<~EOT
|
59
|
+
## Configuration settings
|
60
|
+
|
61
|
+
* Each of these settings can be specified in `puppet.conf` or on the
|
62
|
+
command line.
|
63
|
+
* Puppet Enterprise (PE) and open source Puppet share the configuration settings
|
64
|
+
documented here. However, PE defaults differ from open source defaults for some
|
65
|
+
settings, such as `node_terminus`, `storeconfigs`, `always_retry_plugins`,
|
66
|
+
`disable18n`, `environment_timeout` (when Code Manager is enabled), and the
|
67
|
+
Puppet Server JRuby `max-active-instances` setting. To verify PE configuration
|
68
|
+
defaults, check the `puppet.conf` or `pe-puppet-server.conf` file after
|
69
|
+
installation.
|
70
|
+
* When using boolean settings on the command line, use `--setting` and
|
71
|
+
`--no-setting` instead of `--setting (true|false)`. (Using `--setting false`
|
72
|
+
results in "Error: Could not parse application options: needless argument".)
|
73
|
+
* Settings can be interpolated as `$variables` in other settings; `$environment`
|
74
|
+
is special, in that puppet master will interpolate each agent node's
|
75
|
+
environment instead of its own.
|
76
|
+
* Multiple values should be specified as comma-separated lists; multiple
|
77
|
+
directories should be separated with the system path separator (usually
|
78
|
+
a colon).
|
79
|
+
* Settings that represent time intervals should be specified in duration format:
|
80
|
+
an integer immediately followed by one of the units 'y' (years of 365 days),
|
81
|
+
'd' (days), 'h' (hours), 'm' (minutes), or 's' (seconds). The unit cannot be
|
82
|
+
combined with other units, and defaults to seconds when omitted. Examples are
|
83
|
+
'3600' which is equivalent to '1h' (one hour), and '1825d' which is equivalent
|
84
|
+
to '5y' (5 years).
|
85
|
+
* If you use the `splay` setting, note that the period that it waits changes
|
86
|
+
each time the Puppet agent is restarted.
|
87
|
+
* Settings that take a single file or directory can optionally set the owner,
|
88
|
+
group, and mode for their value: `rundir = $vardir/run { owner = puppet,
|
89
|
+
group = puppet, mode = 644 }`
|
90
|
+
* The Puppet executables ignores any setting that isn't relevant to
|
91
|
+
their function.
|
92
|
+
|
93
|
+
See the [configuration guide][confguide] for more details.
|
94
|
+
|
95
|
+
[confguide]: https://puppet.com/docs/puppet/latest/config_about_settings.html
|
96
|
+
|
97
|
+
* * *
|
98
|
+
|
98
99
|
EOT
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet/indirector/indirection'
|
3
4
|
require_relative '../../puppet/util/checksums'
|
4
5
|
require_relative '../../puppet/file_serving/content'
|
@@ -28,45 +29,45 @@ reference = Puppet::Util::Reference.newreference :indirection, :doc => "Indirect
|
|
28
29
|
text
|
29
30
|
end
|
30
31
|
|
31
|
-
reference.header =
|
32
|
-
|
33
|
-
## About Indirection
|
34
|
-
|
35
|
-
Puppet's indirector support pluggable backends (termini) for a variety of key-value stores (indirections).
|
36
|
-
Each indirection type corresponds to a particular Ruby class (the "Indirected Class" below) and values are instances of that class.
|
37
|
-
Each instance's key is available from its `name` method.
|
38
|
-
The termini can be local (e.g., on-disk files) or remote (e.g., using a REST interface to talk to a puppet master).
|
39
|
-
|
40
|
-
An indirector has five methods, which are mapped into HTTP verbs for the REST interface:
|
41
|
-
|
42
|
-
* `find(key)` - get a single value (mapped to GET or POST with a singular endpoint)
|
43
|
-
* `search(key)` - get a list of matching values (mapped to GET with a plural endpoint)
|
44
|
-
* `head(key)` - return true if the key exists (mapped to HEAD)
|
45
|
-
* `destroy(key)` - remove the key and value (mapped to DELETE)
|
46
|
-
* `save(instance)` - write the instance to the store, using the instance's name as the key (mapped to PUT)
|
47
|
-
|
48
|
-
These methods are available via the `indirection` class method on the indirected classes. For example:
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
At startup, each indirection is configured with a terminus.
|
53
|
-
In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
|
54
|
-
The available termini differ for each indirection, and are listed below.
|
55
|
-
|
56
|
-
Indirections can also have a cache, represented by a second terminus.
|
57
|
-
This is a write-through cache: modifications are written both to the cache and to the primary terminus.
|
58
|
-
Values fetched from the terminus are written to the cache.
|
59
|
-
|
60
|
-
### Interaction with REST
|
61
|
-
|
62
|
-
REST endpoints have the form `/{prefix}/{version}/{indirection}/{key}?environment={environment}`, where the indirection can be singular or plural, following normal English spelling rules.
|
63
|
-
On the server side, REST responses are generated from the locally-configured endpoints.
|
64
|
-
|
65
|
-
### Indirections and Termini
|
66
|
-
|
67
|
-
Below is the list of all indirections, their associated terminus classes, and how you select between them.
|
68
|
-
|
69
|
-
In general, the appropriate terminus class is selected by the application for you (e.g., `puppet agent` would always use the `rest`
|
70
|
-
terminus for most of its indirected classes), but some classes are tunable via normal settings. These will have `terminus setting` documentation listed with them.
|
71
|
-
|
32
|
+
reference.header = <<~HEADER
|
33
|
+
|
34
|
+
## About Indirection
|
35
|
+
|
36
|
+
Puppet's indirector support pluggable backends (termini) for a variety of key-value stores (indirections).
|
37
|
+
Each indirection type corresponds to a particular Ruby class (the "Indirected Class" below) and values are instances of that class.
|
38
|
+
Each instance's key is available from its `name` method.
|
39
|
+
The termini can be local (e.g., on-disk files) or remote (e.g., using a REST interface to talk to a puppet master).
|
40
|
+
|
41
|
+
An indirector has five methods, which are mapped into HTTP verbs for the REST interface:
|
42
|
+
|
43
|
+
* `find(key)` - get a single value (mapped to GET or POST with a singular endpoint)
|
44
|
+
* `search(key)` - get a list of matching values (mapped to GET with a plural endpoint)
|
45
|
+
* `head(key)` - return true if the key exists (mapped to HEAD)
|
46
|
+
* `destroy(key)` - remove the key and value (mapped to DELETE)
|
47
|
+
* `save(instance)` - write the instance to the store, using the instance's name as the key (mapped to PUT)
|
48
|
+
|
49
|
+
These methods are available via the `indirection` class method on the indirected classes. For example:
|
50
|
+
|
51
|
+
node = Puppet::Node.indirection.find('foo.example.com')
|
52
|
+
|
53
|
+
At startup, each indirection is configured with a terminus.
|
54
|
+
In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
|
55
|
+
The available termini differ for each indirection, and are listed below.
|
56
|
+
|
57
|
+
Indirections can also have a cache, represented by a second terminus.
|
58
|
+
This is a write-through cache: modifications are written both to the cache and to the primary terminus.
|
59
|
+
Values fetched from the terminus are written to the cache.
|
60
|
+
|
61
|
+
### Interaction with REST
|
62
|
+
|
63
|
+
REST endpoints have the form `/{prefix}/{version}/{indirection}/{key}?environment={environment}`, where the indirection can be singular or plural, following normal English spelling rules.
|
64
|
+
On the server side, REST responses are generated from the locally-configured endpoints.
|
65
|
+
|
66
|
+
### Indirections and Termini
|
67
|
+
|
68
|
+
Below is the list of all indirections, their associated terminus classes, and how you select between them.
|
69
|
+
|
70
|
+
In general, the appropriate terminus class is selected by the application for you (e.g., `puppet agent` would always use the `rest`
|
71
|
+
terminus for most of its indirected classes), but some classes are tunable via normal settings. These will have `terminus setting` documentation listed with them.
|
72
|
+
|
72
73
|
HEADER
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
providers = Puppet::Util::Reference.newreference :providers, :title => "Provider Suitability Report", :depth => 1, :dynamic => true, :doc => "Which providers are valid for this machine" do
|
3
4
|
types = []
|
4
5
|
Puppet::Type.loadall
|
5
6
|
Puppet::Type.eachtype do |klass|
|
6
7
|
next unless klass && klass.providers.length > 0
|
8
|
+
|
7
9
|
types << klass
|
8
10
|
end
|
9
11
|
types.sort! { |a,b| a.name.to_s <=> b.name.to_s }
|