puppet 6.25.1-x86-mingw32 → 7.0.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/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 +86 -189
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +128 -232
- 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 +165 -115
- 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 -17
- 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 +1 -70
- data/lib/puppet/parser/scope.rb +0 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +5 -7
- 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 -4
- 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 +2 -15
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -49
- data/lib/puppet/resource.rb +6 -127
- 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 +11 -457
- 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 -11
- 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 -299
- 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 -47
- 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 +68 -264
- 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 +8 -66
- 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 +2 -15
- 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 +12 -125
- 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 -92
- 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
@@ -3,29 +3,26 @@ require 'spec_helper'
|
|
3
3
|
require 'pathname'
|
4
4
|
require 'puppet/util/selinux'
|
5
5
|
|
6
|
+
unless defined?(Selinux)
|
7
|
+
module Selinux
|
8
|
+
def self.is_selinux_enabled
|
9
|
+
false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
describe Puppet::Util::SELinux do
|
7
15
|
include Puppet::Util::SELinux
|
8
16
|
|
9
|
-
let(:selinux) { double('selinux', is_selinux_enabled: false) }
|
10
|
-
|
11
|
-
before :each do
|
12
|
-
stub_const('Selinux', selinux)
|
13
|
-
end
|
14
|
-
|
15
17
|
describe "selinux_support?" do
|
16
|
-
it "should return true if this system has SELinux enabled" do
|
18
|
+
it "should return :true if this system has SELinux enabled" do
|
17
19
|
expect(Selinux).to receive(:is_selinux_enabled).and_return(1)
|
18
|
-
expect(selinux_support?).to
|
20
|
+
expect(selinux_support?).to be_truthy
|
19
21
|
end
|
20
22
|
|
21
|
-
it "should return false if this system
|
23
|
+
it "should return :false if this system lacks SELinux" do
|
22
24
|
expect(Selinux).to receive(:is_selinux_enabled).and_return(0)
|
23
|
-
expect(selinux_support?).to
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should return false if this system lacks SELinux" do
|
27
|
-
hide_const('Selinux')
|
28
|
-
expect(selinux_support?).to eq(false)
|
25
|
+
expect(selinux_support?).to be_falsey
|
29
26
|
end
|
30
27
|
|
31
28
|
it "should return nil if /proc/mounts does not exist" do
|
@@ -114,19 +111,15 @@ describe Puppet::Util::SELinux do
|
|
114
111
|
end
|
115
112
|
|
116
113
|
it "should return a context" do
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
expect(get_selinux_current_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
121
|
-
end
|
114
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
115
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
|
116
|
+
expect(get_selinux_current_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
122
117
|
end
|
123
118
|
|
124
119
|
it "should return nil if lgetfilecon fails" do
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
expect(get_selinux_current_context("/foo")).to be_nil
|
129
|
-
end
|
120
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
121
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return(-1)
|
122
|
+
expect(get_selinux_current_context("/foo")).to be_nil
|
130
123
|
end
|
131
124
|
end
|
132
125
|
|
@@ -137,102 +130,47 @@ describe Puppet::Util::SELinux do
|
|
137
130
|
end
|
138
131
|
|
139
132
|
it "should return a context if a default context exists" do
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return([0, "user_u:role_r:type_t:s0"])
|
146
|
-
|
147
|
-
expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
it "handles permission denied errors by issuing a warning" do
|
152
|
-
without_partial_double_verification do
|
153
|
-
allow(self).to receive(:selinux_support?).and_return(true)
|
154
|
-
allow(self).to receive(:selinux_label_support?).and_return(true)
|
155
|
-
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
|
156
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::EACCES, "/root/chuj")
|
157
|
-
|
158
|
-
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
it "backward compatibly handles no such file or directory errors by issuing a warning when resource_ensure not set" do
|
163
|
-
without_partial_double_verification do
|
164
|
-
allow(self).to receive(:selinux_support?).and_return(true)
|
165
|
-
allow(self).to receive(:selinux_label_support?).and_return(true)
|
166
|
-
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
|
167
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
168
|
-
|
169
|
-
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
it "should determine mode based on resource ensure when set to file" do
|
174
|
-
without_partial_double_verification do
|
175
|
-
allow(self).to receive(:selinux_support?).and_return(true)
|
176
|
-
allow(self).to receive(:selinux_label_support?).and_return(true)
|
177
|
-
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 32768).and_return(-1)
|
178
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
179
|
-
|
180
|
-
expect(get_selinux_default_context("/root/chuj", :present)).to be_nil
|
181
|
-
expect(get_selinux_default_context("/root/chuj", :file)).to be_nil
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
it "should determine mode based on resource ensure when set to dir" do
|
186
|
-
without_partial_double_verification do
|
187
|
-
allow(self).to receive(:selinux_support?).and_return(true)
|
188
|
-
allow(self).to receive(:selinux_label_support?).and_return(true)
|
189
|
-
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 16384).and_return(-1)
|
190
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
133
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
134
|
+
fstat = double('File::Stat', :mode => 0)
|
135
|
+
expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
|
136
|
+
expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
|
137
|
+
expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return([0, "user_u:role_r:type_t:s0"])
|
191
138
|
|
192
|
-
|
193
|
-
end
|
139
|
+
expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
194
140
|
end
|
195
141
|
|
196
|
-
it "
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
142
|
+
it "handles permission denied errors by issuing a warning" do
|
143
|
+
allow(self).to receive(:selinux_support?).and_return(true)
|
144
|
+
allow(self).to receive(:selinux_label_support?).and_return(true)
|
145
|
+
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
|
146
|
+
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::EACCES, "/root/chuj")
|
202
147
|
|
203
|
-
|
204
|
-
end
|
148
|
+
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
205
149
|
end
|
206
150
|
|
207
|
-
it "
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
151
|
+
it "handles no such file or directory errors by issuing a warning" do
|
152
|
+
allow(self).to receive(:selinux_support?).and_return(true)
|
153
|
+
allow(self).to receive(:selinux_label_support?).and_return(true)
|
154
|
+
allow(Selinux).to receive(:matchpathcon).with("/root/chuj", 0).and_return(-1)
|
155
|
+
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
213
156
|
|
214
|
-
|
215
|
-
end
|
157
|
+
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
216
158
|
end
|
217
159
|
|
218
160
|
it "should return nil if matchpathcon returns failure" do
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
expect(get_selinux_default_context("/foo")).to be_nil
|
227
|
-
end
|
161
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
162
|
+
fstat = double('File::Stat', :mode => 0)
|
163
|
+
expect(Puppet::FileSystem).to receive(:lstat).with('/foo').and_return(fstat)
|
164
|
+
expect(self).to receive(:find_fs).with("/foo").and_return("ext3")
|
165
|
+
expect(Selinux).to receive(:matchpathcon).with("/foo", 0).and_return(-1)
|
166
|
+
|
167
|
+
expect(get_selinux_default_context("/foo")).to be_nil
|
228
168
|
end
|
229
169
|
|
230
170
|
it "should return nil if selinux_label_support returns false" do
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
expect(get_selinux_default_context("/foo")).to be_nil
|
235
|
-
end
|
171
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
172
|
+
expect(self).to receive(:find_fs).with("/foo").and_return("nfs")
|
173
|
+
expect(get_selinux_default_context("/foo")).to be_nil
|
236
174
|
end
|
237
175
|
end
|
238
176
|
|
@@ -323,47 +261,37 @@ describe Puppet::Util::SELinux do
|
|
323
261
|
end
|
324
262
|
|
325
263
|
it "should use lsetfilecon to set a context" do
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
expect(set_selinux_context("/foo", "user_u:role_r:type_t:s0")).to be_truthy
|
330
|
-
end
|
264
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
265
|
+
expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
|
266
|
+
expect(set_selinux_context("/foo", "user_u:role_r:type_t:s0")).to be_truthy
|
331
267
|
end
|
332
268
|
|
333
269
|
it "should use lsetfilecon to set user_u user context" do
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
expect(set_selinux_context("/foo", "user_u", :seluser)).to be_truthy
|
339
|
-
end
|
270
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
271
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "foo:role_r:type_t:s0"])
|
272
|
+
expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
|
273
|
+
expect(set_selinux_context("/foo", "user_u", :seluser)).to be_truthy
|
340
274
|
end
|
341
275
|
|
342
276
|
it "should use lsetfilecon to set role_r role context" do
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
expect(set_selinux_context("/foo", "role_r", :selrole)).to be_truthy
|
348
|
-
end
|
277
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
278
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:foo:type_t:s0"])
|
279
|
+
expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
|
280
|
+
expect(set_selinux_context("/foo", "role_r", :selrole)).to be_truthy
|
349
281
|
end
|
350
282
|
|
351
283
|
it "should use lsetfilecon to set type_t type context" do
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
expect(set_selinux_context("/foo", "type_t", :seltype)).to be_truthy
|
357
|
-
end
|
284
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
285
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:foo:s0"])
|
286
|
+
expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0").and_return(0)
|
287
|
+
expect(set_selinux_context("/foo", "type_t", :seltype)).to be_truthy
|
358
288
|
end
|
359
289
|
|
360
290
|
it "should use lsetfilecon to set s0:c3,c5 range context" do
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
expect(set_selinux_context("/foo", "s0:c3,c5", :selrange)).to be_truthy
|
366
|
-
end
|
291
|
+
expect(self).to receive(:selinux_support?).and_return(true)
|
292
|
+
expect(Selinux).to receive(:lgetfilecon).with("/foo").and_return([0, "user_u:role_r:type_t:s0"])
|
293
|
+
expect(Selinux).to receive(:lsetfilecon).with("/foo", "user_u:role_r:type_t:s0:c3,c5").and_return(0)
|
294
|
+
expect(set_selinux_context("/foo", "s0:c3,c5", :selrange)).to be_truthy
|
367
295
|
end
|
368
296
|
end
|
369
297
|
|
@@ -374,44 +302,21 @@ describe Puppet::Util::SELinux do
|
|
374
302
|
end
|
375
303
|
|
376
304
|
it "should return nil if no default context exists" do
|
377
|
-
expect(self).to receive(:get_selinux_default_context).with("/foo"
|
305
|
+
expect(self).to receive(:get_selinux_default_context).with("/foo").and_return(nil)
|
378
306
|
expect(set_selinux_default_context("/foo")).to be_nil
|
379
307
|
end
|
380
308
|
|
381
309
|
it "should do nothing and return nil if the current context matches the default context" do
|
382
|
-
expect(self).to receive(:get_selinux_default_context).with("/foo"
|
310
|
+
expect(self).to receive(:get_selinux_default_context).with("/foo").and_return("user_u:role_r:type_t")
|
383
311
|
expect(self).to receive(:get_selinux_current_context).with("/foo").and_return("user_u:role_r:type_t")
|
384
312
|
expect(set_selinux_default_context("/foo")).to be_nil
|
385
313
|
end
|
386
314
|
|
387
315
|
it "should set and return the default context if current and default do not match" do
|
388
|
-
expect(self).to receive(:get_selinux_default_context).with("/foo"
|
316
|
+
expect(self).to receive(:get_selinux_default_context).with("/foo").and_return("user_u:role_r:type_t")
|
389
317
|
expect(self).to receive(:get_selinux_current_context).with("/foo").and_return("olduser_u:role_r:type_t")
|
390
318
|
expect(self).to receive(:set_selinux_context).with("/foo", "user_u:role_r:type_t").and_return(true)
|
391
319
|
expect(set_selinux_default_context("/foo")).to eq("user_u:role_r:type_t")
|
392
320
|
end
|
393
321
|
end
|
394
|
-
|
395
|
-
describe "get_create_mode" do
|
396
|
-
it "should return 0 if the resource is absent" do
|
397
|
-
expect(get_create_mode(:absent)).to eq(0)
|
398
|
-
end
|
399
|
-
|
400
|
-
it "should return mode with file type set to S_IFREG when resource is file" do
|
401
|
-
expect(get_create_mode(:present)).to eq(32768)
|
402
|
-
expect(get_create_mode(:file)).to eq(32768)
|
403
|
-
end
|
404
|
-
|
405
|
-
it "should return mode with file type set to S_IFDIR when resource is dir" do
|
406
|
-
expect(get_create_mode(:directory)).to eq(16384)
|
407
|
-
end
|
408
|
-
|
409
|
-
it "should return mode with file type set to S_IFLNK when resource is link" do
|
410
|
-
expect(get_create_mode(:link)).to eq(40960)
|
411
|
-
end
|
412
|
-
|
413
|
-
it "should return 0 for everything else" do
|
414
|
-
expect(get_create_mode("unknown")).to eq(0)
|
415
|
-
end
|
416
|
-
end
|
417
322
|
end
|
@@ -143,11 +143,9 @@ describe Puppet::Util::Storage do
|
|
143
143
|
end
|
144
144
|
|
145
145
|
it "should raise an error if the state file does not contain valid YAML and cannot be renamed" do
|
146
|
-
allow(File).to receive(:rename).and_call_original
|
147
|
-
|
148
146
|
write_state_file('{ invalid')
|
149
147
|
|
150
|
-
expect(File).to receive(:rename).
|
148
|
+
expect(File).to receive(:rename).and_raise(SystemCallError)
|
151
149
|
|
152
150
|
expect { Puppet::Util::Storage.load }.to raise_error(Puppet::Error, /Could not rename/)
|
153
151
|
end
|
@@ -14,14 +14,12 @@ describe Puppet::Util::SUIDManager do
|
|
14
14
|
pwent = double('pwent', :name => 'fred', :uid => 42, :gid => 42)
|
15
15
|
allow(Etc).to receive(:getpwuid).with(42).and_return(pwent)
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
allow(Process).to receive("#{id}=") {|value| xids[id] = value}
|
20
|
-
end
|
17
|
+
[:euid, :egid, :uid, :gid, :groups].each do |id|
|
18
|
+
allow(Process).to receive("#{id}=") {|value| xids[id] = value}
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
24
|
-
describe "#initgroups"
|
22
|
+
describe "#initgroups" do
|
25
23
|
it "should use the primary group of the user as the 'basegid'" do
|
26
24
|
expect(Process).to receive(:initgroups).with('fred', 42)
|
27
25
|
described_class.initgroups(42)
|
@@ -29,7 +27,7 @@ describe Puppet::Util::SUIDManager do
|
|
29
27
|
end
|
30
28
|
|
31
29
|
describe "#uid" do
|
32
|
-
it "should allow setting euid/egid"
|
30
|
+
it "should allow setting euid/egid" do
|
33
31
|
Puppet::Util::SUIDManager.egid = user[:gid]
|
34
32
|
Puppet::Util::SUIDManager.euid = user[:uid]
|
35
33
|
|
@@ -39,7 +37,8 @@ describe Puppet::Util::SUIDManager do
|
|
39
37
|
end
|
40
38
|
|
41
39
|
describe "#asuser" do
|
42
|
-
it "should not get or set euid/egid when not root"
|
40
|
+
it "should not get or set euid/egid when not root" do
|
41
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
43
42
|
allow(Process).to receive(:uid).and_return(1)
|
44
43
|
|
45
44
|
allow(Process).to receive(:egid).and_return(51)
|
@@ -50,12 +49,13 @@ describe Puppet::Util::SUIDManager do
|
|
50
49
|
expect(xids).to be_empty
|
51
50
|
end
|
52
51
|
|
53
|
-
context "when root and not
|
52
|
+
context "when root and not windows" do
|
54
53
|
before :each do
|
55
54
|
allow(Process).to receive(:uid).and_return(0)
|
55
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
56
56
|
end
|
57
57
|
|
58
|
-
it "should set euid/egid"
|
58
|
+
it "should set euid/egid" do
|
59
59
|
allow(Process).to receive(:egid).and_return(51, 51, user[:gid])
|
60
60
|
allow(Process).to receive(:euid).and_return(50, 50, user[:uid])
|
61
61
|
|
@@ -79,23 +79,29 @@ describe Puppet::Util::SUIDManager do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should just yield if user and group are nil" do
|
82
|
-
|
82
|
+
yielded = false
|
83
|
+
Puppet::Util::SUIDManager.asuser(nil, nil) { yielded = true }
|
84
|
+
expect(yielded).to be_truthy
|
83
85
|
expect(xids).to eq({})
|
84
86
|
end
|
85
87
|
|
86
|
-
it "should just change group if only group is given"
|
87
|
-
|
88
|
+
it "should just change group if only group is given" do
|
89
|
+
yielded = false
|
90
|
+
Puppet::Util::SUIDManager.asuser(nil, 42) { yielded = true }
|
91
|
+
expect(yielded).to be_truthy
|
88
92
|
expect(xids).to eq({ :egid => 42 })
|
89
93
|
end
|
90
94
|
|
91
|
-
it "should change gid to the primary group of uid by default"
|
95
|
+
it "should change gid to the primary group of uid by default" do
|
92
96
|
allow(Process).to receive(:initgroups)
|
93
97
|
|
94
|
-
|
98
|
+
yielded = false
|
99
|
+
Puppet::Util::SUIDManager.asuser(42) { yielded = true }
|
100
|
+
expect(yielded).to be_truthy
|
95
101
|
expect(xids).to eq({ :euid => 42, :egid => 42 })
|
96
102
|
end
|
97
103
|
|
98
|
-
it "should change both uid and gid if given"
|
104
|
+
it "should change both uid and gid if given" do
|
99
105
|
# I don't like the sequence, but it is the only way to assert on the
|
100
106
|
# internal behaviour in a reliable fashion, given we need multiple
|
101
107
|
# sequenced calls to the same methods. --daniel 2012-02-05
|
@@ -104,23 +110,21 @@ describe Puppet::Util::SUIDManager do
|
|
104
110
|
expect(Puppet::Util::SUIDManager).to receive(:change_group).with(Puppet::Util::SUIDManager.egid, false).ordered()
|
105
111
|
expect(Puppet::Util::SUIDManager).to receive(:change_user).with(Puppet::Util::SUIDManager.euid, false).ordered()
|
106
112
|
|
107
|
-
|
113
|
+
yielded = false
|
114
|
+
Puppet::Util::SUIDManager.asuser(42, 43) { yielded = true }
|
115
|
+
expect(yielded).to be_truthy
|
108
116
|
end
|
109
117
|
end
|
110
118
|
|
111
|
-
it "should
|
112
|
-
|
119
|
+
it "should not get or set euid/egid on Windows", if: Puppet::Util::Platform.windows? do
|
120
|
+
Puppet::Util::SUIDManager.asuser(user[:uid], user[:gid]) {}
|
121
|
+
|
122
|
+
expect(xids).to be_empty
|
113
123
|
end
|
114
124
|
end
|
115
125
|
|
116
126
|
describe "#change_group" do
|
117
|
-
|
118
|
-
expect {
|
119
|
-
Puppet::Util::SUIDManager.change_group(42, true)
|
120
|
-
}.to raise_error(NotImplementedError, /change_privilege\(\) function is unimplemented/)
|
121
|
-
end
|
122
|
-
|
123
|
-
describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
|
127
|
+
describe "when changing permanently" do
|
124
128
|
it "should change_privilege" do
|
125
129
|
expect(Process::GID).to receive(:change_privilege) do |gid|
|
126
130
|
Process.gid = gid
|
@@ -146,7 +150,7 @@ describe Puppet::Util::SUIDManager do
|
|
146
150
|
end
|
147
151
|
end
|
148
152
|
|
149
|
-
describe "when changing temporarily"
|
153
|
+
describe "when changing temporarily" do
|
150
154
|
it "should change only egid" do
|
151
155
|
Puppet::Util::SUIDManager.change_group(42, false)
|
152
156
|
|
@@ -157,13 +161,7 @@ describe Puppet::Util::SUIDManager do
|
|
157
161
|
end
|
158
162
|
|
159
163
|
describe "#change_user" do
|
160
|
-
|
161
|
-
expect {
|
162
|
-
Puppet::Util::SUIDManager.change_user(42, true)
|
163
|
-
}.to raise_error(NotImplementedError, /initgroups\(\) function is unimplemented/)
|
164
|
-
end
|
165
|
-
|
166
|
-
describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
|
164
|
+
describe "when changing permanently" do
|
167
165
|
it "should change_privilege" do
|
168
166
|
expect(Process::UID).to receive(:change_privilege) do |uid|
|
169
167
|
Process.uid = uid
|
@@ -193,7 +191,7 @@ describe Puppet::Util::SUIDManager do
|
|
193
191
|
end
|
194
192
|
end
|
195
193
|
|
196
|
-
describe "when changing temporarily"
|
194
|
+
describe "when changing temporarily" do
|
197
195
|
it "should change only euid and groups" do
|
198
196
|
allow(Puppet::Util::SUIDManager).to receive(:initgroups).and_return([])
|
199
197
|
Puppet::Util::SUIDManager.change_user(42, false)
|
@@ -223,7 +221,12 @@ describe Puppet::Util::SUIDManager do
|
|
223
221
|
end
|
224
222
|
|
225
223
|
describe "#root?" do
|
226
|
-
describe "on POSIX systems"
|
224
|
+
describe "on POSIX systems" do
|
225
|
+
before :each do
|
226
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
227
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
228
|
+
end
|
229
|
+
|
227
230
|
it "should be root if uid is 0" do
|
228
231
|
allow(Process).to receive(:uid).and_return(0)
|
229
232
|
|
@@ -237,7 +240,7 @@ describe Puppet::Util::SUIDManager do
|
|
237
240
|
end
|
238
241
|
end
|
239
242
|
|
240
|
-
describe "on Windows", :if => Puppet::Util::Platform.windows? do
|
243
|
+
describe "on Microsoft Windows", :if => Puppet::Util::Platform.windows? do
|
241
244
|
it "should be root if user is privileged" do
|
242
245
|
allow(Puppet::Util::Windows::User).to receive(:admin?).and_return(true)
|
243
246
|
|
@@ -258,19 +261,13 @@ describe 'Puppet::Util::SUIDManager#groups=' do
|
|
258
261
|
Puppet::Util::SUIDManager
|
259
262
|
end
|
260
263
|
|
261
|
-
it "
|
262
|
-
expect {
|
263
|
-
subject.groups = []
|
264
|
-
}.to raise_error(NotImplementedError, /groups=\(\) function is unimplemented/)
|
265
|
-
end
|
266
|
-
|
267
|
-
it "(#3419) should rescue Errno::EINVAL on OS X", unless: Puppet::Util::Platform.windows? do
|
264
|
+
it "(#3419) should rescue Errno::EINVAL on OS X" do
|
268
265
|
expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
|
269
266
|
expect(subject).to receive(:osx_maj_ver).and_return('10.7').twice
|
270
267
|
subject.groups = ['list', 'of', 'groups']
|
271
268
|
end
|
272
269
|
|
273
|
-
it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X"
|
270
|
+
it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X" do
|
274
271
|
expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
|
275
272
|
expect(subject).to receive(:osx_maj_ver).and_return(false)
|
276
273
|
expect { subject.groups = ['list', 'of', 'groups'] }.to raise_error(Errno::EINVAL)
|
@@ -131,74 +131,33 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
|
|
131
131
|
expect(subject.name_to_principal(unknown_name)).to be_nil
|
132
132
|
end
|
133
133
|
|
134
|
-
it "should print a debug message if the account does not exist" do
|
135
|
-
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
136
|
-
subject.name_to_principal(unknown_name)
|
137
|
-
end
|
138
|
-
|
139
134
|
it "should return a Puppet::Util::Windows::SID::Principal instance for any valid sid" do
|
140
135
|
expect(subject.name_to_principal(sid)).to be_an_instance_of(Puppet::Util::Windows::SID::Principal)
|
141
136
|
end
|
142
137
|
|
143
|
-
it "should not print debug messages for valid sid" do
|
144
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
145
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
146
|
-
subject.name_to_principal(sid)
|
147
|
-
end
|
148
|
-
|
149
|
-
it "should print a debug message for invalid sid" do
|
150
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
151
|
-
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
152
|
-
subject.name_to_principal('S-1-5-21-INVALID-SID')
|
153
|
-
end
|
154
|
-
|
155
138
|
it "should accept unqualified account name" do
|
156
139
|
# NOTE: lookup by name works in localized environments only for a few instances
|
157
140
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
158
141
|
expect(subject.name_to_principal('SYSTEM').sid).to eq(sid)
|
159
142
|
end
|
160
143
|
|
161
|
-
it "should not print debug messages for unqualified account name" do
|
162
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
163
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
164
|
-
subject.name_to_principal('SYSTEM')
|
165
|
-
end
|
166
|
-
|
167
144
|
it "should be case-insensitive" do
|
168
145
|
# NOTE: lookup by name works in localized environments only for a few instances
|
169
146
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
170
147
|
expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal('system'))
|
171
148
|
end
|
172
149
|
|
173
|
-
it "should not print debug messages for wrongly cased account name" do
|
174
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
175
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
176
|
-
subject.name_to_principal('system')
|
177
|
-
end
|
178
|
-
|
179
150
|
it "should be leading and trailing whitespace-insensitive" do
|
180
151
|
# NOTE: lookup by name works in localized environments only for a few instances
|
181
152
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
182
153
|
expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal(' SYSTEM '))
|
183
154
|
end
|
184
155
|
|
185
|
-
it "should not print debug messages for account name with leading and trailing whitespace" do
|
186
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
187
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
188
|
-
subject.name_to_principal(' SYSTEM ')
|
189
|
-
end
|
190
|
-
|
191
156
|
it "should accept domain qualified account names" do
|
192
157
|
# NOTE: lookup by name works in localized environments only for a few instances
|
193
158
|
# this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
|
194
159
|
expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
|
195
160
|
end
|
196
|
-
|
197
|
-
it "should not print debug messages for domain qualified account names" do
|
198
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
199
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
200
|
-
subject.name_to_principal('NT AUTHORITY\SYSTEM')
|
201
|
-
end
|
202
161
|
end
|
203
162
|
|
204
163
|
context "#ads_to_principal" do
|
@@ -4,15 +4,13 @@ require 'spec_helper'
|
|
4
4
|
require 'puppet/util/windows'
|
5
5
|
|
6
6
|
describe "Puppet::Util::Windows::String", :if => Puppet::Util::Platform.windows? do
|
7
|
-
UTF16_NULL = [0, 0]
|
8
|
-
|
9
7
|
def wide_string(str)
|
10
8
|
Puppet::Util::Windows::String.wide_string(str)
|
11
9
|
end
|
12
10
|
|
13
11
|
def converts_to_wide_string(string_value)
|
14
12
|
expected = string_value.encode(Encoding::UTF_16LE)
|
15
|
-
expected_bytes = expected.bytes.to_a
|
13
|
+
expected_bytes = expected.bytes.to_a
|
16
14
|
|
17
15
|
expect(wide_string(string_value).bytes.to_a).to eq(expected_bytes)
|
18
16
|
end
|