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
@@ -41,7 +41,7 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
it "fails if the contents collide with existing contents" do
|
44
|
-
# This is the shortest known MD5 collision. See
|
44
|
+
# This is the shortest known MD5 collision. See https://eprint.iacr.org/2010/643.pdf
|
45
45
|
first_contents = [0x6165300e,0x87a79a55,0xf7c60bd0,0x34febd0b,
|
46
46
|
0x6503cf04,0x854f709e,0xfb0fc034,0x874c9c65,
|
47
47
|
0x2f94cc40,0x15a12deb,0x5c15f4a3,0x490786bb,
|
@@ -19,6 +19,9 @@ describe "Puppet::InfoService" do
|
|
19
19
|
class bar($bar_a, Integer $bar_b, String $bar_c = 'c default value') { }
|
20
20
|
class bar2($bar2_a, Integer $bar2_b, String $bar2_c = 'c default value') { }
|
21
21
|
CODE
|
22
|
+
'intp.pp' => <<-CODE,
|
23
|
+
class intp(String $intp_a = "default with interpolated $::os_family") { }
|
24
|
+
CODE
|
22
25
|
'fee.pp' => <<-CODE,
|
23
26
|
class fee(Integer $fee_a = 1+1) { }
|
24
27
|
CODE
|
@@ -31,6 +34,9 @@ describe "Puppet::InfoService" do
|
|
31
34
|
'borked.pp' => <<-CODE,
|
32
35
|
class Borked($Herp+$Derp) {}
|
33
36
|
CODE
|
37
|
+
'json_unsafe.pp' => <<-CODE,
|
38
|
+
class json_unsafe($arg1 = /.*/, $arg2 = default, $arg3 = {1 => 1}) {}
|
39
|
+
CODE
|
34
40
|
})
|
35
41
|
end
|
36
42
|
|
@@ -47,21 +53,23 @@ describe "Puppet::InfoService" do
|
|
47
53
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
48
54
|
expect(result).to eq({
|
49
55
|
"production"=>{
|
50
|
-
"#{code_dir}/foo.pp"=>[
|
56
|
+
"#{code_dir}/foo.pp"=> {:classes => [
|
51
57
|
{:name=>"foo",
|
52
58
|
:params=>[
|
53
59
|
{:name=>"foo_a"},
|
54
60
|
{:name=>"foo_b", :type=>"Integer"},
|
55
|
-
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value"
|
61
|
+
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value",
|
62
|
+
:default_source=>"'c default value'"}
|
56
63
|
]},
|
57
64
|
{:name=>"foo2",
|
58
65
|
:params=>[
|
59
66
|
{:name=>"foo2_a"},
|
60
67
|
{:name=>"foo2_b", :type=>"Integer"},
|
61
|
-
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value"
|
68
|
+
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value",
|
69
|
+
:default_source=>"'c default value'"}
|
62
70
|
]
|
63
71
|
}
|
64
|
-
]} # end production env
|
72
|
+
]}} # end production env
|
65
73
|
})
|
66
74
|
end
|
67
75
|
|
@@ -70,36 +78,40 @@ describe "Puppet::InfoService" do
|
|
70
78
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
71
79
|
expect(result).to eq({
|
72
80
|
"production"=>{
|
73
|
-
"#{code_dir}/foo.pp"=>[
|
81
|
+
"#{code_dir}/foo.pp"=>{:classes => [
|
74
82
|
{:name=>"foo",
|
75
83
|
:params=>[
|
76
84
|
{:name=>"foo_a"},
|
77
85
|
{:name=>"foo_b", :type=>"Integer"},
|
78
|
-
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value"
|
86
|
+
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value",
|
87
|
+
:default_source=>"'c default value'"}
|
79
88
|
]},
|
80
89
|
{:name=>"foo2",
|
81
90
|
:params=>[
|
82
91
|
{:name=>"foo2_a"},
|
83
92
|
{:name=>"foo2_b", :type=>"Integer"},
|
84
|
-
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value"
|
93
|
+
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value",
|
94
|
+
:default_source=>"'c default value'"}
|
85
95
|
]
|
86
96
|
}
|
87
|
-
],
|
88
|
-
"#{code_dir}/bar.pp"=>[
|
97
|
+
]},
|
98
|
+
"#{code_dir}/bar.pp"=> {:classes =>[
|
89
99
|
{:name=>"bar",
|
90
100
|
:params=>[
|
91
101
|
{:name=>"bar_a"},
|
92
102
|
{:name=>"bar_b", :type=>"Integer"},
|
93
|
-
{:name=>"bar_c", :type=>"String", :default_literal=>"c default value"
|
103
|
+
{:name=>"bar_c", :type=>"String", :default_literal=>"c default value",
|
104
|
+
:default_source=>"'c default value'"}
|
94
105
|
]},
|
95
106
|
{:name=>"bar2",
|
96
107
|
:params=>[
|
97
108
|
{:name=>"bar2_a"},
|
98
109
|
{:name=>"bar2_b", :type=>"Integer"},
|
99
|
-
{:name=>"bar2_c", :type=>"String", :default_literal=>"c default value"
|
110
|
+
{:name=>"bar2_c", :type=>"String", :default_literal=>"c default value",
|
111
|
+
:default_source=>"'c default value'"}
|
100
112
|
]
|
101
113
|
}
|
102
|
-
],
|
114
|
+
]},
|
103
115
|
|
104
116
|
} # end production env
|
105
117
|
}
|
@@ -116,50 +128,54 @@ describe "Puppet::InfoService" do
|
|
116
128
|
|
117
129
|
expect(result).to eq({
|
118
130
|
"production"=>{
|
119
|
-
"#{code_dir}/foo.pp"=>[
|
131
|
+
"#{code_dir}/foo.pp"=>{:classes => [
|
120
132
|
{:name=>"foo",
|
121
133
|
:params=>[
|
122
134
|
{:name=>"foo_a"},
|
123
135
|
{:name=>"foo_b", :type=>"Integer"},
|
124
|
-
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value"
|
136
|
+
{:name=>"foo_c", :type=>"String", :default_literal=>"c default value",
|
137
|
+
:default_source=>"'c default value'"}
|
125
138
|
]},
|
126
139
|
{:name=>"foo2",
|
127
140
|
:params=>[
|
128
141
|
{:name=>"foo2_a"},
|
129
142
|
{:name=>"foo2_b", :type=>"Integer"},
|
130
|
-
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value"
|
143
|
+
{:name=>"foo2_c", :type=>"String", :default_literal=>"c default value",
|
144
|
+
:default_source=>"'c default value'"}
|
131
145
|
]
|
132
146
|
}
|
133
|
-
],
|
134
|
-
"#{code_dir}/bar.pp"=>[
|
147
|
+
]},
|
148
|
+
"#{code_dir}/bar.pp"=>{:classes => [
|
135
149
|
{:name=>"bar",
|
136
150
|
:params=>[
|
137
151
|
{:name=>"bar_a"},
|
138
152
|
{:name=>"bar_b", :type=>"Integer"},
|
139
|
-
{:name=>"bar_c", :type=>"String", :default_literal=>"c default value"
|
153
|
+
{:name=>"bar_c", :type=>"String", :default_literal=>"c default value",
|
154
|
+
:default_source=>"'c default value'"}
|
140
155
|
]},
|
141
156
|
{:name=>"bar2",
|
142
157
|
:params=>[
|
143
158
|
{:name=>"bar2_a"},
|
144
159
|
{:name=>"bar2_b", :type=>"Integer"},
|
145
|
-
{:name=>"bar2_c", :type=>"String", :default_literal=>"c default value"
|
160
|
+
{:name=>"bar2_c", :type=>"String", :default_literal=>"c default value",
|
161
|
+
:default_source=>"'c default value'"}
|
146
162
|
]
|
147
163
|
}
|
148
|
-
|
164
|
+
]},
|
149
165
|
}, # end production env
|
150
166
|
"test"=>{
|
151
|
-
"#{code_dir}/fee.pp"=>[
|
167
|
+
"#{code_dir}/fee.pp"=>{:classes => [
|
152
168
|
{:name=>"fee",
|
153
169
|
:params=>[
|
154
170
|
{:name=>"fee_a", :type=>"Integer", :default_source=>"1+1"}
|
155
171
|
]},
|
156
|
-
],
|
157
|
-
"#{code_dir}/fum.pp"=>[
|
172
|
+
]},
|
173
|
+
"#{code_dir}/fum.pp"=>{:classes => [
|
158
174
|
{:name=>"fum",
|
159
175
|
:params=>[
|
160
176
|
{:name=>"fum_a"}
|
161
177
|
]},
|
162
|
-
],
|
178
|
+
]},
|
163
179
|
} # end test env
|
164
180
|
}
|
165
181
|
)
|
@@ -177,8 +193,8 @@ describe "Puppet::InfoService" do
|
|
177
193
|
'test' => files_test
|
178
194
|
})
|
179
195
|
expect(result).to eq({
|
180
|
-
|
181
|
-
|
196
|
+
"production"=>{ "#{code_dir}/fum.pp"=>{:classes => [ {:name=>"fum", :params=>[ {:name=>"fum_a"}]}]}},
|
197
|
+
"test" =>{ "#{code_dir}/fum.pp"=>{:classes => [ {:name=>"fum", :params=>[ {:name=>"fum_a"}]}]}}
|
182
198
|
}
|
183
199
|
)
|
184
200
|
end
|
@@ -188,29 +204,64 @@ describe "Puppet::InfoService" do
|
|
188
204
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
189
205
|
expect(result).to eq({
|
190
206
|
"production"=>{
|
191
|
-
"#{code_dir}/fee.pp"=>[
|
207
|
+
"#{code_dir}/fee.pp"=>{:classes => [
|
192
208
|
{:name=>"fee",
|
193
209
|
:params=>[
|
194
210
|
{:name=>"fee_a", :type=>"Integer", :default_source=>"1+1"}
|
195
211
|
]},
|
196
|
-
]} # end production env
|
212
|
+
]}} # end production env
|
197
213
|
})
|
198
214
|
end
|
199
215
|
|
216
|
+
it "produces source string for literals that are not pure json" do
|
217
|
+
files = ['json_unsafe.pp'].map {|f| File.join(code_dir, f) }
|
218
|
+
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
219
|
+
expect(result).to eq({
|
220
|
+
"production"=>{
|
221
|
+
"#{code_dir}/json_unsafe.pp" => {:classes => [
|
222
|
+
{:name=>"json_unsafe",
|
223
|
+
:params => [
|
224
|
+
{:name => "arg1",
|
225
|
+
:default_source => "/.*/" },
|
226
|
+
{:name => "arg2",
|
227
|
+
:default_source => "default" },
|
228
|
+
{:name => "arg3",
|
229
|
+
:default_source => "{1 => 1}" }
|
230
|
+
]}
|
231
|
+
]}} # end production env
|
232
|
+
})
|
233
|
+
end
|
234
|
+
|
200
235
|
it "produces no type entry if type is not given" do
|
201
236
|
files = ['fum.pp'].map {|f| File.join(code_dir, f) }
|
202
237
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
203
238
|
expect(result).to eq({
|
204
239
|
"production"=>{
|
205
|
-
"#{code_dir}/fum.pp"=>[
|
240
|
+
"#{code_dir}/fum.pp"=>{:classes => [
|
206
241
|
{:name=>"fum",
|
207
242
|
:params=>[
|
208
243
|
{:name=>"fum_a" }
|
209
244
|
]},
|
210
|
-
]} # end production env
|
245
|
+
]}} # end production env
|
211
246
|
})
|
212
247
|
end
|
213
248
|
|
249
|
+
it 'does not evaluate default expressions' do
|
250
|
+
files = ['intp.pp'].map {|f| File.join(code_dir, f) }
|
251
|
+
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
252
|
+
expect(result).to eq({
|
253
|
+
'production' =>{
|
254
|
+
"#{code_dir}/intp.pp"=>{:classes => [
|
255
|
+
{:name=> 'intp',
|
256
|
+
:params=>[
|
257
|
+
{:name=> 'intp_a',
|
258
|
+
:type=> 'String',
|
259
|
+
:default_source=>'"default with interpolated $::os_family"'}
|
260
|
+
]},
|
261
|
+
]}} # end production env
|
262
|
+
})
|
263
|
+
end
|
264
|
+
|
214
265
|
it "produces error entry if file is broken" do
|
215
266
|
files = ['borked.pp'].map {|f| File.join(code_dir, f) }
|
216
267
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
@@ -228,9 +279,20 @@ describe "Puppet::InfoService" do
|
|
228
279
|
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
229
280
|
expect(result).to eq({
|
230
281
|
"production"=>{
|
231
|
-
|
232
|
-
|
282
|
+
"#{code_dir}/nothing.pp"=> {:classes => [] }
|
283
|
+
},
|
233
284
|
})
|
234
285
|
end
|
286
|
+
|
287
|
+
it "produces error when given a file that does not exist" do
|
288
|
+
files = ['the_tooth_fairy_does_not_exist.pp'].map {|f| File.join(code_dir, f) }
|
289
|
+
result = Puppet::InfoService.classes_per_environment({'production' => files })
|
290
|
+
expect(result).to eq({
|
291
|
+
"production"=>{
|
292
|
+
"#{code_dir}/the_tooth_fairy_does_not_exist.pp" => {:error => "The file #{code_dir}/the_tooth_fairy_does_not_exist.pp does not exist"}
|
293
|
+
},
|
294
|
+
})
|
295
|
+
end
|
296
|
+
|
235
297
|
end
|
236
298
|
end
|
data/spec/unit/module_spec.rb
CHANGED
@@ -347,6 +347,20 @@ describe Puppet::Module do
|
|
347
347
|
expect(mod.unmet_dependencies).to eq([])
|
348
348
|
end
|
349
349
|
|
350
|
+
it "should throw an error if invalid dependencies are specified" do
|
351
|
+
expect {
|
352
|
+
PuppetSpec::Modules.create(
|
353
|
+
'foobar',
|
354
|
+
@modpath,
|
355
|
+
:metadata => {
|
356
|
+
:dependencies => ""
|
357
|
+
}
|
358
|
+
)
|
359
|
+
}.to raise_error(
|
360
|
+
Puppet::Module::MissingMetadata,
|
361
|
+
/dependencies in the file metadata.json of the module foobar must be an array, not: ''/)
|
362
|
+
end
|
363
|
+
|
350
364
|
it "should only list unmet dependencies" do
|
351
365
|
env = Puppet::Node::Environment.create(:testing, [@modpath])
|
352
366
|
|
@@ -343,12 +343,12 @@ symlinkfile
|
|
343
343
|
f.puts({
|
344
344
|
"name" => "#{module_name}",
|
345
345
|
"version" => "#{version}",
|
346
|
-
"source" => "
|
346
|
+
"source" => "https://github.com/testing/#{module_name}",
|
347
347
|
"author" => "testing",
|
348
348
|
"license" => "Apache License Version 2.0",
|
349
349
|
"summary" => "Puppet testing module",
|
350
350
|
"description" => "This module can be used for basic testing",
|
351
|
-
"project_page" => "
|
351
|
+
"project_page" => "https://github.com/testing/#{module_name}"
|
352
352
|
}.to_json)
|
353
353
|
end
|
354
354
|
end
|
@@ -381,12 +381,12 @@ symlinkfile
|
|
381
381
|
f.puts({
|
382
382
|
"name" => "#{module_name}",
|
383
383
|
"version" => "#{version}",
|
384
|
-
"source" => "
|
384
|
+
"source" => "https://github.com/testing/#{module_name}",
|
385
385
|
"author" => "testing",
|
386
386
|
"license" => "Apache License Version 2.0",
|
387
387
|
"summary" => "Puppet testing module",
|
388
388
|
"description" => "This module can be used for basic testing",
|
389
|
-
"project_page" => "
|
389
|
+
"project_page" => "https://github.com/testing/#{module_name}",
|
390
390
|
"checksums" => {"README.md" => "deadbeef"}
|
391
391
|
}.to_json)
|
392
392
|
end
|
@@ -301,7 +301,7 @@ describe Puppet::Network::AuthStore::Declaration do
|
|
301
301
|
|
302
302
|
issue_7477 = !(IPAddr.new(ip) rescue false)
|
303
303
|
|
304
|
-
describe "on rubies with a fix for issue [7477](
|
304
|
+
describe "on rubies with a fix for issue [7477](https://goo.gl/Bb1LU)", :if => issue_7477
|
305
305
|
it "should match the specified IP" do
|
306
306
|
expect(declaration).to be_match('www.testsite.org',ip)
|
307
307
|
end
|
@@ -163,6 +163,7 @@ describe Puppet::Network::HTTP::Connection do
|
|
163
163
|
|
164
164
|
Net::HTTP.any_instance.stubs(:start)
|
165
165
|
Net::HTTP.any_instance.stubs(:request).returns(httpok)
|
166
|
+
Puppet::Network::HTTP::Pool.any_instance.stubs(:setsockopts)
|
166
167
|
|
167
168
|
connection.get('request')
|
168
169
|
end
|
@@ -109,6 +109,31 @@ describe Puppet::Network::HTTP::Pool do
|
|
109
109
|
end rescue nil
|
110
110
|
end
|
111
111
|
|
112
|
+
it 'sets keepalive bit on network socket' do
|
113
|
+
pool = create_pool
|
114
|
+
s = Socket.new(Socket::PF_INET, Socket::SOCK_STREAM)
|
115
|
+
pool.setsockopts(Net::BufferedIO.new(s))
|
116
|
+
|
117
|
+
# On windows, Socket.getsockopt() doesn't return exactly the same data
|
118
|
+
# as an equivalent Socket::Option.new() statement, so we strip off the
|
119
|
+
# unrelevant bits only on this platform.
|
120
|
+
#
|
121
|
+
# To make sure we're not voiding the test case by doing this, we check
|
122
|
+
# both with and without the keepalive bit set.
|
123
|
+
#
|
124
|
+
# This workaround can be removed once all the ruby versions we care about
|
125
|
+
# have the patch from https://bugs.ruby-lang.org/issues/11958 applied.
|
126
|
+
#
|
127
|
+
if Puppet::Util::Platform.windows?
|
128
|
+
keepalive = Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true).data[0]
|
129
|
+
nokeepalive = Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false).data[0]
|
130
|
+
expect(s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).data).to eq(keepalive)
|
131
|
+
expect(s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).data).to_not eq(nokeepalive)
|
132
|
+
else
|
133
|
+
expect(s.getsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE).bool).to eq(true)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
112
137
|
context 'when releasing connections' do
|
113
138
|
it 'releases HTTP connections' do
|
114
139
|
conn = create_connection(site)
|
@@ -150,6 +175,7 @@ describe Puppet::Network::HTTP::Pool do
|
|
150
175
|
conn = create_connection(site)
|
151
176
|
pool = create_pool
|
152
177
|
pool.factory.expects(:create_connection).with(site).returns(conn)
|
178
|
+
pool.expects(:setsockopts)
|
153
179
|
|
154
180
|
expect(pool.borrow(site, verify)).to eq(conn)
|
155
181
|
end
|
@@ -169,6 +195,7 @@ describe Puppet::Network::HTTP::Pool do
|
|
169
195
|
|
170
196
|
conn = create_connection(site)
|
171
197
|
pool.factory.expects(:create_connection).with(site).returns(conn)
|
198
|
+
pool.expects(:setsockopts)
|
172
199
|
|
173
200
|
expect(pool.borrow(site, verify)).to eq(conn)
|
174
201
|
end
|
@@ -179,6 +206,7 @@ describe Puppet::Network::HTTP::Pool do
|
|
179
206
|
|
180
207
|
pool = create_pool
|
181
208
|
pool.factory.expects(:create_connection).with(site).returns(conn)
|
209
|
+
pool.expects(:setsockopts)
|
182
210
|
|
183
211
|
expect(pool.borrow(site, verify)).to eq(conn)
|
184
212
|
end
|
@@ -205,6 +233,7 @@ describe Puppet::Network::HTTP::Pool do
|
|
205
233
|
|
206
234
|
pool = create_pool_with_expired_connections(site, conn)
|
207
235
|
pool.factory.expects(:create_connection => stub('conn', :start => nil))
|
236
|
+
pool.expects(:setsockopts)
|
208
237
|
|
209
238
|
pool.borrow(site, verify)
|
210
239
|
end
|
@@ -217,6 +246,7 @@ describe Puppet::Network::HTTP::Pool do
|
|
217
246
|
|
218
247
|
pool = create_pool_with_expired_connections(site, conn)
|
219
248
|
pool.factory.expects(:create_connection => stub('open_conn', :start => nil))
|
249
|
+
pool.expects(:setsockopts)
|
220
250
|
|
221
251
|
pool.borrow(site, verify)
|
222
252
|
end
|
data/spec/unit/node_spec.rb
CHANGED
@@ -258,6 +258,22 @@ describe Puppet::Parser::Compiler do
|
|
258
258
|
expect(@compiler.topscope['c']).to eq("d")
|
259
259
|
end
|
260
260
|
|
261
|
+
it "should set node parameters thar are of Symbol type as String variables in the top scope" do
|
262
|
+
params = {"a" => :b}
|
263
|
+
@node.stubs(:parameters).returns(params)
|
264
|
+
compile_stub(:set_node_parameters)
|
265
|
+
@compiler.compile
|
266
|
+
expect(@compiler.topscope['a']).to eq("b")
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should set the node's environment as a string variable in top scope" do
|
270
|
+
compile_stub(:set_node_parameters)
|
271
|
+
@node.merge({'wat' => 'this is how the sausage is made'})
|
272
|
+
@compiler.compile
|
273
|
+
expect(@compiler.topscope['environment']).to eq("testing")
|
274
|
+
expect(@compiler.topscope['wat']).to eq('this is how the sausage is made')
|
275
|
+
end
|
276
|
+
|
261
277
|
it "should set the client and server versions on the catalog" do
|
262
278
|
params = {"clientversion" => "2", "serverversion" => "3"}
|
263
279
|
@node.stubs(:parameters).returns(params)
|