puppet 6.19.1-universal-darwin → 7.0.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +19 -20
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +1 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +28 -33
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +95 -159
- data/lib/puppet/environments.rb +10 -25
- data/lib/puppet/face/config.rb +10 -0
- 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/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/http/client.rb +164 -114
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/resolver/server_list.rb +6 -10
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- 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 +3 -58
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/json.rb +5 -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/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- 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/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 +73 -18
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
- 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/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- 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 +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +45 -33
- 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 +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/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 +9 -1
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +531 -1232
- data/man/man5/puppet.conf.5 +37 -97
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +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 +1 -1
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +4 -1
- 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/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +24 -11
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +7 -3
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- 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/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/facts_spec.rb +35 -0
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +77 -28
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/config_spec.rb +27 -32
- data/spec/unit/face/facts_spec.rb +4 -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 +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- 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 -8
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +49 -62
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- 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/node/json_spec.rb +33 -0
- 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 +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
- 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 +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- 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/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- 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 +423 -236
- 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/report_spec.rb +0 -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 +0 -1
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +21 -121
- 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 +50 -176
- 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 -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/integration/application/config_spec.rb +0 -74
- 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/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- 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/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
@@ -18,7 +18,7 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
18
18
|
describe "when servicing a save request" do
|
19
19
|
it "should return a result whose content is empty" do
|
20
20
|
bucket_file = Puppet::FileBucket::File.new('stuff')
|
21
|
-
result = Puppet::FileBucket::File.indirection.save(bucket_file, "
|
21
|
+
result = Puppet::FileBucket::File.indirection.save(bucket_file, "sha256/35bafb1ce99aef3ab068afbaabae8f21fd9b9f02d3a9442e364fa92c0b3eeef0")
|
22
22
|
expect(result.contents).to be_empty
|
23
23
|
end
|
24
24
|
|
@@ -34,12 +34,14 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
34
34
|
end
|
35
35
|
children.each { |child| Process.wait(child) }
|
36
36
|
|
37
|
-
paths = File.read("#{Puppet[:bucketdir]}/
|
37
|
+
paths = File.read("#{Puppet[:bucketdir]}/d/1/b/2/a/5/9/f/d1b2a59fbea7e20077af9f91b27e95e865061b270be03ff539ab3b73587882e8/paths").lines.to_a
|
38
38
|
expect(paths.length).to eq(1)
|
39
39
|
expect(Puppet::FileBucket::File.indirection.head("#{bucket_file.checksum_type}/#{bucket_file.checksum_data}/testing")).to be_truthy
|
40
40
|
end
|
41
41
|
|
42
42
|
it "fails if the contents collide with existing contents" do
|
43
|
+
Puppet[:digest_algorithm] = 'md5'
|
44
|
+
|
43
45
|
# This is the shortest known MD5 collision (little endian). See https://eprint.iacr.org/2010/643.pdf
|
44
46
|
first_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
|
45
47
|
0x6503cf04,0x854f709e,0xfb0fc034,0x874c9c65,
|
@@ -66,7 +68,7 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
66
68
|
context "when the contents file exists but is corrupted and does not match the expected checksum" do
|
67
69
|
let(:original_contents) { "a file that will get corrupted" }
|
68
70
|
let(:bucket_file) { Puppet::FileBucket::File.new(original_contents) }
|
69
|
-
let(:contents_file) { "#{Puppet[:bucketdir]}/
|
71
|
+
let(:contents_file) { "#{Puppet[:bucketdir]}/7/7/4/1/0/2/7/9/77410279bb789b799c2f38bf654b46a509dd27ddad6e47a6684805e9ba390bce/contents" }
|
70
72
|
|
71
73
|
before(:each) do
|
72
74
|
# Ensure we're starting with a clean slate - no pre-existing backup
|
@@ -57,8 +57,4 @@ describe Puppet::Indirector::FileContent::Rest do
|
|
57
57
|
|
58
58
|
described_class.indirection.find("puppet://example.com:8140/:mount/path/to/file")
|
59
59
|
end
|
60
|
-
|
61
|
-
it "should use the :fileserver SRV service" do
|
62
|
-
expect(Puppet::Indirector::FileContent::Rest.srv_service).to eq(:fileserver)
|
63
|
-
end
|
64
60
|
end
|
@@ -113,8 +113,4 @@ describe Puppet::Indirector::FileMetadata::Rest do
|
|
113
113
|
model.indirection.search("puppet://example.com:8140/:mount/path/to/dir")
|
114
114
|
end
|
115
115
|
end
|
116
|
-
|
117
|
-
it "should use the :fileserver SRV service" do
|
118
|
-
expect(Puppet::Indirector::FileMetadata::Rest.srv_service).to eq(:fileserver)
|
119
|
-
end
|
120
116
|
end
|
@@ -246,7 +246,7 @@ describe Puppet::Indirector::FileServer do
|
|
246
246
|
end
|
247
247
|
|
248
248
|
describe "when checking authorization" do
|
249
|
-
let(:mount) { double('mount'
|
249
|
+
let(:mount) { double('mount') }
|
250
250
|
let(:request) { Puppet::Indirector::Request.new(:myind, :mymethod, uri, :environment => "myenv") }
|
251
251
|
|
252
252
|
before(:each) do
|
@@ -282,21 +282,7 @@ describe Puppet::Indirector::FileServer do
|
|
282
282
|
end
|
283
283
|
|
284
284
|
it "should return true when no auth directives are defined for the mount point" do
|
285
|
-
allow(mount).to receive(:empty?).and_return(true)
|
286
|
-
allow(mount).to receive(:globalallow?).and_return(nil)
|
287
285
|
expect(terminus).to be_authorized(request)
|
288
286
|
end
|
289
|
-
|
290
|
-
it "should return true when a global allow directive is defined for the mount point" do
|
291
|
-
allow(mount).to receive(:empty?).and_return(false)
|
292
|
-
allow(mount).to receive(:globalallow?).and_return(true)
|
293
|
-
expect(terminus).to be_authorized(request)
|
294
|
-
end
|
295
|
-
|
296
|
-
it "should return false when a non-global allow directive is defined for the mount point" do
|
297
|
-
allow(mount).to receive(:empty?).and_return(false)
|
298
|
-
allow(mount).to receive(:globalallow?).and_return(false)
|
299
|
-
expect(terminus).not_to be_authorized(request)
|
300
|
-
end
|
301
287
|
end
|
302
288
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet/node'
|
3
|
+
require 'puppet/indirector/node/json'
|
4
|
+
|
5
|
+
describe Puppet::Node::Json do
|
6
|
+
describe '#save' do
|
7
|
+
subject(:indirection) { described_class.indirection }
|
8
|
+
|
9
|
+
let(:env) { Puppet::Node::Environment.create(:testing, []) }
|
10
|
+
let(:node) { Puppet::Node.new('node_name', :environment => env) }
|
11
|
+
let(:file) { File.join(Puppet[:client_datadir], "node", "node_name.json") }
|
12
|
+
|
13
|
+
before do
|
14
|
+
indirection.terminus_class = :json
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'saves the instance of the node as JSON to disk' do
|
18
|
+
indirection.save(node)
|
19
|
+
json = Puppet::FileSystem.read(file, :encoding => 'bom|utf-8')
|
20
|
+
content = Puppet::Util::Json.load(json)
|
21
|
+
expect(content["name"]).to eq('node_name')
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'when node cannot be saved' do
|
25
|
+
it 'raises Errno::EISDIR' do
|
26
|
+
FileUtils.mkdir_p(file)
|
27
|
+
expect {
|
28
|
+
indirection.save(node)
|
29
|
+
}.to raise_error(Errno::EISDIR, /node_name.json/)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'puppet/transaction/report'
|
4
|
-
require 'puppet/indirector/report/
|
4
|
+
require 'puppet/indirector/report/json'
|
5
5
|
|
6
|
-
describe Puppet::Transaction::Report::
|
6
|
+
describe Puppet::Transaction::Report::Json do
|
7
|
+
include PuppetSpec::Files
|
7
8
|
describe '#save' do
|
8
9
|
subject(:indirection) { described_class.indirection }
|
9
10
|
|
@@ -17,19 +18,17 @@ describe Puppet::Transaction::Report::Yaml do
|
|
17
18
|
let(:file) { request.path(:me) }
|
18
19
|
|
19
20
|
before do
|
20
|
-
|
21
|
-
end
|
21
|
+
Puppet[:lastrunreport] = File.join(Puppet[:statedir], "last_run_report.json")
|
22
22
|
|
23
|
-
|
24
|
-
indirection.save(report)
|
23
|
+
indirection.terminus_class = :json
|
25
24
|
end
|
26
25
|
|
27
|
-
it 'saves the instance of the report as
|
26
|
+
it 'saves the instance of the report as JSON to disk' do
|
27
|
+
|
28
28
|
indirection.save(report)
|
29
|
-
|
30
|
-
|
31
|
-
)
|
32
|
-
expect(content.host).to eq(certname)
|
29
|
+
json = Puppet::FileSystem.read(Puppet[:lastrunreport], :encoding => 'bom|utf-8')
|
30
|
+
content = Puppet::Util::Json.load(json)
|
31
|
+
expect(content["host"]).to eq(certname)
|
33
32
|
end
|
34
33
|
|
35
34
|
it 'allows mode overwrite' do
|
@@ -37,8 +36,7 @@ describe Puppet::Transaction::Report::Yaml do
|
|
37
36
|
indirection.save(report)
|
38
37
|
|
39
38
|
if Puppet::Util::Platform.windows?
|
40
|
-
|
41
|
-
mode = Puppet::Util::Windows::Security.get_mode(file)
|
39
|
+
mode = File.stat(file).mode
|
42
40
|
else
|
43
41
|
mode = Puppet::FileSystem.stat(file).mode
|
44
42
|
end
|
@@ -62,21 +60,12 @@ describe Puppet::Transaction::Report::Yaml do
|
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
65
|
-
context 'when repport is invalid' do
|
66
|
-
it 'logs error' do
|
67
|
-
expect(Puppet).to receive(:send_log).with(:err, /Could not save yaml ziggy: can't dump anonymous class/)
|
68
|
-
|
69
|
-
report.configuration_version = Class.new
|
70
|
-
indirection.save(report)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
63
|
context 'when report cannot be saved' do
|
75
|
-
it 'raises
|
64
|
+
it 'raises Error' do
|
76
65
|
FileUtils.mkdir_p(file)
|
77
66
|
expect {
|
78
67
|
indirection.save(report)
|
79
|
-
}.to raise_error(Errno::EISDIR, /last_run_report.
|
68
|
+
}.to raise_error(Errno::EISDIR, /last_run_report.json/)
|
80
69
|
end
|
81
70
|
end
|
82
71
|
end
|
@@ -20,21 +20,6 @@ describe Puppet::Transaction::Report::Rest do
|
|
20
20
|
{ body: formatter.render(["store", "http"]), headers: {'Content-Type' => formatter.mime } }
|
21
21
|
end
|
22
22
|
|
23
|
-
it "should use the :report_server setting in preference to :server" do
|
24
|
-
Puppet.settings[:server] = "server"
|
25
|
-
Puppet.settings[:report_server] = "report_server"
|
26
|
-
expect(Puppet::Transaction::Report::Rest.server).to eq("report_server")
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should have a value for report_server and report_port" do
|
30
|
-
expect(Puppet::Transaction::Report::Rest.server).not_to be_nil
|
31
|
-
expect(Puppet::Transaction::Report::Rest.port).not_to be_nil
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should use the :report SRV service" do
|
35
|
-
expect(Puppet::Transaction::Report::Rest.srv_service).to eq(:report)
|
36
|
-
end
|
37
|
-
|
38
23
|
it "saves a report " do
|
39
24
|
stub_request(:put, uri)
|
40
25
|
.to_return(status: 200, **report_response)
|
@@ -77,7 +62,7 @@ describe Puppet::Transaction::Report::Rest do
|
|
77
62
|
|
78
63
|
stub_request(:put, uri)
|
79
64
|
.to_return(status: 500,
|
80
|
-
headers: { 'Content-Type' => 'text/pson', Puppet::
|
65
|
+
headers: { 'Content-Type' => 'text/pson', Puppet::HTTP::HEADER_PUPPET_VERSION => '4.10.1' })
|
81
66
|
|
82
67
|
expect {
|
83
68
|
described_class.indirection.save(report)
|
@@ -89,7 +74,7 @@ describe Puppet::Transaction::Report::Rest do
|
|
89
74
|
|
90
75
|
stub_request(:put, uri)
|
91
76
|
.to_return(status: 500,
|
92
|
-
headers: { 'Content-Type' => 'text/pson', Puppet::
|
77
|
+
headers: { 'Content-Type' => 'text/pson', Puppet::HTTP::HEADER_PUPPET_VERSION => '4.10.1' })
|
93
78
|
|
94
79
|
expect {
|
95
80
|
described_class.indirection.save(report)
|
@@ -4,14 +4,6 @@ require 'puppet/transaction/report'
|
|
4
4
|
require 'puppet/indirector/report/yaml'
|
5
5
|
|
6
6
|
describe Puppet::Transaction::Report::Yaml do
|
7
|
-
it "should be a subclass of the Yaml terminus" do
|
8
|
-
expect(Puppet::Transaction::Report::Yaml.superclass).to equal(Puppet::Indirector::Yaml)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should have documentation" do
|
12
|
-
expect(Puppet::Transaction::Report::Yaml.doc).not_to be_nil
|
13
|
-
end
|
14
|
-
|
15
7
|
it "should be registered with the report indirection" do
|
16
8
|
indirection = Puppet::Indirector::Indirection.instance(:report)
|
17
9
|
expect(Puppet::Transaction::Report::Yaml.indirection).to equal(indirection)
|
@@ -24,4 +16,76 @@ describe Puppet::Transaction::Report::Yaml do
|
|
24
16
|
it "should unconditionally save/load from the --lastrunreport setting" do
|
25
17
|
expect(subject.path(:me)).to eq(Puppet[:lastrunreport])
|
26
18
|
end
|
19
|
+
|
20
|
+
describe '#save' do
|
21
|
+
subject(:indirection) { described_class.indirection }
|
22
|
+
|
23
|
+
let(:request) { described_class.new }
|
24
|
+
let(:certname) { 'ziggy' }
|
25
|
+
let(:report) do
|
26
|
+
report = Puppet::Transaction::Report.new
|
27
|
+
report.host = certname
|
28
|
+
report
|
29
|
+
end
|
30
|
+
let(:file) { request.path(:me) }
|
31
|
+
|
32
|
+
before do
|
33
|
+
indirection.terminus_class = :yaml
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'saves the instance of the report as YAML to disk' do
|
37
|
+
indirection.save(report)
|
38
|
+
content = Puppet::Util::Yaml.safe_load_file(
|
39
|
+
Puppet[:lastrunreport], [Puppet::Transaction::Report]
|
40
|
+
)
|
41
|
+
expect(content.host).to eq(certname)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'allows mode overwrite' do
|
45
|
+
Puppet.settings.setting(:lastrunreport).mode = '0644'
|
46
|
+
indirection.save(report)
|
47
|
+
|
48
|
+
if Puppet::Util::Platform.windows?
|
49
|
+
mode = File.stat(file).mode
|
50
|
+
else
|
51
|
+
mode = Puppet::FileSystem.stat(file).mode
|
52
|
+
end
|
53
|
+
|
54
|
+
expect(mode & 07777).to eq(0644)
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when mode is invalid' do
|
58
|
+
before do
|
59
|
+
Puppet.settings.setting(:lastrunreport).mode = '9999'
|
60
|
+
end
|
61
|
+
|
62
|
+
after do
|
63
|
+
Puppet.settings.setting(:lastrunreport).mode = '0644'
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'raises Puppet::DevError ' do
|
67
|
+
expect{
|
68
|
+
indirection.save(report)
|
69
|
+
}.to raise_error(Puppet::DevError, "replace_file mode: 9999 is invalid")
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'when repport is invalid' do
|
74
|
+
it 'logs error' do
|
75
|
+
expect(Puppet).to receive(:send_log).with(:err, /Could not save yaml ziggy: can't dump anonymous class/)
|
76
|
+
|
77
|
+
report.configuration_version = Class.new
|
78
|
+
indirection.save(report)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'when report cannot be saved' do
|
83
|
+
it 'raises Error' do
|
84
|
+
FileUtils.mkdir_p(file)
|
85
|
+
expect {
|
86
|
+
indirection.save(report)
|
87
|
+
}.to raise_error(Errno::EISDIR, /last_run_report.yaml/)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
27
91
|
end
|
@@ -271,229 +271,6 @@ describe Puppet::Indirector::Request do
|
|
271
271
|
expect(Puppet::Indirector::Request.new(:myind, :find, "my key", nil, :node => 'foo').to_hash[:node]).to eq('foo')
|
272
272
|
end
|
273
273
|
|
274
|
-
describe "when building a query string from its options" do
|
275
|
-
def a_request_with_options(options)
|
276
|
-
Puppet::Indirector::Request.new(:myind, :find, "my key", nil, options)
|
277
|
-
end
|
278
|
-
|
279
|
-
def the_parsed_query_string_from(request)
|
280
|
-
CGI.parse(request.query_string.sub(/^\?/, ''))
|
281
|
-
end
|
282
|
-
|
283
|
-
it "should return an empty query string if there are no options" do
|
284
|
-
request = a_request_with_options(nil)
|
285
|
-
|
286
|
-
expect(request.query_string).to eq("")
|
287
|
-
end
|
288
|
-
|
289
|
-
it "should return an empty query string if the options are empty" do
|
290
|
-
request = a_request_with_options({})
|
291
|
-
|
292
|
-
expect(request.query_string).to eq("")
|
293
|
-
end
|
294
|
-
|
295
|
-
it "should include all options in the query string, separated by '&'" do
|
296
|
-
request = a_request_with_options(:one => "two", :three => "four")
|
297
|
-
|
298
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
299
|
-
"one" => ["two"],
|
300
|
-
"three" => ["four"]
|
301
|
-
})
|
302
|
-
end
|
303
|
-
|
304
|
-
it "should ignore nil options" do
|
305
|
-
request = a_request_with_options(:one => "two", :three => nil)
|
306
|
-
|
307
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
308
|
-
"one" => ["two"]
|
309
|
-
})
|
310
|
-
end
|
311
|
-
|
312
|
-
it "should convert 'true' option values into strings" do
|
313
|
-
request = a_request_with_options(:one => true)
|
314
|
-
|
315
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
316
|
-
"one" => ["true"]
|
317
|
-
})
|
318
|
-
end
|
319
|
-
|
320
|
-
it "should convert 'false' option values into strings" do
|
321
|
-
request = a_request_with_options(:one => false)
|
322
|
-
|
323
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
324
|
-
"one" => ["false"]
|
325
|
-
})
|
326
|
-
end
|
327
|
-
|
328
|
-
it "should convert to a string all option values that are integers" do
|
329
|
-
request = a_request_with_options(:one => 50)
|
330
|
-
|
331
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
332
|
-
"one" => ["50"]
|
333
|
-
})
|
334
|
-
end
|
335
|
-
|
336
|
-
it "should convert to a string all option values that are floating point numbers" do
|
337
|
-
request = a_request_with_options(:one => 1.2)
|
338
|
-
|
339
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
340
|
-
"one" => ["1.2"]
|
341
|
-
})
|
342
|
-
end
|
343
|
-
|
344
|
-
it "should CGI-escape all option values that are strings" do
|
345
|
-
request = a_request_with_options(:one => "one two")
|
346
|
-
|
347
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
348
|
-
"one" => ["one two"]
|
349
|
-
})
|
350
|
-
end
|
351
|
-
|
352
|
-
it "should convert an array of values into multiple entries for the same key" do
|
353
|
-
request = a_request_with_options(:one => %w{one two})
|
354
|
-
|
355
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
356
|
-
"one" => ["one", "two"]
|
357
|
-
})
|
358
|
-
end
|
359
|
-
|
360
|
-
it "should stringify simple data types inside an array" do
|
361
|
-
request = a_request_with_options(:one => ['one', nil])
|
362
|
-
|
363
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
364
|
-
"one" => ["one"]
|
365
|
-
})
|
366
|
-
end
|
367
|
-
|
368
|
-
it "should error if an array contains another array" do
|
369
|
-
request = a_request_with_options(:one => ['one', ["not allowed"]])
|
370
|
-
|
371
|
-
expect { request.query_string }.to raise_error(ArgumentError)
|
372
|
-
end
|
373
|
-
|
374
|
-
it "should error if an array contains illegal data" do
|
375
|
-
request = a_request_with_options(:one => ['one', { :not => "allowed" }])
|
376
|
-
|
377
|
-
expect { request.query_string }.to raise_error(ArgumentError)
|
378
|
-
end
|
379
|
-
|
380
|
-
it "should convert to a string and CGI-escape all option values that are symbols" do
|
381
|
-
request = a_request_with_options(:one => :"sym bol")
|
382
|
-
|
383
|
-
expect(the_parsed_query_string_from(request)).to eq({
|
384
|
-
"one" => ["sym bol"]
|
385
|
-
})
|
386
|
-
end
|
387
|
-
|
388
|
-
it "should fail if options other than booleans or strings are provided" do
|
389
|
-
request = a_request_with_options(:one => { :one => :two })
|
390
|
-
|
391
|
-
expect { request.query_string }.to raise_error(ArgumentError)
|
392
|
-
end
|
393
|
-
end
|
394
|
-
|
395
|
-
context '#do_request' do
|
396
|
-
before :each do
|
397
|
-
@request = Puppet::Indirector::Request.new(:myind, :find, "my key", nil)
|
398
|
-
end
|
399
|
-
|
400
|
-
context 'when not using SRV records' do
|
401
|
-
before :each do
|
402
|
-
Puppet.settings[:use_srv_records] = false
|
403
|
-
end
|
404
|
-
|
405
|
-
it "yields the request with the default server and port when no server or port were specified on the original request" do
|
406
|
-
count = 0
|
407
|
-
rval = @request.do_request(:puppet, 'puppet.example.com', '90210') do |got|
|
408
|
-
count += 1
|
409
|
-
expect(got.server).to eq('puppet.example.com')
|
410
|
-
expect(got.port).to eq('90210')
|
411
|
-
'Block return value'
|
412
|
-
end
|
413
|
-
expect(count).to eq(1)
|
414
|
-
|
415
|
-
expect(rval).to eq('Block return value')
|
416
|
-
end
|
417
|
-
end
|
418
|
-
|
419
|
-
context 'when using SRV records' do
|
420
|
-
before :each do
|
421
|
-
Puppet.settings[:use_srv_records] = true
|
422
|
-
Puppet.settings[:srv_domain] = 'example.com'
|
423
|
-
end
|
424
|
-
|
425
|
-
it "yields the request with the original server and port unmodified" do
|
426
|
-
@request.server = 'puppet.example.com'
|
427
|
-
@request.port = '90210'
|
428
|
-
|
429
|
-
count = 0
|
430
|
-
rval = @request.do_request do |got|
|
431
|
-
count += 1
|
432
|
-
expect(got.server).to eq('puppet.example.com')
|
433
|
-
expect(got.port).to eq('90210')
|
434
|
-
'Block return value'
|
435
|
-
end
|
436
|
-
expect(count).to eq(1)
|
437
|
-
|
438
|
-
expect(rval).to eq('Block return value')
|
439
|
-
end
|
440
|
-
|
441
|
-
context "when SRV returns servers" do
|
442
|
-
before :each do
|
443
|
-
@dns_mock = double('dns')
|
444
|
-
expect(Resolv::DNS).to receive(:new).and_return(@dns_mock)
|
445
|
-
|
446
|
-
@port = 7205
|
447
|
-
@target = 'example.com'
|
448
|
-
record = Resolv::DNS::Resource::IN::SRV.new(0, 0, @port, @target)
|
449
|
-
record.instance_variable_set(:@ttl, 10)
|
450
|
-
@srv_records = [record]
|
451
|
-
|
452
|
-
expect(@dns_mock).to receive(:getresources).
|
453
|
-
with("_x-puppet._tcp.#{Puppet.settings[:srv_domain]}", Resolv::DNS::Resource::IN::SRV).
|
454
|
-
and_return(@srv_records)
|
455
|
-
end
|
456
|
-
|
457
|
-
it "yields a request using the server and port from the SRV record" do
|
458
|
-
count = 0
|
459
|
-
rval = @request.do_request do |got|
|
460
|
-
count += 1
|
461
|
-
expect(got.server).to eq('example.com')
|
462
|
-
expect(got.port).to eq(7205)
|
463
|
-
|
464
|
-
@block_return
|
465
|
-
end
|
466
|
-
expect(count).to eq(1)
|
467
|
-
|
468
|
-
expect(rval).to eq(@block_return)
|
469
|
-
end
|
470
|
-
|
471
|
-
it "should fall back to the default server when the block raises a SystemCallError" do
|
472
|
-
count = 0
|
473
|
-
second_pass = nil
|
474
|
-
|
475
|
-
rval = @request.do_request(:puppet, 'puppet', 8140) do |got|
|
476
|
-
count += 1
|
477
|
-
|
478
|
-
if got.server == 'example.com' then
|
479
|
-
raise SystemCallError, "example failure"
|
480
|
-
else
|
481
|
-
second_pass = got
|
482
|
-
end
|
483
|
-
|
484
|
-
@block_return
|
485
|
-
end
|
486
|
-
|
487
|
-
expect(second_pass.server).to eq('puppet')
|
488
|
-
expect(second_pass.port).to eq(8140)
|
489
|
-
expect(count).to eq(2)
|
490
|
-
|
491
|
-
expect(rval).to eq(@block_return)
|
492
|
-
end
|
493
|
-
end
|
494
|
-
end
|
495
|
-
end
|
496
|
-
|
497
274
|
describe "#remote?" do
|
498
275
|
def request(options = {})
|
499
276
|
Puppet::Indirector::Request.new('node', 'find', 'localhost', nil, options)
|
@@ -515,45 +292,4 @@ describe Puppet::Indirector::Request do
|
|
515
292
|
expect(request(:node => 'example.com', :ip => '127.0.0.1')).to be_remote
|
516
293
|
end
|
517
294
|
end
|
518
|
-
|
519
|
-
describe "failover" do
|
520
|
-
it "should use the provided failover host and port" do
|
521
|
-
Puppet.override(:server => 'myhost', :serverport => 666) do
|
522
|
-
req = Puppet::Indirector::Request.new('node', 'find', 'localhost', nil)
|
523
|
-
req.do_request() do |request|
|
524
|
-
expect(request.server).to eq('myhost')
|
525
|
-
expect(request.port).to eq(666)
|
526
|
-
end
|
527
|
-
end
|
528
|
-
end
|
529
|
-
|
530
|
-
it "should not use raw settings when failover fails" do
|
531
|
-
Puppet.override(:server => nil, :serverport => nil) do
|
532
|
-
req = Puppet::Indirector::Request.new('node', 'find', 'localhost', nil)
|
533
|
-
req.do_request() do |request|
|
534
|
-
expect(request.server).to be_nil
|
535
|
-
expect(request.port).to be_nil
|
536
|
-
expect(Puppet.settings[:server]).not_to be_nil
|
537
|
-
expect(Puppet.settings[:serverport]).not_to be_nil
|
538
|
-
end
|
539
|
-
end
|
540
|
-
end
|
541
|
-
|
542
|
-
it "should use server_list when set and failover has not occured" do
|
543
|
-
Puppet.settings[:server_list] = [['myhost',666]]
|
544
|
-
req = Puppet::Indirector::Request.new('node', 'find', 'localhost', nil)
|
545
|
-
req.do_request() do |request|
|
546
|
-
expect(request.server).to eq('myhost')
|
547
|
-
expect(request.port).to eq(666)
|
548
|
-
end
|
549
|
-
end
|
550
|
-
|
551
|
-
it "should use server when server_list is not set" do
|
552
|
-
req = Puppet::Indirector::Request.new('node', 'find', 'localhost', nil)
|
553
|
-
req.do_request() do |request|
|
554
|
-
expect(request.server).to eq(Puppet.settings[:server])
|
555
|
-
expect(request.port).to eq(Puppet.settings[:serverport])
|
556
|
-
end
|
557
|
-
end
|
558
|
-
end
|
559
295
|
end
|