puppet 6.19.0-x86-mingw32 → 7.3.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +3 -4
- data/Gemfile.lock +33 -28
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +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 +182 -104
- data/lib/puppet/application/agent.rb +1 -0
- data/lib/puppet/application/apply.rb +3 -2
- data/lib/puppet/application/device.rb +101 -104
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +44 -36
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +71 -170
- data/lib/puppet/environments.rb +44 -75
- data/lib/puppet/face/config.rb +10 -0
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +80 -6
- 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/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- 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/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- 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/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- 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 +3 -58
- 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/json.rb +5 -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/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +69 -1
- 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 +73 -18
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +4 -0
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +8 -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 +88 -48
- data/lib/puppet/settings/alias_setting.rb +37 -0
- 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_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/autoload.rb +1 -8
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -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 +629 -1314
- data/man/man5/puppet.conf.5 +39 -99
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +58 -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 +1 -1
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +4 -1
- 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 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +151 -14
- data/spec/integration/application/apply_spec.rb +20 -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 -10
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- 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/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/adsi_spec.rb +3 -1
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/registry_spec.rb +0 -10
- 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 +7 -1
- data/spec/spec_helper.rb +3 -4
- data/spec/unit/agent_spec.rb +8 -8
- data/spec/unit/application/agent_spec.rb +0 -1
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/facts_spec.rb +35 -0
- data/spec/unit/application/filebucket_spec.rb +41 -41
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/application_spec.rb +51 -9
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +8 -2
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +26 -32
- data/spec/unit/environments_spec.rb +96 -22
- data/spec/unit/face/config_spec.rb +27 -32
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +14 -13
- 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 -19
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/forge/module_release_spec.rb +2 -7
- 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 +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 +49 -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 +1 -2
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +104 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- 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 +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- 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 -101
- 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 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/nameservice_spec.rb +66 -122
- data/spec/unit/provider/package/apt_spec.rb +4 -8
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/provider_spec.rb +6 -20
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -66
- 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 +560 -228
- data/spec/unit/ssl/base_spec.rb +36 -4
- 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 +14 -8
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- 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 +57 -82
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -2
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +12 -12
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +1 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type_spec.rb +22 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -4
- data/spec/unit/util/execution_spec.rb +15 -40
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- 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 +13 -24
- metadata +66 -226
- 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/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/application/config_spec.rb +0 -74
- 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/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- 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/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 -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
data/lib/puppet/environments.rb
CHANGED
@@ -346,12 +346,6 @@ module Puppet::Environments
|
|
346
346
|
@loader = loader
|
347
347
|
@cache_expiration_service = Puppet::Environments::Cached.cache_expiration_service
|
348
348
|
@cache = {}
|
349
|
-
|
350
|
-
# Holds expiration times in sorted order - next to expire is first
|
351
|
-
@expirations = SortedSet.new
|
352
|
-
|
353
|
-
# Infinity since it there are no entries, this is a cache of the first to expire time
|
354
|
-
@next_expiration = END_OF_TIME
|
355
349
|
end
|
356
350
|
|
357
351
|
# @!macro loader_list
|
@@ -379,7 +373,6 @@ module Puppet::Environments
|
|
379
373
|
elsif (result = @loader.get(name))
|
380
374
|
# environment loaded, cache it
|
381
375
|
cache_entry = entry(result)
|
382
|
-
@cache_expiration_service.created(result)
|
383
376
|
add_entry(name, cache_entry)
|
384
377
|
result
|
385
378
|
end
|
@@ -389,28 +382,36 @@ module Puppet::Environments
|
|
389
382
|
def add_entry(name, cache_entry)
|
390
383
|
Puppet.debug {"Caching environment '#{name}' #{cache_entry.label}"}
|
391
384
|
@cache[name] = cache_entry
|
392
|
-
|
393
|
-
@expirations.add(expires)
|
394
|
-
if @next_expiration > expires
|
395
|
-
@next_expiration = expires
|
396
|
-
end
|
385
|
+
@cache_expiration_service.created(cache_entry.value)
|
397
386
|
end
|
398
387
|
private :add_entry
|
399
388
|
|
389
|
+
def clear_entry(name, entry)
|
390
|
+
@cache.delete(name)
|
391
|
+
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
392
|
+
@cache_expiration_service.evicted(name.to_sym)
|
393
|
+
Puppet::GettextConfig.delete_text_domain(name)
|
394
|
+
Puppet.settings.clear_environment_settings(name)
|
395
|
+
end
|
396
|
+
private :clear_entry
|
397
|
+
|
400
398
|
# Clears the cache of the environment with the given name.
|
401
399
|
# (The intention is that this could be used from a MANUAL cache eviction command (TBD)
|
402
400
|
def clear(name)
|
403
|
-
@cache
|
404
|
-
|
401
|
+
entry = @cache[name]
|
402
|
+
clear_entry(name, entry) if entry
|
405
403
|
end
|
406
404
|
|
407
405
|
# Clears all cached environments.
|
408
406
|
# (The intention is that this could be used from a MANUAL cache eviction command (TBD)
|
409
|
-
def clear_all
|
407
|
+
def clear_all
|
410
408
|
super
|
409
|
+
|
410
|
+
@cache.each_pair do |name, entry|
|
411
|
+
clear_entry(name, entry)
|
412
|
+
end
|
413
|
+
|
411
414
|
@cache = {}
|
412
|
-
@expirations.clear
|
413
|
-
@next_expiration = END_OF_TIME
|
414
415
|
Puppet::GettextConfig.delete_environment_text_domains
|
415
416
|
end
|
416
417
|
|
@@ -419,18 +420,24 @@ module Puppet::Environments
|
|
419
420
|
#
|
420
421
|
def clear_all_expired()
|
421
422
|
t = Time.now
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
426
|
-
@cache_expiration_service.evicted(name.to_sym)
|
427
|
-
clear(name)
|
428
|
-
@expirations.delete(entry.expires)
|
429
|
-
Puppet.settings.clear_environment_settings(name)
|
423
|
+
|
424
|
+
@cache.each_pair do |name, entry|
|
425
|
+
clear_if_expired(name, entry, t)
|
430
426
|
end
|
431
|
-
@next_expiration = @expirations.first || END_OF_TIME
|
432
427
|
end
|
433
428
|
|
429
|
+
# Clear an environment if it is expired, either by exceeding its time to live, or
|
430
|
+
# through an explicit eviction determined by the cache expiration service.
|
431
|
+
#
|
432
|
+
def clear_if_expired(name, entry, t = Time.now)
|
433
|
+
return unless entry
|
434
|
+
|
435
|
+
if entry.expired?(t) || @cache_expiration_service.expired?(name.to_sym)
|
436
|
+
clear_entry(name, entry)
|
437
|
+
end
|
438
|
+
end
|
439
|
+
private :clear_if_expired
|
440
|
+
|
434
441
|
# This implementation evicts the cache, and always gets the current
|
435
442
|
# configuration of the environment
|
436
443
|
#
|
@@ -440,7 +447,7 @@ module Puppet::Environments
|
|
440
447
|
#
|
441
448
|
# @!macro loader_get_conf
|
442
449
|
def get_conf(name)
|
443
|
-
|
450
|
+
clear_if_expired(name, @cache[name])
|
444
451
|
@loader.get_conf(name)
|
445
452
|
end
|
446
453
|
|
@@ -459,22 +466,7 @@ module Puppet::Environments
|
|
459
466
|
when Float::INFINITY
|
460
467
|
Entry.new(env) # Entry that never expires (avoids syscall to get time)
|
461
468
|
else
|
462
|
-
|
463
|
-
MRUEntry.new(env, ttl) # Entry that expires in ttl from when it was last touched
|
464
|
-
else
|
465
|
-
TTLEntry.new(env, ttl) # Entry that expires in ttl from when it was created
|
466
|
-
end
|
467
|
-
end
|
468
|
-
end
|
469
|
-
|
470
|
-
# Evicts the entry if it has expired
|
471
|
-
# Also clears caches in Settings that may prevent the entry from being updated
|
472
|
-
def evict_if_expired(name)
|
473
|
-
if (result = @cache[name]) && (result.expired? || @cache_expiration_service.expired?(name.to_sym))
|
474
|
-
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
475
|
-
@cache_expiration_service.evicted(name.to_sym)
|
476
|
-
clear(name)
|
477
|
-
Puppet.settings.clear_environment_settings(name)
|
469
|
+
MRUEntry.new(env, ttl) # Entry that expires in ttl from when it was last touched
|
478
470
|
end
|
479
471
|
end
|
480
472
|
|
@@ -489,59 +481,32 @@ module Puppet::Environments
|
|
489
481
|
def touch
|
490
482
|
end
|
491
483
|
|
492
|
-
def expired?
|
484
|
+
def expired?(now)
|
493
485
|
false
|
494
486
|
end
|
495
487
|
|
496
488
|
def label
|
497
489
|
""
|
498
490
|
end
|
499
|
-
|
500
|
-
def expires
|
501
|
-
END_OF_TIME
|
502
|
-
end
|
503
491
|
end
|
504
492
|
|
505
493
|
# Always evicting entry
|
506
494
|
class NotCachedEntry < Entry
|
507
|
-
def expired?
|
495
|
+
def expired?(now)
|
508
496
|
true
|
509
497
|
end
|
510
498
|
|
511
499
|
def label
|
512
500
|
"(ttl = 0 sec)"
|
513
501
|
end
|
514
|
-
|
515
|
-
def expires
|
516
|
-
START_OF_TIME
|
517
|
-
end
|
518
502
|
end
|
519
503
|
|
520
|
-
# Policy that expires
|
521
|
-
class
|
504
|
+
# Policy that expires if it hasn't been touched within ttl_seconds
|
505
|
+
class MRUEntry < Entry
|
522
506
|
def initialize(value, ttl_seconds)
|
523
507
|
super(value)
|
524
508
|
@ttl = Time.now + ttl_seconds
|
525
509
|
@ttl_seconds = ttl_seconds
|
526
|
-
end
|
527
|
-
|
528
|
-
def expired?
|
529
|
-
Time.now > @ttl
|
530
|
-
end
|
531
|
-
|
532
|
-
def label
|
533
|
-
"(ttl = #{@ttl_seconds} sec)"
|
534
|
-
end
|
535
|
-
|
536
|
-
def expires
|
537
|
-
@ttl
|
538
|
-
end
|
539
|
-
end
|
540
|
-
|
541
|
-
# Policy that expires if it hasn't been touched within ttl_seconds
|
542
|
-
class MRUEntry < TTLEntry
|
543
|
-
def initialize(value, ttl_seconds)
|
544
|
-
super(value, ttl_seconds)
|
545
510
|
|
546
511
|
touch
|
547
512
|
end
|
@@ -550,8 +515,12 @@ module Puppet::Environments
|
|
550
515
|
@ttl = Time.now + @ttl_seconds
|
551
516
|
end
|
552
517
|
|
518
|
+
def expired?(now)
|
519
|
+
now > @ttl
|
520
|
+
end
|
521
|
+
|
553
522
|
def label
|
554
|
-
"(
|
523
|
+
"(ttl = #{@ttl_seconds} sec)"
|
555
524
|
end
|
556
525
|
end
|
557
526
|
end
|
data/lib/puppet/face/config.rb
CHANGED
@@ -159,6 +159,16 @@ https://puppet.com/docs/puppet/latest/configuration.html#environment
|
|
159
159
|
report_section_and_environment(options[:section], Puppet.settings[:environment])
|
160
160
|
end
|
161
161
|
|
162
|
+
# only validate settings we recognize
|
163
|
+
setting = Puppet.settings.setting(name.to_sym)
|
164
|
+
if setting
|
165
|
+
# set the value, which will call `on_*_and_write` hooks, if any
|
166
|
+
Puppet.settings[setting.name] = value
|
167
|
+
|
168
|
+
# read the value to trigger interpolation and munge validation logic
|
169
|
+
Puppet.settings[setting.name]
|
170
|
+
end
|
171
|
+
|
162
172
|
path = Puppet::FileSystem.pathname(Puppet.settings.which_configuration_file)
|
163
173
|
Puppet::FileSystem.touch(path)
|
164
174
|
Puppet::FileSystem.open(path, nil, 'r+:UTF-8') do |file|
|
data/lib/puppet/face/epp.rb
CHANGED
@@ -440,7 +440,12 @@ Puppet::Face.define(:epp, '0.0.1') do
|
|
440
440
|
|
441
441
|
def render_inline(epp_source, compiler, options)
|
442
442
|
template_args = get_values(compiler, options)
|
443
|
-
Puppet::Pops::Evaluator::EppEvaluator.inline_epp(compiler.topscope, epp_source, template_args)
|
443
|
+
result = Puppet::Pops::Evaluator::EppEvaluator.inline_epp(compiler.topscope, epp_source, template_args)
|
444
|
+
if result.instance_of?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
445
|
+
result.unwrap
|
446
|
+
else
|
447
|
+
result
|
448
|
+
end
|
444
449
|
end
|
445
450
|
|
446
451
|
def render_file(epp_template_name, compiler, options, show_filename, file_nbr)
|
@@ -457,7 +462,12 @@ Puppet::Face.define(:epp, '0.0.1') do
|
|
457
462
|
if template_file.nil? && Puppet::FileSystem.exist?(epp_template_name)
|
458
463
|
epp_template_name = File.expand_path(epp_template_name)
|
459
464
|
end
|
460
|
-
|
465
|
+
result = Puppet::Pops::Evaluator::EppEvaluator.epp(compiler.topscope, epp_template_name, compiler.environment, template_args)
|
466
|
+
if result.instance_of?(Puppet::Pops::Types::PSensitiveType::Sensitive)
|
467
|
+
output << result.unwrap
|
468
|
+
else
|
469
|
+
output << result
|
470
|
+
end
|
461
471
|
rescue Puppet::ParseError => detail
|
462
472
|
Puppet.err("--- #{epp_template_name}") if show_filename
|
463
473
|
raise detail
|
data/lib/puppet/face/facts.rb
CHANGED
@@ -31,7 +31,6 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
31
31
|
|
32
32
|
$ puppet facts find
|
33
33
|
EOT
|
34
|
-
find.default = true
|
35
34
|
|
36
35
|
deactivate_action(:destroy)
|
37
36
|
deactivate_action(:search)
|
@@ -44,16 +43,12 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
44
43
|
EOT
|
45
44
|
returns "Nothing."
|
46
45
|
notes <<-'EOT'
|
47
|
-
This action requires that the
|
46
|
+
This action requires that the Puppet Server's `auth.conf` file
|
48
47
|
allow `PUT` or `save` access to the `/puppet/v3/facts` API endpoint.
|
49
48
|
|
50
49
|
For details on configuring Puppet Server's `auth.conf`, see:
|
51
50
|
|
52
51
|
<https://puppet.com/docs/puppetserver/latest/config_file_auth.html>
|
53
|
-
|
54
|
-
For legacy Rack-based Puppet Masters, see:
|
55
|
-
|
56
|
-
<https://puppet.com/docs/puppet/latest/config_file_auth.html>
|
57
52
|
EOT
|
58
53
|
examples <<-'EOT'
|
59
54
|
Upload facts:
|
@@ -87,4 +82,83 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
87
82
|
nil
|
88
83
|
end
|
89
84
|
end
|
85
|
+
|
86
|
+
action(:show) do
|
87
|
+
summary _("Retrieve current node's facts.")
|
88
|
+
arguments _("[<facts>]")
|
89
|
+
description <<-'EOT'
|
90
|
+
Reads facts from the local system using `facter` terminus.
|
91
|
+
A query can be provided to retrieve just a specific fact or a set of facts.
|
92
|
+
EOT
|
93
|
+
returns "The output of facter with added puppet specific facts."
|
94
|
+
notes <<-'EOT'
|
95
|
+
|
96
|
+
EOT
|
97
|
+
examples <<-'EOT'
|
98
|
+
retrieve facts:
|
99
|
+
|
100
|
+
$ puppet facts show os
|
101
|
+
EOT
|
102
|
+
default true
|
103
|
+
|
104
|
+
option("--config-file " + _("<path>")) do
|
105
|
+
default_to { nil }
|
106
|
+
summary _("The location of the config file for Facter.")
|
107
|
+
end
|
108
|
+
|
109
|
+
option("--custom-dir " + _("<path>")) do
|
110
|
+
default_to { nil }
|
111
|
+
summary _("The path to a directory that contains custom facts.")
|
112
|
+
end
|
113
|
+
|
114
|
+
option("--external-dir " + _("<path>")) do
|
115
|
+
default_to { nil }
|
116
|
+
summary _("The path to a directory that contains external facts.")
|
117
|
+
end
|
118
|
+
|
119
|
+
option("--no-block") do
|
120
|
+
summary _("Disable fact blocking mechanism.")
|
121
|
+
end
|
122
|
+
|
123
|
+
option("--no-cache") do
|
124
|
+
summary _("Disable fact caching mechanism.")
|
125
|
+
end
|
126
|
+
|
127
|
+
option("--show-legacy") do
|
128
|
+
summary _("Show legacy facts when querying all facts.")
|
129
|
+
end
|
130
|
+
|
131
|
+
option("--value-only") do
|
132
|
+
summary _("Show only the value when the action is called with a single query")
|
133
|
+
end
|
134
|
+
|
135
|
+
when_invoked do |*args|
|
136
|
+
options = args.pop
|
137
|
+
|
138
|
+
Puppet.settings.preferred_run_mode = :agent
|
139
|
+
Puppet::Node::Facts.indirection.terminus_class = :facter
|
140
|
+
|
141
|
+
if options[:value_only] && !args.count.eql?(1)
|
142
|
+
options[:value_only] = nil
|
143
|
+
Puppet.warning("Incorrect use of --value-only argument; it can only be used when querying for a single fact!")
|
144
|
+
end
|
145
|
+
|
146
|
+
options[:user_query] = args
|
147
|
+
options[:resolve_options] = true
|
148
|
+
result = Puppet::Node::Facts.indirection.find(Puppet.settings[:certname], options)
|
149
|
+
|
150
|
+
facts = result.values
|
151
|
+
|
152
|
+
if options[:value_only]
|
153
|
+
facts.values.first
|
154
|
+
else
|
155
|
+
facts
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
when_rendering :console do |result|
|
160
|
+
Puppet::Util::Json.dump(result, :pretty => true)
|
161
|
+
end
|
162
|
+
end
|
90
163
|
end
|
164
|
+
|
data/lib/puppet/face/help.rb
CHANGED
@@ -222,7 +222,7 @@ Puppet::Face.define(:help, '0.0.1') do
|
|
222
222
|
#private :horribly_extract_summary_from
|
223
223
|
|
224
224
|
def exclude_from_docs?(appname)
|
225
|
-
%w{face_base indirection_base
|
225
|
+
%w{face_base indirection_base report status}.include? appname
|
226
226
|
end
|
227
227
|
# This should absolutely be a private method, but for some reason it appears
|
228
228
|
# that you can't use the 'private' keyword inside of a Face definition.
|
@@ -47,6 +47,14 @@ Puppet::Face.define(:node, '0.0.1') do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
class LoggerIO
|
50
|
+
def debug(message)
|
51
|
+
Puppet.debug(message)
|
52
|
+
end
|
53
|
+
|
54
|
+
def warn(message)
|
55
|
+
Puppet.warning(message)
|
56
|
+
end
|
57
|
+
|
50
58
|
def err(message)
|
51
59
|
Puppet.err(message) unless message =~ /^\s*Error:\s*/
|
52
60
|
end
|
data/lib/puppet/face/plugin.rb
CHANGED
@@ -41,14 +41,11 @@ Puppet::Face.define(:plugin, '0.0.1') do
|
|
41
41
|
when_invoked do |options|
|
42
42
|
remote_environment_for_plugins = Puppet::Node::Environment.remote(Puppet[:environment])
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
ensure
|
50
|
-
pool.close
|
51
|
-
end
|
44
|
+
begin
|
45
|
+
handler = Puppet::Configurer::PluginHandler.new
|
46
|
+
handler.download_plugins(remote_environment_for_plugins)
|
47
|
+
ensure
|
48
|
+
Puppet.runtime[:http].close
|
52
49
|
end
|
53
50
|
end
|
54
51
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'puppet/ffi/posix'
|
2
|
+
|
3
|
+
module Puppet::FFI::POSIX
|
4
|
+
module Constants
|
5
|
+
extend FFI::Library
|
6
|
+
|
7
|
+
# Maximum number of supplementary groups (groups
|
8
|
+
# that a user can be in plus its primary group)
|
9
|
+
# (64 + 1 primary group)
|
10
|
+
# Chosen a reasonable middle number from the list
|
11
|
+
# https://www.j3e.de/ngroups.html
|
12
|
+
MAXIMUM_NUMBER_OF_GROUPS = 65
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'puppet/ffi/posix'
|
2
|
+
|
3
|
+
module Puppet::FFI::POSIX
|
4
|
+
module Functions
|
5
|
+
|
6
|
+
extend FFI::Library
|
7
|
+
|
8
|
+
ffi_convention :stdcall
|
9
|
+
|
10
|
+
# https://man7.org/linux/man-pages/man3/getgrouplist.3.html
|
11
|
+
# int getgrouplist (
|
12
|
+
# const char *user,
|
13
|
+
# gid_t group,
|
14
|
+
# gid_t *groups,
|
15
|
+
# int *ngroups
|
16
|
+
# );
|
17
|
+
begin
|
18
|
+
ffi_lib FFI::Library::LIBC
|
19
|
+
attach_function :getgrouplist, [:string, :uint, :pointer, :pointer], :int
|
20
|
+
rescue FFI::NotFoundError
|
21
|
+
# Do nothing
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|