puppet 6.13.0-x64-mingw32 → 6.18.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 -7
- data/CONTRIBUTING.md +7 -13
- data/Gemfile +4 -2
- data/Gemfile.lock +36 -32
- data/README.md +17 -24
- data/ext/windows/service/daemon.rb +3 -3
- data/lib/puppet.rb +33 -9
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/application/agent.rb +26 -17
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/describe.rb +7 -5
- data/lib/puppet/application/device.rb +2 -2
- data/lib/puppet/application/filebucket.rb +19 -15
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +4 -4
- data/lib/puppet/configurer.rb +58 -57
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +10 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +92 -12
- data/lib/puppet/environments.rb +4 -5
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/plugin.rb +2 -2
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- 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 +17 -13
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/call.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +13 -8
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/reduce.rb +2 -4
- 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 +3 -0
- data/lib/puppet/http/client.rb +263 -73
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +43 -7
- data/lib/puppet/http/resolver.rb +46 -3
- data/lib/puppet/http/resolver/server_list.rb +76 -16
- data/lib/puppet/http/resolver/settings.rb +23 -3
- data/lib/puppet/http/resolver/srv.rb +29 -3
- data/lib/puppet/http/response.rb +87 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +97 -12
- data/lib/puppet/http/service/ca.rb +76 -14
- data/lib/puppet/http/service/compiler.rb +249 -16
- data/lib/puppet/http/service/file_server.rb +141 -20
- data/lib/puppet/http/service/report.rb +47 -17
- data/lib/puppet/http/session.rb +96 -7
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +34 -0
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/rest.rb +42 -0
- data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +30 -0
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +52 -0
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +24 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +19 -0
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- data/lib/puppet/indirector/request.rb +1 -1
- data/lib/puppet/indirector/rest.rb +12 -0
- data/lib/puppet/indirector/status/rest.rb +18 -0
- data/lib/puppet/loaders.rb +6 -0
- data/lib/puppet/metatype/manager.rb +80 -80
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- 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/base_pool.rb +7 -2
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/pool.rb +8 -5
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +22 -5
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +30 -31
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +43 -33
- 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 +18 -9
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- 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/evaluator_impl.rb +5 -5
- 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 +24 -15
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -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/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/group/groupadd.rb +9 -4
- data/lib/puppet/provider/group/windows_adsi.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +98 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +61 -14
- data/lib/puppet/provider/package/gem.rb +45 -9
- data/lib/puppet/provider/package/pacman.rb +2 -5
- data/lib/puppet/provider/package/pip.rb +143 -48
- data/lib/puppet/provider/package/pip3.rb +0 -2
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +16 -4
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +11 -2
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +100 -20
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +22 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +15 -9
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +8 -0
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/runtime.rb +31 -1
- data/lib/puppet/settings.rb +3 -1
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/host.rb +4 -4
- data/lib/puppet/ssl/oids.rb +1 -0
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +81 -35
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +21 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +3 -3
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +21 -8
- data/lib/puppet/type/file.rb +51 -13
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +75 -64
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +41 -3
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -29
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +13 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/debian.rb +175 -0
- data/lib/puppet/util/package/version/gem.rb +15 -0
- data/lib/puppet/util/package/version/pip.rb +167 -0
- data/lib/puppet/util/package/version/range.rb +53 -0
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/package/version/range/gt.rb +14 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/lt.rb +14 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
- data/lib/puppet/util/package/version/range/min_max.rb +21 -0
- data/lib/puppet/util/package/version/range/simple.rb +11 -0
- data/lib/puppet/util/package/version/rpm.rb +73 -0
- data/lib/puppet/util/pidlock.rb +13 -7
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/adsi.rb +2 -2
- 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/process.rb +15 -14
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +5 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +641 -511
- data/man/man5/puppet.conf.5 +75 -10
- data/man/man8/puppet-agent.8 +7 -7
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +17 -2
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +6 -3
- 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 +4 -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 +2 -2
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- 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/ssl/unknown-127.0.0.1-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
- data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
- data/spec/fixtures/ssl/unknown-ca.pem +59 -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/dnfmodule/{dnf-module-list-installed.txt → dnf-module-list.txt} +8 -0
- data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -69
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -65
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -67
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +1 -67
- data/spec/integration/application/agent_spec.rb +475 -0
- data/spec/integration/application/apply_spec.rb +279 -150
- data/spec/integration/application/config_spec.rb +74 -0
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +239 -0
- 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 +123 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +1 -2
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +47 -37
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/network/http_pool_spec.rb +93 -20
- data/spec/integration/node/environment_spec.rb +15 -0
- data/spec/integration/parser/compiler_spec.rb +11 -0
- 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 +6 -1
- 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 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +16 -7
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +127 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +12 -9
- data/spec/unit/application/describe_spec.rb +88 -50
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +39 -10
- data/spec/unit/application/filebucket_spec.rb +22 -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/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +36 -19
- data/spec/unit/configurer_spec.rb +64 -46
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/defaults_spec.rb +24 -1
- data/spec/unit/environments_spec.rb +8 -0
- data/spec/unit/face/config_spec.rb +3 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/plugin_spec.rb +12 -10
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- 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_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +10 -0
- data/spec/unit/functions/lookup_spec.rb +13 -0
- data/spec/unit/http/client_spec.rb +321 -36
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +34 -3
- data/spec/unit/http/response_spec.rb +75 -0
- data/spec/unit/http/service/ca_spec.rb +53 -12
- data/spec/unit/http/service/compiler_spec.rb +332 -28
- data/spec/unit/http/service/file_server_spec.rb +100 -12
- data/spec/unit/http/service/report_spec.rb +19 -9
- data/spec/unit/http/service_spec.rb +94 -6
- data/spec/unit/http/session_spec.rb +159 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +59 -2
- data/spec/unit/indirector/facts/rest_spec.rb +79 -24
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
- data/spec/unit/indirector/file_content/rest_spec.rb +53 -2
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +110 -2
- data/spec/unit/indirector/node/rest_spec.rb +57 -2
- data/spec/unit/indirector/report/rest_spec.rb +58 -51
- data/spec/unit/indirector/request_spec.rb +1 -1
- data/spec/unit/indirector/resource/ral_spec.rb +7 -8
- data/spec/unit/indirector/rest_spec.rb +13 -0
- data/spec/unit/indirector/status/rest_spec.rb +43 -2
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http/pool_spec.rb +59 -13
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +33 -0
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- 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/provider/group/groupadd_spec.rb +22 -8
- data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +107 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/pacman_spec.rb +6 -21
- data/spec/unit/provider/package/pip_spec.rb +68 -19
- data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
- data/spec/unit/provider/package/pkgng_spec.rb +38 -0
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +243 -1
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/init_spec.rb +42 -0
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openwrt_spec.rb +1 -0
- data/spec/unit/provider/service/redhat_spec.rb +9 -0
- data/spec/unit/provider/service/systemd_spec.rb +93 -18
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +85 -3
- data/spec/unit/puppet_pal_2pec.rb +11 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +70 -52
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/http_extra_headers_spec.rb +64 -0
- data/spec/unit/ssl/host_spec.rb +4 -2
- data/spec/unit/ssl/oids_spec.rb +1 -0
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +99 -13
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +5 -1
- data/spec/unit/transaction_spec.rb +0 -2
- data/spec/unit/type/file/ensure_spec.rb +1 -2
- data/spec/unit/type/file/source_spec.rb +89 -38
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/at_fork_spec.rb +3 -2
- data/spec/unit/util/autoload_spec.rb +2 -1
- 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/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/debian_spec.rb +83 -0
- data/spec/unit/util/package/version/pip_spec.rb +464 -0
- data/spec/unit/util/package/version/range_spec.rb +175 -0
- data/spec/unit/util/package/version/rpm_spec.rb +121 -0
- data/spec/unit/util/pidlock_spec.rb +102 -54
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/windows/adsi_spec.rb +4 -4
- 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/windows/sid_spec.rb +2 -2
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/generate_cert_fixtures.rake +15 -1
- data/tasks/manpages.rake +5 -35
- metadata +84 -52
- data/COMMITTERS.md +0 -244
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/faces/plugin_spec.rb +0 -61
- 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 -64
- 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/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
data/spec/unit/agent_spec.rb
CHANGED
@@ -179,37 +179,78 @@ describe Puppet::Agent do
|
|
179
179
|
expect(@agent.run).to eq(:result)
|
180
180
|
end
|
181
181
|
|
182
|
+
describe "and a puppet agent is already running" do
|
183
|
+
before(:each) do
|
184
|
+
allow_any_instance_of(Object).to receive(:sleep)
|
185
|
+
lockfile = double('lockfile')
|
186
|
+
expect(@agent).to receive(:lockfile).and_return(lockfile).at_least(:once)
|
187
|
+
# so the lock method raises Puppet::LockError
|
188
|
+
allow(lockfile).to receive(:lock).and_return(false)
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should notify that a run is already in progres" do
|
192
|
+
client = AgentTestClient.new
|
193
|
+
expect(AgentTestClient).to receive(:new).and_return(client)
|
194
|
+
expect(Puppet).to receive(:notice).with(/Run of .* already in progress; skipping .* exists/)
|
195
|
+
@agent.run
|
196
|
+
end
|
197
|
+
|
198
|
+
it "should inform that a run is already in progres and try to run every X seconds if waitforlock is used" do
|
199
|
+
# so the locked file exists
|
200
|
+
allow(File).to receive(:file?).and_return(true)
|
201
|
+
# so we don't have to wait again for the run to exit (default maxwaitforcert is 60)
|
202
|
+
# first 0 is to get the time, second 0 is to inform user, then 1000 so the time expires
|
203
|
+
allow(Time).to receive(:now).and_return(0, 0, 1000)
|
204
|
+
allow(Puppet).to receive(:info)
|
205
|
+
client = AgentTestClient.new
|
206
|
+
expect(AgentTestClient).to receive(:new).and_return(client)
|
207
|
+
|
208
|
+
Puppet[:waitforlock] = 1
|
209
|
+
Puppet[:maxwaitforlock] = 2
|
210
|
+
expect(Puppet).to receive(:info).with(/Another puppet instance is already running; --waitforlock flag used, waiting for running instance to finish./)
|
211
|
+
expect(Puppet).to receive(:info).with(/Will try again in #{Puppet[:waitforlock]} seconds./)
|
212
|
+
@agent.run
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should notify that the run is exiting if waitforlock is used and maxwaitforlock is exceeded" do
|
216
|
+
# so we don't have to wait again for the run to exit (default maxwaitforcert is 60)
|
217
|
+
# first 0 is to get the time, then 1000 so that the time expires
|
218
|
+
allow(Time).to receive(:now).and_return(0, 1000)
|
219
|
+
client = AgentTestClient.new
|
220
|
+
expect(AgentTestClient).to receive(:new).and_return(client)
|
221
|
+
|
222
|
+
Puppet[:waitforlock] = 1
|
223
|
+
expect(Puppet).to receive(:notice).with(/Exiting now because the maxwaitforlock timeout has been exceeded./)
|
224
|
+
@agent.run
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
182
228
|
describe "when should_fork is true", :if => Puppet.features.posix? && RUBY_PLATFORM != 'java' do
|
183
229
|
before do
|
184
230
|
@agent = Puppet::Agent.new(AgentTestClient, true)
|
185
231
|
|
186
232
|
# So we don't actually try to hit the filesystem.
|
187
233
|
allow(@agent).to receive(:lock).and_yield
|
188
|
-
|
189
|
-
allow(Kernel).to receive(:fork)
|
190
|
-
allow(Process).to receive(:waitpid2).and_return([123, double('process::status', :exitstatus => 0)])
|
191
|
-
allow(@agent).to receive(:exit)
|
192
234
|
end
|
193
235
|
|
194
236
|
it "should run the agent in a forked process" do
|
195
237
|
client = AgentTestClient.new
|
196
238
|
expect(AgentTestClient).to receive(:new).and_return(client)
|
197
239
|
|
198
|
-
expect(client).to receive(:run)
|
240
|
+
expect(client).to receive(:run).and_return(0)
|
199
241
|
|
200
242
|
expect(Kernel).to receive(:fork).and_yield
|
201
|
-
@agent.run
|
243
|
+
expect { @agent.run }.to exit_with(0)
|
202
244
|
end
|
203
245
|
|
204
246
|
it "should exit child process if child exit" do
|
205
247
|
client = AgentTestClient.new
|
206
248
|
expect(AgentTestClient).to receive(:new).and_return(client)
|
207
249
|
|
208
|
-
expect(client).to receive(:run).and_raise(SystemExit)
|
250
|
+
expect(client).to receive(:run).and_raise(SystemExit.new(-1))
|
209
251
|
|
210
252
|
expect(Kernel).to receive(:fork).and_yield
|
211
|
-
expect
|
212
|
-
@agent.run
|
253
|
+
expect { @agent.run }.to exit_with(-1)
|
213
254
|
end
|
214
255
|
|
215
256
|
it 'should exit with 1 if an exception is raised' do
|
@@ -219,31 +260,44 @@ describe Puppet::Agent do
|
|
219
260
|
expect(client).to receive(:run).and_raise(StandardError)
|
220
261
|
|
221
262
|
expect(Kernel).to receive(:fork).and_yield
|
222
|
-
expect
|
223
|
-
@agent.run
|
263
|
+
expect { @agent.run }.to exit_with(1)
|
224
264
|
end
|
225
265
|
|
226
|
-
it
|
227
|
-
|
228
|
-
expect
|
266
|
+
it 'should exit with 254 if NoMemoryError exception is raised' do
|
267
|
+
client = AgentTestClient.new
|
268
|
+
expect(AgentTestClient).to receive(:new).and_return(client)
|
269
|
+
|
270
|
+
expect(client).to receive(:run).and_raise(NoMemoryError)
|
271
|
+
|
272
|
+
expect(Kernel).to receive(:fork).and_yield
|
273
|
+
expect { @agent.run }.to exit_with(254)
|
229
274
|
end
|
230
275
|
|
231
|
-
it "should
|
232
|
-
|
233
|
-
expect {
|
276
|
+
it "should return the block exit code as the child exit code" do
|
277
|
+
expect(Kernel).to receive(:fork).and_yield
|
278
|
+
expect {
|
279
|
+
@agent.run_in_fork {
|
280
|
+
777
|
281
|
+
}
|
282
|
+
}.to exit_with(777)
|
234
283
|
end
|
235
284
|
|
236
|
-
it "should return the
|
237
|
-
|
238
|
-
expect
|
285
|
+
it "should return `1` exit code if the block returns `nil`" do
|
286
|
+
expect(Kernel).to receive(:fork).and_yield
|
287
|
+
expect {
|
288
|
+
@agent.run_in_fork {
|
289
|
+
nil
|
290
|
+
}
|
291
|
+
}.to exit_with(1)
|
239
292
|
end
|
240
293
|
|
241
|
-
it "should return
|
294
|
+
it "should return `1` exit code if the block returns `false`" do
|
242
295
|
expect(Kernel).to receive(:fork).and_yield
|
243
|
-
expect
|
244
|
-
|
245
|
-
|
246
|
-
|
296
|
+
expect {
|
297
|
+
@agent.run_in_fork {
|
298
|
+
false
|
299
|
+
}
|
300
|
+
}.to exit_with(1)
|
247
301
|
end
|
248
302
|
end
|
249
303
|
|
@@ -283,7 +337,7 @@ describe Puppet::Agent do
|
|
283
337
|
expect(client).not_to receive(:handling)
|
284
338
|
expect(Puppet).to receive(:log_exception).with(be_an_instance_of(Puppet::Agent::RunTimeoutError), anything)
|
285
339
|
|
286
|
-
expect(@agent.run).to eq(
|
340
|
+
expect(@agent.run).to eq(nil)
|
287
341
|
end
|
288
342
|
end
|
289
343
|
end
|
@@ -12,16 +12,16 @@ describe Puppet::Application::Agent do
|
|
12
12
|
before :each do
|
13
13
|
@puppetd = Puppet::Application[:agent]
|
14
14
|
|
15
|
-
@
|
15
|
+
@agent = double('agent')
|
16
|
+
allow(Puppet::Agent).to receive(:new).and_return(@agent)
|
17
|
+
|
18
|
+
@daemon = Puppet::Daemon.new(@agent, nil)
|
16
19
|
allow(@daemon).to receive(:daemonize)
|
17
20
|
allow(@daemon).to receive(:start)
|
18
21
|
allow(@daemon).to receive(:stop)
|
19
22
|
allow(Puppet::Daemon).to receive(:new).and_return(@daemon)
|
20
23
|
Puppet[:daemonize] = false
|
21
24
|
|
22
|
-
@agent = double('agent')
|
23
|
-
allow(Puppet::Agent).to receive(:new).and_return(@agent)
|
24
|
-
|
25
25
|
@puppetd.preinit
|
26
26
|
allow(Puppet::Util::Log).to receive(:newdestination)
|
27
27
|
|
@@ -122,6 +122,10 @@ describe Puppet::Application::Agent do
|
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
+
it "should log the agent start time" do
|
126
|
+
expect(@puppetd.options[:start_time]).to be_a(Time)
|
127
|
+
end
|
128
|
+
|
125
129
|
it "should set waitforcert to 0 with --onetime and if --waitforcert wasn't given" do
|
126
130
|
allow(@agent).to receive(:run).and_return(2)
|
127
131
|
Puppet[:onetime] = true
|
@@ -505,7 +509,7 @@ describe Puppet::Application::Agent do
|
|
505
509
|
|
506
510
|
it "should run the agent with the supplied job_id" do
|
507
511
|
@puppetd.options[:job_id] = 'special id'
|
508
|
-
expect(@agent).to receive(:run).with(:job_id => 'special id').and_return(:report)
|
512
|
+
expect(@agent).to receive(:run).with(hash_including(:job_id => 'special id')).and_return(:report)
|
509
513
|
|
510
514
|
expect { execute_agent }.to exit_with 0
|
511
515
|
end
|
@@ -567,10 +571,9 @@ describe Puppet::Application::Agent do
|
|
567
571
|
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(nil)
|
568
572
|
|
569
573
|
expect {
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
}.to output(/Fingerprint asked but neither the certificate, nor the certificate request have been issued/).to_stderr
|
574
|
+
@puppetd.fingerprint
|
575
|
+
}.to exit_with(1)
|
576
|
+
.and output(/Fingerprint asked but neither the certificate, nor the certificate request have been issued/).to_stderr
|
574
577
|
end
|
575
578
|
|
576
579
|
it "should log an error if an exception occurs" do
|
@@ -3,95 +3,133 @@ require 'spec_helper'
|
|
3
3
|
require 'puppet/application/describe'
|
4
4
|
|
5
5
|
describe Puppet::Application::Describe do
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
let(:describe) { Puppet::Application[:describe] }
|
7
|
+
|
8
|
+
it "lists all types" do
|
9
|
+
describe.command_line.args << '--list'
|
9
10
|
|
10
|
-
|
11
|
-
|
11
|
+
expect {
|
12
|
+
describe.run
|
13
|
+
}.to output(/These are the types known to puppet:/).to_stdout
|
12
14
|
end
|
13
15
|
|
14
|
-
it "
|
15
|
-
|
16
|
+
it "describes a single type" do
|
17
|
+
describe.command_line.args << 'exec'
|
18
|
+
|
19
|
+
expect {
|
20
|
+
describe.run
|
21
|
+
}.to output(/exec.*====.*Executes external commands/m).to_stdout
|
16
22
|
end
|
17
23
|
|
18
|
-
|
19
|
-
|
20
|
-
expect(@describe).to respond_to("handle_#{option}".to_sym)
|
21
|
-
end
|
24
|
+
it "describes multiple types" do
|
25
|
+
describe.command_line.args.concat(['exec', 'file'])
|
22
26
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
end
|
27
|
+
expect {
|
28
|
+
describe.run
|
29
|
+
}.to output(/Executes external commands.*Manages files, including their content, ownership, and permissions./m).to_stdout
|
27
30
|
end
|
28
31
|
|
32
|
+
it "describes parameters for the type by default" do
|
33
|
+
describe.command_line.args << 'exec'
|
29
34
|
|
30
|
-
|
31
|
-
|
32
|
-
|
35
|
+
expect {
|
36
|
+
describe.run
|
37
|
+
}.to output(/Parameters\n----------/m).to_stdout
|
38
|
+
end
|
33
39
|
|
34
|
-
|
35
|
-
|
40
|
+
it "lists parameter names, but excludes description in short mode" do
|
41
|
+
describe.command_line.args.concat(['exec', '-s'])
|
42
|
+
|
43
|
+
expect {
|
44
|
+
describe.run
|
45
|
+
}.to output(/Parameters.*command, creates, cwd/m).to_stdout
|
36
46
|
end
|
37
47
|
|
38
|
-
|
39
|
-
|
40
|
-
@describe.handle_short(nil)
|
48
|
+
it "outputs providers for the type" do
|
49
|
+
describe.command_line.args.concat(['exec', '--providers'])
|
41
50
|
|
42
|
-
|
43
|
-
|
51
|
+
expect {
|
52
|
+
describe.run
|
53
|
+
}.to output(/Providers.*#{Regexp.escape('**posix**')}.*#{Regexp.escape('**windows**')}/m).to_stdout
|
44
54
|
end
|
45
55
|
|
46
|
-
|
47
|
-
|
48
|
-
allow(@describe.command_line).to receive(:args).and_return(['1','2'])
|
49
|
-
@describe.setup
|
56
|
+
it "lists metaparameters for a type" do
|
57
|
+
describe.command_line.args.concat(['exec', '--meta'])
|
50
58
|
|
51
|
-
|
52
|
-
|
59
|
+
expect {
|
60
|
+
describe.run
|
61
|
+
}.to output(/Meta Parameters.*#{Regexp.escape('**notify**')}/m).to_stdout
|
53
62
|
end
|
54
63
|
|
55
|
-
|
64
|
+
it "outputs no documentation if the summary is missing" do
|
65
|
+
Puppet::Type.newtype(:describe_test) {}
|
66
|
+
|
67
|
+
describe.command_line.args << '--list'
|
68
|
+
expect {
|
69
|
+
describe.run
|
70
|
+
}.to output(/#{Regexp.escape("describe_test - .. no documentation ..")}/).to_stdout
|
71
|
+
end
|
56
72
|
|
57
|
-
|
58
|
-
|
59
|
-
|
73
|
+
it "outputs the first short sentence ending in a dot" do
|
74
|
+
Puppet::Type.newtype(:describe_test) do
|
75
|
+
@doc = "ends in a dot."
|
60
76
|
end
|
61
77
|
|
62
|
-
|
63
|
-
|
78
|
+
describe.command_line.args << '--list'
|
79
|
+
expect {
|
80
|
+
describe.run
|
81
|
+
}.to output(/#{Regexp.escape("describe_test - ends in a dot\n")}/).to_stdout
|
82
|
+
end
|
64
83
|
|
65
|
-
|
84
|
+
it "outputs the first short sentence missing a dot" do
|
85
|
+
Puppet::Type.newtype(:describe_test) do
|
86
|
+
@doc = "missing a dot"
|
87
|
+
end
|
66
88
|
|
67
|
-
|
89
|
+
describe.command_line.args << '--list'
|
90
|
+
expect {
|
91
|
+
describe.run
|
92
|
+
}.to output(/describe_test - missing a dot\n/).to_stdout
|
93
|
+
end
|
94
|
+
|
95
|
+
it "truncates long summaries ending in a dot" do
|
96
|
+
Puppet::Type.newtype(:describe_test) do
|
97
|
+
@doc = "This sentence is more than 45 characters and ends in a dot."
|
68
98
|
end
|
69
99
|
|
70
|
-
|
71
|
-
|
72
|
-
|
100
|
+
describe.command_line.args << '--list'
|
101
|
+
expect {
|
102
|
+
describe.run
|
103
|
+
}.to output(/#{Regexp.escape("describe_test - This sentence is more than 45 characters and ...")}/).to_stdout
|
104
|
+
end
|
73
105
|
|
74
|
-
|
75
|
-
|
106
|
+
it "truncates long summaries missing a dot" do
|
107
|
+
Puppet::Type.newtype(:describe_test) do
|
108
|
+
@doc = "This sentence is more than 45 characters and is missing a dot"
|
76
109
|
end
|
110
|
+
|
111
|
+
describe.command_line.args << '--list'
|
112
|
+
expect {
|
113
|
+
describe.run
|
114
|
+
}.to output(/#{Regexp.escape("describe_test - This sentence is more than 45 characters and ...")}/).to_stdout
|
77
115
|
end
|
78
116
|
|
79
|
-
it "
|
80
|
-
|
117
|
+
it "formats text with long non-space runs without garbling" do
|
118
|
+
f = Formatter.new(76)
|
81
119
|
|
82
|
-
|
120
|
+
teststring = <<TESTSTRING
|
83
121
|
. 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 nick@magpie.puppetlabs.lan
|
84
122
|
**this part should not repeat!**
|
85
123
|
TESTSTRING
|
86
124
|
|
87
|
-
|
125
|
+
expected_result = <<EXPECTED
|
88
126
|
.
|
89
127
|
1234567890123456789012345678901234567890123456789012345678901234567890123456
|
90
128
|
7890123456789012345678901234567890 nick@magpie.puppetlabs.lan
|
91
129
|
**this part should not repeat!**
|
92
130
|
EXPECTED
|
93
131
|
|
94
|
-
result =
|
95
|
-
expect(result).to eql(
|
132
|
+
result = f.wrap(teststring, {:indent => 0, :scrub => true})
|
133
|
+
expect(result).to eql(expected_result)
|
96
134
|
end
|
97
135
|
end
|
@@ -459,7 +459,7 @@ describe Puppet::Application::Device do
|
|
459
459
|
resource = Puppet::Type.type(:user).new(:name => "jim").to_resource
|
460
460
|
allow(device.command_line).to receive(:args).and_return(['user', 'jim'])
|
461
461
|
expect(Puppet::Resource.indirection).to receive(:find).with('user/jim').and_return(resource)
|
462
|
-
expect(device).to receive(:puts).with("user { 'jim':\n}")
|
462
|
+
expect(device).to receive(:puts).with("user { 'jim':\n ensure => 'absent',\n}")
|
463
463
|
expect { device.main }.to exit_with 0
|
464
464
|
end
|
465
465
|
|
@@ -470,7 +470,7 @@ describe Puppet::Application::Device do
|
|
470
470
|
allow(device.options).to receive(:[]).with(:to_yaml).and_return(true)
|
471
471
|
allow(device.command_line).to receive(:args).and_return(['user'])
|
472
472
|
expect(Puppet::Resource.indirection).to receive(:search).with('user/', {}).and_return(resources)
|
473
|
-
expect(device).to receive(:puts).with("---\nuser:\n title:
|
473
|
+
expect(device).to receive(:puts).with("---\nuser:\n title:\n ensure: absent\n")
|
474
474
|
expect { device.main }.to exit_with 0
|
475
475
|
end
|
476
476
|
end
|
@@ -423,16 +423,18 @@ EOT
|
|
423
423
|
it "should work if asked to render json" do
|
424
424
|
allow(app.command_line).to receive(:args).and_return(%w{count_args a b c --render-as json})
|
425
425
|
expect {
|
426
|
-
|
427
|
-
}.to
|
426
|
+
app.run
|
427
|
+
}.to exit_with(0)
|
428
|
+
.and output(/3/).to_stdout
|
428
429
|
end
|
429
430
|
|
430
431
|
it "should invoke when_rendering hook 's' when asked to render-as 's'" do
|
431
432
|
allow(app.command_line).to receive(:args).and_return(%w{with_s_rendering_hook --render-as s})
|
432
433
|
app.action = app.face.get_action(:with_s_rendering_hook)
|
433
434
|
expect {
|
434
|
-
|
435
|
-
}.to
|
435
|
+
app.run
|
436
|
+
}.to exit_with(0)
|
437
|
+
.and output(/you invoked the 's' rendering hook/).to_stdout
|
436
438
|
end
|
437
439
|
end
|
438
440
|
|
@@ -2,21 +2,50 @@ require 'spec_helper'
|
|
2
2
|
require 'puppet/application/facts'
|
3
3
|
|
4
4
|
describe Puppet::Application::Facts do
|
5
|
+
let(:app) { Puppet::Application[:facts] }
|
6
|
+
let(:values) { {"filesystems" => "apfs,autofs,devfs"} }
|
7
|
+
|
5
8
|
before :each do
|
6
|
-
|
9
|
+
Puppet::Node::Facts.indirection.terminus_class = :memory
|
7
10
|
end
|
8
11
|
|
9
|
-
it "
|
10
|
-
Puppet::Node::Facts.
|
11
|
-
|
12
|
-
|
12
|
+
it "returns facts for a given node" do
|
13
|
+
facts = Puppet::Node::Facts.new('whatever', values)
|
14
|
+
Puppet::Node::Facts.indirection.save(facts)
|
15
|
+
|
16
|
+
app.command_line.args = %w{find whatever --render-as yaml}
|
17
|
+
|
18
|
+
# due to PUP-10105 we emit the class tag when we shouldn't
|
19
|
+
expected = Regexp.new(<<~END)
|
20
|
+
--- !ruby/object:Puppet::Node::Facts
|
21
|
+
name: whatever
|
22
|
+
values:
|
23
|
+
filesystems: apfs,autofs,devfs
|
24
|
+
END
|
13
25
|
|
14
26
|
expect {
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
27
|
+
app.run
|
28
|
+
}.to exit_with(0)
|
29
|
+
.and output(expected).to_stdout
|
30
|
+
end
|
19
31
|
|
20
|
-
|
32
|
+
it "returns facts for the current node when the name is omitted" do
|
33
|
+
facts = Puppet::Node::Facts.new(Puppet[:certname], values)
|
34
|
+
Puppet::Node::Facts.indirection.save(facts)
|
35
|
+
|
36
|
+
app.command_line.args = %w{find --render-as yaml}
|
37
|
+
|
38
|
+
# due to PUP-10105 we emit the class tag when we shouldn't
|
39
|
+
expected = Regexp.new(<<~END)
|
40
|
+
--- !ruby/object:Puppet::Node::Facts
|
41
|
+
name: #{Puppet[:certname]}
|
42
|
+
values:
|
43
|
+
filesystems: apfs,autofs,devfs
|
44
|
+
END
|
45
|
+
|
46
|
+
expect {
|
47
|
+
app.run
|
48
|
+
}.to exit_with(0)
|
49
|
+
.and output(expected).to_stdout
|
21
50
|
end
|
22
51
|
end
|