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,20 +0,0 @@
|
|
1
|
-
class Puppet::Parser::Compiler
|
2
|
-
# Validator that asserts that only application components can appear inside a site.
|
3
|
-
class CatalogValidator::SiteValidator < CatalogValidator
|
4
|
-
def self.validation_stage?(stage)
|
5
|
-
PRE_FINISH.equal?(stage)
|
6
|
-
end
|
7
|
-
|
8
|
-
def validate
|
9
|
-
the_site_resource = catalog.resource('Site', 'site')
|
10
|
-
return unless the_site_resource
|
11
|
-
|
12
|
-
catalog.downstream_from_vertex(the_site_resource).keys.each do |r|
|
13
|
-
unless r.is_application_component? || r.resource_type.application?
|
14
|
-
raise CatalogValidationError.new(_("Only application components can appear inside a site - %{res} is not allowed") % { res: r }, r.file, r.line)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
@@ -1,199 +0,0 @@
|
|
1
|
-
require 'puppet/parser/compiler'
|
2
|
-
|
3
|
-
class Puppet::Parser::EnvironmentCompiler < Puppet::Parser::Compiler
|
4
|
-
def self.compile(env, code_id=nil)
|
5
|
-
begin
|
6
|
-
env.check_for_reparse
|
7
|
-
|
8
|
-
node = Puppet::Node.new(env)
|
9
|
-
node.environment = env
|
10
|
-
new(node, :code_id => code_id).compile
|
11
|
-
rescue => detail
|
12
|
-
message = _("%{detail} in environment %{env}") % { detail: detail, env: env.name }
|
13
|
-
Puppet.log_exception(detail, message)
|
14
|
-
raise Puppet::Error, message, detail.backtrace
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(node, options = {})
|
19
|
-
super
|
20
|
-
@overridden_functions = {}
|
21
|
-
end
|
22
|
-
|
23
|
-
def add_function_overrides
|
24
|
-
add_function_override('hiera_include', proc { Puppet.debug "Ignoring hiera_include() during environment catalog compilation" })
|
25
|
-
end
|
26
|
-
|
27
|
-
def add_function_override(func_name, override)
|
28
|
-
typed_name = Puppet::Pops::Loader::TypedName.new(:function, func_name)
|
29
|
-
loader = loaders.puppet_system_loader
|
30
|
-
|
31
|
-
# Remove and preserve existing entry. A `nil` is also preserved to indicate
|
32
|
-
# an override that didn't replace a loaded function.
|
33
|
-
entry = loader.get_entry(typed_name)
|
34
|
-
existing = entry.nil? ? nil : entry.value
|
35
|
-
loader.remove_entry(typed_name) unless existing.nil?
|
36
|
-
@overridden_functions[typed_name] = existing
|
37
|
-
|
38
|
-
# Add the override to the loader
|
39
|
-
loader.set_entry(typed_name, override)
|
40
|
-
end
|
41
|
-
|
42
|
-
def remove_function_overrides
|
43
|
-
loader = loaders.puppet_system_loader
|
44
|
-
@overridden_functions.each_pair do |typed_name, overridden|
|
45
|
-
loader.remove_entry(typed_name)
|
46
|
-
loader.set_entry(typed_name, overridden) unless overridden.nil?
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def add_catalog_validators
|
51
|
-
super
|
52
|
-
add_catalog_validator(CatalogValidator::SiteValidator)
|
53
|
-
add_catalog_validator(CatalogValidator::EnvironmentRelationshipValidator)
|
54
|
-
end
|
55
|
-
|
56
|
-
def compile
|
57
|
-
add_function_overrides
|
58
|
-
begin
|
59
|
-
Puppet.override(@context_overrides, _("For compiling environment catalog %{env}") % { env: environment.name }) do
|
60
|
-
@catalog.environment_instance = environment
|
61
|
-
|
62
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Created settings scope"), [:compiler, :create_settings_scope]) { create_settings_scope }
|
63
|
-
|
64
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Evaluated main"), [:compiler, :evaluate_main]) { evaluate_main }
|
65
|
-
|
66
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Evaluated site"), [:compiler, :evaluate_site]) { evaluate_site }
|
67
|
-
|
68
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Evaluated application instances"), [:compiler, :evaluate_applications]) { evaluate_applications }
|
69
|
-
|
70
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Prune"), [:compiler, :prune_catalog]) { prune_catalog }
|
71
|
-
|
72
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Validate Catalog pre-finish"), [:compiler, :validate_pre_finish]) do
|
73
|
-
validate_catalog(CatalogValidator::PRE_FINISH)
|
74
|
-
end
|
75
|
-
|
76
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Finished catalog"), [:compiler, :finish_catalog]) { finish }
|
77
|
-
|
78
|
-
fail_on_unevaluated
|
79
|
-
|
80
|
-
Puppet::Util::Profiler.profile(_("Env Compile: Validate Catalog final"), [:compiler, :validate_final]) do
|
81
|
-
validate_catalog(CatalogValidator::FINAL)
|
82
|
-
end
|
83
|
-
|
84
|
-
if block_given?
|
85
|
-
yield @catalog
|
86
|
-
else
|
87
|
-
@catalog
|
88
|
-
end
|
89
|
-
end
|
90
|
-
ensure
|
91
|
-
remove_function_overrides
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
# @api private
|
96
|
-
def prune_catalog
|
97
|
-
prune_env_catalog
|
98
|
-
end
|
99
|
-
|
100
|
-
# Prunes the catalog by dropping all resources that are not contained under the Site (if a site expression is used).
|
101
|
-
# As a consequence all edges to/from dropped resources are also dropped.
|
102
|
-
# Once the pruning is performed, this compiler returns the pruned list when calling the #resources method.
|
103
|
-
# The pruning does not alter the order of resources in the resources list.
|
104
|
-
#
|
105
|
-
def prune_env_catalog
|
106
|
-
# Everything under Class[main], that is not under (inclusive of) Site[site] should be pruned as those resources
|
107
|
-
# are intended for nodes in a node catalog.
|
108
|
-
#
|
109
|
-
the_main_class_resource = @catalog.resource('Class', '')
|
110
|
-
the_site_resource = @catalog.resource('Site', 'site')
|
111
|
-
|
112
|
-
# Get downstream vertexes returns a hash where the keys are the resources and values nesting level
|
113
|
-
rooted_in_main = @catalog.downstream_from_vertex(the_main_class_resource).keys
|
114
|
-
|
115
|
-
to_be_removed =
|
116
|
-
if the_site_resource
|
117
|
-
keep_from_site = @catalog.downstream_from_vertex(the_site_resource).keys
|
118
|
-
keep_from_site << the_site_resource
|
119
|
-
rooted_in_main - keep_from_site
|
120
|
-
else
|
121
|
-
rooted_in_main
|
122
|
-
end
|
123
|
-
|
124
|
-
@catalog.remove_resource(*to_be_removed)
|
125
|
-
# The compiler keeps a list of added resources, this shadows that list with the now pruned result
|
126
|
-
@pruned_resources = @catalog.resources
|
127
|
-
end
|
128
|
-
|
129
|
-
def add_resource(scope, resource)
|
130
|
-
@resources << resource
|
131
|
-
@catalog.add_resource(resource)
|
132
|
-
|
133
|
-
if !resource.class? && resource[:stage]
|
134
|
-
raise ArgumentError, _("Only classes can set 'stage'; normal resources like %{resource} cannot change run stage") % { resource: resource }
|
135
|
-
end
|
136
|
-
|
137
|
-
# Stages should not be inside of classes. They are always a
|
138
|
-
# top-level container, regardless of where they appear in the
|
139
|
-
# manifest.
|
140
|
-
return if resource.stage?
|
141
|
-
|
142
|
-
# This adds a resource to the class it lexically appears in in the
|
143
|
-
# manifest.
|
144
|
-
unless resource.class?
|
145
|
-
@catalog.add_edge(scope.resource, resource)
|
146
|
-
end
|
147
|
-
resource.mark_unevaluated_consumer if is_capability_consumer?(resource)
|
148
|
-
assert_app_in_site(scope, resource)
|
149
|
-
end
|
150
|
-
|
151
|
-
def evaluate_ast_node()
|
152
|
-
# Do nothing, the environment catalog is not built for a particular node.
|
153
|
-
end
|
154
|
-
|
155
|
-
def on_empty_site
|
156
|
-
Puppet.warning(_("Environment Compiler: Could not find a site definition to evaluate"))
|
157
|
-
end
|
158
|
-
|
159
|
-
def evaluate_applications
|
160
|
-
exceptwrap do
|
161
|
-
resources.select { |resource| type = resource.resource_type; type.is_a?(Puppet::Resource::Type) && type.application? }.each do |resource|
|
162
|
-
Puppet::Util::Profiler.profile(_("Evaluated application %{resource}") % { resource: resource }, [:compiler, :evaluate_resource, resource]) do
|
163
|
-
resource.evaluate
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
def evaluate_classes(titles, scope, lazy)
|
170
|
-
# Always lazy in an Environment compilation
|
171
|
-
super(titles, scope, true)
|
172
|
-
end
|
173
|
-
|
174
|
-
# Overrides the regular compiler to be able to return the list of resources after a prune
|
175
|
-
# has taken place in the graph representation. Before a prune, the list is the same as in the regular
|
176
|
-
# compiler
|
177
|
-
#
|
178
|
-
def resources
|
179
|
-
@pruned_resources || super
|
180
|
-
end
|
181
|
-
|
182
|
-
def is_capability?(value)
|
183
|
-
if value.is_a?(Array)
|
184
|
-
value.find { |ev| is_capability?(ev) }
|
185
|
-
elsif value.is_a?(Puppet::Resource)
|
186
|
-
rstype = value.resource_type
|
187
|
-
rstype.nil? ? false : rstype.is_capability?
|
188
|
-
else
|
189
|
-
false
|
190
|
-
end
|
191
|
-
end
|
192
|
-
private :is_capability?
|
193
|
-
|
194
|
-
def is_capability_consumer?(resource)
|
195
|
-
resource.eachparam { |param| return true if (param.name == :consume || param.name == :require) && is_capability?(param.value) }
|
196
|
-
false
|
197
|
-
end
|
198
|
-
private :is_capability_consumer?
|
199
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# The Enumeration class provides default Enumerable::Enumerator creation for Puppet Programming Language
|
2
|
-
# runtime objects that supports the concept of enumeration.
|
3
|
-
#
|
4
|
-
module Puppet::Pops::Types
|
5
|
-
class Enumeration
|
6
|
-
def self.enumerator(o)
|
7
|
-
Puppet.deprecation_warning(_('Enumeration.enumerator is deprecated. Use Iterable.on instead'))
|
8
|
-
Iterable.on(o)
|
9
|
-
end
|
10
|
-
|
11
|
-
def enumerator(o)
|
12
|
-
Puppet.deprecation_warning(_('Enumeration.enumerator is deprecated. Use Iterable.on instead'))
|
13
|
-
Iterable.on(o)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,154 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# A helper module to look a capability up from PuppetDB
|
3
|
-
#
|
4
|
-
# @todo lutter 2015-03-10: determine whether this should be based on
|
5
|
-
# Puppet::Pops::Evaluator::Collectors, or at least use
|
6
|
-
# Puppet::Util::Puppetdb::Http
|
7
|
-
|
8
|
-
require 'net/http'
|
9
|
-
require 'cgi'
|
10
|
-
require 'puppet/util/json'
|
11
|
-
|
12
|
-
# @api private
|
13
|
-
module Puppet::Resource::CapabilityFinder
|
14
|
-
|
15
|
-
# Looks up a capability resource from PuppetDB. Capability resources are
|
16
|
-
# required to be unique per environment and code id. If multiple copies of a
|
17
|
-
# capability resource are found, the one matching the current code id is
|
18
|
-
# used.
|
19
|
-
#
|
20
|
-
# @param environment [String] environment name
|
21
|
-
# @param code_id [String,nil] code_id of the catalog
|
22
|
-
# @param cap [Puppet::Resource] the capability resource type instance
|
23
|
-
# @return [Puppet::Resource,nil] The found capability resource or `nil` if it could not be found
|
24
|
-
def self.find(environment, code_id, cap)
|
25
|
-
unless Puppet::Util.const_defined?('Puppetdb')
|
26
|
-
#TRANSLATOR PuppetDB is a product name and should not be translated
|
27
|
-
raise Puppet::DevError, _('PuppetDB is not available')
|
28
|
-
end
|
29
|
-
|
30
|
-
resources = search(nil, nil, cap)
|
31
|
-
|
32
|
-
if resources.size > 1
|
33
|
-
Puppet.debug "Found multiple resources when looking up capability #{cap}, filtering by environment #{environment}"
|
34
|
-
resources = resources.select { |r| r['tags'].any? { |t| t == "producer:#{environment}" } }
|
35
|
-
end
|
36
|
-
|
37
|
-
if resources.empty?
|
38
|
-
Puppet.debug "Could not find capability resource #{cap} in PuppetDB"
|
39
|
-
elsif resources.size == 1
|
40
|
-
resource_hash = resources.first
|
41
|
-
else
|
42
|
-
code_id_resource = disambiguate_by_code_id(environment, code_id, cap)
|
43
|
-
if code_id_resource
|
44
|
-
resource_hash = code_id_resource
|
45
|
-
else
|
46
|
-
#TRANSLATOR PuppetDB is a product name and should not be translated
|
47
|
-
message = _("Unexpected response from PuppetDB when looking up %{capability}:") % { capability: cap }
|
48
|
-
message += "\n" + _("expected exactly one resource but got %{count};") % { count: resources.size }
|
49
|
-
message += "\n" + _("returned data is:\n%{resources}") % { resources: resources.inspect }
|
50
|
-
raise Puppet::DevError, message
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
if resource_hash
|
55
|
-
resource_hash['type'] = cap.resource_type
|
56
|
-
instantiate_resource(resource_hash)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def self.search(environment, code_id, cap)
|
61
|
-
query_terms = [
|
62
|
-
'and',
|
63
|
-
['=', 'type', cap.type.capitalize],
|
64
|
-
['=', 'title', cap.title.to_s],
|
65
|
-
]
|
66
|
-
|
67
|
-
if environment.nil?
|
68
|
-
query_terms << ['~', 'tag', "^producer:"]
|
69
|
-
else
|
70
|
-
query_terms << ['=', 'tag', "producer:#{environment}"]
|
71
|
-
end
|
72
|
-
|
73
|
-
unless code_id.nil?
|
74
|
-
query_terms << ['in', 'certname',
|
75
|
-
['extract', 'certname',
|
76
|
-
['select_catalogs',
|
77
|
-
['=', 'code_id', code_id]]]]
|
78
|
-
end
|
79
|
-
|
80
|
-
#TRANSLATOR PuppetDB is a product name and should not be translated
|
81
|
-
Puppet.notice _("Looking up capability %{capability} in PuppetDB: %{query_terms}") % { capability: cap, query_terms: query_terms }
|
82
|
-
|
83
|
-
query_puppetdb(query_terms)
|
84
|
-
end
|
85
|
-
|
86
|
-
def self.query_puppetdb(query)
|
87
|
-
begin
|
88
|
-
# If using PuppetDB >= 4, use the API method query_puppetdb()
|
89
|
-
result = if Puppet::Util::Puppetdb.respond_to?(:query_puppetdb)
|
90
|
-
# PuppetDB 4 uses a unified query endpoint, so we have to specify what we're querying
|
91
|
-
Puppet::Util::Puppetdb.query_puppetdb(["from", "resources", query])
|
92
|
-
# For PuppetDB < 4, use the old internal method action()
|
93
|
-
else
|
94
|
-
url = "/pdb/query/v4/resource?query=#{Puppet::Util.uri_query_encode(query.to_json)}"
|
95
|
-
response = Puppet::Util::Puppetdb::Http.action(url) do |conn, uri|
|
96
|
-
conn.get(uri, { 'Accept' => 'application/json'})
|
97
|
-
end
|
98
|
-
Puppet::Util::Json.load(response.body)
|
99
|
-
end
|
100
|
-
|
101
|
-
# The format of the response body is documented at
|
102
|
-
# https://puppet.com/docs/puppetdb/3.0/api/query/v4/resources.html#response-format
|
103
|
-
unless result.is_a?(Array)
|
104
|
-
#TRANSLATOR PuppetDB is a product name and should not be translated
|
105
|
-
raise Puppet::DevError, _("Unexpected response from PuppetDB when looking up %{capability}: expected an Array but got %{result}") %
|
106
|
-
{ capability: cap, result: result.inspect }
|
107
|
-
end
|
108
|
-
|
109
|
-
result
|
110
|
-
rescue Puppet::Util::Json::ParseError => e
|
111
|
-
#TRANSLATOR PuppetDB is a product name and should not be translated
|
112
|
-
raise Puppet::DevError, _("Invalid JSON from PuppetDB when looking up %{capability}\n%{detail}") % { capability: cap, detail: e }
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
# Find a distinct copy of the given capability resource by searching for only
|
117
|
-
# resources matching the given code_id. Returns `nil` if no code_id is
|
118
|
-
# supplied or if there isn't exactly one matching resource.
|
119
|
-
#
|
120
|
-
# @param environment [String] environment name
|
121
|
-
# @param code_id [String,nil] code_id of the catalog
|
122
|
-
# @param cap [Puppet::Resource] the capability resource type instance
|
123
|
-
def self.disambiguate_by_code_id(environment, code_id, cap)
|
124
|
-
if code_id
|
125
|
-
Puppet.debug "Found multiple resources when looking up capability #{cap}, filtering by code id #{code_id}"
|
126
|
-
resources = search(environment, code_id, cap)
|
127
|
-
|
128
|
-
if resources.size > 1
|
129
|
-
Puppet.debug "Found multiple resources matching code id #{code_id} when looking up #{cap}"
|
130
|
-
nil
|
131
|
-
else
|
132
|
-
resources.first
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
private_class_method :disambiguate_by_code_id
|
137
|
-
|
138
|
-
def self.instantiate_resource(resource_hash)
|
139
|
-
real_type = resource_hash['type']
|
140
|
-
resource = Puppet::Resource.new(real_type, resource_hash['title'])
|
141
|
-
real_type.parameters.each do |param|
|
142
|
-
param = param.to_s
|
143
|
-
next if param == 'name'
|
144
|
-
value = resource_hash['parameters'][param]
|
145
|
-
if value
|
146
|
-
resource[param] = value
|
147
|
-
else
|
148
|
-
Puppet.debug "No capability value for #{resource}->#{param}"
|
149
|
-
end
|
150
|
-
end
|
151
|
-
return resource
|
152
|
-
end
|
153
|
-
private_class_method :instantiate_resource
|
154
|
-
end
|
data/lib/puppet/rest/errors.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# @deprecated Use {Puppet::HTTP::Client} instead.
|
2
|
-
module Puppet::Rest
|
3
|
-
class ResponseError < Puppet::Error
|
4
|
-
attr_reader :response
|
5
|
-
|
6
|
-
# Error thrown when request status is not OK.
|
7
|
-
# @param [String] msg the error message
|
8
|
-
# @param [Puppet::Rest::Response] response the response from the failed
|
9
|
-
# request
|
10
|
-
def initialize(msg, response = nil)
|
11
|
-
super(msg)
|
12
|
-
@response = response
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/puppet/rest/response.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# @deprecated Use {Puppet::HTTP::Client} instead.
|
2
|
-
module Puppet::Rest
|
3
|
-
# This is a wrapper for the HTTP::Message class of the HTTPClient
|
4
|
-
# gem. It is designed to wrap a message sent as an HTTP response.
|
5
|
-
class Response
|
6
|
-
def initialize(message)
|
7
|
-
@message = message
|
8
|
-
end
|
9
|
-
|
10
|
-
def body
|
11
|
-
@message.body
|
12
|
-
end
|
13
|
-
|
14
|
-
def content_type
|
15
|
-
@message.content_type
|
16
|
-
end
|
17
|
-
|
18
|
-
def content_encoding
|
19
|
-
@message.headers['Content-Encoding']
|
20
|
-
end
|
21
|
-
|
22
|
-
def status_code
|
23
|
-
@message.status
|
24
|
-
end
|
25
|
-
|
26
|
-
def ok?
|
27
|
-
@message.ok?
|
28
|
-
end
|
29
|
-
|
30
|
-
def to_exception
|
31
|
-
message = _("Error %{code} on SERVER: %{returned_message}") % { code: status_code, returned_message: body }
|
32
|
-
Puppet::Rest::ResponseError.new(message, self)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/lib/puppet/rest/route.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
require 'uri'
|
2
|
-
require 'puppet/util/connection'
|
3
|
-
|
4
|
-
# @deprecated Use {Puppet::HTTP::Client} instead.
|
5
|
-
module Puppet::Rest
|
6
|
-
class Route
|
7
|
-
attr_reader :server
|
8
|
-
|
9
|
-
# Create a Route containing information for querying the given API,
|
10
|
-
# hosted at a server determined either by SRV service or by the
|
11
|
-
# fallback server on the fallback port.
|
12
|
-
# @param [String] api the path leading to the root of the API. Must
|
13
|
-
# contain a trailing slash for proper endpoint path
|
14
|
-
# construction
|
15
|
-
# @param [Symbol] server_setting the setting to check for special
|
16
|
-
# server configuration
|
17
|
-
# @param [Symbol] port_setting the setting to check for speical
|
18
|
-
# port configuration
|
19
|
-
# @param [Symbol] srv_service the name of the service when using SRV
|
20
|
-
# records
|
21
|
-
def initialize(api:, server_setting: :server, port_setting: :masterport, srv_service: :puppet)
|
22
|
-
@api = api
|
23
|
-
@default_server = Puppet::Util::Connection.determine_server(server_setting)
|
24
|
-
@default_port = Puppet::Util::Connection.determine_port(port_setting, server_setting)
|
25
|
-
@srv_service = srv_service
|
26
|
-
end
|
27
|
-
|
28
|
-
# Select a server and port to create a base URL for the API specified by this
|
29
|
-
# route. If the connection fails and SRV records are in use, the next suitable
|
30
|
-
# server will be tried. If SRV records are not in use or no successful connection
|
31
|
-
# could be made, fall back to the configured server and port for this API, taking
|
32
|
-
# into account failover settings.
|
33
|
-
# @parma [Puppet::Network::Resolver] dns_resolver the DNS resolver to use to check
|
34
|
-
# SRV records
|
35
|
-
# @yield [URI] supply a base URL to make a request with
|
36
|
-
# @raise [Puppet::Error] if connection to selected server and port fails, and SRV
|
37
|
-
# records are not in use
|
38
|
-
def with_base_url(dns_resolver)
|
39
|
-
if @server && @port
|
40
|
-
# First try connecting to the previously selected server and port.
|
41
|
-
begin
|
42
|
-
return yield(base_url)
|
43
|
-
rescue SystemCallError => e
|
44
|
-
if Puppet[:use_srv_records]
|
45
|
-
Puppet.debug "Connection to cached server and port #{@server}:#{@port} failed, reselecting."
|
46
|
-
else
|
47
|
-
raise Puppet::Error, _("Connection to cached server and port %{server}:%{port} failed: %{message}") %
|
48
|
-
{ server: @server, port: @port, message: e.message }
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
if Puppet[:use_srv_records]
|
54
|
-
dns_resolver.each_srv_record(Puppet[:srv_domain], @srv_service) do |srv_server, srv_port|
|
55
|
-
# Try each of the servers for this service in weighted order
|
56
|
-
# until a working one is found.
|
57
|
-
begin
|
58
|
-
@server = srv_server
|
59
|
-
@port = srv_port
|
60
|
-
return yield(base_url)
|
61
|
-
rescue SystemCallError
|
62
|
-
Puppet.debug "Connection to selected server and port #{@server}:#{@port} failed. Trying next cached SRV record."
|
63
|
-
@server = nil
|
64
|
-
@port = nil
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# If not using SRV records, fall back to the defaults calculated above
|
70
|
-
@server = @default_server
|
71
|
-
@port = @default_port
|
72
|
-
|
73
|
-
Puppet.debug "No more servers in SRV record, falling back to #{@server}:#{@port}" if Puppet[:use_srv_records]
|
74
|
-
return yield(base_url)
|
75
|
-
end
|
76
|
-
|
77
|
-
private
|
78
|
-
|
79
|
-
# Returns a URI built from the information stored by this route,
|
80
|
-
# e.g. 'https://myserver.com:555/myapi/v1/'
|
81
|
-
def base_url
|
82
|
-
URI::HTTPS.build(host: @server, port: @port, path: @api)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|