puppet 7.9.0-x86-mingw32 → 7.12.1-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.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Gemfile.lock +12 -12
- 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/lib/puppet/application/agent.rb +4 -0
- data/lib/puppet/application/apply.rb +20 -2
- data/lib/puppet/application/resource.rb +15 -13
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer.rb +236 -58
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +66 -29
- data/lib/puppet/environments.rb +66 -26
- 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.rb +2 -1
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/redirector.rb +5 -0
- 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/terminus.rb +4 -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 +8 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.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/resource.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/evaluator/runtime3_resource_support.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/type_formatter.rb +7 -6
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- 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/yum.rb +1 -1
- 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/catalog.rb +1 -1
- data/lib/puppet/resource/type_collection.rb +2 -1
- data/lib/puppet/resource.rb +38 -5
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/file_setting.rb +3 -8
- data/lib/puppet/settings.rb +2 -2
- 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 +19 -2
- 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/user.rb +0 -1
- 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/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/tagging.rb +1 -0
- data/lib/puppet/util/windows/service.rb +0 -5
- data/lib/puppet/util/windows/user.rb +0 -1
- data/lib/puppet/util/windows.rb +3 -0
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +2 -6
- data/locales/puppet.pot +265 -221
- 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 +1 -1
- 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 +1 -1
- 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 +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 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +2 -1
- 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/integration/application/agent_spec.rb +146 -52
- data/spec/integration/application/filebucket_spec.rb +5 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/indirector/facts/facter_spec.rb +3 -3
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/parser/pcore_resource_spec.rb +10 -0
- data/spec/integration/transaction/report_spec.rb +1 -1
- 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_spec/modules.rb +13 -2
- data/spec/lib/puppet_spec/puppetserver.rb +15 -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 +353 -57
- data/spec/unit/environments_spec.rb +150 -1
- 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 +7 -0
- data/spec/unit/functions/logging_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +64 -0
- data/spec/unit/http/client_spec.rb +58 -1
- 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/interface/action_spec.rb +0 -9
- data/spec/unit/module_spec.rb +14 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +39 -12
- data/spec/unit/network/formats_spec.rb +6 -0
- 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 +1 -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/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/catalog_spec.rb +14 -1
- data/spec/unit/resource_spec.rb +58 -2
- data/spec/unit/settings/file_setting_spec.rb +10 -7
- data/spec/unit/type/service_spec.rb +27 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +25 -8
- data/spec/unit/util/logging_spec.rb +2 -0
- data/tasks/parallel.rake +3 -3
- metadata +37 -94
- 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
@@ -13,6 +13,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
|
|
13
13
|
allow(described_class).to receive(:command).with(:localmodify).and_return('/usr/sbin/lusermod')
|
14
14
|
allow(described_class).to receive(:command).with(:delete).and_return('/usr/sbin/userdel')
|
15
15
|
allow(described_class).to receive(:command).with(:localdelete).and_return('/usr/sbin/luserdel')
|
16
|
+
allow(described_class).to receive(:command).with(:chpasswd).and_return('/usr/sbin/chpasswd')
|
16
17
|
end
|
17
18
|
|
18
19
|
let(:resource) do
|
@@ -62,7 +63,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
|
|
62
63
|
:provider => provider,
|
63
64
|
)
|
64
65
|
resource2[:ensure] = :present
|
65
|
-
expect(provider).to receive(:execute).with(kind_of(Array), hash_including(sensitive: true))
|
66
|
+
expect(provider).to receive(:execute).with(kind_of(Array), hash_including(sensitive: true)).twice
|
66
67
|
provider.create
|
67
68
|
end
|
68
69
|
|
@@ -208,7 +209,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
|
|
208
209
|
end
|
209
210
|
|
210
211
|
it "should call execute with sensitive if sensitive data is changed" do
|
211
|
-
expect(provider).to receive(:execute).with(kind_of(Array), hash_including(sensitive: true))
|
212
|
+
expect(provider).to receive(:execute).with(kind_of(Array), hash_including(sensitive: true)).and_return('')
|
212
213
|
provider.password = 'bird bird bird'
|
213
214
|
end
|
214
215
|
end
|
@@ -351,6 +352,46 @@ describe Puppet::Type.type(:user).provider(:useradd) do
|
|
351
352
|
end
|
352
353
|
end
|
353
354
|
|
355
|
+
describe "#shell" do
|
356
|
+
before { described_class.has_feature :manages_local_users_and_groups }
|
357
|
+
|
358
|
+
let(:content) { "myuser:x:x:x:x:x:/bin/local_shell" }
|
359
|
+
|
360
|
+
it "should return the local shell string when forcelocal is true" do
|
361
|
+
resource[:forcelocal] = true
|
362
|
+
allow(Puppet::FileSystem).to receive(:exist?).with('/etc/passwd').and_return(true)
|
363
|
+
allow(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').and_yield(content)
|
364
|
+
expect(provider.shell).to eq('/bin/local_shell')
|
365
|
+
end
|
366
|
+
|
367
|
+
it "should fall back to nameservice shell string when forcelocal is false" do
|
368
|
+
resource[:forcelocal] = false
|
369
|
+
allow(provider).to receive(:get).with(:shell).and_return('/bin/remote_shell')
|
370
|
+
expect(provider).not_to receive(:localshell)
|
371
|
+
expect(provider.shell).to eq('/bin/remote_shell')
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
describe "#home" do
|
376
|
+
before { described_class.has_feature :manages_local_users_and_groups }
|
377
|
+
|
378
|
+
let(:content) { "myuser:x:x:x:x:/opt/local_home:x" }
|
379
|
+
|
380
|
+
it "should return the local home string when forcelocal is true" do
|
381
|
+
resource[:forcelocal] = true
|
382
|
+
allow(Puppet::FileSystem).to receive(:exist?).with('/etc/passwd').and_return(true)
|
383
|
+
allow(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').and_yield(content)
|
384
|
+
expect(provider.home).to eq('/opt/local_home')
|
385
|
+
end
|
386
|
+
|
387
|
+
it "should fall back to nameservice home string when forcelocal is false" do
|
388
|
+
resource[:forcelocal] = false
|
389
|
+
allow(provider).to receive(:get).with(:home).and_return('/opt/remote_home')
|
390
|
+
expect(provider).not_to receive(:localhome)
|
391
|
+
expect(provider.home).to eq('/opt/remote_home')
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
354
395
|
describe "#gid" do
|
355
396
|
before { described_class.has_feature :manages_local_users_and_groups }
|
356
397
|
|
data/spec/unit/provider_spec.rb
CHANGED
@@ -222,18 +222,18 @@ describe Puppet::Provider do
|
|
222
222
|
{ :true => false } => false,
|
223
223
|
{ :false => false } => true,
|
224
224
|
{ :false => true } => false,
|
225
|
-
{ :operatingsystem =>
|
225
|
+
{ :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem) } => true,
|
226
226
|
{ :operatingsystem => :yayness } => false,
|
227
227
|
{ :nothing => :yayness } => false,
|
228
228
|
{ :exists => Puppet::Util.which(existing_command) } => true,
|
229
229
|
{ :exists => "/this/file/does/not/exist" } => false,
|
230
230
|
{ :true => true, :exists => Puppet::Util.which(existing_command) } => true,
|
231
231
|
{ :true => true, :exists => "/this/file/does/not/exist" } => false,
|
232
|
-
{ :operatingsystem =>
|
232
|
+
{ :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem),
|
233
233
|
:exists => Puppet::Util.which(existing_command) } => true,
|
234
234
|
{ :operatingsystem => :yayness,
|
235
235
|
:exists => Puppet::Util.which(existing_command) } => false,
|
236
|
-
{ :operatingsystem =>
|
236
|
+
{ :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem),
|
237
237
|
:exists => "/this/file/does/not/exist" } => false,
|
238
238
|
{ :operatingsystem => :yayness,
|
239
239
|
:exists => "/this/file/does/not/exist" } => false,
|
@@ -269,7 +269,7 @@ describe Puppet::Provider do
|
|
269
269
|
end
|
270
270
|
|
271
271
|
context "default providers" do
|
272
|
-
let :os do
|
272
|
+
let :os do Puppet.runtime[:facter].value(:operatingsystem) end
|
273
273
|
|
274
274
|
it { is_expected.to respond_to :specificity }
|
275
275
|
|
data/spec/unit/puppet_spec.rb
CHANGED
@@ -91,12 +91,20 @@ describe Puppet do
|
|
91
91
|
expect(Puppet.runtime[:http]).to be_an_instance_of(Puppet::HTTP::Client)
|
92
92
|
end
|
93
93
|
|
94
|
-
it 'allows
|
95
|
-
|
96
|
-
Puppet.initialize_settings([], true, true, http:
|
94
|
+
it 'allows a http implementation to be registered' do
|
95
|
+
http_impl = double('http')
|
96
|
+
Puppet.initialize_settings([], true, true, http: http_impl)
|
97
97
|
|
98
98
|
|
99
|
-
expect(Puppet.runtime[:http]).to eq(
|
99
|
+
expect(Puppet.runtime[:http]).to eq(http_impl)
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'allows a facter implementation to be registered' do
|
103
|
+
facter_impl = double('facter')
|
104
|
+
Puppet.initialize_settings([], true, true, facter: facter_impl)
|
105
|
+
|
106
|
+
|
107
|
+
expect(Puppet.runtime[:facter]).to eq(facter_impl)
|
100
108
|
end
|
101
109
|
end
|
102
110
|
|
@@ -104,7 +104,7 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
104
104
|
|
105
105
|
it "should include the current catalog_format" do
|
106
106
|
catalog = Puppet::Resource::Catalog.new("host")
|
107
|
-
expect(catalog.catalog_format).to eq(
|
107
|
+
expect(catalog.catalog_format).to eq(2)
|
108
108
|
end
|
109
109
|
|
110
110
|
describe "when compiling" do
|
@@ -178,6 +178,7 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
178
178
|
@original.add_edge(@middle, @bottom)
|
179
179
|
@original.add_edge(@bottom, @bottomobject)
|
180
180
|
|
181
|
+
@original.catalog_format = 1
|
181
182
|
@catalog = @original.to_ral
|
182
183
|
end
|
183
184
|
|
@@ -190,6 +191,18 @@ describe Puppet::Resource::Catalog, "when compiling" do
|
|
190
191
|
end
|
191
192
|
end
|
192
193
|
|
194
|
+
it "should raise if an unknown resource is being converted" do
|
195
|
+
@new_res = Puppet::Resource.new "Unknown", "type", :kind => 'compilable_type'
|
196
|
+
@resource_array = [@new_res]
|
197
|
+
|
198
|
+
@original.add_resource(*@resource_array)
|
199
|
+
@original.add_edge(@bottomobject, @new_res)
|
200
|
+
|
201
|
+
@original.catalog_format = 2
|
202
|
+
|
203
|
+
expect { @original.to_ral }.to raise_error(Puppet::Error, "Resource type 'Unknown' was not found")
|
204
|
+
end
|
205
|
+
|
193
206
|
it "should copy the tag list to the new catalog" do
|
194
207
|
expect(@catalog.tags.sort).to eq(@original.tags.sort)
|
195
208
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -638,19 +638,68 @@ describe Puppet::Resource do
|
|
638
638
|
it "should use the resource type's :new method to create the resource if the resource is of a builtin type" do
|
639
639
|
resource = Puppet::Resource.new("file", basepath+"/my/file")
|
640
640
|
result = resource.to_ral
|
641
|
+
|
641
642
|
expect(result).to be_instance_of(Puppet::Type.type(:file))
|
642
643
|
expect(result[:path]).to eq(basepath+"/my/file")
|
643
644
|
end
|
644
645
|
|
645
|
-
it "should convert to a component instance if the resource
|
646
|
+
it "should convert to a component instance if the resource is not a compilable_type" do
|
646
647
|
resource = Puppet::Resource.new("foobar", "somename")
|
647
648
|
result = resource.to_ral
|
648
649
|
|
649
650
|
expect(result).to be_instance_of(Puppet::Type.type(:component))
|
650
651
|
expect(result.title).to eq("Foobar[somename]")
|
651
652
|
end
|
652
|
-
end
|
653
653
|
|
654
|
+
it "should convert to a component instance if the resource is a class" do
|
655
|
+
resource = Puppet::Resource.new("Class", "somename")
|
656
|
+
result = resource.to_ral
|
657
|
+
|
658
|
+
expect(result).to be_instance_of(Puppet::Type.type(:component))
|
659
|
+
expect(result.title).to eq("Class[Somename]")
|
660
|
+
end
|
661
|
+
|
662
|
+
it "should convert to component when the resource is a defined_type" do
|
663
|
+
resource = Puppet::Resource.new("Unknown", "type", :kind => 'defined_type')
|
664
|
+
|
665
|
+
result = resource.to_ral
|
666
|
+
expect(result).to be_instance_of(Puppet::Type.type(:component))
|
667
|
+
end
|
668
|
+
|
669
|
+
it "should raise if a resource type is a compilable_type and it wasn't found" do
|
670
|
+
resource = Puppet::Resource.new("Unknown", "type", :kind => 'compilable_type')
|
671
|
+
|
672
|
+
expect { resource.to_ral }.to raise_error(Puppet::Error, "Resource type 'Unknown' was not found")
|
673
|
+
end
|
674
|
+
|
675
|
+
it "should use the old behaviour when the catalog_format is equal to 1" do
|
676
|
+
resource = Puppet::Resource.new("Unknown", "type")
|
677
|
+
catalog = Puppet::Resource::Catalog.new("mynode")
|
678
|
+
|
679
|
+
resource.catalog = catalog
|
680
|
+
resource.catalog.catalog_format = 1
|
681
|
+
|
682
|
+
result = resource.to_ral
|
683
|
+
expect(result).to be_instance_of(Puppet::Type.type(:component))
|
684
|
+
end
|
685
|
+
|
686
|
+
it "should use the new behaviour and fail when the catalog_format is greater than 1" do
|
687
|
+
resource = Puppet::Resource.new("Unknown", "type", :kind => 'compilable_type')
|
688
|
+
catalog = Puppet::Resource::Catalog.new("mynode")
|
689
|
+
|
690
|
+
resource.catalog = catalog
|
691
|
+
resource.catalog.catalog_format = 2
|
692
|
+
|
693
|
+
expect { resource.to_ral }.to raise_error(Puppet::Error, "Resource type 'Unknown' was not found")
|
694
|
+
end
|
695
|
+
|
696
|
+
it "should use the resource type when the resource doesn't respond to kind and the resource type can be found" do
|
697
|
+
resource = Puppet::Resource.new("file", basepath+"/my/file")
|
698
|
+
|
699
|
+
result = resource.to_ral
|
700
|
+
expect(result).to be_instance_of(Puppet::Type.type(:file))
|
701
|
+
end
|
702
|
+
end
|
654
703
|
describe "when converting to puppet code" do
|
655
704
|
before do
|
656
705
|
@resource = Puppet::Resource.new("one::two", "/my/file",
|
@@ -766,6 +815,13 @@ describe Puppet::Resource do
|
|
766
815
|
expect(Puppet::Resource.from_data_hash(JSON.parse(resource.to_json)).line).to eq(50)
|
767
816
|
end
|
768
817
|
|
818
|
+
it "should include the kind if one is set" do
|
819
|
+
resource = Puppet::Resource.new("File", "/foo")
|
820
|
+
resource.kind = 'im_a_file'
|
821
|
+
|
822
|
+
expect(Puppet::Resource.from_data_hash(JSON.parse(resource.to_json)).kind).to eq('im_a_file')
|
823
|
+
end
|
824
|
+
|
769
825
|
it "should include the 'exported' value if one is set" do
|
770
826
|
resource = Puppet::Resource.new("File", "/foo")
|
771
827
|
resource.exported = true
|
@@ -125,9 +125,10 @@ describe Puppet::Settings::FileSetting do
|
|
125
125
|
describe "when being converted to a resource" do
|
126
126
|
before do
|
127
127
|
@basepath = make_absolute("/somepath")
|
128
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_call_original
|
129
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(@basepath).and_return(true)
|
128
130
|
@settings = double('settings')
|
129
131
|
@file = Puppet::Settings::FileSetting.new(:settings => @settings, :desc => "eh", :name => :myfile, :section => "mysect")
|
130
|
-
allow(@file).to receive(:create_files?).and_return(true)
|
131
132
|
allow(@settings).to receive(:value).with(:myfile, nil, false).and_return(@basepath)
|
132
133
|
end
|
133
134
|
|
@@ -135,18 +136,19 @@ describe Puppet::Settings::FileSetting do
|
|
135
136
|
expect(@file.type).to eq(:file)
|
136
137
|
end
|
137
138
|
|
138
|
-
it "
|
139
|
-
expect(@file).to receive(:create_files?).and_return(false)
|
139
|
+
it "skips non-existent files" do
|
140
140
|
expect(@file).to receive(:type).and_return(:file)
|
141
141
|
expect(Puppet::FileSystem).to receive(:exist?).with(@basepath).and_return(false)
|
142
142
|
expect(@file.to_resource).to be_nil
|
143
143
|
end
|
144
144
|
|
145
|
-
it "
|
146
|
-
expect(@file).to receive(:create_files?).and_return(false)
|
145
|
+
it "manages existing files" do
|
147
146
|
expect(@file).to receive(:type).and_return(:file)
|
148
|
-
|
149
|
-
|
147
|
+
expect(@file.to_resource).to be_instance_of(Puppet::Resource)
|
148
|
+
end
|
149
|
+
|
150
|
+
it "always manages directories" do
|
151
|
+
expect(@file).to receive(:type).and_return(:directory)
|
150
152
|
expect(@file.to_resource).to be_instance_of(Puppet::Resource)
|
151
153
|
end
|
152
154
|
|
@@ -177,6 +179,7 @@ describe Puppet::Settings::FileSetting do
|
|
177
179
|
it "should fully qualified returned files if necessary (#795)" do
|
178
180
|
allow(@settings).to receive(:value).with(:myfile, nil, false).and_return("myfile")
|
179
181
|
path = File.expand_path('myfile')
|
182
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(path).and_return(true)
|
180
183
|
expect(@file.to_resource.title).to eq(path)
|
181
184
|
end
|
182
185
|
|
@@ -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_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
|
@@ -178,15 +178,14 @@ describe Puppet::Util::Autoload do
|
|
178
178
|
end
|
179
179
|
|
180
180
|
describe "when loading all files" do
|
181
|
+
let(:basedir) { tmpdir('autoloader') }
|
182
|
+
let(:path) { File.join(basedir, @autoload.path, 'file.rb') }
|
183
|
+
|
181
184
|
before do
|
182
|
-
|
183
|
-
|
184
|
-
allow(Dir).to receive(:glob).and_return([make_absolute("/a/foo/file.rb")])
|
185
|
-
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
186
|
-
@time_a = Time.utc(2010, 'jan', 1, 6, 30)
|
187
|
-
allow(File).to receive(:mtime).and_return(@time_a)
|
185
|
+
FileUtils.mkdir_p(File.dirname(path))
|
186
|
+
FileUtils.touch(path)
|
188
187
|
|
189
|
-
allow(@autoload.class).to receive(:
|
188
|
+
allow(@autoload.class).to receive(:search_directories).and_return([basedir])
|
190
189
|
end
|
191
190
|
|
192
191
|
[RuntimeError, LoadError, SyntaxError].each do |error|
|
@@ -198,7 +197,25 @@ describe Puppet::Util::Autoload do
|
|
198
197
|
end
|
199
198
|
|
200
199
|
it "should require the full path to the file" do
|
201
|
-
expect(Kernel).to receive(:load).with(
|
200
|
+
expect(Kernel).to receive(:load).with(path, any_args)
|
201
|
+
|
202
|
+
@autoload.loadall(env)
|
203
|
+
end
|
204
|
+
|
205
|
+
it "autoloads from a directory whose ancestor is Windows 8.3", if: Puppet::Util::Platform.windows? do
|
206
|
+
# File.expand_path will expand ~ in the last directory component only(!)
|
207
|
+
# so create an ancestor directory with a long path
|
208
|
+
dir = File.join(tmpdir('longpath'), 'short')
|
209
|
+
path = File.join(dir, @autoload.path, 'file.rb')
|
210
|
+
|
211
|
+
FileUtils.mkdir_p(File.dirname(path))
|
212
|
+
FileUtils.touch(path)
|
213
|
+
|
214
|
+
dir83 = File.join(File.dirname(basedir), 'longpa~1', 'short')
|
215
|
+
path83 = File.join(dir83, @autoload.path, 'file.rb')
|
216
|
+
|
217
|
+
allow(@autoload.class).to receive(:search_directories).and_return([dir83])
|
218
|
+
expect(Kernel).to receive(:load).with(path83, any_args)
|
202
219
|
|
203
220
|
@autoload.loadall(env)
|
204
221
|
end
|
@@ -552,6 +552,7 @@ original
|
|
552
552
|
|
553
553
|
describe 'does support debugging' do
|
554
554
|
before :each do
|
555
|
+
allow(Facter).to receive(:respond_to?).with(:on_message).and_return(true)
|
555
556
|
allow(Facter).to receive(:respond_to?).with(:debugging, any_args).and_return(true)
|
556
557
|
end
|
557
558
|
|
@@ -568,6 +569,7 @@ original
|
|
568
569
|
|
569
570
|
describe 'does support trace' do
|
570
571
|
before :each do
|
572
|
+
allow(Facter).to receive(:respond_to?).with(:on_message)
|
571
573
|
allow(Facter).to receive(:respond_to?).with(:trace, any_args).and_return(true)
|
572
574
|
end
|
573
575
|
|
data/tasks/parallel.rake
CHANGED
@@ -5,9 +5,9 @@ require 'thread'
|
|
5
5
|
begin
|
6
6
|
require 'rspec'
|
7
7
|
require 'rspec/core/formatters/helpers'
|
8
|
-
require '
|
8
|
+
require 'etc'
|
9
9
|
rescue LoadError
|
10
|
-
# Don't define the task if we don't have rspec
|
10
|
+
# Don't define the task if we don't have rspec present
|
11
11
|
else
|
12
12
|
module Parallel
|
13
13
|
module RSpec
|
@@ -401,7 +401,7 @@ else
|
|
401
401
|
# Default group size in rspec examples
|
402
402
|
DEFAULT_GROUP_SIZE = 1000
|
403
403
|
|
404
|
-
process_count = [(args[:process_count] ||
|
404
|
+
process_count = [(args[:process_count] || Etc.nprocessors).to_i, 1].max
|
405
405
|
group_size = [(args[:group_size] || DEFAULT_GROUP_SIZE).to_i, 1].max
|
406
406
|
|
407
407
|
abort unless Parallel::RSpec::Parallelizer.new(process_count, group_size, color_output?, args.extras).run
|