puppet 4.3.2-x86-mingw32 → 4.4.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/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
data/spec/unit/type/file_spec.rb
CHANGED
@@ -418,7 +418,7 @@ describe Puppet::Type.type(:file) do
|
|
418
418
|
it "should not copy values to the child which were set by the source" do
|
419
419
|
source = File.expand_path(__FILE__)
|
420
420
|
file[:source] = source
|
421
|
-
metadata = stub 'metadata', :owner => "root", :group => "root", :mode => '0755', :ftype => "file", :checksum => "{md5}whatever", :source => source
|
421
|
+
metadata = stub 'metadata', :owner => "root", :group => "root", :mode => '0755', :ftype => "file", :checksum => "{md5}whatever", :checksum_type => "md5", :source => source
|
422
422
|
file.parameter(:source).stubs(:metadata).returns metadata
|
423
423
|
|
424
424
|
file.parameter(:source).copy_source_values
|
@@ -518,19 +518,6 @@ describe Puppet::Type.type(:file) do
|
|
518
518
|
|
519
519
|
end
|
520
520
|
|
521
|
-
describe "#remove_less_specific_files" do
|
522
|
-
it "should remove any nested files that are already in the catalog" do
|
523
|
-
foo = described_class.new :path => File.join(file[:path], 'foo')
|
524
|
-
bar = described_class.new :path => File.join(file[:path], 'bar')
|
525
|
-
baz = described_class.new :path => File.join(file[:path], 'baz')
|
526
|
-
|
527
|
-
catalog.add_resource(foo)
|
528
|
-
catalog.add_resource(bar)
|
529
|
-
|
530
|
-
expect(file.remove_less_specific_files([foo, bar, baz])).to eq([baz])
|
531
|
-
end
|
532
|
-
end
|
533
|
-
|
534
521
|
describe "#remove_less_specific_files" do
|
535
522
|
it "should remove any nested files that are already in the catalog" do
|
536
523
|
foo = described_class.new :path => File.join(file[:path], 'foo')
|
@@ -720,6 +707,13 @@ describe Puppet::Type.type(:file) do
|
|
720
707
|
file.recurse_remote("first" => @resource)
|
721
708
|
end
|
722
709
|
|
710
|
+
it "should set the checksum parameter based on the metadata" do
|
711
|
+
file.stubs(:perform_recursion).returns [@first]
|
712
|
+
@resource.stubs(:[]=)
|
713
|
+
@resource.expects(:[]=).with(:checksum, "md5")
|
714
|
+
file.recurse_remote("first" => @resource)
|
715
|
+
end
|
716
|
+
|
723
717
|
it "should store the metadata in the source property for each resource so the source does not have to requery the metadata" do
|
724
718
|
file.stubs(:perform_recursion).returns [@first]
|
725
719
|
@resource.expects(:parameter).with(:source).returns @parameter
|
@@ -747,6 +741,16 @@ describe Puppet::Type.type(:file) do
|
|
747
741
|
file.recurse_remote("first" => @resource)
|
748
742
|
end
|
749
743
|
|
744
|
+
it "should update the main file's checksum parameter if the relative path is '.'" do
|
745
|
+
@first.stubs(:relative_path).returns "."
|
746
|
+
file.stubs(:perform_recursion).returns [@first]
|
747
|
+
|
748
|
+
file.stubs(:[]=)
|
749
|
+
file.expects(:[]=).with(:checksum, "md5")
|
750
|
+
|
751
|
+
file.recurse_remote("first" => @resource)
|
752
|
+
end
|
753
|
+
|
750
754
|
describe "and multiple sources are provided" do
|
751
755
|
let(:sources) do
|
752
756
|
h = {}
|
@@ -1070,11 +1074,13 @@ describe Puppet::Type.type(:file) do
|
|
1070
1074
|
it "should fail if the checksum parameter and content checksums do not match" do
|
1071
1075
|
checksum = stub('checksum_parameter', :sum => 'checksum_b', :sum_file => 'checksum_b')
|
1072
1076
|
file.stubs(:parameter).with(:checksum).returns(checksum)
|
1077
|
+
file.stubs(:parameter).with(:source).returns(nil)
|
1078
|
+
|
1073
1079
|
|
1074
1080
|
property = stub('content_property', :actual_content => "something", :length => "something".length, :write => 'checksum_a')
|
1075
1081
|
file.stubs(:property).with(:content).returns(property)
|
1076
1082
|
|
1077
|
-
expect { file.write
|
1083
|
+
expect { file.write property }.to raise_error(Puppet::Error)
|
1078
1084
|
end
|
1079
1085
|
end
|
1080
1086
|
|
@@ -1084,11 +1090,12 @@ describe Puppet::Type.type(:file) do
|
|
1084
1090
|
it "should not fail if the checksum property and content checksums do not match" do
|
1085
1091
|
checksum = stub('checksum_parameter', :sum => 'checksum_b')
|
1086
1092
|
file.stubs(:parameter).with(:checksum).returns(checksum)
|
1093
|
+
file.stubs(:parameter).with(:source).returns(nil)
|
1087
1094
|
|
1088
1095
|
property = stub('content_property', :actual_content => "something", :length => "something".length, :write => 'checksum_a')
|
1089
1096
|
file.stubs(:property).with(:content).returns(property)
|
1090
1097
|
|
1091
|
-
expect { file.write
|
1098
|
+
expect { file.write property }.to_not raise_error
|
1092
1099
|
end
|
1093
1100
|
end
|
1094
1101
|
|
@@ -1101,13 +1108,13 @@ describe Puppet::Type.type(:file) do
|
|
1101
1108
|
it "should convert symbolic mode to int" do
|
1102
1109
|
file[:mode] = 'oga=r'
|
1103
1110
|
Puppet::Util.expects(:replace_file).with(file[:path], 0444)
|
1104
|
-
file.write
|
1111
|
+
file.write
|
1105
1112
|
end
|
1106
1113
|
|
1107
1114
|
it "should support int modes" do
|
1108
1115
|
file[:mode] = '0444'
|
1109
1116
|
Puppet::Util.expects(:replace_file).with(file[:path], 0444)
|
1110
|
-
file.write
|
1117
|
+
file.write
|
1111
1118
|
end
|
1112
1119
|
end
|
1113
1120
|
|
@@ -1117,19 +1124,19 @@ describe Puppet::Type.type(:file) do
|
|
1117
1124
|
it "should set a umask of 0" do
|
1118
1125
|
file[:mode] = 'oga=r'
|
1119
1126
|
Puppet::Util.expects(:withumask).with(0)
|
1120
|
-
file.write
|
1127
|
+
file.write
|
1121
1128
|
end
|
1122
1129
|
|
1123
1130
|
it "should convert symbolic mode to int" do
|
1124
1131
|
file[:mode] = 'oga=r'
|
1125
1132
|
File.expects(:open).with(file[:path], anything, 0444)
|
1126
|
-
file.write
|
1133
|
+
file.write
|
1127
1134
|
end
|
1128
1135
|
|
1129
1136
|
it "should support int modes" do
|
1130
1137
|
file[:mode] = '0444'
|
1131
1138
|
File.expects(:open).with(file[:path], anything, 0444)
|
1132
|
-
file.write
|
1139
|
+
file.write
|
1133
1140
|
end
|
1134
1141
|
end
|
1135
1142
|
end
|
@@ -1139,7 +1146,7 @@ describe Puppet::Type.type(:file) do
|
|
1139
1146
|
it "should default to 0644 mode" do
|
1140
1147
|
file = described_class.new(:path => path, :content => "file content")
|
1141
1148
|
|
1142
|
-
file.write :
|
1149
|
+
file.write file.parameter(:content)
|
1143
1150
|
|
1144
1151
|
expect(File.stat(file[:path]).mode & 0777).to eq(0644)
|
1145
1152
|
end
|
@@ -1151,7 +1158,7 @@ describe Puppet::Type.type(:file) do
|
|
1151
1158
|
|
1152
1159
|
umask_from_the_user = 0777
|
1153
1160
|
Puppet::Util.withumask(umask_from_the_user) do
|
1154
|
-
file.write
|
1161
|
+
file.write
|
1155
1162
|
end
|
1156
1163
|
|
1157
1164
|
expect(File.stat(file[:path]).mode & 0777).to eq(0644)
|
@@ -1189,16 +1196,6 @@ describe Puppet::Type.type(:file) do
|
|
1189
1196
|
end
|
1190
1197
|
end
|
1191
1198
|
|
1192
|
-
describe "#write_content" do
|
1193
|
-
it "should delegate writing the file to the content property" do
|
1194
|
-
io = stub('io')
|
1195
|
-
file[:content] = "some content here"
|
1196
|
-
file.property(:content).expects(:write).with(io)
|
1197
|
-
|
1198
|
-
file.send(:write_content, io)
|
1199
|
-
end
|
1200
|
-
end
|
1201
|
-
|
1202
1199
|
describe "#write_temporary_file?" do
|
1203
1200
|
it "should be true if the file has specified content" do
|
1204
1201
|
file[:content] = 'some content'
|
@@ -1393,7 +1390,18 @@ describe Puppet::Type.type(:file) do
|
|
1393
1390
|
describe "when using source" do
|
1394
1391
|
before do
|
1395
1392
|
file[:source] = File.expand_path('/one')
|
1393
|
+
@checksum_values = {
|
1394
|
+
:md5 => 'd41d8cd98f00b204e9800998ecf8427e',
|
1395
|
+
:md5lite => 'd41d8cd98f00b204e9800998ecf8427e',
|
1396
|
+
:sha256 => 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
1397
|
+
:sha256lite => 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
1398
|
+
:sha1 => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
|
1399
|
+
:sha1lite => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
|
1400
|
+
:mtime => 'Jan 26 13:59:49 2016',
|
1401
|
+
:ctime => 'Jan 26 13:59:49 2016'
|
1402
|
+
}
|
1396
1403
|
end
|
1404
|
+
|
1397
1405
|
Puppet::Type::File::ParameterChecksum.value_collection.values.reject {|v| v == :none}.each do |checksum_type|
|
1398
1406
|
describe "with checksum '#{checksum_type}'" do
|
1399
1407
|
before do
|
@@ -1401,12 +1409,66 @@ describe Puppet::Type.type(:file) do
|
|
1401
1409
|
end
|
1402
1410
|
|
1403
1411
|
it 'should validate' do
|
1412
|
+
expect { file.validate }.to_not raise_error
|
1413
|
+
end
|
1414
|
+
|
1415
|
+
it 'should fail on an invalid checksum_value' do
|
1416
|
+
file[:checksum_value] = ''
|
1417
|
+
expect { file.validate }.to raise_error(Puppet::Error, "Checksum value '' is not a valid checksum type #{checksum_type}")
|
1418
|
+
end
|
1404
1419
|
|
1420
|
+
it 'should validate a valid checksum_value' do
|
1421
|
+
file[:checksum_value] = @checksum_values[checksum_type]
|
1405
1422
|
expect { file.validate }.to_not raise_error
|
1406
1423
|
end
|
1407
1424
|
end
|
1408
1425
|
end
|
1409
1426
|
|
1427
|
+
describe "on Windows when source_permissions is `use`" do
|
1428
|
+
before :each do
|
1429
|
+
Puppet.features.stubs(:microsoft_windows?).returns true
|
1430
|
+
file[:source_permissions] = "use"
|
1431
|
+
end
|
1432
|
+
let(:err_message) { "Copying owner/mode/group from the" <<
|
1433
|
+
" source file on Windows is not supported;" <<
|
1434
|
+
" use source_permissions => ignore." }
|
1435
|
+
|
1436
|
+
it "should issue error when retrieving" do
|
1437
|
+
expect { file.retrieve }.to raise_error(err_message)
|
1438
|
+
end
|
1439
|
+
|
1440
|
+
it "should issue error when retrieving if only user is unspecified" do
|
1441
|
+
file[:group] = 2
|
1442
|
+
file[:mode] = "0003"
|
1443
|
+
|
1444
|
+
expect { file.retrieve }.to raise_error(err_message)
|
1445
|
+
end
|
1446
|
+
|
1447
|
+
it "should issue error when retrieving if only group is unspecified" do
|
1448
|
+
file[:owner] = 1
|
1449
|
+
file[:mode] = "0003"
|
1450
|
+
|
1451
|
+
expect { file.retrieve }.to raise_error(err_message)
|
1452
|
+
end
|
1453
|
+
|
1454
|
+
it "should issue error when retrieving if only mode is unspecified" do
|
1455
|
+
file[:owner] = 1
|
1456
|
+
file[:group] = 2
|
1457
|
+
|
1458
|
+
expect { file.retrieve }.to raise_error(err_message)
|
1459
|
+
end
|
1460
|
+
|
1461
|
+
it "should issue warning when retrieve if group, owner, and mode are all specified" do
|
1462
|
+
file[:owner] = 1
|
1463
|
+
file[:group] = 2
|
1464
|
+
file[:mode] = "0003"
|
1465
|
+
|
1466
|
+
file.parameter(:source).expects(:copy_source_values)
|
1467
|
+
file.expects(:warning).with(err_message)
|
1468
|
+
expect { file.retrieve }.not_to raise_error
|
1469
|
+
end
|
1470
|
+
end
|
1471
|
+
|
1410
1472
|
describe "with checksum 'none'" do
|
1411
1473
|
before do
|
1412
1474
|
file[:checksum] = :none
|
@@ -1421,6 +1483,14 @@ describe Puppet::Type.type(:file) do
|
|
1421
1483
|
describe "when using content" do
|
1422
1484
|
before do
|
1423
1485
|
file[:content] = 'file contents'
|
1486
|
+
@checksum_values = {
|
1487
|
+
:md5 => 'd41d8cd98f00b204e9800998ecf8427e',
|
1488
|
+
:md5lite => 'd41d8cd98f00b204e9800998ecf8427e',
|
1489
|
+
:sha256 => 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
1490
|
+
:sha256lite => 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
1491
|
+
:sha1 => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
|
1492
|
+
:sha1lite => 'da39a3ee5e6b4b0d3255bfef95601890afd80709',
|
1493
|
+
}
|
1424
1494
|
end
|
1425
1495
|
|
1426
1496
|
(Puppet::Type::File::ParameterChecksum.value_collection.values - SOURCE_ONLY_CHECKSUMS).each do |checksum_type|
|
@@ -1432,6 +1502,16 @@ describe Puppet::Type.type(:file) do
|
|
1432
1502
|
it 'should validate' do
|
1433
1503
|
expect { file.validate }.to_not raise_error
|
1434
1504
|
end
|
1505
|
+
|
1506
|
+
it 'should fail on an invalid checksum_value' do
|
1507
|
+
file[:checksum_value] = ''
|
1508
|
+
expect { file.validate }.to raise_error(Puppet::Error, "Checksum value '' is not a valid checksum type #{checksum_type}")
|
1509
|
+
end
|
1510
|
+
|
1511
|
+
it 'should validate a valid checksum_value' do
|
1512
|
+
file[:checksum_value] = @checksum_values[checksum_type]
|
1513
|
+
expect { file.validate }.to_not raise_error
|
1514
|
+
end
|
1435
1515
|
end
|
1436
1516
|
end
|
1437
1517
|
|
@@ -1446,6 +1526,26 @@ describe Puppet::Type.type(:file) do
|
|
1446
1526
|
end
|
1447
1527
|
end
|
1448
1528
|
|
1529
|
+
describe "when checksum is none" do
|
1530
|
+
before do
|
1531
|
+
file[:checksum] = :none
|
1532
|
+
end
|
1533
|
+
|
1534
|
+
it 'should validate' do
|
1535
|
+
expect { file.validate }.to_not raise_error
|
1536
|
+
end
|
1537
|
+
|
1538
|
+
it 'should fail on an invalid checksum_value' do
|
1539
|
+
file[:checksum_value] = 'boo'
|
1540
|
+
expect { file.validate }.to raise_error(Puppet::Error, "Checksum value 'boo' is not a valid checksum type none")
|
1541
|
+
end
|
1542
|
+
|
1543
|
+
it 'should validate a valid checksum_value' do
|
1544
|
+
file[:checksum_value] = ''
|
1545
|
+
expect { file.validate }.to_not raise_error
|
1546
|
+
end
|
1547
|
+
end
|
1548
|
+
|
1449
1549
|
describe "when auditing" do
|
1450
1550
|
before :each do
|
1451
1551
|
# to prevent the catalog from trying to write state.yaml
|
@@ -1501,5 +1601,4 @@ describe Puppet::Type.type(:file) do
|
|
1501
1601
|
end
|
1502
1602
|
end
|
1503
1603
|
end
|
1504
|
-
|
1505
1604
|
end
|
@@ -67,6 +67,38 @@ describe Puppet::Type.type(:interface) do
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
describe "interface mode" do
|
71
|
+
it "should allow :access" do
|
72
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :mode => :access)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should allow :trunk" do
|
76
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :mode => :trunk)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should allow 'dynamic auto'" do
|
80
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :mode => 'dynamic auto')
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should allow 'dynamic desirable'" do
|
84
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :mode => 'dynamic desirable')
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "interface encapsulation" do
|
89
|
+
it "should allow :dot1q" do
|
90
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :encapsulation => :dot1q)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should allow :isl" do
|
94
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :encapsulation => :isl)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should allow :negotiate" do
|
98
|
+
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :encapsulation => :negotiate)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
70
102
|
describe "especially ipaddress" do
|
71
103
|
it "should allow ipv4 addresses" do
|
72
104
|
Puppet::Type.type(:interface).new(:name => "FastEthernet 0/1", :ipaddress => "192.168.0.1/24")
|
@@ -1,6 +1,9 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
module Puppet::Util::Plist
|
5
|
+
end
|
6
|
+
|
4
7
|
macauth_type = Puppet::Type.type(:macauthorization)
|
5
8
|
|
6
9
|
describe Puppet::Type.type(:macauthorization), "when checking macauthorization objects" do
|
@@ -10,7 +13,7 @@ describe Puppet::Type.type(:macauthorization), "when checking macauthorization o
|
|
10
13
|
authplist["rules"] = { "foorule" => "foo" }
|
11
14
|
authplist["rights"] = { "fooright" => "foo" }
|
12
15
|
provider_class = macauth_type.provider(macauth_type.providers[0])
|
13
|
-
Plist.stubs(:
|
16
|
+
Puppet::Util::Plist.stubs(:parse_plist).with("/etc/authorization").returns(authplist)
|
14
17
|
macauth_type.stubs(:defaultprovider).returns provider_class
|
15
18
|
@resource = macauth_type.new(:name => 'foo')
|
16
19
|
end
|
@@ -49,9 +49,9 @@ shared_examples_for "a yumrepo parameter that expects a boolean parameter" do |p
|
|
49
49
|
instance = described_class.new(:name => 'puppetlabs', param => value)
|
50
50
|
expect(instance[param]).to eq value
|
51
51
|
end
|
52
|
-
it "accepts #{value} downcased to #{value.downcase}" do
|
52
|
+
it "accepts #{value} downcased to #{value.downcase} and capitalizes it" do
|
53
53
|
instance = described_class.new(:name => 'puppetlabs', param => value.downcase)
|
54
|
-
expect(instance[param]).to eq value.downcase
|
54
|
+
expect(instance[param]).to eq value.downcase.capitalize
|
55
55
|
end
|
56
56
|
it "fails on valid value #{value} contained in another value" do
|
57
57
|
expect {
|
@@ -183,7 +183,7 @@ describe Puppet::Util::FileType do
|
|
183
183
|
let(:crontab_output) { 'suntab_output' }
|
184
184
|
|
185
185
|
# possible crontab output was taken from here:
|
186
|
-
#
|
186
|
+
# https://docs.oracle.com/cd/E19082-01/819-2380/sysrescron-60/index.html
|
187
187
|
let(:absent_crontab) do
|
188
188
|
'crontab: can\'t open your crontab file'
|
189
189
|
end
|
@@ -127,14 +127,14 @@ describe Puppet::Util::HttpProxy do
|
|
127
127
|
no_proxy = '127.0.0.1, localhost, mydomain.com, *.otherdomain.com, oddport.com:8080, *.otheroddport.com:8080, .anotherdomain.com, .anotheroddport.com:8080'
|
128
128
|
it "should return false if no_proxy does not exist in env" do
|
129
129
|
Puppet::Util.withenv('no_proxy' => nil) do
|
130
|
-
dest = '
|
130
|
+
dest = 'https://puppetlabs.com'
|
131
131
|
expect(subject.no_proxy?(dest)).to be false
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
135
|
it "should return false if the dest does not match any element in the no_proxy list" do
|
136
136
|
Puppet::Util.withenv('no_proxy' => no_proxy) do
|
137
|
-
dest = '
|
137
|
+
dest = 'https://puppetlabs.com'
|
138
138
|
expect(subject.no_proxy?(dest)).to be false
|
139
139
|
end
|
140
140
|
end
|
@@ -28,8 +28,6 @@ describe Puppet::Util::Log.desttypes[:file] do
|
|
28
28
|
include PuppetSpec::Files
|
29
29
|
|
30
30
|
before do
|
31
|
-
File.stubs(:open) # prevent actually creating the file
|
32
|
-
File.stubs(:chown) # prevent chown on non existing file from failing
|
33
31
|
@class = Puppet::Util::Log.desttypes[:file]
|
34
32
|
end
|
35
33
|
|
@@ -177,6 +177,75 @@ describe Puppet::Util::Logging do
|
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
180
|
+
describe "when sending a warn_once" do
|
181
|
+
before(:each) {
|
182
|
+
@logger.clear_deprecation_warnings
|
183
|
+
}
|
184
|
+
after(:each) {
|
185
|
+
# this is required because of bugs in Mocha whe tearing down expectations for each test
|
186
|
+
# why it works elsewhere is a mystery.
|
187
|
+
@logger.unstub(:warning)
|
188
|
+
}
|
189
|
+
|
190
|
+
it "warns with file when only file is given" do
|
191
|
+
@logger.expects(:warning).with(regexp_matches(/wet paint.*\(in aFile\)/m))
|
192
|
+
@logger.warn_once('kind', 'wp', "wet paint", 'aFile')
|
193
|
+
end
|
194
|
+
|
195
|
+
it "warns with unknown file and line when only line is given" do
|
196
|
+
@logger.expects(:warning).with(regexp_matches(/wet paint.*\(in unknown file, line 5\)/m))
|
197
|
+
@logger.warn_once('kind', 'wp', "wet paint", nil, 5)
|
198
|
+
end
|
199
|
+
|
200
|
+
it "warns with file and line when both are given" do
|
201
|
+
@logger.expects(:warning).with(regexp_matches(/wet paint.*\(at aFile:5\)/m))
|
202
|
+
@logger.warn_once('kind', 'wp', "wet paint",'aFile', 5)
|
203
|
+
end
|
204
|
+
|
205
|
+
it "warns once per key" do
|
206
|
+
@logger.expects(:warning).with(regexp_matches(/wet paint.*/m)).once
|
207
|
+
5.times do
|
208
|
+
@logger.warn_once('kind', 'wp', "wet paint")
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
describe "does not warn about undefined variables when disabled_warnings says so" do
|
214
|
+
let(:logger) { LoggingTester.new }
|
215
|
+
|
216
|
+
around(:each) do |example|
|
217
|
+
Puppet.settings.initialize_global_settings
|
218
|
+
logger.clear_deprecation_warnings
|
219
|
+
Puppet[:disable_warnings] = ['undefined_variables']
|
220
|
+
example.run
|
221
|
+
Puppet[:disable_warnings] = []
|
222
|
+
logger.unstub(:warning)
|
223
|
+
end
|
224
|
+
|
225
|
+
it "does not produce warning if kind is disabled" do
|
226
|
+
logger.expects(:warning).never
|
227
|
+
logger.warn_once('undefined_variables', 'wp', "wet paint")
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
describe "warns about undefined variables when deprecations are in disabled_warnings" do
|
232
|
+
let(:logger) { LoggingTester.new }
|
233
|
+
|
234
|
+
around(:each) do |example|
|
235
|
+
Puppet.settings.initialize_global_settings
|
236
|
+
logger.clear_deprecation_warnings
|
237
|
+
Puppet[:disable_warnings] = ['deprecations']
|
238
|
+
example.run
|
239
|
+
Puppet[:disable_warnings] = []
|
240
|
+
logger.unstub(:warning)
|
241
|
+
end
|
242
|
+
|
243
|
+
it "produces warning even if deprecation warnings are disabled " do
|
244
|
+
logger.expects(:warning).once
|
245
|
+
logger.warn_once('undefined_variables', 'wp', "wet paint")
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
180
249
|
describe "when formatting exceptions" do
|
181
250
|
it "should be able to format a chain of exceptions" do
|
182
251
|
exc3 = Puppet::Error.new("original")
|