puppet 6.25.0-x64-mingw32 → 7.0.0-x64-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/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +3 -5
- data/Gemfile.lock +39 -51
- data/README.md +5 -5
- data/conf/fileserver.conf +5 -10
- data/ext/README.environment +8 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/dbfix.sql +132 -0
- data/ext/debian/README.Debian +8 -0
- data/ext/debian/README.source +2 -0
- data/ext/debian/TODO.Debian +1 -0
- data/ext/debian/changelog.erb +1122 -0
- data/ext/debian/compat +1 -0
- data/ext/debian/control +144 -0
- data/ext/debian/copyright +339 -0
- data/ext/debian/docs +1 -0
- data/ext/debian/fileserver.conf +41 -0
- data/ext/debian/puppet-common.dirs +13 -0
- data/ext/debian/puppet-common.install +3 -0
- data/ext/debian/puppet-common.lintian-overrides +5 -0
- data/ext/debian/puppet-common.manpages +28 -0
- data/ext/debian/puppet-common.postinst +35 -0
- data/ext/debian/puppet-common.postrm +33 -0
- data/ext/debian/puppet-el.dirs +1 -0
- data/ext/debian/puppet-el.emacsen-install +25 -0
- data/ext/debian/puppet-el.emacsen-remove +11 -0
- data/ext/debian/puppet-el.emacsen-startup +9 -0
- data/ext/debian/puppet-el.install +1 -0
- data/ext/debian/puppet-testsuite.install +2 -0
- data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
- data/ext/debian/puppet.lintian-overrides +3 -0
- data/ext/debian/puppet.logrotate +20 -0
- data/ext/debian/puppet.postinst +20 -0
- data/ext/debian/puppet.postrm +20 -0
- data/ext/debian/puppet.preinst +20 -0
- data/ext/debian/puppetmaster-common.install +2 -0
- data/ext/debian/puppetmaster-common.manpages +2 -0
- data/ext/debian/puppetmaster-common.postinst +6 -0
- data/ext/debian/puppetmaster-passenger.dirs +4 -0
- data/ext/debian/puppetmaster-passenger.postinst +162 -0
- data/ext/debian/puppetmaster-passenger.postrm +61 -0
- data/ext/debian/puppetmaster.README.debian +17 -0
- data/ext/debian/puppetmaster.default +14 -0
- data/ext/debian/puppetmaster.init +137 -0
- data/ext/debian/puppetmaster.lintian-overrides +3 -0
- data/ext/debian/puppetmaster.postinst +20 -0
- data/ext/debian/puppetmaster.postrm +5 -0
- data/ext/debian/puppetmaster.preinst +22 -0
- data/ext/debian/rules +132 -0
- data/ext/debian/source/format +1 -0
- data/ext/debian/source/options +1 -0
- data/ext/debian/vim-puppet.README.Debian +13 -0
- data/ext/debian/vim-puppet.dirs +5 -0
- data/ext/debian/vim-puppet.yaml +7 -0
- data/ext/debian/watch +2 -0
- data/ext/freebsd/puppetd +26 -0
- data/ext/freebsd/puppetmasterd +26 -0
- data/ext/gentoo/conf.d/puppet +5 -0
- data/ext/gentoo/conf.d/puppetmaster +12 -0
- data/ext/gentoo/init.d/puppet +38 -0
- data/ext/gentoo/init.d/puppetmaster +51 -0
- data/ext/gentoo/puppet/fileserver.conf +41 -0
- data/ext/ips/puppet-agent +44 -0
- data/ext/ips/puppet-master +44 -0
- data/ext/ips/puppet.p5m.erb +12 -0
- data/ext/ips/puppetagent.xml +42 -0
- data/ext/ips/puppetmaster.xml +42 -0
- data/ext/ips/rules +19 -0
- data/ext/ips/transforms +34 -0
- data/ext/ldap/puppet.schema +24 -0
- data/ext/logcheck/puppet +23 -0
- data/{examples → ext}/nagios/check_puppet.rb +2 -2
- data/ext/osx/file_mapping.yaml +28 -0
- data/ext/osx/postflight.erb +109 -0
- data/ext/osx/preflight.erb +52 -0
- data/ext/osx/prototype.plist.erb +38 -0
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -15
- data/ext/redhat/fileserver.conf +41 -0
- data/ext/redhat/logrotate +21 -0
- data/ext/redhat/puppet.spec.erb +841 -0
- data/ext/redhat/server.init +128 -0
- data/ext/redhat/server.sysconfig +13 -0
- data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
- data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
- data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
- data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
- data/ext/solaris/pkginfo +6 -0
- data/ext/solaris/smf/puppetd.xml +77 -0
- data/ext/solaris/smf/puppetmasterd.xml +77 -0
- data/ext/solaris/smf/svc-puppetd +71 -0
- data/ext/solaris/smf/svc-puppetmasterd +67 -0
- data/ext/suse/puppet.spec +310 -0
- data/ext/suse/server.init +173 -0
- data/ext/windows/service/daemon.rb +6 -5
- data/ext/yaml_nodes.rb +105 -0
- data/install.rb +21 -17
- data/lib/puppet/application/agent.rb +4 -16
- data/lib/puppet/application/apply.rb +4 -24
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -10
- data/lib/puppet/application/resource.rb +16 -32
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -13
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/configurer.rb +87 -130
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +128 -226
- data/lib/puppet/environments.rb +82 -146
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +0 -11
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/file_serving/configuration/parser.rb +3 -34
- data/lib/puppet/file_serving/configuration.rb +0 -8
- data/lib/puppet/file_serving/fileset.rb +2 -14
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +1 -3
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +2 -4
- data/lib/puppet/forge/repository.rb +0 -1
- 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 +0 -8
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +5 -13
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +4 -12
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +0 -1
- data/lib/puppet/functions/tree_each.rb +9 -7
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +2 -17
- data/lib/puppet/functions/upcase.rb +2 -2
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http/client.rb +164 -114
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -15
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver/server_list.rb +10 -25
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -144
- data/lib/puppet/http/service/file_server.rb +19 -29
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/indirector/catalog/compiler.rb +6 -25
- data/lib/puppet/indirector/catalog/rest.rb +2 -5
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/resource/ral.rb +1 -6
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/terminus.rb +0 -4
- data/lib/puppet/interface/documentation.rb +0 -1
- data/lib/puppet/module/plan.rb +1 -0
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -56
- 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/applications.rb +0 -1
- data/lib/puppet/module_tool/errors/shared.rb +2 -34
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +0 -67
- data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node/environment.rb +11 -10
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +2 -3
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/scope.rb +0 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -2
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -291
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +1 -47
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1691 -1883
- data/lib/puppet/pops/parser/lexer2.rb +91 -92
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/parser/slurp_support.rb +0 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_formatter.rb +3 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +1 -2
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +4 -16
- data/lib/puppet/provider/group/groupadd.rb +10 -18
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +2 -34
- data/lib/puppet/provider/package/aptitude.rb +0 -6
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/nim.rb +6 -11
- data/lib/puppet/provider/package/pip.rb +3 -16
- data/lib/puppet/provider/package/pkg.rb +2 -23
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- 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 +0 -3
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +0 -2
- 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 +194 -76
- data/lib/puppet/provider/service/systemd.rb +6 -16
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +3 -46
- data/lib/puppet/provider/user/directoryservice.rb +11 -34
- data/lib/puppet/provider/user/useradd.rb +24 -134
- data/lib/puppet/provider.rb +1 -14
- data/lib/puppet/reference/configuration.rb +8 -7
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -49
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/runtime.rb +2 -13
- data/lib/puppet/settings/environment_conf.rb +0 -1
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/settings.rb +82 -98
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/test/test_helper.rb +2 -7
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +1 -11
- data/lib/puppet/transaction/report.rb +3 -19
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/type/exec.rb +5 -35
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -6
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/file.rb +12 -32
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/group.rb +1 -0
- data/lib/puppet/type/package.rb +8 -16
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +41 -26
- data/lib/puppet/type/tidy.rb +3 -22
- data/lib/puppet/type/user.rb +21 -38
- data/lib/puppet/type.rb +1 -77
- data/lib/puppet/util/autoload.rb +8 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/json.rb +0 -3
- data/lib/puppet/util/log.rb +2 -1
- data/lib/puppet/util/logging.rb +25 -1
- data/lib/puppet/util/monkey_patches.rb +0 -53
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/posix.rb +5 -54
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/selinux.rb +4 -30
- data/lib/puppet/util/suidmanager.rb +2 -1
- data/lib/puppet/util/symbolic_file_mode.rb +17 -29
- data/lib/puppet/util/tagging.rb +0 -1
- data/lib/puppet/util/windows/adsi.rb +0 -46
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/principal.rb +2 -9
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/sid.rb +2 -6
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +2 -0
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/util.rb +3 -4
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet.rb +20 -25
- data/locales/puppet.pot +816 -1637
- data/man/man5/puppet.conf.5 +286 -382
- data/man/man8/puppet-agent.8 +2 -5
- data/man/man8/puppet-apply.8 +2 -2
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +8 -51
- data/man/man8/puppet-filebucket.8 +4 -4
- 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 -60
- 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 +2 -2
- data/man/man8/puppet-ssl.8 +1 -5
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
- data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/ca.pem +35 -57
- data/spec/fixtures/ssl/crl.pem +18 -28
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +24 -33
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +58 -108
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
- data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
- data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
- data/spec/fixtures/ssl/intermediate.pem +36 -57
- data/spec/fixtures/ssl/pluto-key.pem +57 -107
- data/spec/fixtures/ssl/pluto.pem +30 -52
- data/spec/fixtures/ssl/request-key.pem +57 -107
- data/spec/fixtures/ssl/request.pem +26 -47
- data/spec/fixtures/ssl/revoked-key.pem +57 -107
- data/spec/fixtures/ssl/revoked.pem +30 -52
- data/spec/fixtures/ssl/signed-key.pem +57 -107
- data/spec/fixtures/ssl/signed.pem +30 -52
- data/spec/fixtures/ssl/tampered-cert.pem +30 -52
- data/spec/fixtures/ssl/tampered-csr.pem +26 -47
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
- data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-ca.pem +33 -55
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
- data/spec/integration/application/agent_spec.rb +51 -271
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -32
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/module_spec.rb +0 -21
- data/spec/integration/application/plugin_spec.rb +24 -2
- data/spec/integration/configurer_spec.rb +2 -18
- data/spec/integration/defaults_spec.rb +14 -3
- data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
- data/spec/integration/http/client_spec.rb +0 -12
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
- data/spec/integration/indirector/facts/facter_spec.rb +39 -93
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/resource/type_collection_spec.rb +6 -2
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +9 -4
- data/spec/integration/type/exec_spec.rb +45 -70
- data/spec/integration/type/file_spec.rb +7 -6
- 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 +1 -21
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/principal_spec.rb +0 -21
- data/spec/integration/util/windows/process_spec.rb +9 -1
- data/spec/integration/util/windows/registry_spec.rb +10 -6
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/puppet/test_ca.rb +2 -7
- data/spec/lib/puppet_spec/modules.rb +2 -13
- data/spec/lib/puppet_spec/puppetserver.rb +1 -16
- data/spec/lib/puppet_spec/settings.rb +1 -1
- data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
- data/spec/spec_helper.rb +17 -13
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- data/spec/unit/application/apply_spec.rb +56 -76
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/resource_spec.rb +0 -29
- data/spec/unit/application/ssl_spec.rb +2 -25
- data/spec/unit/application_spec.rb +9 -51
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -8
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +67 -202
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +2 -8
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +68 -55
- data/spec/unit/environments_spec.rb +68 -408
- data/spec/unit/face/node_spec.rb +11 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
- data/spec/unit/file_serving/configuration_spec.rb +10 -26
- data/spec/unit/file_serving/fileset_spec.rb +0 -60
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/file_system_spec.rb +0 -22
- data/spec/unit/forge/module_release_spec.rb +7 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +0 -10
- data/spec/unit/functions/logging_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +0 -64
- data/spec/unit/functions/unwrap_spec.rb +0 -8
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +0 -12
- data/spec/unit/http/client_spec.rb +7 -8
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +0 -193
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
- data/spec/unit/indirector/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +3 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/indirection_spec.rb +15 -18
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/resource/ral_spec.rb +75 -40
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/store_configs_spec.rb +7 -0
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface/action_spec.rb +9 -0
- data/spec/unit/module_spec.rb +1 -15
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
- data/spec/unit/network/authconfig_spec.rb +2 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +4 -51
- data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/compiler_spec.rb +19 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
- data/spec/unit/parser/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +5 -16
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
- data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/property_spec.rb +0 -1
- data/spec/unit/provider/group/groupadd_spec.rb +2 -5
- data/spec/unit/provider/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +23 -28
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +5 -6
- data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +33 -1
- data/spec/unit/provider/package/nim_spec.rb +0 -42
- data/spec/unit/provider/package/pacman_spec.rb +12 -18
- 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 +12 -44
- data/spec/unit/provider/package/pkg_spec.rb +4 -29
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/init_spec.rb +0 -1
- data/spec/unit/provider/service/launchd_spec.rb +0 -11
- data/spec/unit/provider/service/openwrt_spec.rb +1 -3
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/systemd_spec.rb +9 -54
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -105
- data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +5 -114
- data/spec/unit/provider_spec.rb +12 -22
- data/spec/unit/puppet_spec.rb +4 -12
- data/spec/unit/resource/catalog_spec.rb +1 -1
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +10 -67
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +79 -110
- data/spec/unit/ssl/base_spec.rb +37 -3
- data/spec/unit/ssl/certificate_request_spec.rb +21 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
- data/spec/unit/ssl/state_machine_spec.rb +5 -20
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
- data/spec/unit/transaction/event_manager_spec.rb +11 -14
- data/spec/unit/transaction/report_spec.rb +0 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +55 -96
- data/spec/unit/type/exec_spec.rb +29 -76
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +2 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/selinux_spec.rb +5 -3
- data/spec/unit/type/file/source_spec.rb +4 -5
- data/spec/unit/type/file_spec.rb +18 -6
- data/spec/unit/type/group_spec.rb +6 -13
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +189 -87
- data/spec/unit/type/tidy_spec.rb +8 -24
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/type_spec.rb +24 -4
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +1 -5
- data/spec/unit/util/backups_spec.rb +2 -3
- data/spec/unit/util/execution_spec.rb +11 -44
- data/spec/unit/util/inifile_spec.rb +14 -6
- data/spec/unit/util/log_spec.rb +7 -8
- data/spec/unit/util/logging_spec.rb +3 -5
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +15 -363
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/selinux_spec.rb +68 -163
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- data/spec/unit/util/windows/sid_spec.rb +0 -41
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +6 -31
- data/tasks/generate_cert_fixtures.rake +3 -12
- data/tasks/parallel.rake +3 -3
- metadata +137 -288
- data/conf/auth.conf +0 -150
- data/ext/README.md +0 -13
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/facter_impl.rb +0 -96
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.rb +0 -24
- data/lib/puppet/ffi/posix.rb +0 -10
- data/lib/puppet/file_serving/mount/scripts.rb +0 -24
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/settings/alias_setting.rb +0 -37
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/fact_dif.rb +0 -81
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
- data/spec/fixtures/ssl/oid-key.pem +0 -117
- data/spec/fixtures/ssl/oid.pem +0 -69
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
- data/spec/integration/application/resource_spec.rb +0 -64
- data/spec/integration/application/ssl_spec.rb +0 -20
- data/spec/integration/l10n/compiler_spec.rb +0 -37
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/shared_contexts/l10n.rb +0 -27
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/facter_impl_spec.rb +0 -31
- data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -78
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -407
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/ssl_spec.rb +0 -91
@@ -0,0 +1,7 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet/indirector/store_configs'
|
4
|
+
|
5
|
+
describe Puppet::Indirector::StoreConfigs do
|
6
|
+
pending "REVISIT: creating an instance requires ludicrous amounts of stubbing, and there is relatively little to actually test here. What to do? Shared behaviours allow us to push down a lot of the testing into the implementation class tests anyhow..."
|
7
|
+
end
|
@@ -112,8 +112,8 @@ describe Puppet::Indirector, "when registering an indirection" do
|
|
112
112
|
end
|
113
113
|
|
114
114
|
it "should pass any provided options to the indirection during initialization" do
|
115
|
-
expect(Puppet::Indirector::Indirection).to receive(:new).with(@thingie, :first, {:
|
116
|
-
@indirection = @thingie.indirects :first, :
|
115
|
+
expect(Puppet::Indirector::Indirection).to receive(:new).with(@thingie, :first, {:some => :options, :indirected_class => 'Thingie'})
|
116
|
+
@indirection = @thingie.indirects :first, :some => :options
|
117
117
|
end
|
118
118
|
|
119
119
|
it "should extend the class to handle serialization" do
|
@@ -537,6 +537,15 @@ describe Puppet::Interface::Action do
|
|
537
537
|
end
|
538
538
|
end
|
539
539
|
|
540
|
+
context "#when_rendering" do
|
541
|
+
it "should fail if no type is given when_rendering"
|
542
|
+
it "should accept a when_rendering block"
|
543
|
+
it "should accept multiple when_rendering blocks"
|
544
|
+
it "should fail if when_rendering gets a non-symbol identifier"
|
545
|
+
it "should fail if a second block is given for the same type"
|
546
|
+
it "should return the block if asked"
|
547
|
+
end
|
548
|
+
|
540
549
|
context "#validate_and_clean" do
|
541
550
|
subject do
|
542
551
|
Puppet::Interface.new(:validate_args, '1.0.0') do
|
data/spec/unit/module_spec.rb
CHANGED
@@ -478,7 +478,7 @@ describe Puppet::Module do
|
|
478
478
|
end
|
479
479
|
end
|
480
480
|
|
481
|
-
[:plugins, :pluginfacts, :templates, :files, :manifests
|
481
|
+
[:plugins, :pluginfacts, :templates, :files, :manifests].each do |filetype|
|
482
482
|
case filetype
|
483
483
|
when :plugins
|
484
484
|
dirname = "lib"
|
@@ -567,20 +567,6 @@ describe Puppet::Module do
|
|
567
567
|
expect(mod.task_file(task_exe)).to eq("#{mod.path}/tasks/#{task_exe}")
|
568
568
|
end
|
569
569
|
|
570
|
-
it "should list files from the scripts directory if required by the task" do
|
571
|
-
mod = 'loads_scripts'
|
572
|
-
task_dep = 'myscript.sh'
|
573
|
-
script_ref = "#{mod}/scripts/#{task_dep}"
|
574
|
-
task_json = JSON.generate({'files' => [script_ref]})
|
575
|
-
task = [['task', { name: 'task.json', content: task_json }]]
|
576
|
-
mod = PuppetSpec::Modules.create(mod, @modpath, {:environment => env,
|
577
|
-
:scripts => [task_dep],
|
578
|
-
:tasks => task})
|
579
|
-
|
580
|
-
expect(mod.tasks.first.files).to include({'name' => script_ref,
|
581
|
-
'path' => /#{script_ref}/})
|
582
|
-
end
|
583
|
-
|
584
570
|
it "should return nil when asked for an individual task file if it does not exist" do
|
585
571
|
mod = PuppetSpec::Modules.create('task_file_neg', @modpath, {:environment => env,
|
586
572
|
:tasks => []})
|
@@ -66,18 +66,6 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
66
66
|
graph_should_include 'pmtacceptance-stdlib', nil => v('4.1.0')
|
67
67
|
end
|
68
68
|
|
69
|
-
it 'reports a meaningful error if the name is invalid' do
|
70
|
-
app = installer('ntp', install_dir, options)
|
71
|
-
results = app.run
|
72
|
-
expect(results).to include :result => :failure
|
73
|
-
expect(results[:error][:oneline]).to eq("Could not install 'ntp', did you mean 'puppetlabs-ntp'?")
|
74
|
-
expect(results[:error][:multiline]).to eq(<<~END.chomp)
|
75
|
-
Could not install module 'ntp'
|
76
|
-
The name 'ntp' is invalid
|
77
|
-
Did you mean `puppet module install puppetlabs-ntp`?
|
78
|
-
END
|
79
|
-
end
|
80
|
-
|
81
69
|
context 'with a tarball file' do
|
82
70
|
let(:module) { fixtures('stdlib.tgz') }
|
83
71
|
|
@@ -259,21 +247,6 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
259
247
|
expect(subject).to include :result => :success
|
260
248
|
graph_should_include 'pmtacceptance-mysql', nil => v('0.8.0')
|
261
249
|
end
|
262
|
-
|
263
|
-
context 'with an already installed dependency' do
|
264
|
-
before { preinstall('pmtacceptance-stdlib', '2.6.0') }
|
265
|
-
|
266
|
-
def options
|
267
|
-
super.merge(:version => '0.7.0')
|
268
|
-
end
|
269
|
-
|
270
|
-
it 'installs given version without errors and does not change version of dependency' do
|
271
|
-
expect(subject).to include :result => :success
|
272
|
-
graph_should_include 'pmtacceptance-mysql', nil => v('0.7.0')
|
273
|
-
expect(subject[:error]).to be_nil
|
274
|
-
graph_should_include 'pmtacceptance-stdlib', v('2.6.0') => v('2.6.0')
|
275
|
-
end
|
276
|
-
end
|
277
250
|
end
|
278
251
|
|
279
252
|
context 'with a --version that cannot satisfy' do
|
@@ -285,47 +258,6 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
285
258
|
expect(subject).to include :result => :failure
|
286
259
|
end
|
287
260
|
|
288
|
-
context 'with unsatisfiable dependencies' do
|
289
|
-
let(:graph) { double(SemanticPuppet::Dependency::Graph, :modules => ['pmtacceptance-mysql']) }
|
290
|
-
let(:exception) { SemanticPuppet::Dependency::UnsatisfiableGraph.new(graph, constraint) }
|
291
|
-
|
292
|
-
before do
|
293
|
-
allow(SemanticPuppet::Dependency).to receive(:resolve).and_raise(exception)
|
294
|
-
end
|
295
|
-
|
296
|
-
context 'with known constraint' do
|
297
|
-
let(:constraint) { 'pmtacceptance-mysql' }
|
298
|
-
|
299
|
-
it 'prints a detailed error containing the modules that would not be satisfied' do
|
300
|
-
expect(subject[:error]).to include(:multiline)
|
301
|
-
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
302
|
-
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy one or more of the following installed modules:")
|
303
|
-
expect(subject[:error][:multiline]).to include("pmtacceptance-keystone, expects 'pmtacceptance-mysql': >=0.6.1 <1.0.0")
|
304
|
-
expect(subject[:error][:multiline]).to include("Use `puppet module install 'pmtacceptance-mysql' --ignore-dependencies` to install only this module")
|
305
|
-
end
|
306
|
-
end
|
307
|
-
|
308
|
-
context 'with missing constraint' do
|
309
|
-
let(:constraint) { nil }
|
310
|
-
|
311
|
-
it 'prints the generic error message' do
|
312
|
-
expect(subject[:error]).to include(:multiline)
|
313
|
-
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
314
|
-
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy all dependencies")
|
315
|
-
end
|
316
|
-
end
|
317
|
-
|
318
|
-
context 'with unknown constraint' do
|
319
|
-
let(:constraint) { 'another' }
|
320
|
-
|
321
|
-
it 'prints the generic error message' do
|
322
|
-
expect(subject[:error]).to include(:multiline)
|
323
|
-
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (> 1.0.0)")
|
324
|
-
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy all dependencies")
|
325
|
-
end
|
326
|
-
end
|
327
|
-
end
|
328
|
-
|
329
261
|
context 'with --ignore-dependencies' do
|
330
262
|
def options
|
331
263
|
super.merge(:ignore_dependencies => true)
|
@@ -346,43 +278,6 @@ describe Puppet::ModuleTool::Applications::Installer, :unless => RUBY_PLATFORM =
|
|
346
278
|
graph_should_include 'pmtacceptance-mysql', nil => v('2.1.0')
|
347
279
|
end
|
348
280
|
end
|
349
|
-
|
350
|
-
context 'with an already installed dependency' do
|
351
|
-
let(:graph) {
|
352
|
-
double(SemanticPuppet::Dependency::Graph,
|
353
|
-
:dependencies => {
|
354
|
-
'pmtacceptance-mysql' => {
|
355
|
-
:version => '2.1.0'
|
356
|
-
}
|
357
|
-
},
|
358
|
-
:modules => ['pmtacceptance-mysql'],
|
359
|
-
:unsatisfied => 'pmtacceptance-stdlib'
|
360
|
-
)
|
361
|
-
}
|
362
|
-
|
363
|
-
let(:unsatisfiable_graph_exception) { SemanticPuppet::Dependency::UnsatisfiableGraph.new(graph) }
|
364
|
-
|
365
|
-
before do
|
366
|
-
allow(SemanticPuppet::Dependency).to receive(:resolve).and_raise(unsatisfiable_graph_exception)
|
367
|
-
allow(unsatisfiable_graph_exception).to receive(:respond_to?).and_return(true)
|
368
|
-
allow(unsatisfiable_graph_exception).to receive(:unsatisfied).and_return(graph.unsatisfied)
|
369
|
-
|
370
|
-
preinstall('pmtacceptance-stdlib', '2.6.0')
|
371
|
-
end
|
372
|
-
|
373
|
-
def options
|
374
|
-
super.merge(:version => '2.1.0')
|
375
|
-
end
|
376
|
-
|
377
|
-
it 'fails to install and outputs a multiline error containing the versions, expectations and workaround' do
|
378
|
-
expect(subject).to include :result => :failure
|
379
|
-
expect(subject[:error]).to include(:multiline)
|
380
|
-
expect(subject[:error][:multiline]).to include("Could not install module 'pmtacceptance-mysql' (v2.1.0)")
|
381
|
-
expect(subject[:error][:multiline]).to include("The requested version cannot satisfy one or more of the following installed modules:")
|
382
|
-
expect(subject[:error][:multiline]).to include("pmtacceptance-stdlib, installed: 2.6.0, expected: >= 2.2.1")
|
383
|
-
expect(subject[:error][:multiline]).to include("Use `puppet module install 'pmtacceptance-mysql' --ignore-dependencies` to install only this module")
|
384
|
-
end
|
385
|
-
end
|
386
281
|
end
|
387
282
|
end
|
388
283
|
|
@@ -1,135 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
|
3
2
|
require 'puppet/network/authconfig'
|
4
3
|
|
5
|
-
describe Puppet::Network::DefaultAuthProvider do
|
6
|
-
before :each do
|
7
|
-
allow(Puppet::FileSystem).to receive(:stat).and_return(double('stat', :ctime => :now))
|
8
|
-
allow(Time).to receive(:now).and_return(Time.now)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "when initializing" do
|
12
|
-
it "inserts default ACLs after setting initial rights" do
|
13
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
14
|
-
Puppet::Network::DefaultAuthProvider.new
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "when defining an acl with mk_acl" do
|
19
|
-
before :each do
|
20
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
21
|
-
@authprovider = Puppet::Network::DefaultAuthProvider.new
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should create a new right for each default acl" do
|
25
|
-
@authprovider.mk_acl(:acl => '/')
|
26
|
-
expect(@authprovider.rights['/']).to be
|
27
|
-
end
|
28
|
-
|
29
|
-
it "allows everyone for each default right" do
|
30
|
-
@authprovider.mk_acl(:acl => '/')
|
31
|
-
expect(@authprovider.rights['/']).to be_globalallow
|
32
|
-
end
|
33
|
-
|
34
|
-
it "accepts an argument to restrict the method" do
|
35
|
-
@authprovider.mk_acl(:acl => '/', :method => :find)
|
36
|
-
expect(@authprovider.rights['/'].methods).to eq([:find])
|
37
|
-
end
|
38
|
-
|
39
|
-
it "creates rights with authentication set to true by default" do
|
40
|
-
@authprovider.mk_acl(:acl => '/')
|
41
|
-
expect(@authprovider.rights['/'].authentication).to be_truthy
|
42
|
-
end
|
43
|
-
|
44
|
-
it "accepts an argument to set the authentication requirement" do
|
45
|
-
@authprovider.mk_acl(:acl => '/', :authenticated => :any)
|
46
|
-
expect(@authprovider.rights['/'].authentication).to be_falsey
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "when adding default ACLs" do
|
51
|
-
before :each do
|
52
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
53
|
-
@authprovider = Puppet::Network::DefaultAuthProvider.new
|
54
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl).and_call_original
|
55
|
-
end
|
56
|
-
|
57
|
-
Puppet::Network::DefaultAuthProvider::default_acl.each do |acl|
|
58
|
-
it "should create a default right for #{acl[:acl]}" do
|
59
|
-
allow(@authprovider).to receive(:mk_acl)
|
60
|
-
expect(@authprovider).to receive(:mk_acl).with(acl)
|
61
|
-
@authprovider.insert_default_acl
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should log at info loglevel" do
|
66
|
-
expect(Puppet).to receive(:info).at_least(:once)
|
67
|
-
@authprovider.insert_default_acl
|
68
|
-
end
|
69
|
-
|
70
|
-
it "creates an empty catch-all rule for '/' for any authentication request state" do
|
71
|
-
allow(@authprovider).to receive(:mk_acl)
|
72
|
-
|
73
|
-
@authprovider.insert_default_acl
|
74
|
-
expect(@authprovider.rights['/']).to be_empty
|
75
|
-
expect(@authprovider.rights['/'].authentication).to be_falsey
|
76
|
-
end
|
77
|
-
|
78
|
-
it '(CVE-2013-2275) allows report submission only for the node matching the certname by default' do
|
79
|
-
acl = {
|
80
|
-
:acl => "~ ^#{Puppet::Network::HTTP::MASTER_URL_PREFIX}\/v3\/report\/([^\/]+)$",
|
81
|
-
:method => :save,
|
82
|
-
:allow => '$1',
|
83
|
-
:authenticated => true
|
84
|
-
}
|
85
|
-
allow(@authprovider).to receive(:mk_acl)
|
86
|
-
expect(@authprovider).to receive(:mk_acl).with(acl)
|
87
|
-
@authprovider.insert_default_acl
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "when checking authorization" do
|
92
|
-
it "should ask for authorization to the ACL subsystem" do
|
93
|
-
params = {
|
94
|
-
:ip => "127.0.0.1",
|
95
|
-
:node => "me",
|
96
|
-
:environment => :env,
|
97
|
-
:authenticated => true
|
98
|
-
}
|
99
|
-
|
100
|
-
expect_any_instance_of(Puppet::Network::Rights).to receive(:is_request_forbidden_and_why?).with(:save, "/path/to/resource", params)
|
101
|
-
|
102
|
-
described_class.new.check_authorization(:save, "/path/to/resource", params)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
4
|
describe Puppet::Network::AuthConfig do
|
108
|
-
|
109
|
-
Puppet::Network::AuthConfig.authprovider_class =
|
110
|
-
end
|
111
|
-
|
112
|
-
class TestAuthProvider
|
113
|
-
def initialize(rights=nil); end
|
114
|
-
def check_authorization(method, path, params); end
|
115
|
-
end
|
116
|
-
|
117
|
-
it "instantiates authprovider_class with rights" do
|
118
|
-
Puppet::Network::AuthConfig.authprovider_class = TestAuthProvider
|
119
|
-
rights = Puppet::Network::Rights.new
|
120
|
-
expect(TestAuthProvider).to receive(:new).with(rights)
|
121
|
-
described_class.new(rights)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "delegates authorization check to authprovider_class" do
|
125
|
-
Puppet::Network::AuthConfig.authprovider_class = TestAuthProvider
|
126
|
-
expect_any_instance_of(TestAuthProvider).to receive(:check_authorization).with(:save, '/path/to/resource', {})
|
127
|
-
described_class.new.check_authorization(:save, '/path/to/resource', {})
|
128
|
-
end
|
129
|
-
|
130
|
-
it "uses DefaultAuthProvider by default" do
|
131
|
-
Puppet::Network::AuthConfig.authprovider_class = nil
|
132
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:check_authorization).with(:save, '/path/to/resource', {})
|
133
|
-
described_class.new.check_authorization(:save, '/path/to/resource', {})
|
5
|
+
it "accepts an auth provider class" do
|
6
|
+
Puppet::Network::AuthConfig.authprovider_class = Object
|
134
7
|
end
|
135
8
|
end
|
@@ -1,61 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'puppet/network/http'
|
3
|
-
require 'puppet/network/http/api/indirected_routes'
|
4
2
|
require 'puppet/network/authorization'
|
5
3
|
|
6
4
|
describe Puppet::Network::Authorization do
|
7
|
-
class
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
subject { AuthTest.new }
|
12
|
-
|
13
|
-
context "when creating an authconfig object" do
|
14
|
-
before :each do
|
15
|
-
# Other tests may have created an authconfig, so we have to undo that.
|
16
|
-
@orig_auth_config = Puppet::Network::AuthConfigLoader.instance_variable_get(:@auth_config)
|
17
|
-
@orig_auth_config_file = Puppet::Network::AuthConfigLoader.instance_variable_get(:@auth_config_file)
|
18
|
-
|
19
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config, nil)
|
20
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config_file, nil)
|
21
|
-
end
|
22
|
-
|
23
|
-
after :each do
|
24
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config, @orig_auth_config)
|
25
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config_file, @orig_auth_config_file)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "creates default ACL entries if no file has been read" do
|
29
|
-
expect(Puppet::Network::AuthConfigParser).to receive(:new_from_file).and_raise(Errno::ENOENT)
|
30
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
31
|
-
|
32
|
-
subject.authconfig
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class TestAuthConfig
|
37
|
-
def check_authorization(method, path, params); end
|
38
|
-
end
|
39
|
-
|
40
|
-
class TestAuthConfigLoader
|
41
|
-
def self.authconfig
|
42
|
-
TestAuthConfig.new
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "when checking authorization" do
|
47
|
-
after :each do
|
48
|
-
Puppet::Network::Authorization.authconfigloader_class = nil
|
49
|
-
end
|
50
|
-
|
51
|
-
it "delegates to the authconfig object" do
|
52
|
-
Puppet::Network::Authorization.authconfigloader_class =
|
53
|
-
TestAuthConfigLoader
|
54
|
-
expect_any_instance_of(TestAuthConfig).to receive(:check_authorization).with(
|
55
|
-
:save, '/mypath', {:param1 => "value1"}).and_return("yay, it worked!")
|
56
|
-
expect(subject.check_authorization(
|
57
|
-
:save, '/mypath',
|
58
|
-
{:param1 => "value1"})).to eq("yay, it worked!")
|
59
|
-
end
|
5
|
+
it "accepts an auth config loader class" do
|
6
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
60
7
|
end
|
61
8
|
end
|
@@ -161,19 +161,19 @@ describe "Puppet Network Format" do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
it 'raises when interning an instance of an unacceptable indirected type' do
|
164
|
-
obj =
|
164
|
+
obj = :something
|
165
165
|
|
166
166
|
expect {
|
167
167
|
yaml.intern(obj.class, YAML.dump(obj))
|
168
|
-
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class:
|
168
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class: Symbol/)
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'raises when interning multple instances of an unacceptable indirected type' do
|
172
|
-
obj =
|
172
|
+
obj = :something
|
173
173
|
|
174
174
|
expect {
|
175
175
|
yaml.intern_multiple(obj.class, YAML.dump([obj]))
|
176
|
-
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class:
|
176
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class: Symbol/)
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -368,12 +368,6 @@ describe "Puppet Network Format" do
|
|
368
368
|
expect(json.render_multiple(instances)).to eq([{"string" => "foo"}].to_json)
|
369
369
|
end
|
370
370
|
|
371
|
-
it "should render multiple instances as a JSON array of hashes when multi_json is not present" do
|
372
|
-
hide_const("MultiJson") if defined?(MultiJson)
|
373
|
-
instances = [FormatsTest.new("foo")]
|
374
|
-
expect(json.render_multiple(instances)).to eq([{"string" => "foo"}].to_json)
|
375
|
-
end
|
376
|
-
|
377
371
|
it "should intern an instance from a JSON hash" do
|
378
372
|
text = Puppet::Util::Json.dump({"string" => "parsed_json"})
|
379
373
|
instance = json.intern(FormatsTest, text)
|
@@ -540,45 +534,4 @@ EOT
|
|
540
534
|
end
|
541
535
|
end
|
542
536
|
end
|
543
|
-
|
544
|
-
describe ":flat format" do
|
545
|
-
let(:flat) { Puppet::Network::FormatHandler.format(:flat) }
|
546
|
-
|
547
|
-
it "should include a flat format" do
|
548
|
-
expect(flat).to be_an_instance_of Puppet::Network::Format
|
549
|
-
end
|
550
|
-
|
551
|
-
[:intern, :intern_multiple].each do |method|
|
552
|
-
it "should not implement #{method}" do
|
553
|
-
expect { flat.send(method, String, 'blah') }.to raise_error NotImplementedError
|
554
|
-
end
|
555
|
-
end
|
556
|
-
|
557
|
-
context "when rendering arrays" do
|
558
|
-
{
|
559
|
-
[] => "",
|
560
|
-
[1, 2] => "0=1\n1=2\n",
|
561
|
-
["one"] => "0=one\n",
|
562
|
-
[{"one" => 1}, {"two" => 2}] => "0.one=1\n1.two=2\n",
|
563
|
-
[['something', 'for'], ['the', 'test']] => "0=[\"something\", \"for\"]\n1=[\"the\", \"test\"]\n"
|
564
|
-
}.each_pair do |input, output|
|
565
|
-
it "should render #{input.inspect} as one item per line" do
|
566
|
-
expect(flat.render(input)).to eq(output)
|
567
|
-
end
|
568
|
-
end
|
569
|
-
end
|
570
|
-
|
571
|
-
context "when rendering hashes" do
|
572
|
-
{
|
573
|
-
{} => "",
|
574
|
-
{1 => 2} => "1=2\n",
|
575
|
-
{"one" => "two"} => "one=two\n",
|
576
|
-
{[1,2] => 3, [2,3] => 5, [3,4] => 7} => "[1, 2]=3\n[2, 3]=5\n[3, 4]=7\n",
|
577
|
-
}.each_pair do |input, output|
|
578
|
-
it "should render #{input.inspect}" do
|
579
|
-
expect(flat.render(input)).to eq(output)
|
580
|
-
end
|
581
|
-
end
|
582
|
-
end
|
583
|
-
end
|
584
537
|
end
|
@@ -24,6 +24,10 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
24
24
|
let(:env_loaders) { Puppet::Environments::Static.new(environment) }
|
25
25
|
let(:params) { { :environment => "env" } }
|
26
26
|
|
27
|
+
before do
|
28
|
+
allow(handler).to receive(:handler).and_return("foo")
|
29
|
+
end
|
30
|
+
|
27
31
|
around do |example|
|
28
32
|
Puppet.override(:environments => env_loaders) do
|
29
33
|
example.run
|
@@ -58,7 +62,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
58
62
|
}.to raise_error(bad_request_error)
|
59
63
|
end
|
60
64
|
|
61
|
-
it "should not pass a
|
65
|
+
it "should not pass a bucket_path parameter through (See Bugs #13553, #13518, #13511)" do
|
62
66
|
expect(handler.uri2indirection("GET", "#{master_url_prefix}/node/bar",
|
63
67
|
{ :environment => "env",
|
64
68
|
:bucket_path => "/malicious/path" })[3]).not_to include({ :bucket_path => "/malicious/path" })
|
@@ -118,10 +122,6 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
118
122
|
expect(handler.uri2indirection("PUT", "#{master_url_prefix}/facts/puppet.node.test", params)[0].name).to eq(:facts)
|
119
123
|
end
|
120
124
|
|
121
|
-
it "should change indirection name to 'status' if the http method is a GET and the indirection name is statuses" do
|
122
|
-
expect(handler.uri2indirection("GET", "#{master_url_prefix}/statuses/bar", params)[0].name).to eq(:status)
|
123
|
-
end
|
124
|
-
|
125
125
|
it "should change indirection name to 'node' if the http method is a GET and the indirection name is nodes" do
|
126
126
|
expect(handler.uri2indirection("GET", "#{master_url_prefix}/nodes/bar", params)[0].name).to eq(:node)
|
127
127
|
end
|
@@ -145,96 +145,9 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
145
145
|
_, _, key, _ = handler.uri2indirection("GET", "#{master_url_prefix}/node/#{escaped}", params)
|
146
146
|
expect(key).to eq(escaped)
|
147
147
|
end
|
148
|
-
|
149
|
-
it "should not unescape the URI passed through in a call to check_authorization" do
|
150
|
-
key_escaped = Puppet::Util.uri_encode("foo bar")
|
151
|
-
uri_escaped = "#{master_url_prefix}/node/#{key_escaped}"
|
152
|
-
expect(handler).to receive(:check_authorization).with(anything, uri_escaped, anything)
|
153
|
-
handler.uri2indirection("GET", uri_escaped, params)
|
154
|
-
end
|
155
|
-
|
156
|
-
it "when the environment is unknown should remove :environment from params passed to check_authorization and therefore fail" do
|
157
|
-
expect(handler).to receive(:check_authorization).with(anything,
|
158
|
-
anything,
|
159
|
-
excluding(:environment))
|
160
|
-
expect { handler.uri2indirection("GET",
|
161
|
-
"#{master_url_prefix}/node/bar",
|
162
|
-
{:environment => 'bogus'})
|
163
|
-
}.to raise_error(not_found_error)
|
164
|
-
end
|
165
|
-
|
166
|
-
it "should not URI unescape the indirection key as passed through to a call to check_authorization" do
|
167
|
-
expect(handler).to receive(:check_authorization).with(anything, anything, hash_including(environment: be_a(Puppet::Node::Environment).and(have_attributes(name: :env))))
|
168
|
-
|
169
|
-
handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", params)
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|
173
|
-
|
174
|
-
describe "when converting a request into a URI" do
|
175
|
-
let(:environment) { Puppet::Node::Environment.create(:myenv, []) }
|
176
|
-
let(:request) { Puppet::Indirector::Request.new(:foo, :find, "with spaces", nil, :foo => :bar, :environment => environment) }
|
177
|
-
|
178
|
-
it "should include the environment in the query string of the URI" do
|
179
|
-
expect(handler.class.request_to_uri(request)).to eq("#{master_url_prefix}/foo/with%20spaces?environment=myenv&foo=bar")
|
180
|
-
end
|
181
|
-
|
182
|
-
it "should include the correct url prefix if it is a ca request" do
|
183
|
-
allow(request).to receive(:indirection_name).and_return("certificate")
|
184
|
-
expect(handler.class.request_to_uri(request)).to eq("#{ca_url_prefix}/certificate/with%20spaces?environment=myenv&foo=bar")
|
185
|
-
end
|
186
|
-
|
187
|
-
it "should pluralize the indirection name if the method is 'search'" do
|
188
|
-
allow(request).to receive(:method).and_return(:search)
|
189
|
-
expect(handler.class.request_to_uri(request).split("/")[3]).to eq("foos")
|
190
|
-
end
|
191
|
-
|
192
|
-
it "should add the query string to the URI" do
|
193
|
-
expect(request).to receive(:query_string).and_return("query")
|
194
|
-
expect(handler.class.request_to_uri(request)).to match(/\&query$/)
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
describe "when converting a request into a URI with body" do
|
199
|
-
let(:environment) { Puppet::Node::Environment.create(:myenv, []) }
|
200
|
-
let(:request) { Puppet::Indirector::Request.new(:foo, :find, "with spaces", nil, :foo => :bar, :environment => environment) }
|
201
|
-
|
202
|
-
it "should use the indirection as the first field of the URI" do
|
203
|
-
expect(handler.class.request_to_uri_and_body(request).first.split("/")[3]).to eq("foo")
|
204
|
-
end
|
205
|
-
|
206
|
-
it "should use the escaped key as the remainder of the URI" do
|
207
|
-
escaped = Puppet::Util.uri_encode("with spaces")
|
208
|
-
expect(handler.class.request_to_uri_and_body(request).first.split("/")[4].sub(/\?.+/, '')).to eq(escaped)
|
209
|
-
end
|
210
|
-
|
211
|
-
it "should include the correct url prefix if it is a master request" do
|
212
|
-
expect(handler.class.request_to_uri_and_body(request).first).to eq("#{master_url_prefix}/foo/with%20spaces")
|
213
|
-
end
|
214
|
-
|
215
|
-
it "should include the correct url prefix if it is a ca request" do
|
216
|
-
allow(request).to receive(:indirection_name).and_return("certificate")
|
217
|
-
expect(handler.class.request_to_uri_and_body(request).first).to eq("#{ca_url_prefix}/certificate/with%20spaces")
|
218
|
-
end
|
219
|
-
|
220
|
-
it "should return the URI and body separately" do
|
221
|
-
expect(handler.class.request_to_uri_and_body(request)).to eq(["#{master_url_prefix}/foo/with%20spaces", "environment=myenv&foo=bar"])
|
222
|
-
end
|
223
148
|
end
|
224
149
|
|
225
150
|
describe "when processing a request" do
|
226
|
-
it "should raise not_authorized_error when authorization fails" do
|
227
|
-
data = Puppet::IndirectorTesting.new("my data")
|
228
|
-
indirection.save(data, "my data")
|
229
|
-
request = a_request_that_heads(data)
|
230
|
-
|
231
|
-
expect(handler).to receive(:check_authorization).and_raise(Puppet::Network::AuthorizationError.new("forbidden"))
|
232
|
-
|
233
|
-
expect {
|
234
|
-
handler.call(request, response)
|
235
|
-
}.to raise_error(not_authorized_error)
|
236
|
-
end
|
237
|
-
|
238
151
|
it "should raise not_found_error if the indirection does not support remote requests" do
|
239
152
|
request = a_request_that_heads(Puppet::IndirectorTesting.new("my data"))
|
240
153
|
|
@@ -15,15 +15,18 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
15
15
|
chain(Puppet::Network::HTTP::API::Master::V3.routes)
|
16
16
|
}
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
# simulate puppetserver registering its authconfigloader class
|
19
|
+
around :each do |example|
|
20
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
21
|
+
begin
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
25
|
+
end
|
23
26
|
end
|
24
27
|
|
25
|
-
it "mounts the
|
26
|
-
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/
|
28
|
+
it "mounts the environments endpoint" do
|
29
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
27
30
|
master_routes.process(request, response)
|
28
31
|
|
29
32
|
expect(response.code).to eq(200)
|
@@ -54,4 +57,22 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
54
57
|
master_routes.process(request, response)
|
55
58
|
}.to raise_error(not_found_error)
|
56
59
|
end
|
60
|
+
|
61
|
+
it "checks authorization for indirected routes" do
|
62
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
63
|
+
|
64
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/catalog/foo")
|
65
|
+
expect {
|
66
|
+
master_routes.process(request, response)
|
67
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/catalog/foo \(method GET\)})
|
68
|
+
end
|
69
|
+
|
70
|
+
it "checks authorization for environments" do
|
71
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
72
|
+
|
73
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
74
|
+
expect {
|
75
|
+
master_routes.process(request, response)
|
76
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/environments \(method GET\)})
|
77
|
+
end
|
57
78
|
end
|