puppet 8.5.1-universal-darwin → 8.7.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +4 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +5 -5
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/module_data_provider.rb +9 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +32 -11
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/scheduler/splay_job.rb +9 -0
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +51 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +60 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +18 -19
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/com.rb +2 -2
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/locales/puppet.pot +604 -600
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -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
|
@@ -22,15 +22,15 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
22
22
|
defaultfor 'os.family' => :suse
|
23
23
|
defaultfor 'os.family' => :coreos
|
24
24
|
defaultfor 'os.family' => :gentoo
|
25
|
-
notdefaultfor 'os.name' => :amazon, 'os.release.major' => [
|
26
|
-
defaultfor 'os.name' => :amazon, 'os.release.major' => [
|
25
|
+
notdefaultfor 'os.name' => :amazon, 'os.release.major' => %w[2017 2018]
|
26
|
+
defaultfor 'os.name' => :amazon, 'os.release.major' => %w[2 2023]
|
27
27
|
defaultfor 'os.name' => :debian
|
28
|
-
notdefaultfor 'os.name' => :debian, 'os.release.major' => [
|
28
|
+
notdefaultfor 'os.name' => :debian, 'os.release.major' => %w[5 6 7] # These are using the "debian" method
|
29
29
|
defaultfor 'os.name' => :LinuxMint
|
30
|
-
notdefaultfor 'os.name' => :LinuxMint, 'os.release.major' => [
|
30
|
+
notdefaultfor 'os.name' => :LinuxMint, 'os.release.major' => %w[10 11 12 13 14 15 16 17] # These are using upstart
|
31
31
|
defaultfor 'os.name' => :ubuntu
|
32
32
|
notdefaultfor 'os.name' => :ubuntu, 'os.release.major' => ["10.04", "12.04", "14.04", "14.10"] # These are using upstart
|
33
|
-
defaultfor 'os.name' => :cumuluslinux, 'os.release.major' => [
|
33
|
+
defaultfor 'os.name' => :cumuluslinux, 'os.release.major' => %w[3 4]
|
34
34
|
|
35
35
|
def self.instances
|
36
36
|
i = []
|
@@ -39,9 +39,9 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
39
39
|
Puppet.debug("#{m[0]} marked as bad by `systemctl`. It is recommended to be further checked.") if m[1] == "bad"
|
40
40
|
i << new(:name => m[0])
|
41
41
|
end
|
42
|
-
|
42
|
+
i
|
43
43
|
rescue Puppet::ExecutionFailure
|
44
|
-
|
44
|
+
[]
|
45
45
|
end
|
46
46
|
|
47
47
|
# Static services cannot be enabled or disabled manually. Indirect services
|
@@ -55,11 +55,11 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
55
55
|
current == @resource[:enable]
|
56
56
|
else
|
57
57
|
Puppet.debug("Unable to enable or disable static service #{@resource[:name]}")
|
58
|
-
|
58
|
+
true
|
59
59
|
end
|
60
60
|
when 'indirect'
|
61
61
|
Puppet.debug("Service #{@resource[:name]} is in 'indirect' state and cannot be enabled/disabled")
|
62
|
-
|
62
|
+
true
|
63
63
|
else
|
64
64
|
current == @resource[:enable]
|
65
65
|
end
|
@@ -72,8 +72,8 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
72
72
|
# @param action [String,Symbol] One of 'enable', 'disable', 'mask' or 'unmask'
|
73
73
|
def systemctl_change_enable(action)
|
74
74
|
output = systemctl(action, '--', @resource[:name])
|
75
|
-
rescue
|
76
|
-
raise Puppet::Error, "Could not #{action} #{
|
75
|
+
rescue => e
|
76
|
+
raise Puppet::Error, "Could not #{action} #{name}: #{output}", e.backtrace
|
77
77
|
ensure
|
78
78
|
@cached_enabled = nil
|
79
79
|
end
|
@@ -115,14 +115,14 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
115
115
|
|
116
116
|
# The indirect state indicates that the unit is not enabled.
|
117
117
|
return :false if output == 'indirect'
|
118
|
-
return :true if
|
118
|
+
return :true if code == 0
|
119
119
|
|
120
|
-
if
|
120
|
+
if output.empty? && (code > 0) && Puppet.runtime[:facter].value('os.family').casecmp('debian').zero?
|
121
121
|
ret = debian_enabled?
|
122
122
|
return ret if ret
|
123
123
|
end
|
124
124
|
|
125
|
-
|
125
|
+
:false
|
126
126
|
end
|
127
127
|
|
128
128
|
# This method is required for Debian systems due to the way the SysVInit-Systemd
|
@@ -133,7 +133,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
133
133
|
def debian_enabled?
|
134
134
|
status = execute(["/usr/sbin/invoke-rc.d", "--quiet", "--query", @resource[:name], "start"], :failonfail => false)
|
135
135
|
if [104, 106].include?(status.exitstatus)
|
136
|
-
|
136
|
+
:true
|
137
137
|
elsif [101, 105].include?(status.exitstatus)
|
138
138
|
# 101 is action not allowed, which means we have to do the check manually.
|
139
139
|
# 105 is unknown, which generally means the initscript does not support query
|
@@ -141,12 +141,12 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
141
141
|
# For those that do not, perform the checks manually
|
142
142
|
# http://www.debian.org/doc/debian-policy/ch-opersys.html
|
143
143
|
if get_start_link_count >= 4
|
144
|
-
|
144
|
+
:true
|
145
145
|
else
|
146
|
-
|
146
|
+
:false
|
147
147
|
end
|
148
148
|
else
|
149
|
-
|
149
|
+
:false
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
@@ -166,7 +166,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def enable
|
169
|
-
|
169
|
+
unmask
|
170
170
|
systemctl_change_enable(:enable)
|
171
171
|
end
|
172
172
|
|
@@ -189,7 +189,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
189
189
|
end
|
190
190
|
|
191
191
|
def startcmd
|
192
|
-
|
192
|
+
unmask
|
193
193
|
[command(:systemctl), "start", '--', @resource[:name]]
|
194
194
|
end
|
195
195
|
|
@@ -202,29 +202,23 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
202
202
|
end
|
203
203
|
|
204
204
|
def restart
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
raise Puppet::Error.new(prepare_error_message(@resource[:name], 'restart', e))
|
210
|
-
end
|
205
|
+
daemon_reload?
|
206
|
+
super
|
207
|
+
rescue Puppet::Error => e
|
208
|
+
raise Puppet::Error, prepare_error_message(@resource[:name], 'restart', e)
|
211
209
|
end
|
212
210
|
|
213
211
|
def start
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
raise Puppet::Error.new(prepare_error_message(@resource[:name], 'start', e))
|
219
|
-
end
|
212
|
+
daemon_reload?
|
213
|
+
super
|
214
|
+
rescue Puppet::Error => e
|
215
|
+
raise Puppet::Error, prepare_error_message(@resource[:name], 'start', e)
|
220
216
|
end
|
221
217
|
|
222
218
|
def stop
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
raise Puppet::Error.new(prepare_error_message(@resource[:name], 'stop', e))
|
227
|
-
end
|
219
|
+
super
|
220
|
+
rescue Puppet::Error => e
|
221
|
+
raise Puppet::Error, prepare_error_message(@resource[:name], 'stop', e)
|
228
222
|
end
|
229
223
|
|
230
224
|
def prepare_error_message(name, action, exception)
|
@@ -15,11 +15,11 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
15
15
|
Puppet.runtime[:facter].value('os.name') == 'Ubuntu',
|
16
16
|
(Puppet.runtime[:facter].value('os.family') == 'RedHat' and Puppet.runtime[:facter].value('os.release.full') =~ /^6\./),
|
17
17
|
(Puppet.runtime[:facter].value('os.name') == 'Amazon' and Puppet.runtime[:facter].value('os.release.major') =~ /\d{4}/),
|
18
|
-
Puppet.runtime[:facter].value('os.name') == 'LinuxMint'
|
18
|
+
Puppet.runtime[:facter].value('os.name') == 'LinuxMint'
|
19
19
|
]
|
20
20
|
|
21
21
|
defaultfor 'os.name' => :ubuntu, 'os.release.major' => ["10.04", "12.04", "14.04", "14.10"]
|
22
|
-
defaultfor 'os.name' => :LinuxMint, 'os.release.major' => [
|
22
|
+
defaultfor 'os.name' => :LinuxMint, 'os.release.major' => %w[10 11 12 13 14 15 16 17]
|
23
23
|
|
24
24
|
commands :start => "/sbin/start",
|
25
25
|
:stop => "/sbin/stop",
|
@@ -54,7 +54,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
54
54
|
has_feature :enableable
|
55
55
|
|
56
56
|
def self.instances
|
57
|
-
|
57
|
+
get_services(excludes) # Take exclude list from init provider
|
58
58
|
end
|
59
59
|
|
60
60
|
def self.excludes
|
@@ -77,11 +77,11 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
77
77
|
# network-interface (lo) start/running
|
78
78
|
# network-interface (eth0) start/running
|
79
79
|
# network-interface-security start/running
|
80
|
-
matcher = line.match(/^(network-interface)\s\(([
|
80
|
+
matcher = line.match(/^(network-interface)\s\(([^)]+)\)/)
|
81
81
|
name = if matcher
|
82
82
|
"#{matcher[1]} INTERFACE=#{matcher[2]}"
|
83
83
|
else
|
84
|
-
matcher = line.match(/^(network-interface-security)\s\(([
|
84
|
+
matcher = line.match(/^(network-interface-security)\s\(([^)]+)\)/)
|
85
85
|
if matcher
|
86
86
|
"#{matcher[1]} JOB=#{matcher[2]}"
|
87
87
|
else
|
@@ -99,7 +99,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def upstart_version
|
102
|
-
@upstart_version ||= initctl("--version").match(/initctl \(upstart ([
|
102
|
+
@upstart_version ||= initctl("--version").match(/initctl \(upstart ([^)]*)\)/)[1]
|
103
103
|
end
|
104
104
|
|
105
105
|
# Where is our override script?
|
@@ -117,7 +117,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
117
117
|
return fqname
|
118
118
|
end
|
119
119
|
|
120
|
-
|
120
|
+
debug("Could not find #{name}#{suffix} in #{path}")
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
@@ -125,7 +125,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def enabled?
|
128
|
-
return super
|
128
|
+
return super unless is_upstart?
|
129
129
|
|
130
130
|
script_contents = read_script_from(initscript)
|
131
131
|
if version_is_pre_0_6_7
|
@@ -138,7 +138,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def enable
|
141
|
-
return super
|
141
|
+
return super unless is_upstart?
|
142
142
|
|
143
143
|
script_text = read_script_from(initscript)
|
144
144
|
if version_is_pre_0_9_0
|
@@ -149,7 +149,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
149
149
|
end
|
150
150
|
|
151
151
|
def disable
|
152
|
-
return super
|
152
|
+
return super unless is_upstart?
|
153
153
|
|
154
154
|
script_text = read_script_from(initscript)
|
155
155
|
if version_is_pre_0_6_7
|
@@ -185,17 +185,17 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
185
185
|
end
|
186
186
|
|
187
187
|
output = status_exec(@resource[:name].split)
|
188
|
-
if output =~ /
|
189
|
-
|
188
|
+
if output =~ %r{start/}
|
189
|
+
:running
|
190
190
|
else
|
191
|
-
|
191
|
+
:stopped
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
195
|
private
|
196
196
|
|
197
197
|
def is_upstart?(script = initscript)
|
198
|
-
Puppet::FileSystem.exist?(script) && script.match(
|
198
|
+
Puppet::FileSystem.exist?(script) && script.match(%r{/etc/init/\S+\.conf})
|
199
199
|
end
|
200
200
|
|
201
201
|
def version_is_pre_0_6_7
|
@@ -213,9 +213,9 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
213
213
|
def enabled_pre_0_6_7?(script_text)
|
214
214
|
# Upstart version < 0.6.7 means no manual stanza.
|
215
215
|
if script_text.match(START_ON)
|
216
|
-
|
216
|
+
:true
|
217
217
|
else
|
218
|
-
|
218
|
+
:false
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
@@ -378,7 +378,7 @@ Puppet::Type.type(:service).provide :upstart, :parent => :debian do
|
|
378
378
|
end
|
379
379
|
|
380
380
|
def write_script_to(file, text)
|
381
|
-
Puppet::Util.replace_file(file,
|
381
|
+
Puppet::Util.replace_file(file, 0o644) do |f|
|
382
382
|
f.write(text)
|
383
383
|
end
|
384
384
|
end
|