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
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Puppet::Interface::FaceCollection
|
2
4
|
@faces = Hash.new { |hash, key| hash[key] = {} }
|
3
5
|
|
@@ -9,9 +11,9 @@ module Puppet::Interface::FaceCollection
|
|
9
11
|
names = @loader.files_to_load(Puppet.lookup(:current_environment)).map do |fn|
|
10
12
|
::File.basename(fn, '.rb')
|
11
13
|
end.uniq
|
12
|
-
names.each {|name| self[name, :current]}
|
14
|
+
names.each { |name| self[name, :current] }
|
13
15
|
end
|
14
|
-
@faces.keys.select {|name| @faces[name].length > 0 }
|
16
|
+
@faces.keys.select { |name| @faces[name].length > 0 }
|
15
17
|
end
|
16
18
|
|
17
19
|
def self.[](name, version)
|
@@ -26,18 +28,19 @@ module Puppet::Interface::FaceCollection
|
|
26
28
|
# elsewhere. Usually this will start from :current and all...
|
27
29
|
face = self[name, version]
|
28
30
|
return nil unless face
|
31
|
+
|
29
32
|
action = face.get_action(action_name)
|
30
33
|
unless action
|
31
34
|
# ...we need to search for it bound to an o{lder,ther} version. Since
|
32
35
|
# we load all actions when the face is first references, this will be in
|
33
36
|
# memory in the known set of versions of the face.
|
34
|
-
(@faces[name].keys - [
|
37
|
+
(@faces[name].keys - [:current]).sort.reverse_each do |vers|
|
35
38
|
action = @faces[name][vers].get_action(action_name)
|
36
39
|
break if action
|
37
40
|
end
|
38
41
|
end
|
39
42
|
|
40
|
-
|
43
|
+
action
|
41
44
|
end
|
42
45
|
|
43
46
|
# get face from memory, without loading.
|
@@ -45,14 +48,14 @@ module Puppet::Interface::FaceCollection
|
|
45
48
|
return nil unless @faces.has_key? name
|
46
49
|
return @faces[name][:current] if pattern == :current
|
47
50
|
|
48
|
-
versions = @faces[name].keys - [
|
51
|
+
versions = @faces[name].keys - [:current]
|
49
52
|
range = pattern.is_a?(SemanticPuppet::Version) ? SemanticPuppet::VersionRange.new(pattern, pattern) : SemanticPuppet::VersionRange.parse(pattern)
|
50
53
|
found = find_matching(range, versions)
|
51
|
-
|
54
|
+
@faces[name][found]
|
52
55
|
end
|
53
56
|
|
54
57
|
def self.find_matching(range, versions)
|
55
|
-
versions.select { |v| range === v }.
|
58
|
+
versions.select { |v| range === v }.max
|
56
59
|
end
|
57
60
|
|
58
61
|
# try to load the face, and return it.
|
@@ -92,7 +95,7 @@ module Puppet::Interface::FaceCollection
|
|
92
95
|
# versions here and return the last item in that set.
|
93
96
|
#
|
94
97
|
# --daniel 2011-04-06
|
95
|
-
latest_ver = @faces[name].keys.
|
98
|
+
latest_ver = @faces[name].keys.max
|
96
99
|
@faces[name][:current] = @faces[name][latest_ver]
|
97
100
|
end
|
98
101
|
end
|
@@ -102,20 +105,21 @@ module Puppet::Interface::FaceCollection
|
|
102
105
|
safely_require name, version
|
103
106
|
end
|
104
107
|
|
105
|
-
|
108
|
+
get_face(name, version)
|
106
109
|
end
|
107
110
|
|
108
111
|
def self.safely_require(name, version = nil)
|
109
112
|
path = @loader.expand(version ? ::File.join(version.to_s, name.to_s) : name)
|
110
113
|
require path
|
111
114
|
true
|
112
|
-
|
113
115
|
rescue LoadError => e
|
114
|
-
raise unless e.message =~
|
116
|
+
raise unless e.message =~ /-- #{path}$/
|
117
|
+
|
115
118
|
# ...guess we didn't find the file; return a much better problem.
|
116
119
|
nil
|
117
120
|
rescue SyntaxError => e
|
118
|
-
raise unless e.message =~
|
121
|
+
raise unless e.message =~ /#{path}\.rb:\d+: /
|
122
|
+
|
119
123
|
Puppet.err _("Failed to load face %{name}:\n%{detail}") % { name: name, detail: e }
|
120
124
|
# ...but we just carry on after complaining.
|
121
125
|
nil
|
@@ -127,9 +131,9 @@ module Puppet::Interface::FaceCollection
|
|
127
131
|
|
128
132
|
def self.underscorize(name)
|
129
133
|
unless name.to_s =~ /^[-_a-z][-_a-z0-9]*$/i then
|
130
|
-
#TRANSLATORS 'face' refers to a programming API in Puppet
|
134
|
+
# TRANSLATORS 'face' refers to a programming API in Puppet
|
131
135
|
raise ArgumentError, _("%{name} (%{class_name}) is not a valid face name") %
|
132
|
-
|
136
|
+
{ name: name.inspect, class_name: name.class }
|
133
137
|
end
|
134
138
|
|
135
139
|
name.to_s.downcase.split(/[-_]/).join('_').to_sym
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This represents an option on an action or face (to be globally applied
|
2
4
|
# to its actions). Options should be constructed by calling
|
3
5
|
# {Puppet::Interface::OptionManager#option}, which is available on
|
@@ -20,6 +22,7 @@ class Puppet::Interface::Option
|
|
20
22
|
unless item =~ /^-[a-z]\b/ or item =~ /^--[^-]/ then
|
21
23
|
raise ArgumentError, _("%{option}: long options need two dashes (--)") % { option: item.inspect }
|
22
24
|
end
|
25
|
+
|
23
26
|
@optparse << item
|
24
27
|
|
25
28
|
# Duplicate checking...
|
@@ -35,10 +38,11 @@ class Puppet::Interface::Option
|
|
35
38
|
if Puppet.settings.include? name then
|
36
39
|
raise ArgumentError, _("%{option}: already defined in puppet") % { option: item.inspect }
|
37
40
|
end
|
41
|
+
|
38
42
|
dup = dups[name]
|
39
43
|
if dup
|
40
44
|
raise ArgumentError, _("%{option}: duplicates existing alias %{duplicate} in %{parent}") %
|
41
|
-
|
45
|
+
{ option: item.inspect, duplicate: dup.inspect, parent: @parent }
|
42
46
|
else
|
43
47
|
dups[name] = item
|
44
48
|
end
|
@@ -60,17 +64,17 @@ class Puppet::Interface::Option
|
|
60
64
|
# incoherence here makes our life super-difficult, and we can more easily
|
61
65
|
# relax this rule later if we find a valid use case for it. --daniel 2011-03-30
|
62
66
|
@argument = @optparse.any? { |o| o =~ /[ =]/ }
|
63
|
-
if @argument and
|
67
|
+
if @argument and !@optparse.all? { |o| o =~ /[ =]/ } then
|
64
68
|
raise ArgumentError, _("Option %{name} is inconsistent about taking an argument") % { name: @name }
|
65
69
|
end
|
66
70
|
|
67
71
|
# Is our argument optional? The rules about consistency apply here, also,
|
68
72
|
# just like they do to taking arguments at all. --daniel 2011-03-30
|
69
|
-
@optional_argument = @optparse.any? { |o| o
|
73
|
+
@optional_argument = @optparse.any? { |o| o =~ /[ =]\[/ }
|
70
74
|
if @optional_argument
|
71
75
|
raise ArgumentError, _("Options with optional arguments are not supported")
|
72
76
|
end
|
73
|
-
if @optional_argument and
|
77
|
+
if @optional_argument and !@optparse.all? { |o| o =~ /[ =]\[/ } then
|
74
78
|
raise ArgumentError, _("Option %{name} is inconsistent about the argument being optional") % { name: @name }
|
75
79
|
end
|
76
80
|
end
|
@@ -89,6 +93,7 @@ class Puppet::Interface::Option
|
|
89
93
|
unless found
|
90
94
|
raise ArgumentError, _("Can't find a name in the declaration %{declaration}") % { declaration: declaration.inspect }
|
91
95
|
end
|
96
|
+
|
92
97
|
found.captures.first
|
93
98
|
end
|
94
99
|
|
@@ -98,16 +103,18 @@ class Puppet::Interface::Option
|
|
98
103
|
unless name.to_s =~ /^[a-z]\w*$/
|
99
104
|
raise _("%{name} is an invalid option name") % { name: name.inspect }
|
100
105
|
end
|
106
|
+
|
101
107
|
name.to_sym
|
102
108
|
end
|
103
109
|
|
104
|
-
|
105
110
|
def takes_argument?
|
106
111
|
!!@argument
|
107
112
|
end
|
113
|
+
|
108
114
|
def optional_argument?
|
109
115
|
!!@optional_argument
|
110
116
|
end
|
117
|
+
|
111
118
|
def required?
|
112
119
|
!!@required
|
113
120
|
end
|
@@ -120,10 +127,11 @@ class Puppet::Interface::Option
|
|
120
127
|
if required
|
121
128
|
raise ArgumentError, _("%{name} can't be optional and have a default value") % { name: self }
|
122
129
|
end
|
130
|
+
|
123
131
|
unless proc.is_a? Proc
|
124
|
-
#TRANSLATORS 'proc' is a Ruby block of code
|
132
|
+
# TRANSLATORS 'proc' is a Ruby block of code
|
125
133
|
raise ArgumentError, _("default value for %{name} is a %{class_name}, not a proc") %
|
126
|
-
|
134
|
+
{ name: self, class_name: proc.class.name.inspect }
|
127
135
|
end
|
128
136
|
@default = proc
|
129
137
|
end
|
@@ -133,30 +141,34 @@ class Puppet::Interface::Option
|
|
133
141
|
end
|
134
142
|
|
135
143
|
attr_reader :parent, :name, :aliases, :optparse, :required
|
144
|
+
|
136
145
|
def required=(value)
|
137
146
|
if has_default?
|
138
147
|
raise ArgumentError, _("%{name} can't be optional and have a default value") % { name: self }
|
139
148
|
end
|
149
|
+
|
140
150
|
@required = value
|
141
151
|
end
|
142
152
|
|
143
153
|
attr_reader :before_action
|
154
|
+
|
144
155
|
def before_action=(proc)
|
145
156
|
unless proc.is_a? Proc
|
146
|
-
#TRANSLATORS 'proc' is a Ruby block of code
|
157
|
+
# TRANSLATORS 'proc' is a Ruby block of code
|
147
158
|
raise ArgumentError, _("before action hook for %{name} is a %{class_name}, not a proc") %
|
148
|
-
|
159
|
+
{ name: self, class_name: proc.class.name.inspect }
|
149
160
|
end
|
150
161
|
@before_action =
|
151
162
|
@parent.__send__(:__add_method, __decoration_name(:before), proc)
|
152
163
|
end
|
153
164
|
|
154
165
|
attr_reader :after_action
|
166
|
+
|
155
167
|
def after_action=(proc)
|
156
168
|
unless proc.is_a? Proc
|
157
|
-
#TRANSLATORS 'proc' is a Ruby block of code
|
169
|
+
# TRANSLATORS 'proc' is a Ruby block of code
|
158
170
|
raise ArgumentError, _("after action hook for %{name} is a %{class_name}, not a proc") %
|
159
|
-
|
171
|
+
{ name: self, class_name: proc.class.name.inspect }
|
160
172
|
end
|
161
173
|
@after_action =
|
162
174
|
@parent.__send__(:__add_method, __decoration_name(:after), proc)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# @api public
|
2
4
|
class Puppet::Interface::OptionBuilder
|
3
5
|
# The option under construction
|
@@ -16,12 +18,12 @@ class Puppet::Interface::OptionBuilder
|
|
16
18
|
@face = face
|
17
19
|
@option = Puppet::Interface::Option.new(face, *declaration)
|
18
20
|
instance_eval(&block) if block_given?
|
19
|
-
@option
|
20
21
|
end
|
21
22
|
|
22
23
|
# Metaprogram the simple DSL from the option class.
|
23
24
|
Puppet::Interface::Option.instance_methods.grep(/=$/).each do |setter|
|
24
25
|
next if setter =~ /^=/
|
26
|
+
|
25
27
|
dsl = setter.to_s.chomp('=')
|
26
28
|
|
27
29
|
unless private_method_defined? dsl
|
@@ -41,17 +43,18 @@ class Puppet::Interface::OptionBuilder
|
|
41
43
|
# @dsl Faces
|
42
44
|
def before_action(&block)
|
43
45
|
unless block
|
44
|
-
#TRANSLATORS 'before_action' is a method name and should not be translated
|
46
|
+
# TRANSLATORS 'before_action' is a method name and should not be translated
|
45
47
|
raise ArgumentError, _("%{option} before_action requires a block") % { option: @option }
|
46
48
|
end
|
47
49
|
if @option.before_action
|
48
|
-
#TRANSLATORS 'before_action' is a method name and should not be translated
|
50
|
+
# TRANSLATORS 'before_action' is a method name and should not be translated
|
49
51
|
raise ArgumentError, _("%{option} already has a before_action set") % { option: @option }
|
50
52
|
end
|
51
53
|
unless block.arity == 3 then
|
52
|
-
#TRANSLATORS 'before_action' is a method name and should not be translated
|
54
|
+
# TRANSLATORS 'before_action' is a method name and should not be translated
|
53
55
|
raise ArgumentError, _("before_action takes three arguments, action, args, and options")
|
54
56
|
end
|
57
|
+
|
55
58
|
@option.before_action = block
|
56
59
|
end
|
57
60
|
|
@@ -61,17 +64,18 @@ class Puppet::Interface::OptionBuilder
|
|
61
64
|
# @dsl Faces
|
62
65
|
def after_action(&block)
|
63
66
|
unless block
|
64
|
-
#TRANSLATORS 'after_action' is a method name and should not be translated
|
67
|
+
# TRANSLATORS 'after_action' is a method name and should not be translated
|
65
68
|
raise ArgumentError, _("%{option} after_action requires a block") % { option: @option }
|
66
69
|
end
|
67
70
|
if @option.after_action
|
68
|
-
#TRANSLATORS 'after_action' is a method name and should not be translated
|
71
|
+
# TRANSLATORS 'after_action' is a method name and should not be translated
|
69
72
|
raise ArgumentError, _("%{option} already has an after_action set") % { option: @option }
|
70
73
|
end
|
71
74
|
unless block.arity == 3 then
|
72
|
-
#TRANSLATORS 'after_action' is a method name and should not be translated
|
75
|
+
# TRANSLATORS 'after_action' is a method name and should not be translated
|
73
76
|
raise ArgumentError, _("after_action takes three arguments, action, args, and options")
|
74
77
|
end
|
78
|
+
|
75
79
|
@option.after_action = block
|
76
80
|
end
|
77
81
|
|
@@ -90,16 +94,17 @@ class Puppet::Interface::OptionBuilder
|
|
90
94
|
# @dsl Faces
|
91
95
|
def default_to(&block)
|
92
96
|
unless block
|
93
|
-
#TRANSLATORS 'default_to' is a method name and should not be translated
|
97
|
+
# TRANSLATORS 'default_to' is a method name and should not be translated
|
94
98
|
raise ArgumentError, _("%{option} default_to requires a block") % { option: @option }
|
95
99
|
end
|
96
100
|
if @option.has_default?
|
97
101
|
raise ArgumentError, _("%{option} already has a default value") % { option: @option }
|
98
102
|
end
|
99
103
|
unless block.arity == 0
|
100
|
-
#TRANSLATORS 'default_to' is a method name and should not be translated
|
104
|
+
# TRANSLATORS 'default_to' is a method name and should not be translated
|
101
105
|
raise ArgumentError, _("%{option} default_to block should not take any arguments") % { option: @option }
|
102
106
|
end
|
107
|
+
|
103
108
|
@option.default = block
|
104
109
|
end
|
105
110
|
end
|
@@ -1,18 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This class is not actually public API, but the method
|
2
4
|
# {Puppet::Interface::OptionManager#option option} is public when used
|
3
5
|
# as part of the Faces DSL (i.e. from within a
|
4
6
|
# {Puppet::Interface.define define} block).
|
5
7
|
# @api public
|
6
8
|
module Puppet::Interface::OptionManager
|
7
|
-
|
8
9
|
# @api private
|
9
10
|
def display_global_options(*args)
|
10
11
|
@display_global_options ||= []
|
11
12
|
[args].flatten.each do |refopt|
|
12
13
|
unless Puppet.settings.include?(refopt)
|
13
|
-
#TRANSLATORS 'Puppet.settings' references to the Puppet settings options and should not be translated
|
14
|
+
# TRANSLATORS 'Puppet.settings' references to the Puppet settings options and should not be translated
|
14
15
|
raise ArgumentError, _("Global option %{option} does not exist in Puppet.settings") % { option: refopt }
|
15
16
|
end
|
17
|
+
|
16
18
|
@display_global_options << refopt if refopt
|
17
19
|
end
|
18
20
|
@display_global_options.uniq!
|
@@ -26,13 +28,13 @@ module Puppet::Interface::OptionManager
|
|
26
28
|
|
27
29
|
# @api private
|
28
30
|
def walk_inheritance_tree(start, sym)
|
29
|
-
result =
|
30
|
-
if
|
31
|
+
result = start || []
|
32
|
+
if is_a?(Class) and superclass.respond_to?(sym)
|
31
33
|
result = superclass.send(sym) + result
|
32
34
|
elsif self.class.respond_to?(sym)
|
33
35
|
result = self.class.send(sym) + result
|
34
36
|
end
|
35
|
-
|
37
|
+
result
|
36
38
|
end
|
37
39
|
|
38
40
|
# Declare that this app can take a specific option, and provide the
|
@@ -56,7 +58,7 @@ module Puppet::Interface::OptionManager
|
|
56
58
|
conflict = get_option(name)
|
57
59
|
if conflict
|
58
60
|
raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict}") %
|
59
|
-
|
61
|
+
{ option: option, conflict: conflict }
|
60
62
|
end
|
61
63
|
|
62
64
|
actions.each do |action|
|
@@ -64,7 +66,7 @@ module Puppet::Interface::OptionManager
|
|
64
66
|
conflict = action.get_option(name)
|
65
67
|
if conflict
|
66
68
|
raise ArgumentError, _("Option %{option} conflicts with existing option %{conflict} on %{action}") %
|
67
|
-
|
69
|
+
{ option: option, conflict: conflict, action: action }
|
68
70
|
end
|
69
71
|
end
|
70
72
|
end
|
@@ -75,7 +77,7 @@ module Puppet::Interface::OptionManager
|
|
75
77
|
@options_hash[name] = option
|
76
78
|
end
|
77
79
|
|
78
|
-
|
80
|
+
option
|
79
81
|
end
|
80
82
|
|
81
83
|
# @api private
|
@@ -89,14 +91,14 @@ module Puppet::Interface::OptionManager
|
|
89
91
|
|
90
92
|
result = @options_hash[name.to_sym]
|
91
93
|
if result.nil? and with_inherited_options then
|
92
|
-
if
|
94
|
+
if is_a?(Class) and superclass.respond_to?(:get_option)
|
93
95
|
result = superclass.get_option(name)
|
94
96
|
elsif self.class.respond_to?(:get_option)
|
95
97
|
result = self.class.get_option(name)
|
96
98
|
end
|
97
99
|
end
|
98
100
|
|
99
|
-
|
101
|
+
result
|
100
102
|
end
|
101
103
|
|
102
104
|
# @api private
|
data/lib/puppet/interface.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../puppet'
|
2
4
|
require_relative '../puppet/util/autoload'
|
3
5
|
require 'prettyprint'
|
@@ -15,7 +17,6 @@ class Puppet::Interface
|
|
15
17
|
require_relative 'interface/option_builder'
|
16
18
|
require_relative 'interface/option_manager'
|
17
19
|
|
18
|
-
|
19
20
|
include FullDocs
|
20
21
|
|
21
22
|
include Puppet::Interface::ActionManager
|
@@ -50,14 +51,14 @@ class Puppet::Interface
|
|
50
51
|
# @param name [Symbol] the name of the face
|
51
52
|
# @param version [String] the version of the face (this should
|
52
53
|
# conform to {http://semver.org/ Semantic Versioning})
|
53
|
-
# @overload define(name, version, {
|
54
|
+
# @overload define(name, version, { ... })
|
54
55
|
# @return [Puppet::Interface] The created face
|
55
56
|
# @api public
|
56
57
|
# @dsl Faces
|
57
58
|
def define(name, version, &block)
|
58
59
|
face = Puppet::Interface::FaceCollection[name, version]
|
59
60
|
if face.nil? then
|
60
|
-
face =
|
61
|
+
face = new(name, version)
|
61
62
|
Puppet::Interface::FaceCollection.register(face)
|
62
63
|
# REVISIT: Shouldn't this be delayed until *after* we evaluate the
|
63
64
|
# current block, not done before? --daniel 2011-04-07
|
@@ -66,7 +67,7 @@ class Puppet::Interface
|
|
66
67
|
|
67
68
|
face.instance_eval(&block) if block_given?
|
68
69
|
|
69
|
-
|
70
|
+
face
|
70
71
|
end
|
71
72
|
|
72
73
|
# Retrieves a face by name and version. Use `:current` for the
|
@@ -120,16 +121,14 @@ class Puppet::Interface
|
|
120
121
|
# splits out this should merge into a module that both the action and face
|
121
122
|
# include. --daniel 2011-04-17
|
122
123
|
|
123
|
-
|
124
124
|
# Returns the synopsis for the face. This shows basic usage and global
|
125
125
|
# options.
|
126
126
|
# @return [String] usage synopsis
|
127
127
|
# @api private
|
128
128
|
def synopsis
|
129
|
-
build_synopsis
|
129
|
+
build_synopsis name, '<action>'
|
130
130
|
end
|
131
131
|
|
132
|
-
|
133
132
|
########################################################################
|
134
133
|
|
135
134
|
# The name of the face
|
@@ -200,7 +199,9 @@ class Puppet::Interface
|
|
200
199
|
# to be unrecognizable in the final outcome. At which point we will throw
|
201
200
|
# all this away, replace it with something nice, and work out if we should
|
202
201
|
# be making this visible to the outside world... --daniel 2011-04-14
|
202
|
+
|
203
203
|
private
|
204
|
+
|
204
205
|
# @return [void]
|
205
206
|
# @api private
|
206
207
|
def __invoke_decorations(type, action, passed_args = [], passed_options = {})
|
@@ -218,7 +219,7 @@ class Puppet::Interface
|
|
218
219
|
# Exceptions here should propagate up; this implements a hook we can use
|
219
220
|
# reasonably for option validation.
|
220
221
|
methods.each do |hook|
|
221
|
-
respond_to? hook and
|
222
|
+
respond_to? hook and __send__(hook, action, passed_args, passed_options)
|
222
223
|
end
|
223
224
|
end
|
224
225
|
|
data/lib/puppet/loaders.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../puppet'
|
2
4
|
require_relative '../../puppet/util/classgen'
|
3
5
|
require_relative '../../puppet/node/environment'
|
@@ -15,7 +17,7 @@ module Manager
|
|
15
17
|
# @api private
|
16
18
|
#
|
17
19
|
def allclear
|
18
|
-
@types.each { |
|
20
|
+
@types.each { |_name, type|
|
19
21
|
type.clear
|
20
22
|
}
|
21
23
|
end
|
@@ -26,7 +28,7 @@ module Manager
|
|
26
28
|
#
|
27
29
|
def clear_misses
|
28
30
|
unless @types.nil?
|
29
|
-
@types.
|
31
|
+
@types.compact
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
@@ -36,11 +38,11 @@ module Manager
|
|
36
38
|
# @yieldreturn [Object] the last returned object is also returned from this method
|
37
39
|
# @return [Object] the last returned value from the block.
|
38
40
|
def eachtype
|
39
|
-
@types.each do |
|
41
|
+
@types.each do |_name, type|
|
40
42
|
# Only consider types that have names
|
41
|
-
#if ! type.parameters.empty? or ! type.validproperties.empty?
|
42
|
-
|
43
|
-
#end
|
43
|
+
# if ! type.parameters.empty? or ! type.validproperties.empty?
|
44
|
+
yield type
|
45
|
+
# end
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
@@ -73,9 +75,9 @@ module Manager
|
|
73
75
|
@manager_lock.synchronize do
|
74
76
|
# Handle backward compatibility
|
75
77
|
unless options.is_a?(Hash)
|
76
|
-
#TRANSLATORS 'Puppet::Type.newtype' should not be translated
|
78
|
+
# TRANSLATORS 'Puppet::Type.newtype' should not be translated
|
77
79
|
Puppet.warning(_("Puppet::Type.newtype(%{name}) now expects a hash as the second argument, not %{argument}") %
|
78
|
-
{ name: name, argument: options.inspect})
|
80
|
+
{ name: name, argument: options.inspect })
|
79
81
|
end
|
80
82
|
|
81
83
|
# First make sure we don't have a method sitting around
|
@@ -86,9 +88,9 @@ module Manager
|
|
86
88
|
selfobj = singleton_class
|
87
89
|
|
88
90
|
if @types.include?(name)
|
89
|
-
if
|
91
|
+
if respond_to?(newmethod)
|
90
92
|
# Remove the old newmethod
|
91
|
-
selfobj.send(:remove_method,newmethod)
|
93
|
+
selfobj.send(:remove_method, newmethod)
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
@@ -104,9 +106,9 @@ module Manager
|
|
104
106
|
)
|
105
107
|
|
106
108
|
# Now define a "new<type>" method for convenience.
|
107
|
-
if
|
109
|
+
if respond_to? newmethod
|
108
110
|
# Refuse to overwrite existing methods like 'newparam' or 'newtype'.
|
109
|
-
#TRANSLATORS 'new%{method}' will become a method name, do not translate this string
|
111
|
+
# TRANSLATORS 'new%{method}' will become a method name, do not translate this string
|
110
112
|
Puppet.warning(_("'new%{method}' method already exists; skipping") % { method: name.to_s })
|
111
113
|
else
|
112
114
|
selfobj.send(:define_method, newmethod) do |*args|
|
@@ -116,7 +118,7 @@ module Manager
|
|
116
118
|
|
117
119
|
# If they've got all the necessary methods defined and they haven't
|
118
120
|
# already added the property, then do so now.
|
119
|
-
klass.ensurable if klass.ensurable? and !
|
121
|
+
klass.ensurable if klass.ensurable? and !klass.validproperty?(:ensure)
|
120
122
|
|
121
123
|
# Now set up autoload any providers that might exist for this type.
|
122
124
|
|
@@ -169,7 +171,7 @@ module Manager
|
|
169
171
|
end
|
170
172
|
# Try loading the type.
|
171
173
|
if typeloader.load(name, Puppet.lookup(:current_environment))
|
172
|
-
#TRANSLATORS 'puppet/type/%{name}' should not be translated
|
174
|
+
# TRANSLATORS 'puppet/type/%{name}' should not be translated
|
173
175
|
Puppet.warning(_("Loaded puppet/type/%{name} but no class was created") % { name: name }) unless @types.include? name
|
174
176
|
elsif !Puppet[:always_retry_plugins]
|
175
177
|
# PUP-5482 - Only look for a type once if plugin retry is disabled
|
@@ -194,4 +196,3 @@ module Manager
|
|
194
196
|
end
|
195
197
|
end
|
196
198
|
end
|
197
|
-
|
data/lib/puppet/module/plan.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../puppet/util/logging'
|
2
4
|
|
3
5
|
class Puppet::Module
|
4
6
|
class Plan
|
5
7
|
class Error < Puppet::Error
|
6
8
|
attr_accessor :kind, :details
|
9
|
+
|
7
10
|
def initialize(message, kind, details = nil)
|
8
11
|
super(message)
|
9
12
|
@details = details || {}
|
@@ -33,27 +36,30 @@ class Puppet::Module
|
|
33
36
|
|
34
37
|
class InvalidPlan < Error
|
35
38
|
end
|
39
|
+
|
36
40
|
class InvalidMetadata < Error
|
37
41
|
end
|
42
|
+
|
38
43
|
class PlanNotFound < Error
|
39
44
|
def initialize(plan_name, module_name)
|
40
45
|
msg = _("Plan %{plan_name} not found in module %{module_name}.") %
|
41
|
-
|
46
|
+
{ plan_name: plan_name, module_name: module_name }
|
42
47
|
super(msg, 'puppet.plans/plan-not-found', { 'name' => plan_name })
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
46
|
-
ALLOWED_EXTENSIONS = %w
|
47
|
-
RESERVED_WORDS = %w
|
48
|
-
|
49
|
-
|
50
|
-
RESERVED_DATA_TYPES = %w
|
51
|
-
|
52
|
-
|
51
|
+
ALLOWED_EXTENSIONS = %w[.pp .yaml]
|
52
|
+
RESERVED_WORDS = %w[and application attr case class consumes default else
|
53
|
+
elsif environment false function if import in inherits node or private
|
54
|
+
produces site true type undef unless]
|
55
|
+
RESERVED_DATA_TYPES = %w[any array boolean catalogentry class collection
|
56
|
+
callable data default enum float hash integer numeric optional pattern
|
57
|
+
resource runtime scalar string struct tuple type undef variant]
|
53
58
|
|
54
59
|
def self.is_plan_name?(name)
|
55
60
|
return true if name =~ /^[a-z][a-z0-9_]*$/
|
56
|
-
|
61
|
+
|
62
|
+
false
|
57
63
|
end
|
58
64
|
|
59
65
|
# Determine whether a plan file has a legal name and extension
|
@@ -70,7 +76,8 @@ class Puppet::Module
|
|
70
76
|
if RESERVED_DATA_TYPES.include?(name)
|
71
77
|
return [false, _("Plan name cannot be a Puppet data type, but was '%{name}'") % { name: name }]
|
72
78
|
end
|
73
|
-
|
79
|
+
|
80
|
+
[true]
|
74
81
|
end
|
75
82
|
|
76
83
|
# Executables list should contain the full path of all possible implementation files
|
@@ -82,7 +89,7 @@ class Puppet::Module
|
|
82
89
|
implementations = plan_files.select { |impl| File.basename(impl, '.*') == basename }
|
83
90
|
|
84
91
|
# Select .pp before .yaml, since .pp comes before .yaml alphabetically.
|
85
|
-
chosen = implementations.
|
92
|
+
chosen = implementations.min
|
86
93
|
|
87
94
|
[{ "name" => File.basename(chosen), "path" => chosen }]
|
88
95
|
end
|
@@ -95,7 +102,7 @@ class Puppet::Module
|
|
95
102
|
def self.plans_in_module(pup_module)
|
96
103
|
# Search e.g. 'modules/<pup_module>/plans' for all plans
|
97
104
|
plan_files = Dir.glob(File.join(pup_module.plans_directory, '*'))
|
98
|
-
|
105
|
+
.keep_if { |f| valid, _ = is_plans_filename?(f); valid }
|
99
106
|
|
100
107
|
plans = plan_files.group_by { |f| plan_name_from_path(f) }
|
101
108
|
|
@@ -136,8 +143,8 @@ class Puppet::Module
|
|
136
143
|
end
|
137
144
|
|
138
145
|
def ==(other)
|
139
|
-
|
140
|
-
|
146
|
+
name == other.name &&
|
147
|
+
self.module == other.module
|
141
148
|
end
|
142
149
|
|
143
150
|
def environment_name
|
@@ -152,7 +159,7 @@ class Puppet::Module
|
|
152
159
|
|
153
160
|
# Abstracted here so we can add support for subdirectories later
|
154
161
|
def self.plan_name_from_path(path)
|
155
|
-
|
162
|
+
File.basename(path, '.*')
|
156
163
|
end
|
157
164
|
private_class_method :plan_name_from_path
|
158
165
|
end
|