puppet 6.24.0-x64-mingw32 → 7.0.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +16 -2
- data/CONTRIBUTING.md +5 -5
- data/Gemfile +1 -3
- data/Gemfile.lock +35 -47
- data/README.md +5 -5
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/osx/puppet.plist +0 -2
- data/ext/project_data.yaml +1 -15
- 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 +14 -23
- data/lib/puppet/application.rb +178 -108
- data/lib/puppet/application/agent.rb +4 -12
- data/lib/puppet/application/apply.rb +2 -4
- data/lib/puppet/application/device.rb +100 -106
- data/lib/puppet/application/filebucket.rb +13 -10
- data/lib/puppet/application/resource.rb +3 -17
- data/lib/puppet/application/script.rb +0 -2
- data/lib/puppet/application/ssl.rb +1 -13
- data/lib/puppet/application_support.rb +0 -7
- data/lib/puppet/configurer.rb +30 -45
- data/lib/puppet/configurer/downloader.rb +1 -2
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +100 -192
- data/lib/puppet/environments.rb +60 -84
- data/lib/puppet/face/facts.rb +5 -103
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/node/clean.rb +0 -11
- 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 +3 -32
- data/lib/puppet/file_serving/fileset.rb +2 -14
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +1 -1
- data/lib/puppet/file_system/memory_file.rb +1 -8
- data/lib/puppet/file_system/windows.rb +2 -4
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/functions/all.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +2 -2
- data/lib/puppet/functions/downcase.rb +2 -2
- data/lib/puppet/functions/empty.rb +0 -8
- data/lib/puppet/functions/get.rb +5 -5
- data/lib/puppet/functions/group_by.rb +5 -13
- data/lib/puppet/functions/lest.rb +1 -1
- data/lib/puppet/functions/new.rb +100 -100
- data/lib/puppet/functions/partition.rb +4 -12
- data/lib/puppet/functions/require.rb +5 -5
- data/lib/puppet/functions/sort.rb +3 -3
- data/lib/puppet/functions/strftime.rb +0 -1
- data/lib/puppet/functions/tree_each.rb +9 -7
- data/lib/puppet/functions/type.rb +4 -4
- data/lib/puppet/functions/unwrap.rb +2 -17
- data/lib/puppet/functions/upcase.rb +2 -2
- 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 -15
- 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 +10 -25
- 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 -138
- data/lib/puppet/http/service/file_server.rb +19 -29
- 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/compiler.rb +0 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- 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 -10
- 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/resource/ral.rb +1 -6
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/interface/documentation.rb +0 -1
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/module_tool/applications/installer.rb +2 -52
- data/lib/puppet/module_tool/errors/shared.rb +2 -34
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +0 -67
- 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/leaf.rb +2 -3
- 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/functions/fqdn_rand.rb +6 -14
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
- 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/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/p_sem_ver_type.rb +2 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- 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/property/list.rb +1 -1
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/exec/posix.rb +4 -16
- data/lib/puppet/provider/group/groupadd.rb +8 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +2 -34
- data/lib/puppet/provider/package/aptitude.rb +0 -6
- data/lib/puppet/provider/package/dnfmodule.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/nim.rb +6 -11
- data/lib/puppet/provider/package/pip.rb +3 -16
- 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/parsedfile.rb +0 -3
- data/lib/puppet/provider/service/debian.rb +0 -2
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/service/systemd.rb +4 -14
- data/lib/puppet/provider/service/windows.rb +0 -38
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +10 -33
- data/lib/puppet/provider/user/useradd.rb +8 -62
- data/lib/puppet/reference/configuration.rb +8 -7
- 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 +80 -96
- data/lib/puppet/settings/environment_conf.rb +0 -1
- 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/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/exec.rb +3 -16
- data/lib/puppet/type/file.rb +6 -26
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/mode.rb +0 -6
- data/lib/puppet/type/file/selcontext.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 +8 -16
- data/lib/puppet/type/service.rb +38 -18
- data/lib/puppet/type/tidy.rb +3 -22
- data/lib/puppet/type/user.rb +20 -38
- data/lib/puppet/util/autoload.rb +8 -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 -53
- data/lib/puppet/util/posix.rb +5 -54
- 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/selinux.rb +4 -30
- data/lib/puppet/util/symbolic_file_mode.rb +17 -29
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/windows/adsi.rb +0 -46
- 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/principal.rb +2 -9
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/sid.rb +2 -6
- 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 +722 -1527
- data/man/man5/puppet.conf.5 +266 -354
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +9 -9
- 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 +8 -51
- data/man/man8/puppet-filebucket.8 +4 -4
- 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 +5 -5
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +5 -5
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -5
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
- data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
- data/spec/fixtures/ssl/ca.pem +35 -57
- data/spec/fixtures/ssl/crl.pem +18 -28
- data/spec/fixtures/ssl/ec-key.pem +11 -11
- data/spec/fixtures/ssl/ec.pem +24 -33
- data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
- data/spec/fixtures/ssl/encrypted-key.pem +58 -108
- data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
- data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
- data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
- data/spec/fixtures/ssl/intermediate.pem +36 -57
- data/spec/fixtures/ssl/pluto-key.pem +57 -107
- data/spec/fixtures/ssl/pluto.pem +30 -52
- data/spec/fixtures/ssl/request-key.pem +57 -107
- data/spec/fixtures/ssl/request.pem +26 -47
- data/spec/fixtures/ssl/revoked-key.pem +57 -107
- data/spec/fixtures/ssl/revoked.pem +30 -52
- data/spec/fixtures/ssl/signed-key.pem +57 -107
- data/spec/fixtures/ssl/signed.pem +30 -52
- data/spec/fixtures/ssl/tampered-cert.pem +30 -52
- data/spec/fixtures/ssl/tampered-csr.pem +26 -47
- data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
- data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
- data/spec/fixtures/ssl/unknown-ca.pem +33 -55
- 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 +0 -4
- data/spec/integration/application/agent_spec.rb +27 -171
- data/spec/integration/application/apply_spec.rb +1 -20
- data/spec/integration/application/filebucket_spec.rb +16 -27
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/module_spec.rb +0 -21
- data/spec/integration/application/plugin_spec.rb +24 -2
- data/spec/integration/defaults_spec.rb +14 -3
- data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
- data/spec/integration/http/client_spec.rb +0 -12
- data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
- data/spec/integration/indirector/facts/facter_spec.rb +36 -90
- 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 +6 -2
- data/spec/integration/transaction_spec.rb +9 -4
- data/spec/integration/type/exec_spec.rb +45 -70
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/adsi_spec.rb +1 -21
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/principal_spec.rb +0 -21
- data/spec/integration/util/windows/registry_spec.rb +10 -6
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/puppet/test_ca.rb +2 -7
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -1
- data/spec/spec_helper.rb +7 -12
- data/spec/unit/agent_spec.rb +6 -10
- data/spec/unit/application/agent_spec.rb +3 -7
- data/spec/unit/application/facts_spec.rb +12 -456
- data/spec/unit/application/filebucket_spec.rb +43 -39
- data/spec/unit/application/ssl_spec.rb +2 -25
- data/spec/unit/application_spec.rb +9 -51
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -8
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -32
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +2 -8
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +68 -54
- data/spec/unit/environments_spec.rb +68 -259
- data/spec/unit/face/node_spec.rb +11 -0
- 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 +15 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/fileset_spec.rb +0 -60
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
- data/spec/unit/file_system_spec.rb +0 -15
- data/spec/unit/forge/module_release_spec.rb +7 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- 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/empty_spec.rb +0 -10
- data/spec/unit/functions/unwrap_spec.rb +0 -8
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +2 -2
- data/spec/unit/gettext/config_spec.rb +0 -12
- 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 -30
- 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 -185
- 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/catalog/compiler_spec.rb +10 -14
- data/spec/unit/indirector/face_spec.rb +1 -0
- data/spec/unit/indirector/facts/facter_spec.rb +3 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
- 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 +12 -8
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/resource/ral_spec.rb +75 -40
- 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 +0 -78
- 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 +4 -45
- data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -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/compiler_spec.rb +19 -3
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
- data/spec/unit/parser/resource_spec.rb +8 -14
- data/spec/unit/parser/templatewrapper_spec.rb +5 -16
- 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/p_sem_ver_type_spec.rb +0 -18
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
- 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 +0 -1
- data/spec/unit/provider/group/groupadd_spec.rb +2 -5
- data/spec/unit/provider/nameservice_spec.rb +64 -122
- data/spec/unit/provider/package/apt_spec.rb +23 -28
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +5 -6
- data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
- 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/nim_spec.rb +0 -42
- data/spec/unit/provider/package/pacman_spec.rb +12 -18
- data/spec/unit/provider/package/pip_spec.rb +11 -43
- data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/parsedfile_spec.rb +0 -10
- data/spec/unit/provider/service/init_spec.rb +0 -1
- data/spec/unit/provider/service/openwrt_spec.rb +1 -3
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/systemd_spec.rb +8 -53
- data/spec/unit/provider/service/windows_spec.rb +0 -203
- data/spec/unit/provider/user/aix_spec.rb +0 -5
- data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +3 -71
- data/spec/unit/provider_spec.rb +8 -18
- data/spec/unit/resource/catalog_spec.rb +1 -1
- 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 +10 -67
- 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 +79 -110
- data/spec/unit/ssl/base_spec.rb +37 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
- data/spec/unit/ssl/state_machine_spec.rb +5 -20
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
- data/spec/unit/transaction/event_manager_spec.rb +11 -14
- 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 +55 -96
- data/spec/unit/type/exec_spec.rb +29 -76
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +2 -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/selinux_spec.rb +5 -3
- data/spec/unit/type/file/source_spec.rb +4 -5
- data/spec/unit/type/file_spec.rb +18 -6
- data/spec/unit/type/group_spec.rb +6 -13
- 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 +189 -60
- data/spec/unit/type/tidy_spec.rb +8 -24
- data/spec/unit/type/user_spec.rb +0 -45
- 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 +1 -5
- data/spec/unit/util/backups_spec.rb +2 -3
- data/spec/unit/util/execution_spec.rb +11 -44
- data/spec/unit/util/inifile_spec.rb +14 -6
- data/spec/unit/util/log_spec.rb +7 -8
- 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 +15 -363
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/selinux_spec.rb +68 -163
- data/spec/unit/util/storage_spec.rb +1 -3
- data/spec/unit/util/suidmanager_spec.rb +41 -44
- data/spec/unit/util/windows/sid_spec.rb +0 -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 +6 -31
- data/tasks/generate_cert_fixtures.rake +3 -12
- metadata +45 -253
- 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/ffi/posix.rb +0 -10
- data/lib/puppet/ffi/posix/constants.rb +0 -14
- data/lib/puppet/ffi/posix/functions.rb +0 -24
- 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/settings/alias_setting.rb +0 -37
- 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 -81
- 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/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
- data/spec/fixtures/ssl/oid-key.pem +0 -117
- data/spec/fixtures/ssl/oid.pem +0 -69
- data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
- data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
- data/spec/integration/application/resource_spec.rb +0 -64
- data/spec/integration/application/ssl_spec.rb +0 -20
- 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/evaluator/deferred_resolver_spec.rb +0 -20
- 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
data/lib/puppet/environments.rb
CHANGED
@@ -225,9 +225,6 @@ module Puppet::Environments
|
|
225
225
|
private
|
226
226
|
|
227
227
|
def create_environment(name)
|
228
|
-
# interpolated modulepaths may be cached from prior environment instances
|
229
|
-
Puppet.settings.clear_environment_settings(name)
|
230
|
-
|
231
228
|
env_symbol = name.intern
|
232
229
|
setting_values = Puppet.settings.values(env_symbol, Puppet.settings.preferred_run_mode)
|
233
230
|
env = Puppet::Node::Environment.create(
|
@@ -349,33 +346,17 @@ module Puppet::Environments
|
|
349
346
|
@loader = loader
|
350
347
|
@cache_expiration_service = Puppet::Environments::Cached.cache_expiration_service
|
351
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
|
352
355
|
end
|
353
356
|
|
354
357
|
# @!macro loader_list
|
355
358
|
def list
|
356
|
-
|
357
|
-
clear_all_expired
|
358
|
-
|
359
|
-
# Evict all that was removed from diks
|
360
|
-
cached_envs = @cache.keys.map!(&:to_sym)
|
361
|
-
loader_envs = @loader.list.map!(&:name)
|
362
|
-
removed_envs = cached_envs - loader_envs
|
363
|
-
|
364
|
-
removed_envs.each do |env_name|
|
365
|
-
Puppet.debug { "Environment no longer exists '#{env_name}'"}
|
366
|
-
clear(env_name)
|
367
|
-
end
|
368
|
-
|
369
|
-
@loader.list.map do |env|
|
370
|
-
name = env.name
|
371
|
-
old_entry = @cache[name]
|
372
|
-
if old_entry
|
373
|
-
old_entry.value
|
374
|
-
else
|
375
|
-
add_entry(name, entry(env))
|
376
|
-
env
|
377
|
-
end
|
378
|
-
end
|
359
|
+
@loader.list
|
379
360
|
end
|
380
361
|
|
381
362
|
# @!macro loader_search_paths
|
@@ -398,6 +379,7 @@ module Puppet::Environments
|
|
398
379
|
elsif (result = @loader.get(name))
|
399
380
|
# environment loaded, cache it
|
400
381
|
cache_entry = entry(result)
|
382
|
+
@cache_expiration_service.created(result)
|
401
383
|
add_entry(name, cache_entry)
|
402
384
|
result
|
403
385
|
end
|
@@ -407,36 +389,28 @@ module Puppet::Environments
|
|
407
389
|
def add_entry(name, cache_entry)
|
408
390
|
Puppet.debug {"Caching environment '#{name}' #{cache_entry.label}"}
|
409
391
|
@cache[name] = cache_entry
|
410
|
-
|
392
|
+
expires = cache_entry.expires
|
393
|
+
@expirations.add(expires)
|
394
|
+
if @next_expiration > expires
|
395
|
+
@next_expiration = expires
|
396
|
+
end
|
411
397
|
end
|
412
398
|
private :add_entry
|
413
399
|
|
414
|
-
def clear_entry(name, entry)
|
415
|
-
@cache.delete(name)
|
416
|
-
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
417
|
-
@cache_expiration_service.evicted(name.to_sym)
|
418
|
-
Puppet::GettextConfig.delete_text_domain(name)
|
419
|
-
Puppet.settings.clear_environment_settings(name)
|
420
|
-
end
|
421
|
-
private :clear_entry
|
422
|
-
|
423
400
|
# Clears the cache of the environment with the given name.
|
424
401
|
# (The intention is that this could be used from a MANUAL cache eviction command (TBD)
|
425
402
|
def clear(name)
|
426
|
-
|
427
|
-
|
403
|
+
@cache.delete(name)
|
404
|
+
Puppet::GettextConfig.delete_text_domain(name)
|
428
405
|
end
|
429
406
|
|
430
407
|
# Clears all cached environments.
|
431
408
|
# (The intention is that this could be used from a MANUAL cache eviction command (TBD)
|
432
|
-
def clear_all
|
409
|
+
def clear_all()
|
433
410
|
super
|
434
|
-
|
435
|
-
@cache.each_pair do |name, entry|
|
436
|
-
clear_entry(name, entry)
|
437
|
-
end
|
438
|
-
|
439
411
|
@cache = {}
|
412
|
+
@expirations.clear
|
413
|
+
@next_expiration = END_OF_TIME
|
440
414
|
Puppet::GettextConfig.delete_environment_text_domains
|
441
415
|
end
|
442
416
|
|
@@ -445,24 +419,18 @@ module Puppet::Environments
|
|
445
419
|
#
|
446
420
|
def clear_all_expired()
|
447
421
|
t = Time.now
|
448
|
-
|
449
|
-
@cache.
|
450
|
-
|
422
|
+
return if t < @next_expiration && ! @cache.any? {|name, _| @cache_expiration_service.expired?(name.to_sym) }
|
423
|
+
to_expire = @cache.select { |name, entry| entry.expires < t || @cache_expiration_service.expired?(name.to_sym) }
|
424
|
+
to_expire.each do |name, entry|
|
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)
|
451
430
|
end
|
431
|
+
@next_expiration = @expirations.first || END_OF_TIME
|
452
432
|
end
|
453
433
|
|
454
|
-
# Clear an environment if it is expired, either by exceeding its time to live, or
|
455
|
-
# through an explicit eviction determined by the cache expiration service.
|
456
|
-
#
|
457
|
-
def clear_if_expired(name, entry, t = Time.now)
|
458
|
-
return unless entry
|
459
|
-
|
460
|
-
if entry.expired?(t) || @cache_expiration_service.expired?(name.to_sym)
|
461
|
-
clear_entry(name, entry)
|
462
|
-
end
|
463
|
-
end
|
464
|
-
private :clear_if_expired
|
465
|
-
|
466
434
|
# This implementation evicts the cache, and always gets the current
|
467
435
|
# configuration of the environment
|
468
436
|
#
|
@@ -472,7 +440,7 @@ module Puppet::Environments
|
|
472
440
|
#
|
473
441
|
# @!macro loader_get_conf
|
474
442
|
def get_conf(name)
|
475
|
-
|
443
|
+
evict_if_expired(name)
|
476
444
|
@loader.get_conf(name)
|
477
445
|
end
|
478
446
|
|
@@ -491,11 +459,18 @@ module Puppet::Environments
|
|
491
459
|
when Float::INFINITY
|
492
460
|
Entry.new(env) # Entry that never expires (avoids syscall to get time)
|
493
461
|
else
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
462
|
+
MRUEntry.new(env, ttl) # Entry that expires in ttl from when it was last touched
|
463
|
+
end
|
464
|
+
end
|
465
|
+
|
466
|
+
# Evicts the entry if it has expired
|
467
|
+
# Also clears caches in Settings that may prevent the entry from being updated
|
468
|
+
def evict_if_expired(name)
|
469
|
+
if (result = @cache[name]) && (result.expired? || @cache_expiration_service.expired?(name.to_sym))
|
470
|
+
Puppet.debug {"Evicting cache entry for environment '#{name}'"}
|
471
|
+
@cache_expiration_service.evicted(name.to_sym)
|
472
|
+
clear(name)
|
473
|
+
Puppet.settings.clear_environment_settings(name)
|
499
474
|
end
|
500
475
|
end
|
501
476
|
|
@@ -510,57 +485,58 @@ module Puppet::Environments
|
|
510
485
|
def touch
|
511
486
|
end
|
512
487
|
|
513
|
-
def expired?
|
488
|
+
def expired?
|
514
489
|
false
|
515
490
|
end
|
516
491
|
|
517
492
|
def label
|
518
493
|
""
|
519
494
|
end
|
495
|
+
|
496
|
+
def expires
|
497
|
+
END_OF_TIME
|
498
|
+
end
|
520
499
|
end
|
521
500
|
|
522
501
|
# Always evicting entry
|
523
502
|
class NotCachedEntry < Entry
|
524
|
-
def expired?
|
503
|
+
def expired?
|
525
504
|
true
|
526
505
|
end
|
527
506
|
|
528
507
|
def label
|
529
508
|
"(ttl = 0 sec)"
|
530
509
|
end
|
510
|
+
|
511
|
+
def expires
|
512
|
+
START_OF_TIME
|
513
|
+
end
|
531
514
|
end
|
532
515
|
|
533
|
-
# Policy that expires
|
534
|
-
class
|
516
|
+
# Policy that expires if it hasn't been touched within ttl_seconds
|
517
|
+
class MRUEntry < Entry
|
535
518
|
def initialize(value, ttl_seconds)
|
536
519
|
super(value)
|
537
520
|
@ttl = Time.now + ttl_seconds
|
538
521
|
@ttl_seconds = ttl_seconds
|
539
|
-
end
|
540
522
|
|
541
|
-
|
542
|
-
now > @ttl
|
523
|
+
touch
|
543
524
|
end
|
544
525
|
|
545
|
-
def
|
546
|
-
|
526
|
+
def touch
|
527
|
+
@ttl = Time.now + @ttl_seconds
|
547
528
|
end
|
548
|
-
end
|
549
|
-
|
550
|
-
# Policy that expires if it hasn't been touched within ttl_seconds
|
551
|
-
class MRUEntry < TTLEntry
|
552
|
-
def initialize(value, ttl_seconds)
|
553
|
-
super(value, ttl_seconds)
|
554
529
|
|
555
|
-
|
530
|
+
def expired?
|
531
|
+
Time.now > @ttl
|
556
532
|
end
|
557
533
|
|
558
|
-
def
|
559
|
-
@ttl
|
534
|
+
def expires
|
535
|
+
@ttl
|
560
536
|
end
|
561
537
|
|
562
538
|
def label
|
563
|
-
"(
|
539
|
+
"(ttl = #{@ttl_seconds} sec)"
|
564
540
|
end
|
565
541
|
end
|
566
542
|
end
|
data/lib/puppet/face/facts.rb
CHANGED
@@ -1,21 +1,5 @@
|
|
1
1
|
require 'puppet/indirector/face'
|
2
2
|
require 'puppet/node/facts'
|
3
|
-
require 'puppet/util/fact_dif'
|
4
|
-
|
5
|
-
EXCLUDE_LIST = %w[ ^facterversion$
|
6
|
-
^load_averages\..*$
|
7
|
-
^processors\.speed$
|
8
|
-
^swapfree$ ^swapfree_mb$
|
9
|
-
^memoryfree$ ^memoryfree_mb$
|
10
|
-
^memory\.swap\.available_bytes$ ^memory\.swap\.used_bytes$
|
11
|
-
^memory\.swap\.available$ ^memory\.swap\.capacity$ ^memory\.swap\.used$
|
12
|
-
^memory\.system\.available_bytes$ ^memory\.system\.used_bytes$
|
13
|
-
^memory\.system\.available$ ^memory\.system\.capacity$ ^memory\.system\.used$
|
14
|
-
^mountpoints\..*\.available.*$ ^mountpoints\..*\.capacity$ ^mountpoints\..*\.used.*$
|
15
|
-
^sp_uptime$ ^system_profiler\.uptime$
|
16
|
-
^uptime$ ^uptime_days$ ^uptime_hours$ ^uptime_seconds$
|
17
|
-
^system_uptime\.uptime$ ^system_uptime\.days$ ^system_uptime\.hours$ ^system_uptime\.seconds$
|
18
|
-
]
|
19
3
|
|
20
4
|
Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
21
5
|
copyright "Puppet Inc.", 2011
|
@@ -47,7 +31,6 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
47
31
|
|
48
32
|
$ puppet facts find
|
49
33
|
EOT
|
50
|
-
find.default = true
|
51
34
|
|
52
35
|
deactivate_action(:destroy)
|
53
36
|
deactivate_action(:search)
|
@@ -60,16 +43,12 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
60
43
|
EOT
|
61
44
|
returns "Nothing."
|
62
45
|
notes <<-'EOT'
|
63
|
-
This action requires that the
|
46
|
+
This action requires that the Puppet Server's `auth.conf` file
|
64
47
|
allow `PUT` or `save` access to the `/puppet/v3/facts` API endpoint.
|
65
48
|
|
66
49
|
For details on configuring Puppet Server's `auth.conf`, see:
|
67
50
|
|
68
51
|
<https://puppet.com/docs/puppetserver/latest/config_file_auth.html>
|
69
|
-
|
70
|
-
For legacy Rack-based Puppet Masters, see:
|
71
|
-
|
72
|
-
<https://puppet.com/docs/puppet/latest/config_file_auth.html>
|
73
52
|
EOT
|
74
53
|
examples <<-'EOT'
|
75
54
|
Upload facts:
|
@@ -104,65 +83,6 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
104
83
|
end
|
105
84
|
end
|
106
85
|
|
107
|
-
action(:diff) do
|
108
|
-
summary _("Compare Facter 3 output with Facter 4 output")
|
109
|
-
description <<-'EOT'
|
110
|
-
Compares output from facter 3 with Facter 4 and prints the differences
|
111
|
-
EOT
|
112
|
-
returns "Differences between Facter 3 and Facter 4 output as an array."
|
113
|
-
notes <<-'EOT'
|
114
|
-
EOT
|
115
|
-
examples <<-'EOT'
|
116
|
-
get differences between facter versions:
|
117
|
-
$ puppet facts diff
|
118
|
-
EOT
|
119
|
-
|
120
|
-
option("--structured") do
|
121
|
-
default_to { false }
|
122
|
-
summary _("Render the different facts as structured.")
|
123
|
-
end
|
124
|
-
|
125
|
-
option("--exclude " + _("<regex>")) do
|
126
|
-
summary _("Regex used to exclude specific facts from diff.")
|
127
|
-
end
|
128
|
-
|
129
|
-
when_invoked do |*args|
|
130
|
-
options = args.pop
|
131
|
-
|
132
|
-
Puppet.settings.preferred_run_mode = :agent
|
133
|
-
Puppet::Node::Facts.indirection.terminus_class = :facter
|
134
|
-
|
135
|
-
if Puppet::Util::Package.versioncmp(Facter.value('facterversion'), '4.0.0') < 0
|
136
|
-
cmd_flags = '--render-as json --show-legacy'
|
137
|
-
|
138
|
-
# puppet/ruby are in PATH since it was updated in the wrapper script
|
139
|
-
puppet_show_cmd = "puppet facts show"
|
140
|
-
if Puppet::Util::Platform.windows?
|
141
|
-
puppet_show_cmd = "ruby -S -- #{puppet_show_cmd}"
|
142
|
-
end
|
143
|
-
|
144
|
-
facter_3_result = Puppet::Util::Execution.execute("#{puppet_show_cmd} --no-facterng #{cmd_flags}", combine: false)
|
145
|
-
facter_ng_result = Puppet::Util::Execution.execute("#{puppet_show_cmd} --facterng #{cmd_flags}", combine: false)
|
146
|
-
|
147
|
-
exclude_list = options[:exclude].nil? ? EXCLUDE_LIST : EXCLUDE_LIST + [ options[:exclude] ]
|
148
|
-
fact_diff = FactDif.new(facter_3_result, facter_ng_result, exclude_list, options[:structured])
|
149
|
-
fact_diff.difs
|
150
|
-
else
|
151
|
-
Puppet.warning _("Already using Facter 4. To use `puppet facts diff` remove facterng from the .conf file or run `puppet config set facterng false`.")
|
152
|
-
exit 0
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
when_rendering :console do |result|
|
157
|
-
case result
|
158
|
-
when Array, Hash
|
159
|
-
Puppet::Util::Json.dump(result, :pretty => true)
|
160
|
-
else
|
161
|
-
result
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
86
|
action(:show) do
|
167
87
|
summary _("Retrieve current node's facts.")
|
168
88
|
arguments _("[<facts>]")
|
@@ -179,6 +99,7 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
179
99
|
|
180
100
|
$ puppet facts show os
|
181
101
|
EOT
|
102
|
+
default true
|
182
103
|
|
183
104
|
option("--config-file " + _("<path>")) do
|
184
105
|
default_to { nil }
|
@@ -207,42 +128,23 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
|
|
207
128
|
summary _("Show legacy facts when querying all facts.")
|
208
129
|
end
|
209
130
|
|
210
|
-
option("--value-only") do
|
211
|
-
summary _("Show only the value when the action is called with a single query")
|
212
|
-
end
|
213
|
-
|
214
131
|
when_invoked do |*args|
|
215
132
|
options = args.pop
|
216
133
|
|
217
134
|
Puppet.settings.preferred_run_mode = :agent
|
218
135
|
Puppet::Node::Facts.indirection.terminus_class = :facter
|
219
136
|
|
220
|
-
if options[:value_only] && !args.count.eql?(1)
|
221
|
-
options[:value_only] = nil
|
222
|
-
Puppet.warning("Incorrect use of --value-only argument; it can only be used when querying for a single fact!")
|
223
|
-
end
|
224
137
|
|
225
138
|
options[:user_query] = args
|
226
139
|
options[:resolve_options] = true
|
227
140
|
result = Puppet::Node::Facts.indirection.find(Puppet.settings[:certname], options)
|
228
141
|
|
229
|
-
|
230
|
-
result.values.values.first
|
231
|
-
else
|
232
|
-
result.values
|
233
|
-
end
|
142
|
+
result.values
|
234
143
|
end
|
235
144
|
|
236
145
|
when_rendering :console do |result|
|
237
|
-
|
238
|
-
# from https://github.com/puppetlabs/facter/blob/4.0.49/lib/facter/custom_facts/util/normalization.rb#L8
|
239
|
-
|
240
|
-
case result
|
241
|
-
when Array, Hash
|
242
|
-
Puppet::Util::Json.dump(result, :pretty => true)
|
243
|
-
else # one of VALID_TYPES above
|
244
|
-
result
|
245
|
-
end
|
146
|
+
Puppet::Util::Json.dump(result, :pretty => true)
|
246
147
|
end
|
247
148
|
end
|
248
149
|
end
|
150
|
+
|
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.
|
@@ -54,7 +54,6 @@ undocumented option
|
|
54
54
|
end
|
55
55
|
unless action.options.empty?
|
56
56
|
action.options.sort.each do |name|
|
57
|
-
next if name == :extra
|
58
57
|
option = action.get_option name -%>
|
59
58
|
<%= " " + option.optparse.join(" | ")[0,(optionroom - 1)].ljust(optionroom) + ' - ' -%>
|
60
59
|
<% if !(option.summary) -%>
|
@@ -49,7 +49,6 @@ undocumented option
|
|
49
49
|
end
|
50
50
|
unless face.options.empty?
|
51
51
|
face.options.sort.each do |name|
|
52
|
-
next if name == :extra
|
53
52
|
option = face.get_option name -%>
|
54
53
|
<%= " " + option.optparse.join(" | ")[0,(optionroom - 1)].ljust(optionroom) + ' - ' -%>
|
55
54
|
<% if !(option.summary) -%>
|
@@ -47,17 +47,6 @@ 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
|
-
# Notice: For Puppet 6.x, the function below does not matter as it
|
55
|
-
# does not have any functionality. But we decided to keep it here
|
56
|
-
# for the ease of merge up to 7.x and having the same code base.
|
57
|
-
def warn(message)
|
58
|
-
Puppet.warning(message) unless message =~ /cadir is currently configured to be inside/
|
59
|
-
end
|
60
|
-
|
61
50
|
def err(message)
|
62
51
|
Puppet.err(message) unless message =~ /^\s*Error:\s*/
|
63
52
|
end
|