puppet 7.7.0-x86-mingw32 → 7.11.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +7 -7
- data/Gemfile +4 -3
- data/Gemfile.lock +18 -18
- data/README.md +4 -4
- data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
- data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
- data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
- data/{ext → examples}/nagios/check_puppet.rb +2 -2
- data/ext/README.md +13 -0
- data/ext/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +1 -0
- data/install.rb +0 -4
- data/lib/puppet/application/agent.rb +4 -0
- data/lib/puppet/application/apply.rb +20 -2
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +30 -15
- data/lib/puppet/application/ssl.rb +1 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer.rb +169 -50
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +70 -30
- data/lib/puppet/environments.rb +75 -25
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/file_serving/configuration/parser.rb +2 -0
- data/lib/puppet/file_serving/configuration.rb +2 -0
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_system/file_impl.rb +3 -1
- data/lib/puppet/file_system/windows.rb +2 -2
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/http/service/compiler.rb +6 -1
- data/lib/puppet/indirector/catalog/compiler.rb +24 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/resource/ral.rb +6 -1
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/interface/documentation.rb +1 -0
- data/lib/puppet/module/plan.rb +0 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +12 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
- data/lib/puppet/module_tool/errors/shared.rb +17 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/scope.rb +8 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
- data/lib/puppet/pops/model/ast.rb +1 -0
- data/lib/puppet/pops/model/factory.rb +14 -13
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/eparser.rb +752 -753
- data/lib/puppet/pops/parser/lexer2.rb +69 -68
- data/lib/puppet/pops/parser/slurp_support.rb +1 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
- data/lib/puppet/pops/types/type_formatter.rb +7 -6
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +16 -4
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/package/apt.rb +3 -3
- data/lib/puppet/provider/package/nim.rb +11 -6
- data/lib/puppet/provider/package/pip.rb +15 -3
- data/lib/puppet/provider/package/pkg.rb +9 -2
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
- data/lib/puppet/provider/package/windows/package.rb +2 -1
- data/lib/puppet/provider/package/windows.rb +14 -1
- data/lib/puppet/provider/package/yum.rb +4 -4
- data/lib/puppet/provider/package/zypper.rb +3 -3
- data/lib/puppet/provider/parsedfile.rb +3 -0
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +1 -1
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +2 -2
- data/lib/puppet/provider/service/redhat.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +8 -3
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +25 -12
- data/lib/puppet/provider/user/useradd.rb +52 -16
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/type_collection.rb +4 -1
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/config_file.rb +1 -8
- data/lib/puppet/settings/file_setting.rb +3 -8
- data/lib/puppet/settings/value_translator.rb +0 -1
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +11 -1
- data/lib/puppet/transaction/report.rb +15 -1
- data/lib/puppet/type/exec.rb +35 -5
- data/lib/puppet/type/file/mode.rb +6 -0
- data/lib/puppet/type/file.rb +6 -6
- data/lib/puppet/type/filebucket.rb +2 -2
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +8 -9
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +39 -22
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/log.rb +1 -2
- data/lib/puppet/util/logging.rb +1 -25
- data/lib/puppet/util/monkey_patches.rb +2 -17
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -2
- data/lib/puppet/util/symbolic_file_mode.rb +29 -17
- data/lib/puppet/util/tagging.rb +1 -0
- data/lib/puppet/util/windows/sid.rb +3 -1
- data/lib/puppet/util/windows/user.rb +0 -1
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +3 -21
- data/lib/puppet.rb +5 -9
- data/locales/puppet.pot +346 -274
- data/man/man5/puppet.conf.5 +76 -25
- data/man/man8/puppet-agent.8 +4 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +9 -9
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +7 -7
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +3 -3
- data/man/man8/puppet-node.8 +5 -5
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +5 -5
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
- data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
- data/spec/fixtures/ssl/ca.pem +52 -52
- data/spec/fixtures/ssl/crl.pem +25 -25
- data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
- data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +32 -32
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +107 -107
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
- data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
- data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
- data/spec/fixtures/ssl/intermediate.pem +51 -51
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +106 -106
- data/spec/fixtures/ssl/pluto.pem +50 -50
- data/spec/fixtures/ssl/request-key.pem +106 -106
- data/spec/fixtures/ssl/request.pem +45 -45
- data/spec/fixtures/ssl/revoked-key.pem +106 -106
- data/spec/fixtures/ssl/revoked.pem +49 -49
- data/spec/fixtures/ssl/signed-key.pem +106 -106
- data/spec/fixtures/ssl/signed.pem +47 -47
- data/spec/fixtures/ssl/tampered-cert.pem +49 -49
- data/spec/fixtures/ssl/tampered-csr.pem +45 -45
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
- data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
- data/spec/fixtures/ssl/unknown-ca.pem +52 -52
- data/spec/integration/application/agent_spec.rb +118 -52
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/resource_spec.rb +64 -0
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/defaults_spec.rb +5 -0
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/indirector/facts/facter_spec.rb +93 -39
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/type/exec_spec.rb +70 -45
- data/spec/integration/type/file_spec.rb +2 -2
- data/spec/integration/type/package_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/lib/puppet/test_ca.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +13 -2
- data/spec/lib/puppet_spec/puppetserver.rb +15 -0
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
- data/spec/shared_contexts/l10n.rb +27 -0
- data/spec/spec_helper.rb +1 -10
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/configurer_spec.rb +277 -56
- data/spec/unit/environments_spec.rb +184 -0
- data/spec/unit/facter_impl_spec.rb +31 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
- data/spec/unit/file_serving/configuration_spec.rb +12 -4
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +13 -0
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +10 -0
- data/spec/unit/functions/logging_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +87 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +19 -10
- data/spec/unit/http/service/compiler_spec.rb +8 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/indirection_spec.rb +10 -3
- data/spec/unit/indirector/resource/ral_spec.rb +40 -75
- data/spec/unit/interface/action_spec.rb +0 -9
- data/spec/unit/module_spec.rb +14 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
- data/spec/unit/parser/compiler_spec.rb +29 -0
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
- data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
- data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- data/spec/unit/provider/package/pip2_spec.rb +1 -1
- data/spec/unit/provider/package/pip3_spec.rb +1 -1
- data/spec/unit/provider/package/pip_spec.rb +38 -1
- data/spec/unit/provider/package/pkg_spec.rb +19 -5
- data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
- data/spec/unit/provider/parsedfile_spec.rb +10 -0
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/systemd_spec.rb +13 -1
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
- data/spec/unit/provider/user/useradd_spec.rb +3 -2
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/resource/type_collection_spec.rb +16 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/settings/config_file_spec.rb +1 -11
- data/spec/unit/settings/file_setting_spec.rb +10 -7
- data/spec/unit/settings/value_translator_spec.rb +4 -5
- data/spec/unit/settings_spec.rb +120 -79
- data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/service_spec.rb +49 -34
- data/spec/unit/type/tidy_spec.rb +7 -0
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/ldap/connection_spec.rb +10 -10
- data/spec/unit/util/ldap/manager_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/windows/sid_spec.rb +39 -4
- data/spec/unit/util_spec.rb +1 -3
- data/spec/unit/x509/cert_provider_spec.rb +9 -1
- data/tasks/generate_cert_fixtures.rake +10 -1
- data/tasks/parallel.rake +3 -3
- metadata +53 -95
- data/ext/README.environment +0 -8
- data/ext/dbfix.sql +0 -132
- data/ext/debian/README.Debian +0 -8
- data/ext/debian/README.source +0 -2
- data/ext/debian/TODO.Debian +0 -1
- data/ext/debian/changelog.erb +0 -1122
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -144
- data/ext/debian/copyright +0 -339
- data/ext/debian/docs +0 -1
- data/ext/debian/fileserver.conf +0 -41
- data/ext/debian/puppet-common.dirs +0 -13
- data/ext/debian/puppet-common.install +0 -3
- data/ext/debian/puppet-common.lintian-overrides +0 -5
- data/ext/debian/puppet-common.manpages +0 -28
- data/ext/debian/puppet-common.postinst +0 -35
- data/ext/debian/puppet-common.postrm +0 -33
- data/ext/debian/puppet-el.dirs +0 -1
- data/ext/debian/puppet-el.emacsen-install +0 -25
- data/ext/debian/puppet-el.emacsen-remove +0 -11
- data/ext/debian/puppet-el.emacsen-startup +0 -9
- data/ext/debian/puppet-el.install +0 -1
- data/ext/debian/puppet-testsuite.install +0 -2
- data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
- data/ext/debian/puppet.lintian-overrides +0 -3
- data/ext/debian/puppet.logrotate +0 -20
- data/ext/debian/puppet.postinst +0 -20
- data/ext/debian/puppet.postrm +0 -20
- data/ext/debian/puppet.preinst +0 -20
- data/ext/debian/puppetmaster-common.install +0 -2
- data/ext/debian/puppetmaster-common.manpages +0 -2
- data/ext/debian/puppetmaster-common.postinst +0 -6
- data/ext/debian/puppetmaster-passenger.dirs +0 -4
- data/ext/debian/puppetmaster-passenger.postinst +0 -162
- data/ext/debian/puppetmaster-passenger.postrm +0 -61
- data/ext/debian/puppetmaster.README.debian +0 -17
- data/ext/debian/puppetmaster.default +0 -14
- data/ext/debian/puppetmaster.init +0 -137
- data/ext/debian/puppetmaster.lintian-overrides +0 -3
- data/ext/debian/puppetmaster.postinst +0 -20
- data/ext/debian/puppetmaster.postrm +0 -5
- data/ext/debian/puppetmaster.preinst +0 -22
- data/ext/debian/rules +0 -132
- data/ext/debian/source/format +0 -1
- data/ext/debian/source/options +0 -1
- data/ext/debian/vim-puppet.README.Debian +0 -13
- data/ext/debian/vim-puppet.dirs +0 -5
- data/ext/debian/vim-puppet.yaml +0 -7
- data/ext/debian/watch +0 -2
- data/ext/freebsd/puppetd +0 -26
- data/ext/freebsd/puppetmasterd +0 -26
- data/ext/gentoo/conf.d/puppet +0 -5
- data/ext/gentoo/conf.d/puppetmaster +0 -12
- data/ext/gentoo/init.d/puppet +0 -38
- data/ext/gentoo/init.d/puppetmaster +0 -51
- data/ext/gentoo/puppet/fileserver.conf +0 -41
- data/ext/ips/puppet-agent +0 -44
- data/ext/ips/puppet-master +0 -44
- data/ext/ips/puppet.p5m.erb +0 -12
- data/ext/ips/puppetagent.xml +0 -42
- data/ext/ips/puppetmaster.xml +0 -42
- data/ext/ips/rules +0 -19
- data/ext/ips/transforms +0 -34
- data/ext/ldap/puppet.schema +0 -24
- data/ext/logcheck/puppet +0 -23
- data/ext/osx/file_mapping.yaml +0 -28
- data/ext/osx/postflight.erb +0 -109
- data/ext/osx/preflight.erb +0 -52
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/redhat/fileserver.conf +0 -41
- data/ext/redhat/logrotate +0 -21
- data/ext/redhat/puppet.spec.erb +0 -841
- data/ext/redhat/server.init +0 -128
- data/ext/redhat/server.sysconfig +0 -13
- data/ext/solaris/pkginfo +0 -6
- data/ext/solaris/smf/puppetd.xml +0 -77
- data/ext/solaris/smf/puppetmasterd.xml +0 -77
- data/ext/solaris/smf/svc-puppetd +0 -71
- data/ext/solaris/smf/svc-puppetmasterd +0 -67
- data/ext/suse/puppet.spec +0 -310
- data/ext/suse/server.init +0 -173
- data/ext/yaml_nodes.rb +0 -105
- data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -537,15 +537,6 @@ describe Puppet::Interface::Action do
|
|
537
537
|
end
|
538
538
|
end
|
539
539
|
|
540
|
-
context "#when_rendering" do
|
541
|
-
it "should fail if no type is given when_rendering"
|
542
|
-
it "should accept a when_rendering block"
|
543
|
-
it "should accept multiple when_rendering blocks"
|
544
|
-
it "should fail if when_rendering gets a non-symbol identifier"
|
545
|
-
it "should fail if a second block is given for the same type"
|
546
|
-
it "should return the block if asked"
|
547
|
-
end
|
548
|
-
|
549
540
|
context "#validate_and_clean" do
|
550
541
|
subject do
|
551
542
|
Puppet::Interface.new(:validate_args, '1.0.0') do
|
data/spec/unit/module_spec.rb
CHANGED
@@ -567,6 +567,20 @@ describe Puppet::Module do
|
|
567
567
|
expect(mod.task_file(task_exe)).to eq("#{mod.path}/tasks/#{task_exe}")
|
568
568
|
end
|
569
569
|
|
570
|
+
it "should list files from the scripts directory if required by the task" do
|
571
|
+
mod = 'loads_scripts'
|
572
|
+
task_dep = 'myscript.sh'
|
573
|
+
script_ref = "#{mod}/scripts/#{task_dep}"
|
574
|
+
task_json = JSON.generate({'files' => [script_ref]})
|
575
|
+
task = [['task', { name: 'task.json', content: task_json }]]
|
576
|
+
mod = PuppetSpec::Modules.create(mod, @modpath, {:environment => env,
|
577
|
+
:scripts => [task_dep],
|
578
|
+
:tasks => task})
|
579
|
+
|
580
|
+
expect(mod.tasks.first.files).to include({'name' => script_ref,
|
581
|
+
'path' => /#{script_ref}/})
|
582
|
+
end
|
583
|
+
|
570
584
|
it "should return nil when asked for an individual task file if it does not exist" do
|
571
585
|
mod = PuppetSpec::Modules.create('task_file_neg', @modpath, {:environment => env,
|
572
586
|
:tasks => []})
|
@@ -34,8 +34,7 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
34
34
|
|
35
35
|
if Puppet::Util::Platform.windows?
|
36
36
|
before :each do
|
37
|
-
|
38
|
-
allow(Puppet.settings).to receive(:[]).with(:module_working_dir).and_return(Dir.mktmpdir('installertmp'))
|
37
|
+
Puppet[:module_working_dir] = tmpdir('module_tool_install').gsub('/', '\\')
|
39
38
|
end
|
40
39
|
end
|
41
40
|
|
@@ -66,6 +65,18 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
66
65
|
graph_should_include 'pmtacceptance-stdlib', nil => v('4.1.0')
|
67
66
|
end
|
68
67
|
|
68
|
+
it 'reports a meaningful error if the name is invalid' do
|
69
|
+
app = installer('ntp', install_dir, options)
|
70
|
+
results = app.run
|
71
|
+
expect(results).to include :result => :failure
|
72
|
+
expect(results[:error][:oneline]).to eq("Could not install 'ntp', did you mean 'puppetlabs-ntp'?")
|
73
|
+
expect(results[:error][:multiline]).to eq(<<~END.chomp)
|
74
|
+
Could not install module 'ntp'
|
75
|
+
The name 'ntp' is invalid
|
76
|
+
Did you mean `puppet module install puppetlabs-ntp`?
|
77
|
+
END
|
78
|
+
end
|
79
|
+
|
69
80
|
context 'with a tarball file' do
|
70
81
|
let(:module) { fixtures('stdlib.tgz') }
|
71
82
|
|
@@ -273,18 +284,45 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
273
284
|
expect(subject).to include :result => :failure
|
274
285
|
end
|
275
286
|
|
276
|
-
|
277
|
-
graph
|
278
|
-
exception
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
287
|
+
context 'with unsatisfiable dependencies' do
|
288
|
+
let(:graph) { double(SemanticPuppet::Dependency::Graph, :modules => ['pmtacceptance-mysql']) }
|
289
|
+
let(:exception) { SemanticPuppet::Dependency::UnsatisfiableGraph.new(graph, constraint) }
|
290
|
+
|
291
|
+
before do
|
292
|
+
allow(SemanticPuppet::Dependency).to receive(:resolve).and_raise(exception)
|
293
|
+
end
|
294
|
+
|
295
|
+
context 'with known constraint' do
|
296
|
+
let(:constraint) { 'pmtacceptance-mysql' }
|
297
|
+
|
298
|
+
it 'prints a detailed error containing the modules that would not be satisfied' do
|
299
|
+
expect(subject[:error]).to include(:multiline)
|
300
|
+
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
301
|
+
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy one or more of the following installed modules:")
|
302
|
+
expect(subject[:error][:multiline]).to include("pmtacceptance-keystone, expects 'pmtacceptance-mysql': >=0.6.1 <1.0.0")
|
303
|
+
expect(subject[:error][:multiline]).to include("Use `puppet module install 'pmtacceptance-mysql' --ignore-dependencies` to install only this module")
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
context 'with missing constraint' do
|
308
|
+
let(:constraint) { nil }
|
309
|
+
|
310
|
+
it 'prints the generic error message' do
|
311
|
+
expect(subject[:error]).to include(:multiline)
|
312
|
+
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
313
|
+
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy all dependencies")
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
context 'with unknown constraint' do
|
318
|
+
let(:constraint) { 'another' }
|
319
|
+
|
320
|
+
it 'prints the generic error message' do
|
321
|
+
expect(subject[:error]).to include(:multiline)
|
322
|
+
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
323
|
+
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy all dependencies")
|
324
|
+
end
|
325
|
+
end
|
288
326
|
end
|
289
327
|
|
290
328
|
context 'with --ignore-dependencies' do
|
@@ -862,6 +862,35 @@ describe Puppet::Parser::Compiler do
|
|
862
862
|
|
863
863
|
expect(catalog.resource('Class', 'Something')).not_to be_nil
|
864
864
|
end
|
865
|
+
|
866
|
+
it "raises if the class name is the same as the node definition" do
|
867
|
+
name = node.name
|
868
|
+
node.classes = [name]
|
869
|
+
|
870
|
+
expect {
|
871
|
+
compile_to_catalog(<<-MANIFEST, node)
|
872
|
+
class #{name} {}
|
873
|
+
node #{name} {
|
874
|
+
include #{name}
|
875
|
+
}
|
876
|
+
MANIFEST
|
877
|
+
}.to raise_error(Puppet::Error, /Class '#{name}' is already defined \(line: 1\); cannot be redefined as a node \(line: 2\) on node #{name}/)
|
878
|
+
end
|
879
|
+
|
880
|
+
it "evaluates the class if the node definition uses a regexp" do
|
881
|
+
name = node.name
|
882
|
+
node.classes = [name]
|
883
|
+
|
884
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
885
|
+
class #{name} {}
|
886
|
+
node /#{name}/ {
|
887
|
+
include #{name}
|
888
|
+
}
|
889
|
+
MANIFEST
|
890
|
+
|
891
|
+
expect(@logs).to be_empty
|
892
|
+
expect(catalog.resource('Class', node.name.capitalize)).to_not be_nil
|
893
|
+
end
|
865
894
|
end
|
866
895
|
|
867
896
|
it "should fail if the class doesn't exist" do
|
@@ -2,6 +2,8 @@ require 'spec_helper'
|
|
2
2
|
require 'puppet/parser/templatewrapper'
|
3
3
|
|
4
4
|
describe Puppet::Parser::TemplateWrapper do
|
5
|
+
include PuppetSpec::Files
|
6
|
+
|
5
7
|
let(:known_resource_types) { Puppet::Resource::TypeCollection.new("env") }
|
6
8
|
let(:scope) do
|
7
9
|
compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("mynode"))
|
@@ -41,6 +43,13 @@ describe Puppet::Parser::TemplateWrapper do
|
|
41
43
|
expect(tw.result).to eq(full_file_name)
|
42
44
|
end
|
43
45
|
|
46
|
+
it "ignores a leading BOM" do
|
47
|
+
full_file_name = given_a_template_file("bom_template", "\uFEFF<%= file %>")
|
48
|
+
|
49
|
+
tw.file = "bom_template"
|
50
|
+
expect(tw.result).to eq(full_file_name)
|
51
|
+
end
|
52
|
+
|
44
53
|
it "evaluates a given string as a template" do
|
45
54
|
expect(tw.result("template contents")).to eql("template contents")
|
46
55
|
end
|
@@ -90,11 +99,12 @@ describe Puppet::Parser::TemplateWrapper do
|
|
90
99
|
end
|
91
100
|
|
92
101
|
def given_a_template_file(name, contents)
|
93
|
-
full_name = "
|
102
|
+
full_name = tmpfile("template_#{name}")
|
103
|
+
File.binwrite(full_name, contents)
|
104
|
+
|
94
105
|
allow(Puppet::Parser::Files).to receive(:find_template).
|
95
106
|
with(name, anything()).
|
96
107
|
and_return(full_name)
|
97
|
-
allow(Puppet::FileSystem).to receive(:read_preserve_line_endings).with(full_name).and_return(contents)
|
98
108
|
|
99
109
|
full_name
|
100
110
|
end
|
@@ -84,10 +84,6 @@ Puppet::Functions.create_function('testmodule::foo') {
|
|
84
84
|
|
85
85
|
context 'when loading files from disk' do
|
86
86
|
it 'should always read files as UTF-8' do
|
87
|
-
if Puppet::Util::Platform.windows? && Encoding.default_external == Encoding::UTF_8
|
88
|
-
raise 'This test must be run in a codepage other than 65001 to validate behavior'
|
89
|
-
end
|
90
|
-
|
91
87
|
module_dir = dir_containing('testmodule', {
|
92
88
|
'lib' => { 'puppet' => { 'functions' => { 'testmodule' => {
|
93
89
|
'foo.rb' => code_utf8
|
@@ -101,11 +97,6 @@ Puppet::Functions.create_function('testmodule::foo') {
|
|
101
97
|
|
102
98
|
it 'currently ignores the UTF-8 BOM (Byte Order Mark) when loading module files' do
|
103
99
|
bom = "\uFEFF"
|
104
|
-
|
105
|
-
if Puppet::Util::Platform.windows? && Encoding.default_external == Encoding::UTF_8
|
106
|
-
raise 'This test must be run in a codepage other than 65001 to validate behavior'
|
107
|
-
end
|
108
|
-
|
109
100
|
module_dir = dir_containing('testmodule', {
|
110
101
|
'lib' => { 'puppet' => { 'functions' => { 'testmodule' => {
|
111
102
|
'foo.rb' => "#{bom}#{code_utf8}"
|
@@ -918,10 +918,6 @@ describe Puppet::Pops::Parser::Lexer2 do
|
|
918
918
|
|
919
919
|
context 'when lexing files from disk' do
|
920
920
|
it 'should always read files as UTF-8' do
|
921
|
-
if Puppet::Util::Platform.windows? && Encoding.default_external == Encoding::UTF_8
|
922
|
-
raise 'This test must be run in a codepage other than 65001 to validate behavior'
|
923
|
-
end
|
924
|
-
|
925
921
|
manifest_code = "notify { '#{rune_utf8}': }"
|
926
922
|
manifest = file_containing('manifest.pp', manifest_code)
|
927
923
|
lexed_file = described_class.new.lex_file(manifest)
|
@@ -95,18 +95,7 @@ describe "egrammar parsing containers" do
|
|
95
95
|
expect(dump(parse("class foo::default {}"))).to eq("(class foo::default ())")
|
96
96
|
end
|
97
97
|
|
98
|
-
it "class class inherits default {} # inherits default", :broken => true do
|
99
|
-
expect {
|
100
|
-
parse("class class inherits default {}")
|
101
|
-
}.to raise_error(/not a valid classname/)
|
102
|
-
end
|
103
|
-
|
104
98
|
it "class class inherits default {} # inherits default" do
|
105
|
-
# TODO: See previous test marked as :broken=>true, it is actually this test (result) that is wacky,
|
106
|
-
# this because a class is named at parse time (since class evaluation is lazy, the model must have the
|
107
|
-
# full class name for nested classes - only, it gets this wrong when a class is named "class" - or at least
|
108
|
-
# I think it is wrong.)
|
109
|
-
#
|
110
99
|
expect { parse("class class inherits default {}") }.to raise_error(/'class' keyword not allowed at this location/)
|
111
100
|
end
|
112
101
|
|
@@ -559,6 +559,29 @@ module Serialization
|
|
559
559
|
expect(warnings).to eql(["['key'] contains the special value default. It will be converted to the String 'default'"])
|
560
560
|
end
|
561
561
|
end
|
562
|
+
context 'and force_symbol set to true' do
|
563
|
+
let(:to_converter) { ToDataConverter.new(:rich_data => false, :force_symbol => true) }
|
564
|
+
|
565
|
+
it 'A Hash with Symbol values is converted to hash with Symbol values' do
|
566
|
+
val = { 'one' => :one, 'two' => :two }
|
567
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
568
|
+
|
569
|
+
# write and read methods does not work here as we cannot force Symbols in Json.
|
570
|
+
# and a hash with symbol values cannot be an instance of Types::TypeFactory.data.
|
571
|
+
# Using YAML for this instead
|
572
|
+
io.reopen
|
573
|
+
value = to_converter.convert(val)
|
574
|
+
io << [value].to_yaml
|
575
|
+
io.rewind
|
576
|
+
|
577
|
+
val2 = from_converter.convert(YAML::load(io.read)[0])
|
578
|
+
|
579
|
+
expect(val2).to be_a(Hash)
|
580
|
+
expect(val2).to eql({ 'one' => :one, 'two' => :two })
|
581
|
+
end
|
582
|
+
expect(warnings).to be_empty
|
583
|
+
end
|
584
|
+
end
|
562
585
|
end
|
563
586
|
|
564
587
|
context 'with rich_data is set to true' do
|
@@ -632,6 +655,41 @@ module Serialization
|
|
632
655
|
end.to raise_error(/Cannot create a Pcore::TimestampType from a Integer/)
|
633
656
|
end
|
634
657
|
end
|
658
|
+
|
659
|
+
context 'when data is unknown' do
|
660
|
+
let(:to_converter) { ToDataConverter.new(:message_prefix => 'Test Hash') }
|
661
|
+
let(:logs) { [] }
|
662
|
+
let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
|
663
|
+
let(:val) { Class.new }
|
664
|
+
|
665
|
+
context 'and :silence_warnings undefined or set to false' do
|
666
|
+
it 'convert the unknown data to string with warnings' do
|
667
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
668
|
+
write(val)
|
669
|
+
val2 = read
|
670
|
+
expect(val2).to be_a(String)
|
671
|
+
expect(val2).to match(/Class/)
|
672
|
+
end
|
673
|
+
expect(warnings).to eql([
|
674
|
+
"Test Hash contains a #{val.class} value. It will be converted to the String '#{val.to_s}'"])
|
675
|
+
end
|
676
|
+
end
|
677
|
+
|
678
|
+
context 'and :silence_warnings undefined or set to true' do
|
679
|
+
let(:to_converter) { ToDataConverter.new(:message_prefix => 'Test Hash', :silence_warnings => true) }
|
680
|
+
|
681
|
+
it 'convert the unknown data to string without warnings if silence_warnings set to true' do
|
682
|
+
val = Class.new
|
683
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
684
|
+
write(val)
|
685
|
+
val2 = read
|
686
|
+
expect(val2).to be_a(String)
|
687
|
+
expect(val2).to match(/Class/)
|
688
|
+
end
|
689
|
+
expect(warnings).to be_empty
|
690
|
+
end
|
691
|
+
end
|
692
|
+
end
|
635
693
|
end
|
636
694
|
end
|
637
695
|
end
|
@@ -154,4 +154,9 @@ describe 'ToStringifiedConverter' do
|
|
154
154
|
unassigned = [243, 176, 128, 128].pack("C*").force_encoding(Encoding::UTF_8)
|
155
155
|
expect(transform(unassigned)).to eq("")
|
156
156
|
end
|
157
|
+
|
158
|
+
it 'converts ProcessOutput objects to string' do
|
159
|
+
object = Puppet::Util::Execution::ProcessOutput.new('object', 0)
|
160
|
+
expect(transform(object)).to be_instance_of(String)
|
161
|
+
end
|
157
162
|
end
|
@@ -125,6 +125,24 @@ describe 'Semantic Versions' do
|
|
125
125
|
expect(eval_and_collect_notices(code)).to eql(['true', 'false'])
|
126
126
|
end
|
127
127
|
|
128
|
+
it 'can be compared to another instance created from arguments' do
|
129
|
+
code = <<-CODE
|
130
|
+
$x = SemVer('1.2.3-rc4+5')
|
131
|
+
$y = SemVer(1, 2, 3, 'rc4', '5')
|
132
|
+
notice($x == $y)
|
133
|
+
CODE
|
134
|
+
expect(eval_and_collect_notices(code)).to eql(['true'])
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'can be compared to another instance created from a hash' do
|
138
|
+
code = <<-CODE
|
139
|
+
$x = SemVer('1.2.3-rc4+5')
|
140
|
+
$y = SemVer(major => 1, minor => 2, patch => 3, prerelease => 'rc4', build => '5')
|
141
|
+
notice($x == $y)
|
142
|
+
CODE
|
143
|
+
expect(eval_and_collect_notices(code)).to eql(['true'])
|
144
|
+
end
|
145
|
+
|
128
146
|
it 'can be compared to another instance for magnitude' do
|
129
147
|
code = <<-CODE
|
130
148
|
$x = SemVer('1.1.1')
|
@@ -113,6 +113,24 @@ describe 'Sensitive Type' do
|
|
113
113
|
expect(eval_and_collect_notices(code)).to eq(['Sensitive[Integer] != Sensitive[String]'])
|
114
114
|
end
|
115
115
|
|
116
|
+
it 'equals another instance with the same value' do
|
117
|
+
code =<<-CODE
|
118
|
+
$i = Sensitive('secret')
|
119
|
+
$o = Sensitive('secret')
|
120
|
+
notice($i == $o)
|
121
|
+
CODE
|
122
|
+
expect(eval_and_collect_notices(code)).to eq(['true'])
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'has equal hash keys for same values' do
|
126
|
+
code =<<-CODE
|
127
|
+
$i = Sensitive('secret')
|
128
|
+
$o = Sensitive('secret')
|
129
|
+
notice({$i => 1} == {$o => 1})
|
130
|
+
CODE
|
131
|
+
expect(eval_and_collect_notices(code)).to eq(['true'])
|
132
|
+
end
|
133
|
+
|
116
134
|
it 'can be created from another sensitive instance ' do
|
117
135
|
code =<<-CODE
|
118
136
|
$o = Sensitive("hunter2")
|
@@ -1980,6 +1980,12 @@ describe 'The type calculator' do
|
|
1980
1980
|
expect(calculator.instance?(tuple, [1, 'a', 1])).to eq(false)
|
1981
1981
|
end
|
1982
1982
|
|
1983
|
+
it 'should not consider ProcessOutput objects as instanceof PScalarDataType' do
|
1984
|
+
object = Puppet::Util::Execution::ProcessOutput.new('object', 0)
|
1985
|
+
|
1986
|
+
expect(calculator.instance?(PScalarDataType::DEFAULT, object)).to eq(false)
|
1987
|
+
end
|
1988
|
+
|
1983
1989
|
context 'and t is Struct' do
|
1984
1990
|
it 'should consider hash[cont] as instance of Struct[cont-t]' do
|
1985
1991
|
struct = struct_t({'a'=>Integer, 'b'=>String, 'c'=>Float})
|
@@ -476,7 +476,7 @@ context Puppet::Type.type(:package).provider(:gem) do
|
|
476
476
|
end
|
477
477
|
|
478
478
|
context 'when is defaultfor' do
|
479
|
-
let(:os) {
|
479
|
+
let(:os) { Puppet.runtime[:facter].value(:operatingsystem) }
|
480
480
|
subject do
|
481
481
|
described_class.defaultfor(operatingsystem: os)
|
482
482
|
described_class.specificity
|
@@ -191,6 +191,27 @@ OUTPUT
|
|
191
191
|
expect(versions[version]).to eq(:rpm)
|
192
192
|
end
|
193
193
|
end
|
194
|
+
|
195
|
+
it "should be able to parse RPM package listings with letters in version" do
|
196
|
+
showres_output = <<END
|
197
|
+
cairo ALL @@R:cairo _all_filesets
|
198
|
+
@@R:cairo-1.14.6-2waixX11 1.14.6-2waixX11
|
199
|
+
END
|
200
|
+
packages = subject.send(:parse_showres_output, showres_output)
|
201
|
+
expect(Set.new(packages.keys)).to eq(Set.new(['cairo']))
|
202
|
+
versions = packages['cairo']
|
203
|
+
expect(versions.has_key?('1.14.6-2waixX11')).to eq(true)
|
204
|
+
expect(versions['1.14.6-2waixX11']).to eq(:rpm)
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should raise error when parsing invalid RPM package listings" do
|
208
|
+
showres_output = <<END
|
209
|
+
cairo ALL @@R:cairo _all_filesets
|
210
|
+
@@R:cairo-invalid_version invalid_version
|
211
|
+
END
|
212
|
+
expect{ subject.send(:parse_showres_output, showres_output) }.to raise_error(Puppet::Error,
|
213
|
+
/Unable to parse output from nimclient showres: package string does not match expected rpm package string format/)
|
214
|
+
end
|
194
215
|
end
|
195
216
|
|
196
217
|
context "#determine_latest_version" do
|
@@ -220,6 +241,27 @@ END
|
|
220
241
|
it "should return :installp for installp/bff packages" do
|
221
242
|
expect(subject.send(:determine_package_type, bff_showres_output, 'mypackage.foo', '1.2.3.4')).to eq(:installp)
|
222
243
|
end
|
244
|
+
|
245
|
+
it "should return :installp for security updates" do
|
246
|
+
nimclient_showres_output = <<END
|
247
|
+
bos.net ALL @@S:bos.net _all_filesets
|
248
|
+
+ 7.2.0.1 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.1
|
249
|
+
+ 7.2.0.2 TCP/IP ntp Applications @@S:bos.net.tcp.ntp 7.2.0.2
|
250
|
+
|
251
|
+
END
|
252
|
+
expect(subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2')).to eq(:installp)
|
253
|
+
end
|
254
|
+
|
255
|
+
it "should raise error when invalid header format is given" do
|
256
|
+
nimclient_showres_output = <<END
|
257
|
+
bos.net ALL @@INVALID_TYPE:bos.net _all_filesets
|
258
|
+
+ 7.2.0.1 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.1
|
259
|
+
+ 7.2.0.2 TCP/IP ntp Applications @@INVALID_TYPE:bos.net.tcp.ntp 7.2.0.2
|
260
|
+
|
261
|
+
END
|
262
|
+
expect{ subject.send(:determine_package_type, nimclient_showres_output, 'bos.net.tcp.ntp', '7.2.0.2') }.to raise_error(
|
263
|
+
Puppet::Error, /Unable to parse output from nimclient showres: line does not match expected package header format/)
|
264
|
+
end
|
223
265
|
end
|
224
266
|
end
|
225
267
|
end
|