puppet 8.5.0-universal-darwin → 8.6.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.lock +29 -26
- 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 +3 -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/literal_evaluator.rb +4 -0
- 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 +3 -3
- 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/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 +2 -0
- 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/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 +4 -4
- 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/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/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 +43 -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 +42 -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 +17 -18
- 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/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/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 +2 -2
@@ -34,7 +34,7 @@ class Puppet::Provider::Package::Targetable < Puppet::Provider::Package
|
|
34
34
|
catalog_packages.each do |catalog_package|
|
35
35
|
if catalog_package[:name] == instance.name && catalog_package.original_parameters[:command] == command
|
36
36
|
catalog_package.provider = instance
|
37
|
-
|
37
|
+
debug "Prefetched instance: %{name} via command: %{cmd}" % { name: instance.name, cmd: command || :default }
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -116,9 +116,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
116
116
|
# Return the header placed at the top of each generated file, warning
|
117
117
|
# users that modifying this file manually is probably a bad idea.
|
118
118
|
def self.header
|
119
|
-
%
|
119
|
+
%(# HEADER: This file was autogenerated at #{Time.now}
|
120
120
|
# HEADER: by puppet. While it can still be managed manually, it
|
121
|
-
# HEADER: is definitely not recommended.\n
|
121
|
+
# HEADER: is definitely not recommended.\n)
|
122
122
|
end
|
123
123
|
|
124
124
|
# An optional regular expression matched by third party headers.
|
@@ -282,7 +282,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
282
282
|
begin
|
283
283
|
target_records = retrieve(target)
|
284
284
|
unless target_records
|
285
|
-
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name:
|
285
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name }
|
286
286
|
end
|
287
287
|
rescue Puppet::Util::FileType::FileReadError => detail
|
288
288
|
if @raise_prefetch_errors
|
@@ -292,7 +292,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
292
292
|
@failed_prefetch_targets[target] = detail.to_s
|
293
293
|
else
|
294
294
|
puts detail.backtrace if Puppet[:trace]
|
295
|
-
Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource:
|
295
|
+
Puppet.err _("Could not prefetch %{resource} provider '%{name}' target '%{target}': %{detail}. Treating as empty") % { resource: resource_type.name, name: name, target: target, detail: detail }
|
296
296
|
end
|
297
297
|
|
298
298
|
target_records = []
|
@@ -306,7 +306,7 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
306
306
|
|
307
307
|
target_records = prefetch_hook(target_records) if respond_to?(:prefetch_hook)
|
308
308
|
|
309
|
-
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name:
|
309
|
+
raise Puppet::DevError, _("Prefetching %{target} for provider %{name} returned nil") % { target: target, name: name } unless target_records
|
310
310
|
|
311
311
|
target_records
|
312
312
|
end
|
@@ -325,13 +325,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
325
325
|
text = target_object(path).read
|
326
326
|
if text.nil? or text == ""
|
327
327
|
# there is no file
|
328
|
-
|
328
|
+
[]
|
329
329
|
else
|
330
330
|
# Set the target, for logging.
|
331
331
|
old = @target
|
332
332
|
begin
|
333
333
|
@target = path
|
334
|
-
|
334
|
+
parse(text)
|
335
335
|
rescue Puppet::Error => detail
|
336
336
|
detail.file = @target if detail.respond_to?(:file=)
|
337
337
|
raise detail
|
@@ -380,9 +380,9 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
|
|
380
380
|
def self.targets(resources = nil)
|
381
381
|
targets = []
|
382
382
|
# First get the default target
|
383
|
-
raise Puppet::DevError, _("Parsed Providers must define a default target") unless
|
383
|
+
raise Puppet::DevError, _("Parsed Providers must define a default target") unless default_target
|
384
384
|
|
385
|
-
targets <<
|
385
|
+
targets << default_target
|
386
386
|
|
387
387
|
# Then get each of the file objects
|
388
388
|
targets += @target_objects.keys
|
@@ -35,7 +35,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
35
35
|
regex = Regexp.new(@resource[:pattern])
|
36
36
|
ps = getps
|
37
37
|
|
38
|
-
|
38
|
+
debug "Executing '#{ps}'"
|
39
39
|
table = Puppet::Util::Execution.execute(ps)
|
40
40
|
|
41
41
|
# The output of the PS command can be a mashup of several different
|
@@ -51,11 +51,11 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
51
51
|
table = table.scrub unless table.valid_encoding?
|
52
52
|
|
53
53
|
table.each_line { |line|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
next unless regex.match(line)
|
55
|
+
|
56
|
+
debug "Process matched: #{line}"
|
57
|
+
ary = line.sub(/^[[:space:]]+/u, '').split(/[[:space:]]+/u)
|
58
|
+
return ary[1]
|
59
59
|
}
|
60
60
|
|
61
61
|
nil
|
@@ -74,17 +74,17 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
74
74
|
|
75
75
|
# Explicitly calling exitstatus to facilitate testing
|
76
76
|
if status.exitstatus == 0
|
77
|
-
|
77
|
+
:running
|
78
78
|
else
|
79
|
-
|
79
|
+
:stopped
|
80
80
|
end
|
81
81
|
else
|
82
82
|
pid = getpid
|
83
83
|
if pid
|
84
|
-
|
85
|
-
|
84
|
+
debug "PID is #{pid}"
|
85
|
+
:running
|
86
86
|
else
|
87
|
-
|
87
|
+
:stopped
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -102,12 +102,7 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
102
102
|
# The command used to start. Generated if the 'binary' argument
|
103
103
|
# is passed.
|
104
104
|
def startcmd
|
105
|
-
|
106
|
-
return @resource[:binary]
|
107
|
-
else
|
108
|
-
raise Puppet::Error,
|
109
|
-
"Services must specify a start command or a binary"
|
110
|
-
end
|
105
|
+
@resource[:binary] || raise(Puppet::Error, "Services must specify a start command or a binary")
|
111
106
|
end
|
112
107
|
|
113
108
|
# Stop the service. If a 'stop' parameter is specified, it
|
@@ -122,15 +117,15 @@ Puppet::Type.type(:service).provide :base, :parent => :service do
|
|
122
117
|
else
|
123
118
|
pid = getpid
|
124
119
|
unless pid
|
125
|
-
|
120
|
+
info _("%{name} is not running") % { name: name }
|
126
121
|
return false
|
127
122
|
end
|
128
123
|
begin
|
129
124
|
output = kill pid
|
130
|
-
rescue Puppet::ExecutionFailure
|
131
|
-
@resource.fail Puppet::Error, "Could not kill #{
|
125
|
+
rescue Puppet::ExecutionFailure => e
|
126
|
+
@resource.fail Puppet::Error, "Could not kill #{name}, PID #{pid}: #{output}", e
|
132
127
|
end
|
133
|
-
|
128
|
+
true
|
134
129
|
end
|
135
130
|
end
|
136
131
|
|
@@ -34,9 +34,9 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
|
|
34
34
|
# enable service by creating a service file under rc.conf.d with the
|
35
35
|
# proper contents
|
36
36
|
def enable
|
37
|
-
Dir.mkdir(rcconf_dir)
|
37
|
+
Dir.mkdir(rcconf_dir) unless Puppet::FileSystem.exist?(rcconf_dir)
|
38
38
|
rcfile = File.join(rcconf_dir, @resource[:name])
|
39
|
-
File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT,
|
39
|
+
File.open(rcfile, File::WRONLY | File::APPEND | File::CREAT, 0o644) { |f|
|
40
40
|
f << "%s_enable=\"YES\"\n" % @resource[:name]
|
41
41
|
}
|
42
42
|
end
|
@@ -44,10 +44,10 @@ Puppet::Type.type(:service).provide :bsd, :parent => :init do
|
|
44
44
|
# Override stop/start commands to use one<cmd>'s and the avoid race condition
|
45
45
|
# where provider tries to stop/start the service before it is enabled
|
46
46
|
def startcmd
|
47
|
-
[
|
47
|
+
[initscript, :onestart]
|
48
48
|
end
|
49
49
|
|
50
50
|
def stopcmd
|
51
|
-
[
|
51
|
+
[initscript, :onestop]
|
52
52
|
end
|
53
53
|
end
|
@@ -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}'"
|