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
@@ -7,70 +7,95 @@ describe Puppet::Type.type(:exec), unless: Puppet::Util::Platform.jruby? do
|
|
7
7
|
|
8
8
|
let(:catalog) { Puppet::Resource::Catalog.new }
|
9
9
|
let(:path) { tmpfile('exec_provider') }
|
10
|
-
let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }
|
11
10
|
|
12
11
|
before :each do
|
13
12
|
catalog.host_config = false
|
14
13
|
end
|
15
14
|
|
16
|
-
|
17
|
-
|
15
|
+
shared_examples_for 'a valid exec resource' do
|
16
|
+
it "should execute the command" do
|
17
|
+
exec = described_class.new :command => command, :path => ENV['PATH']
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
catalog.add_resource exec
|
20
|
+
catalog.apply
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
expect(File.read(path)).to eq('foo')
|
23
|
+
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
it "should not execute the command if onlyif returns non-zero" do
|
26
|
+
exec = described_class.new(
|
27
|
+
:command => command,
|
28
|
+
:onlyif => "ruby -e 'exit 44'",
|
29
|
+
:path => ENV['PATH']
|
30
|
+
)
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
catalog.add_resource exec
|
33
|
+
catalog.apply
|
34
34
|
|
35
|
-
|
36
|
-
|
35
|
+
expect(Puppet::FileSystem.exist?(path)).to be_falsey
|
36
|
+
end
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
it "should execute the command if onlyif returns zero" do
|
39
|
+
exec = described_class.new(
|
40
|
+
:command => command,
|
41
|
+
:onlyif => "ruby -e 'exit 0'",
|
42
|
+
:path => ENV['PATH']
|
43
|
+
)
|
44
44
|
|
45
|
-
|
46
|
-
|
45
|
+
catalog.add_resource exec
|
46
|
+
catalog.apply
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
expect(File.read(path)).to eq('foo')
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should execute the command if unless returns non-zero" do
|
52
|
+
exec = described_class.new(
|
53
|
+
:command => command,
|
54
|
+
:unless => "ruby -e 'exit 45'",
|
55
|
+
:path => ENV['PATH']
|
56
|
+
)
|
57
|
+
|
58
|
+
catalog.add_resource exec
|
59
|
+
catalog.apply
|
60
|
+
|
61
|
+
expect(File.read(path)).to eq('foo')
|
62
|
+
end
|
50
63
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
64
|
+
it "should not execute the command if unless returns zero" do
|
65
|
+
exec = described_class.new(
|
66
|
+
:command => command,
|
67
|
+
:unless => "ruby -e 'exit 0'",
|
68
|
+
:path => ENV['PATH']
|
69
|
+
)
|
57
70
|
|
58
|
-
|
59
|
-
|
71
|
+
catalog.add_resource exec
|
72
|
+
catalog.apply
|
60
73
|
|
61
|
-
|
74
|
+
expect(Puppet::FileSystem.exist?(path)).to be_falsey
|
75
|
+
end
|
62
76
|
end
|
63
77
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
78
|
+
context 'when command is a string' do
|
79
|
+
let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }
|
80
|
+
|
81
|
+
it_behaves_like 'a valid exec resource'
|
82
|
+
end
|
83
|
+
|
84
|
+
context 'when command is an array' do
|
85
|
+
let(:command) { ['ruby', '-e', "File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }"] }
|
86
|
+
|
87
|
+
it_behaves_like 'a valid exec resource'
|
88
|
+
|
89
|
+
context 'when is invalid' do
|
90
|
+
let(:command) { [ "ruby -e 'puts 1'" ] }
|
70
91
|
|
71
|
-
|
72
|
-
|
92
|
+
it 'logs error' do
|
93
|
+
exec = described_class.new :command => command, :path => ENV['PATH']
|
94
|
+
catalog.add_resource exec
|
95
|
+
logs = catalog.apply.report.logs
|
73
96
|
|
74
|
-
|
97
|
+
expect(logs[0].message).to eql("Could not find command 'ruby -e 'puts 1''")
|
98
|
+
end
|
99
|
+
end
|
75
100
|
end
|
76
101
|
end
|
@@ -1709,11 +1709,11 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
1709
1709
|
|
1710
1710
|
describe "when using validate_cmd" do
|
1711
1711
|
test_cmd = '/bin/test'
|
1712
|
-
if
|
1712
|
+
if Puppet.runtime[:facter].value(:osfamily) == 'Debian'
|
1713
1713
|
test_cmd = '/usr/bin/test'
|
1714
1714
|
end
|
1715
1715
|
|
1716
|
-
if
|
1716
|
+
if Puppet.runtime[:facter].value(:operatingsystem) == 'Darwin'
|
1717
1717
|
stat_cmd = "stat -f '%Lp'"
|
1718
1718
|
else
|
1719
1719
|
stat_cmd = "stat --format=%a"
|
@@ -9,7 +9,7 @@ describe Puppet::Type.type(:package), "when choosing a default package provider"
|
|
9
9
|
def provider_name(os)
|
10
10
|
case os
|
11
11
|
when 'Solaris'
|
12
|
-
if Puppet::Util::Package.versioncmp(
|
12
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:kernelrelease), '5.11') >= 0
|
13
13
|
:pkg
|
14
14
|
else
|
15
15
|
:sun
|
@@ -21,19 +21,19 @@ describe Puppet::Type.type(:package), "when choosing a default package provider"
|
|
21
21
|
when 'Darwin'
|
22
22
|
:pkgdmg
|
23
23
|
when 'RedHat'
|
24
|
-
if ['2.1', '3', '4'].include?(
|
24
|
+
if ['2.1', '3', '4'].include?(Puppet.runtime[:facter].value(:lsbdistrelease))
|
25
25
|
:up2date
|
26
26
|
else
|
27
27
|
:yum
|
28
28
|
end
|
29
29
|
when 'Fedora'
|
30
|
-
if Puppet::Util::Package.versioncmp(
|
30
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemmajrelease), '22') >= 0
|
31
31
|
:dnf
|
32
32
|
else
|
33
33
|
:yum
|
34
34
|
end
|
35
35
|
when 'Suse'
|
36
|
-
if Puppet::Util::Package.versioncmp(
|
36
|
+
if Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemmajrelease), '10') >= 0
|
37
37
|
:zypper
|
38
38
|
else
|
39
39
|
:rug
|
@@ -54,8 +54,8 @@ describe Puppet::Type.type(:package), "when choosing a default package provider"
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should choose the correct provider each platform" do
|
57
|
-
unless default_provider = provider_name(
|
58
|
-
pending("No default provider specified in this test for #{
|
57
|
+
unless default_provider = provider_name(Puppet.runtime[:facter].value(:operatingsystem))
|
58
|
+
pending("No default provider specified in this test for #{Puppet.runtime[:facter].value(:operatingsystem)}")
|
59
59
|
end
|
60
60
|
expect(Puppet::Type.type(:package).defaultprovider.name).to eq(default_provider)
|
61
61
|
end
|
@@ -55,6 +55,24 @@ describe Puppet::Util::Windows::ADSI::User,
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
describe '.current_user_name_with_format' do
|
60
|
+
context 'when desired format is NameSamCompatible' do
|
61
|
+
it 'should get the same user name as the current_user_name method but fully qualified' do
|
62
|
+
user_name = Puppet::Util::Windows::ADSI::User.current_user_name
|
63
|
+
fully_qualified_user_name = Puppet::Util::Windows::ADSI::User.current_sam_compatible_user_name
|
64
|
+
|
65
|
+
expect(fully_qualified_user_name).to match(/^.+\\#{user_name}$/)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should have the same SID as with the current_user_name method' do
|
69
|
+
user_name = Puppet::Util::Windows::ADSI::User.current_user_name
|
70
|
+
fully_qualified_user_name = Puppet::Util::Windows::ADSI::User.current_sam_compatible_user_name
|
71
|
+
|
72
|
+
expect(Puppet::Util::Windows::SID.name_to_sid(user_name)).to eq(Puppet::Util::Windows::SID.name_to_sid(fully_qualified_user_name))
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
58
76
|
end
|
59
77
|
|
60
78
|
describe Puppet::Util::Windows::ADSI::Group,
|
@@ -7,6 +7,7 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet::Util::Platform.wi
|
|
7
7
|
let (:system_bytes) { [1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0] }
|
8
8
|
let (:null_sid_bytes) { [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
|
9
9
|
let (:administrator_bytes) { [1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 32, 2, 0, 0] }
|
10
|
+
let (:all_application_packages_bytes) { [1, 2, 0, 0, 0, 0, 0, 15, 2, 0, 0, 0, 1, 0, 0, 0] }
|
10
11
|
let (:computer_sid) { Puppet::Util::Windows::SID.name_to_principal(Puppet::Util::Windows::ADSI.computer_name) }
|
11
12
|
# BUILTIN is localized on German Windows, but not French
|
12
13
|
# looking this up like this dilutes the values of the tests as we're comparing two mechanisms
|
@@ -121,6 +122,26 @@ describe Puppet::Util::Windows::SID::Principal, :if => Puppet::Util::Platform.wi
|
|
121
122
|
expect(principal.to_s).to eq(builtin_localized)
|
122
123
|
end
|
123
124
|
|
125
|
+
it "should always sanitize the account name first" do
|
126
|
+
expect(Puppet::Util::Windows::SID::Principal).to receive(:sanitize_account_name).with('NT AUTHORITY\\SYSTEM').and_call_original
|
127
|
+
Puppet::Util::Windows::SID::Principal.lookup_account_name('NT AUTHORITY\\SYSTEM')
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should be able to create an instance from an account name prefixed by APPLICATION PACKAGE AUTHORITY" do
|
131
|
+
principal = Puppet::Util::Windows::SID::Principal.lookup_account_name('APPLICATION PACKAGE AUTHORITY\\ALL APPLICATION PACKAGES')
|
132
|
+
expect(principal.account).to eq('ALL APPLICATION PACKAGES')
|
133
|
+
expect(principal.sid_bytes).to eq(all_application_packages_bytes)
|
134
|
+
expect(principal.sid).to eq('S-1-15-2-1')
|
135
|
+
expect(principal.domain).to eq('APPLICATION PACKAGE AUTHORITY')
|
136
|
+
expect(principal.domain_account).to eq('APPLICATION PACKAGE AUTHORITY\\ALL APPLICATION PACKAGES')
|
137
|
+
expect(principal.account_type).to eq(:SidTypeWellKnownGroup)
|
138
|
+
expect(principal.to_s).to eq('APPLICATION PACKAGE AUTHORITY\\ALL APPLICATION PACKAGES')
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should fail without proper account name sanitization when it is prefixed by APPLICATION PACKAGE AUTHORITY" do
|
142
|
+
given_account_name = 'APPLICATION PACKAGE AUTHORITY\\ALL APPLICATION PACKAGES'
|
143
|
+
expect { Puppet::Util::Windows::SID::Principal.lookup_account_name(nil, false, given_account_name) }.to raise_error(Puppet::Util::Windows::Error, /No mapping between account names and security IDs was done./)
|
144
|
+
end
|
124
145
|
end
|
125
146
|
|
126
147
|
describe ".lookup_account_sid" do
|
@@ -1,22 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'facter'
|
3
2
|
|
4
3
|
describe "Puppet::Util::Windows::Process", :if => Puppet::Util::Platform.windows? do
|
5
4
|
describe "as an admin" do
|
6
|
-
it "should have the SeCreateSymbolicLinkPrivilege necessary to create symlinks
|
7
|
-
:if => Facter.value(:kernelmajversion).to_f >= 6.0 && Puppet::Util::Platform.windows? do
|
5
|
+
it "should have the SeCreateSymbolicLinkPrivilege necessary to create symlinks" do
|
8
6
|
# this is a bit of a lame duck test since it requires running user to be admin
|
9
7
|
# a better integration test would create a new user with the privilege and verify
|
10
8
|
expect(Puppet::Util::Windows::User).to be_admin
|
11
9
|
expect(Puppet::Util::Windows::Process.process_privilege_symlink?).to be_truthy
|
12
10
|
end
|
13
11
|
|
14
|
-
it "should not have the SeCreateSymbolicLinkPrivilege necessary to create symlinks on 2003 and earlier",
|
15
|
-
:if => Facter.value(:kernelmajversion).to_f < 6.0 && Puppet::Util::Platform.windows? do
|
16
|
-
expect(Puppet::Util::Windows::User).to be_admin
|
17
|
-
expect(Puppet::Util::Windows::Process.process_privilege_symlink?).to be_falsey
|
18
|
-
end
|
19
|
-
|
20
12
|
it "should be able to lookup a standard Windows process privilege" do
|
21
13
|
Puppet::Util::Windows::Process.lookup_privilege_value('SeShutdownPrivilege') do |luid|
|
22
14
|
expect(luid).not_to be_nil
|
@@ -263,6 +263,12 @@ describe Puppet::Util::Windows::Registry do
|
|
263
263
|
type: Win32::Registry::REG_EXPAND_SZ,
|
264
264
|
value: "\0\0\0reg expand string",
|
265
265
|
expected_value: ""
|
266
|
+
},
|
267
|
+
{
|
268
|
+
name: 'REG_EXPAND_SZ_2',
|
269
|
+
type: Win32::Registry::REG_EXPAND_SZ,
|
270
|
+
value: "1\x002\x003\x004\x00\x00\x00\x90\xD8UoY".force_encoding("UTF-16LE"),
|
271
|
+
expected_value: "1234"
|
266
272
|
}
|
267
273
|
].each do |pair|
|
268
274
|
it 'reads up to the first wide null' do
|
data/spec/lib/puppet/test_ca.rb
CHANGED
@@ -30,7 +30,7 @@ module Puppet
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def create_request(name)
|
33
|
-
key = OpenSSL::PKey::RSA.new(
|
33
|
+
key = OpenSSL::PKey::RSA.new(2048)
|
34
34
|
csr = OpenSSL::X509::Request.new
|
35
35
|
csr.public_key = key.public_key
|
36
36
|
csr.subject = OpenSSL::X509::Name.new([["CN", name]])
|
@@ -46,6 +46,11 @@ module Puppet
|
|
46
46
|
ext = ef.create_extension(["subjectAltName", opts[:subject_alt_names], false])
|
47
47
|
cert.add_extension(ext)
|
48
48
|
end
|
49
|
+
if exts = opts[:extensions]
|
50
|
+
exts.each do |e|
|
51
|
+
cert.add_extension(OpenSSL::X509::Extension.new(*e))
|
52
|
+
end
|
53
|
+
end
|
49
54
|
cert.sign(issuer_key, @digest)
|
50
55
|
{ private_key: key, cert: cert }
|
51
56
|
end
|
@@ -127,7 +132,7 @@ module Puppet
|
|
127
132
|
key = if opts[:key_type] == :ec
|
128
133
|
key = OpenSSL::PKey::EC.generate('prime256v1')
|
129
134
|
else
|
130
|
-
key = OpenSSL::PKey::RSA.new(
|
135
|
+
key = OpenSSL::PKey::RSA.new(2048)
|
131
136
|
end
|
132
137
|
cert = OpenSSL::X509::Certificate.new
|
133
138
|
cert.public_key = if key.is_a?(OpenSSL::PKey::EC)
|
@@ -36,7 +36,7 @@ module PuppetSpec::Modules
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
if plans = options[:plans]
|
39
|
+
if (plans = options[:plans])
|
40
40
|
plans_dir = File.join(module_dir, 'plans')
|
41
41
|
FileUtils.mkdir_p(plans_dir)
|
42
42
|
plans.each do |plan_file|
|
@@ -48,6 +48,17 @@ module PuppetSpec::Modules
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
if (scripts = options[:scripts])
|
52
|
+
scripts_dir = File.join(module_dir, 'scripts')
|
53
|
+
FileUtils.mkdir_p(scripts_dir)
|
54
|
+
scripts.each do |script_file|
|
55
|
+
if script_file.is_a?(String)
|
56
|
+
script_file = { :name => script_file, :content => "" }
|
57
|
+
end
|
58
|
+
File.write(File.join(scripts_dir, script_file[:name]), script_file[:content])
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
51
62
|
(options[:files] || {}).each do |fname, content|
|
52
63
|
path = File.join(module_dir, fname)
|
53
64
|
FileUtils.mkdir_p(File.dirname(path))
|
@@ -61,7 +72,7 @@ module PuppetSpec::Modules
|
|
61
72
|
module_dir = File.join(dir, name)
|
62
73
|
FileUtils.mkdir_p(module_dir)
|
63
74
|
|
64
|
-
if metadata = options[:metadata]
|
75
|
+
if (metadata = options[:metadata])
|
65
76
|
File.open(File.join(module_dir, 'metadata.json'), 'w') do |f|
|
66
77
|
f.write(metadata.to_json)
|
67
78
|
end
|
@@ -31,6 +31,19 @@ class PuppetSpec::Puppetserver
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
class FileMetadataServlet < WEBrick::HTTPServlet::AbstractServlet
|
35
|
+
def do_GET request, response
|
36
|
+
response['Content-Type'] = 'application/json'
|
37
|
+
response.body = "{\"path\":\"/etc/puppetlabs/code/environments/production/modules\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":0,\"group\":0,\"mode\":493,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-03-06 20:14:25 UTC\"},\"type\":\"directory\",\"destination\":null}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class FileContentServlet < WEBrick::HTTPServlet::AbstractServlet
|
42
|
+
def do_GET request, response
|
43
|
+
response.status = 404
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
34
47
|
class ReportServlet < WEBrick::HTTPServlet::AbstractServlet
|
35
48
|
def do_PUT request, response
|
36
49
|
response['Content-Type'] = 'application/json'
|
@@ -106,7 +119,9 @@ class PuppetSpec::Puppetserver
|
|
106
119
|
register_mount('/status/v1/simple/master', proc { |req, res| }, nil)
|
107
120
|
register_mount('/puppet/v3/node', mounts[:node], NodeServlet)
|
108
121
|
register_mount('/puppet/v3/catalog', mounts[:catalog], CatalogServlet)
|
122
|
+
register_mount('/puppet/v3/file_metadata', mounts[:file_metadata], FileMetadataServlet)
|
109
123
|
register_mount('/puppet/v3/file_metadatas', mounts[:file_metadatas], FileMetadatasServlet)
|
124
|
+
register_mount('/puppet/v3/file_content', mounts[:file_content], FileContentServlet)
|
110
125
|
register_mount('/puppet/v3/static_file_content', mounts[:static_file_content], StaticFileContentServlet)
|
111
126
|
register_mount('/puppet/v3/report', mounts[:report], ReportServlet)
|
112
127
|
register_mount('/puppet/v3/file_bucket_file', mounts[:filebucket], FilebucketServlet)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.shared_context('l10n') do |locale|
|
4
|
+
before :all do
|
5
|
+
@old_locale = Locale.current
|
6
|
+
Locale.current = locale
|
7
|
+
Puppet::GettextConfig.setup_locale
|
8
|
+
|
9
|
+
# overwrite stubs with real implementation
|
10
|
+
::Object.send(:remove_method, :_)
|
11
|
+
::Object.send(:remove_method, :n_)
|
12
|
+
class ::Object
|
13
|
+
include FastGettext::Translation
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
after :all do
|
18
|
+
Locale.current = @old_locale
|
19
|
+
|
20
|
+
# restore stubs
|
21
|
+
load File.expand_path(File.join(__dir__, '../../lib/puppet/gettext/stubs.rb'))
|
22
|
+
end
|
23
|
+
|
24
|
+
before :each do
|
25
|
+
Puppet[:disable_i18n] = false
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -68,16 +68,7 @@ VCR.turn_off!
|
|
68
68
|
RSpec.configure do |config|
|
69
69
|
include PuppetSpec::Fixtures
|
70
70
|
|
71
|
-
|
72
|
-
# For example;
|
73
|
-
#
|
74
|
-
# rbv = "#{RUBY_VERSION}-p#{RbConfig::CONFIG['PATCHLEVEL']}"
|
75
|
-
# describe "mostly working", :broken => false unless rbv == "1.9.3-p327" do
|
76
|
-
# it "parses a valid IP" do
|
77
|
-
# IPAddr.new("::2:3:4:5:6:7:8")
|
78
|
-
# end
|
79
|
-
# end
|
80
|
-
exclude_filters = {:broken => true}
|
71
|
+
exclude_filters = {}
|
81
72
|
exclude_filters[:benchmark] = true unless ENV['BENCHMARK']
|
82
73
|
config.filter_run_excluding exclude_filters
|
83
74
|
|
@@ -160,10 +151,20 @@ RSpec.configure do |config|
|
|
160
151
|
PUPPET_FACTER_2_GCE_URL = %r{^http://metadata/computeMetadata/v1(beta1)?}.freeze
|
161
152
|
PUPPET_FACTER_3_GCE_URL = "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json".freeze
|
162
153
|
|
154
|
+
# Facter azure metadata endpoint
|
155
|
+
PUPPET_FACTER_AZ_URL = "http://169.254.169.254/metadata/instance?api-version=2020-09-01"
|
156
|
+
|
157
|
+
# Facter EC2 endpoint
|
158
|
+
PUPPET_FACTER_EC2_METADATA_URL = 'http://169.254.169.254/latest/meta-data/'
|
159
|
+
PUPPET_FACTER_EC2_USERDATA_URL = 'http://169.254.169.254/latest/user-data/'
|
160
|
+
|
163
161
|
config.around :each do |example|
|
164
|
-
# Ignore requests from Facter
|
162
|
+
# Ignore requests from Facter to external services
|
165
163
|
stub_request(:get, PUPPET_FACTER_2_GCE_URL)
|
166
164
|
stub_request(:get, PUPPET_FACTER_3_GCE_URL)
|
165
|
+
stub_request(:get, PUPPET_FACTER_AZ_URL)
|
166
|
+
stub_request(:get, PUPPET_FACTER_EC2_METADATA_URL)
|
167
|
+
stub_request(:get, PUPPET_FACTER_EC2_USERDATA_URL)
|
167
168
|
|
168
169
|
# Enable VCR if the example is tagged with `:vcr` metadata.
|
169
170
|
if example.metadata[:vcr]
|
@@ -546,11 +546,16 @@ describe Puppet::Application::Agent do
|
|
546
546
|
@puppetd.options[:digest] = :MD5
|
547
547
|
end
|
548
548
|
|
549
|
+
def expected_fingerprint(name, x509)
|
550
|
+
digest = OpenSSL::Digest.new(name).hexdigest(x509.to_der)
|
551
|
+
digest.scan(/../).join(':').upcase
|
552
|
+
end
|
553
|
+
|
549
554
|
it "should fingerprint the certificate if it exists" do
|
550
555
|
cert = cert_fixture('signed.pem')
|
551
556
|
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(cert)
|
552
557
|
|
553
|
-
expect(@puppetd).to receive(:puts).with(
|
558
|
+
expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', cert)}")
|
554
559
|
|
555
560
|
@puppetd.fingerprint
|
556
561
|
end
|
@@ -560,7 +565,7 @@ describe Puppet::Application::Agent do
|
|
560
565
|
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(nil)
|
561
566
|
allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(request)
|
562
567
|
|
563
|
-
expect(@puppetd).to receive(:puts).with(
|
568
|
+
expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', request)}")
|
564
569
|
|
565
570
|
@puppetd.fingerprint
|
566
571
|
end
|