puppet 6.11.1-x86-mingw32 → 6.16.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +3 -8
- data/CONTRIBUTING.md +7 -13
- data/Gemfile +1 -0
- data/Gemfile.lock +39 -36
- data/README.md +17 -24
- data/ext/build_defaults.yaml +1 -0
- data/ext/project_data.yaml +1 -1
- data/ext/windows/service/daemon.rb +25 -20
- data/lib/puppet.rb +52 -13
- data/lib/puppet/agent.rb +20 -14
- data/lib/puppet/application/agent.rb +12 -14
- 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/plugin.rb +1 -0
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/application/ssl.rb +4 -4
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/concurrent/lock.rb +16 -0
- data/lib/puppet/concurrent/synchronized.rb +15 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +14 -0
- data/lib/puppet/configurer.rb +85 -83
- data/lib/puppet/configurer/plugin_handler.rb +10 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +158 -40
- data/lib/puppet/environments.rb +30 -20
- data/lib/puppet/error.rb +9 -1
- data/lib/puppet/face/facts.rb +8 -5
- 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/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +13 -9
- data/lib/puppet/file_system/memory_file.rb +6 -0
- data/lib/puppet/file_system/memory_impl.rb +13 -0
- data/lib/puppet/file_system/uniquefile.rb +4 -0
- data/lib/puppet/file_system/windows.rb +7 -10
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/errors.rb +2 -2
- data/lib/puppet/forge/repository.rb +31 -86
- data/lib/puppet/functions/call.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +2 -2
- data/lib/puppet/functions/epp.rb +4 -4
- data/lib/puppet/functions/eyaml_lookup_key.rb +13 -8
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/find_file.rb +9 -9
- data/lib/puppet/functions/find_template.rb +63 -0
- data/lib/puppet/functions/inline_epp.rb +5 -5
- data/lib/puppet/functions/reduce.rb +2 -4
- data/lib/puppet/http.rb +7 -0
- data/lib/puppet/http/client.rb +341 -54
- data/lib/puppet/http/errors.rb +2 -0
- data/lib/puppet/http/external_client.rb +90 -0
- data/lib/puppet/http/redirector.rb +34 -0
- data/lib/puppet/http/resolver.rb +57 -1
- data/lib/puppet/http/resolver/server_list.rb +98 -0
- data/lib/puppet/http/resolver/settings.rb +23 -2
- data/lib/puppet/http/resolver/srv.rb +36 -4
- data/lib/puppet/http/response.rb +68 -1
- data/lib/puppet/http/retry_after_handler.rb +39 -0
- data/lib/puppet/http/service.rb +179 -3
- data/lib/puppet/http/service/ca.rb +84 -21
- data/lib/puppet/http/service/compiler.rb +319 -0
- data/lib/puppet/http/service/file_server.rb +206 -0
- data/lib/puppet/http/service/report.rb +66 -0
- data/lib/puppet/http/session.rb +106 -31
- data/lib/puppet/indirector/catalog/compiler.rb +10 -0
- data/lib/puppet/indirector/catalog/rest.rb +34 -0
- data/lib/puppet/indirector/facts/rest.rb +42 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
- 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 +4 -4
- data/lib/puppet/indirector/file_metadata/rest.rb +52 -0
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +24 -0
- data/lib/puppet/indirector/report/rest.rb +19 -0
- data/lib/puppet/indirector/report/yaml.rb +23 -0
- 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/network/http/base_pool.rb +19 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +6 -0
- data/lib/puppet/network/http/connection_adapter.rb +182 -0
- data/lib/puppet/network/http/nocache_pool.rb +2 -0
- data/lib/puppet/network/http/pool.rb +13 -6
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/node/environment.rb +24 -8
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +9 -29
- data/lib/puppet/parser/ast/pops_bridge.rb +6 -11
- data/lib/puppet/parser/compiler.rb +42 -32
- data/lib/puppet/parser/functions.rb +18 -13
- data/lib/puppet/parser/functions/epp.rb +3 -3
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/functions/inline_epp.rb +5 -5
- data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +12 -3
- data/lib/puppet/pops/loaders.rb +7 -5
- data/lib/puppet/pops/lookup/invocation.rb +10 -3
- data/lib/puppet/pops/model/pn_transformer.rb +5 -9
- data/lib/puppet/pops/parser/evaluating_parser.rb +8 -11
- data/lib/puppet/pops/serialization/json_path.rb +3 -3
- data/lib/puppet/pops/time/timespan.rb +3 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +10 -0
- data/lib/puppet/pops/types/string_converter.rb +6 -9
- data/lib/puppet/pops/types/type_calculator.rb +30 -10
- data/lib/puppet/pops/types/type_formatter.rb +9 -11
- data/lib/puppet/pops/types/type_parser.rb +3 -3
- data/lib/puppet/pops/validation/checker4_0.rb +1 -1
- data/lib/puppet/pops/validation/tasks_checker.rb +5 -1
- data/lib/puppet/provider/aix_object.rb +4 -2
- data/lib/puppet/provider/group/aix.rb +1 -0
- data/lib/puppet/provider/group/groupadd.rb +57 -24
- 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 +78 -4
- data/lib/puppet/provider/package/dnfmodule.rb +69 -15
- data/lib/puppet/provider/package/dpkg.rb +14 -7
- data/lib/puppet/provider/package/fink.rb +20 -3
- data/lib/puppet/provider/package/gem.rb +41 -7
- data/lib/puppet/provider/package/openbsd.rb +13 -1
- 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/pkg.rb +18 -5
- 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 +5 -5
- data/lib/puppet/provider/package/puppet_gem.rb +6 -2
- data/lib/puppet/provider/package/rpm.rb +6 -213
- data/lib/puppet/provider/package/yum.rb +108 -24
- data/lib/puppet/provider/package/zypper.rb +59 -1
- data/lib/puppet/provider/package_targetable.rb +5 -4
- data/lib/puppet/provider/service/systemd.rb +23 -5
- data/lib/puppet/provider/user/aix.rb +1 -0
- data/lib/puppet/provider/user/directoryservice.rb +30 -5
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -8
- data/lib/puppet/reports/http.rb +13 -9
- data/lib/puppet/reports/store.rb +1 -1
- data/lib/puppet/resource/type_collection.rb +20 -16
- data/lib/puppet/runtime.rb +32 -1
- data/lib/puppet/settings.rb +4 -0
- data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/certificate.rb +2 -1
- data/lib/puppet/ssl/host.rb +4 -4
- data/lib/puppet/ssl/oids.rb +1 -0
- data/lib/puppet/ssl/ssl_provider.rb +20 -0
- data/lib/puppet/ssl/state_machine.rb +81 -35
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +7 -1
- data/lib/puppet/transaction.rb +33 -11
- data/lib/puppet/transaction/report.rb +2 -2
- data/lib/puppet/transaction/resource_harness.rb +1 -1
- data/lib/puppet/type.rb +7 -2
- data/lib/puppet/type/file.rb +13 -0
- data/lib/puppet/type/file/data_sync.rb +5 -1
- data/lib/puppet/type/file/source.rb +49 -58
- data/lib/puppet/type/group.rb +5 -4
- data/lib/puppet/type/package.rb +102 -10
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/user.rb +6 -30
- data/lib/puppet/util.rb +34 -11
- data/lib/puppet/util/at_fork.rb +1 -1
- data/lib/puppet/util/autoload.rb +4 -18
- data/lib/puppet/util/instance_loader.rb +14 -10
- data/lib/puppet/util/log/destinations.rb +2 -11
- data/lib/puppet/util/logging.rb +30 -18
- 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 +36 -10
- data/lib/puppet/util/platform.rb +5 -0
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/rpm_compare.rb +193 -0
- data/lib/puppet/util/storage.rb +0 -1
- data/lib/puppet/util/windows/adsi.rb +50 -20
- data/lib/puppet/util/windows/process.rb +15 -14
- data/lib/puppet/util/windows/security.rb +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -3
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +9 -5
- data/locales/puppet.pot +640 -521
- data/man/man5/puppet.conf.5 +88 -9
- data/man/man8/puppet-agent.8 +6 -6
- 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 +1 -1
- 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/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.json +76 -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 -102
- 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 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -106
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -102
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -98
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -102
- 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 -102
- data/spec/integration/application/agent_spec.rb +394 -0
- data/spec/integration/application/apply_spec.rb +132 -3
- data/spec/integration/application/filebucket_spec.rb +190 -0
- data/spec/integration/application/plugin_spec.rb +73 -0
- data/spec/integration/configurer_spec.rb +26 -7
- data/spec/integration/http/client_spec.rb +154 -0
- data/spec/integration/indirector/facts/facter_spec.rb +4 -0
- data/spec/integration/indirector/report/yaml.rb +83 -0
- data/spec/integration/module_tool/forge_spec.rb +51 -0
- data/spec/integration/network/http_pool_spec.rb +76 -20
- data/spec/integration/node/environment_spec.rb +15 -0
- data/spec/integration/util/windows/adsi_spec.rb +6 -1
- data/spec/lib/puppet/test_ca.rb +2 -2
- data/spec/lib/puppet_spec/https.rb +20 -9
- data/spec/lib/puppet_spec/puppetserver.rb +119 -0
- data/spec/shared_contexts/https.rb +29 -0
- data/spec/spec_helper.rb +6 -2
- data/spec/unit/agent_spec.rb +80 -26
- data/spec/unit/application/agent_spec.rb +9 -5
- data/spec/unit/application/apply_spec.rb +2 -12
- data/spec/unit/application/describe_spec.rb +88 -50
- data/spec/unit/application/device_spec.rb +2 -2
- data/spec/unit/application/filebucket_spec.rb +22 -2
- data/spec/unit/application/resource_spec.rb +2 -2
- data/spec/unit/concurrent/lock_spec.rb +29 -0
- data/spec/unit/configurer/fact_handler_spec.rb +0 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +36 -19
- data/spec/unit/configurer_spec.rb +400 -406
- data/spec/unit/context/trusted_information_spec.rb +17 -0
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/defaults_spec.rb +38 -4
- data/spec/unit/environments_spec.rb +65 -28
- data/spec/unit/face/facts_spec.rb +24 -20
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/plugin_spec.rb +12 -10
- data/spec/unit/file_system/uniquefile_spec.rb +11 -0
- data/spec/unit/file_system_spec.rb +26 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +12 -54
- data/spec/unit/forge/module_release_spec.rb +19 -6
- data/spec/unit/forge/repository_spec.rb +63 -157
- data/spec/unit/forge_spec.rb +46 -116
- data/spec/unit/functions/find_template_spec.rb +69 -0
- data/spec/unit/functions/lookup_spec.rb +13 -0
- data/spec/unit/http/client_spec.rb +395 -27
- data/spec/unit/http/external_client_spec.rb +201 -0
- data/spec/unit/http/resolver_spec.rb +81 -12
- data/spec/unit/http/response_spec.rb +69 -0
- data/spec/unit/http/service/ca_spec.rb +100 -7
- data/spec/unit/http/service/compiler_spec.rb +627 -0
- data/spec/unit/http/service/file_server_spec.rb +308 -0
- data/spec/unit/http/service/report_spec.rb +118 -0
- data/spec/unit/http/service_spec.rb +117 -4
- data/spec/unit/http/session_spec.rb +237 -19
- data/spec/unit/indirector/catalog/compiler_spec.rb +47 -29
- 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 +167 -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/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/network/http/connection_spec.rb +549 -176
- data/spec/unit/network/http/nocache_pool_spec.rb +25 -3
- data/spec/unit/network/http/pool_spec.rb +89 -11
- 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 +16 -0
- data/spec/unit/node/facts_spec.rb +2 -1
- data/spec/unit/node_spec.rb +7 -4
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +6 -1
- data/spec/unit/pops/validator/validator_spec.rb +7 -2
- data/spec/unit/provider/aix_object_spec.rb +16 -2
- data/spec/unit/provider/group/groupadd_spec.rb +181 -56
- 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 +43 -2
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +76 -15
- data/spec/unit/provider/package/dpkg_spec.rb +28 -6
- data/spec/unit/provider/package/gem_spec.rb +40 -0
- data/spec/unit/provider/package/openbsd_spec.rb +17 -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/pkg_spec.rb +15 -1
- 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 +9 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +8 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -212
- data/spec/unit/provider/package/yum_spec.rb +292 -0
- data/spec/unit/provider/package/zypper_spec.rb +84 -0
- data/spec/unit/provider/package_targetable_spec.rb +60 -0
- data/spec/unit/provider/service/init_spec.rb +1 -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 +92 -12
- data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
- data/spec/unit/provider/user/hpux_spec.rb +2 -2
- data/spec/unit/provider/user/useradd_spec.rb +21 -8
- data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
- data/spec/unit/puppet_pal_2pec.rb +0 -26
- data/spec/unit/puppet_pal_catalog_spec.rb +46 -0
- data/spec/unit/puppet_spec.rb +47 -0
- data/spec/unit/reports/http_spec.rb +70 -52
- 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/certificate_spec.rb +7 -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 +71 -0
- data/spec/unit/ssl/state_machine_spec.rb +99 -13
- data/spec/unit/transaction/persistence_spec.rb +1 -10
- data/spec/unit/transaction/report_spec.rb +4 -0
- data/spec/unit/transaction_spec.rb +45 -1
- data/spec/unit/type/file/content_spec.rb +9 -3
- data/spec/unit/type/file/ensure_spec.rb +1 -2
- data/spec/unit/type/file/source_spec.rb +86 -35
- data/spec/unit/type/package_spec.rb +8 -0
- data/spec/unit/type/service_spec.rb +9 -8
- data/spec/unit/type/user_spec.rb +1 -2
- data/spec/unit/util/at_fork_spec.rb +3 -2
- data/spec/unit/util/autoload_spec.rb +2 -1
- data/spec/unit/util/log/destinations_spec.rb +1 -29
- data/spec/unit/util/log_spec.rb +0 -138
- data/spec/unit/util/logging_spec.rb +200 -0
- 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 +112 -42
- data/spec/unit/util/plist_spec.rb +20 -0
- data/spec/unit/util/rpm_compare_spec.rb +196 -0
- data/spec/unit/util/storage_spec.rb +1 -8
- data/spec/unit/util/windows/adsi_spec.rb +55 -4
- data/spec/unit/util/windows/sid_spec.rb +2 -2
- data/spec/unit/x509/cert_provider_spec.rb +24 -4
- data/tasks/generate_cert_fixtures.rake +15 -1
- data/tasks/manpages.rake +6 -35
- metadata +92 -12
- data/COMMITTERS.md +0 -244
- data/spec/integration/faces/plugin_spec.rb +0 -61
- data/spec/lib/puppet_spec/validators.rb +0 -37
@@ -30,6 +30,10 @@ describe Puppet::Type.type(:package) do
|
|
30
30
|
expect(Puppet::Type.type(:package).provider_feature(:versionable)).not_to be_nil
|
31
31
|
end
|
32
32
|
|
33
|
+
it "should have a :supports_flavors feature" do
|
34
|
+
expect(Puppet::Type.type(:package).provider_feature(:supports_flavors)).not_to be_nil
|
35
|
+
end
|
36
|
+
|
33
37
|
it "should have a :package_settings feature that requires :package_settings_insync?, :package_settings and :package_settings=" do
|
34
38
|
expect(Puppet::Type.type(:package).provider_feature(:package_settings).methods).to eq([:package_settings_insync?, :package_settings, :package_settings=])
|
35
39
|
end
|
@@ -53,6 +57,10 @@ describe Puppet::Type.type(:package) do
|
|
53
57
|
it "should have a package_settings property" do
|
54
58
|
expect(Puppet::Type.type(:package).attrtype(:package_settings)).to eq(:property)
|
55
59
|
end
|
60
|
+
|
61
|
+
it "should have a flavor property" do
|
62
|
+
expect(Puppet::Type.type(:package).attrtype(:flavor)).to eq(:property)
|
63
|
+
end
|
56
64
|
end
|
57
65
|
|
58
66
|
describe "when validating attribute values" do
|
@@ -284,20 +284,21 @@ describe test_title, "when changing the host" do
|
|
284
284
|
@service.property(:enable).sync
|
285
285
|
end
|
286
286
|
|
287
|
-
it "should
|
287
|
+
it "should let superclass implementation resolve insyncness when provider does not respond to the 'enabled_insync?' method" do
|
288
288
|
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
289
|
-
|
290
|
-
@service
|
291
|
-
|
289
|
+
@service[:enable] = true
|
290
|
+
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(false)
|
291
|
+
|
292
292
|
expect(@service.property(:enable).insync?(:true)).to eq(true)
|
293
293
|
end
|
294
294
|
|
295
|
-
it "should
|
295
|
+
it "insyncness should be resolved by provider instead of superclass implementation when provider responds to the 'enabled_insync?' method" do
|
296
296
|
allow(@service.provider.class).to receive(:supports_parameter?).and_return(true)
|
297
|
-
expect(@service.provider).to receive(:cached_enabled?).and_return('true')
|
298
297
|
@service[:enable] = true
|
299
|
-
|
300
|
-
|
298
|
+
allow(@service.provider).to receive(:respond_to?).with(:enabled_insync?).and_return(true)
|
299
|
+
allow(@service.provider).to receive(:enabled_insync?).and_return(false)
|
300
|
+
|
301
|
+
expect(@service.property(:enable).insync?(:true)).to eq(false)
|
301
302
|
end
|
302
303
|
|
303
304
|
it "should sync the service's enable state when changing the state of :ensure if :enable is being managed" do
|
data/spec/unit/type/user_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# encoding:
|
1
|
+
# encoding: utf-8
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Puppet::Type.type(:user) do
|
@@ -408,7 +408,6 @@ describe Puppet::Type.type(:user) do
|
|
408
408
|
Puppet::Resource::Catalog.new :testing do |conf|
|
409
409
|
[testuser, testrole].each { |resource| conf.add_resource resource }
|
410
410
|
end
|
411
|
-
allow(Puppet::Type::User::ProviderDirectoryservice).to receive(:get_macosx_version_major).and_return("10.5")
|
412
411
|
|
413
412
|
rel = testuser.autorequire[0]
|
414
413
|
expect(rel.source.ref).to eq(testrole.ref)
|
@@ -5,6 +5,7 @@ describe 'Puppet::Util::AtFork' do
|
|
5
5
|
|
6
6
|
before :each do
|
7
7
|
Puppet::Util.class_exec do
|
8
|
+
remove_const(:AtFork) if defined?(Puppet::Util::AtFork)
|
8
9
|
const_set(:AtFork, Module.new)
|
9
10
|
end
|
10
11
|
end
|
@@ -18,7 +19,7 @@ describe 'Puppet::Util::AtFork' do
|
|
18
19
|
describe '.get_handler' do
|
19
20
|
context 'when on Solaris' do
|
20
21
|
before :each do
|
21
|
-
expect(
|
22
|
+
expect(Puppet::Util::Platform).to receive(:solaris?).and_return(true)
|
22
23
|
end
|
23
24
|
|
24
25
|
after :each do
|
@@ -113,7 +114,7 @@ describe 'Puppet::Util::AtFork' do
|
|
113
114
|
|
114
115
|
context 'when NOT on Solaris' do
|
115
116
|
before :each do
|
116
|
-
expect(
|
117
|
+
expect(Puppet::Util::Platform).to receive(:solaris?).and_return(false)
|
117
118
|
end
|
118
119
|
|
119
120
|
def stub_noop_handler(namespace_only = false)
|
@@ -23,10 +23,10 @@ describe Puppet::Util::Autoload do
|
|
23
23
|
|
24
24
|
def with_libdir(libdir)
|
25
25
|
begin
|
26
|
-
Puppet::Util::Autoload.instance_variable_set(:@initialized, false)
|
27
26
|
old_loadpath = $LOAD_PATH.dup
|
28
27
|
old_libdir = Puppet[:libdir]
|
29
28
|
Puppet[:libdir] = libdir
|
29
|
+
$LOAD_PATH.unshift(libdir)
|
30
30
|
yield
|
31
31
|
ensure
|
32
32
|
Puppet[:libdir] = old_libdir
|
@@ -83,6 +83,7 @@ describe Puppet::Util::Autoload do
|
|
83
83
|
|
84
84
|
libdir = File.expand_path('/libdir1')
|
85
85
|
Puppet[:vendormoduledir] = vendor_dir
|
86
|
+
Puppet.initialize_settings
|
86
87
|
|
87
88
|
with_libdir(libdir) do
|
88
89
|
expect(@autoload.class).to receive(:gem_directories).and_return(%w{/one /two})
|
@@ -44,41 +44,13 @@ describe Puppet::Util::Log.desttypes[:file] do
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
describe "on POSIX systems", :
|
47
|
+
describe "on POSIX systems", :unless => Puppet::Util::Platform.windows? do
|
48
48
|
describe "with a normal file" do
|
49
49
|
let (:parent) { Pathname.new('/tmp') }
|
50
50
|
let (:abspath) { '/tmp/log' }
|
51
51
|
let (:relpath) { 'log' }
|
52
52
|
|
53
53
|
it_behaves_like "file destination"
|
54
|
-
|
55
|
-
it "logs an error if it can't chown the file owner & group" do
|
56
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
57
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
|
58
|
-
expect(FileUtils).to receive(:chown).with(Puppet[:user], Puppet[:group], abspath).and_raise(Errno::EPERM)
|
59
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
60
|
-
expect(Puppet).to receive(:err).with("Unable to set ownership to #{Puppet[:user]}:#{Puppet[:group]} for log file: #{abspath}")
|
61
|
-
|
62
|
-
@class.new(abspath)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "doesn't attempt to chown when running as non-root" do
|
66
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
67
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(false)
|
68
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
69
|
-
expect(Puppet.features).to receive(:root?).and_return(false)
|
70
|
-
|
71
|
-
@class.new(abspath)
|
72
|
-
end
|
73
|
-
|
74
|
-
it "doesn't attempt to chown when file already exists" do
|
75
|
-
allow(File).to receive(:exist?).with(parent).and_return(true)
|
76
|
-
expect(File).to receive(:exist?).with(Pathname.new(abspath)).and_return(true)
|
77
|
-
expect(FileUtils).not_to receive(:chown).with(Puppet[:user], Puppet[:group], abspath)
|
78
|
-
expect(Puppet.features).to receive(:root?).and_return(true)
|
79
|
-
|
80
|
-
@class.new(abspath)
|
81
|
-
end
|
82
54
|
end
|
83
55
|
|
84
56
|
describe "with a JSON file" do
|
data/spec/unit/util/log_spec.rb
CHANGED
@@ -177,144 +177,6 @@ describe Puppet::Util::Log do
|
|
177
177
|
|
178
178
|
expect(logs.collect(&:message)).to include("Inner block", "Outer block")
|
179
179
|
end
|
180
|
-
|
181
|
-
it 'includes backtrace for RuntimeError in log message when trace option is passed' do
|
182
|
-
logs = []
|
183
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
184
|
-
|
185
|
-
Puppet::Util::Log.newdestination(destination)
|
186
|
-
Puppet::Util::Log.with_destination(destination) do
|
187
|
-
begin
|
188
|
-
raise RuntimeError, 'Oops'
|
189
|
-
rescue RuntimeError => e
|
190
|
-
Puppet.log_exception(e, :default, :trace => true)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
expect(logs.size).to eq(1)
|
194
|
-
log = logs[0]
|
195
|
-
expect(log.message).to match('/log_spec.rb')
|
196
|
-
expect(log.backtrace).to be_nil
|
197
|
-
end
|
198
|
-
|
199
|
-
context "global options" do
|
200
|
-
around :each do |example|
|
201
|
-
Puppet[:trace] = true
|
202
|
-
example.run
|
203
|
-
Puppet[:trace] = false
|
204
|
-
end
|
205
|
-
|
206
|
-
it 'includes backtrace for RuntimeError in log message when trace is enabled globally' do
|
207
|
-
logs = []
|
208
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
209
|
-
|
210
|
-
Puppet::Util::Log.newdestination(destination)
|
211
|
-
Puppet::Util::Log.with_destination(destination) do
|
212
|
-
begin
|
213
|
-
raise RuntimeError, 'Oops'
|
214
|
-
rescue RuntimeError => e
|
215
|
-
Puppet.log_exception(e, :default)
|
216
|
-
end
|
217
|
-
end
|
218
|
-
expect(logs.size).to eq(1)
|
219
|
-
log = logs[0]
|
220
|
-
expect(log.message).to match('/log_spec.rb')
|
221
|
-
expect(log.backtrace).to be_nil
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
it 'excludes backtrace for RuntimeError in log message when trace is disabled' do
|
226
|
-
logs = []
|
227
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
228
|
-
|
229
|
-
Puppet::Util::Log.newdestination(destination)
|
230
|
-
Puppet::Util::Log.with_destination(destination) do
|
231
|
-
begin
|
232
|
-
raise RuntimeError, 'Oops'
|
233
|
-
rescue RuntimeError => e
|
234
|
-
Puppet.log_exception(e)
|
235
|
-
end
|
236
|
-
end
|
237
|
-
expect(logs.size).to eq(1)
|
238
|
-
log = logs[0]
|
239
|
-
expect(log.message).to_not match('/log_spec.rb')
|
240
|
-
expect(log.backtrace).to be_nil
|
241
|
-
end
|
242
|
-
|
243
|
-
it "backtrace is Array in 'backtrace' and excluded from 'message' when logging ParseErrorWithIssue with trace enabled" do
|
244
|
-
logs = []
|
245
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
246
|
-
|
247
|
-
Puppet::Util::Log.newdestination(destination)
|
248
|
-
Puppet::Util::Log.with_destination(destination) do
|
249
|
-
begin
|
250
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
251
|
-
rescue RuntimeError => e
|
252
|
-
Puppet.log_exception(e, :default, :trace => true)
|
253
|
-
end
|
254
|
-
end
|
255
|
-
expect(logs.size).to eq(1)
|
256
|
-
log = logs[0]
|
257
|
-
expect(log.message).to_not match('/log_spec.rb')
|
258
|
-
expect(log.backtrace).to be_a(Array)
|
259
|
-
end
|
260
|
-
|
261
|
-
it "backtrace is excluded when logging ParseErrorWithIssue with trace disabled" do
|
262
|
-
logs = []
|
263
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
264
|
-
|
265
|
-
Puppet::Util::Log.newdestination(destination)
|
266
|
-
Puppet::Util::Log.with_destination(destination) do
|
267
|
-
begin
|
268
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
269
|
-
rescue RuntimeError => e
|
270
|
-
Puppet.log_exception(e)
|
271
|
-
end
|
272
|
-
end
|
273
|
-
expect(logs.size).to eq(1)
|
274
|
-
log = logs[0]
|
275
|
-
expect(log.message).to_not match('/log_spec.rb')
|
276
|
-
expect(log.backtrace).to be_nil
|
277
|
-
end
|
278
|
-
|
279
|
-
it 'includes position details for ParseError in log message' do
|
280
|
-
logs = []
|
281
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
282
|
-
|
283
|
-
Puppet::Util::Log.newdestination(destination)
|
284
|
-
Puppet::Util::Log.with_destination(destination) do
|
285
|
-
begin
|
286
|
-
raise Puppet::ParseError.new('Oops', '/tmp/test.pp', 30, 15)
|
287
|
-
rescue RuntimeError => e
|
288
|
-
Puppet.log_exception(e)
|
289
|
-
end
|
290
|
-
end
|
291
|
-
expect(logs.size).to eq(1)
|
292
|
-
log = logs[0]
|
293
|
-
expect(log.message).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
294
|
-
expect(log.message).to be(log.to_s)
|
295
|
-
end
|
296
|
-
|
297
|
-
it 'excludes position details for ParseErrorWithIssue from log message' do
|
298
|
-
logs = []
|
299
|
-
destination = Puppet::Test::LogCollector.new(logs)
|
300
|
-
|
301
|
-
Puppet::Util::Log.newdestination(destination)
|
302
|
-
Puppet::Util::Log.with_destination(destination) do
|
303
|
-
begin
|
304
|
-
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
305
|
-
rescue RuntimeError => e
|
306
|
-
Puppet.log_exception(e)
|
307
|
-
end
|
308
|
-
end
|
309
|
-
expect(logs.size).to eq(1)
|
310
|
-
log = logs[0]
|
311
|
-
expect(log.message).to_not match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
312
|
-
expect(log.to_s).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
313
|
-
expect(log.issue_code).to eq(:SYNTAX_ERROR)
|
314
|
-
expect(log.file).to eq('/tmp/test.pp')
|
315
|
-
expect(log.line).to eq(30)
|
316
|
-
expect(log.pos).to eq(15)
|
317
|
-
end
|
318
180
|
end
|
319
181
|
|
320
182
|
describe Puppet::Util::Log::DestConsole do
|
@@ -13,6 +13,39 @@ class LoggingTester
|
|
13
13
|
include Puppet::Util::Logging
|
14
14
|
end
|
15
15
|
|
16
|
+
class PuppetStackCreator
|
17
|
+
def raise_error(exception_class)
|
18
|
+
case exception_class
|
19
|
+
when Puppet::ParseErrorWithIssue
|
20
|
+
raise exception_class.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
21
|
+
when Puppet::ParseError
|
22
|
+
raise exception_class.new('Oops', '/tmp/test.pp', 30, 15)
|
23
|
+
else
|
24
|
+
raise exception_class.new('Oops')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def call_raiser(exception_class)
|
29
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test2.pp', 20, self, :raise_error, [exception_class])
|
30
|
+
end
|
31
|
+
|
32
|
+
def two_frames_and_a_raise(exception_class)
|
33
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test3.pp', 15, self, :call_raiser, [exception_class])
|
34
|
+
end
|
35
|
+
|
36
|
+
def outer_rescue(exception_class)
|
37
|
+
begin
|
38
|
+
two_frames_and_a_raise(exception_class)
|
39
|
+
rescue Puppet::Error => e
|
40
|
+
Puppet.log_exception(e)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def run(exception_class)
|
45
|
+
Puppet::Pops::PuppetStack.stack('/tmp/test4.pp', 10, self, :outer_rescue, [exception_class])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
16
49
|
describe Puppet::Util::Logging do
|
17
50
|
before do
|
18
51
|
@logger = LoggingTester.new
|
@@ -340,6 +373,173 @@ original
|
|
340
373
|
.*2\.rb:2:in `b'
|
341
374
|
.*3\.rb:1/)
|
342
375
|
end
|
376
|
+
|
377
|
+
describe "when trace is disabled" do
|
378
|
+
it 'excludes backtrace for RuntimeError in log message' do
|
379
|
+
begin
|
380
|
+
raise RuntimeError, 'Oops'
|
381
|
+
rescue RuntimeError => e
|
382
|
+
Puppet.log_exception(e)
|
383
|
+
end
|
384
|
+
|
385
|
+
expect(@logs.size).to eq(1)
|
386
|
+
log = @logs[0]
|
387
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
388
|
+
expect(log.backtrace).to be_nil
|
389
|
+
end
|
390
|
+
|
391
|
+
it "backtrace member is unset when logging ParseErrorWithIssue" do
|
392
|
+
begin
|
393
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
394
|
+
rescue RuntimeError => e
|
395
|
+
Puppet.log_exception(e)
|
396
|
+
end
|
397
|
+
|
398
|
+
expect(@logs.size).to eq(1)
|
399
|
+
log = @logs[0]
|
400
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
401
|
+
expect(log.backtrace).to be_nil
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
describe "when trace is enabled" do
|
406
|
+
it 'includes backtrace for RuntimeError in log message when enabled globally' do
|
407
|
+
Puppet[:trace] = true
|
408
|
+
begin
|
409
|
+
raise RuntimeError, 'Oops'
|
410
|
+
rescue RuntimeError => e
|
411
|
+
Puppet.log_exception(e, :default)
|
412
|
+
end
|
413
|
+
Puppet[:trace] = false
|
414
|
+
|
415
|
+
expect(@logs.size).to eq(1)
|
416
|
+
log = @logs[0]
|
417
|
+
expect(log.message).to match('/logging_spec.rb')
|
418
|
+
expect(log.backtrace).to be_nil
|
419
|
+
end
|
420
|
+
|
421
|
+
it 'includes backtrace for RuntimeError in log message when enabled via option' do
|
422
|
+
begin
|
423
|
+
raise RuntimeError, 'Oops'
|
424
|
+
rescue RuntimeError => e
|
425
|
+
Puppet.log_exception(e, :default, :trace => true)
|
426
|
+
end
|
427
|
+
|
428
|
+
expect(@logs.size).to eq(1)
|
429
|
+
log = @logs[0]
|
430
|
+
expect(log.message).to match('/logging_spec.rb')
|
431
|
+
expect(log.backtrace).to be_nil
|
432
|
+
end
|
433
|
+
|
434
|
+
|
435
|
+
it "backtrace member is set when logging ParseErrorWithIssue" do
|
436
|
+
begin
|
437
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
438
|
+
rescue RuntimeError => e
|
439
|
+
Puppet.log_exception(e, :default, :trace => true)
|
440
|
+
end
|
441
|
+
|
442
|
+
expect(@logs.size).to eq(1)
|
443
|
+
log = @logs[0]
|
444
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
445
|
+
expect(log.backtrace).to be_a(Array)
|
446
|
+
expect(log.backtrace[0]).to match('/logging_spec.rb')
|
447
|
+
end
|
448
|
+
it "backtrace has interleaved PuppetStack when logging ParseErrorWithIssue" do
|
449
|
+
Puppet[:trace] = true
|
450
|
+
PuppetStackCreator.new.run(Puppet::ParseErrorWithIssue)
|
451
|
+
Puppet[:trace] = false
|
452
|
+
|
453
|
+
expect(@logs.size).to eq(1)
|
454
|
+
log = @logs[0]
|
455
|
+
expect(log.message).to_not match('/logging_spec.rb')
|
456
|
+
expect(log.backtrace[0]).to match('/logging_spec.rb')
|
457
|
+
|
458
|
+
expect(log.backtrace[1]).to match('/tmp/test2.pp:20')
|
459
|
+
puppetstack = log.backtrace.select { |l| l =~ /tmp\/test\d\.pp/ }
|
460
|
+
|
461
|
+
expect(puppetstack.length).to equal 3
|
462
|
+
end
|
463
|
+
|
464
|
+
it "message has interleaved PuppetStack when logging ParseError" do
|
465
|
+
Puppet[:trace] = true
|
466
|
+
PuppetStackCreator.new.run(Puppet::ParseError)
|
467
|
+
Puppet[:trace] = false
|
468
|
+
|
469
|
+
expect(@logs.size).to eq(1)
|
470
|
+
log = @logs[0]
|
471
|
+
|
472
|
+
log_lines = log.message.split("\n")
|
473
|
+
expect(log_lines[1]).to match('/logging_spec.rb')
|
474
|
+
expect(log_lines[2]).to match('/tmp/test2.pp:20')
|
475
|
+
puppetstack = log_lines.select { |l| l =~ /tmp\/test\d\.pp/ }
|
476
|
+
|
477
|
+
expect(puppetstack.length).to equal 3
|
478
|
+
end
|
479
|
+
end
|
480
|
+
|
481
|
+
describe "when trace is disabled but puppet_trace is enabled" do
|
482
|
+
it "includes only PuppetStack as backtrace member with ParseErrorWithIssue" do
|
483
|
+
Puppet[:trace] = false
|
484
|
+
Puppet[:puppet_trace] = true
|
485
|
+
PuppetStackCreator.new.run(Puppet::ParseErrorWithIssue)
|
486
|
+
Puppet[:trace] = false
|
487
|
+
Puppet[:puppet_trace] = false
|
488
|
+
|
489
|
+
expect(@logs.size).to eq(1)
|
490
|
+
log = @logs[0]
|
491
|
+
|
492
|
+
expect(log.backtrace[0]).to match('/tmp/test2.pp:20')
|
493
|
+
expect(log.backtrace.length).to equal 3
|
494
|
+
end
|
495
|
+
|
496
|
+
it "includes only PuppetStack in message with ParseError" do
|
497
|
+
Puppet[:trace] = false
|
498
|
+
Puppet[:puppet_trace] = true
|
499
|
+
PuppetStackCreator.new.run(Puppet::ParseError)
|
500
|
+
Puppet[:trace] = false
|
501
|
+
Puppet[:puppet_trace] = false
|
502
|
+
|
503
|
+
expect(@logs.size).to eq(1)
|
504
|
+
log = @logs[0]
|
505
|
+
|
506
|
+
log_lines = log.message.split("\n")
|
507
|
+
expect(log_lines[1]).to match('/tmp/test2.pp:20')
|
508
|
+
puppetstack = log_lines.select { |l| l =~ /tmp\/test\d\.pp/ }
|
509
|
+
|
510
|
+
expect(puppetstack.length).to equal 3
|
511
|
+
end
|
512
|
+
end
|
513
|
+
|
514
|
+
it 'includes position details for ParseError in log message' do
|
515
|
+
begin
|
516
|
+
raise Puppet::ParseError.new('Oops', '/tmp/test.pp', 30, 15)
|
517
|
+
rescue RuntimeError => e
|
518
|
+
Puppet.log_exception(e)
|
519
|
+
end
|
520
|
+
|
521
|
+
expect(@logs.size).to eq(1)
|
522
|
+
log = @logs[0]
|
523
|
+
expect(log.message).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
524
|
+
expect(log.message).to be(log.to_s)
|
525
|
+
end
|
526
|
+
|
527
|
+
it 'excludes position details for ParseErrorWithIssue from log message' do
|
528
|
+
begin
|
529
|
+
raise Puppet::ParseErrorWithIssue.new('Oops', '/tmp/test.pp', 30, 15, nil, :SYNTAX_ERROR)
|
530
|
+
rescue RuntimeError => e
|
531
|
+
Puppet.log_exception(e)
|
532
|
+
end
|
533
|
+
|
534
|
+
expect(@logs.size).to eq(1)
|
535
|
+
log = @logs[0]
|
536
|
+
expect(log.message).to_not match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
537
|
+
expect(log.to_s).to match(/ \(file: \/tmp\/test\.pp, line: 30, column: 15\)/)
|
538
|
+
expect(log.issue_code).to eq(:SYNTAX_ERROR)
|
539
|
+
expect(log.file).to eq('/tmp/test.pp')
|
540
|
+
expect(log.line).to eq(30)
|
541
|
+
expect(log.pos).to eq(15)
|
542
|
+
end
|
343
543
|
end
|
344
544
|
|
345
545
|
describe 'when Facter' do
|