puppet 7.8.0 → 7.12.0
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 +5 -5
- data/Gemfile +2 -2
- data/Gemfile.lock +15 -15
- 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/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 +176 -58
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +67 -29
- 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/file_system.rb +2 -1
- 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/evaluator/closure.rb +7 -5
- 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/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/pip.rb +15 -3
- data/lib/puppet/provider/package/pkg.rb +19 -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 +1 -1
- data/lib/puppet/provider/parsedfile.rb +3 -0
- data/lib/puppet/provider/service/base.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 +2 -2
- 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 +1 -1
- data/lib/puppet/provider/user/useradd.rb +72 -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/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 -3
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -2
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/autoload.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/json.rb +3 -0
- 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 +409 -329
- data/man/man5/puppet.conf.5 +73 -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 +35 -1
- 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 +291 -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 +2 -2
- 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/network/formats_spec.rb +6 -0
- 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/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- 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 +34 -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/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/systemd_spec.rb +1 -1
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +1 -1
- data/spec/unit/provider/user/useradd_spec.rb +43 -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 +27 -0
- data/spec/unit/type/tidy_spec.rb +7 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +25 -8
- 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 +51 -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
data/spec/unit/settings_spec.rb
CHANGED
@@ -29,6 +29,17 @@ describe Puppet::Settings do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
def stub_config_with(content)
|
33
|
+
allow(Puppet.features).to receive(:root?).and_return(false)
|
34
|
+
expect(Puppet::FileSystem).to receive(:exist?).
|
35
|
+
with(user_config_file_default_location).
|
36
|
+
and_return(true).ordered
|
37
|
+
expect(@settings).to receive(:read_file).
|
38
|
+
with(user_config_file_default_location).
|
39
|
+
and_return(content).ordered
|
40
|
+
@settings.send(:parse_config_files)
|
41
|
+
end
|
42
|
+
|
32
43
|
describe "when specifying defaults" do
|
33
44
|
before do
|
34
45
|
@settings = Puppet::Settings.new
|
@@ -264,23 +275,31 @@ describe Puppet::Settings do
|
|
264
275
|
expect(@settings[:myval]).to eq("")
|
265
276
|
end
|
266
277
|
|
267
|
-
it "should
|
278
|
+
it "should retrieve numeric settings from the CLI" do
|
268
279
|
@settings.handlearg("--myval", "12")
|
269
|
-
expect(@settings.set_by_cli
|
280
|
+
expect(@settings.set_by_cli(:myval)).to eq("12")
|
281
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
270
282
|
end
|
271
283
|
|
272
|
-
it "should
|
284
|
+
it "should retrieve string settings from the CLI" do
|
285
|
+
@settings.handlearg("--myval", "something")
|
286
|
+
expect(@settings.set_by_cli(:myval)).to eq("something")
|
287
|
+
expect(@settings.set_by_cli?(:myval)).to be true
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should retrieve bool settings from the CLI" do
|
273
291
|
@settings.handlearg("--bool")
|
274
|
-
expect(@settings.set_by_cli
|
292
|
+
expect(@settings.set_by_cli(:bool)).to be true
|
293
|
+
expect(@settings.set_by_cli?(:bool)).to be true
|
275
294
|
end
|
276
295
|
|
277
|
-
it "should not
|
296
|
+
it "should not retrieve settings set in memory as from CLI" do
|
278
297
|
@settings[:myval] = "12"
|
279
|
-
expect(@settings.set_by_cli?(:myval)).to
|
298
|
+
expect(@settings.set_by_cli?(:myval)).to be false
|
280
299
|
end
|
281
300
|
|
282
301
|
it "should find no configured settings by default" do
|
283
|
-
expect(@settings.set_by_config?(:myval)).to
|
302
|
+
expect(@settings.set_by_config?(:myval)).to be false
|
284
303
|
end
|
285
304
|
|
286
305
|
it "should identify configured settings in memory" do
|
@@ -304,64 +323,66 @@ describe Puppet::Settings do
|
|
304
323
|
expect(@settings.set_by_config?(:manifest, Puppet[:environment])).to be_truthy
|
305
324
|
end
|
306
325
|
|
307
|
-
|
308
|
-
|
326
|
+
context "when handling puppet.conf" do
|
327
|
+
describe "#set_by_config?" do
|
328
|
+
it "should identify configured settings from the preferred run mode" do
|
329
|
+
stub_config_with(<<~CONFIG)
|
330
|
+
[#{@settings.preferred_run_mode}]
|
331
|
+
myval = foo
|
332
|
+
CONFIG
|
309
333
|
|
310
|
-
|
311
|
-
|
312
|
-
with(user_config_file_default_location).
|
313
|
-
and_return(true).ordered
|
314
|
-
expect(@settings).to receive(:read_file).
|
315
|
-
with(user_config_file_default_location).
|
316
|
-
and_return(user_config_text).ordered
|
334
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
335
|
+
end
|
317
336
|
|
318
|
-
|
319
|
-
|
320
|
-
|
337
|
+
it "should identify configured settings from the specified run mode" do
|
338
|
+
stub_config_with(<<~CONFIG)
|
339
|
+
[server]
|
340
|
+
myval = foo
|
341
|
+
CONFIG
|
321
342
|
|
322
|
-
|
323
|
-
|
343
|
+
expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
|
344
|
+
end
|
324
345
|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
with(user_config_file_default_location).
|
331
|
-
and_return(user_config_text).ordered
|
346
|
+
it "should not identify configured settings from an unspecified run mode" do
|
347
|
+
stub_config_with(<<~CONFIG)
|
348
|
+
[zaz]
|
349
|
+
myval = foo
|
350
|
+
CONFIG
|
332
351
|
|
333
|
-
|
334
|
-
|
335
|
-
end
|
352
|
+
expect(@settings.set_by_config?(:myval)).to be_falsey
|
353
|
+
end
|
336
354
|
|
337
|
-
|
338
|
-
|
355
|
+
it "should identify configured settings from the main section" do
|
356
|
+
stub_config_with(<<~CONFIG)
|
357
|
+
[main]
|
358
|
+
myval = foo
|
359
|
+
CONFIG
|
339
360
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
and_return(true).ordered
|
344
|
-
expect(@settings).to receive(:read_file).
|
345
|
-
with(user_config_file_default_location).
|
346
|
-
and_return(user_config_text).ordered
|
361
|
+
expect(@settings.set_by_config?(:myval)).to be_truthy
|
362
|
+
end
|
363
|
+
end
|
347
364
|
|
348
|
-
|
349
|
-
|
350
|
-
|
365
|
+
describe "#set_in_section" do
|
366
|
+
it "should retrieve configured settings from the specified section" do
|
367
|
+
stub_config_with(<<~CONFIG)
|
368
|
+
[agent]
|
369
|
+
myval = foo
|
370
|
+
CONFIG
|
351
371
|
|
352
|
-
|
353
|
-
|
372
|
+
expect(@settings.set_in_section(:myval, :agent)).to eq("foo")
|
373
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be true
|
374
|
+
end
|
354
375
|
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
with(user_config_file_default_location).
|
361
|
-
and_return(user_config_text).ordered
|
376
|
+
it "should not retrieve configured settings from a different section" do
|
377
|
+
stub_config_with(<<~CONFIG)
|
378
|
+
[main]
|
379
|
+
myval = foo
|
380
|
+
CONFIG
|
362
381
|
|
363
|
-
|
364
|
-
|
382
|
+
expect(@settings.set_in_section(:myval, :agent)).to be nil
|
383
|
+
expect(@settings.set_in_section?(:myval, :agent)).to be false
|
384
|
+
end
|
385
|
+
end
|
365
386
|
end
|
366
387
|
|
367
388
|
it "should clear the cache when setting getopt-specific values" do
|
@@ -1024,7 +1045,7 @@ describe Puppet::Settings do
|
|
1024
1045
|
expect(@settings[:two]).to eq(false)
|
1025
1046
|
end
|
1026
1047
|
|
1027
|
-
it "
|
1048
|
+
it "doesn't convert integers in the configuration file" do
|
1028
1049
|
File.write(@file, <<~CONF)
|
1029
1050
|
[main]
|
1030
1051
|
one = 65
|
@@ -1032,7 +1053,7 @@ describe Puppet::Settings do
|
|
1032
1053
|
|
1033
1054
|
@settings.initialize_global_settings
|
1034
1055
|
|
1035
|
-
expect(@settings[:one]).to eq(65)
|
1056
|
+
expect(@settings[:one]).to eq('65')
|
1036
1057
|
end
|
1037
1058
|
|
1038
1059
|
it "should support specifying all metadata (owner, group, mode) in the configuration file" do
|
@@ -1087,10 +1108,10 @@ describe Puppet::Settings do
|
|
1087
1108
|
context "when setting serverport and masterport" do
|
1088
1109
|
before(:each) do
|
1089
1110
|
@settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
|
1090
|
-
@settings.define_settings :server, :masterport => { :desc => "a", :default => 1000 }
|
1111
|
+
@settings.define_settings :server, :masterport => { :desc => "a", :default => 1000, :type => :port }
|
1091
1112
|
@settings.define_settings :server, :serverport => { :type => :alias, :alias_for => :masterport }
|
1092
|
-
@settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport" }
|
1093
|
-
@settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport" }
|
1113
|
+
@settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport", :type => :port }
|
1114
|
+
@settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport", :type => :port }
|
1094
1115
|
|
1095
1116
|
config_file = tmpfile('config')
|
1096
1117
|
@settings[:config] = config_file
|
@@ -1111,8 +1132,8 @@ describe Puppet::Settings do
|
|
1111
1132
|
end
|
1112
1133
|
|
1113
1134
|
it { expect(@settings[:serverport]).to eq(444) }
|
1114
|
-
it { expect(@settings[:ca_port]).to eq(
|
1115
|
-
it { expect(@settings[:report_port]).to eq(
|
1135
|
+
it { expect(@settings[:ca_port]).to eq(444) }
|
1136
|
+
it { expect(@settings[:report_port]).to eq(444) }
|
1116
1137
|
it { expect(@settings[:masterport]).to eq(445) }
|
1117
1138
|
end
|
1118
1139
|
|
@@ -1125,8 +1146,8 @@ describe Puppet::Settings do
|
|
1125
1146
|
end
|
1126
1147
|
|
1127
1148
|
it { expect(@settings[:serverport]).to eq(445) }
|
1128
|
-
it { expect(@settings[:ca_port]).to eq(
|
1129
|
-
it { expect(@settings[:report_port]).to eq(
|
1149
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1150
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1130
1151
|
it { expect(@settings[:masterport]).to eq(444) }
|
1131
1152
|
end
|
1132
1153
|
|
@@ -1139,8 +1160,8 @@ describe Puppet::Settings do
|
|
1139
1160
|
end
|
1140
1161
|
|
1141
1162
|
it { expect(@settings[:serverport]).to eq(445) }
|
1142
|
-
it { expect(@settings[:ca_port]).to eq(
|
1143
|
-
it { expect(@settings[:report_port]).to eq(
|
1163
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1164
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1144
1165
|
it { expect(@settings[:masterport]).to eq(444) }
|
1145
1166
|
end
|
1146
1167
|
|
@@ -1156,8 +1177,8 @@ describe Puppet::Settings do
|
|
1156
1177
|
end
|
1157
1178
|
|
1158
1179
|
it { expect(@settings[:serverport]).to eq(445) }
|
1159
|
-
it { expect(@settings[:ca_port]).to eq(
|
1160
|
-
it { expect(@settings[:report_port]).to eq(
|
1180
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1181
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1161
1182
|
it { expect(@settings[:masterport]).to eq(444) }
|
1162
1183
|
end
|
1163
1184
|
|
@@ -1171,8 +1192,8 @@ describe Puppet::Settings do
|
|
1171
1192
|
end
|
1172
1193
|
|
1173
1194
|
it { expect(@settings[:serverport]).to eq(444) }
|
1174
|
-
it { expect(@settings[:ca_port]).to eq(
|
1175
|
-
it { expect(@settings[:report_port]).to eq(
|
1195
|
+
it { expect(@settings[:ca_port]).to eq(444) }
|
1196
|
+
it { expect(@settings[:report_port]).to eq(444) }
|
1176
1197
|
it { expect(@settings[:masterport]).to eq(445) }
|
1177
1198
|
end
|
1178
1199
|
|
@@ -1184,8 +1205,8 @@ describe Puppet::Settings do
|
|
1184
1205
|
end
|
1185
1206
|
|
1186
1207
|
it { expect(@settings[:serverport]).to eq(445) }
|
1187
|
-
it { expect(@settings[:ca_port]).to eq(
|
1188
|
-
it { expect(@settings[:report_port]).to eq(
|
1208
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1209
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1189
1210
|
it { expect(@settings[:masterport]).to eq(445) }
|
1190
1211
|
end
|
1191
1212
|
|
@@ -1197,8 +1218,8 @@ describe Puppet::Settings do
|
|
1197
1218
|
end
|
1198
1219
|
|
1199
1220
|
it { expect(@settings[:serverport]).to eq(445) }
|
1200
|
-
it { expect(@settings[:ca_port]).to eq(
|
1201
|
-
it { expect(@settings[:report_port]).to eq(
|
1221
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1222
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1202
1223
|
it { expect(@settings[:masterport]).to eq(445) }
|
1203
1224
|
end
|
1204
1225
|
|
@@ -1211,8 +1232,8 @@ describe Puppet::Settings do
|
|
1211
1232
|
|
1212
1233
|
it { expect(@settings[:serverport]).to eq(445) }
|
1213
1234
|
it { expect(@settings[:masterport]).to eq(1000) }
|
1214
|
-
it { expect(@settings[:ca_port]).to eq(
|
1215
|
-
it { expect(@settings[:report_port]).to eq(
|
1235
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1236
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1216
1237
|
end
|
1217
1238
|
|
1218
1239
|
context 'with serverport in main' do
|
@@ -1224,8 +1245,8 @@ describe Puppet::Settings do
|
|
1224
1245
|
|
1225
1246
|
it { expect(@settings[:serverport]).to eq(445) }
|
1226
1247
|
it { expect(@settings[:masterport]).to eq(1000) }
|
1227
|
-
it { expect(@settings[:ca_port]).to eq(
|
1228
|
-
it { expect(@settings[:report_port]).to eq(
|
1248
|
+
it { expect(@settings[:ca_port]).to eq(445) }
|
1249
|
+
it { expect(@settings[:report_port]).to eq(445) }
|
1229
1250
|
end
|
1230
1251
|
end
|
1231
1252
|
|
@@ -2137,7 +2158,7 @@ describe Puppet::Settings do
|
|
2137
2158
|
end
|
2138
2159
|
|
2139
2160
|
def a_user_type_for(username)
|
2140
|
-
user = double('user')
|
2161
|
+
user = double('user', 'suitable?': true, to_s: "User[#{username}]")
|
2141
2162
|
expect(Puppet::Type.type(:user)).to receive(:new).with(hash_including(name: username)).and_return(user)
|
2142
2163
|
user
|
2143
2164
|
end
|
@@ -2170,6 +2191,16 @@ describe Puppet::Settings do
|
|
2170
2191
|
|
2171
2192
|
expect(settings).to be_service_user_available
|
2172
2193
|
end
|
2194
|
+
|
2195
|
+
it "raises if the user is not suitable" do
|
2196
|
+
settings[:user] = "foo"
|
2197
|
+
|
2198
|
+
expect(a_user_type_for("foo")).to receive(:suitable?).and_return(false)
|
2199
|
+
|
2200
|
+
expect {
|
2201
|
+
settings.service_user_available?
|
2202
|
+
}.to raise_error(Puppet::Error, /Cannot manage owner permissions, because the provider for 'User\[foo\]' is not functional/)
|
2203
|
+
end
|
2173
2204
|
end
|
2174
2205
|
|
2175
2206
|
describe "when determining if the service group is available" do
|
@@ -2180,7 +2211,7 @@ describe Puppet::Settings do
|
|
2180
2211
|
end
|
2181
2212
|
|
2182
2213
|
def a_group_type_for(groupname)
|
2183
|
-
group = double('group')
|
2214
|
+
group = double('group', 'suitable?': true, to_s: "Group[#{groupname}]")
|
2184
2215
|
expect(Puppet::Type.type(:group)).to receive(:new).with(hash_including(name: groupname)).and_return(group)
|
2185
2216
|
group
|
2186
2217
|
end
|
@@ -2213,6 +2244,16 @@ describe Puppet::Settings do
|
|
2213
2244
|
|
2214
2245
|
expect(settings).to be_service_group_available
|
2215
2246
|
end
|
2247
|
+
|
2248
|
+
it "raises if the group is not suitable" do
|
2249
|
+
settings[:group] = "foo"
|
2250
|
+
|
2251
|
+
expect(a_group_type_for("foo")).to receive(:suitable?).and_return(false)
|
2252
|
+
|
2253
|
+
expect {
|
2254
|
+
settings.service_group_available?
|
2255
|
+
}.to raise_error(Puppet::Error, /Cannot manage group permissions, because the provider for 'Group\[foo\]' is not functional/)
|
2256
|
+
end
|
2216
2257
|
end
|
2217
2258
|
|
2218
2259
|
describe "when dealing with command-line options" do
|
@@ -505,28 +505,30 @@ describe Puppet::SSL::SSLProvider do
|
|
505
505
|
}.to raise_error(Puppet::Error, /The client certificate is missing from/)
|
506
506
|
end
|
507
507
|
|
508
|
-
|
509
|
-
|
508
|
+
context 'loading private keys', unless: RUBY_PLATFORM == 'java' do
|
509
|
+
it 'loads the private key and client cert' do
|
510
|
+
ssl_context = subject.load_context
|
510
511
|
|
511
|
-
|
512
|
-
|
513
|
-
|
512
|
+
expect(ssl_context.private_key).to be_an(OpenSSL::PKey::RSA)
|
513
|
+
expect(ssl_context.client_cert).to be_an(OpenSSL::X509::Certificate)
|
514
|
+
end
|
514
515
|
|
515
|
-
|
516
|
-
|
516
|
+
it 'loads a password protected key and client cert' do
|
517
|
+
FileUtils.cp(File.join(PuppetSpec::FIXTURE_DIR, 'ssl', 'encrypted-key.pem'), File.join(Puppet[:privatekeydir], 'signed.pem'))
|
517
518
|
|
518
|
-
|
519
|
+
ssl_context = subject.load_context(password: '74695716c8b6')
|
519
520
|
|
520
|
-
|
521
|
-
|
522
|
-
|
521
|
+
expect(ssl_context.private_key).to be_an(OpenSSL::PKey::RSA)
|
522
|
+
expect(ssl_context.client_cert).to be_an(OpenSSL::X509::Certificate)
|
523
|
+
end
|
523
524
|
|
524
|
-
|
525
|
-
|
525
|
+
it 'raises if the password is incorrect' do
|
526
|
+
FileUtils.cp(File.join(PuppetSpec::FIXTURE_DIR, 'ssl', 'encrypted-key.pem'), File.join(Puppet[:privatekeydir], 'signed.pem'))
|
526
527
|
|
527
|
-
|
528
|
-
|
529
|
-
|
528
|
+
expect {
|
529
|
+
subject.load_context(password: 'wrongpassword')
|
530
|
+
}.to raise_error(Puppet::SSL::SSLError, /Failed to load private key for host 'signed': Could not parse PKey/)
|
531
|
+
end
|
530
532
|
end
|
531
533
|
end
|
532
534
|
|
data/spec/unit/type/exec_spec.rb
CHANGED
@@ -239,6 +239,19 @@ RSpec.describe Puppet::Type.type(:exec) do
|
|
239
239
|
expect(dependencies.collect(&:to_s)).to eq([Puppet::Relationship.new(tmp, execer).to_s])
|
240
240
|
end
|
241
241
|
|
242
|
+
it "should be able to autorequire files mentioned in the array command" do
|
243
|
+
foo = make_absolute('/bin/foo')
|
244
|
+
catalog = Puppet::Resource::Catalog.new
|
245
|
+
tmp = Puppet::Type.type(:file).new(:name => foo)
|
246
|
+
execer = Puppet::Type.type(:exec).new(:name => 'test array', :command => [foo, 'bar'])
|
247
|
+
|
248
|
+
catalog.add_resource tmp
|
249
|
+
catalog.add_resource execer
|
250
|
+
dependencies = execer.autorequire(catalog)
|
251
|
+
|
252
|
+
expect(dependencies.collect(&:to_s)).to eq([Puppet::Relationship.new(tmp, execer).to_s])
|
253
|
+
end
|
254
|
+
|
242
255
|
describe "when handling the path parameter" do
|
243
256
|
expect = %w{one two three four}
|
244
257
|
{ "an array" => expect,
|
@@ -346,7 +359,13 @@ RSpec.describe Puppet::Type.type(:exec) do
|
|
346
359
|
end
|
347
360
|
|
348
361
|
shared_examples_for "all exec command parameters" do |param|
|
349
|
-
|
362
|
+
array_cmd = ["/bin/example", "*"]
|
363
|
+
array_cmd = [["/bin/example", "*"]] if [:onlyif, :unless].include?(param)
|
364
|
+
|
365
|
+
commands = { "relative" => "example", "absolute" => "/bin/example" }
|
366
|
+
commands["array"] = array_cmd
|
367
|
+
|
368
|
+
commands.sort.each do |name, command|
|
350
369
|
describe "if command is #{name}" do
|
351
370
|
before :each do
|
352
371
|
@param = param
|
@@ -379,45 +398,44 @@ RSpec.describe Puppet::Type.type(:exec) do
|
|
379
398
|
end
|
380
399
|
|
381
400
|
shared_examples_for "all exec command parameters that take arrays" do |param|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
401
|
+
[
|
402
|
+
%w{one two three},
|
403
|
+
[%w{one -a}, %w{two, -b}, 'three']
|
404
|
+
].each do |input|
|
405
|
+
context "when given #{input.inspect} as input" do
|
406
|
+
let(:resource) { Puppet::Type.type(:exec).new(:name => @executable) }
|
386
407
|
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
408
|
+
it "accepts the array when all commands return valid" do
|
409
|
+
input = %w{one two three}
|
410
|
+
allow(resource.provider).to receive(:validatecmd).exactly(input.length).times.and_return(true)
|
411
|
+
resource[param] = input
|
412
|
+
expect(resource[param]).to eq(input)
|
413
|
+
end
|
393
414
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
415
|
+
it "rejects the array when any commands return invalid" do
|
416
|
+
input = %w{one two three}
|
417
|
+
allow(resource.provider).to receive(:validatecmd).with(input[0]).and_return(true)
|
418
|
+
allow(resource.provider).to receive(:validatecmd).with(input[1]).and_raise(Puppet::Error)
|
419
|
+
|
420
|
+
expect { resource[param] = input }.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
399
421
|
end
|
400
|
-
@test[param] = input
|
401
|
-
expect(@test[param]).to eq(input)
|
402
|
-
end
|
403
422
|
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
423
|
+
it "stops at the first invalid command" do
|
424
|
+
input = %w{one two three}
|
425
|
+
allow(resource.provider).to receive(:validatecmd).with(input[0]).and_raise(Puppet::Error)
|
426
|
+
|
427
|
+
expect(resource.provider).not_to receive(:validatecmd).with(input[1])
|
428
|
+
expect(resource.provider).not_to receive(:validatecmd).with(input[2])
|
429
|
+
expect { resource[param] = input }.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
430
|
+
end
|
409
431
|
end
|
410
432
|
end
|
411
433
|
end
|
412
434
|
|
413
435
|
describe "when setting command" do
|
414
436
|
subject { described_class.new(:name => @command) }
|
415
|
-
it "fails when passed an Array" do
|
416
|
-
expect { subject[:command] = [] }.to raise_error Puppet::Error, /Command must be a String/
|
417
|
-
end
|
418
|
-
|
419
437
|
it "fails when passed a Hash" do
|
420
|
-
expect { subject[:command] = {} }.to raise_error Puppet::Error, /Command must be a String
|
438
|
+
expect { subject[:command] = {} }.to raise_error Puppet::Error, /Command must be a String or Array<String>/
|
421
439
|
end
|
422
440
|
end
|
423
441
|
|
@@ -759,6 +777,35 @@ RSpec.describe Puppet::Type.type(:exec) do
|
|
759
777
|
end
|
760
778
|
end
|
761
779
|
|
780
|
+
context 'with an array of arrays with multiple items' do
|
781
|
+
before do
|
782
|
+
[true, false].each do |check|
|
783
|
+
allow(@test.provider).to receive(:run).with([@pass, '--flag'], check).
|
784
|
+
and_return(['test output', @pass_status])
|
785
|
+
allow(@test.provider).to receive(:run).with([@fail, '--flag'], check).
|
786
|
+
and_return(['test output', @fail_status])
|
787
|
+
allow(@test.provider).to receive(:run).with([@pass], check).
|
788
|
+
and_return(['test output', @pass_status])
|
789
|
+
allow(@test.provider).to receive(:run).with([@fail], check).
|
790
|
+
and_return(['test output', @fail_status])
|
791
|
+
end
|
792
|
+
end
|
793
|
+
it "runs if all the commands exits non-zero" do
|
794
|
+
@test[param] = [[@fail, '--flag'], [@fail], [@fail, '--flag']]
|
795
|
+
expect(@test.check_all_attributes).to eq(true)
|
796
|
+
end
|
797
|
+
|
798
|
+
it "does not run if one command exits zero" do
|
799
|
+
@test[param] = [[@pass, '--flag'], [@pass], [@fail, '--flag']]
|
800
|
+
expect(@test.check_all_attributes).to eq(false)
|
801
|
+
end
|
802
|
+
|
803
|
+
it "does not run if all command exits zero" do
|
804
|
+
@test[param] = [[@pass, '--flag'], [@pass], [@pass, '--flag']]
|
805
|
+
expect(@test.check_all_attributes).to eq(false)
|
806
|
+
end
|
807
|
+
end
|
808
|
+
|
762
809
|
it "should emit output to debug" do
|
763
810
|
Puppet::Util::Log.level = :debug
|
764
811
|
@test[param] = @fail
|
@@ -263,7 +263,7 @@ describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
|
|
263
263
|
|
264
264
|
expect(@resource[:owner]).to eq(100)
|
265
265
|
expect(@resource[:group]).to eq(200)
|
266
|
-
expect(@resource[:mode]).to eq("
|
266
|
+
expect(@resource[:mode]).to eq("0173")
|
267
267
|
|
268
268
|
# Metadata calls it checksum and checksum_type, we call it content and checksum.
|
269
269
|
expect(@resource[:content]).to eq(@metadata.checksum)
|
@@ -280,7 +280,7 @@ describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
|
|
280
280
|
|
281
281
|
expect(@resource[:owner]).to eq(1)
|
282
282
|
expect(@resource[:group]).to eq(2)
|
283
|
-
expect(@resource[:mode]).to eq('
|
283
|
+
expect(@resource[:mode]).to eq('0173')
|
284
284
|
expect(@resource[:content]).not_to eq(@metadata.checksum)
|
285
285
|
expect(@resource[:checksum]).not_to eq(@metadata.checksum_type.to_sym)
|
286
286
|
end
|
@@ -317,7 +317,7 @@ describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
|
|
317
317
|
|
318
318
|
expect(@resource[:owner]).to eq(100)
|
319
319
|
expect(@resource[:group]).to eq(200)
|
320
|
-
expect(@resource[:mode]).to eq("
|
320
|
+
expect(@resource[:mode]).to eq("0173")
|
321
321
|
end
|
322
322
|
|
323
323
|
it "copies the remote owner" do
|
@@ -335,7 +335,7 @@ describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
|
|
335
335
|
it "copies the remote mode" do
|
336
336
|
@source.copy_source_values
|
337
337
|
|
338
|
-
expect(@resource[:mode]).to eq("
|
338
|
+
expect(@resource[:mode]).to eq("0173")
|
339
339
|
end
|
340
340
|
end
|
341
341
|
|
@@ -158,6 +158,33 @@ describe test_title, "when validating attribute values" do
|
|
158
158
|
expect(srv[:timeout]).to eq(int)
|
159
159
|
end
|
160
160
|
end
|
161
|
+
|
162
|
+
it "should default :timeout to 10 when provider has no default value" do
|
163
|
+
srv = Puppet::Type.type(:service).new(:name => "yay")
|
164
|
+
expect(srv[:timeout]).to eq(10)
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should default :timeout to provider given default time when it has one" do
|
168
|
+
provider_class_with_timeout = Puppet::Type.type(:service).provide(:simple) do
|
169
|
+
has_features :configurable_timeout
|
170
|
+
def default_timeout
|
171
|
+
30
|
172
|
+
end
|
173
|
+
end
|
174
|
+
allow(Puppet::Type.type(:service)).to receive(:defaultprovider).and_return(provider_class_with_timeout)
|
175
|
+
|
176
|
+
srv = Puppet::Type.type(:service).new(:name => "yay")
|
177
|
+
expect(srv[:timeout]).to eq(30)
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should accept string as value" do
|
181
|
+
srv = Puppet::Type.type(:service).new(:name => "yay", :timeout => "25")
|
182
|
+
expect(srv[:timeout]).to eq(25)
|
183
|
+
end
|
184
|
+
|
185
|
+
it "should not support values that cannot be converted to Integer such as Array" do
|
186
|
+
expect { Puppet::Type.type(:service).new(:name => "yay", :timeout => [25]) }.to raise_error(Puppet::Error)
|
187
|
+
end
|
161
188
|
end
|
162
189
|
|
163
190
|
describe "the service logon credentials" do
|
data/spec/unit/type/tidy_spec.rb
CHANGED
@@ -280,6 +280,13 @@ describe tidy do
|
|
280
280
|
@ager.tidy?(@basepath, @stat)
|
281
281
|
end
|
282
282
|
|
283
|
+
it "should return true if the specified age is 0" do
|
284
|
+
@tidy[:age] = "0"
|
285
|
+
expect(@stat).to receive(:mtime).and_return(Time.now)
|
286
|
+
|
287
|
+
expect(@ager).to be_tidy(@basepath, @stat)
|
288
|
+
end
|
289
|
+
|
283
290
|
it "should return false if the file is more recent than the specified age" do
|
284
291
|
expect(@stat).to receive(:mtime).and_return(Time.now)
|
285
292
|
|
data/spec/unit/type_spec.rb
CHANGED
@@ -1142,7 +1142,7 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
|
|
1142
1142
|
|
1143
1143
|
before :each do
|
1144
1144
|
type.provide(:default) do
|
1145
|
-
defaultfor :operatingsystem =>
|
1145
|
+
defaultfor :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem)
|
1146
1146
|
mk_resource_methods
|
1147
1147
|
class << self
|
1148
1148
|
attr_accessor :params
|
@@ -1172,7 +1172,7 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
|
|
1172
1172
|
context "with a default provider" do
|
1173
1173
|
before :each do
|
1174
1174
|
type.provide(:default) do
|
1175
|
-
defaultfor :operatingsystem =>
|
1175
|
+
defaultfor :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem)
|
1176
1176
|
mk_resource_methods
|
1177
1177
|
class << self
|
1178
1178
|
attr_accessor :names
|