puppet 8.2.0-universal-darwin → 8.4.0-universal-darwin
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 +1 -1
- data/Gemfile.lock +45 -43
- data/README.md +4 -4
- data/Rakefile +0 -27
- data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
- data/ext/project_data.yaml +2 -2
- 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 +61 -60
- 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 +119 -83
- data/lib/puppet/application.rb +13 -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 +24 -23
- 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 +19 -21
- data/lib/puppet/face/epp.rb +8 -8
- 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 +9 -10
- 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 +3 -3
- 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 +29 -1
- 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 +3 -1
- 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 +11 -6
- 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 +12 -2
- 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 +2 -1
- 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 +2 -2
- 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 +18 -14
- 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 +2 -1
- 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 +6 -6
- 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 +5 -4
- 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 +3 -1
- 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 +24 -23
- 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 +35 -34
- 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 +137 -101
- 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 +18 -14
- 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 +3 -1
- 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 +3 -3
- data/lib/puppet/pops/parser/evaluating_parser.rb +6 -3
- 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 +2 -2
- 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 +4 -1
- 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 +2 -1
- 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 +16 -6
- 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 +9 -6
- data/lib/puppet/pops/types/ruby_method.rb +6 -5
- data/lib/puppet/pops/types/string_converter.rb +71 -63
- 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 +14 -13
- 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 +178 -153
- 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 +30 -21
- 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 +5 -5
- 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 +3 -1
- 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 +17 -14
- 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 +53 -45
- 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 +44 -43
- data/lib/puppet/reference/function.rb +1 -0
- data/lib/puppet/reference/indirection.rb +43 -42
- 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 +5 -4
- 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 +24 -16
- 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 +2 -1
- 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 +14 -14
- data/lib/puppet/util/docs.rb +3 -0
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/execution.rb +24 -21
- 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 +5 -5
- 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 +19 -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 +7 -5
- 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 +5 -1
- 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 +23 -12
- 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 +2 -1
- data/lib/puppet/util/windows/access_control_list.rb +4 -3
- data/lib/puppet/util/windows/adsi.rb +41 -27
- 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 +4 -3
- data/lib/puppet/util/windows/eventlog.rb +8 -5
- data/lib/puppet/util/windows/file.rb +32 -26
- 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 +8 -7
- 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 +10 -8
- 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 +20 -23
- data/lib/puppet/vendor.rb +2 -1
- data/lib/puppet/version.rb +3 -1
- data/lib/puppet/x509/cert_provider.rb +13 -3
- 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 +214 -210
- data/man/man5/puppet.conf.5 +3 -3
- 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 +5 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/application/agent_spec.rb +13 -0
- data/spec/integration/type/exec_spec.rb +13 -0
- data/spec/lib/puppet_spec/puppetserver.rb +1 -0
- data/spec/lib/puppet_spec/verbose.rb +15 -4
- data/spec/unit/agent_spec.rb +2 -14
- data/spec/unit/application/ssl_spec.rb +49 -0
- data/spec/unit/daemon_spec.rb +3 -20
- data/spec/unit/functions/split_spec.rb +6 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +17 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +17 -0
- data/spec/unit/info_service_spec.rb +1 -1
- 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/ssl/certificate_signer_spec.rb +17 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +14 -9
- data/spec/unit/util/execution_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +42 -0
- data/spec/unit/util/rpm_compare_spec.rb +8 -8
- data/spec/unit/util/windows/adsi_spec.rb +25 -0
- metadata +5 -4
- data/CONTRIBUTING.md +0 -161
@@ -1,11 +1,12 @@
|
|
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'
|
5
6
|
require_relative '../../puppet/file_serving/metadata'
|
6
7
|
|
7
8
|
reference = Puppet::Util::Reference.newreference :indirection, :doc => "Indirection types and their terminus classes" do
|
8
|
-
text =
|
9
|
+
text = ''.dup
|
9
10
|
Puppet::Indirector::Indirection.instances.sort_by(&:to_s).each do |indirection|
|
10
11
|
ind = Puppet::Indirector::Indirection.instance(indirection)
|
11
12
|
name = indirection.to_s.capitalize
|
@@ -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 }
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types and all their details" do
|
3
4
|
types = {}
|
4
5
|
Puppet::Type.loadall
|
@@ -6,6 +7,7 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
|
|
6
7
|
Puppet::Type.eachtype { |type|
|
7
8
|
next if type.name == :component
|
8
9
|
next if type.name == :whit
|
10
|
+
|
9
11
|
types[type.name] = type
|
10
12
|
}
|
11
13
|
|
@@ -51,7 +53,6 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
|
|
51
53
|
}
|
52
54
|
|
53
55
|
types.sort_by(&:to_s).each { |name,type|
|
54
|
-
|
55
56
|
str << "
|
56
57
|
|
57
58
|
----------------
|
@@ -86,11 +87,11 @@ Puppet::Util::Reference.newreference :type, :doc => "All Puppet resource types a
|
|
86
87
|
tmp = doc
|
87
88
|
tmp = scrub(tmp)
|
88
89
|
|
89
|
-
docs[sname]
|
90
|
+
docs[sname] = tmp
|
90
91
|
}
|
91
92
|
|
92
93
|
str << markdown_header("Parameters", 4) + "\n"
|
93
|
-
type.parameters.sort_by(&:to_s).each { |type_name,
|
94
|
+
type.parameters.sort_by(&:to_s).each { |type_name, _param|
|
94
95
|
docs[type_name] = scrub(type.paramdoc(type_name))
|
95
96
|
}
|
96
97
|
|
data/lib/puppet/relationship.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# subscriptions are permanent associations determining how different
|
3
4
|
# objects react to an event
|
4
5
|
|
@@ -6,7 +7,6 @@
|
|
6
7
|
# It used to be a subclass of GRATR::Edge, but that class has weird hash
|
7
8
|
# overrides that dramatically slow down the graphing.
|
8
9
|
class Puppet::Relationship
|
9
|
-
|
10
10
|
# FormatSupport for serialization methods
|
11
11
|
include Puppet::Network::FormatSupport
|
12
12
|
include Puppet::Util::PsychSupport
|
@@ -27,8 +27,9 @@ class Puppet::Relationship
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def event=(event)
|
30
|
-
#TRANSLATORS 'NONE' should not be translated
|
30
|
+
# TRANSLATORS 'NONE' should not be translated
|
31
31
|
raise ArgumentError, _("You must pass a callback for non-NONE events") if event != :NONE and ! callback
|
32
|
+
|
32
33
|
@event = event
|
33
34
|
end
|
34
35
|
|
data/lib/puppet/reports/http.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet'
|
3
4
|
require_relative '../../puppet/network/http_pool'
|
4
5
|
require 'uri'
|
5
6
|
|
6
7
|
Puppet::Reports.register_report(:http) do
|
7
|
-
|
8
8
|
desc <<-DESC
|
9
9
|
Send reports via HTTP or HTTPS. This report processor submits reports as
|
10
10
|
POST requests to the address in the `reporturl` setting. When a HTTPS URL
|
data/lib/puppet/reports/log.rb
CHANGED
data/lib/puppet/reports/store.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet'
|
3
4
|
require 'fileutils'
|
4
5
|
require_relative '../../puppet/util'
|
@@ -37,7 +38,7 @@ Puppet::Reports.register_report(:store) do
|
|
37
38
|
fh.print to_yaml
|
38
39
|
end
|
39
40
|
rescue => detail
|
40
|
-
|
41
|
+
Puppet.log_exception(detail, "Could not write report for #{host} at #{file}: #{detail}")
|
41
42
|
end
|
42
43
|
|
43
44
|
# Only testing cares about the return value
|
@@ -53,6 +54,7 @@ Puppet::Reports.register_report(:store) do
|
|
53
54
|
if Puppet::FileSystem.exist?(dir)
|
54
55
|
Dir.entries(dir).each do |file|
|
55
56
|
next if ['.','..'].include?(file)
|
57
|
+
|
56
58
|
file = File.join(dir, file)
|
57
59
|
Puppet::FileSystem.unlink(file) if File.file?(file)
|
58
60
|
end
|
data/lib/puppet/reports.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../puppet/util/instance_loader'
|
3
4
|
|
4
5
|
# This class is an implementation of a simple mechanism for loading and returning reports.
|
@@ -56,10 +57,10 @@ class Puppet::Reports
|
|
56
57
|
name = name.intern
|
57
58
|
|
58
59
|
mod = genmodule(name,
|
59
|
-
:extend
|
60
|
-
:hash
|
60
|
+
:extend => Puppet::Util::Docs,
|
61
|
+
:hash => instance_hash(:report),
|
61
62
|
:overwrite => true,
|
62
|
-
:block
|
63
|
+
:block => block)
|
63
64
|
|
64
65
|
mod.useyaml = true if options[:useyaml]
|
65
66
|
|
@@ -71,7 +72,7 @@ class Puppet::Reports
|
|
71
72
|
# Collects the docs for all reports.
|
72
73
|
# @api private
|
73
74
|
def self.reportdocs
|
74
|
-
docs =
|
75
|
+
docs = ''.dup
|
75
76
|
|
76
77
|
# Use this method so they all get loaded
|
77
78
|
instance_loader(:report).loadall(Puppet.lookup(:current_environment))
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet/node'
|
3
4
|
require_relative '../../puppet/indirector'
|
4
5
|
require_relative '../../puppet/transaction'
|
@@ -199,13 +200,14 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
199
200
|
existing = @resource_table[newref]
|
200
201
|
if existing
|
201
202
|
return if existing == resource
|
203
|
+
|
202
204
|
resource_declaration = Puppet::Util::Errors.error_location(resource.file, resource.line)
|
203
205
|
msg = if resource_declaration.empty?
|
204
|
-
#TRANSLATORS 'alias' should not be translated
|
206
|
+
# TRANSLATORS 'alias' should not be translated
|
205
207
|
_("Cannot alias %{resource} to %{key}; resource %{newref} already declared") %
|
206
208
|
{ resource: ref, key: key.inspect, newref: newref.inspect }
|
207
209
|
else
|
208
|
-
#TRANSLATORS 'alias' should not be translated
|
210
|
+
# TRANSLATORS 'alias' should not be translated
|
209
211
|
_("Cannot alias %{resource} to %{key} at %{resource_declaration}; resource %{newref} already declared") %
|
210
212
|
{ resource: ref, key: key.inspect, resource_declaration: resource_declaration, newref: newref.inspect }
|
211
213
|
end
|
@@ -290,6 +292,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
290
292
|
unless klass
|
291
293
|
raise ArgumentError, _("Unknown resource type %{type}") % { type: type }
|
292
294
|
end
|
295
|
+
|
293
296
|
resource = klass.new(options)
|
294
297
|
return unless resource
|
295
298
|
|
@@ -377,7 +380,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
377
380
|
type_name = type.is_a?(Puppet::CompilableResourceType) || type.is_a?(Puppet::Resource::Type) ? type.name : type
|
378
381
|
type_name, title = Puppet::Resource.type_and_title(type_name, title)
|
379
382
|
type = type_name if type.is_a?(String)
|
380
|
-
title_key
|
383
|
+
title_key = [type_name, title.to_s]
|
381
384
|
result = @resource_table[title_key]
|
382
385
|
if result.nil?
|
383
386
|
# an instance has to be created in order to construct the unique key used when
|
@@ -476,16 +479,16 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
476
479
|
end
|
477
480
|
|
478
481
|
{
|
479
|
-
'tags'
|
480
|
-
'name'
|
481
|
-
'version'
|
482
|
-
'code_id'
|
482
|
+
'tags' => tags.to_a,
|
483
|
+
'name' => name,
|
484
|
+
'version' => version,
|
485
|
+
'code_id' => code_id,
|
483
486
|
'catalog_uuid' => catalog_uuid,
|
484
487
|
'catalog_format' => catalog_format,
|
485
|
-
'environment'
|
488
|
+
'environment' => environment.to_s,
|
486
489
|
'resources' => @resources.map { |v| @resource_table[v].to_data_hash },
|
487
|
-
'edges'
|
488
|
-
'classes'
|
490
|
+
'edges' => edges.map { |e| e.to_data_hash },
|
491
|
+
'classes' => classes,
|
489
492
|
}.merge(metadata_hash.empty? ?
|
490
493
|
{} : {'metadata' => metadata_hash}).merge(recursive_metadata_hash.empty? ?
|
491
494
|
{} : {'recursive_metadata' => recursive_metadata_hash})
|
@@ -539,6 +542,7 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
539
542
|
Puppet::FileSystem.open(resourcefile.value, resourcefile.mode.to_i(8), "w:UTF-8") do |f|
|
540
543
|
to_print = resources.map do |resource|
|
541
544
|
next unless resource.managed?
|
545
|
+
|
542
546
|
"#{resource.ref.downcase}"
|
543
547
|
end.compact
|
544
548
|
f.puts to_print.join("\n")
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'time'
|
3
4
|
require_relative '../../puppet/network/format_support'
|
4
5
|
require_relative '../../puppet/util/psych_support'
|
5
6
|
|
6
7
|
module Puppet
|
7
8
|
class Resource
|
8
|
-
|
9
9
|
# This class represents the result of evaluating a given resource. It
|
10
10
|
# contains file and line information about the source, events generated
|
11
11
|
# while evaluating the resource, timing information, and the status of the
|
data/lib/puppet/resource/type.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet/parser'
|
3
4
|
require_relative '../../puppet/util/warnings'
|
4
5
|
require_relative '../../puppet/util/errors'
|
@@ -16,9 +17,9 @@ class Puppet::Resource::Type
|
|
16
17
|
|
17
18
|
# Map the names used in our documentation to the names used internally
|
18
19
|
RESOURCE_KINDS_TO_EXTERNAL_NAMES = {
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
:hostclass => "class",
|
21
|
+
:node => "node",
|
22
|
+
:definition => "defined_type"
|
22
23
|
}
|
23
24
|
RESOURCE_EXTERNAL_NAMES_TO_KINDS = RESOURCE_KINDS_TO_EXTERNAL_NAMES.invert
|
24
25
|
|
@@ -60,7 +61,6 @@ class Puppet::Resource::Type
|
|
60
61
|
|
61
62
|
# Now evaluate the code associated with this class or definition.
|
62
63
|
def evaluate_code(resource)
|
63
|
-
|
64
64
|
static_parent = evaluate_parent_type(resource)
|
65
65
|
scope = static_parent || resource.scope
|
66
66
|
|
@@ -94,6 +94,7 @@ class Puppet::Resource::Type
|
|
94
94
|
[:code, :doc, :line, :file, :parent].each do |param|
|
95
95
|
value = options[param]
|
96
96
|
next unless value
|
97
|
+
|
97
98
|
send(param.to_s + '=', value)
|
98
99
|
end
|
99
100
|
|
@@ -117,6 +118,7 @@ class Puppet::Resource::Type
|
|
117
118
|
def merge(other)
|
118
119
|
fail _("%{name} is not a class; cannot add code to it") % { name: name } unless type == :hostclass
|
119
120
|
fail _("%{name} is not a class; cannot add code from it") % { name: other.name } unless other.type == :hostclass
|
121
|
+
|
120
122
|
if name == "" && Puppet.settings[:freeze_main]
|
121
123
|
# It is ok to merge definitions into main even if freeze is on (definitions are nodes, classes, defines, functions, and types)
|
122
124
|
unless other.code.is_definitions_only?
|
@@ -153,14 +155,14 @@ class Puppet::Resource::Type
|
|
153
155
|
# values.
|
154
156
|
def ensure_in_catalog(scope, parameters=nil)
|
155
157
|
resource_type =
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
158
|
+
case type
|
159
|
+
when :definition
|
160
|
+
raise ArgumentError, _('Cannot create resources for defined resource types')
|
161
|
+
when :hostclass
|
162
|
+
:class
|
163
|
+
when :node
|
164
|
+
:node
|
165
|
+
end
|
164
166
|
|
165
167
|
# Do nothing if the resource already exists; this makes sure we don't
|
166
168
|
# get multiple copies of the class resource, which helps provide the
|
@@ -258,11 +260,13 @@ class Puppet::Resource::Type
|
|
258
260
|
def inject_external_parameters(resource, scope)
|
259
261
|
# Only lookup parameters for host classes
|
260
262
|
return unless type == :hostclass
|
263
|
+
|
261
264
|
parameters = resource.parameters
|
262
265
|
arguments.each do |param_name, default|
|
263
266
|
sym_name = param_name.to_sym
|
264
267
|
param = parameters[sym_name]
|
265
268
|
next unless param.nil? || param.value.nil?
|
269
|
+
|
266
270
|
catch(:no_such_key) do
|
267
271
|
bound_value = Puppet::Pops::Lookup.search_and_merge("#{name}::#{param_name}", Puppet::Pops::Lookup::Invocation.new(scope), nil)
|
268
272
|
# Assign bound value but don't let an undef trump a default expression
|
@@ -274,12 +278,15 @@ class Puppet::Resource::Type
|
|
274
278
|
|
275
279
|
def assign_defaults(resource, param_scope, scope)
|
276
280
|
return unless resource.is_a?(Puppet::Parser::Resource)
|
281
|
+
|
277
282
|
parameters = resource.parameters
|
278
283
|
arguments.each do |param_name, default|
|
279
284
|
next if default.nil?
|
285
|
+
|
280
286
|
name = param_name.to_sym
|
281
287
|
param = parameters[name]
|
282
288
|
next unless param.nil? || param.value.nil?
|
289
|
+
|
283
290
|
value = exceptwrap { param_scope.evaluate3x(param_name, default, scope) }
|
284
291
|
resource[name] = value
|
285
292
|
param_scope[param_name] = value
|
@@ -299,11 +306,11 @@ class Puppet::Resource::Type
|
|
299
306
|
# recreated as a Sensitive in order to perform correct type checking.
|
300
307
|
sensitives = Set.new(resource.sensitive_parameters)
|
301
308
|
validate_resource_hash(resource,
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
309
|
+
Hash[resource.parameters.map do |name, value|
|
310
|
+
value_to_validate = sensitives.include?(name) ? Puppet::Pops::Types::PSensitiveType::Sensitive.new(value.value) : value.value
|
311
|
+
[name.to_s, value_to_validate]
|
312
|
+
end
|
313
|
+
])
|
307
314
|
end
|
308
315
|
|
309
316
|
# Check whether a given argument is valid.
|
@@ -331,6 +338,7 @@ class Puppet::Resource::Type
|
|
331
338
|
@argument_types = {}
|
332
339
|
@parameter_struct = nil
|
333
340
|
return unless name_to_type_hash
|
341
|
+
|
334
342
|
name_to_type_hash.each do |name, t|
|
335
343
|
# catch internal errors
|
336
344
|
unless @arguments.include?(name)
|
@@ -339,6 +347,7 @@ class Puppet::Resource::Type
|
|
339
347
|
unless t.is_a? Puppet::Pops::Types::PAnyType
|
340
348
|
raise Puppet::DevError, _("Parameter '%{name}' is given a type that is not a Puppet Type, got %{class_name}") % { name: name, class_name: t.class }
|
341
349
|
end
|
350
|
+
|
342
351
|
@argument_types[name] = t
|
343
352
|
end
|
344
353
|
end
|
@@ -358,6 +367,7 @@ class Puppet::Resource::Type
|
|
358
367
|
klass = parent_type(resource.scope)
|
359
368
|
parent_resource = resource.scope.compiler.catalog.resource(:class, klass.name) || resource.scope.compiler.catalog.resource(:node, klass.name) if klass
|
360
369
|
return unless klass && parent_resource
|
370
|
+
|
361
371
|
parent_resource.evaluate unless parent_resource.evaluated?
|
362
372
|
parent_scope(resource.scope, klass)
|
363
373
|
end
|
@@ -405,7 +415,7 @@ class Puppet::Resource::Type
|
|
405
415
|
def create_params_struct
|
406
416
|
arg_types = argument_types
|
407
417
|
type_factory = Puppet::Pops::Types::TypeFactory
|
408
|
-
members = { type_factory.optional(type_factory.string(NAME)) =>
|
418
|
+
members = { type_factory.optional(type_factory.string(NAME)) => type_factory.any }
|
409
419
|
|
410
420
|
Puppet::Type.eachmetaparam do |name|
|
411
421
|
# TODO: Once meta parameters are typed, this should change to reflect that type
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../../puppet/parser/type_loader'
|
3
4
|
require_relative '../../puppet/util/file_watcher'
|
4
5
|
require_relative '../../puppet/util/warnings'
|
@@ -73,6 +74,7 @@ class Puppet::Resource::TypeCollection
|
|
73
74
|
def handle_hostclass_merge(instance)
|
74
75
|
# Only main class (named '') can be merged (for purpose of merging top-scopes).
|
75
76
|
return instance unless instance.name == ''
|
77
|
+
|
76
78
|
if instance.type == :hostclass && (other = @hostclasses[instance.name]) && other.type == :hostclass
|
77
79
|
other.merge(instance)
|
78
80
|
# throw is used to signal merge - avoids dupe checks and adding it to hostclasses
|
@@ -219,12 +221,14 @@ class Puppet::Resource::TypeCollection
|
|
219
221
|
def dupe_check(instance, hash)
|
220
222
|
dupe = hash[instance.name]
|
221
223
|
return unless dupe
|
224
|
+
|
222
225
|
message = yield dupe
|
223
226
|
instance.fail Puppet::ParseError, message
|
224
227
|
end
|
225
228
|
|
226
229
|
def dupe_check_singleton(instance, set)
|
227
230
|
return if set.empty?
|
231
|
+
|
228
232
|
message = yield set[0]
|
229
233
|
instance.fail Puppet::ParseError, message
|
230
234
|
end
|
data/lib/puppet/resource.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../puppet'
|
3
4
|
require_relative '../puppet/util/tagging'
|
4
5
|
require_relative '../puppet/parameter'
|
@@ -37,7 +38,7 @@ class Puppet::Resource
|
|
37
38
|
CLASS_STRING = 'class'
|
38
39
|
DEFINED_TYPE_STRING = 'defined_type'
|
39
40
|
COMPILABLE_TYPE_STRING = 'compilable_type'
|
40
|
-
UNKNOWN_TYPE_STRING
|
41
|
+
UNKNOWN_TYPE_STRING = 'unknown'
|
41
42
|
|
42
43
|
PCORE_TYPE_KEY = '__ptype'
|
43
44
|
VALUE_KEY = 'value'
|
@@ -51,8 +52,10 @@ class Puppet::Resource
|
|
51
52
|
def initialize_from_hash(data)
|
52
53
|
type = data['type']
|
53
54
|
raise ArgumentError, _('No resource type provided in serialized data') unless type
|
55
|
+
|
54
56
|
title = data['title']
|
55
57
|
raise ArgumentError, _('No resource title provided in serialized data') unless title
|
58
|
+
|
56
59
|
@type, @title = self.class.type_and_title(type, title)
|
57
60
|
|
58
61
|
params = data['parameters']
|
@@ -125,14 +128,17 @@ class Puppet::Resource
|
|
125
128
|
end
|
126
129
|
|
127
130
|
unless params.empty?
|
128
|
-
data['parameters'] =
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
131
|
+
data['parameters'] =
|
132
|
+
Puppet::Pops::Serialization::ToDataConverter
|
133
|
+
.convert(params,
|
134
|
+
{
|
135
|
+
:rich_data => Puppet.lookup(:rich_data),
|
136
|
+
:symbol_as_string => true,
|
137
|
+
:local_reference => false,
|
138
|
+
:type_by_reference => true,
|
139
|
+
:message_prefix => ref,
|
140
|
+
:semantic => self
|
141
|
+
})
|
136
142
|
end
|
137
143
|
|
138
144
|
data['sensitive_parameters'] = sensitive_parameters.map(&:to_s) unless sensitive_parameters.empty?
|
@@ -184,6 +190,7 @@ class Puppet::Resource
|
|
184
190
|
return false unless other.respond_to?(:title) and self.type == other.type and self.title == other.title
|
185
191
|
|
186
192
|
return false unless to_hash == other.to_hash
|
193
|
+
|
187
194
|
true
|
188
195
|
end
|
189
196
|
|
@@ -291,7 +298,7 @@ class Puppet::Resource
|
|
291
298
|
@sensitive_parameters.replace(type.sensitive_parameters)
|
292
299
|
else
|
293
300
|
if type.is_a?(Hash)
|
294
|
-
#TRANSLATORS 'Puppet::Resource.new' should not be translated
|
301
|
+
# TRANSLATORS 'Puppet::Resource.new' should not be translated
|
295
302
|
raise ArgumentError, _("Puppet::Resource.new does not take a hash as the first argument.") + ' ' +
|
296
303
|
_("Did you mean (%{type}, %{title}) ?") %
|
297
304
|
{ type: (type[:type] || type["type"]).inspect, title: (type[:title] || type["title"]).inspect }
|
@@ -321,6 +328,7 @@ class Puppet::Resource
|
|
321
328
|
# Set things like environment, strictness first.
|
322
329
|
attributes.each do |attr, value|
|
323
330
|
next if attr == :parameters
|
331
|
+
|
324
332
|
send(attr.to_s + "=", value)
|
325
333
|
end
|
326
334
|
|
@@ -439,7 +447,7 @@ class Puppet::Resource
|
|
439
447
|
attr_max = attr.inject(0) { |max,k| k.to_s.length > max ? k.to_s.length : max }
|
440
448
|
|
441
449
|
attr.sort!
|
442
|
-
if attr.first != :ensure
|
450
|
+
if attr.first != :ensure && attr.include?(:ensure)
|
443
451
|
attr.delete(:ensure)
|
444
452
|
attr.unshift(:ensure)
|
445
453
|
end
|
@@ -474,7 +482,7 @@ class Puppet::Resource
|
|
474
482
|
attr_max = attr.inject(0) { |max,k| k.to_s.length > max ? k.to_s.length : max }
|
475
483
|
|
476
484
|
attr.sort!
|
477
|
-
if attr.first != :ensure
|
485
|
+
if attr.first != :ensure && attr.include?(:ensure)
|
478
486
|
attr.delete(:ensure)
|
479
487
|
attr.unshift(:ensure)
|
480
488
|
end
|
@@ -505,7 +513,7 @@ class Puppet::Resource
|
|
505
513
|
elsif self.catalog && self.catalog.catalog_format >= 2
|
506
514
|
typeklass = Puppet::Type.type(:component)
|
507
515
|
else
|
508
|
-
typeklass =
|
516
|
+
typeklass = Puppet::Type.type(self.type) || Puppet::Type.type(:component)
|
509
517
|
end
|
510
518
|
|
511
519
|
raise(Puppet::Error, "Resource type '#{self.type}' was not found") unless typeklass
|
@@ -521,7 +529,7 @@ class Puppet::Resource
|
|
521
529
|
end
|
522
530
|
|
523
531
|
def missing_arguments
|
524
|
-
resource_type.arguments.select do |param,
|
532
|
+
resource_type.arguments.select do |param, _default|
|
525
533
|
the_param = parameters[param.to_sym]
|
526
534
|
the_param.nil? || the_param.value.nil? || the_param.value == :undef
|
527
535
|
end
|
@@ -574,7 +582,6 @@ class Puppet::Resource
|
|
574
582
|
[type, title]
|
575
583
|
end
|
576
584
|
|
577
|
-
|
578
585
|
def self.extract_type_and_title(argtype, argtitle)
|
579
586
|
if (argtype.nil? || argtype == :component || argtype == :whit) &&
|
580
587
|
argtitle =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
@@ -582,7 +589,7 @@ class Puppet::Resource
|
|
582
589
|
argtype =~ /^([^\[\]]+)\[(.+)\]$/m then [ $1, $2 ]
|
583
590
|
elsif argtitle then [ argtype, argtitle ]
|
584
591
|
elsif argtype.is_a?(Puppet::Type) then [ argtype.class.name, argtype.title ]
|
585
|
-
else raise ArgumentError, _("No title provided and %{type} is not a valid resource reference") % { type: argtype.inspect }
|
592
|
+
else raise ArgumentError, _("No title provided and %{type} is not a valid resource reference") % { type: argtype.inspect } # rubocop:disable Lint/ElseLayout
|
586
593
|
end
|
587
594
|
end
|
588
595
|
private_class_method :extract_type_and_title
|
@@ -590,6 +597,7 @@ class Puppet::Resource
|
|
590
597
|
def self.munge_type_name(value)
|
591
598
|
return :main if value == :main
|
592
599
|
return TYPE_CLASS if value == '' || value.nil? || value.to_s.casecmp('component') == 0
|
600
|
+
|
593
601
|
Puppet::Pops::Types::TypeFormatter.singleton.capitalize_segments(value.to_s)
|
594
602
|
end
|
595
603
|
private_class_method :munge_type_name
|
data/lib/puppet/runtime.rb
CHANGED