puppet 6.20.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/Gemfile +0 -2
- data/Gemfile.lock +18 -24
- 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 +178 -108
- data/lib/puppet/application/agent.rb +0 -1
- data/lib/puppet/application/apply.rb +2 -3
- data/lib/puppet/application/device.rb +100 -105
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/script.rb +0 -1
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/configurer.rb +30 -45
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +97 -167
- data/lib/puppet/environments.rb +59 -58
- data/lib/puppet/face/facts.rb +51 -51
- 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/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/facts/facter.rb +24 -3
- 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 -9
- 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/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -48
- data/lib/puppet/module_tool/errors/shared.rb +2 -17
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- 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/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/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/apt.rb +0 -4
- 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/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +7 -6
- 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 +73 -66
- 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/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 -46
- 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/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 +587 -1312
- data/man/man5/puppet.conf.5 +39 -99
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +51 -36
- 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 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- 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/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
- data/spec/integration/application/agent_spec.rb +27 -138
- data/spec/integration/application/apply_spec.rb +1 -20
- 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 +14 -3
- 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/file_spec.rb +5 -4
- data/spec/integration/util/windows/adsi_spec.rb +1 -3
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/registry_spec.rb +10 -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 +1 -0
- data/spec/spec_helper.rb +6 -1
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +1 -0
- data/spec/unit/application/facts_spec.rb +35 -0
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- 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 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- 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 +72 -42
- data/spec/unit/environments_spec.rb +19 -99
- data/spec/unit/face/facts_spec.rb +4 -0
- 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/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/forge/module_release_spec.rb +7 -2
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/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 +0 -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 +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/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +98 -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/rest_spec.rb +98 -752
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
- 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 -4
- 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/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +3 -4
- 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/property_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +8 -4
- data/spec/unit/provider/package/base_spec.rb +5 -6
- 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/pacman_spec.rb +12 -18
- data/spec/unit/provider/package/pip_spec.rb +11 -6
- 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/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider/user/aix_spec.rb +0 -5
- 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 +0 -1
- data/spec/unit/provider_spec.rb +8 -18
- 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 +23 -13
- 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 +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +7 -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 +48 -91
- 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 +2 -0
- data/spec/unit/type/file/source_spec.rb +0 -1
- 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 +1 -1
- data/spec/unit/type/tidy_spec.rb +1 -0
- 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 +52 -76
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- 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
- metadata +40 -233
- 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 -62
- 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/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
@@ -15,15 +15,18 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
15
15
|
chain(Puppet::Network::HTTP::API::Master::V3.routes)
|
16
16
|
}
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
# simulate puppetserver registering its authconfigloader class
|
19
|
+
around :each do |example|
|
20
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
21
|
+
begin
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
25
|
+
end
|
23
26
|
end
|
24
27
|
|
25
|
-
it "mounts the
|
26
|
-
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/
|
28
|
+
it "mounts the environments endpoint" do
|
29
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
27
30
|
master_routes.process(request, response)
|
28
31
|
|
29
32
|
expect(response.code).to eq(200)
|
@@ -54,4 +57,22 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
54
57
|
master_routes.process(request, response)
|
55
58
|
}.to raise_error(not_found_error)
|
56
59
|
end
|
60
|
+
|
61
|
+
it "checks authorization for indirected routes" do
|
62
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
63
|
+
|
64
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/catalog/foo")
|
65
|
+
expect {
|
66
|
+
master_routes.process(request, response)
|
67
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/catalog/foo \(method GET\)})
|
68
|
+
end
|
69
|
+
|
70
|
+
it "checks authorization for environments" do
|
71
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
72
|
+
|
73
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
74
|
+
expect {
|
75
|
+
master_routes.process(request, response)
|
76
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/environments \(method GET\)})
|
77
|
+
end
|
57
78
|
end
|
@@ -70,6 +70,16 @@ describe Puppet::Network::HTTP::API do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
describe "when processing master routes" do
|
73
|
+
# simulate puppetserver registering its authconfigloader class
|
74
|
+
around :each do |example|
|
75
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
76
|
+
begin
|
77
|
+
example.run
|
78
|
+
ensure
|
79
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
73
83
|
it "responds to v3 indirector requests" do
|
74
84
|
req = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_prefix}/v3/node/foo",
|
75
85
|
:params => {:environment => "production"},
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'puppet/network/http/connection'
|
3
|
-
require 'puppet/network/http/connection_adapter'
|
4
3
|
require 'puppet/test_ca'
|
5
4
|
|
6
5
|
describe Puppet::Network::HTTP::Connection do
|
@@ -10,21 +9,23 @@ describe Puppet::Network::HTTP::Connection do
|
|
10
9
|
let(:url) { "https://#{host}:#{port}#{path}" }
|
11
10
|
let(:params) { { 'key' => 'a value' } }
|
12
11
|
let(:encoded_url_with_params) { "#{url}?%7B%22key%22:%22a%20value%22%7D" }
|
12
|
+
let(:ssl_context) { Puppet::SSL::SSLProvider.new.create_system_context(cacerts: []) }
|
13
|
+
let(:verifier) { Puppet::SSL::Verifier.new(host, ssl_context) }
|
13
14
|
|
14
|
-
shared_examples_for "an HTTP connection" do |klass
|
15
|
-
subject { klass.new(host, port, :
|
15
|
+
shared_examples_for "an HTTP connection" do |klass|
|
16
|
+
subject { klass.new(host, port, :verifier => verifier) }
|
16
17
|
|
17
18
|
context "when providing HTTP connections" do
|
18
19
|
context "when initializing http instances" do
|
19
20
|
it "should return an http instance created with the passed host and port" do
|
20
|
-
conn = klass.new(host, port, :
|
21
|
+
conn = klass.new(host, port, :verifier => verifier)
|
21
22
|
|
22
23
|
expect(conn.address).to eq(host)
|
23
24
|
expect(conn.port).to eq(port)
|
24
25
|
end
|
25
26
|
|
26
27
|
it "should enable ssl on the http instance by default" do
|
27
|
-
conn = klass.new(host, port, :
|
28
|
+
conn = klass.new(host, port, :verifier => verifier)
|
28
29
|
|
29
30
|
expect(conn).to be_use_ssl
|
30
31
|
end
|
@@ -36,21 +37,21 @@ describe Puppet::Network::HTTP::Connection do
|
|
36
37
|
end
|
37
38
|
|
38
39
|
it "can enable ssl using an option" do
|
39
|
-
conn = klass.new(host, port, :use_ssl => true, :
|
40
|
+
conn = klass.new(host, port, :use_ssl => true, :verifier => verifier)
|
40
41
|
|
41
42
|
expect(conn).to be_use_ssl
|
42
43
|
end
|
43
44
|
|
44
45
|
it "ignores the ':verify' option when ssl is disabled" do
|
45
|
-
conn = klass.new(host, port, :use_ssl => false, :
|
46
|
+
conn = klass.new(host, port, :use_ssl => false, :verifier => verifier)
|
46
47
|
|
47
48
|
expect(conn.verifier).to be_nil
|
48
49
|
end
|
49
50
|
|
50
51
|
it "wraps the validator in an adapter" do
|
51
|
-
conn = klass.new(host, port, :
|
52
|
+
conn = klass.new(host, port, :verifier => verifier)
|
52
53
|
|
53
|
-
expect(conn.verifier).to
|
54
|
+
expect(conn.verifier).to be_a(Puppet::SSL::Verifier)
|
54
55
|
end
|
55
56
|
|
56
57
|
it "should raise Puppet::Error when invalid options are specified" do
|
@@ -66,9 +67,9 @@ describe Puppet::Network::HTTP::Connection do
|
|
66
67
|
|
67
68
|
it "raises if the wrong verifier class is specified" do
|
68
69
|
expect {
|
69
|
-
klass.new(host, port, :verifier =>
|
70
|
+
klass.new(host, port, :verifier => Object.new)
|
70
71
|
}.to raise_error(ArgumentError,
|
71
|
-
"Expected an instance of Puppet::SSL::Verifier but was passed a
|
72
|
+
"Expected an instance of Puppet::SSL::Verifier but was passed a Object")
|
72
73
|
end
|
73
74
|
end
|
74
75
|
end
|
@@ -306,8 +307,6 @@ describe Puppet::Network::HTTP::Connection do
|
|
306
307
|
end
|
307
308
|
|
308
309
|
it 'defaults content-type to application/x-www-form-urlencoded' do
|
309
|
-
skip("Net::HTTP sends a default content-type header, but it's not visible to webmock") if legacy_api
|
310
|
-
|
311
310
|
stub_request(:put, url).with(headers: {'Content-Type' => 'application/x-www-form-urlencoded'})
|
312
311
|
|
313
312
|
subject.put(path, '')
|
@@ -362,8 +361,6 @@ describe Puppet::Network::HTTP::Connection do
|
|
362
361
|
end
|
363
362
|
|
364
363
|
it 'defaults content-type to application/x-www-form-urlencoded' do
|
365
|
-
skip("Net::HTTP sends a default content-type header, but it's not visible to webmock") if legacy_api
|
366
|
-
|
367
364
|
stub_request(:post, url).with(headers: {'Content-Type' => 'application/x-www-form-urlencoded'})
|
368
365
|
|
369
366
|
subject.post(path, "")
|
@@ -425,7 +422,7 @@ describe Puppet::Network::HTTP::Connection do
|
|
425
422
|
|
426
423
|
def create_connection(options = {})
|
427
424
|
options[:use_ssl] = false
|
428
|
-
options[:
|
425
|
+
options[:verifier] = verifier
|
429
426
|
subject.new(host, port, options)
|
430
427
|
end
|
431
428
|
|
@@ -474,15 +471,9 @@ describe Puppet::Network::HTTP::Connection do
|
|
474
471
|
it 'raises an exception when the location header is missing' do
|
475
472
|
stub_request(:get, "http://me.example.com:8140/").to_return(status: 302)
|
476
473
|
|
477
|
-
|
478
|
-
expect {
|
479
|
-
create_connection.get('/')
|
480
|
-
}.to raise_error(URI::InvalidURIError, /bad URI/)
|
481
|
-
else
|
482
|
-
expect {
|
474
|
+
expect {
|
483
475
|
create_connection.get('/')
|
484
476
|
}.to raise_error(Puppet::HTTP::ProtocolError, /Location response header is missing/)
|
485
|
-
end
|
486
477
|
end
|
487
478
|
end
|
488
479
|
|
@@ -503,14 +494,9 @@ describe Puppet::Network::HTTP::Connection do
|
|
503
494
|
it "should return a 503 response if Retry-After is not convertible to an Integer or RFC 2822 Date" do
|
504
495
|
retry_after('foo')
|
505
496
|
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
else
|
510
|
-
expect {
|
511
|
-
subject.get('/foo')
|
512
|
-
}.to raise_error(Puppet::HTTP::ProtocolError, /Failed to parse Retry-After header 'foo'/)
|
513
|
-
end
|
497
|
+
expect {
|
498
|
+
subject.get('/foo')
|
499
|
+
}.to raise_error(Puppet::HTTP::ProtocolError, /Failed to parse Retry-After header 'foo'/)
|
514
500
|
end
|
515
501
|
|
516
502
|
it "should close the connection before sleeping" do
|
@@ -525,11 +511,7 @@ describe Puppet::Network::HTTP::Connection do
|
|
525
511
|
allow(http1).to receive(:started?).and_return(true)
|
526
512
|
|
527
513
|
# The "with_connection" method is required to yield started connections
|
528
|
-
pool =
|
529
|
-
Puppet.lookup(:http_pool)
|
530
|
-
else
|
531
|
-
Puppet.runtime[:http].pool
|
532
|
-
end
|
514
|
+
pool = Puppet.runtime[:http].pool
|
533
515
|
|
534
516
|
allow(pool).to receive(:with_connection).and_yield(http1).and_yield(http2)
|
535
517
|
|
@@ -649,10 +631,6 @@ describe Puppet::Network::HTTP::Connection do
|
|
649
631
|
end
|
650
632
|
|
651
633
|
describe Puppet::Network::HTTP::Connection do
|
652
|
-
it_behaves_like "an HTTP connection", described_class
|
653
|
-
end
|
654
|
-
|
655
|
-
describe Puppet::Network::HTTP::ConnectionAdapter do
|
656
|
-
it_behaves_like "an HTTP connection", described_class, false
|
634
|
+
it_behaves_like "an HTTP connection", described_class
|
657
635
|
end
|
658
636
|
end
|
@@ -69,10 +69,6 @@ describe Puppet::Network::HttpPool do
|
|
69
69
|
expect(Puppet::Network::HttpPool.http_instance("me", 54321, true)).to be_use_ssl
|
70
70
|
end
|
71
71
|
|
72
|
-
it 'has an http_ssl_instance method' do
|
73
|
-
expect(Puppet::Network::HttpPool.http_ssl_instance("me", 54321)).to be_use_ssl
|
74
|
-
end
|
75
|
-
|
76
72
|
context "when calling 'connection'" do
|
77
73
|
it 'requires an ssl_context' do
|
78
74
|
expect {
|
@@ -526,34 +526,46 @@ describe Puppet::Node::Environment do
|
|
526
526
|
end
|
527
527
|
|
528
528
|
describe "managing module translations" do
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
529
|
+
context "when i18n is enabled" do
|
530
|
+
before(:each) do
|
531
|
+
Puppet[:disable_i18n] = false
|
532
|
+
end
|
533
533
|
|
534
|
-
|
535
|
-
|
534
|
+
it "yields block results" do
|
535
|
+
ran = false
|
536
|
+
expect(env.with_text_domain { ran = true; :result }).to eq(:result)
|
537
|
+
expect(ran).to eq(true)
|
538
|
+
end
|
536
539
|
|
537
|
-
|
538
|
-
|
540
|
+
it "creates a new text domain the first time we try to use the text domain" do
|
541
|
+
expect(Puppet::GettextConfig).to receive(:reset_text_domain).with(env.name)
|
542
|
+
expect(Puppet::ModuleTranslations).to receive(:load_from_modulepath)
|
543
|
+
expect(Puppet::GettextConfig).to receive(:clear_text_domain)
|
539
544
|
|
540
|
-
|
541
|
-
|
542
|
-
end
|
545
|
+
env.with_text_domain do; end
|
546
|
+
end
|
543
547
|
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
+
it "uses the existing text domain once it has been created" do
|
549
|
+
env.with_text_domain do; end
|
550
|
+
|
551
|
+
expect(Puppet::GettextConfig).to receive(:use_text_domain).with(env.name)
|
552
|
+
env.with_text_domain do; end
|
553
|
+
end
|
548
554
|
end
|
549
555
|
|
550
|
-
|
551
|
-
|
556
|
+
context "when i18n is disabled" do
|
557
|
+
it "yields block results" do
|
558
|
+
ran = false
|
559
|
+
expect(env.with_text_domain { ran = true; :result }).to eq(:result)
|
560
|
+
expect(ran).to eq(true)
|
561
|
+
end
|
562
|
+
|
563
|
+
it "does not create a new text domain the first time we try to use the text domain" do
|
564
|
+
expect(Puppet::GettextConfig).not_to receive(:reset_text_domain)
|
565
|
+
expect(Puppet::ModuleTranslations).not_to receive(:load_from_modulepath)
|
552
566
|
|
553
|
-
|
554
|
-
|
555
|
-
expect(ran).to eq(true)
|
567
|
+
env.with_text_domain do; end
|
568
|
+
end
|
556
569
|
end
|
557
570
|
end
|
558
|
-
|
559
571
|
end
|
data/spec/unit/node_spec.rb
CHANGED
@@ -417,64 +417,12 @@ end
|
|
417
417
|
|
418
418
|
describe Puppet::Node, "when generating the list of names to search through" do
|
419
419
|
before do
|
420
|
-
Puppet[:strict_hostname_checking] = false
|
421
420
|
@node = Puppet::Node.new("foo.domain.com",
|
422
421
|
:parameters => {"hostname" => "yay", "domain" => "domain.com"})
|
423
422
|
end
|
424
423
|
|
425
|
-
it "returns an array of
|
424
|
+
it "returns an array of one name" do
|
426
425
|
expect(@node.names).to be_instance_of(Array)
|
427
|
-
|
428
|
-
|
429
|
-
describe "and the node name is fully qualified" do
|
430
|
-
it "contains an entry for each part of the node name" do
|
431
|
-
expect(@node.names).to include("foo.domain.com")
|
432
|
-
expect(@node.names).to include("foo.domain")
|
433
|
-
expect(@node.names).to include("foo")
|
434
|
-
end
|
435
|
-
end
|
436
|
-
|
437
|
-
it "includes the node's fqdn" do
|
438
|
-
expect(@node.names).to include("yay.domain.com")
|
439
|
-
end
|
440
|
-
|
441
|
-
it "combines and include the node's hostname and domain if no fqdn is available" do
|
442
|
-
expect(@node.names).to include("yay.domain.com")
|
443
|
-
end
|
444
|
-
|
445
|
-
it "contains an entry for each name available by stripping a segment of the fqdn" do
|
446
|
-
@node.parameters["fqdn"] = "foo.deep.sub.domain.com"
|
447
|
-
expect(@node.names).to include("foo.deep.sub.domain")
|
448
|
-
expect(@node.names).to include("foo.deep.sub")
|
449
|
-
end
|
450
|
-
|
451
|
-
describe "and :node_name is set to 'cert'" do
|
452
|
-
before do
|
453
|
-
Puppet[:node_name] = "cert"
|
454
|
-
end
|
455
|
-
|
456
|
-
it "uses the passed-in key as the first value" do
|
457
|
-
expect(@node.names[0]).to eq("foo.domain.com")
|
458
|
-
end
|
459
|
-
|
460
|
-
describe "and strict hostname checking is enabled" do
|
461
|
-
before do
|
462
|
-
Puppet[:strict_hostname_checking] = true
|
463
|
-
end
|
464
|
-
|
465
|
-
it "only uses the passed-in key" do
|
466
|
-
expect(@node.names).to eq(["foo.domain.com"])
|
467
|
-
end
|
468
|
-
end
|
469
|
-
end
|
470
|
-
|
471
|
-
describe "and :node_name is set to 'facter'" do
|
472
|
-
before do
|
473
|
-
Puppet[:node_name] = "facter"
|
474
|
-
end
|
475
|
-
|
476
|
-
it "uses the node's 'hostname' fact as the first value" do
|
477
|
-
expect(@node.names[0]).to eq("yay")
|
478
|
-
end
|
426
|
+
expect(@node.names).to eq ["foo.domain.com"]
|
479
427
|
end
|
480
428
|
end
|
@@ -240,9 +240,20 @@ describe Puppet::Parser::Compiler do
|
|
240
240
|
end
|
241
241
|
|
242
242
|
describe "when compiling" do
|
243
|
+
def compile_methods
|
244
|
+
[:set_node_parameters, :evaluate_main, :evaluate_ast_node, :evaluate_node_classes, :evaluate_generators, :fail_on_unevaluated,
|
245
|
+
:finish, :store, :extract, :evaluate_relationships]
|
246
|
+
end
|
247
|
+
|
248
|
+
# Stub all of the main compile methods except the ones we're specifically interested in.
|
249
|
+
def compile_stub(*except)
|
250
|
+
(compile_methods - except).each { |m| allow(@compiler).to receive(m) }
|
251
|
+
end
|
252
|
+
|
243
253
|
it "should set node parameters as variables in the top scope" do
|
244
254
|
params = {"a" => "b", "c" => "d"}
|
245
255
|
allow(@node).to receive(:parameters).and_return(params)
|
256
|
+
compile_stub(:set_node_parameters)
|
246
257
|
@compiler.compile
|
247
258
|
expect(@compiler.topscope['a']).to eq("b")
|
248
259
|
expect(@compiler.topscope['c']).to eq("d")
|
@@ -251,11 +262,13 @@ describe Puppet::Parser::Compiler do
|
|
251
262
|
it "should set node parameters that are of Symbol type as String variables in the top scope" do
|
252
263
|
params = {"a" => :b}
|
253
264
|
allow(@node).to receive(:parameters).and_return(params)
|
265
|
+
compile_stub(:set_node_parameters)
|
254
266
|
@compiler.compile
|
255
267
|
expect(@compiler.topscope['a']).to eq("b")
|
256
268
|
end
|
257
269
|
|
258
270
|
it "should set the node's environment as a string variable in top scope" do
|
271
|
+
compile_stub(:set_node_parameters)
|
259
272
|
@node.merge({'wat' => 'this is how the sausage is made'})
|
260
273
|
@compiler.compile
|
261
274
|
expect(@compiler.topscope['environment']).to eq("testing")
|
@@ -263,6 +276,7 @@ describe Puppet::Parser::Compiler do
|
|
263
276
|
end
|
264
277
|
|
265
278
|
it "sets the environment based on node.environment instead of the parameters" do
|
279
|
+
compile_stub(:set_node_parameters)
|
266
280
|
@node.parameters['environment'] = "Not actually #{@node.environment.name}"
|
267
281
|
|
268
282
|
@compiler.compile
|
@@ -272,21 +286,23 @@ describe Puppet::Parser::Compiler do
|
|
272
286
|
it "should set the client and server versions on the catalog" do
|
273
287
|
params = {"clientversion" => "2", "serverversion" => "3"}
|
274
288
|
allow(@node).to receive(:parameters).and_return(params)
|
289
|
+
compile_stub(:set_node_parameters)
|
275
290
|
@compiler.compile
|
276
291
|
expect(@compiler.catalog.client_version).to eq("2")
|
277
292
|
expect(@compiler.catalog.server_version).to eq("3")
|
278
293
|
end
|
279
294
|
|
280
295
|
it "should evaluate the main class if it exists" do
|
296
|
+
compile_stub(:evaluate_main)
|
281
297
|
main_class = @known_resource_types.add Puppet::Resource::Type.new(:hostclass, "")
|
282
|
-
@compiler.topscope.source = main_class
|
283
|
-
|
284
298
|
expect(main_class).to receive(:evaluate_code).with(be_a(Puppet::Parser::Resource))
|
299
|
+
expect(@compiler.topscope).to receive(:source=).with(main_class)
|
285
300
|
|
286
301
|
@compiler.compile
|
287
302
|
end
|
288
303
|
|
289
304
|
it "should create a new, empty 'main' if no main class exists" do
|
305
|
+
compile_stub(:evaluate_main)
|
290
306
|
@compiler.compile
|
291
307
|
expect(@known_resource_types.find_hostclass("")).to be_instance_of(Puppet::Resource::Type)
|
292
308
|
end
|
@@ -309,7 +325,7 @@ describe Puppet::Parser::Compiler do
|
|
309
325
|
@compiler.add_collection(colls[0])
|
310
326
|
@compiler.add_collection(colls[1])
|
311
327
|
|
312
|
-
|
328
|
+
compile_stub(:evaluate_generators)
|
313
329
|
@compiler.compile
|
314
330
|
end
|
315
331
|
|