openvox 7.37.1
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 +15 -0
- data/CODEOWNERS +11 -0
- data/CODE_OF_CONDUCT.md +70 -0
- data/CONTRIBUTING.md +161 -0
- data/Gemfile +82 -0
- data/Guardfile.example +76 -0
- data/LICENSE +202 -0
- data/README.md +68 -0
- data/Rakefile +160 -0
- data/bin/puppet +9 -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 +91 -0
- data/examples/hiera/etc/hiera.yaml +15 -0
- data/examples/hiera/etc/hieradb/common.yaml +3 -0
- data/examples/hiera/etc/hieradb/dc1.yaml +6 -0
- data/examples/hiera/etc/hieradb/development.yaml +2 -0
- data/examples/hiera/etc/puppet.conf +3 -0
- data/examples/hiera/modules/data/manifests/common.pp +4 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +6 -0
- data/examples/hiera/modules/ntp/manifests/data.pp +4 -0
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +4 -0
- data/examples/hiera/modules/users/manifests/dc1.pp +4 -0
- data/examples/hiera/modules/users/manifests/development.pp +4 -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 +225 -0
- data/install.rb +499 -0
- data/lib/hiera/puppet_function.rb +84 -0
- data/lib/hiera/scope.rb +90 -0
- data/lib/hiera_puppet.rb +80 -0
- data/lib/puppet/agent/disabler.rb +53 -0
- data/lib/puppet/agent/locker.rb +46 -0
- data/lib/puppet/agent.rb +176 -0
- data/lib/puppet/application/agent.rb +523 -0
- data/lib/puppet/application/apply.rb +428 -0
- data/lib/puppet/application/catalog.rb +4 -0
- data/lib/puppet/application/config.rb +5 -0
- data/lib/puppet/application/describe.rb +253 -0
- data/lib/puppet/application/device.rb +439 -0
- data/lib/puppet/application/doc.rb +233 -0
- data/lib/puppet/application/epp.rb +5 -0
- data/lib/puppet/application/face_base.rb +276 -0
- data/lib/puppet/application/facts.rb +9 -0
- data/lib/puppet/application/filebucket.rb +318 -0
- data/lib/puppet/application/generate.rb +5 -0
- data/lib/puppet/application/help.rb +5 -0
- data/lib/puppet/application/indirection_base.rb +4 -0
- data/lib/puppet/application/lookup.rb +433 -0
- data/lib/puppet/application/module.rb +4 -0
- data/lib/puppet/application/node.rb +4 -0
- data/lib/puppet/application/parser.rb +5 -0
- data/lib/puppet/application/plugin.rb +4 -0
- data/lib/puppet/application/report.rb +4 -0
- data/lib/puppet/application/resource.rb +254 -0
- data/lib/puppet/application/script.rb +264 -0
- data/lib/puppet/application/ssl.rb +323 -0
- data/lib/puppet/application.rb +596 -0
- data/lib/puppet/application_support.rb +68 -0
- data/lib/puppet/coercion.rb +40 -0
- data/lib/puppet/compilable_resource_type.rb +15 -0
- data/lib/puppet/concurrent/lock.rb +16 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +17 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +85 -0
- data/lib/puppet/configurer/fact_handler.rb +50 -0
- data/lib/puppet/configurer/plugin_handler.rb +59 -0
- data/lib/puppet/configurer.rb +755 -0
- data/lib/puppet/confine/any.rb +26 -0
- data/lib/puppet/confine/boolean.rb +45 -0
- data/lib/puppet/confine/exists.rb +19 -0
- data/lib/puppet/confine/false.rb +25 -0
- data/lib/puppet/confine/feature.rb +17 -0
- data/lib/puppet/confine/true.rb +26 -0
- data/lib/puppet/confine/variable.rb +59 -0
- data/lib/puppet/confine.rb +83 -0
- data/lib/puppet/confine_collection.rb +51 -0
- data/lib/puppet/confiner.rb +46 -0
- data/lib/puppet/context/trusted_information.rb +120 -0
- data/lib/puppet/context.rb +188 -0
- data/lib/puppet/daemon.rb +182 -0
- data/lib/puppet/data_binding.rb +14 -0
- data/lib/puppet/datatypes/error.rb +21 -0
- data/lib/puppet/datatypes/impl/error.rb +40 -0
- data/lib/puppet/datatypes.rb +213 -0
- data/lib/puppet/defaults.rb +2277 -0
- data/lib/puppet/environments.rb +601 -0
- data/lib/puppet/error.rb +138 -0
- data/lib/puppet/etc.rb +180 -0
- data/lib/puppet/external/dot.rb +325 -0
- data/lib/puppet/external/pson/common.rb +374 -0
- data/lib/puppet/external/pson/pure/generator.rb +395 -0
- data/lib/puppet/external/pson/pure/parser.rb +308 -0
- data/lib/puppet/external/pson/pure.rb +15 -0
- data/lib/puppet/external/pson/version.rb +8 -0
- data/lib/puppet/face/catalog/select.rb +49 -0
- data/lib/puppet/face/catalog.rb +165 -0
- data/lib/puppet/face/config.rb +267 -0
- data/lib/puppet/face/epp.rb +566 -0
- data/lib/puppet/face/facts.rb +174 -0
- data/lib/puppet/face/generate.rb +66 -0
- data/lib/puppet/face/help/action.erb +90 -0
- data/lib/puppet/face/help/face.erb +115 -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 +242 -0
- data/lib/puppet/face/module/changes.rb +43 -0
- data/lib/puppet/face/module/install.rb +146 -0
- data/lib/puppet/face/module/list.rb +272 -0
- data/lib/puppet/face/module/uninstall.rb +89 -0
- data/lib/puppet/face/module/upgrade.rb +87 -0
- data/lib/puppet/face/module.rb +19 -0
- data/lib/puppet/face/node/clean.rb +107 -0
- data/lib/puppet/face/node.rb +43 -0
- data/lib/puppet/face/parser.rb +227 -0
- data/lib/puppet/face/plugin.rb +60 -0
- data/lib/puppet/face/report.rb +54 -0
- data/lib/puppet/face/resource.rb +53 -0
- data/lib/puppet/face.rb +12 -0
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/feature/base.rb +76 -0
- data/lib/puppet/feature/bolt.rb +3 -0
- data/lib/puppet/feature/cfpropertylist.rb +3 -0
- data/lib/puppet/feature/eventlog.rb +5 -0
- data/lib/puppet/feature/hiera_eyaml.rb +3 -0
- data/lib/puppet/feature/hocon.rb +3 -0
- data/lib/puppet/feature/libuser.rb +8 -0
- data/lib/puppet/feature/msgpack.rb +3 -0
- data/lib/puppet/feature/pe_license.rb +4 -0
- data/lib/puppet/feature/selinux.rb +3 -0
- data/lib/puppet/feature/ssh.rb +3 -0
- data/lib/puppet/feature/telnet.rb +9 -0
- data/lib/puppet/feature/zlib.rb +5 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/file_bucket/dipper.rb +174 -0
- data/lib/puppet/file_bucket/file.rb +129 -0
- data/lib/puppet/file_bucket.rb +4 -0
- data/lib/puppet/file_serving/base.rb +86 -0
- data/lib/puppet/file_serving/configuration/parser.rb +113 -0
- data/lib/puppet/file_serving/configuration.rb +113 -0
- data/lib/puppet/file_serving/content.rb +43 -0
- data/lib/puppet/file_serving/fileset.rb +186 -0
- data/lib/puppet/file_serving/http_metadata.rb +62 -0
- data/lib/puppet/file_serving/metadata.rb +171 -0
- data/lib/puppet/file_serving/mount/file.rb +122 -0
- data/lib/puppet/file_serving/mount/locales.rb +35 -0
- data/lib/puppet/file_serving/mount/modules.rb +26 -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 +24 -0
- data/lib/puppet/file_serving/mount/tasks.rb +23 -0
- data/lib/puppet/file_serving/mount.rb +38 -0
- data/lib/puppet/file_serving/terminus_helper.rb +31 -0
- data/lib/puppet/file_serving/terminus_selector.rb +31 -0
- data/lib/puppet/file_serving.rb +3 -0
- data/lib/puppet/file_system/file_impl.rb +188 -0
- data/lib/puppet/file_system/jruby.rb +23 -0
- data/lib/puppet/file_system/memory_file.rb +79 -0
- data/lib/puppet/file_system/memory_impl.rb +99 -0
- data/lib/puppet/file_system/path_pattern.rb +93 -0
- data/lib/puppet/file_system/posix.rb +47 -0
- data/lib/puppet/file_system/uniquefile.rb +188 -0
- data/lib/puppet/file_system/windows.rb +213 -0
- data/lib/puppet/file_system.rb +419 -0
- data/lib/puppet/forge/cache.rb +60 -0
- data/lib/puppet/forge/errors.rb +114 -0
- data/lib/puppet/forge/repository.rb +95 -0
- data/lib/puppet/forge.rb +259 -0
- data/lib/puppet/functions/abs.rb +61 -0
- data/lib/puppet/functions/alert.rb +14 -0
- data/lib/puppet/functions/all.rb +104 -0
- data/lib/puppet/functions/annotate.rb +108 -0
- data/lib/puppet/functions/any.rb +109 -0
- data/lib/puppet/functions/assert_type.rb +93 -0
- data/lib/puppet/functions/binary_file.rb +32 -0
- data/lib/puppet/functions/break.rb +47 -0
- data/lib/puppet/functions/call.rb +80 -0
- data/lib/puppet/functions/camelcase.rb +62 -0
- data/lib/puppet/functions/capitalize.rb +61 -0
- data/lib/puppet/functions/ceiling.rb +37 -0
- data/lib/puppet/functions/chomp.rb +57 -0
- data/lib/puppet/functions/chop.rb +67 -0
- data/lib/puppet/functions/compare.rb +125 -0
- data/lib/puppet/functions/contain.rb +55 -0
- data/lib/puppet/functions/convert_to.rb +34 -0
- data/lib/puppet/functions/crit.rb +14 -0
- data/lib/puppet/functions/debug.rb +14 -0
- data/lib/puppet/functions/defined.rb +159 -0
- data/lib/puppet/functions/dig.rb +67 -0
- data/lib/puppet/functions/downcase.rb +89 -0
- data/lib/puppet/functions/each.rb +167 -0
- data/lib/puppet/functions/emerg.rb +14 -0
- data/lib/puppet/functions/empty.rb +85 -0
- data/lib/puppet/functions/epp.rb +49 -0
- data/lib/puppet/functions/err.rb +14 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +102 -0
- data/lib/puppet/functions/filter.rb +137 -0
- data/lib/puppet/functions/find_file.rb +44 -0
- data/lib/puppet/functions/find_template.rb +63 -0
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/floor.rb +37 -0
- data/lib/puppet/functions/get.rb +150 -0
- data/lib/puppet/functions/getvar.rb +87 -0
- data/lib/puppet/functions/group_by.rb +62 -0
- data/lib/puppet/functions/hiera.rb +89 -0
- data/lib/puppet/functions/hiera_array.rb +81 -0
- data/lib/puppet/functions/hiera_hash.rb +92 -0
- data/lib/puppet/functions/hiera_include.rb +104 -0
- data/lib/puppet/functions/hocon_data.rb +41 -0
- data/lib/puppet/functions/import.rb +7 -0
- data/lib/puppet/functions/include.rb +53 -0
- data/lib/puppet/functions/index.rb +167 -0
- data/lib/puppet/functions/info.rb +14 -0
- data/lib/puppet/functions/inline_epp.rb +60 -0
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +33 -0
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +55 -0
- data/lib/puppet/functions/lookup.rb +224 -0
- data/lib/puppet/functions/lstrip.rb +58 -0
- data/lib/puppet/functions/map.rb +135 -0
- data/lib/puppet/functions/match.rb +130 -0
- data/lib/puppet/functions/max.rb +183 -0
- data/lib/puppet/functions/min.rb +182 -0
- data/lib/puppet/functions/module_directory.rb +41 -0
- data/lib/puppet/functions/new.rb +1011 -0
- data/lib/puppet/functions/next.rb +33 -0
- data/lib/puppet/functions/notice.rb +14 -0
- data/lib/puppet/functions/partition.rb +62 -0
- data/lib/puppet/functions/reduce.rb +162 -0
- data/lib/puppet/functions/regsubst.rb +101 -0
- data/lib/puppet/functions/require.rb +77 -0
- data/lib/puppet/functions/return.rb +15 -0
- data/lib/puppet/functions/reverse_each.rb +94 -0
- data/lib/puppet/functions/round.rb +24 -0
- data/lib/puppet/functions/rstrip.rb +58 -0
- data/lib/puppet/functions/scanf.rb +44 -0
- data/lib/puppet/functions/size.rb +15 -0
- data/lib/puppet/functions/slice.rb +124 -0
- data/lib/puppet/functions/sort.rb +74 -0
- data/lib/puppet/functions/split.rb +76 -0
- data/lib/puppet/functions/step.rb +98 -0
- data/lib/puppet/functions/strftime.rb +212 -0
- data/lib/puppet/functions/strip.rb +58 -0
- data/lib/puppet/functions/then.rb +77 -0
- data/lib/puppet/functions/tree_each.rb +197 -0
- data/lib/puppet/functions/type.rb +72 -0
- data/lib/puppet/functions/unique.rb +132 -0
- data/lib/puppet/functions/unwrap.rb +59 -0
- data/lib/puppet/functions/upcase.rb +89 -0
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +40 -0
- data/lib/puppet/functions/warning.rb +14 -0
- data/lib/puppet/functions/with.rb +32 -0
- data/lib/puppet/functions/yaml_data.rb +45 -0
- data/lib/puppet/functions.rb +862 -0
- data/lib/puppet/generate/models/type/property.rb +70 -0
- data/lib/puppet/generate/models/type/type.rb +65 -0
- data/lib/puppet/generate/templates/type/pcore.erb +42 -0
- data/lib/puppet/generate/type.rb +249 -0
- data/lib/puppet/gettext/config.rb +275 -0
- data/lib/puppet/gettext/module_translations.rb +42 -0
- data/lib/puppet/gettext/stubs.rb +11 -0
- data/lib/puppet/graph/key.rb +26 -0
- data/lib/puppet/graph/prioritizer.rb +29 -0
- data/lib/puppet/graph/rb_tree_map.rb +388 -0
- data/lib/puppet/graph/relationship_graph.rb +284 -0
- data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
- data/lib/puppet/graph/simple_graph.rb +546 -0
- data/lib/puppet/graph.rb +9 -0
- data/lib/puppet/http/client.rb +525 -0
- data/lib/puppet/http/dns.rb +159 -0
- data/lib/puppet/http/errors.rb +48 -0
- data/lib/puppet/http/external_client.rb +88 -0
- data/lib/puppet/http/factory.rb +51 -0
- data/lib/puppet/http/pool.rb +172 -0
- data/lib/puppet/http/pool_entry.rb +17 -0
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +85 -0
- data/lib/puppet/http/resolver/server_list.rb +87 -0
- data/lib/puppet/http/resolver/settings.rb +23 -0
- data/lib/puppet/http/resolver/srv.rb +41 -0
- data/lib/puppet/http/resolver.rb +48 -0
- data/lib/puppet/http/response.rb +102 -0
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +77 -0
- data/lib/puppet/http/service/ca.rb +101 -0
- data/lib/puppet/http/service/compiler.rb +353 -0
- data/lib/puppet/http/service/file_server.rb +198 -0
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +64 -0
- data/lib/puppet/http/service.rb +182 -0
- data/lib/puppet/http/session.rb +122 -0
- data/lib/puppet/http/site.rb +42 -0
- data/lib/puppet/http.rb +46 -0
- data/lib/puppet/indirector/catalog/compiler.rb +431 -0
- data/lib/puppet/indirector/catalog/json.rb +40 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/lib/puppet/indirector/catalog/rest.rb +49 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
- data/lib/puppet/indirector/catalog/yaml.rb +6 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +7 -0
- data/lib/puppet/indirector/data_binding/none.rb +8 -0
- data/lib/puppet/indirector/direct_file_server.rb +17 -0
- data/lib/puppet/indirector/envelope.rb +11 -0
- data/lib/puppet/indirector/errors.rb +5 -0
- data/lib/puppet/indirector/exec.rb +38 -0
- data/lib/puppet/indirector/face.rb +153 -0
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +117 -0
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/network_device.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +44 -0
- data/lib/puppet/indirector/facts/store_configs.rb +11 -0
- data/lib/puppet/indirector/facts/yaml.rb +29 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +262 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +50 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
- data/lib/puppet/indirector/file_content/file.rb +7 -0
- data/lib/puppet/indirector/file_content/file_server.rb +7 -0
- data/lib/puppet/indirector/file_content/rest.rb +35 -0
- data/lib/puppet/indirector/file_content/selector.rb +30 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +7 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
- data/lib/puppet/indirector/file_metadata/http.rb +47 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +56 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_server.rb +54 -0
- data/lib/puppet/indirector/generic_http.rb +5 -0
- data/lib/puppet/indirector/hiera.rb +100 -0
- data/lib/puppet/indirector/indirection.rb +372 -0
- data/lib/puppet/indirector/json.rb +79 -0
- data/lib/puppet/indirector/memory.rb +34 -0
- data/lib/puppet/indirector/msgpack.rb +83 -0
- data/lib/puppet/indirector/node/exec.rb +70 -0
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/lib/puppet/indirector/node/plain.rb +21 -0
- data/lib/puppet/indirector/node/rest.rb +29 -0
- data/lib/puppet/indirector/node/store_configs.rb +8 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/none.rb +9 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/lib/puppet/indirector/report/processor.rb +60 -0
- data/lib/puppet/indirector/report/rest.rb +42 -0
- data/lib/puppet/indirector/report/yaml.rb +34 -0
- data/lib/puppet/indirector/request.rb +194 -0
- data/lib/puppet/indirector/resource/ral.rb +66 -0
- data/lib/puppet/indirector/resource/store_configs.rb +12 -0
- data/lib/puppet/indirector/resource/validator.rb +8 -0
- data/lib/puppet/indirector/rest.rb +64 -0
- data/lib/puppet/indirector/store_configs.rb +30 -0
- data/lib/puppet/indirector/terminus.rb +176 -0
- data/lib/puppet/indirector/yaml.rb +63 -0
- data/lib/puppet/indirector.rb +61 -0
- data/lib/puppet/info_service/class_information_service.rb +109 -0
- data/lib/puppet/info_service/plan_information_service.rb +36 -0
- data/lib/puppet/info_service/task_information_service.rb +44 -0
- data/lib/puppet/info_service.rb +26 -0
- data/lib/puppet/interface/action.rb +406 -0
- data/lib/puppet/interface/action_builder.rb +161 -0
- data/lib/puppet/interface/action_manager.rb +98 -0
- data/lib/puppet/interface/documentation.rb +357 -0
- data/lib/puppet/interface/face_collection.rb +137 -0
- data/lib/puppet/interface/option.rb +172 -0
- data/lib/puppet/interface/option_builder.rb +105 -0
- data/lib/puppet/interface/option_manager.rb +106 -0
- data/lib/puppet/interface.rb +239 -0
- data/lib/puppet/loaders.rb +30 -0
- data/lib/puppet/metatype/manager.rb +197 -0
- data/lib/puppet/module/plan.rb +159 -0
- data/lib/puppet/module/task.rb +283 -0
- data/lib/puppet/module.rb +475 -0
- data/lib/puppet/module_tool/applications/application.rb +91 -0
- data/lib/puppet/module_tool/applications/checksummer.rb +62 -0
- data/lib/puppet/module_tool/applications/installer.rb +411 -0
- data/lib/puppet/module_tool/applications/uninstaller.rb +119 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +100 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +282 -0
- data/lib/puppet/module_tool/applications.rb +12 -0
- data/lib/puppet/module_tool/checksums.rb +49 -0
- data/lib/puppet/module_tool/contents_description.rb +89 -0
- data/lib/puppet/module_tool/dependency.rb +41 -0
- data/lib/puppet/module_tool/errors/base.rb +15 -0
- data/lib/puppet/module_tool/errors/installer.rb +93 -0
- data/lib/puppet/module_tool/errors/shared.rb +227 -0
- data/lib/puppet/module_tool/errors/uninstaller.rb +50 -0
- data/lib/puppet/module_tool/errors/upgrader.rb +63 -0
- data/lib/puppet/module_tool/errors.rb +11 -0
- data/lib/puppet/module_tool/install_directory.rb +45 -0
- data/lib/puppet/module_tool/installed_modules.rb +96 -0
- data/lib/puppet/module_tool/local_tarball.rb +90 -0
- data/lib/puppet/module_tool/metadata.rb +221 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +181 -0
- data/lib/puppet/module_tool/tar/gnu.rb +19 -0
- data/lib/puppet/module_tool/tar/mini.rb +116 -0
- data/lib/puppet/module_tool/tar.rb +18 -0
- data/lib/puppet/module_tool.rb +194 -0
- data/lib/puppet/network/authconfig.rb +7 -0
- data/lib/puppet/network/authorization.rb +19 -0
- data/lib/puppet/network/client_request.rb +29 -0
- data/lib/puppet/network/format.rb +110 -0
- data/lib/puppet/network/format_handler.rb +108 -0
- data/lib/puppet/network/format_support.rb +139 -0
- data/lib/puppet/network/formats.rb +329 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +277 -0
- data/lib/puppet/network/http/api/indirection_type.rb +32 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +3 -0
- data/lib/puppet/network/http/api/master/v3.rb +3 -0
- data/lib/puppet/network/http/api/master.rb +3 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +48 -0
- data/lib/puppet/network/http/api/server/v3.rb +39 -0
- data/lib/puppet/network/http/api/server.rb +10 -0
- data/lib/puppet/network/http/api.rb +39 -0
- data/lib/puppet/network/http/connection.rb +286 -0
- data/lib/puppet/network/http/error.rb +73 -0
- data/lib/puppet/network/http/handler.rb +215 -0
- data/lib/puppet/network/http/issues.rb +12 -0
- data/lib/puppet/network/http/memory_response.rb +13 -0
- data/lib/puppet/network/http/request.rb +71 -0
- data/lib/puppet/network/http/response.rb +23 -0
- data/lib/puppet/network/http/route.rb +101 -0
- data/lib/puppet/network/http.rb +28 -0
- data/lib/puppet/network/http_pool.rb +77 -0
- data/lib/puppet/network/uri.rb +18 -0
- data/lib/puppet/network.rb +3 -0
- data/lib/puppet/node/environment.rb +635 -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 +108 -0
- data/lib/puppet/pal/compiler.rb +222 -0
- data/lib/puppet/pal/function_signature.rb +52 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +71 -0
- data/lib/puppet/pal/pal_api.rb +15 -0
- data/lib/puppet/pal/pal_impl.rb +590 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +73 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parameter/boolean.rb +15 -0
- data/lib/puppet/parameter/package_options.rb +31 -0
- data/lib/puppet/parameter/path.rb +57 -0
- data/lib/puppet/parameter/value.rb +91 -0
- data/lib/puppet/parameter/value_collection.rb +212 -0
- data/lib/puppet/parameter.rb +589 -0
- data/lib/puppet/parser/abstract_compiler.rb +36 -0
- data/lib/puppet/parser/ast/block_expression.rb +15 -0
- data/lib/puppet/parser/ast/branch.rb +19 -0
- data/lib/puppet/parser/ast/hostclass.rb +27 -0
- data/lib/puppet/parser/ast/leaf.rb +81 -0
- data/lib/puppet/parser/ast/node.rb +17 -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 +10 -0
- data/lib/puppet/parser/ast/resourceparam.rb +31 -0
- data/lib/puppet/parser/ast/top_level_construct.rb +4 -0
- data/lib/puppet/parser/ast.rb +61 -0
- data/lib/puppet/parser/catalog_compiler.rb +56 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +39 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler.rb +615 -0
- data/lib/puppet/parser/e4_parser_adapter.rb +60 -0
- data/lib/puppet/parser/files.rb +93 -0
- data/lib/puppet/parser/functions/assert_type.rb +60 -0
- data/lib/puppet/parser/functions/binary_file.rb +24 -0
- data/lib/puppet/parser/functions/break.rb +39 -0
- data/lib/puppet/parser/functions/contain.rb +30 -0
- data/lib/puppet/parser/functions/create_resources.rb +110 -0
- data/lib/puppet/parser/functions/defined.rb +107 -0
- data/lib/puppet/parser/functions/dig.rb +38 -0
- data/lib/puppet/parser/functions/digest.rb +5 -0
- data/lib/puppet/parser/functions/each.rb +104 -0
- data/lib/puppet/parser/functions/epp.rb +39 -0
- data/lib/puppet/parser/functions/fail.rb +11 -0
- data/lib/puppet/parser/functions/file.rb +33 -0
- data/lib/puppet/parser/functions/filter.rb +79 -0
- data/lib/puppet/parser/functions/find_file.rb +28 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +44 -0
- data/lib/puppet/parser/functions/generate.rb +37 -0
- data/lib/puppet/parser/functions/hiera.rb +103 -0
- data/lib/puppet/parser/functions/hiera_array.rb +92 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +102 -0
- data/lib/puppet/parser/functions/hiera_include.rb +101 -0
- data/lib/puppet/parser/functions/include.rb +34 -0
- data/lib/puppet/parser/functions/inline_epp.rb +51 -0
- data/lib/puppet/parser/functions/inline_template.rb +26 -0
- data/lib/puppet/parser/functions/lest.rb +49 -0
- data/lib/puppet/parser/functions/lookup.rb +132 -0
- data/lib/puppet/parser/functions/map.rb +76 -0
- data/lib/puppet/parser/functions/match.rb +43 -0
- data/lib/puppet/parser/functions/md5.rb +5 -0
- data/lib/puppet/parser/functions/new.rb +991 -0
- data/lib/puppet/parser/functions/next.rb +38 -0
- data/lib/puppet/parser/functions/realize.rb +20 -0
- data/lib/puppet/parser/functions/reduce.rb +137 -0
- data/lib/puppet/parser/functions/regsubst.rb +62 -0
- data/lib/puppet/parser/functions/require.rb +40 -0
- data/lib/puppet/parser/functions/return.rb +92 -0
- data/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/lib/puppet/parser/functions/scanf.rb +38 -0
- data/lib/puppet/parser/functions/sha1.rb +5 -0
- data/lib/puppet/parser/functions/sha256.rb +5 -0
- data/lib/puppet/parser/functions/shellquote.rb +61 -0
- data/lib/puppet/parser/functions/slice.rb +39 -0
- data/lib/puppet/parser/functions/split.rb +28 -0
- data/lib/puppet/parser/functions/sprintf.rb +61 -0
- data/lib/puppet/parser/functions/step.rb +84 -0
- data/lib/puppet/parser/functions/strftime.rb +185 -0
- data/lib/puppet/parser/functions/tag.rb +12 -0
- data/lib/puppet/parser/functions/tagged.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +39 -0
- data/lib/puppet/parser/functions/then.rb +73 -0
- data/lib/puppet/parser/functions/type.rb +53 -0
- data/lib/puppet/parser/functions/versioncmp.rb +30 -0
- data/lib/puppet/parser/functions/with.rb +28 -0
- data/lib/puppet/parser/functions.rb +321 -0
- data/lib/puppet/parser/parser_factory.rb +30 -0
- data/lib/puppet/parser/relationship.rb +84 -0
- data/lib/puppet/parser/resource/param.rb +35 -0
- data/lib/puppet/parser/resource.rb +351 -0
- data/lib/puppet/parser/scope.rb +1127 -0
- data/lib/puppet/parser/script_compiler.rb +123 -0
- data/lib/puppet/parser/templatewrapper.rb +104 -0
- data/lib/puppet/parser/type_loader.rb +150 -0
- data/lib/puppet/parser.rb +20 -0
- data/lib/puppet/plugins/configuration.rb +29 -0
- data/lib/puppet/plugins/syntax_checkers.rb +98 -0
- data/lib/puppet/plugins.rb +9 -0
- data/lib/puppet/pops/adaptable.rb +197 -0
- data/lib/puppet/pops/adapters.rb +156 -0
- data/lib/puppet/pops/evaluator/access_operator.rb +719 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +107 -0
- data/lib/puppet/pops/evaluator/closure.rb +375 -0
- data/lib/puppet/pops/evaluator/collector_transformer.rb +234 -0
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +86 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +29 -0
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +70 -0
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +38 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +254 -0
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +225 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +120 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1317 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +46 -0
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +82 -0
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +100 -0
- data/lib/puppet/pops/evaluator/puppet_proc.rb +69 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +185 -0
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +221 -0
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +535 -0
- data/lib/puppet/pops/functions/dispatch.rb +107 -0
- data/lib/puppet/pops/functions/dispatcher.rb +75 -0
- data/lib/puppet/pops/functions/function.rb +139 -0
- data/lib/puppet/pops/issue_reporter.rb +137 -0
- data/lib/puppet/pops/issues.rb +928 -0
- data/lib/puppet/pops/label_provider.rb +90 -0
- data/lib/puppet/pops/loader/base_loader.rb +178 -0
- data/lib/puppet/pops/loader/dependency_loader.rb +91 -0
- data/lib/puppet/pops/loader/gem_support.rb +51 -0
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +28 -0
- data/lib/puppet/pops/loader/loader.rb +221 -0
- data/lib/puppet/pops/loader/loader_paths.rb +412 -0
- data/lib/puppet/pops/loader/module_loaders.rb +556 -0
- data/lib/puppet/pops/loader/predefined_loader.rb +28 -0
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +93 -0
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +79 -0
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +45 -0
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +120 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +103 -0
- data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
- data/lib/puppet/pops/loader/static_loader.rb +131 -0
- data/lib/puppet/pops/loader/task_instantiator.rb +44 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +100 -0
- data/lib/puppet/pops/loader/typed_name.rb +54 -0
- data/lib/puppet/pops/loader/uri_helper.rb +22 -0
- data/lib/puppet/pops/loaders.rb +546 -0
- data/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
- data/lib/puppet/pops/lookup/context.rb +199 -0
- data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
- data/lib/puppet/pops/lookup/data_provider.rb +92 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
- data/lib/puppet/pops/lookup/explainer.rb +595 -0
- data/lib/puppet/pops/lookup/function_provider.rb +110 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +75 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +775 -0
- data/lib/puppet/pops/lookup/interpolation.rb +155 -0
- data/lib/puppet/pops/lookup/invocation.rb +268 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +18 -0
- data/lib/puppet/pops/lookup/location_resolver.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +528 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +89 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +92 -0
- data/lib/puppet/pops/lookup.rb +97 -0
- data/lib/puppet/pops/merge_strategy.rb +441 -0
- data/lib/puppet/pops/migration/migration_checker.rb +58 -0
- data/lib/puppet/pops/model/ast.pp +669 -0
- data/lib/puppet/pops/model/ast.rb +4675 -0
- data/lib/puppet/pops/model/ast_transformer.rb +131 -0
- data/lib/puppet/pops/model/factory.rb +1155 -0
- data/lib/puppet/pops/model/model_label_provider.rb +134 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +445 -0
- data/lib/puppet/pops/model/pn_transformer.rb +385 -0
- data/lib/puppet/pops/model/tree_dumper.rb +59 -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 +51 -0
- data/lib/puppet/pops/parser/epp_support.rb +265 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +162 -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 +777 -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 +357 -0
- data/lib/puppet/pops/parser/parser_support.rb +251 -0
- data/lib/puppet/pops/parser/pn_parser.rb +317 -0
- data/lib/puppet/pops/parser/slurp_support.rb +118 -0
- data/lib/puppet/pops/patterns.rb +60 -0
- data/lib/puppet/pops/pcore.rb +135 -0
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/puppet_stack.rb +61 -0
- data/lib/puppet/pops/resource/param.rb +55 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +294 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
- data/lib/puppet/pops/semantic_error.rb +29 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +180 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +222 -0
- data/lib/puppet/pops/serialization/deserializer.rb +80 -0
- data/lib/puppet/pops/serialization/extension.rb +158 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +224 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/lib/puppet/pops/serialization/json.rb +297 -0
- data/lib/puppet/pops/serialization/json_path.rb +127 -0
- data/lib/puppet/pops/serialization/object.rb +70 -0
- data/lib/puppet/pops/serialization/serializer.rb +140 -0
- data/lib/puppet/pops/serialization/time_factory.rb +67 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +313 -0
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
- data/lib/puppet/pops/serialization.rb +43 -0
- data/lib/puppet/pops/time/timespan.rb +716 -0
- data/lib/puppet/pops/time/timestamp.rb +160 -0
- data/lib/puppet/pops/types/annotatable.rb +36 -0
- data/lib/puppet/pops/types/annotation.rb +71 -0
- data/lib/puppet/pops/types/class_loader.rb +132 -0
- data/lib/puppet/pops/types/implementation_registry.rb +134 -0
- data/lib/puppet/pops/types/iterable.rb +365 -0
- data/lib/puppet/pops/types/p_binary_type.rb +232 -0
- data/lib/puppet/pops/types/p_init_type.rb +238 -0
- data/lib/puppet/pops/types/p_meta_type.rb +94 -0
- data/lib/puppet/pops/types/p_object_type.rb +1117 -0
- data/lib/puppet/pops/types/p_object_type_extension.rb +228 -0
- data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +190 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +155 -0
- data/lib/puppet/pops/types/p_sensitive_type.rb +83 -0
- data/lib/puppet/pops/types/p_timespan_type.rb +192 -0
- data/lib/puppet/pops/types/p_timestamp_type.rb +73 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +387 -0
- data/lib/puppet/pops/types/p_uri_type.rb +190 -0
- data/lib/puppet/pops/types/puppet_object.rb +40 -0
- data/lib/puppet/pops/types/recursion_guard.rb +136 -0
- data/lib/puppet/pops/types/ruby_generator.rb +472 -0
- data/lib/puppet/pops/types/ruby_method.rb +31 -0
- data/lib/puppet/pops/types/string_converter.rb +1134 -0
- data/lib/puppet/pops/types/tree_iterators.rb +254 -0
- data/lib/puppet/pops/types/type_acceptor.rb +25 -0
- data/lib/puppet/pops/types/type_asserter.rb +47 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +27 -0
- data/lib/puppet/pops/types/type_calculator.rb +822 -0
- data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
- data/lib/puppet/pops/types/type_factory.rb +631 -0
- data/lib/puppet/pops/types/type_formatter.rb +801 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1096 -0
- data/lib/puppet/pops/types/type_parser.rb +683 -0
- data/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/lib/puppet/pops/types/type_with_members.rb +43 -0
- data/lib/puppet/pops/types/types.rb +3633 -0
- data/lib/puppet/pops/utils.rb +119 -0
- data/lib/puppet/pops/validation/checker4_0.rb +1148 -0
- data/lib/puppet/pops/validation/tasks_checker.rb +93 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +45 -0
- data/lib/puppet/pops/validation.rb +459 -0
- data/lib/puppet/pops/visitable.rb +6 -0
- data/lib/puppet/pops/visitor.rb +122 -0
- data/lib/puppet/pops.rb +121 -0
- data/lib/puppet/property/boolean.rb +7 -0
- data/lib/puppet/property/ensure.rb +106 -0
- data/lib/puppet/property/keyvalue.rb +158 -0
- data/lib/puppet/property/list.rb +70 -0
- data/lib/puppet/property/ordered_list.rb +29 -0
- data/lib/puppet/property.rb +611 -0
- data/lib/puppet/provider/aix_object.rb +485 -0
- data/lib/puppet/provider/command.rb +25 -0
- data/lib/puppet/provider/confine.rb +6 -0
- data/lib/puppet/provider/exec/posix.rb +60 -0
- data/lib/puppet/provider/exec/shell.rb +25 -0
- data/lib/puppet/provider/exec/windows.rb +55 -0
- data/lib/puppet/provider/exec.rb +105 -0
- data/lib/puppet/provider/file/posix.rb +144 -0
- data/lib/puppet/provider/file/windows.rb +152 -0
- data/lib/puppet/provider/group/aix.rb +99 -0
- data/lib/puppet/provider/group/directoryservice.rb +22 -0
- data/lib/puppet/provider/group/groupadd.rb +174 -0
- data/lib/puppet/provider/group/ldap.rb +48 -0
- data/lib/puppet/provider/group/pw.rb +51 -0
- data/lib/puppet/provider/group/windows_adsi.rb +113 -0
- data/lib/puppet/provider/ldap.rb +141 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +512 -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 +293 -0
- data/lib/puppet/provider/network_device.rb +74 -0
- data/lib/puppet/provider/package/aix.rb +169 -0
- data/lib/puppet/provider/package/appdmg.rb +111 -0
- data/lib/puppet/provider/package/apple.rb +47 -0
- data/lib/puppet/provider/package/apt.rb +262 -0
- data/lib/puppet/provider/package/aptitude.rb +35 -0
- data/lib/puppet/provider/package/aptrpm.rb +83 -0
- data/lib/puppet/provider/package/blastwave.rb +112 -0
- data/lib/puppet/provider/package/dnf.rb +50 -0
- data/lib/puppet/provider/package/dnfmodule.rb +141 -0
- data/lib/puppet/provider/package/dpkg.rb +192 -0
- data/lib/puppet/provider/package/fink.rb +97 -0
- data/lib/puppet/provider/package/freebsd.rb +47 -0
- data/lib/puppet/provider/package/gem.rb +293 -0
- data/lib/puppet/provider/package/hpux.rb +44 -0
- data/lib/puppet/provider/package/macports.rb +110 -0
- data/lib/puppet/provider/package/nim.rb +291 -0
- data/lib/puppet/provider/package/openbsd.rb +260 -0
- data/lib/puppet/provider/package/opkg.rb +82 -0
- data/lib/puppet/provider/package/pacman.rb +273 -0
- data/lib/puppet/provider/package/pip.rb +346 -0
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pip3.rb +17 -0
- data/lib/puppet/provider/package/pkg.rb +295 -0
- data/lib/puppet/provider/package/pkgdmg.rb +153 -0
- data/lib/puppet/provider/package/pkgin.rb +87 -0
- data/lib/puppet/provider/package/pkgng.rb +173 -0
- data/lib/puppet/provider/package/pkgutil.rb +187 -0
- data/lib/puppet/provider/package/portage.rb +310 -0
- data/lib/puppet/provider/package/ports.rb +91 -0
- data/lib/puppet/provider/package/portupgrade.rb +240 -0
- data/lib/puppet/provider/package/puppet_gem.rb +34 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +171 -0
- data/lib/puppet/provider/package/rpm.rb +250 -0
- data/lib/puppet/provider/package/rug.rb +51 -0
- data/lib/puppet/provider/package/sun.rb +133 -0
- data/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/puppet/provider/package/tdnf.rb +28 -0
- data/lib/puppet/provider/package/up2date.rb +40 -0
- data/lib/puppet/provider/package/urpmi.rb +55 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +106 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +70 -0
- data/lib/puppet/provider/package/windows/package.rb +110 -0
- data/lib/puppet/provider/package/windows.rb +130 -0
- data/lib/puppet/provider/package/yum.rb +387 -0
- data/lib/puppet/provider/package/zypper.rb +206 -0
- data/lib/puppet/provider/package.rb +59 -0
- data/lib/puppet/provider/package_targetable.rb +69 -0
- data/lib/puppet/provider/parsedfile.rb +490 -0
- data/lib/puppet/provider/service/base.rb +139 -0
- data/lib/puppet/provider/service/bsd.rb +51 -0
- data/lib/puppet/provider/service/daemontools.rb +193 -0
- data/lib/puppet/provider/service/debian.rb +75 -0
- data/lib/puppet/provider/service/freebsd.rb +143 -0
- data/lib/puppet/provider/service/gentoo.rb +45 -0
- data/lib/puppet/provider/service/init.rb +192 -0
- data/lib/puppet/provider/service/launchd.rb +384 -0
- data/lib/puppet/provider/service/openbsd.rb +100 -0
- data/lib/puppet/provider/service/openrc.rb +71 -0
- data/lib/puppet/provider/service/openwrt.rb +36 -0
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +72 -0
- data/lib/puppet/provider/service/runit.rb +106 -0
- data/lib/puppet/provider/service/service.rb +68 -0
- data/lib/puppet/provider/service/smf.rb +317 -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 +182 -0
- data/lib/puppet/provider/user/aix.rb +361 -0
- data/lib/puppet/provider/user/directoryservice.rb +680 -0
- data/lib/puppet/provider/user/hpux.rb +95 -0
- data/lib/puppet/provider/user/ldap.rb +132 -0
- data/lib/puppet/provider/user/openbsd.rb +77 -0
- data/lib/puppet/provider/user/pw.rb +108 -0
- data/lib/puppet/provider/user/user_role_add.rb +239 -0
- data/lib/puppet/provider/user/useradd.rb +406 -0
- data/lib/puppet/provider/user/windows_adsi.rb +172 -0
- data/lib/puppet/provider.rb +612 -0
- data/lib/puppet/reference/configuration.rb +97 -0
- data/lib/puppet/reference/function.rb +17 -0
- data/lib/puppet/reference/indirection.rb +71 -0
- data/lib/puppet/reference/metaparameter.rb +33 -0
- data/lib/puppet/reference/providers.rb +117 -0
- data/lib/puppet/reference/report.rb +20 -0
- data/lib/puppet/reference/type.rb +109 -0
- data/lib/puppet/relationship.rb +84 -0
- data/lib/puppet/reports/http.rb +44 -0
- data/lib/puppet/reports/log.rb +14 -0
- data/lib/puppet/reports/store.rb +68 -0
- data/lib/puppet/reports.rb +93 -0
- data/lib/puppet/resource/catalog.rb +654 -0
- data/lib/puppet/resource/status.rb +229 -0
- data/lib/puppet/resource/type.rb +425 -0
- data/lib/puppet/resource/type_collection.rb +231 -0
- data/lib/puppet/resource.rb +663 -0
- data/lib/puppet/runtime.rb +65 -0
- data/lib/puppet/scheduler/job.rb +53 -0
- data/lib/puppet/scheduler/scheduler.rb +44 -0
- data/lib/puppet/scheduler/splay_job.rb +32 -0
- data/lib/puppet/scheduler/timer.rb +13 -0
- data/lib/puppet/scheduler.rb +16 -0
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/array_setting.rb +17 -0
- data/lib/puppet/settings/autosign_setting.rb +22 -0
- data/lib/puppet/settings/base_setting.rb +223 -0
- data/lib/puppet/settings/boolean_setting.rb +32 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
- data/lib/puppet/settings/config_file.rb +146 -0
- data/lib/puppet/settings/directory_setting.rb +18 -0
- data/lib/puppet/settings/duration_setting.rb +32 -0
- data/lib/puppet/settings/enum_setting.rb +16 -0
- data/lib/puppet/settings/environment_conf.rb +224 -0
- data/lib/puppet/settings/errors.rb +11 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +40 -0
- data/lib/puppet/settings/file_setting.rb +241 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/settings/ini_file.rb +226 -0
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/path_setting.rb +8 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +43 -0
- data/lib/puppet/settings/server_list_setting.rb +29 -0
- data/lib/puppet/settings/string_setting.rb +9 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
- data/lib/puppet/settings/terminus_setting.rb +14 -0
- data/lib/puppet/settings/ttl_setting.rb +51 -0
- data/lib/puppet/settings/value_translator.rb +14 -0
- data/lib/puppet/settings.rb +1642 -0
- data/lib/puppet/ssl/base.rb +149 -0
- data/lib/puppet/ssl/certificate.rb +96 -0
- data/lib/puppet/ssl/certificate_request.rb +324 -0
- data/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
- data/lib/puppet/ssl/certificate_signer.rb +39 -0
- data/lib/puppet/ssl/digest.rb +20 -0
- data/lib/puppet/ssl/error.rb +26 -0
- data/lib/puppet/ssl/oids.rb +197 -0
- data/lib/puppet/ssl/openssl_loader.rb +24 -0
- data/lib/puppet/ssl/ssl_context.rb +25 -0
- data/lib/puppet/ssl/ssl_provider.rb +350 -0
- data/lib/puppet/ssl/state_machine.rb +474 -0
- data/lib/puppet/ssl/verifier.rb +142 -0
- data/lib/puppet/ssl.rb +23 -0
- data/lib/puppet/syntax_checkers/base64.rb +40 -0
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/json.rb +35 -0
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/syntax_checkers.rb +3 -0
- data/lib/puppet/test/test_helper.rb +265 -0
- data/lib/puppet/thread_local.rb +4 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +220 -0
- data/lib/puppet/transaction/event.rb +168 -0
- data/lib/puppet/transaction/event_manager.rb +179 -0
- data/lib/puppet/transaction/persistence.rb +119 -0
- data/lib/puppet/transaction/report.rb +504 -0
- data/lib/puppet/transaction/resource_harness.rb +323 -0
- data/lib/puppet/transaction.rb +491 -0
- data/lib/puppet/trusted_external.rb +41 -0
- data/lib/puppet/type/component.rb +89 -0
- data/lib/puppet/type/exec.rb +720 -0
- data/lib/puppet/type/file/checksum.rb +50 -0
- data/lib/puppet/type/file/checksum_value.rb +54 -0
- data/lib/puppet/type/file/content.rb +176 -0
- data/lib/puppet/type/file/ctime.rb +21 -0
- data/lib/puppet/type/file/data_sync.rb +98 -0
- data/lib/puppet/type/file/ensure.rb +195 -0
- data/lib/puppet/type/file/group.rb +48 -0
- data/lib/puppet/type/file/mode.rb +189 -0
- data/lib/puppet/type/file/mtime.rb +19 -0
- data/lib/puppet/type/file/owner.rb +51 -0
- data/lib/puppet/type/file/selcontext.rb +142 -0
- data/lib/puppet/type/file/source.rb +379 -0
- data/lib/puppet/type/file/target.rb +88 -0
- data/lib/puppet/type/file/type.rb +20 -0
- data/lib/puppet/type/file.rb +1133 -0
- data/lib/puppet/type/filebucket.rb +121 -0
- data/lib/puppet/type/group.rb +237 -0
- data/lib/puppet/type/notify.rb +47 -0
- data/lib/puppet/type/package.rb +713 -0
- data/lib/puppet/type/resources.rb +187 -0
- data/lib/puppet/type/schedule.rb +441 -0
- data/lib/puppet/type/service.rb +309 -0
- data/lib/puppet/type/stage.rb +27 -0
- data/lib/puppet/type/tidy.rb +376 -0
- data/lib/puppet/type/user.rb +859 -0
- data/lib/puppet/type/whit.rb +34 -0
- data/lib/puppet/type.rb +2676 -0
- data/lib/puppet/util/at_fork/noop.rb +18 -0
- data/lib/puppet/util/at_fork/solaris.rb +160 -0
- data/lib/puppet/util/at_fork.rb +35 -0
- data/lib/puppet/util/autoload.rb +215 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/character_encoding.rb +80 -0
- data/lib/puppet/util/checksums.rb +376 -0
- data/lib/puppet/util/classgen.rb +228 -0
- data/lib/puppet/util/colors.rb +100 -0
- data/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
- data/lib/puppet/util/command_line/trollop.rb +825 -0
- data/lib/puppet/util/command_line.rb +196 -0
- data/lib/puppet/util/constant_inflector.rb +24 -0
- data/lib/puppet/util/diff.rb +81 -0
- data/lib/puppet/util/docs.rb +128 -0
- data/lib/puppet/util/errors.rb +159 -0
- data/lib/puppet/util/execution.rb +424 -0
- data/lib/puppet/util/execution_stub.rb +26 -0
- data/lib/puppet/util/feature.rb +129 -0
- data/lib/puppet/util/file_watcher.rb +28 -0
- data/lib/puppet/util/fileparsing.rb +408 -0
- data/lib/puppet/util/filetype.rb +358 -0
- data/lib/puppet/util/http_proxy.rb +4 -0
- data/lib/puppet/util/inifile.rb +340 -0
- data/lib/puppet/util/instance_loader.rb +66 -0
- data/lib/puppet/util/json.rb +92 -0
- data/lib/puppet/util/json_lockfile.rb +44 -0
- data/lib/puppet/util/ldap/connection.rb +73 -0
- data/lib/puppet/util/ldap/generator.rb +42 -0
- data/lib/puppet/util/ldap/manager.rb +284 -0
- data/lib/puppet/util/ldap.rb +2 -0
- data/lib/puppet/util/libuser.conf +15 -0
- data/lib/puppet/util/libuser.rb +12 -0
- data/lib/puppet/util/limits.rb +12 -0
- data/lib/puppet/util/lockfile.rb +66 -0
- data/lib/puppet/util/log/destination.rb +49 -0
- data/lib/puppet/util/log/destinations.rb +253 -0
- data/lib/puppet/util/log.rb +427 -0
- data/lib/puppet/util/logging.rb +300 -0
- data/lib/puppet/util/metaid.rb +21 -0
- data/lib/puppet/util/metric.rb +65 -0
- data/lib/puppet/util/monkey_patches.rb +122 -0
- data/lib/puppet/util/multi_match.rb +51 -0
- data/lib/puppet/util/network_device/base.rb +23 -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 +5 -0
- data/lib/puppet/util/network_device.rb +17 -0
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/package.rb +40 -0
- data/lib/puppet/util/pidlock.rb +102 -0
- data/lib/puppet/util/platform.rb +70 -0
- data/lib/puppet/util/plist.rb +161 -0
- data/lib/puppet/util/posix.rb +203 -0
- data/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/lib/puppet/util/profiler/logging.rb +48 -0
- data/lib/puppet/util/profiler/object_counts.rb +17 -0
- data/lib/puppet/util/profiler/wall_clock.rb +35 -0
- data/lib/puppet/util/profiler.rb +53 -0
- data/lib/puppet/util/provider_features.rb +179 -0
- data/lib/puppet/util/psych_support.rb +30 -0
- data/lib/puppet/util/rdoc/code_objects.rb +295 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +912 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +259 -0
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
- data/lib/puppet/util/rdoc/parser.rb +12 -0
- data/lib/puppet/util/rdoc.rb +53 -0
- data/lib/puppet/util/reference.rb +119 -0
- data/lib/puppet/util/resource_template.rb +61 -0
- data/lib/puppet/util/retry_action.rb +46 -0
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/rubygems.rb +67 -0
- data/lib/puppet/util/run_mode.rb +122 -0
- data/lib/puppet/util/selinux.rb +297 -0
- data/lib/puppet/util/skip_tags.rb +13 -0
- data/lib/puppet/util/splayer.rb +18 -0
- data/lib/puppet/util/storage.rb +100 -0
- data/lib/puppet/util/suidmanager.rb +166 -0
- data/lib/puppet/util/symbolic_file_mode.rb +156 -0
- data/lib/puppet/util/tag_set.rb +27 -0
- data/lib/puppet/util/tagging.rb +132 -0
- data/lib/puppet/util/terminal.rb +16 -0
- data/lib/puppet/util/user_attr.rb +21 -0
- data/lib/puppet/util/warnings.rb +31 -0
- data/lib/puppet/util/watched_file.rb +37 -0
- data/lib/puppet/util/watcher/change_watcher.rb +33 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
- data/lib/puppet/util/watcher/timer.rb +19 -0
- data/lib/puppet/util/watcher.rb +17 -0
- data/lib/puppet/util/windows/access_control_entry.rb +84 -0
- data/lib/puppet/util/windows/access_control_list.rb +113 -0
- data/lib/puppet/util/windows/adsi.rb +654 -0
- data/lib/puppet/util/windows/com.rb +225 -0
- data/lib/puppet/util/windows/daemon.rb +343 -0
- data/lib/puppet/util/windows/error.rb +84 -0
- data/lib/puppet/util/windows/eventlog.rb +187 -0
- data/lib/puppet/util/windows/file.rb +355 -0
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/principal.rb +201 -0
- data/lib/puppet/util/windows/process.rb +364 -0
- data/lib/puppet/util/windows/registry.rb +441 -0
- data/lib/puppet/util/windows/root_certs.rb +108 -0
- data/lib/puppet/util/windows/security.rb +907 -0
- data/lib/puppet/util/windows/security_descriptor.rb +62 -0
- data/lib/puppet/util/windows/service.rb +696 -0
- data/lib/puppet/util/windows/sid.rb +289 -0
- data/lib/puppet/util/windows/string.rb +15 -0
- data/lib/puppet/util/windows/user.rb +550 -0
- data/lib/puppet/util/windows.rb +51 -0
- data/lib/puppet/util/yaml.rb +65 -0
- data/lib/puppet/util.rb +808 -0
- data/lib/puppet/vendor/require_vendored.rb +4 -0
- data/lib/puppet/vendor.rb +57 -0
- data/lib/puppet/version.rb +95 -0
- data/lib/puppet/x509/cert_provider.rb +369 -0
- data/lib/puppet/x509/pem_store.rb +55 -0
- data/lib/puppet/x509.rb +11 -0
- data/lib/puppet.rb +345 -0
- data/lib/puppet_pal.rb +8 -0
- data/lib/puppet_x.rb +14 -0
- data/locales/config.yaml +29 -0
- data/locales/en/puppet.po +19 -0
- data/locales/puppet.pot +20 -0
- data/man/man5/puppet.conf.5 +2198 -0
- data/man/man8/puppet-agent.8 +203 -0
- data/man/man8/puppet-apply.8 +100 -0
- data/man/man8/puppet-catalog.8 +291 -0
- data/man/man8/puppet-config.8 +151 -0
- data/man/man8/puppet-describe.8 +51 -0
- data/man/man8/puppet-device.8 +119 -0
- data/man/man8/puppet-doc.8 +46 -0
- data/man/man8/puppet-epp.8 +377 -0
- data/man/man8/puppet-facts.8 +234 -0
- data/man/man8/puppet-filebucket.8 +166 -0
- data/man/man8/puppet-generate.8 +84 -0
- data/man/man8/puppet-help.8 +67 -0
- data/man/man8/puppet-lookup.8 +107 -0
- data/man/man8/puppet-module.8 +325 -0
- data/man/man8/puppet-node.8 +163 -0
- data/man/man8/puppet-parser.8 +130 -0
- data/man/man8/puppet-plugin.8 +73 -0
- data/man/man8/puppet-report.8 +127 -0
- data/man/man8/puppet-resource.8 +88 -0
- data/man/man8/puppet-script.8 +70 -0
- data/man/man8/puppet-ssl.8 +63 -0
- data/man/man8/puppet.8 +28 -0
- data/tasks/benchmark.rake +180 -0
- data/tasks/ci.rake +24 -0
- data/tasks/generate_ast_model.rake +90 -0
- data/tasks/generate_cert_fixtures.rake +194 -0
- data/tasks/manpages.rake +67 -0
- data/tasks/memwalk.rake +195 -0
- data/tasks/parallel.rake +410 -0
- data/tasks/parser.rake +22 -0
- data/tasks/yard.rake +59 -0
- metadata +1324 -0
@@ -0,0 +1,713 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# Define the different packaging systems. Each package system is implemented
|
3
|
+
# in a module, which then gets used to individually extend each package object.
|
4
|
+
# This allows packages to exist on the same machine using different packaging
|
5
|
+
# systems.
|
6
|
+
|
7
|
+
require_relative '../../puppet/parameter/package_options'
|
8
|
+
require_relative '../../puppet/parameter/boolean'
|
9
|
+
|
10
|
+
module Puppet
|
11
|
+
Type.newtype(:package) do
|
12
|
+
@doc = "Manage packages. There is a basic dichotomy in package
|
13
|
+
support right now: Some package types (such as yum and apt) can
|
14
|
+
retrieve their own package files, while others (such as rpm and sun)
|
15
|
+
cannot. For those package formats that cannot retrieve their own files,
|
16
|
+
you can use the `source` parameter to point to the correct file.
|
17
|
+
|
18
|
+
Puppet will automatically guess the packaging format that you are
|
19
|
+
using based on the platform you are on, but you can override it
|
20
|
+
using the `provider` parameter; each provider defines what it
|
21
|
+
requires in order to function, and you must meet those requirements
|
22
|
+
to use a given provider.
|
23
|
+
|
24
|
+
You can declare multiple package resources with the same `name` as long
|
25
|
+
as they have unique titles, and specify different providers and commands.
|
26
|
+
|
27
|
+
Note that you must use the _title_ to make a reference to a package
|
28
|
+
resource; `Package[<NAME>]` is not a synonym for `Package[<TITLE>]` like
|
29
|
+
it is for many other resource types.
|
30
|
+
|
31
|
+
**Autorequires:** If Puppet is managing the files specified as a
|
32
|
+
package's `adminfile`, `responsefile`, or `source`, the package
|
33
|
+
resource will autorequire those files."
|
34
|
+
|
35
|
+
feature :reinstallable, "The provider can reinstall packages.",
|
36
|
+
:methods => [:reinstall]
|
37
|
+
feature :installable, "The provider can install packages.",
|
38
|
+
:methods => [:install]
|
39
|
+
feature :uninstallable, "The provider can uninstall packages.",
|
40
|
+
:methods => [:uninstall]
|
41
|
+
feature :upgradeable, "The provider can upgrade to the latest version of a
|
42
|
+
package. This feature is used by specifying `latest` as the
|
43
|
+
desired value for the package.",
|
44
|
+
:methods => [:update, :latest]
|
45
|
+
feature :purgeable, "The provider can purge packages. This generally means
|
46
|
+
that all traces of the package are removed, including
|
47
|
+
existing configuration files. This feature is thus destructive
|
48
|
+
and should be used with the utmost care.",
|
49
|
+
:methods => [:purge]
|
50
|
+
feature :versionable, "The provider is capable of interrogating the
|
51
|
+
package database for installed version(s), and can select
|
52
|
+
which out of a set of available versions of a package to
|
53
|
+
install if asked."
|
54
|
+
feature :version_ranges, "The provider can ensure version ranges."
|
55
|
+
feature :holdable, "The provider is capable of placing packages on hold
|
56
|
+
such that they are not automatically upgraded as a result of
|
57
|
+
other package dependencies unless explicit action is taken by
|
58
|
+
a user or another package.",
|
59
|
+
:methods => [:hold, :unhold]
|
60
|
+
feature :install_only, "The provider accepts options to only install packages never update (kernels, etc.)"
|
61
|
+
feature :install_options, "The provider accepts options to be
|
62
|
+
passed to the installer command."
|
63
|
+
feature :uninstall_options, "The provider accepts options to be
|
64
|
+
passed to the uninstaller command."
|
65
|
+
feature :disableable, "The provider can disable packages. This feature is used by specifying `disabled` as the
|
66
|
+
desired value for the package.",
|
67
|
+
:methods => [:disable]
|
68
|
+
feature :supports_flavors, "The provider accepts flavors, which are specific variants of packages."
|
69
|
+
feature :package_settings, "The provider accepts package_settings to be
|
70
|
+
ensured for the given package. The meaning and format of these settings is
|
71
|
+
provider-specific.",
|
72
|
+
:methods => [:package_settings_insync?, :package_settings, :package_settings=]
|
73
|
+
feature :virtual_packages, "The provider accepts virtual package names for install and uninstall."
|
74
|
+
|
75
|
+
feature :targetable, "The provider accepts a targeted package management command."
|
76
|
+
|
77
|
+
ensurable do
|
78
|
+
desc <<-EOT
|
79
|
+
What state the package should be in. On packaging systems that can
|
80
|
+
retrieve new packages on their own, you can choose which package to
|
81
|
+
retrieve by specifying a version number or `latest` as the ensure
|
82
|
+
value. On packaging systems that manage configuration files separately
|
83
|
+
from "normal" system files, you can uninstall config files by
|
84
|
+
specifying `purged` as the ensure value. This defaults to `installed`.
|
85
|
+
|
86
|
+
Version numbers must match the full version to install, including
|
87
|
+
release if the provider uses a release moniker. For
|
88
|
+
example, to install the bash package from the rpm
|
89
|
+
`bash-4.1.2-29.el6.x86_64.rpm`, use the string `'4.1.2-29.el6'`.
|
90
|
+
|
91
|
+
On supported providers, version ranges can also be ensured. For example,
|
92
|
+
inequalities: `<2.0.0`, or intersections: `>1.0.0 <2.0.0`.
|
93
|
+
EOT
|
94
|
+
|
95
|
+
attr_accessor :latest
|
96
|
+
|
97
|
+
newvalue(:present, :event => :package_installed) do
|
98
|
+
provider.install
|
99
|
+
end
|
100
|
+
|
101
|
+
newvalue(:absent, :event => :package_removed) do
|
102
|
+
provider.uninstall
|
103
|
+
end
|
104
|
+
|
105
|
+
newvalue(:purged, :event => :package_purged, :required_features => :purgeable) do
|
106
|
+
provider.purge
|
107
|
+
end
|
108
|
+
|
109
|
+
newvalue(:disabled, :required_features => :disableable) do
|
110
|
+
provider.disable
|
111
|
+
end
|
112
|
+
|
113
|
+
# Alias the 'present' value.
|
114
|
+
aliasvalue(:installed, :present)
|
115
|
+
|
116
|
+
newvalue(:latest, :required_features => :upgradeable) do
|
117
|
+
# Because yum always exits with a 0 exit code, there's a retrieve
|
118
|
+
# in the "install" method. So, check the current state now,
|
119
|
+
# to compare against later.
|
120
|
+
current = self.retrieve
|
121
|
+
begin
|
122
|
+
provider.update
|
123
|
+
rescue => detail
|
124
|
+
self.fail Puppet::Error, _("Could not update: %{detail}") % { detail: detail }, detail
|
125
|
+
end
|
126
|
+
|
127
|
+
if current == :absent
|
128
|
+
:package_installed
|
129
|
+
else
|
130
|
+
:package_changed
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
newvalue(/./, :required_features => :versionable) do
|
135
|
+
begin
|
136
|
+
provider.install
|
137
|
+
rescue => detail
|
138
|
+
self.fail Puppet::Error, _("Could not update: %{detail}") % { detail: detail }, detail
|
139
|
+
end
|
140
|
+
|
141
|
+
if self.retrieve == :absent
|
142
|
+
:package_installed
|
143
|
+
else
|
144
|
+
:package_changed
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
defaultto :installed
|
149
|
+
|
150
|
+
# Override the parent method, because we've got all kinds of
|
151
|
+
# funky definitions of 'in sync'.
|
152
|
+
def insync?(is)
|
153
|
+
@lateststamp ||= (Time.now.to_i - 1000)
|
154
|
+
# Iterate across all of the should values, and see how they
|
155
|
+
# turn out.
|
156
|
+
|
157
|
+
@should.each { |should|
|
158
|
+
case should
|
159
|
+
when :present
|
160
|
+
return true unless [:absent, :purged, :disabled].include?(is)
|
161
|
+
when :latest
|
162
|
+
# Short-circuit packages that are not present
|
163
|
+
return false if is == :absent || is == :purged
|
164
|
+
|
165
|
+
# Don't run 'latest' more than about every 5 minutes
|
166
|
+
if @latest and ((Time.now.to_i - @lateststamp) / 60) < 5
|
167
|
+
#self.debug "Skipping latest check"
|
168
|
+
else
|
169
|
+
begin
|
170
|
+
@latest = provider.latest
|
171
|
+
@lateststamp = Time.now.to_i
|
172
|
+
rescue => detail
|
173
|
+
error = Puppet::Error.new(_("Could not get latest version: %{detail}") % { detail: detail })
|
174
|
+
error.set_backtrace(detail.backtrace)
|
175
|
+
raise error
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
case
|
180
|
+
when is.is_a?(Array) && is.include?(@latest)
|
181
|
+
return true
|
182
|
+
when is == @latest
|
183
|
+
return true
|
184
|
+
when is == :present
|
185
|
+
# This will only happen on packaging systems
|
186
|
+
# that can't query versions.
|
187
|
+
return true
|
188
|
+
else
|
189
|
+
self.debug "#{@resource.name} #{is.inspect} is installed, latest is #{@latest.inspect}"
|
190
|
+
end
|
191
|
+
|
192
|
+
|
193
|
+
when :absent
|
194
|
+
return true if is == :absent || is == :purged
|
195
|
+
when :purged
|
196
|
+
return true if is == :purged
|
197
|
+
# this handles version number matches and
|
198
|
+
# supports providers that can have multiple versions installed
|
199
|
+
when *Array(is)
|
200
|
+
return true
|
201
|
+
else
|
202
|
+
# We have version numbers, and no match. If the provider has
|
203
|
+
# additional logic, run it here.
|
204
|
+
return provider.insync?(is) if provider.respond_to?(:insync?)
|
205
|
+
end
|
206
|
+
}
|
207
|
+
|
208
|
+
false
|
209
|
+
end
|
210
|
+
|
211
|
+
# This retrieves the current state. LAK: I think this method is unused.
|
212
|
+
def retrieve
|
213
|
+
provider.properties[:ensure]
|
214
|
+
end
|
215
|
+
|
216
|
+
# Provide a bit more information when logging upgrades.
|
217
|
+
def should_to_s(newvalue = @should)
|
218
|
+
if @latest
|
219
|
+
super(@latest)
|
220
|
+
else
|
221
|
+
super(newvalue)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
def change_to_s(currentvalue, newvalue)
|
226
|
+
# Handle transitioning from any previous state to 'purged'
|
227
|
+
return 'purged' if newvalue == :purged
|
228
|
+
|
229
|
+
# Check for transitions from nil/purged/absent to 'created' (any state that is not absent and not purged)
|
230
|
+
return 'created' if (currentvalue.nil? || currentvalue == :absent || currentvalue == :purged) && (newvalue != :absent && newvalue != :purged)
|
231
|
+
|
232
|
+
# The base should handle the normal property transitions
|
233
|
+
super(currentvalue, newvalue)
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
newparam(:name) do
|
238
|
+
desc "The package name. This is the name that the packaging
|
239
|
+
system uses internally, which is sometimes (especially on Solaris)
|
240
|
+
a name that is basically useless to humans. If a package goes by
|
241
|
+
several names, you can use a single title and then set the name
|
242
|
+
conditionally:
|
243
|
+
|
244
|
+
# In the 'openssl' class
|
245
|
+
$ssl = $operatingsystem ? {
|
246
|
+
solaris => SMCossl,
|
247
|
+
default => openssl
|
248
|
+
}
|
249
|
+
|
250
|
+
package { 'openssl':
|
251
|
+
ensure => installed,
|
252
|
+
name => $ssl,
|
253
|
+
}
|
254
|
+
|
255
|
+
...
|
256
|
+
|
257
|
+
$ssh = $operatingsystem ? {
|
258
|
+
solaris => SMCossh,
|
259
|
+
default => openssh
|
260
|
+
}
|
261
|
+
|
262
|
+
package { 'openssh':
|
263
|
+
ensure => installed,
|
264
|
+
name => $ssh,
|
265
|
+
require => Package['openssl'],
|
266
|
+
}
|
267
|
+
|
268
|
+
"
|
269
|
+
isnamevar
|
270
|
+
|
271
|
+
validate do |value|
|
272
|
+
if !value.is_a?(String)
|
273
|
+
raise ArgumentError, _("Name must be a String not %{klass}") % { klass: value.class }
|
274
|
+
end
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
# We call providify here so that we can set provider as a namevar.
|
279
|
+
# Normally this method is called after newtype finishes constructing this
|
280
|
+
# Type class.
|
281
|
+
providify
|
282
|
+
paramclass(:provider).isnamevar
|
283
|
+
|
284
|
+
def self.parameters_to_include
|
285
|
+
[:provider]
|
286
|
+
end
|
287
|
+
|
288
|
+
# Specify a targeted package management command.
|
289
|
+
newparam(:command, :required_features => :targetable) do
|
290
|
+
desc <<-EOT
|
291
|
+
The targeted command to use when managing a package:
|
292
|
+
|
293
|
+
package { 'mysql':
|
294
|
+
provider => gem,
|
295
|
+
}
|
296
|
+
|
297
|
+
package { 'mysql-opt':
|
298
|
+
name => 'mysql',
|
299
|
+
provider => gem,
|
300
|
+
command => '/opt/ruby/bin/gem',
|
301
|
+
}
|
302
|
+
|
303
|
+
Each provider defines a package management command; and uses the first
|
304
|
+
instance of the command found in the PATH.
|
305
|
+
|
306
|
+
Providers supporting the targetable feature allow you to specify the
|
307
|
+
absolute path of the package management command; useful when multiple
|
308
|
+
instances of the command are installed, or the command is not in the PATH.
|
309
|
+
EOT
|
310
|
+
|
311
|
+
isnamevar
|
312
|
+
defaultto :default
|
313
|
+
end
|
314
|
+
|
315
|
+
# We have more than one namevar, so we need title_patterns.
|
316
|
+
# However, we cheat and set the patterns to map to name only
|
317
|
+
# and completely ignore provider (and command, for targetable providers).
|
318
|
+
# So far, the logic that determines uniqueness appears to just
|
319
|
+
# "Do The Right Thing™" when provider (and command) are explicitly set.
|
320
|
+
#
|
321
|
+
# The following resources will be seen as unique by puppet:
|
322
|
+
#
|
323
|
+
# # Uniqueness Key: ['mysql', nil]
|
324
|
+
# package {'mysql': }
|
325
|
+
#
|
326
|
+
# # Uniqueness Key: ['mysql', 'gem', nil]
|
327
|
+
# package {'gem-mysql':
|
328
|
+
# name => 'mysql,
|
329
|
+
# provider => gem,
|
330
|
+
# }
|
331
|
+
#
|
332
|
+
# # Uniqueness Key: ['mysql', 'gem', '/opt/ruby/bin/gem']
|
333
|
+
# package {'gem-mysql-opt':
|
334
|
+
# name => 'mysql,
|
335
|
+
# provider => gem
|
336
|
+
# command => '/opt/ruby/bin/gem',
|
337
|
+
# }
|
338
|
+
#
|
339
|
+
# This does not handle the case where providers like 'yum' and 'rpm' should
|
340
|
+
# clash. Also, declarations that implicitly use the default provider will
|
341
|
+
# clash with those that explicitly use the default.
|
342
|
+
def self.title_patterns
|
343
|
+
# This is the default title pattern for all types, except hard-wired to
|
344
|
+
# set only name.
|
345
|
+
[ [ /(.*)/m, [ [:name] ] ] ]
|
346
|
+
end
|
347
|
+
|
348
|
+
newproperty(:package_settings, :required_features=>:package_settings) do
|
349
|
+
desc "Settings that can change the contents or configuration of a package.
|
350
|
+
|
351
|
+
The formatting and effects of package_settings are provider-specific; any
|
352
|
+
provider that implements them must explain how to use them in its
|
353
|
+
documentation. (Our general expectation is that if a package is
|
354
|
+
installed but its settings are out of sync, the provider should
|
355
|
+
re-install that package with the desired settings.)
|
356
|
+
|
357
|
+
An example of how package_settings could be used is FreeBSD's port build
|
358
|
+
options --- a future version of the provider could accept a hash of options,
|
359
|
+
and would reinstall the port if the installed version lacked the correct
|
360
|
+
settings.
|
361
|
+
|
362
|
+
package { 'www/apache22':
|
363
|
+
package_settings => { 'SUEXEC' => false }
|
364
|
+
}
|
365
|
+
|
366
|
+
Again, check the documentation of your platform's package provider to see
|
367
|
+
the actual usage."
|
368
|
+
|
369
|
+
validate do |value|
|
370
|
+
if provider.respond_to?(:package_settings_validate)
|
371
|
+
provider.package_settings_validate(value)
|
372
|
+
else
|
373
|
+
super(value)
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
munge do |value|
|
378
|
+
if provider.respond_to?(:package_settings_munge)
|
379
|
+
provider.package_settings_munge(value)
|
380
|
+
else
|
381
|
+
super(value)
|
382
|
+
end
|
383
|
+
end
|
384
|
+
|
385
|
+
def insync?(is)
|
386
|
+
provider.package_settings_insync?(should, is)
|
387
|
+
end
|
388
|
+
|
389
|
+
def should_to_s(newvalue)
|
390
|
+
if provider.respond_to?(:package_settings_should_to_s)
|
391
|
+
provider.package_settings_should_to_s(should, newvalue)
|
392
|
+
else
|
393
|
+
super(newvalue)
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
397
|
+
def is_to_s(currentvalue)
|
398
|
+
if provider.respond_to?(:package_settings_is_to_s)
|
399
|
+
provider.package_settings_is_to_s(should, currentvalue)
|
400
|
+
else
|
401
|
+
super(currentvalue)
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
def change_to_s(currentvalue, newvalue)
|
406
|
+
if provider.respond_to?(:package_settings_change_to_s)
|
407
|
+
provider.package_settings_change_to_s(currentvalue, newvalue)
|
408
|
+
else
|
409
|
+
super(currentvalue,newvalue)
|
410
|
+
end
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
414
|
+
newproperty(:flavor, :required_features => :supports_flavors) do
|
415
|
+
desc "OpenBSD and DNF modules support 'flavors', which are
|
416
|
+
further specifications for which type of package you want."
|
417
|
+
validate do |value|
|
418
|
+
if [:disabled, "disabled"].include?(@resource[:ensure]) && value
|
419
|
+
raise ArgumentError, _('Cannot have both `ensure => disabled` and `flavor`')
|
420
|
+
end
|
421
|
+
end
|
422
|
+
end
|
423
|
+
|
424
|
+
newparam(:source) do
|
425
|
+
desc "Where to find the package file. This is mostly used by providers that don't
|
426
|
+
automatically download packages from a central repository. (For example:
|
427
|
+
the `yum` provider ignores this attribute, `apt` provider uses it if present
|
428
|
+
and the `rpm` and `dpkg` providers require it.)
|
429
|
+
|
430
|
+
Different providers accept different values for `source`. Most providers
|
431
|
+
accept paths to local files stored on the target system. Some providers
|
432
|
+
may also accept URLs or network drive paths. Puppet will not
|
433
|
+
automatically retrieve source files for you, and usually just passes the
|
434
|
+
value of `source` to the package installation command.
|
435
|
+
|
436
|
+
You can use a `file` resource if you need to manually copy package files
|
437
|
+
to the target system."
|
438
|
+
|
439
|
+
validate do |value|
|
440
|
+
provider.validate_source(value)
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
444
|
+
newparam(:instance) do
|
445
|
+
desc "A read-only parameter set by the package."
|
446
|
+
end
|
447
|
+
|
448
|
+
newparam(:status) do
|
449
|
+
desc "A read-only parameter set by the package."
|
450
|
+
end
|
451
|
+
|
452
|
+
newparam(:adminfile) do
|
453
|
+
desc "A file containing package defaults for installing packages.
|
454
|
+
|
455
|
+
This attribute is only used on Solaris. Its value should be a path to a
|
456
|
+
local file stored on the target system. Solaris's package tools expect
|
457
|
+
either an absolute file path or a relative path to a file in
|
458
|
+
`/var/sadm/install/admin`.
|
459
|
+
|
460
|
+
The value of `adminfile` will be passed directly to the `pkgadd` or
|
461
|
+
`pkgrm` command with the `-a <ADMINFILE>` option."
|
462
|
+
end
|
463
|
+
|
464
|
+
newparam(:responsefile) do
|
465
|
+
desc "A file containing any necessary answers to questions asked by
|
466
|
+
the package. This is currently used on Solaris and Debian. The
|
467
|
+
value will be validated according to system rules, but it should
|
468
|
+
generally be a fully qualified path."
|
469
|
+
end
|
470
|
+
|
471
|
+
newparam(:configfiles) do
|
472
|
+
desc "Whether to keep or replace modified config files when installing or
|
473
|
+
upgrading a package. This only affects the `apt` and `dpkg` providers."
|
474
|
+
|
475
|
+
defaultto :keep
|
476
|
+
|
477
|
+
newvalues(:keep, :replace)
|
478
|
+
end
|
479
|
+
|
480
|
+
newparam(:category) do
|
481
|
+
desc "A read-only parameter set by the package."
|
482
|
+
end
|
483
|
+
newparam(:platform) do
|
484
|
+
desc "A read-only parameter set by the package."
|
485
|
+
end
|
486
|
+
newparam(:root) do
|
487
|
+
desc "A read-only parameter set by the package."
|
488
|
+
end
|
489
|
+
newparam(:vendor) do
|
490
|
+
desc "A read-only parameter set by the package."
|
491
|
+
end
|
492
|
+
newparam(:description) do
|
493
|
+
desc "A read-only parameter set by the package."
|
494
|
+
end
|
495
|
+
|
496
|
+
newparam(:allowcdrom) do
|
497
|
+
desc "Tells apt to allow cdrom sources in the sources.list file.
|
498
|
+
Normally apt will bail if you try this."
|
499
|
+
|
500
|
+
newvalues(:true, :false)
|
501
|
+
end
|
502
|
+
|
503
|
+
newparam(:enable_only, :boolean => false, :parent => Puppet::Parameter::Boolean) do
|
504
|
+
desc <<-EOT
|
505
|
+
Tells `dnf module` to only enable a specific module, instead
|
506
|
+
of installing its default profile.
|
507
|
+
|
508
|
+
Modules with no default profile will be enabled automatically
|
509
|
+
without the use of this parameter.
|
510
|
+
|
511
|
+
Conflicts with the `flavor` property, which selects a profile
|
512
|
+
to install.
|
513
|
+
EOT
|
514
|
+
defaultto false
|
515
|
+
|
516
|
+
validate do |value|
|
517
|
+
if [true, :true, "true"].include?(value) && @resource[:flavor]
|
518
|
+
raise ArgumentError, _('Cannot have both `enable_only => true` and `flavor`')
|
519
|
+
end
|
520
|
+
if [:disabled, "disabled"].include?(@resource[:ensure])
|
521
|
+
raise ArgumentError, _('Cannot have both `ensure => disabled` and `enable_only => true`')
|
522
|
+
end
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
526
|
+
newparam(:install_only, :boolean => false, :parent => Puppet::Parameter::Boolean, :required_features => :install_only) do
|
527
|
+
desc <<-EOT
|
528
|
+
It should be set for packages that should only ever be installed,
|
529
|
+
never updated. Kernels in particular fall into this category.
|
530
|
+
EOT
|
531
|
+
defaultto false
|
532
|
+
end
|
533
|
+
|
534
|
+
newparam(:install_options, :parent => Puppet::Parameter::PackageOptions, :required_features => :install_options) do
|
535
|
+
desc <<-EOT
|
536
|
+
An array of additional options to pass when installing a package. These
|
537
|
+
options are package-specific, and should be documented by the software
|
538
|
+
vendor. One commonly implemented option is `INSTALLDIR`:
|
539
|
+
|
540
|
+
package { 'mysql':
|
541
|
+
ensure => installed,
|
542
|
+
source => 'N:/packages/mysql-5.5.16-winx64.msi',
|
543
|
+
install_options => [ '/S', { 'INSTALLDIR' => 'C:\\mysql-5.5' } ],
|
544
|
+
}
|
545
|
+
|
546
|
+
Each option in the array can either be a string or a hash, where each
|
547
|
+
key and value pair are interpreted in a provider specific way. Each
|
548
|
+
option will automatically be quoted when passed to the install command.
|
549
|
+
|
550
|
+
With Windows packages, note that file paths in an install option must
|
551
|
+
use backslashes. (Since install options are passed directly to the
|
552
|
+
installation command, forward slashes won't be automatically converted
|
553
|
+
like they are in `file` resources.) Note also that backslashes in
|
554
|
+
double-quoted strings _must_ be escaped and backslashes in single-quoted
|
555
|
+
strings _can_ be escaped.
|
556
|
+
EOT
|
557
|
+
end
|
558
|
+
|
559
|
+
newparam(:uninstall_options, :parent => Puppet::Parameter::PackageOptions, :required_features => :uninstall_options) do
|
560
|
+
desc <<-EOT
|
561
|
+
An array of additional options to pass when uninstalling a package. These
|
562
|
+
options are package-specific, and should be documented by the software
|
563
|
+
vendor. For example:
|
564
|
+
|
565
|
+
package { 'VMware Tools':
|
566
|
+
ensure => absent,
|
567
|
+
uninstall_options => [ { 'REMOVE' => 'Sync,VSS' } ],
|
568
|
+
}
|
569
|
+
|
570
|
+
Each option in the array can either be a string or a hash, where each
|
571
|
+
key and value pair are interpreted in a provider specific way. Each
|
572
|
+
option will automatically be quoted when passed to the uninstall
|
573
|
+
command.
|
574
|
+
|
575
|
+
On Windows, this is the **only** place in Puppet where backslash
|
576
|
+
separators should be used. Note that backslashes in double-quoted
|
577
|
+
strings _must_ be double-escaped and backslashes in single-quoted
|
578
|
+
strings _may_ be double-escaped.
|
579
|
+
EOT
|
580
|
+
end
|
581
|
+
|
582
|
+
newparam(:allow_virtual, :boolean => true, :parent => Puppet::Parameter::Boolean, :required_features => :virtual_packages) do
|
583
|
+
desc 'Specifies if virtual package names are allowed for install and uninstall.'
|
584
|
+
|
585
|
+
defaultto do
|
586
|
+
provider_class = provider.class
|
587
|
+
if provider_class.respond_to?(:defaultto_allow_virtual)
|
588
|
+
provider_class.defaultto_allow_virtual
|
589
|
+
else
|
590
|
+
true
|
591
|
+
end
|
592
|
+
end
|
593
|
+
end
|
594
|
+
|
595
|
+
autorequire(:file) do
|
596
|
+
autos = []
|
597
|
+
[:responsefile, :adminfile].each { |param|
|
598
|
+
val = self[param]
|
599
|
+
if val
|
600
|
+
autos << val
|
601
|
+
end
|
602
|
+
}
|
603
|
+
|
604
|
+
source = self[:source]
|
605
|
+
if source && absolute_path?(source)
|
606
|
+
autos << source
|
607
|
+
end
|
608
|
+
autos
|
609
|
+
end
|
610
|
+
|
611
|
+
# This only exists for testing.
|
612
|
+
def clear
|
613
|
+
obj = @parameters[:ensure]
|
614
|
+
if obj
|
615
|
+
obj.latest = nil
|
616
|
+
end
|
617
|
+
end
|
618
|
+
|
619
|
+
# The 'query' method returns a hash of info if the package
|
620
|
+
# exists and returns nil if it does not.
|
621
|
+
def exists?
|
622
|
+
@provider.get(:ensure) != :absent
|
623
|
+
end
|
624
|
+
|
625
|
+
def present?(current_values)
|
626
|
+
super && current_values[:ensure] != :purged
|
627
|
+
end
|
628
|
+
|
629
|
+
# This parameter exists to ensure backwards compatibility is preserved.
|
630
|
+
# See https://github.com/puppetlabs/puppet/pull/2614 for discussion.
|
631
|
+
# If/when a metaparameter for controlling how arbitrary resources respond
|
632
|
+
# to refreshing is created, that will supersede this, and this will be
|
633
|
+
# deprecated.
|
634
|
+
newparam(:reinstall_on_refresh) do
|
635
|
+
desc "Whether this resource should respond to refresh events (via `subscribe`,
|
636
|
+
`notify`, or the `~>` arrow) by reinstalling the package. Only works for
|
637
|
+
providers that support the `reinstallable` feature.
|
638
|
+
|
639
|
+
This is useful for source-based distributions, where you may want to
|
640
|
+
recompile a package if the build options change.
|
641
|
+
|
642
|
+
If you use this, be careful of notifying classes when you want to restart
|
643
|
+
services. If the class also contains a refreshable package, doing so could
|
644
|
+
cause unnecessary re-installs."
|
645
|
+
newvalues(:true, :false)
|
646
|
+
|
647
|
+
defaultto :false
|
648
|
+
end
|
649
|
+
|
650
|
+
# When a refresh event is triggered, calls reinstall on providers
|
651
|
+
# that support the reinstall_on_refresh parameter.
|
652
|
+
def refresh
|
653
|
+
if provider.reinstallable? &&
|
654
|
+
@parameters[:reinstall_on_refresh].value == :true &&
|
655
|
+
@parameters[:ensure].value != :purged &&
|
656
|
+
@parameters[:ensure].value != :absent
|
657
|
+
|
658
|
+
provider.reinstall
|
659
|
+
end
|
660
|
+
end
|
661
|
+
|
662
|
+
newproperty(:mark, :required_features => :holdable) do
|
663
|
+
mark_doc='Valid values are: hold/none'
|
664
|
+
desc <<-EOT
|
665
|
+
Set to hold to tell Debian apt/Solaris pkg to hold the package version
|
666
|
+
|
667
|
+
#{mark_doc}
|
668
|
+
Default is "none". Mark can be specified with or without `ensure`,
|
669
|
+
if `ensure` is missing will default to "present".
|
670
|
+
|
671
|
+
Mark cannot be specified together with "purged", or "absent"
|
672
|
+
values for `ensure`.
|
673
|
+
EOT
|
674
|
+
newvalues(:hold, :none)
|
675
|
+
munge do |value|
|
676
|
+
case value
|
677
|
+
when "hold", :hold
|
678
|
+
:hold
|
679
|
+
when "none", :none
|
680
|
+
:none
|
681
|
+
else
|
682
|
+
raise ArgumentError, _('Invalid hold value %{value}. %{doc}') % { value: value.inspect, doc: mark_doc}
|
683
|
+
end
|
684
|
+
end
|
685
|
+
|
686
|
+
def insync?(is)
|
687
|
+
@should[0] == is
|
688
|
+
end
|
689
|
+
|
690
|
+
def should
|
691
|
+
@should[0] if @should && @should.is_a?(Array) && @should.size == 1
|
692
|
+
end
|
693
|
+
|
694
|
+
def retrieve
|
695
|
+
provider.properties[:mark]
|
696
|
+
end
|
697
|
+
|
698
|
+
def sync
|
699
|
+
if @should[0] == :hold
|
700
|
+
provider.hold
|
701
|
+
else
|
702
|
+
provider.unhold
|
703
|
+
end
|
704
|
+
end
|
705
|
+
end
|
706
|
+
|
707
|
+
validate do
|
708
|
+
if @parameters[:mark] && [:absent, :purged].include?(@parameters[:ensure].should)
|
709
|
+
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged"]')
|
710
|
+
end
|
711
|
+
end
|
712
|
+
end
|
713
|
+
end
|