puppet 6.17.0-x86-mingw32 → 7.1.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 +32 -30
- data/README.md +2 -3
- data/Rakefile +4 -12
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +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/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/agent.rb +8 -3
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +46 -19
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/confine.rb +1 -1
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/defaults.rb +116 -162
- data/lib/puppet/environments.rb +72 -62
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +10 -2
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/feature/base.rb +1 -1
- 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_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_system/file_impl.rb +3 -3
- 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/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +23 -13
- data/lib/puppet/http/client.rb +165 -115
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +10 -23
- data/lib/puppet/http/resolver/server_list.rb +23 -45
- data/lib/puppet/http/resolver/settings.rb +7 -10
- data/lib/puppet/http/resolver/srv.rb +11 -15
- data/lib/puppet/http/response.rb +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 +15 -27
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +23 -70
- data/lib/puppet/http/service/file_server.rb +19 -28
- data/lib/puppet/http/service/puppetserver.rb +53 -0
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +16 -24
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +27 -6
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- 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/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +1 -102
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +93 -14
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/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.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +28 -52
- 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/file/windows.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/apt.rb +34 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -11
- data/lib/puppet/provider/package/gem.rb +27 -5
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +6 -4
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- 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 +5 -120
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +84 -35
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_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 +11 -6
- data/lib/puppet/transaction.rb +3 -9
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +10 -8
- data/lib/puppet/trusted_external.rb +2 -2
- data/lib/puppet/type.rb +4 -79
- data/lib/puppet/type/file.rb +7 -9
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +29 -9
- data/lib/puppet/type/filebucket.rb +4 -4
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/service.rb +4 -0
- data/lib/puppet/type/user.rb +19 -4
- data/lib/puppet/util.rb +26 -12
- data/lib/puppet/util/autoload.rb +9 -7
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/execution.rb +2 -13
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/posix.rb +53 -4
- 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 +14 -2
- data/lib/puppet/util/windows.rb +3 -7
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +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/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/windows/user.rb +219 -0
- 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 +656 -1351
- data/man/man5/puppet.conf.5 +72 -97
- data/man/man8/puppet-agent.8 +6 -3
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-module.8 +1 -58
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +70 -61
- data/spec/integration/application/apply_spec.rb +150 -150
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +78 -29
- data/spec/integration/application/help_spec.rb +44 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +76 -4
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +32 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/node/environment_spec.rb +1 -1
- 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/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +2 -2
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/integration/util/windows/user_spec.rb +7 -0
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +9 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/agent_spec.rb +3 -4
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +74 -8
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +17 -4
- data/spec/unit/application_spec.rb +43 -4
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +14 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +96 -44
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +26 -32
- data/spec/unit/environments_spec.rb +173 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +16 -4
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -9
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +34 -15
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +51 -65
- data/spec/unit/http/service/file_server_spec.rb +5 -6
- data/spec/unit/http/service/puppetserver_spec.rb +112 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +1 -3
- data/spec/unit/http/session_spec.rb +24 -35
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +2 -266
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +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 +51 -22
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +76 -21
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +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/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dpkg_spec.rb +22 -55
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +402 -166
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -6
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +28 -1
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +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 +586 -239
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +2 -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 +1 -2
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +35 -2
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/posix_spec.rb +357 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -127
- data/spec/unit/util/storage_spec.rb +3 -1
- 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 +84 -261
- 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 -295
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -79
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/man_spec.rb +0 -31
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -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/type/file.rb
CHANGED
@@ -83,13 +83,11 @@ Puppet::Type.newtype(:file) do
|
|
83
83
|
use copy the file in the same directory with that value as the extension
|
84
84
|
of the backup. (A value of `true` is a synonym for `.puppet-bak`.)
|
85
85
|
* If set to any other string, Puppet will try to back up to a filebucket
|
86
|
-
with that title.
|
87
|
-
|
88
|
-
|
86
|
+
with that title. Puppet automatically creates a **local** filebucket
|
87
|
+
named `puppet` if one doesn't already exist. See the `filebucket` resource
|
88
|
+
type for more details.
|
89
89
|
|
90
|
-
Default value: `
|
91
|
-
(Puppet automatically creates a **local** filebucket named `puppet` if one
|
92
|
-
doesn't already exist.)
|
90
|
+
Default value: `false`
|
93
91
|
|
94
92
|
Backing up to a local filebucket isn't particularly useful. If you want
|
95
93
|
to make organized use of backups, you will generally want to use the
|
@@ -116,16 +114,16 @@ Puppet::Type.newtype(:file) do
|
|
116
114
|
that sufficient disk space is available for the file backups. Generally, you
|
117
115
|
can implement this using one of the following two options:
|
118
116
|
- Use a `find` command and `crontab` entry to retain only the last X days
|
119
|
-
of file backups. For example
|
117
|
+
of file backups. For example:
|
120
118
|
|
121
|
-
```
|
119
|
+
```
|
122
120
|
find /opt/puppetlabs/server/data/puppetserver/bucket -type f -mtime +45 -atime +45 -print0 | xargs -0 rm
|
123
121
|
```
|
124
122
|
|
125
123
|
- Restrict the directory to a maximum size after which the oldest items are removed.
|
126
124
|
EOT
|
127
125
|
|
128
|
-
defaultto
|
126
|
+
defaultto false
|
129
127
|
|
130
128
|
munge do |value|
|
131
129
|
# I don't really know how this is happening.
|
@@ -7,7 +7,7 @@ Puppet::Type.type(:file).newparam(:checksum) do
|
|
7
7
|
|
8
8
|
desc "The checksum type to use when determining whether to replace a file's contents.
|
9
9
|
|
10
|
-
The default checksum type is
|
10
|
+
The default checksum type is #{Puppet.default_digest_algorithm}."
|
11
11
|
|
12
12
|
newvalues(*Puppet::Util::Checksums.known_checksum_types)
|
13
13
|
|
@@ -23,7 +23,7 @@ module Puppet
|
|
23
23
|
* Fully qualified paths to locally available files (including files on NFS
|
24
24
|
shares or Windows mapped drives).
|
25
25
|
* `file:` URIs, which behave the same as local file paths.
|
26
|
-
* `http:` URIs, which point to files served by common web servers.
|
26
|
+
* `http(s):` URIs, which point to files served by common web servers.
|
27
27
|
|
28
28
|
The normal form of a `puppet:` URI is:
|
29
29
|
|
@@ -44,11 +44,26 @@ module Puppet
|
|
44
44
|
because HTTP servers do not transfer any metadata that translates to
|
45
45
|
ownership or permission details.
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
Puppet determines if file content is synchronized by computing a checksum
|
48
|
+
for the local file and comparing it against the `checksum_value`
|
49
|
+
parameter. If the `checksum_value` parameter is not specified for
|
50
|
+
`puppet` and `file` sources, Puppet computes a checksum based on its
|
51
|
+
`Puppet[:digest_algorithm]`. For `http(s)` sources, Puppet uses the
|
52
|
+
first HTTP header it recognizes out of the following list:
|
53
|
+
`X-Checksum-Sha256`, `X-Checksum-Sha1`, `X-Checksum-Md5` or `Content-MD5`.
|
54
|
+
If the server response does not include one of these headers, Puppet
|
55
|
+
defaults to using the `Last-Modified` header. Puppet updates the local
|
56
|
+
file if the header is newer than the modified time (mtime) of the local
|
57
|
+
file.
|
58
|
+
|
59
|
+
_HTTP_ URIs can include a user information component so that Puppet can
|
60
|
+
retrieve file metadata and content from HTTP servers that require HTTP Basic
|
61
|
+
authentication. For example `https://<user>:<pass>@<server>:<port>/path/to/file.`
|
62
|
+
|
63
|
+
When connecting to _HTTPS_ servers, Puppet trusts CA certificates in the
|
64
|
+
puppet-agent certificate bundle and the Puppet CA. You can configure Puppet
|
65
|
+
to trust additional CA certificates using the `Puppet[:ssl_trust_store]`
|
66
|
+
setting.
|
52
67
|
|
53
68
|
Multiple `source` values can be specified as an array, and Puppet will
|
54
69
|
use the first source that exists. This can be used to serve different
|
@@ -210,7 +225,7 @@ module Puppet
|
|
210
225
|
end
|
211
226
|
|
212
227
|
def port
|
213
|
-
(uri and uri.port) or Puppet.settings[:
|
228
|
+
(uri and uri.port) or Puppet.settings[:serverport]
|
214
229
|
end
|
215
230
|
|
216
231
|
def uri
|
@@ -307,7 +322,12 @@ module Puppet
|
|
307
322
|
|
308
323
|
def chunk_file_from_source(&block)
|
309
324
|
if uri.scheme =~ /^https?/
|
310
|
-
|
325
|
+
# Historically puppet has not encoded the http(s) source URL before parsing
|
326
|
+
# it, for example, if the path contains spaces, then it must be URL encoded
|
327
|
+
# as %20 in the manifest. Puppet behaves the same when retrieving file
|
328
|
+
# metadata via http(s), see Puppet::Indirector::FileMetadata::Http#find.
|
329
|
+
url = URI.parse(metadata.source)
|
330
|
+
get_from_http_source(url, &block)
|
311
331
|
elsif metadata.content_uri
|
312
332
|
content_url = URI.parse(Puppet::Util.uri_encode(metadata.content_uri))
|
313
333
|
get_from_content_uri_source(content_url, &block)
|
@@ -320,7 +340,7 @@ module Puppet
|
|
320
340
|
|
321
341
|
def handle_response_error(response)
|
322
342
|
message = "Error #{response.code} on SERVER: #{response.body.empty? ? response.reason : response.body}"
|
323
|
-
raise Net::HTTPError.new(message, response
|
343
|
+
raise Net::HTTPError.new(message, Puppet::HTTP::ResponseConverter.to_ruby_response(response))
|
324
344
|
end
|
325
345
|
end
|
326
346
|
|
@@ -5,7 +5,7 @@ module Puppet
|
|
5
5
|
@doc = <<-EOT
|
6
6
|
A repository for storing and retrieving file content by MD5 checksum. Can
|
7
7
|
be local to each agent node, or centralized on a puppet master server. All
|
8
|
-
puppet
|
8
|
+
puppet servers provide a filebucket service that agent nodes can access
|
9
9
|
via HTTP, but you must declare a filebucket resource before any agents
|
10
10
|
will do so.
|
11
11
|
|
@@ -30,9 +30,9 @@ module Puppet
|
|
30
30
|
|
31
31
|
File { backup => main, }
|
32
32
|
|
33
|
-
Puppet
|
33
|
+
Puppet Servers automatically provide the filebucket service, so
|
34
34
|
this will work in a default configuration. If you have a heavily
|
35
|
-
restricted `auth.conf` file, you may need to allow access to the
|
35
|
+
restricted Puppet Server `auth.conf` file, you may need to allow access to the
|
36
36
|
`file_bucket_file` endpoint.
|
37
37
|
EOT
|
38
38
|
|
@@ -57,7 +57,7 @@ module Puppet
|
|
57
57
|
This setting is _only_ consulted if the `path` attribute is set to `false`.
|
58
58
|
|
59
59
|
If this attribute is not specified, the first entry in the `server_list`
|
60
|
-
configuration setting is used, followed by the value of the `
|
60
|
+
configuration setting is used, followed by the value of the `serverport`
|
61
61
|
setting if `server_list` is not set."
|
62
62
|
end
|
63
63
|
|
data/lib/puppet/type/notify.rb
CHANGED
@@ -4,12 +4,12 @@
|
|
4
4
|
|
5
5
|
module Puppet
|
6
6
|
Type.newtype(:notify) do
|
7
|
-
@doc = "Sends an arbitrary message to the agent run-time log. It's important to note that the notify resource type is not idempotent. As a result, notifications are shown as a change on every Puppet run."
|
7
|
+
@doc = "Sends an arbitrary message, specified as a string, to the agent run-time log. It's important to note that the notify resource type is not idempotent. As a result, notifications are shown as a change on every Puppet run."
|
8
8
|
|
9
9
|
apply_to_all
|
10
10
|
|
11
11
|
newproperty(:message, :idempotent => false) do
|
12
|
-
desc "The message to be sent to the log."
|
12
|
+
desc "The message to be sent to the log. Note that the value specified must be a string."
|
13
13
|
def sync
|
14
14
|
message = @sensitive ? 'Sensitive [value redacted]' : self.should
|
15
15
|
case @resource["withpath"]
|
data/lib/puppet/type/package.rb
CHANGED
@@ -106,10 +106,6 @@ module Puppet
|
|
106
106
|
provider.purge
|
107
107
|
end
|
108
108
|
|
109
|
-
newvalue(:held, :event => :package_held, :required_features => :holdable) do
|
110
|
-
provider.deprecated_hold
|
111
|
-
end
|
112
|
-
|
113
109
|
newvalue(:disabled, :required_features => :disableable) do
|
114
110
|
provider.disable
|
115
111
|
end
|
@@ -161,7 +157,7 @@ module Puppet
|
|
161
157
|
@should.each { |should|
|
162
158
|
case should
|
163
159
|
when :present
|
164
|
-
return true unless [:absent, :purged, :
|
160
|
+
return true unless [:absent, :purged, :disabled].include?(is)
|
165
161
|
when :latest
|
166
162
|
# Short-circuit packages that are not present
|
167
163
|
return false if is == :absent || is == :purged
|
@@ -657,8 +653,7 @@ module Puppet
|
|
657
653
|
if provider.reinstallable? &&
|
658
654
|
@parameters[:reinstall_on_refresh].value == :true &&
|
659
655
|
@parameters[:ensure].value != :purged &&
|
660
|
-
@parameters[:ensure].value != :absent
|
661
|
-
@parameters[:ensure].value != :held
|
656
|
+
@parameters[:ensure].value != :absent
|
662
657
|
|
663
658
|
provider.reinstall
|
664
659
|
end
|
@@ -673,7 +668,7 @@ module Puppet
|
|
673
668
|
Default is "none". Mark can be specified with or without `ensure`,
|
674
669
|
if `ensure` is missing will default to "present".
|
675
670
|
|
676
|
-
Mark cannot be specified together with "purged",
|
671
|
+
Mark cannot be specified together with "purged", or "absent"
|
677
672
|
values for `ensure`.
|
678
673
|
EOT
|
679
674
|
newvalues(:hold, :none)
|
@@ -710,11 +705,8 @@ module Puppet
|
|
710
705
|
end
|
711
706
|
|
712
707
|
validate do
|
713
|
-
if :
|
714
|
-
|
715
|
-
end
|
716
|
-
if @parameters[:mark] && [:absent, :purged, :held].include?(@parameters[:ensure].should)
|
717
|
-
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged", "held"]')
|
708
|
+
if @parameters[:mark] && [:absent, :purged].include?(@parameters[:ensure].should)
|
709
|
+
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged"]')
|
718
710
|
end
|
719
711
|
end
|
720
712
|
end
|
data/lib/puppet/type/service.rb
CHANGED
@@ -147,6 +147,10 @@ module Puppet
|
|
147
147
|
user_information = Puppet::Util::Windows::SID.name_to_principal(value)
|
148
148
|
raise Puppet::Error.new("\"#{value}\" is not a valid account") unless user_information && [:SidTypeUser, :SidTypeWellKnownGroup].include?(user_information.account_type)
|
149
149
|
|
150
|
+
user_rights = Puppet::Util::Windows::User::get_rights(user_information.domain_account) unless Puppet::Util::Windows::User::default_system_account?(value)
|
151
|
+
raise Puppet::Error.new("\"#{user_information.domain_account}\" has the 'Log On As A Service' right set to denied.") if user_rights =~ /SeDenyServiceLogonRight/
|
152
|
+
raise Puppet::Error.new("\"#{user_information.domain_account}\" is missing the 'Log On As A Service' right.") unless user_rights.nil? || user_rights =~ /SeServiceLogonRight/
|
153
|
+
|
150
154
|
if user_information.domain == Puppet::Util::Windows::ADSI.computer_name
|
151
155
|
".\\#{user_information.account}"
|
152
156
|
else
|
data/lib/puppet/type/user.rb
CHANGED
@@ -40,7 +40,10 @@ module Puppet
|
|
40
40
|
implement PBKDF2 passwords with salt properties."
|
41
41
|
|
42
42
|
feature :manages_solaris_rbac,
|
43
|
-
"The provider can manage
|
43
|
+
"The provider can manage normal users"
|
44
|
+
|
45
|
+
feature :manages_roles,
|
46
|
+
"The provider can manage roles"
|
44
47
|
|
45
48
|
feature :manages_expiry,
|
46
49
|
"The provider can manage the expiry date for a user."
|
@@ -97,6 +100,18 @@ module Puppet
|
|
97
100
|
return :absent
|
98
101
|
end
|
99
102
|
end
|
103
|
+
|
104
|
+
def sync
|
105
|
+
event = super
|
106
|
+
|
107
|
+
property = @resource.property(:roles)
|
108
|
+
if property
|
109
|
+
val = property.retrieve
|
110
|
+
property.sync unless property.safe_insync?(val)
|
111
|
+
end
|
112
|
+
|
113
|
+
event
|
114
|
+
end
|
100
115
|
end
|
101
116
|
|
102
117
|
newproperty(:home) do
|
@@ -450,7 +465,7 @@ module Puppet
|
|
450
465
|
groups = obj.shouldorig if obj
|
451
466
|
if groups
|
452
467
|
groups = groups.collect { |group|
|
453
|
-
if group
|
468
|
+
if group.is_a?(String) && group =~/^\d+$/
|
454
469
|
Integer(group)
|
455
470
|
else
|
456
471
|
group
|
@@ -493,7 +508,7 @@ module Puppet
|
|
493
508
|
provider.exists?
|
494
509
|
end
|
495
510
|
|
496
|
-
newproperty(:roles, :parent => Puppet::Property::List, :required_features => :
|
511
|
+
newproperty(:roles, :parent => Puppet::Property::List, :required_features => :manages_roles) do
|
497
512
|
desc "The roles the user has. Multiple roles should be
|
498
513
|
specified as an array."
|
499
514
|
|
@@ -520,7 +535,7 @@ module Puppet
|
|
520
535
|
end
|
521
536
|
|
522
537
|
reqs
|
523
|
-
end
|
538
|
+
end unless Puppet::Util::Platform.windows?
|
524
539
|
|
525
540
|
newparam(:role_membership) do
|
526
541
|
desc "Whether specified roles should be considered the **complete list**
|
data/lib/puppet/util.rb
CHANGED
@@ -26,20 +26,21 @@ module Util
|
|
26
26
|
|
27
27
|
extend Puppet::Util::SymbolicFileMode
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
def default_env
|
30
|
+
Puppet.features.microsoft_windows? ?
|
31
|
+
:windows :
|
32
|
+
:posix
|
33
|
+
end
|
34
|
+
module_function :default_env
|
34
35
|
|
35
36
|
# @param name [String] The name of the environment variable to retrieve
|
36
37
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
37
38
|
# @return [String] Value of the specified environment variable. nil if it does not exist
|
38
39
|
# @api private
|
39
|
-
def get_env(name, mode =
|
40
|
+
def get_env(name, mode = default_env)
|
40
41
|
if mode == :windows
|
41
|
-
Puppet::Util::Windows::Process.get_environment_strings.
|
42
|
-
if name.casecmp(key) == 0
|
42
|
+
Puppet::Util::Windows::Process.get_environment_strings.each do |key, value |
|
43
|
+
if name.casecmp(key) == 0 then
|
43
44
|
return value
|
44
45
|
end
|
45
46
|
end
|
@@ -53,7 +54,7 @@ module Util
|
|
53
54
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
54
55
|
# @return [Hash] A hashtable of all environment variables
|
55
56
|
# @api private
|
56
|
-
def get_environment(mode =
|
57
|
+
def get_environment(mode = default_env)
|
57
58
|
case mode
|
58
59
|
when :posix
|
59
60
|
ENV.to_hash
|
@@ -68,7 +69,7 @@ module Util
|
|
68
69
|
# Removes all environment variables
|
69
70
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
70
71
|
# @api private
|
71
|
-
def clear_environment(mode =
|
72
|
+
def clear_environment(mode = default_env)
|
72
73
|
case mode
|
73
74
|
when :posix
|
74
75
|
ENV.clear
|
@@ -86,7 +87,7 @@ module Util
|
|
86
87
|
# @param value [String] The value to set the variable to. nil deletes the environment variable
|
87
88
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
88
89
|
# @api private
|
89
|
-
def set_env(name, value = nil, mode =
|
90
|
+
def set_env(name, value = nil, mode = default_env)
|
90
91
|
case mode
|
91
92
|
when :posix
|
92
93
|
ENV[name] = value
|
@@ -101,7 +102,7 @@ module Util
|
|
101
102
|
# @param name [Hash] Environment variables to merge into the existing environment. nil values will remove the variable
|
102
103
|
# @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
|
103
104
|
# @api private
|
104
|
-
def merge_environment(env_hash, mode =
|
105
|
+
def merge_environment(env_hash, mode = default_env)
|
105
106
|
case mode
|
106
107
|
when :posix
|
107
108
|
env_hash.each { |name, val| ENV[name.to_s] = val }
|
@@ -758,6 +759,19 @@ module Util
|
|
758
759
|
Random.new(seed).rand(max)
|
759
760
|
end
|
760
761
|
module_function :deterministic_rand_int
|
762
|
+
|
763
|
+
# Executes a block of code, wrapped around Facter.load_external(false) and
|
764
|
+
# Facter.load_external(true) which will cause Facter to not evaluate external facts.
|
765
|
+
def skip_external_facts
|
766
|
+
return yield unless Facter.respond_to? :load_external
|
767
|
+
begin
|
768
|
+
Facter.load_external(false)
|
769
|
+
yield
|
770
|
+
ensure
|
771
|
+
Facter.load_external(true)
|
772
|
+
end
|
773
|
+
end
|
774
|
+
module_function :skip_external_facts
|
761
775
|
end
|
762
776
|
end
|
763
777
|
|
data/lib/puppet/util/autoload.rb
CHANGED
@@ -10,6 +10,14 @@ require 'puppet/concurrent/synchronized'
|
|
10
10
|
# @api private
|
11
11
|
class Puppet::Util::ModuleDirectoriesAdapter < Puppet::Pops::Adaptable::Adapter
|
12
12
|
attr_accessor :directories
|
13
|
+
|
14
|
+
def self.create_adapter(env)
|
15
|
+
adapter = super(env)
|
16
|
+
adapter.directories = env.modulepath.flat_map do |dir|
|
17
|
+
Dir.glob(File.join(dir, '*', 'lib'))
|
18
|
+
end
|
19
|
+
adapter
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
# Autoload paths, either based on names or all at once.
|
@@ -119,13 +127,7 @@ class Puppet::Util::Autoload
|
|
119
127
|
def module_directories(env)
|
120
128
|
raise ArgumentError, "Autoloader requires an environment" unless env
|
121
129
|
|
122
|
-
Puppet::Util::ModuleDirectoriesAdapter.adapt(env)
|
123
|
-
a.directories ||= env.modulepath.collect do |dir|
|
124
|
-
Dir.entries(dir).reject { |f| f =~ /^\./ }.collect { |f| File.join(dir, f, "lib") }
|
125
|
-
end.flatten.find_all do |d|
|
126
|
-
FileTest.directory?(d)
|
127
|
-
end
|
128
|
-
end.directories
|
130
|
+
Puppet::Util::ModuleDirectoriesAdapter.adapt(env).directories
|
129
131
|
end
|
130
132
|
|
131
133
|
# @api private
|
@@ -19,8 +19,9 @@ module Puppet::Util::CharacterEncoding
|
|
19
19
|
begin
|
20
20
|
if original_encoding == Encoding::UTF_8
|
21
21
|
if !string_copy.valid_encoding?
|
22
|
-
Puppet.debug
|
23
|
-
{ value: string.dump }
|
22
|
+
Puppet.debug {
|
23
|
+
_("%{value} is already labeled as UTF-8 but this encoding is invalid. It cannot be transcoded by Puppet.") % { value: string.dump }
|
24
|
+
}
|
24
25
|
end
|
25
26
|
# String is already valid UTF-8 - noop
|
26
27
|
return string_copy
|
@@ -40,8 +41,9 @@ module Puppet::Util::CharacterEncoding
|
|
40
41
|
# Catch both our own self-determined failure to transcode as well as any
|
41
42
|
# error on ruby's part, ie Encoding::UndefinedConversionError on a
|
42
43
|
# failure to encode!.
|
43
|
-
Puppet.debug
|
44
|
-
{ error: detail.inspect, value: string.dump }
|
44
|
+
Puppet.debug {
|
45
|
+
_("%{error}: %{value} cannot be transcoded by Puppet.") % { error: detail.inspect, value: string.dump }
|
46
|
+
}
|
45
47
|
return string_copy
|
46
48
|
end
|
47
49
|
end
|
@@ -67,7 +69,9 @@ module Puppet::Util::CharacterEncoding
|
|
67
69
|
if string_copy.force_encoding(Encoding::UTF_8).valid_encoding?
|
68
70
|
return string_copy
|
69
71
|
else
|
70
|
-
Puppet.debug
|
72
|
+
Puppet.debug {
|
73
|
+
_("%{value} is not valid UTF-8 and result of overriding encoding would be invalid.") % { value: string.dump }
|
74
|
+
}
|
71
75
|
# Set copy back to its original encoding before returning
|
72
76
|
return string_copy.force_encoding(original_encoding)
|
73
77
|
end
|
@@ -68,7 +68,7 @@ module Puppet::Util::Execution
|
|
68
68
|
if respond_to? :debug
|
69
69
|
debug "Executing '#{command_str}'"
|
70
70
|
else
|
71
|
-
Puppet.debug "Executing '#{command_str}'"
|
71
|
+
Puppet.debug { "Executing '#{command_str}'" }
|
72
72
|
end
|
73
73
|
|
74
74
|
# force the run of the command with
|
@@ -94,17 +94,6 @@ module Puppet::Util::Execution
|
|
94
94
|
end
|
95
95
|
private_class_method :exitstatus
|
96
96
|
|
97
|
-
# Wraps execution of {execute} with mapping of exception to given exception (and output as argument).
|
98
|
-
# @raise [exception] under same conditions as {execute}, but raises the given `exception` with the output as argument
|
99
|
-
# @return (see execute)
|
100
|
-
# @api public
|
101
|
-
# @deprecated
|
102
|
-
def self.execfail(command, exception)
|
103
|
-
execute(command)
|
104
|
-
rescue Puppet::ExecutionFailure => detail
|
105
|
-
raise exception, detail.message, detail.backtrace
|
106
|
-
end
|
107
|
-
|
108
97
|
# Default empty options for {execute}
|
109
98
|
NoOptionsSpecified = {}
|
110
99
|
|
@@ -186,7 +175,7 @@ module Puppet::Util::Execution
|
|
186
175
|
if respond_to? :debug
|
187
176
|
debug "Executing#{user_log_s}: '#{command_str}'"
|
188
177
|
else
|
189
|
-
Puppet.debug "Executing#{user_log_s}: '#{command_str}'"
|
178
|
+
Puppet.debug { "Executing#{user_log_s}: '#{command_str}'" }
|
190
179
|
end
|
191
180
|
|
192
181
|
null_file = Puppet::Util::Platform.windows? ? 'NUL' : '/dev/null'
|