puppet 3.4.3 → 3.5.0.rc1
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.
- data/CONTRIBUTING.md +6 -6
- data/Gemfile +22 -16
- data/LICENSE +1 -1
- data/README.md +33 -11
- data/Rakefile +1 -1
- data/conf/auth.conf +4 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/debian/control +6 -6
- data/ext/ips/transforms +1 -1
- data/ext/nagios/naggen +1 -1
- data/ext/project_data.yaml +21 -1
- data/ext/puppet-test +3 -3
- data/ext/redhat/puppet.spec.erb +28 -2
- data/ext/suse/puppet.spec +1 -1
- data/ext/upload_facts.rb +1 -1
- data/ext/windows/service/daemon.rb +99 -20
- data/lib/hiera_puppet.rb +2 -2
- data/lib/puppet.rb +68 -5
- data/lib/puppet/agent.rb +5 -1
- data/lib/puppet/application.rb +20 -11
- data/lib/puppet/application/agent.rb +1 -1
- data/lib/puppet/application/apply.rb +61 -41
- data/lib/puppet/application/cert.rb +3 -3
- data/lib/puppet/application/device.rb +7 -8
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +1 -1
- data/lib/puppet/application/queue.rb +9 -9
- data/lib/puppet/application/resource.rb +2 -2
- data/lib/puppet/bindings.rb +6 -6
- data/lib/puppet/configurer.rb +17 -14
- data/lib/puppet/configurer/fact_handler.rb +1 -1
- data/lib/puppet/confine/any.rb +26 -0
- data/lib/puppet/confine/exists.rb +1 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context.rb +55 -0
- data/lib/puppet/context/trusted_information.rb +56 -0
- data/lib/puppet/defaults.rb +97 -26
- data/lib/puppet/environments.rb +187 -0
- data/lib/puppet/error.rb +2 -1
- data/lib/puppet/external/pson/common.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -1
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/config.rb +73 -15
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/help.rb +2 -1
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/help/global.erb +1 -0
- data/lib/puppet/face/help/man.erb +9 -8
- data/lib/puppet/face/module/list.rb +13 -7
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/parser.rb +11 -5
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +2 -2
- data/lib/puppet/feature/libuser.rb +1 -1
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/rails.rb +2 -2
- data/lib/puppet/file_bucket/dipper.rb +9 -9
- data/lib/puppet/file_bucket/file.rb +9 -5
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_serving/content.rb +2 -2
- data/lib/puppet/file_serving/fileset.rb +4 -4
- data/lib/puppet/file_serving/metadata.rb +69 -15
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_system.rb +361 -1
- data/lib/puppet/file_system/file18.rb +3 -3
- data/lib/puppet/file_system/file19.rb +3 -3
- data/lib/puppet/file_system/file19windows.rb +18 -23
- data/lib/puppet/file_system/file_impl.rb +145 -0
- data/lib/puppet/file_system/memory_file.rb +23 -9
- data/lib/puppet/file_system/memory_impl.rb +64 -0
- data/lib/puppet/forge.rb +4 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/graph/relationship_graph.rb +7 -7
- data/lib/puppet/indirector.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +3 -30
- data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/lib/puppet/indirector/catalog/static_compiler.rb +3 -7
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/face.rb +3 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +25 -15
- data/lib/puppet/indirector/file_metadata/file.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/key/file.rb +8 -5
- data/lib/puppet/indirector/ldap.rb +1 -1
- data/lib/puppet/indirector/memory.rb +4 -0
- data/lib/puppet/indirector/msgpack.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +1 -1
- data/lib/puppet/indirector/node/ldap.rb +3 -3
- data/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +15 -0
- data/lib/puppet/indirector/queue.rb +3 -2
- data/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/lib/puppet/indirector/request.rb +17 -20
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +3 -13
- data/lib/puppet/indirector/rest.rb +6 -7
- data/lib/puppet/indirector/ssl_file.rb +7 -7
- data/lib/puppet/indirector/yaml.rb +9 -13
- data/lib/puppet/metatype/manager.rb +12 -7
- data/lib/puppet/module.rb +14 -9
- data/lib/puppet/module_tool.rb +21 -26
- data/lib/puppet/module_tool/applications/application.rb +1 -1
- data/lib/puppet/module_tool/applications/generator.rb +2 -1
- data/lib/puppet/module_tool/applications/installer.rb +9 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +10 -7
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +11 -8
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +2 -0
- data/lib/puppet/module_tool/dependency.rb +4 -5
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +3 -5
- data/lib/puppet/module_tool/modulefile.rb +3 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -1
- data/lib/puppet/module_tool/skeleton.rb +3 -0
- data/lib/puppet/module_tool/tar.rb +3 -0
- data/lib/puppet/network/auth_config_parser.rb +1 -1
- data/lib/puppet/network/authconfig.rb +5 -2
- data/lib/puppet/network/authentication.rb +7 -2
- data/lib/puppet/network/authorization.rb +2 -2
- data/lib/puppet/network/format_support.rb +4 -0
- data/lib/puppet/network/formats.rb +9 -14
- data/lib/puppet/network/http.rb +11 -0
- data/lib/puppet/network/http/api.rb +0 -2
- data/lib/puppet/network/http/api/v1.rb +146 -11
- data/lib/puppet/network/http/api/v2.rb +32 -0
- data/lib/puppet/network/http/api/v2/authorization.rb +13 -0
- data/lib/puppet/network/http/api/v2/environments.rb +21 -0
- data/lib/puppet/network/http/connection.rb +94 -37
- data/lib/puppet/network/http/error.rb +69 -0
- data/lib/puppet/network/http/handler.rb +28 -196
- data/lib/puppet/network/http/issues.rb +9 -0
- data/lib/puppet/network/http/memory_response.rb +13 -0
- data/lib/puppet/network/http/rack/rest.rb +10 -18
- data/lib/puppet/network/http/request.rb +56 -0
- data/lib/puppet/network/http/response.rb +11 -0
- data/lib/puppet/network/http/route.rb +91 -0
- data/lib/puppet/network/http/webrick.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +7 -12
- data/lib/puppet/network/http_pool.rb +3 -3
- data/lib/puppet/network/rights.rb +4 -4
- data/lib/puppet/node.rb +23 -14
- data/lib/puppet/node/environment.rb +149 -125
- data/lib/puppet/node/facts.rb +6 -5
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/block_expression.rb +1 -6
- data/lib/puppet/parser/ast/collexpr.rb +54 -2
- data/lib/puppet/parser/ast/lambda.rb +9 -0
- data/lib/puppet/parser/ast/leaf.rb +15 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +168 -0
- data/lib/puppet/parser/code_merger.rb +13 -0
- data/lib/puppet/parser/collector.rb +1 -1
- data/lib/puppet/parser/compiler.rb +28 -30
- data/lib/puppet/parser/e4_parser_adapter.rb +81 -0
- data/lib/puppet/parser/e_parser_adapter.rb +0 -1
- data/lib/puppet/parser/files.rb +12 -7
- data/lib/puppet/parser/functions.rb +36 -29
- data/lib/puppet/parser/functions/collect.rb +1 -1
- data/lib/puppet/parser/functions/defined.rb +40 -16
- data/lib/puppet/parser/functions/each.rb +55 -41
- data/lib/puppet/parser/functions/epp.rb +41 -0
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/filter.rb +68 -16
- data/lib/puppet/parser/functions/generate.rb +1 -1
- data/lib/puppet/parser/functions/include.rb +3 -2
- data/lib/puppet/parser/functions/inline_epp.rb +79 -0
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +127 -27
- data/lib/puppet/parser/functions/map.rb +64 -12
- data/lib/puppet/parser/functions/reduce.rb +40 -16
- data/lib/puppet/parser/functions/select.rb +1 -1
- data/lib/puppet/parser/functions/slice.rb +42 -23
- data/lib/puppet/parser/grammar.ra +3 -0
- data/lib/puppet/parser/lexer.rb +10 -9
- data/lib/puppet/parser/parser.rb +15 -12
- data/lib/puppet/parser/parser_factory.rb +26 -1
- data/lib/puppet/parser/parser_support.rb +13 -4
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/scope.rb +246 -97
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +13 -2
- data/lib/puppet/pops.rb +15 -1
- data/lib/puppet/pops/adapters.rb +64 -32
- data/lib/puppet/pops/binder/binder.rb +122 -150
- data/lib/puppet/pops/binder/binder_issues.rb +1 -21
- data/lib/puppet/pops/binder/bindings_checker.rb +0 -20
- data/lib/puppet/pops/binder/bindings_composer.rb +4 -70
- data/lib/puppet/pops/binder/bindings_factory.rb +16 -58
- data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -3
- data/lib/puppet/pops/binder/bindings_loader.rb +13 -4
- data/lib/puppet/pops/binder/bindings_model.rb +17 -31
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +2 -20
- data/lib/puppet/pops/binder/config/binder_config.rb +8 -40
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +2 -43
- data/lib/puppet/pops/binder/config/issues.rb +1 -21
- data/lib/puppet/pops/binder/injector.rb +86 -7
- data/lib/puppet/pops/binder/injector_entry.rb +6 -2
- data/lib/puppet/pops/binder/key_factory.rb +7 -1
- data/lib/puppet/pops/binder/lookup.rb +191 -0
- data/lib/puppet/pops/binder/producers.rb +5 -5
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +2 -3
- data/lib/puppet/pops/binder/system_bindings.rb +4 -16
- data/lib/puppet/pops/containment.rb +72 -5
- data/lib/puppet/pops/evaluator/access_operator.rb +548 -0
- data/lib/puppet/pops/evaluator/closure.rb +57 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +168 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1069 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +156 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +489 -0
- data/lib/puppet/pops/issue_reporter.rb +8 -4
- data/lib/puppet/pops/issues.rb +199 -4
- data/lib/puppet/pops/label_provider.rb +5 -0
- data/lib/puppet/pops/model/ast_transformer.rb +55 -31
- data/lib/puppet/pops/model/ast_tree_dumper.rb +9 -1
- data/lib/puppet/pops/model/factory.rb +265 -111
- data/lib/puppet/pops/model/model.rb +179 -140
- data/lib/puppet/pops/model/model_label_provider.rb +38 -9
- data/lib/puppet/pops/model/model_tree_dumper.rb +38 -13
- data/lib/puppet/pops/parser/code_merger.rb +17 -0
- data/lib/puppet/pops/parser/egrammar.ra +110 -61
- data/lib/puppet/pops/parser/eparser.rb +1415 -1092
- data/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/lib/puppet/pops/parser/epp_support.rb +247 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +53 -15
- data/lib/puppet/pops/parser/heredoc_support.rb +139 -0
- data/lib/puppet/pops/parser/interpolation_support.rb +227 -0
- data/lib/puppet/pops/parser/lexer.rb +83 -192
- data/lib/puppet/pops/parser/lexer2.rb +684 -0
- data/lib/puppet/pops/parser/lexer_support.rb +107 -0
- data/lib/puppet/pops/parser/locatable.rb +23 -0
- data/lib/puppet/pops/parser/locator.rb +291 -0
- data/lib/puppet/pops/parser/makefile +1 -8
- data/lib/puppet/pops/parser/parser_support.rb +76 -48
- data/lib/puppet/pops/parser/slurp_support.rb +95 -0
- data/lib/puppet/pops/patterns.rb +13 -4
- data/lib/puppet/pops/types/class_loader.rb +2 -2
- data/lib/puppet/pops/types/enumeration.rb +34 -0
- data/lib/puppet/pops/types/type_calculator.rb +983 -58
- data/lib/puppet/pops/types/type_factory.rb +203 -15
- data/lib/puppet/pops/types/type_parser.rb +355 -12
- data/lib/puppet/pops/types/types.rb +314 -24
- data/lib/puppet/pops/utils.rb +23 -7
- data/lib/puppet/pops/validation.rb +14 -8
- data/lib/puppet/pops/validation/checker3_1.rb +17 -12
- data/lib/puppet/pops/validation/checker4_0.rb +514 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +31 -0
- data/lib/puppet/pops/visitor.rb +146 -4
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider.rb +47 -26
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/augeas/augeas.rb +11 -11
- data/lib/puppet/provider/cron/crontab.rb +10 -1
- data/lib/puppet/provider/exec.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +1 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +2 -2
- data/lib/puppet/provider/file/windows.rb +15 -9
- data/lib/puppet/provider/group/aix.rb +2 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +3 -3
- data/lib/puppet/provider/mount.rb +7 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +1 -1
- data/lib/puppet/provider/package/appdmg.rb +1 -4
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +1 -1
- data/lib/puppet/provider/package/blastwave.rb +1 -1
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +3 -3
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/pacman.rb +58 -5
- data/lib/puppet/provider/package/pip.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +25 -10
- data/lib/puppet/provider/package/pkgin.rb +48 -23
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/portupgrade.rb +7 -7
- data/lib/puppet/provider/package/rpm.rb +16 -8
- data/lib/puppet/provider/package/windows.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/selboolean/getsetsebool.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +5 -5
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +3 -3
- data/lib/puppet/provider/service/daemontools.rb +20 -20
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +3 -3
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +4 -4
- data/lib/puppet/provider/service/redhat.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +4 -4
- data/lib/puppet/provider/service/service.rb +3 -4
- data/lib/puppet/provider/service/smf.rb +1 -1
- data/lib/puppet/provider/service/src.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +4 -4
- data/lib/puppet/provider/service/upstart.rb +22 -7
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +3 -3
- data/lib/puppet/provider/user/aix.rb +5 -5
- data/lib/puppet/provider/user/directoryservice.rb +8 -5
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -2
- data/lib/puppet/provider/user/useradd.rb +19 -5
- data/lib/puppet/provider/yumrepo/inifile.rb +187 -0
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/rails.rb +16 -11
- data/lib/puppet/rails/benchmark.rb +1 -1
- data/lib/puppet/rails/resource.rb +5 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/relationship.rb +10 -5
- data/lib/puppet/reports/http.rb +8 -2
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +4 -4
- data/lib/puppet/resource.rb +37 -44
- data/lib/puppet/resource/catalog.rb +18 -20
- data/lib/puppet/resource/status.rb +7 -6
- data/lib/puppet/resource/type.rb +6 -5
- data/lib/puppet/resource/type_collection.rb +2 -2
- data/lib/puppet/run.rb +9 -8
- data/lib/puppet/settings.rb +395 -244
- data/lib/puppet/settings/base_setting.rb +10 -4
- data/lib/puppet/settings/config_file.rb +81 -44
- data/lib/puppet/settings/directory_setting.rb +1 -2
- data/lib/puppet/settings/file_setting.rb +12 -5
- data/lib/puppet/settings/ini_file.rb +171 -0
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate_authority.rb +16 -11
- data/lib/puppet/ssl/certificate_authority/interface.rb +3 -2
- data/lib/puppet/ssl/certificate_factory.rb +50 -5
- data/lib/puppet/ssl/certificate_request.rb +2 -2
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/certificate_revocation_list.rb +3 -1
- data/lib/puppet/ssl/host.rb +9 -8
- data/lib/puppet/ssl/inventory.rb +1 -1
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/status.rb +8 -7
- data/lib/puppet/test/test_helper.rb +35 -4
- data/lib/puppet/transaction/event.rb +6 -5
- data/lib/puppet/transaction/report.rb +10 -10
- data/lib/puppet/type.rb +1 -3
- data/lib/puppet/type/augeas.rb +2 -1
- data/lib/puppet/type/cron.rb +41 -11
- data/lib/puppet/type/exec.rb +5 -5
- data/lib/puppet/type/file.rb +42 -4
- data/lib/puppet/type/file/content.rb +5 -6
- data/lib/puppet/type/file/ensure.rb +3 -3
- data/lib/puppet/type/file/source.rb +12 -6
- data/lib/puppet/type/file/target.rb +5 -5
- data/lib/puppet/type/k5login.rb +4 -4
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/package.rb +79 -3
- data/lib/puppet/type/resources.rb +34 -5
- data/lib/puppet/type/selboolean.rb +1 -1
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -1
- data/lib/puppet/type/sshkey.rb +2 -1
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +4 -1
- data/lib/puppet/type/yumrepo.rb +219 -344
- data/lib/puppet/type/zone.rb +15 -5
- data/lib/puppet/util.rb +14 -13
- data/lib/puppet/util/adsi.rb +19 -3
- data/lib/puppet/util/autoload.rb +27 -24
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/colors.rb +4 -12
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/command_line/trollop.rb +3 -3
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +8 -1
- data/lib/puppet/util/execution.rb +12 -5
- data/lib/puppet/util/filetype.rb +5 -5
- data/lib/puppet/util/inifile.rb +19 -4
- data/lib/puppet/util/instrumentation/data.rb +5 -0
- data/lib/puppet/util/instrumentation/indirection_probe.rb +6 -1
- data/lib/puppet/util/instrumentation/listener.rb +6 -1
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/lockfile.rb +10 -6
- data/lib/puppet/util/log.rb +6 -1
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/metric.rb +9 -4
- data/lib/puppet/util/nagios_maker.rb +26 -1
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/network_device/transport/ssh.rb +3 -3
- data/lib/puppet/util/plugins.rb +1 -1
- data/lib/puppet/util/profiler.rb +13 -1
- data/lib/puppet/util/pson.rb +1 -1
- data/lib/puppet/util/queue/stomp.rb +2 -2
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +19 -19
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/retryaction.rb +1 -1
- data/lib/puppet/util/selinux.rb +2 -2
- data/lib/puppet/util/storage.rb +3 -3
- data/lib/puppet/util/symbolic_file_mode.rb +1 -1
- data/lib/puppet/util/tag_set.rb +15 -3
- data/lib/puppet/util/tagging.rb +12 -17
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +1 -1
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +20 -4
- data/lib/puppet/util/windows/registry.rb +2 -2
- data/lib/puppet/vendor/safe_yaml/CHANGES.md +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +1 -21
- data/lib/puppetx/puppet/syntax_checker.rb +1 -1
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +9 -11
- data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +6 -0
- data/spec/fixtures/{unit/pops/binder/hiera2/yaml_backend/empty/common.yaml → integration/node/environment/sitedir/03_empty.pp} +0 -0
- data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +2 -0
- data/spec/fixtures/integration/provider/cron/crontab/purged +8 -0
- data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +3 -12
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +20 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/{awesome/lib/puppetx/awesome → awesome2/lib/puppetx/awesome2}/echo_scheme_handler.rb +2 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +5 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +6 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +2 -2
- data/spec/fixtures/unit/provider/service/systemd/{list_units → list_units_services} +0 -1
- data/spec/integration/agent/logging_spec.rb +1 -1
- data/spec/integration/application/apply_spec.rb +78 -3
- data/spec/integration/application/doc_spec.rb +3 -2
- data/spec/integration/configurer_spec.rb +5 -3
- data/spec/integration/directory_environments_spec.rb +50 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +4 -5
- data/spec/integration/network/authconfig_spec.rb +4 -4
- data/spec/integration/network/formats_spec.rb +1 -1
- data/spec/integration/node/environment_spec.rb +67 -15
- data/spec/integration/node/facts_spec.rb +1 -1
- data/spec/integration/node_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +100 -60
- data/spec/integration/parser/compiler_spec.rb +102 -13
- data/spec/integration/parser/future_compiler_spec.rb +416 -0
- data/spec/integration/parser/parser_spec.rb +44 -105
- data/spec/integration/parser/scope_spec.rb +614 -528
- data/spec/integration/provider/cron/crontab_spec.rb +21 -0
- data/spec/integration/provider/mount_spec.rb +15 -2
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +3 -4
- data/spec/integration/ssl/autosign_spec.rb +1 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/host_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +13 -13
- data/spec/integration/type/exec_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +114 -41
- data/spec/integration/type/nagios_spec.rb +80 -0
- data/spec/integration/type/tidy_spec.rb +2 -2
- data/spec/integration/util/execution_spec.rb +17 -0
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +27 -2
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/matchers/json.rb +135 -79
- data/spec/lib/matchers/match_tokens2.rb +74 -0
- data/spec/lib/matchers/resource.rb +35 -0
- data/spec/lib/puppet/indirector/indirector_testing/memory.rb +7 -0
- data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +6 -0
- data/spec/lib/puppet/indirector_testing.rb +12 -2
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/matchers.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +14 -0
- data/spec/shared_behaviours/file_server_terminus.rb +2 -2
- data/spec/spec_helper.rb +47 -17
- data/spec/unit/agent_spec.rb +8 -1
- data/spec/unit/application/agent_spec.rb +5 -4
- data/spec/unit/application/apply_spec.rb +34 -15
- data/spec/unit/application/device_spec.rb +27 -32
- data/spec/unit/application/doc_spec.rb +4 -4
- data/spec/unit/application/filebucket_spec.rb +1 -1
- data/spec/unit/application/master_spec.rb +2 -2
- data/spec/unit/application_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +5 -16
- data/spec/unit/configurer_spec.rb +2 -2
- data/spec/unit/confine/exists_spec.rb +5 -5
- data/spec/unit/context/trusted_information_spec.rb +124 -0
- data/spec/unit/context_spec.rb +74 -0
- data/spec/unit/environments_spec.rb +126 -0
- data/spec/unit/face/config_spec.rb +31 -16
- data/spec/unit/face/module/build_spec.rb +1 -0
- data/spec/unit/face/module/install_spec.rb +21 -104
- data/spec/unit/face/module/list_spec.rb +52 -36
- data/spec/unit/face/module/uninstall_spec.rb +18 -25
- data/spec/unit/face/parser_spec.rb +39 -23
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/base_spec.rb +9 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +8 -2
- data/spec/unit/file_serving/configuration_spec.rb +7 -7
- data/spec/unit/file_serving/content_spec.rb +7 -12
- data/spec/unit/file_serving/fileset_spec.rb +49 -53
- data/spec/unit/file_serving/metadata_spec.rb +83 -32
- data/spec/unit/file_serving/mount/file_spec.rb +10 -10
- data/spec/unit/file_system/tempfile_spec.rb +3 -3
- data/spec/unit/file_system_spec.rb +508 -0
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/repository_spec.rb +1 -3
- data/spec/unit/hiera/scope_spec.rb +6 -2
- data/spec/unit/hiera_puppet_spec.rb +13 -6
- data/spec/unit/indirector/catalog/msgpack_spec.rb +12 -0
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +42 -11
- data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
- data/spec/unit/indirector/facts/facter_spec.rb +5 -5
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -4
- data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
- data/spec/unit/indirector/file_server_spec.rb +4 -4
- data/spec/unit/indirector/json_spec.rb +6 -6
- data/spec/unit/indirector/key/file_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +191 -0
- data/spec/unit/indirector/node/active_record_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +16 -7
- data/spec/unit/indirector/node/msgpack_spec.rb +24 -0
- data/spec/unit/indirector/node/plain_spec.rb +1 -1
- data/spec/unit/indirector/queue_spec.rb +1 -1
- data/spec/unit/indirector/report/msgpack_spec.rb +28 -0
- data/spec/unit/indirector/request_spec.rb +16 -8
- data/spec/unit/indirector/rest_spec.rb +0 -4
- data/spec/unit/indirector/ssl_file_spec.rb +12 -11
- data/spec/unit/indirector/yaml_spec.rb +4 -4
- data/spec/unit/man_spec.rb +32 -0
- data/spec/unit/module_spec.rb +60 -46
- data/spec/unit/module_tool/applications/checksummer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +53 -16
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +26 -25
- data/spec/unit/module_tool/tar_spec.rb +1 -1
- data/spec/unit/module_tool_spec.rb +17 -90
- data/spec/unit/network/authconfig_spec.rb +3 -4
- data/spec/unit/network/authentication_spec.rb +20 -6
- data/spec/unit/network/authorization_spec.rb +11 -1
- data/spec/unit/network/formats_spec.rb +32 -9
- data/spec/unit/network/http/api/v1_spec.rb +365 -62
- data/spec/unit/network/http/api/v2/authorization_spec.rb +57 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +42 -0
- data/spec/unit/network/http/api/v2_spec.rb +14 -0
- data/spec/unit/network/http/connection_spec.rb +39 -5
- data/spec/unit/network/http/error_spec.rb +30 -0
- data/spec/unit/network/http/handler_spec.rb +69 -419
- data/spec/unit/network/http/rack/rest_spec.rb +20 -28
- data/spec/unit/network/http/route_spec.rb +75 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +21 -58
- data/spec/unit/network/http_pool_spec.rb +3 -3
- data/spec/unit/network/rights_spec.rb +2 -2
- data/spec/unit/node/environment_spec.rb +108 -89
- data/spec/unit/node/facts_spec.rb +5 -12
- data/spec/unit/node_spec.rb +22 -22
- data/spec/unit/parser/ast/collection_spec.rb +1 -1
- data/spec/unit/parser/ast/leaf_spec.rb +2 -0
- data/spec/unit/parser/ast/resource_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +5 -3
- data/spec/unit/parser/files_spec.rb +40 -50
- data/spec/unit/parser/functions/defined_spec.rb +80 -18
- data/spec/unit/parser/functions/epp_spec.rb +88 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +4 -1
- data/spec/unit/parser/functions/generate_spec.rb +6 -2
- data/spec/unit/parser/functions/hiera_array_spec.rb +5 -2
- data/spec/unit/parser/functions/hiera_hash_spec.rb +4 -1
- data/spec/unit/parser/functions/hiera_include_spec.rb +6 -3
- data/spec/unit/parser/functions/hiera_spec.rb +5 -2
- data/spec/unit/parser/functions/include_spec.rb +0 -1
- data/spec/unit/parser/functions/inline_epp_spec.rb +82 -0
- data/spec/unit/parser/functions/lookup_spec.rb +66 -16
- data/spec/unit/parser/functions_spec.rb +25 -91
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/filter_spec.rb +56 -0
- data/spec/unit/parser/methods/map_spec.rb +94 -5
- data/spec/unit/parser/methods/reduce_spec.rb +10 -0
- data/spec/unit/parser/methods/shared.rb +2 -18
- data/spec/unit/parser/methods/slice_spec.rb +39 -1
- data/spec/unit/parser/parser_spec.rb +14 -10
- data/spec/unit/parser/resource_spec.rb +3 -9
- data/spec/unit/parser/scope_spec.rb +81 -78
- data/spec/unit/parser/type_loader_spec.rb +0 -4
- data/spec/unit/pops/benchmark_spec.rb +142 -0
- data/spec/unit/pops/binder/binder_spec.rb +15 -34
- data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -41
- data/spec/unit/pops/binder/bindings_composer_spec.rb +6 -31
- data/spec/unit/pops/binder/config/binder_config_spec.rb +5 -18
- data/spec/unit/pops/binder/injector_spec.rb +76 -81
- data/spec/unit/pops/evaluator/access_ops_spec.rb +376 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +77 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +103 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +111 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +256 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +190 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1045 -0
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +75 -0
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +90 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +44 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +194 -0
- data/spec/unit/pops/factory_spec.rb +6 -29
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/model/ast_transformer_spec.rb +6 -9
- data/spec/unit/pops/model/model_spec.rb +2 -2
- data/spec/unit/pops/parser/epp_parser_spec.rb +86 -0
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +4 -2
- data/spec/unit/pops/parser/lexer2_spec.rb +428 -0
- data/spec/unit/pops/parser/lexer_spec.rb +25 -86
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +29 -4
- data/spec/unit/pops/parser/parse_calls_spec.rb +10 -6
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -9
- data/spec/unit/pops/parser/parse_containers_spec.rb +43 -12
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +73 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +14 -0
- data/spec/unit/pops/parser/parser_spec.rb +3 -1
- data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +4 -4
- data/spec/unit/pops/transformer/transform_calls_spec.rb +41 -6
- data/spec/unit/pops/transformer/transform_conditionals_spec.rb +0 -9
- data/spec/unit/pops/transformer/transform_containers_spec.rb +12 -4
- data/spec/unit/pops/types/enumeration_spec.rb +50 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1171 -196
- data/spec/unit/pops/types/type_factory_spec.rb +108 -4
- data/spec/unit/pops/types/type_parser_spec.rb +114 -10
- data/spec/unit/pops/validator/validator_spec.rb +36 -1
- data/spec/unit/provider/augeas/augeas_spec.rb +39 -16
- data/spec/unit/provider/cron/parsed_spec.rb +27 -31
- data/spec/unit/provider/file/posix_spec.rb +2 -2
- data/spec/unit/provider/group/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/mount_spec.rb +12 -1
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +1 -1
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/gem_spec.rb +12 -0
- data/spec/unit/provider/package/msi_spec.rb +4 -0
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +36 -7
- data/spec/unit/provider/package/pkgin_spec.rb +57 -55
- data/spec/unit/provider/package/rpm_spec.rb +51 -6
- data/spec/unit/provider/service/base_spec.rb +4 -4
- data/spec/unit/provider/service/daemontools_spec.rb +8 -13
- data/spec/unit/provider/service/freebsd_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_spec.rb +24 -24
- data/spec/unit/provider/service/init_spec.rb +15 -15
- data/spec/unit/provider/service/openbsd_spec.rb +16 -16
- data/spec/unit/provider/service/openrc_spec.rb +20 -20
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +5 -8
- data/spec/unit/provider/service/src_spec.rb +4 -4
- data/spec/unit/provider/service/systemd_spec.rb +24 -14
- data/spec/unit/provider/service/upstart_spec.rb +12 -4
- data/spec/unit/provider/service/windows_spec.rb +1 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +21 -23
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/useradd_spec.rb +43 -15
- data/spec/unit/provider/user/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/yumrepo/inifile_spec.rb +105 -0
- data/spec/unit/provider/zone/solaris_spec.rb +1 -1
- data/spec/unit/provider_spec.rb +120 -62
- data/spec/unit/rails/host_spec.rb +1 -1
- data/spec/unit/rails/param_value_spec.rb +4 -0
- data/spec/unit/relationship_spec.rb +4 -4
- data/spec/unit/reports/http_spec.rb +14 -3
- data/spec/unit/reports/rrdgraph_spec.rb +0 -1
- data/spec/unit/reports/store_spec.rb +2 -2
- data/spec/unit/resource/catalog_spec.rb +17 -29
- data/spec/unit/resource/status_spec.rb +1 -1
- data/spec/unit/resource/type_collection_spec.rb +28 -47
- data/spec/unit/resource/type_spec.rb +12 -23
- data/spec/unit/resource_spec.rb +54 -93
- data/spec/unit/run_spec.rb +3 -3
- data/spec/unit/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +68 -15
- data/spec/unit/settings/file_setting_spec.rb +2 -2
- data/spec/unit/settings/ini_file_spec.rb +184 -0
- data/spec/unit/settings_spec.rb +137 -79
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +3 -1
- data/spec/unit/ssl/certificate_authority_spec.rb +11 -9
- data/spec/unit/ssl/certificate_factory_spec.rb +19 -4
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +1 -1
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +101 -72
- data/spec/unit/ssl/host_spec.rb +8 -20
- data/spec/unit/ssl/inventory_spec.rb +2 -2
- data/spec/unit/ssl/key_spec.rb +4 -4
- data/spec/unit/status_spec.rb +6 -4
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -11
- data/spec/unit/transaction/event_spec.rb +2 -2
- data/spec/unit/transaction/report_spec.rb +24 -15
- data/spec/unit/transaction/resource_harness_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +39 -1
- data/spec/unit/type/file/content_spec.rb +4 -5
- data/spec/unit/type/file/ctime_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +5 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +30 -7
- data/spec/unit/type/file_spec.rb +8 -8
- data/spec/unit/type/k5login_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +6 -0
- data/spec/unit/type/package/package_settings_spec.rb +135 -0
- data/spec/unit/type/package_spec.rb +13 -1
- data/spec/unit/type/resources_spec.rb +155 -0
- data/spec/unit/type/service_spec.rb +3 -3
- data/spec/unit/type/ssh_authorized_key_spec.rb +96 -93
- data/spec/unit/type/sshkey_spec.rb +39 -30
- data/spec/unit/type/tidy_spec.rb +19 -12
- data/spec/unit/type/user_spec.rb +47 -2
- data/spec/unit/type/whit_spec.rb +2 -2
- data/spec/unit/type/yumrepo_spec.rb +32 -177
- data/spec/unit/type/zone_spec.rb +2 -2
- data/spec/unit/type_spec.rb +11 -0
- data/spec/unit/util/adsi_spec.rb +48 -1
- data/spec/unit/util/autoload_spec.rb +24 -39
- data/spec/unit/util/backups_spec.rb +25 -28
- data/spec/unit/util/checksums_spec.rb +1 -3
- data/spec/unit/util/colors_spec.rb +14 -0
- data/spec/unit/util/docs_spec.rb +9 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/filetype_spec.rb +7 -7
- data/spec/unit/util/instrumentation/data_spec.rb +3 -1
- data/spec/unit/util/instrumentation/indirection_probe_spec.rb +2 -0
- data/spec/unit/util/instrumentation/listener_spec.rb +3 -2
- data/spec/unit/util/json_lockfile_spec.rb +25 -4
- data/spec/unit/util/lockfile_spec.rb +49 -7
- data/spec/unit/util/log/destinations_spec.rb +1 -0
- data/spec/unit/util/log_spec.rb +1 -1
- data/spec/unit/util/metric_spec.rb +1 -1
- data/spec/unit/util/pidlock_spec.rb +6 -6
- data/spec/unit/util/pson_spec.rb +2 -2
- data/spec/unit/util/rdoc/parser_spec.rb +32 -29
- data/spec/unit/util/resource_template_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +5 -5
- data/spec/unit/util/storage_spec.rb +4 -4
- data/spec/unit/util/tag_set_spec.rb +1 -1
- data/spec/unit/util/watcher_spec.rb +1 -4
- data/spec/unit/util/yaml_spec.rb +2 -2
- data/spec/unit/util_spec.rb +7 -7
- data/tasks/benchmark.rake +0 -1
- data/tasks/parallel.rake +408 -0
- data/tasks/yard.rake +59 -0
- metadata +2889 -2782
- checksums.yaml +0 -7
- data/README_DEVELOPER.md +0 -809
- data/lib/puppet/file_system/file.rb +0 -271
- data/lib/puppet/network/http/rack/httphandler.rb +0 -13
- data/lib/puppet/pops/binder/hiera2.rb +0 -10
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +0 -148
- data/lib/puppet/pops/binder/hiera2/config.rb +0 -69
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +0 -68
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +0 -36
- data/lib/puppet/pops/binder/hiera2/issues.rb +0 -67
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +0 -18
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +0 -21
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +0 -67
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +0 -92
- data/lib/puppet/pops/parser/grammar.ra +0 -746
- data/lib/puppet/provider/port/parsed.rb +0 -173
- data/lib/puppet/type/port.rb +0 -119
- data/lib/puppetx/puppet/hiera2_backend.rb +0 -31
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +0 -18
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +0 -13
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +0 -4
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +0 -5
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +0 -7
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +0 -4
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +0 -2
- data/spec/unit/file_system/file_spec.rb +0 -486
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +0 -74
- data/spec/unit/pops/binder/hiera2/config_spec.rb +0 -61
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +0 -33
@@ -45,7 +45,7 @@ module Puppet
|
|
45
45
|
|
46
46
|
# List the hosts.
|
47
47
|
def list(ca)
|
48
|
-
signed = ca.list
|
48
|
+
signed = ca.list if [:signed, :all].include?(subjects)
|
49
49
|
requests = ca.waiting?
|
50
50
|
|
51
51
|
case subjects
|
@@ -57,6 +57,7 @@ module Puppet
|
|
57
57
|
hosts = requests
|
58
58
|
else
|
59
59
|
hosts = subjects
|
60
|
+
signed = ca.list(hosts)
|
60
61
|
end
|
61
62
|
|
62
63
|
certs = {:signed => {}, :invalid => {}, :request => {}}
|
@@ -72,7 +73,7 @@ module Puppet
|
|
72
73
|
|
73
74
|
if verify_error
|
74
75
|
certs[:invalid][host] = [ Puppet::SSL::Certificate.indirection.find(host), verify_error ]
|
75
|
-
elsif signed.include?(host)
|
76
|
+
elsif (signed and signed.include?(host))
|
76
77
|
certs[:signed][host] = Puppet::SSL::Certificate.indirection.find(host)
|
77
78
|
else
|
78
79
|
certs[:request][host] = Puppet::SSL::CertificateRequest.indirection.find(host)
|
@@ -1,8 +1,29 @@
|
|
1
1
|
require 'puppet/ssl'
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# This class encapsulates the logic of creating and adding extensions to X509
|
4
|
+
# certificates.
|
5
|
+
#
|
6
|
+
# @api private
|
5
7
|
module Puppet::SSL::CertificateFactory
|
8
|
+
|
9
|
+
# Create, add extensions to, and sign a new X509 certificate.
|
10
|
+
#
|
11
|
+
# @param cert_type [Symbol] The certificate type to create, which specifies
|
12
|
+
# what extensions are added to the certificate.
|
13
|
+
# One of (:ca, :terminalsubca, :server, :ocsp, :client)
|
14
|
+
# @param csr [OpenSSL::X509::Request] The signing request associated with
|
15
|
+
# the certificate being created.
|
16
|
+
# @param issuer [OpenSSL::X509::Certificate, OpenSSL::X509::Request] An X509 CSR
|
17
|
+
# if this is a self signed certificate, or the X509 certificate of the CA if
|
18
|
+
# this is a CA signed certificate.
|
19
|
+
# @param serial [Integer] The serial number for the given certificate, which
|
20
|
+
# MUST be unique for the given CA.
|
21
|
+
# @param ttl [String] The duration of the validity for the given certificate.
|
22
|
+
# defaults to Puppet[:ca_ttl]
|
23
|
+
#
|
24
|
+
# @api public
|
25
|
+
#
|
26
|
+
# @return [OpenSSL::X509::Certificate]
|
6
27
|
def self.build(cert_type, csr, issuer, serial, ttl = nil)
|
7
28
|
# Work out if we can even build the requested type of certificate.
|
8
29
|
build_extensions = "build_#{cert_type.to_s}_extensions"
|
@@ -35,9 +56,27 @@ module Puppet::SSL::CertificateFactory
|
|
35
56
|
|
36
57
|
private
|
37
58
|
|
59
|
+
# Add X509v3 extensions to the given certificate.
|
60
|
+
#
|
61
|
+
# @param cert [OpenSSL::X509::Certificate] The certificate to add the
|
62
|
+
# extensions to.
|
63
|
+
# @param csr [OpenSSL::X509::Request] The CSR associated with the given
|
64
|
+
# certificate, which may specify requested extensions for the given cert.
|
65
|
+
# See http://tools.ietf.org/html/rfc2985 Section 5.4.2 Extension request
|
66
|
+
# @param issuer [OpenSSL::X509::Certificate, OpenSSL::X509::Request] An X509 CSR
|
67
|
+
# if this is a self signed certificate, or the X509 certificate of the CA if
|
68
|
+
# this is a CA signed certificate.
|
69
|
+
# @param extensions [Hash<String, Array<String> | String>] The extensions to
|
70
|
+
# add to the certificate, based on the certificate type being created (CA,
|
71
|
+
# server, client, etc)
|
72
|
+
#
|
73
|
+
# @api private
|
74
|
+
#
|
75
|
+
# @return [void]
|
38
76
|
def self.add_extensions_to(cert, csr, issuer, extensions)
|
39
|
-
ef = OpenSSL::X509::ExtensionFactory.
|
40
|
-
|
77
|
+
ef = OpenSSL::X509::ExtensionFactory.new
|
78
|
+
ef.subject_certificate = cert
|
79
|
+
ef.issuer_certificate = issuer.is_a?(OpenSSL::X509::Request) ? cert : issuer
|
41
80
|
|
42
81
|
# Extract the requested extensions from the CSR.
|
43
82
|
requested_exts = csr.request_extensions.inject({}) do |hash, re|
|
@@ -60,7 +99,13 @@ module Puppet::SSL::CertificateFactory
|
|
60
99
|
# certificate through where the CA constraint was true, though, if
|
61
100
|
# something went wrong up there. --daniel 2011-10-11
|
62
101
|
defaults = { "nsComment" => "Puppet Ruby/OpenSSL Internal Certificate" }
|
63
|
-
|
102
|
+
|
103
|
+
# See http://www.openssl.org/docs/apps/x509v3_config.html
|
104
|
+
# for information about the special meanings of 'hash', 'keyid', 'issuer'
|
105
|
+
override = {
|
106
|
+
"subjectKeyIdentifier" => "hash",
|
107
|
+
"authorityKeyIdentifier" => "keyid,issuer"
|
108
|
+
}
|
64
109
|
|
65
110
|
exts = [defaults, requested_exts, extensions, override].
|
66
111
|
inject({}) {|ret, val| ret.merge(val) }
|
@@ -205,7 +205,7 @@ DOC
|
|
205
205
|
csr.add_attribute(OpenSSL::X509::Attribute.new(oid, attr_set))
|
206
206
|
Puppet.debug("Added csr attribute: #{oid} => #{attr_set.inspect}")
|
207
207
|
rescue OpenSSL::X509::AttributeError => e
|
208
|
-
raise Puppet::Error, "Cannot create CSR with attribute #{oid}: #{e.message}"
|
208
|
+
raise Puppet::Error, "Cannot create CSR with attribute #{oid}: #{e.message}", e.backtrace
|
209
209
|
end
|
210
210
|
end
|
211
211
|
end
|
@@ -230,7 +230,7 @@ DOC
|
|
230
230
|
ext = OpenSSL::X509::Extension.new(oid, value.to_s, false)
|
231
231
|
extensions << ext
|
232
232
|
rescue OpenSSL::X509::ExtensionError => e
|
233
|
-
raise Puppet::Error, "Cannot create CSR with extension request #{oid}: #{e.message}"
|
233
|
+
raise Puppet::Error, "Cannot create CSR with extension request #{oid}: #{e.message}", e.backtrace
|
234
234
|
end
|
235
235
|
end
|
236
236
|
end
|
@@ -20,7 +20,7 @@ class Puppet::SSL::CertificateRequestAttributes
|
|
20
20
|
# @raise [Puppet::Error] if there are unexpected attribute keys
|
21
21
|
def load
|
22
22
|
Puppet.info("csr_attributes file loading from #{path}")
|
23
|
-
if Puppet::FileSystem
|
23
|
+
if Puppet::FileSystem.exist?(path)
|
24
24
|
hash = Puppet::Util::Yaml.load_file(path, {})
|
25
25
|
if ! hash.is_a?(Hash)
|
26
26
|
raise Puppet::Error, "invalid CSR attributes, expected instance of Hash, received instance of #{hash.class}"
|
@@ -60,13 +60,15 @@ DOC
|
|
60
60
|
private
|
61
61
|
|
62
62
|
def create_crl_issued_by(cert)
|
63
|
+
ef = OpenSSL::X509::ExtensionFactory.new(cert)
|
63
64
|
@content = wrapped_class.new
|
64
65
|
@content.issuer = cert.subject
|
66
|
+
@content.add_extension(ef.create_ext("authorityKeyIdentifier", "keyid:always"))
|
65
67
|
@content.version = 1
|
66
68
|
end
|
67
69
|
|
68
70
|
def start_at_initial_crl_number
|
69
|
-
@content.
|
71
|
+
@content.add_extension(crl_number_of(0))
|
70
72
|
end
|
71
73
|
|
72
74
|
def add_certificate_revocation_for(serial, reason, time)
|
data/lib/puppet/ssl/host.rb
CHANGED
@@ -118,14 +118,19 @@ DOC
|
|
118
118
|
indirection.destroy(name)
|
119
119
|
end
|
120
120
|
|
121
|
-
def self.
|
122
|
-
instance = new(
|
123
|
-
if
|
124
|
-
instance.desired_state =
|
121
|
+
def self.from_data_hash(data)
|
122
|
+
instance = new(data["name"])
|
123
|
+
if data["desired_state"]
|
124
|
+
instance.desired_state = data["desired_state"]
|
125
125
|
end
|
126
126
|
instance
|
127
127
|
end
|
128
128
|
|
129
|
+
def self.from_pson(pson)
|
130
|
+
Puppet.deprecation_warning("from_pson is being removed in favour of from_data_hash.")
|
131
|
+
self.from_data_hash(pson)
|
132
|
+
end
|
133
|
+
|
129
134
|
# Puppet::SSL::Host is actually indirected now so the original implementation
|
130
135
|
# has been moved into the certificate_status indirector. This method does not
|
131
136
|
# appear to be in use in `puppet cert -l`.
|
@@ -307,10 +312,6 @@ ERROR_STRING
|
|
307
312
|
result
|
308
313
|
end
|
309
314
|
|
310
|
-
def to_pson(*args)
|
311
|
-
to_data_hash.to_pson(*args)
|
312
|
-
end
|
313
|
-
|
314
315
|
# eventually we'll probably want to move this somewhere else or make it
|
315
316
|
# configurable
|
316
317
|
# --jeffweiss 29 aug 2012
|
data/lib/puppet/ssl/inventory.rb
CHANGED
@@ -37,7 +37,7 @@ class Puppet::SSL::Inventory
|
|
37
37
|
|
38
38
|
# Find the serial number for a given certificate.
|
39
39
|
def serial(name)
|
40
|
-
return nil unless Puppet::FileSystem
|
40
|
+
return nil unless Puppet::FileSystem.exist?(@path)
|
41
41
|
|
42
42
|
File.readlines(@path).each do |line|
|
43
43
|
next unless line =~ /^(\S+).+\/CN=#{name}$/
|
data/lib/puppet/ssl/key.rb
CHANGED
@@ -148,6 +148,6 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
|
|
148
148
|
# @api private
|
149
149
|
#
|
150
150
|
def ssl_certificates_are_present?
|
151
|
-
Puppet::FileSystem
|
151
|
+
Puppet::FileSystem.exist?(Puppet[:hostcert]) && Puppet::FileSystem.exist?(@ssl_configuration.ca_auth_file)
|
152
152
|
end
|
153
153
|
end
|
data/lib/puppet/status.rb
CHANGED
@@ -14,16 +14,17 @@ class Puppet::Status
|
|
14
14
|
@status
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
17
|
+
def self.from_data_hash(data)
|
18
|
+
if data.include?('status')
|
19
|
+
self.new(data['status'])
|
20
|
+
else
|
21
|
+
self.new(data)
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
def self.from_pson(pson)
|
22
|
-
|
23
|
-
|
24
|
-
else
|
25
|
-
self.new(pson)
|
26
|
-
end
|
26
|
+
Puppet.deprecation_warning("from_pson is being removed in favour of from_data_hash.")
|
27
|
+
self.from_data_hash(pson)
|
27
28
|
end
|
28
29
|
|
29
30
|
def name
|
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'puppet/indirector/data_binding/hiera'
|
2
2
|
|
3
|
+
require 'tmpdir'
|
4
|
+
require 'fileutils'
|
5
|
+
|
3
6
|
module Puppet::Test
|
4
7
|
# This class is intended to provide an API to be used by external projects
|
5
8
|
# when they are running tests that depend on puppet core. This should
|
@@ -33,26 +36,39 @@ module Puppet::Test
|
|
33
36
|
# that call Puppet.
|
34
37
|
# @return nil
|
35
38
|
def self.initialize()
|
36
|
-
|
39
|
+
owner = Process.pid
|
40
|
+
@environmentdir = Dir.mktmpdir('environments')
|
41
|
+
Puppet.push_context(Puppet.base_context({
|
42
|
+
:environmentpath => @environmentdir,
|
43
|
+
:basemodulepath => "",
|
44
|
+
:manifest => "/dev/null"
|
45
|
+
}), "Initial for specs")
|
46
|
+
Puppet::Parser::Functions.reset
|
47
|
+
|
48
|
+
ObjectSpace.define_finalizer(Puppet.lookup(:environments), proc {
|
49
|
+
if Process.pid == owner
|
50
|
+
FileUtils.rm_rf(@environmentdir)
|
51
|
+
end
|
52
|
+
})
|
37
53
|
end
|
38
54
|
|
39
55
|
# Call this method once, when beginning a test run--prior to running
|
40
56
|
# any individual tests.
|
41
57
|
# @return nil
|
42
58
|
def self.before_all_tests()
|
43
|
-
|
59
|
+
# Make sure that all of the setup is also done for any before(:all) blocks
|
44
60
|
end
|
45
61
|
|
46
62
|
# Call this method once, at the end of a test run, when no more tests
|
47
63
|
# will be run.
|
48
64
|
# @return nil
|
49
65
|
def self.after_all_tests()
|
50
|
-
|
51
66
|
end
|
52
67
|
|
53
68
|
# Call this method once per test, prior to execution of each invididual test.
|
54
69
|
# @return nil
|
55
70
|
def self.before_each_test()
|
71
|
+
|
56
72
|
# We need to preserve the current state of all our indirection cache and
|
57
73
|
# terminus classes. This is pretty important, because changes to these
|
58
74
|
# are global and lead to order dependencies in our testing.
|
@@ -83,8 +99,15 @@ module Puppet::Test
|
|
83
99
|
|
84
100
|
initialize_settings_before_each()
|
85
101
|
|
86
|
-
Puppet
|
102
|
+
Puppet.push_context(
|
103
|
+
{
|
104
|
+
:trusted_information =>
|
105
|
+
Puppet::Context::TrustedInformation.new('local', 'testing', {}),
|
106
|
+
},
|
107
|
+
"Context for specs")
|
108
|
+
|
87
109
|
Puppet::Parser::Functions.reset
|
110
|
+
Puppet::Node::Environment.clear
|
88
111
|
Puppet::Application.clear!
|
89
112
|
Puppet::Util::Profiler.clear
|
90
113
|
|
@@ -137,6 +160,7 @@ module Puppet::Test
|
|
137
160
|
$LOAD_PATH.clear
|
138
161
|
$old_load_path.each {|x| $LOAD_PATH << x }
|
139
162
|
|
163
|
+
Puppet.pop_context
|
140
164
|
end
|
141
165
|
|
142
166
|
|
@@ -179,6 +203,13 @@ module Puppet::Test
|
|
179
203
|
# below 512 bits. Sad, really, because a 0 bit key would be just fine.
|
180
204
|
Puppet[:req_bits] = 512
|
181
205
|
Puppet[:keylength] = 512
|
206
|
+
|
207
|
+
# Although we setup a testing context during initialization, some tests
|
208
|
+
# will end up creating their own context using the real context objects
|
209
|
+
# and use the setting for the environments. In order to avoid those tests
|
210
|
+
# having to deal with a missing environmentpath we can just set it right
|
211
|
+
# here.
|
212
|
+
Puppet[:environmentpath] = @environmentpath
|
182
213
|
end
|
183
214
|
private_class_method :initialize_settings_before_each
|
184
215
|
end
|
@@ -19,12 +19,17 @@ class Puppet::Transaction::Event
|
|
19
19
|
|
20
20
|
EVENT_STATUSES = %w{noop success failure audit}
|
21
21
|
|
22
|
-
def self.
|
22
|
+
def self.from_data_hash(data)
|
23
23
|
obj = self.allocate
|
24
24
|
obj.initialize_from_hash(data)
|
25
25
|
obj
|
26
26
|
end
|
27
27
|
|
28
|
+
def self.from_pson(data)
|
29
|
+
Puppet.deprecation_warning("from_pson is being removed in favour of from_data_hash.")
|
30
|
+
self.from_data_hash(data)
|
31
|
+
end
|
32
|
+
|
28
33
|
def initialize(options = {})
|
29
34
|
@audited = false
|
30
35
|
|
@@ -59,10 +64,6 @@ class Puppet::Transaction::Event
|
|
59
64
|
}
|
60
65
|
end
|
61
66
|
|
62
|
-
def to_pson(*args)
|
63
|
-
to_data_hash.to_pson(*args)
|
64
|
-
end
|
65
|
-
|
66
67
|
def property=(prop)
|
67
68
|
@property = prop.to_s
|
68
69
|
end
|
@@ -57,8 +57,7 @@ class Puppet::Transaction::Report
|
|
57
57
|
attr_accessor :environment
|
58
58
|
|
59
59
|
# A hash with a map from resource to status
|
60
|
-
# @return [Hash
|
61
|
-
# @todo Uncertain if the types in the hash are correct...
|
60
|
+
# @return [Hash{String => Puppet::Resource::Status}] Resource name to status.
|
62
61
|
attr_reader :resource_statuses
|
63
62
|
|
64
63
|
# A list of log messages.
|
@@ -98,12 +97,17 @@ class Puppet::Transaction::Report
|
|
98
97
|
#
|
99
98
|
attr_reader :report_format
|
100
99
|
|
101
|
-
def self.
|
100
|
+
def self.from_data_hash(data)
|
102
101
|
obj = self.allocate
|
103
102
|
obj.initialize_from_hash(data)
|
104
103
|
obj
|
105
104
|
end
|
106
105
|
|
106
|
+
def self.from_pson(data)
|
107
|
+
Puppet.deprecation_warning("from_pson is being removed in favour of from_data_hash.")
|
108
|
+
self.from_data_hash(data)
|
109
|
+
end
|
110
|
+
|
107
111
|
def as_logging_destination(&block)
|
108
112
|
Puppet::Util::Log.with_destination(self, &block)
|
109
113
|
end
|
@@ -198,11 +202,11 @@ class Puppet::Transaction::Report
|
|
198
202
|
|
199
203
|
@metrics = {}
|
200
204
|
data['metrics'].each do |name, hash|
|
201
|
-
@metrics[name] = Puppet::Util::Metric.
|
205
|
+
@metrics[name] = Puppet::Util::Metric.from_data_hash(hash)
|
202
206
|
end
|
203
207
|
|
204
208
|
@logs = data['logs'].map do |record|
|
205
|
-
Puppet::Util::Log.
|
209
|
+
Puppet::Util::Log.from_data_hash(record)
|
206
210
|
end
|
207
211
|
|
208
212
|
@resource_statuses = {}
|
@@ -210,7 +214,7 @@ class Puppet::Transaction::Report
|
|
210
214
|
if record[1] == {}
|
211
215
|
status = nil
|
212
216
|
else
|
213
|
-
status = Puppet::Resource::Status.
|
217
|
+
status = Puppet::Resource::Status.from_data_hash(record[1])
|
214
218
|
end
|
215
219
|
@resource_statuses[record[0]] = status
|
216
220
|
end
|
@@ -234,10 +238,6 @@ class Puppet::Transaction::Report
|
|
234
238
|
}
|
235
239
|
end
|
236
240
|
|
237
|
-
def to_pson
|
238
|
-
to_data_hash.to_pson
|
239
|
-
end
|
240
|
-
|
241
241
|
# @return [String] the host name
|
242
242
|
# @api public
|
243
243
|
#
|
data/lib/puppet/type.rb
CHANGED
@@ -1182,6 +1182,7 @@ class Type
|
|
1182
1182
|
# Now create our resource.
|
1183
1183
|
resource = Puppet::Resource.new(self.name, title)
|
1184
1184
|
resource.catalog = hash.delete(:catalog)
|
1185
|
+
resource.resource_type = self
|
1185
1186
|
|
1186
1187
|
hash.each do |param, value|
|
1187
1188
|
resource[param] = value
|
@@ -2427,6 +2428,3 @@ end
|
|
2427
2428
|
end
|
2428
2429
|
|
2429
2430
|
require 'puppet/provider'
|
2430
|
-
|
2431
|
-
# Always load these types.
|
2432
|
-
Puppet::Type.type(:component)
|
data/lib/puppet/type/augeas.rb
CHANGED
@@ -139,7 +139,8 @@ Puppet::Type.newtype(:augeas) do
|
|
139
139
|
|
140
140
|
newparam(:lens) do
|
141
141
|
desc "Use a specific lens, e.g. `Hosts.lns`. When this parameter is set, you
|
142
|
-
must also set the `incl` parameter to indicate which file to load.
|
142
|
+
must also set the `incl` parameter to indicate which file to load.
|
143
|
+
The Augeas documentation includes [a list of available lenses](http://augeas.net/stock_lenses.html)."
|
143
144
|
end
|
144
145
|
|
145
146
|
newparam(:incl) do
|
data/lib/puppet/type/cron.rb
CHANGED
@@ -7,15 +7,14 @@ Puppet::Type.newtype(:cron) do
|
|
7
7
|
Installs and manages cron jobs. Every cron resource requires a command
|
8
8
|
and user attribute, as well as at least one periodic attribute (hour,
|
9
9
|
minute, month, monthday, weekday, or special). While the name of the cron
|
10
|
-
job is not part of the actual job,
|
11
|
-
|
10
|
+
job is not part of the actual job, the name is stored in a comment beginning with
|
11
|
+
`# Puppet Name: `. These comments are used to match crontab entries created by
|
12
|
+
Puppet with cron resources.
|
12
13
|
|
13
|
-
If
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
be removed. Specifying multiple duplicate cron resources with different
|
18
|
-
`ensure` states will result in undefined behavior.
|
14
|
+
If an existing crontab entry happens to match the scheduling and command of a
|
15
|
+
cron resource that has never been synched, Puppet will defer to the existing
|
16
|
+
crontab entry and will not create a new entry tagged with the `# Puppet Name: `
|
17
|
+
comment.
|
19
18
|
|
20
19
|
Example:
|
21
20
|
|
@@ -234,9 +233,7 @@ Puppet::Type.newtype(:cron) do
|
|
234
233
|
end
|
235
234
|
|
236
235
|
def munge(value)
|
237
|
-
value.
|
238
|
-
value.sub!(/\s+$/, '')
|
239
|
-
value
|
236
|
+
value.strip
|
240
237
|
end
|
241
238
|
end
|
242
239
|
|
@@ -409,10 +406,43 @@ Puppet::Type.newtype(:cron) do
|
|
409
406
|
}
|
410
407
|
end
|
411
408
|
|
409
|
+
validate do
|
410
|
+
return true unless self[:special]
|
411
|
+
return true if self[:special] == :absent
|
412
|
+
# there is a special schedule in @should, so we don't want to see
|
413
|
+
# any numeric should values
|
414
|
+
[ :minute, :hour, :weekday, :monthday, :month ].each do |field|
|
415
|
+
next unless self[field]
|
416
|
+
next if self[field] == :absent
|
417
|
+
raise ArgumentError, "#{self.ref} cannot specify both a special schedule and a value for #{field}"
|
418
|
+
end
|
419
|
+
end
|
420
|
+
|
412
421
|
# We have to reorder things so that :provide is before :target
|
413
422
|
|
414
423
|
attr_accessor :uid
|
415
424
|
|
425
|
+
# Marks the resource as "being purged".
|
426
|
+
#
|
427
|
+
# @api public
|
428
|
+
#
|
429
|
+
# @note This overrides the Puppet::Type method in order to handle
|
430
|
+
# an edge case that has so far been observed during testig only.
|
431
|
+
# Without forcing the should-value for the user property to be
|
432
|
+
# identical to the original cron file, purging from a fixture
|
433
|
+
# will not work, because the user property defaults to the user
|
434
|
+
# running the test. It is not clear whether this scenario can apply
|
435
|
+
# during normal operation.
|
436
|
+
#
|
437
|
+
# @note Also, when not forcing the should-value for the target
|
438
|
+
# property, unpurged file content (such as comments) can end up
|
439
|
+
# being written to the default target (i.e. the current login name).
|
440
|
+
def purging
|
441
|
+
self[:target] = provider.property_hash[:target]
|
442
|
+
self[:user] = provider.property_hash[:target]
|
443
|
+
super
|
444
|
+
end
|
445
|
+
|
416
446
|
def value(name)
|
417
447
|
name = name.intern
|
418
448
|
ret = nil
|