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,28 +1,20 @@
|
|
1
1
|
require 'date'
|
2
2
|
require 'time'
|
3
3
|
|
4
|
-
#
|
5
|
-
# @api private
|
6
|
-
#
|
7
4
|
# Parse information relating to responses containing a Retry-After headers
|
8
5
|
#
|
6
|
+
# @api private
|
9
7
|
class Puppet::HTTP::RetryAfterHandler
|
10
|
-
|
11
|
-
# @api private
|
12
|
-
#
|
8
|
+
|
13
9
|
# Create a handler to allow the system to sleep between HTTP requests
|
14
10
|
#
|
15
11
|
# @param [Integer] retry_limit number of retries allowed
|
16
12
|
# @param [Integer] max_sleep maximum sleep time allowed
|
17
|
-
#
|
18
13
|
def initialize(retry_limit, max_sleep)
|
19
14
|
@retry_limit = retry_limit
|
20
15
|
@max_sleep = max_sleep
|
21
16
|
end
|
22
17
|
|
23
|
-
#
|
24
|
-
# @api private
|
25
|
-
#
|
26
18
|
# Does the response from the server tell us to wait until we attempt the next
|
27
19
|
# retry?
|
28
20
|
#
|
@@ -32,6 +24,7 @@ class Puppet::HTTP::RetryAfterHandler
|
|
32
24
|
# @return [Boolean] Return true if the response code is 429 or 503, return
|
33
25
|
# false otherwise
|
34
26
|
#
|
27
|
+
# @api private
|
35
28
|
def retry_after?(request, response)
|
36
29
|
case response.code
|
37
30
|
when 429, 503
|
@@ -41,9 +34,6 @@ class Puppet::HTTP::RetryAfterHandler
|
|
41
34
|
end
|
42
35
|
end
|
43
36
|
|
44
|
-
#
|
45
|
-
# @api private
|
46
|
-
#
|
47
37
|
# The amount of time to wait before attempting a retry
|
48
38
|
#
|
49
39
|
# @param [Net::HTTP] request
|
@@ -55,6 +45,7 @@ class Puppet::HTTP::RetryAfterHandler
|
|
55
45
|
# @raise [Puppet::HTTP::TooManyRetryAfters] raise if we have hit our retry
|
56
46
|
# limit
|
57
47
|
#
|
48
|
+
# @api private
|
58
49
|
def retry_after_interval(request, response, retries)
|
59
50
|
raise Puppet::HTTP::TooManyRetryAfters.new(request.uri) if retries >= @retry_limit
|
60
51
|
|
data/lib/puppet/http/service.rb
CHANGED
@@ -1,24 +1,17 @@
|
|
1
|
+
# Represents an abstract Puppet web service.
|
1
2
|
#
|
2
|
-
# @
|
3
|
-
#
|
4
|
-
# Represents a puppet web service
|
5
|
-
#
|
3
|
+
# @abstract Subclass and implement methods for the service's REST APIs.
|
4
|
+
# @api public
|
6
5
|
class Puppet::HTTP::Service
|
7
|
-
# @api private
|
8
6
|
# @return [URI] the url associated with this service
|
9
7
|
attr_reader :url
|
10
8
|
|
11
|
-
# @api private
|
12
9
|
# @return [Array<Symbol>] available services
|
13
|
-
SERVICE_NAMES = [:ca, :fileserver, :puppet, :report].freeze
|
10
|
+
SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
|
14
11
|
|
15
|
-
# @api private
|
16
12
|
# @return [Array<Symbol>] format types that are unsupported
|
17
13
|
EXCLUDED_FORMATS = [:yaml, :b64_zlib_yaml, :dot].freeze
|
18
14
|
|
19
|
-
#
|
20
|
-
# @api private
|
21
|
-
#
|
22
15
|
# Create a new web service, which contains the URL used to connect to the
|
23
16
|
# service. The four services implemented are `:ca`, `:fileserver`, `:puppet`,
|
24
17
|
# and `:report`.
|
@@ -35,6 +28,7 @@ class Puppet::HTTP::Service
|
|
35
28
|
#
|
36
29
|
# @return [Puppet::HTTP::Service] an instance of the service type requested
|
37
30
|
#
|
31
|
+
# @api private
|
38
32
|
def self.create_service(client, session, name, server = nil, port = nil)
|
39
33
|
case name
|
40
34
|
when :ca
|
@@ -43,6 +37,8 @@ class Puppet::HTTP::Service
|
|
43
37
|
Puppet::HTTP::Service::FileServer.new(client, session, server, port)
|
44
38
|
when :puppet
|
45
39
|
::Puppet::HTTP::Service::Compiler.new(client, session, server, port)
|
40
|
+
when :puppetserver
|
41
|
+
::Puppet::HTTP::Service::Puppetserver.new(client, session, server, port)
|
46
42
|
when :report
|
47
43
|
Puppet::HTTP::Service::Report.new(client, session, server, port)
|
48
44
|
else
|
@@ -50,57 +46,49 @@ class Puppet::HTTP::Service
|
|
50
46
|
end
|
51
47
|
end
|
52
48
|
|
53
|
-
#
|
54
|
-
# @api private
|
55
|
-
#
|
56
49
|
# Check if the service named is included in the list of available services.
|
57
50
|
#
|
58
51
|
# @param [Symbol] name
|
59
52
|
#
|
60
53
|
# @return [Boolean]
|
61
54
|
#
|
55
|
+
# @api private
|
62
56
|
def self.valid_name?(name)
|
63
57
|
SERVICE_NAMES.include?(name)
|
64
58
|
end
|
65
59
|
|
66
|
-
#
|
67
|
-
# @api private
|
68
|
-
#
|
69
|
-
# Create a new service
|
60
|
+
# Create a new service. Services should be created by calling `Puppet::HTTP::Session#route_to`.
|
70
61
|
#
|
71
62
|
# @param [Puppet::HTTP::Client] client
|
72
63
|
# @param [Puppet::HTTP::Session] session
|
73
64
|
# @param [URI] url The url to connect to
|
74
65
|
#
|
66
|
+
# @api private
|
75
67
|
def initialize(client, session, url)
|
76
68
|
@client = client
|
77
69
|
@session = session
|
78
70
|
@url = url
|
79
71
|
end
|
80
72
|
|
81
|
-
#
|
82
|
-
# @api private
|
83
|
-
#
|
84
73
|
# Return the url with the given path encoded and appended
|
85
74
|
#
|
86
75
|
# @param [String] path the string to append to the base url
|
87
76
|
#
|
88
77
|
# @return [URI] the URI object containing the encoded path
|
89
78
|
#
|
79
|
+
# @api public
|
90
80
|
def with_base_url(path)
|
91
81
|
u = @url.dup
|
92
82
|
u.path += Puppet::Util.uri_encode(path)
|
93
83
|
u
|
94
84
|
end
|
95
85
|
|
86
|
+
# Open a connection using the given ssl context.
|
96
87
|
#
|
97
|
-
# @
|
98
|
-
#
|
99
|
-
# Open a connection using the given ssl context
|
100
|
-
#
|
101
|
-
# @param [Puppet::SSL::SSLContext] ssl_context (nil) optional ssl context to
|
102
|
-
# connect with
|
88
|
+
# @param [Puppet::SSL::SSLContext] ssl_context An optional ssl context to connect with
|
89
|
+
# @return [void]
|
103
90
|
#
|
91
|
+
# @api public
|
104
92
|
def connect(ssl_context: nil)
|
105
93
|
@client.connect(@url, options: {ssl_context: ssl_context})
|
106
94
|
end
|
@@ -1,26 +1,21 @@
|
|
1
|
+
# The CA service is used to handle certificate related REST requests.
|
1
2
|
#
|
2
|
-
# @api
|
3
|
-
#
|
4
|
-
# The Ca service is used to handle certificate requests
|
5
|
-
#
|
3
|
+
# @api public
|
6
4
|
class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
7
|
-
# @api private
|
8
5
|
# @return [Hash] default headers for the ca service
|
9
6
|
HEADERS = { 'Accept' => 'text/plain' }.freeze
|
10
7
|
|
11
|
-
# @api private
|
12
8
|
# @return [String] default API for the ca service
|
13
9
|
API = '/puppet-ca/v1'.freeze
|
14
10
|
|
15
|
-
#
|
16
|
-
# @api private
|
11
|
+
# Use `Puppet::HTTP::Session.route_to(:ca)` to create or get an instance of this class.
|
17
12
|
#
|
18
13
|
# @param [Puppet::HTTP::Client] client
|
19
14
|
# @param [Puppet::HTTP::Session] session
|
20
|
-
# @param [String] server (Puppet[:ca_server]) If an explicit server is given,
|
15
|
+
# @param [String] server (`Puppet[:ca_server]`) If an explicit server is given,
|
21
16
|
# create a service using that server. If server is nil, the default value
|
22
17
|
# is used to create the service.
|
23
|
-
# @param [Integer] port (Puppet[:ca_port]) If an explicit port is given, create
|
18
|
+
# @param [Integer] port (`Puppet[:ca_port]`) If an explicit port is given, create
|
24
19
|
# a service using that port. If port is nil, the default value is used to
|
25
20
|
# create the service.
|
26
21
|
#
|
@@ -29,10 +24,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
29
24
|
super(client, session, url)
|
30
25
|
end
|
31
26
|
|
32
|
-
#
|
33
|
-
# @api private
|
34
|
-
#
|
35
|
-
# Submit a GET request to retrieve the named certificate from the server
|
27
|
+
# Submit a GET request to retrieve the named certificate from the server.
|
36
28
|
#
|
37
29
|
# @param [String] name name of the certificate to request
|
38
30
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
@@ -40,6 +32,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
40
32
|
# @return [Array<Puppet::HTTP::Response, String>] An array containing the
|
41
33
|
# request response and the stringified body of the request response
|
42
34
|
#
|
35
|
+
# @api public
|
43
36
|
def get_certificate(name, ssl_context: nil)
|
44
37
|
response = @client.get(
|
45
38
|
with_base_url("/certificate/#{name}"),
|
@@ -52,11 +45,8 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
52
45
|
[response, response.body.to_s]
|
53
46
|
end
|
54
47
|
|
55
|
-
#
|
56
|
-
# @api private
|
57
|
-
#
|
58
48
|
# Submit a GET request to retrieve the certificate revocation list from the
|
59
|
-
# server
|
49
|
+
# server.
|
60
50
|
#
|
61
51
|
# @param [Time] if_modified_since If not nil, only download the CRL if it has
|
62
52
|
# been modified since the specified time.
|
@@ -65,6 +55,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
65
55
|
# @return [Array<Puppet::HTTP::Response, String>] An array containing the
|
66
56
|
# request response and the stringified body of the request response
|
67
57
|
#
|
58
|
+
# @api public
|
68
59
|
def get_certificate_revocation_list(if_modified_since: nil, ssl_context: nil)
|
69
60
|
headers = add_puppet_headers(HEADERS)
|
70
61
|
headers['If-Modified-Since'] = if_modified_since.httpdate if if_modified_since
|
@@ -80,10 +71,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
80
71
|
[response, response.body.to_s]
|
81
72
|
end
|
82
73
|
|
83
|
-
#
|
84
|
-
# @api private
|
85
|
-
#
|
86
|
-
# Submit a PUT request to send a certificate request to the server
|
74
|
+
# Submit a PUT request to send a certificate request to the server.
|
87
75
|
#
|
88
76
|
# @param [String] name The name of the certificate request being sent
|
89
77
|
# @param [OpenSSL::X509::Request] csr Certificate request to send to the
|
@@ -92,6 +80,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
92
80
|
#
|
93
81
|
# @return [Puppet::HTTP::Response] The request response
|
94
82
|
#
|
83
|
+
# @api public
|
95
84
|
def put_certificate_request(name, csr, ssl_context: nil)
|
96
85
|
headers = add_puppet_headers(HEADERS)
|
97
86
|
headers['Content-Type'] = 'text/plain'
|
@@ -1,35 +1,28 @@
|
|
1
|
-
#
|
2
|
-
# @api private
|
3
|
-
#
|
4
1
|
# The Compiler service is used to submit and retrieve data from the
|
5
2
|
# puppetserver.
|
6
3
|
#
|
4
|
+
# @api public
|
7
5
|
class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
8
|
-
# @api private
|
9
6
|
# @return [String] Default API for the Compiler service
|
10
7
|
API = '/puppet/v3'.freeze
|
11
8
|
|
12
|
-
#
|
13
|
-
# @api private
|
9
|
+
# Use `Puppet::HTTP::Session.route_to(:puppet)` to create or get an instance of this class.
|
14
10
|
#
|
15
11
|
# @param [Puppet::HTTP::Client] client
|
16
12
|
# @param [Puppet::HTTP::Session] session
|
17
|
-
# @param [String] server (Puppet[:
|
13
|
+
# @param [String] server (`Puppet[:server]`) If an explicit server is given,
|
18
14
|
# create a service using that server. If server is nil, the default value
|
19
15
|
# is used to create the service.
|
20
|
-
# @param [Integer] port (Puppet[:
|
16
|
+
# @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
|
21
17
|
# a service using that port. If port is nil, the default value is used to
|
22
18
|
# create the service.
|
23
19
|
#
|
24
20
|
def initialize(client, session, server, port)
|
25
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
21
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
26
22
|
super(client, session, url)
|
27
23
|
end
|
28
24
|
|
29
|
-
#
|
30
|
-
# @api private
|
31
|
-
#
|
32
|
-
# Submit a GET request to retrieve a node from the server
|
25
|
+
# Submit a GET request to retrieve a node from the server.
|
33
26
|
#
|
34
27
|
# @param [String] name The name of the node being requested
|
35
28
|
# @param [String] environment The name of the environment we are operating in
|
@@ -41,6 +34,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
41
34
|
# @return [Array<Puppet::HTTP::Response, Puppet::Node>] An array containing
|
42
35
|
# the request response and the deserialized requested node
|
43
36
|
#
|
37
|
+
# @api public
|
44
38
|
def get_node(name, environment:, configured_environment: nil, transaction_uuid: nil)
|
45
39
|
headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Node).join(', '))
|
46
40
|
|
@@ -59,10 +53,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
59
53
|
[response, deserialize(response, Puppet::Node)]
|
60
54
|
end
|
61
55
|
|
62
|
-
#
|
63
|
-
# @api private
|
64
|
-
#
|
65
|
-
# Submit a POST request to submit a catalog to the server
|
56
|
+
# Submit a POST request to submit a catalog to the server.
|
66
57
|
#
|
67
58
|
# @param [String] name The name of the catalog to be submitted
|
68
59
|
# @param [Puppet::Node::Facts] facts Facts for this catalog
|
@@ -77,14 +68,13 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
77
68
|
# @param [Boolean] static_catalog Indicates if the file metadata(s) are inlined
|
78
69
|
# in the catalog. This informs the agent if it needs to make a second request
|
79
70
|
# to retrieve metadata in addition to the initial catalog request.
|
80
|
-
# @param [Array<String>] checksum_type An array of accepted checksum
|
81
|
-
# Currently defaults to `["md5", "sha256", "sha384", "sha512", "sha224"]`,
|
82
|
-
# or `["sha256", "sha384", "sha512", "sha224"]` if fips is enabled.
|
71
|
+
# @param [Array<String>] checksum_type An array of accepted checksum types.
|
83
72
|
#
|
84
73
|
# @return [Array<Puppet::HTTP::Response, Puppet::Resource::Catalog>] An array
|
85
74
|
# containing the request response and the deserialized catalog returned by
|
86
75
|
# the server
|
87
76
|
#
|
77
|
+
# @api public
|
88
78
|
def post_catalog(name, facts:, environment:, configured_environment: nil, transaction_uuid: nil, job_uuid: nil, static_catalog: true, checksum_type: Puppet[:supported_checksum_types])
|
89
79
|
if Puppet[:preferred_serialization_format] == "pson"
|
90
80
|
formatter = Puppet::Network::FormatHandler.format_for(:pson)
|
@@ -129,10 +119,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
129
119
|
[response, deserialize(response, Puppet::Resource::Catalog)]
|
130
120
|
end
|
131
121
|
|
132
|
-
#
|
133
|
-
# @api private
|
134
|
-
#
|
135
|
-
# Submit a GET request to retrieve the facts for the named node
|
122
|
+
# Submit a GET request to retrieve the facts for the named node.
|
136
123
|
#
|
137
124
|
# @param [String] name Name of the node to retrieve facts for
|
138
125
|
# @param [String] environment Name of the environment we are operating in
|
@@ -141,6 +128,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
141
128
|
# containing the request response and the deserialized facts for the
|
142
129
|
# specified node
|
143
130
|
#
|
131
|
+
# @api public
|
144
132
|
def get_facts(name, environment:)
|
145
133
|
headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Node::Facts).join(', '))
|
146
134
|
|
@@ -155,10 +143,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
155
143
|
[response, deserialize(response, Puppet::Node::Facts)]
|
156
144
|
end
|
157
145
|
|
158
|
-
#
|
159
|
-
# @api private
|
160
|
-
#
|
161
|
-
# Submits a PUT request to submit facts for the node to the server
|
146
|
+
# Submits a PUT request to submit facts for the node to the server.
|
162
147
|
#
|
163
148
|
# @param [String] name Name of the node we are submitting facts for
|
164
149
|
# @param [String] environment Name of the environment we are operating in
|
@@ -166,6 +151,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
166
151
|
#
|
167
152
|
# @return [Puppet::HTTP::Response] The request response
|
168
153
|
#
|
154
|
+
# @api public
|
169
155
|
def put_facts(name, environment:, facts:)
|
170
156
|
formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
|
171
157
|
|
@@ -186,39 +172,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
186
172
|
response
|
187
173
|
end
|
188
174
|
|
175
|
+
# Submit a GET request to retrieve a file stored with filebucket.
|
189
176
|
#
|
190
|
-
# @
|
191
|
-
#
|
192
|
-
# Submit a GET request to find the status of a compiler
|
193
|
-
#
|
194
|
-
# @param [String] name The name of the node that a status being requested for
|
195
|
-
#
|
196
|
-
# @return [Array<Puppet::HTTP::Response, Puppet::Status>] An array containing
|
197
|
-
# the request response and the deserialized status returned from the server
|
198
|
-
#
|
199
|
-
def get_status(name)
|
200
|
-
headers = add_puppet_headers('Accept' => get_mime_types(Puppet::Status).join(', '))
|
201
|
-
|
202
|
-
response = @client.get(
|
203
|
-
with_base_url("/status/#{name}"),
|
204
|
-
headers: headers,
|
205
|
-
params: {
|
206
|
-
# environment is required, but meaningless, default to production
|
207
|
-
environment: 'production'
|
208
|
-
},
|
209
|
-
)
|
210
|
-
|
211
|
-
process_response(response)
|
212
|
-
|
213
|
-
[response, deserialize(response, Puppet::Status)]
|
214
|
-
end
|
215
|
-
|
216
|
-
#
|
217
|
-
# @api private
|
218
|
-
#
|
219
|
-
# Submit a GET request to retrieve a file stored with filebucket
|
220
|
-
#
|
221
|
-
# @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
|
177
|
+
# @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
|
222
178
|
# @param [String] environment Name of the environment we are operating in.
|
223
179
|
# This should not impact filebucket at all, but is included to be consistent
|
224
180
|
# with legacy code.
|
@@ -233,6 +189,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
233
189
|
# containing the request response and the deserialized file returned from
|
234
190
|
# the server.
|
235
191
|
#
|
192
|
+
# @api public
|
236
193
|
def get_filebucket_file(path, environment:, bucket_path: nil, diff_with: nil, list_all: nil, fromdate: nil, todate: nil)
|
237
194
|
headers = add_puppet_headers('Accept' => 'application/octet-stream')
|
238
195
|
|
@@ -254,12 +211,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
254
211
|
[response, deserialize(response, Puppet::FileBucket::File)]
|
255
212
|
end
|
256
213
|
|
214
|
+
# Submit a PUT request to store a file with filebucket.
|
257
215
|
#
|
258
|
-
# @
|
259
|
-
#
|
260
|
-
# Submit a PUT request to store a file with filebucket
|
261
|
-
#
|
262
|
-
# @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
|
216
|
+
# @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
|
263
217
|
# @param [String] body The contents of the file to be backed
|
264
218
|
# @param [String] environment Name of the environment we are operating in.
|
265
219
|
# This should not impact filebucket at all, but is included to be consistent
|
@@ -267,6 +221,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
267
221
|
#
|
268
222
|
# @return [Puppet::HTTP::Response] The response request
|
269
223
|
#
|
224
|
+
# @api public
|
270
225
|
def put_filebucket_file(path, body:, environment:)
|
271
226
|
headers = add_puppet_headers({
|
272
227
|
'Accept' => 'application/octet-stream',
|
@@ -287,12 +242,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
287
242
|
response
|
288
243
|
end
|
289
244
|
|
245
|
+
# Submit a HEAD request to check the status of a file stored with filebucket.
|
290
246
|
#
|
291
|
-
# @
|
292
|
-
#
|
293
|
-
# Submit a HEAD request to check the status of a file stored with filebucket
|
294
|
-
#
|
295
|
-
# @param [String] path The request path, formatted by Puppet::FileBucket::Dipper
|
247
|
+
# @param [String] path The request path, formatted by `Puppet::FileBucket::Dipper`
|
296
248
|
# @param [String] environment Name of the environment we are operating in.
|
297
249
|
# This should not impact filebucket at all, but is included to be consistent
|
298
250
|
# with legacy code.
|
@@ -300,6 +252,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
300
252
|
#
|
301
253
|
# @return [Puppet::HTTP::Response] The request response
|
302
254
|
#
|
255
|
+
# @api public
|
303
256
|
def head_filebucket_file(path, environment:, bucket_path: nil)
|
304
257
|
headers = add_puppet_headers('Accept' => 'application/octet-stream')
|
305
258
|
|