puppet 6.16.0-x64-mingw32 → 6.20.0-x64-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/CODEOWNERS +2 -16
- data/Gemfile +6 -2
- data/Gemfile.lock +40 -36
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +23 -6
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +70 -20
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +113 -46
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -7
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +6 -1
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection_adapter.rb +6 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +7 -6
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -8
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +38 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/reports/http.rb +2 -0
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +18 -13
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +32 -12
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -15
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fact_dif.rb +62 -0
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +501 -443
- data/man/man5/puppet.conf.5 +70 -24
- data/man/man8/puppet-agent.8 +8 -5
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +263 -54
- data/spec/integration/application/apply_spec.rb +168 -149
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +20 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +26 -9
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -17
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +60 -13
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/context/trusted_information_spec.rb +10 -4
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +64 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -10
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +42 -32
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +76 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +23 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +14 -13
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +82 -50
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +210 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +52 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +16 -9
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +52 -53
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
@@ -3,11 +3,28 @@ require 'puppet/provider/nameservice'
|
|
3
3
|
require 'puppet/etc'
|
4
4
|
require 'puppet_spec/character_encoding'
|
5
5
|
|
6
|
+
Puppet::Type.newtype(:nameservice_dummytype) do
|
7
|
+
newparam(:name)
|
8
|
+
ensurable
|
9
|
+
newproperty(:foo)
|
10
|
+
newproperty(:bar)
|
11
|
+
end
|
12
|
+
|
13
|
+
Puppet::Type.type(:nameservice_dummytype).provide(:nameservice_dummyprovider, parent: Puppet::Provider::NameService) do
|
14
|
+
def posixmethod(param)
|
15
|
+
param
|
16
|
+
end
|
17
|
+
|
18
|
+
def modifycmd(param, value)
|
19
|
+
[]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
6
23
|
describe Puppet::Provider::NameService do
|
7
24
|
|
8
25
|
before :each do
|
9
|
-
|
10
|
-
|
26
|
+
provider.class.initvars
|
27
|
+
provider.class.resource_type = faketype
|
11
28
|
end
|
12
29
|
|
13
30
|
# These are values getpwent might give you
|
@@ -41,16 +58,12 @@ describe Puppet::Provider::NameService do
|
|
41
58
|
# The provider sometimes relies on @resource for valid properties so let's
|
42
59
|
# create a fake type with properties that match our fake struct.
|
43
60
|
let :faketype do
|
44
|
-
Puppet::Type.
|
45
|
-
newparam(:name)
|
46
|
-
ensurable
|
47
|
-
newproperty(:foo)
|
48
|
-
newproperty(:bar)
|
49
|
-
end
|
61
|
+
Puppet::Type.type(:nameservice_dummytype)
|
50
62
|
end
|
51
63
|
|
52
64
|
let :provider do
|
53
|
-
|
65
|
+
Puppet::Type.type(:nameservice_dummytype).provider(:nameservice_dummyprovider)
|
66
|
+
.new(:name => 'bob', :foo => 'fooval', :bar => 'barval')
|
54
67
|
end
|
55
68
|
|
56
69
|
let :resource do
|
@@ -91,61 +104,61 @@ describe Puppet::Provider::NameService do
|
|
91
104
|
|
92
105
|
describe "#options" do
|
93
106
|
it "should add options for a valid property" do
|
94
|
-
|
95
|
-
|
96
|
-
expect(
|
97
|
-
expect(
|
98
|
-
expect(
|
107
|
+
provider.class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
108
|
+
provider.class.options :bar, :key3 => 'val3'
|
109
|
+
expect(provider.class.option(:foo, :key1)).to eq('val1')
|
110
|
+
expect(provider.class.option(:foo, :key2)).to eq('val2')
|
111
|
+
expect(provider.class.option(:bar, :key3)).to eq('val3')
|
99
112
|
end
|
100
113
|
|
101
114
|
it "should raise an error for an invalid property" do
|
102
|
-
expect {
|
115
|
+
expect { provider.class.options :baz, :key1 => 'val1' }.to raise_error(
|
103
116
|
Puppet::Error, 'baz is not a valid attribute for nameservice_dummytype')
|
104
117
|
end
|
105
118
|
end
|
106
119
|
|
107
120
|
describe "#option" do
|
108
121
|
it "should return the correct value" do
|
109
|
-
|
110
|
-
expect(
|
122
|
+
provider.class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
123
|
+
expect(provider.class.option(:foo, :key2)).to eq('val2')
|
111
124
|
end
|
112
125
|
|
113
126
|
it "should symbolize the name first" do
|
114
|
-
|
115
|
-
expect(
|
127
|
+
provider.class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
128
|
+
expect(provider.class.option('foo', :key2)).to eq('val2')
|
116
129
|
end
|
117
130
|
|
118
131
|
it "should return nil if no option has been specified earlier" do
|
119
|
-
expect(
|
132
|
+
expect(provider.class.option(:foo, :key2)).to be_nil
|
120
133
|
end
|
121
134
|
|
122
135
|
it "should return nil if no option for that property has been specified earlier" do
|
123
|
-
|
124
|
-
expect(
|
136
|
+
provider.class.options :bar, :key2 => 'val2'
|
137
|
+
expect(provider.class.option(:foo, :key2)).to be_nil
|
125
138
|
end
|
126
139
|
|
127
140
|
it "should return nil if no matching key can be found for that property" do
|
128
|
-
|
129
|
-
expect(
|
141
|
+
provider.class.options :foo, :key3 => 'val2'
|
142
|
+
expect(provider.class.option(:foo, :key2)).to be_nil
|
130
143
|
end
|
131
144
|
end
|
132
145
|
|
133
146
|
describe "#section" do
|
134
147
|
it "should raise an error if resource_type has not been set" do
|
135
|
-
expect(
|
136
|
-
expect {
|
148
|
+
expect(provider.class).to receive(:resource_type).and_return(nil)
|
149
|
+
expect { provider.class.section }.to raise_error Puppet::Error, 'Cannot determine Etc section without a resource type'
|
137
150
|
end
|
138
151
|
|
139
152
|
# the return values are hard coded so I am using types that actually make
|
140
153
|
# use of the nameservice provider
|
141
154
|
it "should return pw for users" do
|
142
|
-
|
143
|
-
expect(
|
155
|
+
provider.class.resource_type = Puppet::Type.type(:user)
|
156
|
+
expect(provider.class.section).to eq('pw')
|
144
157
|
end
|
145
158
|
|
146
159
|
it "should return gr for groups" do
|
147
|
-
|
148
|
-
expect(
|
160
|
+
provider.class.resource_type = Puppet::Type.type(:group)
|
161
|
+
expect(provider.class.section).to eq('gr')
|
149
162
|
end
|
150
163
|
end
|
151
164
|
|
@@ -213,7 +226,7 @@ describe Puppet::Provider::NameService do
|
|
213
226
|
# encoding
|
214
227
|
allow(Etc).to receive(:getpwent).and_return(*utf_8_mixed_users)
|
215
228
|
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::UTF_8) do
|
216
|
-
|
229
|
+
provider.class.instances
|
217
230
|
end
|
218
231
|
expect(result.map(&:name)).to eq(
|
219
232
|
[
|
@@ -228,7 +241,7 @@ describe Puppet::Provider::NameService do
|
|
228
241
|
it "should have object names in their original encoding/bytes if they would not be valid UTF-8" do
|
229
242
|
allow(Etc).to receive(:getpwent).and_return(*latin_1_mixed_users)
|
230
243
|
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::ISO_8859_1) do
|
231
|
-
|
244
|
+
provider.class.instances
|
232
245
|
end
|
233
246
|
expect(result.map(&:name)).to eq(
|
234
247
|
[
|
@@ -243,40 +256,40 @@ describe Puppet::Provider::NameService do
|
|
243
256
|
it "should pass the Puppet::Etc :canonical_name Struct member to the constructor" do
|
244
257
|
users = [ Struct::Passwd.new(invalid_utf_8_jose, invalid_utf_8_jose, 1002, 2000), nil ]
|
245
258
|
allow(Etc).to receive(:getpwent).and_return(*users)
|
246
|
-
expect(
|
247
|
-
|
259
|
+
expect(provider.class).to receive(:new).with(:name => escaped_utf_8_jose, :canonical_name => invalid_utf_8_jose, :ensure => :present)
|
260
|
+
provider.class.instances
|
248
261
|
end
|
249
262
|
end
|
250
263
|
|
251
264
|
describe "validate" do
|
252
265
|
it "should pass if no check is registered at all" do
|
253
|
-
expect {
|
254
|
-
expect {
|
266
|
+
expect { provider.class.validate(:foo, 300) }.to_not raise_error
|
267
|
+
expect { provider.class.validate('foo', 300) }.to_not raise_error
|
255
268
|
end
|
256
269
|
|
257
270
|
it "should pass if no check for that property is registered" do
|
258
|
-
|
259
|
-
expect {
|
260
|
-
expect {
|
271
|
+
provider.class.verify(:bar, 'Must be 100') { |val| val == 100 }
|
272
|
+
expect { provider.class.validate(:foo, 300) }.to_not raise_error
|
273
|
+
expect { provider.class.validate('foo', 300) }.to_not raise_error
|
261
274
|
end
|
262
275
|
|
263
276
|
it "should pass if the value is valid" do
|
264
|
-
|
265
|
-
expect {
|
266
|
-
expect {
|
277
|
+
provider.class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
278
|
+
expect { provider.class.validate(:foo, 100) }.to_not raise_error
|
279
|
+
expect { provider.class.validate('foo', 100) }.to_not raise_error
|
267
280
|
end
|
268
281
|
|
269
282
|
it "should raise an error if the value is invalid" do
|
270
|
-
|
271
|
-
expect {
|
272
|
-
expect {
|
283
|
+
provider.class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
284
|
+
expect { provider.class.validate(:foo, 200) }.to raise_error(ArgumentError, 'Invalid value 200: Must be 100')
|
285
|
+
expect { provider.class.validate('foo', 200) }.to raise_error(ArgumentError, 'Invalid value 200: Must be 100')
|
273
286
|
end
|
274
287
|
end
|
275
288
|
|
276
289
|
describe "getinfo" do
|
277
290
|
before :each do
|
278
291
|
# with section=foo we'll call Etc.getfoonam instead of getpwnam or getgrnam
|
279
|
-
allow(
|
292
|
+
allow(provider.class).to receive(:section).and_return('foo')
|
280
293
|
resource # initialize the resource so our provider has a @resource instance variable
|
281
294
|
end
|
282
295
|
|
@@ -296,13 +309,13 @@ describe Puppet::Provider::NameService do
|
|
296
309
|
# overriding to UTF-8, in @canonical_name for querying that state on disk
|
297
310
|
# again if needed
|
298
311
|
it "should use the instance's @canonical_name to query the system" do
|
299
|
-
provider_instance =
|
312
|
+
provider_instance = provider.class.new(:name => 'foo', :canonical_name => 'original_foo', :ensure => :present)
|
300
313
|
expect(Puppet::Etc).to receive(:send).with(:getfoonam, 'original_foo')
|
301
314
|
provider_instance.getinfo(true)
|
302
315
|
end
|
303
316
|
|
304
317
|
it "should use the instance's name instead of canonical_name if not supplied during instantiation" do
|
305
|
-
provider_instance =
|
318
|
+
provider_instance = provider.class.new(:name => 'foo', :ensure => :present)
|
306
319
|
expect(Puppet::Etc).to receive(:send).with(:getfoonam, 'foo')
|
307
320
|
provider_instance.getinfo(true)
|
308
321
|
end
|
@@ -310,16 +323,6 @@ describe Puppet::Provider::NameService do
|
|
310
323
|
|
311
324
|
describe "info2hash" do
|
312
325
|
it "should return a hash with all properties" do
|
313
|
-
# we have to have an implementation of posixmethod which has to
|
314
|
-
# convert a propertyname (e.g. comment) into a fieldname of our
|
315
|
-
# Struct (e.g. gecos). I do not want to test posixmethod here so
|
316
|
-
# let's fake an implementation which does not do any translation. We
|
317
|
-
# expect two method invocations because info2hash calls the method
|
318
|
-
# twice if the Struct responds to the propertyname (our fake Struct
|
319
|
-
# provides values for :foo and :bar) TODO: Fix that
|
320
|
-
expect(provider).to receive(:posixmethod).with(:foo).and_return(:foo).twice
|
321
|
-
expect(provider).to receive(:posixmethod).with(:bar).and_return(:bar).twice
|
322
|
-
expect(provider).to receive(:posixmethod).with(:ensure).and_return(:ensure)
|
323
326
|
expect(provider.info2hash(fakeetcobject)).to eq({ :foo => 'fooval', :bar => 'barval' })
|
324
327
|
end
|
325
328
|
end
|
@@ -330,7 +333,7 @@ describe Puppet::Provider::NameService do
|
|
330
333
|
end
|
331
334
|
|
332
335
|
it "should return the munged value otherwise" do
|
333
|
-
|
336
|
+
provider.class.options(:foo, :munge => proc { |x| x*2 })
|
334
337
|
expect(provider.munge(:foo, 100)).to eq(200)
|
335
338
|
end
|
336
339
|
end
|
@@ -341,7 +344,7 @@ describe Puppet::Provider::NameService do
|
|
341
344
|
end
|
342
345
|
|
343
346
|
it "should return the unmunged value otherwise" do
|
344
|
-
|
347
|
+
provider.class.options(:foo, :unmunge => proc { |x| x/2 })
|
345
348
|
expect(provider.unmunge(:foo, 200)).to eq(100)
|
346
349
|
end
|
347
350
|
end
|
@@ -359,15 +362,13 @@ describe Puppet::Provider::NameService do
|
|
359
362
|
end
|
360
363
|
|
361
364
|
describe "get" do
|
362
|
-
before(:each) {described_class.resource_type = faketype }
|
363
|
-
|
364
365
|
it "should return the correct getinfo value" do
|
365
366
|
expect(provider).to receive(:getinfo).with(false).and_return(:foo => 'fooval', :bar => 'barval')
|
366
367
|
expect(provider.get(:bar)).to eq('barval')
|
367
368
|
end
|
368
369
|
|
369
370
|
it "should unmunge the value first" do
|
370
|
-
|
371
|
+
provider.class.options(:bar, :munge => proc { |x| x*2}, :unmunge => proc {|x| x/2})
|
371
372
|
expect(provider).to receive(:getinfo).with(false).and_return(:foo => 200, :bar => 500)
|
372
373
|
expect(provider.get(:bar)).to eq(250)
|
373
374
|
end
|
@@ -382,7 +383,7 @@ describe Puppet::Provider::NameService do
|
|
382
383
|
describe "set" do
|
383
384
|
before :each do
|
384
385
|
resource # initialize resource so our provider has a @resource object
|
385
|
-
|
386
|
+
provider.class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
386
387
|
end
|
387
388
|
|
388
389
|
it "should raise an error on invalid values" do
|
@@ -396,7 +397,7 @@ describe Puppet::Provider::NameService do
|
|
396
397
|
end
|
397
398
|
|
398
399
|
it "should munge the value first" do
|
399
|
-
|
400
|
+
provider.class.options(:foo, :munge => proc { |x| x*2}, :unmunge => proc {|x| x/2})
|
400
401
|
expect(provider).to receive(:modifycmd).with(:foo, 200).and_return(['/bin/modify', '-f', '200' ])
|
401
402
|
expect(provider).to receive(:execute).with(['/bin/modify', '-f', '200'], hash_including(custom_environment: {}))
|
402
403
|
provider.set(:foo, 100)
|
@@ -11,9 +11,7 @@ describe Puppet::Type.type(:package).provider(:apt) do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:provider) do
|
14
|
-
provider
|
15
|
-
provider.resource = resource
|
16
|
-
provider
|
14
|
+
resource.provider
|
17
15
|
end
|
18
16
|
|
19
17
|
it "should be the default provider on :osfamily => Debian" do
|
@@ -86,6 +84,81 @@ Version table:
|
|
86
84
|
provider.run_preseed
|
87
85
|
end
|
88
86
|
|
87
|
+
describe ".instances" do
|
88
|
+
before do
|
89
|
+
allow(Puppet::Type::Package::ProviderDpkg).to receive(:instances).and_return([provider])
|
90
|
+
end
|
91
|
+
|
92
|
+
context "when package is manual marked" do
|
93
|
+
before do
|
94
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("#{resource.name}\n")
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'sets mark to manual' do
|
98
|
+
expect(described_class.instances.map(&:mark)).to eq([:manual])
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context 'when package is not manual marked ' do
|
103
|
+
before do
|
104
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return('')
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'does not set mark to manual' do
|
108
|
+
expect(described_class.instances.map(&:mark)).to eq([nil])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe 'query' do
|
114
|
+
before do
|
115
|
+
allow(provider).to receive(:dpkgquery).and_return("name: #{resource.name}" )
|
116
|
+
end
|
117
|
+
|
118
|
+
context "when package is manual marked" do
|
119
|
+
before do
|
120
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("#{resource.name}\n")
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'sets mark to manual' do
|
124
|
+
result = provider.query
|
125
|
+
expect(result[:mark]).to eql(:manual)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context 'when package is not manual marked ' do
|
130
|
+
before do
|
131
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return('')
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'does not set mark to manual' do
|
135
|
+
result = provider.query
|
136
|
+
expect(result[:mark]).to be_nil
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe 'flush' do
|
142
|
+
|
143
|
+
context "when package is manual marked" do
|
144
|
+
before do
|
145
|
+
provider.mark = :manual
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'does not call aptmark' do
|
149
|
+
expect(provider).not_to receive(:aptmark)
|
150
|
+
provider.flush
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
context 'when package is not manual marked ' do
|
155
|
+
it 'calls aptmark' do
|
156
|
+
expect(described_class).to receive(:aptmark).with('manual', resource.name)
|
157
|
+
provider.flush
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
89
162
|
describe "when installing" do
|
90
163
|
it "should preseed if a responsefile is provided" do
|
91
164
|
resource[:responsefile] = "/my/file"
|
@@ -13,6 +13,7 @@ describe Puppet::Type.type(:package).provider(:aptitude) do
|
|
13
13
|
|
14
14
|
before do
|
15
15
|
allow(Puppet::Util).to receive(:which).with('/usr/bin/dpkg-query').and_return(dpkgquery_path)
|
16
|
+
allow(described_class).to receive(:aptmark).with('showmanual').and_return("")
|
16
17
|
end
|
17
18
|
|
18
19
|
{ :absent => "deinstall ok config-files faff 1.2.3-1\n",
|
@@ -1,17 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'puppet/provider/package'
|
3
3
|
|
4
|
+
Puppet::Type.type(:package).provide(:test_base_provider, parent: Puppet::Provider::Package) do
|
5
|
+
def query; end
|
6
|
+
end
|
7
|
+
|
4
8
|
describe Puppet::Provider::Package do
|
9
|
+
let(:provider) { Puppet::Type.type(:package).provider(:test_base_provider).new }
|
10
|
+
|
5
11
|
it 'returns absent for uninstalled packages when not purgeable' do
|
6
|
-
provider = Puppet::Provider::Package.new
|
7
|
-
expect(provider).to receive(:query).and_return(nil)
|
8
|
-
expect(provider.class).to receive(:feature?).with(:purgeable).and_return(false)
|
9
12
|
expect(provider.properties[:ensure]).to eq(:absent)
|
10
13
|
end
|
11
14
|
|
12
15
|
it 'returns purged for uninstalled packages when purgeable' do
|
13
|
-
provider = Puppet::Provider::Package.new
|
14
|
-
expect(provider).to receive(:query).and_return(nil)
|
15
16
|
expect(provider.class).to receive(:feature?).with(:purgeable).and_return(true)
|
16
17
|
expect(provider.properties[:ensure]).to eq(:purged)
|
17
18
|
end
|
@@ -32,7 +32,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
32
32
|
expect(Puppet::Util::Execution).to receive(:execpipe).with(execpipe_args).and_yield(bash_installed_io)
|
33
33
|
|
34
34
|
installed = double('bash')
|
35
|
-
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg).and_return(installed)
|
35
|
+
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg).and_return(installed)
|
36
36
|
|
37
37
|
expect(described_class.instances).to eq([installed])
|
38
38
|
end
|
@@ -41,9 +41,9 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
41
41
|
expect(Puppet::Util::Execution).to receive(:execpipe).with(execpipe_args).and_yield(all_installed_io)
|
42
42
|
|
43
43
|
bash = double('bash')
|
44
|
-
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg).and_return(bash)
|
44
|
+
expect(described_class).to receive(:new).with(:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg).and_return(bash)
|
45
45
|
vim = double('vim')
|
46
|
-
expect(described_class).to receive(:new).with(:ensure => "2:7.3.547-6ubuntu5", :error => "ok", :desired => "install", :name => "vim", :status => "installed", :provider => :dpkg).and_return(vim)
|
46
|
+
expect(described_class).to receive(:new).with(:ensure => "2:7.3.547-6ubuntu5", :error => "ok", :desired => "install", :name => "vim", :mark => :none, :status => "installed", :provider => :dpkg).and_return(vim)
|
47
47
|
|
48
48
|
expect(described_class.instances).to eq([bash, vim])
|
49
49
|
end
|
@@ -107,7 +107,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
107
107
|
it "returns a hash of the found package status for an installed package" do
|
108
108
|
dpkg_query_execution_with_multiple_args_returns(query_output, args_with_provides,virtual_packages_query_args)
|
109
109
|
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result, args, query_args)
|
110
|
-
expect(provider.query).to eq(:ensure => "2.7.13", :error => "ok", :desired => "install", :name => "python", :status => "installed", :provider => :dpkg)
|
110
|
+
expect(provider.query).to eq(:ensure => "2.7.13", :error => "ok", :desired => "install", :name => "python", :mark => :none, :status => "installed", :provider => :dpkg)
|
111
111
|
end
|
112
112
|
|
113
113
|
it "considers the package absent if the dpkg-query result cannot be interpreted" do
|
@@ -160,6 +160,20 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
160
160
|
expect(provider.query[:mark]).to eq(:hold)
|
161
161
|
end
|
162
162
|
|
163
|
+
it "considers the package held if its state is 'hold'" do
|
164
|
+
dpkg_query_execution_with_multiple_args_returns(query_output.gsub("install","hold"),args_with_provides,virtual_packages_query_args)
|
165
|
+
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result.gsub("install","hold"), args, query_args)
|
166
|
+
expect(provider.query[:ensure]).to eq("2.7.13")
|
167
|
+
expect(provider.query[:mark]).to eq(:hold)
|
168
|
+
end
|
169
|
+
|
170
|
+
it "considers mark status to be none if package is not held" do
|
171
|
+
dpkg_query_execution_with_multiple_args_returns(query_output.gsub("install","ok"),args_with_provides,virtual_packages_query_args)
|
172
|
+
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result.gsub("install","ok"), args, query_args)
|
173
|
+
expect(provider.query[:ensure]).to eq("2.7.13")
|
174
|
+
expect(provider.query[:mark]).to eq(:none)
|
175
|
+
end
|
176
|
+
|
163
177
|
context "regex check for query search" do
|
164
178
|
let(:resource_name) { 'python-email' }
|
165
179
|
let(:resource) { instance_double('Puppet::Type::Package') }
|
@@ -168,10 +182,10 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
168
182
|
allow(resource).to receive(:[]=)
|
169
183
|
end
|
170
184
|
|
171
|
-
it "checks if virtual package regex for query is
|
185
|
+
it "checks if virtual package regex for query is correct and physical package is installed" do
|
172
186
|
dpkg_query_execution_with_multiple_args_returns(query_output,args_with_provides,virtual_packages_query_args)
|
173
187
|
dpkg_query_execution_with_multiple_args_returns(dpkg_query_result, args, query_args)
|
174
|
-
expect(provider.query).to match({:desired=>"install", :ensure=>"2.7.13", :error=>"ok", :name=>"python", :provider
|
188
|
+
expect(provider.query).to match({:desired => "install", :ensure => "2.7.13", :error => "ok", :name => "python", :mark => :none, :provider => :dpkg, :status => "installed"})
|
175
189
|
end
|
176
190
|
|
177
191
|
context "regex check with no partial matching" do
|
@@ -208,7 +222,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
208
222
|
it "returns a hash of the found package status for an installed package" do
|
209
223
|
dpkg_query_execution_returns(bash_installed_output)
|
210
224
|
|
211
|
-
expect(provider.query).to eq({:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :status => "installed", :provider => :dpkg})
|
225
|
+
expect(provider.query).to eq({:ensure => "4.2-5ubuntu3", :error => "ok", :desired => "install", :name => "bash", :mark => :none, :status => "installed", :provider => :dpkg})
|
212
226
|
end
|
213
227
|
|
214
228
|
it "considers the package absent if the dpkg-query result cannot be interpreted" do
|
@@ -271,6 +285,7 @@ describe Puppet::Type.type(:package).provider(:dpkg), unless: Puppet::Util::Plat
|
|
271
285
|
:error => 'ok',
|
272
286
|
:status => 'status',
|
273
287
|
:name => resource_name,
|
288
|
+
:mark => :none,
|
274
289
|
:ensure => 'ensure',
|
275
290
|
:provider => :dpkg,
|
276
291
|
}
|