puppet 4.3.2-x64-mingw32 → 4.4.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/COMMITTERS.md +2 -2
- data/CONTRIBUTING.md +6 -6
- data/LICENSE +1 -1
- data/README.md +8 -9
- data/conf/auth.conf +2 -2
- data/ext/README.environment +1 -1
- data/ext/debian/README.source +1 -1
- data/ext/debian/control +1 -1
- data/ext/debian/copyright +4 -4
- data/ext/debian/puppetmaster.README.debian +11 -9
- data/ext/emacs/puppet-mode.el +1 -1
- data/ext/envpuppet +2 -2
- data/ext/ips/puppetagent.xml +1 -1
- data/ext/ips/puppetmaster.xml +1 -1
- data/ext/project_data.yaml +8 -0
- data/ext/puppet-test +3 -3
- data/ext/rack/example-passenger-vhost.conf +1 -1
- data/ext/redhat/puppet.spec.erb +2 -2
- data/ext/regexp_nodes/regexp_nodes.rb +1 -1
- data/ext/solaris/pkginfo +1 -1
- data/ext/solaris/smf/puppet.xml +1 -1
- data/ext/suse/puppet.spec +2 -2
- data/ext/upload_facts.rb +1 -1
- data/ext/windows/puppet_interactive.bat +6 -0
- data/ext/windows/puppet_shell.bat +9 -0
- data/ext/windows/run_puppet_interactive.bat +9 -0
- data/ext/yaml_nodes.rb +1 -1
- data/install.rb +30 -20
- data/lib/puppet/agent.rb +1 -1
- data/lib/puppet/application/agent.rb +4 -2
- data/lib/puppet/application/apply.rb +7 -4
- data/lib/puppet/application/cert.rb +1 -1
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/inspect.rb +1 -1
- data/lib/puppet/application/lookup.rb +4 -4
- data/lib/puppet/application/master.rb +2 -2
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/configurer.rb +100 -22
- data/lib/puppet/data_providers/hiera_config.rb +28 -3
- data/lib/puppet/data_providers/hiera_interpolate.rb +30 -15
- data/lib/puppet/data_providers/hiera_support.rb +1 -1
- data/lib/puppet/data_providers/json_data_provider_factory.rb +2 -2
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -2
- data/lib/puppet/defaults.rb +65 -19
- data/lib/puppet/environments.rb +3 -1
- data/lib/puppet/face/config.rb +1 -1
- data/lib/puppet/face/epp.rb +1 -1
- data/lib/puppet/face/help/man.erb +1 -1
- data/lib/puppet/face/module/install.rb +6 -6
- data/lib/puppet/face/parser.rb +12 -9
- data/lib/puppet/face/status.rb +2 -1
- data/lib/puppet/feature/cfpropertylist.rb +3 -0
- data/lib/puppet/feature/telnet.rb +9 -0
- data/lib/puppet/file_serving/http_metadata.rb +46 -0
- data/lib/puppet/file_serving/metadata.rb +18 -2
- data/lib/puppet/file_serving/terminus_selector.rb +2 -0
- data/lib/puppet/file_system.rb +2 -2
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +1 -1
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/repository.rb +1 -31
- data/lib/puppet/functions.rb +45 -6
- data/lib/puppet/functions/assert_type.rb +9 -9
- data/lib/puppet/functions/each.rb +5 -13
- data/lib/puppet/functions/filter.rb +5 -14
- data/lib/puppet/functions/map.rb +6 -14
- data/lib/puppet/functions/reduce.rb +5 -13
- data/lib/puppet/functions/reverse_each.rb +82 -0
- data/lib/puppet/functions/scanf.rb +15 -18
- data/lib/puppet/functions/slice.rb +22 -36
- data/lib/puppet/functions/split.rb +2 -2
- data/lib/puppet/functions/step.rb +88 -0
- data/lib/puppet/functions/type.rb +70 -0
- data/lib/puppet/graph/rb_tree_map.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +188 -5
- data/lib/puppet/indirector/file_content/http.rb +15 -0
- data/lib/puppet/indirector/file_metadata/http.rb +27 -0
- data/lib/puppet/indirector/generic_http.rb +16 -0
- data/lib/puppet/indirector/node/exec.rb +1 -1
- data/lib/puppet/indirector/node/ldap.rb +1 -1
- data/lib/puppet/indirector/rest.rb +2 -1
- data/lib/puppet/info_service/class_information_service.rb +13 -12
- data/lib/puppet/loaders.rb +1 -0
- data/lib/puppet/module.rb +3 -0
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +9 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +2 -2
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/network/http/pool.rb +9 -0
- data/lib/puppet/node.rb +1 -1
- data/lib/puppet/node/environment.rb +11 -2
- data/lib/puppet/parser/ast/pops_bridge.rb +19 -22
- data/lib/puppet/parser/compiler.rb +3 -3
- data/lib/puppet/parser/environment_compiler.rb +0 -1
- data/lib/puppet/parser/functions.rb +28 -16
- data/lib/puppet/parser/functions/fqdn_rand.rb +1 -1
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +1 -1
- data/lib/puppet/parser/functions/scanf.rb +15 -26
- data/lib/puppet/parser/functions/slice.rb +17 -24
- data/lib/puppet/parser/functions/split.rb +1 -1
- data/lib/puppet/parser/resource.rb +19 -17
- data/lib/puppet/parser/scope.rb +176 -5
- data/lib/puppet/plugins/data_providers/data_provider.rb +54 -13
- data/lib/puppet/pops.rb +0 -8
- data/lib/puppet/pops/adaptable.rb +4 -1
- data/lib/puppet/pops/adapters.rb +38 -13
- data/lib/puppet/pops/binder/binder.rb +21 -17
- data/lib/puppet/pops/binder/binder_issues.rb +8 -6
- data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
- data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
- data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
- data/lib/puppet/pops/binder/bindings_model.rb +49 -47
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
- data/lib/puppet/pops/binder/injector.rb +53 -48
- data/lib/puppet/pops/binder/key_factory.rb +10 -6
- data/lib/puppet/pops/binder/producers.rb +67 -62
- data/lib/puppet/pops/evaluator/access_operator.rb +95 -93
- data/lib/puppet/pops/evaluator/closure.rb +84 -68
- data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -14
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +13 -9
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +78 -76
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +85 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +13 -11
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +5 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +41 -45
- data/lib/puppet/pops/issue_reporter.rb +6 -4
- data/lib/puppet/pops/issues.rb +34 -11
- data/lib/puppet/pops/loader/base_loader.rb +1 -1
- data/lib/puppet/pops/loader/loader.rb +1 -1
- data/lib/puppet/pops/loader/loader_paths.rb +15 -0
- data/lib/puppet/pops/loader/module_loaders.rb +17 -13
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +16 -12
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -3
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +55 -0
- data/lib/puppet/pops/loaders.rb +51 -9
- data/lib/puppet/pops/lookup.rb +14 -12
- data/lib/puppet/pops/merge_strategy.rb +16 -19
- data/lib/puppet/pops/model/factory.rb +26 -2
- data/lib/puppet/pops/model/model.rb +8 -8
- data/lib/puppet/pops/model/model_label_provider.rb +13 -7
- data/lib/puppet/pops/model/model_meta.rb +17 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +8 -0
- data/lib/puppet/pops/parser/egrammar.ra +38 -14
- data/lib/puppet/pops/parser/eparser.rb +1353 -1276
- data/lib/puppet/pops/parser/epp_support.rb +11 -7
- data/lib/puppet/pops/parser/evaluating_parser.rb +14 -10
- data/lib/puppet/pops/parser/heredoc_support.rb +15 -11
- data/lib/puppet/pops/parser/lexer2.rb +26 -19
- data/lib/puppet/pops/parser/lexer_support.rb +85 -7
- data/lib/puppet/pops/parser/locator.rb +21 -0
- data/lib/puppet/pops/parser/parser_support.rb +19 -16
- data/lib/puppet/pops/parser/slurp_support.rb +11 -7
- data/lib/puppet/pops/types/class_loader.rb +23 -19
- data/lib/puppet/pops/types/enumeration.rb +9 -26
- data/lib/puppet/pops/types/iterable.rb +308 -0
- data/lib/puppet/pops/types/recursion_guard.rb +82 -0
- data/lib/puppet/pops/types/type_acceptor.rb +25 -0
- data/lib/puppet/pops/types/type_asserter.rb +10 -9
- data/lib/puppet/pops/types/type_calculator.rb +138 -381
- data/lib/puppet/pops/types/type_factory.rb +91 -57
- data/lib/puppet/pops/types/type_formatter.rb +334 -0
- data/lib/puppet/pops/types/type_mismatch_describer.rb +226 -59
- data/lib/puppet/pops/types/type_parser.rb +159 -112
- data/lib/puppet/pops/types/types.rb +2057 -1247
- data/lib/puppet/pops/utils.rb +11 -10
- data/lib/puppet/pops/validation.rb +11 -9
- data/lib/puppet/pops/validation/checker4_0.rb +83 -55
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +8 -4
- data/lib/puppet/provider/aixobject.rb +1 -1
- data/lib/puppet/provider/augeas/augeas.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +1 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +10 -9
- data/lib/puppet/provider/nameservice/directoryservice.rb +35 -50
- data/lib/puppet/provider/package/appdmg.rb +3 -2
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/pip.rb +5 -8
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +3 -2
- data/lib/puppet/provider/package/pkgng.rb +13 -4
- data/lib/puppet/provider/package/windows.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/package/zypper.rb +19 -0
- data/lib/puppet/provider/service/debian.rb +2 -2
- data/lib/puppet/provider/service/launchd.rb +6 -18
- data/lib/puppet/provider/service/systemd.rb +9 -2
- data/lib/puppet/provider/sshkey/parsed.rb +1 -1
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/directoryservice.rb +33 -58
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/provider/zpool/zpool.rb +1 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/providers.rb +1 -1
- data/lib/puppet/resource.rb +15 -12
- data/lib/puppet/resource/capability_finder.rb +20 -13
- data/lib/puppet/resource/catalog.rb +60 -3
- data/lib/puppet/resource/status.rb +11 -2
- data/lib/puppet/resource/type.rb +28 -38
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/environment_conf.rb +13 -5
- data/lib/puppet/ssl/certificate_factory.rb +3 -3
- data/lib/puppet/ssl/certificate_request.rb +4 -4
- data/lib/puppet/ssl/certificate_signer.rb +1 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +16 -4
- data/lib/puppet/transaction.rb +15 -2
- data/lib/puppet/transaction/additional_resource_generator.rb +6 -2
- data/lib/puppet/transaction/report.rb +31 -1
- data/lib/puppet/transaction/resource_harness.rb +0 -25
- data/lib/puppet/type.rb +11 -11
- data/lib/puppet/type/augeas.rb +1 -1
- data/lib/puppet/type/cron.rb +12 -12
- data/lib/puppet/type/file.rb +91 -39
- data/lib/puppet/type/file/checksum_value.rb +53 -0
- data/lib/puppet/type/file/content.rb +26 -111
- data/lib/puppet/type/file/data_sync.rb +84 -0
- data/lib/puppet/type/file/ensure.rb +17 -14
- data/lib/puppet/type/file/selcontext.rb +1 -1
- data/lib/puppet/type/file/source.rb +103 -18
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/interface.rb +8 -3
- data/lib/puppet/type/macauthorization.rb +1 -1
- data/lib/puppet/type/package.rb +6 -0
- data/lib/puppet/type/schedule.rb +1 -1
- data/lib/puppet/type/stage.rb +1 -1
- data/lib/puppet/type/user.rb +19 -17
- data/lib/puppet/type/yumrepo.rb +20 -0
- data/lib/puppet/util.rb +109 -22
- data/lib/puppet/util/autoload.rb +16 -11
- data/lib/puppet/util/checksums.rb +74 -31
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/http_proxy.rb +72 -0
- data/lib/puppet/util/log.rb +2 -0
- data/lib/puppet/util/logging.rb +43 -1
- data/lib/puppet/util/monkey_patches.rb +2 -2
- data/lib/puppet/util/multi_match.rb +51 -0
- data/lib/puppet/util/network_device/cisco/device.rb +10 -2
- data/lib/puppet/util/network_device/cisco/interface.rb +21 -8
- data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
- data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
- data/lib/puppet/util/plist.rb +130 -0
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/run_mode.rb +2 -2
- data/lib/puppet/util/skip_tags.rb +9 -0
- data/lib/puppet/util/windows/access_control_entry.rb +1 -1
- data/lib/puppet/util/windows/access_control_list.rb +3 -3
- data/lib/puppet/util/windows/adsi.rb +4 -4
- data/lib/puppet/util/windows/api_types.rb +24 -18
- data/lib/puppet/util/windows/com.rb +3 -3
- data/lib/puppet/util/windows/error.rb +1 -1
- data/lib/puppet/util/windows/file.rb +8 -8
- data/lib/puppet/util/windows/principal.rb +23 -14
- data/lib/puppet/util/windows/process.rb +78 -11
- data/lib/puppet/util/windows/registry.rb +1 -1
- data/lib/puppet/util/windows/root_certs.rb +5 -5
- data/lib/puppet/util/windows/security.rb +33 -35
- data/lib/puppet/util/windows/security_descriptor.rb +1 -1
- data/lib/puppet/util/windows/sid.rb +42 -4
- data/lib/puppet/util/windows/taskscheduler.rb +15 -15
- data/lib/puppet/util/windows/user.rb +10 -10
- data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
- data/lib/puppet/vendor/pathspec/LICENSE +2 -2
- data/lib/puppet/vendor/pathspec/README.md +1 -1
- data/lib/puppet/vendor/rgen/README.rdoc +1 -1
- data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +14 -0
- data/lib/puppet/version.rb +1 -1
- data/lib/semver.rb +17 -1
- data/man/man5/puppet.conf.5 +12 -12
- data/man/man8/extlookup2hiera.8 +1 -1
- data/man/man8/puppet-agent.8 +2 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-ca.8 +2 -2
- data/man/man8/puppet-catalog.8 +2 -2
- data/man/man8/puppet-cert.8 +2 -2
- data/man/man8/puppet-certificate.8 +2 -2
- data/man/man8/puppet-certificate_request.8 +2 -2
- data/man/man8/puppet-certificate_revocation_list.8 +2 -2
- data/man/man8/puppet-config.8 +3 -3
- 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 +2 -2
- data/man/man8/puppet-facts.8 +2 -2
- data/man/man8/puppet-file.8 +2 -2
- data/man/man8/puppet-filebucket.8 +2 -2
- data/man/man8/puppet-help.8 +2 -2
- data/man/man8/puppet-inspect.8 +2 -2
- data/man/man8/puppet-key.8 +2 -2
- data/man/man8/puppet-man.8 +2 -2
- data/man/man8/puppet-master.8 +2 -2
- data/man/man8/puppet-module.8 +9 -9
- data/man/man8/puppet-node.8 +2 -2
- data/man/man8/puppet-parser.8 +2 -2
- data/man/man8/puppet-plugin.8 +2 -2
- data/man/man8/puppet-report.8 +2 -2
- data/man/man8/puppet-resource.8 +2 -2
- data/man/man8/puppet-resource_type.8 +2 -2
- data/man/man8/puppet-status.8 +3 -3
- data/man/man8/puppet.8 +1 -1
- data/spec/fixtures/module.tar.gz +0 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -1
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/data/empty.json +0 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/manifests/init.pp +2 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +2 -1
- data/spec/fixtures/unit/module/trailing-comma.json +1 -1
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +3 -1
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
- data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
- data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
- data/spec/integration/defaults_spec.rb +14 -2
- data/spec/integration/file_system/uniquefile_spec.rb +29 -0
- data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
- data/spec/integration/node/environment_spec.rb +13 -0
- data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
- data/spec/integration/parser/parameter_defaults_spec.rb +336 -0
- data/spec/integration/parser/undef_param_spec.rb +8 -0
- data/spec/integration/provider/yumrepo_spec.rb +1 -1
- data/spec/integration/test/test_helper_spec.rb +28 -0
- data/spec/integration/transaction/report_spec.rb +16 -0
- data/spec/integration/transaction_spec.rb +11 -0
- data/spec/integration/type/file_spec.rb +194 -4
- data/spec/integration/type/package_spec.rb +5 -1
- data/spec/integration/type/tidy_spec.rb +21 -9
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/principal_spec.rb +90 -4
- data/spec/integration/util/windows/process_spec.rb +31 -0
- data/spec/integration/util/windows/security_spec.rb +6 -6
- data/spec/integration/util/windows/user_spec.rb +1 -1
- data/spec/integration/util_spec.rb +49 -27
- data/spec/lib/puppet_spec/compiler.rb +17 -0
- data/spec/lib/puppet_spec/files.rb +2 -2
- data/spec/lib/puppet_spec/pops.rb +13 -0
- data/spec/shared_behaviours/iterative_functions.rb +1 -1
- data/spec/shared_contexts/types_setup.rb +96 -0
- data/spec/unit/agent_spec.rb +1 -0
- data/spec/unit/application/agent_spec.rb +10 -0
- data/spec/unit/application/apply_spec.rb +9 -0
- data/spec/unit/configurer/downloader_spec.rb +5 -5
- data/spec/unit/configurer_spec.rb +271 -39
- data/spec/unit/data_providers/hiera_interpolation_spec.rb +57 -0
- data/spec/unit/defaults_spec.rb +15 -0
- data/spec/unit/environments_spec.rb +24 -4
- data/spec/unit/face/parser_spec.rb +43 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
- data/spec/unit/file_serving/metadata_spec.rb +50 -0
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
- data/spec/unit/file_system_spec.rb +26 -0
- data/spec/unit/functions/assert_type_spec.rb +36 -2
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +11 -3
- data/spec/unit/functions/lookup_spec.rb +58 -13
- data/spec/unit/functions/regsubst_spec.rb +1 -1
- data/spec/unit/functions/reverse_each_spec.rb +108 -0
- data/spec/unit/functions/step_spec.rb +113 -0
- data/spec/unit/functions/type_spec.rb +35 -0
- data/spec/unit/functions4_spec.rb +61 -5
- data/spec/unit/indirector/catalog/compiler_spec.rb +705 -4
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
- data/spec/unit/indirector/indirection_spec.rb +1 -1
- data/spec/unit/info_service_spec.rb +94 -32
- data/spec/unit/module_spec.rb +14 -0
- data/spec/unit/module_tool/applications/builder_spec.rb +4 -4
- data/spec/unit/network/authstore_spec.rb +1 -1
- data/spec/unit/network/http/connection_spec.rb +1 -0
- data/spec/unit/network/http/pool_spec.rb +30 -0
- data/spec/unit/node_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +16 -0
- data/spec/unit/parser/scope_spec.rb +28 -11
- data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +7 -1
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
- data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +6 -0
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +53 -0
- data/spec/unit/pops/loaders/loaders_spec.rb +44 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +112 -3
- data/spec/unit/pops/parser/parse_calls_spec.rb +8 -0
- data/spec/unit/pops/parser/parser_spec.rb +10 -0
- data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
- data/spec/unit/pops/types/iterable_spec.rb +262 -0
- data/spec/unit/pops/types/recursion_guard_spec.rb +91 -0
- data/spec/unit/pops/types/type_acceptor_spec.rb +105 -0
- data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +275 -373
- data/spec/unit/pops/types/type_formatter_spec.rb +280 -0
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +152 -0
- data/spec/unit/pops/types/type_parser_spec.rb +58 -13
- data/spec/unit/pops/types/types_spec.rb +241 -0
- data/spec/unit/pops/validator/validator_spec.rb +100 -43
- data/spec/unit/provider/cron/parsed_spec.rb +1 -0
- data/spec/unit/provider/macauthorization_spec.rb +5 -2
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
- data/spec/unit/provider/package/appdmg_spec.rb +3 -3
- data/spec/unit/provider/package/dnf_spec.rb +16 -0
- data/spec/unit/provider/package/pip3_spec.rb +60 -42
- data/spec/unit/provider/package/pip_spec.rb +47 -34
- data/spec/unit/provider/package/pkgdmg_spec.rb +18 -9
- data/spec/unit/provider/package/pkgng_spec.rb +4 -2
- data/spec/unit/provider/package/yum_spec.rb +11 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -0
- data/spec/unit/provider/service/launchd_spec.rb +17 -35
- data/spec/unit/provider/service/systemd_spec.rb +7 -0
- data/spec/unit/provider/sshkey/parsed_spec.rb +20 -19
- data/spec/unit/provider/user/directoryservice_spec.rb +40 -59
- data/spec/unit/resource/capability_finder_spec.rb +28 -15
- data/spec/unit/resource/catalog_spec.rb +33 -1
- data/spec/unit/resource/type_spec.rb +149 -7
- data/spec/unit/resource_spec.rb +96 -57
- data/spec/unit/settings/environment_conf_spec.rb +18 -1
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
- data/spec/unit/transaction/report_spec.rb +27 -0
- data/spec/unit/transaction/resource_harness_spec.rb +0 -47
- data/spec/unit/transaction_spec.rb +5 -0
- data/spec/unit/type/file/checksum_spec.rb +6 -0
- data/spec/unit/type/file/checksum_value_spec.rb +286 -0
- data/spec/unit/type/file/content_spec.rb +12 -193
- data/spec/unit/type/file/source_spec.rb +211 -119
- data/spec/unit/type/file_spec.rb +133 -34
- data/spec/unit/type/interface_spec.rb +32 -0
- data/spec/unit/type/macauthorization_spec.rb +4 -1
- data/spec/unit/type/yumrepo_spec.rb +2 -2
- data/spec/unit/util/filetype_spec.rb +1 -1
- data/spec/unit/util/http_proxy_spec.rb +2 -2
- data/spec/unit/util/log/destinations_spec.rb +0 -2
- data/spec/unit/util/logging_spec.rb +69 -0
- data/spec/unit/util/multi_match_spec.rb +39 -0
- data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
- data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
- data/spec/unit/util/plist_spec.rb +110 -0
- data/spec/unit/util/resource_template_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +27 -3
- data/spec/unit/util/windows/adsi_spec.rb +4 -4
- data/spec/unit/util/windows/api_types_spec.rb +42 -0
- data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
- data/spec/unit/util/windows/sid_spec.rb +1 -1
- data/spec/unit/util_spec.rb +123 -13
- data/tasks/cfpropertylist.rake +15 -0
- metadata +114 -26
- data/lib/puppet/vendor/load_plist.rb +0 -1
- data/lib/puppet/vendor/plist/CHANGELOG +0 -82
- data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
- data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/plist/README +0 -36
- data/lib/puppet/vendor/plist/Rakefile +0 -144
- data/lib/puppet/vendor/plist/docs/USAGE +0 -104
- data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
- data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
- data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
- data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
- data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
- data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
- data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
- data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
- data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
- data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
- data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
- data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
- data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
- data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
- data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
- data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
- data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
@@ -31,7 +31,7 @@ module Puppet::DataProviders::HieraSupport
|
|
31
31
|
|
32
32
|
def data_providers(data_key, lookup_invocation)
|
33
33
|
@hiera_config ||= Puppet::DataProviders::HieraConfig.new(provider_root(data_key, lookup_invocation.scope))
|
34
|
-
@data_providers ||= @hiera_config.
|
34
|
+
@data_providers ||= @hiera_config.create_configured_data_providers(lookup_invocation, self)
|
35
35
|
end
|
36
36
|
private :data_providers
|
37
37
|
end
|
@@ -5,8 +5,8 @@ require_relative 'hiera_interpolate'
|
|
5
5
|
|
6
6
|
module Puppet::DataProviders
|
7
7
|
class JsonDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
|
8
|
-
def create(name, paths)
|
9
|
-
JsonDataProvider.new(name, paths)
|
8
|
+
def create(name, paths, parent_data_provider)
|
9
|
+
JsonDataProvider.new(name, paths, parent_data_provider)
|
10
10
|
end
|
11
11
|
|
12
12
|
def path_extension
|
@@ -5,8 +5,8 @@ require_relative 'hiera_interpolate'
|
|
5
5
|
|
6
6
|
module Puppet::DataProviders
|
7
7
|
class YamlDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory
|
8
|
-
def create(name, paths)
|
9
|
-
YamlDataProvider.new(name, paths)
|
8
|
+
def create(name, paths, parent_data_provider)
|
9
|
+
YamlDataProvider.new(name, paths, parent_data_provider)
|
10
10
|
end
|
11
11
|
|
12
12
|
def path_extension
|
data/lib/puppet/defaults.rb
CHANGED
@@ -111,10 +111,11 @@ module Puppet
|
|
111
111
|
|
112
112
|
Valid values for this setting are:
|
113
113
|
|
114
|
-
* `deprecations` --- disables deprecation warnings.
|
114
|
+
* `deprecations` --- disables deprecation warnings.
|
115
|
+
* `undefined_variables` --- disables warnings about non existing variables.",
|
115
116
|
:hook => proc do |value|
|
116
117
|
values = munge(value)
|
117
|
-
valid = %w[deprecations]
|
118
|
+
valid = %w[deprecations undefined_variables]
|
118
119
|
invalid = values - (values & valid)
|
119
120
|
if not invalid.empty?
|
120
121
|
raise ArgumentError, "Cannot disable unrecognized warning types #{invalid.inspect}. Valid values are #{valid.inspect}."
|
@@ -147,6 +148,17 @@ module Puppet
|
|
147
148
|
:type => :boolean,
|
148
149
|
:desc => "Whether to enable experimental performance profiling",
|
149
150
|
},
|
151
|
+
:static_catalogs => {
|
152
|
+
:default => true,
|
153
|
+
:type => :boolean,
|
154
|
+
:desc => "Whether to compile a static catalog."
|
155
|
+
},
|
156
|
+
:strict_environment_mode => {
|
157
|
+
:default => false,
|
158
|
+
:type => :boolean,
|
159
|
+
:desc => "Whether the agent specified environment should be considered authoritative,
|
160
|
+
causing the run to fail if the retrieved catalog does not match it.",
|
161
|
+
},
|
150
162
|
:autoflush => {
|
151
163
|
:default => true,
|
152
164
|
:type => :boolean,
|
@@ -233,11 +245,11 @@ module Puppet
|
|
233
245
|
be set in `[master]`, `[agent]`, or an environment config section.",
|
234
246
|
:call_hook => :on_define_and_write,
|
235
247
|
:hook => proc do |value|
|
236
|
-
|
237
|
-
|
238
|
-
paths =
|
248
|
+
Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
|
249
|
+
Puppet::Util.set_env('PATH', value) unless value == 'none'
|
250
|
+
paths = Puppet::Util.get_env('PATH').split(File::PATH_SEPARATOR)
|
239
251
|
Puppet::Util::Platform.default_paths.each do |path|
|
240
|
-
|
252
|
+
Puppet::Util.set_env('PATH', Puppet::Util.get_env('PATH') + File::PATH_SEPARATOR + path) unless paths.include?(path)
|
241
253
|
end
|
242
254
|
value
|
243
255
|
end
|
@@ -272,7 +284,7 @@ module Puppet
|
|
272
284
|
|
273
285
|
This setting must have a value set to enable **directory environments.** The
|
274
286
|
recommended value is `$codedir/environments`. For more details, see
|
275
|
-
|
287
|
+
https://docs.puppetlabs.com/puppet/latest/reference/environments.html",
|
276
288
|
:type => :path,
|
277
289
|
},
|
278
290
|
:always_cache_features => {
|
@@ -572,15 +584,15 @@ module Puppet
|
|
572
584
|
`certname` setting as its requested Subject CN.
|
573
585
|
|
574
586
|
This is the name used when managing a node's permissions in
|
575
|
-
[auth.conf](
|
587
|
+
[auth.conf](https://docs.puppetlabs.com/puppet/latest/reference/config_file_auth.html).
|
576
588
|
In most cases, it is also used as the node's name when matching
|
577
|
-
[node definitions](
|
589
|
+
[node definitions](https://docs.puppetlabs.com/puppet/latest/reference/lang_node_definitions.html)
|
578
590
|
and requesting data from an ENC. (This can be changed with the `node_name_value`
|
579
591
|
and `node_name_fact` settings, although you should only do so if you have
|
580
592
|
a compelling reason.)
|
581
593
|
|
582
594
|
A node's certname is available in Puppet manifests as `$trusted['certname']`. (See
|
583
|
-
[Facts and Built-In Variables](
|
595
|
+
[Facts and Built-In Variables](https://docs.puppetlabs.com/puppet/latest/reference/lang_facts_and_builtin_vars.html)
|
584
596
|
for more details.)
|
585
597
|
|
586
598
|
* For best compatibility, you should limit the value of `certname` to
|
@@ -781,6 +793,21 @@ EOT
|
|
781
793
|
:values => ["md5", "sha256"],
|
782
794
|
:desc => 'Which digest algorithm to use for file resources and the filebucket.
|
783
795
|
Valid values are md5, sha256. Default is md5.',
|
796
|
+
},
|
797
|
+
:supported_checksum_types => {
|
798
|
+
:default => ['md5', 'sha256'],
|
799
|
+
:type => :array,
|
800
|
+
:desc => 'Checksum types supported by this agent for use in file resources of a
|
801
|
+
static catalog. Values must be comma-separated. Valid types are md5,
|
802
|
+
md5lite, sha256, sha256lite, sha1, sha1lite, mtime, ctime.',
|
803
|
+
:hook => proc do |value|
|
804
|
+
values = munge(value)
|
805
|
+
valid = ['md5', 'md5lite', 'sha256', 'sha256lite', 'sha1', 'sha1lite', 'mtime', 'ctime']
|
806
|
+
invalid = values.reject {|alg| valid.include?(alg)}
|
807
|
+
if not invalid.empty?
|
808
|
+
raise ArgumentError, "Unrecognized checksum types #{invalid} are not supported. Valid values are #{valid}."
|
809
|
+
end
|
810
|
+
end
|
784
811
|
}
|
785
812
|
)
|
786
813
|
|
@@ -896,7 +923,7 @@ EOT
|
|
896
923
|
the request.
|
897
924
|
|
898
925
|
For info on autosign configuration files, see
|
899
|
-
[the guide to Puppet's config files](http://docs.puppetlabs.com/
|
926
|
+
[the guide to Puppet's config files](http://docs.puppetlabs.com/puppet/latest/reference/config_about_settings.html).",
|
900
927
|
},
|
901
928
|
:allow_duplicate_certs => {
|
902
929
|
:default => false,
|
@@ -969,7 +996,7 @@ EOT
|
|
969
996
|
directory environments instead. If you need to use something other than the
|
970
997
|
environment's `manifests` directory as the main manifest, you can set
|
971
998
|
`manifest` in environment.conf. For more info, see
|
972
|
-
|
999
|
+
https://docs.puppetlabs.com/puppet/latest/reference/environments.html",
|
973
1000
|
},
|
974
1001
|
:modulepath => {
|
975
1002
|
:default => "",
|
@@ -983,7 +1010,7 @@ EOT
|
|
983
1010
|
directory environments instead. If you need to use something other than the
|
984
1011
|
default modulepath of `<ACTIVE ENVIRONMENT'S MODULES DIR>:$basemodulepath`,
|
985
1012
|
you can set `modulepath` in environment.conf. For more info, see
|
986
|
-
|
1013
|
+
https://docs.puppetlabs.com/puppet/latest/reference/environments.html",
|
987
1014
|
},
|
988
1015
|
:config_version => {
|
989
1016
|
:default => "",
|
@@ -995,7 +1022,7 @@ EOT
|
|
995
1022
|
Setting a global value for config_version in puppet.conf is not allowed
|
996
1023
|
(but it can be overridden from the commandline). Please set a
|
997
1024
|
per-environment value in environment.conf instead. For more info, see
|
998
|
-
|
1025
|
+
https://docs.puppetlabs.com/puppet/latest/reference/environments.html",
|
999
1026
|
}
|
1000
1027
|
)
|
1001
1028
|
|
@@ -1107,7 +1134,7 @@ EOT
|
|
1107
1134
|
These are the modules that will be used by _all_ environments. Note that
|
1108
1135
|
the `modules` directory of the active environment will have priority over
|
1109
1136
|
any global directories. For more info, see
|
1110
|
-
|
1137
|
+
https://docs.puppetlabs.com/puppet/latest/reference/environments.html",
|
1111
1138
|
},
|
1112
1139
|
:ssl_client_header => {
|
1113
1140
|
:default => "HTTP_X_CLIENT_DN",
|
@@ -1283,7 +1310,7 @@ EOT
|
|
1283
1310
|
For control over logging destinations, see the `--logdest` command line
|
1284
1311
|
option in the manual pages for puppet master, puppet agent, and puppet
|
1285
1312
|
apply. You can see man pages by running `puppet <SUBCOMMAND> --help`,
|
1286
|
-
or read them online at
|
1313
|
+
or read them online at https://docs.puppetlabs.com/references/latest/man/."
|
1287
1314
|
},
|
1288
1315
|
:server => {
|
1289
1316
|
:default => "puppet",
|
@@ -1328,7 +1355,7 @@ EOT
|
|
1328
1355
|
event _would_ have been sent.
|
1329
1356
|
|
1330
1357
|
**Important note:**
|
1331
|
-
[The `noop` metaparameter](
|
1358
|
+
[The `noop` metaparameter](https://docs.puppetlabs.com/references/latest/metaparameter.html#noop)
|
1332
1359
|
allows you to apply individual resources in noop mode, and will override
|
1333
1360
|
the global value of the `noop` setting. This means a resource with
|
1334
1361
|
`noop => false` _will_ be changed if necessary, even when running puppet
|
@@ -1413,7 +1440,16 @@ EOT
|
|
1413
1440
|
:default => false,
|
1414
1441
|
:type => :boolean,
|
1415
1442
|
:desc => "Whether to sleep for a pseudo-random (but consistent) amount of time before
|
1416
|
-
a run.
|
1443
|
+
a run.
|
1444
|
+
|
1445
|
+
For example, without `splay` enabled, your agent checks in every 30
|
1446
|
+
minutes at :01 and :31 past the hour. After enabling `splay`, the agent
|
1447
|
+
will wait the pseudorandom sleep time, say eight minutes, and then check
|
1448
|
+
in every 30 minutes, at :09 and :39 after the hour. If you restart the
|
1449
|
+
same agent at 12:45 PM, it will wait its eight minutes, and check in at
|
1450
|
+
12:52 PM, and every 30 minutes after that, at 1:22 PM, 1:52 PM, and so
|
1451
|
+
on. Other agents will have different sleep times, and so will check in
|
1452
|
+
at different times even if they are all restarted at the same time.",
|
1417
1453
|
},
|
1418
1454
|
:clientbucketdir => {
|
1419
1455
|
:default => "$vardir/clientbucket",
|
@@ -1565,7 +1601,11 @@ EOT
|
|
1565
1601
|
:pluginsync => {
|
1566
1602
|
:default => true,
|
1567
1603
|
:type => :boolean,
|
1568
|
-
:desc => "Whether plugins should be synced with the central server.
|
1604
|
+
:desc => "Whether plugins should be synced with the central server. This setting is
|
1605
|
+
deprecated.",
|
1606
|
+
:hook => proc { |value|
|
1607
|
+
Puppet.deprecation_warning "Setting 'pluginsync' is deprecated."
|
1608
|
+
}
|
1569
1609
|
},
|
1570
1610
|
|
1571
1611
|
:pluginsignore => {
|
@@ -1601,6 +1641,12 @@ EOT
|
|
1601
1641
|
only resources tagged with the specified tags will be applied.
|
1602
1642
|
Values must be comma-separated.",
|
1603
1643
|
},
|
1644
|
+
:skip_tags => {
|
1645
|
+
:default => "",
|
1646
|
+
:desc => "Tags to use to filter resources. If this is set, then
|
1647
|
+
only resources not tagged with the specified tags will be applied.
|
1648
|
+
Values must be comma-separated.",
|
1649
|
+
},
|
1604
1650
|
:evaltrace => {
|
1605
1651
|
:default => false,
|
1606
1652
|
:type => :boolean,
|
data/lib/puppet/environments.rb
CHANGED
@@ -40,6 +40,8 @@ module Puppet::Environments
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def clear_all
|
43
|
+
root = Puppet.lookup(:root_environment) { nil }
|
44
|
+
root.instance_variable_set(:@static_catalogs, nil) unless root.nil?
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
@@ -110,7 +112,7 @@ module Puppet::Environments
|
|
110
112
|
def get_conf(name)
|
111
113
|
env = get(name)
|
112
114
|
if env
|
113
|
-
Puppet::Settings::EnvironmentConf.static_for(env)
|
115
|
+
Puppet::Settings::EnvironmentConf.static_for(env, 0, Puppet[:static_catalogs])
|
114
116
|
else
|
115
117
|
nil
|
116
118
|
end
|
data/lib/puppet/face/config.rb
CHANGED
@@ -9,7 +9,7 @@ Puppet::Face.define(:config, '0.0.1') do
|
|
9
9
|
|
10
10
|
description "This subcommand can inspect and modify settings from Puppet's
|
11
11
|
'puppet.conf' configuration file. For documentation about individual settings,
|
12
|
-
see
|
12
|
+
see https://docs.puppetlabs.com/references/latest/configuration.html."
|
13
13
|
|
14
14
|
option "--section SECTION_NAME" do
|
15
15
|
default_to { "main" }
|
data/lib/puppet/face/epp.rb
CHANGED
@@ -172,7 +172,7 @@ Puppet::Face.define(:epp, '0.0.1') do
|
|
172
172
|
|
173
173
|
show_filename = templates.count > 1
|
174
174
|
dumps = templates.each do |file|
|
175
|
-
buffer.print dump_parse(
|
175
|
+
buffer.print dump_parse(Puppet::FileSystem.read(file, :encoding => 'utf-8'), file, options, show_filename)
|
176
176
|
end
|
177
177
|
|
178
178
|
if !missing_files.empty?
|
@@ -23,7 +23,7 @@ settings, so you can specify `--server <servername>`, or
|
|
23
23
|
`--run_mode <runmode>` as an argument.
|
24
24
|
|
25
25
|
See the configuration file documentation at
|
26
|
-
<
|
26
|
+
<https://docs.puppetlabs.com/references/stable/configuration.html> for the
|
27
27
|
full list of acceptable parameters. A commented list of all
|
28
28
|
configuration options can also be generated by running puppet with
|
29
29
|
`--genconfig`.
|
@@ -21,7 +21,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
21
21
|
|
22
22
|
$ puppet module install puppetlabs-vcsrepo
|
23
23
|
Preparing to install into /etc/puppetlabs/code/modules ...
|
24
|
-
Downloading from
|
24
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
25
25
|
Installing -- do not interrupt ...
|
26
26
|
/etc/puppetlabs/code/modules
|
27
27
|
└── puppetlabs-vcsrepo (v0.0.4)
|
@@ -30,7 +30,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
30
30
|
|
31
31
|
$ puppet module install puppetlabs-vcsrepo --environment development
|
32
32
|
Preparing to install into /etc/puppetlabs/code/environments/development/modules ...
|
33
|
-
Downloading from
|
33
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
34
34
|
Installing -- do not interrupt ...
|
35
35
|
/etc/puppetlabs/code/environments/development/modules
|
36
36
|
└── puppetlabs-vcsrepo (v0.0.4)
|
@@ -39,7 +39,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
39
39
|
|
40
40
|
$ puppet module install puppetlabs-vcsrepo -v 0.0.4
|
41
41
|
Preparing to install into /etc/puppetlabs/modules ...
|
42
|
-
Downloading from
|
42
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
43
43
|
Installing -- do not interrupt ...
|
44
44
|
/etc/puppetlabs/code/modules
|
45
45
|
└── puppetlabs-vcsrepo (v0.0.4)
|
@@ -48,7 +48,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
48
48
|
|
49
49
|
$ puppet module install puppetlabs-vcsrepo --target-dir=/opt/puppetlabs/puppet/modules
|
50
50
|
Preparing to install into /opt/puppetlabs/puppet/modules ...
|
51
|
-
Downloading from
|
51
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
52
52
|
Installing -- do not interrupt ...
|
53
53
|
/opt/puppetlabs/puppet/modules
|
54
54
|
└── puppetlabs-vcsrepo (v0.0.4)
|
@@ -57,7 +57,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
57
57
|
|
58
58
|
$ puppet module install puppetlabs-vcsrepo --target-dir=/opt/puppetlabs/puppet/modules --modulepath /etc/puppetlabs/code/modules
|
59
59
|
Preparing to install into /opt/puppetlabs/puppet/modules ...
|
60
|
-
Downloading from
|
60
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
61
61
|
Installing -- do not interrupt ...
|
62
62
|
/opt/puppetlabs/puppet/modules
|
63
63
|
└── puppetlabs-vcsrepo (v0.0.4)
|
@@ -66,7 +66,7 @@ Puppet::Face.define(:module, '1.0.0') do
|
|
66
66
|
|
67
67
|
$ puppet module install puppetlabs-vcsrepo-0.0.4.tar.gz
|
68
68
|
Preparing to install into /etc/puppetlabs/code/modules ...
|
69
|
-
Downloading from
|
69
|
+
Downloading from https://forgeapi.puppetlabs.com ...
|
70
70
|
Installing -- do not interrupt ...
|
71
71
|
/etc/puppetlabs/code/modules
|
72
72
|
└── puppetlabs-vcsrepo (v0.0.4)
|
data/lib/puppet/face/parser.rb
CHANGED
@@ -107,7 +107,7 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
107
107
|
missing_files = files - available_files
|
108
108
|
|
109
109
|
dumps = available_files.collect do |file|
|
110
|
-
dump_parse(
|
110
|
+
dump_parse(Puppet::FileSystem.read(file, :encoding => 'utf-8'), file, options)
|
111
111
|
end.join("")
|
112
112
|
|
113
113
|
if missing_files.empty?
|
@@ -146,13 +146,16 @@ Puppet::Face.define(:parser, '0.0.1') do
|
|
146
146
|
# @api private
|
147
147
|
def validate_manifest(manifest = nil)
|
148
148
|
env = Puppet.lookup(:current_environment)
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
149
|
+
loaders = Puppet::Pops::Loaders.new(env)
|
150
|
+
Puppet.override( {:loaders => loaders } , 'For puppet parser validate') do
|
151
|
+
begin
|
152
|
+
validation_environment = manifest ? env.override_with(:manifest => manifest) : env
|
153
|
+
validation_environment.check_for_reparse
|
154
|
+
validation_environment.known_resource_types.clear
|
155
|
+
rescue => detail
|
156
|
+
Puppet.log_exception(detail)
|
157
|
+
exit(1)
|
158
|
+
end
|
159
|
+
end
|
157
160
|
end
|
158
161
|
end
|
data/lib/puppet/face/status.rb
CHANGED
@@ -37,7 +37,8 @@ Puppet::Indirector::Face.define(:status, '0.0.1') do
|
|
37
37
|
This action requires that the server's `auth.conf` file allow find
|
38
38
|
access to the `status` REST terminus. Puppet agent does not use this
|
39
39
|
facility, and it is turned off by default. See
|
40
|
-
<
|
40
|
+
<https://docs.puppetlabs.com/puppet/latest/reference/config_file_auth.html>
|
41
|
+
for more details.
|
41
42
|
EOT
|
42
43
|
find.examples <<-'EOT'
|
43
44
|
Check the status of the configured puppet master:
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'puppet/file_serving/metadata'
|
2
|
+
|
3
|
+
# Simplified metadata representation, suitable for the information
|
4
|
+
# that is available from HTTP headers.
|
5
|
+
class Puppet::FileServing::HttpMetadata < Puppet::FileServing::Metadata
|
6
|
+
|
7
|
+
def initialize(http_response, path = '/dev/null')
|
8
|
+
super(path)
|
9
|
+
|
10
|
+
# ignore options that do not apply to HTTP metadata
|
11
|
+
@owner = @group = @mode = nil
|
12
|
+
|
13
|
+
# hash available checksums for eventual collection
|
14
|
+
@checksums = {}
|
15
|
+
# use a default mtime in case there is no usable HTTP header
|
16
|
+
@checksums[:mtime] = "{mtime}#{Time.now}"
|
17
|
+
|
18
|
+
if checksum = http_response['content-md5']
|
19
|
+
# convert base64 digest to hex
|
20
|
+
checksum = checksum.unpack("m0").first.unpack("H*").first
|
21
|
+
@checksums[:md5] = "{md5}#{checksum}"
|
22
|
+
end
|
23
|
+
|
24
|
+
if last_modified = http_response['last-modified']
|
25
|
+
mtime = DateTime.httpdate(last_modified).to_time
|
26
|
+
@checksums[:mtime] = "{mtime}#{mtime}"
|
27
|
+
end
|
28
|
+
|
29
|
+
@ftype = 'file'
|
30
|
+
|
31
|
+
self
|
32
|
+
end
|
33
|
+
|
34
|
+
# Override of the parent class method. Does not call super!
|
35
|
+
# We can only return metadata that was extracted from the
|
36
|
+
# HTTP headers during #initialize.
|
37
|
+
def collect
|
38
|
+
# Prefer the checksum_type from the indirector request options
|
39
|
+
# but fall back to the alternative otherwise
|
40
|
+
[ @checksum_type, :md5, :mtime ].each do |type|
|
41
|
+
@checksum_type = type
|
42
|
+
@checksum = @checksums[type]
|
43
|
+
return if @checksum
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -3,6 +3,7 @@ require 'puppet/indirector'
|
|
3
3
|
require 'puppet/file_serving'
|
4
4
|
require 'puppet/file_serving/base'
|
5
5
|
require 'puppet/util/checksums'
|
6
|
+
require 'uri'
|
6
7
|
|
7
8
|
# A class that handles retrieving file metadata.
|
8
9
|
class Puppet::FileServing::Metadata < Puppet::FileServing::Base
|
@@ -12,7 +13,7 @@ class Puppet::FileServing::Metadata < Puppet::FileServing::Base
|
|
12
13
|
extend Puppet::Indirector
|
13
14
|
indirects :file_metadata, :terminus_class => :selector
|
14
15
|
|
15
|
-
attr_reader :path, :owner, :group, :mode, :checksum_type, :checksum, :ftype, :destination, :source_permissions
|
16
|
+
attr_reader :path, :owner, :group, :mode, :checksum_type, :checksum, :ftype, :destination, :source_permissions, :content_uri
|
16
17
|
|
17
18
|
PARAM_ORDER = [:mode, :ftype, :owner, :group]
|
18
19
|
|
@@ -28,6 +29,18 @@ class Puppet::FileServing::Metadata < Puppet::FileServing::Base
|
|
28
29
|
@source_permissions = source_permissions.intern
|
29
30
|
end
|
30
31
|
|
32
|
+
def content_uri=(path)
|
33
|
+
begin
|
34
|
+
uri = URI.parse(URI.escape(path))
|
35
|
+
rescue URI::InvalidURIError => detail
|
36
|
+
raise(ArgumentError, "Could not understand URI #{path}: #{detail}")
|
37
|
+
end
|
38
|
+
raise(ArgumentError, "Cannot use opaque URLs '#{path}'") unless uri.hierarchical?
|
39
|
+
raise(ArgumentError, "Must use URLs of type puppet as content URI") if uri.scheme != "puppet"
|
40
|
+
|
41
|
+
@content_uri = path
|
42
|
+
end
|
43
|
+
|
31
44
|
class MetaStat
|
32
45
|
extend Forwardable
|
33
46
|
|
@@ -121,6 +134,8 @@ class Puppet::FileServing::Metadata < Puppet::FileServing::Base
|
|
121
134
|
@checksum_type ||= Puppet[:digest_algorithm]
|
122
135
|
@ftype = data.delete('type')
|
123
136
|
@destination = data.delete('destination')
|
137
|
+
@source = data.delete('source')
|
138
|
+
@content_uri = data.delete('content_uri')
|
124
139
|
super(path,data)
|
125
140
|
end
|
126
141
|
|
@@ -136,7 +151,8 @@ class Puppet::FileServing::Metadata < Puppet::FileServing::Base
|
|
136
151
|
},
|
137
152
|
'type' => ftype,
|
138
153
|
'destination' => destination,
|
139
|
-
}
|
154
|
+
}.merge(content_uri ? {'content_uri' => content_uri} : {})
|
155
|
+
.merge(source ? {'source' => source} : {})
|
140
156
|
)
|
141
157
|
end
|
142
158
|
|