puppet 6.17.0-x64-mingw32 → 7.1.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 +2 -16
- data/Gemfile +3 -4
- data/Gemfile.lock +32 -30
- data/README.md +2 -3
- data/Rakefile +4 -12
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +2 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +8 -3
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +46 -19
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +116 -162
- data/lib/puppet/environments.rb +72 -62
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +10 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- 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_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +23 -13
- data/lib/puppet/http/client.rb +165 -115
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +10 -23
- data/lib/puppet/http/resolver/server_list.rb +23 -45
- data/lib/puppet/http/resolver/settings.rb +7 -10
- data/lib/puppet/http/resolver/srv.rb +11 -15
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +15 -27
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -70
- data/lib/puppet/http/service/file_server.rb +19 -28
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +16 -24
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +27 -6
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- 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/http.rb +1 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +1 -102
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- 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/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +93 -14
- data/lib/puppet/parameter.rb +1 -1
- 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.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- 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/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- 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/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +28 -52
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -11
- data/lib/puppet/provider/package/gem.rb +27 -5
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- 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 +6 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- 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 +5 -120
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +84 -35
- data/lib/puppet/settings/base_setting.rb +26 -2
- 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 +11 -6
- data/lib/puppet/transaction.rb +3 -9
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +10 -8
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -79
- data/lib/puppet/type/file.rb +7 -9
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +29 -9
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +19 -4
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/posix.rb +53 -4
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +14 -2
- data/lib/puppet/util/windows.rb +3 -7
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +219 -0
- 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 +656 -1351
- data/man/man5/puppet.conf.5 +72 -97
- data/man/man8/puppet-agent.8 +6 -3
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- 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 +4 -0
- data/spec/integration/application/agent_spec.rb +70 -61
- data/spec/integration/application/apply_spec.rb +150 -150
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +78 -29
- data/spec/integration/application/help_spec.rb +44 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +76 -4
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +32 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/node/environment_spec.rb +1 -1
- 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/type/file_spec.rb +5 -4
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +2 -2
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +9 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +74 -8
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +17 -4
- data/spec/unit/application_spec.rb +43 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +96 -44
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +26 -32
- data/spec/unit/environments_spec.rb +173 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +16 -4
- 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 +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -9
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +34 -15
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -65
- data/spec/unit/http/service/file_server_spec.rb +5 -6
- data/spec/unit/http/service/puppetserver_spec.rb +112 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -3
- data/spec/unit/http/session_spec.rb +24 -35
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- 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/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +2 -266
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- 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 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +51 -22
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +76 -21
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dpkg_spec.rb +22 -55
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +402 -166
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +28 -1
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +0 -56
- 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 +586 -239
- data/spec/unit/ssl/base_spec.rb +36 -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 +11 -8
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +2 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -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/source_spec.rb +1 -2
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +35 -2
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +357 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/storage_spec.rb +3 -1
- 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 +0 -18
- metadata +84 -261
- 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/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/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/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -295
- 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/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- 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 -79
- 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/man_spec.rb +0 -31
- 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/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -143
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -650
- 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
@@ -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,5 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
require 'puppet/ffi/posix'
|
3
4
|
require 'puppet/util/posix'
|
4
5
|
|
5
6
|
class PosixTest
|
@@ -11,35 +12,338 @@ describe Puppet::Util::POSIX do
|
|
11
12
|
@posix = PosixTest.new
|
12
13
|
end
|
13
14
|
|
14
|
-
describe '.groups_of' do
|
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
|
+
|
15
21
|
let(:mock_groups) do
|
16
22
|
[
|
17
|
-
['
|
18
|
-
['
|
19
|
-
['group1', ['user1', 'user2']],
|
20
|
-
['
|
21
|
-
['
|
22
|
-
|
23
|
+
['root', ['root'], 0],
|
24
|
+
['nomembers', [], 5 ],
|
25
|
+
['group1', ['user1', 'user2'], 1001],
|
26
|
+
['group2', ['user2'], 2002],
|
27
|
+
['group1', ['user1', 'user2'], 1001],
|
28
|
+
['group3', ['user1'], 3003],
|
29
|
+
['group4', ['user2'], 4004],
|
30
|
+
['user1', [], 1111],
|
31
|
+
['user2', [], 2222]
|
32
|
+
].map do |(name, members, gid)|
|
23
33
|
group_struct = double("Group #{name}")
|
24
34
|
allow(group_struct).to receive(:name).and_return(name)
|
25
35
|
allow(group_struct).to receive(:mem).and_return(members)
|
36
|
+
allow(group_struct).to receive(:gid).and_return(gid)
|
26
37
|
|
27
38
|
group_struct
|
28
39
|
end
|
29
40
|
end
|
30
41
|
|
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
|
+
|
31
65
|
before(:each) do
|
32
|
-
|
33
|
-
|
34
|
-
|
66
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist).and_return(true)
|
67
|
+
end
|
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(:getgrouplist).and_return(1)
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should return the groups for given user" do
|
106
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
110
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
111
|
+
Puppet::Util::POSIX.groups_of(user)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe 'when there are no groups' do
|
117
|
+
let(:user) { 'nomembers' }
|
118
|
+
let(:expected_groups) { [] }
|
119
|
+
|
120
|
+
before(:each) do
|
121
|
+
prepare_user_and_groups_env(user, expected_groups)
|
122
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should return no groups for given user" do
|
126
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
130
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
131
|
+
Puppet::Util::POSIX.groups_of(user)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
describe 'when primary group explicitly contains user' do
|
136
|
+
let(:user) { 'root' }
|
137
|
+
let(:expected_groups) { ['root'] }
|
138
|
+
|
139
|
+
before(:each) do
|
140
|
+
prepare_user_and_groups_env(user, expected_groups)
|
141
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should return the groups, including primary group, for given user" do
|
145
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
149
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
150
|
+
Puppet::Util::POSIX.groups_of(user)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
describe 'when primary group does not explicitly contain user' do
|
155
|
+
let(:user) { 'user1' }
|
156
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
157
|
+
|
158
|
+
before(:each) do
|
159
|
+
prepare_user_and_groups_env(user, expected_groups)
|
160
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should not return primary group for given user" do
|
164
|
+
expect(Puppet::Util::POSIX.groups_of(user)).not_to include(user)
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
168
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
169
|
+
Puppet::Util::POSIX.groups_of(user)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context 'number of groups' do
|
174
|
+
before(:each) do
|
175
|
+
stub_const("Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS", 2)
|
176
|
+
prepare_user_and_groups_env(user, expected_groups)
|
177
|
+
|
178
|
+
allow(FFI::MemoryPointer).to receive(:new).with(:uint, Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_yield(groups_ptr)
|
179
|
+
allow(ngroups_ptr).to receive(:write_int).with(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS).and_return(ngroups_ptr)
|
180
|
+
end
|
181
|
+
|
182
|
+
describe 'when there are less than maximum expected number of groups' do
|
183
|
+
let(:user) { 'root' }
|
184
|
+
let(:expected_groups) { ['root'] }
|
185
|
+
|
186
|
+
before(:each) do
|
187
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(1)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should return the groups for given user, after one 'getgrouplist' call" do
|
191
|
+
expect(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).once
|
192
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
196
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
197
|
+
Puppet::Util::POSIX.groups_of(user)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
describe 'when there are more than maximum expected number of groups' do
|
202
|
+
let(:user) { 'user1' }
|
203
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
204
|
+
|
205
|
+
before(:each) do
|
206
|
+
allow(FFI::MemoryPointer).to receive(:new).with(:uint, Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS * 2).and_yield(groups_ptr)
|
207
|
+
allow(ngroups_ptr).to receive(:write_int).with(Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS * 2).and_return(ngroups_ptr)
|
208
|
+
|
209
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).and_return(-1, 1)
|
210
|
+
end
|
211
|
+
|
212
|
+
it "should return the groups for given user, after two 'getgrouplist' calls" do
|
213
|
+
expect(Puppet::FFI::POSIX::Functions).to receive(:getgrouplist).twice
|
214
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
215
|
+
end
|
216
|
+
|
217
|
+
it 'should not print any debug message about falling back to Puppet::Etc.group' do
|
218
|
+
expect(Puppet).not_to receive(:debug).with(/Falling back to Puppet::Etc.group:/)
|
219
|
+
Puppet::Util::POSIX.groups_of(user)
|
220
|
+
end
|
221
|
+
end
|
35
222
|
end
|
36
|
-
allow(Puppet::Etc).to etc_stub
|
37
223
|
end
|
38
224
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
225
|
+
describe 'when it falls back to Puppet::Etc.group method' do
|
226
|
+
before(:each) do
|
227
|
+
etc_stub = receive(:group)
|
228
|
+
mock_groups.each do |mock_group|
|
229
|
+
etc_stub = etc_stub.and_yield(mock_group)
|
230
|
+
end
|
231
|
+
allow(Puppet::Etc).to etc_stub
|
232
|
+
|
233
|
+
allow(Puppet::Etc).to receive(:getpwnam).with(user).and_raise(ArgumentError, "can't find user for #{user}")
|
234
|
+
allow(Puppet).to receive(:debug)
|
235
|
+
|
236
|
+
expect(Puppet::FFI::POSIX::Functions).not_to receive(:getgrouplist)
|
237
|
+
end
|
238
|
+
|
239
|
+
describe 'when there are groups' do
|
240
|
+
context 'for user1' do
|
241
|
+
let(:user) { 'user1' }
|
242
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
243
|
+
|
244
|
+
it "should return the groups for given user" do
|
245
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
246
|
+
end
|
247
|
+
|
248
|
+
it 'logs a debug message' do
|
249
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: can't find user for #{user}")
|
250
|
+
Puppet::Util::POSIX.groups_of(user)
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
context 'for user2' do
|
255
|
+
let(:user) { 'user2' }
|
256
|
+
let(:expected_groups) { ['group1', 'group2', 'group4'] }
|
257
|
+
|
258
|
+
it "should return the groups for given user" do
|
259
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
260
|
+
end
|
261
|
+
|
262
|
+
it 'logs a debug message' do
|
263
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: can't find user for #{user}")
|
264
|
+
Puppet::Util::POSIX.groups_of(user)
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
describe 'when there are no groups' do
|
270
|
+
let(:user) { 'nomembers' }
|
271
|
+
let(:expected_groups) { [] }
|
272
|
+
|
273
|
+
it "should return no groups for given user" do
|
274
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
275
|
+
end
|
276
|
+
|
277
|
+
it 'logs a debug message' do
|
278
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: can't find user for #{user}")
|
279
|
+
Puppet::Util::POSIX.groups_of(user)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
describe 'when primary group explicitly contains user' do
|
284
|
+
let(:user) { 'root' }
|
285
|
+
let(:expected_groups) { ['root'] }
|
286
|
+
|
287
|
+
it "should return the groups, including primary group, for given user" do
|
288
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
289
|
+
end
|
290
|
+
|
291
|
+
it 'logs a debug message' do
|
292
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: can't find user for #{user}")
|
293
|
+
Puppet::Util::POSIX.groups_of(user)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
describe 'when primary group does not explicitly contain user' do
|
298
|
+
let(:user) { 'user1' }
|
299
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
300
|
+
|
301
|
+
it "should not return primary group for given user" do
|
302
|
+
expect(Puppet::Util::POSIX.groups_of(user)).not_to include(user)
|
303
|
+
end
|
304
|
+
|
305
|
+
it 'logs a debug message' do
|
306
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: can't find user for #{user}")
|
307
|
+
Puppet::Util::POSIX.groups_of(user)
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
311
|
+
describe "when the 'getgrouplist' method is not available" do
|
312
|
+
let(:user) { 'user1' }
|
313
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
314
|
+
|
315
|
+
before(:each) do
|
316
|
+
allow(Puppet::FFI::POSIX::Functions).to receive(:respond_to?).with(:getgrouplist).and_return(false)
|
317
|
+
end
|
318
|
+
|
319
|
+
it "should return the groups" do
|
320
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
321
|
+
end
|
322
|
+
|
323
|
+
it 'logs a debug message' do
|
324
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: The 'getgrouplist' method is not available")
|
325
|
+
Puppet::Util::POSIX.groups_of(user)
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
|
330
|
+
describe "when ffi is not available on the machine" do
|
331
|
+
let(:user) { 'user1' }
|
332
|
+
let(:expected_groups) { ['group1', 'group3'] }
|
333
|
+
|
334
|
+
before(:each) do
|
335
|
+
allow(Puppet::Util::POSIX).to receive(:require).with('puppet/ffi/posix').and_raise(LoadError, 'cannot load such file -- ffi')
|
336
|
+
end
|
337
|
+
|
338
|
+
it "should return the groups" do
|
339
|
+
expect(Puppet::Util::POSIX.groups_of(user)).to eql(expected_groups)
|
340
|
+
end
|
341
|
+
|
342
|
+
it 'logs a debug message' do
|
343
|
+
expect(Puppet).to receive(:debug).with("Falling back to Puppet::Etc.group: cannot load such file -- ffi")
|
344
|
+
Puppet::Util::POSIX.groups_of(user)
|
345
|
+
end
|
346
|
+
end
|
43
347
|
end
|
44
348
|
end
|
45
349
|
|
@@ -189,6 +493,25 @@ describe Puppet::Util::POSIX do
|
|
189
493
|
expect(@posix.gid("asdf")).to eq(100)
|
190
494
|
end
|
191
495
|
|
496
|
+
it "returns the id without full groups query if multiple groups have the same id" do
|
497
|
+
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
498
|
+
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return("boo")
|
499
|
+
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "boo").and_return(100)
|
500
|
+
|
501
|
+
expect(@posix).not_to receive(:search_posix_field)
|
502
|
+
expect(@posix.gid("asdf")).to eq(100)
|
503
|
+
end
|
504
|
+
|
505
|
+
it "returns the id with full groups query if name is nil" do
|
506
|
+
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
507
|
+
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return(nil)
|
508
|
+
expect(@posix).not_to receive(:get_posix_field).with(:group, :gid, nil)
|
509
|
+
|
510
|
+
|
511
|
+
expect(@posix).to receive(:search_posix_field).with(:group, :gid, "asdf").and_return(100)
|
512
|
+
expect(@posix.gid("asdf")).to eq(100)
|
513
|
+
end
|
514
|
+
|
192
515
|
it "should use :search_posix_field if the discovered name does not match the passed-in name" do
|
193
516
|
expect(@posix).to receive(:get_posix_field).with(:group, :gid, "asdf").and_return(100)
|
194
517
|
expect(@posix).to receive(:get_posix_field).with(:group, :name, 100).and_return("boo")
|
@@ -265,6 +588,25 @@ describe Puppet::Util::POSIX do
|
|
265
588
|
expect(@posix.uid("asdf")).to eq(100)
|
266
589
|
end
|
267
590
|
|
591
|
+
it "returns the id without full users query if multiple users have the same id" do
|
592
|
+
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
593
|
+
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return("boo")
|
594
|
+
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "boo").and_return(100)
|
595
|
+
|
596
|
+
expect(@posix).not_to receive(:search_posix_field)
|
597
|
+
expect(@posix.uid("asdf")).to eq(100)
|
598
|
+
end
|
599
|
+
|
600
|
+
it "returns the id with full users query if name is nil" do
|
601
|
+
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
602
|
+
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return(nil)
|
603
|
+
expect(@posix).not_to receive(:get_posix_field).with(:passwd, :uid, nil)
|
604
|
+
|
605
|
+
|
606
|
+
expect(@posix).to receive(:search_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
607
|
+
expect(@posix.uid("asdf")).to eq(100)
|
608
|
+
end
|
609
|
+
|
268
610
|
it "should use :search_posix_field if the discovered name does not match the passed-in name" do
|
269
611
|
expect(@posix).to receive(:get_posix_field).with(:passwd, :uid, "asdf").and_return(100)
|
270
612
|
expect(@posix).to receive(:get_posix_field).with(:passwd, :name, 100).and_return("boo")
|
@@ -33,8 +33,8 @@ describe Puppet::Util::RubyGems::Source do
|
|
33
33
|
describe '::Gems18Source' do
|
34
34
|
before(:each) { allow(described_class).to receive(:source).and_return(Puppet::Util::RubyGems::Gems18Source) }
|
35
35
|
|
36
|
-
it "#directories returns the lib subdirs of Gem::Specification.
|
37
|
-
expect(Gem::Specification).to receive(:
|
36
|
+
it "#directories returns the lib subdirs of Gem::Specification.stubs" do
|
37
|
+
expect(Gem::Specification).to receive(:stubs).and_return([fake_gem])
|
38
38
|
|
39
39
|
expect(described_class.new.directories).to eq([gem_lib])
|
40
40
|
end
|
@@ -1,12 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Puppet::Util::RunMode do
|
4
|
-
# Discriminator for tests that attempts to unset HOME since that, for reasons currently unknown,
|
5
|
-
# doesn't work in Ruby >= 2.4.0
|
6
|
-
def self.gte_ruby_2_4
|
7
|
-
@gte_ruby_2_4 ||= SemanticPuppet::Version.parse(RUBY_VERSION) >= SemanticPuppet::Version.parse('2.4.0')
|
8
|
-
end
|
9
|
-
|
10
4
|
before do
|
11
5
|
@run_mode = Puppet::Util::RunMode.new('fake')
|
12
6
|
end
|
@@ -25,23 +19,15 @@ describe Puppet::Util::RunMode do
|
|
25
19
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path('~/.puppetlabs/etc/puppet')) }
|
26
20
|
end
|
27
21
|
|
28
|
-
context "
|
22
|
+
context "server run mode" do
|
29
23
|
before do
|
30
|
-
@run_mode = Puppet::Util::UnixRunMode.new('
|
24
|
+
@run_mode = Puppet::Util::UnixRunMode.new('server')
|
31
25
|
end
|
32
26
|
|
33
|
-
it "has confdir ~/.puppetlabs/etc/puppet when run as non-root and
|
27
|
+
it "has confdir ~/.puppetlabs/etc/puppet when run as non-root and server run mode" do
|
34
28
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path('~/.puppetlabs/etc/puppet')) }
|
35
29
|
end
|
36
30
|
end
|
37
|
-
|
38
|
-
it "fails when asking for the conf_dir as non-root and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
39
|
-
as_non_root do
|
40
|
-
without_home do
|
41
|
-
expect { @run_mode.conf_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
31
|
end
|
46
32
|
|
47
33
|
describe "#code_dir" do
|
@@ -53,23 +39,15 @@ describe Puppet::Util::RunMode do
|
|
53
39
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path('~/.puppetlabs/etc/code')) }
|
54
40
|
end
|
55
41
|
|
56
|
-
context "
|
42
|
+
context "server run mode" do
|
57
43
|
before do
|
58
|
-
@run_mode = Puppet::Util::UnixRunMode.new('
|
44
|
+
@run_mode = Puppet::Util::UnixRunMode.new('server')
|
59
45
|
end
|
60
46
|
|
61
|
-
it "has codedir ~/.puppetlabs/etc/code when run as non-root and
|
47
|
+
it "has codedir ~/.puppetlabs/etc/code when run as non-root and server run mode" do
|
62
48
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path('~/.puppetlabs/etc/code')) }
|
63
49
|
end
|
64
50
|
end
|
65
|
-
|
66
|
-
it "fails when asking for the code_dir as non-root and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
67
|
-
as_non_root do
|
68
|
-
without_home do
|
69
|
-
expect { @run_mode.code_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
51
|
end
|
74
52
|
|
75
53
|
describe "#var_dir" do
|
@@ -80,13 +58,15 @@ describe Puppet::Util::RunMode do
|
|
80
58
|
it "has vardir ~/.puppetlabs/opt/puppet/cache when run as non-root" do
|
81
59
|
as_non_root { expect(@run_mode.var_dir).to eq(File.expand_path('~/.puppetlabs/opt/puppet/cache')) }
|
82
60
|
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "#public_dir" do
|
64
|
+
it "has publicdir /opt/puppetlabs/puppet/public when run as root" do
|
65
|
+
as_root { expect(@run_mode.public_dir).to eq(File.expand_path('/opt/puppetlabs/puppet/public')) }
|
66
|
+
end
|
83
67
|
|
84
|
-
it "
|
85
|
-
as_non_root
|
86
|
-
without_home do
|
87
|
-
expect { @run_mode.var_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
88
|
-
end
|
89
|
-
end
|
68
|
+
it "has publicdir ~/.puppetlabs/opt/puppet/public when run as non-root" do
|
69
|
+
as_non_root { expect(@run_mode.public_dir).to eq(File.expand_path('~/.puppetlabs/opt/puppet/public')) }
|
90
70
|
end
|
91
71
|
end
|
92
72
|
|
@@ -101,14 +81,6 @@ describe Puppet::Util::RunMode do
|
|
101
81
|
it "has default logdir ~/.puppetlabs/var/log" do
|
102
82
|
as_non_root { expect(@run_mode.log_dir).to eq(File.expand_path('~/.puppetlabs/var/log')) }
|
103
83
|
end
|
104
|
-
|
105
|
-
it "fails when asking for the log_dir and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
106
|
-
as_non_root do
|
107
|
-
without_home do
|
108
|
-
expect { @run_mode.log_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
84
|
end
|
113
85
|
end
|
114
86
|
|
@@ -123,103 +95,59 @@ describe Puppet::Util::RunMode do
|
|
123
95
|
it "has default rundir ~/.puppetlabs/var/run" do
|
124
96
|
as_non_root { expect(@run_mode.run_dir).to eq(File.expand_path('~/.puppetlabs/var/run')) }
|
125
97
|
end
|
126
|
-
|
127
|
-
it "fails when asking for the run_dir and there is no $HOME", :unless => gte_ruby_2_4 || Puppet::Util::Platform.windows? do
|
128
|
-
as_non_root do
|
129
|
-
without_home do
|
130
|
-
expect { @run_mode.run_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
98
|
end
|
135
99
|
end
|
136
100
|
end
|
137
101
|
|
138
102
|
describe Puppet::Util::WindowsRunMode, :if => Puppet::Util::Platform.windows? do
|
139
103
|
before do
|
140
|
-
if not Dir.const_defined? :COMMON_APPDATA
|
141
|
-
Dir.const_set :COMMON_APPDATA, "/CommonFakeBase"
|
142
|
-
@remove_const = true
|
143
|
-
end
|
144
104
|
@run_mode = Puppet::Util::WindowsRunMode.new('fake')
|
145
105
|
end
|
146
106
|
|
147
|
-
after do
|
148
|
-
if @remove_const
|
149
|
-
Dir.send :remove_const, :COMMON_APPDATA
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
107
|
describe "#conf_dir" do
|
154
108
|
it "has confdir ending in Puppetlabs/puppet/etc when run as root" do
|
155
|
-
as_root { expect(@run_mode.conf_dir).to eq(File.expand_path(File.join(
|
109
|
+
as_root { expect(@run_mode.conf_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "etc"))) }
|
156
110
|
end
|
157
111
|
|
158
112
|
it "has confdir in ~/.puppetlabs/etc/puppet when run as non-root" do
|
159
113
|
as_non_root { expect(@run_mode.conf_dir).to eq(File.expand_path("~/.puppetlabs/etc/puppet")) }
|
160
114
|
end
|
161
|
-
|
162
|
-
it "fails when asking for the conf_dir as non-root and there is no %HOME%, %HOMEDRIVE%, and %USERPROFILE%", :unless => gte_ruby_2_4 do
|
163
|
-
as_non_root do
|
164
|
-
without_env('HOME') do
|
165
|
-
without_env('HOMEDRIVE') do
|
166
|
-
without_env('USERPROFILE') do
|
167
|
-
expect { @run_mode.conf_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
end
|
173
115
|
end
|
174
116
|
|
175
117
|
describe "#code_dir" do
|
176
118
|
it "has codedir ending in PuppetLabs/code when run as root" do
|
177
|
-
as_root { expect(@run_mode.code_dir).to eq(File.expand_path(File.join(
|
119
|
+
as_root { expect(@run_mode.code_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "code"))) }
|
178
120
|
end
|
179
121
|
|
180
122
|
it "has codedir in ~/.puppetlabs/etc/code when run as non-root" do
|
181
123
|
as_non_root { expect(@run_mode.code_dir).to eq(File.expand_path("~/.puppetlabs/etc/code")) }
|
182
124
|
end
|
183
|
-
|
184
|
-
it "fails when asking for the code_dir as non-root and there is no %HOME%, %HOMEDRIVE%, and %USERPROFILE%", :unless => gte_ruby_2_4 do
|
185
|
-
as_non_root do
|
186
|
-
without_env('HOME') do
|
187
|
-
without_env('HOMEDRIVE') do
|
188
|
-
without_env('USERPROFILE') do
|
189
|
-
expect { @run_mode.code_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
125
|
end
|
196
126
|
|
197
127
|
describe "#var_dir" do
|
198
128
|
it "has vardir ending in PuppetLabs/puppet/cache when run as root" do
|
199
|
-
as_root { expect(@run_mode.var_dir).to eq(File.expand_path(File.join(
|
129
|
+
as_root { expect(@run_mode.var_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "cache"))) }
|
200
130
|
end
|
201
131
|
|
202
132
|
it "has vardir in ~/.puppetlabs/opt/puppet/cache when run as non-root" do
|
203
133
|
as_non_root { expect(@run_mode.var_dir).to eq(File.expand_path("~/.puppetlabs/opt/puppet/cache")) }
|
204
134
|
end
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "#public_dir" do
|
138
|
+
it "has publicdir ending in PuppetLabs/puppet/public when run as root" do
|
139
|
+
as_root { expect(@run_mode.public_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "public"))) }
|
140
|
+
end
|
205
141
|
|
206
|
-
it "
|
207
|
-
as_non_root
|
208
|
-
without_env('HOME') do
|
209
|
-
without_env('HOMEDRIVE') do
|
210
|
-
without_env('USERPROFILE') do
|
211
|
-
expect { @run_mode.var_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
142
|
+
it "has publicdir in ~/.puppetlabs/opt/puppet/public when run as non-root" do
|
143
|
+
as_non_root { expect(@run_mode.public_dir).to eq(File.expand_path("~/.puppetlabs/opt/puppet/public")) }
|
216
144
|
end
|
217
145
|
end
|
218
146
|
|
219
147
|
describe "#log_dir" do
|
220
148
|
describe "when run as root" do
|
221
149
|
it "has logdir ending in PuppetLabs/puppet/var/log" do
|
222
|
-
as_root { expect(@run_mode.log_dir).to eq(File.expand_path(File.join(
|
150
|
+
as_root { expect(@run_mode.log_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "log"))) }
|
223
151
|
end
|
224
152
|
end
|
225
153
|
|
@@ -227,25 +155,13 @@ describe Puppet::Util::RunMode do
|
|
227
155
|
it "has default logdir ~/.puppetlabs/var/log" do
|
228
156
|
as_non_root { expect(@run_mode.log_dir).to eq(File.expand_path('~/.puppetlabs/var/log')) }
|
229
157
|
end
|
230
|
-
|
231
|
-
it "fails when asking for the log_dir and there is no $HOME", :unless => gte_ruby_2_4 do
|
232
|
-
as_non_root do
|
233
|
-
without_env('HOME') do
|
234
|
-
without_env('HOMEDRIVE') do
|
235
|
-
without_env('USERPROFILE') do
|
236
|
-
expect { @run_mode.log_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
237
|
-
end
|
238
|
-
end
|
239
|
-
end
|
240
|
-
end
|
241
|
-
end
|
242
158
|
end
|
243
159
|
end
|
244
160
|
|
245
161
|
describe "#run_dir" do
|
246
162
|
describe "when run as root" do
|
247
163
|
it "has rundir ending in PuppetLabs/puppet/var/run" do
|
248
|
-
as_root { expect(@run_mode.run_dir).to eq(File.expand_path(File.join(
|
164
|
+
as_root { expect(@run_mode.run_dir).to eq(File.expand_path(File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "run"))) }
|
249
165
|
end
|
250
166
|
end
|
251
167
|
|
@@ -253,18 +169,6 @@ describe Puppet::Util::RunMode do
|
|
253
169
|
it "has default rundir ~/.puppetlabs/var/run" do
|
254
170
|
as_non_root { expect(@run_mode.run_dir).to eq(File.expand_path('~/.puppetlabs/var/run')) }
|
255
171
|
end
|
256
|
-
|
257
|
-
it "fails when asking for the run_dir and there is no $HOME", :unless => gte_ruby_2_4 do
|
258
|
-
as_non_root do
|
259
|
-
without_env('HOME') do
|
260
|
-
without_env('HOMEDRIVE') do
|
261
|
-
without_env('USERPROFILE') do
|
262
|
-
expect { @run_mode.run_dir }.to raise_error ArgumentError, /couldn't find HOME/
|
263
|
-
end
|
264
|
-
end
|
265
|
-
end
|
266
|
-
end
|
267
|
-
end
|
268
172
|
end
|
269
173
|
end
|
270
174
|
|
@@ -310,8 +214,4 @@ describe Puppet::Util::RunMode do
|
|
310
214
|
ensure
|
311
215
|
Puppet::Util.set_env(name, saved)
|
312
216
|
end
|
313
|
-
|
314
|
-
def without_home(&block)
|
315
|
-
without_env('HOME', &block)
|
316
|
-
end
|
317
217
|
end
|