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
@@ -10,21 +10,22 @@ describe Puppet::Application::Apply do
|
|
10
10
|
|
11
11
|
before :each do
|
12
12
|
@apply = Puppet::Application[:apply]
|
13
|
-
allow(Puppet::Util::Log).to receive(:newdestination)
|
14
13
|
Puppet[:reports] = "none"
|
15
14
|
end
|
16
15
|
|
17
|
-
[:debug,:loadclasses,:test,:verbose,:use_nodes,:detailed_exitcodes,:catalog
|
18
|
-
it "should declare handle_#{option} method" do
|
19
|
-
expect(@apply).to respond_to("handle_#{option}".to_sym)
|
20
|
-
end
|
21
|
-
|
16
|
+
[:debug,:loadclasses,:test,:verbose,:use_nodes,:detailed_exitcodes,:catalog].each do |option|
|
22
17
|
it "should store argument value when calling handle_#{option}" do
|
23
18
|
expect(@apply.options).to receive(:[]=).with(option, 'arg')
|
24
19
|
@apply.send("handle_#{option}".to_sym, 'arg')
|
25
20
|
end
|
26
21
|
end
|
27
22
|
|
23
|
+
it "should handle write_catalog_summary" do
|
24
|
+
@apply.send(:handle_write_catalog_summary, true)
|
25
|
+
|
26
|
+
expect(Puppet[:write_catalog_summary]).to eq(true)
|
27
|
+
end
|
28
|
+
|
28
29
|
it "should set the code to the provided code when :execute is used" do
|
29
30
|
expect(@apply.options).to receive(:[]=).with(:code, 'arg')
|
30
31
|
@apply.send("handle_execute".to_sym, 'arg')
|
@@ -53,23 +54,18 @@ describe Puppet::Application::Apply do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
describe "with --test" do
|
56
|
-
it "should call setup_test" do
|
57
|
-
@apply.options[:test] = true
|
58
|
-
expect(@apply).to receive(:setup_test)
|
59
|
-
|
60
|
-
@apply.setup
|
61
|
-
end
|
62
|
-
|
63
57
|
it "should set options[:verbose] to true" do
|
64
58
|
@apply.setup_test
|
65
59
|
|
66
60
|
expect(@apply.options[:verbose]).to eq(true)
|
67
61
|
end
|
62
|
+
|
68
63
|
it "should set options[:show_diff] to true" do
|
69
64
|
Puppet.settings.override_default(:show_diff, false)
|
70
65
|
@apply.setup_test
|
71
66
|
expect(Puppet[:show_diff]).to eq(true)
|
72
67
|
end
|
68
|
+
|
73
69
|
it "should set options[:detailed_exitcodes] to true" do
|
74
70
|
@apply.setup_test
|
75
71
|
|
@@ -155,7 +151,7 @@ describe Puppet::Application::Apply do
|
|
155
151
|
end
|
156
152
|
|
157
153
|
describe "when executing" do
|
158
|
-
it "should dispatch to 'apply' if it was called with
|
154
|
+
it "should dispatch to 'apply' if it was called with a catalog" do
|
159
155
|
@apply.options[:catalog] = "foo"
|
160
156
|
|
161
157
|
expect(@apply).to receive(:apply)
|
@@ -213,47 +209,52 @@ describe Puppet::Application::Apply do
|
|
213
209
|
@apply.options[:code] = "code to run"
|
214
210
|
expect(Puppet).to receive(:[]=).with(:code,"code to run")
|
215
211
|
|
216
|
-
expect { @apply.
|
212
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
217
213
|
end
|
218
214
|
|
219
215
|
it "should set the code to run from STDIN if no arguments" do
|
220
|
-
|
216
|
+
@apply.command_line.args = []
|
221
217
|
allow(STDIN).to receive(:read).and_return("code to run")
|
222
218
|
|
223
219
|
expect(Puppet).to receive(:[]=).with(:code,"code to run")
|
224
220
|
|
225
|
-
expect { @apply.
|
221
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
226
222
|
end
|
227
223
|
|
228
224
|
it "should raise an error if a file is passed on command line and the file does not exist" do
|
229
225
|
noexist = tmpfile('noexist.pp')
|
230
|
-
|
231
|
-
expect {
|
226
|
+
@apply.command_line.args << noexist
|
227
|
+
expect {
|
228
|
+
@apply.run
|
229
|
+
}.to exit_with(1)
|
230
|
+
.and output(anything).to_stdout
|
231
|
+
.and output(/Could not find file #{noexist}/).to_stderr
|
232
232
|
end
|
233
233
|
|
234
234
|
it "should set the manifest to the first file and warn other files will be skipped" do
|
235
235
|
manifest = tmpfile('starwarsIV')
|
236
236
|
FileUtils.touch(manifest)
|
237
237
|
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
expect(msg.level).to eq(:warning)
|
238
|
+
@apply.command_line.args << manifest << 'starwarsI' << 'starwarsII'
|
239
|
+
expect {
|
240
|
+
@apply.run
|
241
|
+
}.to exit_with(0)
|
242
|
+
.and output(anything).to_stdout
|
243
|
+
.and output(/Warning: Only one file can be applied per run. Skipping starwarsI, starwarsII/).to_stderr
|
245
244
|
end
|
246
245
|
|
247
246
|
it "should splay" do
|
248
247
|
expect(@apply).to receive(:splay)
|
249
248
|
|
250
|
-
expect {
|
249
|
+
expect {
|
250
|
+
@apply.run
|
251
|
+
}.to exit_with(0).and output(anything).to_stdout
|
251
252
|
end
|
252
253
|
|
253
|
-
it "should
|
254
|
+
it "should exit with 1 if we can't find the node" do
|
254
255
|
expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
|
255
256
|
|
256
|
-
expect { @apply.
|
257
|
+
expect { @apply.run }.to exit_with(1).and output(/Could not find node/).to_stderr
|
257
258
|
end
|
258
259
|
|
259
260
|
it "should load custom classes if loadclasses" do
|
@@ -264,18 +265,18 @@ describe Puppet::Application::Apply do
|
|
264
265
|
|
265
266
|
expect(@node).to receive(:classes=).with(['class'])
|
266
267
|
|
267
|
-
expect { @apply.
|
268
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
268
269
|
end
|
269
270
|
|
270
271
|
it "should compile the catalog" do
|
271
272
|
expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(@catalog)
|
272
273
|
|
273
|
-
expect { @apply.
|
274
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
274
275
|
end
|
275
276
|
|
276
277
|
it 'should called the DeferredResolver to resolve any Deferred values' do
|
277
278
|
expect(Puppet::Pops::Evaluator::DeferredResolver).to receive(:resolve_and_replace).with(any_args)
|
278
|
-
expect { @apply.
|
279
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
279
280
|
end
|
280
281
|
|
281
282
|
it 'should make the Puppet::Pops::Loaders available when applying the compiled catalog' do
|
@@ -285,47 +286,67 @@ describe Puppet::Application::Apply do
|
|
285
286
|
fail('Loaders not found') unless Puppet.lookup(:loaders) { nil }.is_a?(Puppet::Pops::Loaders)
|
286
287
|
true
|
287
288
|
end.and_return(0)
|
288
|
-
expect { @apply.
|
289
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
289
290
|
end
|
290
291
|
|
291
292
|
it "should transform the catalog to ral" do
|
292
293
|
expect(@catalog).to receive(:to_ral).and_return(@catalog)
|
293
294
|
|
294
|
-
expect { @apply.
|
295
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
295
296
|
end
|
296
297
|
|
297
298
|
it "should finalize the catalog" do
|
298
299
|
expect(@catalog).to receive(:finalize)
|
299
300
|
|
300
|
-
expect { @apply.
|
301
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
301
302
|
end
|
302
303
|
|
303
304
|
it "should not save the classes or resource file by default" do
|
304
305
|
expect(@catalog).not_to receive(:write_class_file)
|
305
306
|
expect(@catalog).not_to receive(:write_resource_file)
|
306
|
-
|
307
|
+
|
308
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
307
309
|
end
|
308
310
|
|
309
|
-
it "should save the classes and resources files when requested" do
|
310
|
-
@
|
311
|
+
it "should save the classes and resources files when requested on the command line using dashes" do
|
312
|
+
expect(@catalog).to receive(:write_class_file).once
|
313
|
+
expect(@catalog).to receive(:write_resource_file).once
|
314
|
+
|
315
|
+
# dashes are parsed by the application's OptionParser
|
316
|
+
@apply.command_line.args = ['--write-catalog-summary']
|
317
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
318
|
+
end
|
319
|
+
|
320
|
+
it "should save the classes and resources files when requested on the command line using underscores" do
|
321
|
+
expect(@catalog).to receive(:write_class_file).once
|
322
|
+
expect(@catalog).to receive(:write_resource_file).once
|
323
|
+
|
324
|
+
# underscores are parsed by the settings PuppetOptionParser
|
325
|
+
@apply.command_line.args = ['--write_catalog_summary']
|
326
|
+
Puppet.initialize_settings(['--write_catalog_summary'])
|
327
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
328
|
+
end
|
329
|
+
|
330
|
+
it "should save the classes and resources files when specified as a setting" do
|
331
|
+
Puppet[:write_catalog_summary] = true
|
311
332
|
|
312
333
|
expect(@catalog).to receive(:write_class_file).once
|
313
334
|
expect(@catalog).to receive(:write_resource_file).once
|
314
335
|
|
315
|
-
expect { @apply.
|
336
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
316
337
|
end
|
317
338
|
|
318
339
|
it "should call the prerun and postrun commands on a Configurer instance" do
|
319
340
|
expect_any_instance_of(Puppet::Configurer).to receive(:execute_prerun_command).and_return(true)
|
320
341
|
expect_any_instance_of(Puppet::Configurer).to receive(:execute_postrun_command).and_return(true)
|
321
342
|
|
322
|
-
expect { @apply.
|
343
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
323
344
|
end
|
324
345
|
|
325
346
|
it "should apply the catalog" do
|
326
347
|
expect(@catalog).to receive(:apply).and_return(double('transaction'))
|
327
348
|
|
328
|
-
expect { @apply.
|
349
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
329
350
|
end
|
330
351
|
|
331
352
|
it "should save the last run summary" do
|
@@ -334,7 +355,7 @@ describe Puppet::Application::Apply do
|
|
334
355
|
allow(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
335
356
|
|
336
357
|
expect_any_instance_of(Puppet::Configurer).to receive(:save_last_run_summary).with(report)
|
337
|
-
expect { @apply.
|
358
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
338
359
|
end
|
339
360
|
|
340
361
|
describe "when using node_name_fact" do
|
@@ -347,27 +368,27 @@ describe Puppet::Application::Apply do
|
|
347
368
|
end
|
348
369
|
|
349
370
|
it "should set the facts name based on the node_name_fact" do
|
350
|
-
expect { @apply.
|
371
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
351
372
|
expect(@facts.name).to eq('other_node_name')
|
352
373
|
end
|
353
374
|
|
354
375
|
it "should set the node_name_value based on the node_name_fact" do
|
355
|
-
expect { @apply.
|
376
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
356
377
|
expect(Puppet[:node_name_value]).to eq('other_node_name')
|
357
378
|
end
|
358
379
|
|
359
380
|
it "should merge in our node the loaded facts" do
|
360
381
|
@facts.values.merge!('key' => 'value')
|
361
382
|
|
362
|
-
expect { @apply.
|
383
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
363
384
|
|
364
385
|
expect(@node.parameters['key']).to eq('value')
|
365
386
|
end
|
366
387
|
|
367
|
-
it "should
|
388
|
+
it "should exit if we can't find the facts" do
|
368
389
|
expect(Puppet::Node::Facts.indirection).to receive(:find).and_return(nil)
|
369
390
|
|
370
|
-
expect { @apply.
|
391
|
+
expect { @apply.run }.to exit_with(1).and output(/Could not find facts/).to_stderr
|
371
392
|
end
|
372
393
|
end
|
373
394
|
|
@@ -380,14 +401,14 @@ describe Puppet::Application::Apply do
|
|
380
401
|
Puppet[:noop] = false
|
381
402
|
allow_any_instance_of(Puppet::Transaction::Report).to receive(:exit_status).and_return(666)
|
382
403
|
|
383
|
-
expect { @apply.
|
404
|
+
expect { @apply.run }.to exit_with(666).and output(anything).to_stdout
|
384
405
|
end
|
385
406
|
|
386
407
|
it "should exit with report's computed exit status, even if --noop is set" do
|
387
408
|
Puppet[:noop] = true
|
388
409
|
allow_any_instance_of(Puppet::Transaction::Report).to receive(:exit_status).and_return(666)
|
389
410
|
|
390
|
-
expect { @apply.
|
411
|
+
expect { @apply.run }.to exit_with(666).and output(anything).to_stdout
|
391
412
|
end
|
392
413
|
|
393
414
|
it "should always exit with 0 if option is disabled" do
|
@@ -395,7 +416,7 @@ describe Puppet::Application::Apply do
|
|
395
416
|
report = double('report', :exit_status => 666)
|
396
417
|
allow(@transaction).to receive(:report).and_return(report)
|
397
418
|
|
398
|
-
expect { @apply.
|
419
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
399
420
|
end
|
400
421
|
|
401
422
|
it "should always exit with 0 if --noop" do
|
@@ -403,7 +424,7 @@ describe Puppet::Application::Apply do
|
|
403
424
|
report = double('report', :exit_status => 666)
|
404
425
|
allow(@transaction).to receive(:report).and_return(report)
|
405
426
|
|
406
|
-
expect { @apply.
|
427
|
+
expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
|
407
428
|
end
|
408
429
|
end
|
409
430
|
end
|
@@ -503,16 +524,15 @@ describe Puppet::Application::Apply do
|
|
503
524
|
}
|
504
525
|
CODE
|
505
526
|
|
506
|
-
|
507
|
-
|
527
|
+
Puppet.settings[:write_catalog_summary] = true
|
508
528
|
Puppet.settings[:resourcefile] = resourcefile
|
509
529
|
Puppet.settings[:classfile] = classfile
|
510
530
|
|
511
531
|
#We don't actually need the resource to do anything, we are using it's properties in other parts of the workflow.
|
512
|
-
|
513
|
-
|
514
|
-
expect { @apply.main }.to exit_with 0
|
532
|
+
allow_any_instance_of(Puppet::Type.type(:exec).defaultprovider).to receive(:which).and_return('cat')
|
533
|
+
allow(Puppet::Util::Execution).to receive(:execute).and_return(double(exitstatus: 0, output: ''))
|
515
534
|
|
535
|
+
expect { @apply.run }.to exit_with(0).and output(%r{Exec\[do it\]/returns: executed successfully}).to_stdout
|
516
536
|
result = File.read(resourcefile)
|
517
537
|
|
518
538
|
expect(result).not_to match(/secret_file_name/)
|
@@ -129,6 +129,35 @@ describe Puppet::Application::Resource do
|
|
129
129
|
end
|
130
130
|
|
131
131
|
describe "when printing output" do
|
132
|
+
it "should not emit puppet class tags when printing yaml" do
|
133
|
+
Puppet::Type.newtype(:stringify) do
|
134
|
+
ensurable
|
135
|
+
newparam(:name, isnamevar: true)
|
136
|
+
newproperty(:string)
|
137
|
+
end
|
138
|
+
|
139
|
+
Puppet::Type.type(:stringify).provide(:stringify) do
|
140
|
+
def exists?
|
141
|
+
true
|
142
|
+
end
|
143
|
+
|
144
|
+
def string
|
145
|
+
Puppet::Util::Execution::ProcessOutput.new('test', 0)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
@resource_app.options[:to_yaml] = true
|
150
|
+
allow(@resource_app.command_line).to receive(:args).and_return(['stringify', 'hello', 'ensure=present', 'string=asd'])
|
151
|
+
expect(@resource_app).to receive(:puts).with(<<~YAML)
|
152
|
+
---
|
153
|
+
stringify:
|
154
|
+
hello:
|
155
|
+
ensure: present
|
156
|
+
string: test
|
157
|
+
YAML
|
158
|
+
expect { @resource_app.main }.not_to raise_error
|
159
|
+
end
|
160
|
+
|
132
161
|
it "should ensure all values to be printed are in the external encoding" do
|
133
162
|
resources = [
|
134
163
|
Puppet::Type.type(:user).new(:name => "\u2603".force_encoding(Encoding::UTF_8)).to_resource,
|