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,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# The Compiler service is used to submit and retrieve data from the
|
2
4
|
# puppetserver.
|
3
5
|
#
|
4
6
|
# @api public
|
5
7
|
class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
6
8
|
# @return [String] Default API for the Compiler service
|
7
|
-
API = '/puppet/v3'
|
9
|
+
API = '/puppet/v3'
|
8
10
|
|
9
11
|
# Use `Puppet::HTTP::Session.route_to(:puppet)` to create or get an instance of this class.
|
10
12
|
#
|
@@ -116,7 +118,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
116
118
|
body,
|
117
119
|
headers: headers,
|
118
120
|
# for legacy reasons we always send environment as a query parameter too
|
119
|
-
params: { environment: environment }
|
121
|
+
params: { environment: environment }
|
120
122
|
)
|
121
123
|
|
122
124
|
if (compiler = response['X-Puppet-Compiler-Name'])
|
@@ -147,7 +149,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
147
149
|
# report submission.
|
148
150
|
# @param [String] job_id The id of the orchestrator job that triggered this run.
|
149
151
|
# @param [Hash] options A hash of options beyond direct input to catalogs. Options:
|
150
|
-
# - prefer_requested_environment Whether to always override a node's classified
|
152
|
+
# - prefer_requested_environment Whether to always override a node's classified
|
151
153
|
# environment with the one supplied in the request. If this is true and no environment
|
152
154
|
# is supplied, fall back to the classified environment, or finally, 'production'.
|
153
155
|
# - capture_logs Whether to return the errors and warnings that occurred during
|
@@ -161,9 +163,10 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
161
163
|
#
|
162
164
|
def post_catalog4(certname, persistence:, environment:, facts: nil, trusted_facts: nil, transaction_uuid: nil, job_id: nil, options: nil)
|
163
165
|
unless persistence.is_a?(Hash) && (missing = [:facts, :catalog] - persistence.keys.map(&:to_sym)).empty?
|
164
|
-
raise ArgumentError
|
166
|
+
raise ArgumentError, "The 'persistence' hash is missing the keys: #{missing.join(', ')}"
|
165
167
|
end
|
166
|
-
raise ArgumentError
|
168
|
+
raise ArgumentError, "Facts must be a Hash not a #{facts.class}" unless facts.nil? || facts.is_a?(Hash)
|
169
|
+
|
167
170
|
body = {
|
168
171
|
certname: certname,
|
169
172
|
persistence: persistence,
|
@@ -192,7 +195,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
192
195
|
rescue => err
|
193
196
|
raise Puppet::HTTP::SerializationError.new("Failed to deserialize catalog from puppetserver response: #{err.message}", err)
|
194
197
|
end
|
195
|
-
|
198
|
+
|
196
199
|
logs = response_body['logs'] || []
|
197
200
|
[response, catalog, logs]
|
198
201
|
end
|
@@ -245,7 +248,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
245
248
|
with_base_url("/facts/#{name}"),
|
246
249
|
serialize(formatter, facts),
|
247
250
|
headers: headers,
|
248
|
-
params: { environment: environment }
|
251
|
+
params: { environment: environment }
|
249
252
|
)
|
250
253
|
|
251
254
|
process_response(response)
|
@@ -305,9 +308,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
305
308
|
# @api public
|
306
309
|
def put_filebucket_file(path, body:, environment:)
|
307
310
|
headers = add_puppet_headers({
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
+
'Accept' => 'application/octet-stream',
|
312
|
+
'Content-Type' => 'application/octet-stream'
|
313
|
+
})
|
311
314
|
|
312
315
|
response = @client.put(
|
313
316
|
with_base_url("/file_bucket_file/#{path}"),
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../../puppet/file_serving/metadata'
|
2
4
|
|
3
5
|
# The FileServer service is used to retrieve file metadata and content.
|
@@ -6,10 +8,10 @@ require_relative '../../../puppet/file_serving/metadata'
|
|
6
8
|
#
|
7
9
|
class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
8
10
|
# @return [String] Default API for the FileServer service
|
9
|
-
API = '/puppet/v3'
|
11
|
+
API = '/puppet/v3'
|
10
12
|
|
11
13
|
# @return [RegEx] RegEx used to determine if a path contains a leading slash
|
12
|
-
PATH_REGEX =
|
14
|
+
PATH_REGEX = %r{^/}
|
13
15
|
|
14
16
|
# Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
|
15
17
|
#
|
@@ -98,7 +100,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
98
100
|
#
|
99
101
|
# @api public
|
100
102
|
#
|
101
|
-
def get_file_metadatas(path: nil,
|
103
|
+
def get_file_metadatas(environment:, path: nil, recurse: :false, recurselimit: nil, max_files: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore) # rubocop:disable Lint/BooleanSymbol
|
102
104
|
validate_path(path)
|
103
105
|
|
104
106
|
headers = add_puppet_headers('Accept' => get_mime_types(Puppet::FileServing::Metadata).join(', '))
|
@@ -1,9 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# The puppetserver service.
|
2
4
|
#
|
3
5
|
# @api public
|
4
6
|
#
|
5
7
|
class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
6
|
-
|
7
8
|
# Use `Puppet::HTTP::Session.route_to(:puppetserver)` to create or get an instance of this class.
|
8
9
|
#
|
9
10
|
# @param [Puppet::HTTP::Client] client
|
@@ -35,7 +36,7 @@ class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
|
35
36
|
response = @client.get(
|
36
37
|
with_base_url(request_path),
|
37
38
|
headers: add_puppet_headers({}),
|
38
|
-
options: {ssl_context: ssl_context}
|
39
|
+
options: { ssl_context: ssl_context }
|
39
40
|
)
|
40
41
|
|
41
42
|
process_response(response)
|
@@ -1,11 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# The Report service is used to submit run reports to the report server.
|
2
4
|
#
|
3
5
|
# @api public
|
4
6
|
#
|
5
7
|
class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
6
|
-
|
7
8
|
# @return [String] Default API for the report service
|
8
|
-
API = '/puppet/v3'
|
9
|
+
API = '/puppet/v3'
|
9
10
|
|
10
11
|
# Use `Puppet::HTTP::Session.route_to(:report)` to create or get an instance of this class.
|
11
12
|
#
|
@@ -46,7 +47,7 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
46
47
|
with_base_url("/report/#{name}"),
|
47
48
|
serialize(formatter, report),
|
48
49
|
headers: headers,
|
49
|
-
params: { environment: environment }
|
50
|
+
params: { environment: environment }
|
50
51
|
)
|
51
52
|
|
52
53
|
# override parent's process_response handling
|
@@ -54,11 +55,8 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
54
55
|
|
55
56
|
if response.success?
|
56
57
|
response
|
57
|
-
elsif !@session.supports?(:report, 'json') && Puppet[:preferred_serialization_format] != 'pson'
|
58
|
-
#TRANSLATORS "pson", "preferred_serialization_format", and "puppetserver" should not be translated
|
59
|
-
raise Puppet::HTTP::ProtocolError.new(_("To submit reports to a server running puppetserver %{server_version}, set preferred_serialization_format to pson") % { server_version: response[Puppet::HTTP::HEADER_PUPPET_VERSION]})
|
60
58
|
else
|
61
|
-
raise Puppet::HTTP::ResponseError
|
59
|
+
raise Puppet::HTTP::ResponseError, response
|
62
60
|
end
|
63
61
|
end
|
64
62
|
end
|
data/lib/puppet/http/service.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Represents an abstract Puppet web service.
|
2
4
|
#
|
3
5
|
# @abstract Subclass and implement methods for the service's REST APIs.
|
@@ -90,7 +92,7 @@ class Puppet::HTTP::Service
|
|
90
92
|
#
|
91
93
|
# @api public
|
92
94
|
def connect(ssl_context: nil)
|
93
|
-
@client.connect(@url, options: {ssl_context: ssl_context})
|
95
|
+
@client.connect(@url, options: { ssl_context: ssl_context })
|
94
96
|
end
|
95
97
|
|
96
98
|
protected
|
@@ -105,12 +107,10 @@ class Puppet::HTTP::Service
|
|
105
107
|
Puppet[:http_extra_headers].each do |name, value|
|
106
108
|
if modified_headers.keys.find { |key| key.casecmp(name) == 0 }
|
107
109
|
Puppet.warning(_('Ignoring extra header "%{name}" as it was previously set.') % { name: name })
|
110
|
+
elsif value.nil? || value.empty?
|
111
|
+
Puppet.warning(_('Ignoring extra header "%{name}" as it has no value.') % { name: name })
|
108
112
|
else
|
109
|
-
|
110
|
-
Puppet.warning(_('Ignoring extra header "%{name}" as it has no value.') % { name: name })
|
111
|
-
else
|
112
|
-
modified_headers[name] = value
|
113
|
-
end
|
113
|
+
modified_headers[name] = value
|
114
114
|
end
|
115
115
|
end
|
116
116
|
modified_headers
|
@@ -119,8 +119,7 @@ class Puppet::HTTP::Service
|
|
119
119
|
def build_url(api, server, port)
|
120
120
|
URI::HTTPS.build(host: server,
|
121
121
|
port: port,
|
122
|
-
path: api
|
123
|
-
).freeze
|
122
|
+
path: api).freeze
|
124
123
|
end
|
125
124
|
|
126
125
|
def get_mime_types(model)
|
@@ -130,30 +129,26 @@ class Puppet::HTTP::Service
|
|
130
129
|
|
131
130
|
def formatter_for_response(response)
|
132
131
|
header = response['Content-Type']
|
133
|
-
raise Puppet::HTTP::ProtocolError
|
132
|
+
raise Puppet::HTTP::ProtocolError, _("No content type in http response; cannot parse") unless header
|
134
133
|
|
135
|
-
header.gsub!(/\s*;.*$/,'') # strip any charset
|
134
|
+
header.gsub!(/\s*;.*$/, '') # strip any charset
|
136
135
|
|
137
136
|
formatter = Puppet::Network::FormatHandler.mime(header)
|
138
|
-
raise Puppet::HTTP::ProtocolError
|
137
|
+
raise Puppet::HTTP::ProtocolError, "Content-Type is unsupported" if EXCLUDED_FORMATS.include?(formatter.name)
|
139
138
|
|
140
139
|
formatter
|
141
140
|
end
|
142
141
|
|
143
142
|
def serialize(formatter, object)
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
|
148
|
-
end
|
143
|
+
formatter.render(object)
|
144
|
+
rescue => err
|
145
|
+
raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
|
149
146
|
end
|
150
147
|
|
151
148
|
def serialize_multiple(formatter, object)
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
|
156
|
-
end
|
149
|
+
formatter.render_multiple(object)
|
150
|
+
rescue => err
|
151
|
+
raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
|
157
152
|
end
|
158
153
|
|
159
154
|
def deserialize(response, model)
|
@@ -177,6 +172,6 @@ class Puppet::HTTP::Service
|
|
177
172
|
def process_response(response)
|
178
173
|
@session.process_response(response)
|
179
174
|
|
180
|
-
raise Puppet::HTTP::ResponseError
|
175
|
+
raise Puppet::HTTP::ResponseError, response unless response.success?
|
181
176
|
end
|
182
177
|
end
|
data/lib/puppet/http/session.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# The session is the mechanism by which services may be connected to and accessed.
|
2
4
|
#
|
3
5
|
# @api public
|
4
6
|
class Puppet::HTTP::Session
|
5
7
|
# capabilities for a site
|
6
|
-
CAP_LOCALES = 'locales'
|
7
|
-
CAP_JSON = 'json'
|
8
|
+
CAP_LOCALES = 'locales'
|
9
|
+
CAP_JSON = 'json'
|
8
10
|
|
9
11
|
# puppet version where locales mount was added
|
10
12
|
SUPPORTED_LOCALES_MOUNT_AGENT_VERSION = Gem::Version.new("5.3.4")
|
@@ -50,7 +52,7 @@ class Puppet::HTTP::Session
|
|
50
52
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
51
53
|
|
52
54
|
# short circuit if explicit URL host & port given
|
53
|
-
if url && url.host
|
55
|
+
if url && !url.host.nil? && !url.host.empty?
|
54
56
|
service = Puppet::HTTP::Service.create_service(@client, self, name, url.host, url.port)
|
55
57
|
service.connect(ssl_context: ssl_context)
|
56
58
|
return service
|
@@ -60,7 +62,7 @@ class Puppet::HTTP::Session
|
|
60
62
|
return cached if cached
|
61
63
|
|
62
64
|
canceled = false
|
63
|
-
canceled_handler
|
65
|
+
canceled_handler = ->(cancel) { canceled = cancel }
|
64
66
|
|
65
67
|
@resolvers.each do |resolver|
|
66
68
|
Puppet.debug("Resolving service '#{name}' using #{resolver.class}")
|
data/lib/puppet/http/site.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Represents a site to which HTTP connections are made. It is a value
|
2
4
|
# object, and is suitable for use in a hash. If two sites are equal,
|
3
5
|
# then a persistent connection made to the first site, can be re-used
|
@@ -8,7 +10,7 @@ class Puppet::HTTP::Site
|
|
8
10
|
attr_reader :scheme, :host, :port
|
9
11
|
|
10
12
|
def self.from_uri(uri)
|
11
|
-
|
13
|
+
new(uri.scheme, uri.host, uri.port)
|
12
14
|
end
|
13
15
|
|
14
16
|
def initialize(scheme, host, port)
|
data/lib/puppet/http.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Puppet
|
2
4
|
# Contains an HTTP client for making network requests to puppet and other
|
3
5
|
# HTTP servers.
|
@@ -7,8 +9,8 @@ module Puppet
|
|
7
9
|
# @see Puppet::HTTP::Response
|
8
10
|
# @api public
|
9
11
|
module HTTP
|
10
|
-
ACCEPT_ENCODING = "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
|
11
|
-
HEADER_PUPPET_VERSION = "X-Puppet-Version"
|
12
|
+
ACCEPT_ENCODING = "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
|
13
|
+
HEADER_PUPPET_VERSION = "X-Puppet-Version"
|
12
14
|
|
13
15
|
require_relative 'http/errors'
|
14
16
|
require_relative 'http/site'
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../../puppet/environments'
|
2
4
|
require_relative '../../../puppet/node'
|
3
5
|
require_relative '../../../puppet/node/server_facts'
|
@@ -22,6 +24,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
22
24
|
def extract_facts_from_request(request)
|
23
25
|
text_facts = request.options[:facts]
|
24
26
|
return unless text_facts
|
27
|
+
|
25
28
|
format = request.options[:facts_format]
|
26
29
|
unless format
|
27
30
|
raise ArgumentError, _("Facts but no fact format provided for %{request}") % { request: request.key }
|
@@ -34,6 +37,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
34
37
|
unless facts.name == request.key
|
35
38
|
raise Puppet::Error, _("Catalog for %{request} was requested with fact definition for the wrong node (%{fact_name}).") % { request: request.key.inspect, fact_name: facts.name.inspect }
|
36
39
|
end
|
40
|
+
|
37
41
|
return facts
|
38
42
|
end
|
39
43
|
end
|
@@ -48,7 +52,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
48
52
|
def find(request)
|
49
53
|
facts = extract_facts_from_request(request)
|
50
54
|
|
51
|
-
save_facts_from_request(facts, request)
|
55
|
+
save_facts_from_request(facts, request) unless facts.nil?
|
52
56
|
|
53
57
|
node = node_from_request(facts, request)
|
54
58
|
node.trusted_data = Puppet.lookup(:trusted_information) { Puppet::Context::TrustedInformation.local(node) }.to_h
|
@@ -65,7 +69,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
65
69
|
# name and modulepath to be the same. When using versioned environment dirs the
|
66
70
|
# same "environment" can have different modulepaths so simply compare names here.
|
67
71
|
if node.environment.name != request.environment.name
|
68
|
-
Puppet.warning _("Requested environment '%{request_env}' did not match server specified environment '%{server_env}'") % {request_env: request.environment.name, server_env: node.environment.name}
|
72
|
+
Puppet.warning _("Requested environment '%{request_env}' did not match server specified environment '%{server_env}'") % { request_env: request.environment.name, server_env: node.environment.name }
|
69
73
|
return Puppet::Resource::Catalog.new(node.name, node.environment)
|
70
74
|
end
|
71
75
|
end
|
@@ -86,7 +90,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
86
90
|
|
87
91
|
# filter-out a catalog to remove exported resources
|
88
92
|
def filter(catalog)
|
89
|
-
return catalog.filter
|
93
|
+
return catalog.filter(&:virtual?) if catalog.respond_to?(:filter)
|
94
|
+
|
90
95
|
catalog
|
91
96
|
end
|
92
97
|
|
@@ -112,12 +117,13 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
112
117
|
# @return [Puppet::Node::Facts] facts object deserialized from supplied string
|
113
118
|
# @api private
|
114
119
|
def convert_wire_facts(facts, format)
|
115
|
-
|
120
|
+
case format
|
121
|
+
when 'pson'
|
116
122
|
# We unescape here because the corresponding code in Puppet::Configurer::FactHandler encodes with Puppet::Util.uri_query_encode
|
117
123
|
# PSON is deprecated, but continue to accept from older agents
|
118
|
-
|
119
|
-
|
120
|
-
|
124
|
+
Puppet::Node::Facts.convert_from('pson', CGI.unescape(facts))
|
125
|
+
when 'application/json'
|
126
|
+
Puppet::Node::Facts.convert_from('json', CGI.unescape(facts))
|
121
127
|
else
|
122
128
|
raise ArgumentError, _("Unsupported facts format")
|
123
129
|
end
|
@@ -134,9 +140,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
134
140
|
# If no match is found, return nil.
|
135
141
|
def common_checksum_type(agent_checksum_type)
|
136
142
|
if agent_checksum_type
|
137
|
-
agent_checksum_types = agent_checksum_type.split('.').map
|
143
|
+
agent_checksum_types = agent_checksum_type.split('.').map(&:to_sym)
|
138
144
|
checksum_type = agent_checksum_types.drop_while do |type|
|
139
|
-
|
145
|
+
!known_checksum_types.include? type
|
140
146
|
end.first
|
141
147
|
end
|
142
148
|
checksum_type
|
@@ -151,24 +157,23 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
151
157
|
source_as_uri = URI.parse(Puppet::Util.uri_encode(source))
|
152
158
|
server = source_as_uri.host
|
153
159
|
port = ":#{source_as_uri.port}" if source_as_uri.port
|
154
|
-
|
160
|
+
"puppet://#{server}#{port}/#{path}"
|
155
161
|
end
|
156
162
|
|
157
163
|
# Helper method to decide if a file resource's metadata can be inlined.
|
158
164
|
# Also used to profile/log reasons for not inlining.
|
159
165
|
def inlineable?(resource, sources)
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
return true
|
166
|
+
if resource[:ensure] == 'absent'
|
167
|
+
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
168
|
+
Puppet::Util::Profiler.profile(_("Not inlining absent resource"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :absent]) { false }
|
169
|
+
elsif sources.empty?
|
170
|
+
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
171
|
+
Puppet::Util::Profiler.profile(_("Not inlining resource without sources"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :no_sources]) { false }
|
172
|
+
elsif !(sources.all? { |source| source =~ /^puppet:/ })
|
173
|
+
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
174
|
+
Puppet::Util::Profiler.profile(_("Not inlining unsupported source scheme"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :unsupported_scheme]) { false }
|
175
|
+
else
|
176
|
+
true
|
172
177
|
end
|
173
178
|
end
|
174
179
|
|
@@ -180,20 +185,20 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
180
185
|
|
181
186
|
location = Puppet::Module::FILETYPES['files']
|
182
187
|
|
183
|
-
!!(source_as_uri.path =~
|
184
|
-
metadata.full_path =~
|
188
|
+
!!(source_as_uri.path =~ %r{^/modules/} &&
|
189
|
+
metadata.full_path =~ %r{#{environment_path}/[^/]+/[^/]+/#{location}/.+})
|
185
190
|
end
|
186
191
|
|
187
192
|
# Helper method to log file resources that could not be inlined because they
|
188
193
|
# fall outside of an environment.
|
189
194
|
def log_file_outside_environment
|
190
|
-
#TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
195
|
+
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
191
196
|
Puppet::Util::Profiler.profile(_("Not inlining file outside environment"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :file_outside_environment]) { true }
|
192
197
|
end
|
193
198
|
|
194
199
|
# Helper method to log file resources that were successfully inlined.
|
195
200
|
def log_metadata_inlining
|
196
|
-
#TRANSLATORS Inlining refers to adding additional metadata
|
201
|
+
# TRANSLATORS Inlining refers to adding additional metadata
|
197
202
|
Puppet::Util::Profiler.profile(_("Inlining file metadata"), [:compiler, :static_compile_inlining, :inlined_file_metadata]) { true }
|
198
203
|
end
|
199
204
|
|
@@ -215,14 +220,14 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
215
220
|
if resource[:recurse] == true || resource[:recurse] == 'true' || resource[:recurse] == 'remote'
|
216
221
|
# Construct a hash mapping sources to arrays (list of files found recursively) of metadata
|
217
222
|
options = {
|
218
|
-
:environment
|
219
|
-
:links
|
220
|
-
:checksum_type
|
223
|
+
:environment => catalog.environment_instance,
|
224
|
+
:links => resource[:links] ? resource[:links].to_sym : :manage,
|
225
|
+
:checksum_type => resource[:checksum] ? resource[:checksum].to_sym : checksum_type.to_sym,
|
221
226
|
:source_permissions => resource[:source_permissions] ? resource[:source_permissions].to_sym : :ignore,
|
222
|
-
:recurse
|
223
|
-
:recurselimit
|
224
|
-
:max_files
|
225
|
-
:ignore
|
227
|
+
:recurse => true,
|
228
|
+
:recurselimit => resource[:recurselimit],
|
229
|
+
:max_files => resource[:max_files],
|
230
|
+
:ignore => resource[:ignore],
|
226
231
|
}
|
227
232
|
|
228
233
|
sources_in_environment = true
|
@@ -232,32 +237,32 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
232
237
|
source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
|
233
238
|
|
234
239
|
list_of_data = Puppet::FileServing::Metadata.indirection.search(source, options)
|
235
|
-
|
236
|
-
basedir_meta = list_of_data.find {|meta| meta.relative_path == '.'}
|
237
|
-
devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
|
238
|
-
|
239
|
-
if ! inlineable_metadata?(basedir_meta, source, environment_path)
|
240
|
-
# If any source is not in the environment path, skip inlining this resource.
|
241
|
-
log_file_outside_environment
|
242
|
-
sources_in_environment = false
|
243
|
-
break
|
244
|
-
end
|
240
|
+
next unless list_of_data
|
245
241
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
242
|
+
basedir_meta = list_of_data.find { |meta| meta.relative_path == '.' }
|
243
|
+
devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
|
244
|
+
|
245
|
+
unless inlineable_metadata?(basedir_meta, source, environment_path)
|
246
|
+
# If any source is not in the environment path, skip inlining this resource.
|
247
|
+
log_file_outside_environment
|
248
|
+
sources_in_environment = false
|
249
|
+
break
|
250
|
+
end
|
254
251
|
|
255
|
-
|
256
|
-
|
257
|
-
if
|
258
|
-
|
252
|
+
base_content_uri = get_content_uri(basedir_meta, source, environment_path)
|
253
|
+
list_of_data.each do |metadata|
|
254
|
+
if metadata.relative_path == '.'
|
255
|
+
metadata.content_uri = base_content_uri
|
256
|
+
else
|
257
|
+
metadata.content_uri = "#{base_content_uri}/#{metadata.relative_path}"
|
259
258
|
end
|
260
259
|
end
|
260
|
+
|
261
|
+
source_to_metadatas[source] = list_of_data
|
262
|
+
# Optimize for returning less data if sourceselect is first
|
263
|
+
if resource[:sourceselect] == 'first' || resource[:sourceselect].nil?
|
264
|
+
break
|
265
|
+
end
|
261
266
|
end
|
262
267
|
|
263
268
|
if sources_in_environment && !source_to_metadatas.empty?
|
@@ -266,9 +271,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
266
271
|
end
|
267
272
|
else
|
268
273
|
options = {
|
269
|
-
:environment
|
270
|
-
:links
|
271
|
-
:checksum_type
|
274
|
+
:environment => catalog.environment_instance,
|
275
|
+
:links => resource[:links] ? resource[:links].to_sym : :manage,
|
276
|
+
:checksum_type => resource[:checksum] ? resource[:checksum].to_sym : checksum_type.to_sym,
|
272
277
|
:source_permissions => resource[:source_permissions] ? resource[:source_permissions].to_sym : :ignore
|
273
278
|
}
|
274
279
|
|
@@ -277,11 +282,11 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
277
282
|
source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
|
278
283
|
|
279
284
|
data = Puppet::FileServing::Metadata.indirection.find(source, options)
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
+
next unless data
|
286
|
+
|
287
|
+
metadata = data
|
288
|
+
metadata.source = source
|
289
|
+
break
|
285
290
|
end
|
286
291
|
|
287
292
|
raise _("Could not get metadata for %{resource}") % { resource: resource[:source] } unless metadata
|
@@ -318,15 +323,13 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
318
323
|
benchmark_str = _("Compiled static catalog for %{node} in %%{seconds} seconds") % { node: escaped_node_name }
|
319
324
|
profile_str = _("Compiled static catalog for %{node}") % { node: node.name }
|
320
325
|
end
|
326
|
+
elsif node.environment
|
327
|
+
escaped_node_environment = node.environment.to_s.gsub(/%/, '%%')
|
328
|
+
benchmark_str = _("Compiled catalog for %{node} in environment %{environment} in %%{seconds} seconds") % { node: escaped_node_name, environment: escaped_node_environment }
|
329
|
+
profile_str = _("Compiled catalog for %{node} in environment %{environment}") % { node: node.name, environment: node.environment }
|
321
330
|
else
|
322
|
-
|
323
|
-
|
324
|
-
benchmark_str = _("Compiled catalog for %{node} in environment %{environment} in %%{seconds} seconds") % { node: escaped_node_name, environment: escaped_node_environment }
|
325
|
-
profile_str = _("Compiled catalog for %{node} in environment %{environment}") % { node: node.name, environment: node.environment }
|
326
|
-
else
|
327
|
-
benchmark_str = _("Compiled catalog for %{node} in %%{seconds} seconds") % { node: escaped_node_name }
|
328
|
-
profile_str = _("Compiled catalog for %{node}") % { node: node.name }
|
329
|
-
end
|
331
|
+
benchmark_str = _("Compiled catalog for %{node} in %%{seconds} seconds") % { node: escaped_node_name }
|
332
|
+
profile_str = _("Compiled catalog for %{node}") % { node: node.name }
|
330
333
|
end
|
331
334
|
config = nil
|
332
335
|
|
@@ -346,14 +349,14 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
346
349
|
escaped_node_name = node.name.gsub(/%/, '%%')
|
347
350
|
if node.environment
|
348
351
|
escaped_node_environment = node.environment.to_s.gsub(/%/, '%%')
|
349
|
-
#TRANSLATORS Inlined refers to adding additional metadata
|
352
|
+
# TRANSLATORS Inlined refers to adding additional metadata
|
350
353
|
benchmark_str = _("Inlined resource metadata into static catalog for %{node} in environment %{environment} in %%{seconds} seconds") % { node: escaped_node_name, environment: escaped_node_environment }
|
351
|
-
#TRANSLATORS Inlined refers to adding additional metadata
|
354
|
+
# TRANSLATORS Inlined refers to adding additional metadata
|
352
355
|
profile_str = _("Inlined resource metadata into static catalog for %{node} in environment %{environment}") % { node: node.name, environment: node.environment }
|
353
356
|
else
|
354
|
-
#TRANSLATORS Inlined refers to adding additional metadata
|
357
|
+
# TRANSLATORS Inlined refers to adding additional metadata
|
355
358
|
benchmark_str = _("Inlined resource metadata into static catalog for %{node} in %%{seconds} seconds") % { node: escaped_node_name }
|
356
|
-
#TRANSLATORS Inlined refers to adding additional metadata
|
359
|
+
# TRANSLATORS Inlined refers to adding additional metadata
|
357
360
|
profile_str = _("Inlined resource metadata into static catalog for %{node}") % { node: node.name }
|
358
361
|
end
|
359
362
|
benchmark(:notice, benchmark_str) do
|
@@ -365,7 +368,6 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
365
368
|
end
|
366
369
|
end
|
367
370
|
|
368
|
-
|
369
371
|
config
|
370
372
|
end
|
371
373
|
|
@@ -375,16 +377,15 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
375
377
|
node = nil
|
376
378
|
begin
|
377
379
|
node = Puppet::Node.indirection.find(name, :environment => environment,
|
378
|
-
|
379
|
-
|
380
|
-
|
380
|
+
:transaction_uuid => transaction_uuid,
|
381
|
+
:configured_environment => configured_environment,
|
382
|
+
:facts => facts)
|
381
383
|
rescue => detail
|
382
384
|
message = _("Failed when searching for node %{name}: %{detail}") % { name: name, detail: detail }
|
383
385
|
Puppet.log_exception(detail, message)
|
384
386
|
raise Puppet::Error, message, detail.backtrace
|
385
387
|
end
|
386
388
|
|
387
|
-
|
388
389
|
# Add any external data to the node.
|
389
390
|
if node
|
390
391
|
add_node_data(node)
|