puppet 6.24.0-x64-mingw32 → 7.0.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +1 -3
- data/Gemfile.lock +35 -47
- data/README.md +5 -5
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -15
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +14 -23
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application/agent.rb +4 -12
- data/lib/puppet/application/apply.rb +2 -4
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -10
- data/lib/puppet/application/resource.rb +3 -17
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -13
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/configurer.rb +30 -45
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +100 -192
- data/lib/puppet/environments.rb +60 -84
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/node/clean.rb +0 -11
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- 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/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- 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.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +1 -1
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +2 -4
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/repository.rb +0 -1
- 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/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.rb +22 -13
- 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.rb +5 -15
- 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/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.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -138
- 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/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/compiler.rb +0 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- 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/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/interface/documentation.rb +0 -1
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -52
- 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.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- 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_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +3 -1
- data/lib/puppet/parser/ast/leaf.rb +2 -3
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- 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/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +0 -45
- 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 +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- 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_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- 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.rb +0 -13
- data/lib/puppet/provider/exec/posix.rb +4 -16
- data/lib/puppet/provider/group/groupadd.rb +8 -13
- 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 +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/parsedfile.rb +0 -3
- data/lib/puppet/provider/service/debian.rb +0 -2
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/systemd.rb +4 -14
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +10 -33
- data/lib/puppet/provider/user/useradd.rb +8 -62
- data/lib/puppet/reference/configuration.rb +8 -7
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +80 -96
- 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/ssl.rb +10 -6
- 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/test/test_helper.rb +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/exec.rb +3 -16
- data/lib/puppet/type/file.rb +6 -26
- 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/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +8 -16
- data/lib/puppet/type/service.rb +38 -18
- data/lib/puppet/type/tidy.rb +3 -22
- data/lib/puppet/type/user.rb +20 -38
- data/lib/puppet/util/autoload.rb +8 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -53
- data/lib/puppet/util/posix.rb +5 -54
- 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/symbolic_file_mode.rb +17 -29
- data/lib/puppet/util/windows.rb +3 -8
- 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/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +722 -1527
- data/man/man5/puppet.conf.5 +266 -354
- data/man/man8/puppet-agent.8 +2 -2
- 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 +1 -58
- 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 +27 -171
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -27
- 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/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 +36 -90
- 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_spec.rb +9 -4
- data/spec/integration/type/exec_spec.rb +45 -70
- data/spec/integration/type/file_spec.rb +5 -4
- 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/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/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -1
- data/spec/spec_helper.rb +7 -12
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- 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 +12 -32
- 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 -54
- data/spec/unit/environments_spec.rb +68 -259
- data/spec/unit/face/node_spec.rb +11 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- 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 -15
- 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/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 -185
- 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 -14
- 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 +12 -8
- 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_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -78
- 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 -45
- 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_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 -1
- 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 -6
- 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 +32 -0
- 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/pip_spec.rb +11 -43
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/init_spec.rb +0 -1
- 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 +8 -53
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -5
- data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
- 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 +3 -71
- data/spec/unit/provider_spec.rb +8 -18
- 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 +15 -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 -60
- data/spec/unit/type/tidy_spec.rb +8 -24
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/type_spec.rb +22 -2
- 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 -3
- 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
- metadata +45 -253
- data/conf/auth.conf +0 -150
- 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/ffi/posix.rb +0 -10
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.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.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- 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.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/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.rb +0 -122
- 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/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/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/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- 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/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 -422
- 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
@@ -1,12 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Puppet::Util::RunMode do
|
4
|
-
# Discriminator for tests that attempts to unset HOME since that, for reasons currently unknown,
|
5
|
-
# doesn't work in Ruby >= 2.4.0
|
6
|
-
def self.gte_ruby_2_4
|
7
|
-
@gte_ruby_2_4 ||= SemanticPuppet::Version.parse(RUBY_VERSION) >= SemanticPuppet::Version.parse('2.4.0')
|
8
|
-
end
|
9
|
-
|
10
4
|
before do
|
11
5
|
@run_mode = Puppet::Util::RunMode.new('fake')
|
12
6
|
end
|
@@ -34,14 +28,6 @@ describe Puppet::Util::RunMode do
|
|
34
28
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path('~/.puppetlabs/etc/puppet')) }
|
35
29
|
end
|
36
30
|
end
|
37
|
-
|
38
|
-
it "fails when asking for the conf_dir as non-root and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
39
|
-
as_non_root do
|
40
|
-
without_home do
|
41
|
-
expect { @run_mode.conf_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
31
|
end
|
46
32
|
|
47
33
|
describe "#code_dir" do
|
@@ -62,14 +48,6 @@ describe Puppet::Util::RunMode do
|
|
62
48
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path('~/.puppetlabs/etc/code')) }
|
63
49
|
end
|
64
50
|
end
|
65
|
-
|
66
|
-
it "fails when asking for the code_dir as non-root and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
67
|
-
as_non_root do
|
68
|
-
without_home do
|
69
|
-
expect { @run_mode.code_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
51
|
end
|
74
52
|
|
75
53
|
describe "#var_dir" do
|
@@ -80,13 +58,15 @@ describe Puppet::Util::RunMode do
|
|
80
58
|
it "has vardir ~/.puppetlabs/opt/puppet/cache when run as non-root" do
|
81
59
|
as_non_root { expect(@run_mode.var_dir).to eq(File.expand_path('~/.puppetlabs/opt/puppet/cache')) }
|
82
60
|
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#public_dir" do
|
64
|
+
it "has publicdir /opt/puppetlabs/puppet/public when run as root" do
|
65
|
+
as_root { expect(@run_mode.public_dir).to eq(File.expand_path('/opt/puppetlabs/puppet/public')) }
|
66
|
+
end
|
83
67
|
|
84
|
-
it "
|
85
|
-
as_non_root
|
86
|
-
without_home do
|
87
|
-
expect { @run_mode.var_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
88
|
-
end
|
89
|
-
end
|
68
|
+
it "has publicdir ~/.puppetlabs/opt/puppet/public when run as non-root" do
|
69
|
+
as_non_root { expect(@run_mode.public_dir).to eq(File.expand_path('~/.puppetlabs/opt/puppet/public')) }
|
90
70
|
end
|
91
71
|
end
|
92
72
|
|
@@ -101,14 +81,6 @@ describe Puppet::Util::RunMode do
|
|
101
81
|
it "has default logdir ~/.puppetlabs/var/log" do
|
102
82
|
as_non_root { expect(@run_mode.log_dir).to eq(File.expand_path('~/.puppetlabs/var/log')) }
|
103
83
|
end
|
104
|
-
|
105
|
-
it "fails when asking for the log_dir and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
106
|
-
as_non_root do
|
107
|
-
without_home do
|
108
|
-
expect { @run_mode.log_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
84
|
end
|
113
85
|
end
|
114
86
|
|
@@ -123,103 +95,59 @@ describe Puppet::Util::RunMode do
|
|
123
95
|
it "has default rundir ~/.puppetlabs/var/run" do
|
124
96
|
as_non_root { expect(@run_mode.run_dir).to eq(File.expand_path('~/.puppetlabs/var/run')) }
|
125
97
|
end
|
126
|
-
|
127
|
-
it "fails when asking for the run_dir and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
128
|
-
as_non_root do
|
129
|
-
without_home do
|
130
|
-
expect { @run_mode.run_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
98
|
end
|
135
99
|
end
|
136
100
|
end
|
137
101
|
|
138
102
|
describe Puppet::Util::WindowsRunMode, :if => Puppet::Util::Platform.windows? do
|
139
103
|
before do
|
140
|
-
if not Dir.const_defined? :COMMON_APPDATA
|
141
|
-
Dir.const_set :COMMON_APPDATA, "/CommonFakeBase"
|
142
|
-
@remove_const = true
|
143
|
-
end
|
144
104
|
@run_mode = Puppet::Util::WindowsRunMode.new('fake')
|
145
105
|
end
|
146
106
|
|
147
|
-
after do
|
148
|
-
if @remove_const
|
149
|
-
Dir.send :remove_const, :COMMON_APPDATA
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
107
|
describe "#conf_dir" do
|
154
108
|
it "has confdir ending in Puppetlabs/puppet/etc when run as root" do
|
155
|
-
as_root { expect(@run_mode.conf_dir).to eq(File.expand_path(File.join(
|
109
|
+
as_root { expect(@run_mode.conf_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "etc"))) }
|
156
110
|
end
|
157
111
|
|
158
112
|
it "has confdir in ~/.puppetlabs/etc/puppet when run as non-root" do
|
159
113
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path("~/.puppetlabs/etc/puppet")) }
|
160
114
|
end
|
161
|
-
|
162
|
-
it "fails when asking for the conf_dir as non-root and there is no %HOME%, %HOMEDRIVE%, and %USERPROFILE%", :unless => gte_ruby_2_4 do
|
163
|
-
as_non_root do
|
164
|
-
without_env('HOME') do
|
165
|
-
without_env('HOMEDRIVE') do
|
166
|
-
without_env('USERPROFILE') do
|
167
|
-
expect { @run_mode.conf_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
end
|
173
115
|
end
|
174
116
|
|
175
117
|
describe "#code_dir" do
|
176
118
|
it "has codedir ending in PuppetLabs/code when run as root" do
|
177
|
-
as_root { expect(@run_mode.code_dir).to eq(File.expand_path(File.join(
|
119
|
+
as_root { expect(@run_mode.code_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "code"))) }
|
178
120
|
end
|
179
121
|
|
180
122
|
it "has codedir in ~/.puppetlabs/etc/code when run as non-root" do
|
181
123
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path("~/.puppetlabs/etc/code")) }
|
182
124
|
end
|
183
|
-
|
184
|
-
it "fails when asking for the code_dir as non-root and there is no %HOME%, %HOMEDRIVE%, and %USERPROFILE%", :unless => gte_ruby_2_4 do
|
185
|
-
as_non_root do
|
186
|
-
without_env('HOME') do
|
187
|
-
without_env('HOMEDRIVE') do
|
188
|
-
without_env('USERPROFILE') do
|
189
|
-
expect { @run_mode.code_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
125
|
end
|
196
126
|
|
197
127
|
describe "#var_dir" do
|
198
128
|
it "has vardir ending in PuppetLabs/puppet/cache when run as root" do
|
199
|
-
as_root { expect(@run_mode.var_dir).to eq(File.expand_path(File.join(
|
129
|
+
as_root { expect(@run_mode.var_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "cache"))) }
|
200
130
|
end
|
201
131
|
|
202
132
|
it "has vardir in ~/.puppetlabs/opt/puppet/cache when run as non-root" do
|
203
133
|
as_non_root { expect(@run_mode.var_dir).to eq(File.expand_path("~/.puppetlabs/opt/puppet/cache")) }
|
204
134
|
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "#public_dir" do
|
138
|
+
it "has publicdir ending in PuppetLabs/puppet/public when run as root" do
|
139
|
+
as_root { expect(@run_mode.public_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "public"))) }
|
140
|
+
end
|
205
141
|
|
206
|
-
it "
|
207
|
-
as_non_root
|
208
|
-
without_env('HOME') do
|
209
|
-
without_env('HOMEDRIVE') do
|
210
|
-
without_env('USERPROFILE') do
|
211
|
-
expect { @run_mode.var_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
142
|
+
it "has publicdir in ~/.puppetlabs/opt/puppet/public when run as non-root" do
|
143
|
+
as_non_root { expect(@run_mode.public_dir).to eq(File.expand_path("~/.puppetlabs/opt/puppet/public")) }
|
216
144
|
end
|
217
145
|
end
|
218
146
|
|
219
147
|
describe "#log_dir" do
|
220
148
|
describe "when run as root" do
|
221
149
|
it "has logdir ending in PuppetLabs/puppet/var/log" do
|
222
|
-
as_root { expect(@run_mode.log_dir).to eq(File.expand_path(File.join(
|
150
|
+
as_root { expect(@run_mode.log_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "log"))) }
|
223
151
|
end
|
224
152
|
end
|
225
153
|
|
@@ -227,25 +155,13 @@ describe Puppet::Util::RunMode do
|
|
227
155
|
it "has default logdir ~/.puppetlabs/var/log" do
|
228
156
|
as_non_root { expect(@run_mode.log_dir).to eq(File.expand_path('~/.puppetlabs/var/log')) }
|
229
157
|
end
|
230
|
-
|
231
|
-
it "fails when asking for the log_dir and there is no $HOME", :unless => gte_ruby_2_4 do
|
232
|
-
as_non_root do
|
233
|
-
without_env('HOME') do
|
234
|
-
without_env('HOMEDRIVE') do
|
235
|
-
without_env('USERPROFILE') do
|
236
|
-
expect { @run_mode.log_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
237
|
-
end
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
end
|
242
158
|
end
|
243
159
|
end
|
244
160
|
|
245
161
|
describe "#run_dir" do
|
246
162
|
describe "when run as root" do
|
247
163
|
it "has rundir ending in PuppetLabs/puppet/var/run" do
|
248
|
-
as_root { expect(@run_mode.run_dir).to eq(File.expand_path(File.join(
|
164
|
+
as_root { expect(@run_mode.run_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "run"))) }
|
249
165
|
end
|
250
166
|
end
|
251
167
|
|
@@ -253,18 +169,6 @@ describe Puppet::Util::RunMode do
|
|
253
169
|
it "has default rundir ~/.puppetlabs/var/run" do
|
254
170
|
as_non_root { expect(@run_mode.run_dir).to eq(File.expand_path('~/.puppetlabs/var/run')) }
|
255
171
|
end
|
256
|
-
|
257
|
-
it "fails when asking for the run_dir and there is no $HOME", :unless => gte_ruby_2_4 do
|
258
|
-
as_non_root do
|
259
|
-
without_env('HOME') do
|
260
|
-
without_env('HOMEDRIVE') do
|
261
|
-
without_env('USERPROFILE') do
|
262
|
-
expect { @run_mode.run_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
263
|
-
end
|
264
|
-
end
|
265
|
-
end
|
266
|
-
end
|
267
|
-
end
|
268
172
|
end
|
269
173
|
end
|
270
174
|
|
@@ -310,8 +214,4 @@ describe Puppet::Util::RunMode do
|
|
310
214
|
ensure
|
311
215
|
Puppet::Util.set_env(name, saved)
|
312
216
|
end
|
313
|
-
|
314
|
-
def without_home(&block)
|
315
|
-
without_env('HOME', &block)
|
316
|
-
end
|
317
217
|
end
|
@@ -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
|