puppet 6.16.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/Gemfile +5 -3
- data/Gemfile.lock +31 -33
- data/README.md +4 -5
- data/Rakefile +4 -12
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +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/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +22 -6
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +66 -31
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +166 -169
- data/lib/puppet/environments.rb +41 -15
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -8
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +23 -13
- data/lib/puppet/http/client.rb +170 -115
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +13 -19
- data/lib/puppet/http/resolver.rb +10 -23
- data/lib/puppet/http/resolver/server_list.rb +23 -45
- data/lib/puppet/http/resolver/settings.rb +7 -10
- data/lib/puppet/http/resolver/srv.rb +11 -15
- data/lib/puppet/http/response.rb +49 -48
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +15 -27
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -70
- data/lib/puppet/http/service/file_server.rb +19 -28
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +16 -24
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +27 -6
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +3 -7
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- data/lib/puppet/indirector/file_metadata/rest.rb +5 -11
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +2 -103
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +93 -14
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -42
- data/lib/puppet/parser/compiler.rb +1 -199
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +3 -71
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -13
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -22
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +28 -42
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -11
- data/lib/puppet/provider/package/gem.rb +27 -5
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +6 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reports/http.rb +2 -0
- data/lib/puppet/resource.rb +3 -90
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +5 -112
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +84 -35
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +37 -1
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +19 -16
- data/lib/puppet/transaction.rb +3 -9
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +10 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +9 -77
- data/lib/puppet/type/file.rb +45 -22
- data/lib/puppet/type/file/checksum.rb +5 -5
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +14 -2
- data/lib/puppet/util/windows.rb +3 -7
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +5 -15
- 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 +8 -6
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +52 -486
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +242 -8
- 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 +713 -1380
- data/man/man5/puppet.conf.5 +84 -98
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +157 -59
- data/spec/integration/application/apply_spec.rb +150 -150
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +78 -29
- data/spec/integration/application/help_spec.rb +44 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +76 -4
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +33 -5
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +29 -30
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/compiler_spec.rb +11 -0
- 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 +6 -5
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +2 -2
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +9 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +74 -8
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +17 -4
- data/spec/unit/application_spec.rb +9 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +96 -44
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +12 -10
- data/spec/unit/defaults_spec.rb +77 -28
- data/spec/unit/environments_spec.rb +96 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +71 -17
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +34 -15
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -65
- data/spec/unit/http/service/file_server_spec.rb +5 -6
- data/spec/unit/http/service/puppetserver_spec.rb +112 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -3
- data/spec/unit/http/session_spec.rb +24 -35
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +3 -267
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +3 -98
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +61 -73
- data/spec/unit/network/http/handler_spec.rb +0 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +51 -22
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +77 -22
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +7 -17
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dpkg_spec.rb +22 -55
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +402 -166
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -15
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +22 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +3 -59
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +586 -239
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +78 -49
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -3
- 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 +4 -5
- data/spec/unit/type/file_spec.rb +134 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +209 -0
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +70 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- 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 +3 -21
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +76 -270
- 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 -85
- 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 -182
- 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 -64
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
- data/lib/puppet/parser/environment_compiler.rb +0 -199
- 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 -282
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -79
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/man_spec.rb +0 -31
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -723
- 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
@@ -1,49 +1,40 @@
|
|
1
1
|
require 'puppet/file_serving/metadata'
|
2
2
|
|
3
|
+
# The FileServer service is used to retrieve file metadata and content.
|
3
4
|
#
|
4
|
-
# @api
|
5
|
-
#
|
6
|
-
# The FileServer service is used to retrieve file metadata and content
|
5
|
+
# @api public
|
7
6
|
#
|
8
7
|
class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
9
|
-
# @api private
|
10
8
|
# @return [String] Default API for the FileServer service
|
11
9
|
API = '/puppet/v3'.freeze
|
12
10
|
|
13
|
-
# @api private
|
14
11
|
# @return [RegEx] RegEx used to determine if a path contains a leading slash
|
15
12
|
PATH_REGEX = /^\//
|
16
13
|
|
17
|
-
#
|
18
|
-
# @api private
|
14
|
+
# Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
|
19
15
|
#
|
20
16
|
# @param [Puppet::HTTP::Client] client
|
21
17
|
# @param [Puppet::HTTP::Session] session
|
22
|
-
# @param [String] server (Puppet[:
|
18
|
+
# @param [String] server (`Puppet[:server]`) If an explicit server is given,
|
23
19
|
# create a service using that server. If server is nil, the default value
|
24
20
|
# is used to create the service.
|
25
|
-
# @param [Integer] port (Puppet[:
|
21
|
+
# @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
|
26
22
|
# a service using that port. If port is nil, the default value is used to
|
27
23
|
# create the service.
|
28
24
|
#
|
29
25
|
def initialize(client, session, server, port)
|
30
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
26
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
31
27
|
super(client, session, url)
|
32
28
|
end
|
33
29
|
|
34
|
-
#
|
35
|
-
# @api private
|
36
|
-
#
|
37
|
-
# Submit a GET request to the server to retrieve the metadata for a specified
|
38
|
-
# file
|
30
|
+
# Submit a GET request to the server to retrieve the metadata for a specified file.
|
39
31
|
#
|
40
32
|
# @param [String] path path to the file to retrieve data from
|
41
33
|
# @param [String] environment the name of the environment we are operating in
|
42
34
|
# @param [Symbol] links Can be one of either `:follow` or `:manage`, defines
|
43
35
|
# how links are handled.
|
44
36
|
# @param [String] checksum_type The digest algorithm used to verify the file.
|
45
|
-
#
|
46
|
-
# defaults to `md5`.
|
37
|
+
# Defaults to `sha256`.
|
47
38
|
# @param [Symbol] source_permissions Can be one of `:use`, `:use_when_creating`,
|
48
39
|
# or `:ignore`. This parameter tells the server if it should include the
|
49
40
|
# file permissions in the response. If set to `:ignore`, the server will
|
@@ -53,6 +44,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
53
44
|
# array with the request response and the deserialized metadata for the
|
54
45
|
# file returned from the server
|
55
46
|
#
|
47
|
+
# @api public
|
48
|
+
#
|
56
49
|
def get_file_metadata(path:, environment:, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
|
57
50
|
validate_path(path)
|
58
51
|
|
@@ -74,9 +67,6 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
74
67
|
[response, deserialize(response, Puppet::FileServing::Metadata)]
|
75
68
|
end
|
76
69
|
|
77
|
-
#
|
78
|
-
# @api private
|
79
|
-
#
|
80
70
|
# Submit a GET request to the server to retrieve the metadata for multiple files
|
81
71
|
#
|
82
72
|
# @param [String] path path to the file(s) to retrieve data from
|
@@ -106,6 +96,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
106
96
|
# An array with the request response and an array of the deserialized
|
107
97
|
# metadata for each file returned from the server
|
108
98
|
#
|
99
|
+
# @api public
|
100
|
+
#
|
109
101
|
def get_file_metadatas(path: nil, environment:, recurse: :false, recurselimit: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
|
110
102
|
validate_path(path)
|
111
103
|
|
@@ -130,10 +122,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
130
122
|
[response, deserialize_multiple(response, Puppet::FileServing::Metadata)]
|
131
123
|
end
|
132
124
|
|
133
|
-
#
|
134
|
-
# @api private
|
135
|
-
#
|
136
|
-
# Submit a GET request to the server to retrieve content of a file
|
125
|
+
# Submit a GET request to the server to retrieve content of a file.
|
137
126
|
#
|
138
127
|
# @param [String] path path to the file to retrieve data from
|
139
128
|
# @param [String] environment the name of the environment we are operating in
|
@@ -142,6 +131,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
142
131
|
#
|
143
132
|
# @return [Puppet::HTTP::Response] The request response
|
144
133
|
#
|
134
|
+
# @api public
|
135
|
+
#
|
145
136
|
def get_file_content(path:, environment:, &block)
|
146
137
|
validate_path(path)
|
147
138
|
|
@@ -163,10 +154,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
163
154
|
response
|
164
155
|
end
|
165
156
|
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
169
|
-
# Submit a GET request to
|
157
|
+
# Submit a GET request to retrieve file content using the `static_file_content` API
|
158
|
+
# uniquely identified by (`code_id`, `environment`, `path`).
|
170
159
|
#
|
171
160
|
# @param [String] path path to the file to retrieve data from
|
172
161
|
# @param [String] environment the name of the environment we are operating in
|
@@ -176,6 +165,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
176
165
|
#
|
177
166
|
# @return [Puppet::HTTP::Response] The request response
|
178
167
|
#
|
168
|
+
# @api public
|
169
|
+
#
|
179
170
|
def get_static_file_content(path:, environment:, code_id:, &block)
|
180
171
|
validate_path(path)
|
181
172
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# The puppetserver service.
|
2
|
+
#
|
3
|
+
# @api public
|
4
|
+
#
|
5
|
+
class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
6
|
+
|
7
|
+
# Use `Puppet::HTTP::Session.route_to(:puppetserver)` to create or get an instance of this class.
|
8
|
+
#
|
9
|
+
# @param [Puppet::HTTP::Client] client
|
10
|
+
# @param [Puppet::HTTP::Session] session
|
11
|
+
# @param [String] server (`Puppet[:server]`) If an explicit server is given,
|
12
|
+
# create a service using that server. If server is nil, the default value
|
13
|
+
# is used to create the service.
|
14
|
+
# @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
|
15
|
+
# a service using that port. If port is nil, the default value is used to
|
16
|
+
# create the service.
|
17
|
+
#
|
18
|
+
def initialize(client, session, server, port)
|
19
|
+
url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
|
20
|
+
super(client, session, url)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Request the puppetserver's simple status.
|
24
|
+
#
|
25
|
+
# @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
|
26
|
+
# the connection.
|
27
|
+
# @return Puppet::HTTP::Response The HTTP response
|
28
|
+
#
|
29
|
+
# @api public
|
30
|
+
#
|
31
|
+
def get_simple_status(ssl_context: nil)
|
32
|
+
request_path = "/status/v1/simple/server"
|
33
|
+
|
34
|
+
begin
|
35
|
+
response = @client.get(
|
36
|
+
with_base_url(request_path),
|
37
|
+
headers: add_puppet_headers({}),
|
38
|
+
options: {ssl_context: ssl_context}
|
39
|
+
)
|
40
|
+
|
41
|
+
process_response(response)
|
42
|
+
rescue Puppet::HTTP::ResponseError => e
|
43
|
+
if e.response.code == 404 && e.response.url.path == "/status/v1/simple/server"
|
44
|
+
request_path = "/status/v1/simple/master"
|
45
|
+
retry
|
46
|
+
else
|
47
|
+
raise e
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
[response, response.body.to_s]
|
52
|
+
end
|
53
|
+
end
|
@@ -1,16 +1,13 @@
|
|
1
|
+
# The Report service is used to submit run reports to the report server.
|
1
2
|
#
|
2
|
-
# @api
|
3
|
-
#
|
4
|
-
# The Report service is used to submit run reports to the report server
|
3
|
+
# @api public
|
5
4
|
#
|
6
5
|
class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
7
6
|
|
8
|
-
# @api private
|
9
7
|
# @return [String] Default API for the report service
|
10
8
|
API = '/puppet/v3'.freeze
|
11
9
|
|
12
|
-
#
|
13
|
-
# @api private
|
10
|
+
# Use `Puppet::HTTP::Session.route_to(:report)` to create or get an instance of this class.
|
14
11
|
#
|
15
12
|
# @param [Puppet::HTTP::Client] client
|
16
13
|
# @param [Puppet::HTTP::Session] session
|
@@ -21,15 +18,14 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
21
18
|
# a service using that port. If port is nil, the default value is used to
|
22
19
|
# create the service.
|
23
20
|
#
|
21
|
+
# @api private
|
22
|
+
#
|
24
23
|
def initialize(client, session, server, port)
|
25
24
|
url = build_url(API, server || Puppet[:report_server], port || Puppet[:report_port])
|
26
25
|
super(client, session, url)
|
27
26
|
end
|
28
27
|
|
29
|
-
#
|
30
|
-
# @api private
|
31
|
-
#
|
32
|
-
# Submit a report to the report server
|
28
|
+
# Submit a report to the report server.
|
33
29
|
#
|
34
30
|
# @param [String] name the name of the report being submitted
|
35
31
|
# @param [Puppet::Transaction::Report] report run report to be submitted
|
@@ -37,6 +33,8 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
37
33
|
#
|
38
34
|
# @return [Puppet::HTTP::Response] response returned by the server
|
39
35
|
#
|
36
|
+
# @api public
|
37
|
+
#
|
40
38
|
def put_report(name, report, environment:)
|
41
39
|
formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
|
42
40
|
headers = add_puppet_headers(
|
data/lib/puppet/http/session.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
#
|
2
|
-
# @api private
|
3
|
-
#
|
4
1
|
# The session is the mechanism by which services may be connected to and accessed.
|
5
2
|
#
|
3
|
+
# @api public
|
6
4
|
class Puppet::HTTP::Session
|
7
5
|
# capabilities for a site
|
8
6
|
CAP_LOCALES = 'locales'.freeze
|
@@ -14,16 +12,15 @@ class Puppet::HTTP::Session
|
|
14
12
|
# puppet version where JSON was enabled by default
|
15
13
|
SUPPORTED_JSON_DEFAULT = Gem::Version.new("5.0.0")
|
16
14
|
|
17
|
-
#
|
18
|
-
# @api private
|
19
|
-
#
|
20
15
|
# Create a new HTTP session. The session is the mechanism by which services
|
21
|
-
# may be connected to and accessed.
|
16
|
+
# may be connected to and accessed. Sessions should be created using
|
17
|
+
# `Puppet::HTTP::Client#create_session`.
|
22
18
|
#
|
23
19
|
# @param [Puppet::HTTP::Client] client the container for this session
|
24
20
|
# @param [Array<Puppet::HTTP::Resolver>] resolvers array of resolver strategies
|
25
21
|
# to implement.
|
26
22
|
#
|
23
|
+
# @api private
|
27
24
|
def initialize(client, resolvers)
|
28
25
|
@client = client
|
29
26
|
@resolvers = resolvers
|
@@ -31,9 +28,6 @@ class Puppet::HTTP::Session
|
|
31
28
|
@server_versions = {}
|
32
29
|
end
|
33
30
|
|
34
|
-
#
|
35
|
-
# @api private
|
36
|
-
#
|
37
31
|
# If an explicit server and port are specified on the command line or
|
38
32
|
# configuration file, this method always returns a Service with that host and
|
39
33
|
# port. Otherwise, we walk the list of resolvers in priority order:
|
@@ -45,12 +39,13 @@ class Puppet::HTTP::Session
|
|
45
39
|
# is cached and returned if `route_to` is called again.
|
46
40
|
#
|
47
41
|
# @param [Symbol] name the service to resolve
|
48
|
-
# @param [URI] url
|
49
|
-
# @param [Puppet::SSL::SSLContext] ssl_context
|
42
|
+
# @param [URI] url optional explicit url to use, if it is already known
|
43
|
+
# @param [Puppet::SSL::SSLContext] ssl_context ssl context to be
|
50
44
|
# used for connections
|
51
45
|
#
|
52
46
|
# @return [Puppet::HTTP::Service] the resolved service
|
53
47
|
#
|
48
|
+
# @api public
|
54
49
|
def route_to(name, url: nil, ssl_context: nil)
|
55
50
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
56
51
|
|
@@ -64,42 +59,38 @@ class Puppet::HTTP::Session
|
|
64
59
|
cached = @resolved_services[name]
|
65
60
|
return cached if cached
|
66
61
|
|
67
|
-
|
68
|
-
|
62
|
+
canceled = false
|
63
|
+
canceled_handler = lambda { |cancel| canceled = cancel }
|
69
64
|
|
70
65
|
@resolvers.each do |resolver|
|
71
66
|
Puppet.debug("Resolving service '#{name}' using #{resolver.class}")
|
72
|
-
service = resolver.resolve(self, name, ssl_context: ssl_context,
|
67
|
+
service = resolver.resolve(self, name, ssl_context: ssl_context, canceled_handler: canceled_handler)
|
73
68
|
if service
|
74
69
|
@resolved_services[name] = service
|
75
70
|
Puppet.debug("Resolved service '#{name}' to #{service.url}")
|
76
71
|
return service
|
72
|
+
elsif canceled
|
73
|
+
break
|
77
74
|
end
|
78
75
|
end
|
79
76
|
|
80
|
-
resolution_exceptions.each { |e| Puppet.log_exception(e) }
|
81
77
|
raise Puppet::HTTP::RouteError, "No more routes to #{name}"
|
82
78
|
end
|
83
79
|
|
84
|
-
#
|
85
|
-
# @api private
|
86
|
-
#
|
87
80
|
# Collect per-site server versions. This will allow us to modify future
|
88
81
|
# requests based on the version of puppetserver we are talking to.
|
89
82
|
#
|
90
83
|
# @param [Puppet::HTTP::Response] response the request response containing headers
|
91
84
|
#
|
85
|
+
# @api private
|
92
86
|
def process_response(response)
|
93
87
|
version = response[Puppet::HTTP::HEADER_PUPPET_VERSION]
|
94
88
|
if version
|
95
|
-
site = Puppet::
|
89
|
+
site = Puppet::HTTP::Site.from_uri(response.url)
|
96
90
|
@server_versions[site] = version
|
97
91
|
end
|
98
92
|
end
|
99
93
|
|
100
|
-
#
|
101
|
-
# @api private
|
102
|
-
#
|
103
94
|
# Determine if a session supports a capability. Depending on the server version
|
104
95
|
# we are talking to, we know certain features are available or not. These
|
105
96
|
# specifications are defined here so we can modify our requests appropriately.
|
@@ -109,13 +100,14 @@ class Puppet::HTTP::Session
|
|
109
100
|
#
|
110
101
|
# @return [Boolean]
|
111
102
|
#
|
103
|
+
# @api public
|
112
104
|
def supports?(name, capability)
|
113
105
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
114
106
|
|
115
107
|
service = @resolved_services[name]
|
116
108
|
return false unless service
|
117
109
|
|
118
|
-
site = Puppet::
|
110
|
+
site = Puppet::HTTP::Site.from_uri(service.url)
|
119
111
|
server_version = @server_versions[site]
|
120
112
|
|
121
113
|
case capability
|
data/lib/puppet/indirector.rb
CHANGED
@@ -46,7 +46,7 @@ module Puppet::Indirector
|
|
46
46
|
|
47
47
|
# instantiate the actual Terminus for that type and this name (:ldap, w/ args :node)
|
48
48
|
# & hook the instantiated Terminus into this class (Node: @indirection = terminus)
|
49
|
-
@indirection = Puppet::Indirector::Indirection.new(self, indirection, options)
|
49
|
+
@indirection = Puppet::Indirector::Indirection.new(self, indirection, **options)
|
50
50
|
end
|
51
51
|
|
52
52
|
module ClassMethods
|
@@ -5,8 +5,6 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
5
5
|
desc "Find resource catalogs over HTTP via REST."
|
6
6
|
|
7
7
|
def find(request)
|
8
|
-
return super unless use_http_client?
|
9
|
-
|
10
8
|
checksum_type = if request.options[:checksum_type]
|
11
9
|
request.options[:checksum_type].split('.')
|
12
10
|
else
|
@@ -30,11 +28,11 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
30
28
|
if e.response.code == 404
|
31
29
|
return nil unless request.options[:fail_on_404]
|
32
30
|
|
33
|
-
_, body = parse_response(e.response
|
31
|
+
_, body = parse_response(e.response)
|
34
32
|
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
35
33
|
raise Puppet::Error, msg
|
36
34
|
else
|
37
|
-
raise convert_to_http_error(e.response
|
35
|
+
raise convert_to_http_error(e.response)
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
@@ -22,7 +22,7 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
|
|
22
22
|
end
|
23
23
|
|
24
24
|
if output =~ /\A\s*\Z/ # all whitespace
|
25
|
-
Puppet.debug "Empty response for #{name} from #{self.name} terminus"
|
25
|
+
Puppet.debug { "Empty response for #{name} from #{self.name} terminus" }
|
26
26
|
return nil
|
27
27
|
else
|
28
28
|
return output
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# module containing common methods used by json and yaml facts indirection terminus
|
2
|
+
module Puppet::Indirector::FactSearch
|
3
|
+
def node_matches?(facts, options)
|
4
|
+
options.each do |key, value|
|
5
|
+
type, name, operator = key.to_s.split(".")
|
6
|
+
operator ||= 'eq'
|
7
|
+
|
8
|
+
return false unless node_matches_option?(type, name, operator, value, facts)
|
9
|
+
end
|
10
|
+
return true
|
11
|
+
end
|
12
|
+
|
13
|
+
def node_matches_option?(type, name, operator, value, facts)
|
14
|
+
case type
|
15
|
+
when "meta"
|
16
|
+
case name
|
17
|
+
when "timestamp"
|
18
|
+
compare_timestamp(operator, facts.timestamp, Time.parse(value))
|
19
|
+
end
|
20
|
+
when "facts"
|
21
|
+
compare_facts(operator, facts.values[name], value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def compare_facts(operator, value1, value2)
|
26
|
+
return false unless value1
|
27
|
+
|
28
|
+
case operator
|
29
|
+
when "eq"
|
30
|
+
value1.to_s == value2.to_s
|
31
|
+
when "le"
|
32
|
+
value1.to_f <= value2.to_f
|
33
|
+
when "ge"
|
34
|
+
value1.to_f >= value2.to_f
|
35
|
+
when "lt"
|
36
|
+
value1.to_f < value2.to_f
|
37
|
+
when "gt"
|
38
|
+
value1.to_f > value2.to_f
|
39
|
+
when "ne"
|
40
|
+
value1.to_s != value2.to_s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def compare_timestamp(operator, value1, value2)
|
45
|
+
case operator
|
46
|
+
when "eq"
|
47
|
+
value1 == value2
|
48
|
+
when "le"
|
49
|
+
value1 <= value2
|
50
|
+
when "ge"
|
51
|
+
value1 >= value2
|
52
|
+
when "lt"
|
53
|
+
value1 < value2
|
54
|
+
when "gt"
|
55
|
+
value1 > value2
|
56
|
+
when "ne"
|
57
|
+
value1 != value2
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|