puppet 6.24.0-x64-mingw32 → 7.0.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +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
@@ -143,11 +143,9 @@ describe Puppet::Util::Storage do
|
|
143
143
|
end
|
144
144
|
|
145
145
|
it "should raise an error if the state file does not contain valid YAML and cannot be renamed" do
|
146
|
-
allow(File).to receive(:rename).and_call_original
|
147
|
-
|
148
146
|
write_state_file('{ invalid')
|
149
147
|
|
150
|
-
expect(File).to receive(:rename).
|
148
|
+
expect(File).to receive(:rename).and_raise(SystemCallError)
|
151
149
|
|
152
150
|
expect { Puppet::Util::Storage.load }.to raise_error(Puppet::Error, /Could not rename/)
|
153
151
|
end
|
@@ -14,14 +14,12 @@ describe Puppet::Util::SUIDManager do
|
|
14
14
|
pwent = double('pwent', :name => 'fred', :uid => 42, :gid => 42)
|
15
15
|
allow(Etc).to receive(:getpwuid).with(42).and_return(pwent)
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
allow(Process).to receive("#{id}=") {|value| xids[id] = value}
|
20
|
-
end
|
17
|
+
[:euid, :egid, :uid, :gid, :groups].each do |id|
|
18
|
+
allow(Process).to receive("#{id}=") {|value| xids[id] = value}
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
24
|
-
describe "#initgroups"
|
22
|
+
describe "#initgroups" do
|
25
23
|
it "should use the primary group of the user as the 'basegid'" do
|
26
24
|
expect(Process).to receive(:initgroups).with('fred', 42)
|
27
25
|
described_class.initgroups(42)
|
@@ -29,7 +27,7 @@ describe Puppet::Util::SUIDManager do
|
|
29
27
|
end
|
30
28
|
|
31
29
|
describe "#uid" do
|
32
|
-
it "should allow setting euid/egid"
|
30
|
+
it "should allow setting euid/egid" do
|
33
31
|
Puppet::Util::SUIDManager.egid = user[:gid]
|
34
32
|
Puppet::Util::SUIDManager.euid = user[:uid]
|
35
33
|
|
@@ -39,7 +37,8 @@ describe Puppet::Util::SUIDManager do
|
|
39
37
|
end
|
40
38
|
|
41
39
|
describe "#asuser" do
|
42
|
-
it "should not get or set euid/egid when not root"
|
40
|
+
it "should not get or set euid/egid when not root" do
|
41
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
43
42
|
allow(Process).to receive(:uid).and_return(1)
|
44
43
|
|
45
44
|
allow(Process).to receive(:egid).and_return(51)
|
@@ -50,12 +49,13 @@ describe Puppet::Util::SUIDManager do
|
|
50
49
|
expect(xids).to be_empty
|
51
50
|
end
|
52
51
|
|
53
|
-
context "when root and not
|
52
|
+
context "when root and not windows" do
|
54
53
|
before :each do
|
55
54
|
allow(Process).to receive(:uid).and_return(0)
|
55
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
56
56
|
end
|
57
57
|
|
58
|
-
it "should set euid/egid"
|
58
|
+
it "should set euid/egid" do
|
59
59
|
allow(Process).to receive(:egid).and_return(51, 51, user[:gid])
|
60
60
|
allow(Process).to receive(:euid).and_return(50, 50, user[:uid])
|
61
61
|
|
@@ -79,23 +79,29 @@ describe Puppet::Util::SUIDManager do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should just yield if user and group are nil" do
|
82
|
-
|
82
|
+
yielded = false
|
83
|
+
Puppet::Util::SUIDManager.asuser(nil, nil) { yielded = true }
|
84
|
+
expect(yielded).to be_truthy
|
83
85
|
expect(xids).to eq({})
|
84
86
|
end
|
85
87
|
|
86
|
-
it "should just change group if only group is given"
|
87
|
-
|
88
|
+
it "should just change group if only group is given" do
|
89
|
+
yielded = false
|
90
|
+
Puppet::Util::SUIDManager.asuser(nil, 42) { yielded = true }
|
91
|
+
expect(yielded).to be_truthy
|
88
92
|
expect(xids).to eq({ :egid => 42 })
|
89
93
|
end
|
90
94
|
|
91
|
-
it "should change gid to the primary group of uid by default"
|
95
|
+
it "should change gid to the primary group of uid by default" do
|
92
96
|
allow(Process).to receive(:initgroups)
|
93
97
|
|
94
|
-
|
98
|
+
yielded = false
|
99
|
+
Puppet::Util::SUIDManager.asuser(42) { yielded = true }
|
100
|
+
expect(yielded).to be_truthy
|
95
101
|
expect(xids).to eq({ :euid => 42, :egid => 42 })
|
96
102
|
end
|
97
103
|
|
98
|
-
it "should change both uid and gid if given"
|
104
|
+
it "should change both uid and gid if given" do
|
99
105
|
# I don't like the sequence, but it is the only way to assert on the
|
100
106
|
# internal behaviour in a reliable fashion, given we need multiple
|
101
107
|
# sequenced calls to the same methods. --daniel 2012-02-05
|
@@ -104,23 +110,21 @@ describe Puppet::Util::SUIDManager do
|
|
104
110
|
expect(Puppet::Util::SUIDManager).to receive(:change_group).with(Puppet::Util::SUIDManager.egid, false).ordered()
|
105
111
|
expect(Puppet::Util::SUIDManager).to receive(:change_user).with(Puppet::Util::SUIDManager.euid, false).ordered()
|
106
112
|
|
107
|
-
|
113
|
+
yielded = false
|
114
|
+
Puppet::Util::SUIDManager.asuser(42, 43) { yielded = true }
|
115
|
+
expect(yielded).to be_truthy
|
108
116
|
end
|
109
117
|
end
|
110
118
|
|
111
|
-
it "should
|
112
|
-
|
119
|
+
it "should not get or set euid/egid on Windows", if: Puppet::Util::Platform.windows? do
|
120
|
+
Puppet::Util::SUIDManager.asuser(user[:uid], user[:gid]) {}
|
121
|
+
|
122
|
+
expect(xids).to be_empty
|
113
123
|
end
|
114
124
|
end
|
115
125
|
|
116
126
|
describe "#change_group" do
|
117
|
-
|
118
|
-
expect {
|
119
|
-
Puppet::Util::SUIDManager.change_group(42, true)
|
120
|
-
}.to raise_error(NotImplementedError, /change_privilege\(\) function is unimplemented/)
|
121
|
-
end
|
122
|
-
|
123
|
-
describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
|
127
|
+
describe "when changing permanently" do
|
124
128
|
it "should change_privilege" do
|
125
129
|
expect(Process::GID).to receive(:change_privilege) do |gid|
|
126
130
|
Process.gid = gid
|
@@ -146,7 +150,7 @@ describe Puppet::Util::SUIDManager do
|
|
146
150
|
end
|
147
151
|
end
|
148
152
|
|
149
|
-
describe "when changing temporarily"
|
153
|
+
describe "when changing temporarily" do
|
150
154
|
it "should change only egid" do
|
151
155
|
Puppet::Util::SUIDManager.change_group(42, false)
|
152
156
|
|
@@ -157,13 +161,7 @@ describe Puppet::Util::SUIDManager do
|
|
157
161
|
end
|
158
162
|
|
159
163
|
describe "#change_user" do
|
160
|
-
|
161
|
-
expect {
|
162
|
-
Puppet::Util::SUIDManager.change_user(42, true)
|
163
|
-
}.to raise_error(NotImplementedError, /initgroups\(\) function is unimplemented/)
|
164
|
-
end
|
165
|
-
|
166
|
-
describe "when changing permanently", unless: Puppet::Util::Platform.windows? do
|
164
|
+
describe "when changing permanently" do
|
167
165
|
it "should change_privilege" do
|
168
166
|
expect(Process::UID).to receive(:change_privilege) do |uid|
|
169
167
|
Process.uid = uid
|
@@ -193,7 +191,7 @@ describe Puppet::Util::SUIDManager do
|
|
193
191
|
end
|
194
192
|
end
|
195
193
|
|
196
|
-
describe "when changing temporarily"
|
194
|
+
describe "when changing temporarily" do
|
197
195
|
it "should change only euid and groups" do
|
198
196
|
allow(Puppet::Util::SUIDManager).to receive(:initgroups).and_return([])
|
199
197
|
Puppet::Util::SUIDManager.change_user(42, false)
|
@@ -223,7 +221,12 @@ describe Puppet::Util::SUIDManager do
|
|
223
221
|
end
|
224
222
|
|
225
223
|
describe "#root?" do
|
226
|
-
describe "on POSIX systems"
|
224
|
+
describe "on POSIX systems" do
|
225
|
+
before :each do
|
226
|
+
allow(Puppet.features).to receive(:posix?).and_return(true)
|
227
|
+
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
228
|
+
end
|
229
|
+
|
227
230
|
it "should be root if uid is 0" do
|
228
231
|
allow(Process).to receive(:uid).and_return(0)
|
229
232
|
|
@@ -237,7 +240,7 @@ describe Puppet::Util::SUIDManager do
|
|
237
240
|
end
|
238
241
|
end
|
239
242
|
|
240
|
-
describe "on Windows", :if => Puppet::Util::Platform.windows? do
|
243
|
+
describe "on Microsoft Windows", :if => Puppet::Util::Platform.windows? do
|
241
244
|
it "should be root if user is privileged" do
|
242
245
|
allow(Puppet::Util::Windows::User).to receive(:admin?).and_return(true)
|
243
246
|
|
@@ -258,19 +261,13 @@ describe 'Puppet::Util::SUIDManager#groups=' do
|
|
258
261
|
Puppet::Util::SUIDManager
|
259
262
|
end
|
260
263
|
|
261
|
-
it "
|
262
|
-
expect {
|
263
|
-
subject.groups = []
|
264
|
-
}.to raise_error(NotImplementedError, /groups=\(\) function is unimplemented/)
|
265
|
-
end
|
266
|
-
|
267
|
-
it "(#3419) should rescue Errno::EINVAL on OS X", unless: Puppet::Util::Platform.windows? do
|
264
|
+
it "(#3419) should rescue Errno::EINVAL on OS X" do
|
268
265
|
expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
|
269
266
|
expect(subject).to receive(:osx_maj_ver).and_return('10.7').twice
|
270
267
|
subject.groups = ['list', 'of', 'groups']
|
271
268
|
end
|
272
269
|
|
273
|
-
it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X"
|
270
|
+
it "(#3419) should fail if an Errno::EINVAL is raised NOT on OS X" do
|
274
271
|
expect(Process).to receive(:groups=).and_raise(Errno::EINVAL, 'blew up')
|
275
272
|
expect(subject).to receive(:osx_maj_ver).and_return(false)
|
276
273
|
expect { subject.groups = ['list', 'of', 'groups'] }.to raise_error(Errno::EINVAL)
|
@@ -131,74 +131,33 @@ describe "Puppet::Util::Windows::SID", :if => Puppet::Util::Platform.windows? do
|
|
131
131
|
expect(subject.name_to_principal(unknown_name)).to be_nil
|
132
132
|
end
|
133
133
|
|
134
|
-
it "should print a debug message if the account does not exist" do
|
135
|
-
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
136
|
-
subject.name_to_principal(unknown_name)
|
137
|
-
end
|
138
|
-
|
139
134
|
it "should return a Puppet::Util::Windows::SID::Principal instance for any valid sid" do
|
140
135
|
expect(subject.name_to_principal(sid)).to be_an_instance_of(Puppet::Util::Windows::SID::Principal)
|
141
136
|
end
|
142
137
|
|
143
|
-
it "should not print debug messages for valid sid" do
|
144
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
145
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
146
|
-
subject.name_to_principal(sid)
|
147
|
-
end
|
148
|
-
|
149
|
-
it "should print a debug message for invalid sid" do
|
150
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
151
|
-
expect(Puppet).to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
152
|
-
subject.name_to_principal('S-1-5-21-INVALID-SID')
|
153
|
-
end
|
154
|
-
|
155
138
|
it "should accept unqualified account name" do
|
156
139
|
# NOTE: lookup by name works in localized environments only for a few instances
|
157
140
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
158
141
|
expect(subject.name_to_principal('SYSTEM').sid).to eq(sid)
|
159
142
|
end
|
160
143
|
|
161
|
-
it "should not print debug messages for unqualified account name" do
|
162
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
163
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
164
|
-
subject.name_to_principal('SYSTEM')
|
165
|
-
end
|
166
|
-
|
167
144
|
it "should be case-insensitive" do
|
168
145
|
# NOTE: lookup by name works in localized environments only for a few instances
|
169
146
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
170
147
|
expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal('system'))
|
171
148
|
end
|
172
149
|
|
173
|
-
it "should not print debug messages for wrongly cased account name" do
|
174
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
175
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
176
|
-
subject.name_to_principal('system')
|
177
|
-
end
|
178
|
-
|
179
150
|
it "should be leading and trailing whitespace-insensitive" do
|
180
151
|
# NOTE: lookup by name works in localized environments only for a few instances
|
181
152
|
# this works in French Windows, even though the account is really Syst\u00E8me
|
182
153
|
expect(subject.name_to_principal('SYSTEM')).to eq(subject.name_to_principal(' SYSTEM '))
|
183
154
|
end
|
184
155
|
|
185
|
-
it "should not print debug messages for account name with leading and trailing whitespace" do
|
186
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
187
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
188
|
-
subject.name_to_principal(' SYSTEM ')
|
189
|
-
end
|
190
|
-
|
191
156
|
it "should accept domain qualified account names" do
|
192
157
|
# NOTE: lookup by name works in localized environments only for a few instances
|
193
158
|
# this works in French Windows, even though the account is really AUTORITE NT\\Syst\u00E8me
|
194
159
|
expect(subject.name_to_principal('NT AUTHORITY\SYSTEM').sid).to eq(sid)
|
195
160
|
end
|
196
|
-
|
197
|
-
it "should not print debug messages for domain qualified account names" do
|
198
|
-
expect(Puppet).not_to receive(:debug).with(/Could not retrieve raw SID bytes from/)
|
199
|
-
expect(Puppet).not_to receive(:debug).with(/No mapping between account names and security IDs was done/)
|
200
|
-
subject.name_to_principal('NT AUTHORITY\SYSTEM')
|
201
|
-
end
|
202
161
|
end
|
203
162
|
|
204
163
|
context "#ads_to_principal" do
|
@@ -4,15 +4,13 @@ require 'spec_helper'
|
|
4
4
|
require 'puppet/util/windows'
|
5
5
|
|
6
6
|
describe "Puppet::Util::Windows::String", :if => Puppet::Util::Platform.windows? do
|
7
|
-
UTF16_NULL = [0, 0]
|
8
|
-
|
9
7
|
def wide_string(str)
|
10
8
|
Puppet::Util::Windows::String.wide_string(str)
|
11
9
|
end
|
12
10
|
|
13
11
|
def converts_to_wide_string(string_value)
|
14
12
|
expected = string_value.encode(Encoding::UTF_16LE)
|
15
|
-
expected_bytes = expected.bytes.to_a
|
13
|
+
expected_bytes = expected.bytes.to_a
|
16
14
|
|
17
15
|
expect(wide_string(string_value).bytes.to_a).to eq(expected_bytes)
|
18
16
|
end
|
data/spec/unit/util/yaml_spec.rb
CHANGED
@@ -139,60 +139,6 @@ FACTS
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
-
context '#load_file' do
|
143
|
-
it_should_behave_like 'yaml file loader', Puppet::Util::Yaml.method(:load_file)
|
144
|
-
|
145
|
-
it 'raises an error when the file is invalid YAML' do
|
146
|
-
write_file(filename, '{ invalid')
|
147
|
-
|
148
|
-
expect {
|
149
|
-
Puppet::Util::Yaml.load_file(filename)
|
150
|
-
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r{\(#{filename}\): .* at line \d+ column \d+})
|
151
|
-
end
|
152
|
-
|
153
|
-
it 'raises an error when the filename is illegal' do
|
154
|
-
expect {
|
155
|
-
Puppet::Util::Yaml.load_file("not\0allowed")
|
156
|
-
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, /null byte/)
|
157
|
-
end
|
158
|
-
|
159
|
-
it 'raises an error when the file does not exist' do
|
160
|
-
expect {
|
161
|
-
Puppet::Util::Yaml.load_file('does/not/exist.yaml')
|
162
|
-
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, /No such file or directory/)
|
163
|
-
end
|
164
|
-
|
165
|
-
it 'allows return value to be overridden' do
|
166
|
-
Puppet::FileSystem.touch(filename)
|
167
|
-
|
168
|
-
expect(Puppet::Util::Yaml.load_file(filename, {})).to eq({})
|
169
|
-
end
|
170
|
-
|
171
|
-
it 'loads arbitrary objects' do
|
172
|
-
write_file(filename, "--- !ruby/object {}\n")
|
173
|
-
|
174
|
-
expect(Puppet::Util::Yaml.load_file(filename, {})).to be_instance_of(Object)
|
175
|
-
end
|
176
|
-
|
177
|
-
it 'should allow one to strip ruby tags that would otherwise not parse' do
|
178
|
-
write_file(filename, "---\nweirddata: !ruby/hash:Not::A::Valid::Class {}")
|
179
|
-
|
180
|
-
expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => {}})
|
181
|
-
end
|
182
|
-
|
183
|
-
it 'should not strip non-ruby tags' do
|
184
|
-
write_file(filename, "---\nweirddata: !binary |-\n e21kNX04MTE4ZGY2NmM5MTc3OTg4ZWE4Y2JiOWEzMjMyNzFkYg==")
|
185
|
-
|
186
|
-
expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => "{md5}8118df66c9177988ea8cbb9a323271db"})
|
187
|
-
end
|
188
|
-
|
189
|
-
it 'writes data formatted as YAML to disk' do
|
190
|
-
Puppet::Util::Yaml.dump({ "my" => "data" }, filename)
|
191
|
-
|
192
|
-
expect(Puppet::Util::Yaml.load_file(filename)).to eq({ "my" => "data" })
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
142
|
def write_file(name, contents)
|
197
143
|
File.open(name, "w:UTF-8") do |fh|
|
198
144
|
fh.write(contents)
|
data/spec/unit/util_spec.rb
CHANGED
@@ -3,12 +3,6 @@ require 'spec_helper'
|
|
3
3
|
describe Puppet::Util do
|
4
4
|
include PuppetSpec::Files
|
5
5
|
|
6
|
-
# Discriminator for tests that attempts to unset HOME since that, for reasons currently unknown,
|
7
|
-
# doesn't work in Ruby >= 2.4.0
|
8
|
-
def self.gte_ruby_2_4
|
9
|
-
@gte_ruby_2_4 ||= SemanticPuppet::Version.parse(RUBY_VERSION) >= SemanticPuppet::Version.parse('2.4.0')
|
10
|
-
end
|
11
|
-
|
12
6
|
if Puppet::Util::Platform.windows?
|
13
7
|
def set_mode(mode, file)
|
14
8
|
Puppet::Util::Windows::Security.set_mode(mode, file)
|
@@ -315,7 +309,7 @@ describe Puppet::Util do
|
|
315
309
|
|
316
310
|
describe "when using platform :posix" do
|
317
311
|
before :each do
|
318
|
-
allow(Puppet.features).to receive(:posix
|
312
|
+
allow(Puppet.features).to receive(:posix).and_return(true)
|
319
313
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
320
314
|
end
|
321
315
|
|
@@ -328,7 +322,7 @@ describe Puppet::Util do
|
|
328
322
|
|
329
323
|
describe "when using platform :windows" do
|
330
324
|
before :each do
|
331
|
-
allow(Puppet.features).to receive(:posix
|
325
|
+
allow(Puppet.features).to receive(:posix).and_return(false)
|
332
326
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
333
327
|
end
|
334
328
|
|
@@ -462,7 +456,7 @@ describe Puppet::Util do
|
|
462
456
|
|
463
457
|
describe "when using platform :posix" do
|
464
458
|
before :each do
|
465
|
-
allow(Puppet.features).to receive(:posix
|
459
|
+
allow(Puppet.features).to receive(:posix).and_return(true)
|
466
460
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
|
467
461
|
end
|
468
462
|
|
@@ -501,7 +495,7 @@ describe Puppet::Util do
|
|
501
495
|
|
502
496
|
describe "when using platform :windows" do
|
503
497
|
before :each do
|
504
|
-
allow(Puppet.features).to receive(:posix
|
498
|
+
allow(Puppet.features).to receive(:posix).and_return(false)
|
505
499
|
allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
|
506
500
|
end
|
507
501
|
|
@@ -539,6 +533,7 @@ describe Puppet::Util do
|
|
539
533
|
expect(Puppet::Util.uri_to_path(URI.parse('http://foo/bar%20baz'))).to eq('/bar baz')
|
540
534
|
end
|
541
535
|
|
536
|
+
|
542
537
|
[
|
543
538
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E",
|
544
539
|
"http://foo/A%DB%BF%E1%9A%A0%F0%A0%9C%8E".force_encoding(Encoding::ASCII)
|
@@ -588,15 +583,7 @@ describe Puppet::Util do
|
|
588
583
|
end
|
589
584
|
end
|
590
585
|
|
591
|
-
describe "safe_posix_fork
|
592
|
-
it "raises not implemented error" do
|
593
|
-
expect {
|
594
|
-
Puppet::Util.safe_posix_fork
|
595
|
-
}.to raise_error(NotImplementedError, /fork/)
|
596
|
-
end
|
597
|
-
end
|
598
|
-
|
599
|
-
describe "safe_posix_fork", unless: Puppet::Util::Platform.windows? || Puppet::Util::Platform.jruby? do
|
586
|
+
describe "safe_posix_fork" do
|
600
587
|
let(:pid) { 5501 }
|
601
588
|
|
602
589
|
before :each do
|
@@ -676,18 +663,6 @@ describe Puppet::Util do
|
|
676
663
|
expect(Puppet::Util.which('doesnotexist')).to be_nil
|
677
664
|
end
|
678
665
|
|
679
|
-
it "should warn if the user's HOME is not set but their PATH contains a ~", :unless => gte_ruby_2_4 do
|
680
|
-
env_path = %w[~/bin /usr/bin /bin].join(File::PATH_SEPARATOR)
|
681
|
-
|
682
|
-
env = {:HOME => nil, :PATH => env_path}
|
683
|
-
env.merge!({:HOMEDRIVE => nil, :USERPROFILE => nil}) if Puppet::Util::Platform.windows?
|
684
|
-
|
685
|
-
expect(Puppet::Util::Warnings).to receive(:warnonce).once
|
686
|
-
Puppet::Util.withenv(env) do
|
687
|
-
Puppet::Util.which('foo')
|
688
|
-
end
|
689
|
-
end
|
690
|
-
|
691
666
|
it "should reject directories" do
|
692
667
|
expect(Puppet::Util.which(base)).to be_nil
|
693
668
|
end
|