puppet 8.5.1-universal-darwin → 8.7.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +4 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +5 -5
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +32 -11
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/scheduler/splay_job.rb +9 -0
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +51 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +60 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +18 -19
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/com.rb +2 -2
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/locales/puppet.pot +604 -600
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -60,9 +60,9 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
60
60
|
# returns all providers for all existing services in @defpath
|
61
61
|
# ie enabled or not
|
62
62
|
def self.instances
|
63
|
-
path =
|
63
|
+
path = defpath
|
64
64
|
unless path
|
65
|
-
Puppet.info("#{
|
65
|
+
Puppet.info("#{name} is unsuitable because service directory is nil")
|
66
66
|
return
|
67
67
|
end
|
68
68
|
unless FileTest.directory?(path)
|
@@ -82,7 +82,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
82
82
|
|
83
83
|
# returns the daemon dir on this node
|
84
84
|
def self.daemondir
|
85
|
-
|
85
|
+
defpath
|
86
86
|
end
|
87
87
|
|
88
88
|
# find the service dir on this node
|
@@ -102,7 +102,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
102
102
|
# returns the full path of this service when enabled
|
103
103
|
# (ie in the service directory)
|
104
104
|
def service
|
105
|
-
File.join(
|
105
|
+
File.join(servicedir, resource[:name])
|
106
106
|
end
|
107
107
|
|
108
108
|
# returns the full path to the current daemon directory
|
@@ -110,14 +110,14 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
110
110
|
# definition
|
111
111
|
def daemon
|
112
112
|
path = resource[:path]
|
113
|
-
raise Puppet::Error
|
113
|
+
raise Puppet::Error, "#{self.class.name} must specify a path for daemon directory" unless path
|
114
114
|
|
115
115
|
File.join(path, resource[:name])
|
116
116
|
end
|
117
117
|
|
118
118
|
def status
|
119
119
|
begin
|
120
|
-
output = svstat
|
120
|
+
output = svstat service
|
121
121
|
if output =~ /:\s+up \(/
|
122
122
|
return :running
|
123
123
|
end
|
@@ -131,66 +131,66 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
|
|
131
131
|
if resource[:manifest]
|
132
132
|
Puppet.notice "Configuring #{resource[:name]}"
|
133
133
|
command = [resource[:manifest], resource[:name]]
|
134
|
-
system(
|
134
|
+
system(command.to_s)
|
135
135
|
end
|
136
136
|
rescue Puppet::ExecutionFailure => detail
|
137
|
-
raise Puppet::Error.new("Cannot config #{
|
137
|
+
raise Puppet::Error.new("Cannot config #{service} to enable it: #{detail}", detail)
|
138
138
|
end
|
139
139
|
|
140
140
|
def enabled?
|
141
|
-
case
|
141
|
+
case status
|
142
142
|
when :running
|
143
143
|
# obviously if the daemon is running then it is enabled
|
144
|
-
|
144
|
+
:true
|
145
145
|
else
|
146
146
|
# the service is enabled if it is linked
|
147
|
-
|
147
|
+
Puppet::FileSystem.symlink?(service) ? :true : :false
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
151
|
def enable
|
152
|
-
|
152
|
+
unless FileTest.directory?(daemon)
|
153
153
|
Puppet.notice "No daemon dir, calling setupservice for #{resource[:name]}"
|
154
|
-
|
154
|
+
setupservice
|
155
155
|
end
|
156
|
-
if
|
157
|
-
|
158
|
-
Puppet.notice "Enabling #{
|
159
|
-
Puppet::FileSystem.symlink(
|
156
|
+
if daemon
|
157
|
+
unless Puppet::FileSystem.symlink?(service)
|
158
|
+
Puppet.notice "Enabling #{service}: linking #{daemon} -> #{service}"
|
159
|
+
Puppet::FileSystem.symlink(daemon, service)
|
160
160
|
end
|
161
161
|
end
|
162
|
-
rescue Puppet::ExecutionFailure
|
163
|
-
raise Puppet::Error.new("No daemon directory found for #{
|
162
|
+
rescue Puppet::ExecutionFailure => e
|
163
|
+
raise Puppet::Error.new("No daemon directory found for #{service}", e)
|
164
164
|
end
|
165
165
|
|
166
166
|
def disable
|
167
167
|
begin
|
168
|
-
|
168
|
+
unless FileTest.directory?(daemon)
|
169
169
|
Puppet.notice "No daemon dir, calling setupservice for #{resource[:name]}"
|
170
|
-
|
170
|
+
setupservice
|
171
171
|
end
|
172
|
-
if
|
173
|
-
if Puppet::FileSystem.symlink?(
|
174
|
-
Puppet.notice "Disabling #{
|
175
|
-
Puppet::FileSystem.unlink(
|
172
|
+
if daemon
|
173
|
+
if Puppet::FileSystem.symlink?(service)
|
174
|
+
Puppet.notice "Disabling #{service}: removing link #{daemon} -> #{service}"
|
175
|
+
Puppet::FileSystem.unlink(service)
|
176
176
|
end
|
177
177
|
end
|
178
|
-
rescue Puppet::ExecutionFailure
|
179
|
-
raise Puppet::Error.new("No daemon directory found for #{
|
178
|
+
rescue Puppet::ExecutionFailure => e
|
179
|
+
raise Puppet::Error.new("No daemon directory found for #{service}", e)
|
180
180
|
end
|
181
|
-
|
181
|
+
stop
|
182
182
|
end
|
183
183
|
|
184
184
|
def restart
|
185
|
-
svc "-t",
|
185
|
+
svc "-t", service
|
186
186
|
end
|
187
187
|
|
188
188
|
def start
|
189
189
|
enable unless enabled? == :true
|
190
|
-
svc "-u",
|
190
|
+
svc "-u", service
|
191
191
|
end
|
192
192
|
|
193
193
|
def stop
|
194
|
-
svc "-d",
|
194
|
+
svc "-d", service
|
195
195
|
end
|
196
196
|
end
|
@@ -21,8 +21,8 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
|
|
21
21
|
|
22
22
|
confine :false => Puppet::FileSystem.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd')
|
23
23
|
|
24
|
-
defaultfor 'os.name' => :cumuluslinux, 'os.release.major' => [
|
25
|
-
defaultfor 'os.name' => :debian, 'os.release.major' => [
|
24
|
+
defaultfor 'os.name' => :cumuluslinux, 'os.release.major' => %w[1 2]
|
25
|
+
defaultfor 'os.name' => :debian, 'os.release.major' => %w[5 6 7]
|
26
26
|
defaultfor 'os.name' => :devuan
|
27
27
|
|
28
28
|
# Remove the symlinks
|
@@ -42,7 +42,7 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
|
|
42
42
|
# 106 is the exit status when the policy layer supplies a fallback action
|
43
43
|
# See x-man-page://invoke-rc.d
|
44
44
|
if [104, 106].include?(status.exitstatus)
|
45
|
-
|
45
|
+
:true
|
46
46
|
elsif [101, 105].include?(status.exitstatus)
|
47
47
|
# 101 is action not allowed, which means we have to do the check manually.
|
48
48
|
# 105 is unknown, which generally means the initscript does not support query
|
@@ -50,12 +50,12 @@ Puppet::Type.type(:service).provide :debian, :parent => :init do
|
|
50
50
|
# For those that do not, perform the checks manually
|
51
51
|
# http://www.debian.org/doc/debian-policy/ch-opersys.html
|
52
52
|
if get_start_link_count >= 4
|
53
|
-
|
53
|
+
:true
|
54
54
|
else
|
55
|
-
|
55
|
+
:false
|
56
56
|
end
|
57
57
|
else
|
58
|
-
|
58
|
+
:false
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -21,7 +21,7 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
21
21
|
# Executing an init script with the 'rcvar' argument returns
|
22
22
|
# the service name, rcvar name and whether it's enabled/disabled
|
23
23
|
def rcvar
|
24
|
-
rcvar = execute([
|
24
|
+
rcvar = execute([initscript, :rcvar], :failonfail => true, :combine => false, :squelch => false)
|
25
25
|
rcvar = rcvar.split("\n")
|
26
26
|
rcvar.delete_if { |str| str =~ /^#\s*$/ }
|
27
27
|
rcvar[1] = rcvar[1].gsub(/^\$/, '')
|
@@ -30,11 +30,11 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
30
30
|
|
31
31
|
# Extract value name from service or rcvar
|
32
32
|
def extract_value_name(name, rc_index, regex, regex_index)
|
33
|
-
value_name =
|
34
|
-
|
33
|
+
value_name = rcvar[rc_index]
|
34
|
+
error("No #{name} name found in rcvar") if value_name.nil?
|
35
35
|
value_name = value_name.gsub!(regex, regex_index)
|
36
|
-
|
37
|
-
|
36
|
+
error("#{name} name is empty") if value_name.nil?
|
37
|
+
debug("#{name} name is #{value_name}")
|
38
38
|
value_name
|
39
39
|
end
|
40
40
|
|
@@ -50,20 +50,20 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
50
50
|
|
51
51
|
# Extract rcvar value
|
52
52
|
def rcvar_value
|
53
|
-
value =
|
54
|
-
|
53
|
+
value = rcvar[1]
|
54
|
+
error("No rcvar value found in rcvar") if value.nil?
|
55
55
|
value = value.gsub!(/(.*)(_enable)?="?(\w+)"?/, '\3')
|
56
|
-
|
57
|
-
|
56
|
+
error("rcvar value is empty") if value.nil?
|
57
|
+
debug("rcvar value is #{value}")
|
58
58
|
value
|
59
59
|
end
|
60
60
|
|
61
61
|
# Edit rc files and set the service to yes/no
|
62
62
|
def rc_edit(yesno)
|
63
|
-
service =
|
64
|
-
rcvar =
|
65
|
-
|
66
|
-
|
63
|
+
service = service_name
|
64
|
+
rcvar = rcvar_name
|
65
|
+
debug("Editing rc files: setting #{rcvar} to #{yesno} for #{service}")
|
66
|
+
rc_add(service, rcvar, yesno) unless rc_replace(service, rcvar, yesno)
|
67
67
|
end
|
68
68
|
|
69
69
|
# Try to find an existing setting in the rc files
|
@@ -72,14 +72,14 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
72
72
|
success = false
|
73
73
|
# Replace in all files, not just in the first found with a match
|
74
74
|
[rcconf, rcconf_local, rcconf_dir + "/#{service}"].each do |filename|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
75
|
+
next unless Puppet::FileSystem.exist?(filename)
|
76
|
+
|
77
|
+
s = File.read(filename)
|
78
|
+
next unless s.gsub!(/^(#{rcvar}(_enable)?)="?(YES|NO)"?/, "\\1=\"#{yesno}\"")
|
79
|
+
|
80
|
+
Puppet::FileSystem.replace_file(filename) { |f| f << s }
|
81
|
+
debug("Replaced in #{filename}")
|
82
|
+
success = true
|
83
83
|
end
|
84
84
|
success
|
85
85
|
end
|
@@ -89,53 +89,53 @@ Puppet::Type.type(:service).provide :freebsd, :parent => :init do
|
|
89
89
|
append = "\# Added by Puppet\n#{rcvar}_enable=\"#{yesno}\"\n"
|
90
90
|
# First, try the one-file-per-service style
|
91
91
|
if Puppet::FileSystem.exist?(rcconf_dir)
|
92
|
-
File.open(rcconf_dir + "/#{service}", File::WRONLY | File::APPEND | File::CREAT,
|
92
|
+
File.open(rcconf_dir + "/#{service}", File::WRONLY | File::APPEND | File::CREAT, 0o644) { |f|
|
93
93
|
f << append
|
94
|
-
|
94
|
+
debug("Appended to #{f.path}")
|
95
95
|
}
|
96
96
|
elsif Puppet::FileSystem.exist?(rcconf_local)
|
97
97
|
# Else, check the local rc file first, but don't create it
|
98
98
|
File.open(rcconf_local, File::WRONLY | File::APPEND) { |f|
|
99
99
|
f << append
|
100
|
-
|
100
|
+
debug("Appended to #{f.path}")
|
101
101
|
}
|
102
102
|
else
|
103
103
|
# At last use the standard rc.conf file
|
104
|
-
File.open(rcconf, File::WRONLY | File::APPEND | File::CREAT,
|
104
|
+
File.open(rcconf, File::WRONLY | File::APPEND | File::CREAT, 0o644) { |f|
|
105
105
|
f << append
|
106
|
-
|
106
|
+
debug("Appended to #{f.path}")
|
107
107
|
}
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
111
|
def enabled?
|
112
|
-
if /YES$/ =~
|
113
|
-
|
112
|
+
if /YES$/ =~ rcvar_value
|
113
|
+
debug("Is enabled")
|
114
114
|
return :true
|
115
115
|
end
|
116
|
-
|
116
|
+
debug("Is disabled")
|
117
117
|
:false
|
118
118
|
end
|
119
119
|
|
120
120
|
def enable
|
121
|
-
|
122
|
-
|
121
|
+
debug("Enabling")
|
122
|
+
rc_edit("YES")
|
123
123
|
end
|
124
124
|
|
125
125
|
def disable
|
126
|
-
|
127
|
-
|
126
|
+
debug("Disabling")
|
127
|
+
rc_edit("NO")
|
128
128
|
end
|
129
129
|
|
130
130
|
def startcmd
|
131
|
-
[
|
131
|
+
[initscript, :onestart]
|
132
132
|
end
|
133
133
|
|
134
134
|
def stopcmd
|
135
|
-
[
|
135
|
+
[initscript, :onestop]
|
136
136
|
end
|
137
137
|
|
138
138
|
def statuscmd
|
139
|
-
[
|
139
|
+
[initscript, :onestatus]
|
140
140
|
end
|
141
141
|
end
|
@@ -16,8 +16,8 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
16
16
|
|
17
17
|
def disable
|
18
18
|
output = update :del, @resource[:name], :default
|
19
|
-
rescue Puppet::ExecutionFailure
|
20
|
-
raise Puppet::Error, "Could not disable #{
|
19
|
+
rescue Puppet::ExecutionFailure => e
|
20
|
+
raise Puppet::Error, "Could not disable #{name}: #{output}", e.backtrace
|
21
21
|
end
|
22
22
|
|
23
23
|
def enabled?
|
@@ -33,15 +33,15 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
|
33
33
|
|
34
34
|
# If it's enabled then it will print output showing service | runlevel
|
35
35
|
if output =~ /^\s*#{@resource[:name]}\s*\|\s*(boot|default)/
|
36
|
-
|
36
|
+
:true
|
37
37
|
else
|
38
|
-
|
38
|
+
:false
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
def enable
|
43
43
|
output = update :add, @resource[:name], :default
|
44
|
-
rescue Puppet::ExecutionFailure
|
45
|
-
raise Puppet::Error, "Could not enable #{
|
44
|
+
rescue Puppet::ExecutionFailure => e
|
45
|
+
raise Puppet::Error, "Could not enable #{name}: #{output}", e.backtrace
|
46
46
|
end
|
47
47
|
end
|
@@ -21,7 +21,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Debian and Ubuntu should use the Debian provider.
|
24
|
-
confine :false => [
|
24
|
+
confine :false => %w[Debian Ubuntu].include?(Puppet.runtime[:facter].value('os.name'))
|
25
25
|
# RedHat systems should use the RedHat provider.
|
26
26
|
confine :false => Puppet.runtime[:facter].value('os.family') == 'RedHat'
|
27
27
|
|
@@ -35,9 +35,9 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
35
35
|
def self.excludes
|
36
36
|
excludes = []
|
37
37
|
# these exclude list was found with grep -L '\/sbin\/runscript' /etc/init.d/* on gentoo
|
38
|
-
excludes += %w
|
38
|
+
excludes += %w[functions.sh reboot.sh shutdown.sh]
|
39
39
|
# this exclude list is all from /sbin/service (5.x), but I did not exclude kudzu
|
40
|
-
excludes += %w
|
40
|
+
excludes += %w[functions halt killall single linuxconf reboot boot]
|
41
41
|
# 'wait-for-state' and 'portmap-wait' are excluded from instances here
|
42
42
|
# because they take parameters that have unclear meaning. It looks like
|
43
43
|
# 'wait-for-state' is a generic waiter mainly used internally for other
|
@@ -49,37 +49,37 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
49
49
|
# eventually explain how to use the wait-for-state service or perhaps why
|
50
50
|
# it should remain excluded. When that bug is addressed this should be
|
51
51
|
# reexamined.
|
52
|
-
excludes += %w
|
52
|
+
excludes += %w[wait-for-state portmap-wait]
|
53
53
|
# these excludes were found with grep -r -L start /etc/init.d
|
54
|
-
excludes += %w
|
54
|
+
excludes += %w[rcS module-init-tools]
|
55
55
|
# Prevent puppet failing on unsafe scripts from Yocto Linux
|
56
56
|
if Puppet.runtime[:facter].value('os.family') == "cisco-wrlinux"
|
57
|
-
excludes += %w
|
57
|
+
excludes += %w[banner.sh bootmisc.sh checkroot.sh devpts.sh dmesg.sh
|
58
58
|
hostname.sh mountall.sh mountnfs.sh populate-volatile.sh
|
59
59
|
rmnologin.sh save-rtc.sh sendsigs sysfs.sh umountfs
|
60
|
-
umountnfs.sh
|
60
|
+
umountnfs.sh]
|
61
61
|
end
|
62
62
|
# Prevent puppet failing to get status of the new service introduced
|
63
63
|
# by the fix for this (bug https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/982889)
|
64
64
|
# due to puppet's inability to deal with upstart services with instances.
|
65
|
-
excludes += %w
|
65
|
+
excludes += %w[plymouth-ready]
|
66
66
|
# Prevent puppet failing to get status of these services, which need parameters
|
67
67
|
# passed in (see https://bugs.launchpad.net/ubuntu/+source/puppet/+bug/1276766).
|
68
|
-
excludes += %w
|
68
|
+
excludes += %w[idmapd-mounting startpar-bridge]
|
69
69
|
# Prevent puppet failing to get status of these services, additional upstart
|
70
70
|
# service with instances
|
71
|
-
excludes += %w
|
72
|
-
excludes += %w
|
73
|
-
excludes += %w
|
71
|
+
excludes += %w[cryptdisks-udev]
|
72
|
+
excludes += %w[statd-mounting]
|
73
|
+
excludes += %w[gssd-mounting]
|
74
74
|
excludes
|
75
75
|
end
|
76
76
|
|
77
77
|
# List all services of this type.
|
78
78
|
def self.instances
|
79
|
-
get_services(
|
79
|
+
get_services(defpath)
|
80
80
|
end
|
81
81
|
|
82
|
-
def self.get_services(defpath, exclude =
|
82
|
+
def self.get_services(defpath, exclude = excludes)
|
83
83
|
defpath = [defpath] unless defpath.is_a? Array
|
84
84
|
instances = []
|
85
85
|
defpath.each do |path|
|
@@ -118,7 +118,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
118
118
|
|
119
119
|
# Where is our init script?
|
120
120
|
def initscript
|
121
|
-
@initscript ||=
|
121
|
+
@initscript ||= search(@resource[:name])
|
122
122
|
end
|
123
123
|
|
124
124
|
def paths
|
@@ -127,9 +127,9 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
127
127
|
true
|
128
128
|
else
|
129
129
|
if Puppet::FileSystem.exist?(path)
|
130
|
-
|
130
|
+
debug "Search path #{path} is not a directory"
|
131
131
|
else
|
132
|
-
|
132
|
+
debug "Search path #{path} does not exist"
|
133
133
|
end
|
134
134
|
false
|
135
135
|
end
|
@@ -142,7 +142,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
142
142
|
if Puppet::FileSystem.exist? fqname
|
143
143
|
return fqname
|
144
144
|
else
|
145
|
-
|
145
|
+
debug("Could not find #{name} in #{path}")
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
@@ -151,7 +151,7 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
|
|
151
151
|
if Puppet::FileSystem.exist? fqname_sh
|
152
152
|
return fqname_sh
|
153
153
|
else
|
154
|
-
|
154
|
+
debug("Could not find #{name}.sh in #{path}")
|
155
155
|
end
|
156
156
|
end
|
157
157
|
raise Puppet::Error, "Could not find init script for '#{name}'"
|
@@ -84,7 +84,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
84
84
|
#
|
85
85
|
# @api private
|
86
86
|
def self.launchd_overrides
|
87
|
-
if
|
87
|
+
if get_os_version < 14
|
88
88
|
"/var/db/launchd.db/com.apple.launchd/overrides.plist"
|
89
89
|
else
|
90
90
|
"/var/db/com.apple.xpc.launchd/disabled.plist"
|
@@ -107,8 +107,8 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
107
107
|
# containing the name, provider, path, and status of each service on the
|
108
108
|
# system.
|
109
109
|
def self.instances
|
110
|
-
jobs =
|
111
|
-
@job_list ||=
|
110
|
+
jobs = jobsearch
|
111
|
+
@job_list ||= job_list
|
112
112
|
jobs.keys.collect do |job|
|
113
113
|
job_status = @job_list.has_key?(job) ? :running : :stopped
|
114
114
|
new(:name => job, :provider => :launchd, :path => jobs[job], :status => job_status)
|
@@ -135,7 +135,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
135
135
|
#
|
136
136
|
# @api private
|
137
137
|
def self.make_label_to_path_map(refresh = false)
|
138
|
-
return @label_to_path_map if @label_to_path_map and
|
138
|
+
return @label_to_path_map if @label_to_path_map and !refresh
|
139
139
|
|
140
140
|
@label_to_path_map = {}
|
141
141
|
launchd_paths.each do |path|
|
@@ -165,12 +165,12 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
165
165
|
|
166
166
|
if label
|
167
167
|
if by_label.has_key? label
|
168
|
-
|
168
|
+
{ label => by_label[label] }
|
169
169
|
else
|
170
170
|
# try refreshing the map, in case a plist has been added in the interim
|
171
171
|
by_label = make_label_to_path_map(true)
|
172
172
|
if by_label.has_key? label
|
173
|
-
|
173
|
+
{ label => by_label[label] }
|
174
174
|
else
|
175
175
|
raise Puppet::Error, "Unable to find launchd plist for job: #{label}"
|
176
176
|
end
|
@@ -187,13 +187,13 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
187
187
|
@job_list = Hash.new
|
188
188
|
begin
|
189
189
|
output = launchctl :list
|
190
|
-
raise Puppet::Error
|
190
|
+
raise Puppet::Error, "launchctl list failed to return any data." if output.nil?
|
191
191
|
|
192
192
|
output.split("\n").each do |line|
|
193
193
|
@job_list[line.split(/\s/).last] = :running
|
194
194
|
end
|
195
|
-
rescue Puppet::ExecutionFailure
|
196
|
-
raise Puppet::Error.new("Unable to determine status of #{resource[:name]}",
|
195
|
+
rescue Puppet::ExecutionFailure => e
|
196
|
+
raise Puppet::Error.new("Unable to determine status of #{resource[:name]}", e)
|
197
197
|
end
|
198
198
|
@job_list
|
199
199
|
end
|
@@ -212,7 +212,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
212
212
|
Puppet.debug(_("Reading overrides plist, attempt %{i}") % { i: i }) if i > 1
|
213
213
|
overrides = read_plist(launchd_overrides)
|
214
214
|
break unless overrides.nil?
|
215
|
-
raise Puppet::Error
|
215
|
+
raise Puppet::Error, _('Unable to read overrides plist, too many attempts') if i == 20
|
216
216
|
|
217
217
|
Puppet.info(_('Overrides file could not be read, trying again.'))
|
218
218
|
Kernel.sleep(0.1)
|
@@ -239,7 +239,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
239
239
|
if FileTest.file?(job_path)
|
240
240
|
job_plist = self.class.read_plist(job_path)
|
241
241
|
else
|
242
|
-
raise Puppet::Error
|
242
|
+
raise Puppet::Error, "Unable to parse launchd plist at path: #{job_path}"
|
243
243
|
end
|
244
244
|
[job_path, job_plist]
|
245
245
|
end
|
@@ -248,7 +248,7 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
248
248
|
# status mechanism and fall back to the base provider status method.
|
249
249
|
def status
|
250
250
|
if @resource && ((@resource[:hasstatus] == :false) || (@resource[:status]))
|
251
|
-
|
251
|
+
super
|
252
252
|
elsif @property_hash[:status].nil?
|
253
253
|
# property_hash was flushed so the service changed status
|
254
254
|
service_name = @resource[:name]
|
@@ -281,17 +281,17 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
281
281
|
# always add -w so it always starts the job, it is a noop if it is not needed, this means we do
|
282
282
|
# not have to rescan all launchd plists.
|
283
283
|
cmds << "-w"
|
284
|
-
if
|
284
|
+
if enabled? == :false || status == :stopped # launchctl won't load disabled jobs
|
285
285
|
did_enable_job = true
|
286
286
|
end
|
287
287
|
cmds << job_path
|
288
288
|
begin
|
289
289
|
execute(cmds)
|
290
|
-
rescue Puppet::ExecutionFailure
|
291
|
-
raise Puppet::Error.new("Unable to start service: #{resource[:name]} at path: #{job_path}",
|
290
|
+
rescue Puppet::ExecutionFailure => e
|
291
|
+
raise Puppet::Error.new("Unable to start service: #{resource[:name]} at path: #{job_path}", e)
|
292
292
|
end
|
293
293
|
# As load -w clears the Disabled flag, we need to add it in after
|
294
|
-
|
294
|
+
disable if did_enable_job and resource[:enable] == :false
|
295
295
|
end
|
296
296
|
|
297
297
|
def stop
|
@@ -303,26 +303,26 @@ Puppet::Type.type(:service).provide :launchd, :parent => :base do
|
|
303
303
|
did_disable_job = false
|
304
304
|
cmds = []
|
305
305
|
cmds << :launchctl << :unload
|
306
|
-
if
|
306
|
+
if enabled? == :true # keepalive jobs can't be stopped without disabling
|
307
307
|
cmds << "-w"
|
308
308
|
did_disable_job = true
|
309
309
|
end
|
310
310
|
cmds << job_path
|
311
311
|
begin
|
312
312
|
execute(cmds)
|
313
|
-
rescue Puppet::ExecutionFailure
|
314
|
-
raise Puppet::Error.new("Unable to stop service: #{resource[:name]} at path: #{job_path}",
|
313
|
+
rescue Puppet::ExecutionFailure => e
|
314
|
+
raise Puppet::Error.new("Unable to stop service: #{resource[:name]} at path: #{job_path}", e)
|
315
315
|
end
|
316
316
|
# As unload -w sets the Disabled flag, we need to add it in after
|
317
|
-
|
317
|
+
enable if did_disable_job and resource[:enable] == :true
|
318
318
|
end
|
319
319
|
|
320
320
|
def restart
|
321
321
|
Puppet.debug("A restart has been triggered for the #{resource[:name]} service")
|
322
322
|
Puppet.debug("Stopping the #{resource[:name]} service")
|
323
|
-
|
323
|
+
stop
|
324
324
|
Puppet.debug("Starting the #{resource[:name]} service")
|
325
|
-
|
325
|
+
start
|
326
326
|
end
|
327
327
|
|
328
328
|
# launchd jobs are enabled by default. They are only disabled if the key
|
@@ -47,7 +47,7 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :init do
|
|
47
47
|
end
|
48
48
|
instances
|
49
49
|
rescue Puppet::ExecutionFailure
|
50
|
-
|
50
|
+
nil
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -56,16 +56,16 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :init do
|
|
56
56
|
:failonfail => false, :combine => false, :squelch => false)
|
57
57
|
|
58
58
|
if output.exitstatus == 1
|
59
|
-
|
60
|
-
|
59
|
+
debug("Is disabled")
|
60
|
+
:false
|
61
61
|
else
|
62
|
-
|
63
|
-
|
62
|
+
debug("Is enabled")
|
63
|
+
:true
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
def enable
|
68
|
-
|
68
|
+
debug("Enabling")
|
69
69
|
rcctl(:enable, @resource[:name])
|
70
70
|
if @resource[:flags]
|
71
71
|
rcctl(:set, @resource[:name], :flags, @resource[:flags])
|
@@ -73,14 +73,14 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :init do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def disable
|
76
|
-
|
76
|
+
debug("Disabling")
|
77
77
|
rcctl(:disable, @resource[:name])
|
78
78
|
end
|
79
79
|
|
80
80
|
def running?
|
81
81
|
output = execute([command(:rcctl), "check", @resource[:name]],
|
82
82
|
:failonfail => false, :combine => false, :squelch => false).chomp
|
83
|
-
|
83
|
+
true if output =~ /\(ok\)/
|
84
84
|
end
|
85
85
|
|
86
86
|
# Uses the wrapper to prevent failure when the service is not running;
|
@@ -88,12 +88,12 @@ Puppet::Type.type(:service).provide :openbsd, :parent => :init do
|
|
88
88
|
def flags
|
89
89
|
output = execute([command(:rcctl), "get", @resource[:name], "flags"],
|
90
90
|
:failonfail => false, :combine => false, :squelch => false).chomp
|
91
|
-
|
91
|
+
debug("Flags are: \"#{output}\"")
|
92
92
|
output
|
93
93
|
end
|
94
94
|
|
95
95
|
def flags=(value)
|
96
|
-
|
96
|
+
debug("Changing flags from #{flags} to #{value}")
|
97
97
|
rcctl(:set, @resource[:name], :flags, value)
|
98
98
|
# If the service is already running, force a restart as the flags have been changed.
|
99
99
|
rcctl(:restart, @resource[:name]) if running?
|
@@ -40,7 +40,7 @@ Puppet::Type.type(:service).provide :openrc, :parent => :base do
|
|
40
40
|
when /^\S+/ # caption of a dynamic runlevel
|
41
41
|
enabled = :false
|
42
42
|
when self.class::STATUSLINE
|
43
|
-
return enabled if @resource[:name] ==
|
43
|
+
return enabled if @resource[:name] == Regexp.last_match(1)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
:false
|