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
@@ -122,6 +122,9 @@ class Puppet::Settings::BaseSetting
|
|
122
122
|
end
|
123
123
|
|
124
124
|
def default(check_application_defaults_first = false)
|
125
|
+
if @default.is_a? Proc
|
126
|
+
@default = @default.call
|
127
|
+
end
|
125
128
|
return @default unless check_application_defaults_first
|
126
129
|
return @settings.value(name, :application_defaults, true) || @default
|
127
130
|
end
|
@@ -152,9 +155,12 @@ class Puppet::Settings::BaseSetting
|
|
152
155
|
str.gsub(/^/, " ")
|
153
156
|
end
|
154
157
|
|
155
|
-
#
|
156
|
-
|
157
|
-
|
158
|
+
# @param bypass_interpolation [Boolean] Set this true to skip the
|
159
|
+
# interpolation step, returning the raw setting value. Defaults to false.
|
160
|
+
# @return [String] Retrieves the value, or if it's not set, retrieves the default.
|
161
|
+
# @api public
|
162
|
+
def value(bypass_interpolation = false)
|
163
|
+
@settings.value(self.name, nil, bypass_interpolation)
|
158
164
|
end
|
159
165
|
|
160
166
|
# Modify the value when it is first evaluated
|
@@ -51,8 +51,32 @@ class Puppet::Settings::EnvironmentConf
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def manifest
|
54
|
-
|
55
|
-
|
54
|
+
puppet_conf_manifest = Pathname.new(Puppet.settings.value(:default_manifest))
|
55
|
+
disable_per_environment_manifest = Puppet.settings.value(:disable_per_environment_manifest)
|
56
|
+
|
57
|
+
fallback_manifest_directory =
|
58
|
+
if puppet_conf_manifest.absolute?
|
59
|
+
puppet_conf_manifest.to_s
|
60
|
+
else
|
61
|
+
File.join(@path_to_env, puppet_conf_manifest.to_s)
|
62
|
+
end
|
63
|
+
|
64
|
+
if disable_per_environment_manifest
|
65
|
+
environment_conf_manifest = absolute(raw_setting(:manifest))
|
66
|
+
if environment_conf_manifest && fallback_manifest_directory != environment_conf_manifest
|
67
|
+
errmsg = ["The 'disable_per_environment_manifest' setting is true, but the",
|
68
|
+
"environment located at #{@path_to_env} has a manifest setting in its",
|
69
|
+
"environment.conf of '#{environment_conf_manifest}' which does not match",
|
70
|
+
"the default_manifest setting '#{puppet_conf_manifest}'. If this",
|
71
|
+
"environment is expecting to find modules in",
|
72
|
+
"'#{environment_conf_manifest}', they will not be available!"]
|
73
|
+
Puppet.err(errmsg.join(' '))
|
74
|
+
end
|
75
|
+
fallback_manifest_directory.to_s
|
76
|
+
else
|
77
|
+
get_setting(:manifest, fallback_manifest_directory) do |manifest|
|
78
|
+
absolute(manifest)
|
79
|
+
end
|
56
80
|
end
|
57
81
|
end
|
58
82
|
|
@@ -82,6 +106,11 @@ class Puppet::Settings::EnvironmentConf
|
|
82
106
|
end
|
83
107
|
end
|
84
108
|
|
109
|
+
def raw_setting(setting_name)
|
110
|
+
setting = section.setting(setting_name) if section
|
111
|
+
setting.value if setting
|
112
|
+
end
|
113
|
+
|
85
114
|
private
|
86
115
|
|
87
116
|
def self.validate(path_to_conf_file, config)
|
@@ -103,8 +132,7 @@ class Puppet::Settings::EnvironmentConf
|
|
103
132
|
end
|
104
133
|
|
105
134
|
def get_setting(setting_name, default = nil)
|
106
|
-
|
107
|
-
value = setting.value if setting
|
135
|
+
value = raw_setting(setting_name)
|
108
136
|
value ||= default
|
109
137
|
yield value
|
110
138
|
end
|
@@ -219,7 +219,15 @@ class Puppet::Settings::FileSetting < Puppet::Settings::StringSetting
|
|
219
219
|
Puppet::Util::SUIDManager.asuser(*chown) do
|
220
220
|
# Update the umask to make non-executable files
|
221
221
|
Puppet::Util.withumask(File.umask ^ 0111) do
|
222
|
-
|
222
|
+
mode = case mode.class
|
223
|
+
when String
|
224
|
+
mode.to_i(8)
|
225
|
+
when NilClass
|
226
|
+
0640
|
227
|
+
else
|
228
|
+
mode
|
229
|
+
end
|
230
|
+
yield mode
|
223
231
|
end
|
224
232
|
end
|
225
233
|
end
|
@@ -5,12 +5,12 @@ require 'puppet/settings/base_setting'
|
|
5
5
|
class Puppet::Settings::PrioritySetting < Puppet::Settings::BaseSetting
|
6
6
|
PRIORITY_MAP =
|
7
7
|
if Puppet::Util::Platform.windows?
|
8
|
-
require '
|
8
|
+
require 'puppet/util/windows/process'
|
9
9
|
{
|
10
|
-
:high => Process::HIGH_PRIORITY_CLASS,
|
11
|
-
:normal => Process::NORMAL_PRIORITY_CLASS,
|
12
|
-
:low => Process::BELOW_NORMAL_PRIORITY_CLASS,
|
13
|
-
:idle => Process::IDLE_PRIORITY_CLASS
|
10
|
+
:high => Puppet::Util::Windows::Process::HIGH_PRIORITY_CLASS,
|
11
|
+
:normal => Puppet::Util::Windows::Process::NORMAL_PRIORITY_CLASS,
|
12
|
+
:low => Puppet::Util::Windows::Process::BELOW_NORMAL_PRIORITY_CLASS,
|
13
|
+
:idle => Puppet::Util::Windows::Process::IDLE_PRIORITY_CLASS
|
14
14
|
}
|
15
15
|
else
|
16
16
|
{
|
data/lib/puppet/ssl.rb
CHANGED
@@ -243,14 +243,23 @@ class Puppet::SSL::CertificateAuthority
|
|
243
243
|
def revoke(name)
|
244
244
|
raise ArgumentError, "Cannot revoke certificates when the CRL is disabled" unless crl
|
245
245
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
246
|
+
cert = Puppet::SSL::Certificate.indirection.find(name)
|
247
|
+
|
248
|
+
serials = if cert
|
249
|
+
[cert.content.serial]
|
250
|
+
elsif name =~ /^0x[0-9A-Fa-f]+$/
|
251
|
+
[name.hex]
|
252
|
+
else
|
253
|
+
inventory.serials(name)
|
254
|
+
end
|
255
|
+
|
256
|
+
if serials.empty?
|
251
257
|
raise ArgumentError, "Could not find a serial number for #{name}"
|
252
258
|
end
|
253
|
-
|
259
|
+
|
260
|
+
serials.each do |s|
|
261
|
+
crl.revoke(s, host.key.content)
|
262
|
+
end
|
254
263
|
end
|
255
264
|
|
256
265
|
# This initializes our CA so it actually works. This should be a private
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet/ssl/certificate_authority'
|
2
|
+
require 'puppet/file_system/uniquefile'
|
2
3
|
|
3
4
|
# This class wraps a given command and invokes it with a CSR name and body to
|
4
5
|
# determine if the given CSR should be autosigned
|
@@ -21,7 +22,7 @@ class Puppet::SSL::CertificateAuthority::AutosignCommand
|
|
21
22
|
name = csr.name
|
22
23
|
cmd = [@path, name]
|
23
24
|
|
24
|
-
output = Puppet::FileSystem::
|
25
|
+
output = Puppet::FileSystem::Uniquefile.open_tmp('puppet-csr') do |csr_file|
|
25
26
|
csr_file.write(csr.to_s)
|
26
27
|
csr_file.flush
|
27
28
|
|
data/lib/puppet/ssl/host.rb
CHANGED
@@ -222,8 +222,9 @@ To fix this, remove the certificate from both the master and the agent and then
|
|
222
222
|
On the master:
|
223
223
|
puppet cert clean #{Puppet[:certname]}
|
224
224
|
On the agent:
|
225
|
-
|
226
|
-
|
225
|
+
1a. On most platforms: find #{Puppet[:ssldir]} -name #{Puppet[:certname]}.pem -delete
|
226
|
+
1b. On Windows: del "#{Puppet[:ssldir]}/#{Puppet[:certname]}.pem" /f
|
227
|
+
2. puppet agent -t
|
227
228
|
ERROR_STRING
|
228
229
|
end
|
229
230
|
end
|
data/lib/puppet/ssl/inventory.rb
CHANGED
@@ -37,14 +37,19 @@ class Puppet::SSL::Inventory
|
|
37
37
|
|
38
38
|
# Find the serial number for a given certificate.
|
39
39
|
def serial(name)
|
40
|
+
Puppet.deprecation_warning 'Inventory#serial is deprecated, use Inventory#serials instead.'
|
40
41
|
return nil unless Puppet::FileSystem.exist?(@path)
|
42
|
+
serials(name).first
|
43
|
+
end
|
41
44
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
end
|
45
|
+
# Find all serial numbers for a given certificate. If none can be found, returns
|
46
|
+
# an empty array.
|
47
|
+
def serials(name)
|
48
|
+
return [] unless Puppet::FileSystem.exist?(@path)
|
47
49
|
|
48
|
-
|
50
|
+
File.readlines(@path).collect do |line|
|
51
|
+
/^(\S+).+\/CN=#{name}$/.match(line)
|
52
|
+
end.compact.map { |m| Integer(m[1]) }
|
49
53
|
end
|
54
|
+
|
50
55
|
end
|
data/lib/puppet/transaction.rb
CHANGED
@@ -47,6 +47,33 @@ class Puppet::Transaction
|
|
47
47
|
@prefetched_providers = Hash.new { |h,k| h[k] = {} }
|
48
48
|
end
|
49
49
|
|
50
|
+
# Invoke the pre_run_check hook in every resource in the catalog.
|
51
|
+
# This should (only) be called by Transaction#evaluate before applying
|
52
|
+
# the catalog.
|
53
|
+
#
|
54
|
+
# @see Puppet::Transaction#evaluate
|
55
|
+
# @see Puppet::Type#pre_run_check
|
56
|
+
# @raise [Puppet::Error] If any pre-run checks failed.
|
57
|
+
# @return [void]
|
58
|
+
def perform_pre_run_checks
|
59
|
+
prerun_errors = {}
|
60
|
+
|
61
|
+
@catalog.vertices.each do |res|
|
62
|
+
begin
|
63
|
+
res.pre_run_check
|
64
|
+
rescue Puppet::Error => detail
|
65
|
+
prerun_errors[res] = detail
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
unless prerun_errors.empty?
|
70
|
+
prerun_errors.each do |res, detail|
|
71
|
+
res.log_exception(detail)
|
72
|
+
end
|
73
|
+
raise Puppet::Error, "Some pre-run checks failed"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
50
77
|
# This method does all the actual work of running a transaction. It
|
51
78
|
# collects all of the changes, executes them, and responds to any
|
52
79
|
# necessary events.
|
@@ -55,6 +82,8 @@ class Puppet::Transaction
|
|
55
82
|
generator = AdditionalResourceGenerator.new(@catalog, relationship_graph, @prioritizer)
|
56
83
|
@catalog.vertices.each { |resource| generator.generate_additional_resources(resource) }
|
57
84
|
|
85
|
+
perform_pre_run_checks
|
86
|
+
|
58
87
|
Puppet.info "Applying configuration version '#{catalog.version}'" if catalog.version
|
59
88
|
|
60
89
|
continue_while = lambda { !stop_processing? }
|
@@ -164,10 +164,23 @@ class Puppet::Transaction::ResourceHarness
|
|
164
164
|
event
|
165
165
|
end
|
166
166
|
|
167
|
+
# This method is an ugly hack because, given a Time object with nanosecond
|
168
|
+
# resolution, roundtripped through YAML serialization, the Time object will
|
169
|
+
# be truncated to microseconds.
|
170
|
+
# For audit purposes, this code special cases this comparison, and compares
|
171
|
+
# the two objects by their second and microsecond components. tv_sec is the
|
172
|
+
# number of seconds since the epoch, and tv_usec is only the microsecond
|
173
|
+
# portion of time. This compare satisfies compatibility requirements for
|
174
|
+
# Ruby 1.8.7, where to_r does not exist on the Time class.
|
175
|
+
def are_audited_values_equal(a, b)
|
176
|
+
a == b || (a.is_a?(Time) && b.is_a?(Time) && a.tv_sec == b.tv_sec && a.tv_usec == b.tv_usec)
|
177
|
+
end
|
178
|
+
private :are_audited_values_equal
|
179
|
+
|
167
180
|
def audit_event(event, property)
|
168
181
|
event.audited = true
|
169
182
|
event.status = "audit"
|
170
|
-
if event.historical_value
|
183
|
+
if !are_audited_values_equal(event.historical_value, event.previous_value)
|
171
184
|
event.message = "audit change: previously recorded value #{property.is_to_s(event.historical_value)} has been changed to #{property.is_to_s(event.previous_value)}"
|
172
185
|
end
|
173
186
|
|
@@ -175,7 +188,7 @@ class Puppet::Transaction::ResourceHarness
|
|
175
188
|
end
|
176
189
|
|
177
190
|
def audit_message(param, do_audit, historical_value, current_value)
|
178
|
-
if do_audit && historical_value && historical_value
|
191
|
+
if do_audit && historical_value && !are_audited_values_equal(historical_value, current_value)
|
179
192
|
" (previously recorded value was #{param.is_to_s(historical_value)})"
|
180
193
|
else
|
181
194
|
""
|
@@ -196,7 +209,7 @@ class Puppet::Transaction::ResourceHarness
|
|
196
209
|
def capture_audit_events(resource, context)
|
197
210
|
context.audited_params.each do |param_name|
|
198
211
|
if context.historical_values.include?(param_name)
|
199
|
-
if context.historical_values[param_name]
|
212
|
+
if !are_audited_values_equal(context.historical_values[param_name], context.current_values[param_name]) && !context.synced_params.include?(param_name)
|
200
213
|
parameter = resource.parameter(param_name)
|
201
214
|
event = audit_event(create_change_event(parameter,
|
202
215
|
context.current_values[param_name],
|
data/lib/puppet/type.rb
CHANGED
@@ -297,9 +297,8 @@ class Type
|
|
297
297
|
end
|
298
298
|
|
299
299
|
# Returns the documentation for a given meta-parameter of this type.
|
300
|
-
# @
|
301
|
-
# @
|
302
|
-
# @return [String] the documentation associated with the given meta-parameter, or nil of not such documentation
|
300
|
+
# @param metaparam [Puppet::Parameter] the meta-parameter to get documentation for.
|
301
|
+
# @return [String] the documentation associated with the given meta-parameter, or nil of no such documentation
|
303
302
|
# exists.
|
304
303
|
# @raise if the given metaparam is not a meta-parameter in this type
|
305
304
|
#
|
@@ -308,7 +307,7 @@ class Type
|
|
308
307
|
end
|
309
308
|
|
310
309
|
# Creates a new meta-parameter.
|
311
|
-
# This creates a new meta-parameter that is added to all types.
|
310
|
+
# This creates a new meta-parameter that is added to this and all inheriting types.
|
312
311
|
# @param name [Symbol] the name of the parameter
|
313
312
|
# @param options [Hash] a hash with options.
|
314
313
|
# @option options [Class<inherits Puppet::Parameter>] :parent (Puppet::Parameter) the super class of this parameter
|
@@ -349,9 +348,9 @@ class Type
|
|
349
348
|
param
|
350
349
|
end
|
351
350
|
|
352
|
-
# Returns parameters that
|
351
|
+
# Returns the list of parameters that comprise the composite key / "uniqueness key".
|
353
352
|
# All parameters that return true from #isnamevar? or is named `:name` are included in the returned result.
|
354
|
-
# @
|
353
|
+
# @see uniqueness_key
|
355
354
|
# @return [Array<Puppet::Parameter>] WARNING: this return type is uncertain
|
356
355
|
def self.key_attribute_parameters
|
357
356
|
@key_attribute_parameters ||= (
|
@@ -361,8 +360,9 @@ class Type
|
|
361
360
|
)
|
362
361
|
end
|
363
362
|
|
364
|
-
# Returns cached {key_attribute_parameters} names
|
365
|
-
#
|
363
|
+
# Returns cached {key_attribute_parameters} names.
|
364
|
+
# Key attributes are properties and parameters that comprise a composite key
|
365
|
+
# or "uniqueness key".
|
366
366
|
# @return [Array<String>] cached key_attribute names
|
367
367
|
#
|
368
368
|
def self.key_attributes
|
@@ -408,8 +408,9 @@ class Type
|
|
408
408
|
end
|
409
409
|
end
|
410
410
|
|
411
|
-
# Produces a _uniqueness_key_
|
412
|
-
#
|
411
|
+
# Produces a resource's _uniqueness_key_ (or composite key).
|
412
|
+
# This key is an array of all key attributes' values. Each distinct tuple must be unique for each resource type.
|
413
|
+
# @see key_attributes
|
413
414
|
# @return [Object] an object that is a _uniqueness_key_ for this object
|
414
415
|
#
|
415
416
|
def uniqueness_key
|
@@ -661,10 +662,8 @@ class Type
|
|
661
662
|
nil
|
662
663
|
end
|
663
664
|
|
664
|
-
# Removes
|
665
|
+
# Removes an attribute from the object; useful in testing or in cleanup
|
665
666
|
# when an error has been encountered
|
666
|
-
# @todo Incomprehensible - the comment says "Remove a property", the code refers to @parameters, and
|
667
|
-
# the method parameter is called "attr" - What is it, property, parameter, both (i.e an attribute) or what?
|
668
667
|
# @todo Don't know what the attr is (name or Property/Parameter?). Guessing it is a String name...
|
669
668
|
# @todo Is it possible to delete a meta-parameter?
|
670
669
|
# @todo What does delete mean? Is it deleted from the type or is its value state 'is'/'should' deleted?
|
@@ -680,9 +679,7 @@ class Type
|
|
680
679
|
end
|
681
680
|
end
|
682
681
|
|
683
|
-
# Iterates over the
|
684
|
-
# @todo what does this mean? As opposed to iterating over the "non existing properties" ??? Is it an
|
685
|
-
# iteration over those properties that have state? CONFUSING.
|
682
|
+
# Iterates over the properties that were set on this resource.
|
686
683
|
# @yieldparam property [Puppet::Property] each property
|
687
684
|
# @return [void]
|
688
685
|
def eachproperty
|
@@ -725,18 +722,18 @@ class Type
|
|
725
722
|
(prop = @parameters[name] and prop.is_a?(Puppet::Property)) ? prop.should : nil
|
726
723
|
end
|
727
724
|
|
728
|
-
#
|
729
|
-
# Requires either the attribute name or class as
|
730
|
-
#
|
731
|
-
#
|
732
|
-
#
|
733
|
-
# the given class. it then returns the parameter if it exists, otherwise creates a parameter
|
734
|
-
# with its :resource => self.
|
725
|
+
# Registers an attribute to this resource type insance.
|
726
|
+
# Requires either the attribute name or class as its argument.
|
727
|
+
# This is a noop if the named property/parameter is not supported
|
728
|
+
# by this resource. Otherwise, an attribute instance is created
|
729
|
+
# and kept in this resource's parameters hash.
|
735
730
|
# @overload newattr(name)
|
736
|
-
# @param name [
|
731
|
+
# @param name [Symbol] symbolic name of the attribute
|
737
732
|
# @overload newattr(klass)
|
738
|
-
# @param klass [Class] a class supported as an attribute class
|
739
|
-
#
|
733
|
+
# @param klass [Class] a class supported as an attribute class, i.e. a subclass of
|
734
|
+
# Parameter or Property
|
735
|
+
# @return [Object] An instance of the named Parameter or Property class associated
|
736
|
+
# to this resource type instance, or nil if the attribute is not supported
|
740
737
|
#
|
741
738
|
def newattr(name)
|
742
739
|
if name.is_a?(Class)
|
@@ -773,17 +770,17 @@ class Type
|
|
773
770
|
@parameters[name.to_sym]
|
774
771
|
end
|
775
772
|
|
776
|
-
# Returns a shallow copy of this object's hash of
|
777
|
-
#
|
773
|
+
# Returns a shallow copy of this object's hash of attributes by name.
|
774
|
+
# Note that his not only comprises parameters, but also properties and metaparameters.
|
778
775
|
# Changes to the contained parameters will have an effect on the parameters of this type, but changes to
|
779
776
|
# the returned hash does not.
|
780
|
-
# @return [Hash{String =>
|
777
|
+
# @return [Hash{String => Object}] a new hash being a shallow copy of the parameters map name to parameter
|
781
778
|
def parameters
|
782
779
|
@parameters.dup
|
783
780
|
end
|
784
781
|
|
785
|
-
# @return [Boolean] Returns whether the
|
786
|
-
#
|
782
|
+
# @return [Boolean] Returns whether the attribute given by name has been added
|
783
|
+
# to this resource or not.
|
787
784
|
def propertydefined?(name)
|
788
785
|
name = name.intern unless name.is_a? Symbol
|
789
786
|
@parameters.include?(name)
|
@@ -967,6 +964,22 @@ class Type
|
|
967
964
|
[]
|
968
965
|
end
|
969
966
|
|
967
|
+
# Lifecycle method for a resource. This is called during graph creation.
|
968
|
+
# It should perform any consistency checking of the catalog and raise a
|
969
|
+
# Puppet::Error if the transaction should be aborted.
|
970
|
+
#
|
971
|
+
# It differs from the validate method, since it is called later during
|
972
|
+
# initialization and can rely on self.catalog to have references to all
|
973
|
+
# resources that comprise the catalog.
|
974
|
+
#
|
975
|
+
# @see Puppet::Transaction#add_vertex
|
976
|
+
# @raise [Puppet::Error] If the pre-run check failed.
|
977
|
+
# @return [void]
|
978
|
+
# @abstract a resource type may implement this method to perform
|
979
|
+
# validation checks that can query the complete catalog
|
980
|
+
def pre_run_check
|
981
|
+
end
|
982
|
+
|
970
983
|
# Flushes the provider if supported by the provider, else no action.
|
971
984
|
# This is called by the transaction.
|
972
985
|
# @todo What does Flushing the provider mean? Why is it interesting to know that this is
|
@@ -1026,7 +1039,7 @@ class Type
|
|
1026
1039
|
def retrieve
|
1027
1040
|
fail "Provider #{provider.class.name} is not functional on this host" if self.provider.is_a?(Puppet::Provider) and ! provider.class.suitable?
|
1028
1041
|
|
1029
|
-
result = Puppet::Resource.new(
|
1042
|
+
result = Puppet::Resource.new(self.class, title)
|
1030
1043
|
|
1031
1044
|
# Provide the name, so we know we'll always refer to a real thing
|
1032
1045
|
result[:name] = self[:name] unless self[:name] == title
|
@@ -1061,7 +1074,7 @@ class Type
|
|
1061
1074
|
# @api private
|
1062
1075
|
def retrieve_resource
|
1063
1076
|
resource = retrieve
|
1064
|
-
resource = Resource.new(
|
1077
|
+
resource = Resource.new(self.class, title, :parameters => resource) if resource.is_a? Hash
|
1065
1078
|
resource
|
1066
1079
|
end
|
1067
1080
|
|
@@ -1180,9 +1193,8 @@ class Type
|
|
1180
1193
|
raise Puppet::Error, "Title or name must be provided" unless title
|
1181
1194
|
|
1182
1195
|
# Now create our resource.
|
1183
|
-
resource = Puppet::Resource.new(self
|
1196
|
+
resource = Puppet::Resource.new(self, title)
|
1184
1197
|
resource.catalog = hash.delete(:catalog)
|
1185
|
-
resource.resource_type = self
|
1186
1198
|
|
1187
1199
|
hash.each do |param, value|
|
1188
1200
|
resource[param] = value
|
@@ -1314,7 +1326,19 @@ class Type
|
|
1314
1326
|
newmetaparam(:loglevel) do
|
1315
1327
|
desc "Sets the level that information will be logged.
|
1316
1328
|
The log levels have the biggest impact when logs are sent to
|
1317
|
-
syslog (which is currently the default).
|
1329
|
+
syslog (which is currently the default).
|
1330
|
+
|
1331
|
+
The order of the log levels, in decreasing priority, is:
|
1332
|
+
|
1333
|
+
* `crit`
|
1334
|
+
* `emerg`
|
1335
|
+
* `alert`
|
1336
|
+
* `err`
|
1337
|
+
* `warning`
|
1338
|
+
* `notice`
|
1339
|
+
* `info` / `verbose`
|
1340
|
+
* `debug`
|
1341
|
+
"
|
1318
1342
|
defaultto :notice
|
1319
1343
|
|
1320
1344
|
newvalues(*Puppet::Util::Log.levels)
|
@@ -1810,8 +1834,8 @@ class Type
|
|
1810
1834
|
}.join
|
1811
1835
|
end
|
1812
1836
|
|
1813
|
-
#
|
1814
|
-
#
|
1837
|
+
# For each resource, the provider param defaults to
|
1838
|
+
# the type's default provider
|
1815
1839
|
defaultto {
|
1816
1840
|
prov = @resource.class.defaultprovider
|
1817
1841
|
prov.name if prov
|
@@ -1912,11 +1936,12 @@ class Type
|
|
1912
1936
|
# All of the relationship code.
|
1913
1937
|
|
1914
1938
|
# Adds a block producing a single name (or list of names) of the given resource type name to autorequire.
|
1939
|
+
# Resources in the catalog that have the named type and a title that is included in the result will be linked
|
1940
|
+
# to the calling resource as a requirement.
|
1941
|
+
#
|
1915
1942
|
# @example Autorequire the files File['foo', 'bar']
|
1916
1943
|
# autorequire( 'file', {|| ['foo', 'bar'] })
|
1917
1944
|
#
|
1918
|
-
# @todo original = _"Specify a block for generating a list of objects to autorequire.
|
1919
|
-
# This makes it so that you don't have to manually specify things that you clearly require."_
|
1920
1945
|
# @param name [String] the name of a type of which one or several resources should be autorequired e.g. "file"
|
1921
1946
|
# @yield [ ] a block returning list of names of given type to auto require
|
1922
1947
|
# @yieldreturn [String, Array<String>] one or several resource names for the named type
|
@@ -1979,12 +2004,9 @@ class Type
|
|
1979
2004
|
reqs
|
1980
2005
|
end
|
1981
2006
|
|
1982
|
-
# Builds the dependencies associated with
|
1983
|
-
# @todo Which object is the "individual object", as opposed to "object as a group?" or should it simply
|
1984
|
-
# be "this object" as in "this resource" ?
|
1985
|
-
# @todo Does this method "build dependencies" or "build what it depends on" ... CONFUSING
|
2007
|
+
# Builds the dependencies associated with this resource.
|
1986
2008
|
#
|
1987
|
-
# @return [Array
|
2009
|
+
# @return [Array<Puppet::Relationship>] list of relationships to other resources
|
1988
2010
|
def builddepends
|
1989
2011
|
# Handle the requires
|
1990
2012
|
self.class.relationship_params.collect do |klass|
|
@@ -1994,8 +2016,8 @@ class Type
|
|
1994
2016
|
end.flatten.reject { |r| r.nil? }
|
1995
2017
|
end
|
1996
2018
|
|
1997
|
-
# Sets the initial list of tags
|
1998
|
-
#
|
2019
|
+
# Sets the initial list of tags to associate to this resource.
|
2020
|
+
#
|
1999
2021
|
# @return [void] ???
|
2000
2022
|
def tags=(list)
|
2001
2023
|
tag(self.class.name)
|
@@ -2386,8 +2408,8 @@ class Type
|
|
2386
2408
|
self.ref
|
2387
2409
|
end
|
2388
2410
|
|
2389
|
-
#
|
2390
|
-
# @return [
|
2411
|
+
# Convert this resource type instance to a Puppet::Resource.
|
2412
|
+
# @return [Puppet::Resource] Returns a serializable representation of this resource
|
2391
2413
|
#
|
2392
2414
|
def to_resource
|
2393
2415
|
resource = self.retrieve_resource
|