openvox 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 +7 -0
- data/CHANGELOG.md +19 -0
- data/CODEOWNERS +11 -0
- data/CODE_OF_CONDUCT.md +70 -0
- data/Gemfile +87 -0
- data/Guardfile.example +76 -0
- data/LICENSE +202 -0
- data/README.md +63 -0
- data/Rakefile +170 -0
- data/bin/puppet +10 -0
- data/conf/environment.conf +18 -0
- data/conf/fileserver.conf +32 -0
- data/conf/hiera.yaml +11 -0
- data/conf/puppet.conf +6 -0
- data/examples/enc/regexp_nodes/classes/databases +2 -0
- data/examples/enc/regexp_nodes/classes/webservers +2 -0
- data/examples/enc/regexp_nodes/environment/development +2 -0
- data/examples/enc/regexp_nodes/parameters/service/prod +1 -0
- data/examples/enc/regexp_nodes/parameters/service/qa +3 -0
- data/examples/enc/regexp_nodes/parameters/service/sandbox +1 -0
- data/examples/enc/regexp_nodes/regexp_nodes.rb +270 -0
- data/examples/hiera/README.md +102 -0
- 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 +18 -0
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +9 -0
- data/examples/hiera/modules/users/manifests/dc1.pp +9 -0
- data/examples/hiera/site.pp +3 -0
- data/examples/nagios/check_puppet.rb +123 -0
- data/ext/README.md +13 -0
- data/ext/build_defaults.yaml +18 -0
- data/ext/debian/puppet.default +4 -0
- data/ext/debian/puppet.init +113 -0
- data/ext/hiera/hiera.yaml +15 -0
- data/ext/osx/puppet.plist +32 -0
- data/ext/project_data.yaml +20 -0
- data/ext/redhat/client.init +169 -0
- data/ext/redhat/client.sysconfig +2 -0
- data/ext/solaris/smf/puppet +44 -0
- data/ext/solaris/smf/puppet.xml +46 -0
- data/ext/suse/client.init +141 -0
- data/ext/systemd/puppet.service +26 -0
- data/ext/windows/puppet_interactive.bat +6 -0
- data/ext/windows/puppet_shell.bat +9 -0
- data/ext/windows/run_puppet_interactive.bat +9 -0
- data/ext/windows/service/daemon.bat +6 -0
- data/ext/windows/service/daemon.rb +219 -0
- data/install.rb +428 -0
- data/lib/hiera/puppet_function.rb +86 -0
- data/lib/hiera/scope.rb +92 -0
- data/lib/hiera_puppet.rb +78 -0
- data/lib/puppet/agent/disabler.rb +55 -0
- data/lib/puppet/agent/locker.rb +46 -0
- data/lib/puppet/agent.rb +178 -0
- data/lib/puppet/application/agent.rb +527 -0
- data/lib/puppet/application/apply.rb +435 -0
- data/lib/puppet/application/catalog.rb +6 -0
- data/lib/puppet/application/config.rb +7 -0
- data/lib/puppet/application/describe.rb +255 -0
- data/lib/puppet/application/device.rb +440 -0
- data/lib/puppet/application/doc.rb +232 -0
- data/lib/puppet/application/epp.rb +7 -0
- data/lib/puppet/application/face_base.rb +277 -0
- data/lib/puppet/application/facts.rb +11 -0
- data/lib/puppet/application/filebucket.rb +324 -0
- data/lib/puppet/application/generate.rb +7 -0
- data/lib/puppet/application/help.rb +7 -0
- data/lib/puppet/application/indirection_base.rb +6 -0
- data/lib/puppet/application/lookup.rb +433 -0
- data/lib/puppet/application/module.rb +6 -0
- data/lib/puppet/application/node.rb +6 -0
- data/lib/puppet/application/parser.rb +7 -0
- data/lib/puppet/application/plugin.rb +6 -0
- data/lib/puppet/application/report.rb +6 -0
- data/lib/puppet/application/resource.rb +264 -0
- data/lib/puppet/application/script.rb +266 -0
- data/lib/puppet/application/ssl.rb +331 -0
- data/lib/puppet/application.rb +596 -0
- data/lib/puppet/application_support.rb +69 -0
- data/lib/puppet/coercion.rb +42 -0
- data/lib/puppet/compilable_resource_type.rb +17 -0
- data/lib/puppet/concurrent/lock.rb +15 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +18 -0
- data/lib/puppet/concurrent.rb +4 -0
- data/lib/puppet/configurer/downloader.rb +91 -0
- data/lib/puppet/configurer/fact_handler.rb +51 -0
- data/lib/puppet/configurer/plugin_handler.rb +61 -0
- data/lib/puppet/configurer.rb +759 -0
- data/lib/puppet/confine/any.rb +28 -0
- data/lib/puppet/confine/boolean.rb +47 -0
- data/lib/puppet/confine/exists.rb +21 -0
- data/lib/puppet/confine/false.rb +27 -0
- data/lib/puppet/confine/feature.rb +18 -0
- data/lib/puppet/confine/true.rb +28 -0
- data/lib/puppet/confine/variable.rb +61 -0
- data/lib/puppet/confine.rb +86 -0
- data/lib/puppet/confine_collection.rb +54 -0
- data/lib/puppet/confiner.rb +48 -0
- data/lib/puppet/context/trusted_information.rb +122 -0
- data/lib/puppet/context.rb +190 -0
- data/lib/puppet/daemon.rb +198 -0
- data/lib/puppet/data_binding.rb +16 -0
- data/lib/puppet/datatypes/error.rb +23 -0
- data/lib/puppet/datatypes/impl/error.rb +42 -0
- data/lib/puppet/datatypes.rb +218 -0
- data/lib/puppet/defaults.rb +2316 -0
- data/lib/puppet/environments.rb +599 -0
- data/lib/puppet/error.rb +142 -0
- data/lib/puppet/etc.rb +185 -0
- data/lib/puppet/external/dot.rb +315 -0
- data/lib/puppet/face/catalog/select.rb +51 -0
- data/lib/puppet/face/catalog.rb +167 -0
- data/lib/puppet/face/config.rb +266 -0
- data/lib/puppet/face/epp.rb +565 -0
- data/lib/puppet/face/facts.rb +176 -0
- data/lib/puppet/face/generate.rb +69 -0
- data/lib/puppet/face/help/action.erb +89 -0
- data/lib/puppet/face/help/face.erb +114 -0
- data/lib/puppet/face/help/global.erb +16 -0
- data/lib/puppet/face/help/man.erb +152 -0
- data/lib/puppet/face/help.rb +260 -0
- data/lib/puppet/face/module/changes.rb +44 -0
- data/lib/puppet/face/module/install.rb +149 -0
- data/lib/puppet/face/module/list.rb +271 -0
- data/lib/puppet/face/module/uninstall.rb +91 -0
- data/lib/puppet/face/module/upgrade.rb +89 -0
- data/lib/puppet/face/module.rb +21 -0
- data/lib/puppet/face/node/clean.rb +109 -0
- data/lib/puppet/face/node.rb +45 -0
- data/lib/puppet/face/parser.rb +226 -0
- data/lib/puppet/face/plugin.rb +62 -0
- data/lib/puppet/face/report.rb +54 -0
- data/lib/puppet/face/resource.rb +55 -0
- data/lib/puppet/face.rb +14 -0
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/feature/base.rb +76 -0
- data/lib/puppet/feature/bolt.rb +5 -0
- data/lib/puppet/feature/cfpropertylist.rb +5 -0
- data/lib/puppet/feature/eventlog.rb +7 -0
- data/lib/puppet/feature/hiera_eyaml.rb +5 -0
- data/lib/puppet/feature/hocon.rb +5 -0
- data/lib/puppet/feature/libuser.rb +10 -0
- data/lib/puppet/feature/msgpack.rb +5 -0
- data/lib/puppet/feature/pe_license.rb +6 -0
- data/lib/puppet/feature/pson.rb +6 -0
- data/lib/puppet/feature/selinux.rb +5 -0
- data/lib/puppet/feature/ssh.rb +5 -0
- data/lib/puppet/feature/telnet.rb +5 -0
- data/lib/puppet/feature/zlib.rb +7 -0
- data/lib/puppet/ffi/posix/constants.rb +16 -0
- data/lib/puppet/ffi/posix/functions.rb +25 -0
- data/lib/puppet/ffi/posix.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +313 -0
- data/lib/puppet/ffi/windows/constants.rb +406 -0
- data/lib/puppet/ffi/windows/functions.rb +629 -0
- data/lib/puppet/ffi/windows/structs.rb +339 -0
- data/lib/puppet/ffi/windows.rb +14 -0
- data/lib/puppet/file_bucket/dipper.rb +183 -0
- data/lib/puppet/file_bucket/file.rb +131 -0
- data/lib/puppet/file_bucket.rb +6 -0
- data/lib/puppet/file_serving/base.rb +94 -0
- data/lib/puppet/file_serving/configuration/parser.rb +116 -0
- data/lib/puppet/file_serving/configuration.rb +116 -0
- data/lib/puppet/file_serving/content.rb +45 -0
- data/lib/puppet/file_serving/fileset.rb +190 -0
- data/lib/puppet/file_serving/http_metadata.rb +61 -0
- data/lib/puppet/file_serving/metadata.rb +174 -0
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/file_serving/mount/modules.rb +29 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
- data/lib/puppet/file_serving/mount/plugins.rb +35 -0
- data/lib/puppet/file_serving/mount/scripts.rb +27 -0
- data/lib/puppet/file_serving/mount/tasks.rb +26 -0
- data/lib/puppet/file_serving/mount.rb +41 -0
- data/lib/puppet/file_serving/terminus_helper.rb +33 -0
- data/lib/puppet/file_serving/terminus_selector.rb +33 -0
- data/lib/puppet/file_serving.rb +5 -0
- data/lib/puppet/file_system/file_impl.rb +189 -0
- data/lib/puppet/file_system/jruby.rb +25 -0
- data/lib/puppet/file_system/memory_file.rb +82 -0
- data/lib/puppet/file_system/memory_impl.rb +103 -0
- data/lib/puppet/file_system/path_pattern.rb +95 -0
- data/lib/puppet/file_system/posix.rb +52 -0
- data/lib/puppet/file_system/uniquefile.rb +190 -0
- data/lib/puppet/file_system/windows.rb +224 -0
- data/lib/puppet/file_system.rb +421 -0
- data/lib/puppet/forge/cache.rb +61 -0
- data/lib/puppet/forge/errors.rb +113 -0
- data/lib/puppet/forge/repository.rb +98 -0
- data/lib/puppet/forge.rb +257 -0
- data/lib/puppet/functions/abs.rb +64 -0
- data/lib/puppet/functions/alert.rb +16 -0
- data/lib/puppet/functions/all.rb +106 -0
- data/lib/puppet/functions/annotate.rb +110 -0
- data/lib/puppet/functions/any.rb +111 -0
- data/lib/puppet/functions/assert_type.rb +96 -0
- data/lib/puppet/functions/binary_file.rb +35 -0
- data/lib/puppet/functions/break.rb +49 -0
- data/lib/puppet/functions/call.rb +81 -0
- data/lib/puppet/functions/camelcase.rb +63 -0
- data/lib/puppet/functions/capitalize.rb +62 -0
- data/lib/puppet/functions/ceiling.rb +38 -0
- data/lib/puppet/functions/chomp.rb +58 -0
- data/lib/puppet/functions/chop.rb +68 -0
- data/lib/puppet/functions/compare.rb +127 -0
- data/lib/puppet/functions/contain.rb +58 -0
- data/lib/puppet/functions/convert_to.rb +36 -0
- data/lib/puppet/functions/crit.rb +16 -0
- data/lib/puppet/functions/debug.rb +16 -0
- data/lib/puppet/functions/defined.rb +163 -0
- data/lib/puppet/functions/dig.rb +70 -0
- data/lib/puppet/functions/downcase.rb +91 -0
- data/lib/puppet/functions/each.rb +169 -0
- data/lib/puppet/functions/emerg.rb +16 -0
- data/lib/puppet/functions/empty.rb +87 -0
- data/lib/puppet/functions/epp.rb +50 -0
- data/lib/puppet/functions/err.rb +16 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +103 -0
- data/lib/puppet/functions/filter.rb +138 -0
- data/lib/puppet/functions/find_file.rb +50 -0
- data/lib/puppet/functions/find_template.rb +65 -0
- data/lib/puppet/functions/flatten.rb +66 -0
- data/lib/puppet/functions/floor.rb +38 -0
- data/lib/puppet/functions/get.rb +152 -0
- data/lib/puppet/functions/getvar.rb +89 -0
- data/lib/puppet/functions/group_by.rb +62 -0
- data/lib/puppet/functions/hiera.rb +91 -0
- data/lib/puppet/functions/hiera_array.rb +83 -0
- data/lib/puppet/functions/hiera_hash.rb +94 -0
- data/lib/puppet/functions/hiera_include.rb +107 -0
- data/lib/puppet/functions/hocon_data.rb +41 -0
- data/lib/puppet/functions/import.rb +9 -0
- data/lib/puppet/functions/include.rb +56 -0
- data/lib/puppet/functions/index.rb +168 -0
- data/lib/puppet/functions/info.rb +16 -0
- data/lib/puppet/functions/inline_epp.rb +61 -0
- data/lib/puppet/functions/join.rb +58 -0
- data/lib/puppet/functions/json_data.rb +33 -0
- data/lib/puppet/functions/keys.rb +27 -0
- data/lib/puppet/functions/length.rb +45 -0
- data/lib/puppet/functions/lest.rb +57 -0
- data/lib/puppet/functions/lookup.rb +224 -0
- data/lib/puppet/functions/lstrip.rb +59 -0
- data/lib/puppet/functions/map.rb +137 -0
- data/lib/puppet/functions/match.rb +133 -0
- data/lib/puppet/functions/max.rb +250 -0
- data/lib/puppet/functions/min.rb +249 -0
- data/lib/puppet/functions/module_directory.rb +43 -0
- data/lib/puppet/functions/new.rb +1013 -0
- data/lib/puppet/functions/next.rb +35 -0
- data/lib/puppet/functions/notice.rb +16 -0
- data/lib/puppet/functions/partition.rb +62 -0
- data/lib/puppet/functions/reduce.rb +159 -0
- data/lib/puppet/functions/regsubst.rb +100 -0
- data/lib/puppet/functions/require.rb +81 -0
- data/lib/puppet/functions/return.rb +17 -0
- data/lib/puppet/functions/reverse_each.rb +96 -0
- data/lib/puppet/functions/round.rb +26 -0
- data/lib/puppet/functions/rstrip.rb +59 -0
- data/lib/puppet/functions/scanf.rb +46 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/slice.rb +127 -0
- data/lib/puppet/functions/sort.rb +76 -0
- data/lib/puppet/functions/split.rb +78 -0
- data/lib/puppet/functions/step.rb +100 -0
- data/lib/puppet/functions/strftime.rb +214 -0
- data/lib/puppet/functions/strip.rb +59 -0
- data/lib/puppet/functions/then.rb +80 -0
- data/lib/puppet/functions/tree_each.rb +198 -0
- data/lib/puppet/functions/type.rb +74 -0
- data/lib/puppet/functions/unique.rb +135 -0
- data/lib/puppet/functions/unwrap.rb +61 -0
- data/lib/puppet/functions/upcase.rb +91 -0
- data/lib/puppet/functions/values.rb +27 -0
- data/lib/puppet/functions/versioncmp.rb +41 -0
- data/lib/puppet/functions/warning.rb +16 -0
- data/lib/puppet/functions/with.rb +34 -0
- data/lib/puppet/functions/yaml_data.rb +45 -0
- data/lib/puppet/functions.rb +858 -0
- data/lib/puppet/generate/models/type/property.rb +73 -0
- data/lib/puppet/generate/models/type/type.rb +68 -0
- data/lib/puppet/generate/templates/type/pcore.erb +42 -0
- data/lib/puppet/generate/type.rb +255 -0
- data/lib/puppet/gettext/config.rb +282 -0
- data/lib/puppet/gettext/module_translations.rb +43 -0
- data/lib/puppet/gettext/stubs.rb +13 -0
- data/lib/puppet/graph/key.rb +28 -0
- data/lib/puppet/graph/prioritizer.rb +31 -0
- data/lib/puppet/graph/rb_tree_map.rb +407 -0
- data/lib/puppet/graph/relationship_graph.rb +286 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +33 -0
- data/lib/puppet/graph/simple_graph.rb +552 -0
- data/lib/puppet/graph.rb +11 -0
- data/lib/puppet/http/client.rb +529 -0
- data/lib/puppet/http/dns.rb +159 -0
- data/lib/puppet/http/errors.rb +50 -0
- data/lib/puppet/http/external_client.rb +89 -0
- data/lib/puppet/http/factory.rb +53 -0
- data/lib/puppet/http/pool.rb +174 -0
- data/lib/puppet/http/pool_entry.rb +19 -0
- data/lib/puppet/http/proxy.rb +139 -0
- data/lib/puppet/http/redirector.rb +87 -0
- data/lib/puppet/http/resolver/server_list.rb +88 -0
- data/lib/puppet/http/resolver/settings.rb +24 -0
- data/lib/puppet/http/resolver/srv.rb +42 -0
- data/lib/puppet/http/resolver.rb +50 -0
- data/lib/puppet/http/response.rb +104 -0
- data/lib/puppet/http/response_converter.rb +25 -0
- data/lib/puppet/http/response_net_http.rb +43 -0
- data/lib/puppet/http/retry_after_handler.rb +78 -0
- data/lib/puppet/http/service/ca.rb +133 -0
- data/lib/puppet/http/service/compiler.rb +356 -0
- data/lib/puppet/http/service/file_server.rb +200 -0
- data/lib/puppet/http/service/puppetserver.rb +54 -0
- data/lib/puppet/http/service/report.rb +62 -0
- data/lib/puppet/http/service.rb +177 -0
- data/lib/puppet/http/session.rb +124 -0
- data/lib/puppet/http/site.rb +44 -0
- data/lib/puppet/http.rb +48 -0
- data/lib/puppet/indirector/catalog/compiler.rb +432 -0
- data/lib/puppet/indirector/catalog/json.rb +42 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +8 -0
- data/lib/puppet/indirector/catalog/rest.rb +51 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/lib/puppet/indirector/catalog/yaml.rb +8 -0
- data/lib/puppet/indirector/code.rb +8 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +8 -0
- data/lib/puppet/indirector/data_binding/none.rb +10 -0
- data/lib/puppet/indirector/direct_file_server.rb +20 -0
- data/lib/puppet/indirector/envelope.rb +13 -0
- data/lib/puppet/indirector/errors.rb +7 -0
- data/lib/puppet/indirector/exec.rb +40 -0
- data/lib/puppet/indirector/face.rb +142 -0
- data/lib/puppet/indirector/fact_search.rb +62 -0
- data/lib/puppet/indirector/facts/facter.rb +120 -0
- data/lib/puppet/indirector/facts/json.rb +29 -0
- data/lib/puppet/indirector/facts/memory.rb +11 -0
- data/lib/puppet/indirector/facts/network_device.rb +29 -0
- data/lib/puppet/indirector/facts/rest.rb +46 -0
- data/lib/puppet/indirector/facts/store_configs.rb +12 -0
- data/lib/puppet/indirector/facts/yaml.rb +31 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +268 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +53 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +54 -0
- data/lib/puppet/indirector/file_content/file.rb +9 -0
- data/lib/puppet/indirector/file_content/file_server.rb +9 -0
- data/lib/puppet/indirector/file_content/rest.rb +37 -0
- data/lib/puppet/indirector/file_content/selector.rb +32 -0
- data/lib/puppet/indirector/file_content.rb +7 -0
- data/lib/puppet/indirector/file_metadata/file.rb +9 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +9 -0
- data/lib/puppet/indirector/file_metadata/http.rb +49 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +58 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +32 -0
- data/lib/puppet/indirector/file_metadata.rb +7 -0
- data/lib/puppet/indirector/file_server.rb +57 -0
- data/lib/puppet/indirector/generic_http.rb +7 -0
- data/lib/puppet/indirector/hiera.rb +101 -0
- data/lib/puppet/indirector/indirection.rb +381 -0
- data/lib/puppet/indirector/json.rb +82 -0
- data/lib/puppet/indirector/memory.rb +37 -0
- data/lib/puppet/indirector/msgpack.rb +87 -0
- data/lib/puppet/indirector/node/exec.rb +70 -0
- data/lib/puppet/indirector/node/json.rb +9 -0
- data/lib/puppet/indirector/node/memory.rb +12 -0
- data/lib/puppet/indirector/node/msgpack.rb +9 -0
- data/lib/puppet/indirector/node/plain.rb +23 -0
- data/lib/puppet/indirector/node/rest.rb +31 -0
- data/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/lib/puppet/indirector/node/yaml.rb +9 -0
- data/lib/puppet/indirector/none.rb +10 -0
- data/lib/puppet/indirector/plain.rb +11 -0
- data/lib/puppet/indirector/report/json.rb +36 -0
- data/lib/puppet/indirector/report/msgpack.rb +13 -0
- data/lib/puppet/indirector/report/processor.rb +63 -0
- data/lib/puppet/indirector/report/rest.rb +31 -0
- data/lib/puppet/indirector/report/yaml.rb +36 -0
- data/lib/puppet/indirector/request.rb +197 -0
- data/lib/puppet/indirector/resource/ral.rb +66 -0
- data/lib/puppet/indirector/resource/store_configs.rb +14 -0
- data/lib/puppet/indirector/resource/validator.rb +10 -0
- data/lib/puppet/indirector/rest.rb +66 -0
- data/lib/puppet/indirector/store_configs.rb +32 -0
- data/lib/puppet/indirector/terminus.rb +180 -0
- data/lib/puppet/indirector/yaml.rb +65 -0
- data/lib/puppet/indirector.rb +64 -0
- data/lib/puppet/info_service/class_information_service.rb +108 -0
- data/lib/puppet/info_service/plan_information_service.rb +38 -0
- data/lib/puppet/info_service/task_information_service.rb +45 -0
- data/lib/puppet/info_service.rb +27 -0
- data/lib/puppet/interface/action.rb +410 -0
- data/lib/puppet/interface/action_builder.rb +167 -0
- data/lib/puppet/interface/action_manager.rb +101 -0
- data/lib/puppet/interface/documentation.rb +363 -0
- data/lib/puppet/interface/face_collection.rb +141 -0
- data/lib/puppet/interface/option.rb +184 -0
- data/lib/puppet/interface/option_builder.rb +110 -0
- data/lib/puppet/interface/option_manager.rb +108 -0
- data/lib/puppet/interface.rb +240 -0
- data/lib/puppet/loaders.rb +31 -0
- data/lib/puppet/metatype/manager.rb +198 -0
- data/lib/puppet/module/plan.rb +166 -0
- data/lib/puppet/module/task.rb +288 -0
- data/lib/puppet/module.rb +487 -0
- data/lib/puppet/module_tool/applications/application.rb +96 -0
- data/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/lib/puppet/module_tool/applications/installer.rb +402 -0
- data/lib/puppet/module_tool/applications/uninstaller.rb +121 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +102 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +288 -0
- data/lib/puppet/module_tool/applications.rb +14 -0
- data/lib/puppet/module_tool/checksums.rb +50 -0
- data/lib/puppet/module_tool/dependency.rb +42 -0
- data/lib/puppet/module_tool/errors/base.rb +17 -0
- data/lib/puppet/module_tool/errors/installer.rb +94 -0
- data/lib/puppet/module_tool/errors/shared.rb +228 -0
- data/lib/puppet/module_tool/errors/uninstaller.rb +51 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +64 -0
- data/lib/puppet/module_tool/errors.rb +13 -0
- data/lib/puppet/module_tool/install_directory.rb +48 -0
- data/lib/puppet/module_tool/installed_modules.rb +99 -0
- data/lib/puppet/module_tool/local_tarball.rb +92 -0
- data/lib/puppet/module_tool/metadata.rb +227 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +199 -0
- data/lib/puppet/module_tool/tar/gnu.rb +23 -0
- data/lib/puppet/module_tool/tar/mini.rb +118 -0
- data/lib/puppet/module_tool/tar.rb +20 -0
- data/lib/puppet/module_tool.rb +194 -0
- data/lib/puppet/network/authconfig.rb +9 -0
- data/lib/puppet/network/authorization.rb +21 -0
- data/lib/puppet/network/client_request.rb +32 -0
- data/lib/puppet/network/format.rb +116 -0
- data/lib/puppet/network/format_handler.rb +110 -0
- data/lib/puppet/network/format_support.rb +140 -0
- data/lib/puppet/network/formats.rb +338 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +270 -0
- data/lib/puppet/network/http/api/indirection_type.rb +33 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +4 -0
- data/lib/puppet/network/http/api/master/v3.rb +4 -0
- data/lib/puppet/network/http/api/master.rb +5 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +54 -0
- data/lib/puppet/network/http/api/server/v3.rb +40 -0
- data/lib/puppet/network/http/api/server.rb +12 -0
- data/lib/puppet/network/http/api.rb +41 -0
- data/lib/puppet/network/http/connection.rb +288 -0
- data/lib/puppet/network/http/error.rb +75 -0
- data/lib/puppet/network/http/handler.rb +213 -0
- data/lib/puppet/network/http/issues.rb +14 -0
- data/lib/puppet/network/http/memory_response.rb +15 -0
- data/lib/puppet/network/http/request.rb +83 -0
- data/lib/puppet/network/http/response.rb +25 -0
- data/lib/puppet/network/http/route.rb +104 -0
- data/lib/puppet/network/http.rb +30 -0
- data/lib/puppet/network/http_pool.rb +78 -0
- data/lib/puppet/network/uri.rb +20 -0
- data/lib/puppet/network.rb +5 -0
- data/lib/puppet/node/environment.rb +638 -0
- data/lib/puppet/node/facts.rb +165 -0
- data/lib/puppet/node/server_facts.rb +46 -0
- data/lib/puppet/node.rb +256 -0
- data/lib/puppet/pal/catalog_compiler.rb +107 -0
- data/lib/puppet/pal/compiler.rb +227 -0
- data/lib/puppet/pal/function_signature.rb +54 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +76 -0
- data/lib/puppet/pal/pal_api.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +585 -0
- data/lib/puppet/pal/plan_signature.rb +73 -0
- data/lib/puppet/pal/script_compiler.rb +75 -0
- data/lib/puppet/pal/task_signature.rb +64 -0
- data/lib/puppet/parameter/boolean.rb +17 -0
- data/lib/puppet/parameter/package_options.rb +33 -0
- data/lib/puppet/parameter/path.rb +61 -0
- data/lib/puppet/parameter/value.rb +93 -0
- data/lib/puppet/parameter/value_collection.rb +213 -0
- data/lib/puppet/parameter.rb +590 -0
- data/lib/puppet/parser/abstract_compiler.rb +35 -0
- data/lib/puppet/parser/ast/block_expression.rb +17 -0
- data/lib/puppet/parser/ast/branch.rb +21 -0
- data/lib/puppet/parser/ast/hostclass.rb +29 -0
- data/lib/puppet/parser/ast/leaf.rb +84 -0
- data/lib/puppet/parser/ast/node.rb +19 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +245 -0
- data/lib/puppet/parser/ast/resource.rb +66 -0
- data/lib/puppet/parser/ast/resource_instance.rb +13 -0
- data/lib/puppet/parser/ast/resourceparam.rb +33 -0
- data/lib/puppet/parser/ast/top_level_construct.rb +6 -0
- data/lib/puppet/parser/ast.rb +62 -0
- data/lib/puppet/parser/catalog_compiler.rb +56 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +41 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +35 -0
- data/lib/puppet/parser/compiler.rb +616 -0
- data/lib/puppet/parser/e4_parser_adapter.rb +61 -0
- data/lib/puppet/parser/files.rb +95 -0
- data/lib/puppet/parser/functions/assert_type.rb +62 -0
- data/lib/puppet/parser/functions/binary_file.rb +26 -0
- data/lib/puppet/parser/functions/break.rb +41 -0
- data/lib/puppet/parser/functions/contain.rb +32 -0
- data/lib/puppet/parser/functions/create_resources.rb +114 -0
- data/lib/puppet/parser/functions/defined.rb +109 -0
- data/lib/puppet/parser/functions/dig.rb +40 -0
- data/lib/puppet/parser/functions/digest.rb +7 -0
- data/lib/puppet/parser/functions/each.rb +106 -0
- data/lib/puppet/parser/functions/epp.rb +40 -0
- data/lib/puppet/parser/functions/fail.rb +13 -0
- data/lib/puppet/parser/functions/file.rb +35 -0
- data/lib/puppet/parser/functions/filter.rb +81 -0
- data/lib/puppet/parser/functions/find_file.rb +29 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +46 -0
- data/lib/puppet/parser/functions/generate.rb +39 -0
- data/lib/puppet/parser/functions/hiera.rb +105 -0
- data/lib/puppet/parser/functions/hiera_array.rb +93 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +103 -0
- data/lib/puppet/parser/functions/hiera_include.rb +102 -0
- data/lib/puppet/parser/functions/include.rb +36 -0
- data/lib/puppet/parser/functions/inline_epp.rb +52 -0
- data/lib/puppet/parser/functions/inline_template.rb +28 -0
- data/lib/puppet/parser/functions/lest.rb +51 -0
- data/lib/puppet/parser/functions/lookup.rb +134 -0
- data/lib/puppet/parser/functions/map.rb +78 -0
- data/lib/puppet/parser/functions/match.rb +45 -0
- data/lib/puppet/parser/functions/md5.rb +7 -0
- data/lib/puppet/parser/functions/new.rb +992 -0
- data/lib/puppet/parser/functions/next.rb +40 -0
- data/lib/puppet/parser/functions/realize.rb +22 -0
- data/lib/puppet/parser/functions/reduce.rb +139 -0
- data/lib/puppet/parser/functions/regsubst.rb +65 -0
- data/lib/puppet/parser/functions/require.rb +43 -0
- data/lib/puppet/parser/functions/return.rb +94 -0
- data/lib/puppet/parser/functions/reverse_each.rb +85 -0
- data/lib/puppet/parser/functions/scanf.rb +40 -0
- data/lib/puppet/parser/functions/sha1.rb +7 -0
- data/lib/puppet/parser/functions/sha256.rb +7 -0
- data/lib/puppet/parser/functions/shellquote.rb +63 -0
- data/lib/puppet/parser/functions/slice.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +62 -0
- data/lib/puppet/parser/functions/step.rb +86 -0
- data/lib/puppet/parser/functions/strftime.rb +187 -0
- data/lib/puppet/parser/functions/tag.rb +15 -0
- data/lib/puppet/parser/functions/tagged.rb +24 -0
- data/lib/puppet/parser/functions/template.rb +42 -0
- data/lib/puppet/parser/functions/then.rb +75 -0
- data/lib/puppet/parser/functions/type.rb +55 -0
- data/lib/puppet/parser/functions/versioncmp.rb +31 -0
- data/lib/puppet/parser/functions/with.rb +30 -0
- data/lib/puppet/parser/functions.rb +324 -0
- data/lib/puppet/parser/parser_factory.rb +32 -0
- data/lib/puppet/parser/relationship.rb +90 -0
- data/lib/puppet/parser/resource/param.rb +37 -0
- data/lib/puppet/parser/resource.rb +353 -0
- data/lib/puppet/parser/scope.rb +1141 -0
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +105 -0
- data/lib/puppet/parser/type_loader.rb +151 -0
- data/lib/puppet/parser.rb +22 -0
- data/lib/puppet/plugins/configuration.rb +31 -0
- data/lib/puppet/plugins/syntax_checkers.rb +99 -0
- data/lib/puppet/plugins.rb +11 -0
- data/lib/puppet/pops/adaptable.rb +199 -0
- data/lib/puppet/pops/adapters.rb +159 -0
- data/lib/puppet/pops/evaluator/access_operator.rb +732 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +108 -0
- data/lib/puppet/pops/evaluator/closure.rb +370 -0
- data/lib/puppet/pops/evaluator/collector_transformer.rb +237 -0
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +88 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +30 -0
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +71 -0
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +38 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +269 -0
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +227 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +121 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1317 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +47 -0
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +83 -0
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +100 -0
- data/lib/puppet/pops/evaluator/puppet_proc.rb +72 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +188 -0
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +225 -0
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +528 -0
- data/lib/puppet/pops/functions/dispatch.rb +107 -0
- data/lib/puppet/pops/functions/dispatcher.rb +76 -0
- data/lib/puppet/pops/functions/function.rb +137 -0
- data/lib/puppet/pops/issue_reporter.rb +140 -0
- data/lib/puppet/pops/issues.rb +933 -0
- data/lib/puppet/pops/label_provider.rb +92 -0
- data/lib/puppet/pops/loader/base_loader.rb +178 -0
- data/lib/puppet/pops/loader/dependency_loader.rb +95 -0
- data/lib/puppet/pops/loader/gem_support.rb +54 -0
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +30 -0
- data/lib/puppet/pops/loader/loader.rb +221 -0
- data/lib/puppet/pops/loader/loader_paths.rb +413 -0
- data/lib/puppet/pops/loader/module_loaders.rb +552 -0
- data/lib/puppet/pops/loader/predefined_loader.rb +28 -0
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +88 -0
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +97 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +43 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +49 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +130 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +104 -0
- data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/lib/puppet/pops/loader/static_loader.rb +133 -0
- data/lib/puppet/pops/loader/task_instantiator.rb +46 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +104 -0
- data/lib/puppet/pops/loader/typed_name.rb +56 -0
- data/lib/puppet/pops/loader/uri_helper.rb +24 -0
- data/lib/puppet/pops/loaders.rb +550 -0
- data/lib/puppet/pops/lookup/configured_data_provider.rb +95 -0
- data/lib/puppet/pops/lookup/context.rb +208 -0
- data/lib/puppet/pops/lookup/data_adapter.rb +29 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +146 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +128 -0
- data/lib/puppet/pops/lookup/data_provider.rb +94 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +37 -0
- data/lib/puppet/pops/lookup/explainer.rb +597 -0
- data/lib/puppet/pops/lookup/function_provider.rb +112 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +76 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +823 -0
- data/lib/puppet/pops/lookup/interpolation.rb +166 -0
- data/lib/puppet/pops/lookup/invocation.rb +272 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +21 -0
- data/lib/puppet/pops/lookup/location_resolver.rb +101 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +533 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +101 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +94 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +92 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +96 -0
- data/lib/puppet/pops/lookup.rb +102 -0
- data/lib/puppet/pops/merge_strategy.rb +447 -0
- data/lib/puppet/pops/migration/migration_checker.rb +61 -0
- data/lib/puppet/pops/model/ast.pp +669 -0
- data/lib/puppet/pops/model/ast.rb +4776 -0
- data/lib/puppet/pops/model/ast_transformer.rb +131 -0
- data/lib/puppet/pops/model/factory.rb +1157 -0
- data/lib/puppet/pops/model/model_label_provider.rb +137 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +447 -0
- data/lib/puppet/pops/model/pn_transformer.rb +384 -0
- data/lib/puppet/pops/model/tree_dumper.rb +62 -0
- data/lib/puppet/pops/parser/code_merger.rb +29 -0
- data/lib/puppet/pops/parser/egrammar.ra +889 -0
- data/lib/puppet/pops/parser/eparser.rb +3184 -0
- data/lib/puppet/pops/parser/epp_parser.rb +52 -0
- data/lib/puppet/pops/parser/epp_support.rb +266 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +166 -0
- data/lib/puppet/pops/parser/heredoc_support.rb +153 -0
- data/lib/puppet/pops/parser/interpolation_support.rb +249 -0
- data/lib/puppet/pops/parser/lexer2.rb +789 -0
- data/lib/puppet/pops/parser/lexer_support.rb +221 -0
- data/lib/puppet/pops/parser/locatable.rb +23 -0
- data/lib/puppet/pops/parser/locator.rb +361 -0
- data/lib/puppet/pops/parser/parser_support.rb +252 -0
- data/lib/puppet/pops/parser/pn_parser.rb +318 -0
- data/lib/puppet/pops/parser/slurp_support.rb +119 -0
- data/lib/puppet/pops/patterns.rb +60 -0
- data/lib/puppet/pops/pcore.rb +136 -0
- data/lib/puppet/pops/pn.rb +239 -0
- data/lib/puppet/pops/puppet_stack.rb +63 -0
- data/lib/puppet/pops/resource/param.rb +56 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +296 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
- data/lib/puppet/pops/semantic_error.rb +31 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +182 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +224 -0
- data/lib/puppet/pops/serialization/deserializer.rb +83 -0
- data/lib/puppet/pops/serialization/extension.rb +166 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +231 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +21 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +16 -0
- data/lib/puppet/pops/serialization/json.rb +301 -0
- data/lib/puppet/pops/serialization/json_path.rb +129 -0
- data/lib/puppet/pops/serialization/object.rb +73 -0
- data/lib/puppet/pops/serialization/serializer.rb +144 -0
- data/lib/puppet/pops/serialization/time_factory.rb +68 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +316 -0
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +227 -0
- data/lib/puppet/pops/serialization.rb +45 -0
- data/lib/puppet/pops/time/timespan.rb +728 -0
- data/lib/puppet/pops/time/timestamp.rb +167 -0
- data/lib/puppet/pops/types/annotatable.rb +37 -0
- data/lib/puppet/pops/types/annotation.rb +73 -0
- data/lib/puppet/pops/types/class_loader.rb +134 -0
- data/lib/puppet/pops/types/implementation_registry.rb +137 -0
- data/lib/puppet/pops/types/iterable.rb +375 -0
- data/lib/puppet/pops/types/p_binary_type.rb +232 -0
- data/lib/puppet/pops/types/p_init_type.rb +241 -0
- data/lib/puppet/pops/types/p_meta_type.rb +95 -0
- data/lib/puppet/pops/types/p_object_type.rb +1142 -0
- data/lib/puppet/pops/types/p_object_type_extension.rb +229 -0
- data/lib/puppet/pops/types/p_runtime_type.rb +117 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +191 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +155 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +81 -0
- data/lib/puppet/pops/types/p_timespan_type.rb +194 -0
- data/lib/puppet/pops/types/p_timestamp_type.rb +74 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +394 -0
- data/lib/puppet/pops/types/p_uri_type.rb +198 -0
- data/lib/puppet/pops/types/puppet_object.rb +41 -0
- data/lib/puppet/pops/types/recursion_guard.rb +142 -0
- data/lib/puppet/pops/types/ruby_generator.rb +477 -0
- data/lib/puppet/pops/types/ruby_method.rb +32 -0
- data/lib/puppet/pops/types/string_converter.rb +1144 -0
- data/lib/puppet/pops/types/tree_iterators.rb +250 -0
- data/lib/puppet/pops/types/type_acceptor.rb +27 -0
- data/lib/puppet/pops/types/type_asserter.rb +49 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +27 -0
- data/lib/puppet/pops/types/type_calculator.rb +829 -0
- data/lib/puppet/pops/types/type_conversion_error.rb +7 -0
- data/lib/puppet/pops/types/type_factory.rb +640 -0
- data/lib/puppet/pops/types/type_formatter.rb +796 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1105 -0
- data/lib/puppet/pops/types/type_parser.rb +690 -0
- data/lib/puppet/pops/types/type_set_reference.rb +62 -0
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +3651 -0
- data/lib/puppet/pops/utils.rb +117 -0
- data/lib/puppet/pops/validation/checker4_0.rb +1155 -0
- data/lib/puppet/pops/validation/tasks_checker.rb +95 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +45 -0
- data/lib/puppet/pops/validation.rb +462 -0
- data/lib/puppet/pops/visitable.rb +8 -0
- data/lib/puppet/pops/visitor.rb +136 -0
- data/lib/puppet/pops.rb +124 -0
- data/lib/puppet/property/boolean.rb +9 -0
- data/lib/puppet/property/ensure.rb +107 -0
- data/lib/puppet/property/keyvalue.rb +159 -0
- data/lib/puppet/property/list.rb +71 -0
- data/lib/puppet/property/ordered_list.rb +30 -0
- data/lib/puppet/property.rb +610 -0
- data/lib/puppet/provider/aix_object.rb +491 -0
- data/lib/puppet/provider/command.rb +27 -0
- data/lib/puppet/provider/confine.rb +8 -0
- data/lib/puppet/provider/exec/posix.rb +63 -0
- data/lib/puppet/provider/exec/shell.rb +27 -0
- data/lib/puppet/provider/exec/windows.rb +57 -0
- data/lib/puppet/provider/exec.rb +107 -0
- data/lib/puppet/provider/file/posix.rb +162 -0
- data/lib/puppet/provider/file/windows.rb +151 -0
- data/lib/puppet/provider/group/aix.rb +101 -0
- data/lib/puppet/provider/group/directoryservice.rb +24 -0
- data/lib/puppet/provider/group/groupadd.rb +180 -0
- data/lib/puppet/provider/group/ldap.rb +51 -0
- data/lib/puppet/provider/group/pw.rb +52 -0
- data/lib/puppet/provider/group/windows_adsi.rb +116 -0
- data/lib/puppet/provider/ldap.rb +143 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +522 -0
- data/lib/puppet/provider/nameservice/objectadd.rb +22 -0
- data/lib/puppet/provider/nameservice/pw.rb +21 -0
- data/lib/puppet/provider/nameservice.rb +297 -0
- data/lib/puppet/provider/network_device.rb +74 -0
- data/lib/puppet/provider/package/aix.rb +171 -0
- data/lib/puppet/provider/package/appdmg.rb +113 -0
- data/lib/puppet/provider/package/apple.rb +49 -0
- data/lib/puppet/provider/package/apt.rb +265 -0
- data/lib/puppet/provider/package/aptitude.rb +35 -0
- data/lib/puppet/provider/package/aptrpm.rb +87 -0
- data/lib/puppet/provider/package/blastwave.rb +109 -0
- data/lib/puppet/provider/package/dnf.rb +57 -0
- data/lib/puppet/provider/package/dnfmodule.rb +143 -0
- data/lib/puppet/provider/package/dpkg.rb +191 -0
- data/lib/puppet/provider/package/fink.rb +99 -0
- data/lib/puppet/provider/package/freebsd.rb +49 -0
- data/lib/puppet/provider/package/gem.rb +296 -0
- data/lib/puppet/provider/package/hpux.rb +46 -0
- data/lib/puppet/provider/package/macports.rb +112 -0
- data/lib/puppet/provider/package/nim.rb +290 -0
- data/lib/puppet/provider/package/openbsd.rb +263 -0
- data/lib/puppet/provider/package/opkg.rb +85 -0
- data/lib/puppet/provider/package/pacman.rb +270 -0
- data/lib/puppet/provider/package/pip.rb +347 -0
- data/lib/puppet/provider/package/pip2.rb +18 -0
- data/lib/puppet/provider/package/pip3.rb +18 -0
- data/lib/puppet/provider/package/pkg.rb +300 -0
- data/lib/puppet/provider/package/pkgdmg.rb +159 -0
- data/lib/puppet/provider/package/pkgin.rb +88 -0
- data/lib/puppet/provider/package/pkgng.rb +178 -0
- data/lib/puppet/provider/package/pkgutil.rb +186 -0
- data/lib/puppet/provider/package/portage.rb +314 -0
- data/lib/puppet/provider/package/ports.rb +94 -0
- data/lib/puppet/provider/package/portupgrade.rb +233 -0
- data/lib/puppet/provider/package/puppet_gem.rb +25 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +174 -0
- data/lib/puppet/provider/package/rpm.rb +255 -0
- data/lib/puppet/provider/package/rug.rb +51 -0
- data/lib/puppet/provider/package/sun.rb +137 -0
- data/lib/puppet/provider/package/sunfreeware.rb +11 -0
- data/lib/puppet/provider/package/tdnf.rb +35 -0
- data/lib/puppet/provider/package/up2date.rb +40 -0
- data/lib/puppet/provider/package/urpmi.rb +57 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +108 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +72 -0
- data/lib/puppet/provider/package/windows/package.rb +113 -0
- data/lib/puppet/provider/package/windows.rb +131 -0
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +390 -0
- data/lib/puppet/provider/package/zypper.rb +206 -0
- data/lib/puppet/provider/package.rb +61 -0
- data/lib/puppet/provider/package_targetable.rb +71 -0
- data/lib/puppet/provider/parsedfile.rb +494 -0
- data/lib/puppet/provider/service/base.rb +135 -0
- data/lib/puppet/provider/service/bsd.rb +53 -0
- data/lib/puppet/provider/service/daemontools.rb +196 -0
- data/lib/puppet/provider/service/debian.rb +77 -0
- data/lib/puppet/provider/service/freebsd.rb +141 -0
- data/lib/puppet/provider/service/gentoo.rb +47 -0
- data/lib/puppet/provider/service/init.rb +194 -0
- data/lib/puppet/provider/service/launchd.rb +391 -0
- data/lib/puppet/provider/service/openbsd.rb +101 -0
- data/lib/puppet/provider/service/openrc.rb +72 -0
- data/lib/puppet/provider/service/openwrt.rb +37 -0
- data/lib/puppet/provider/service/rcng.rb +53 -0
- data/lib/puppet/provider/service/redhat.rb +75 -0
- data/lib/puppet/provider/service/runit.rb +107 -0
- data/lib/puppet/provider/service/service.rb +67 -0
- data/lib/puppet/provider/service/smf.rb +322 -0
- data/lib/puppet/provider/service/src.rb +147 -0
- data/lib/puppet/provider/service/systemd.rb +232 -0
- data/lib/puppet/provider/service/upstart.rb +385 -0
- data/lib/puppet/provider/service/windows.rb +179 -0
- data/lib/puppet/provider/user/aix.rb +365 -0
- data/lib/puppet/provider/user/directoryservice.rb +687 -0
- data/lib/puppet/provider/user/hpux.rb +93 -0
- data/lib/puppet/provider/user/ldap.rb +135 -0
- data/lib/puppet/provider/user/openbsd.rb +79 -0
- data/lib/puppet/provider/user/pw.rb +109 -0
- data/lib/puppet/provider/user/user_role_add.rb +243 -0
- data/lib/puppet/provider/user/useradd.rb +417 -0
- data/lib/puppet/provider/user/windows_adsi.rb +176 -0
- data/lib/puppet/provider.rb +613 -0
- data/lib/puppet/reference/configuration.rb +105 -0
- data/lib/puppet/reference/function.rb +19 -0
- data/lib/puppet/reference/indirection.rb +76 -0
- data/lib/puppet/reference/metaparameter.rb +35 -0
- data/lib/puppet/reference/providers.rb +119 -0
- data/lib/puppet/reference/report.rb +22 -0
- data/lib/puppet/reference/type.rb +111 -0
- data/lib/puppet/relationship.rb +85 -0
- data/lib/puppet/reports/http.rb +45 -0
- data/lib/puppet/reports/log.rb +15 -0
- data/lib/puppet/reports/store.rb +71 -0
- data/lib/puppet/reports.rb +95 -0
- data/lib/puppet/resource/catalog.rb +655 -0
- data/lib/puppet/resource/status.rb +231 -0
- data/lib/puppet/resource/type.rb +449 -0
- data/lib/puppet/resource/type_collection.rb +235 -0
- data/lib/puppet/resource.rb +673 -0
- data/lib/puppet/runtime.rb +67 -0
- data/lib/puppet/scheduler/job.rb +55 -0
- data/lib/puppet/scheduler/scheduler.rb +46 -0
- data/lib/puppet/scheduler/splay_job.rb +45 -0
- data/lib/puppet/scheduler/timer.rb +15 -0
- data/lib/puppet/scheduler.rb +18 -0
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/array_setting.rb +18 -0
- data/lib/puppet/settings/autosign_setting.rb +23 -0
- data/lib/puppet/settings/base_setting.rb +228 -0
- data/lib/puppet/settings/boolean_setting.rb +34 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +22 -0
- data/lib/puppet/settings/config_file.rb +148 -0
- data/lib/puppet/settings/directory_setting.rb +20 -0
- data/lib/puppet/settings/duration_setting.rb +33 -0
- data/lib/puppet/settings/enum_setting.rb +18 -0
- data/lib/puppet/settings/environment_conf.rb +228 -0
- data/lib/puppet/settings/errors.rb +14 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +37 -0
- data/lib/puppet/settings/file_setting.rb +232 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +26 -0
- data/lib/puppet/settings/ini_file.rb +228 -0
- data/lib/puppet/settings/integer_setting.rb +19 -0
- data/lib/puppet/settings/path_setting.rb +10 -0
- data/lib/puppet/settings/port_setting.rb +17 -0
- data/lib/puppet/settings/priority_setting.rb +44 -0
- data/lib/puppet/settings/server_list_setting.rb +30 -0
- data/lib/puppet/settings/string_setting.rb +11 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +19 -0
- data/lib/puppet/settings/terminus_setting.rb +16 -0
- data/lib/puppet/settings/ttl_setting.rb +53 -0
- data/lib/puppet/settings/value_translator.rb +16 -0
- data/lib/puppet/settings.rb +1650 -0
- data/lib/puppet/ssl/base.rb +152 -0
- data/lib/puppet/ssl/certificate.rb +98 -0
- data/lib/puppet/ssl/certificate_request.rb +320 -0
- data/lib/puppet/ssl/certificate_request_attributes.rb +40 -0
- data/lib/puppet/ssl/certificate_signer.rb +39 -0
- data/lib/puppet/ssl/digest.rb +22 -0
- data/lib/puppet/ssl/error.rb +29 -0
- data/lib/puppet/ssl/oids.rb +199 -0
- data/lib/puppet/ssl/openssl_loader.rb +26 -0
- data/lib/puppet/ssl/ssl_context.rb +27 -0
- data/lib/puppet/ssl/ssl_provider.rb +354 -0
- data/lib/puppet/ssl/state_machine.rb +605 -0
- data/lib/puppet/ssl/verifier.rb +143 -0
- data/lib/puppet/ssl.rb +25 -0
- data/lib/puppet/syntax_checkers/base64.rb +42 -0
- data/lib/puppet/syntax_checkers/epp.rb +35 -0
- data/lib/puppet/syntax_checkers/json.rb +35 -0
- data/lib/puppet/syntax_checkers/pp.rb +35 -0
- data/lib/puppet/syntax_checkers.rb +5 -0
- data/lib/puppet/test/test_helper.rb +251 -0
- data/lib/puppet/thread_local.rb +6 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +225 -0
- data/lib/puppet/transaction/event.rb +171 -0
- data/lib/puppet/transaction/event_manager.rb +180 -0
- data/lib/puppet/transaction/persistence.rb +119 -0
- data/lib/puppet/transaction/report.rb +511 -0
- data/lib/puppet/transaction/resource_harness.rb +331 -0
- data/lib/puppet/transaction.rb +493 -0
- data/lib/puppet/trusted_external.rb +46 -0
- data/lib/puppet/type/component.rb +96 -0
- data/lib/puppet/type/exec.rb +730 -0
- data/lib/puppet/type/file/checksum.rb +54 -0
- data/lib/puppet/type/file/checksum_value.rb +56 -0
- data/lib/puppet/type/file/content.rb +180 -0
- data/lib/puppet/type/file/ctime.rb +22 -0
- data/lib/puppet/type/file/data_sync.rb +101 -0
- data/lib/puppet/type/file/ensure.rb +194 -0
- data/lib/puppet/type/file/group.rb +50 -0
- data/lib/puppet/type/file/mode.rb +192 -0
- data/lib/puppet/type/file/mtime.rb +21 -0
- data/lib/puppet/type/file/owner.rb +52 -0
- data/lib/puppet/type/file/selcontext.rb +143 -0
- data/lib/puppet/type/file/source.rb +380 -0
- data/lib/puppet/type/file/target.rb +86 -0
- data/lib/puppet/type/file/type.rb +21 -0
- data/lib/puppet/type/file.rb +1139 -0
- data/lib/puppet/type/filebucket.rb +123 -0
- data/lib/puppet/type/group.rb +238 -0
- data/lib/puppet/type/notify.rb +48 -0
- data/lib/puppet/type/package.rb +715 -0
- data/lib/puppet/type/resources.rb +192 -0
- data/lib/puppet/type/schedule.rb +441 -0
- data/lib/puppet/type/service.rb +310 -0
- data/lib/puppet/type/stage.rb +29 -0
- data/lib/puppet/type/tidy.rb +382 -0
- data/lib/puppet/type/user.rb +865 -0
- data/lib/puppet/type/whit.rb +35 -0
- data/lib/puppet/type.rb +2629 -0
- data/lib/puppet/util/at_fork/noop.rb +20 -0
- data/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/lib/puppet/util/at_fork.rb +37 -0
- data/lib/puppet/util/autoload.rb +221 -0
- data/lib/puppet/util/backups.rb +88 -0
- data/lib/puppet/util/character_encoding.rb +83 -0
- data/lib/puppet/util/checksums.rb +380 -0
- data/lib/puppet/util/classgen.rb +223 -0
- data/lib/puppet/util/colors.rb +102 -0
- data/lib/puppet/util/command_line/puppet_option_parser.rb +89 -0
- data/lib/puppet/util/command_line/trollop.rb +847 -0
- data/lib/puppet/util/command_line.rb +198 -0
- data/lib/puppet/util/constant_inflector.rb +25 -0
- data/lib/puppet/util/diff.rb +80 -0
- data/lib/puppet/util/docs.rb +132 -0
- data/lib/puppet/util/errors.rb +161 -0
- data/lib/puppet/util/execution.rb +446 -0
- data/lib/puppet/util/execution_stub.rb +28 -0
- data/lib/puppet/util/feature.rb +129 -0
- data/lib/puppet/util/file_watcher.rb +31 -0
- data/lib/puppet/util/fileparsing.rb +404 -0
- data/lib/puppet/util/filetype.rb +358 -0
- data/lib/puppet/util/http_proxy.rb +6 -0
- data/lib/puppet/util/inifile.rb +335 -0
- data/lib/puppet/util/instance_loader.rb +69 -0
- data/lib/puppet/util/json.rb +94 -0
- data/lib/puppet/util/json_lockfile.rb +47 -0
- data/lib/puppet/util/ldap/connection.rb +75 -0
- data/lib/puppet/util/ldap/generator.rb +44 -0
- data/lib/puppet/util/ldap/manager.rb +283 -0
- data/lib/puppet/util/ldap.rb +4 -0
- data/lib/puppet/util/libuser.conf +15 -0
- data/lib/puppet/util/libuser.rb +13 -0
- data/lib/puppet/util/limits.rb +14 -0
- data/lib/puppet/util/lockfile.rb +66 -0
- data/lib/puppet/util/log/destination.rb +50 -0
- data/lib/puppet/util/log/destinations.rb +253 -0
- data/lib/puppet/util/log.rb +436 -0
- data/lib/puppet/util/logging.rb +304 -0
- data/lib/puppet/util/metaid.rb +22 -0
- data/lib/puppet/util/metric.rb +68 -0
- data/lib/puppet/util/monkey_patches.rb +114 -0
- data/lib/puppet/util/multi_match.rb +55 -0
- data/lib/puppet/util/network_device/base.rb +24 -0
- data/lib/puppet/util/network_device/config.rb +105 -0
- data/lib/puppet/util/network_device/transport/base.rb +26 -0
- data/lib/puppet/util/network_device/transport.rb +7 -0
- data/lib/puppet/util/network_device.rb +19 -0
- data/lib/puppet/util/package/version/debian.rb +177 -0
- data/lib/puppet/util/package/version/gem.rb +18 -0
- data/lib/puppet/util/package/version/pip.rb +173 -0
- data/lib/puppet/util/package/version/range/eq.rb +17 -0
- data/lib/puppet/util/package/version/range/gt.rb +17 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +17 -0
- data/lib/puppet/util/package/version/range/lt.rb +17 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +17 -0
- data/lib/puppet/util/package/version/range/min_max.rb +26 -0
- data/lib/puppet/util/package/version/range/simple.rb +13 -0
- data/lib/puppet/util/package/version/range.rb +57 -0
- data/lib/puppet/util/package/version/rpm.rb +75 -0
- data/lib/puppet/util/package.rb +43 -0
- data/lib/puppet/util/pidlock.rb +103 -0
- data/lib/puppet/util/platform.rb +72 -0
- data/lib/puppet/util/plist.rb +161 -0
- data/lib/puppet/util/posix.rb +206 -0
- data/lib/puppet/util/profiler/aggregate.rb +82 -0
- data/lib/puppet/util/profiler/around_profiler.rb +68 -0
- data/lib/puppet/util/profiler/logging.rb +50 -0
- data/lib/puppet/util/profiler/object_counts.rb +19 -0
- data/lib/puppet/util/profiler/wall_clock.rb +36 -0
- data/lib/puppet/util/profiler.rb +55 -0
- data/lib/puppet/util/provider_features.rb +183 -0
- data/lib/puppet/util/psych_support.rb +32 -0
- data/lib/puppet/util/rdoc/code_objects.rb +293 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +902 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1068 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +262 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +16 -0
- data/lib/puppet/util/rdoc/parser.rb +14 -0
- data/lib/puppet/util/rdoc.rb +54 -0
- data/lib/puppet/util/reference.rb +94 -0
- data/lib/puppet/util/resource_template.rb +63 -0
- data/lib/puppet/util/retry_action.rb +47 -0
- data/lib/puppet/util/rpm_compare.rb +196 -0
- data/lib/puppet/util/rubygems.rb +67 -0
- data/lib/puppet/util/run_mode.rb +164 -0
- data/lib/puppet/util/selinux.rb +331 -0
- data/lib/puppet/util/skip_tags.rb +15 -0
- data/lib/puppet/util/splayer.rb +20 -0
- data/lib/puppet/util/storage.rb +100 -0
- data/lib/puppet/util/suidmanager.rb +167 -0
- data/lib/puppet/util/symbolic_file_mode.rb +156 -0
- data/lib/puppet/util/tag_set.rb +29 -0
- data/lib/puppet/util/tagging.rb +131 -0
- data/lib/puppet/util/terminal.rb +18 -0
- data/lib/puppet/util/user_attr.rb +23 -0
- data/lib/puppet/util/warnings.rb +35 -0
- data/lib/puppet/util/watched_file.rb +40 -0
- data/lib/puppet/util/watcher/change_watcher.rb +35 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +38 -0
- data/lib/puppet/util/watcher/timer.rb +21 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/windows/access_control_entry.rb +86 -0
- data/lib/puppet/util/windows/access_control_list.rb +116 -0
- data/lib/puppet/util/windows/adsi.rb +662 -0
- data/lib/puppet/util/windows/com.rb +228 -0
- data/lib/puppet/util/windows/daemon.rb +340 -0
- data/lib/puppet/util/windows/error.rb +86 -0
- data/lib/puppet/util/windows/eventlog.rb +191 -0
- data/lib/puppet/util/windows/file.rb +359 -0
- data/lib/puppet/util/windows/monkey_patches/process.rb +413 -0
- data/lib/puppet/util/windows/principal.rb +204 -0
- data/lib/puppet/util/windows/process.rb +360 -0
- data/lib/puppet/util/windows/registry.rb +443 -0
- data/lib/puppet/util/windows/root_certs.rb +110 -0
- data/lib/puppet/util/windows/security.rb +909 -0
- data/lib/puppet/util/windows/security_descriptor.rb +64 -0
- data/lib/puppet/util/windows/service.rb +708 -0
- data/lib/puppet/util/windows/sid.rb +291 -0
- data/lib/puppet/util/windows/string.rb +17 -0
- data/lib/puppet/util/windows/user.rb +551 -0
- data/lib/puppet/util/windows.rb +58 -0
- data/lib/puppet/util/yaml.rb +67 -0
- data/lib/puppet/util.rb +759 -0
- data/lib/puppet/vendor/require_vendored.rb +4 -0
- data/lib/puppet/vendor.rb +59 -0
- data/lib/puppet/version.rb +98 -0
- data/lib/puppet/x509/cert_provider.rb +405 -0
- data/lib/puppet/x509/pem_store.rb +57 -0
- data/lib/puppet/x509.rb +13 -0
- data/lib/puppet.rb +348 -0
- data/lib/puppet_pal.rb +10 -0
- data/lib/puppet_x.rb +16 -0
- data/locales/config.yaml +29 -0
- data/locales/en/puppet.po +19 -0
- data/locales/puppet.pot +9738 -0
- data/man/man5/puppet.conf.5 +1407 -0
- data/man/man8/puppet-agent.8 +135 -0
- data/man/man8/puppet-apply.8 +67 -0
- data/man/man8/puppet-catalog.8 +194 -0
- data/man/man8/puppet-config.8 +103 -0
- data/man/man8/puppet-describe.8 +35 -0
- data/man/man8/puppet-device.8 +83 -0
- data/man/man8/puppet-doc.8 +30 -0
- data/man/man8/puppet-epp.8 +232 -0
- data/man/man8/puppet-facts.8 +156 -0
- data/man/man8/puppet-filebucket.8 +134 -0
- data/man/man8/puppet-generate.8 +54 -0
- data/man/man8/puppet-help.8 +46 -0
- data/man/man8/puppet-lookup.8 +71 -0
- data/man/man8/puppet-module.8 +220 -0
- data/man/man8/puppet-node.8 +142 -0
- data/man/man8/puppet-parser.8 +87 -0
- data/man/man8/puppet-plugin.8 +50 -0
- data/man/man8/puppet-report.8 +84 -0
- data/man/man8/puppet-resource.8 +63 -0
- data/man/man8/puppet-script.8 +48 -0
- data/man/man8/puppet-ssl.8 +45 -0
- data/man/man8/puppet.8 +98 -0
- data/tasks/tag.rake +34 -0
- metadata +1336 -0
@@ -0,0 +1,596 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require_relative '../puppet/util/command_line'
|
5
|
+
require_relative '../puppet/util/constant_inflector'
|
6
|
+
require_relative '../puppet/error'
|
7
|
+
require_relative '../puppet/application_support'
|
8
|
+
|
9
|
+
module Puppet
|
10
|
+
# Defines an abstract Puppet application.
|
11
|
+
#
|
12
|
+
# # Usage
|
13
|
+
#
|
14
|
+
# To create a new application extend `Puppet::Application`. Derived applications
|
15
|
+
# must implement the `main` method and should implement the `summary` and
|
16
|
+
# `help` methods in order to be included in `puppet help`, and should define
|
17
|
+
# application-specific options. For example:
|
18
|
+
#
|
19
|
+
# ```
|
20
|
+
# class Puppet::Application::Example < Puppet::Application
|
21
|
+
#
|
22
|
+
# def summary
|
23
|
+
# "My puppet example application"
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# def help
|
27
|
+
# <<~HELP
|
28
|
+
# puppet-example(8) -- #{summary}
|
29
|
+
# ...
|
30
|
+
# HELP
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# # define arg with a required option
|
34
|
+
# option("--arg ARGUMENT") do |v|
|
35
|
+
# options[:arg] = v
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# # define arg with an optional option
|
39
|
+
# option("--maybe [ARGUMENT]") do |v|
|
40
|
+
# options[:maybe] = v
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# # define long and short arg
|
44
|
+
# option("--all", "-a")
|
45
|
+
#
|
46
|
+
# def initialize(command_line = Puppet::Util::CommandLine.new)
|
47
|
+
# super
|
48
|
+
# @data = {}
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# def main
|
52
|
+
# # call action
|
53
|
+
# send(@command_line.args.shift)
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
# def read
|
57
|
+
# # read action
|
58
|
+
# end
|
59
|
+
#
|
60
|
+
# def write
|
61
|
+
# # write action
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
# end
|
65
|
+
# ```
|
66
|
+
#
|
67
|
+
# Puppet defines the following application lifecycle methods that are called in
|
68
|
+
# the following order:
|
69
|
+
#
|
70
|
+
# * {#initialize}
|
71
|
+
# * {#initialize_app_defaults}
|
72
|
+
# * {#preinit}
|
73
|
+
# * {#parse_options}
|
74
|
+
# * {#setup}
|
75
|
+
# * {#main}
|
76
|
+
#
|
77
|
+
# ## Execution state
|
78
|
+
# The class attributes/methods of Puppet::Application serve as a global place to set and query the execution
|
79
|
+
# status of the application: stopping, restarting, etc. The setting of the application status does not directly
|
80
|
+
# affect its running status; it's assumed that the various components within the application will consult these
|
81
|
+
# settings appropriately and affect their own processing accordingly. Control operations (signal handlers and
|
82
|
+
# the like) should set the status appropriately to indicate to the overall system that it's the process of
|
83
|
+
# stopping or restarting (or just running as usual).
|
84
|
+
#
|
85
|
+
# So, if something in your application needs to stop the process, for some reason, you might consider:
|
86
|
+
#
|
87
|
+
# ```
|
88
|
+
# def stop_me!
|
89
|
+
# # indicate that we're stopping
|
90
|
+
# Puppet::Application.stop!
|
91
|
+
# # ...do stuff...
|
92
|
+
# end
|
93
|
+
# ```
|
94
|
+
#
|
95
|
+
# And, if you have some component that involves a long-running process, you might want to consider:
|
96
|
+
#
|
97
|
+
# ```
|
98
|
+
# def my_long_process(giant_list_to_munge)
|
99
|
+
# giant_list_to_munge.collect do |member|
|
100
|
+
# # bail if we're stopping
|
101
|
+
# return if Puppet::Application.stop_requested?
|
102
|
+
# process_member(member)
|
103
|
+
# end
|
104
|
+
# end
|
105
|
+
# ```
|
106
|
+
# @abstract
|
107
|
+
# @api public
|
108
|
+
class Application
|
109
|
+
require_relative '../puppet/util'
|
110
|
+
include Puppet::Util
|
111
|
+
|
112
|
+
DOCPATTERN = ::File.expand_path(::File.dirname(__FILE__) + "/util/command_line/*")
|
113
|
+
CommandLineArgs = Struct.new(:subcommand_name, :args)
|
114
|
+
|
115
|
+
@loader = Puppet::Util::Autoload.new(self, 'puppet/application')
|
116
|
+
|
117
|
+
class << self
|
118
|
+
include Puppet::Util
|
119
|
+
|
120
|
+
attr_accessor :run_status
|
121
|
+
|
122
|
+
def clear!
|
123
|
+
self.run_status = nil
|
124
|
+
end
|
125
|
+
|
126
|
+
# Signal that the application should stop.
|
127
|
+
# @api public
|
128
|
+
def stop!
|
129
|
+
self.run_status = :stop_requested
|
130
|
+
end
|
131
|
+
|
132
|
+
# Signal that the application should restart.
|
133
|
+
# @api public
|
134
|
+
def restart!
|
135
|
+
self.run_status = :restart_requested
|
136
|
+
end
|
137
|
+
|
138
|
+
# Indicates that Puppet::Application.restart! has been invoked and components should
|
139
|
+
# do what is necessary to facilitate a restart.
|
140
|
+
# @api public
|
141
|
+
def restart_requested?
|
142
|
+
:restart_requested == run_status
|
143
|
+
end
|
144
|
+
|
145
|
+
# Indicates that Puppet::Application.stop! has been invoked and components should do what is necessary
|
146
|
+
# for a clean stop.
|
147
|
+
# @api public
|
148
|
+
def stop_requested?
|
149
|
+
:stop_requested == run_status
|
150
|
+
end
|
151
|
+
|
152
|
+
# Indicates that one of stop! or start! was invoked on Puppet::Application, and some kind of process
|
153
|
+
# shutdown/short-circuit may be necessary.
|
154
|
+
# @api public
|
155
|
+
def interrupted?
|
156
|
+
[:restart_requested, :stop_requested].include? run_status
|
157
|
+
end
|
158
|
+
|
159
|
+
# Indicates that Puppet::Application believes that it's in usual running run_mode (no stop/restart request
|
160
|
+
# currently active).
|
161
|
+
# @api public
|
162
|
+
def clear?
|
163
|
+
run_status.nil?
|
164
|
+
end
|
165
|
+
|
166
|
+
# Only executes the given block if the run status of Puppet::Application is clear (no restarts, stops,
|
167
|
+
# etc. requested).
|
168
|
+
# Upon block execution, checks the run status again; if a restart has been requested during the block's
|
169
|
+
# execution, then controlled_run will send a new HUP signal to the current process.
|
170
|
+
# Thus, long-running background processes can potentially finish their work before a restart.
|
171
|
+
def controlled_run(&block)
|
172
|
+
return unless clear?
|
173
|
+
|
174
|
+
result = block.call
|
175
|
+
Process.kill(:HUP, $PID) if restart_requested?
|
176
|
+
result
|
177
|
+
end
|
178
|
+
|
179
|
+
# used to declare code that handle an option
|
180
|
+
def option(*options, &block)
|
181
|
+
long = options.find { |opt| opt =~ /^--/ }.gsub(/^--(?:\[no-\])?([^ =]+).*$/, '\1').tr('-', '_')
|
182
|
+
fname = "handle_#{long}".intern
|
183
|
+
if block_given?
|
184
|
+
define_method(fname, &block)
|
185
|
+
else
|
186
|
+
define_method(fname) do |value|
|
187
|
+
self.options[long.to_s.to_sym] = value
|
188
|
+
end
|
189
|
+
end
|
190
|
+
option_parser_commands << [options, fname]
|
191
|
+
end
|
192
|
+
|
193
|
+
def banner(banner = nil)
|
194
|
+
@banner ||= banner
|
195
|
+
end
|
196
|
+
|
197
|
+
def option_parser_commands
|
198
|
+
@option_parser_commands ||= (
|
199
|
+
superclass.respond_to?(:option_parser_commands) ? superclass.option_parser_commands.dup : []
|
200
|
+
)
|
201
|
+
@option_parser_commands
|
202
|
+
end
|
203
|
+
|
204
|
+
# @return [Array<String>] the names of available applications
|
205
|
+
# @api public
|
206
|
+
def available_application_names
|
207
|
+
# Use our configured environment to load the application, as it may
|
208
|
+
# be in a module we installed locally, otherwise fallback to our
|
209
|
+
# current environment (*root*). Once we load the application the
|
210
|
+
# current environment will change from *root* to the application
|
211
|
+
# specific environment.
|
212
|
+
environment = Puppet.lookup(:environments).get(Puppet[:environment]) ||
|
213
|
+
Puppet.lookup(:current_environment)
|
214
|
+
@loader.files_to_load(environment).map do |fn|
|
215
|
+
::File.basename(fn, '.rb')
|
216
|
+
end.uniq
|
217
|
+
end
|
218
|
+
|
219
|
+
# Finds the class for a given application and loads the class. This does
|
220
|
+
# not create an instance of the application, it only gets a handle to the
|
221
|
+
# class. The code for the application is expected to live in a ruby file
|
222
|
+
# `puppet/application/#{name}.rb` that is available on the `$LOAD_PATH`.
|
223
|
+
#
|
224
|
+
# @param application_name [String] the name of the application to find (eg. "apply").
|
225
|
+
# @return [Class] the Class instance of the application that was found.
|
226
|
+
# @raise [Puppet::Error] if the application class was not found.
|
227
|
+
# @raise [LoadError] if there was a problem loading the application file.
|
228
|
+
# @api public
|
229
|
+
def find(application_name)
|
230
|
+
begin
|
231
|
+
require @loader.expand(application_name.to_s.downcase)
|
232
|
+
rescue LoadError => e
|
233
|
+
Puppet.log_and_raise(e, _("Unable to find application '%{application_name}'. %{error}") % { application_name: application_name, error: e })
|
234
|
+
end
|
235
|
+
|
236
|
+
class_name = Puppet::Util::ConstantInflector.file2constant(application_name.to_s)
|
237
|
+
|
238
|
+
clazz = try_load_class(class_name)
|
239
|
+
|
240
|
+
################################################################
|
241
|
+
#### Begin 2.7.x backward compatibility hack;
|
242
|
+
#### eventually we need to issue a deprecation warning here,
|
243
|
+
#### and then get rid of this stanza in a subsequent release.
|
244
|
+
################################################################
|
245
|
+
if clazz.nil?
|
246
|
+
class_name = application_name.capitalize
|
247
|
+
clazz = try_load_class(class_name)
|
248
|
+
end
|
249
|
+
################################################################
|
250
|
+
#### End 2.7.x backward compatibility hack
|
251
|
+
################################################################
|
252
|
+
|
253
|
+
if clazz.nil?
|
254
|
+
raise Puppet::Error, _("Unable to load application class '%{class_name}' from file 'puppet/application/%{application_name}.rb'") % { class_name: class_name, application_name: application_name }
|
255
|
+
end
|
256
|
+
|
257
|
+
clazz
|
258
|
+
end
|
259
|
+
|
260
|
+
# Given the fully qualified name of a class, attempt to get the class instance.
|
261
|
+
# @param [String] class_name the fully qualified name of the class to try to load
|
262
|
+
# @return [Class] the Class instance, or nil? if it could not be loaded.
|
263
|
+
def try_load_class(class_name)
|
264
|
+
const_defined?(class_name) ? const_get(class_name) : nil
|
265
|
+
end
|
266
|
+
private :try_load_class
|
267
|
+
|
268
|
+
# Return an instance of the specified application.
|
269
|
+
#
|
270
|
+
# @param [Symbol] name the lowercase name of the application
|
271
|
+
# @return [Puppet::Application] an instance of the specified name
|
272
|
+
# @raise [Puppet::Error] if the application class was not found.
|
273
|
+
# @raise [LoadError] if there was a problem loading the application file.
|
274
|
+
# @api public
|
275
|
+
def [](name)
|
276
|
+
find(name).new
|
277
|
+
end
|
278
|
+
|
279
|
+
# Sets or gets the run_mode name. Sets the run_mode name if a mode_name is
|
280
|
+
# passed. Otherwise, gets the run_mode or a default run_mode
|
281
|
+
# @api public
|
282
|
+
def run_mode(mode_name = nil)
|
283
|
+
if mode_name
|
284
|
+
Puppet.settings.preferred_run_mode = mode_name
|
285
|
+
end
|
286
|
+
|
287
|
+
return @run_mode if @run_mode and !mode_name
|
288
|
+
|
289
|
+
require_relative '../puppet/util/run_mode'
|
290
|
+
@run_mode = Puppet::Util::RunMode[mode_name || Puppet.settings.preferred_run_mode]
|
291
|
+
end
|
292
|
+
|
293
|
+
# Sets environment_mode name. When acting as a compiler, the environment mode
|
294
|
+
# should be `:local` since the directory must exist to compile the catalog.
|
295
|
+
# When acting as an agent, the environment mode should be `:remote` since
|
296
|
+
# the Puppet[:environment] setting refers to an environment directoy on a remote
|
297
|
+
# system. The `:not_required` mode is for cases where the application does not
|
298
|
+
# need an environment to run.
|
299
|
+
#
|
300
|
+
# @param mode_name [Symbol] The name of the environment mode to run in. May
|
301
|
+
# be one of `:local`, `:remote`, or `:not_required`. This impacts where the
|
302
|
+
# application looks for its specified environment. If `:not_required` or
|
303
|
+
# `:remote` are set, the application will not fail if the environment does
|
304
|
+
# not exist on the local filesystem.
|
305
|
+
# @api public
|
306
|
+
def environment_mode(mode_name)
|
307
|
+
raise Puppet::Error, _("Invalid environment mode '%{mode_name}'") % { mode_name: mode_name } unless [:local, :remote, :not_required].include?(mode_name)
|
308
|
+
|
309
|
+
@environment_mode = mode_name
|
310
|
+
end
|
311
|
+
|
312
|
+
# Gets environment_mode name. If none is set with `environment_mode=`,
|
313
|
+
# default to :local.
|
314
|
+
# @return [Symbol] The current environment mode
|
315
|
+
# @api public
|
316
|
+
def get_environment_mode
|
317
|
+
@environment_mode || :local
|
318
|
+
end
|
319
|
+
|
320
|
+
# This is for testing only
|
321
|
+
# @api public
|
322
|
+
def clear_everything_for_tests
|
323
|
+
@run_mode = @banner = @run_status = @option_parser_commands = nil
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
attr_reader :options, :command_line
|
328
|
+
|
329
|
+
# Every app responds to --version
|
330
|
+
# See also `lib/puppet/util/command_line.rb` for some special case early
|
331
|
+
# handling of this.
|
332
|
+
option("--version", "-V") do |_arg|
|
333
|
+
puts Puppet.version
|
334
|
+
exit(0)
|
335
|
+
end
|
336
|
+
|
337
|
+
# Every app responds to --help
|
338
|
+
option("--help", "-h") do |_v|
|
339
|
+
puts help
|
340
|
+
exit(0)
|
341
|
+
end
|
342
|
+
|
343
|
+
# Initialize the application receiving the {Puppet::Util::CommandLine} object
|
344
|
+
# containing the application name and arguments.
|
345
|
+
#
|
346
|
+
# @param command_line [Puppet::Util::CommandLine] An instance of the command line to create the application with
|
347
|
+
# @api public
|
348
|
+
def initialize(command_line = Puppet::Util::CommandLine.new)
|
349
|
+
@command_line = CommandLineArgs.new(command_line.subcommand_name, command_line.args.dup)
|
350
|
+
@options = {}
|
351
|
+
end
|
352
|
+
|
353
|
+
# Now that the `run_mode` has been resolved, return default settings for the
|
354
|
+
# application. Note these values may be overridden when puppet's configuration
|
355
|
+
# is loaded later.
|
356
|
+
#
|
357
|
+
# @example To override the facts terminus:
|
358
|
+
# def app_defaults
|
359
|
+
# super.merge({
|
360
|
+
# :facts_terminus => 'yaml'
|
361
|
+
# })
|
362
|
+
# end
|
363
|
+
#
|
364
|
+
# @return [Hash<String, String>] default application settings
|
365
|
+
# @api public
|
366
|
+
def app_defaults
|
367
|
+
Puppet::Settings.app_defaults_for_run_mode(self.class.run_mode).merge(
|
368
|
+
:name => name
|
369
|
+
)
|
370
|
+
end
|
371
|
+
|
372
|
+
# Initialize application defaults. It's usually not necessary to override this method.
|
373
|
+
# @return [void]
|
374
|
+
# @api public
|
375
|
+
def initialize_app_defaults
|
376
|
+
Puppet.settings.initialize_app_defaults(app_defaults)
|
377
|
+
end
|
378
|
+
|
379
|
+
# The preinit block is the first code to be called in your application, after
|
380
|
+
# `initialize`, but before option parsing, setup or command execution. It is
|
381
|
+
# usually not necessary to override this method.
|
382
|
+
# @return [void]
|
383
|
+
# @api public
|
384
|
+
def preinit
|
385
|
+
end
|
386
|
+
|
387
|
+
# Call in setup of subclass to deprecate an application.
|
388
|
+
# @return [void]
|
389
|
+
# @api public
|
390
|
+
def deprecate
|
391
|
+
@deprecated = true
|
392
|
+
end
|
393
|
+
|
394
|
+
# Return true if this application is deprecated.
|
395
|
+
# @api public
|
396
|
+
def deprecated?
|
397
|
+
@deprecated
|
398
|
+
end
|
399
|
+
|
400
|
+
# Execute the application. This method should not be overridden.
|
401
|
+
# @return [void]
|
402
|
+
# @api public
|
403
|
+
def run
|
404
|
+
# I don't really like the names of these lifecycle phases. It would be nice to change them to some more meaningful
|
405
|
+
# names, and make deprecated aliases. --cprice 2012-03-16
|
406
|
+
|
407
|
+
exit_on_fail(_("Could not get application-specific default settings")) do
|
408
|
+
initialize_app_defaults
|
409
|
+
end
|
410
|
+
|
411
|
+
Puppet::ApplicationSupport.push_application_context(self.class.run_mode, self.class.get_environment_mode)
|
412
|
+
|
413
|
+
exit_on_fail(_("Could not initialize")) { preinit }
|
414
|
+
exit_on_fail(_("Could not parse application options")) { parse_options }
|
415
|
+
exit_on_fail(_("Could not prepare for execution")) { setup }
|
416
|
+
|
417
|
+
if deprecated?
|
418
|
+
Puppet.deprecation_warning(_("`puppet %{name}` is deprecated and will be removed in a future release.") % { name: name })
|
419
|
+
end
|
420
|
+
|
421
|
+
exit_on_fail(_("Could not configure routes from %{route_file}") % { route_file: Puppet[:route_file] }) { configure_indirector_routes }
|
422
|
+
exit_on_fail(_("Could not log runtime debug info")) { log_runtime_environment }
|
423
|
+
exit_on_fail(_("Could not run")) { run_command }
|
424
|
+
end
|
425
|
+
|
426
|
+
# This method must be overridden and perform whatever action is required for
|
427
|
+
# the application. The `command_line` reader contains the actions and
|
428
|
+
# arguments.
|
429
|
+
# @return [void]
|
430
|
+
# @api public
|
431
|
+
def main
|
432
|
+
raise NotImplementedError, _("No valid command or main")
|
433
|
+
end
|
434
|
+
|
435
|
+
# Run the application. By default, it calls {#main}.
|
436
|
+
# @return [void]
|
437
|
+
# @api public
|
438
|
+
def run_command
|
439
|
+
main
|
440
|
+
end
|
441
|
+
|
442
|
+
# Setup the application. It is usually not necessary to override this method.
|
443
|
+
# @return [void]
|
444
|
+
# @api public
|
445
|
+
def setup
|
446
|
+
setup_logs
|
447
|
+
end
|
448
|
+
|
449
|
+
# Setup logging. By default the `console` log destination will only be created
|
450
|
+
# if `debug` or `verbose` is specified on the command line. Override to customize
|
451
|
+
# the logging behavior.
|
452
|
+
# @return [void]
|
453
|
+
# @api public
|
454
|
+
def setup_logs
|
455
|
+
handle_logdest_arg(Puppet[:logdest]) unless options[:setdest]
|
456
|
+
|
457
|
+
unless options[:setdest]
|
458
|
+
if options[:debug] || options[:verbose]
|
459
|
+
Puppet::Util::Log.newdestination(:console)
|
460
|
+
end
|
461
|
+
end
|
462
|
+
|
463
|
+
set_log_level
|
464
|
+
|
465
|
+
Puppet::Util::Log.setup_default unless options[:setdest]
|
466
|
+
end
|
467
|
+
|
468
|
+
def set_log_level(opts = nil)
|
469
|
+
opts ||= options
|
470
|
+
if opts[:debug]
|
471
|
+
Puppet::Util::Log.level = :debug
|
472
|
+
elsif opts[:verbose] && !Puppet::Util::Log.sendlevel?(:info)
|
473
|
+
Puppet::Util::Log.level = :info
|
474
|
+
end
|
475
|
+
end
|
476
|
+
|
477
|
+
def handle_logdest_arg(arg)
|
478
|
+
return if arg.nil?
|
479
|
+
|
480
|
+
logdest = arg.split(',').map!(&:strip)
|
481
|
+
Puppet[:logdest] = arg
|
482
|
+
|
483
|
+
logdest.each do |dest|
|
484
|
+
Puppet::Util::Log.newdestination(dest)
|
485
|
+
options[:setdest] = true
|
486
|
+
rescue => detail
|
487
|
+
Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
|
488
|
+
end
|
489
|
+
end
|
490
|
+
|
491
|
+
def configure_indirector_routes
|
492
|
+
Puppet::ApplicationSupport.configure_indirector_routes(name.to_s)
|
493
|
+
end
|
494
|
+
|
495
|
+
# Output basic information about the runtime environment for debugging
|
496
|
+
# purposes.
|
497
|
+
#
|
498
|
+
# @param extra_info [Hash{String => #to_s}] a flat hash of extra information
|
499
|
+
# to log. Intended to be passed to super by subclasses.
|
500
|
+
# @return [void]
|
501
|
+
# @api public
|
502
|
+
def log_runtime_environment(extra_info = nil)
|
503
|
+
runtime_info = {
|
504
|
+
'puppet_version' => Puppet.version,
|
505
|
+
'ruby_version' => RUBY_VERSION,
|
506
|
+
'run_mode' => self.class.run_mode.name
|
507
|
+
}
|
508
|
+
unless Puppet::Util::Platform.jruby_fips?
|
509
|
+
runtime_info['openssl_version'] = "'#{OpenSSL::OPENSSL_VERSION}'"
|
510
|
+
runtime_info['openssl_fips'] = OpenSSL::OPENSSL_FIPS
|
511
|
+
end
|
512
|
+
runtime_info['default_encoding'] = Encoding.default_external
|
513
|
+
runtime_info.merge!(extra_info) unless extra_info.nil?
|
514
|
+
|
515
|
+
Puppet.debug 'Runtime environment: ' + runtime_info.map { |k, v| k + '=' + v.to_s }.join(', ')
|
516
|
+
end
|
517
|
+
|
518
|
+
# Options defined with the `option` method are parsed from settings and the command line.
|
519
|
+
# Refer to {OptionParser} documentation for the exact format. Options are parsed as follows:
|
520
|
+
#
|
521
|
+
# * If the option method is given a block, then it will be called whenever the option is encountered in the command-line argument.
|
522
|
+
# * If the option method has no block, then the default option handler will store the argument in the `options` instance variable.
|
523
|
+
# * If a given option was not defined by an `option` method, but it exists as a Puppet setting:
|
524
|
+
# * if `unknown` was used with a block, it will be called with the option name and argument.
|
525
|
+
# * if `unknown` wasn't used, then the option/argument is handed to Puppet.settings.handlearg for
|
526
|
+
# a default behavior.
|
527
|
+
# * The `-h` and `--help` options are automatically handled by the command line before creating the application.
|
528
|
+
#
|
529
|
+
# Options specified on the command line override settings. It is usually not
|
530
|
+
# necessary to override this method.
|
531
|
+
# @return [void]
|
532
|
+
# @api public
|
533
|
+
def parse_options
|
534
|
+
# Create an option parser
|
535
|
+
option_parser = OptionParser.new(self.class.banner)
|
536
|
+
|
537
|
+
# Here we're building up all of the options that the application may need to handle. The main
|
538
|
+
# puppet settings defined in "defaults.rb" have already been parsed once (in command_line.rb) by
|
539
|
+
# the time we get here; however, our app may wish to handle some of them specially, so we need to
|
540
|
+
# make the parser aware of them again. We might be able to make this a bit more efficient by
|
541
|
+
# re-using the parser object that gets built up in command_line.rb. --cprice 2012-03-16
|
542
|
+
|
543
|
+
# Add all global options to it.
|
544
|
+
Puppet.settings.optparse_addargs([]).each do |option|
|
545
|
+
option_parser.on(*option) do |arg|
|
546
|
+
handlearg(option[0], arg)
|
547
|
+
end
|
548
|
+
end
|
549
|
+
|
550
|
+
# Add options that are local to this application, which were
|
551
|
+
# created using the "option()" metaprogramming method. If there
|
552
|
+
# are any conflicts, this application's options will be favored.
|
553
|
+
self.class.option_parser_commands.each do |options, fname|
|
554
|
+
option_parser.on(*options) do |value|
|
555
|
+
# Call the method that "option()" created.
|
556
|
+
send(fname, value)
|
557
|
+
end
|
558
|
+
end
|
559
|
+
|
560
|
+
# Scan command line. We just hand any exceptions to our upper levels,
|
561
|
+
# rather than printing help and exiting, so that we can meaningfully
|
562
|
+
# respond with context-sensitive help if we want to. --daniel 2011-04-12
|
563
|
+
option_parser.parse!(command_line.args)
|
564
|
+
end
|
565
|
+
|
566
|
+
def handlearg(opt, val)
|
567
|
+
opt, val = Puppet::Settings.clean_opt(opt, val)
|
568
|
+
send(:handle_unknown, opt, val) if respond_to?(:handle_unknown)
|
569
|
+
end
|
570
|
+
|
571
|
+
# this is used for testing
|
572
|
+
def self.exit(code)
|
573
|
+
exit(code)
|
574
|
+
end
|
575
|
+
|
576
|
+
def name
|
577
|
+
self.class.to_s.sub(/.*::/, "").downcase.to_sym
|
578
|
+
end
|
579
|
+
|
580
|
+
# Return the text to display when running `puppet help`.
|
581
|
+
# @return [String] The help to display
|
582
|
+
# @api public
|
583
|
+
def help
|
584
|
+
_("No help available for puppet %{app_name}") % { app_name: name }
|
585
|
+
end
|
586
|
+
|
587
|
+
# The description used in top level `puppet help` output
|
588
|
+
# If left empty in implementations, we will attempt to extract
|
589
|
+
# the summary from the help text itself.
|
590
|
+
# @return [String]
|
591
|
+
# @api public
|
592
|
+
def summary
|
593
|
+
""
|
594
|
+
end
|
595
|
+
end
|
596
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
require_relative '../puppet'
|
6
|
+
require_relative '../puppet/node/environment'
|
7
|
+
require_relative '../puppet/file_system'
|
8
|
+
require_relative '../puppet/indirector'
|
9
|
+
|
10
|
+
module Puppet
|
11
|
+
module ApplicationSupport
|
12
|
+
# Pushes a Puppet Context configured with a remote environment for an agent
|
13
|
+
# (one that exists at the master end), and a regular environment for other
|
14
|
+
# modes. The configuration is overridden with options from the command line
|
15
|
+
# before being set in a pushed Puppet Context.
|
16
|
+
#
|
17
|
+
# @param run_mode [Puppet::Util::RunMode] Puppet's current Run Mode.
|
18
|
+
# @param environment_mode [Symbol] optional, Puppet's
|
19
|
+
# current Environment Mode. Defaults to :local
|
20
|
+
# @return [void]
|
21
|
+
# @api private
|
22
|
+
def self.push_application_context(run_mode, environment_mode = :local)
|
23
|
+
Puppet.push_context_global(Puppet.base_context(Puppet.settings), "Update for application settings (#{run_mode})")
|
24
|
+
# This use of configured environment is correct, this is used to establish
|
25
|
+
# the defaults for an application that does not override, or where an override
|
26
|
+
# has not been made from the command line.
|
27
|
+
#
|
28
|
+
configured_environment_name = Puppet[:environment]
|
29
|
+
if run_mode.name == :agent
|
30
|
+
configured_environment = Puppet::Node::Environment.remote(configured_environment_name)
|
31
|
+
elsif environment_mode == :not_required
|
32
|
+
configured_environment =
|
33
|
+
Puppet.lookup(:environments).get(configured_environment_name) || Puppet::Node::Environment.remote(configured_environment_name)
|
34
|
+
else
|
35
|
+
configured_environment = Puppet.lookup(:environments).get!(configured_environment_name)
|
36
|
+
end
|
37
|
+
configured_environment = configured_environment.override_from_commandline(Puppet.settings)
|
38
|
+
|
39
|
+
# Setup a new context using the app's configuration
|
40
|
+
Puppet.push_context({ :current_environment => configured_environment },
|
41
|
+
"Update current environment from application's configuration")
|
42
|
+
end
|
43
|
+
|
44
|
+
# Reads the routes YAML settings from the file specified by Puppet[:route_file]
|
45
|
+
# and resets indirector termini for the current application class if listed.
|
46
|
+
#
|
47
|
+
# For instance, PE uses this to set the master facts terminus
|
48
|
+
# to 'puppetdb' and its cache terminus to 'yaml'.
|
49
|
+
#
|
50
|
+
# @param application_name [String] The name of the current application.
|
51
|
+
# @return [void]
|
52
|
+
# @api private
|
53
|
+
def self.configure_indirector_routes(application_name)
|
54
|
+
route_file = Puppet[:route_file]
|
55
|
+
if Puppet::FileSystem.exist?(route_file)
|
56
|
+
routes = Puppet::Util::Yaml.safe_load_file(route_file, [Symbol])
|
57
|
+
if routes["server"] && routes["master"]
|
58
|
+
Puppet.warning("Route file #{route_file} contains both server and master route settings.")
|
59
|
+
elsif routes["server"] && !routes["master"]
|
60
|
+
routes["master"] = routes["server"]
|
61
|
+
elsif routes["master"] && !routes["server"]
|
62
|
+
routes["server"] = routes["master"]
|
63
|
+
end
|
64
|
+
application_routes = routes[application_name]
|
65
|
+
Puppet::Indirector.configure_routes(application_routes) if application_routes
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Various methods used to coerce values into a canonical form.
|
4
|
+
#
|
5
|
+
# @api private
|
6
|
+
module Puppet::Coercion
|
7
|
+
# Try to coerce various input values into boolean true/false
|
8
|
+
#
|
9
|
+
# Only a very limited subset of values are allowed. This method does not try
|
10
|
+
# to provide a generic "truthiness" system.
|
11
|
+
#
|
12
|
+
# @param value [Boolean, Symbol, String]
|
13
|
+
# @return [Boolean]
|
14
|
+
# @raise
|
15
|
+
# @api private
|
16
|
+
def self.boolean(value)
|
17
|
+
# downcase strings
|
18
|
+
if value.respond_to? :downcase
|
19
|
+
value = value.downcase
|
20
|
+
end
|
21
|
+
|
22
|
+
case value
|
23
|
+
when true, :true, 'true', :yes, 'yes' # rubocop:disable Lint/BooleanSymbol
|
24
|
+
true
|
25
|
+
when false, :false, 'false', :no, 'no' # rubocop:disable Lint/BooleanSymbol
|
26
|
+
false
|
27
|
+
else
|
28
|
+
fail('expected a boolean value')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Return the list of acceptable boolean values.
|
33
|
+
#
|
34
|
+
# This is limited to lower-case, even though boolean() is case-insensitive.
|
35
|
+
#
|
36
|
+
# @return [Array]
|
37
|
+
# @raise
|
38
|
+
# @api private
|
39
|
+
def self.boolean_values
|
40
|
+
%w[true false yes no]
|
41
|
+
end
|
42
|
+
end
|