puppet 6.21.1-x64-mingw32 → 7.4.1-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 +1 -4
- data/Gemfile.lock +5 -5
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -2
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +2 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +27 -29
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +57 -162
- data/lib/puppet/environments.rb +8 -23
- data/lib/puppet/face/facts.rb +73 -49
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +8 -0
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +6 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/http/client.rb +164 -114
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/resolver/server_list.rb +6 -10
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/facts/facter.rb +25 -3
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +67 -0
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +3 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +7 -5
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +45 -33
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +521 -1226
- data/man/man5/puppet.conf.5 +34 -94
- data/man/man8/puppet-facts.8 +56 -35
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-module.8 +0 -57
- data/man/man8/puppet.8 +1 -1
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +24 -11
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +7 -3
- data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/facts_spec.rb +86 -0
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +22 -47
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +14 -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 +22 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -8
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +0 -62
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/facts/facter_spec.rb +113 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/network/authconfig_spec.rb +2 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +45 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +0 -56
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +17 -0
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +19 -55
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/report_spec.rb +0 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +0 -18
- metadata +47 -218
- data/conf/auth.conf +0 -150
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/fact_dif.rb +0 -62
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -78
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/ssl_spec.rb +0 -91
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2005ddd7b7ff52135218108ac4c6161da9f2496d16278488eafa549e05a2a0f3
|
4
|
+
data.tar.gz: 4ae3d3aed8d00d1611b0074abdfcce453f0ffd81e356bdf4654ffa3e021fd743
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d6c1ffd0b4314e6c18a25e9c54c35b8c40cfddddc07842edaa5537b06de868f90c53c4bfa29228e3f2693a0c518bc72a583ce7022394f9cb36d0fce2cbc9d15
|
7
|
+
data.tar.gz: 4f49fb62b206829dd1057659a3bf0be4885bf0000e720a46df60871de5007e56d5574fd0e4b22f74493cc2b120aac87c4d0ef243349cdfede4ceabef773367ee
|
data/Gemfile
CHANGED
@@ -14,13 +14,10 @@ end
|
|
14
14
|
|
15
15
|
# override .gemspec deps - may issue warning depending on Bundler version
|
16
16
|
gem "facter", *location_for(ENV['FACTER_LOCATION']) if ENV.has_key?('FACTER_LOCATION')
|
17
|
-
gem "facter-ng", *location_for(ENV['FACTER_NG_LOCATION']) if ENV.has_key?('FACTER_NG_LOCATION')
|
18
17
|
gem "hiera", *location_for(ENV['HIERA_LOCATION']) if ENV.has_key?('HIERA_LOCATION')
|
19
18
|
gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
|
20
19
|
gem "puppet-resource_api", *location_for(ENV['RESOURCE_API_LOCATION'] || ["~> 1.5"])
|
21
20
|
|
22
|
-
gem "scanf" if RUBY_VERSION.to_f >= 2.7
|
23
|
-
|
24
21
|
group(:features) do
|
25
22
|
gem 'diff-lcs', '~> 1.3', require: false
|
26
23
|
gem 'hiera-eyaml', *location_for(ENV['HIERA_EYAML_LOCATION'])
|
@@ -34,7 +31,7 @@ group(:features) do
|
|
34
31
|
# gem 'ruby-augeas', require: false, platforms: [:ruby]
|
35
32
|
# requires native ldap headers/libs
|
36
33
|
# gem 'ruby-ldap', '~> 0.9', require: false, platforms: [:ruby]
|
37
|
-
gem 'puppetserver-ca', '~>
|
34
|
+
gem 'puppetserver-ca', '~> 2.0', require: false
|
38
35
|
end
|
39
36
|
|
40
37
|
group(:test) do
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
puppet (
|
4
|
+
puppet (7.4.1)
|
5
5
|
CFPropertyList (~> 2.2)
|
6
6
|
concurrent-ruby (~> 1.0)
|
7
7
|
deep_merge (~> 1.0)
|
8
8
|
facter (>= 2.4.0, < 5)
|
9
9
|
fast_gettext (~> 1.1)
|
10
10
|
hiera (>= 3.2.1, < 4)
|
11
|
-
httpclient (~> 2.8)
|
12
11
|
locale (~> 2.1)
|
13
12
|
multi_json (~> 1.13)
|
13
|
+
scanf (~> 1.0)
|
14
14
|
semantic_puppet (~> 1.0)
|
15
15
|
|
16
16
|
GEM
|
@@ -49,7 +49,6 @@ GEM
|
|
49
49
|
highline (1.6.21)
|
50
50
|
hocon (1.3.1)
|
51
51
|
hpricot (0.8.6)
|
52
|
-
httpclient (2.8.3)
|
53
52
|
json-schema (2.8.1)
|
54
53
|
addressable (>= 2.4)
|
55
54
|
locale (2.1.3)
|
@@ -75,7 +74,7 @@ GEM
|
|
75
74
|
public_suffix (4.0.6)
|
76
75
|
puppet-resource_api (1.8.13)
|
77
76
|
hocon (>= 1.0)
|
78
|
-
puppetserver-ca (
|
77
|
+
puppetserver-ca (2.0.1)
|
79
78
|
facter (>= 2.0.1, < 5)
|
80
79
|
racc (1.4.9)
|
81
80
|
rainbow (2.2.2)
|
@@ -118,6 +117,7 @@ GEM
|
|
118
117
|
rubocop (~> 0.49.0)
|
119
118
|
ruby-prof (1.4.2)
|
120
119
|
ruby-progressbar (1.11.0)
|
120
|
+
scanf (1.0.0)
|
121
121
|
semantic_puppet (1.0.3)
|
122
122
|
text (1.3.1)
|
123
123
|
thor (1.1.0)
|
@@ -146,7 +146,7 @@ DEPENDENCIES
|
|
146
146
|
pry
|
147
147
|
puppet!
|
148
148
|
puppet-resource_api (~> 1.5)
|
149
|
-
puppetserver-ca (~>
|
149
|
+
puppetserver-ca (~> 2.0)
|
150
150
|
racc (= 1.4.9)
|
151
151
|
rake (~> 12.2)
|
152
152
|
rdoc (~> 6.0)
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ Documentation for Puppet and related projects can be found online at the
|
|
15
15
|
|
16
16
|
### HTTP API
|
17
17
|
|
18
|
-
[HTTP API Index](https://puppet.com/docs/puppet/
|
18
|
+
[HTTP API Index](https://puppet.com/docs/puppet/latest/http_api/http_api_index.html)
|
19
19
|
|
20
20
|
## Installation
|
21
21
|
|
data/conf/fileserver.conf
CHANGED
@@ -12,10 +12,9 @@
|
|
12
12
|
#
|
13
13
|
# [extra_files]
|
14
14
|
# path /etc/puppetlabs/puppet/files
|
15
|
-
# allow *
|
16
15
|
#
|
17
|
-
# In the example above, anything in /etc/puppetlabs/puppet/files/<file name>
|
18
|
-
# available to authenticated nodes at puppet:///extra_files/<file name>.
|
16
|
+
# In the example above, anything in /etc/puppetlabs/puppet/files/<file name>
|
17
|
+
# would be available to authenticated nodes at puppet:///extra_files/<file name>.
|
19
18
|
#
|
20
19
|
# Mount points may also use three placeholders as part of their path:
|
21
20
|
#
|
@@ -28,10 +27,6 @@
|
|
28
27
|
# PERMISSIONS
|
29
28
|
|
30
29
|
# The ability to set permissions - for example, using the allow, allow_ip, or
|
31
|
-
# deny directives - has been removed. Instead, you can
|
32
|
-
# auth.conf
|
33
|
-
#
|
34
|
-
#
|
35
|
-
# For details and an example, see the auth.conf file. If you're using Puppet
|
36
|
-
# Server, see the Puppet Server documentation at
|
37
|
-
# https://puppet.com/docs/puppetserver/latest/config_file_auth.html.
|
30
|
+
# deny directives - has been removed from fileserver.conf. Instead, you can
|
31
|
+
# control file access in Puppet Server's auth.conf file. See the documentation
|
32
|
+
# at https://puppet.com/docs/puppetserver/latest/config_file_auth.html.
|
data/ext/build_defaults.yaml
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
---
|
2
2
|
packager: 'puppetlabs'
|
3
|
-
gpg_key: '7F438280EF8D349F'
|
4
3
|
|
5
4
|
# These are the build targets used by the packaging repo. Uncomment to allow use.
|
6
5
|
#final_mocks: 'pl-el-5-i386 pl-el-6-i386 pl-el-7-x86_64'
|
@@ -16,4 +15,4 @@ apt_signing_server: 'apt.puppetlabs.com'
|
|
16
15
|
apt_repo_url: 'http://apt.puppetlabs.com'
|
17
16
|
apt_repo_path: '/opt/repository/incoming'
|
18
17
|
tar_host: 'downloads.puppetlabs.com'
|
19
|
-
nonfinal_gem_path: '/opt/repository-nightlies/downloads/gems/
|
18
|
+
nonfinal_gem_path: '/opt/repository-nightlies/downloads/gems/puppet7-nightly'
|
data/ext/osx/file_mapping.yaml
CHANGED
data/ext/project_data.yaml
CHANGED
@@ -14,7 +14,7 @@ gem_test_files: 'spec/**/*'
|
|
14
14
|
gem_executables: 'puppet'
|
15
15
|
gem_default_executables: 'puppet'
|
16
16
|
gem_forge_project: 'puppet'
|
17
|
-
gem_required_ruby_version: '>= 2.
|
17
|
+
gem_required_ruby_version: '>= 2.5.0'
|
18
18
|
gem_required_rubygems_version: '> 1.3.1'
|
19
19
|
gem_runtime_dependencies:
|
20
20
|
facter: ['> 2.0.1', '< 5']
|
@@ -23,10 +23,10 @@ gem_runtime_dependencies:
|
|
23
23
|
fast_gettext: '~> 1.1'
|
24
24
|
locale: '~> 2.1'
|
25
25
|
multi_json: '~> 1.10'
|
26
|
-
httpclient: '~> 2.8'
|
27
26
|
puppet-resource_api: '~>1.5'
|
28
27
|
concurrent-ruby: '~> 1.0'
|
29
28
|
deep_merge: '~> 1.0'
|
29
|
+
scanf: '~> 1.0'
|
30
30
|
gem_rdoc_options:
|
31
31
|
- --title
|
32
32
|
- "Puppet - Configuration Management"
|
@@ -40,22 +40,10 @@ gem_platform_dependencies:
|
|
40
40
|
x86-mingw32:
|
41
41
|
gem_runtime_dependencies:
|
42
42
|
ffi: ['> 1.9.24', '< 2']
|
43
|
-
# win32-xxxx gems are pinned due to PUP-6445
|
44
|
-
win32-dir: '= 0.4.9'
|
45
|
-
win32-process: '= 0.7.5'
|
46
|
-
# Use of win32-security is deprecated
|
47
|
-
win32-security: '= 0.2.5'
|
48
|
-
win32-service: '= 0.8.8'
|
49
43
|
minitar: '~> 0.9'
|
50
44
|
x64-mingw32:
|
51
45
|
gem_runtime_dependencies:
|
52
46
|
ffi: ['> 1.9.24', '< 2']
|
53
|
-
# win32-xxxx gems are pinned due to PUP-6445
|
54
|
-
win32-dir: '= 0.4.9'
|
55
|
-
win32-process: '= 0.7.5'
|
56
|
-
# Use of win32-security is deprecated
|
57
|
-
win32-security: '= 0.2.5'
|
58
|
-
win32-service: '= 0.8.8'
|
59
47
|
minitar: '~> 0.9'
|
60
48
|
bundle_platforms:
|
61
49
|
universal-darwin: all
|
data/ext/redhat/puppet.spec.erb
CHANGED
@@ -199,7 +199,6 @@ touch %{buildroot}%{_localstatedir}/log/puppet/masterhttp.log
|
|
199
199
|
%config(noreplace) %{_sysconfdir}/tmpfiles.d/%{name}.conf
|
200
200
|
%endif
|
201
201
|
%config(noreplace) %{_sysconfdir}/puppet/puppet.conf
|
202
|
-
%config(noreplace) %{_sysconfdir}/puppet/auth.conf
|
203
202
|
%config(noreplace) %{_sysconfdir}/logrotate.d/puppet
|
204
203
|
# We don't want to require emacs or vim, so we need to own these dirs
|
205
204
|
%{_datadir}/emacs
|
@@ -1,22 +1,23 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
|
-
require '
|
5
|
-
require 'win32/dir'
|
6
|
-
require 'win32/process'
|
4
|
+
require 'puppet/util/windows/daemon'
|
7
5
|
|
8
6
|
# This file defines utilities for logging to eventlog. While it lives inside
|
9
7
|
# Puppet, it is completely independent and loads no other parts of Puppet, so we
|
10
8
|
# can safely require *just* it.
|
11
9
|
require 'puppet/util/windows/eventlog'
|
12
10
|
|
13
|
-
|
11
|
+
# monkey patches ruby Process to add .create method
|
12
|
+
require 'puppet/util/windows/monkey_patches/process'
|
13
|
+
|
14
|
+
class WindowsDaemon < Puppet::Util::Windows::Daemon
|
14
15
|
CREATE_NEW_CONSOLE = 0x00000010
|
15
16
|
|
16
17
|
@run_thread = nil
|
17
18
|
@LOG_TO_FILE = false
|
18
19
|
@loglevel = 0
|
19
|
-
LOG_FILE = File.expand_path(File.join(
|
20
|
+
LOG_FILE = File.expand_path(File.join(ENV['ALLUSERSPROFILE'], 'PuppetLabs', 'puppet', 'var', 'log', 'windows.log'))
|
20
21
|
LEVELS = [:debug, :info, :notice, :warning, :err, :alert, :emerg, :crit]
|
21
22
|
LEVELS.each do |level|
|
22
23
|
define_method("log_#{level}") do |msg|
|
data/install.rb
CHANGED
@@ -178,6 +178,9 @@ def prepare_installation
|
|
178
178
|
opts.on('--vardir[=OPTIONAL]', 'Installation directory for var files', 'Default /opt/puppetlabs/puppet/cache') do |vardir|
|
179
179
|
InstallOptions.vardir = vardir
|
180
180
|
end
|
181
|
+
opts.on('--publicdir[=OPTIONAL]', 'Installation directory for public files such as the `last_run_summary.yaml` report', 'Default /opt/puppetlabs/puppet/public') do |publicdir|
|
182
|
+
InstallOptions.publicdir = publicdir
|
183
|
+
end
|
181
184
|
opts.on('--rundir[=OPTIONAL]', 'Installation directory for state files', 'Default /var/run/puppetlabs') do |rundir|
|
182
185
|
InstallOptions.rundir = rundir
|
183
186
|
end
|
@@ -242,20 +245,10 @@ def prepare_installation
|
|
242
245
|
$operatingsystem = Facter.value :operatingsystem
|
243
246
|
end
|
244
247
|
|
245
|
-
if $operatingsystem == "windows"
|
246
|
-
begin
|
247
|
-
# populates constants used to specify default Windows directories
|
248
|
-
require 'win32/dir'
|
249
|
-
rescue LoadError => e
|
250
|
-
puts "Cannot run on Microsoft Windows without the win32-process, win32-dir & win32-service gems: #{e}"
|
251
|
-
exit(-1)
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
248
|
if not InstallOptions.configdir.nil?
|
256
249
|
configdir = InstallOptions.configdir
|
257
250
|
elsif $operatingsystem == "windows"
|
258
|
-
configdir = File.join(
|
251
|
+
configdir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "etc")
|
259
252
|
else
|
260
253
|
configdir = "/etc/puppetlabs/puppet"
|
261
254
|
end
|
@@ -263,7 +256,7 @@ def prepare_installation
|
|
263
256
|
if not InstallOptions.codedir.nil?
|
264
257
|
codedir = InstallOptions.codedir
|
265
258
|
elsif $operatingsystem == "windows"
|
266
|
-
codedir = File.join(
|
259
|
+
codedir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "code")
|
267
260
|
else
|
268
261
|
codedir = "/etc/puppetlabs/code"
|
269
262
|
end
|
@@ -271,15 +264,23 @@ def prepare_installation
|
|
271
264
|
if not InstallOptions.vardir.nil?
|
272
265
|
vardir = InstallOptions.vardir
|
273
266
|
elsif $operatingsystem == "windows"
|
274
|
-
vardir = File.join(
|
267
|
+
vardir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "cache")
|
275
268
|
else
|
276
269
|
vardir = "/opt/puppetlabs/puppet/cache"
|
277
270
|
end
|
278
271
|
|
272
|
+
if not InstallOptions.publicdir.nil?
|
273
|
+
publicdir = InstallOptions.publicdir
|
274
|
+
elsif $operatingsystem == "windows"
|
275
|
+
publicdir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "public")
|
276
|
+
else
|
277
|
+
publicdir = "/opt/puppetlabs/puppet/public"
|
278
|
+
end
|
279
|
+
|
279
280
|
if not InstallOptions.rundir.nil?
|
280
281
|
rundir = InstallOptions.rundir
|
281
282
|
elsif $operatingsystem == "windows"
|
282
|
-
rundir = File.join(
|
283
|
+
rundir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "run")
|
283
284
|
else
|
284
285
|
rundir = "/var/run/puppetlabs"
|
285
286
|
end
|
@@ -287,7 +288,7 @@ def prepare_installation
|
|
287
288
|
if not InstallOptions.logdir.nil?
|
288
289
|
logdir = InstallOptions.logdir
|
289
290
|
elsif $operatingsystem == "windows"
|
290
|
-
logdir = File.join(
|
291
|
+
logdir = File.join(ENV['ALLUSERSPROFILE'], "PuppetLabs", "puppet", "var", "log")
|
291
292
|
else
|
292
293
|
logdir = "/var/log/puppetlabs/puppet"
|
293
294
|
end
|
@@ -302,7 +303,7 @@ def prepare_installation
|
|
302
303
|
localedir = InstallOptions.localedir
|
303
304
|
else
|
304
305
|
if $operatingsystem == "windows"
|
305
|
-
localedir = File.join(
|
306
|
+
localedir = File.join(ENV['PROGRAMFILES'], "Puppet Labs", "Puppet", "puppet", "share", "locale")
|
306
307
|
else
|
307
308
|
localedir = "/opt/puppetlabs/puppet/share/locale"
|
308
309
|
end
|
@@ -342,6 +343,7 @@ def prepare_installation
|
|
342
343
|
configdir = join(destdir, configdir)
|
343
344
|
codedir = join(destdir, codedir)
|
344
345
|
vardir = join(destdir, vardir)
|
346
|
+
publicdir = join(destdir, publicdir)
|
345
347
|
rundir = join(destdir, rundir)
|
346
348
|
logdir = join(destdir, logdir)
|
347
349
|
bindir = join(destdir, bindir)
|
@@ -355,6 +357,7 @@ def prepare_installation
|
|
355
357
|
FileUtils.makedirs(mandir)
|
356
358
|
FileUtils.makedirs(sitelibdir)
|
357
359
|
FileUtils.makedirs(vardir)
|
360
|
+
FileUtils.makedirs(publicdir)
|
358
361
|
FileUtils.makedirs(rundir)
|
359
362
|
FileUtils.makedirs(logdir)
|
360
363
|
FileUtils.makedirs(localedir)
|
@@ -366,6 +369,7 @@ def prepare_installation
|
|
366
369
|
InstallOptions.lib_dir = libdir
|
367
370
|
InstallOptions.man_dir = mandir
|
368
371
|
InstallOptions.var_dir = vardir
|
372
|
+
InstallOptions.public_dir = publicdir
|
369
373
|
InstallOptions.run_dir = rundir
|
370
374
|
InstallOptions.log_dir = logdir
|
371
375
|
InstallOptions.locale_dir = localedir
|
@@ -474,7 +478,7 @@ end
|
|
474
478
|
# Change directory into the puppet root so we don't get the wrong files for install.
|
475
479
|
FileUtils.cd File.dirname(__FILE__) do
|
476
480
|
# Set these values to what you want installed.
|
477
|
-
configs = glob(%w{conf/
|
481
|
+
configs = glob(%w{conf/puppet.conf conf/hiera.yaml})
|
478
482
|
bins = glob(%w{bin/*})
|
479
483
|
#rdoc = glob(%w{bin/* lib/**/*.rb README* }).reject { |e| e=~ /\.(bat|cmd)$/ }
|
480
484
|
#ri = glob(%w{bin/*.rb lib/**/*.rb}).reject { |e| e=~ /\.(bat|cmd)$/ }
|
data/lib/puppet.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'puppet/version'
|
2
2
|
require 'puppet/concurrent/synchronized'
|
3
3
|
|
4
|
-
if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new("2.
|
5
|
-
raise LoadError, "Puppet #{Puppet.version} requires Ruby 2.
|
4
|
+
if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new("2.5.0")
|
5
|
+
raise LoadError, "Puppet #{Puppet.version} requires Ruby 2.5.0 or greater, found Ruby #{RUBY_VERSION.dup}."
|
6
6
|
end
|
7
7
|
|
8
|
-
Puppet::OLDEST_RECOMMENDED_RUBY_VERSION = '2.
|
8
|
+
Puppet::OLDEST_RECOMMENDED_RUBY_VERSION = '2.5.0'
|
9
9
|
|
10
10
|
$LOAD_PATH.extend(Puppet::Concurrent::Synchronized)
|
11
11
|
|
@@ -27,16 +27,16 @@ require 'puppet/external/pson/pure'
|
|
27
27
|
require 'puppet/gettext/config'
|
28
28
|
require 'puppet/defaults'
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
# the top-level module
|
30
|
+
# Defines the `Puppet` module. There are different entry points into Puppet
|
31
|
+
# depending on your use case.
|
33
32
|
#
|
34
|
-
#
|
35
|
-
# preferences for things like debugging
|
33
|
+
# To use puppet as a library, see {Puppet::Pal}.
|
36
34
|
#
|
37
|
-
#
|
38
|
-
|
39
|
-
#
|
35
|
+
# To create a new application, see {Puppet::Application}.
|
36
|
+
#
|
37
|
+
# To create a new function, see {Puppet::Functions}.
|
38
|
+
#
|
39
|
+
# To access puppet's REST APIs, see https://puppet.com/docs/puppet/latest/http_api/http_api_index.html.
|
40
40
|
#
|
41
41
|
# @api public
|
42
42
|
module Puppet
|
@@ -97,12 +97,6 @@ module Puppet
|
|
97
97
|
# Load the base features.
|
98
98
|
require 'puppet/feature/base'
|
99
99
|
|
100
|
-
# Store a new default value.
|
101
|
-
def self.define_settings(section, hash)
|
102
|
-
Puppet.deprecation_warning('The method Puppet.define_settings is deprecated and will be removed in a future release')
|
103
|
-
@@settings.define_settings(section, hash)
|
104
|
-
end
|
105
|
-
|
106
100
|
# setting access and stuff
|
107
101
|
def self.[]=(param,value)
|
108
102
|
@@settings[param] = value
|
@@ -245,7 +239,6 @@ module Puppet
|
|
245
239
|
|
246
240
|
{
|
247
241
|
:environments => Puppet::Environments::Cached.new(Puppet::Environments::Combined.new(*loaders)),
|
248
|
-
:http_pool => proc { Puppet.runtime[:http].pool },
|
249
242
|
:ssl_context => proc {
|
250
243
|
begin
|
251
244
|
cert = Puppet::X509::CertProvider.new
|
@@ -260,7 +253,6 @@ module Puppet
|
|
260
253
|
raise e
|
261
254
|
end
|
262
255
|
},
|
263
|
-
:ssl_host => proc { Puppet::SSL::Host.localhost(true) },
|
264
256
|
:http_session => proc { Puppet.runtime[:http].create_session },
|
265
257
|
:plugins => proc { Puppet::Plugins::Configuration.load_plugins },
|
266
258
|
:rich_data => false
|
@@ -364,7 +356,6 @@ require 'puppet/ssl'
|
|
364
356
|
require 'puppet/module'
|
365
357
|
require 'puppet/data_binding'
|
366
358
|
require 'puppet/util/storage'
|
367
|
-
require 'puppet/status'
|
368
359
|
require 'puppet/file_bucket/file'
|
369
360
|
require 'puppet/plugins/configuration'
|
370
361
|
require 'puppet/pal/pal_api'
|
data/lib/puppet/application.rb
CHANGED
@@ -6,95 +6,74 @@ require 'puppet/application_support'
|
|
6
6
|
|
7
7
|
module Puppet
|
8
8
|
|
9
|
-
#
|
10
|
-
# * setting up options
|
11
|
-
# * setting up logs
|
12
|
-
# * choosing what to run
|
13
|
-
# * representing execution status
|
9
|
+
# Defines an abstract Puppet application.
|
14
10
|
#
|
15
|
-
#
|
16
|
-
# An application is a subclass of Puppet::Application.
|
17
|
-
#
|
18
|
-
# For legacy compatibility,
|
19
|
-
# Puppet::Application[:example].run
|
20
|
-
# is equivalent to
|
21
|
-
# Puppet::Application::Example.new.run
|
11
|
+
# # Usage
|
22
12
|
#
|
13
|
+
# To create a new application extend `Puppet::Application`. Derived applications
|
14
|
+
# must implement the `main` method and should implement the `summary` and
|
15
|
+
# `help` methods in order to be included in `puppet help`, and should define
|
16
|
+
# application-specific options. For example:
|
23
17
|
#
|
18
|
+
# ```
|
24
19
|
# class Puppet::Application::Example < Puppet::Application
|
25
20
|
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
# end
|
30
|
-
#
|
31
|
-
# # run_command is called to actually run the specified command
|
32
|
-
# def run_command
|
33
|
-
# send Puppet::Util::CommandLine.new.args.shift
|
34
|
-
# end
|
21
|
+
# def summary
|
22
|
+
# "My puppet example application"
|
23
|
+
# end
|
35
24
|
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
25
|
+
# def help
|
26
|
+
# <<~HELP
|
27
|
+
# puppet-example(8) -- #{summary}
|
28
|
+
# ...
|
29
|
+
# HELP
|
30
|
+
# end
|
41
31
|
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
32
|
+
# # define arg with a required option
|
33
|
+
# option("--arg ARGUMENT") do |v|
|
34
|
+
# options[:arg] = v
|
35
|
+
# end
|
45
36
|
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
37
|
+
# # define arg with an optional option
|
38
|
+
# option("--maybe [ARGUMENT]") do |v|
|
39
|
+
# options[:maybe] = v
|
40
|
+
# end
|
49
41
|
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
# ...
|
53
|
-
# # let's say to the framework we finally handle this option
|
54
|
-
# true
|
55
|
-
# end
|
42
|
+
# # define long and short arg
|
43
|
+
# option("--all", "-a")
|
56
44
|
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
45
|
+
# def initialize(command_line = Puppet::Util::CommandLine.new)
|
46
|
+
# super
|
47
|
+
# @data = {}
|
48
|
+
# end
|
60
49
|
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# end
|
50
|
+
# def main
|
51
|
+
# # call action
|
52
|
+
# send(@command_line.args.shift)
|
53
|
+
# end
|
66
54
|
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
55
|
+
# def read
|
56
|
+
# # read action
|
57
|
+
# end
|
70
58
|
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
# arguments, including the long option, the short option, a description...
|
75
|
-
# Refer to +OptionParser+ documentation for the exact format.
|
76
|
-
# * If the option method is given a block, this one will be called whenever
|
77
|
-
# the option is encountered in the command-line argument.
|
78
|
-
# * If the option method has no block, a default functionality will be used, that
|
79
|
-
# stores the argument (or true/false if the option doesn't require an argument) in
|
80
|
-
# the global (to the application) options array.
|
81
|
-
# * If a given option was not defined by a the +option+ method, but it exists as a Puppet settings:
|
82
|
-
# * if +unknown+ was used with a block, it will be called with the option name and argument
|
83
|
-
# * if +unknown+ wasn't used, then the option/argument is handed to Puppet.settings.handlearg for
|
84
|
-
# a default behavior
|
59
|
+
# def write
|
60
|
+
# # write action
|
61
|
+
# end
|
85
62
|
#
|
86
|
-
#
|
63
|
+
# end
|
64
|
+
# ```
|
87
65
|
#
|
88
|
-
#
|
89
|
-
#
|
90
|
-
# The default +setup+ behaviour is to: read Puppet configuration and manage log level and destination
|
66
|
+
# Puppet defines the following application lifecycle methods that are called in
|
67
|
+
# the following order:
|
91
68
|
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
69
|
+
# * {#initialize}
|
70
|
+
# * {#initialize_app_defaults}
|
71
|
+
# * {#preinit}
|
72
|
+
# * {#parse_options}
|
73
|
+
# * {#setup}
|
74
|
+
# * {#main}
|
96
75
|
#
|
97
|
-
#
|
76
|
+
# ## Execution state
|
98
77
|
# The class attributes/methods of Puppet::Application serve as a global place to set and query the execution
|
99
78
|
# status of the application: stopping, restarting, etc. The setting of the application status does not directly
|
100
79
|
# affect its running status; it's assumed that the various components within the application will consult these
|
@@ -104,21 +83,27 @@ module Puppet
|
|
104
83
|
#
|
105
84
|
# So, if something in your application needs to stop the process, for some reason, you might consider:
|
106
85
|
#
|
86
|
+
# ```
|
107
87
|
# def stop_me!
|
108
|
-
#
|
109
|
-
#
|
110
|
-
#
|
88
|
+
# # indicate that we're stopping
|
89
|
+
# Puppet::Application.stop!
|
90
|
+
# # ...do stuff...
|
111
91
|
# end
|
92
|
+
# ```
|
112
93
|
#
|
113
94
|
# And, if you have some component that involves a long-running process, you might want to consider:
|
114
95
|
#
|
96
|
+
# ```
|
115
97
|
# def my_long_process(giant_list_to_munge)
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
98
|
+
# giant_list_to_munge.collect do |member|
|
99
|
+
# # bail if we're stopping
|
100
|
+
# return if Puppet::Application.stop_requested?
|
101
|
+
# process_member(member)
|
102
|
+
# end
|
121
103
|
# end
|
104
|
+
# ```
|
105
|
+
# @abstract
|
106
|
+
# @api public
|
122
107
|
class Application
|
123
108
|
require 'puppet/util'
|
124
109
|
include Puppet::Util
|
@@ -137,34 +122,42 @@ class Application
|
|
137
122
|
self.run_status = nil
|
138
123
|
end
|
139
124
|
|
125
|
+
# Signal that the application should stop.
|
126
|
+
# @api public
|
140
127
|
def stop!
|
141
128
|
self.run_status = :stop_requested
|
142
129
|
end
|
143
130
|
|
131
|
+
# Signal that the application should restart.
|
132
|
+
# @api public
|
144
133
|
def restart!
|
145
134
|
self.run_status = :restart_requested
|
146
135
|
end
|
147
136
|
|
148
137
|
# Indicates that Puppet::Application.restart! has been invoked and components should
|
149
138
|
# do what is necessary to facilitate a restart.
|
139
|
+
# @api public
|
150
140
|
def restart_requested?
|
151
141
|
:restart_requested == run_status
|
152
142
|
end
|
153
143
|
|
154
144
|
# Indicates that Puppet::Application.stop! has been invoked and components should do what is necessary
|
155
145
|
# for a clean stop.
|
146
|
+
# @api public
|
156
147
|
def stop_requested?
|
157
148
|
:stop_requested == run_status
|
158
149
|
end
|
159
150
|
|
160
151
|
# Indicates that one of stop! or start! was invoked on Puppet::Application, and some kind of process
|
161
152
|
# shutdown/short-circuit may be necessary.
|
153
|
+
# @api public
|
162
154
|
def interrupted?
|
163
155
|
[:restart_requested, :stop_requested].include? run_status
|
164
156
|
end
|
165
157
|
|
166
158
|
# Indicates that Puppet::Application believes that it's in usual running run_mode (no stop/restart request
|
167
159
|
# currently active).
|
160
|
+
# @api public
|
168
161
|
def clear?
|
169
162
|
run_status.nil?
|
170
163
|
end
|
@@ -270,14 +263,21 @@ class Application
|
|
270
263
|
end
|
271
264
|
private :try_load_class
|
272
265
|
|
266
|
+
# Return an instance of the specified application.
|
267
|
+
#
|
268
|
+
# @param [Symbol] name the lowercase name of the application
|
269
|
+
# @return [Puppet::Application] an instance of the specified name
|
270
|
+
# @raise [Puppet::Error] if the application class was not found.
|
271
|
+
# @raise [LoadError] if there was a problem loading the application file.
|
272
|
+
# @api public
|
273
273
|
def [](name)
|
274
274
|
find(name).new
|
275
275
|
end
|
276
276
|
|
277
277
|
# Sets or gets the run_mode name. Sets the run_mode name if a mode_name is
|
278
278
|
# passed. Otherwise, gets the run_mode or a default run_mode
|
279
|
-
#
|
280
|
-
def run_mode(
|
279
|
+
# @api public
|
280
|
+
def run_mode(mode_name = nil)
|
281
281
|
if mode_name
|
282
282
|
Puppet.settings.preferred_run_mode = mode_name
|
283
283
|
end
|
@@ -288,12 +288,19 @@ class Application
|
|
288
288
|
@run_mode = Puppet::Util::RunMode[ mode_name || Puppet.settings.preferred_run_mode ]
|
289
289
|
end
|
290
290
|
|
291
|
-
# Sets environment_mode name
|
291
|
+
# Sets environment_mode name. When acting as a compiler, the environment mode
|
292
|
+
# should be `:local` since the directory must exist to compile the catalog.
|
293
|
+
# When acting as an agent, the environment mode should be `:remote` since
|
294
|
+
# the Puppet[:environment] setting refers to an environment directoy on a remote
|
295
|
+
# system. The `:not_required` mode is for cases where the application does not
|
296
|
+
# need an environment to run.
|
297
|
+
#
|
292
298
|
# @param mode_name [Symbol] The name of the environment mode to run in. May
|
293
|
-
# be one of
|
294
|
-
# application looks for its specified environment. If
|
295
|
-
#
|
299
|
+
# be one of `:local`, `:remote`, or `:not_required`. This impacts where the
|
300
|
+
# application looks for its specified environment. If `:not_required` or
|
301
|
+
# `:remote` are set, the application will not fail if the environment does
|
296
302
|
# not exist on the local filesystem.
|
303
|
+
# @api public
|
297
304
|
def environment_mode(mode_name)
|
298
305
|
raise Puppet::Error, _("Invalid environment mode '%{mode_name}'") % { mode_name: mode_name } unless [:local, :remote, :not_required].include?(mode_name)
|
299
306
|
@environment_mode = mode_name
|
@@ -301,11 +308,14 @@ class Application
|
|
301
308
|
|
302
309
|
# Gets environment_mode name. If none is set with `environment_mode=`,
|
303
310
|
# default to :local.
|
311
|
+
# @return [Symbol] The current environment mode
|
312
|
+
# @api public
|
304
313
|
def get_environment_mode
|
305
314
|
@environment_mode || :local
|
306
315
|
end
|
307
316
|
|
308
317
|
# This is for testing only
|
318
|
+
# @api public
|
309
319
|
def clear_everything_for_tests
|
310
320
|
@run_mode = @banner = @run_status = @option_parser_commands = nil
|
311
321
|
end
|
@@ -327,37 +337,66 @@ class Application
|
|
327
337
|
exit(0)
|
328
338
|
end
|
329
339
|
|
330
|
-
|
340
|
+
# Initialize the application receiving the {Puppet::Util::CommandLine} object
|
341
|
+
# containing the application name and arguments.
|
342
|
+
#
|
343
|
+
# @param command_line [Puppet::Util::CommandLine] An instance of the command line to create the application with
|
344
|
+
# @api public
|
345
|
+
def initialize(command_line = Puppet::Util::CommandLine.new)
|
346
|
+
@command_line = CommandLineArgs.new(command_line.subcommand_name, command_line.args.dup)
|
347
|
+
@options = {}
|
348
|
+
end
|
349
|
+
|
350
|
+
# Now that the `run_mode` has been resolved, return default settings for the
|
351
|
+
# application. Note these values may be overridden when puppet's configuration
|
352
|
+
# is loaded later.
|
353
|
+
#
|
354
|
+
# @example To override the facts terminus:
|
355
|
+
# def app_defaults
|
356
|
+
# super.merge({
|
357
|
+
# :facts_terminus => 'yaml'
|
358
|
+
# })
|
359
|
+
# end
|
360
|
+
#
|
361
|
+
# @return [Hash<String, String>] default application settings
|
362
|
+
# @api public
|
363
|
+
def app_defaults
|
331
364
|
Puppet::Settings.app_defaults_for_run_mode(self.class.run_mode).merge(
|
332
365
|
:name => name
|
333
366
|
)
|
334
367
|
end
|
335
368
|
|
369
|
+
# Initialize application defaults. It's usually not necessary to override this method.
|
370
|
+
# @return [void]
|
371
|
+
# @api public
|
336
372
|
def initialize_app_defaults()
|
337
373
|
Puppet.settings.initialize_app_defaults(app_defaults)
|
338
374
|
end
|
339
375
|
|
340
|
-
#
|
376
|
+
# The preinit block is the first code to be called in your application, after
|
377
|
+
# `initialize`, but before option parsing, setup or command execution. It is
|
378
|
+
# usually not necessary to override this method.
|
379
|
+
# @return [void]
|
380
|
+
# @api public
|
341
381
|
def preinit
|
342
382
|
end
|
343
383
|
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
end
|
348
|
-
|
349
|
-
# call in setup of subclass to deprecate an application
|
384
|
+
# Call in setup of subclass to deprecate an application.
|
385
|
+
# @return [void]
|
386
|
+
# @api public
|
350
387
|
def deprecate
|
351
388
|
@deprecated = true
|
352
389
|
end
|
353
390
|
|
391
|
+
# Return true if this application is deprecated.
|
392
|
+
# @api public
|
354
393
|
def deprecated?
|
355
394
|
@deprecated
|
356
395
|
end
|
357
396
|
|
358
|
-
# Execute the application.
|
359
|
-
# @api public
|
397
|
+
# Execute the application. This method should not be overridden.
|
360
398
|
# @return [void]
|
399
|
+
# @api public
|
361
400
|
def run
|
362
401
|
|
363
402
|
# I don't really like the names of these lifecycle phases. It would be nice to change them to some more meaningful
|
@@ -382,18 +421,34 @@ class Application
|
|
382
421
|
exit_on_fail(_("Could not run")) { run_command }
|
383
422
|
end
|
384
423
|
|
424
|
+
# This method must be overridden and perform whatever action is required for
|
425
|
+
# the application. The `command_line` reader contains the actions and
|
426
|
+
# arguments.
|
427
|
+
# @return [void]
|
428
|
+
# @api public
|
385
429
|
def main
|
386
430
|
raise NotImplementedError, _("No valid command or main")
|
387
431
|
end
|
388
432
|
|
433
|
+
# Run the application. By default, it calls {#main}.
|
434
|
+
# @return [void]
|
435
|
+
# @api public
|
389
436
|
def run_command
|
390
437
|
main
|
391
438
|
end
|
392
439
|
|
440
|
+
# Setup the application. It is usually not necessary to override this method.
|
441
|
+
# @return [void]
|
442
|
+
# @api public
|
393
443
|
def setup
|
394
444
|
setup_logs
|
395
445
|
end
|
396
446
|
|
447
|
+
# Setup logging. By default the `console` log destination will only be created
|
448
|
+
# if `debug` or `verbose` is specified on the command line. Override to customize
|
449
|
+
# the logging behavior.
|
450
|
+
# @return [void]
|
451
|
+
# @api public
|
397
452
|
def setup_logs
|
398
453
|
handle_logdest_arg(Puppet[:logdest]) if !options[:setdest]
|
399
454
|
|
@@ -440,11 +495,10 @@ class Application
|
|
440
495
|
# Output basic information about the runtime environment for debugging
|
441
496
|
# purposes.
|
442
497
|
#
|
443
|
-
# @api public
|
444
|
-
#
|
445
498
|
# @param extra_info [Hash{String => #to_s}] a flat hash of extra information
|
446
499
|
# to log. Intended to be passed to super by subclasses.
|
447
500
|
# @return [void]
|
501
|
+
# @api public
|
448
502
|
def log_runtime_environment(extra_info=nil)
|
449
503
|
runtime_info = {
|
450
504
|
'puppet_version' => Puppet.version,
|
@@ -457,6 +511,21 @@ class Application
|
|
457
511
|
Puppet.debug 'Runtime environment: ' + runtime_info.map{|k,v| k + '=' + v.to_s}.join(', ')
|
458
512
|
end
|
459
513
|
|
514
|
+
# Options defined with the `option` method are parsed from settings and the command line.
|
515
|
+
# Refer to {OptionParser} documentation for the exact format. Options are parsed as follows:
|
516
|
+
#
|
517
|
+
# * If the option method is given a block, then it will be called whenever the option is encountered in the command-line argument.
|
518
|
+
# * If the option method has no block, then the default option handler will store the argument in the `options` instance variable.
|
519
|
+
# * If a given option was not defined by an `option` method, but it exists as a Puppet setting:
|
520
|
+
# * if `unknown` was used with a block, it will be called with the option name and argument.
|
521
|
+
# * if `unknown` wasn't used, then the option/argument is handed to Puppet.settings.handlearg for
|
522
|
+
# a default behavior.
|
523
|
+
# * The `-h` and `--help` options are automatically handled by the command line before creating the application.
|
524
|
+
#
|
525
|
+
# Options specified on the command line override settings. It is usually not
|
526
|
+
# necessary to override this method.
|
527
|
+
# @return [void]
|
528
|
+
# @api public
|
460
529
|
def parse_options
|
461
530
|
# Create an option parser
|
462
531
|
option_parser = OptionParser.new(self.class.banner)
|
@@ -504,6 +573,9 @@ class Application
|
|
504
573
|
self.class.to_s.sub(/.*::/,"").downcase.to_sym
|
505
574
|
end
|
506
575
|
|
576
|
+
# Return the text to display when running `puppet help`.
|
577
|
+
# @return [String] The help to display
|
578
|
+
# @api public
|
507
579
|
def help
|
508
580
|
_("No help available for puppet %{app_name}") % { app_name: name }
|
509
581
|
end
|
@@ -511,6 +583,8 @@ class Application
|
|
511
583
|
# The description used in top level `puppet help` output
|
512
584
|
# If left empty in implementations, we will attempt to extract
|
513
585
|
# the summary from the help text itself.
|
586
|
+
# @return [String]
|
587
|
+
# @api public
|
514
588
|
def summary
|
515
589
|
""
|
516
590
|
end
|