puppet 3.6.2 → 3.7.0
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/CONTRIBUTING.md +2 -3
- data/Gemfile +14 -10
- data/README.md +1 -1
- data/ext/build_defaults.yaml +16 -1
- data/ext/debian/control +3 -2
- data/ext/debian/puppet-common.dirs +1 -0
- data/ext/debian/puppet-common.postinst +8 -8
- data/ext/debian/puppet-common.postrm +2 -1
- data/ext/project_data.yaml +16 -12
- data/ext/rack/example-passenger-vhost.conf +2 -2
- data/ext/redhat/puppet.spec.erb +6 -3
- data/ext/windows/service/daemon.rb +47 -41
- data/install.rb +1 -1
- data/lib/puppet.rb +34 -24
- data/lib/puppet/application.rb +34 -1
- data/lib/puppet/application/agent.rb +9 -8
- data/lib/puppet/application/apply.rb +14 -5
- data/lib/puppet/application/doc.rb +4 -11
- data/lib/puppet/application/master.rb +19 -17
- data/lib/puppet/application/queue.rb +1 -1
- data/lib/puppet/application/resource.rb +0 -1
- data/lib/puppet/configurer.rb +39 -2
- data/lib/puppet/configurer/downloader.rb +5 -10
- data/lib/puppet/configurer/downloader_factory.rb +34 -0
- data/lib/puppet/configurer/plugin_handler.rb +11 -17
- data/lib/puppet/defaults.rb +244 -119
- data/lib/puppet/environments.rb +8 -0
- data/lib/puppet/external/nagios/base.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -8
- data/lib/puppet/face/ca.rb +7 -0
- data/lib/puppet/face/file/download.rb +5 -2
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/instrumentation_data.rb +2 -1
- data/lib/puppet/face/instrumentation_listener.rb +2 -1
- data/lib/puppet/face/instrumentation_probe.rb +2 -1
- data/lib/puppet/face/module/build.rb +2 -2
- data/lib/puppet/face/module/generate.rb +20 -12
- data/lib/puppet/face/module/install.rb +4 -3
- data/lib/puppet/face/module/uninstall.rb +7 -0
- data/lib/puppet/face/module/upgrade.rb +11 -3
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +99 -7
- data/lib/puppet/feature/base.rb +18 -12
- data/lib/puppet/feature/cfacter.rb +14 -0
- data/lib/puppet/feature/pe_license.rb +4 -0
- data/lib/puppet/file_bucket/dipper.rb +19 -12
- data/lib/puppet/file_bucket/file.rb +73 -10
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/file_system/file19.rb +41 -0
- data/lib/puppet/file_system/file19windows.rb +0 -1
- data/lib/puppet/file_system/uniquefile.rb +190 -0
- data/lib/puppet/forge.rb +34 -7
- data/lib/puppet/forge/errors.rb +5 -6
- data/lib/puppet/forge/repository.rb +14 -2
- data/lib/puppet/functions.rb +19 -12
- data/lib/puppet/functions/assert_type.rb +27 -10
- data/lib/puppet/functions/each.rb +111 -0
- data/lib/puppet/functions/epp.rb +54 -0
- data/lib/puppet/functions/filter.rb +113 -0
- data/lib/puppet/functions/inline_epp.rb +88 -0
- data/lib/puppet/functions/map.rb +97 -0
- data/lib/puppet/functions/match.rb +102 -0
- data/lib/puppet/functions/reduce.rb +94 -0
- data/lib/puppet/functions/slice.rb +126 -0
- data/lib/puppet/functions/with.rb +23 -0
- data/lib/puppet/indirector/catalog/compiler.rb +4 -4
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -45
- data/lib/puppet/indirector/facts/couch.rb +3 -1
- data/lib/puppet/indirector/facts/facter.rb +52 -65
- data/lib/puppet/indirector/file_bucket_file/file.rb +6 -3
- data/lib/puppet/indirector/hiera.rb +48 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/request.rb +9 -3
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/rest.rb +7 -3
- data/lib/puppet/loaders.rb +0 -1
- data/lib/puppet/module.rb +2 -1
- data/lib/puppet/module_tool.rb +2 -0
- data/lib/puppet/module_tool/applications/application.rb +4 -5
- data/lib/puppet/module_tool/applications/builder.rb +64 -5
- data/lib/puppet/module_tool/applications/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/applications/unpacker.rb +14 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +23 -13
- data/lib/puppet/module_tool/dependency.rb +12 -0
- data/lib/puppet/module_tool/errors/shared.rb +1 -1
- data/lib/puppet/module_tool/errors/upgrader.rb +20 -0
- data/lib/puppet/module_tool/installed_modules.rb +6 -1
- data/lib/puppet/module_tool/metadata.rb +53 -3
- data/lib/puppet/module_tool/modulefile.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -17
- data/lib/puppet/module_tool/tar/mini.rb +20 -2
- data/lib/puppet/network/http.rb +5 -0
- data/lib/puppet/network/http/api/v1.rb +2 -2
- data/lib/puppet/network/http/api/v2/environments.rb +15 -1
- data/lib/puppet/network/http/connection.rb +54 -68
- data/lib/puppet/network/http/factory.rb +44 -0
- data/lib/puppet/network/http/handler.rb +12 -6
- data/lib/puppet/network/http/nocache_pool.rb +21 -0
- data/lib/puppet/network/http/pool.rb +120 -0
- data/lib/puppet/network/http/rack/rest.rb +3 -1
- data/lib/puppet/network/http/session.rb +17 -0
- data/lib/puppet/network/http/site.rb +39 -0
- data/lib/puppet/network/http/webrick/rest.rb +3 -1
- data/lib/puppet/network/http_pool.rb +3 -4
- data/lib/puppet/node.rb +19 -6
- data/lib/puppet/node/environment.rb +34 -8
- data/lib/puppet/parser/ast/collection.rb +4 -0
- data/lib/puppet/parser/ast/collexpr.rb +1 -1
- data/lib/puppet/parser/ast/node.rb +5 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +49 -6
- data/lib/puppet/parser/compiler.rb +66 -38
- data/lib/puppet/parser/e4_parser_adapter.rb +2 -2
- data/lib/puppet/parser/files.rb +76 -33
- data/lib/puppet/parser/functions.rb +1 -7
- data/lib/puppet/parser/functions/assert_type.rb +31 -0
- data/lib/puppet/parser/functions/contain.rb +15 -5
- data/lib/puppet/parser/functions/create_resources.rb +5 -1
- data/lib/puppet/parser/functions/digest.rb +5 -0
- data/lib/puppet/parser/functions/each.rb +46 -107
- data/lib/puppet/parser/functions/epp.rb +13 -9
- data/lib/puppet/parser/functions/file.rb +20 -12
- data/lib/puppet/parser/functions/filter.rb +32 -88
- data/lib/puppet/parser/functions/include.rb +12 -24
- data/lib/puppet/parser/functions/inline_epp.rb +9 -12
- data/lib/puppet/parser/functions/lookup.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +30 -83
- data/lib/puppet/parser/functions/match.rb +28 -0
- data/lib/puppet/parser/functions/reduce.rb +69 -98
- data/lib/puppet/parser/functions/require.rb +13 -5
- data/lib/puppet/parser/functions/search.rb +6 -1
- data/lib/puppet/parser/functions/slice.rb +35 -103
- data/lib/puppet/parser/functions/template.rb +12 -5
- data/lib/puppet/parser/functions/with.rb +21 -0
- data/lib/puppet/parser/lexer.rb +1 -1
- data/lib/puppet/parser/parser_factory.rb +21 -33
- data/lib/puppet/parser/resource.rb +2 -3
- data/lib/puppet/parser/scope.rb +85 -15
- data/lib/puppet/pops.rb +9 -11
- data/lib/puppet/pops/adapters.rb +2 -1
- data/lib/puppet/pops/binder/bindings_checker.rb +4 -4
- data/lib/puppet/pops/binder/bindings_factory.rb +6 -6
- data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +2 -2
- data/lib/puppet/pops/binder/bindings_model.rb +58 -191
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +1 -1
- data/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
- data/lib/puppet/pops/binder/injector.rb +9 -9
- data/lib/puppet/pops/binder/key_factory.rb +2 -2
- data/lib/puppet/pops/binder/lookup.rb +14 -6
- data/lib/puppet/pops/binder/producers.rb +9 -12
- data/lib/puppet/pops/evaluator/access_operator.rb +35 -29
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +151 -35
- data/lib/puppet/pops/evaluator/compare_operator.rb +26 -22
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -15
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +277 -229
- data/lib/puppet/pops/evaluator/relationship_operator.rb +3 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +86 -53
- data/lib/puppet/pops/functions/dispatch.rb +9 -4
- data/lib/puppet/pops/functions/dispatcher.rb +2 -169
- data/lib/puppet/pops/issue_reporter.rb +14 -6
- data/lib/puppet/pops/issues.rb +96 -21
- data/lib/puppet/pops/loader/base_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +1 -1
- data/lib/puppet/pops/loader/loader_paths.rb +2 -21
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/static_loader.rb +12 -2
- data/lib/puppet/pops/model/ast_transformer.rb +4 -24
- data/lib/puppet/pops/model/factory.rb +72 -10
- data/lib/puppet/pops/model/model.rb +82 -574
- data/lib/puppet/pops/model/model_label_provider.rb +4 -2
- data/lib/puppet/pops/model/model_meta.rb +576 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +27 -5
- data/lib/puppet/pops/parser/egrammar.ra +209 -221
- data/lib/puppet/pops/parser/eparser.rb +1459 -1431
- data/lib/puppet/pops/parser/evaluating_parser.rb +15 -75
- data/lib/puppet/pops/parser/lexer2.rb +14 -10
- data/lib/puppet/pops/parser/lexer_support.rb +6 -0
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +31 -49
- data/lib/puppet/pops/patterns.rb +10 -10
- data/lib/puppet/pops/semantic_error.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +24 -13
- data/lib/puppet/pops/types/type_calculator.rb +188 -87
- data/lib/puppet/pops/types/type_factory.rb +79 -53
- data/lib/puppet/pops/types/type_parser.rb +22 -16
- data/lib/puppet/pops/types/types.rb +283 -392
- data/lib/puppet/pops/types/types_meta.rb +223 -0
- data/lib/puppet/pops/utils.rb +16 -14
- data/lib/puppet/pops/validation/checker4_0.rb +264 -18
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -1
- data/lib/puppet/pops/visitor.rb +0 -103
- data/lib/puppet/provider/exec.rb +10 -1
- data/lib/puppet/provider/file/windows.rb +3 -4
- data/lib/puppet/provider/group/windows_adsi.rb +10 -10
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -4
- data/lib/puppet/provider/package/apt.rb +5 -1
- data/lib/puppet/provider/package/gem.rb +7 -3
- data/lib/puppet/provider/package/openbsd.rb +84 -7
- data/lib/puppet/provider/package/pacman.rb +29 -4
- data/lib/puppet/provider/package/rpm.rb +5 -7
- data/lib/puppet/provider/package/sun.rb +5 -1
- data/lib/puppet/provider/package/windows.rb +6 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +13 -1
- data/lib/puppet/provider/package/yum.rb +7 -3
- data/lib/puppet/provider/package/zypper.rb +5 -1
- data/lib/puppet/provider/parsedfile.rb +17 -1
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +6 -12
- data/lib/puppet/provider/service/freebsd.rb +12 -12
- data/lib/puppet/provider/service/init.rb +5 -0
- data/lib/puppet/provider/service/launchd.rb +0 -3
- data/lib/puppet/provider/service/openbsd.rb +8 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
- data/lib/puppet/provider/sshkey/parsed.rb +5 -0
- data/lib/puppet/provider/user/user_role_add.rb +5 -4
- data/lib/puppet/provider/user/windows_adsi.rb +8 -8
- data/lib/puppet/provider/zone/solaris.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +8 -6
- data/lib/puppet/reports/store.rb +4 -9
- data/lib/puppet/resource.rb +75 -11
- data/lib/puppet/resource/catalog.rb +9 -7
- data/lib/puppet/resource/type.rb +27 -0
- data/lib/puppet/settings.rb +61 -41
- data/lib/puppet/settings/base_setting.rb +9 -3
- data/lib/puppet/settings/environment_conf.rb +32 -4
- data/lib/puppet/settings/file_setting.rb +9 -1
- data/lib/puppet/settings/priority_setting.rb +5 -5
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/certificate_authority.rb +15 -6
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +2 -1
- data/lib/puppet/ssl/host.rb +3 -2
- data/lib/puppet/ssl/inventory.rb +11 -6
- data/lib/puppet/ssl/validator/default_validator.rb +1 -0
- data/lib/puppet/ssl/validator/no_validator.rb +3 -0
- data/lib/puppet/transaction.rb +29 -0
- data/lib/puppet/transaction/resource_harness.rb +16 -3
- data/lib/puppet/type.rb +71 -49
- data/lib/puppet/type/exec.rb +36 -8
- data/lib/puppet/type/file.rb +56 -16
- data/lib/puppet/type/file/content.rb +3 -3
- data/lib/puppet/type/file/mode.rb +12 -3
- data/lib/puppet/type/file/source.rb +4 -1
- data/lib/puppet/type/group.rb +1 -1
- data/lib/puppet/type/mount.rb +1 -3
- data/lib/puppet/type/resources.rb +59 -35
- data/lib/puppet/type/ssh_authorized_key.rb +54 -16
- data/lib/puppet/type/sshkey.rb +1 -1
- data/lib/puppet/type/user.rb +17 -11
- data/lib/puppet/type/yumrepo.rb +59 -8
- data/lib/puppet/type/zone.rb +3 -6
- data/lib/puppet/util.rb +64 -55
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/colors.rb +61 -19
- data/lib/puppet/util/command_line.rb +21 -4
- data/lib/puppet/util/execution.rb +41 -29
- data/lib/puppet/util/feature.rb +15 -4
- data/lib/puppet/util/filetype.rb +6 -2
- data/lib/puppet/util/http_proxy.rb +29 -2
- data/lib/puppet/util/lockfile.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +7 -3
- data/lib/puppet/util/logging.rb +44 -14
- data/lib/puppet/util/pidlock.rb +11 -5
- data/lib/puppet/util/posix.rb +21 -31
- data/lib/puppet/util/profiler.rb +17 -9
- data/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/lib/puppet/util/profiler/logging.rb +12 -11
- data/lib/puppet/util/profiler/wall_clock.rb +7 -6
- data/lib/puppet/util/rdoc.rb +8 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -8
- data/lib/puppet/util/windows.rb +14 -3
- data/lib/puppet/util/windows/access_control_list.rb +4 -4
- data/lib/puppet/util/{adsi.rb → windows/adsi.rb} +99 -37
- data/lib/puppet/util/windows/api_types.rb +255 -0
- data/lib/puppet/util/windows/com.rb +224 -0
- data/lib/puppet/util/windows/error.rb +72 -5
- data/lib/puppet/util/windows/file.rb +254 -132
- data/lib/puppet/util/windows/process.rb +293 -177
- data/lib/puppet/util/windows/registry.rb +12 -2
- data/lib/puppet/util/windows/root_certs.rb +16 -9
- data/lib/puppet/util/windows/security.rb +501 -232
- data/lib/puppet/util/windows/sid.rb +80 -36
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/taskscheduler.rb +1241 -0
- data/lib/puppet/util/windows/user.rb +241 -57
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/vendor/load_pathspec.rb +1 -0
- data/lib/puppet/vendor/load_rgen.rb +1 -0
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
- data/lib/puppet/vendor/pathspec/LICENSE +201 -0
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/pathspec/README.md +53 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
- data/lib/puppet/vendor/require_vendored.rb +2 -0
- data/lib/puppet/vendor/rgen/CHANGELOG +197 -0
- data/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
- data/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/rgen/README.rdoc +78 -0
- data/lib/puppet/vendor/rgen/Rakefile +41 -0
- data/lib/puppet/vendor/rgen/TODO +41 -0
- data/lib/puppet/vendor/rgen/anounce.txt +61 -0
- data/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
- data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
- data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
- data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
- data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
- data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
- data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
- data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
- data/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
- data/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
- data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
- data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
- data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
- data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
- data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
- data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
- data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
- data/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
- data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
- data/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
- data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
- data/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
- data/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
- data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
- data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
- data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
- data/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
- data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
- data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
- data/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
- data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +6 -0
- data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +1 -0
- data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +2 -0
- data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
- data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
- data/spec/fixtures/unit/indirector/hiera/invalid.yaml +1 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +3 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +3 -0
- data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +4 -0
- data/spec/fixtures/unit/type/user/authorized_keys +1 -1
- data/spec/integration/agent/logging_spec.rb +4 -0
- data/spec/integration/application/doc_spec.rb +4 -3
- data/spec/integration/configurer_spec.rb +0 -14
- data/spec/integration/defaults_spec.rb +26 -0
- data/spec/integration/environments/default_manifest_spec.rb +274 -0
- data/spec/integration/faces/documentation_spec.rb +0 -4
- data/spec/integration/file_bucket/file_spec.rb +21 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/integration/indirector/catalog/queue_spec.rb +0 -2
- data/spec/integration/indirector/facts/facter_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/integration/node/environment_spec.rb +24 -8
- data/spec/integration/parser/catalog_spec.rb +10 -10
- data/spec/integration/parser/class_spec.rb +37 -0
- data/spec/integration/parser/collector_spec.rb +234 -75
- data/spec/integration/parser/compiler_spec.rb +385 -401
- data/spec/integration/parser/conditionals_spec.rb +117 -0
- data/spec/integration/parser/future_compiler_spec.rb +359 -8
- data/spec/integration/parser/node_spec.rb +185 -0
- data/spec/integration/parser/resource_expressions_spec.rb +286 -0
- data/spec/integration/parser/ruby_manifest_spec.rb +0 -4
- data/spec/integration/parser/scope_spec.rb +94 -151
- data/spec/integration/provider/cron/crontab_spec.rb +137 -148
- data/spec/integration/ssl/certificate_authority_spec.rb +26 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -6
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -2
- data/spec/integration/ssl/host_spec.rb +0 -2
- data/spec/integration/transaction_spec.rb +16 -0
- data/spec/integration/type/file_spec.rb +14 -13
- data/spec/integration/type/nagios_spec.rb +6 -15
- data/spec/integration/type/sshkey_spec.rb +22 -0
- data/spec/integration/type/tidy_spec.rb +3 -0
- data/spec/integration/type/user_spec.rb +8 -3
- data/spec/integration/util/autoload_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +7 -0
- data/spec/integration/util/windows/process_spec.rb +12 -0
- data/spec/integration/util/windows/security_spec.rb +36 -35
- data/spec/integration/util/windows/user_spec.rb +75 -9
- data/spec/integration/util_spec.rb +2 -2
- data/spec/lib/matchers/resource.rb +1 -0
- data/spec/lib/puppet_spec/compiler.rb +15 -2
- data/spec/lib/puppet_spec/files.rb +10 -0
- data/spec/lib/puppet_spec/language.rb +74 -0
- data/spec/lib/puppet_spec/matchers.rb +59 -32
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +3 -0
- data/spec/shared_behaviours/hiera_indirections.rb +99 -0
- data/spec/shared_behaviours/iterative_functions.rb +69 -0
- data/spec/unit/application/apply_spec.rb +4 -2
- data/spec/unit/application/doc_spec.rb +17 -13
- data/spec/unit/application/master_spec.rb +35 -27
- data/spec/unit/application/resource_spec.rb +0 -5
- data/spec/unit/configurer/downloader_factory_spec.rb +96 -0
- data/spec/unit/configurer/downloader_spec.rb +3 -24
- data/spec/unit/configurer/plugin_handler_spec.rb +22 -22
- data/spec/unit/configurer_spec.rb +0 -4
- data/spec/unit/defaults_spec.rb +30 -0
- data/spec/unit/face/config_spec.rb +2 -1
- data/spec/unit/face/module/build_spec.rb +2 -2
- data/spec/unit/face/module/install_spec.rb +8 -8
- data/spec/unit/face/parser_spec.rb +71 -33
- data/spec/unit/file_bucket/file_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +184 -0
- data/spec/unit/forge/errors_spec.rb +4 -6
- data/spec/unit/forge/module_release_spec.rb +178 -89
- data/spec/unit/forge/repository_spec.rb +110 -2
- data/spec/unit/forge_spec.rb +39 -3
- data/spec/unit/functions/assert_type_spec.rb +22 -3
- data/spec/unit/{parser/methods → functions}/each_spec.rb +21 -1
- data/spec/unit/{parser/functions → functions}/epp_spec.rb +61 -9
- data/spec/unit/{parser/methods → functions}/filter_spec.rb +34 -38
- data/spec/unit/{parser/functions → functions}/inline_epp_spec.rb +18 -3
- data/spec/unit/functions/map_spec.rb +169 -0
- data/spec/unit/functions/match_spec.rb +57 -0
- data/spec/unit/{parser/methods → functions}/reduce_spec.rb +23 -5
- data/spec/unit/{parser/methods → functions}/slice_spec.rb +34 -21
- data/spec/unit/functions/with_spec.rb +35 -0
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +11 -0
- data/spec/unit/indirector/data_binding/hiera_spec.rb +1 -96
- data/spec/unit/indirector/facts/facter_spec.rb +69 -102
- data/spec/unit/indirector/hiera_spec.rb +17 -0
- data/spec/unit/indirector/request_spec.rb +2 -4
- data/spec/unit/indirector/resource/ral_spec.rb +5 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +17 -12
- data/spec/unit/indirector/rest_spec.rb +36 -6
- data/spec/unit/interface/face_collection_spec.rb +2 -2
- data/spec/unit/module_tool/applications/builder_spec.rb +364 -14
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +22 -0
- data/spec/unit/module_tool/applications/unpacker_spec.rb +40 -0
- data/spec/unit/module_tool/applications/upgrader_spec.rb +22 -0
- data/spec/unit/module_tool/installed_modules_spec.rb +49 -0
- data/spec/unit/module_tool/metadata_spec.rb +72 -4
- data/spec/unit/module_tool/tar/mini_spec.rb +2 -1
- data/spec/unit/network/authentication_spec.rb +4 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +24 -3
- data/spec/unit/network/http/connection_spec.rb +127 -92
- data/spec/unit/network/http/factory_spec.rb +82 -0
- data/spec/unit/network/http/handler_spec.rb +23 -13
- data/spec/unit/network/http/nocache_pool_spec.rb +43 -0
- data/spec/unit/network/http/pool_spec.rb +269 -0
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/session_spec.rb +43 -0
- data/spec/unit/network/http/site_spec.rb +90 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/network/http_pool_spec.rb +9 -6
- data/spec/unit/network/http_spec.rb +10 -0
- data/spec/unit/node/environment_spec.rb +54 -0
- data/spec/unit/node_spec.rb +3 -5
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/files_spec.rb +19 -0
- data/spec/unit/parser/functions/contain_spec.rb +51 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +8 -1
- data/spec/unit/parser/functions/digest_spec.rb +31 -0
- data/spec/unit/parser/functions/file_spec.rb +48 -5
- data/spec/unit/parser/functions/include_spec.rb +15 -1
- data/spec/unit/parser/functions/realize_spec.rb +43 -35
- data/spec/unit/parser/functions/require_spec.rb +19 -5
- data/spec/unit/parser/functions/search_spec.rb +5 -0
- data/spec/unit/parser/functions/shared.rb +82 -0
- data/spec/unit/parser/functions_spec.rb +1 -1
- data/spec/unit/parser/lexer_spec.rb +10 -1
- data/spec/unit/parser/type_loader_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +1 -1
- data/spec/unit/pops/binder/bindings_composer_spec.rb +24 -22
- data/spec/unit/pops/binder/injector_spec.rb +8 -6
- data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +7 -4
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +250 -30
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -105
- data/spec/unit/pops/issues_spec.rb +170 -0
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +17 -0
- data/spec/unit/pops/loaders/loader_paths_spec.rb +4 -15
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -11
- data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -29
- data/spec/unit/pops/loaders/static_loader_spec.rb +6 -0
- data/spec/unit/pops/parser/epp_parser_spec.rb +38 -9
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +21 -4
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +5 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +6 -3
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -5
- data/spec/unit/pops/parser/parse_containers_spec.rb +62 -7
- data/spec/unit/pops/parser/parse_resource_spec.rb +155 -73
- data/spec/unit/pops/parser/parser_spec.rb +16 -0
- data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +72 -0
- data/spec/unit/pops/transformer/transform_calls_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +254 -57
- data/spec/unit/pops/types/type_factory_spec.rb +8 -3
- data/spec/unit/pops/types/type_parser_spec.rb +26 -5
- data/spec/unit/pops/validator/validator_spec.rb +143 -27
- data/spec/unit/provider/exec/posix_spec.rb +22 -14
- data/spec/unit/provider/exec/shell_spec.rb +2 -2
- data/spec/unit/provider/file/windows_spec.rb +7 -7
- data/spec/unit/provider/group/windows_adsi_spec.rb +17 -17
- data/spec/unit/provider/package/gem_spec.rb +10 -0
- data/spec/unit/provider/package/openbsd_spec.rb +66 -9
- data/spec/unit/provider/package/pacman_spec.rb +90 -71
- data/spec/unit/provider/package/windows/package_spec.rb +21 -6
- data/spec/unit/provider/package/yum_spec.rb +1 -0
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +9 -9
- data/spec/unit/provider/service/openbsd_spec.rb +26 -2
- data/spec/unit/provider/service/upstart_spec.rb +12 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +6 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +23 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +17 -17
- data/spec/unit/reports/store_spec.rb +0 -16
- data/spec/unit/resource/catalog_spec.rb +0 -5
- data/spec/unit/resource_spec.rb +2 -2
- data/spec/unit/settings/autosign_setting_spec.rb +2 -2
- data/spec/unit/settings/environment_conf_spec.rb +77 -10
- data/spec/unit/settings/file_setting_spec.rb +5 -4
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +41 -3
- data/spec/unit/ssl/certificate_authority_spec.rb +25 -2
- data/spec/unit/ssl/inventory_spec.rb +13 -0
- data/spec/unit/ssl/validator_spec.rb +0 -1
- data/spec/unit/transaction/resource_harness_spec.rb +64 -0
- data/spec/unit/transaction_spec.rb +98 -47
- data/spec/unit/type/cron_spec.rb +3 -3
- data/spec/unit/type/exec_spec.rb +9 -0
- data/spec/unit/type/file/content_spec.rb +54 -71
- data/spec/unit/type/file/mode_spec.rb +26 -1
- data/spec/unit/type/file/source_spec.rb +26 -4
- data/spec/unit/type/file_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +12 -3
- data/spec/unit/type/resources_spec.rb +64 -30
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +136 -0
- data/spec/unit/type/zone_spec.rb +44 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/colors_spec.rb +14 -8
- data/spec/unit/util/command_line_spec.rb +11 -7
- data/spec/unit/util/execution_spec.rb +35 -42
- data/spec/unit/util/feature_spec.rb +12 -0
- data/spec/unit/util/http_proxy_spec.rb +43 -1
- data/spec/unit/util/log/destinations_spec.rb +45 -1
- data/spec/unit/util/logging_spec.rb +38 -0
- data/spec/unit/util/pidlock_spec.rb +37 -1
- data/spec/unit/util/profiler/aggregate_spec.rb +59 -0
- data/spec/unit/util/profiler/around_profiler_spec.rb +61 -0
- data/spec/unit/util/profiler/logging_spec.rb +18 -29
- data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
- data/spec/unit/util/profiler_spec.rb +55 -0
- data/spec/unit/util/queue_spec.rb +0 -1
- data/spec/unit/util/rdoc/parser_spec.rb +14 -6
- data/spec/unit/util/tagging_spec.rb +1 -1
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
- data/spec/unit/util/{adsi_spec.rb → windows/adsi_spec.rb} +111 -108
- data/spec/unit/util/windows/api_types_spec.rb +28 -0
- data/spec/unit/util/windows/registry_spec.rb +7 -6
- data/spec/unit/util/windows/sid_spec.rb +3 -6
- data/spec/unit/util/windows/string_spec.rb +4 -0
- data/spec/unit/util/zaml_spec.rb +5 -1
- data/tasks/benchmark.rake +40 -5
- data/tasks/parser.rake +16 -2
- data/tasks/yard.rake +1 -1
- metadata +296 -68
- data/lib/puppet/file_system/tempfile.rb +0 -20
- data/lib/puppet/parser/e_parser_adapter.rb +0 -119
- data/lib/puppet/parser/functions/collect.rb +0 -15
- data/lib/puppet/parser/functions/select.rb +0 -15
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -109
- data/lib/puppet/pops/parser/lexer.rb +0 -753
- data/lib/puppet/pops/parser/makefile +0 -6
- data/lib/puppet/pops/validation/checker3_1.rb +0 -558
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +0 -31
- data/lib/puppet/util/profiler/none.rb +0 -8
- data/spec/unit/face/certificate_request_spec.rb +0 -7
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -7
- data/spec/unit/face/key_spec.rb +0 -7
- data/spec/unit/face/report_spec.rb +0 -7
- data/spec/unit/face/resource_spec.rb +0 -7
- data/spec/unit/face/resource_type_spec.rb +0 -7
- data/spec/unit/file_system/tempfile_spec.rb +0 -48
- data/spec/unit/parser/eparser_adapter_spec.rb +0 -407
- data/spec/unit/parser/methods/map_spec.rb +0 -184
- data/spec/unit/parser/methods/shared.rb +0 -45
- data/spec/unit/pops/parser/lexer_spec.rb +0 -840
- data/spec/unit/pops/transformer/transform_resource_spec.rb +0 -185
- data/spec/unit/util/profiler/none_spec.rb +0 -12
data/spec/unit/type/user_spec.rb
CHANGED
@@ -494,7 +494,7 @@ describe Puppet::Type.type(:user) do
|
|
494
494
|
let(:resources) { subject.generate }
|
495
495
|
it "should contain a resource for each key" do
|
496
496
|
names = resources.collect { |res| res.name }
|
497
|
-
names.should include("
|
497
|
+
names.should include("key1 name")
|
498
498
|
names.should include("keyname2")
|
499
499
|
end
|
500
500
|
it "should not include keys in comment lines" do
|
@@ -10,6 +10,37 @@ shared_examples_for "a yumrepo parameter that can be absent" do |param|
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
shared_examples_for "a yumrepo parameter that expects a natural value" do |param|
|
14
|
+
it "accepts a valid positive integer" do
|
15
|
+
instance = described_class.new(:name => 'puppetlabs', param => '12')
|
16
|
+
expect(instance[param]).to eq '12'
|
17
|
+
end
|
18
|
+
it "rejects invalid negative integer" do
|
19
|
+
expect {
|
20
|
+
described_class.new(
|
21
|
+
:name => 'puppetlabs',
|
22
|
+
param => '-12'
|
23
|
+
)
|
24
|
+
}.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
25
|
+
end
|
26
|
+
it "rejects invalid non-integer" do
|
27
|
+
expect {
|
28
|
+
described_class.new(
|
29
|
+
:name => 'puppetlabs',
|
30
|
+
param => 'I\'m a six'
|
31
|
+
)
|
32
|
+
}.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
33
|
+
end
|
34
|
+
it "rejects invalid string with integers inside" do
|
35
|
+
expect {
|
36
|
+
described_class.new(
|
37
|
+
:name => 'puppetlabs',
|
38
|
+
param => 'I\'m a 6'
|
39
|
+
)
|
40
|
+
}.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
13
44
|
shared_examples_for "a yumrepo parameter that expects a boolean parameter" do |param|
|
14
45
|
valid_values = %w[True False 0 1 No Yes]
|
15
46
|
|
@@ -22,6 +53,14 @@ shared_examples_for "a yumrepo parameter that expects a boolean parameter" do |p
|
|
22
53
|
instance = described_class.new(:name => 'puppetlabs', param => value.downcase)
|
23
54
|
expect(instance[param]).to eq value.downcase
|
24
55
|
end
|
56
|
+
it "fails on valid value #{value} contained in another value" do
|
57
|
+
expect {
|
58
|
+
described_class.new(
|
59
|
+
:name => 'puppetlabs',
|
60
|
+
param => "bla#{value}bla"
|
61
|
+
)
|
62
|
+
}.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
63
|
+
end
|
25
64
|
end
|
26
65
|
|
27
66
|
it "rejects invalid boolean values" do
|
@@ -76,6 +115,26 @@ shared_examples_for "a yumrepo parameter that accepts multiple URLs" do |param|
|
|
76
115
|
end
|
77
116
|
end
|
78
117
|
|
118
|
+
shared_examples_for "a yumrepo parameter that accepts kMG units" do |param|
|
119
|
+
%w[k M G].each do |unit|
|
120
|
+
it "can accept an integer with #{unit} units" do
|
121
|
+
described_class.new(
|
122
|
+
:name => 'puppetlabs',
|
123
|
+
param => "123#{unit}"
|
124
|
+
)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it "fails if wrong unit passed" do
|
129
|
+
expect {
|
130
|
+
described_class.new(
|
131
|
+
:name => 'puppetlabs',
|
132
|
+
param => '123J'
|
133
|
+
)
|
134
|
+
}.to raise_error(Puppet::ResourceError, /Parameter #{param} failed/)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
79
138
|
describe Puppet::Type.type(:yumrepo) do
|
80
139
|
it "has :name as its namevar" do
|
81
140
|
expect(described_class.key_attributes).to eq [:name]
|
@@ -154,6 +213,14 @@ describe Puppet::Type.type(:yumrepo) do
|
|
154
213
|
it "accepts a value of #{value}" do
|
155
214
|
described_class.new(:name => "puppetlabs", :failovermethod => value)
|
156
215
|
end
|
216
|
+
it "fails on valid value #{value} contained in another value" do
|
217
|
+
expect {
|
218
|
+
described_class.new(
|
219
|
+
:name => 'puppetlabs',
|
220
|
+
:failovermethod => "bla#{value}bla"
|
221
|
+
)
|
222
|
+
}.to raise_error(Puppet::ResourceError, /Parameter failovermethod failed/)
|
223
|
+
end
|
157
224
|
end
|
158
225
|
|
159
226
|
it "raises an error if an invalid value is given" do
|
@@ -175,6 +242,14 @@ describe Puppet::Type.type(:yumrepo) do
|
|
175
242
|
it "accepts a valid value of #{value}" do
|
176
243
|
described_class.new(:name => 'puppetlabs', :http_caching => value)
|
177
244
|
end
|
245
|
+
it "fails on valid value #{value} contained in another value" do
|
246
|
+
expect {
|
247
|
+
described_class.new(
|
248
|
+
:name => 'puppetlabs',
|
249
|
+
:http_caching => "bla#{value}bla"
|
250
|
+
)
|
251
|
+
}.to raise_error(Puppet::ResourceError, /Parameter http_caching failed/)
|
252
|
+
end
|
178
253
|
end
|
179
254
|
|
180
255
|
it "rejects invalid values" do
|
@@ -188,10 +263,25 @@ describe Puppet::Type.type(:yumrepo) do
|
|
188
263
|
|
189
264
|
describe "timeout" do
|
190
265
|
it_behaves_like "a yumrepo parameter that can be absent", :timeout
|
266
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :timeout
|
191
267
|
end
|
192
268
|
|
193
269
|
describe "metadata_expire" do
|
194
270
|
it_behaves_like "a yumrepo parameter that can be absent", :metadata_expire
|
271
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :metadata_expire
|
272
|
+
|
273
|
+
it "accepts dhm units" do
|
274
|
+
%W[d h m].each do |unit|
|
275
|
+
described_class.new(
|
276
|
+
:name => 'puppetlabs',
|
277
|
+
:metadata_expire => "123#{unit}"
|
278
|
+
)
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
it "accepts never as value" do
|
283
|
+
described_class.new(:name => 'puppetlabs', :metadata_expire => 'never')
|
284
|
+
end
|
195
285
|
end
|
196
286
|
|
197
287
|
describe "protect" do
|
@@ -205,6 +295,12 @@ describe Puppet::Type.type(:yumrepo) do
|
|
205
295
|
|
206
296
|
describe "proxy" do
|
207
297
|
it_behaves_like "a yumrepo parameter that can be absent", :proxy
|
298
|
+
it "accepts _none_" do
|
299
|
+
described_class.new(
|
300
|
+
:name => 'puppetlabs',
|
301
|
+
:proxy => "_none_"
|
302
|
+
)
|
303
|
+
end
|
208
304
|
it_behaves_like "a yumrepo parameter that accepts a single URL", :proxy
|
209
305
|
end
|
210
306
|
|
@@ -247,5 +343,45 @@ describe Puppet::Type.type(:yumrepo) do
|
|
247
343
|
it_behaves_like "a yumrepo parameter that can be absent", :metalink
|
248
344
|
it_behaves_like "a yumrepo parameter that accepts a single URL", :metalink
|
249
345
|
end
|
346
|
+
|
347
|
+
|
348
|
+
describe "cost" do
|
349
|
+
it_behaves_like "a yumrepo parameter that can be absent", :cost
|
350
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :cost
|
351
|
+
end
|
352
|
+
|
353
|
+
describe "throttle" do
|
354
|
+
it_behaves_like "a yumrepo parameter that can be absent", :throttle
|
355
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :throttle
|
356
|
+
it_behaves_like "a yumrepo parameter that accepts kMG units", :throttle
|
357
|
+
|
358
|
+
it "accepts percentage as unit" do
|
359
|
+
described_class.new(
|
360
|
+
:name => 'puppetlabs',
|
361
|
+
:throttle => '123%'
|
362
|
+
)
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
describe "bandwidth" do
|
367
|
+
it_behaves_like "a yumrepo parameter that can be absent", :bandwidth
|
368
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :bandwidth
|
369
|
+
it_behaves_like "a yumrepo parameter that accepts kMG units", :bandwidth
|
370
|
+
end
|
371
|
+
|
372
|
+
describe "gpgcakey" do
|
373
|
+
it_behaves_like "a yumrepo parameter that can be absent", :gpgcakey
|
374
|
+
it_behaves_like "a yumrepo parameter that accepts a single URL", :gpgcakey
|
375
|
+
end
|
376
|
+
|
377
|
+
describe "retries" do
|
378
|
+
it_behaves_like "a yumrepo parameter that can be absent", :retries
|
379
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :retries
|
380
|
+
end
|
381
|
+
|
382
|
+
describe "mirrorlist_expire" do
|
383
|
+
it_behaves_like "a yumrepo parameter that can be absent", :mirrorlist_expire
|
384
|
+
it_behaves_like "a yumrepo parameter that expects a natural value", :mirrorlist_expire
|
385
|
+
end
|
250
386
|
end
|
251
387
|
end
|
data/spec/unit/type/zone_spec.rb
CHANGED
@@ -2,8 +2,11 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Puppet::Type.type(:zone) do
|
5
|
-
let(:zone) { described_class.new(:name => 'dummy', :path => '/dummy', :provider => :solaris) }
|
5
|
+
let(:zone) { described_class.new(:name => 'dummy', :path => '/dummy', :provider => :solaris, :ip=>'if:1.2.3.4:2.3.4.5', :inherit=>'/', :dataset=>'tank') }
|
6
6
|
let(:provider) { zone.provider }
|
7
|
+
let(:ip) { zone.property(:ip) }
|
8
|
+
let(:inherit) { zone.property(:inherit) }
|
9
|
+
let(:dataset) { zone.property(:dataset) }
|
7
10
|
|
8
11
|
parameters = [:create_args, :install_args, :sysidcfg, :realhostname]
|
9
12
|
|
@@ -21,6 +24,46 @@ describe Puppet::Type.type(:zone) do
|
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
27
|
+
describe "when trying to set a property that is empty" do
|
28
|
+
it "should verify that property.insync? of nil or :absent is true" do
|
29
|
+
[inherit, ip, dataset].each do |prop|
|
30
|
+
prop.stubs(:should).returns []
|
31
|
+
end
|
32
|
+
[inherit, ip, dataset].each do |prop|
|
33
|
+
prop.insync?(nil).should be_true
|
34
|
+
end
|
35
|
+
[inherit, ip, dataset].each do |prop|
|
36
|
+
prop.insync?(:absent).should be_true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
describe "when trying to set a property that is non empty" do
|
41
|
+
it "should verify that property.insync? of nil or :absent is false" do
|
42
|
+
[inherit, ip, dataset].each do |prop|
|
43
|
+
prop.stubs(:should).returns ['a','b']
|
44
|
+
end
|
45
|
+
[inherit, ip, dataset].each do |prop|
|
46
|
+
prop.insync?(nil).should be_false
|
47
|
+
end
|
48
|
+
[inherit, ip, dataset].each do |prop|
|
49
|
+
prop.insync?(:absent).should be_false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
describe "when trying to set a property that is non empty" do
|
54
|
+
it "insync? should return true or false depending on the current value, and new value" do
|
55
|
+
[inherit, ip, dataset].each do |prop|
|
56
|
+
prop.stubs(:should).returns ['a','b']
|
57
|
+
end
|
58
|
+
[inherit, ip, dataset].each do |prop|
|
59
|
+
prop.insync?(['b', 'a']).should be_true
|
60
|
+
end
|
61
|
+
[inherit, ip, dataset].each do |prop|
|
62
|
+
prop.insync?(['a']).should be_false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
24
67
|
it "should be valid when only :path is given" do
|
25
68
|
described_class.new(:name => "dummy", :path => '/dummy', :provider => :solaris)
|
26
69
|
end
|
data/spec/unit/type_spec.rb
CHANGED
@@ -328,6 +328,26 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
|
|
328
328
|
provider.ancestors.should include(Puppet::Provider)
|
329
329
|
provider.should == @type.provider(:test_provider)
|
330
330
|
end
|
331
|
+
|
332
|
+
describe "with a parent class from another type" do
|
333
|
+
before :each do
|
334
|
+
@parent_type = Puppet::Type.newtype(:provider_parent_type) do
|
335
|
+
newparam(:name) { isnamevar }
|
336
|
+
end
|
337
|
+
@parent_provider = @parent_type.provide(:parent_provider)
|
338
|
+
end
|
339
|
+
|
340
|
+
it "should be created successfully" do
|
341
|
+
child_provider = @type.provide(:child_provider, :parent => @parent_provider)
|
342
|
+
child_provider.ancestors.should include(@parent_provider)
|
343
|
+
end
|
344
|
+
|
345
|
+
it "should be registered as a provider of the child type" do
|
346
|
+
child_provider = @type.provide(:child_provider, :parent => @parent_provider)
|
347
|
+
@type.providers.should include(:child_provider)
|
348
|
+
@parent_type.providers.should_not include(:child_provider)
|
349
|
+
end
|
350
|
+
end
|
331
351
|
end
|
332
352
|
|
333
353
|
describe "when choosing a default provider" do
|
@@ -67,17 +67,23 @@ describe Puppet::Util::Colors do
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
|
71
|
-
it "
|
72
|
-
|
70
|
+
context "on Windows in Ruby 1.x", :if => Puppet.features.microsoft_windows? && RUBY_VERSION =~ /^1./ do
|
71
|
+
it "should define WideConsole" do
|
72
|
+
expect(defined?(Puppet::Util::Colors::WideConsole)).to be_true
|
73
|
+
end
|
73
74
|
|
74
|
-
|
75
|
-
|
75
|
+
it "should define WideIO" do
|
76
|
+
expect(defined?(Puppet::Util::Colors::WideIO)).to be_true
|
77
|
+
end
|
78
|
+
end
|
76
79
|
|
77
|
-
|
80
|
+
context "on Windows in Ruby 2.x", :if => Puppet.features.microsoft_windows? && RUBY_VERSION =~ /^2./ do
|
81
|
+
it "should not define WideConsole" do
|
82
|
+
expect(defined?(Puppet::Util::Colors::WideConsole)).to be_false
|
83
|
+
end
|
78
84
|
|
79
|
-
|
80
|
-
expect(
|
85
|
+
it "should not define WideIO" do
|
86
|
+
expect(defined?(Puppet::Util::Colors::WideIO)).to be_false
|
81
87
|
end
|
82
88
|
end
|
83
89
|
end
|
@@ -70,7 +70,7 @@ describe Puppet::Util::CommandLine do
|
|
70
70
|
it "should print the version and exit if #{arg} is given" do
|
71
71
|
expect do
|
72
72
|
described_class.new("puppet", [arg]).execute
|
73
|
-
end.to have_printed(/^#{Puppet.version}$/)
|
73
|
+
end.to have_printed(/^#{Regexp.escape(Puppet.version)}$/)
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
@@ -93,35 +93,39 @@ describe Puppet::Util::CommandLine do
|
|
93
93
|
end
|
94
94
|
|
95
95
|
describe "and an external implementation cannot be found" do
|
96
|
+
before :each do
|
97
|
+
Puppet::Util::CommandLine::UnknownSubcommand.any_instance.stubs(:console_has_color?).returns false
|
98
|
+
end
|
99
|
+
|
96
100
|
it "should abort and show the usage message" do
|
97
|
-
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
|
98
101
|
Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
|
102
|
+
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
|
99
103
|
commandline.expects(:exec).never
|
100
104
|
|
101
105
|
expect {
|
102
106
|
commandline.execute
|
103
|
-
}.to have_printed(/Unknown Puppet subcommand 'whatever'/)
|
107
|
+
}.to have_printed(/Unknown Puppet subcommand 'whatever'/).and_exit_with(1)
|
104
108
|
end
|
105
109
|
|
106
110
|
it "should abort and show the help message" do
|
107
|
-
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
|
108
111
|
Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
|
112
|
+
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', 'argument'])
|
109
113
|
commandline.expects(:exec).never
|
110
114
|
|
111
115
|
expect {
|
112
116
|
commandline.execute
|
113
|
-
}.to have_printed(/See 'puppet help' for help on available puppet subcommands/)
|
117
|
+
}.to have_printed(/See 'puppet help' for help on available puppet subcommands/).and_exit_with(1)
|
114
118
|
end
|
115
119
|
|
116
120
|
%w{--version -V}.each do |arg|
|
117
121
|
it "should abort and display #{arg} information" do
|
118
|
-
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', arg])
|
119
122
|
Puppet::Util.expects(:which).with('puppet-whatever').returns(nil)
|
123
|
+
commandline = Puppet::Util::CommandLine.new("puppet", ['whatever', arg])
|
120
124
|
commandline.expects(:exec).never
|
121
125
|
|
122
126
|
expect {
|
123
127
|
commandline.execute
|
124
|
-
}.to have_printed(
|
128
|
+
}.to have_printed(%r[^#{Regexp.escape(Puppet.version)}$]).and_exit_with(1)
|
125
129
|
end
|
126
130
|
end
|
127
131
|
end
|
@@ -1,15 +1,9 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
require 'spec_helper'
|
3
|
+
require 'puppet/file_system/uniquefile'
|
3
4
|
|
4
5
|
describe Puppet::Util::Execution do
|
5
6
|
include Puppet::Util::Execution
|
6
|
-
# utility method to help deal with some windows vs. unix differences
|
7
|
-
def process_status(exitstatus)
|
8
|
-
return exitstatus if Puppet.features.microsoft_windows?
|
9
|
-
|
10
|
-
stub('child_status', :exitstatus => exitstatus)
|
11
|
-
end
|
12
|
-
|
13
7
|
# utility methods to help us test some private methods without being quite so verbose
|
14
8
|
def call_exec_posix(command, arguments, stdin, stdout, stderr)
|
15
9
|
Puppet::Util::Execution.send(:execute_posix, command, arguments, stdin, stdout, stderr)
|
@@ -28,8 +22,8 @@ describe Puppet::Util::Execution do
|
|
28
22
|
def stub_process_wait(exitstatus)
|
29
23
|
if Puppet.features.microsoft_windows?
|
30
24
|
Puppet::Util::Windows::Process.stubs(:wait_process).with(process_handle).returns(exitstatus)
|
31
|
-
|
32
|
-
|
25
|
+
FFI::WIN32.stubs(:CloseHandle).with(process_handle)
|
26
|
+
FFI::WIN32.stubs(:CloseHandle).with(thread_handle)
|
33
27
|
else
|
34
28
|
Process.stubs(:waitpid2).with(pid).returns([pid, stub('child_status', :exitstatus => exitstatus)])
|
35
29
|
end
|
@@ -52,7 +46,7 @@ describe Puppet::Util::Execution do
|
|
52
46
|
$stderr.stubs(:reopen)
|
53
47
|
|
54
48
|
@stdin = File.open(null_file, 'r')
|
55
|
-
@stdout =
|
49
|
+
@stdout = Puppet::FileSystem::Uniquefile.new('stdout')
|
56
50
|
@stderr = File.open(null_file, 'w')
|
57
51
|
|
58
52
|
# there is a danger here that ENV will be modified by exec_posix. Normally it would only affect the ENV
|
@@ -132,7 +126,7 @@ describe Puppet::Util::Execution do
|
|
132
126
|
stub_process_wait(0)
|
133
127
|
|
134
128
|
@stdin = File.open(null_file, 'r')
|
135
|
-
@stdout =
|
129
|
+
@stdout = Puppet::FileSystem::Uniquefile.new('stdout')
|
136
130
|
@stderr = File.open(null_file, 'w')
|
137
131
|
end
|
138
132
|
|
@@ -223,8 +217,8 @@ describe Puppet::Util::Execution do
|
|
223
217
|
|
224
218
|
describe "when squelch is not set" do
|
225
219
|
it "should set stdout to a temporary output file" do
|
226
|
-
outfile =
|
227
|
-
|
220
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
221
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
228
222
|
|
229
223
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,_|
|
230
224
|
stdout.path == outfile.path
|
@@ -234,8 +228,8 @@ describe Puppet::Util::Execution do
|
|
234
228
|
end
|
235
229
|
|
236
230
|
it "should set stderr to the same file as stdout if combine is true" do
|
237
|
-
outfile =
|
238
|
-
|
231
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
232
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
239
233
|
|
240
234
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
241
235
|
stdout.path == outfile.path and stderr.path == outfile.path
|
@@ -245,8 +239,8 @@ describe Puppet::Util::Execution do
|
|
245
239
|
end
|
246
240
|
|
247
241
|
it "should set stderr to the null device if combine is false" do
|
248
|
-
outfile =
|
249
|
-
|
242
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
243
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
250
244
|
|
251
245
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
252
246
|
stdout.path == outfile.path and stderr.path == null_file
|
@@ -256,8 +250,8 @@ describe Puppet::Util::Execution do
|
|
256
250
|
end
|
257
251
|
|
258
252
|
it "should combine stdout and stderr if combine is true" do
|
259
|
-
outfile =
|
260
|
-
|
253
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
254
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
261
255
|
|
262
256
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
263
257
|
stdout.path == outfile.path and stderr.path == outfile.path
|
@@ -267,8 +261,8 @@ describe Puppet::Util::Execution do
|
|
267
261
|
end
|
268
262
|
|
269
263
|
it "should default combine to true when no options are specified" do
|
270
|
-
outfile =
|
271
|
-
|
264
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
265
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
272
266
|
|
273
267
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
274
268
|
stdout.path == outfile.path and stderr.path == outfile.path
|
@@ -278,8 +272,8 @@ describe Puppet::Util::Execution do
|
|
278
272
|
end
|
279
273
|
|
280
274
|
it "should default combine to false when options are specified, but combine is not" do
|
281
|
-
outfile =
|
282
|
-
|
275
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
276
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
283
277
|
|
284
278
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
285
279
|
stdout.path == outfile.path and stderr.path == null_file
|
@@ -289,8 +283,8 @@ describe Puppet::Util::Execution do
|
|
289
283
|
end
|
290
284
|
|
291
285
|
it "should default combine to false when an empty hash of options is specified" do
|
292
|
-
outfile =
|
293
|
-
|
286
|
+
outfile = Puppet::FileSystem::Uniquefile.new('stdout')
|
287
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(outfile)
|
294
288
|
|
295
289
|
Puppet::Util::Execution.expects(executor).with do |_,_,_,stdout,stderr|
|
296
290
|
stdout.path == outfile.path and stderr.path == null_file
|
@@ -306,8 +300,8 @@ describe Puppet::Util::Execution do
|
|
306
300
|
Puppet::Util::Execution.stubs(:execute_windows).returns(proc_info_stub)
|
307
301
|
|
308
302
|
Puppet::Util::Windows::Process.expects(:wait_process).with(process_handle).raises('whatever')
|
309
|
-
|
310
|
-
|
303
|
+
FFI::WIN32.expects(:CloseHandle).with(thread_handle)
|
304
|
+
FFI::WIN32.expects(:CloseHandle).with(process_handle)
|
311
305
|
|
312
306
|
expect { Puppet::Util::Execution.execute('test command') }.to raise_error(RuntimeError)
|
313
307
|
end
|
@@ -507,25 +501,25 @@ describe Puppet::Util::Execution do
|
|
507
501
|
end
|
508
502
|
|
509
503
|
it "should read and return the output if squelch is false" do
|
510
|
-
stdout =
|
511
|
-
|
504
|
+
stdout = Puppet::FileSystem::Uniquefile.new('test')
|
505
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
|
512
506
|
stdout.write("My expected command output")
|
513
507
|
|
514
508
|
Puppet::Util::Execution.execute('test command').should == "My expected command output"
|
515
509
|
end
|
516
510
|
|
517
511
|
it "should not read the output if squelch is true" do
|
518
|
-
stdout =
|
519
|
-
|
512
|
+
stdout = Puppet::FileSystem::Uniquefile.new('test')
|
513
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
|
520
514
|
stdout.write("My expected command output")
|
521
515
|
|
522
516
|
Puppet::Util::Execution.execute('test command', :squelch => true).should == ''
|
523
517
|
end
|
524
518
|
|
525
519
|
it "should delete the file used for output if squelch is false" do
|
526
|
-
stdout =
|
520
|
+
stdout = Puppet::FileSystem::Uniquefile.new('test')
|
527
521
|
path = stdout.path
|
528
|
-
|
522
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
|
529
523
|
|
530
524
|
Puppet::Util::Execution.execute('test command')
|
531
525
|
|
@@ -533,8 +527,8 @@ describe Puppet::Util::Execution do
|
|
533
527
|
end
|
534
528
|
|
535
529
|
it "should not raise an error if the file is open" do
|
536
|
-
stdout =
|
537
|
-
|
530
|
+
stdout = Puppet::FileSystem::Uniquefile.new('test')
|
531
|
+
Puppet::FileSystem::Uniquefile.stubs(:new).returns(stdout)
|
538
532
|
file = File.new(stdout.path, 'r')
|
539
533
|
|
540
534
|
Puppet::Util.execute('test command')
|
@@ -597,40 +591,39 @@ describe Puppet::Util::Execution do
|
|
597
591
|
describe "#execpipe" do
|
598
592
|
it "should execute a string as a string" do
|
599
593
|
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
600
|
-
|
594
|
+
Puppet::Util::Execution.expects(:exitstatus).returns(0)
|
601
595
|
Puppet::Util::Execution.execpipe('echo hello').should == 'hello'
|
602
596
|
end
|
603
597
|
|
604
598
|
it "should print meaningful debug message for string argument" do
|
605
599
|
Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
|
606
600
|
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
607
|
-
|
601
|
+
Puppet::Util::Execution.expects(:exitstatus).returns(0)
|
608
602
|
Puppet::Util::Execution.execpipe('echo hello')
|
609
603
|
end
|
610
604
|
|
611
605
|
it "should print meaningful debug message for array argument" do
|
612
606
|
Puppet::Util::Execution.expects(:debug).with("Executing 'echo hello'")
|
613
607
|
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
614
|
-
|
608
|
+
Puppet::Util::Execution.expects(:exitstatus).returns(0)
|
615
609
|
Puppet::Util::Execution.execpipe(['echo','hello'])
|
616
610
|
end
|
617
611
|
|
618
612
|
it "should execute an array by pasting together with spaces" do
|
619
613
|
Puppet::Util::Execution.expects(:open).with('| echo hello 2>&1').returns('hello')
|
620
|
-
|
614
|
+
Puppet::Util::Execution.expects(:exitstatus).returns(0)
|
621
615
|
Puppet::Util::Execution.execpipe(['echo', 'hello']).should == 'hello'
|
622
616
|
end
|
623
617
|
|
624
618
|
it "should fail if asked to fail, and the child does" do
|
625
|
-
Puppet::Util::Execution.stubs(:open).returns('error message')
|
626
|
-
|
619
|
+
Puppet::Util::Execution.stubs(:open).with('| echo hello 2>&1').returns('error message')
|
620
|
+
Puppet::Util::Execution.expects(:exitstatus).returns(1)
|
627
621
|
expect { Puppet::Util::Execution.execpipe('echo hello') }.
|
628
622
|
to raise_error Puppet::ExecutionFailure, /error message/
|
629
623
|
end
|
630
624
|
|
631
625
|
it "should not fail if asked not to fail, and the child does" do
|
632
626
|
Puppet::Util::Execution.stubs(:open).returns('error message')
|
633
|
-
$CHILD_STATUS.stubs(:==).with(0).returns(false)
|
634
627
|
Puppet::Util::Execution.execpipe('echo hello', false).should == 'error message'
|
635
628
|
end
|
636
629
|
end
|