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
@@ -50,8 +50,8 @@ describe 'Puppet::Util::AtFork' do
|
|
50
50
|
const_set(:TYPE_VOID, nil)
|
51
51
|
const_set(:TYPE_INT, nil)
|
52
52
|
const_set(:DLError, Class.new(StandardError))
|
53
|
-
const_set(:Handle, Class.new
|
54
|
-
const_set(:Function, Class.new
|
53
|
+
const_set(:Handle, Class.new)
|
54
|
+
const_set(:Function, Class.new)
|
55
55
|
end)
|
56
56
|
end
|
57
57
|
end
|
@@ -157,7 +157,7 @@ describe Puppet::Util::Autoload do
|
|
157
157
|
end
|
158
158
|
|
159
159
|
it "should load the first file in the searchpath" do
|
160
|
-
allow(@autoload
|
160
|
+
allow(@autoload).to receive(:search_directories).and_return([make_absolute("/a"), make_absolute("/b")])
|
161
161
|
allow(FileTest).to receive(:directory?).and_return(true)
|
162
162
|
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
163
163
|
expect(Kernel).to receive(:load).with(make_absolute("/a/tmp/myfile.rb"), any_args)
|
@@ -298,10 +298,6 @@ describe Puppet::Util::Autoload do
|
|
298
298
|
it "should convert c:\ to c:/" do
|
299
299
|
expect(Puppet::Util::Autoload.cleanpath('c:\\')).to eq('c:/')
|
300
300
|
end
|
301
|
-
|
302
|
-
it "should convert all backslashes to forward slashes" do
|
303
|
-
expect(Puppet::Util::Autoload.cleanpath('c:\projects\ruby\bug\test.rb')).to eq('c:/projects/ruby/bug/test.rb')
|
304
|
-
end
|
305
301
|
end
|
306
302
|
end
|
307
303
|
|
@@ -16,8 +16,6 @@ describe Puppet::Util::Backups do
|
|
16
16
|
let(:path) { make_absolute('/no/such/file') }
|
17
17
|
|
18
18
|
it "should noop if the file does not exist" do
|
19
|
-
file = Puppet::Type.type(:file).new(:name => path)
|
20
|
-
|
21
19
|
expect(file).not_to receive(:bucket)
|
22
20
|
expect(Puppet::FileSystem).to receive(:exist?).with(path).and_return(false)
|
23
21
|
|
@@ -119,7 +117,8 @@ describe Puppet::Util::Backups do
|
|
119
117
|
file = Puppet::Type.type(:file).new(:name => path, :backup => 'foo', :recurse => true)
|
120
118
|
|
121
119
|
expect(bucket).not_to receive(:backup)
|
122
|
-
|
120
|
+
stub_file = double('file', :stat => double('stat', :ftype => 'directory'))
|
121
|
+
allow(Puppet::FileSystem).to receive(:new).with(path).and_return(stub_file)
|
123
122
|
expect(Find).not_to receive(:find)
|
124
123
|
|
125
124
|
file.perform_backup
|
@@ -639,8 +639,6 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
|
|
639
639
|
|
640
640
|
describe "#execute (debug logging)" do
|
641
641
|
before :each do
|
642
|
-
Puppet[:log_level] = 'debug'
|
643
|
-
|
644
642
|
stub_process_wait(0)
|
645
643
|
|
646
644
|
if Puppet::Util::Platform.windows?
|
@@ -651,47 +649,47 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
|
|
651
649
|
end
|
652
650
|
|
653
651
|
it "should log if no uid or gid specified" do
|
654
|
-
expect(Puppet).to receive(:
|
652
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing: 'echo hello'")
|
655
653
|
Puppet::Util::Execution.execute('echo hello')
|
656
654
|
end
|
657
655
|
|
658
656
|
it "should log numeric uid if specified" do
|
659
|
-
expect(Puppet).to receive(:
|
657
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100: 'echo hello'")
|
660
658
|
Puppet::Util::Execution.execute('echo hello', {:uid => 100})
|
661
659
|
end
|
662
660
|
|
663
661
|
it "should log numeric gid if specified" do
|
664
|
-
expect(Puppet).to receive(:
|
662
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with gid=500: 'echo hello'")
|
665
663
|
Puppet::Util::Execution.execute('echo hello', {:gid => 500})
|
666
664
|
end
|
667
665
|
|
668
666
|
it "should log numeric uid and gid if specified" do
|
669
|
-
expect(Puppet).to receive(:
|
667
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100 gid=500: 'echo hello'")
|
670
668
|
Puppet::Util::Execution.execute('echo hello', {:uid => 100, :gid => 500})
|
671
669
|
end
|
672
670
|
|
673
671
|
it "should log string uid if specified" do
|
674
|
-
expect(Puppet).to receive(:
|
672
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=myuser: 'echo hello'")
|
675
673
|
Puppet::Util::Execution.execute('echo hello', {:uid => 'myuser'})
|
676
674
|
end
|
677
675
|
|
678
676
|
it "should log string gid if specified" do
|
679
|
-
expect(Puppet).to receive(:
|
677
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with gid=mygroup: 'echo hello'")
|
680
678
|
Puppet::Util::Execution.execute('echo hello', {:gid => 'mygroup'})
|
681
679
|
end
|
682
680
|
|
683
681
|
it "should log string uid and gid if specified" do
|
684
|
-
expect(Puppet).to receive(:
|
682
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=myuser gid=mygroup: 'echo hello'")
|
685
683
|
Puppet::Util::Execution.execute('echo hello', {:uid => 'myuser', :gid => 'mygroup'})
|
686
684
|
end
|
687
685
|
|
688
686
|
it "should log numeric uid and string gid if specified" do
|
689
|
-
expect(Puppet).to receive(:
|
687
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing with uid=100 gid=mygroup: 'echo hello'")
|
690
688
|
Puppet::Util::Execution.execute('echo hello', {:uid => 100, :gid => 'mygroup'})
|
691
689
|
end
|
692
690
|
|
693
691
|
it 'should redact commands in debug output when passed sensitive option' do
|
694
|
-
expect(Puppet).to receive(:
|
692
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing: '[redacted]'")
|
695
693
|
Puppet::Util::Execution.execute('echo hello', {:sensitive => true})
|
696
694
|
end
|
697
695
|
end
|
@@ -905,16 +903,14 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
|
|
905
903
|
end
|
906
904
|
|
907
905
|
it "should print meaningful debug message for string argument" do
|
908
|
-
Puppet
|
909
|
-
expect(Puppet).to receive(:send_log).with(:debug, "Executing 'echo hello'")
|
906
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing 'echo hello'")
|
910
907
|
expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
|
911
908
|
expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
|
912
909
|
Puppet::Util::Execution.execpipe('echo hello')
|
913
910
|
end
|
914
911
|
|
915
912
|
it "should print meaningful debug message for array argument" do
|
916
|
-
Puppet
|
917
|
-
expect(Puppet).to receive(:send_log).with(:debug, "Executing 'echo hello'")
|
913
|
+
expect(Puppet::Util::Execution).to receive(:debug).with("Executing 'echo hello'")
|
918
914
|
expect(Puppet::Util::Execution).to receive(:open).with('| echo hello 2>&1').and_return('hello')
|
919
915
|
expect(Puppet::Util::Execution).to receive(:exitstatus).and_return(0)
|
920
916
|
Puppet::Util::Execution.execpipe(['echo','hello'])
|
@@ -939,33 +935,4 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
|
|
939
935
|
expect(Puppet::Util::Execution.execpipe('echo hello', false)).to eq('error message')
|
940
936
|
end
|
941
937
|
end
|
942
|
-
|
943
|
-
describe "execfail" do
|
944
|
-
it "returns the executed command output" do
|
945
|
-
allow(Puppet::Util::Execution).to receive(:execute)
|
946
|
-
.and_return(Puppet::Util::Execution::ProcessOutput.new("process output", 0))
|
947
|
-
expect(Puppet::Util::Execution.execfail('echo hello', Puppet::Error)).to eq('process output')
|
948
|
-
end
|
949
|
-
|
950
|
-
it "raises a caller-specified exception on failure with the backtrace" do
|
951
|
-
allow(Puppet::Util::Execution).to receive(:execute).and_raise(Puppet::ExecutionFailure, "failed to execute")
|
952
|
-
expect {
|
953
|
-
Puppet::Util::Execution.execfail("this will fail", Puppet::Error)
|
954
|
-
}.to raise_error(Puppet::Error, /failed to execute/)
|
955
|
-
end
|
956
|
-
|
957
|
-
it "raises exceptions that don't extend ExecutionFailure" do
|
958
|
-
allow(Puppet::Util::Execution).to receive(:execute).and_raise(ArgumentError, "failed to execute")
|
959
|
-
expect {
|
960
|
-
Puppet::Util::Execution.execfail("this will fail", Puppet::Error)
|
961
|
-
}.to raise_error(ArgumentError, /failed to execute/)
|
962
|
-
end
|
963
|
-
|
964
|
-
it "raises a TypeError if the exception class is nil" do
|
965
|
-
allow(Puppet::Util::Execution).to receive(:execute).and_raise(Puppet::ExecutionFailure, "failed to execute")
|
966
|
-
expect {
|
967
|
-
Puppet::Util::Execution.execfail('echo hello', nil)
|
968
|
-
}.to raise_error(TypeError, /exception class\/object expected/)
|
969
|
-
end
|
970
|
-
end
|
971
938
|
end
|
@@ -443,9 +443,13 @@ describe Puppet::Util::IniConfig::FileCollection do
|
|
443
443
|
end
|
444
444
|
|
445
445
|
it "yields every section from every file" do
|
446
|
-
|
447
|
-
|
448
|
-
|
446
|
+
[sect_a1, sect_a2, sect_b1, sect_b2].each do |sect|
|
447
|
+
expect(sect).to receive(:touch).once
|
448
|
+
end
|
449
|
+
|
450
|
+
subject.each_section do |sect|
|
451
|
+
sect.touch
|
452
|
+
end
|
449
453
|
end
|
450
454
|
end
|
451
455
|
|
@@ -456,9 +460,13 @@ describe Puppet::Util::IniConfig::FileCollection do
|
|
456
460
|
end
|
457
461
|
|
458
462
|
it "yields the path to every file in the collection" do
|
459
|
-
|
460
|
-
|
461
|
-
|
463
|
+
seen = []
|
464
|
+
subject.each_file do |file|
|
465
|
+
seen << file
|
466
|
+
end
|
467
|
+
|
468
|
+
expect(seen).to include(path_a)
|
469
|
+
expect(seen).to include(path_b)
|
462
470
|
end
|
463
471
|
end
|
464
472
|
|
data/spec/unit/util/log_spec.rb
CHANGED
@@ -111,20 +111,16 @@ describe Puppet::Util::Log do
|
|
111
111
|
end
|
112
112
|
|
113
113
|
it "should fall back to :eventlog" do
|
114
|
-
|
115
|
-
|
116
|
-
allow(Puppet.features).to receive(:eventlog?).and_return(true)
|
117
|
-
end
|
114
|
+
allow(Puppet.features).to receive(:syslog?).and_return(false)
|
115
|
+
allow(Puppet.features).to receive(:eventlog?).and_return(true)
|
118
116
|
expect(Puppet::Util::Log).to receive(:newdestination).with(:eventlog)
|
119
117
|
|
120
118
|
Puppet::Util::Log.setup_default
|
121
119
|
end
|
122
120
|
|
123
121
|
it "should fall back to :file" do
|
124
|
-
|
125
|
-
|
126
|
-
allow(Puppet.features).to receive(:eventlog?).and_return(false)
|
127
|
-
end
|
122
|
+
allow(Puppet.features).to receive(:syslog?).and_return(false)
|
123
|
+
allow(Puppet.features).to receive(:eventlog?).and_return(false)
|
128
124
|
expect(Puppet::Util::Log).to receive(:newdestination).with(Puppet[:puppetdlog])
|
129
125
|
|
130
126
|
Puppet::Util::Log.setup_default
|
@@ -228,6 +224,9 @@ describe Puppet::Util::Log do
|
|
228
224
|
describe Puppet::Util::Log::DestEventlog, :if => Puppet.features.eventlog? do
|
229
225
|
before :each do
|
230
226
|
allow(Puppet::Util::Windows::EventLog).to receive(:open).and_return(double('mylog', :close => nil))
|
227
|
+
allow(Puppet::Util::Windows::EventLog).to receive(:report_event)
|
228
|
+
allow(Puppet::Util::Windows::EventLog).to receive(:close)
|
229
|
+
allow(Puppet.features).to receive(:eventlog?).and_return(true)
|
231
230
|
end
|
232
231
|
|
233
232
|
it "should restrict its suitability to Windows" do
|
@@ -552,7 +552,7 @@ original
|
|
552
552
|
|
553
553
|
describe 'does support debugging' do
|
554
554
|
before :each do
|
555
|
-
allow(Facter).to receive(:respond_to?).with(:debugging
|
555
|
+
allow(Facter).to receive(:respond_to?).with(:debugging).and_return(true)
|
556
556
|
end
|
557
557
|
|
558
558
|
it 'enables Facter debugging when debug level' do
|
@@ -568,7 +568,7 @@ original
|
|
568
568
|
|
569
569
|
describe 'does support trace' do
|
570
570
|
before :each do
|
571
|
-
allow(Facter).to receive(:respond_to?).with(:trace
|
571
|
+
allow(Facter).to receive(:respond_to?).with(:trace).and_return(true)
|
572
572
|
end
|
573
573
|
|
574
574
|
it 'enables Facter trace when enabled' do
|
@@ -584,7 +584,7 @@ original
|
|
584
584
|
|
585
585
|
describe 'does support on_message' do
|
586
586
|
before :each do
|
587
|
-
allow(Facter).to receive(:respond_to?).with(:on_message
|
587
|
+
allow(Facter).to receive(:respond_to?).with(:on_message).and_return(true)
|
588
588
|
end
|
589
589
|
|
590
590
|
def setup(level, message)
|
@@ -135,9 +135,3 @@ describe SecureRandom do
|
|
135
135
|
expect(SecureRandom.uuid).to match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i)
|
136
136
|
end
|
137
137
|
end
|
138
|
-
|
139
|
-
describe 'Enumerable' do
|
140
|
-
it 'expects uniq to work on an Enumerable' do
|
141
|
-
expect(['c', 'c', 'C'].reverse_each.uniq).to eql(['C', 'c'])
|
142
|
-
end
|
143
|
-
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
require 'puppet/ffi/posix'
|
4
3
|
require 'puppet/util/posix'
|
5
4
|
|
6
5
|
class PosixTest
|
@@ -12,344 +11,35 @@ describe Puppet::Util::POSIX do
|
|
12
11
|
@posix = PosixTest.new
|
13
12
|
end
|
14
13
|
|
15
|
-
describe '.groups_of' do
|
16
|
-
let(:mock_user_data) { double(user, :gid => 1000) }
|
17
|
-
|
18
|
-
let(:ngroups_ptr) { double('FFI::MemoryPointer', :address => 0x0001, :size => 4) }
|
19
|
-
let(:groups_ptr) { double('FFI::MemoryPointer', :address => 0x0002, :size => Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS) }
|
20
|
-
|
14
|
+
describe '.groups_of' do
|
21
15
|
let(:mock_groups) do
|
22
16
|
[
|
23
|
-
['
|
24
|
-
['
|
25
|
-
['group1', ['user1', 'user2']
|
26
|
-
['
|
27
|
-
['
|
28
|
-
|
29
|
-
['group4', ['user2'], 4004],
|
30
|
-
['user1', [], 1111],
|
31
|
-
['user2', [], 2222]
|
32
|
-
].map do |(name, members, gid)|
|
17
|
+
['group1', ['user1', 'user2']],
|
18
|
+
['group2', ['user2']],
|
19
|
+
['group1', ['user1', 'user2']],
|
20
|
+
['group3', ['user1']],
|
21
|
+
['group4', ['user2']]
|
22
|
+
].map do |(name, members)|
|
33
23
|
group_struct = double("Group #{name}")
|
34
24
|
allow(group_struct).to receive(:name).and_return(name)
|
35
25
|
allow(group_struct).to receive(:mem).and_return(members)
|
36
|
-
allow(group_struct).to receive(:gid).and_return(gid)
|
37
26
|
|
38
27
|
group_struct
|
39
28
|
end
|
40
29
|
end
|
41
30
|
|
42
|
-
def prepare_user_and_groups_env(user, groups)
|
43
|
-
groups_gids = []
|
44
|
-
groups_and_user = []
|
45
|
-
groups_and_user.replace(groups)
|
46
|
-
groups_and_user.push(user)
|
47
|
-
|
48
|
-
groups_and_user.each do |group|
|
49
|
-
mock_group = mock_groups.find { |m| m.name == group }
|
50
|
-
groups_gids.push(mock_group.gid)
|
51
|
-
|
52
|
-
allow(Puppet::Etc).to receive(:getgrgid).with(mock_group.gid).and_return(mock_group)
|
53
|
-
end
|
54
|
-
|
55
|
-
if groups_and_user.size > Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS
|
56
|
-
allow(ngroups_ptr).to receive(:read_int).and_return(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS, groups_and_user.size)
|
57
|
-
else
|
58
|
-
allow(ngroups_ptr).to receive(:read_int).and_return(groups_and_user.size)
|
59
|
-
end
|
60
|
-
|
61
|
-
allow(groups_ptr).to receive(:get_array_of_uint).with(0, groups_and_user.size).and_return(groups_gids)
|
62
|
-
allow(Puppet::Etc).to receive(:getpwnam).with(user).and_return(mock_user_data)
|
63
|
-
end
|
64
|
-
|
65
31
|
before(:each) do
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
describe 'when it uses FFI function getgrouplist' do
|
70
|
-
before(:each) do
|
71
|
-
allow(FFI::MemoryPointer).to receive(:new).with(:int).and_yield(ngroups_ptr)
|
72
|
-
allow(FFI::MemoryPointer).to receive(:new).with(:uint, Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_yield(groups_ptr)
|
73
|
-
allow(ngroups_ptr).to receive(:write_int).with(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_return(ngroups_ptr)
|
74
|
-
end
|
75
|
-
|
76
|
-
describe 'when there are groups' do
|
77
|
-
context 'for user1' do
|
78
|
-
let(:user) { 'user1' }
|
79
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
80
|
-
|
81
|
-
before(:each) do
|
82
|
-
prepare_user_and_groups_env(user, expected_groups)
|
83
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should return the groups for given user" do
|
87
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
91
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
92
|
-
Puppet::Util::POSIX.groups_of(user)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context 'for user2' do
|
97
|
-
let(:user) { 'user2' }
|
98
|
-
let(:expected_groups) { ['group1', 'group2', 'group4'] }
|
99
|
-
|
100
|
-
before(:each) do
|
101
|
-
prepare_user_and_groups_env(user, expected_groups)
|
102
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
103
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should return the groups for given user" do
|
107
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
108
|
-
end
|
109
|
-
|
110
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
111
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
112
|
-
Puppet::Util::POSIX.groups_of(user)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
describe 'when there are no groups' do
|
118
|
-
let(:user) { 'nomembers' }
|
119
|
-
let(:expected_groups) { [] }
|
120
|
-
|
121
|
-
before(:each) do
|
122
|
-
prepare_user_and_groups_env(user, expected_groups)
|
123
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
124
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
125
|
-
end
|
126
|
-
|
127
|
-
it "should return no groups for given user" do
|
128
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
129
|
-
end
|
130
|
-
|
131
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
132
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
133
|
-
Puppet::Util::POSIX.groups_of(user)
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
describe 'when primary group explicitly contains user' do
|
138
|
-
let(:user) { 'root' }
|
139
|
-
let(:expected_groups) { ['root'] }
|
140
|
-
|
141
|
-
before(:each) do
|
142
|
-
prepare_user_and_groups_env(user, expected_groups)
|
143
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
144
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
145
|
-
end
|
146
|
-
|
147
|
-
it "should return the groups, including primary group, for given user" do
|
148
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
149
|
-
end
|
150
|
-
|
151
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
152
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
153
|
-
Puppet::Util::POSIX.groups_of(user)
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
describe 'when primary group does not explicitly contain user' do
|
158
|
-
let(:user) { 'user1' }
|
159
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
160
|
-
|
161
|
-
before(:each) do
|
162
|
-
prepare_user_and_groups_env(user, expected_groups)
|
163
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
164
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
165
|
-
end
|
166
|
-
|
167
|
-
it "should not return primary group for given user" do
|
168
|
-
expect(Puppet::Util::POSIX.groups_of(user)).not_to include(user)
|
169
|
-
end
|
170
|
-
|
171
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
172
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
173
|
-
Puppet::Util::POSIX.groups_of(user)
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
context 'number of groups' do
|
178
|
-
before(:each) do
|
179
|
-
stub_const("Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS", 2)
|
180
|
-
prepare_user_and_groups_env(user, expected_groups)
|
181
|
-
|
182
|
-
allow(FFI::MemoryPointer).to receive(:new).with(:uint, Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_yield(groups_ptr)
|
183
|
-
allow(ngroups_ptr).to receive(:write_int).with(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_return(ngroups_ptr)
|
184
|
-
end
|
185
|
-
|
186
|
-
describe 'when there are less than maximum expected number of groups' do
|
187
|
-
let(:user) { 'root' }
|
188
|
-
let(:expected_groups) { ['root'] }
|
189
|
-
|
190
|
-
before(:each) do
|
191
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
192
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
193
|
-
end
|
194
|
-
|
195
|
-
it "should return the groups for given user, after one 'getgrouplist' call" do
|
196
|
-
expect(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).once
|
197
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
198
|
-
end
|
199
|
-
|
200
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
201
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
202
|
-
Puppet::Util::POSIX.groups_of(user)
|
203
|
-
end
|
204
|
-
end
|
205
|
-
|
206
|
-
describe 'when there are more than maximum expected number of groups' do
|
207
|
-
let(:user) { 'user1' }
|
208
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
209
|
-
|
210
|
-
before(:each) do
|
211
|
-
allow(FFI::MemoryPointer).to receive(:new).with(:uint, Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS * 2).and_yield(groups_ptr)
|
212
|
-
allow(ngroups_ptr).to receive(:write_int).with(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS * 2).and_return(ngroups_ptr)
|
213
|
-
|
214
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(true)
|
215
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(-1, 1)
|
216
|
-
end
|
217
|
-
|
218
|
-
it "should return the groups for given user, after two 'getgrouplist' calls" do
|
219
|
-
expect(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).twice
|
220
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
221
|
-
end
|
222
|
-
|
223
|
-
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
224
|
-
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
225
|
-
Puppet::Util::POSIX.groups_of(user)
|
226
|
-
end
|
227
|
-
end
|
32
|
+
etc_stub = receive(:group)
|
33
|
+
mock_groups.each do |mock_group|
|
34
|
+
etc_stub = etc_stub.and_yield(mock_group)
|
228
35
|
end
|
36
|
+
allow(Puppet::Etc).to etc_stub
|
229
37
|
end
|
230
38
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
etc_stub = etc_stub.and_yield(mock_group)
|
236
|
-
end
|
237
|
-
allow(Puppet::Etc).to etc_stub
|
238
|
-
|
239
|
-
allow(Puppet::Etc).to receive(:getpwnam).with(user).and_raise(ArgumentError, "can't find user for #{user}")
|
240
|
-
allow(Puppet).to receive(:debug)
|
241
|
-
|
242
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist, any_args).and_return(false)
|
243
|
-
end
|
244
|
-
|
245
|
-
describe 'when there are groups' do
|
246
|
-
context 'for user1' do
|
247
|
-
let(:user) { 'user1' }
|
248
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
249
|
-
|
250
|
-
it "should return the groups for given user" do
|
251
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
252
|
-
end
|
253
|
-
|
254
|
-
it 'logs a debug message' do
|
255
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
256
|
-
Puppet::Util::POSIX.groups_of(user)
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
context 'for user2' do
|
261
|
-
let(:user) { 'user2' }
|
262
|
-
let(:expected_groups) { ['group1', 'group2', 'group4'] }
|
263
|
-
|
264
|
-
it "should return the groups for given user" do
|
265
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
266
|
-
end
|
267
|
-
|
268
|
-
it 'logs a debug message' do
|
269
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
270
|
-
Puppet::Util::POSIX.groups_of(user)
|
271
|
-
end
|
272
|
-
end
|
273
|
-
end
|
274
|
-
|
275
|
-
describe 'when there are no groups' do
|
276
|
-
let(:user) { 'nomembers' }
|
277
|
-
let(:expected_groups) { [] }
|
278
|
-
|
279
|
-
it "should return no groups for given user" do
|
280
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
281
|
-
end
|
282
|
-
|
283
|
-
it 'logs a debug message' do
|
284
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
285
|
-
Puppet::Util::POSIX.groups_of(user)
|
286
|
-
end
|
287
|
-
end
|
288
|
-
|
289
|
-
describe 'when primary group explicitly contains user' do
|
290
|
-
let(:user) { 'root' }
|
291
|
-
let(:expected_groups) { ['root'] }
|
292
|
-
|
293
|
-
it "should return the groups, including primary group, for given user" do
|
294
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
295
|
-
end
|
296
|
-
|
297
|
-
it 'logs a debug message' do
|
298
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
299
|
-
Puppet::Util::POSIX.groups_of(user)
|
300
|
-
end
|
301
|
-
end
|
302
|
-
|
303
|
-
describe 'when primary group does not explicitly contain user' do
|
304
|
-
let(:user) { 'user1' }
|
305
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
306
|
-
|
307
|
-
it "should not return primary group for given user" do
|
308
|
-
expect(Puppet::Util::POSIX.groups_of(user)).not_to include(user)
|
309
|
-
end
|
310
|
-
|
311
|
-
it 'logs a debug message' do
|
312
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
313
|
-
Puppet::Util::POSIX.groups_of(user)
|
314
|
-
end
|
315
|
-
end
|
316
|
-
|
317
|
-
describe "when the 'getgrouplist' method is not available" do
|
318
|
-
let(:user) { 'user1' }
|
319
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
320
|
-
|
321
|
-
before(:each) do
|
322
|
-
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist).and_return(false)
|
323
|
-
end
|
324
|
-
|
325
|
-
it "should return the groups" do
|
326
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
327
|
-
end
|
328
|
-
|
329
|
-
it 'logs a debug message' do
|
330
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
331
|
-
Puppet::Util::POSIX.groups_of(user)
|
332
|
-
end
|
333
|
-
end
|
334
|
-
|
335
|
-
|
336
|
-
describe "when ffi is not available on the machine" do
|
337
|
-
let(:user) { 'user1' }
|
338
|
-
let(:expected_groups) { ['group1', 'group3'] }
|
339
|
-
|
340
|
-
before(:each) do
|
341
|
-
allow(Puppet::Util::POSIX).to receive(:require).with('puppet/ffi/posix').and_raise(LoadError, 'cannot load such file -- ffi')
|
342
|
-
end
|
343
|
-
|
344
|
-
it "should return the groups" do
|
345
|
-
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
346
|
-
end
|
347
|
-
|
348
|
-
it 'logs a debug message' do
|
349
|
-
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: cannot load such file -- ffi")
|
350
|
-
Puppet::Util::POSIX.groups_of(user)
|
351
|
-
end
|
352
|
-
end
|
39
|
+
it 'returns the groups of the given user' do
|
40
|
+
expect(Puppet::Util::POSIX.groups_of('user1')).to eql(
|
41
|
+
['group1', 'group3']
|
42
|
+
)
|
353
43
|
end
|
354
44
|
end
|
355
45
|
|
@@ -499,25 +189,6 @@ describe Puppet::Util::POSIX do
|
|
499
189
|
expect(@posix.gid("asdf")).to eq(100)
|
500
190
|
end
|
501
191
|
|
502
|
-
it "returns the id without full groups query if multiple groups have the same id" do
|
503
|
-
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
504
|
-
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return("boo")
|
505
|
-
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "boo").and_return(100)
|
506
|
-
|
507
|
-
expect(@posix).not_to receive(:search_posix_field)
|
508
|
-
expect(@posix.gid("asdf")).to eq(100)
|
509
|
-
end
|
510
|
-
|
511
|
-
it "returns the id with full groups query if name is nil" do
|
512
|
-
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
513
|
-
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return(nil)
|
514
|
-
expect(@posix).not_to receive(:get_posix_field).with(:group, :gid, nil)
|
515
|
-
|
516
|
-
|
517
|
-
expect(@posix).to receive(:search_posix_field).with(:group, :gid, "asdf").and_return(100)
|
518
|
-
expect(@posix.gid("asdf")).to eq(100)
|
519
|
-
end
|
520
|
-
|
521
192
|
it "should use :search_posix_field if the discovered name does not match the passed-in name" do
|
522
193
|
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
523
194
|
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return("boo")
|
@@ -594,25 +265,6 @@ describe Puppet::Util::POSIX do
|
|
594
265
|
expect(@posix.uid("asdf")).to eq(100)
|
595
266
|
end
|
596
267
|
|
597
|
-
it "returns the id without full users query if multiple users have the same id" do
|
598
|
-
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
599
|
-
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return("boo")
|
600
|
-
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "boo").and_return(100)
|
601
|
-
|
602
|
-
expect(@posix).not_to receive(:search_posix_field)
|
603
|
-
expect(@posix.uid("asdf")).to eq(100)
|
604
|
-
end
|
605
|
-
|
606
|
-
it "returns the id with full users query if name is nil" do
|
607
|
-
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
608
|
-
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return(nil)
|
609
|
-
expect(@posix).not_to receive(:get_posix_field).with(:passwd, :uid, nil)
|
610
|
-
|
611
|
-
|
612
|
-
expect(@posix).to receive(:search_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
613
|
-
expect(@posix.uid("asdf")).to eq(100)
|
614
|
-
end
|
615
|
-
|
616
268
|
it "should use :search_posix_field if the discovered name does not match the passed-in name" do
|
617
269
|
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
618
270
|
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return("boo")
|