puppet 6.21.1-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/CONTRIBUTING.md +5 -5
- data/Gemfile +3 -3
- data/Gemfile.lock +34 -28
- 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/osx/puppet.plist +2 -0
- data/ext/project_data.yaml +3 -2
- data/lib/puppet/application/agent.rb +16 -5
- data/lib/puppet/application/apply.rb +22 -3
- data/lib/puppet/application/device.rb +2 -1
- data/lib/puppet/application/filebucket.rb +1 -0
- data/lib/puppet/application/resource.rb +32 -16
- data/lib/puppet/application/script.rb +2 -1
- data/lib/puppet/application/ssl.rb +12 -0
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer/downloader.rb +2 -1
- data/lib/puppet/configurer.rb +85 -57
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +63 -35
- data/lib/puppet/environments.rb +91 -26
- data/lib/puppet/face/facts.rb +129 -31
- 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 +11 -0
- 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/fileset.rb +14 -2
- 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/memory_file.rb +8 -1
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/forge.rb +4 -4
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/empty.rb +8 -0
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +13 -5
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +12 -4
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +1 -0
- data/lib/puppet/functions/tree_each.rb +7 -9
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +17 -2
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/http/resolver/server_list.rb +15 -4
- data/lib/puppet/http/service/compiler.rb +75 -1
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/indirector/catalog/compiler.rb +25 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +28 -7
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- 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.rb +1 -0
- 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/network/formats.rb +67 -0
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/factory.rb +4 -0
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
- 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/p_sem_ver_type.rb +8 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
- data/lib/puppet/pops/types/type_formatter.rb +4 -3
- 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/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +11 -6
- data/lib/puppet/provider/package/pip.rb +15 -3
- 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/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 +16 -6
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/service/windows.rb +38 -0
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +26 -13
- data/lib/puppet/provider/user/useradd.rb +73 -17
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/configuration.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/environment_conf.rb +1 -0
- data/lib/puppet/settings.rb +32 -9
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -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/selcontext.rb +1 -1
- data/lib/puppet/type/file.rb +25 -7
- 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 +26 -41
- data/lib/puppet/type/tidy.rb +22 -3
- data/lib/puppet/type/user.rb +38 -21
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/fact_dif.rb +36 -17
- 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 +7 -0
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/selinux.rb +30 -4
- 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/adsi.rb +46 -0
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +9 -2
- data/lib/puppet/util/windows/sid.rb +6 -2
- 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 +5 -9
- data/locales/puppet.pot +506 -410
- data/man/man5/puppet.conf.5 +310 -274
- 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 +65 -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-key.8 +7 -7
- 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 +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 +5 -1
- data/man/man8/puppet-status.8 +4 -4
- 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 +107 -57
- data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
- data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
- data/spec/fixtures/ssl/ca.pem +57 -35
- data/spec/fixtures/ssl/crl.pem +28 -18
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +33 -24
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +108 -58
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
- data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
- data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
- data/spec/fixtures/ssl/intermediate.pem +57 -36
- data/spec/fixtures/ssl/oid-key.pem +117 -0
- data/spec/fixtures/ssl/oid.pem +69 -0
- data/spec/fixtures/ssl/pluto-key.pem +107 -57
- data/spec/fixtures/ssl/pluto.pem +52 -30
- data/spec/fixtures/ssl/request-key.pem +107 -57
- data/spec/fixtures/ssl/request.pem +47 -26
- data/spec/fixtures/ssl/revoked-key.pem +107 -57
- data/spec/fixtures/ssl/revoked.pem +52 -30
- data/spec/fixtures/ssl/signed-key.pem +107 -57
- data/spec/fixtures/ssl/signed.pem +52 -30
- data/spec/fixtures/ssl/tampered-cert.pem +52 -30
- data/spec/fixtures/ssl/tampered-csr.pem +47 -26
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
- data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
- data/spec/fixtures/ssl/unknown-ca.pem +55 -33
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
- data/spec/integration/application/agent_spec.rb +113 -37
- data/spec/integration/application/filebucket_spec.rb +16 -0
- data/spec/integration/application/module_spec.rb +21 -0
- data/spec/integration/application/plugin_spec.rb +1 -1
- data/spec/integration/application/resource_spec.rb +64 -0
- data/spec/integration/application/ssl_spec.rb +20 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
- data/spec/integration/http/client_spec.rb +12 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -3
- 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/adsi_spec.rb +18 -0
- data/spec/integration/util/windows/principal_spec.rb +21 -0
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/integration/util/windows/registry_spec.rb +6 -0
- data/spec/lib/puppet/test_ca.rb +7 -2
- 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 +12 -11
- data/spec/unit/application/agent_spec.rb +7 -2
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/facts_spec.rb +482 -3
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/application/ssl_spec.rb +23 -0
- data/spec/unit/configurer/downloader_spec.rb +6 -0
- data/spec/unit/configurer_spec.rb +194 -56
- data/spec/unit/defaults_spec.rb +17 -0
- data/spec/unit/environments_spec.rb +348 -88
- data/spec/unit/face/facts_spec.rb +4 -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 +14 -4
- data/spec/unit/file_serving/fileset_spec.rb +60 -0
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +22 -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 +64 -0
- data/spec/unit/functions/unwrap_spec.rb +8 -0
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +12 -0
- data/spec/unit/http/service/compiler_spec.rb +131 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +101 -10
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/facts/facter_spec.rb +95 -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 +15 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +51 -12
- data/spec/unit/network/authstore_spec.rb +0 -15
- data/spec/unit/network/formats_spec.rb +47 -0
- data/spec/unit/network/http/factory_spec.rb +19 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
- data/spec/unit/parser/templatewrapper_spec.rb +12 -2
- 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/p_sem_ver_type_spec.rb +18 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +10 -1
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/nim_spec.rb +42 -0
- 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 +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/parsedfile_spec.rb +10 -0
- data/spec/unit/provider/service/init_spec.rb +1 -0
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/openwrt_spec.rb +3 -1
- data/spec/unit/provider/service/systemd_spec.rb +54 -9
- data/spec/unit/provider/service/windows_spec.rb +202 -0
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
- data/spec/unit/provider/user/useradd_spec.rb +61 -5
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/settings_spec.rb +97 -56
- data/spec/unit/ssl/certificate_request_spec.rb +8 -14
- data/spec/unit/ssl/state_machine_spec.rb +19 -5
- data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
- data/spec/unit/transaction_spec.rb +18 -20
- data/spec/unit/type/exec_spec.rb +76 -29
- data/spec/unit/type/file/selinux_spec.rb +3 -3
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/service_spec.rb +86 -188
- data/spec/unit/type/tidy_spec.rb +24 -7
- data/spec/unit/type/user_spec.rb +45 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/spec/unit/util/selinux_spec.rb +87 -16
- data/spec/unit/util/windows/sid_spec.rb +41 -0
- data/tasks/generate_cert_fixtures.rake +12 -3
- data/tasks/parallel.rake +3 -3
- metadata +59 -101
- 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/lib/matchers/include.rb +0 -27
- data/spec/lib/matchers/include_spec.rb +0 -32
- data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -1,15 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'puppet/environments'
|
3
3
|
require 'puppet/file_system'
|
4
|
-
require 'matchers/include'
|
5
|
-
require 'matchers/include_in_order'
|
6
4
|
|
7
|
-
module PuppetEnvironments
|
8
5
|
describe Puppet::Environments do
|
9
|
-
include Matchers::Include
|
10
|
-
|
11
6
|
FS = Puppet::FileSystem
|
12
7
|
|
8
|
+
module FsRemove
|
9
|
+
def remove
|
10
|
+
@properties[:directory?] = false
|
11
|
+
@properties[:exist?] = false
|
12
|
+
@properties[:executable?] = false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
13
16
|
before(:each) do
|
14
17
|
Puppet.settings.initialize_global_settings
|
15
18
|
Puppet[:environment_timeout] = "unlimited"
|
@@ -49,7 +52,7 @@ describe Puppet::Environments do
|
|
49
52
|
loader_from(:filesystem => [directory_tree, global_path_1, global_path_2],
|
50
53
|
:directory => directory_tree.children.first,
|
51
54
|
:modulepath => [global_path_1_location, global_path_2_location]) do |loader|
|
52
|
-
expect(loader.list).to
|
55
|
+
expect(loader.list).to contain_exactly(
|
53
56
|
environment(:an_environment).
|
54
57
|
with_manifest("#{FS.path_string(directory_tree)}/envdir/an_environment/manifests").
|
55
58
|
with_modulepath(["#{FS.path_string(directory_tree)}/envdir/an_environment/modules",
|
@@ -87,7 +90,7 @@ describe Puppet::Environments do
|
|
87
90
|
|
88
91
|
loader_from(:filesystem => [envdir],
|
89
92
|
:directory => envdir) do |loader|
|
90
|
-
expect(loader.list).to
|
93
|
+
expect(loader.list).to contain_exactly(environment(:env1), environment(:env2))
|
91
94
|
end
|
92
95
|
end
|
93
96
|
|
@@ -136,6 +139,14 @@ describe Puppet::Environments do
|
|
136
139
|
end
|
137
140
|
end
|
138
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
|
+
|
139
150
|
context "with an environment.conf" do
|
140
151
|
let(:envdir) do
|
141
152
|
FS::MemoryFile.a_directory(File.expand_path("envdir"), [
|
@@ -406,33 +417,29 @@ config_version=$vardir/random/scripts
|
|
406
417
|
]),
|
407
418
|
])
|
408
419
|
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
EOF
|
422
|
-
]),
|
423
|
-
])
|
420
|
+
cached_loader_from(:filesystem => [original_envdir], :directory => original_envdir) do |loader|
|
421
|
+
original_env = loader.get("env3") # force the environment.conf to be read
|
422
|
+
|
423
|
+
changed_envdir = FS::MemoryFile.a_directory(base_dir, [
|
424
|
+
FS::MemoryFile.a_directory("env3", [
|
425
|
+
FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
|
426
|
+
manifest=/manifest_changed
|
427
|
+
modulepath=/modules_changed
|
428
|
+
environment_timeout=0
|
429
|
+
EOF
|
430
|
+
]),
|
431
|
+
])
|
424
432
|
|
425
|
-
|
426
|
-
|
433
|
+
FS.overlay(changed_envdir) do
|
434
|
+
changed_env = loader.get("env3")
|
427
435
|
|
428
|
-
|
429
|
-
|
430
|
-
|
436
|
+
expect(original_env).to environment(:env3).
|
437
|
+
with_manifest(File.expand_path("/manifest_orig")).
|
438
|
+
with_full_modulepath([File.expand_path("/modules_orig")])
|
431
439
|
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
end
|
440
|
+
expect(changed_env).to environment(:env3).
|
441
|
+
with_manifest(File.expand_path("/manifest_changed")).
|
442
|
+
with_full_modulepath([File.expand_path("/modules_changed")])
|
436
443
|
end
|
437
444
|
end
|
438
445
|
end
|
@@ -558,24 +565,49 @@ config_version=$vardir/random/scripts
|
|
558
565
|
|
559
566
|
describe "cached loaders" do
|
560
567
|
it "lists environments" do
|
561
|
-
|
562
|
-
expect(
|
568
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
569
|
+
expect(loader.list).to contain_exactly(
|
563
570
|
environment(:an_environment),
|
564
571
|
environment(:another_environment),
|
565
572
|
environment(:symlinked_environment))
|
566
573
|
end
|
567
574
|
end
|
568
575
|
|
576
|
+
it "returns the same cached environment object for list and get methods" do
|
577
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
578
|
+
env = loader.list.find { |e| e.name == :an_environment }
|
579
|
+
|
580
|
+
expect(env).to equal(loader.get(:an_environment)) # same object
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
it "returns the same cached environment object for multiple list calls" do
|
585
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
586
|
+
expect(loader.list.first).to equal(loader.list.first) # same object
|
587
|
+
end
|
588
|
+
end
|
589
|
+
|
590
|
+
it "expires environments and returns a new environment object with the same value" do
|
591
|
+
Puppet[:environment_timeout] = "0"
|
592
|
+
|
593
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
594
|
+
a = loader.list.first
|
595
|
+
b = loader.list.first
|
596
|
+
expect(a).to eq(b) # same value
|
597
|
+
expect(a).to_not equal(b) # not same object
|
598
|
+
end
|
599
|
+
end
|
600
|
+
|
569
601
|
it "has search_paths" do
|
570
|
-
|
571
|
-
expect(
|
602
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
603
|
+
expect(loader.search_paths).to eq(["file://#{directory_tree.children.first}"])
|
572
604
|
end
|
573
605
|
end
|
574
606
|
|
575
607
|
context "#get" do
|
576
608
|
it "gets an environment" do
|
577
|
-
|
578
|
-
expect(
|
609
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
610
|
+
expect(loader.get(:an_environment)).to environment(:an_environment)
|
579
611
|
end
|
580
612
|
end
|
581
613
|
|
@@ -591,17 +623,89 @@ config_version=$vardir/random/scripts
|
|
591
623
|
cached.get(:cached)
|
592
624
|
end
|
593
625
|
|
626
|
+
it "does not list deleted environments" do
|
627
|
+
env3 = FS::MemoryFile.a_directory("env3", [
|
628
|
+
FS::MemoryFile.a_regular_file_containing("environment.conf", '')
|
629
|
+
])
|
630
|
+
|
631
|
+
envdir = FS::MemoryFile.a_directory(File.expand_path("envdir"), [
|
632
|
+
FS::MemoryFile.a_directory("env1", [
|
633
|
+
FS::MemoryFile.a_regular_file_containing("environment.conf", '')
|
634
|
+
]),
|
635
|
+
FS::MemoryFile.a_directory("env2", [
|
636
|
+
FS::MemoryFile.a_regular_file_containing("environment.conf", '')
|
637
|
+
]),
|
638
|
+
env3
|
639
|
+
])
|
640
|
+
|
641
|
+
loader_from(:filesystem => [envdir], :directory => envdir) do |loader|
|
642
|
+
cached = Puppet::Environments::Cached.new(loader)
|
643
|
+
cached.get(:env1)
|
644
|
+
cached.get(:env2)
|
645
|
+
cached.get(:env3)
|
646
|
+
env3.extend(FsRemove).remove
|
647
|
+
|
648
|
+
expect(cached.list).to contain_exactly(environment(:env1),environment(:env2))
|
649
|
+
expect(cached.get(:env3)).to be_nil
|
650
|
+
end
|
651
|
+
end
|
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
|
+
|
594
698
|
it "returns nil if env not found" do
|
595
|
-
|
596
|
-
expect(
|
699
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
700
|
+
expect(loader.get(:doesnotexist)).to be_nil
|
597
701
|
end
|
598
702
|
end
|
599
703
|
end
|
600
704
|
|
601
705
|
context "#get!" do
|
602
706
|
it "gets an environment" do
|
603
|
-
|
604
|
-
expect(
|
707
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
708
|
+
expect(loader.get!(:an_environment)).to environment(:an_environment)
|
605
709
|
end
|
606
710
|
end
|
607
711
|
|
@@ -618,14 +722,52 @@ config_version=$vardir/random/scripts
|
|
618
722
|
end
|
619
723
|
|
620
724
|
it "raises error if environment is not found" do
|
621
|
-
|
725
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
622
726
|
expect do
|
623
|
-
|
727
|
+
loader.get!(:doesnotexist)
|
624
728
|
end.to raise_error(Puppet::Environments::EnvironmentNotFound)
|
625
729
|
end
|
626
730
|
end
|
627
731
|
end
|
628
732
|
|
733
|
+
context "#get_conf" do
|
734
|
+
it "loads environment.conf" do
|
735
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
736
|
+
expect(loader.get_conf(:an_environment)).to match_environment_conf(:an_environment).
|
737
|
+
with_env_path(directory_tree.children.first).
|
738
|
+
with_global_module_path([])
|
739
|
+
end
|
740
|
+
end
|
741
|
+
|
742
|
+
it "always reloads environment.conf" do
|
743
|
+
env = Puppet::Node::Environment.create(:cached, [])
|
744
|
+
mocked_loader = double('loader')
|
745
|
+
expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).twice
|
746
|
+
|
747
|
+
cached = Puppet::Environments::Cached.new(mocked_loader)
|
748
|
+
|
749
|
+
cached.get_conf(:cached)
|
750
|
+
cached.get_conf(:cached)
|
751
|
+
end
|
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
|
+
|
764
|
+
it "returns nil if environment is not found" do
|
765
|
+
cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
|
766
|
+
expect(loader.get_conf(:doesnotexist)).to be_nil
|
767
|
+
end
|
768
|
+
end
|
769
|
+
end
|
770
|
+
|
629
771
|
context "expiration policies" do
|
630
772
|
let(:service) { ReplayExpirationService.new }
|
631
773
|
|
@@ -647,8 +789,6 @@ config_version=$vardir/random/scripts
|
|
647
789
|
end
|
648
790
|
|
649
791
|
it "evicts an expired environment" do
|
650
|
-
service = ReplayExpirationService.new
|
651
|
-
|
652
792
|
expect(service).to receive(:expired?).and_return(true)
|
653
793
|
|
654
794
|
with_environment_loaded(service) do |cached|
|
@@ -703,13 +843,92 @@ config_version=$vardir/random/scripts
|
|
703
843
|
expect(service.created_envs).to eq([:an_environment, :an_environment])
|
704
844
|
expect(service.evicted_envs).to eq([:an_environment])
|
705
845
|
end
|
706
|
-
end
|
707
846
|
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
847
|
+
it "evicts expired environments when listing" do
|
848
|
+
expect(service).to receive(:expired?).with(:an_environment).and_return(true)
|
849
|
+
|
850
|
+
with_environment_loaded(service) do |cached|
|
851
|
+
cached.list
|
852
|
+
end
|
853
|
+
|
854
|
+
expect(service.evicted_envs).to eq([:an_environment])
|
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
|
713
932
|
end
|
714
933
|
end
|
715
934
|
|
@@ -723,10 +942,42 @@ config_version=$vardir/random/scripts
|
|
723
942
|
|
724
943
|
expect(service.evicted_envs).to eq([:an_environment])
|
725
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
|
726
953
|
end
|
727
954
|
|
728
955
|
context '#clear_all' do
|
729
956
|
let(:service) { ReplayExpirationService.new }
|
957
|
+
let(:envdir) { File.expand_path("envdir") }
|
958
|
+
let(:default_dir) { File.join(envdir, "cached_env", "modules") }
|
959
|
+
let(:expected_dir) { File.join(envdir, "cached_env", "site") }
|
960
|
+
|
961
|
+
let(:base_dir) do
|
962
|
+
FS::MemoryFile.a_directory(envdir, [
|
963
|
+
FS::MemoryFile.a_directory("cached_env", [
|
964
|
+
FS::MemoryFile.a_missing_file("environment.conf")
|
965
|
+
])
|
966
|
+
])
|
967
|
+
end
|
968
|
+
|
969
|
+
let(:updated_dir) do
|
970
|
+
FS::MemoryFile.a_directory(envdir, [
|
971
|
+
FS::MemoryFile.a_directory("cached_env", [
|
972
|
+
FS::MemoryFile.a_directory("site"),
|
973
|
+
FS::MemoryFile.a_missing_directory("modules"),
|
974
|
+
FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
|
975
|
+
modulepath=site
|
976
|
+
environment_timeout=unlimited
|
977
|
+
EOF
|
978
|
+
])
|
979
|
+
])
|
980
|
+
end
|
730
981
|
|
731
982
|
it 'evicts all environments' do
|
732
983
|
with_environment_loaded(service) do |cached|
|
@@ -738,48 +989,44 @@ config_version=$vardir/random/scripts
|
|
738
989
|
end
|
739
990
|
end
|
740
991
|
|
741
|
-
it '
|
742
|
-
base_dir
|
743
|
-
|
744
|
-
FS::MemoryFile.a_directory("env3", [
|
745
|
-
FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
|
746
|
-
manifest=/manifest_orig
|
747
|
-
modulepath=/modules_orig
|
748
|
-
environment_timeout=60
|
749
|
-
EOF
|
750
|
-
]),
|
751
|
-
])
|
992
|
+
it "recomputes modulepath if 'get' is called before 'clear_all'" do
|
993
|
+
cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
|
994
|
+
loader.get(:cached_env)
|
752
995
|
|
753
|
-
|
754
|
-
dir_loader = Puppet::Environments::Directories.new(original_envdir, [])
|
755
|
-
loader = Puppet::Environments::Cached.new(dir_loader)
|
756
|
-
Puppet.override(:environments => loader) do
|
757
|
-
original_env = loader.get("env3") # force the environment.conf to be read
|
758
|
-
|
759
|
-
changed_envdir = FS::MemoryFile.a_directory(base_dir, [
|
760
|
-
FS::MemoryFile.a_directory("env3", [
|
761
|
-
FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
|
762
|
-
manifest=/manifest_changed
|
763
|
-
modulepath=/modules_changed
|
764
|
-
environment_timeout=60
|
765
|
-
EOF
|
766
|
-
]),
|
767
|
-
])
|
996
|
+
expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
|
768
997
|
|
769
|
-
|
998
|
+
FS.overlay(updated_dir) do
|
770
999
|
loader.clear_all
|
771
1000
|
|
772
|
-
|
773
|
-
|
1001
|
+
expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
|
1002
|
+
end
|
1003
|
+
end
|
1004
|
+
end
|
774
1005
|
|
775
|
-
|
776
|
-
|
777
|
-
|
1006
|
+
it "recomputes modulepath if 'list' is called before 'clear_all'" do
|
1007
|
+
cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
|
1008
|
+
loader.list
|
778
1009
|
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
1010
|
+
expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
|
1011
|
+
|
1012
|
+
FS.overlay(updated_dir) do
|
1013
|
+
loader.clear_all
|
1014
|
+
|
1015
|
+
expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
|
1016
|
+
end
|
1017
|
+
end
|
1018
|
+
end
|
1019
|
+
|
1020
|
+
it "recomputes modulepath if 'get_conf' is called before 'clear_all'" do
|
1021
|
+
cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
|
1022
|
+
loader.get_conf(:cached_env)
|
1023
|
+
|
1024
|
+
expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
|
1025
|
+
|
1026
|
+
FS.overlay(updated_dir) do
|
1027
|
+
loader.clear_all
|
1028
|
+
|
1029
|
+
expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
|
783
1030
|
end
|
784
1031
|
end
|
785
1032
|
end
|
@@ -865,6 +1112,20 @@ config_version=$vardir/random/scripts
|
|
865
1112
|
end
|
866
1113
|
end
|
867
1114
|
|
1115
|
+
def cached_loader_from(options, &block)
|
1116
|
+
FS.overlay(*options[:filesystem]) do
|
1117
|
+
environments = Puppet::Environments::Cached.new(
|
1118
|
+
Puppet::Environments::Directories.new(
|
1119
|
+
options[:directory],
|
1120
|
+
options[:modulepath] || []
|
1121
|
+
)
|
1122
|
+
)
|
1123
|
+
Puppet.override(:environments => environments) do
|
1124
|
+
yield environments
|
1125
|
+
end
|
1126
|
+
end
|
1127
|
+
end
|
1128
|
+
|
868
1129
|
def loader_from(options, &block)
|
869
1130
|
FS.overlay(*options[:filesystem]) do
|
870
1131
|
environments = Puppet::Environments::Directories.new(
|
@@ -917,4 +1178,3 @@ config_version=$vardir/random/scripts
|
|
917
1178
|
end
|
918
1179
|
end
|
919
1180
|
end
|
920
|
-
end
|
@@ -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
|
|