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
@@ -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")
|
@@ -159,6 +159,29 @@ describe Puppet::FileServing::Configuration::Parser do
|
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
|
+
describe Puppet::FileServing::Configuration::Parser, " when parsing the scripts mount" do
|
163
|
+
include FSConfigurationParserTesting
|
164
|
+
|
165
|
+
before do
|
166
|
+
@mount = double('scriptsmount', :name => "scripts", :validate => true)
|
167
|
+
end
|
168
|
+
|
169
|
+
it "should create an instance of the Scripts Mount class" do
|
170
|
+
write_config_file "[scripts]\n"
|
171
|
+
|
172
|
+
expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
|
173
|
+
@parser.parse
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should warn if a path is set" do
|
177
|
+
write_config_file "[scripts]\npath /some/path\n"
|
178
|
+
expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
|
179
|
+
|
180
|
+
expect(Puppet).to receive(:warning)
|
181
|
+
@parser.parse
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
162
185
|
describe Puppet::FileServing::Configuration::Parser, " when parsing the plugins mount" do
|
163
186
|
include FSConfigurationParserTesting
|
164
187
|
|
@@ -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')
|
94
95
|
allow(Puppet::FileServing::Mount::Modules).to receive(:new).and_return(modules)
|
@@ -99,10 +100,13 @@ describe Puppet::FileServing::Configuration do
|
|
99
100
|
tasks = double('tasks')
|
100
101
|
allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
|
101
102
|
|
103
|
+
scripts = double('scripts')
|
104
|
+
allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
|
105
|
+
|
102
106
|
Puppet::FileServing::Configuration.configuration
|
103
107
|
end
|
104
108
|
|
105
|
-
it "should not allow access from all to modules, plugins, and tasks if the fileserver.conf provided some rules" do
|
109
|
+
it "should not allow access from all to modules, plugins, scripts, and tasks if the fileserver.conf provided some rules" do
|
106
110
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
|
107
111
|
|
108
112
|
modules = double('modules')
|
@@ -114,15 +118,19 @@ describe Puppet::FileServing::Configuration do
|
|
114
118
|
tasks = double('tasks')
|
115
119
|
allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
|
116
120
|
|
121
|
+
scripts = double('scripts', :empty? => false)
|
122
|
+
allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
|
123
|
+
|
117
124
|
Puppet::FileServing::Configuration.configuration
|
118
125
|
end
|
119
126
|
|
120
|
-
it "should add modules, plugins, and tasks mounts even if they are not returned by the parser" do
|
127
|
+
it "should add modules, plugins, scripts, and tasks mounts even if they are not returned by the parser" do
|
121
128
|
expect(@parser).to receive(:parse).and_return("one" => double("mount"))
|
122
129
|
expect(Puppet::FileSystem).to receive(:exist?).and_return(true) # the file doesn't exist
|
123
130
|
config = Puppet::FileServing::Configuration.configuration
|
124
131
|
expect(config.mounted?("modules")).to be_truthy
|
125
132
|
expect(config.mounted?("plugins")).to be_truthy
|
133
|
+
expect(config.mounted?("scripts")).to be_truthy
|
126
134
|
expect(config.mounted?("tasks")).to be_truthy
|
127
135
|
end
|
128
136
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet/file_serving/mount/scripts'
|
3
|
+
|
4
|
+
describe Puppet::FileServing::Mount::Scripts do
|
5
|
+
before do
|
6
|
+
@mount = Puppet::FileServing::Mount::Scripts.new("scripts")
|
7
|
+
|
8
|
+
@environment = double('environment', :module => nil)
|
9
|
+
@request = double('request', :environment => @environment)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "when finding files" do
|
13
|
+
it "should fail if no module is specified" do
|
14
|
+
expect { @mount.find("", @request) }.to raise_error(/No module specified/)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should use the provided environment to find the module" do
|
18
|
+
expect(@environment).to receive(:module)
|
19
|
+
|
20
|
+
@mount.find("foo", @request)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should treat the first field of the relative path as the module name" do
|
24
|
+
expect(@environment).to receive(:module).with("foo")
|
25
|
+
@mount.find("foo/bar/baz", @request)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return nil if the specified module does not exist" do
|
29
|
+
expect(@environment).to receive(:module).with("foo")
|
30
|
+
@mount.find("foo/bar/baz", @request)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should return the file path from the module" do
|
34
|
+
mod = double('module')
|
35
|
+
expect(mod).to receive(:script).with("bar/baz").and_return("eh")
|
36
|
+
expect(@environment).to receive(:module).with("foo").and_return(mod)
|
37
|
+
expect(@mount.find("foo/bar/baz", @request)).to eq("eh")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "when searching for files" do
|
42
|
+
it "should fail if no module is specified" do
|
43
|
+
expect { @mount.search("", @request) }.to raise_error(/No module specified/)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should use the node's environment to search the module" do
|
47
|
+
expect(@environment).to receive(:module)
|
48
|
+
|
49
|
+
@mount.search("foo", @request)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should treat the first field of the relative path as the module name" do
|
53
|
+
expect(@environment).to receive(:module).with("foo")
|
54
|
+
@mount.search("foo/bar/baz", @request)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return nil if the specified module does not exist" do
|
58
|
+
expect(@environment).to receive(:module).with("foo").and_return(nil)
|
59
|
+
@mount.search("foo/bar/baz", @request)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should return the script path as an array from the module" do
|
63
|
+
mod = double('module')
|
64
|
+
expect(mod).to receive(:script).with("bar/baz").and_return("eh")
|
65
|
+
expect(@environment).to receive(:module).with("foo").and_return(mod)
|
66
|
+
expect(@mount.search("foo/bar/baz", @request)).to eq(["eh"])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -290,6 +290,19 @@ describe "Puppet::FileSystem" do
|
|
290
290
|
expect(Puppet::FileSystem.read_preserve_line_endings(file)).to eq("file content \r\nsecond line \n")
|
291
291
|
end
|
292
292
|
end
|
293
|
+
|
294
|
+
it "should ignore leading BOM" do
|
295
|
+
with_file_content("\uFEFFfile content \n") do |file|
|
296
|
+
expect(Puppet::FileSystem.read_preserve_line_endings(file)).to eq("file content \n")
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
it "should not warn about misusage of BOM with non-UTF encoding" do
|
301
|
+
allow(Encoding).to receive(:default_external).and_return(Encoding::US_ASCII)
|
302
|
+
with_file_content("file content \n") do |file|
|
303
|
+
expect{ Puppet::FileSystem.read_preserve_line_endings(file) }.not_to output(/BOM with non-UTF encoding US-ASCII is nonsense/).to_stderr
|
304
|
+
end
|
305
|
+
end
|
293
306
|
end
|
294
307
|
|
295
308
|
context "read without an encoding specified" do
|
@@ -28,7 +28,7 @@ describe 'the assert_type function' do
|
|
28
28
|
it 'checks that first argument is a type' do
|
29
29
|
expect do
|
30
30
|
func.call({}, 10, 10)
|
31
|
-
end.to raise_error(ArgumentError, "'assert_type' expects one of:
|
31
|
+
end.to raise_error(ArgumentError, "The function 'assert_type' was called with arguments it does not accept. It expects one of:
|
32
32
|
(Type type, Any value, Callable[Type, Type] block?)
|
33
33
|
rejected: parameter 'type' expects a Type value, got Integer
|
34
34
|
(String type_string, Any value, Callable[Type, Type] block?)
|
@@ -56,6 +56,16 @@ describe 'the empty function' do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
context 'for a sensitive string it' do
|
60
|
+
it 'returns true when empty' do
|
61
|
+
expect(compile_to_catalog("notify { String(empty(Sensitive(''))): }")).to have_resource('Notify[true]')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'returns false when not empty' do
|
65
|
+
expect(compile_to_catalog("notify { String(empty(Sensitive(' '))): }")).to have_resource('Notify[false]')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
59
69
|
context 'for a binary it' do
|
60
70
|
it 'returns true when empty' do
|
61
71
|
expect(compile_to_catalog("notify { String(empty(Binary(''))): }")).to have_resource('Notify[true]')
|
@@ -870,6 +870,46 @@ describe "The lookup function" do
|
|
870
870
|
end
|
871
871
|
end
|
872
872
|
|
873
|
+
context 'with lookup_options' do
|
874
|
+
let(:environment_files) do
|
875
|
+
{
|
876
|
+
env_name => {
|
877
|
+
'hiera.yaml' => <<-YAML.unindent,
|
878
|
+
---
|
879
|
+
version: 5
|
880
|
+
YAML
|
881
|
+
'data' => {
|
882
|
+
'common.yaml' => common_yaml
|
883
|
+
}
|
884
|
+
}
|
885
|
+
}
|
886
|
+
end
|
887
|
+
|
888
|
+
context 'that are empty' do
|
889
|
+
let(:common_yaml) { <<-YAML.unindent }
|
890
|
+
lookup_options:
|
891
|
+
a: b
|
892
|
+
YAML
|
893
|
+
|
894
|
+
it 'ignores empty options' do
|
895
|
+
expect(lookup('a')).to eq("b")
|
896
|
+
end
|
897
|
+
end
|
898
|
+
|
899
|
+
context 'that contains a legal yaml hash with unexpected types' do
|
900
|
+
let(:common_yaml) { <<-YAML.unindent }
|
901
|
+
lookup_options:
|
902
|
+
:invalid_symbol
|
903
|
+
YAML
|
904
|
+
|
905
|
+
it 'fails lookup and reports a type mismatch' do
|
906
|
+
expect {
|
907
|
+
lookup('a')
|
908
|
+
}.to raise_error(Puppet::DataBinding::LookupError, /has wrong type, expects Puppet::LookupValue, got Runtime\[ruby, 'Symbol'\]/)
|
909
|
+
end
|
910
|
+
end
|
911
|
+
end
|
912
|
+
|
873
913
|
context 'with lookup_options configured using patterns' do
|
874
914
|
let(:mod_common) {
|
875
915
|
<<-YAML.unindent
|
@@ -1019,6 +1059,30 @@ describe "The lookup function" do
|
|
1019
1059
|
})
|
1020
1060
|
end
|
1021
1061
|
|
1062
|
+
context 'and lookup_options is empty' do
|
1063
|
+
let(:mod_common) { <<-YAML.unindent }
|
1064
|
+
lookup_options:
|
1065
|
+
mod::a: b
|
1066
|
+
YAML
|
1067
|
+
|
1068
|
+
it 'ignores empty options' do
|
1069
|
+
expect(lookup('mod::a')).to eq("b")
|
1070
|
+
end
|
1071
|
+
end
|
1072
|
+
|
1073
|
+
context 'and lookup_options contains a legal hash with unexpected types' do
|
1074
|
+
let(:mod_common) { <<-YAML.unindent }
|
1075
|
+
lookup_options:
|
1076
|
+
:invalid_symbol
|
1077
|
+
YAML
|
1078
|
+
|
1079
|
+
it 'fails lookup and reports a type mismatch' do
|
1080
|
+
expect {
|
1081
|
+
lookup('mod::a')
|
1082
|
+
}.to raise_error(Puppet::DataBinding::LookupError, /has wrong type, expects Puppet::LookupValue, got Runtime\[ruby, 'Symbol'\]/)
|
1083
|
+
end
|
1084
|
+
end
|
1085
|
+
|
1022
1086
|
context 'and patterns in module are not limited to module keys' do
|
1023
1087
|
let(:mod_common) {
|
1024
1088
|
<<-YAML.unindent
|
@@ -3303,6 +3367,29 @@ describe "The lookup function" do
|
|
3303
3367
|
end
|
3304
3368
|
end
|
3305
3369
|
|
3370
|
+
context 'using options containing intepolated paths to the key pair' do
|
3371
|
+
let(:scope_additions) { { 'priv_path' => private_key_path, 'pub_path' => public_key_path } }
|
3372
|
+
|
3373
|
+
let(:hiera_yaml) do
|
3374
|
+
<<-YAML.unindent
|
3375
|
+
version: 5
|
3376
|
+
defaults:
|
3377
|
+
datadir: #{code_dir}/hieradata
|
3378
|
+
hierarchy:
|
3379
|
+
- name: "secret data"
|
3380
|
+
lookup_key: eyaml_lookup_key
|
3381
|
+
path: common.eyaml
|
3382
|
+
options:
|
3383
|
+
pkcs7_private_key: "%{priv_path}"
|
3384
|
+
pkcs7_public_key: "%{pub_path}"
|
3385
|
+
YAML
|
3386
|
+
end
|
3387
|
+
|
3388
|
+
it 'finds data in the global layer' do
|
3389
|
+
expect(lookup('a')).to eql("Encrypted value 'a' (from global)")
|
3390
|
+
end
|
3391
|
+
end
|
3392
|
+
|
3306
3393
|
context 'with special extension declared in options' do
|
3307
3394
|
let(:environment_files) { {} }
|
3308
3395
|
let(:hiera_yaml) do
|
@@ -15,6 +15,14 @@ describe 'the unwrap function' do
|
|
15
15
|
expect(eval_and_collect_notices(code)).to eq(['unwrapped value is 12345'])
|
16
16
|
end
|
17
17
|
|
18
|
+
it 'just returns a non-sensitive value' do
|
19
|
+
code = <<-CODE
|
20
|
+
$non_sensitive = "12345"
|
21
|
+
notice("value is still ${non_sensitive.unwrap}")
|
22
|
+
CODE
|
23
|
+
expect(eval_and_collect_notices(code)).to eq(['value is still 12345'])
|
24
|
+
end
|
25
|
+
|
18
26
|
it 'unwraps a sensitive value when given a code block' do
|
19
27
|
code = <<-CODE
|
20
28
|
$sensitive = Sensitive.new("12345")
|
@@ -169,7 +169,7 @@ describe 'the 4x function api' do
|
|
169
169
|
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
170
170
|
expect do
|
171
171
|
func.call({}, 3, 10, 3, "4")
|
172
|
-
end.to raise_error(ArgumentError, "'min' expects one of:
|
172
|
+
end.to raise_error(ArgumentError, "The function 'min' was called with arguments it does not accept. It expects one of:
|
173
173
|
(Numeric x, Numeric y, Numeric a?, Numeric b?, Numeric c*)
|
174
174
|
rejected: parameter 'b' expects a Numeric value, got String
|
175
175
|
(String x, String y, String a+)
|
@@ -240,7 +240,7 @@ describe 'the 4x function api' do
|
|
240
240
|
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
241
241
|
expect do
|
242
242
|
func.call({}, 10, '20')
|
243
|
-
end.to raise_error(ArgumentError, "'min' expects one of:
|
243
|
+
end.to raise_error(ArgumentError, "The function 'min' was called with arguments it does not accept. It expects one of:
|
244
244
|
(Numeric a, Numeric b)
|
245
245
|
rejected: parameter 'b' expects a Numeric value, got String
|
246
246
|
(String s1, String s2)
|
@@ -95,6 +95,14 @@ describe Puppet::HTTP::Service::Compiler do
|
|
95
95
|
subject.post_catalog(certname, environment: 'production', facts: facts, configured_environment: 'agent_specified')
|
96
96
|
end
|
97
97
|
|
98
|
+
it 'includes check_environment' do
|
99
|
+
stub_request(:post, uri)
|
100
|
+
.with(body: hash_including('check_environment' => 'false'))
|
101
|
+
.to_return(**catalog_response)
|
102
|
+
|
103
|
+
subject.post_catalog(certname, environment: 'production', facts: facts)
|
104
|
+
end
|
105
|
+
|
98
106
|
it 'includes transaction_uuid' do
|
99
107
|
uuid = "ec3d2844-b236-4287-b0ad-632fbb4d1ff0"
|
100
108
|
|
@@ -11,6 +11,9 @@ def set_facts(fact_hash)
|
|
11
11
|
end
|
12
12
|
|
13
13
|
describe Puppet::Resource::Catalog::Compiler do
|
14
|
+
include Matchers::Resource
|
15
|
+
include PuppetSpec::Files
|
16
|
+
|
14
17
|
let(:compiler) { described_class.new }
|
15
18
|
let(:node_name) { "foo" }
|
16
19
|
let(:node) { Puppet::Node.new(node_name)}
|
@@ -236,6 +239,46 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
236
239
|
expect { compiler.find(@request) }.to raise_error Puppet::Error,
|
237
240
|
"Unable to find a common checksum type between agent '' and master '[:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :sha512, :sha384, :sha224, :mtime, :ctime, :none]'."
|
238
241
|
end
|
242
|
+
|
243
|
+
it "prevents the environment from being evicted during compilation" do
|
244
|
+
Puppet[:environment_timeout] = 0
|
245
|
+
|
246
|
+
envs = Puppet.lookup(:environments)
|
247
|
+
|
248
|
+
expect(compiler).to receive(:compile) do
|
249
|
+
# we should get the same object
|
250
|
+
expect(envs.get!(:production)).to equal(envs.get!(:production))
|
251
|
+
end
|
252
|
+
|
253
|
+
compiler.find(@request)
|
254
|
+
end
|
255
|
+
|
256
|
+
context 'when checking agent and server specified environments' do
|
257
|
+
before :each do
|
258
|
+
FileUtils.mkdir_p(File.join(Puppet[:environmentpath], 'env_server'))
|
259
|
+
FileUtils.mkdir_p(File.join(Puppet[:environmentpath], 'env_agent'))
|
260
|
+
|
261
|
+
node.environment = 'env_server'
|
262
|
+
allow(Puppet::Node.indirection).to receive(:find).and_return(node)
|
263
|
+
|
264
|
+
@request.environment = 'env_agent'
|
265
|
+
end
|
266
|
+
|
267
|
+
it 'ignores mismatched environments by default' do
|
268
|
+
catalog = compiler.find(@request)
|
269
|
+
|
270
|
+
expect(catalog.environment).to eq('env_server')
|
271
|
+
expect(catalog).to have_resource('Stage[main]')
|
272
|
+
end
|
273
|
+
|
274
|
+
it 'returns an empty catalog if asked to check the environment and they are mismatched' do
|
275
|
+
@request.options[:check_environment] = "true"
|
276
|
+
catalog = compiler.find(@request)
|
277
|
+
|
278
|
+
expect(catalog.environment).to eq('env_server')
|
279
|
+
expect(catalog.resources).to be_empty
|
280
|
+
end
|
281
|
+
end
|
239
282
|
end
|
240
283
|
|
241
284
|
describe "when handling a request with facts" do
|
@@ -564,6 +607,50 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
564
607
|
metadata
|
565
608
|
end
|
566
609
|
|
610
|
+
describe "and the environment is a symlink and versioned_environment_dirs is true" do
|
611
|
+
|
612
|
+
let(:tmpdir) { Dir.mktmpdir }
|
613
|
+
|
614
|
+
before(:each) do
|
615
|
+
Puppet[:versioned_environment_dirs] = true
|
616
|
+
prod_path = File.join(Puppet[:environmentpath], 'production')
|
617
|
+
FileUtils.rm_rf(prod_path)
|
618
|
+
FileUtils.symlink(tmpdir, prod_path)
|
619
|
+
end
|
620
|
+
|
621
|
+
it "inlines metadata for a file" do
|
622
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
623
|
+
file { '#{path}':
|
624
|
+
ensure => file,
|
625
|
+
source => '#{source}'
|
626
|
+
}
|
627
|
+
MANIFEST
|
628
|
+
|
629
|
+
module_relative_path = 'modules/mymodule/files/config_file.txt'
|
630
|
+
metadata = stubs_file_metadata(checksum_type,
|
631
|
+
checksum_value,
|
632
|
+
module_relative_path,
|
633
|
+
File.join(tmpdir, module_relative_path) )
|
634
|
+
expect(metadata).to receive(:source=).with(source)
|
635
|
+
expect(metadata).to receive(:content_uri=).with("puppet:///#{module_relative_path}")
|
636
|
+
|
637
|
+
options = {
|
638
|
+
:environment => catalog.environment_instance,
|
639
|
+
:links => :manage,
|
640
|
+
:checksum_type => checksum_type.to_sym,
|
641
|
+
:source_permissions => :ignore
|
642
|
+
}
|
643
|
+
expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, options).and_return(metadata)
|
644
|
+
|
645
|
+
compiler.send(:inline_metadata, catalog, checksum_type)
|
646
|
+
|
647
|
+
|
648
|
+
expect(catalog.metadata[path]).to eq(metadata)
|
649
|
+
expect(catalog.recursive_metadata).to be_empty
|
650
|
+
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
567
654
|
it "inlines metadata for a file" do
|
568
655
|
catalog = compile_to_catalog(<<-MANIFEST, node)
|
569
656
|
file { '#{path}':
|
@@ -33,6 +33,14 @@ describe Puppet::Resource::Catalog::Rest do
|
|
33
33
|
described_class.indirection.find(certname, environment: Puppet::Node::Environment.remote('outerspace'))
|
34
34
|
end
|
35
35
|
|
36
|
+
it "passes 'check_environment'" do
|
37
|
+
stub_request(:post, uri)
|
38
|
+
.with(body: hash_including('check_environment' => 'true'))
|
39
|
+
.to_return(**catalog_response(catalog))
|
40
|
+
|
41
|
+
described_class.indirection.find(certname, check_environment: true)
|
42
|
+
end
|
43
|
+
|
36
44
|
it 'constructs a catalog environment_instance' do
|
37
45
|
env = Puppet::Node::Environment.remote('outerspace')
|
38
46
|
catalog = Puppet::Resource::Catalog.new(certname, env)
|
@@ -499,7 +499,7 @@ describe Puppet::Indirector::Indirection do
|
|
499
499
|
end
|
500
500
|
|
501
501
|
it "should return the result of saving to the terminus" do
|
502
|
-
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
502
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false, :ignore_terminus? => false)
|
503
503
|
|
504
504
|
expect(@indirection).to receive(:request).and_return(request)
|
505
505
|
|
@@ -509,7 +509,7 @@ describe Puppet::Indirector::Indirection do
|
|
509
509
|
end
|
510
510
|
|
511
511
|
it "should use a request to save the object to the cache" do
|
512
|
-
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
512
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false, :ignore_terminus? => false)
|
513
513
|
|
514
514
|
expect(@indirection).to receive(:request).and_return(request)
|
515
515
|
|
@@ -519,7 +519,7 @@ describe Puppet::Indirector::Indirection do
|
|
519
519
|
end
|
520
520
|
|
521
521
|
it "should not save to the cache if the normal save fails" do
|
522
|
-
request = double('request', :instance => @instance, :node => nil)
|
522
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_terminus? => false)
|
523
523
|
|
524
524
|
expect(@indirection).to receive(:request).and_return(request)
|
525
525
|
|
@@ -534,6 +534,13 @@ describe Puppet::Indirector::Indirection do
|
|
534
534
|
|
535
535
|
@indirection.save(@instance, '/my/key', :ignore_cache_save => true)
|
536
536
|
end
|
537
|
+
|
538
|
+
it "should only save to the cache if the request specifies not to use the terminus" do
|
539
|
+
expect(@terminus).not_to receive(:save)
|
540
|
+
expect(@cache).to receive(:save)
|
541
|
+
|
542
|
+
@indirection.save(@instance, "/my/key", :ignore_terminus => true)
|
543
|
+
end
|
537
544
|
end
|
538
545
|
end
|
539
546
|
|