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
@@ -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
|
@@ -18,16 +18,16 @@ Puppet::Type.type(:service).provide :openwrt, :parent => :init, :source => :init
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def enable
|
21
|
-
system(
|
21
|
+
system(initscript, 'enable')
|
22
22
|
end
|
23
23
|
|
24
24
|
def disable
|
25
|
-
system(
|
25
|
+
system(initscript, 'disable')
|
26
26
|
end
|
27
27
|
|
28
28
|
def enabled?
|
29
29
|
# We can't define the "command" for the init script, so we call system?
|
30
|
-
|
30
|
+
system(initscript, 'enabled') ? (return :true) : (return :false)
|
31
31
|
end
|
32
32
|
|
33
33
|
# Purposely leave blank so we fail back to ps based status detection
|
@@ -31,7 +31,7 @@ Puppet::Type.type(:service).provide :rcng, :parent => :bsd do
|
|
31
31
|
# enable service by creating a service file under rc.conf.d with the
|
32
32
|
# proper contents, or by modifying it's contents to to enable the service.
|
33
33
|
def enable
|
34
|
-
Dir.mkdir(rcconf_dir)
|
34
|
+
Dir.mkdir(rcconf_dir) unless Puppet::FileSystem.exist?(rcconf_dir)
|
35
35
|
rcfile = File.join(rcconf_dir, @resource[:name])
|
36
36
|
if Puppet::FileSystem.exist?(rcfile)
|
37
37
|
newcontents = []
|
@@ -41,11 +41,11 @@ Puppet::Type.type(:service).provide :rcng, :parent => :bsd do
|
|
41
41
|
end
|
42
42
|
newcontents.push(line)
|
43
43
|
end
|
44
|
-
Puppet::Util.replace_file(rcfile,
|
44
|
+
Puppet::Util.replace_file(rcfile, 0o644) do |f|
|
45
45
|
f.puts newcontents
|
46
46
|
end
|
47
47
|
else
|
48
|
-
Puppet::Util.replace_file(rcfile,
|
48
|
+
Puppet::Util.replace_file(rcfile, 0o644) do |f|
|
49
49
|
f.puts "%s=${%s:=YES}\n" % [@resource[:name], @resource[:name]]
|
50
50
|
end
|
51
51
|
end
|
@@ -10,9 +10,9 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
10
10
|
|
11
11
|
commands :chkconfig => "/sbin/chkconfig", :service => "/sbin/service"
|
12
12
|
|
13
|
-
defaultfor 'os.name' => :amazon, 'os.release.major' => [
|
13
|
+
defaultfor 'os.name' => :amazon, 'os.release.major' => %w[2017 2018]
|
14
14
|
defaultfor 'os.name' => :redhat, 'os.release.major' => (4..6).to_a
|
15
|
-
defaultfor 'os.family' => :suse, 'os.release.major' => [
|
15
|
+
defaultfor 'os.family' => :suse, 'os.release.major' => %w[10 11]
|
16
16
|
|
17
17
|
# Remove the symlinks
|
18
18
|
def disable
|
@@ -23,7 +23,7 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
23
23
|
# and --del removes the service from chkconfig management
|
24
24
|
chkconfig("--level", "0123456", @resource[:name], :off)
|
25
25
|
rescue Puppet::ExecutionFailure => detail
|
26
|
-
raise Puppet::Error, "Could not disable #{
|
26
|
+
raise Puppet::Error, "Could not disable #{name}: #{detail}", detail.backtrace
|
27
27
|
end
|
28
28
|
|
29
29
|
def enabled?
|
@@ -49,7 +49,7 @@ Puppet::Type.type(:service).provide :redhat, :parent => :init, :source => :init
|
|
49
49
|
chkconfig("--add", @resource[:name])
|
50
50
|
chkconfig(@resource[:name], :on)
|
51
51
|
rescue Puppet::ExecutionFailure => detail
|
52
|
-
raise Puppet::Error, "Could not enable #{
|
52
|
+
raise Puppet::Error, "Could not enable #{name}: #{detail}", detail.backtrace
|
53
53
|
end
|
54
54
|
|
55
55
|
def initscript
|
@@ -65,7 +65,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
65
65
|
|
66
66
|
def status
|
67
67
|
begin
|
68
|
-
output = sv "status",
|
68
|
+
output = sv "status", daemon
|
69
69
|
return :running if output =~ /^run: /
|
70
70
|
rescue Puppet::ExecutionFailure => detail
|
71
71
|
unless detail.message =~ /(warning: |runsv not running$)/
|
@@ -76,7 +76,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def stop
|
79
|
-
sv "stop",
|
79
|
+
sv "stop", service
|
80
80
|
end
|
81
81
|
|
82
82
|
def start
|
@@ -86,14 +86,14 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
86
86
|
# runsvdir takes up to 5 seconds to recognize
|
87
87
|
# the symlink created by this call to enable
|
88
88
|
# TRANSLATORS 'runsvdir' is a linux service name and should not be translated
|
89
|
-
Puppet.info _("Waiting 5 seconds for runsvdir to discover service %{service}") % { service:
|
89
|
+
Puppet.info _("Waiting 5 seconds for runsvdir to discover service %{service}") % { service: service }
|
90
90
|
sleep 5
|
91
91
|
end
|
92
|
-
sv "start",
|
92
|
+
sv "start", service
|
93
93
|
end
|
94
94
|
|
95
95
|
def restart
|
96
|
-
sv "restart",
|
96
|
+
sv "restart", service
|
97
97
|
end
|
98
98
|
|
99
99
|
# disable by removing the symlink so that runit
|
@@ -102,6 +102,6 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
|
102
102
|
# before a disable
|
103
103
|
def disable
|
104
104
|
# unlink the daemon symlink to disable it
|
105
|
-
Puppet::FileSystem.unlink(
|
105
|
+
Puppet::FileSystem.unlink(service) if Puppet::FileSystem.symlink?(service)
|
106
106
|
end
|
107
107
|
end
|
@@ -13,8 +13,8 @@ Puppet::Type.type(:service).provide :service do
|
|
13
13
|
service_command(:restart)
|
14
14
|
nil
|
15
15
|
else
|
16
|
-
|
17
|
-
|
16
|
+
stop
|
17
|
+
start
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -47,11 +47,9 @@ Puppet::Type.type(:service).provide :service do
|
|
47
47
|
#
|
48
48
|
# @return [Puppet::Util::Execution::ProcessOutput]
|
49
49
|
def service_execute(type, command, fof = true, squelch = false, combine = true)
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
@resource.fail Puppet::Error, "Could not #{type} #{@resource.ref}: #{detail}", detail
|
54
|
-
end
|
50
|
+
execute(command, :failonfail => fof, :override_locale => false, :squelch => squelch, :combine => combine)
|
51
|
+
rescue Puppet::ExecutionFailure => detail
|
52
|
+
@resource.fail Puppet::Error, "Could not #{type} #{@resource.ref}: #{detail}", detail
|
55
53
|
end
|
56
54
|
|
57
55
|
# Use either a specified command or the default for our provider.
|
@@ -63,7 +63,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def service_exists?
|
66
|
-
|
66
|
+
service_fmri
|
67
67
|
true
|
68
68
|
rescue Puppet::ExecutionFailure
|
69
69
|
false
|
@@ -71,7 +71,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
71
71
|
|
72
72
|
def setup_service
|
73
73
|
return unless @resource[:manifest]
|
74
|
-
return if
|
74
|
+
return if service_exists?
|
75
75
|
|
76
76
|
Puppet.notice("Importing #{@resource[:manifest]} for #{@resource[:name]}")
|
77
77
|
svccfg(:import, @resource[:manifest])
|
@@ -132,7 +132,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
132
132
|
def enabled?
|
133
133
|
return :false unless service_exists?
|
134
134
|
|
135
|
-
_property, _type, value = svccfg("-s",
|
135
|
+
_property, _type, value = svccfg("-s", service_fmri, "listprop", "general/enabled").split(' ')
|
136
136
|
value == 'true' ? :true : :false
|
137
137
|
end
|
138
138
|
|
@@ -142,10 +142,10 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
142
142
|
|
143
143
|
def restartcmd
|
144
144
|
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value('os.release.full'), '11.2') >= 0
|
145
|
-
[command(:adm), :restart, "-s",
|
145
|
+
[command(:adm), :restart, "-s", service_fmri]
|
146
146
|
else
|
147
147
|
# Synchronous restart only supported in Solaris 11.2 and above
|
148
|
-
[command(:adm), :restart,
|
148
|
+
[command(:adm), :restart, service_fmri]
|
149
149
|
end
|
150
150
|
end
|
151
151
|
|
@@ -153,7 +153,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
153
153
|
# Gets the current and next state of the service. We have a next state because SMF
|
154
154
|
# manages services asynchronously. If there is no 'next' state, svcs will put a '-'
|
155
155
|
# to indicate as such.
|
156
|
-
current_state, next_state = svcs("-H", "-o", "state,nstate",
|
156
|
+
current_state, next_state = svcs("-H", "-o", "state,nstate", service_fmri).chomp.split(' ')
|
157
157
|
|
158
158
|
{
|
159
159
|
:current => current_state,
|
@@ -168,14 +168,14 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
168
168
|
def wait(*desired_states)
|
169
169
|
Timeout.timeout(60) do
|
170
170
|
loop do
|
171
|
-
states =
|
171
|
+
states = service_states
|
172
172
|
break if desired_states.include?(states[:current]) && states[:next].nil?
|
173
173
|
|
174
174
|
Kernel.sleep(1)
|
175
175
|
end
|
176
176
|
end
|
177
177
|
rescue Timeout::Error
|
178
|
-
raise Puppet::Error
|
178
|
+
raise Puppet::Error, "Timed out waiting for #{@resource[:name]} to transition states"
|
179
179
|
end
|
180
180
|
|
181
181
|
def start
|
@@ -189,7 +189,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
189
189
|
def restart
|
190
190
|
# Wait for the service to actually start before returning.
|
191
191
|
super
|
192
|
-
|
192
|
+
wait('online')
|
193
193
|
end
|
194
194
|
|
195
195
|
def status
|
@@ -206,29 +206,29 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
206
206
|
|
207
207
|
# Get the current state and the next state. If there is a next state,
|
208
208
|
# use that for the state comparison.
|
209
|
-
states =
|
209
|
+
states = service_states
|
210
210
|
state = states[:next] || states[:current]
|
211
|
-
rescue Puppet::ExecutionFailure
|
211
|
+
rescue Puppet::ExecutionFailure => e
|
212
212
|
# TODO (PUP-8957): Should this be set back to INFO ?
|
213
|
-
debug "Could not get status on service #{
|
213
|
+
debug "Could not get status on service #{name} #{e}"
|
214
214
|
return :stopped
|
215
215
|
end
|
216
216
|
|
217
217
|
case state
|
218
218
|
when "online"
|
219
|
-
|
219
|
+
:running
|
220
220
|
when "offline", "disabled", "uninitialized"
|
221
|
-
|
221
|
+
:stopped
|
222
222
|
when "maintenance"
|
223
|
-
|
223
|
+
:maintenance
|
224
224
|
when "degraded"
|
225
|
-
|
225
|
+
:degraded
|
226
226
|
when "legacy_run"
|
227
227
|
raise Puppet::Error,
|
228
228
|
"Cannot manage legacy services through SMF"
|
229
229
|
else
|
230
230
|
raise Puppet::Error,
|
231
|
-
"Unmanageable state '#{state}' on service #{
|
231
|
+
"Unmanageable state '#{state}' on service #{name}"
|
232
232
|
end
|
233
233
|
end
|
234
234
|
|
@@ -238,8 +238,8 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
238
238
|
def maybe_clear_service_then_svcadm(cur_state, subcmd, flags)
|
239
239
|
# If the cur_state is maint or degraded, then we need to clear the service
|
240
240
|
# before we enable or disable it.
|
241
|
-
adm('clear',
|
242
|
-
adm(subcmd, flags,
|
241
|
+
adm('clear', service_fmri) if [:maintenance, :degraded].include?(cur_state)
|
242
|
+
adm(subcmd, flags, service_fmri)
|
243
243
|
end
|
244
244
|
|
245
245
|
# The flush method is necessary for the SMF provider because syncing the enable and ensure
|
@@ -248,7 +248,8 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
248
248
|
def flush
|
249
249
|
# We append the "_" because ensure is a Ruby keyword, and it is good to keep property
|
250
250
|
# variable names consistent with each other.
|
251
|
-
enable_
|
251
|
+
enable_ = @properties_to_sync[:enable]
|
252
|
+
ensure_ = @properties_to_sync[:ensure]
|
252
253
|
|
253
254
|
# All of the relevant properties are in sync., so we do not need to do
|
254
255
|
# anything here.
|
@@ -258,13 +259,13 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
258
259
|
# simplifies the code. For a nonexistent service, one of enable or ensure will be true
|
259
260
|
# here (since we're syncing them), so we can fail early if setup_service fails.
|
260
261
|
setup_service
|
261
|
-
fmri =
|
262
|
+
fmri = service_fmri
|
262
263
|
|
263
264
|
# Useful constants for operations involving multiple states
|
264
|
-
stopped = [
|
265
|
+
stopped = %w[offline disabled uninitialized]
|
265
266
|
|
266
267
|
# Get the current state of the service.
|
267
|
-
cur_state =
|
268
|
+
cur_state = status
|
268
269
|
|
269
270
|
if enable_.nil?
|
270
271
|
# Only ensure needs to be syncd. The -t flag tells svcadm to temporarily
|
@@ -272,10 +273,10 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
272
273
|
# reboot. This is exactly what we want, because we do not want to touch
|
273
274
|
# the enable property.
|
274
275
|
if ensure_ == :stopped
|
275
|
-
|
276
|
+
maybe_clear_service_then_svcadm(cur_state, 'disable', '-st')
|
276
277
|
wait(*stopped)
|
277
278
|
else # ensure == :running
|
278
|
-
|
279
|
+
maybe_clear_service_then_svcadm(cur_state, 'enable', '-rst')
|
279
280
|
wait('online')
|
280
281
|
end
|
281
282
|
|
@@ -299,9 +300,9 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
299
300
|
final_state = :running if final_state == :degraded
|
300
301
|
|
301
302
|
if enable_
|
302
|
-
|
303
|
+
maybe_clear_service_then_svcadm(cur_state, 'enable', '-rs')
|
303
304
|
else
|
304
|
-
|
305
|
+
maybe_clear_service_then_svcadm(cur_state, 'disable', '-s')
|
305
306
|
end
|
306
307
|
|
307
308
|
# We're safe with 'whens' here since self.status already errors on any
|
@@ -79,17 +79,17 @@ Puppet::Type.type(:service).provide :src, :parent => :base do
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
rescue Timeout::Error
|
82
|
-
raise Puppet::Error
|
82
|
+
raise Puppet::Error, "Timed out waiting for #{@resource[:name]} to transition states"
|
83
83
|
end
|
84
84
|
|
85
85
|
def start
|
86
86
|
super
|
87
|
-
|
87
|
+
wait(:running)
|
88
88
|
end
|
89
89
|
|
90
90
|
def stop
|
91
91
|
super
|
92
|
-
|
92
|
+
wait(:stopped)
|
93
93
|
end
|
94
94
|
|
95
95
|
def restart
|
@@ -111,8 +111,8 @@ Puppet::Type.type(:service).provide :src, :parent => :base do
|
|
111
111
|
if do_refresh == :true
|
112
112
|
execute([command(:refresh), "-s", @resource[:name]])
|
113
113
|
else
|
114
|
-
|
115
|
-
|
114
|
+
stop
|
115
|
+
start
|
116
116
|
end
|
117
117
|
return :true
|
118
118
|
rescue Puppet::ExecutionFailure => detail
|
@@ -141,7 +141,7 @@ Puppet::Type.type(:service).provide :src, :parent => :base do
|
|
141
141
|
return state
|
142
142
|
end
|
143
143
|
rescue Puppet::ExecutionFailure => detail
|
144
|
-
|
145
|
-
|
144
|
+
debug(detail.message)
|
145
|
+
:stopped
|
146
146
|
end
|
147
147
|
end
|