puppet 7.3.0-x86-mingw32 → 7.7.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile.lock +31 -25
- data/ext/build_defaults.yaml +0 -1
- data/install.rb +11 -11
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet.rb +37 -37
- data/lib/puppet/agent.rb +6 -6
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/agent/locker.rb +2 -2
- data/lib/puppet/application.rb +6 -6
- data/lib/puppet/application/agent.rb +18 -11
- data/lib/puppet/application/apply.rb +6 -5
- data/lib/puppet/application/catalog.rb +1 -1
- data/lib/puppet/application/config.rb +1 -1
- data/lib/puppet/application/describe.rb +1 -1
- data/lib/puppet/application/device.rb +8 -7
- data/lib/puppet/application/doc.rb +7 -7
- data/lib/puppet/application/epp.rb +2 -2
- data/lib/puppet/application/face_base.rb +2 -2
- data/lib/puppet/application/facts.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/generate.rb +1 -1
- data/lib/puppet/application/help.rb +1 -1
- data/lib/puppet/application/indirection_base.rb +1 -1
- data/lib/puppet/application/lookup.rb +6 -6
- data/lib/puppet/application/module.rb +1 -1
- data/lib/puppet/application/node.rb +1 -1
- data/lib/puppet/application/parser.rb +2 -2
- data/lib/puppet/application/plugin.rb +1 -1
- data/lib/puppet/application/report.rb +1 -1
- data/lib/puppet/application/resource.rb +3 -2
- data/lib/puppet/application/script.rb +6 -5
- data/lib/puppet/application/ssl.rb +13 -2
- data/lib/puppet/application_support.rb +4 -4
- data/lib/puppet/compilable_resource_type.rb +1 -1
- data/lib/puppet/concurrent/lock.rb +1 -1
- data/lib/puppet/configurer.rb +4 -4
- data/lib/puppet/configurer/downloader.rb +4 -3
- data/lib/puppet/configurer/fact_handler.rb +3 -3
- data/lib/puppet/configurer/plugin_handler.rb +1 -1
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/boolean.rb +1 -1
- data/lib/puppet/confine/exists.rb +1 -1
- data/lib/puppet/confine/false.rb +1 -1
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/true.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +1 -1
- data/lib/puppet/context.rb +2 -2
- data/lib/puppet/context/trusted_information.rb +1 -1
- data/lib/puppet/daemon.rb +2 -2
- data/lib/puppet/data_binding.rb +1 -1
- data/lib/puppet/datatypes/error.rb +1 -1
- data/lib/puppet/defaults.rb +15 -11
- data/lib/puppet/environments.rb +17 -2
- data/lib/puppet/etc.rb +1 -1
- data/lib/puppet/external/pson/common.rb +1 -1
- data/lib/puppet/external/pson/pure.rb +3 -3
- data/lib/puppet/face.rb +1 -1
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +2 -2
- data/lib/puppet/face/epp.rb +6 -6
- data/lib/puppet/face/facts.rb +18 -8
- data/lib/puppet/face/generate.rb +2 -2
- data/lib/puppet/face/help.rb +3 -3
- data/lib/puppet/face/module.rb +3 -3
- data/lib/puppet/face/module/install.rb +2 -2
- data/lib/puppet/face/node.rb +1 -1
- data/lib/puppet/face/parser.rb +4 -4
- data/lib/puppet/face/plugin.rb +2 -2
- data/lib/puppet/face/report.rb +1 -1
- data/lib/puppet/face/resource.rb +1 -1
- data/lib/puppet/feature/base.rb +2 -2
- data/lib/puppet/feature/bolt.rb +1 -1
- data/lib/puppet/feature/cfpropertylist.rb +1 -1
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/feature/hiera_eyaml.rb +1 -1
- data/lib/puppet/feature/hocon.rb +1 -1
- data/lib/puppet/feature/libuser.rb +2 -2
- data/lib/puppet/feature/msgpack.rb +1 -1
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/selinux.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +1 -1
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/posix.rb +2 -2
- data/lib/puppet/ffi/posix/constants.rb +1 -1
- data/lib/puppet/ffi/posix/functions.rb +1 -1
- data/lib/puppet/ffi/windows.rb +4 -4
- data/lib/puppet/ffi/windows/api_types.rb +3 -3
- data/lib/puppet/ffi/windows/constants.rb +2 -2
- data/lib/puppet/ffi/windows/functions.rb +1 -1
- data/lib/puppet/ffi/windows/structs.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +3 -3
- data/lib/puppet/file_serving/base.rb +2 -2
- data/lib/puppet/file_serving/configuration.rb +10 -10
- data/lib/puppet/file_serving/configuration/parser.rb +2 -2
- data/lib/puppet/file_serving/content.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +16 -4
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +6 -6
- data/lib/puppet/file_serving/mount.rb +4 -4
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -1
- data/lib/puppet/file_serving/mount/modules.rb +1 -1
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
- data/lib/puppet/file_serving/mount/plugins.rb +1 -1
- data/lib/puppet/file_serving/mount/tasks.rb +1 -1
- data/lib/puppet/file_serving/terminus_helper.rb +2 -2
- data/lib/puppet/file_serving/terminus_selector.rb +1 -1
- data/lib/puppet/file_system.rb +9 -9
- data/lib/puppet/file_system/jruby.rb +1 -1
- data/lib/puppet/file_system/memory_file.rb +8 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +1 -1
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/forge.rb +5 -5
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/forge/repository.rb +4 -4
- data/lib/puppet/functions.rb +1 -1
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +13 -5
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +12 -4
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/tree_each.rb +7 -9
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/generate/models/type/type.rb +1 -1
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +3 -3
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/graph.rb +6 -6
- data/lib/puppet/graph/simple_graph.rb +2 -2
- data/lib/puppet/http.rb +26 -26
- data/lib/puppet/http/factory.rb +6 -2
- data/lib/puppet/http/proxy.rb +1 -1
- data/lib/puppet/http/resolver/server_list.rb +15 -4
- data/lib/puppet/http/service/compiler.rb +73 -1
- data/lib/puppet/http/service/file_server.rb +3 -2
- data/lib/puppet/indirector.rb +5 -5
- data/lib/puppet/indirector/catalog/compiler.rb +7 -6
- data/lib/puppet/indirector/catalog/json.rb +2 -2
- data/lib/puppet/indirector/catalog/msgpack.rb +2 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -2
- data/lib/puppet/indirector/catalog/store_configs.rb +2 -2
- data/lib/puppet/indirector/catalog/yaml.rb +2 -2
- data/lib/puppet/indirector/code.rb +1 -1
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
- data/lib/puppet/indirector/data_binding/none.rb +1 -1
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/envelope.rb +1 -1
- data/lib/puppet/indirector/errors.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -2
- data/lib/puppet/indirector/facts/json.rb +3 -3
- data/lib/puppet/indirector/facts/memory.rb +2 -2
- data/lib/puppet/indirector/facts/network_device.rb +2 -2
- data/lib/puppet/indirector/facts/rest.rb +2 -2
- data/lib/puppet/indirector/facts/store_configs.rb +2 -2
- data/lib/puppet/indirector/facts/yaml.rb +3 -3
- data/lib/puppet/indirector/file_bucket_file/file.rb +4 -4
- data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -2
- data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -1
- data/lib/puppet/indirector/file_content.rb +1 -1
- data/lib/puppet/indirector/file_content/file.rb +3 -3
- data/lib/puppet/indirector/file_content/file_server.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/selector.rb +4 -4
- data/lib/puppet/indirector/file_metadata.rb +1 -1
- data/lib/puppet/indirector/file_metadata/file.rb +3 -3
- data/lib/puppet/indirector/file_metadata/file_server.rb +3 -3
- data/lib/puppet/indirector/file_metadata/http.rb +3 -3
- data/lib/puppet/indirector/file_metadata/rest.rb +4 -3
- data/lib/puppet/indirector/file_metadata/selector.rb +4 -4
- data/lib/puppet/indirector/file_server.rb +4 -4
- data/lib/puppet/indirector/generic_http.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +5 -5
- data/lib/puppet/indirector/json.rb +2 -2
- data/lib/puppet/indirector/memory.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +2 -2
- data/lib/puppet/indirector/node/exec.rb +2 -2
- data/lib/puppet/indirector/node/json.rb +2 -2
- data/lib/puppet/indirector/node/memory.rb +2 -2
- data/lib/puppet/indirector/node/msgpack.rb +2 -2
- data/lib/puppet/indirector/node/plain.rb +2 -2
- data/lib/puppet/indirector/node/rest.rb +2 -2
- data/lib/puppet/indirector/node/store_configs.rb +2 -2
- data/lib/puppet/indirector/node/yaml.rb +2 -2
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/plain.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +2 -2
- data/lib/puppet/indirector/report/msgpack.rb +2 -2
- data/lib/puppet/indirector/report/processor.rb +3 -3
- data/lib/puppet/indirector/report/rest.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +2 -2
- data/lib/puppet/indirector/request.rb +3 -3
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/resource/store_configs.rb +2 -2
- data/lib/puppet/indirector/terminus.rb +5 -5
- data/lib/puppet/indirector/yaml.rb +2 -2
- data/lib/puppet/info_service.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +3 -3
- data/lib/puppet/info_service/plan_information_service.rb +1 -1
- data/lib/puppet/info_service/task_information_service.rb +1 -1
- data/lib/puppet/interface.rb +10 -10
- data/lib/puppet/interface/documentation.rb +1 -1
- data/lib/puppet/loaders.rb +21 -25
- data/lib/puppet/metatype/manager.rb +3 -3
- data/lib/puppet/module.rb +5 -4
- data/lib/puppet/module/plan.rb +1 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module_tool.rb +10 -10
- data/lib/puppet/module_tool/applications.rb +7 -7
- data/lib/puppet/module_tool/applications/application.rb +2 -2
- data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
- data/lib/puppet/module_tool/applications/installer.rb +7 -7
- data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
- data/lib/puppet/module_tool/applications/upgrader.rb +5 -5
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +1 -1
- data/lib/puppet/module_tool/dependency.rb +2 -2
- data/lib/puppet/module_tool/errors.rb +6 -6
- data/lib/puppet/module_tool/install_directory.rb +2 -2
- data/lib/puppet/module_tool/installed_modules.rb +2 -2
- data/lib/puppet/module_tool/local_tarball.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +3 -3
- data/lib/puppet/module_tool/tar.rb +4 -4
- data/lib/puppet/network/format.rb +1 -1
- data/lib/puppet/network/format_handler.rb +3 -3
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +2 -2
- data/lib/puppet/network/http.rb +17 -14
- data/lib/puppet/network/http/api.rb +11 -7
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master.rb +3 -2
- data/lib/puppet/network/http/api/master/v3.rb +2 -25
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -33
- data/lib/puppet/network/http/api/server.rb +10 -0
- data/lib/puppet/network/http/api/server/v3.rb +39 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +48 -0
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/error.rb +1 -1
- data/lib/puppet/network/http/handler.rb +3 -3
- data/lib/puppet/network/http_pool.rb +1 -1
- data/lib/puppet/node.rb +3 -3
- data/lib/puppet/node/environment.rb +15 -8
- data/lib/puppet/node/facts.rb +3 -3
- data/lib/puppet/pal/pal_api.rb +10 -10
- data/lib/puppet/pal/pal_impl.rb +3 -3
- data/lib/puppet/parameter.rb +4 -4
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/path.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +1 -1
- data/lib/puppet/parser.rb +10 -10
- data/lib/puppet/parser/ast.rb +8 -8
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +2 -2
- data/lib/puppet/parser/catalog_compiler.rb +2 -2
- data/lib/puppet/parser/compiler.rb +5 -5
- data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
- data/lib/puppet/parser/functions.rb +4 -4
- data/lib/puppet/parser/functions/digest.rb +1 -1
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
- data/lib/puppet/parser/functions/versioncmp.rb +1 -1
- data/lib/puppet/parser/parser_factory.rb +2 -2
- data/lib/puppet/parser/resource.rb +3 -3
- data/lib/puppet/parser/scope.rb +3 -3
- data/lib/puppet/parser/script_compiler.rb +2 -2
- data/lib/puppet/parser/templatewrapper.rb +2 -2
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/configuration.rb +5 -5
- data/lib/puppet/pops.rb +57 -57
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +7 -7
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/loader/base_loader.rb +42 -32
- data/lib/puppet/pops/loader/dependency_loader.rb +2 -2
- data/lib/puppet/pops/loader/loader.rb +15 -5
- data/lib/puppet/pops/loader/module_loaders.rb +8 -8
- data/lib/puppet/pops/loader/predefined_loader.rb +4 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -1
- data/lib/puppet/pops/loader/static_loader.rb +4 -0
- data/lib/puppet/pops/loader/task_instantiator.rb +1 -1
- data/lib/puppet/pops/loaders.rb +4 -4
- data/lib/puppet/pops/lookup/invocation.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/pn_transformer.rb +1 -1
- data/lib/puppet/pops/parser/eparser.rb +2 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
- data/lib/puppet/pops/parser/lexer2.rb +5 -9
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +4 -4
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/serialization/json.rb +1 -1
- data/lib/puppet/pops/serialization/json_path.rb +1 -1
- data/lib/puppet/pops/time/timespan.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +1 -1
- data/lib/puppet/pops/types/string_converter.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_formatter.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +1 -1
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/pops/validation/checker4_0.rb +1 -2
- data/lib/puppet/property.rb +3 -3
- data/lib/puppet/property/boolean.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/property/keyvalue.rb +1 -1
- data/lib/puppet/property/list.rb +2 -2
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/provider.rb +2 -2
- data/lib/puppet/provider/confine.rb +2 -2
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/exec/posix.rb +1 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +1 -1
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/group/aix.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +15 -10
- data/lib/puppet/provider/group/ldap.rb +1 -1
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/group/windows_adsi.rb +1 -1
- data/lib/puppet/provider/ldap.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/nameservice/objectadd.rb +1 -1
- data/lib/puppet/provider/nameservice/pw.rb +1 -1
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +2 -2
- 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 +32 -4
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dnfmodule.rb +2 -2
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +3 -3
- data/lib/puppet/provider/package/hpux.rb +1 -1
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +2 -2
- data/lib/puppet/provider/package/openbsd.rb +1 -1
- data/lib/puppet/provider/package/opkg.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +1 -1
- data/lib/puppet/provider/package/pip.rb +3 -3
- data/lib/puppet/provider/package/pkg.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/lib/puppet/provider/package/pkgin.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/portupgrade.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +12 -1
- data/lib/puppet/provider/package/puppetserver_gem.rb +0 -0
- data/lib/puppet/provider/package/rpm.rb +2 -2
- data/lib/puppet/provider/package/sun.rb +1 -1
- data/lib/puppet/provider/package/windows.rb +3 -3
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +4 -4
- data/lib/puppet/provider/package/yum.rb +3 -3
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +3 -3
- data/lib/puppet/provider/service/base.rb +6 -4
- data/lib/puppet/provider/service/daemontools.rb +0 -1
- data/lib/puppet/provider/service/debian.rb +5 -5
- data/lib/puppet/provider/service/init.rb +1 -1
- data/lib/puppet/provider/service/launchd.rb +9 -3
- data/lib/puppet/provider/service/service.rb +28 -3
- data/lib/puppet/provider/service/smf.rb +0 -24
- data/lib/puppet/provider/service/src.rb +2 -2
- data/lib/puppet/provider/service/systemd.rb +12 -7
- data/lib/puppet/provider/service/windows.rb +38 -0
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +2 -2
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/openbsd.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -2
- data/lib/puppet/provider/user/useradd.rb +65 -11
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/indirection.rb +4 -4
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/reports.rb +1 -1
- data/lib/puppet/reports/http.rb +2 -2
- data/lib/puppet/reports/log.rb +1 -1
- data/lib/puppet/reports/store.rb +2 -2
- data/lib/puppet/resource.rb +4 -4
- data/lib/puppet/resource/catalog.rb +5 -5
- data/lib/puppet/resource/status.rb +2 -2
- data/lib/puppet/resource/type.rb +4 -4
- data/lib/puppet/resource/type_collection.rb +4 -4
- data/lib/puppet/runtime.rb +1 -1
- data/lib/puppet/scheduler.rb +4 -4
- data/lib/puppet/settings.rb +31 -30
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/base_setting.rb +2 -2
- data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/environment_conf.rb +1 -0
- data/lib/puppet/settings/errors.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +3 -3
- data/lib/puppet/ssl.rb +11 -11
- data/lib/puppet/ssl/base.rb +3 -3
- data/lib/puppet/ssl/certificate.rb +1 -1
- data/lib/puppet/ssl/certificate_request.rb +2 -2
- data/lib/puppet/ssl/certificate_request_attributes.rb +2 -2
- data/lib/puppet/ssl/oids.rb +1 -1
- data/lib/puppet/ssl/openssl_loader.rb +1 -1
- data/lib/puppet/ssl/ssl_context.rb +1 -1
- data/lib/puppet/ssl/ssl_provider.rb +1 -1
- data/lib/puppet/ssl/state_machine.rb +2 -2
- data/lib/puppet/ssl/verifier.rb +5 -1
- data/lib/puppet/syntax_checkers/base64.rb +1 -1
- data/lib/puppet/syntax_checkers/epp.rb +1 -1
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/syntax_checkers/pp.rb +1 -1
- data/lib/puppet/transaction.rb +11 -11
- data/lib/puppet/transaction/event.rb +4 -4
- data/lib/puppet/transaction/event_manager.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +2 -2
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +14 -14
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/file.rb +37 -19
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/checksum_value.rb +2 -2
- data/lib/puppet/type/file/content.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +2 -2
- data/lib/puppet/type/file/ensure.rb +1 -1
- data/lib/puppet/type/file/group.rb +1 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/selcontext.rb +2 -2
- data/lib/puppet/type/file/source.rb +4 -4
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/group.rb +2 -2
- data/lib/puppet/type/package.rb +5 -5
- data/lib/puppet/type/resources.rb +2 -2
- data/lib/puppet/type/service.rb +10 -29
- data/lib/puppet/type/tidy.rb +24 -5
- data/lib/puppet/type/user.rb +4 -4
- data/lib/puppet/util.rb +43 -34
- data/lib/puppet/util/at_fork.rb +3 -3
- data/lib/puppet/util/at_fork/solaris.rb +1 -1
- data/lib/puppet/util/autoload.rb +4 -4
- data/lib/puppet/util/checksums.rb +3 -3
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line.rb +6 -6
- data/lib/puppet/util/command_line/puppet_option_parser.rb +2 -2
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/feature.rb +2 -2
- data/lib/puppet/util/filetype.rb +1 -1
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +2 -2
- data/lib/puppet/util/instance_loader.rb +3 -3
- data/lib/puppet/util/json_lockfile.rb +1 -1
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/generator.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +3 -3
- data/lib/puppet/util/limits.rb +1 -1
- data/lib/puppet/util/log.rb +6 -6
- data/lib/puppet/util/log/destinations.rb +1 -1
- data/lib/puppet/util/logging.rb +2 -2
- data/lib/puppet/util/metric.rb +2 -2
- data/lib/puppet/util/monkey_patches.rb +14 -3
- data/lib/puppet/util/network_device/base.rb +3 -3
- data/lib/puppet/util/network_device/config.rb +2 -2
- data/lib/puppet/util/network_device/transport.rb +1 -1
- data/lib/puppet/util/network_device/transport/base.rb +2 -2
- data/lib/puppet/util/package/version/range.rb +6 -6
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/range/gt.rb +1 -1
- data/lib/puppet/util/package/version/range/gt_eq.rb +1 -1
- data/lib/puppet/util/package/version/range/lt.rb +1 -1
- data/lib/puppet/util/package/version/range/lt_eq.rb +1 -1
- data/lib/puppet/util/package/version/range/min_max.rb +1 -1
- data/lib/puppet/util/package/version/range/simple.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/profiler.rb +3 -3
- data/lib/puppet/util/profiler/aggregate.rb +2 -2
- data/lib/puppet/util/profiler/object_counts.rb +1 -1
- data/lib/puppet/util/profiler/wall_clock.rb +1 -1
- data/lib/puppet/util/provider_features.rb +2 -2
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
- data/lib/puppet/util/rdoc/parser.rb +6 -6
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +2 -2
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +30 -4
- data/lib/puppet/util/skip_tags.rb +1 -1
- data/lib/puppet/util/storage.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +2 -2
- data/lib/puppet/util/symbolic_file_mode.rb +1 -1
- data/lib/puppet/util/tag_set.rb +1 -1
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +3 -3
- data/lib/puppet/util/windows.rb +20 -20
- data/lib/puppet/util/windows/access_control_entry.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +47 -1
- data/lib/puppet/util/windows/daemon.rb +1 -1
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +1 -1
- data/lib/puppet/util/windows/monkey_patches/process.rb +2 -2
- data/lib/puppet/util/windows/principal.rb +10 -3
- data/lib/puppet/util/windows/process.rb +2 -2
- data/lib/puppet/util/windows/registry.rb +1 -1
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +1 -1
- data/lib/puppet/util/windows/security_descriptor.rb +1 -1
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/util/windows/sid.rb +5 -3
- data/lib/puppet/util/windows/user.rb +1 -1
- data/lib/puppet/vendor.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +4 -4
- data/lib/puppet/x509/cert_provider.rb +1 -1
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet_pal.rb +2 -2
- data/locales/puppet.pot +173 -157
- data/man/man5/puppet.conf.5 +263 -240
- 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 +5 -2
- 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 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +5 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
- data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/ca.pem +57 -35
- data/spec/fixtures/ssl/crl.pem +28 -18
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +33 -24
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +108 -58
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
- data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
- data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
- data/spec/fixtures/ssl/intermediate.pem +57 -36
- data/spec/fixtures/ssl/pluto-key.pem +107 -57
- data/spec/fixtures/ssl/pluto.pem +52 -30
- data/spec/fixtures/ssl/request-key.pem +107 -57
- data/spec/fixtures/ssl/request.pem +47 -26
- data/spec/fixtures/ssl/revoked-key.pem +107 -57
- data/spec/fixtures/ssl/revoked.pem +52 -30
- data/spec/fixtures/ssl/signed-key.pem +107 -57
- data/spec/fixtures/ssl/signed.pem +52 -30
- data/spec/fixtures/ssl/tampered-cert.pem +52 -30
- data/spec/fixtures/ssl/tampered-csr.pem +47 -26
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
- data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-ca.pem +55 -33
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/integration/application/agent_spec.rb +33 -0
- data/spec/integration/application/plugin_spec.rb +1 -1
- data/spec/integration/http/client_spec.rb +12 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
- data/spec/integration/parser/collection_spec.rb +10 -0
- data/spec/integration/type/file_spec.rb +5 -5
- data/spec/integration/util/windows/adsi_spec.rb +18 -0
- data/spec/integration/util/windows/principal_spec.rb +21 -0
- data/spec/integration/util/windows/registry_spec.rb +6 -0
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/files.rb +1 -1
- data/spec/shared_contexts/provider.rb +16 -0
- data/spec/spec_helper.rb +11 -1
- data/spec/unit/application/agent_spec.rb +7 -2
- data/spec/unit/application/facts_spec.rb +58 -7
- data/spec/unit/application/ssl_spec.rb +23 -0
- data/spec/unit/configurer/downloader_spec.rb +6 -0
- data/spec/unit/configurer_spec.rb +23 -0
- data/spec/unit/environments_spec.rb +164 -88
- data/spec/unit/file_bucket/dipper_spec.rb +1 -1
- data/spec/unit/file_serving/fileset_spec.rb +60 -0
- data/spec/unit/file_system_spec.rb +9 -0
- data/spec/unit/gettext/config_spec.rb +12 -0
- data/spec/unit/http/factory_spec.rb +19 -0
- data/spec/unit/http/service/compiler_spec.rb +123 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
- data/spec/unit/indirector/facts/facter_spec.rb +9 -0
- data/spec/unit/module_spec.rb +1 -1
- data/spec/unit/network/http/api/master_spec.rb +38 -0
- data/spec/unit/network/http/api/{master → server}/v3/environments_spec.rb +2 -2
- data/spec/unit/network/http/api/{master → server}/v3_spec.rb +19 -19
- data/spec/unit/network/http/api_spec.rb +11 -11
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
- data/spec/unit/pops/lookup/context_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
- data/spec/unit/pops/types/type_parser_spec.rb +2 -1
- data/spec/unit/pops/validator/validator_spec.rb +20 -43
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/package/apt_spec.rb +24 -15
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/dnfmodule_spec.rb +13 -4
- data/spec/unit/provider/package/gem_spec.rb +3 -1
- data/spec/unit/provider/package/pip2_spec.rb +3 -1
- data/spec/unit/provider/package/pip3_spec.rb +3 -1
- data/spec/unit/provider/package/pip_spec.rb +3 -1
- data/spec/unit/provider/package/pkg_spec.rb +44 -44
- data/spec/unit/provider/package/puppet_gem_spec.rb +31 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -0
- data/spec/unit/provider/service/base_spec.rb +8 -8
- data/spec/unit/provider/service/bsd_spec.rb +0 -4
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +15 -17
- data/spec/unit/provider/service/gentoo_spec.rb +19 -14
- data/spec/unit/provider/service/init_spec.rb +29 -20
- data/spec/unit/provider/service/launchd_spec.rb +10 -12
- data/spec/unit/provider/service/openbsd_spec.rb +21 -35
- data/spec/unit/provider/service/openrc_spec.rb +15 -14
- data/spec/unit/provider/service/openwrt_spec.rb +3 -1
- data/spec/unit/provider/service/redhat_spec.rb +20 -19
- data/spec/unit/provider/service/smf_spec.rb +6 -5
- data/spec/unit/provider/service/src_spec.rb +5 -10
- data/spec/unit/provider/service/systemd_spec.rb +68 -29
- data/spec/unit/provider/service/upstart_spec.rb +25 -20
- data/spec/unit/provider/service/windows_spec.rb +202 -0
- data/spec/unit/provider/user/useradd_spec.rb +70 -3
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/ssl/certificate_request_spec.rb +4 -10
- data/spec/unit/ssl/state_machine_spec.rb +19 -5
- data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
- data/spec/unit/transaction_spec.rb +18 -20
- data/spec/unit/type/file/selinux_spec.rb +3 -3
- data/spec/unit/type/service_spec.rb +10 -154
- data/spec/unit/type/tidy_spec.rb +17 -7
- data/spec/unit/util/at_fork_spec.rb +9 -9
- data/spec/unit/util/posix_spec.rb +1 -1
- data/spec/unit/util/selinux_spec.rb +87 -16
- data/spec/unit/util/windows/sid_spec.rb +6 -0
- data/tasks/generate_cert_fixtures.rake +2 -2
- metadata +15 -16
- data/spec/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -13
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -23
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -43
@@ -4,15 +4,6 @@ describe 'Puppet::Type::Service::Provider::Redhat',
|
|
4
4
|
unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
5
5
|
let(:provider_class) { Puppet::Type.type(:service).provider(:redhat) }
|
6
6
|
|
7
|
-
# `execute` and `texecute` start a new process, consequently setting $CHILD_STATUS to a Process::Status instance,
|
8
|
-
# but because they are mocked, an external process is never executed and $CHILD_STATUS remain nil.
|
9
|
-
# In order to execute some parts of the code under test and to mock $CHILD_STATUS, we need this variable to be a
|
10
|
-
# Process::Status instance. We can achieve this by starting a process that does nothing (exit 0). By doing this,
|
11
|
-
# $CHILD_STATUS will be initialised with a instance of Process::Status and we will be able to mock it.
|
12
|
-
before(:all) do
|
13
|
-
`exit 0`
|
14
|
-
end
|
15
|
-
|
16
7
|
before :each do
|
17
8
|
@class = Puppet::Type.type(:service).provider(:redhat)
|
18
9
|
@resource = double('resource')
|
@@ -65,7 +56,9 @@ describe 'Puppet::Type::Service::Provider::Redhat',
|
|
65
56
|
it "should call service status when initialized from provider" do
|
66
57
|
allow(@resource).to receive(:[]).with(:status).and_return(nil)
|
67
58
|
allow(@provider).to receive(:get).with(:hasstatus).and_return(true)
|
68
|
-
expect(@provider).to receive(:execute)
|
59
|
+
expect(@provider).to receive(:execute)
|
60
|
+
.with(['/sbin/service', 'myservice', 'status'], any_args)
|
61
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
69
62
|
@provider.send(:status)
|
70
63
|
end
|
71
64
|
end
|
@@ -127,13 +120,17 @@ describe 'Puppet::Type::Service::Provider::Redhat',
|
|
127
120
|
describe "when running #{method}" do
|
128
121
|
it "should use any provided explicit command" do
|
129
122
|
allow(@resource).to receive(:[]).with(method).and_return("/user/specified/command")
|
130
|
-
expect(@provider).to receive(:execute)
|
123
|
+
expect(@provider).to receive(:execute)
|
124
|
+
.with(["/user/specified/command"], any_args)
|
125
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
131
126
|
@provider.send(method)
|
132
127
|
end
|
133
128
|
|
134
129
|
it "should execute the service script with #{method} when no explicit command is provided" do
|
135
130
|
allow(@resource).to receive(:[]).with("has#{method}".intern).and_return(:true)
|
136
|
-
expect(@provider).to receive(:execute)
|
131
|
+
expect(@provider).to receive(:execute)
|
132
|
+
.with(['/sbin/service', 'myservice', method.to_s], any_args)
|
133
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
137
134
|
@provider.send(method)
|
138
135
|
end
|
139
136
|
end
|
@@ -146,20 +143,24 @@ describe 'Puppet::Type::Service::Provider::Redhat',
|
|
146
143
|
end
|
147
144
|
|
148
145
|
it "should execute the service script with fail_on_failure false" do
|
149
|
-
expect(@provider).to receive(:
|
146
|
+
expect(@provider).to receive(:execute)
|
147
|
+
.with(['/sbin/service', 'myservice', 'status'], any_args)
|
148
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
150
149
|
@provider.status
|
151
150
|
end
|
152
151
|
|
153
152
|
it "should consider the process running if the command returns 0" do
|
154
|
-
expect(@provider).to receive(:
|
155
|
-
|
153
|
+
expect(@provider).to receive(:execute)
|
154
|
+
.with(['/sbin/service', 'myservice', 'status'], hash_including(failonfail: false))
|
155
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
156
156
|
expect(@provider.status).to eq(:running)
|
157
157
|
end
|
158
158
|
|
159
159
|
[-10,-1,1,10].each { |ec|
|
160
160
|
it "should consider the process stopped if the command returns something non-0" do
|
161
|
-
expect(@provider).to receive(:
|
162
|
-
|
161
|
+
expect(@provider).to receive(:execute)
|
162
|
+
.with(['/sbin/service', 'myservice', 'status'], hash_including(failonfail: false))
|
163
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', ec))
|
163
164
|
expect(@provider.status).to eq(:stopped)
|
164
165
|
end
|
165
166
|
}
|
@@ -180,8 +181,8 @@ describe 'Puppet::Type::Service::Provider::Redhat',
|
|
180
181
|
|
181
182
|
context "when restarting and hasrestart is not :true" do
|
182
183
|
it "should stop and restart the process with the server script" do
|
183
|
-
expect(@provider).to receive(:
|
184
|
-
expect(@provider).to receive(:
|
184
|
+
expect(@provider).to receive(:execute).with(['/sbin/service', 'myservice', 'stop'], hash_including(failonfail: true))
|
185
|
+
expect(@provider).to receive(:execute).with(['/sbin/service', 'myservice', 'start'], hash_including(failonfail: true))
|
185
186
|
@provider.restart
|
186
187
|
end
|
187
188
|
end
|
@@ -255,12 +255,12 @@ describe 'Puppet::Type::Service::Provider::Smf',
|
|
255
255
|
|
256
256
|
before(:each) do
|
257
257
|
allow(@provider).to receive(:service_fmri).and_return(fmri)
|
258
|
-
allow(@provider).to receive(:
|
258
|
+
allow(@provider).to receive(:execute)
|
259
259
|
allow(@provider).to receive(:wait)
|
260
260
|
end
|
261
261
|
|
262
262
|
it 'should restart the service' do
|
263
|
-
expect(@provider).to receive(:
|
263
|
+
expect(@provider).to receive(:execute)
|
264
264
|
@provider.restart
|
265
265
|
end
|
266
266
|
|
@@ -286,9 +286,9 @@ describe 'Puppet::Type::Service::Provider::Smf',
|
|
286
286
|
|
287
287
|
it "should run the status command if it's passed in" do
|
288
288
|
set_resource_params({ :status => 'status_cmd' })
|
289
|
-
expect(@provider).to receive(:
|
290
|
-
|
291
|
-
|
289
|
+
expect(@provider).to receive(:execute)
|
290
|
+
.with(["status_cmd"], hash_including(failonfail: false))
|
291
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
292
292
|
expect(@provider).not_to receive(:service_states)
|
293
293
|
|
294
294
|
expect(@provider.status).to eql(:running)
|
@@ -338,6 +338,7 @@ describe 'Puppet::Type::Service::Provider::Smf',
|
|
338
338
|
it "should return stopped for an incomplete service on Solaris 11" do
|
339
339
|
allow(Facter).to receive(:value).with(:operatingsystemrelease).and_return('11.3')
|
340
340
|
allow(@provider).to receive(:complete_service?).and_return(false)
|
341
|
+
allow(@provider).to receive(:svcs).with('-l', @provider.resource[:name]).and_return(File.read(my_fixture('svcs_fmri.out')))
|
341
342
|
expect(@provider.status).to eq(:stopped)
|
342
343
|
end
|
343
344
|
end
|
@@ -4,10 +4,6 @@ describe 'Puppet::Type::Service::Provider::Src',
|
|
4
4
|
unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
5
5
|
let(:provider_class) { Puppet::Type.type(:service).provider(:src) }
|
6
6
|
|
7
|
-
before :all do
|
8
|
-
`exit 0`
|
9
|
-
end
|
10
|
-
|
11
7
|
before :each do
|
12
8
|
@resource = double('resource')
|
13
9
|
allow(@resource).to receive(:[]).and_return(nil)
|
@@ -110,20 +106,19 @@ _EOF_
|
|
110
106
|
|
111
107
|
context "when checking if it is enabled" do
|
112
108
|
it "should execute the lsitab command" do
|
113
|
-
expect(@provider).to receive(:execute)
|
114
|
-
|
109
|
+
expect(@provider).to receive(:execute)
|
110
|
+
.with(['/usr/sbin/lsitab', 'myservice'], {:combine => true, :failonfail => false})
|
111
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
115
112
|
@provider.enabled?
|
116
113
|
end
|
117
114
|
|
118
115
|
it "should return false when lsitab returns non-zero" do
|
119
|
-
|
120
|
-
allow($CHILD_STATUS).to receive(:exitstatus).and_return(1)
|
116
|
+
expect(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
|
121
117
|
expect(@provider.enabled?).to eq(:false)
|
122
118
|
end
|
123
119
|
|
124
120
|
it "should return true when lsitab returns zero" do
|
125
|
-
allow(@provider).to receive(:execute)
|
126
|
-
allow($CHILD_STATUS).to receive(:exitstatus).and_return(0)
|
121
|
+
allow(@provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', 0))
|
127
122
|
expect(@provider.enabled?).to eq(:true)
|
128
123
|
end
|
129
124
|
end
|
@@ -10,19 +10,14 @@ describe 'Puppet::Type::Service::Provider::Systemd',
|
|
10
10
|
allow(provider_class).to receive(:which).with('systemctl').and_return('/bin/systemctl')
|
11
11
|
end
|
12
12
|
|
13
|
-
# `execute` and `texecute` start a new process, consequently setting $CHILD_STATUS to a Process::Status instance,
|
14
|
-
# but because they are mocked, an external process is never executed and $CHILD_STATUS remain nil.
|
15
|
-
# In order to execute some parts of the code under test and to mock $CHILD_STATUS, we need this variable to be a
|
16
|
-
# Process::Status instance. We can achieve this by starting a process that does nothing (exit 0). By doing this,
|
17
|
-
# $CHILD_STATUS will be initialised with a instance of Process::Status and we will be able to mock it.
|
18
|
-
before(:all) do
|
19
|
-
`exit 0`
|
20
|
-
end
|
21
|
-
|
22
13
|
let :provider do
|
23
14
|
provider_class.new(:name => 'sshd.service')
|
24
15
|
end
|
25
16
|
|
17
|
+
let :process_output do
|
18
|
+
Puppet::Util::Execution::ProcessOutput.new('', 0)
|
19
|
+
end
|
20
|
+
|
26
21
|
osfamilies = [ 'archlinux', 'coreos' ]
|
27
22
|
|
28
23
|
osfamilies.each do |osfamily|
|
@@ -200,6 +195,17 @@ describe 'Puppet::Type::Service::Provider::Systemd',
|
|
200
195
|
})
|
201
196
|
end
|
202
197
|
|
198
|
+
it "correctly parses services when list-unit-files has an additional column" do
|
199
|
+
expect(provider_class).to receive(:systemctl).with('list-unit-files', '--type', 'service', '--full', '--all', '--no-pager').and_return(File.read(my_fixture('list_unit_files_services_vendor_preset')))
|
200
|
+
expect(provider_class.instances.map(&:name)).to match_array(%w{
|
201
|
+
arp-ethers.service
|
202
|
+
auditd.service
|
203
|
+
dbus.service
|
204
|
+
umountnfs.service
|
205
|
+
urandom.service
|
206
|
+
})
|
207
|
+
end
|
208
|
+
|
203
209
|
it "should print a debug message when a service with the state `bad` is found" do
|
204
210
|
expect(provider_class).to receive(:systemctl).with('list-unit-files', '--type', 'service', '--full', '--all', '--no-pager').and_return(File.read(my_fixture('list_unit_files_services')))
|
205
211
|
expect(Puppet).to receive(:debug).with("apparmor.service marked as bad by `systemctl`. It is recommended to be further checked.")
|
@@ -324,6 +330,16 @@ Jun 14 21:43:23 foo.example.com systemd[1]: sshd.service lacks both ExecStart= a
|
|
324
330
|
and_return(Puppet::Util::Execution::ProcessOutput.new("masked\n", 1))
|
325
331
|
expect(provider.enabled?).to eq(:mask)
|
326
332
|
end
|
333
|
+
|
334
|
+
it "should consider nonexistent services to be disabled" do
|
335
|
+
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'doesnotexist'))
|
336
|
+
expect(provider).to receive(:execute).with(['/bin/systemctl','is-enabled', '--', 'doesnotexist'], :failonfail => false)
|
337
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new("", 1))
|
338
|
+
expect(provider).to receive(:execute).with(["/usr/sbin/invoke-rc.d", "--quiet", "--query", "doesnotexist", "start"], :failonfail => false)
|
339
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new("", 1))
|
340
|
+
|
341
|
+
expect(provider.enabled?).to be(:false)
|
342
|
+
end
|
327
343
|
end
|
328
344
|
|
329
345
|
describe "#enable" do
|
@@ -358,25 +374,29 @@ Jun 14 21:43:23 foo.example.com systemd[1]: sshd.service lacks both ExecStart= a
|
|
358
374
|
# Note: systemd provider does not care about hasstatus or a custom status
|
359
375
|
# command. I just assume that it does not make sense for systemd.
|
360
376
|
describe "#status" do
|
361
|
-
it "should return running if
|
377
|
+
it "should return running if the command returns 0" do
|
362
378
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service'))
|
363
|
-
expect(provider).to receive(:execute)
|
364
|
-
|
379
|
+
expect(provider).to receive(:execute)
|
380
|
+
.with(['/bin/systemctl','is-active', '--', 'sshd.service'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
381
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new("active\n", 0))
|
365
382
|
expect(provider.status).to eq(:running)
|
366
383
|
end
|
367
384
|
|
368
385
|
[-10,-1,3,10].each { |ec|
|
369
386
|
it "should return stopped if the command returns something non-0" do
|
370
387
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service'))
|
371
|
-
expect(provider).to receive(:execute)
|
372
|
-
|
388
|
+
expect(provider).to receive(:execute)
|
389
|
+
.with(['/bin/systemctl','is-active', '--', 'sshd.service'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
390
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new("inactive\n", ec))
|
373
391
|
expect(provider.status).to eq(:stopped)
|
374
392
|
end
|
375
393
|
}
|
376
394
|
|
377
395
|
it "should use the supplied status command if specified" do
|
378
396
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service', :status => '/bin/foo'))
|
379
|
-
expect(provider).to receive(:execute)
|
397
|
+
expect(provider).to receive(:execute)
|
398
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
399
|
+
.and_return(process_output)
|
380
400
|
provider.status
|
381
401
|
end
|
382
402
|
end
|
@@ -419,8 +439,7 @@ Jun 14 21:43:23 foo.example.com systemd[1]: sshd.service lacks both ExecStart= a
|
|
419
439
|
[104, 106].each do |status|
|
420
440
|
it "should return true when invoke-rc.d returns #{status}" do
|
421
441
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service'))
|
422
|
-
allow(provider).to receive(:
|
423
|
-
expect($CHILD_STATUS).to receive(:exitstatus).and_return(status)
|
442
|
+
allow(provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', status))
|
424
443
|
expect(provider.debian_enabled?).to eq(:true)
|
425
444
|
end
|
426
445
|
end
|
@@ -428,17 +447,15 @@ Jun 14 21:43:23 foo.example.com systemd[1]: sshd.service lacks both ExecStart= a
|
|
428
447
|
[101, 105].each do |status|
|
429
448
|
it "should return true when status is #{status} and there are at least 4 start links" do
|
430
449
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service'))
|
431
|
-
allow(provider).to receive(:
|
450
|
+
allow(provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', status))
|
432
451
|
expect(provider).to receive(:get_start_link_count).and_return(4)
|
433
|
-
expect($CHILD_STATUS).to receive(:exitstatus).twice.and_return(status)
|
434
452
|
expect(provider.debian_enabled?).to eq(:true)
|
435
453
|
end
|
436
454
|
|
437
455
|
it "should return false when status is #{status} and there are less than 4 start links" do
|
438
456
|
provider = provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service'))
|
439
|
-
allow(provider).to receive(:
|
457
|
+
allow(provider).to receive(:execute).and_return(Puppet::Util::Execution::ProcessOutput.new('', status))
|
440
458
|
expect(provider).to receive(:get_start_link_count).and_return(1)
|
441
|
-
expect($CHILD_STATUS).to receive(:exitstatus).twice.and_return(status)
|
442
459
|
expect(provider.debian_enabled?).to eq(:false)
|
443
460
|
end
|
444
461
|
end
|
@@ -456,17 +473,39 @@ Jun 14 21:43:23 foo.example.com systemd[1]: sshd.service lacks both ExecStart= a
|
|
456
473
|
context 'when service state is static' do
|
457
474
|
let(:service_state) { 'static' }
|
458
475
|
|
459
|
-
|
460
|
-
|
461
|
-
|
476
|
+
context 'when enable is not mask' do
|
477
|
+
it 'is always enabled_insync even if current value is the same as expected' do
|
478
|
+
expect(provider).to be_enabled_insync(:false)
|
479
|
+
end
|
462
480
|
|
463
|
-
|
464
|
-
|
481
|
+
it 'is always enabled_insync even if current value is not the same as expected' do
|
482
|
+
expect(provider).to be_enabled_insync(:true)
|
483
|
+
end
|
484
|
+
|
485
|
+
it 'logs a debug messsage' do
|
486
|
+
expect(Puppet).to receive(:debug).with("Unable to enable or disable static service sshd.service")
|
487
|
+
provider.enabled_insync?(:true)
|
488
|
+
end
|
465
489
|
end
|
466
490
|
|
467
|
-
|
468
|
-
|
469
|
-
|
491
|
+
context 'when enable is mask' do
|
492
|
+
let(:provider) do
|
493
|
+
provider_class.new(Puppet::Type.type(:service).new(:name => 'sshd.service',
|
494
|
+
:enable => 'mask'))
|
495
|
+
end
|
496
|
+
|
497
|
+
it 'is enabled_insync if current value is the same as expected' do
|
498
|
+
expect(provider).to be_enabled_insync(:mask)
|
499
|
+
end
|
500
|
+
|
501
|
+
it 'is not enabled_insync if current value is not the same as expected' do
|
502
|
+
expect(provider).not_to be_enabled_insync(:true)
|
503
|
+
end
|
504
|
+
|
505
|
+
it 'logs no debug messsage' do
|
506
|
+
expect(Puppet).not_to receive(:debug)
|
507
|
+
provider.enabled_insync?(:true)
|
508
|
+
end
|
470
509
|
end
|
471
510
|
end
|
472
511
|
|
@@ -5,10 +5,7 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
5
5
|
let(:manual) { "\nmanual" }
|
6
6
|
let(:start_on_default_runlevels) { "\nstart on runlevel [2,3,4,5]" }
|
7
7
|
let!(:provider_class) { Puppet::Type.type(:service).provider(:upstart) }
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
`exit 0`
|
11
|
-
end
|
8
|
+
let(:process_output) { Puppet::Util::Execution::ProcessOutput.new('', 0) }
|
12
9
|
|
13
10
|
def given_contents_of(file, content)
|
14
11
|
File.open(file, 'w') do |f|
|
@@ -121,8 +118,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
121
118
|
provider = provider_class.new(resource)
|
122
119
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
123
120
|
|
124
|
-
expect(provider).to receive(:status_exec)
|
125
|
-
|
121
|
+
expect(provider).to receive(:status_exec)
|
122
|
+
.with(["foo"])
|
123
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new("foo start/running, process 1000", 0))
|
126
124
|
expect(provider.status).to eq(:running)
|
127
125
|
end
|
128
126
|
|
@@ -133,8 +131,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
133
131
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
134
132
|
|
135
133
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
136
|
-
expect(provider).to receive(:execute)
|
137
|
-
|
134
|
+
expect(provider).to receive(:execute)
|
135
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
136
|
+
.and_return(process_output)
|
138
137
|
provider.status
|
139
138
|
end
|
140
139
|
|
@@ -144,8 +143,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
144
143
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
145
144
|
|
146
145
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
147
|
-
expect(provider).to receive(:execute)
|
148
|
-
|
146
|
+
expect(provider).to receive(:execute)
|
147
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
148
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
|
149
149
|
expect(provider.status).to eq(:stopped)
|
150
150
|
end
|
151
151
|
|
@@ -155,8 +155,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
155
155
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
156
156
|
|
157
157
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
158
|
-
expect(provider).to receive(:execute)
|
159
|
-
|
158
|
+
expect(provider).to receive(:execute)
|
159
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
160
|
+
.and_return(process_output)
|
160
161
|
expect(provider.status).to eq(:running)
|
161
162
|
end
|
162
163
|
end
|
@@ -190,8 +191,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
190
191
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
191
192
|
|
192
193
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
193
|
-
expect(provider).to receive(:execute)
|
194
|
-
|
194
|
+
expect(provider).to receive(:execute)
|
195
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
196
|
+
.and_return(process_output)
|
195
197
|
provider.status
|
196
198
|
end
|
197
199
|
|
@@ -201,8 +203,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
201
203
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
202
204
|
|
203
205
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
204
|
-
expect(provider).to receive(:execute)
|
205
|
-
|
206
|
+
expect(provider).to receive(:execute)
|
207
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
208
|
+
.and_return(Puppet::Util::Execution::ProcessOutput.new('', 1))
|
206
209
|
expect(provider.status).to eq(:stopped)
|
207
210
|
end
|
208
211
|
|
@@ -212,8 +215,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
212
215
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
213
216
|
|
214
217
|
expect(provider).not_to receive(:status_exec).with(['foo'])
|
215
|
-
expect(provider).to receive(:execute)
|
216
|
-
|
218
|
+
expect(provider).to receive(:execute)
|
219
|
+
.with(['/bin/foo'], :failonfail => false, :override_locale => false, :squelch => false, :combine => true)
|
220
|
+
.and_return(process_output)
|
217
221
|
expect(provider.status).to eq(:running)
|
218
222
|
end
|
219
223
|
end
|
@@ -245,8 +249,9 @@ describe 'Puppet::Type::Service::Provider::Upstart',
|
|
245
249
|
provider = provider_class.new(resource)
|
246
250
|
allow(provider).to receive(:is_upstart?).and_return(true)
|
247
251
|
|
248
|
-
expect(provider).to receive(:status_exec)
|
249
|
-
|
252
|
+
expect(provider).to receive(:status_exec)
|
253
|
+
.with(["foostartbar"]).and_return("foostartbar stop/waiting")
|
254
|
+
.and_return(process_output)
|
250
255
|
expect(provider.status).to eq(:stopped)
|
251
256
|
end
|
252
257
|
end
|
@@ -270,4 +270,206 @@ describe 'Puppet::Type::Service::Provider::Windows',
|
|
270
270
|
}.to raise_error(Puppet::Error, /Cannot enable #{name}/)
|
271
271
|
end
|
272
272
|
end
|
273
|
+
|
274
|
+
describe "when managing logon credentials" do
|
275
|
+
before do
|
276
|
+
allow(Puppet::Util::Windows::ADSI).to receive(:computer_name).and_return(computer_name)
|
277
|
+
allow(Puppet::Util::Windows::SID).to receive(:name_to_principal).and_return(principal)
|
278
|
+
allow(Puppet::Util::Windows::Service).to receive(:set_startup_configuration).and_return(nil)
|
279
|
+
end
|
280
|
+
|
281
|
+
let(:computer_name) { 'myPC' }
|
282
|
+
|
283
|
+
describe "#logonaccount=" do
|
284
|
+
before do
|
285
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).and_return(true)
|
286
|
+
resource[:logonaccount] = user_input
|
287
|
+
provider.logonaccount_insync?(user_input)
|
288
|
+
end
|
289
|
+
|
290
|
+
let(:user_input) { principal.account }
|
291
|
+
let(:principal) do
|
292
|
+
Puppet::Util::Windows::SID::Principal.new("myUser", nil, nil, computer_name, :SidTypeUser)
|
293
|
+
end
|
294
|
+
|
295
|
+
context "when given user is 'myUser'" do
|
296
|
+
it "should fail when the `Log On As A Service` right is missing from given user" do
|
297
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with(principal.domain_account).and_return("")
|
298
|
+
expect { provider.logonaccount=(user_input) }.to raise_error(Puppet::Error, /".\\#{principal.account}" is missing the 'Log On As A Service' right./)
|
299
|
+
end
|
300
|
+
|
301
|
+
it "should fail when the `Log On As A Service` right is set to denied for given user" do
|
302
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with(principal.domain_account).and_return("SeDenyServiceLogonRight")
|
303
|
+
expect { provider.logonaccount=(user_input) }.to raise_error(Puppet::Error, /".\\#{principal.account}" has the 'Log On As A Service' right set to denied./)
|
304
|
+
end
|
305
|
+
|
306
|
+
it "should not fail when given user has the `Log On As A Service` right" do
|
307
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with(principal.domain_account).and_return("SeServiceLogonRight")
|
308
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
309
|
+
end
|
310
|
+
|
311
|
+
['myUser', 'myPC\\myUser', ".\\myUser", "MYPC\\mYuseR"].each do |user_input_variant|
|
312
|
+
let(:user_input) { user_input_variant }
|
313
|
+
|
314
|
+
it "should succesfully munge #{user_input_variant} to '.\\myUser'" do
|
315
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).with(principal.domain_account).and_return("SeServiceLogonRight")
|
316
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
317
|
+
expect(resource[:logonaccount]).to eq(".\\myUser")
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
context "when given user is a system account" do
|
323
|
+
before do
|
324
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).and_return(true)
|
325
|
+
end
|
326
|
+
|
327
|
+
let(:user_input) { principal.account }
|
328
|
+
let(:principal) do
|
329
|
+
Puppet::Util::Windows::SID::Principal.new("LOCAL SERVICE", nil, nil, "NT AUTHORITY", :SidTypeUser)
|
330
|
+
end
|
331
|
+
|
332
|
+
it "should not fail when given user is a default system account even if the `Log On As A Service` right is missing" do
|
333
|
+
expect(Puppet::Util::Windows::User).not_to receive(:get_rights)
|
334
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
335
|
+
end
|
336
|
+
|
337
|
+
['LocalSystem', '.\LocalSystem', 'myPC\LocalSystem', 'lOcALsysTem'].each do |user_input_variant|
|
338
|
+
let(:user_input) { user_input_variant }
|
339
|
+
|
340
|
+
it "should succesfully munge #{user_input_variant} to 'LocalSystem'" do
|
341
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
342
|
+
expect(resource[:logonaccount]).to eq('LocalSystem')
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
context "when domain is different from computer name" do
|
348
|
+
before do
|
349
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).and_return("SeServiceLogonRight")
|
350
|
+
end
|
351
|
+
|
352
|
+
context "when given user is from AD" do
|
353
|
+
let(:user_input) { 'myRemoteUser' }
|
354
|
+
let(:principal) do
|
355
|
+
Puppet::Util::Windows::SID::Principal.new("myRemoteUser", nil, nil, "AD", :SidTypeUser)
|
356
|
+
end
|
357
|
+
|
358
|
+
it "should not raise any error" do
|
359
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
360
|
+
end
|
361
|
+
|
362
|
+
it "should succesfully be munged" do
|
363
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
364
|
+
expect(resource[:logonaccount]).to eq('AD\myRemoteUser')
|
365
|
+
end
|
366
|
+
end
|
367
|
+
|
368
|
+
context "when given user is LocalService" do
|
369
|
+
let(:user_input) { 'LocalService' }
|
370
|
+
let(:principal) do
|
371
|
+
Puppet::Util::Windows::SID::Principal.new("LOCAL SERVICE", nil, nil, "NT AUTHORITY", :SidTypeWellKnownGroup)
|
372
|
+
end
|
373
|
+
|
374
|
+
it "should succesfully munge well known user" do
|
375
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
376
|
+
expect(resource[:logonaccount]).to eq('NT AUTHORITY\LOCAL SERVICE')
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
380
|
+
context "when given user is in SID form" do
|
381
|
+
let(:user_input) { 'S-1-5-20' }
|
382
|
+
let(:principal) do
|
383
|
+
Puppet::Util::Windows::SID::Principal.new("NETWORK SERVICE", nil, nil, "NT AUTHORITY", :SidTypeUser)
|
384
|
+
end
|
385
|
+
|
386
|
+
it "should succesfully munge" do
|
387
|
+
expect { provider.logonaccount=(user_input) }.not_to raise_error
|
388
|
+
expect(resource[:logonaccount]).to eq('NT AUTHORITY\NETWORK SERVICE')
|
389
|
+
end
|
390
|
+
end
|
391
|
+
|
392
|
+
context "when given user is actually a group" do
|
393
|
+
let(:principal) do
|
394
|
+
Puppet::Util::Windows::SID::Principal.new("Administrators", nil, nil, "BUILTIN", :SidTypeAlias)
|
395
|
+
end
|
396
|
+
let(:user_input) { 'Administrators' }
|
397
|
+
|
398
|
+
it "should fail when sid type is not user or well known user" do
|
399
|
+
expect { provider.logonaccount=(user_input) }.to raise_error(Puppet::Error, /"BUILTIN\\#{user_input}" is not a valid account/)
|
400
|
+
end
|
401
|
+
end
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
describe "#logonpassword=" do
|
406
|
+
before do
|
407
|
+
allow(Puppet::Util::Windows::User).to receive(:get_rights).and_return('SeServiceLogonRight')
|
408
|
+
resource[:logonaccount] = account
|
409
|
+
resource[:logonpassword] = user_input
|
410
|
+
provider.logonaccount_insync?(account)
|
411
|
+
end
|
412
|
+
|
413
|
+
let(:account) { 'LocalSystem' }
|
414
|
+
|
415
|
+
describe "when given logonaccount is a predefined_local_account" do
|
416
|
+
let(:user_input) { 'pass' }
|
417
|
+
let(:principal) { nil }
|
418
|
+
|
419
|
+
it "should pass validation when given account is 'LocalSystem'" do
|
420
|
+
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with('LocalSystem').and_return(true)
|
421
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with('LocalSystem').and_return(true)
|
422
|
+
|
423
|
+
expect(Puppet::Util::Windows::User).not_to receive(:password_is?)
|
424
|
+
expect { provider.logonpassword=(user_input) }.not_to raise_error
|
425
|
+
end
|
426
|
+
|
427
|
+
['LOCAL SERVICE', 'NETWORK SERVICE', 'SYSTEM'].each do |predefined_local_account|
|
428
|
+
describe "when given account is #{predefined_local_account}" do
|
429
|
+
let(:account) { 'predefined_local_account' }
|
430
|
+
let(:principal) do
|
431
|
+
Puppet::Util::Windows::SID::Principal.new(account, nil, nil, "NT AUTHORITY", :SidTypeUser)
|
432
|
+
end
|
433
|
+
|
434
|
+
it "should pass validation" do
|
435
|
+
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with(principal.account).and_return(false)
|
436
|
+
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with(principal.domain_account).and_return(false)
|
437
|
+
expect(Puppet::Util::Windows::User).to receive(:default_system_account?).with(principal.domain_account).and_return(true).twice
|
438
|
+
|
439
|
+
expect(Puppet::Util::Windows::User).not_to receive(:password_is?)
|
440
|
+
expect { provider.logonpassword=(user_input) }.not_to raise_error
|
441
|
+
end
|
442
|
+
end
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
describe "when given logonaccount is not a predefined local account" do
|
447
|
+
before do
|
448
|
+
allow(Puppet::Util::Windows::User).to receive(:localsystem?).with(".\\#{principal.account}").and_return(false)
|
449
|
+
allow(Puppet::Util::Windows::User).to receive(:default_system_account?).with(".\\#{principal.account}").and_return(false)
|
450
|
+
end
|
451
|
+
|
452
|
+
let(:account) { 'myUser' }
|
453
|
+
let(:principal) do
|
454
|
+
Puppet::Util::Windows::SID::Principal.new(account, nil, nil, computer_name, :SidTypeUser)
|
455
|
+
end
|
456
|
+
|
457
|
+
describe "when password is proven correct" do
|
458
|
+
let(:user_input) { 'myPass' }
|
459
|
+
it "should pass validation" do
|
460
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).with('myUser', 'myPass', '.').and_return(true)
|
461
|
+
expect { provider.logonpassword=(user_input) }.not_to raise_error
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
465
|
+
describe "when password is not proven correct" do
|
466
|
+
let(:user_input) { 'myWrongPass' }
|
467
|
+
it "should not pass validation" do
|
468
|
+
allow(Puppet::Util::Windows::User).to receive(:password_is?).with('myUser', 'myWrongPass', '.').and_return(false)
|
469
|
+
expect { provider.logonpassword=(user_input) }.to raise_error(Puppet::Error, /The given password is invalid for user '.\\myUser'/)
|
470
|
+
end
|
471
|
+
end
|
472
|
+
end
|
473
|
+
end
|
474
|
+
end
|
273
475
|
end
|