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
@@ -629,7 +629,7 @@ module Serialization
|
|
629
629
|
it 'the value of a type description is something other than a String or a Hash' do
|
630
630
|
expect do
|
631
631
|
from_converter.convert({ '__ptype' => { '__ptype' => 'Pcore::TimestampType', '__pvalue' => 12345 }})
|
632
|
-
end.to raise_error(/Cannot create a Pcore::TimestampType from a
|
632
|
+
end.to raise_error(/Cannot create a Pcore::TimestampType from a Integer/)
|
633
633
|
end
|
634
634
|
end
|
635
635
|
end
|
@@ -125,24 +125,6 @@ describe 'Semantic Versions' do
|
|
125
125
|
expect(eval_and_collect_notices(code)).to eql(['true', 'false'])
|
126
126
|
end
|
127
127
|
|
128
|
-
it 'can be compared to another instance created from arguments' do
|
129
|
-
code = <<-CODE
|
130
|
-
$x = SemVer('1.2.3-rc4+5')
|
131
|
-
$y = SemVer(1, 2, 3, 'rc4', '5')
|
132
|
-
notice($x == $y)
|
133
|
-
CODE
|
134
|
-
expect(eval_and_collect_notices(code)).to eql(['true'])
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'can be compared to another instance created from a hash' do
|
138
|
-
code = <<-CODE
|
139
|
-
$x = SemVer('1.2.3-rc4+5')
|
140
|
-
$y = SemVer(major => 1, minor => 2, patch => 3, prerelease => 'rc4', build => '5')
|
141
|
-
notice($x == $y)
|
142
|
-
CODE
|
143
|
-
expect(eval_and_collect_notices(code)).to eql(['true'])
|
144
|
-
end
|
145
|
-
|
146
128
|
it 'can be compared to another instance for magnitude' do
|
147
129
|
code = <<-CODE
|
148
130
|
$x = SemVer('1.1.1')
|
@@ -113,24 +113,6 @@ describe 'Sensitive Type' do
|
|
113
113
|
expect(eval_and_collect_notices(code)).to eq(['Sensitive[Integer] != Sensitive[String]'])
|
114
114
|
end
|
115
115
|
|
116
|
-
it 'equals another instance with the same value' do
|
117
|
-
code =<<-CODE
|
118
|
-
$i = Sensitive('secret')
|
119
|
-
$o = Sensitive('secret')
|
120
|
-
notice($i == $o)
|
121
|
-
CODE
|
122
|
-
expect(eval_and_collect_notices(code)).to eq(['true'])
|
123
|
-
end
|
124
|
-
|
125
|
-
it 'has equal hash keys for same values' do
|
126
|
-
code =<<-CODE
|
127
|
-
$i = Sensitive('secret')
|
128
|
-
$o = Sensitive('secret')
|
129
|
-
notice({$i => 1} == {$o => 1})
|
130
|
-
CODE
|
131
|
-
expect(eval_and_collect_notices(code)).to eq(['true'])
|
132
|
-
end
|
133
|
-
|
134
116
|
it 'can be created from another sensitive instance ' do
|
135
117
|
code =<<-CODE
|
136
118
|
$o = Sensitive("hunter2")
|
@@ -141,11 +141,11 @@ describe 'The type calculator' do
|
|
141
141
|
|
142
142
|
context 'when inferring ruby' do
|
143
143
|
|
144
|
-
it '
|
144
|
+
it 'integer translates to PIntegerType' do
|
145
145
|
expect(calculator.infer(1).class).to eq(PIntegerType)
|
146
146
|
end
|
147
147
|
|
148
|
-
it 'large
|
148
|
+
it 'large integer translates to PIntegerType' do
|
149
149
|
expect(calculator.infer(2**33).class).to eq(PIntegerType)
|
150
150
|
end
|
151
151
|
|
@@ -329,7 +329,7 @@ describe 'The type calculator' do
|
|
329
329
|
expect(object_t('name' => 'DerivedObjectArray')).to be_instance(derived_object)
|
330
330
|
end
|
331
331
|
|
332
|
-
it 'with
|
332
|
+
it 'with integer values translates to PArrayType[PIntegerType]' do
|
333
333
|
expect(calculator.infer([1,2]).element_type.class).to eq(PIntegerType)
|
334
334
|
end
|
335
335
|
|
@@ -407,7 +407,7 @@ describe 'The type calculator' do
|
|
407
407
|
expect(et.class).to eq(PEnumType)
|
408
408
|
end
|
409
409
|
|
410
|
-
it 'with array of string values and array of
|
410
|
+
it 'with array of string values and array of integers translates to PArrayType[PArrayType[PScalarDataType]]' do
|
411
411
|
et = calculator.infer([['first', 'array'], [1,2]])
|
412
412
|
expect(et.class).to eq(PArrayType)
|
413
413
|
et = et.element_type
|
@@ -425,7 +425,7 @@ describe 'The type calculator' do
|
|
425
425
|
expect(et.class).to eq(PEnumType)
|
426
426
|
end
|
427
427
|
|
428
|
-
it 'with hash of string values and hash of
|
428
|
+
it 'with hash of string values and hash of integers translates to PArrayType[PHashType[PScalarDataType]]' do
|
429
429
|
et = calculator.infer([{:first => 'first', :second => 'second' }, {:first => 1, :second => 2 }])
|
430
430
|
expect(et.class).to eq(PArrayType)
|
431
431
|
et = et.element_type
|
@@ -489,7 +489,7 @@ describe 'The type calculator' do
|
|
489
489
|
expect(calculator.infer({'first' => 1, 'second' => 2}).key_type.class).to eq(PEnumType)
|
490
490
|
end
|
491
491
|
|
492
|
-
it 'with
|
492
|
+
it 'with integer values translates to PHashType[key, PIntegerType]' do
|
493
493
|
expect(calculator.infer({:first => 1, :second => 2}).value_type.class).to eq(PIntegerType)
|
494
494
|
end
|
495
495
|
|
@@ -151,7 +151,7 @@ describe 'The type factory' do
|
|
151
151
|
expect(hc.class_name).to eq('x')
|
152
152
|
end
|
153
153
|
|
154
|
-
it 'array_of(
|
154
|
+
it 'array_of(integer) returns PArrayType[PIntegerType]' do
|
155
155
|
at = TypeFactory.array_of(1)
|
156
156
|
expect(at.class()).to eq(PArrayType)
|
157
157
|
expect(at.element_type.class).to eq(PIntegerType)
|
@@ -179,17 +179,17 @@ describe "validating 4x" do
|
|
179
179
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::DUPLICATE_KEY)
|
180
180
|
end
|
181
181
|
|
182
|
-
it 'produces
|
182
|
+
it 'produces an error for virtual class resource' do
|
183
183
|
acceptor = validate(parse('@class { test: }'))
|
184
|
-
expect(acceptor.warning_count).to eql(
|
185
|
-
expect(acceptor.error_count).to eql(
|
184
|
+
expect(acceptor.warning_count).to eql(0)
|
185
|
+
expect(acceptor.error_count).to eql(1)
|
186
186
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
187
187
|
end
|
188
188
|
|
189
|
-
it 'produces
|
189
|
+
it 'produces an error for exported class resource' do
|
190
190
|
acceptor = validate(parse('@@class { test: }'))
|
191
|
-
expect(acceptor.warning_count).to eql(
|
192
|
-
expect(acceptor.error_count).to eql(
|
191
|
+
expect(acceptor.warning_count).to eql(0)
|
192
|
+
expect(acceptor.error_count).to eql(1)
|
193
193
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
194
194
|
end
|
195
195
|
|
@@ -310,17 +310,17 @@ describe "validating 4x" do
|
|
310
310
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::DUPLICATE_DEFAULT)
|
311
311
|
end
|
312
312
|
|
313
|
-
it 'produces
|
313
|
+
it 'produces an error for virtual class resource' do
|
314
314
|
acceptor = validate(parse('@class { test: }'))
|
315
|
-
expect(acceptor.warning_count).to eql(
|
316
|
-
expect(acceptor.error_count).to eql(
|
315
|
+
expect(acceptor.warning_count).to eql(0)
|
316
|
+
expect(acceptor.error_count).to eql(1)
|
317
317
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
318
318
|
end
|
319
319
|
|
320
|
-
it 'produces
|
320
|
+
it 'produces an error for exported class resource' do
|
321
321
|
acceptor = validate(parse('@@class { test: }'))
|
322
|
-
expect(acceptor.warning_count).to eql(
|
323
|
-
expect(acceptor.error_count).to eql(
|
322
|
+
expect(acceptor.warning_count).to eql(0)
|
323
|
+
expect(acceptor.error_count).to eql(1)
|
324
324
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::CLASS_NOT_VIRTUALIZABLE)
|
325
325
|
end
|
326
326
|
end
|
@@ -344,16 +344,16 @@ describe "validating 4x" do
|
|
344
344
|
end
|
345
345
|
end
|
346
346
|
|
347
|
-
it 'produces
|
348
|
-
|
349
|
-
|
350
|
-
|
347
|
+
it 'produces a syntax error for application' do
|
348
|
+
expect {
|
349
|
+
parse('application test {}')
|
350
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'application'/)
|
351
351
|
end
|
352
352
|
|
353
|
-
it 'produces
|
354
|
-
|
355
|
-
|
356
|
-
|
353
|
+
it 'produces a syntax error for capability mapping' do
|
354
|
+
expect {
|
355
|
+
parse('Foo produces Sql {}')
|
356
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'produces'/)
|
357
357
|
end
|
358
358
|
|
359
359
|
it 'produces an error for collect expressions with virtual query' do
|
@@ -410,10 +410,10 @@ describe "validating 4x" do
|
|
410
410
|
expect(acceptor).to have_issue(Puppet::Pops::Issues::EXPRESSION_NOT_SUPPORTED_WHEN_SCRIPTING)
|
411
411
|
end
|
412
412
|
|
413
|
-
it 'produces
|
414
|
-
|
415
|
-
|
416
|
-
|
413
|
+
it 'produces a syntax error for site definitions' do
|
414
|
+
expect {
|
415
|
+
parse('site {}')
|
416
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'site'/)
|
417
417
|
end
|
418
418
|
|
419
419
|
context 'validating apply() blocks' do
|
@@ -468,16 +468,16 @@ describe "validating 4x" do
|
|
468
468
|
expect(acceptor.error_count).to eql(0)
|
469
469
|
end
|
470
470
|
|
471
|
-
it 'produces
|
472
|
-
|
473
|
-
|
474
|
-
|
471
|
+
it 'produces a syntax error for application' do
|
472
|
+
expect {
|
473
|
+
parse('apply("foo.example.com") { application test {} }')
|
474
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'application'/)
|
475
475
|
end
|
476
476
|
|
477
|
-
it 'produces
|
478
|
-
|
479
|
-
|
480
|
-
|
477
|
+
it 'produces a syntax error for capability mapping' do
|
478
|
+
expect {
|
479
|
+
parse('apply("foo.example.com") { Foo produces Sql {} }')
|
480
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'produces'/)
|
481
481
|
end
|
482
482
|
|
483
483
|
it 'produces an error for class expressions' do
|
@@ -504,9 +504,9 @@ describe "validating 4x" do
|
|
504
504
|
end
|
505
505
|
|
506
506
|
it 'produces an error for site definitions' do
|
507
|
-
|
508
|
-
|
509
|
-
|
507
|
+
expect {
|
508
|
+
parse('apply("foo.example.com") { site {} }')
|
509
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at 'site'/)
|
510
510
|
end
|
511
511
|
|
512
512
|
it 'produces an error for apply() inside apply()' do
|
@@ -669,6 +669,15 @@ describe "validating 4x" do
|
|
669
669
|
'regexp',
|
670
670
|
'pattern',
|
671
671
|
'runtime',
|
672
|
+
'init',
|
673
|
+
'object',
|
674
|
+
'sensitive',
|
675
|
+
'semver',
|
676
|
+
'semverrange',
|
677
|
+
'string',
|
678
|
+
'timestamp',
|
679
|
+
'timespan',
|
680
|
+
'typeset',
|
672
681
|
].each do |name|
|
673
682
|
|
674
683
|
it "produces an error for 'class #{name}'" do
|
@@ -693,6 +702,7 @@ describe "validating 4x" do
|
|
693
702
|
source = "type('a', 'b')"
|
694
703
|
expect(validate(parse(source))).not_to have_any_issues
|
695
704
|
end
|
705
|
+
|
696
706
|
it "should allow using the 'type' as the name of a function with no parameters and a block" do
|
697
707
|
source = "type() |$x| { $x }"
|
698
708
|
expect(validate(parse(source))).not_to have_any_issues
|
@@ -968,6 +978,18 @@ describe "validating 4x" do
|
|
968
978
|
end
|
969
979
|
end
|
970
980
|
|
981
|
+
it "allows a reserved type name" do
|
982
|
+
source = <<-SOURCE
|
983
|
+
class foo {
|
984
|
+
define string() {}
|
985
|
+
foo::string { 'a': }
|
986
|
+
}
|
987
|
+
SOURCE
|
988
|
+
|
989
|
+
acceptor = validate(parse(source, 'path/foo/manifests/init.pp'))
|
990
|
+
expect(acceptor.error_count).to eql(0)
|
991
|
+
end
|
992
|
+
|
971
993
|
it "will give multiple errors in one file with multiple issues" do
|
972
994
|
source = <<-SOURCE
|
973
995
|
class foo {}
|
@@ -992,17 +1014,10 @@ describe "validating 4x" do
|
|
992
1014
|
|
993
1015
|
context "capability annotations" do
|
994
1016
|
['produces', 'consumes'].each do |word|
|
995
|
-
it "
|
996
|
-
expect
|
997
|
-
|
998
|
-
|
999
|
-
it "accepts legal resource and capability types in #{word} clauses" do
|
1000
|
-
expect(validate(parse("Foo produces Bar {}"))).to_not have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1001
|
-
expect(validate(parse("Mod::Foo produces ::Mod2::Bar {}"))).to_not have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1002
|
-
end
|
1003
|
-
|
1004
|
-
it "rejects illegal capability types in #{word} clauses" do
|
1005
|
-
expect(validate(parse("Foo produces bar {}"))).to have_issue(Puppet::Pops::Issues::ILLEGAL_CLASSREF)
|
1017
|
+
it "raises a syntax error in #{word} clauses" do
|
1018
|
+
expect {
|
1019
|
+
parse("foo #{word} Bar {}")
|
1020
|
+
}.to raise_error(Puppet::ParseErrorWithIssue, /Syntax error at '#{word}'/)
|
1006
1021
|
end
|
1007
1022
|
end
|
1008
1023
|
end
|
@@ -39,7 +39,7 @@ describe Puppet::Pops::Visitor do
|
|
39
39
|
|
40
40
|
it "should select method for superclass" do
|
41
41
|
duck_processor = DuckProcessor.new
|
42
|
-
expect(duck_processor.hi(42)).to match(/Howdy
|
42
|
+
expect(duck_processor.hi(42)).to match(/Howdy Integer/)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should select method for superclass" do
|
data/spec/unit/property_spec.rb
CHANGED
@@ -198,10 +198,7 @@ describe Puppet::Type.type(:group).provider(:groupadd) do
|
|
198
198
|
end
|
199
199
|
|
200
200
|
describe "#findgroup" do
|
201
|
-
before
|
202
|
-
allow(Puppet::FileSystem).to receive(:exist?).with('/etc/group').and_return(true)
|
203
|
-
allow(Puppet::FileSystem).to receive(:each_line).with('/etc/group').and_yield(content)
|
204
|
-
end
|
201
|
+
before { allow(File).to receive(:read).with('/etc/group').and_return(content) }
|
205
202
|
|
206
203
|
let(:content) { "sample_group_name:sample_password:sample_gid:sample_user_list" }
|
207
204
|
let(:output) do
|
@@ -224,7 +221,7 @@ describe Puppet::Type.type(:group).provider(:groupadd) do
|
|
224
221
|
end
|
225
222
|
|
226
223
|
it "reads the group file only once per resource" do
|
227
|
-
expect(
|
224
|
+
expect(File).to receive(:read).with('/etc/group').once
|
228
225
|
5.times { provider.send(:findgroup, :group_name, 'sample_group_name') }
|
229
226
|
end
|
230
227
|
end
|
@@ -3,28 +3,11 @@ require 'puppet/provider/nameservice'
|
|
3
3
|
require 'puppet/etc'
|
4
4
|
require 'puppet_spec/character_encoding'
|
5
5
|
|
6
|
-
Puppet::Type.newtype(:nameservice_dummytype) do
|
7
|
-
newparam(:name)
|
8
|
-
ensurable
|
9
|
-
newproperty(:foo)
|
10
|
-
newproperty(:bar)
|
11
|
-
end
|
12
|
-
|
13
|
-
Puppet::Type.type(:nameservice_dummytype).provide(:nameservice_dummyprovider, parent: Puppet::Provider::NameService) do
|
14
|
-
def posixmethod(param)
|
15
|
-
param
|
16
|
-
end
|
17
|
-
|
18
|
-
def modifycmd(param, value)
|
19
|
-
[]
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
6
|
describe Puppet::Provider::NameService do
|
24
7
|
|
25
8
|
before :each do
|
26
|
-
|
27
|
-
|
9
|
+
described_class.initvars
|
10
|
+
described_class.resource_type = faketype
|
28
11
|
end
|
29
12
|
|
30
13
|
# These are values getpwent might give you
|
@@ -58,12 +41,16 @@ describe Puppet::Provider::NameService do
|
|
58
41
|
# The provider sometimes relies on @resource for valid properties so let's
|
59
42
|
# create a fake type with properties that match our fake struct.
|
60
43
|
let :faketype do
|
61
|
-
Puppet::Type.
|
44
|
+
Puppet::Type.newtype(:nameservice_dummytype) do
|
45
|
+
newparam(:name)
|
46
|
+
ensurable
|
47
|
+
newproperty(:foo)
|
48
|
+
newproperty(:bar)
|
49
|
+
end
|
62
50
|
end
|
63
51
|
|
64
52
|
let :provider do
|
65
|
-
|
66
|
-
.new(:name => 'bob', :foo => 'fooval', :bar => 'barval')
|
53
|
+
described_class.new(:name => 'bob', :foo => 'fooval', :bar => 'barval')
|
67
54
|
end
|
68
55
|
|
69
56
|
let :resource do
|
@@ -104,118 +91,61 @@ describe Puppet::Provider::NameService do
|
|
104
91
|
|
105
92
|
describe "#options" do
|
106
93
|
it "should add options for a valid property" do
|
107
|
-
|
108
|
-
|
109
|
-
expect(
|
110
|
-
expect(
|
111
|
-
expect(
|
94
|
+
described_class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
95
|
+
described_class.options :bar, :key3 => 'val3'
|
96
|
+
expect(described_class.option(:foo, :key1)).to eq('val1')
|
97
|
+
expect(described_class.option(:foo, :key2)).to eq('val2')
|
98
|
+
expect(described_class.option(:bar, :key3)).to eq('val3')
|
112
99
|
end
|
113
100
|
|
114
101
|
it "should raise an error for an invalid property" do
|
115
|
-
expect {
|
102
|
+
expect { described_class.options :baz, :key1 => 'val1' }.to raise_error(
|
116
103
|
Puppet::Error, 'baz is not a valid attribute for nameservice_dummytype')
|
117
104
|
end
|
118
105
|
end
|
119
106
|
|
120
107
|
describe "#option" do
|
121
108
|
it "should return the correct value" do
|
122
|
-
|
123
|
-
expect(
|
109
|
+
described_class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
110
|
+
expect(described_class.option(:foo, :key2)).to eq('val2')
|
124
111
|
end
|
125
112
|
|
126
113
|
it "should symbolize the name first" do
|
127
|
-
|
128
|
-
expect(
|
114
|
+
described_class.options :foo, :key1 => 'val1', :key2 => 'val2'
|
115
|
+
expect(described_class.option('foo', :key2)).to eq('val2')
|
129
116
|
end
|
130
117
|
|
131
118
|
it "should return nil if no option has been specified earlier" do
|
132
|
-
expect(
|
119
|
+
expect(described_class.option(:foo, :key2)).to be_nil
|
133
120
|
end
|
134
121
|
|
135
122
|
it "should return nil if no option for that property has been specified earlier" do
|
136
|
-
|
137
|
-
expect(
|
123
|
+
described_class.options :bar, :key2 => 'val2'
|
124
|
+
expect(described_class.option(:foo, :key2)).to be_nil
|
138
125
|
end
|
139
126
|
|
140
127
|
it "should return nil if no matching key can be found for that property" do
|
141
|
-
|
142
|
-
expect(
|
128
|
+
described_class.options :foo, :key3 => 'val2'
|
129
|
+
expect(described_class.option(:foo, :key2)).to be_nil
|
143
130
|
end
|
144
131
|
end
|
145
132
|
|
146
133
|
describe "#section" do
|
147
134
|
it "should raise an error if resource_type has not been set" do
|
148
|
-
expect(
|
149
|
-
expect {
|
135
|
+
expect(described_class).to receive(:resource_type).and_return(nil)
|
136
|
+
expect { described_class.section }.to raise_error Puppet::Error, 'Cannot determine Etc section without a resource type'
|
150
137
|
end
|
151
138
|
|
152
139
|
# the return values are hard coded so I am using types that actually make
|
153
140
|
# use of the nameservice provider
|
154
141
|
it "should return pw for users" do
|
155
|
-
provider.class.resource_type = Puppet::Type.type(:user)
|
156
|
-
expect(provider.class.section).to eq('pw')
|
157
|
-
end
|
158
|
-
|
159
|
-
it "should return gr for groups" do
|
160
|
-
provider.class.resource_type = Puppet::Type.type(:group)
|
161
|
-
expect(provider.class.section).to eq('gr')
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
describe "#listbyname" do
|
166
|
-
it "should be deprecated" do
|
167
|
-
expect(Puppet).to receive(:deprecation_warning).with(/listbyname is deprecated/)
|
168
|
-
described_class.listbyname
|
169
|
-
end
|
170
|
-
|
171
|
-
it "should return a list of users if resource_type is user" do
|
172
142
|
described_class.resource_type = Puppet::Type.type(:user)
|
173
|
-
expect(
|
174
|
-
allow(Puppet::Etc).to receive(:getpwent).and_return(*users)
|
175
|
-
expect(Puppet::Etc).to receive(:endpwent)
|
176
|
-
expect(described_class.listbyname).to eq(%w{root foo})
|
143
|
+
expect(described_class.section).to eq('pw')
|
177
144
|
end
|
178
145
|
|
179
|
-
|
180
|
-
described_class.resource_type = Puppet::Type.type(:user)
|
181
|
-
|
182
|
-
# These two tests simulate an environment where there are two users with
|
183
|
-
# the same name on disk, but each name is stored on disk in a different
|
184
|
-
# encoding
|
185
|
-
it "should return names with invalid byte sequences replaced with '?'" do
|
186
|
-
allow(Etc).to receive(:getpwent).and_return(*utf_8_mixed_users)
|
187
|
-
expect(invalid_utf_8_jose).to_not be_valid_encoding
|
188
|
-
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::UTF_8) do
|
189
|
-
described_class.listbyname
|
190
|
-
end
|
191
|
-
expect(result).to eq(['root', 'foo', utf_8_jose, escaped_utf_8_jose])
|
192
|
-
end
|
193
|
-
|
194
|
-
it "should return names in their original encoding/bytes if they would not be valid UTF-8" do
|
195
|
-
allow(Etc).to receive(:getpwent).and_return(*latin_1_mixed_users)
|
196
|
-
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::ISO_8859_1) do
|
197
|
-
described_class.listbyname
|
198
|
-
end
|
199
|
-
expect(result).to eq(['root'.force_encoding(Encoding::UTF_8), 'foo'.force_encoding(Encoding::UTF_8), utf_8_jose, valid_latin1_jose])
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
it "should return a list of groups if resource_type is group", :unless => Puppet::Util::Platform.windows? do
|
146
|
+
it "should return gr for groups" do
|
204
147
|
described_class.resource_type = Puppet::Type.type(:group)
|
205
|
-
expect(
|
206
|
-
allow(Puppet::Etc).to receive(:getgrent).and_return(*groups)
|
207
|
-
expect(Puppet::Etc).to receive(:endgrent)
|
208
|
-
expect(described_class.listbyname).to eq(%w{root bin})
|
209
|
-
end
|
210
|
-
|
211
|
-
it "should yield if a block given" do
|
212
|
-
yield_results = []
|
213
|
-
described_class.resource_type = Puppet::Type.type(:user)
|
214
|
-
expect(Puppet::Etc).to receive(:setpwent)
|
215
|
-
allow(Puppet::Etc).to receive(:getpwent).and_return(*users)
|
216
|
-
expect(Puppet::Etc).to receive(:endpwent)
|
217
|
-
described_class.listbyname {|x| yield_results << x }
|
218
|
-
expect(yield_results).to eq(%w{root foo})
|
148
|
+
expect(described_class.section).to eq('gr')
|
219
149
|
end
|
220
150
|
end
|
221
151
|
|
@@ -226,7 +156,7 @@ describe Puppet::Provider::NameService do
|
|
226
156
|
# encoding
|
227
157
|
allow(Etc).to receive(:getpwent).and_return(*utf_8_mixed_users)
|
228
158
|
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::UTF_8) do
|
229
|
-
|
159
|
+
described_class.instances
|
230
160
|
end
|
231
161
|
expect(result.map(&:name)).to eq(
|
232
162
|
[
|
@@ -241,7 +171,7 @@ describe Puppet::Provider::NameService do
|
|
241
171
|
it "should have object names in their original encoding/bytes if they would not be valid UTF-8" do
|
242
172
|
allow(Etc).to receive(:getpwent).and_return(*latin_1_mixed_users)
|
243
173
|
result = PuppetSpec::CharacterEncoding.with_external_encoding(Encoding::ISO_8859_1) do
|
244
|
-
|
174
|
+
described_class.instances
|
245
175
|
end
|
246
176
|
expect(result.map(&:name)).to eq(
|
247
177
|
[
|
@@ -256,40 +186,40 @@ describe Puppet::Provider::NameService do
|
|
256
186
|
it "should pass the Puppet::Etc :canonical_name Struct member to the constructor" do
|
257
187
|
users = [ Struct::Passwd.new(invalid_utf_8_jose, invalid_utf_8_jose, 1002, 2000), nil ]
|
258
188
|
allow(Etc).to receive(:getpwent).and_return(*users)
|
259
|
-
expect(
|
260
|
-
|
189
|
+
expect(described_class).to receive(:new).with(:name => escaped_utf_8_jose, :canonical_name => invalid_utf_8_jose, :ensure => :present)
|
190
|
+
described_class.instances
|
261
191
|
end
|
262
192
|
end
|
263
193
|
|
264
194
|
describe "validate" do
|
265
195
|
it "should pass if no check is registered at all" do
|
266
|
-
expect {
|
267
|
-
expect {
|
196
|
+
expect { described_class.validate(:foo, 300) }.to_not raise_error
|
197
|
+
expect { described_class.validate('foo', 300) }.to_not raise_error
|
268
198
|
end
|
269
199
|
|
270
200
|
it "should pass if no check for that property is registered" do
|
271
|
-
|
272
|
-
expect {
|
273
|
-
expect {
|
201
|
+
described_class.verify(:bar, 'Must be 100') { |val| val == 100 }
|
202
|
+
expect { described_class.validate(:foo, 300) }.to_not raise_error
|
203
|
+
expect { described_class.validate('foo', 300) }.to_not raise_error
|
274
204
|
end
|
275
205
|
|
276
206
|
it "should pass if the value is valid" do
|
277
|
-
|
278
|
-
expect {
|
279
|
-
expect {
|
207
|
+
described_class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
208
|
+
expect { described_class.validate(:foo, 100) }.to_not raise_error
|
209
|
+
expect { described_class.validate('foo', 100) }.to_not raise_error
|
280
210
|
end
|
281
211
|
|
282
212
|
it "should raise an error if the value is invalid" do
|
283
|
-
|
284
|
-
expect {
|
285
|
-
expect {
|
213
|
+
described_class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
214
|
+
expect { described_class.validate(:foo, 200) }.to raise_error(ArgumentError, 'Invalid value 200: Must be 100')
|
215
|
+
expect { described_class.validate('foo', 200) }.to raise_error(ArgumentError, 'Invalid value 200: Must be 100')
|
286
216
|
end
|
287
217
|
end
|
288
218
|
|
289
219
|
describe "getinfo" do
|
290
220
|
before :each do
|
291
221
|
# with section=foo we'll call Etc.getfoonam instead of getpwnam or getgrnam
|
292
|
-
allow(
|
222
|
+
allow(described_class).to receive(:section).and_return('foo')
|
293
223
|
resource # initialize the resource so our provider has a @resource instance variable
|
294
224
|
end
|
295
225
|
|
@@ -309,13 +239,13 @@ describe Puppet::Provider::NameService do
|
|
309
239
|
# overriding to UTF-8, in @canonical_name for querying that state on disk
|
310
240
|
# again if needed
|
311
241
|
it "should use the instance's @canonical_name to query the system" do
|
312
|
-
provider_instance =
|
242
|
+
provider_instance = described_class.new(:name => 'foo', :canonical_name => 'original_foo', :ensure => :present)
|
313
243
|
expect(Puppet::Etc).to receive(:send).with(:getfoonam, 'original_foo')
|
314
244
|
provider_instance.getinfo(true)
|
315
245
|
end
|
316
246
|
|
317
247
|
it "should use the instance's name instead of canonical_name if not supplied during instantiation" do
|
318
|
-
provider_instance =
|
248
|
+
provider_instance = described_class.new(:name => 'foo', :ensure => :present)
|
319
249
|
expect(Puppet::Etc).to receive(:send).with(:getfoonam, 'foo')
|
320
250
|
provider_instance.getinfo(true)
|
321
251
|
end
|
@@ -323,6 +253,16 @@ describe Puppet::Provider::NameService do
|
|
323
253
|
|
324
254
|
describe "info2hash" do
|
325
255
|
it "should return a hash with all properties" do
|
256
|
+
# we have to have an implementation of posixmethod which has to
|
257
|
+
# convert a propertyname (e.g. comment) into a fieldname of our
|
258
|
+
# Struct (e.g. gecos). I do not want to test posixmethod here so
|
259
|
+
# let's fake an implementation which does not do any translation. We
|
260
|
+
# expect two method invocations because info2hash calls the method
|
261
|
+
# twice if the Struct responds to the propertyname (our fake Struct
|
262
|
+
# provides values for :foo and :bar) TODO: Fix that
|
263
|
+
expect(provider).to receive(:posixmethod).with(:foo).and_return(:foo).twice
|
264
|
+
expect(provider).to receive(:posixmethod).with(:bar).and_return(:bar).twice
|
265
|
+
expect(provider).to receive(:posixmethod).with(:ensure).and_return(:ensure)
|
326
266
|
expect(provider.info2hash(fakeetcobject)).to eq({ :foo => 'fooval', :bar => 'barval' })
|
327
267
|
end
|
328
268
|
end
|
@@ -333,7 +273,7 @@ describe Puppet::Provider::NameService do
|
|
333
273
|
end
|
334
274
|
|
335
275
|
it "should return the munged value otherwise" do
|
336
|
-
|
276
|
+
described_class.options(:foo, :munge => proc { |x| x*2 })
|
337
277
|
expect(provider.munge(:foo, 100)).to eq(200)
|
338
278
|
end
|
339
279
|
end
|
@@ -344,7 +284,7 @@ describe Puppet::Provider::NameService do
|
|
344
284
|
end
|
345
285
|
|
346
286
|
it "should return the unmunged value otherwise" do
|
347
|
-
|
287
|
+
described_class.options(:foo, :unmunge => proc { |x| x/2 })
|
348
288
|
expect(provider.unmunge(:foo, 200)).to eq(100)
|
349
289
|
end
|
350
290
|
end
|
@@ -362,13 +302,15 @@ describe Puppet::Provider::NameService do
|
|
362
302
|
end
|
363
303
|
|
364
304
|
describe "get" do
|
305
|
+
before(:each) {described_class.resource_type = faketype }
|
306
|
+
|
365
307
|
it "should return the correct getinfo value" do
|
366
308
|
expect(provider).to receive(:getinfo).with(false).and_return(:foo => 'fooval', :bar => 'barval')
|
367
309
|
expect(provider.get(:bar)).to eq('barval')
|
368
310
|
end
|
369
311
|
|
370
312
|
it "should unmunge the value first" do
|
371
|
-
|
313
|
+
described_class.options(:bar, :munge => proc { |x| x*2}, :unmunge => proc {|x| x/2})
|
372
314
|
expect(provider).to receive(:getinfo).with(false).and_return(:foo => 200, :bar => 500)
|
373
315
|
expect(provider.get(:bar)).to eq(250)
|
374
316
|
end
|
@@ -383,7 +325,7 @@ describe Puppet::Provider::NameService do
|
|
383
325
|
describe "set" do
|
384
326
|
before :each do
|
385
327
|
resource # initialize resource so our provider has a @resource object
|
386
|
-
|
328
|
+
described_class.verify(:foo, 'Must be 100') { |val| val == 100 }
|
387
329
|
end
|
388
330
|
|
389
331
|
it "should raise an error on invalid values" do
|
@@ -397,7 +339,7 @@ describe Puppet::Provider::NameService do
|
|
397
339
|
end
|
398
340
|
|
399
341
|
it "should munge the value first" do
|
400
|
-
|
342
|
+
described_class.options(:foo, :munge => proc { |x| x*2}, :unmunge => proc {|x| x/2})
|
401
343
|
expect(provider).to receive(:modifycmd).with(:foo, 200).and_return(['/bin/modify', '-f', '200' ])
|
402
344
|
expect(provider).to receive(:execute).with(['/bin/modify', '-f', '200'], hash_including(custom_environment: {}))
|
403
345
|
provider.set(:foo, 100)
|