puppet 6.24.0-x86-mingw32 → 6.25.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/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 +85 -57
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +36 -30
- data/lib/puppet/environments.rb +66 -26
- data/lib/puppet/face/facts.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 +3 -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/forge.rb +1 -1
- data/lib/puppet/functions/find_template.rb +2 -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/terminus.rb +4 -0
- data/lib/puppet/module/plan.rb +0 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module.rb +1 -0
- 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/scope.rb +1 -0
- 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 +2 -1
- data/lib/puppet/pops/parser/eparser.rb +201 -201
- data/lib/puppet/pops/parser/lexer2.rb +92 -91
- 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 +4 -3
- 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/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/type_collection.rb +1 -0
- data/lib/puppet/runtime.rb +11 -1
- 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 +3 -3
- 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/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/user.rb +0 -2
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +2 -6
- data/locales/puppet.pot +246 -230
- data/man/man5/puppet.conf.5 +33 -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-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +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-status.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/integration/application/agent_spec.rb +113 -37
- 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/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 +171 -56
- data/spec/unit/defaults_spec.rb +1 -0
- 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 +14 -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/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 +15 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +39 -12
- data/spec/unit/network/authstore_spec.rb +0 -15
- 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 +29 -4
- 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/ssl/certificate_request_spec.rb +8 -14
- data/spec/unit/type/service_spec.rb +27 -0
- data/spec/unit/type_spec.rb +2 -2
- 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 -33
- 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 -842
- 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
@@ -7,6 +7,9 @@ describe Puppet::Configurer do
|
|
7
7
|
Puppet[:report] = true
|
8
8
|
|
9
9
|
catalog.add_resource(resource)
|
10
|
+
allow_any_instance_of(described_class).to(
|
11
|
+
receive(:valid_server_environment?).and_return(true)
|
12
|
+
)
|
10
13
|
end
|
11
14
|
|
12
15
|
let(:node_name) { Puppet[:node_name_value] }
|
@@ -78,10 +81,10 @@ describe Puppet::Configurer do
|
|
78
81
|
configurer.run(:pluginsync => false)
|
79
82
|
end
|
80
83
|
|
81
|
-
it "
|
82
|
-
|
83
|
-
expect(
|
84
|
-
|
84
|
+
it "does not download plugins when specified environment is not vaild on server" do
|
85
|
+
expect(configurer).to receive(:valid_server_environment?).and_return(false)
|
86
|
+
expect(configurer).not_to receive(:download_plugins)
|
87
|
+
configurer.run(:pluginsync => true)
|
85
88
|
end
|
86
89
|
|
87
90
|
it "fails the run if pluginsync fails when usecacheonfailure is false" do
|
@@ -125,7 +128,6 @@ describe Puppet::Configurer do
|
|
125
128
|
it "applies a cached catalog when it can't connect to the master" do
|
126
129
|
error = Errno::ECONNREFUSED.new('Connection refused - connect(2)')
|
127
130
|
|
128
|
-
expect(Puppet::Node.indirection).to receive(:find).and_raise(error)
|
129
131
|
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_cache => true)).and_raise(error)
|
130
132
|
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_terminus => true)).and_return(catalog)
|
131
133
|
|
@@ -461,7 +463,7 @@ describe Puppet::Configurer do
|
|
461
463
|
it "should save the report if reporting is enabled" do
|
462
464
|
Puppet.settings[:report] = true
|
463
465
|
|
464
|
-
expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, instance_of(Hash))
|
466
|
+
expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, instance_of(Hash)).twice
|
465
467
|
configurer.send_report(report)
|
466
468
|
end
|
467
469
|
|
@@ -489,12 +491,22 @@ describe Puppet::Configurer do
|
|
489
491
|
it "should log but not fail if saving the report fails" do
|
490
492
|
Puppet.settings[:report] = true
|
491
493
|
|
492
|
-
expect(Puppet::Transaction::Report.indirection).to receive(:save).and_raise("whatever")
|
494
|
+
expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_cache: true)).and_raise("whatever")
|
495
|
+
expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_terminus: true))
|
493
496
|
|
494
497
|
configurer.send_report(report)
|
495
498
|
|
496
499
|
expect(@logs).to include(an_object_having_attributes(level: :err, message: 'Could not send report: whatever'))
|
497
500
|
end
|
501
|
+
|
502
|
+
it "should save the cached report if fails to send the report" do
|
503
|
+
allow(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_terminus: true)).and_call_original
|
504
|
+
allow(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_cache: true)).and_raise("whatever")
|
505
|
+
|
506
|
+
expect(File).to_not be_exist(Puppet[:lastrunfile])
|
507
|
+
configurer.send_report(report)
|
508
|
+
expect(File.read(Puppet[:lastrunfile])).to match(/puppet: #{Puppet::PUPPETVERSION}/)
|
509
|
+
end
|
498
510
|
end
|
499
511
|
|
500
512
|
describe "when saving the summary report file" do
|
@@ -553,24 +565,6 @@ describe Puppet::Configurer do
|
|
553
565
|
end
|
554
566
|
end
|
555
567
|
|
556
|
-
describe "when requesting a node" do
|
557
|
-
it "uses the transaction uuid in the request" do
|
558
|
-
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(transaction_uuid: anything)).twice
|
559
|
-
configurer.run
|
560
|
-
end
|
561
|
-
|
562
|
-
it "sends an explicitly configured environment request" do
|
563
|
-
expect(Puppet.settings).to receive(:set_by_config?).with(:environment).and_return(true)
|
564
|
-
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: Puppet[:environment])).twice
|
565
|
-
configurer.run
|
566
|
-
end
|
567
|
-
|
568
|
-
it "does not send a configured_environment when using the default" do
|
569
|
-
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: nil)).twice
|
570
|
-
configurer.run
|
571
|
-
end
|
572
|
-
end
|
573
|
-
|
574
568
|
def expects_pluginsync
|
575
569
|
metadata = "[{\"path\":\"/etc/puppetlabs/code\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":0,\"group\":0,\"mode\":420,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-07-10 14:00:00 -0700\"},\"type\":\"directory\",\"destination\":null}]"
|
576
570
|
stub_request(:get, %r{/puppet/v3/file_metadatas/(plugins|locales)}).to_return(status: 200, body: metadata, headers: {'Content-Type' => 'application/json'})
|
@@ -581,7 +575,7 @@ describe Puppet::Configurer do
|
|
581
575
|
end
|
582
576
|
|
583
577
|
def expects_new_catalog_only(catalog)
|
584
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
|
578
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, check_environment: true)).and_return(catalog)
|
585
579
|
expect(Puppet::Resource::Catalog.indirection).not_to receive(:find).with(anything, hash_including(ignore_terminus: true))
|
586
580
|
end
|
587
581
|
|
@@ -598,7 +592,7 @@ describe Puppet::Configurer do
|
|
598
592
|
def expects_fallback_to_new_catalog(catalog)
|
599
593
|
expects_pluginsync
|
600
594
|
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(nil)
|
601
|
-
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
|
595
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, check_environment: true)).and_return(catalog)
|
602
596
|
end
|
603
597
|
|
604
598
|
def expects_neither_new_or_cached_catalog
|
@@ -622,21 +616,13 @@ describe Puppet::Configurer do
|
|
622
616
|
configurer.run
|
623
617
|
end
|
624
618
|
|
625
|
-
it "should not
|
626
|
-
expect(Puppet::Node.indirection).not_to receive(:find)
|
619
|
+
it "should not pluginsync when a cached catalog is successfully retrieved" do
|
627
620
|
expects_cached_catalog_only(catalog)
|
628
621
|
expect(configurer).not_to receive(:download_plugins)
|
629
622
|
|
630
623
|
configurer.run
|
631
624
|
end
|
632
625
|
|
633
|
-
it "should make a node request and pluginsync when a cached catalog cannot be retrieved" do
|
634
|
-
expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
|
635
|
-
expects_fallback_to_new_catalog(catalog)
|
636
|
-
|
637
|
-
configurer.run
|
638
|
-
end
|
639
|
-
|
640
626
|
it "should set its cached_catalog_status to 'explicitly_requested'" do
|
641
627
|
expects_cached_catalog_only(catalog)
|
642
628
|
|
@@ -668,7 +654,6 @@ describe Puppet::Configurer do
|
|
668
654
|
end
|
669
655
|
|
670
656
|
it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
|
671
|
-
expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
|
672
657
|
expects_neither_new_or_cached_catalog
|
673
658
|
expects_pluginsync
|
674
659
|
|
@@ -724,16 +709,6 @@ describe Puppet::Configurer do
|
|
724
709
|
Puppet.settings[:strict_environment_mode] = true
|
725
710
|
end
|
726
711
|
|
727
|
-
it "should not make a node request" do
|
728
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas?/plugins}).to_return(:status => 404)
|
729
|
-
stub_request(:get, %r{/puppet/v3/file_metadatas?/pluginfacts}).to_return(:status => 404)
|
730
|
-
expects_new_catalog_only(catalog)
|
731
|
-
|
732
|
-
expect(Puppet::Node.indirection).not_to receive(:find)
|
733
|
-
|
734
|
-
configurer.run
|
735
|
-
end
|
736
|
-
|
737
712
|
it "should return nil when the catalog's environment doesn't match the agent specified environment" do
|
738
713
|
Puppet[:environment] = 'second_env'
|
739
714
|
configurer = Puppet::Configurer.new
|
@@ -947,9 +922,23 @@ describe Puppet::Configurer do
|
|
947
922
|
expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(apple, banana, banana)
|
948
923
|
|
949
924
|
allow(Puppet).to receive(:notice)
|
925
|
+
allow(Puppet).to receive(:push_context)
|
950
926
|
expect(Puppet).to receive(:notice).with("Local environment: 'production' doesn't match server specified environment 'apple', restarting agent run with environment 'apple'")
|
951
927
|
expect(Puppet).to receive(:notice).with("Local environment: 'apple' doesn't match server specified environment 'banana', restarting agent run with environment 'banana'")
|
952
928
|
|
929
|
+
expect(Puppet).to receive(:push_context).with(
|
930
|
+
hash_including(current_environment: an_object_having_attributes(name: :production)),
|
931
|
+
'Local node environment production for configurer transaction'
|
932
|
+
)
|
933
|
+
expect(Puppet).to receive(:push_context).with(
|
934
|
+
hash_including(current_environment: an_object_having_attributes(name: :apple)),
|
935
|
+
'Local node environment apple for configurer transaction'
|
936
|
+
)
|
937
|
+
expect(Puppet).to receive(:push_context).with(
|
938
|
+
hash_including(current_environment: an_object_having_attributes(name: :banana)),
|
939
|
+
'Local node environment banana for configurer transaction'
|
940
|
+
)
|
941
|
+
|
953
942
|
configurer.run
|
954
943
|
end
|
955
944
|
|
@@ -1107,20 +1096,146 @@ describe Puppet::Configurer do
|
|
1107
1096
|
expect(configurer.run(options)).to eq(0)
|
1108
1097
|
expect(options[:report].server_used).to be_nil
|
1109
1098
|
end
|
1099
|
+
end
|
1110
1100
|
|
1111
|
-
|
1112
|
-
|
1101
|
+
describe "when selecting an environment" do
|
1102
|
+
include PuppetSpec::Files
|
1103
|
+
include PuppetSpec::Settings
|
1113
1104
|
|
1114
|
-
|
1115
|
-
|
1105
|
+
describe "when the last used environment is available" do
|
1106
|
+
let(:last_server_specified_environment) { 'development' }
|
1116
1107
|
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1108
|
+
before do
|
1109
|
+
Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
|
1110
|
+
---
|
1111
|
+
version:
|
1112
|
+
config: 1624882680
|
1113
|
+
puppet: 6.24.0
|
1114
|
+
application:
|
1115
|
+
initial_environment: #{Puppet[:environment]}
|
1116
|
+
converged_environment: #{last_server_specified_environment}
|
1117
|
+
run_mode: agent
|
1118
|
+
SUMMARY
|
1119
|
+
end
|
1120
1120
|
|
1121
|
-
|
1121
|
+
it "prefers the environment set via cli" do
|
1122
|
+
Puppet.settings.handlearg('--environment', 'usethis')
|
1123
|
+
configurer.run
|
1124
|
+
|
1125
|
+
expect(configurer.environment).to eq('usethis')
|
1126
|
+
end
|
1127
|
+
|
1128
|
+
it "prefers the environment set via config" do
|
1129
|
+
FileUtils.mkdir_p(Puppet[:confdir])
|
1130
|
+
set_puppet_conf(Puppet[:confdir], <<~CONF)
|
1131
|
+
[main]
|
1132
|
+
environment = usethis
|
1133
|
+
CONF
|
1134
|
+
|
1135
|
+
Puppet.initialize_settings
|
1136
|
+
configurer.run
|
1137
|
+
|
1138
|
+
expect(configurer.environment).to eq('usethis')
|
1139
|
+
end
|
1140
|
+
|
1141
|
+
it "uses environment from Puppet[:environment] if given a catalog" do
|
1142
|
+
configurer.run(catalog: catalog)
|
1143
|
+
|
1144
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1145
|
+
end
|
1146
|
+
|
1147
|
+
it "uses environment from Puppet[:environment] if use_cached_catalog = true" do
|
1148
|
+
Puppet[:use_cached_catalog] = true
|
1149
|
+
expects_cached_catalog_only(catalog)
|
1150
|
+
configurer.run
|
1151
|
+
|
1152
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1153
|
+
end
|
1154
|
+
|
1155
|
+
describe "when the environment is not set via CLI" do
|
1156
|
+
it "uses the environment found in lastrunfile if the key exists" do
|
1157
|
+
configurer.run
|
1158
|
+
|
1159
|
+
expect(configurer.environment).to eq(last_server_specified_environment)
|
1160
|
+
end
|
1122
1161
|
|
1123
|
-
|
1162
|
+
it "pushes the converged environment found in lastrunfile over the existing context" do
|
1163
|
+
initial_env = Puppet::Node::Environment.remote('production')
|
1164
|
+
Puppet.push_context(
|
1165
|
+
current_environment: initial_env,
|
1166
|
+
loaders: Puppet::Pops::Loaders.new(initial_env, true))
|
1167
|
+
|
1168
|
+
expect(Puppet).to receive(:push_context).with(
|
1169
|
+
hash_including(:current_environment, :loaders),
|
1170
|
+
"Local node environment #{last_server_specified_environment} for configurer transaction"
|
1171
|
+
).once.and_call_original
|
1172
|
+
|
1173
|
+
configurer.run
|
1174
|
+
end
|
1175
|
+
|
1176
|
+
it "uses environment from Puppet[:environment] if strict_environment_mode is set" do
|
1177
|
+
Puppet[:strict_environment_mode] = true
|
1178
|
+
configurer.run
|
1179
|
+
|
1180
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1181
|
+
end
|
1182
|
+
|
1183
|
+
it "uses environment from Puppet[:environment] if initial_environment is the same as converged_environment" do
|
1184
|
+
Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
|
1185
|
+
---
|
1186
|
+
version:
|
1187
|
+
config: 1624882680
|
1188
|
+
puppet: 6.24.0
|
1189
|
+
application:
|
1190
|
+
initial_environment: development
|
1191
|
+
converged_environment: development
|
1192
|
+
run_mode: agent
|
1193
|
+
SUMMARY
|
1194
|
+
configurer.run
|
1195
|
+
|
1196
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1197
|
+
end
|
1198
|
+
|
1199
|
+
it "uses environment from Puppet[:environment] if the run mode doesn't match" do
|
1200
|
+
Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
|
1201
|
+
---
|
1202
|
+
version:
|
1203
|
+
config: 1624882680
|
1204
|
+
puppet: 6.24.0
|
1205
|
+
application:
|
1206
|
+
initial_environment: #{Puppet[:environment]}
|
1207
|
+
converged_environment: #{last_server_specified_environment}
|
1208
|
+
run_mode: user
|
1209
|
+
SUMMARY
|
1210
|
+
configurer.run
|
1211
|
+
|
1212
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1213
|
+
end
|
1214
|
+
|
1215
|
+
it "uses environment from Puppet[:environment] if lastrunfile is invalid YAML" do
|
1216
|
+
Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
|
1217
|
+
Key: 'this is my very very very ' +
|
1218
|
+
'long string'
|
1219
|
+
SUMMARY
|
1220
|
+
configurer.run
|
1221
|
+
|
1222
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1223
|
+
end
|
1224
|
+
|
1225
|
+
it "uses environment from Puppet[:environment] if lastrunfile exists but is empty" do
|
1226
|
+
Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', '')
|
1227
|
+
configurer.run
|
1228
|
+
|
1229
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1230
|
+
end
|
1231
|
+
|
1232
|
+
it "uses environment from Puppet[:environment] if the last used one cannot be found" do
|
1233
|
+
Puppet[:lastrunfile] = tmpfile('last_run_summary.yaml')
|
1234
|
+
configurer.run
|
1235
|
+
|
1236
|
+
expect(configurer.environment).to eq(Puppet[:environment])
|
1237
|
+
end
|
1238
|
+
end
|
1124
1239
|
end
|
1125
1240
|
end
|
1126
1241
|
end
|
data/spec/unit/defaults_spec.rb
CHANGED
@@ -200,6 +200,7 @@ describe "Defaults" do
|
|
200
200
|
|
201
201
|
Object.send(:remove_const, :Facter)
|
202
202
|
facter = double('facter')
|
203
|
+
allow(facter).to receive(:on_message)
|
203
204
|
allow(facter).to receive(:value).with('facterversion').and_return('3.11.4')
|
204
205
|
Object.const_set(:Facter, facter)
|
205
206
|
|
@@ -139,6 +139,14 @@ describe Puppet::Environments do
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
+
it "implements guard and unguard" do
|
143
|
+
loader_from(:filesystem => [directory_tree],
|
144
|
+
:directory => directory_tree.children.first) do |loader|
|
145
|
+
expect(loader.guard('env1')).to be_nil
|
146
|
+
expect(loader.unguard('env1')).to be_nil
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
142
150
|
context "with an environment.conf" do
|
143
151
|
let(:envdir) do
|
144
152
|
FS::MemoryFile.a_directory(File.expand_path("envdir"), [
|
@@ -631,7 +639,7 @@ config_version=$vardir/random/scripts
|
|
631
639
|
])
|
632
640
|
|
633
641
|
loader_from(:filesystem => [envdir], :directory => envdir) do |loader|
|
634
|
-
|
642
|
+
cached = Puppet::Environments::Cached.new(loader)
|
635
643
|
cached.get(:env1)
|
636
644
|
cached.get(:env2)
|
637
645
|
cached.get(:env3)
|
@@ -642,6 +650,51 @@ config_version=$vardir/random/scripts
|
|
642
650
|
end
|
643
651
|
end
|
644
652
|
|
653
|
+
it "normalizes environment name to symbol" do
|
654
|
+
env = Puppet::Node::Environment.create(:cached, [])
|
655
|
+
mocked_loader = double('loader')
|
656
|
+
|
657
|
+
expect(mocked_loader).not_to receive(:get).with('cached')
|
658
|
+
expect(mocked_loader).to receive(:get).with(:cached).and_return(env).once
|
659
|
+
expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).once
|
660
|
+
|
661
|
+
cached = Puppet::Environments::Cached.new(mocked_loader)
|
662
|
+
cached.get('cached')
|
663
|
+
cached.get(:cached)
|
664
|
+
end
|
665
|
+
|
666
|
+
it "caches environment name as symbol and only once" do
|
667
|
+
mocked_loader = double('loader')
|
668
|
+
|
669
|
+
env = Puppet::Node::Environment.create(:cached, [])
|
670
|
+
allow(mocked_loader).to receive(:get).with(:cached).and_return(env)
|
671
|
+
allow(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20))
|
672
|
+
|
673
|
+
cached = Puppet::Environments::Cached.new(mocked_loader)
|
674
|
+
cached.get(:cached)
|
675
|
+
cached.get('cached')
|
676
|
+
|
677
|
+
expect(cached.instance_variable_get(:@cache).keys).to eq([:cached])
|
678
|
+
end
|
679
|
+
|
680
|
+
it "is able to cache multiple environments" do
|
681
|
+
mocked_loader = double('loader')
|
682
|
+
|
683
|
+
env1 = Puppet::Node::Environment.create(:env1, [])
|
684
|
+
allow(mocked_loader).to receive(:get).with(:env1).and_return(env1)
|
685
|
+
allow(mocked_loader).to receive(:get_conf).with(:env1).and_return(Puppet::Settings::EnvironmentConf.static_for(env1, 20))
|
686
|
+
|
687
|
+
env2 = Puppet::Node::Environment.create(:env2, [])
|
688
|
+
allow(mocked_loader).to receive(:get).with(:env2).and_return(env2)
|
689
|
+
allow(mocked_loader).to receive(:get_conf).with(:env2).and_return(Puppet::Settings::EnvironmentConf.static_for(env2, 20))
|
690
|
+
|
691
|
+
cached = Puppet::Environments::Cached.new(mocked_loader)
|
692
|
+
cached.get('env1')
|
693
|
+
cached.get('env2')
|
694
|
+
|
695
|
+
expect(cached.instance_variable_get(:@cache).keys).to eq([:env1, :env2])
|
696
|
+
end
|
697
|
+
|
645
698
|
it "returns nil if env not found" do
|
646
699
|
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
647
700
|
expect(loader.get(:doesnotexist)).to be_nil
|
@@ -697,6 +750,17 @@ config_version=$vardir/random/scripts
|
|
697
750
|
cached.get_conf(:cached)
|
698
751
|
end
|
699
752
|
|
753
|
+
it "normalizes environment name to symbol" do
|
754
|
+
env = Puppet::Node::Environment.create(:cached, [])
|
755
|
+
mocked_loader = double('loader')
|
756
|
+
expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).twice
|
757
|
+
|
758
|
+
cached = Puppet::Environments::Cached.new(mocked_loader)
|
759
|
+
|
760
|
+
cached.get_conf('cached')
|
761
|
+
cached.get_conf(:cached)
|
762
|
+
end
|
763
|
+
|
700
764
|
it "returns nil if environment is not found" do
|
701
765
|
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
702
766
|
expect(loader.get_conf(:doesnotexist)).to be_nil
|
@@ -789,6 +853,83 @@ config_version=$vardir/random/scripts
|
|
789
853
|
|
790
854
|
expect(service.evicted_envs).to eq([:an_environment])
|
791
855
|
end
|
856
|
+
|
857
|
+
context "when guarding an environment" do
|
858
|
+
before :each do
|
859
|
+
Puppet[:environment_timeout] = 0
|
860
|
+
end
|
861
|
+
|
862
|
+
let(:name) { :an_environment }
|
863
|
+
|
864
|
+
def with_guard(cached, name, &block)
|
865
|
+
cached.guard(name)
|
866
|
+
begin
|
867
|
+
yield
|
868
|
+
ensure
|
869
|
+
cached.unguard(name)
|
870
|
+
end
|
871
|
+
end
|
872
|
+
|
873
|
+
it "evicts an expired and unguarded environment" do
|
874
|
+
with_environment_loaded(service) do |cached|
|
875
|
+
cached.get!(name)
|
876
|
+
end
|
877
|
+
|
878
|
+
expect(service.created_envs).to eq([name, name])
|
879
|
+
expect(service.evicted_envs).to eq([name])
|
880
|
+
end
|
881
|
+
|
882
|
+
it "does not evict an expired, but guarded environment" do
|
883
|
+
with_environment_loaded(service) do |cached|
|
884
|
+
with_guard(cached, name) do
|
885
|
+
cached.get!(name) # these shouldn't reload
|
886
|
+
cached.get!(name)
|
887
|
+
end
|
888
|
+
end
|
889
|
+
|
890
|
+
expect(service.created_envs).to eq([name])
|
891
|
+
expect(service.evicted_envs).to eq([])
|
892
|
+
end
|
893
|
+
|
894
|
+
it "does not evict an environment marked for expiration, but is guarded" do
|
895
|
+
Puppet[:environment_timeout] = 'unlimited'
|
896
|
+
|
897
|
+
expect(service).to receive(:expired?).never
|
898
|
+
|
899
|
+
with_environment_loaded(service) do |cached|
|
900
|
+
with_guard(cached, name) do
|
901
|
+
cached.get!(name)
|
902
|
+
end
|
903
|
+
end
|
904
|
+
|
905
|
+
expect(service.created_envs).to eq([name])
|
906
|
+
expect(service.evicted_envs).to eq([])
|
907
|
+
end
|
908
|
+
|
909
|
+
it "evicts an environment that is no longer guarded" do
|
910
|
+
with_environment_loaded(service) do |cached|
|
911
|
+
with_guard(cached, name) {}
|
912
|
+
|
913
|
+
cached.get!(name) # this reloads
|
914
|
+
end
|
915
|
+
|
916
|
+
expect(service.created_envs).to eq([name, name])
|
917
|
+
expect(service.evicted_envs).to eq([name])
|
918
|
+
end
|
919
|
+
|
920
|
+
it "can nest guards" do
|
921
|
+
with_environment_loaded(service) do |cached|
|
922
|
+
with_guard(cached, name) do
|
923
|
+
with_guard(cached, name) do
|
924
|
+
cached.get!(name) # doesn't reload
|
925
|
+
end
|
926
|
+
end
|
927
|
+
end
|
928
|
+
|
929
|
+
expect(service.created_envs).to eq([name])
|
930
|
+
expect(service.evicted_envs).to eq([])
|
931
|
+
end
|
932
|
+
end
|
792
933
|
end
|
793
934
|
|
794
935
|
context '#clear' do
|
@@ -801,6 +942,14 @@ config_version=$vardir/random/scripts
|
|
801
942
|
|
802
943
|
expect(service.evicted_envs).to eq([:an_environment])
|
803
944
|
end
|
945
|
+
|
946
|
+
it "normalizes environment name to symbol" do
|
947
|
+
with_environment_loaded(service) do |cached|
|
948
|
+
cached.clear('an_environment')
|
949
|
+
end
|
950
|
+
|
951
|
+
expect(service.evicted_envs).to eq([:an_environment])
|
952
|
+
end
|
804
953
|
end
|
805
954
|
|
806
955
|
context '#clear_all' do
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Puppet::FacterImpl' do
|
4
|
+
subject(:facter_impl) { Puppet::FacterImpl.new }
|
5
|
+
|
6
|
+
it { is_expected.to respond_to(:value) }
|
7
|
+
it { is_expected.to respond_to(:add) }
|
8
|
+
|
9
|
+
describe '.value' do
|
10
|
+
let(:method_name) { :value }
|
11
|
+
|
12
|
+
before { allow(Facter).to receive(method_name) }
|
13
|
+
|
14
|
+
it 'delegates to Facter API' do
|
15
|
+
facter_impl.value('test_fact')
|
16
|
+
expect(Facter).to have_received(method_name).with('test_fact')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '.add' do
|
21
|
+
let(:block) { Proc.new { setcode 'test' } }
|
22
|
+
let(:method_name) { :add }
|
23
|
+
|
24
|
+
before { allow(Facter).to receive(method_name) }
|
25
|
+
|
26
|
+
it 'delegates to Facter API' do
|
27
|
+
facter_impl.add('test_fact', &block)
|
28
|
+
expect(Facter).to have_received(method_name).with('test_fact', &block)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -104,8 +104,8 @@ describe Puppet::FileBucket::Dipper, :uses_checksums => true do
|
|
104
104
|
# Diff without the context
|
105
105
|
# Lines we need to see match 'Content' instead of trimming diff output filter out
|
106
106
|
# surrounding noise...or hard code the check values
|
107
|
-
if
|
108
|
-
Puppet::Util::Package.versioncmp(
|
107
|
+
if Puppet.runtime[:facter].value(:osfamily) == 'Solaris' &&
|
108
|
+
Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.0') >= 0
|
109
109
|
# Use gdiff on Solaris
|
110
110
|
diff12 = Puppet::Util::Execution.execute("gdiff -uN #{file1} #{file2}| grep Content")
|
111
111
|
diff21 = Puppet::Util::Execution.execute("gdiff -uN #{file2} #{file1}| grep Content")
|
@@ -155,6 +155,29 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
155
155
|
end
|
156
156
|
end
|
157
157
|
|
158
|
+
describe Puppet::FileServing::Configuration::Parser, " when parsing the scripts mount" do
|
159
|
+
include FSConfigurationParserTesting
|
160
|
+
|
161
|
+
before do
|
162
|
+
@mount = double('scriptsmount', :name => "scripts", :validate => true)
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should create an instance of the Scripts Mount class" do
|
166
|
+
write_config_file "[scripts]\n"
|
167
|
+
|
168
|
+
expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
|
169
|
+
@parser.parse
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should warn if a path is set" do
|
173
|
+
write_config_file "[scripts]\npath /some/path\n"
|
174
|
+
expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
|
175
|
+
|
176
|
+
expect(Puppet).to receive(:warning)
|
177
|
+
@parser.parse
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
158
181
|
describe Puppet::FileServing::Configuration::Parser, " when parsing the plugins mount" do
|
159
182
|
include FSConfigurationParserTesting
|
160
183
|
|
@@ -80,15 +80,16 @@ describe Puppet::FileServing::Configuration do
|
|
80
80
|
expect(config.mounted?("one")).to be_truthy
|
81
81
|
end
|
82
82
|
|
83
|
-
it "should add modules, plugins, and tasks mounts even if the file does not exist" do
|
83
|
+
it "should add modules, plugins, scripts, and tasks mounts even if the file does not exist" do
|
84
84
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
|
85
85
|
config = Puppet::FileServing::Configuration.configuration
|
86
86
|
expect(config.mounted?("modules")).to be_truthy
|
87
87
|
expect(config.mounted?("plugins")).to be_truthy
|
88
|
+
expect(config.mounted?("scripts")).to be_truthy
|
88
89
|
expect(config.mounted?("tasks")).to be_truthy
|
89
90
|
end
|
90
91
|
|
91
|
-
it "should allow all access to modules, plugins, and tasks if no fileserver.conf exists" do
|
92
|
+
it "should allow all access to modules, plugins, scripts, and tasks if no fileserver.conf exists" do
|
92
93
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
|
93
94
|
modules = double('modules', :empty? => true)
|
94
95
|
allow(Puppet::FileServing::Mount::Modules).to receive(:new).and_return(modules)
|
@@ -98,6 +99,10 @@ describe Puppet::FileServing::Configuration do
|
|
98
99
|
allow(Puppet::FileServing::Mount::Plugins).to receive(:new).and_return(plugins)
|
99
100
|
expect(plugins).to receive(:allow).with('*')
|
100
101
|
|
102
|
+
scripts = double('scripts', :empty? => true)
|
103
|
+
allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
|
104
|
+
expect(scripts).to receive(:allow).with('*')
|
105
|
+
|
101
106
|
tasks = double('tasks', :empty? => true)
|
102
107
|
allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
|
103
108
|
expect(tasks).to receive(:allow).with('*')
|
@@ -105,7 +110,7 @@ describe Puppet::FileServing::Configuration do
|
|
105
110
|
Puppet::FileServing::Configuration.configuration
|
106
111
|
end
|
107
112
|
|
108
|
-
it "should not allow access from all to modules, plugins, and tasks if the fileserver.conf provided some rules" do
|
113
|
+
it "should not allow access from all to modules, plugins, scripts, and tasks if the fileserver.conf provided some rules" do
|
109
114
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
|
110
115
|
|
111
116
|
modules = double('modules', :empty? => false)
|
@@ -116,6 +121,10 @@ describe Puppet::FileServing::Configuration do
|
|
116
121
|
allow(Puppet::FileServing::Mount::Plugins).to receive(:new).and_return(plugins)
|
117
122
|
expect(plugins).not_to receive(:allow).with('*')
|
118
123
|
|
124
|
+
scripts = double('scripts', :empty? => false)
|
125
|
+
allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
|
126
|
+
expect(scripts).not_to receive(:allow).with('*')
|
127
|
+
|
119
128
|
tasks = double('tasks', :empty? => false)
|
120
129
|
allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
|
121
130
|
expect(tasks).not_to receive(:allow).with('*')
|
@@ -123,12 +132,13 @@ describe Puppet::FileServing::Configuration do
|
|
123
132
|
Puppet::FileServing::Configuration.configuration
|
124
133
|
end
|
125
134
|
|
126
|
-
it "should add modules, plugins, and tasks mounts even if they are not returned by the parser" do
|
135
|
+
it "should add modules, plugins, scripts, and tasks mounts even if they are not returned by the parser" do
|
127
136
|
expect(@parser).to receive(:parse).and_return("one" => double("mount"))
|
128
137
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(true) # the file doesn't exist
|
129
138
|
config = Puppet::FileServing::Configuration.configuration
|
130
139
|
expect(config.mounted?("modules")).to be_truthy
|
131
140
|
expect(config.mounted?("plugins")).to be_truthy
|
141
|
+
expect(config.mounted?("scripts")).to be_truthy
|
132
142
|
expect(config.mounted?("tasks")).to be_truthy
|
133
143
|
end
|
134
144
|
end
|