openvox 7.37.1 → 8.19.0
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/CHANGELOG.md +7 -3
- data/Gemfile +17 -12
- data/README.md +25 -30
- data/Rakefile +43 -33
- data/bin/puppet +1 -0
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/build_defaults.yaml +1 -1
- data/ext/windows/service/daemon.rb +54 -60
- data/install.rb +21 -92
- data/lib/hiera/puppet_function.rb +8 -6
- data/lib/hiera/scope.rb +15 -13
- data/lib/hiera_puppet.rb +4 -6
- data/lib/puppet/agent/disabler.rb +5 -3
- data/lib/puppet/agent/locker.rb +2 -2
- data/lib/puppet/agent.rb +6 -4
- data/lib/puppet/application/agent.rb +305 -301
- data/lib/puppet/application/apply.rb +124 -117
- data/lib/puppet/application/catalog.rb +2 -0
- data/lib/puppet/application/config.rb +2 -0
- data/lib/puppet/application/describe.rb +50 -48
- data/lib/puppet/application/device.rb +224 -223
- data/lib/puppet/application/doc.rb +57 -58
- data/lib/puppet/application/epp.rb +2 -0
- data/lib/puppet/application/face_base.rb +18 -17
- data/lib/puppet/application/facts.rb +2 -0
- data/lib/puppet/application/filebucket.rb +174 -168
- data/lib/puppet/application/generate.rb +3 -1
- data/lib/puppet/application/help.rb +2 -0
- data/lib/puppet/application/indirection_base.rb +2 -0
- data/lib/puppet/application/lookup.rb +181 -181
- data/lib/puppet/application/module.rb +2 -0
- data/lib/puppet/application/node.rb +2 -0
- data/lib/puppet/application/parser.rb +2 -0
- data/lib/puppet/application/plugin.rb +2 -0
- data/lib/puppet/application/report.rb +2 -0
- data/lib/puppet/application/resource.rb +106 -96
- data/lib/puppet/application/script.rb +76 -74
- data/lib/puppet/application/ssl.rb +100 -92
- data/lib/puppet/application.rb +32 -32
- data/lib/puppet/application_support.rb +3 -2
- data/lib/puppet/coercion.rb +5 -3
- data/lib/puppet/compilable_resource_type.rb +4 -2
- data/lib/puppet/concurrent/lock.rb +2 -3
- data/lib/puppet/concurrent/synchronized.rb +2 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +11 -5
- data/lib/puppet/configurer/fact_handler.rb +17 -16
- data/lib/puppet/configurer/plugin_handler.rb +2 -0
- data/lib/puppet/configurer.rb +40 -36
- data/lib/puppet/confine/any.rb +3 -1
- data/lib/puppet/confine/boolean.rb +3 -1
- data/lib/puppet/confine/exists.rb +3 -1
- data/lib/puppet/confine/false.rb +3 -1
- data/lib/puppet/confine/feature.rb +3 -2
- data/lib/puppet/confine/true.rb +3 -1
- data/lib/puppet/confine/variable.rb +4 -2
- data/lib/puppet/confine.rb +5 -2
- data/lib/puppet/confine_collection.rb +6 -3
- data/lib/puppet/confiner.rb +5 -3
- data/lib/puppet/context/trusted_information.rb +12 -10
- data/lib/puppet/context.rb +2 -0
- data/lib/puppet/daemon.rb +26 -10
- data/lib/puppet/data_binding.rb +3 -1
- data/lib/puppet/datatypes/error.rb +3 -1
- data/lib/puppet/datatypes/impl/error.rb +2 -0
- data/lib/puppet/datatypes.rb +12 -7
- data/lib/puppet/defaults.rb +164 -125
- data/lib/puppet/environments.rb +13 -15
- data/lib/puppet/error.rb +19 -15
- data/lib/puppet/etc.rb +10 -5
- data/lib/puppet/external/dot.rb +65 -75
- data/lib/puppet/face/catalog/select.rb +4 -2
- data/lib/puppet/face/catalog.rb +7 -5
- data/lib/puppet/face/config.rb +30 -31
- data/lib/puppet/face/epp.rb +25 -26
- data/lib/puppet/face/facts.rb +8 -6
- data/lib/puppet/face/generate.rb +5 -2
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help/global.erb +1 -1
- data/lib/puppet/face/help.rb +80 -62
- data/lib/puppet/face/module/changes.rb +4 -3
- data/lib/puppet/face/module/install.rb +7 -4
- data/lib/puppet/face/module/list.rb +52 -53
- data/lib/puppet/face/module/uninstall.rb +2 -0
- data/lib/puppet/face/module/upgrade.rb +5 -3
- data/lib/puppet/face/module.rb +3 -1
- data/lib/puppet/face/node/clean.rb +4 -2
- data/lib/puppet/face/node.rb +5 -3
- data/lib/puppet/face/parser.rb +18 -19
- data/lib/puppet/face/plugin.rb +10 -8
- data/lib/puppet/face/report.rb +10 -10
- data/lib/puppet/face/resource.rb +2 -0
- data/lib/puppet/face.rb +2 -0
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +13 -13
- data/lib/puppet/feature/bolt.rb +2 -0
- data/lib/puppet/feature/cfpropertylist.rb +2 -0
- data/lib/puppet/feature/eventlog.rb +2 -0
- data/lib/puppet/feature/hiera_eyaml.rb +2 -0
- data/lib/puppet/feature/hocon.rb +2 -0
- data/lib/puppet/feature/libuser.rb +5 -3
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/pe_license.rb +4 -2
- data/lib/puppet/feature/pson.rb +6 -0
- data/lib/puppet/feature/selinux.rb +2 -0
- data/lib/puppet/feature/ssh.rb +3 -1
- data/lib/puppet/feature/telnet.rb +3 -7
- data/lib/puppet/feature/zlib.rb +3 -1
- data/lib/puppet/ffi/posix/constants.rb +3 -1
- data/lib/puppet/ffi/posix/functions.rb +2 -1
- data/lib/puppet/ffi/posix.rb +2 -0
- data/lib/puppet/ffi/windows/api_types.rb +3 -1
- data/lib/puppet/ffi/windows/constants.rb +80 -78
- data/lib/puppet/ffi/windows/functions.rb +76 -75
- data/lib/puppet/ffi/windows/structs.rb +6 -5
- data/lib/puppet/ffi/windows.rb +2 -0
- data/lib/puppet/file_bucket/dipper.rb +20 -11
- data/lib/puppet/file_bucket/file.rb +8 -6
- data/lib/puppet/file_bucket.rb +2 -0
- data/lib/puppet/file_serving/base.rb +17 -9
- data/lib/puppet/file_serving/configuration/parser.rb +13 -10
- data/lib/puppet/file_serving/configuration.rb +10 -7
- data/lib/puppet/file_serving/content.rb +2 -0
- data/lib/puppet/file_serving/fileset.rb +23 -19
- data/lib/puppet/file_serving/http_metadata.rb +3 -4
- data/lib/puppet/file_serving/metadata.rb +26 -23
- data/lib/puppet/file_serving/mount/file.rb +15 -11
- data/lib/puppet/file_serving/mount/locales.rb +5 -5
- data/lib/puppet/file_serving/mount/modules.rb +3 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
- data/lib/puppet/file_serving/mount/plugins.rb +5 -5
- data/lib/puppet/file_serving/mount/scripts.rb +3 -0
- data/lib/puppet/file_serving/mount/tasks.rb +3 -0
- data/lib/puppet/file_serving/mount.rb +4 -1
- data/lib/puppet/file_serving/terminus_helper.rb +2 -0
- data/lib/puppet/file_serving/terminus_selector.rb +3 -1
- data/lib/puppet/file_serving.rb +2 -0
- data/lib/puppet/file_system/file_impl.rb +9 -8
- data/lib/puppet/file_system/jruby.rb +2 -0
- data/lib/puppet/file_system/memory_file.rb +3 -0
- data/lib/puppet/file_system/memory_impl.rb +5 -1
- data/lib/puppet/file_system/path_pattern.rb +4 -2
- data/lib/puppet/file_system/posix.rb +7 -2
- data/lib/puppet/file_system/uniquefile.rb +33 -31
- data/lib/puppet/file_system/windows.rb +33 -22
- data/lib/puppet/file_system.rb +5 -3
- data/lib/puppet/forge/cache.rb +4 -3
- data/lib/puppet/forge/errors.rb +3 -4
- data/lib/puppet/forge/repository.rb +6 -3
- data/lib/puppet/forge.rb +20 -22
- data/lib/puppet/functions/abs.rb +7 -4
- data/lib/puppet/functions/alert.rb +2 -0
- data/lib/puppet/functions/all.rb +3 -1
- data/lib/puppet/functions/annotate.rb +2 -0
- data/lib/puppet/functions/any.rb +3 -1
- data/lib/puppet/functions/assert_type.rb +5 -2
- data/lib/puppet/functions/binary_file.rb +4 -1
- data/lib/puppet/functions/break.rb +4 -2
- data/lib/puppet/functions/call.rb +2 -1
- data/lib/puppet/functions/camelcase.rb +4 -3
- data/lib/puppet/functions/capitalize.rb +4 -3
- data/lib/puppet/functions/ceiling.rb +3 -2
- data/lib/puppet/functions/chomp.rb +3 -2
- data/lib/puppet/functions/chop.rb +3 -2
- data/lib/puppet/functions/compare.rb +5 -3
- data/lib/puppet/functions/contain.rb +7 -4
- data/lib/puppet/functions/convert_to.rb +2 -0
- data/lib/puppet/functions/crit.rb +2 -0
- data/lib/puppet/functions/debug.rb +2 -0
- data/lib/puppet/functions/defined.rb +10 -6
- data/lib/puppet/functions/dig.rb +13 -10
- data/lib/puppet/functions/downcase.rb +4 -2
- data/lib/puppet/functions/each.rb +2 -0
- data/lib/puppet/functions/emerg.rb +2 -0
- data/lib/puppet/functions/empty.rb +2 -0
- data/lib/puppet/functions/epp.rb +2 -1
- data/lib/puppet/functions/err.rb +2 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
- data/lib/puppet/functions/filter.rb +8 -7
- data/lib/puppet/functions/find_file.rb +6 -0
- data/lib/puppet/functions/find_template.rb +2 -0
- data/lib/puppet/functions/flatten.rb +2 -0
- data/lib/puppet/functions/floor.rb +3 -2
- data/lib/puppet/functions/get.rb +4 -2
- data/lib/puppet/functions/getvar.rb +7 -5
- data/lib/puppet/functions/group_by.rb +2 -2
- data/lib/puppet/functions/hiera.rb +2 -0
- data/lib/puppet/functions/hiera_array.rb +2 -0
- data/lib/puppet/functions/hiera_hash.rb +2 -0
- data/lib/puppet/functions/hiera_include.rb +3 -0
- data/lib/puppet/functions/hocon_data.rb +5 -5
- data/lib/puppet/functions/import.rb +3 -1
- data/lib/puppet/functions/include.rb +5 -2
- data/lib/puppet/functions/index.rb +5 -4
- data/lib/puppet/functions/info.rb +2 -0
- data/lib/puppet/functions/inline_epp.rb +2 -1
- data/lib/puppet/functions/join.rb +4 -2
- data/lib/puppet/functions/json_data.rb +6 -6
- data/lib/puppet/functions/keys.rb +2 -0
- data/lib/puppet/functions/length.rb +2 -1
- data/lib/puppet/functions/lest.rb +2 -0
- data/lib/puppet/functions/lookup.rb +12 -12
- data/lib/puppet/functions/lstrip.rb +3 -2
- data/lib/puppet/functions/map.rb +4 -2
- data/lib/puppet/functions/match.rb +8 -5
- data/lib/puppet/functions/max.rb +75 -8
- data/lib/puppet/functions/min.rb +75 -8
- data/lib/puppet/functions/module_directory.rb +2 -0
- data/lib/puppet/functions/new.rb +5 -3
- data/lib/puppet/functions/next.rb +3 -1
- data/lib/puppet/functions/notice.rb +2 -0
- data/lib/puppet/functions/reduce.rb +8 -11
- data/lib/puppet/functions/regsubst.rb +15 -16
- data/lib/puppet/functions/require.rb +7 -3
- data/lib/puppet/functions/return.rb +2 -0
- data/lib/puppet/functions/reverse_each.rb +2 -0
- data/lib/puppet/functions/round.rb +2 -0
- data/lib/puppet/functions/rstrip.rb +3 -2
- data/lib/puppet/functions/scanf.rb +2 -0
- data/lib/puppet/functions/size.rb +2 -2
- data/lib/puppet/functions/slice.rb +4 -1
- data/lib/puppet/functions/sort.rb +2 -0
- data/lib/puppet/functions/split.rb +2 -0
- data/lib/puppet/functions/step.rb +2 -0
- data/lib/puppet/functions/strftime.rb +5 -3
- data/lib/puppet/functions/strip.rb +3 -2
- data/lib/puppet/functions/then.rb +3 -0
- data/lib/puppet/functions/tree_each.rb +4 -3
- data/lib/puppet/functions/type.rb +2 -0
- data/lib/puppet/functions/unique.rb +12 -9
- data/lib/puppet/functions/unwrap.rb +2 -0
- data/lib/puppet/functions/upcase.rb +4 -2
- data/lib/puppet/functions/values.rb +2 -0
- data/lib/puppet/functions/versioncmp.rb +2 -1
- data/lib/puppet/functions/warning.rb +2 -0
- data/lib/puppet/functions/with.rb +2 -0
- data/lib/puppet/functions/yaml_data.rb +13 -13
- data/lib/puppet/functions.rb +57 -61
- data/lib/puppet/generate/models/type/property.rb +4 -1
- data/lib/puppet/generate/models/type/type.rb +5 -2
- data/lib/puppet/generate/type.rb +11 -5
- data/lib/puppet/gettext/config.rb +16 -9
- data/lib/puppet/gettext/module_translations.rb +2 -1
- data/lib/puppet/gettext/stubs.rb +2 -0
- data/lib/puppet/graph/key.rb +2 -0
- data/lib/puppet/graph/prioritizer.rb +2 -0
- data/lib/puppet/graph/rb_tree_map.rb +43 -24
- data/lib/puppet/graph/relationship_graph.rb +31 -29
- data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
- data/lib/puppet/graph/simple_graph.rb +63 -57
- data/lib/puppet/graph.rb +2 -0
- data/lib/puppet/http/client.rb +10 -6
- data/lib/puppet/http/dns.rb +12 -12
- data/lib/puppet/http/errors.rb +4 -2
- data/lib/puppet/http/external_client.rb +4 -3
- data/lib/puppet/http/factory.rb +3 -1
- data/lib/puppet/http/pool.rb +3 -1
- data/lib/puppet/http/pool_entry.rb +2 -0
- data/lib/puppet/http/proxy.rb +21 -19
- data/lib/puppet/http/redirector.rb +5 -3
- data/lib/puppet/http/resolver/server_list.rb +5 -4
- data/lib/puppet/http/resolver/settings.rb +2 -1
- data/lib/puppet/http/resolver/srv.rb +2 -1
- data/lib/puppet/http/resolver.rb +4 -2
- data/lib/puppet/http/response.rb +2 -0
- data/lib/puppet/http/response_converter.rb +4 -3
- data/lib/puppet/http/response_net_http.rb +2 -1
- data/lib/puppet/http/retry_after_handler.rb +4 -3
- data/lib/puppet/http/service/ca.rb +37 -5
- data/lib/puppet/http/service/compiler.rb +13 -10
- data/lib/puppet/http/service/file_server.rb +5 -3
- data/lib/puppet/http/service/puppetserver.rb +3 -2
- data/lib/puppet/http/service/report.rb +5 -7
- data/lib/puppet/http/service.rb +17 -22
- data/lib/puppet/http/session.rb +6 -4
- data/lib/puppet/http/site.rb +3 -1
- data/lib/puppet/http.rb +4 -2
- data/lib/puppet/indirector/catalog/compiler.rb +81 -80
- data/lib/puppet/indirector/catalog/json.rb +2 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
- data/lib/puppet/indirector/catalog/rest.rb +2 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
- data/lib/puppet/indirector/catalog/yaml.rb +2 -0
- data/lib/puppet/indirector/code.rb +2 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
- data/lib/puppet/indirector/data_binding/none.rb +2 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -1
- data/lib/puppet/indirector/envelope.rb +2 -0
- data/lib/puppet/indirector/errors.rb +2 -0
- data/lib/puppet/indirector/exec.rb +5 -3
- data/lib/puppet/indirector/face.rb +17 -28
- data/lib/puppet/indirector/fact_search.rb +4 -2
- data/lib/puppet/indirector/facts/facter.rb +10 -7
- data/lib/puppet/indirector/facts/json.rb +4 -2
- data/lib/puppet/indirector/facts/memory.rb +2 -0
- data/lib/puppet/indirector/facts/network_device.rb +2 -0
- data/lib/puppet/indirector/facts/rest.rb +2 -0
- data/lib/puppet/indirector/facts/store_configs.rb +3 -2
- data/lib/puppet/indirector/facts/yaml.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
- data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
- data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
- data/lib/puppet/indirector/file_content/file.rb +2 -0
- data/lib/puppet/indirector/file_content/file_server.rb +2 -0
- data/lib/puppet/indirector/file_content/rest.rb +3 -1
- data/lib/puppet/indirector/file_content/selector.rb +2 -0
- data/lib/puppet/indirector/file_content.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
- data/lib/puppet/indirector/file_metadata/http.rb +4 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
- data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
- data/lib/puppet/indirector/file_metadata.rb +2 -0
- data/lib/puppet/indirector/file_server.rb +3 -0
- data/lib/puppet/indirector/generic_http.rb +2 -0
- data/lib/puppet/indirector/hiera.rb +8 -7
- data/lib/puppet/indirector/indirection.rb +50 -41
- data/lib/puppet/indirector/json.rb +9 -6
- data/lib/puppet/indirector/memory.rb +5 -2
- data/lib/puppet/indirector/msgpack.rb +11 -7
- data/lib/puppet/indirector/node/exec.rb +6 -6
- data/lib/puppet/indirector/node/json.rb +2 -1
- data/lib/puppet/indirector/node/memory.rb +2 -0
- data/lib/puppet/indirector/node/msgpack.rb +2 -0
- data/lib/puppet/indirector/node/plain.rb +2 -0
- data/lib/puppet/indirector/node/rest.rb +2 -0
- data/lib/puppet/indirector/node/store_configs.rb +3 -3
- data/lib/puppet/indirector/node/yaml.rb +2 -0
- data/lib/puppet/indirector/none.rb +3 -2
- data/lib/puppet/indirector/plain.rb +2 -0
- data/lib/puppet/indirector/report/json.rb +4 -2
- data/lib/puppet/indirector/report/msgpack.rb +3 -1
- data/lib/puppet/indirector/report/processor.rb +3 -0
- data/lib/puppet/indirector/report/rest.rb +2 -13
- data/lib/puppet/indirector/report/yaml.rb +4 -2
- data/lib/puppet/indirector/request.rb +15 -12
- data/lib/puppet/indirector/resource/ral.rb +10 -10
- data/lib/puppet/indirector/resource/store_configs.rb +3 -1
- data/lib/puppet/indirector/resource/validator.rb +2 -0
- data/lib/puppet/indirector/rest.rb +3 -1
- data/lib/puppet/indirector/store_configs.rb +2 -0
- data/lib/puppet/indirector/terminus.rb +8 -4
- data/lib/puppet/indirector/yaml.rb +7 -5
- data/lib/puppet/indirector.rb +3 -0
- data/lib/puppet/info_service/class_information_service.rb +16 -17
- data/lib/puppet/info_service/plan_information_service.rb +5 -3
- data/lib/puppet/info_service/task_information_service.rb +10 -9
- data/lib/puppet/info_service.rb +1 -0
- data/lib/puppet/interface/action.rb +46 -42
- data/lib/puppet/interface/action_builder.rb +12 -6
- data/lib/puppet/interface/action_manager.rb +9 -6
- data/lib/puppet/interface/documentation.rb +40 -34
- data/lib/puppet/interface/face_collection.rb +18 -14
- data/lib/puppet/interface/option.rb +23 -11
- data/lib/puppet/interface/option_builder.rb +14 -9
- data/lib/puppet/interface/option_manager.rb +12 -10
- data/lib/puppet/interface.rb +9 -8
- data/lib/puppet/loaders.rb +2 -1
- data/lib/puppet/metatype/manager.rb +16 -15
- data/lib/puppet/module/plan.rb +22 -15
- data/lib/puppet/module/task.rb +33 -28
- data/lib/puppet/module.rb +59 -47
- data/lib/puppet/module_tool/applications/application.rb +17 -12
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/installer.rb +78 -87
- data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
- data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
- data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
- data/lib/puppet/module_tool/applications.rb +2 -0
- data/lib/puppet/module_tool/checksums.rb +4 -3
- data/lib/puppet/module_tool/dependency.rb +5 -4
- data/lib/puppet/module_tool/errors/base.rb +3 -1
- data/lib/puppet/module_tool/errors/installer.rb +6 -5
- data/lib/puppet/module_tool/errors/shared.rb +16 -15
- data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +8 -5
- data/lib/puppet/module_tool/installed_modules.rb +5 -2
- data/lib/puppet/module_tool/local_tarball.rb +10 -8
- data/lib/puppet/module_tool/metadata.rb +36 -30
- data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
- data/lib/puppet/module_tool/tar/gnu.rb +12 -8
- data/lib/puppet/module_tool/tar/mini.rb +6 -4
- data/lib/puppet/module_tool/tar.rb +4 -2
- data/lib/puppet/module_tool.rb +11 -11
- data/lib/puppet/network/authconfig.rb +2 -0
- data/lib/puppet/network/authorization.rb +2 -0
- data/lib/puppet/network/client_request.rb +7 -4
- data/lib/puppet/network/format.rb +9 -3
- data/lib/puppet/network/format_handler.rb +9 -7
- data/lib/puppet/network/format_support.rb +8 -7
- data/lib/puppet/network/formats.rb +34 -25
- data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
- data/lib/puppet/network/http/api/indirection_type.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
- data/lib/puppet/network/http/api/master/v3.rb +2 -1
- data/lib/puppet/network/http/api/master.rb +2 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
- data/lib/puppet/network/http/api/server/v3.rb +14 -13
- data/lib/puppet/network/http/api/server.rb +2 -0
- data/lib/puppet/network/http/api.rb +20 -18
- data/lib/puppet/network/http/connection.rb +6 -4
- data/lib/puppet/network/http/error.rb +5 -3
- data/lib/puppet/network/http/handler.rb +12 -14
- data/lib/puppet/network/http/issues.rb +2 -0
- data/lib/puppet/network/http/memory_response.rb +3 -1
- data/lib/puppet/network/http/request.rb +22 -10
- data/lib/puppet/network/http/response.rb +2 -0
- data/lib/puppet/network/http/route.rb +14 -11
- data/lib/puppet/network/http.rb +2 -0
- data/lib/puppet/network/http_pool.rb +4 -3
- data/lib/puppet/network/uri.rb +2 -0
- data/lib/puppet/network.rb +2 -0
- data/lib/puppet/node/environment.rb +36 -33
- data/lib/puppet/node/facts.rb +10 -10
- data/lib/puppet/node/server_facts.rb +6 -6
- data/lib/puppet/node.rb +12 -12
- data/lib/puppet/pal/catalog_compiler.rb +2 -3
- data/lib/puppet/pal/compiler.rb +11 -6
- data/lib/puppet/pal/function_signature.rb +5 -3
- data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
- data/lib/puppet/pal/pal_api.rb +2 -0
- data/lib/puppet/pal/pal_impl.rb +103 -108
- data/lib/puppet/pal/plan_signature.rb +4 -2
- data/lib/puppet/pal/script_compiler.rb +4 -2
- data/lib/puppet/pal/task_signature.rb +15 -9
- data/lib/puppet/parameter/boolean.rb +2 -0
- data/lib/puppet/parameter/package_options.rb +3 -1
- data/lib/puppet/parameter/path.rb +7 -3
- data/lib/puppet/parameter/value.rb +5 -3
- data/lib/puppet/parameter/value_collection.rb +17 -16
- data/lib/puppet/parameter.rb +17 -16
- data/lib/puppet/parser/abstract_compiler.rb +2 -3
- data/lib/puppet/parser/ast/block_expression.rb +4 -2
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/hostclass.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +2 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
- data/lib/puppet/parser/ast/resource.rb +8 -8
- data/lib/puppet/parser/ast/resource_instance.rb +3 -0
- data/lib/puppet/parser/ast/resourceparam.rb +9 -7
- data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
- data/lib/puppet/parser/ast.rb +16 -15
- data/lib/puppet/parser/catalog_compiler.rb +3 -3
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
- data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
- data/lib/puppet/parser/compiler.rb +45 -44
- data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
- data/lib/puppet/parser/files.rb +8 -6
- data/lib/puppet/parser/functions/assert_type.rb +43 -41
- data/lib/puppet/parser/functions/binary_file.rb +16 -14
- data/lib/puppet/parser/functions/break.rb +29 -27
- data/lib/puppet/parser/functions/contain.rb +3 -1
- data/lib/puppet/parser/functions/create_resources.rb +18 -14
- data/lib/puppet/parser/functions/defined.rb +104 -102
- data/lib/puppet/parser/functions/dig.rb +26 -24
- data/lib/puppet/parser/functions/digest.rb +3 -1
- data/lib/puppet/parser/functions/each.rb +101 -99
- data/lib/puppet/parser/functions/epp.rb +4 -3
- data/lib/puppet/parser/functions/fail.rb +11 -9
- data/lib/puppet/parser/functions/file.rb +16 -14
- data/lib/puppet/parser/functions/filter.rb +57 -55
- data/lib/puppet/parser/functions/find_file.rb +19 -18
- data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
- data/lib/puppet/parser/functions/generate.rb +23 -21
- data/lib/puppet/parser/functions/hiera.rb +95 -93
- data/lib/puppet/parser/functions/hiera_array.rb +83 -82
- data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
- data/lib/puppet/parser/functions/hiera_include.rb +93 -92
- data/lib/puppet/parser/functions/include.rb +5 -3
- data/lib/puppet/parser/functions/inline_epp.rb +4 -3
- data/lib/puppet/parser/functions/inline_template.rb +15 -13
- data/lib/puppet/parser/functions/lest.rb +36 -34
- data/lib/puppet/parser/functions/lookup.rb +132 -130
- data/lib/puppet/parser/functions/map.rb +54 -52
- data/lib/puppet/parser/functions/match.rb +31 -29
- data/lib/puppet/parser/functions/md5.rb +4 -2
- data/lib/puppet/parser/functions/new.rb +916 -915
- data/lib/puppet/parser/functions/next.rb +36 -34
- data/lib/puppet/parser/functions/realize.rb +13 -11
- data/lib/puppet/parser/functions/reduce.rb +134 -132
- data/lib/puppet/parser/functions/regsubst.rb +8 -5
- data/lib/puppet/parser/functions/require.rb +8 -5
- data/lib/puppet/parser/functions/return.rb +90 -88
- data/lib/puppet/parser/functions/reverse_each.rb +59 -57
- data/lib/puppet/parser/functions/scanf.rb +25 -23
- data/lib/puppet/parser/functions/sha1.rb +4 -2
- data/lib/puppet/parser/functions/sha256.rb +3 -1
- data/lib/puppet/parser/functions/shellquote.rb +2 -0
- data/lib/puppet/parser/functions/slice.rb +27 -25
- data/lib/puppet/parser/functions/split.rb +7 -6
- data/lib/puppet/parser/functions/sprintf.rb +8 -7
- data/lib/puppet/parser/functions/step.rb +62 -60
- data/lib/puppet/parser/functions/strftime.rb +175 -173
- data/lib/puppet/parser/functions/tag.rb +10 -7
- data/lib/puppet/parser/functions/tagged.rb +16 -13
- data/lib/puppet/parser/functions/template.rb +27 -24
- data/lib/puppet/parser/functions/then.rb +54 -52
- data/lib/puppet/parser/functions/type.rb +36 -34
- data/lib/puppet/parser/functions/versioncmp.rb +3 -2
- data/lib/puppet/parser/functions/with.rb +22 -20
- data/lib/puppet/parser/functions.rb +12 -9
- data/lib/puppet/parser/parser_factory.rb +2 -0
- data/lib/puppet/parser/relationship.rb +9 -3
- data/lib/puppet/parser/resource/param.rb +4 -2
- data/lib/puppet/parser/resource.rb +42 -40
- data/lib/puppet/parser/scope.rb +84 -70
- data/lib/puppet/parser/script_compiler.rb +12 -12
- data/lib/puppet/parser/templatewrapper.rb +3 -2
- data/lib/puppet/parser/type_loader.rb +31 -30
- data/lib/puppet/parser.rb +3 -1
- data/lib/puppet/plugins/configuration.rb +2 -0
- data/lib/puppet/plugins/syntax_checkers.rb +2 -1
- data/lib/puppet/plugins.rb +3 -1
- data/lib/puppet/pops/adaptable.rb +5 -3
- data/lib/puppet/pops/adapters.rb +4 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
- data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
- data/lib/puppet/pops/evaluator/closure.rb +272 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
- data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
- data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
- data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
- data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
- data/lib/puppet/pops/functions/dispatch.rb +7 -7
- data/lib/puppet/pops/functions/dispatcher.rb +8 -7
- data/lib/puppet/pops/functions/function.rb +18 -20
- data/lib/puppet/pops/issue_reporter.rb +25 -22
- data/lib/puppet/pops/issues.rb +10 -5
- data/lib/puppet/pops/label_provider.rb +6 -4
- data/lib/puppet/pops/loader/base_loader.rb +4 -4
- data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
- data/lib/puppet/pops/loader/gem_support.rb +5 -2
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
- data/lib/puppet/pops/loader/loader.rb +8 -8
- data/lib/puppet/pops/loader/loader_paths.rb +42 -41
- data/lib/puppet/pops/loader/module_loaders.rb +45 -49
- data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
- data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
- data/lib/puppet/pops/loader/static_loader.rb +29 -27
- data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
- data/lib/puppet/pops/loader/typed_name.rb +4 -2
- data/lib/puppet/pops/loader/uri_helper.rb +3 -1
- data/lib/puppet/pops/loaders.rb +27 -23
- data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/context.rb +32 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
- data/lib/puppet/pops/lookup/data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/explainer.rb +47 -45
- data/lib/puppet/pops/lookup/function_provider.rb +8 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
- data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
- data/lib/puppet/pops/lookup/interpolation.rb +21 -10
- data/lib/puppet/pops/lookup/invocation.rb +4 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
- data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
- data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
- data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
- data/lib/puppet/pops/lookup.rb +16 -11
- data/lib/puppet/pops/merge_strategy.rb +22 -16
- data/lib/puppet/pops/migration/migration_checker.rb +8 -5
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +18 -18
- data/lib/puppet/pops/model/factory.rb +33 -31
- data/lib/puppet/pops/model/model_label_provider.rb +5 -2
- data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
- data/lib/puppet/pops/model/pn_transformer.rb +5 -6
- data/lib/puppet/pops/model/tree_dumper.rb +7 -4
- data/lib/puppet/pops/parser/code_merger.rb +3 -3
- data/lib/puppet/pops/parser/epp_parser.rb +6 -5
- data/lib/puppet/pops/parser/epp_support.rb +10 -9
- data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
- data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
- data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
- data/lib/puppet/pops/parser/lexer2.rb +74 -62
- data/lib/puppet/pops/parser/lexer_support.rb +57 -57
- data/lib/puppet/pops/parser/locatable.rb +2 -2
- data/lib/puppet/pops/parser/locator.rb +47 -43
- data/lib/puppet/pops/parser/parser_support.rb +22 -21
- data/lib/puppet/pops/parser/pn_parser.rb +10 -9
- data/lib/puppet/pops/parser/slurp_support.rb +41 -40
- data/lib/puppet/pops/patterns.rb +14 -14
- data/lib/puppet/pops/pcore.rb +7 -6
- data/lib/puppet/pops/pn.rb +8 -5
- data/lib/puppet/pops/puppet_stack.rb +3 -1
- data/lib/puppet/pops/resource/param.rb +13 -12
- data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
- data/lib/puppet/pops/semantic_error.rb +3 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
- data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
- data/lib/puppet/pops/serialization/deserializer.rb +3 -0
- data/lib/puppet/pops/serialization/extension.rb +8 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
- data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
- data/lib/puppet/pops/serialization/json.rb +9 -5
- data/lib/puppet/pops/serialization/json_path.rb +3 -1
- data/lib/puppet/pops/serialization/object.rb +6 -3
- data/lib/puppet/pops/serialization/serializer.rb +20 -16
- data/lib/puppet/pops/serialization/time_factory.rb +2 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
- data/lib/puppet/pops/serialization.rb +10 -8
- data/lib/puppet/pops/time/timespan.rb +33 -21
- data/lib/puppet/pops/time/timestamp.rb +12 -5
- data/lib/puppet/pops/types/annotatable.rb +3 -2
- data/lib/puppet/pops/types/annotation.rb +6 -4
- data/lib/puppet/pops/types/class_loader.rb +17 -15
- data/lib/puppet/pops/types/implementation_registry.rb +4 -1
- data/lib/puppet/pops/types/iterable.rb +24 -14
- data/lib/puppet/pops/types/p_binary_type.rb +6 -6
- data/lib/puppet/pops/types/p_init_type.rb +15 -12
- data/lib/puppet/pops/types/p_meta_type.rb +6 -5
- data/lib/puppet/pops/types/p_object_type.rb +104 -79
- data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
- data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
- data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
- data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
- data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
- data/lib/puppet/pops/types/p_uri_type.rb +41 -33
- data/lib/puppet/pops/types/puppet_object.rb +2 -1
- data/lib/puppet/pops/types/recursion_guard.rb +12 -6
- data/lib/puppet/pops/types/ruby_generator.rb +19 -14
- data/lib/puppet/pops/types/ruby_method.rb +8 -7
- data/lib/puppet/pops/types/string_converter.rb +113 -103
- data/lib/puppet/pops/types/tree_iterators.rb +16 -20
- data/lib/puppet/pops/types/type_acceptor.rb +2 -0
- data/lib/puppet/pops/types/type_asserter.rb +5 -3
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +56 -49
- data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
- data/lib/puppet/pops/types/type_factory.rb +25 -16
- data/lib/puppet/pops/types/type_formatter.rb +60 -65
- data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
- data/lib/puppet/pops/types/type_parser.rb +124 -117
- data/lib/puppet/pops/types/type_set_reference.rb +3 -0
- data/lib/puppet/pops/types/type_with_members.rb +2 -2
- data/lib/puppet/pops/types/types.rb +267 -249
- data/lib/puppet/pops/utils.rb +43 -45
- data/lib/puppet/pops/validation/checker4_0.rb +65 -58
- data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
- data/lib/puppet/pops/validation.rb +26 -23
- data/lib/puppet/pops/visitable.rb +2 -0
- data/lib/puppet/pops/visitor.rb +18 -4
- data/lib/puppet/pops.rb +6 -3
- data/lib/puppet/property/boolean.rb +2 -0
- data/lib/puppet/property/ensure.rb +17 -16
- data/lib/puppet/property/keyvalue.rb +15 -14
- data/lib/puppet/property/list.rb +10 -9
- data/lib/puppet/property/ordered_list.rb +6 -5
- data/lib/puppet/property.rb +47 -48
- data/lib/puppet/provider/aix_object.rb +15 -9
- data/lib/puppet/provider/command.rb +2 -0
- data/lib/puppet/provider/confine.rb +2 -0
- data/lib/puppet/provider/exec/posix.rb +4 -1
- data/lib/puppet/provider/exec/shell.rb +2 -0
- data/lib/puppet/provider/exec/windows.rb +6 -4
- data/lib/puppet/provider/exec.rb +6 -4
- data/lib/puppet/provider/file/posix.rb +37 -19
- data/lib/puppet/provider/file/windows.rb +28 -29
- data/lib/puppet/provider/group/aix.rb +4 -2
- data/lib/puppet/provider/group/directoryservice.rb +7 -5
- data/lib/puppet/provider/group/groupadd.rb +16 -10
- data/lib/puppet/provider/group/ldap.rb +3 -0
- data/lib/puppet/provider/group/pw.rb +4 -3
- data/lib/puppet/provider/group/windows_adsi.rb +10 -7
- data/lib/puppet/provider/ldap.rb +5 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +8 -8
- data/lib/puppet/provider/nameservice.rb +23 -19
- data/lib/puppet/provider/network_device.rb +2 -2
- data/lib/puppet/provider/package/aix.rb +29 -27
- data/lib/puppet/provider/package/appdmg.rb +24 -22
- data/lib/puppet/provider/package/apple.rb +7 -5
- data/lib/puppet/provider/package/apt.rb +28 -25
- data/lib/puppet/provider/package/aptitude.rb +3 -3
- data/lib/puppet/provider/package/aptrpm.rb +18 -14
- data/lib/puppet/provider/package/blastwave.rb +19 -22
- data/lib/puppet/provider/package/dnf.rb +12 -5
- data/lib/puppet/provider/package/dnfmodule.rb +17 -15
- data/lib/puppet/provider/package/dpkg.rb +24 -25
- data/lib/puppet/provider/package/fink.rb +17 -15
- data/lib/puppet/provider/package/freebsd.rb +6 -4
- data/lib/puppet/provider/package/gem.rb +29 -26
- data/lib/puppet/provider/package/hpux.rb +9 -7
- data/lib/puppet/provider/package/macports.rb +6 -4
- data/lib/puppet/provider/package/nim.rb +27 -28
- data/lib/puppet/provider/package/openbsd.rb +37 -34
- data/lib/puppet/provider/package/opkg.rb +17 -14
- data/lib/puppet/provider/package/pacman.rb +39 -42
- data/lib/puppet/provider/package/pip.rb +32 -31
- data/lib/puppet/provider/package/pip2.rb +3 -2
- data/lib/puppet/provider/package/pip3.rb +3 -2
- data/lib/puppet/provider/package/pkg.rb +46 -41
- data/lib/puppet/provider/package/pkgdmg.rb +23 -17
- data/lib/puppet/provider/package/pkgin.rb +14 -13
- data/lib/puppet/provider/package/pkgng.rb +20 -15
- data/lib/puppet/provider/package/pkgutil.rb +40 -41
- data/lib/puppet/provider/package/portage.rb +73 -69
- data/lib/puppet/provider/package/ports.rb +19 -16
- data/lib/puppet/provider/package/portupgrade.rb +48 -55
- data/lib/puppet/provider/package/puppet_gem.rb +6 -15
- data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
- data/lib/puppet/provider/package/rpm.rb +45 -40
- data/lib/puppet/provider/package/rug.rb +11 -11
- data/lib/puppet/provider/package/sun.rb +28 -24
- data/lib/puppet/provider/package/sunfreeware.rb +3 -1
- data/lib/puppet/provider/package/tdnf.rb +9 -2
- data/lib/puppet/provider/package/up2date.rb +10 -10
- data/lib/puppet/provider/package/urpmi.rb +9 -7
- data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
- data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
- data/lib/puppet/provider/package/windows/package.rb +8 -5
- data/lib/puppet/provider/package/windows.rb +10 -9
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +65 -62
- data/lib/puppet/provider/package/zypper.rb +29 -29
- data/lib/puppet/provider/package.rb +9 -7
- data/lib/puppet/provider/package_targetable.rb +5 -3
- data/lib/puppet/provider/parsedfile.rb +21 -17
- data/lib/puppet/provider/service/base.rb +19 -23
- data/lib/puppet/provider/service/bsd.rb +7 -5
- data/lib/puppet/provider/service/daemontools.rb +42 -39
- data/lib/puppet/provider/service/debian.rb +12 -10
- data/lib/puppet/provider/service/freebsd.rb +50 -52
- data/lib/puppet/provider/service/gentoo.rb +11 -9
- data/lib/puppet/provider/service/init.rb +33 -31
- data/lib/puppet/provider/service/launchd.rb +38 -31
- data/lib/puppet/provider/service/openbsd.rb +17 -16
- data/lib/puppet/provider/service/openrc.rb +6 -5
- data/lib/puppet/provider/service/openwrt.rb +7 -6
- data/lib/puppet/provider/service/rcng.rb +7 -5
- data/lib/puppet/provider/service/redhat.rb +10 -7
- data/lib/puppet/provider/service/runit.rb +16 -15
- data/lib/puppet/provider/service/service.rb +7 -8
- data/lib/puppet/provider/service/smf.rb +42 -37
- data/lib/puppet/provider/service/src.rb +29 -29
- data/lib/puppet/provider/service/systemd.rb +48 -48
- data/lib/puppet/provider/service/upstart.rb +37 -37
- data/lib/puppet/provider/service/windows.rb +45 -48
- data/lib/puppet/provider/user/aix.rb +24 -20
- data/lib/puppet/provider/user/directoryservice.rb +98 -91
- data/lib/puppet/provider/user/hpux.rb +33 -35
- data/lib/puppet/provider/user/ldap.rb +13 -10
- data/lib/puppet/provider/user/openbsd.rb +24 -22
- data/lib/puppet/provider/user/pw.rb +8 -7
- data/lib/puppet/provider/user/user_role_add.rb +40 -36
- data/lib/puppet/provider/user/useradd.rb +64 -53
- data/lib/puppet/provider/user/windows_adsi.rb +14 -10
- data/lib/puppet/provider.rb +20 -19
- data/lib/puppet/reference/configuration.rb +55 -47
- data/lib/puppet/reference/function.rb +2 -0
- data/lib/puppet/reference/indirection.rb +33 -28
- data/lib/puppet/reference/metaparameter.rb +3 -1
- data/lib/puppet/reference/providers.rb +12 -10
- data/lib/puppet/reference/report.rb +2 -0
- data/lib/puppet/reference/type.rb +7 -5
- data/lib/puppet/relationship.rb +10 -9
- data/lib/puppet/reports/http.rb +3 -2
- data/lib/puppet/reports/log.rb +4 -3
- data/lib/puppet/reports/store.rb +9 -6
- data/lib/puppet/reports.rb +8 -6
- data/lib/puppet/resource/catalog.rb +54 -53
- data/lib/puppet/resource/status.rb +9 -7
- data/lib/puppet/resource/type.rb +65 -41
- data/lib/puppet/resource/type_collection.rb +10 -6
- data/lib/puppet/resource.rb +91 -81
- data/lib/puppet/runtime.rb +2 -0
- data/lib/puppet/scheduler/job.rb +2 -0
- data/lib/puppet/scheduler/scheduler.rb +4 -2
- data/lib/puppet/scheduler/splay_job.rb +16 -3
- data/lib/puppet/scheduler/timer.rb +2 -0
- data/lib/puppet/scheduler.rb +3 -1
- data/lib/puppet/settings/alias_setting.rb +5 -5
- data/lib/puppet/settings/array_setting.rb +2 -1
- data/lib/puppet/settings/autosign_setting.rb +2 -1
- data/lib/puppet/settings/base_setting.rb +23 -18
- data/lib/puppet/settings/boolean_setting.rb +5 -3
- data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
- data/lib/puppet/settings/config_file.rb +11 -9
- data/lib/puppet/settings/directory_setting.rb +2 -0
- data/lib/puppet/settings/duration_setting.rb +5 -4
- data/lib/puppet/settings/enum_setting.rb +3 -1
- data/lib/puppet/settings/environment_conf.rb +19 -15
- data/lib/puppet/settings/errors.rb +6 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
- data/lib/puppet/settings/file_setting.rb +15 -24
- data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
- data/lib/puppet/settings/ini_file.rb +5 -3
- data/lib/puppet/settings/integer_setting.rb +3 -1
- data/lib/puppet/settings/path_setting.rb +2 -0
- data/lib/puppet/settings/port_setting.rb +4 -2
- data/lib/puppet/settings/priority_setting.rb +13 -12
- data/lib/puppet/settings/server_list_setting.rb +7 -6
- data/lib/puppet/settings/string_setting.rb +2 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
- data/lib/puppet/settings/terminus_setting.rb +2 -0
- data/lib/puppet/settings/ttl_setting.rb +7 -5
- data/lib/puppet/settings/value_translator.rb +9 -7
- data/lib/puppet/settings.rb +171 -163
- data/lib/puppet/ssl/base.rb +9 -6
- data/lib/puppet/ssl/certificate.rb +6 -4
- data/lib/puppet/ssl/certificate_request.rb +34 -38
- data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
- data/lib/puppet/ssl/certificate_signer.rb +3 -3
- data/lib/puppet/ssl/digest.rb +2 -0
- data/lib/puppet/ssl/error.rb +3 -0
- data/lib/puppet/ssl/oids.rb +11 -9
- data/lib/puppet/ssl/openssl_loader.rb +6 -4
- data/lib/puppet/ssl/ssl_context.rb +2 -0
- data/lib/puppet/ssl/ssl_provider.rb +13 -9
- data/lib/puppet/ssl/state_machine.rb +153 -22
- data/lib/puppet/ssl/verifier.rb +3 -2
- data/lib/puppet/ssl.rb +3 -1
- data/lib/puppet/syntax_checkers/base64.rb +7 -5
- data/lib/puppet/syntax_checkers/epp.rb +7 -6
- data/lib/puppet/syntax_checkers/json.rb +7 -7
- data/lib/puppet/syntax_checkers/pp.rb +7 -6
- data/lib/puppet/syntax_checkers.rb +3 -1
- data/lib/puppet/test/test_helper.rb +30 -44
- data/lib/puppet/thread_local.rb +2 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
- data/lib/puppet/transaction/event.rb +8 -5
- data/lib/puppet/transaction/event_manager.rb +12 -11
- data/lib/puppet/transaction/persistence.rb +16 -16
- data/lib/puppet/transaction/report.rb +34 -27
- data/lib/puppet/transaction/resource_harness.rb +17 -9
- data/lib/puppet/transaction.rb +37 -35
- data/lib/puppet/trusted_external.rb +10 -5
- data/lib/puppet/type/component.rb +14 -7
- data/lib/puppet/type/exec.rb +71 -61
- data/lib/puppet/type/file/checksum.rb +6 -2
- data/lib/puppet/type/file/checksum_value.rb +6 -4
- data/lib/puppet/type/file/content.rb +24 -20
- data/lib/puppet/type/file/ctime.rb +5 -4
- data/lib/puppet/type/file/data_sync.rb +9 -6
- data/lib/puppet/type/file/ensure.rb +24 -25
- data/lib/puppet/type/file/group.rb +3 -1
- data/lib/puppet/type/file/mode.rb +14 -11
- data/lib/puppet/type/file/mtime.rb +5 -3
- data/lib/puppet/type/file/owner.rb +3 -2
- data/lib/puppet/type/file/selcontext.rb +24 -23
- data/lib/puppet/type/file/source.rb +31 -30
- data/lib/puppet/type/file/target.rb +23 -25
- data/lib/puppet/type/file/type.rb +3 -2
- data/lib/puppet/type/file.rb +60 -54
- data/lib/puppet/type/filebucket.rb +6 -4
- data/lib/puppet/type/group.rb +14 -13
- data/lib/puppet/type/notify.rb +4 -3
- data/lib/puppet/type/package.rb +47 -45
- data/lib/puppet/type/resources.rb +39 -34
- data/lib/puppet/type/schedule.rb +21 -21
- data/lib/puppet/type/service.rb +19 -18
- data/lib/puppet/type/stage.rb +2 -0
- data/lib/puppet/type/tidy.rb +40 -34
- data/lib/puppet/type/user.rb +62 -56
- data/lib/puppet/type/whit.rb +2 -1
- data/lib/puppet/type.rb +180 -227
- data/lib/puppet/util/at_fork/noop.rb +2 -0
- data/lib/puppet/util/at_fork/solaris.rb +37 -39
- data/lib/puppet/util/at_fork.rb +3 -1
- data/lib/puppet/util/autoload.rb +10 -4
- data/lib/puppet/util/backups.rb +13 -11
- data/lib/puppet/util/character_encoding.rb +9 -6
- data/lib/puppet/util/checksums.rb +16 -12
- data/lib/puppet/util/classgen.rb +18 -23
- data/lib/puppet/util/colors.rb +67 -65
- data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
- data/lib/puppet/util/command_line/trollop.rb +695 -673
- data/lib/puppet/util/command_line.rb +7 -5
- data/lib/puppet/util/constant_inflector.rb +4 -3
- data/lib/puppet/util/diff.rb +17 -18
- data/lib/puppet/util/docs.rb +8 -4
- data/lib/puppet/util/errors.rb +13 -11
- data/lib/puppet/util/execution.rb +58 -36
- data/lib/puppet/util/execution_stub.rb +2 -0
- data/lib/puppet/util/feature.rb +9 -9
- data/lib/puppet/util/file_watcher.rb +3 -0
- data/lib/puppet/util/fileparsing.rb +20 -24
- data/lib/puppet/util/filetype.rb +43 -43
- data/lib/puppet/util/http_proxy.rb +2 -0
- data/lib/puppet/util/inifile.rb +13 -18
- data/lib/puppet/util/instance_loader.rb +3 -0
- data/lib/puppet/util/json.rb +2 -0
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +21 -19
- data/lib/puppet/util/ldap/generator.rb +2 -0
- data/lib/puppet/util/ldap/manager.rb +20 -21
- data/lib/puppet/util/ldap.rb +2 -0
- data/lib/puppet/util/libuser.rb +3 -2
- data/lib/puppet/util/limits.rb +2 -0
- data/lib/puppet/util/lockfile.rb +8 -8
- data/lib/puppet/util/log/destination.rb +4 -3
- data/lib/puppet/util/log/destinations.rb +20 -20
- data/lib/puppet/util/log.rb +40 -31
- data/lib/puppet/util/logging.rb +34 -30
- data/lib/puppet/util/metaid.rb +2 -1
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +22 -30
- data/lib/puppet/util/multi_match.rb +9 -5
- data/lib/puppet/util/network_device/base.rb +3 -2
- data/lib/puppet/util/network_device/config.rb +9 -9
- data/lib/puppet/util/network_device/transport/base.rb +1 -1
- data/lib/puppet/util/network_device/transport.rb +2 -0
- data/lib/puppet/util/network_device.rb +2 -0
- data/lib/puppet/util/package/version/debian.rb +33 -31
- data/lib/puppet/util/package/version/gem.rb +3 -0
- data/lib/puppet/util/package/version/pip.rb +14 -8
- data/lib/puppet/util/package/version/range/eq.rb +4 -1
- data/lib/puppet/util/package/version/range/gt.rb +3 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/lt.rb +4 -1
- data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/min_max.rb +5 -0
- data/lib/puppet/util/package/version/range/simple.rb +2 -0
- data/lib/puppet/util/package/version/range.rb +9 -5
- data/lib/puppet/util/package/version/rpm.rb +7 -5
- data/lib/puppet/util/package.rb +5 -2
- data/lib/puppet/util/pidlock.rb +11 -10
- data/lib/puppet/util/platform.rb +5 -3
- data/lib/puppet/util/plist.rb +16 -16
- data/lib/puppet/util/posix.rb +27 -24
- data/lib/puppet/util/profiler/aggregate.rb +7 -10
- data/lib/puppet/util/profiler/around_profiler.rb +2 -1
- data/lib/puppet/util/profiler/logging.rb +3 -1
- data/lib/puppet/util/profiler/object_counts.rb +2 -0
- data/lib/puppet/util/profiler/wall_clock.rb +6 -5
- data/lib/puppet/util/profiler.rb +2 -0
- data/lib/puppet/util/provider_features.rb +10 -6
- data/lib/puppet/util/psych_support.rb +2 -0
- data/lib/puppet/util/rdoc/code_objects.rb +18 -20
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
- data/lib/puppet/util/rdoc/parser.rb +3 -1
- data/lib/puppet/util/rdoc.rb +10 -9
- data/lib/puppet/util/reference.rb +7 -32
- data/lib/puppet/util/resource_template.rb +3 -1
- data/lib/puppet/util/retry_action.rb +6 -5
- data/lib/puppet/util/rpm_compare.rb +31 -28
- data/lib/puppet/util/rubygems.rb +3 -3
- data/lib/puppet/util/run_mode.rb +46 -4
- data/lib/puppet/util/selinux.rb +72 -38
- data/lib/puppet/util/skip_tags.rb +2 -0
- data/lib/puppet/util/splayer.rb +2 -0
- data/lib/puppet/util/storage.rb +13 -13
- data/lib/puppet/util/suidmanager.rb +38 -37
- data/lib/puppet/util/symbolic_file_mode.rb +76 -76
- data/lib/puppet/util/tag_set.rb +4 -2
- data/lib/puppet/util/tagging.rb +12 -13
- data/lib/puppet/util/terminal.rb +6 -4
- data/lib/puppet/util/user_attr.rb +9 -7
- data/lib/puppet/util/warnings.rb +4 -0
- data/lib/puppet/util/watched_file.rb +4 -1
- data/lib/puppet/util/watcher/change_watcher.rb +2 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
- data/lib/puppet/util/watcher/timer.rb +2 -0
- data/lib/puppet/util/watcher.rb +5 -5
- data/lib/puppet/util/windows/access_control_entry.rb +3 -1
- data/lib/puppet/util/windows/access_control_list.rb +10 -7
- data/lib/puppet/util/windows/adsi.rb +82 -74
- data/lib/puppet/util/windows/com.rb +10 -7
- data/lib/puppet/util/windows/daemon.rb +77 -80
- data/lib/puppet/util/windows/error.rb +7 -5
- data/lib/puppet/util/windows/eventlog.rb +13 -9
- data/lib/puppet/util/windows/file.rb +49 -45
- data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
- data/lib/puppet/util/windows/principal.rb +37 -34
- data/lib/puppet/util/windows/process.rb +36 -40
- data/lib/puppet/util/windows/registry.rb +60 -58
- data/lib/puppet/util/windows/root_certs.rb +5 -3
- data/lib/puppet/util/windows/security.rb +92 -90
- data/lib/puppet/util/windows/security_descriptor.rb +2 -0
- data/lib/puppet/util/windows/service.rb +24 -12
- data/lib/puppet/util/windows/sid.rb +23 -21
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/user.rb +56 -55
- data/lib/puppet/util/windows.rb +8 -1
- data/lib/puppet/util/yaml.rb +3 -1
- data/lib/puppet/util.rb +112 -161
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/version.rb +5 -2
- data/lib/puppet/x509/cert_provider.rb +48 -12
- data/lib/puppet/x509/pem_store.rb +3 -1
- data/lib/puppet/x509.rb +2 -0
- data/lib/puppet.rb +22 -19
- data/lib/puppet_pal.rb +2 -0
- data/lib/puppet_x.rb +2 -0
- data/locales/puppet.pot +9723 -5
- data/man/man5/puppet.conf.5 +121 -912
- data/man/man8/puppet-agent.8 +39 -107
- data/man/man8/puppet-apply.8 +18 -51
- data/man/man8/puppet-catalog.8 +25 -122
- data/man/man8/puppet-config.8 +22 -70
- data/man/man8/puppet-describe.8 +6 -22
- data/man/man8/puppet-device.8 +13 -49
- data/man/man8/puppet-doc.8 +8 -24
- data/man/man8/puppet-epp.8 +23 -168
- data/man/man8/puppet-facts.8 +14 -92
- data/man/man8/puppet-filebucket.8 +22 -54
- data/man/man8/puppet-generate.8 +5 -35
- data/man/man8/puppet-help.8 +8 -29
- data/man/man8/puppet-lookup.8 +25 -61
- data/man/man8/puppet-module.8 +19 -124
- data/man/man8/puppet-node.8 +47 -68
- data/man/man8/puppet-parser.8 +12 -55
- data/man/man8/puppet-plugin.8 +10 -33
- data/man/man8/puppet-report.8 +10 -53
- data/man/man8/puppet-resource.8 +19 -44
- data/man/man8/puppet-script.8 +11 -33
- data/man/man8/puppet-ssl.8 +12 -30
- data/man/man8/puppet.8 +90 -20
- data/tasks/tag.rake +34 -0
- metadata +77 -65
- data/CONTRIBUTING.md +0 -161
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/lib/puppet/external/pson/common.rb +0 -374
- data/lib/puppet/external/pson/pure/generator.rb +0 -395
- data/lib/puppet/external/pson/pure/parser.rb +0 -308
- data/lib/puppet/external/pson/pure.rb +0 -15
- data/lib/puppet/external/pson/version.rb +0 -8
- data/lib/puppet/module_tool/contents_description.rb +0 -89
- data/tasks/benchmark.rake +0 -180
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -194
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
data/lib/puppet/settings.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../puppet'
|
2
4
|
require 'getoptlong'
|
3
5
|
require_relative '../puppet/util/watched_file'
|
@@ -48,26 +50,26 @@ class Puppet::Settings
|
|
48
50
|
REQUIRED_APP_SETTINGS = [:logdir, :confdir, :vardir, :codedir]
|
49
51
|
|
50
52
|
# The acceptable sections of the puppet.conf configuration file.
|
51
|
-
ALLOWED_SECTION_NAMES = [
|
53
|
+
ALLOWED_SECTION_NAMES = %w[main server master agent user].freeze
|
52
54
|
|
53
|
-
NONE = 'none'
|
55
|
+
NONE = 'none'
|
54
56
|
|
55
57
|
# This method is intended for puppet internal use only; it is a convenience method that
|
56
58
|
# returns reasonable application default settings values for a given run_mode.
|
57
59
|
def self.app_defaults_for_run_mode(run_mode)
|
58
60
|
{
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
:name => run_mode.to_s,
|
62
|
+
:run_mode => run_mode.name,
|
63
|
+
:confdir => run_mode.conf_dir,
|
64
|
+
:codedir => run_mode.code_dir,
|
65
|
+
:vardir => run_mode.var_dir,
|
66
|
+
:publicdir => run_mode.public_dir,
|
67
|
+
:rundir => run_mode.run_dir,
|
68
|
+
:logdir => run_mode.log_dir,
|
67
69
|
}
|
68
70
|
end
|
69
71
|
|
70
|
-
def self.default_certname
|
72
|
+
def self.default_certname
|
71
73
|
hostname = hostname_fact
|
72
74
|
domain = domain_fact
|
73
75
|
if domain and domain != ""
|
@@ -78,12 +80,12 @@ class Puppet::Settings
|
|
78
80
|
fqdn.to_s.gsub(/\.$/, '')
|
79
81
|
end
|
80
82
|
|
81
|
-
def self.hostname_fact
|
82
|
-
Puppet.runtime[:facter].value
|
83
|
+
def self.hostname_fact
|
84
|
+
Puppet.runtime[:facter].value('networking.hostname')
|
83
85
|
end
|
84
86
|
|
85
|
-
def self.domain_fact
|
86
|
-
Puppet.runtime[:facter].value
|
87
|
+
def self.domain_fact
|
88
|
+
Puppet.runtime[:facter].value('networking.domain')
|
87
89
|
end
|
88
90
|
|
89
91
|
def self.default_config_file_name
|
@@ -119,9 +121,10 @@ class Puppet::Settings
|
|
119
121
|
newhash = {}
|
120
122
|
hash.each do |key, val|
|
121
123
|
key = key.to_s
|
122
|
-
|
124
|
+
case val
|
125
|
+
when Hash
|
123
126
|
newhash[key] = stringifyhash(val)
|
124
|
-
|
127
|
+
when Symbol
|
125
128
|
newhash[key] = val.to_s
|
126
129
|
else
|
127
130
|
newhash[key] = val
|
@@ -152,6 +155,7 @@ class Puppet::Settings
|
|
152
155
|
@cache = Concurrent::Hash.new do |hash, key|
|
153
156
|
@cache_lock.synchronize do
|
154
157
|
break hash[key] if hash.key?(key)
|
158
|
+
|
155
159
|
hash[key] = Concurrent::Hash.new
|
156
160
|
end
|
157
161
|
end
|
@@ -159,6 +163,7 @@ class Puppet::Settings
|
|
159
163
|
@values = Concurrent::Hash.new do |hash, key|
|
160
164
|
@values_lock.synchronize do
|
161
165
|
break hash[key] if hash.key?(key)
|
166
|
+
|
162
167
|
hash[key] = Concurrent::Hash.new
|
163
168
|
end
|
164
169
|
end
|
@@ -215,7 +220,7 @@ class Puppet::Settings
|
|
215
220
|
# understand, and add them to the passed option list.
|
216
221
|
def addargs(options)
|
217
222
|
# Add all of the settings as valid options.
|
218
|
-
|
223
|
+
each { |_name, setting|
|
219
224
|
setting.getopt_args.each { |args| options << args }
|
220
225
|
}
|
221
226
|
|
@@ -226,7 +231,7 @@ class Puppet::Settings
|
|
226
231
|
# understand, and add them to the passed option list.
|
227
232
|
def optparse_addargs(options)
|
228
233
|
# Add all of the settings as valid options.
|
229
|
-
|
234
|
+
each { |_name, setting|
|
230
235
|
options << setting.optparse_args
|
231
236
|
}
|
232
237
|
|
@@ -236,7 +241,7 @@ class Puppet::Settings
|
|
236
241
|
# Is our setting a boolean setting?
|
237
242
|
def boolean?(param)
|
238
243
|
param = param.to_sym
|
239
|
-
@config.include?(param) and @config[param].
|
244
|
+
@config.include?(param) and @config[param].is_a?(BooleanSetting)
|
240
245
|
end
|
241
246
|
|
242
247
|
# Remove all set values, potentially skipping cli values.
|
@@ -277,7 +282,6 @@ class Puppet::Settings
|
|
277
282
|
#
|
278
283
|
# @api private
|
279
284
|
def clear_environment_settings(environment)
|
280
|
-
|
281
285
|
if environment.nil?
|
282
286
|
return
|
283
287
|
end
|
@@ -310,7 +314,7 @@ class Puppet::Settings
|
|
310
314
|
@used = []
|
311
315
|
end
|
312
316
|
|
313
|
-
def global_defaults_initialized?
|
317
|
+
def global_defaults_initialized?
|
314
318
|
@global_defaults_initialized
|
315
319
|
end
|
316
320
|
|
@@ -340,7 +344,7 @@ class Puppet::Settings
|
|
340
344
|
option_parser.ignore_invalid_options = true
|
341
345
|
|
342
346
|
# Add all global options to it.
|
343
|
-
|
347
|
+
optparse_addargs([]).each do |option|
|
344
348
|
option_parser.on(*option) do |arg|
|
345
349
|
opt, val = Puppet::Settings.clean_opt(option[0], arg)
|
346
350
|
handlearg(opt, val)
|
@@ -357,7 +361,7 @@ class Puppet::Settings
|
|
357
361
|
|
358
362
|
# remove run_mode options from the arguments so that later parses don't think
|
359
363
|
# it is an unknown option.
|
360
|
-
while option_index = args.index('--run_mode')
|
364
|
+
while option_index = args.index('--run_mode') # rubocop:disable Lint/AssignmentInCondition
|
361
365
|
args.delete_at option_index
|
362
366
|
args.delete_at option_index
|
363
367
|
end
|
@@ -374,14 +378,13 @@ class Puppet::Settings
|
|
374
378
|
def self.clean_opt(opt, val)
|
375
379
|
# rewrite --[no-]option to --no-option if that's what was given
|
376
380
|
if opt =~ /\[no-\]/ and !val
|
377
|
-
opt = opt.gsub(/\[no-\]/,'no-')
|
381
|
+
opt = opt.gsub(/\[no-\]/, 'no-')
|
378
382
|
end
|
379
383
|
# otherwise remove the [no-] prefix to not confuse everybody
|
380
384
|
opt = opt.gsub(/\[no-\]/, '')
|
381
385
|
[opt, val]
|
382
386
|
end
|
383
387
|
|
384
|
-
|
385
388
|
def app_defaults_initialized?
|
386
389
|
@app_defaults_initialized
|
387
390
|
end
|
@@ -418,7 +421,7 @@ class Puppet::Settings
|
|
418
421
|
def create_ancestors(dir)
|
419
422
|
parent_dir = File.dirname(dir)
|
420
423
|
|
421
|
-
|
424
|
+
unless File.exist?(parent_dir)
|
422
425
|
FileUtils.mkdir_p(parent_dir)
|
423
426
|
end
|
424
427
|
end
|
@@ -426,13 +429,11 @@ class Puppet::Settings
|
|
426
429
|
|
427
430
|
def call_hooks_deferred_to_application_initialization(options = {})
|
428
431
|
@hooks_to_call_on_application_initialization.each do |setting|
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
#we'll get another chance after application defaults are initialized
|
435
|
-
end
|
432
|
+
setting.handle(value(setting.name))
|
433
|
+
rescue InterpolationError => err
|
434
|
+
raise InterpolationError, err.message, err.backtrace unless options[:ignore_interpolation_dependency_errors]
|
435
|
+
# swallow. We're not concerned if we can't call hooks because dependencies don't exist yet
|
436
|
+
# we'll get another chance after application defaults are initialized
|
436
437
|
end
|
437
438
|
end
|
438
439
|
private :call_hooks_deferred_to_application_initialization
|
@@ -473,14 +474,15 @@ class Puppet::Settings
|
|
473
474
|
def handlearg(opt, value = nil)
|
474
475
|
@cache.clear
|
475
476
|
|
476
|
-
|
477
|
+
case value
|
478
|
+
when FalseClass
|
477
479
|
value = "false"
|
478
|
-
|
480
|
+
when TrueClass
|
479
481
|
value = "true"
|
480
482
|
end
|
481
483
|
|
482
484
|
value &&= @translate[value]
|
483
|
-
str = opt.sub(/^--/,'')
|
485
|
+
str = opt.sub(/^--/, '')
|
484
486
|
|
485
487
|
bool = true
|
486
488
|
newstr = str.sub(/^no-/, '')
|
@@ -515,7 +517,7 @@ class Puppet::Settings
|
|
515
517
|
def print_config_options
|
516
518
|
if Puppet::Util::Log.sendlevel?(:info)
|
517
519
|
Puppet::Util::Log.newdestination(:console)
|
518
|
-
message =
|
520
|
+
message = _("Using --configprint is deprecated. Use 'puppet config <subcommand>' instead.")
|
519
521
|
Puppet.deprecation_warning(message)
|
520
522
|
end
|
521
523
|
|
@@ -523,23 +525,23 @@ class Puppet::Settings
|
|
523
525
|
val = value(:configprint)
|
524
526
|
if val == "all"
|
525
527
|
hash = {}
|
526
|
-
each do |name,
|
527
|
-
val = value(name,env)
|
528
|
+
each do |name, _obj|
|
529
|
+
val = value(name, env)
|
528
530
|
val = val.inspect if val == ""
|
529
531
|
hash[name] = val
|
530
532
|
end
|
531
|
-
hash.sort { |a,b| a[0].to_s <=> b[0].to_s }.each do |name, v|
|
533
|
+
hash.sort { |a, b| a[0].to_s <=> b[0].to_s }.each do |name, v|
|
532
534
|
puts "#{name} = #{v}"
|
533
535
|
end
|
534
536
|
else
|
535
537
|
val.split(/\s*,\s*/).sort.each do |v|
|
536
538
|
if include?(v)
|
537
|
-
#if there is only one value, just print it for back compatibility
|
539
|
+
# if there is only one value, just print it for back compatibility
|
538
540
|
if v == val
|
539
|
-
puts value(val,env)
|
541
|
+
puts value(val, env)
|
540
542
|
break
|
541
543
|
end
|
542
|
-
puts "#{v} = #{value(v,env)}"
|
544
|
+
puts "#{v} = #{value(v, env)}"
|
543
545
|
else
|
544
546
|
puts "invalid setting: #{v}"
|
545
547
|
return false
|
@@ -562,6 +564,7 @@ class Puppet::Settings
|
|
562
564
|
def print_configs
|
563
565
|
return print_config_options if value(:configprint) != ""
|
564
566
|
return generate_config if value(:genconfig)
|
567
|
+
|
565
568
|
generate_manifest if value(:genmanifest)
|
566
569
|
end
|
567
570
|
|
@@ -583,11 +586,11 @@ class Puppet::Settings
|
|
583
586
|
def preferred_run_mode=(mode)
|
584
587
|
mode = mode.to_s.downcase.intern
|
585
588
|
raise ValidationError, "Invalid run mode '#{mode}'" unless [:server, :master, :agent, :user].include?(mode)
|
589
|
+
|
586
590
|
@preferred_run_mode_name = mode
|
587
591
|
# Changing the run mode has far-reaching consequences. Flush any cached
|
588
592
|
# settings so they will be re-generated.
|
589
593
|
flush_cache
|
590
|
-
mode
|
591
594
|
end
|
592
595
|
|
593
596
|
def parse_config(text, file = "text")
|
@@ -617,7 +620,7 @@ class Puppet::Settings
|
|
617
620
|
|
618
621
|
# Determine our environment, if we have one.
|
619
622
|
if @config[:environment]
|
620
|
-
env =
|
623
|
+
env = value(:environment).to_sym
|
621
624
|
else
|
622
625
|
env = NONE
|
623
626
|
end
|
@@ -626,23 +629,24 @@ class Puppet::Settings
|
|
626
629
|
value_sets = value_sets_for(env, preferred_run_mode)
|
627
630
|
@config.values.select(&:has_hook?).each do |setting|
|
628
631
|
value_sets.each do |source|
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
632
|
+
next unless source.include?(setting.name)
|
633
|
+
|
634
|
+
# We still have to use value to retrieve the value, since
|
635
|
+
# we want the fully interpolated value, not $vardir/lib or whatever.
|
636
|
+
# This results in extra work, but so few of the settings
|
637
|
+
# will have associated hooks that it ends up being less work this
|
638
|
+
# way overall.
|
639
|
+
if setting.call_hook_on_initialize?
|
640
|
+
@hooks_to_call_on_application_initialization |= [setting]
|
641
|
+
else
|
642
|
+
setting.handle(ChainedValues.new(
|
643
|
+
preferred_run_mode,
|
644
|
+
env,
|
645
|
+
value_sets,
|
646
|
+
@config
|
647
|
+
).interpolate(setting.name))
|
645
648
|
end
|
649
|
+
break
|
646
650
|
end
|
647
651
|
end
|
648
652
|
|
@@ -657,7 +661,7 @@ class Puppet::Settings
|
|
657
661
|
begin
|
658
662
|
text = read_file(file)
|
659
663
|
rescue => detail
|
660
|
-
message = _("Could not load %{file}: %{detail}") % { file: file, detail: detail}
|
664
|
+
message = _("Could not load %{file}: %{detail}") % { file: file, detail: detail }
|
661
665
|
if require_config
|
662
666
|
Puppet.log_and_raise(detail, message)
|
663
667
|
else
|
@@ -675,15 +679,15 @@ class Puppet::Settings
|
|
675
679
|
|
676
680
|
def main_config_file
|
677
681
|
if explicit_config_file?
|
678
|
-
|
682
|
+
self[:config]
|
679
683
|
else
|
680
|
-
|
684
|
+
File.join(Puppet::Util::RunMode[:server].conf_dir, config_file_name)
|
681
685
|
end
|
682
686
|
end
|
683
687
|
private :main_config_file
|
684
688
|
|
685
689
|
def user_config_file
|
686
|
-
|
690
|
+
File.join(Puppet::Util::RunMode[:user].conf_dir, config_file_name)
|
687
691
|
end
|
688
692
|
private :user_config_file
|
689
693
|
|
@@ -702,7 +706,7 @@ class Puppet::Settings
|
|
702
706
|
# This just means that the setting wasn't explicitly set on the command line, so we will ignore it and
|
703
707
|
# fall through to the default name.
|
704
708
|
end
|
705
|
-
|
709
|
+
self.class.default_config_file_name
|
706
710
|
end
|
707
711
|
private :config_file_name
|
708
712
|
|
@@ -731,26 +735,26 @@ class Puppet::Settings
|
|
731
735
|
end
|
732
736
|
|
733
737
|
SETTING_TYPES = {
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
738
|
+
:string => StringSetting,
|
739
|
+
:file => FileSetting,
|
740
|
+
:directory => DirectorySetting,
|
741
|
+
:file_or_directory => FileOrDirectorySetting,
|
742
|
+
:path => PathSetting,
|
743
|
+
:boolean => BooleanSetting,
|
744
|
+
:integer => IntegerSetting,
|
745
|
+
:port => PortSetting,
|
746
|
+
:terminus => TerminusSetting,
|
747
|
+
:duration => DurationSetting,
|
748
|
+
:ttl => TTLSetting,
|
749
|
+
:array => ArraySetting,
|
750
|
+
:enum => EnumSetting,
|
751
|
+
:symbolic_enum => SymbolicEnumSetting,
|
752
|
+
:priority => PrioritySetting,
|
753
|
+
:autosign => AutosignSetting,
|
754
|
+
:server_list => ServerListSetting,
|
755
|
+
:http_extra_headers => HttpExtraHeadersSetting,
|
756
|
+
:certificate_revocation => CertificateRevocationSetting,
|
757
|
+
:alias => AliasSetting
|
754
758
|
}
|
755
759
|
|
756
760
|
# Create a new setting. The value is passed in because it's used to determine
|
@@ -768,6 +772,7 @@ class Puppet::Settings
|
|
768
772
|
unless klass
|
769
773
|
raise ArgumentError, _("Invalid setting type '%{type}'") % { type: type }
|
770
774
|
end
|
775
|
+
|
771
776
|
hash.delete(:type)
|
772
777
|
else
|
773
778
|
# The only implicit typing we still do for settings is to fall back to "String" type if they didn't explicitly
|
@@ -776,9 +781,7 @@ class Puppet::Settings
|
|
776
781
|
klass = StringSetting
|
777
782
|
end
|
778
783
|
hash[:settings] = self
|
779
|
-
|
780
|
-
|
781
|
-
setting
|
784
|
+
klass.new(hash)
|
782
785
|
end
|
783
786
|
|
784
787
|
# This has to be private, because it doesn't add the settings to @config
|
@@ -787,7 +790,7 @@ class Puppet::Settings
|
|
787
790
|
# Iterate across all of the objects in a given section.
|
788
791
|
def persection(section)
|
789
792
|
section = section.to_sym
|
790
|
-
|
793
|
+
each { |_name, obj|
|
791
794
|
if obj.section == section
|
792
795
|
yield obj
|
793
796
|
end
|
@@ -808,6 +811,7 @@ class Puppet::Settings
|
|
808
811
|
|
809
812
|
def files
|
810
813
|
return @files if @files
|
814
|
+
|
811
815
|
@files = []
|
812
816
|
[main_config_file, user_config_file].each do |path|
|
813
817
|
if Puppet::FileSystem.exist?(path)
|
@@ -831,12 +835,13 @@ class Puppet::Settings
|
|
831
835
|
|
832
836
|
def reuse
|
833
837
|
return unless defined?(@used)
|
838
|
+
|
834
839
|
new = @used
|
835
840
|
@used = []
|
836
|
-
|
841
|
+
use(*new)
|
837
842
|
end
|
838
843
|
|
839
|
-
|
844
|
+
SearchPathElement = Struct.new(:name, :type)
|
840
845
|
|
841
846
|
# The order in which to search for values, without defaults.
|
842
847
|
#
|
@@ -847,7 +852,7 @@ class Puppet::Settings
|
|
847
852
|
def configsearchpath(environment = nil, run_mode = preferred_run_mode)
|
848
853
|
searchpath = [
|
849
854
|
SearchPathElement.new(:memory, :values),
|
850
|
-
SearchPathElement.new(:cli, :values)
|
855
|
+
SearchPathElement.new(:cli, :values)
|
851
856
|
]
|
852
857
|
searchpath << SearchPathElement.new(environment.intern, :environment) if environment
|
853
858
|
|
@@ -936,7 +941,7 @@ class Puppet::Settings
|
|
936
941
|
when :environment
|
937
942
|
ValuesFromEnvironmentConf.new(source.name)
|
938
943
|
else
|
939
|
-
raise Puppet::DevError, _("Unknown searchpath case: %{source_type} for the %{source} settings path element.") % { source_type: source.type, source: source}
|
944
|
+
raise Puppet::DevError, _("Unknown searchpath case: %{source_type} for the %{source} settings path element.") % { source_type: source.type, source: source }
|
940
945
|
end
|
941
946
|
end
|
942
947
|
|
@@ -1023,6 +1028,7 @@ class Puppet::Settings
|
|
1023
1028
|
hash[:name] = name
|
1024
1029
|
hash[:section] = section
|
1025
1030
|
raise ArgumentError, _("Setting %{name} is already defined") % { name: name } if @config.include?(name)
|
1031
|
+
|
1026
1032
|
tryconfig = newsetting(hash)
|
1027
1033
|
short = tryconfig.short
|
1028
1034
|
if short
|
@@ -1030,6 +1036,7 @@ class Puppet::Settings
|
|
1030
1036
|
if other
|
1031
1037
|
raise ArgumentError, _("Setting %{name} is already using short name '%{short}'") % { name: other.name, short: short }
|
1032
1038
|
end
|
1039
|
+
|
1033
1040
|
@shortnames[short] = tryconfig
|
1034
1041
|
end
|
1035
1042
|
@config[name] = tryconfig
|
@@ -1041,7 +1048,7 @@ class Puppet::Settings
|
|
1041
1048
|
if tryconfig.call_hook_on_define?
|
1042
1049
|
call << tryconfig
|
1043
1050
|
elsif tryconfig.call_hook_on_initialize?
|
1044
|
-
@hooks_to_call_on_application_initialization |= [
|
1051
|
+
@hooks_to_call_on_application_initialization |= [tryconfig]
|
1045
1052
|
end
|
1046
1053
|
end
|
1047
1054
|
|
@@ -1049,7 +1056,7 @@ class Puppet::Settings
|
|
1049
1056
|
end
|
1050
1057
|
|
1051
1058
|
call.each do |setting|
|
1052
|
-
setting.handle(
|
1059
|
+
setting.handle(value(setting.name))
|
1053
1060
|
end
|
1054
1061
|
end
|
1055
1062
|
|
@@ -1061,12 +1068,13 @@ class Puppet::Settings
|
|
1061
1068
|
@config.keys.find_all { |key| @config[key].is_a?(FileSetting) }.each do |key|
|
1062
1069
|
file = @config[key]
|
1063
1070
|
next if file.value.nil?
|
1064
|
-
next unless
|
1071
|
+
next unless sections.nil? or sections.include?(file.section)
|
1072
|
+
|
1065
1073
|
resource = file.to_resource
|
1066
1074
|
next unless resource
|
1067
1075
|
next if catalog.resource(resource.ref)
|
1068
1076
|
|
1069
|
-
Puppet.debug {"Using settings: adding file resource '#{key}': '#{resource.inspect}'"}
|
1077
|
+
Puppet.debug { "Using settings: adding file resource '#{key}': '#{resource.inspect}'" }
|
1070
1078
|
|
1071
1079
|
catalog.add_resource(resource)
|
1072
1080
|
end
|
@@ -1079,22 +1087,21 @@ class Puppet::Settings
|
|
1079
1087
|
|
1080
1088
|
# Convert our list of config settings into a configuration file.
|
1081
1089
|
def to_config
|
1082
|
-
str = %
|
1090
|
+
str = %(The configuration file for #{Puppet.run_mode.name}. Note that this file
|
1083
1091
|
is likely to have unused settings in it; any setting that's
|
1084
|
-
valid anywhere in
|
1092
|
+
valid anywhere in OpenVox can be in any config file, even if it's not used.
|
1085
1093
|
|
1086
1094
|
Every section can specify three special parameters: owner, group, and mode.
|
1087
1095
|
These parameters affect the required permissions of any files specified after
|
1088
|
-
their specification.
|
1089
|
-
own configured state, so they can be used to make
|
1096
|
+
their specification. OpenVox will sometimes use these parameters to check its
|
1097
|
+
own configured state, so they can be used to make OpenVox a bit more self-managing.
|
1090
1098
|
|
1091
1099
|
The file format supports octothorpe-commented lines, but not partial-line comments.
|
1092
1100
|
|
1093
1101
|
Generated on #{Time.now}.
|
1102
|
+
).gsub(/^/, "# ")
|
1094
1103
|
|
1095
|
-
|
1096
|
-
|
1097
|
-
# Add a section heading that matches our name.
|
1104
|
+
# Add a section heading that matches our name.
|
1098
1105
|
str += "[#{preferred_run_mode}]\n"
|
1099
1106
|
eachsection do |section|
|
1100
1107
|
persection(section) do |obj|
|
@@ -1102,7 +1109,7 @@ Generated on #{Time.now}.
|
|
1102
1109
|
end
|
1103
1110
|
end
|
1104
1111
|
|
1105
|
-
|
1112
|
+
str
|
1106
1113
|
end
|
1107
1114
|
|
1108
1115
|
# Convert to a parseable manifest
|
@@ -1117,7 +1124,7 @@ Generated on #{Time.now}.
|
|
1117
1124
|
# you can 'use' a section as many times as you want.
|
1118
1125
|
def use(*sections)
|
1119
1126
|
if Puppet[:settings_catalog]
|
1120
|
-
sections = sections.collect
|
1127
|
+
sections = sections.collect(&:to_sym)
|
1121
1128
|
sections = sections.reject { |s| @used.include?(s) }
|
1122
1129
|
|
1123
1130
|
Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
|
@@ -1125,7 +1132,7 @@ Generated on #{Time.now}.
|
|
1125
1132
|
# add :server if sections include :master or :master if sections include :server
|
1126
1133
|
sections |= [:master, :server] if (sections & [:master, :server]).any?
|
1127
1134
|
|
1128
|
-
sections = sections.collect
|
1135
|
+
sections = sections.collect(&:to_sym)
|
1129
1136
|
sections = sections.reject { |s| @used.include?(s) }
|
1130
1137
|
|
1131
1138
|
return if sections.empty?
|
@@ -1135,19 +1142,19 @@ Generated on #{Time.now}.
|
|
1135
1142
|
begin
|
1136
1143
|
catalog = to_catalog(*sections).to_ral
|
1137
1144
|
rescue => detail
|
1138
|
-
Puppet.log_and_raise(detail, "Could not create resources for managing
|
1145
|
+
Puppet.log_and_raise(detail, "Could not create resources for managing OpenVox's files and directories in sections #{sections.inspect}: #{detail}")
|
1139
1146
|
end
|
1140
1147
|
|
1141
1148
|
catalog.host_config = false
|
1142
1149
|
catalog.apply do |transaction|
|
1143
1150
|
if transaction.any_failed?
|
1144
1151
|
report = transaction.report
|
1145
|
-
status_failures = report.resource_statuses.values.select
|
1146
|
-
status_fail_msg = status_failures
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1152
|
+
status_failures = report.resource_statuses.values.select(&:failed?)
|
1153
|
+
status_fail_msg = status_failures
|
1154
|
+
.collect(&:events)
|
1155
|
+
.flatten
|
1156
|
+
.select { |event| event.status == 'failure' }
|
1157
|
+
.collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
|
1151
1158
|
|
1152
1159
|
raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
|
1153
1160
|
end
|
@@ -1177,7 +1184,8 @@ Generated on #{Time.now}.
|
|
1177
1184
|
section,
|
1178
1185
|
environment,
|
1179
1186
|
value_sets_for(environment, section),
|
1180
|
-
@config
|
1187
|
+
@config
|
1188
|
+
)
|
1181
1189
|
end
|
1182
1190
|
|
1183
1191
|
# Find the correct value using our search path.
|
@@ -1239,9 +1247,9 @@ Generated on #{Time.now}.
|
|
1239
1247
|
# in {https://projects.puppetlabs.com/issues/16637 #16637}
|
1240
1248
|
def which_configuration_file
|
1241
1249
|
if explicit_config_file? or Puppet.features.root? then
|
1242
|
-
|
1250
|
+
main_config_file
|
1243
1251
|
else
|
1244
|
-
|
1252
|
+
user_config_file
|
1245
1253
|
end
|
1246
1254
|
end
|
1247
1255
|
|
@@ -1263,7 +1271,7 @@ Generated on #{Time.now}.
|
|
1263
1271
|
def screen_non_puppet_conf_settings(puppet_conf)
|
1264
1272
|
puppet_conf.sections.values.each do |section|
|
1265
1273
|
forbidden = section.settings.select { |setting| Puppet::Settings::EnvironmentConf::ENVIRONMENT_CONF_ONLY_SETTINGS.include?(setting.name) }
|
1266
|
-
raise(SettingsError, "Cannot set #{forbidden.map
|
1274
|
+
raise(SettingsError, "Cannot set #{forbidden.map(&:name).join(', ')} settings in puppet.conf") unless forbidden.empty?
|
1267
1275
|
end
|
1268
1276
|
end
|
1269
1277
|
|
@@ -1292,18 +1300,17 @@ Generated on #{Time.now}.
|
|
1292
1300
|
|
1293
1301
|
def issue_deprecation_warning(setting, msg = nil)
|
1294
1302
|
name = setting.name
|
1295
|
-
ref = DEPRECATION_REFS.find { |params,
|
1303
|
+
ref = DEPRECATION_REFS.find { |params, _reference| params.include?(name) }
|
1296
1304
|
ref = ref[1] if ref
|
1297
|
-
|
1298
|
-
when msg
|
1305
|
+
if msg
|
1299
1306
|
msg << " #{ref}" if ref
|
1300
1307
|
Puppet.deprecation_warning(msg)
|
1301
|
-
|
1308
|
+
elsif setting.completely_deprecated?
|
1302
1309
|
message = _("Setting %{name} is deprecated.") % { name: name }
|
1303
1310
|
message += " #{ref}"
|
1304
1311
|
Puppet.deprecation_warning(message, "setting-#{name}")
|
1305
|
-
|
1306
|
-
#TRANSLATORS 'puppet.conf' is a file name and should not be translated
|
1312
|
+
elsif setting.allowed_on_commandline?
|
1313
|
+
# TRANSLATORS 'puppet.conf' is a file name and should not be translated
|
1307
1314
|
message = _("Setting %{name} is deprecated in puppet.conf.") % { name: name }
|
1308
1315
|
message += " #{ref}"
|
1309
1316
|
Puppet.deprecation_warning(message, "puppet-conf-setting-#{name}")
|
@@ -1347,38 +1354,38 @@ Generated on #{Time.now}.
|
|
1347
1354
|
return if Puppet::Util::Platform.windows?
|
1348
1355
|
return unless self[:mkusers]
|
1349
1356
|
|
1350
|
-
@config.each do |
|
1357
|
+
@config.each do |_name, setting|
|
1351
1358
|
next unless setting.respond_to?(:owner)
|
1352
1359
|
next unless sections.nil? or sections.include?(setting.section)
|
1353
1360
|
|
1354
1361
|
user = setting.owner
|
1355
1362
|
if user && user != "root" && catalog.resource(:user, user).nil?
|
1356
|
-
resource = Puppet::Resource.new(:user, user, :parameters => {:ensure => :present})
|
1363
|
+
resource = Puppet::Resource.new(:user, user, :parameters => { :ensure => :present })
|
1357
1364
|
resource[:gid] = self[:group] if self[:group]
|
1358
1365
|
catalog.add_resource resource
|
1359
1366
|
end
|
1360
1367
|
group = setting.group
|
1361
|
-
if group &&
|
1362
|
-
catalog.add_resource Puppet::Resource.new(:group, group, :parameters => {:ensure => :present})
|
1368
|
+
if group && !%w[root wheel].include?(group) && catalog.resource(:group, group).nil?
|
1369
|
+
catalog.add_resource Puppet::Resource.new(:group, group, :parameters => { :ensure => :present })
|
1363
1370
|
end
|
1364
1371
|
end
|
1365
1372
|
end
|
1366
1373
|
|
1367
1374
|
# Yield each search source in turn.
|
1368
1375
|
def value_sets_for(environment, mode)
|
1369
|
-
searchpath(environment, mode).
|
1376
|
+
searchpath(environment, mode).filter_map { |source| searchpath_values(source) }
|
1370
1377
|
end
|
1371
1378
|
|
1372
1379
|
# Read the file in.
|
1373
1380
|
# @api private
|
1374
1381
|
def read_file(file)
|
1375
|
-
|
1382
|
+
Puppet::FileSystem.read(file, :encoding => 'utf-8')
|
1376
1383
|
end
|
1377
1384
|
|
1378
1385
|
# Private method for internal test use only; allows to do a comprehensive clear of all settings between tests.
|
1379
1386
|
#
|
1380
1387
|
# @return nil
|
1381
|
-
def clear_everything_for_tests
|
1388
|
+
def clear_everything_for_tests
|
1382
1389
|
unsafe_clear(true, true)
|
1383
1390
|
@configuration_file = nil
|
1384
1391
|
@global_defaults_initialized = false
|
@@ -1399,14 +1406,13 @@ Generated on #{Time.now}.
|
|
1399
1406
|
# If they've specified neither, then the interpolation will fail and we'll
|
1400
1407
|
# get an exception.
|
1401
1408
|
#
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
end
|
1409
|
+
|
1410
|
+
true if self[:config]
|
1411
|
+
rescue InterpolationError
|
1412
|
+
# This means we failed to interpolate, which means that they didn't
|
1413
|
+
# explicitly specify either :config or :confdir... so we'll fall out to
|
1414
|
+
# the default value.
|
1415
|
+
false
|
1410
1416
|
end
|
1411
1417
|
private :explicit_config_file?
|
1412
1418
|
|
@@ -1414,7 +1420,7 @@ Generated on #{Time.now}.
|
|
1414
1420
|
#
|
1415
1421
|
# @api public
|
1416
1422
|
class ChainedValues
|
1417
|
-
ENVIRONMENT_SETTING = "environment"
|
1423
|
+
ENVIRONMENT_SETTING = "environment"
|
1418
1424
|
ENVIRONMENT_INTERPOLATION_ALLOWED = ['config_version'].freeze
|
1419
1425
|
|
1420
1426
|
# @see Puppet::Settings.values
|
@@ -1437,14 +1443,14 @@ Generated on #{Time.now}.
|
|
1437
1443
|
end
|
1438
1444
|
if set
|
1439
1445
|
value = set.lookup(name)
|
1440
|
-
|
1446
|
+
unless value.nil?
|
1441
1447
|
return value
|
1442
1448
|
end
|
1443
1449
|
end
|
1444
1450
|
|
1445
|
-
setting
|
1451
|
+
setting = @defaults[name]
|
1446
1452
|
if setting.respond_to?(:alias_name)
|
1447
|
-
val
|
1453
|
+
val = lookup(setting.alias_name)
|
1448
1454
|
return val if val
|
1449
1455
|
end
|
1450
1456
|
|
@@ -1505,26 +1511,26 @@ Generated on #{Time.now}.
|
|
1505
1511
|
when String
|
1506
1512
|
failed_environment_interpolation = false
|
1507
1513
|
interpolated_value = value.gsub(/\$(\w+)|\$\{(\w+)\}/) do |expression|
|
1508
|
-
varname =
|
1514
|
+
varname = ::Regexp.last_match(2) || ::Regexp.last_match(1)
|
1509
1515
|
interpolated_expression =
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1516
|
+
if varname != ENVIRONMENT_SETTING || ok_to_interpolate_environment(setting_name)
|
1517
|
+
if varname == ENVIRONMENT_SETTING && @environment
|
1518
|
+
@environment
|
1519
|
+
elsif varname == "run_mode"
|
1520
|
+
@mode
|
1521
|
+
elsif !(pval = interpolate(varname.to_sym)).nil?
|
1522
|
+
pval
|
1523
|
+
else
|
1524
|
+
raise InterpolationError, _("Could not find value for %{expression}") % { expression: expression }
|
1525
|
+
end
|
1517
1526
|
else
|
1518
|
-
|
1527
|
+
failed_environment_interpolation = true
|
1528
|
+
expression
|
1519
1529
|
end
|
1520
|
-
else
|
1521
|
-
failed_environment_interpolation = true
|
1522
|
-
expression
|
1523
|
-
end
|
1524
1530
|
interpolated_expression
|
1525
1531
|
end
|
1526
1532
|
if failed_environment_interpolation
|
1527
|
-
#TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
|
1533
|
+
# TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
|
1528
1534
|
Puppet.warning(_("You cannot interpolate $environment within '%{setting_name}' when using directory environments.") % { setting_name: setting_name } +
|
1529
1535
|
' ' + _("Its value will remain %{value}.") % { value: interpolated_value })
|
1530
1536
|
end
|
@@ -1556,7 +1562,7 @@ Generated on #{Time.now}.
|
|
1556
1562
|
def set(name, value)
|
1557
1563
|
default = @defaults[name]
|
1558
1564
|
|
1559
|
-
|
1565
|
+
unless default
|
1560
1566
|
raise ArgumentError, _("Attempt to assign a value to unknown setting %{name}") % { name: name.inspect }
|
1561
1567
|
end
|
1562
1568
|
|
@@ -1577,7 +1583,7 @@ Generated on #{Time.now}.
|
|
1577
1583
|
end
|
1578
1584
|
|
1579
1585
|
def inspect
|
1580
|
-
%Q
|
1586
|
+
%Q(<#{self.class}:#{object_id} @name="#{@name}" @values="#{@values}">)
|
1581
1587
|
end
|
1582
1588
|
end
|
1583
1589
|
|
@@ -1601,7 +1607,7 @@ Generated on #{Time.now}.
|
|
1601
1607
|
end
|
1602
1608
|
|
1603
1609
|
def inspect
|
1604
|
-
%Q
|
1610
|
+
%Q(<#{self.class}:#{object_id} @name="#{@name}" @section="#{@section}">)
|
1605
1611
|
end
|
1606
1612
|
end
|
1607
1613
|
|
@@ -1619,11 +1625,13 @@ Generated on #{Time.now}.
|
|
1619
1625
|
if Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name) && conf
|
1620
1626
|
return true
|
1621
1627
|
end
|
1628
|
+
|
1622
1629
|
false
|
1623
1630
|
end
|
1624
1631
|
|
1625
1632
|
def lookup(name)
|
1626
1633
|
return nil unless Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name)
|
1634
|
+
|
1627
1635
|
conf.send(name) if conf
|
1628
1636
|
end
|
1629
1637
|
|
@@ -1636,7 +1644,7 @@ Generated on #{Time.now}.
|
|
1636
1644
|
end
|
1637
1645
|
|
1638
1646
|
def inspect
|
1639
|
-
%Q
|
1647
|
+
%Q(<#{self.class}:#{object_id} @environment_name="#{@environment_name}" @conf="#{@conf}">)
|
1640
1648
|
end
|
1641
1649
|
end
|
1642
1650
|
end
|