puppet 6.20.0-x64-mingw32 → 7.0.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/Gemfile +0 -2
- data/Gemfile.lock +18 -24
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +1 -14
- 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 +11 -20
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application/agent.rb +0 -1
- data/lib/puppet/application/apply.rb +2 -3
- data/lib/puppet/application/device.rb +100 -105
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/script.rb +0 -1
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/configurer.rb +30 -45
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +97 -167
- data/lib/puppet/environments.rb +59 -58
- data/lib/puppet/face/facts.rb +51 -51
- data/lib/puppet/face/help.rb +1 -1
- 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/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- 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 -11
- 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 +6 -10
- 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 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- 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/rest.rb +2 -4
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- 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 -9
- 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/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -48
- data/lib/puppet/module_tool/errors/shared.rb +2 -17
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- 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/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/type_calculator.rb +0 -7
- 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/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +0 -4
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- 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/service/smf.rb +191 -73
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +7 -6
- 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 +73 -66
- 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/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.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 +5 -13
- 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 -46
- 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/windows.rb +3 -8
- 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/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- 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 +587 -1312
- data/man/man5/puppet.conf.5 +39 -99
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- 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 +51 -36
- 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 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- 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 -138
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +14 -3
- 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/file_spec.rb +5 -4
- data/spec/integration/util/windows/adsi_spec.rb +1 -3
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/registry_spec.rb +10 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/spec_helper.rb +6 -1
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +1 -0
- data/spec/unit/application/facts_spec.rb +35 -0
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- 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 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- 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 +72 -42
- data/spec/unit/environments_spec.rb +19 -99
- data/spec/unit/face/facts_spec.rb +4 -0
- 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/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/forge/module_release_spec.rb +7 -2
- 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/upcase_spec.rb +1 -1
- 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 -11
- 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 -62
- 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/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +98 -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/rest_spec.rb +98 -752
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
- 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 -4
- 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/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +3 -4
- 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/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/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +8 -4
- data/spec/unit/provider/package/base_spec.rb +5 -6
- 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/pacman_spec.rb +12 -18
- data/spec/unit/provider/package/pip_spec.rb +11 -6
- 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/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider/user/aix_spec.rb +0 -5
- 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 +0 -1
- data/spec/unit/provider_spec.rb +8 -18
- 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 +23 -13
- 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 +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +7 -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 +48 -91
- 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 +2 -0
- data/spec/unit/type/file/source_spec.rb +0 -1
- 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 +1 -1
- data/spec/unit/type/tidy_spec.rb +1 -0
- 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 +52 -76
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- 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
- metadata +40 -233
- 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 -62
- 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/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
|
@@ -111,19 +111,15 @@ describe Puppet::Util::SELinux do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should return a context" do
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
expect(get_selinux_current_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
118
|
-
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")
|
119
117
|
end
|
120
118
|
|
121
119
|
it "should return nil if lgetfilecon fails" do
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
expect(get_selinux_current_context("/foo")).to be_nil
|
126
|
-
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
|
127
123
|
end
|
128
124
|
end
|
129
125
|
|
@@ -134,57 +130,47 @@ describe Puppet::Util::SELinux do
|
|
134
130
|
end
|
135
131
|
|
136
132
|
it "should return a context if a default context exists" do
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
145
|
-
end
|
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"])
|
138
|
+
|
139
|
+
expect(get_selinux_default_context("/foo")).to eq("user_u:role_r:type_t:s0")
|
146
140
|
end
|
147
141
|
|
148
142
|
it "handles permission denied errors by issuing a warning" do
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::EACCES, "/root/chuj")
|
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")
|
154
147
|
|
155
|
-
|
156
|
-
end
|
148
|
+
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
157
149
|
end
|
158
150
|
|
159
151
|
it "handles no such file or directory errors by issuing a warning" do
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
allow(self).to receive(:file_lstat).with("/root/chuj").and_raise(Errno::ENOENT, "/root/chuj")
|
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")
|
165
156
|
|
166
|
-
|
167
|
-
end
|
157
|
+
expect(get_selinux_default_context("/root/chuj")).to be_nil
|
168
158
|
end
|
169
159
|
|
170
160
|
it "should return nil if matchpathcon returns failure" do
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
expect(get_selinux_default_context("/foo")).to be_nil
|
179
|
-
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
|
180
168
|
end
|
181
169
|
|
182
170
|
it "should return nil if selinux_label_support returns false" do
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
expect(get_selinux_default_context("/foo")).to be_nil
|
187
|
-
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
|
188
174
|
end
|
189
175
|
end
|
190
176
|
|
@@ -275,47 +261,37 @@ describe Puppet::Util::SELinux do
|
|
275
261
|
end
|
276
262
|
|
277
263
|
it "should use lsetfilecon to set a context" do
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
expect(set_selinux_context("/foo", "user_u:role_r:type_t:s0")).to be_truthy
|
282
|
-
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
|
283
267
|
end
|
284
268
|
|
285
269
|
it "should use lsetfilecon to set user_u user context" do
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
expect(set_selinux_context("/foo", "user_u", :seluser)).to be_truthy
|
291
|
-
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
|
292
274
|
end
|
293
275
|
|
294
276
|
it "should use lsetfilecon to set role_r role context" do
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
expect(set_selinux_context("/foo", "role_r", :selrole)).to be_truthy
|
300
|
-
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
|
301
281
|
end
|
302
282
|
|
303
283
|
it "should use lsetfilecon to set type_t type context" do
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
expect(set_selinux_context("/foo", "type_t", :seltype)).to be_truthy
|
309
|
-
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
|
310
288
|
end
|
311
289
|
|
312
290
|
it "should use lsetfilecon to set s0:c3,c5 range context" do
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
expect(set_selinux_context("/foo", "s0:c3,c5", :selrange)).to be_truthy
|
318
|
-
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
|
319
295
|
end
|
320
296
|
end
|
321
297
|
|
@@ -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)
|