puppet 3.1.1 → 3.2.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 +2 -2
- data/Gemfile +32 -19
- data/README_DEVELOPER.md +332 -14
- data/Rakefile +9 -5
- data/ext/build_defaults.yaml +2 -3
- data/ext/debian/changelog.erb +6 -0
- data/ext/debian/control +6 -6
- data/ext/envpuppet +4 -4
- data/ext/project_data.yaml +1 -0
- data/ext/puppet-nm-dispatcher +13 -0
- data/ext/redhat/puppet.spec.erb +17 -0
- data/ext/suse/client.init +1 -1
- data/ext/systemd/puppetagent.service +2 -2
- data/ext/systemd/puppetmaster.service +2 -2
- data/lib/hiera/scope.rb +29 -11
- data/lib/hiera_puppet.rb +1 -3
- data/lib/puppet/agent.rb +3 -3
- data/lib/puppet/application.rb +2 -2
- data/lib/puppet/application/agent.rb +27 -12
- data/lib/puppet/application/apply.rb +11 -1
- data/lib/puppet/application/describe.rb +1 -1
- data/lib/puppet/application/doc.rb +13 -9
- data/lib/puppet/application/filebucket.rb +0 -1
- data/lib/puppet/application/kick.rb +1 -0
- data/lib/puppet/application/master.rb +16 -8
- data/lib/puppet/daemon.rb +19 -64
- data/lib/puppet/defaults.rb +61 -5
- data/lib/puppet/error.rb +15 -4
- data/lib/puppet/external/nagios/grammar.ry +1 -1
- data/lib/puppet/external/nagios/makefile +1 -1
- data/lib/puppet/external/nagios/parser.rb +185 -618
- data/lib/puppet/external/pson/pure/parser.rb +47 -1
- data/lib/puppet/face/certificate.rb +3 -3
- data/lib/puppet/face/module.rb +1 -1
- data/lib/puppet/face/module/changes.rb +3 -1
- data/lib/puppet/face/module/uninstall.rb +1 -1
- data/lib/puppet/face/node/clean.rb +5 -5
- data/lib/puppet/feature/base.rb +3 -1
- data/lib/puppet/feature/libuser.rb +8 -0
- data/lib/puppet/file_serving/fileset.rb +9 -1
- data/lib/puppet/forge.rb +28 -5
- data/lib/puppet/forge/errors.rb +34 -0
- data/lib/puppet/forge/repository.rb +1 -1
- data/lib/puppet/indirector.rb +4 -1
- data/lib/puppet/indirector/catalog/compiler.rb +37 -30
- data/lib/puppet/indirector/facts/inventory_active_record.rb +1 -0
- data/lib/puppet/indirector/indirection.rb +28 -15
- data/lib/puppet/indirector/rest.rb +18 -10
- data/lib/puppet/interface.rb +11 -4
- data/lib/puppet/interface/action.rb +1 -3
- data/lib/puppet/interface/action_builder.rb +0 -3
- data/lib/puppet/interface/action_manager.rb +0 -3
- data/lib/puppet/interface/face_collection.rb +0 -2
- data/lib/puppet/interface/option.rb +0 -2
- data/lib/puppet/interface/option_builder.rb +0 -2
- data/lib/puppet/interface/option_manager.rb +0 -2
- data/lib/puppet/metatype/manager.rb +1 -1
- data/lib/puppet/module_tool.rb +1 -0
- data/lib/puppet/module_tool/applications/application.rb +0 -3
- data/lib/puppet/module_tool/applications/builder.rb +8 -20
- data/lib/puppet/module_tool/applications/checksummer.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +1 -0
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -11
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/errors/installer.rb +18 -1
- data/lib/puppet/module_tool/modulefile.rb +2 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +1 -1
- data/lib/puppet/module_tool/tar.rb +17 -0
- data/lib/puppet/module_tool/tar/gnu.rb +9 -0
- data/lib/puppet/module_tool/tar/mini.rb +39 -0
- data/lib/puppet/module_tool/tar/solaris.rb +5 -0
- data/lib/puppet/network/http.rb +1 -0
- data/lib/puppet/network/http/connection.rb +9 -23
- data/lib/puppet/network/http/handler.rb +38 -7
- data/lib/puppet/network/http/rack/rest.rb +14 -3
- data/lib/puppet/network/http/webrick.rb +3 -1
- data/lib/puppet/network/http/webrick/rest.rb +11 -2
- data/lib/puppet/node/environment.rb +3 -1
- data/lib/puppet/parameter.rb +32 -29
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/path.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parameter/value_collection.rb +7 -3
- data/lib/puppet/parser/ast.rb +3 -1
- data/lib/puppet/parser/ast/arithmetic_operator.rb +56 -12
- data/lib/puppet/parser/ast/astarray.rb +1 -1
- data/lib/puppet/parser/ast/block_expression.rb +41 -0
- data/lib/puppet/parser/ast/function.rb +13 -2
- data/lib/puppet/parser/ast/lambda.rb +107 -0
- data/lib/puppet/parser/ast/leaf.rb +1 -2
- data/lib/puppet/parser/ast/method_call.rb +77 -0
- data/lib/puppet/parser/ast/vardef.rb +7 -0
- data/lib/puppet/parser/compiler.rb +27 -16
- data/lib/puppet/parser/e_parser_adapter.rb +120 -0
- data/lib/puppet/parser/files.rb +7 -6
- data/lib/puppet/parser/functions.rb +10 -8
- data/lib/puppet/parser/functions/collect.rb +43 -0
- data/lib/puppet/parser/functions/each.rb +96 -0
- data/lib/puppet/parser/functions/foreach.rb +96 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +2 -2
- data/lib/puppet/parser/functions/hiera.rb +20 -2
- data/lib/puppet/parser/functions/hiera_array.rb +21 -2
- data/lib/puppet/parser/functions/hiera_hash.rb +23 -2
- data/lib/puppet/parser/functions/hiera_include.rb +33 -2
- data/lib/puppet/parser/functions/inline_template.rb +4 -4
- data/lib/puppet/parser/functions/reduce.rb +74 -0
- data/lib/puppet/parser/functions/reject.rb +46 -0
- data/lib/puppet/parser/functions/select.rb +46 -0
- data/lib/puppet/parser/functions/slice.rb +96 -0
- data/lib/puppet/parser/functions/template.rb +2 -2
- data/lib/puppet/parser/grammar.ra +7 -4
- data/lib/puppet/parser/lexer.rb +10 -0
- data/lib/puppet/parser/methods.rb +69 -0
- data/lib/puppet/parser/parser.rb +855 -808
- data/lib/puppet/parser/parser_factory.rb +62 -0
- data/lib/puppet/parser/parser_support.rb +8 -2
- data/lib/puppet/parser/scope.rb +153 -47
- data/lib/puppet/parser/templatewrapper.rb +28 -21
- data/lib/puppet/parser/type_loader.rb +3 -1
- data/lib/puppet/pops.rb +40 -0
- data/lib/puppet/pops/adaptable.rb +190 -0
- data/lib/puppet/pops/adapters.rb +65 -0
- data/lib/puppet/pops/containment.rb +37 -0
- data/lib/puppet/pops/issues.rb +258 -0
- data/lib/puppet/pops/label_provider.rb +71 -0
- data/lib/puppet/pops/model/ast_transformer.rb +636 -0
- data/lib/puppet/pops/model/ast_tree_dumper.rb +378 -0
- data/lib/puppet/pops/model/factory.rb +804 -0
- data/lib/puppet/pops/model/model.rb +567 -0
- data/lib/puppet/pops/model/model_label_provider.rb +75 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +352 -0
- data/lib/puppet/pops/model/tree_dumper.rb +59 -0
- data/lib/puppet/pops/parser/egrammar.ra +723 -0
- data/lib/puppet/pops/parser/eparser.rb +2300 -0
- data/lib/puppet/pops/parser/grammar.ra +746 -0
- data/lib/puppet/pops/parser/lexer.rb +842 -0
- data/lib/puppet/pops/parser/makefile +13 -0
- data/lib/puppet/pops/parser/parser_support.rb +203 -0
- data/lib/puppet/pops/patterns.rb +35 -0
- data/lib/puppet/pops/utils.rb +104 -0
- data/lib/puppet/pops/validation.rb +297 -0
- data/lib/puppet/pops/validation/checker3_1.rb +551 -0
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +41 -0
- data/lib/puppet/pops/visitable.rb +6 -0
- data/lib/puppet/pops/visitor.rb +50 -0
- data/lib/puppet/property.rb +37 -28
- data/lib/puppet/property/ensure.rb +2 -2
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/provider.rb +26 -30
- data/lib/puppet/provider/aixobject.rb +45 -44
- data/lib/puppet/provider/augeas/augeas.rb +0 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +107 -67
- data/lib/puppet/provider/group/groupadd.rb +59 -3
- data/lib/puppet/provider/interface/cisco.rb +4 -4
- data/lib/puppet/provider/mount/parsed.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +22 -6
- data/lib/puppet/provider/nameservice/pw.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +28 -4
- data/lib/puppet/provider/package/gem.rb +0 -2
- data/lib/puppet/provider/package/macports.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +249 -4
- data/lib/puppet/provider/package/opkg.rb +77 -0
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/rpm.rb +30 -16
- data/lib/puppet/provider/package/yum.rb +3 -3
- data/lib/puppet/provider/parsedfile.rb +80 -3
- data/lib/puppet/provider/selmodule/semodule.rb +2 -2
- data/lib/puppet/provider/service/debian.rb +0 -4
- data/lib/puppet/provider/service/freebsd.rb +2 -2
- data/lib/puppet/provider/service/gentoo.rb +0 -9
- data/lib/puppet/provider/service/init.rb +27 -2
- data/lib/puppet/provider/service/launchd.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +36 -0
- data/lib/puppet/provider/service/redhat.rb +0 -9
- data/lib/puppet/provider/service/src.rb +38 -4
- data/lib/puppet/provider/service/systemd.rb +2 -2
- data/lib/puppet/provider/service/upstart.rb +1 -8
- data/lib/puppet/provider/user/aix.rb +4 -10
- data/lib/puppet/provider/user/pw.rb +6 -10
- data/lib/puppet/provider/user/useradd.rb +129 -31
- data/lib/puppet/provider/vlan/cisco.rb +4 -4
- data/lib/puppet/reference/function.rb +2 -2
- data/lib/puppet/reference/indirection.rb +46 -5
- data/lib/puppet/reference/metaparameter.rb +2 -2
- data/lib/puppet/reports.rb +5 -5
- data/lib/puppet/reports/rrdgraph.rb +4 -4
- data/lib/puppet/reports/tagmail.rb +1 -1
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/type.rb +13 -11
- data/lib/puppet/scheduler.rb +16 -0
- data/lib/puppet/scheduler/job.rb +53 -0
- data/lib/puppet/scheduler/scheduler.rb +45 -0
- data/lib/puppet/scheduler/splay_job.rb +32 -0
- data/lib/puppet/scheduler/timer.rb +13 -0
- data/lib/puppet/settings/base_setting.rb +1 -1
- data/lib/puppet/simple_graph.rb +4 -4
- data/lib/puppet/ssl/base.rb +12 -2
- data/lib/puppet/ssl/certificate.rb +4 -1
- data/lib/puppet/ssl/certificate_request.rb +4 -1
- data/lib/puppet/ssl/certificate_revocation_list.rb +4 -1
- data/lib/puppet/ssl/configuration.rb +32 -0
- data/lib/puppet/ssl/host.rb +18 -21
- data/lib/puppet/ssl/key.rb +4 -1
- data/lib/puppet/ssl/validator.rb +116 -0
- data/lib/puppet/transaction.rb +1 -1
- data/lib/puppet/transaction/event.rb +3 -10
- data/lib/puppet/transaction/event_manager.rb +8 -1
- data/lib/puppet/transaction/report.rb +17 -16
- data/lib/puppet/type.rb +77 -69
- data/lib/puppet/type/cron.rb +20 -8
- data/lib/puppet/type/exec.rb +9 -3
- data/lib/puppet/type/file.rb +95 -21
- data/lib/puppet/type/file/content.rb +1 -1
- data/lib/puppet/type/file/mode.rb +7 -1
- data/lib/puppet/type/file/source.rb +2 -2
- data/lib/puppet/type/group.rb +11 -0
- data/lib/puppet/type/scheduled_task.rb +5 -1
- data/lib/puppet/type/service.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -2
- data/lib/puppet/type/user.rb +24 -6
- data/lib/puppet/util.rb +12 -2
- data/lib/puppet/util/classgen.rb +4 -4
- data/lib/puppet/util/colors.rb +55 -0
- data/lib/puppet/util/command_line/trollop.rb +4 -4
- data/lib/puppet/util/errors.rb +39 -3
- data/lib/puppet/util/fileparsing.rb +5 -0
- data/lib/puppet/util/filetype.rb +11 -9
- data/lib/puppet/util/instrumentation/instrumentable.rb +2 -2
- data/lib/puppet/util/libuser.conf +15 -0
- data/lib/puppet/util/libuser.rb +12 -0
- data/lib/puppet/util/monkey_patches.rb +48 -0
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/network_device/base.rb +2 -2
- data/lib/puppet/util/network_device/cisco/device.rb +29 -19
- data/lib/puppet/util/network_device/config.rb +5 -2
- data/lib/puppet/util/network_device/ipcalc.rb +1 -1
- data/lib/puppet/util/network_device/transport/ssh.rb +4 -3
- data/lib/puppet/util/network_device/transport/telnet.rb +4 -2
- data/lib/puppet/util/plugins.rb +4 -4
- data/lib/puppet/util/posix.rb +1 -1
- data/lib/puppet/util/profiler.rb +28 -0
- data/lib/puppet/util/profiler/logging.rb +47 -0
- data/lib/puppet/util/profiler/none.rb +8 -0
- data/lib/puppet/util/profiler/object_counts.rb +17 -0
- data/lib/puppet/util/profiler/wall_clock.rb +34 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +5 -5
- data/lib/puppet/util/ssl.rb +38 -0
- data/lib/puppet/util/subclass_loader.rb +1 -5
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/process.rb +3 -0
- data/lib/puppet/util/windows/root_certs.rb +86 -0
- data/lib/puppet/util/windows/security.rb +1 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +19 -0
- data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +18 -0
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +15 -0
- data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +4 -0
- data/spec/fixtures/integration/provider/cron/crontab/modify_entry +13 -0
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +15 -0
- data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +6 -0
- data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +12 -0
- data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +14 -0
- data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +16 -0
- data/spec/fixtures/unit/pops/parser/lexer/append.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +14 -0
- data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +8 -0
- data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +3 -0
- data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +65 -0
- data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +15 -0
- data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +17 -0
- data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/collection.pp +10 -0
- data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +8 -0
- data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +20 -0
- data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +8 -0
- data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +23 -0
- data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +17 -0
- data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +9 -0
- data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +3 -0
- data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +9 -0
- data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +3 -0
- data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +5 -0
- data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +5 -0
- data/spec/fixtures/unit/pops/parser/lexer/hash.pp +33 -0
- data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +12 -0
- data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +15 -0
- data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +10 -0
- data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +9 -0
- data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +7 -0
- data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +13 -0
- data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +9 -0
- data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +13 -0
- data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +49 -0
- data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +5 -0
- data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +38 -0
- data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +19 -0
- data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +22 -0
- data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +11 -0
- data/spec/fixtures/unit/pops/parser/lexer/tag.pp +9 -0
- data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +35 -0
- data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +14 -0
- data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +4 -4
- data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +3 -0
- data/spec/fixtures/unit/provider/cron/parsed/managed +6 -0
- data/spec/fixtures/unit/provider/cron/parsed/simple +9 -0
- data/spec/fixtures/unit/provider/parsedfile/simple.txt +4 -0
- data/spec/fixtures/unit/provider/service/systemd/list_units +18 -0
- data/spec/integration/parser/collector_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +252 -227
- data/spec/integration/parser/parser_spec.rb +171 -53
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/provider/cron/crontab_spec.rb +187 -0
- data/spec/integration/provider/service/systemd_spec.rb +20 -0
- data/spec/integration/type/file_spec.rb +21 -21
- data/spec/integration/type/package_spec.rb +1 -1
- data/spec/lib/puppet_spec/database.rb +2 -5
- data/spec/spec_helper.rb +6 -1
- data/spec/unit/application/apply_spec.rb +16 -1
- data/spec/unit/application/describe_spec.rb +1 -1
- data/spec/unit/application/doc_spec.rb +55 -32
- data/spec/unit/application/kick_spec.rb +8 -6
- data/spec/unit/application/master_spec.rb +4 -4
- data/spec/unit/daemon_spec.rb +1 -1
- data/spec/unit/forge/errors_spec.rb +40 -0
- data/spec/unit/forge/repository_spec.rb +11 -1
- data/spec/unit/forge_spec.rb +13 -3
- data/spec/unit/hiera/backend/puppet_backend_spec.rb +1 -0
- data/spec/unit/hiera/scope_spec.rb +48 -25
- data/spec/unit/indirector/catalog/active_record_spec.rb +6 -3
- data/spec/unit/indirector/catalog/compiler_spec.rb +3 -28
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +1 -1
- data/spec/unit/indirector/facts/inventory_active_record_spec.rb +154 -150
- data/spec/unit/indirector/indirection_spec.rb +5 -0
- data/spec/unit/indirector/resource/active_record_spec.rb +5 -22
- data/spec/unit/indirector_spec.rb +7 -1
- data/spec/unit/interface/action_builder_spec.rb +1 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -2
- data/spec/unit/interface/action_spec.rb +1 -1
- data/spec/unit/interface/documentation_spec.rb +0 -2
- data/spec/unit/interface/face_collection_spec.rb +1 -1
- data/spec/unit/interface/option_builder_spec.rb +1 -1
- data/spec/unit/interface/option_spec.rb +0 -1
- data/spec/unit/module_spec.rb +17 -19
- data/spec/unit/module_tool/application_spec.rb +1 -3
- data/spec/unit/module_tool/applications/builder_spec.rb +38 -0
- data/spec/unit/module_tool/applications/checksummer_spec.rb +134 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +71 -91
- data/spec/unit/module_tool/applications/searcher_spec.rb +1 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +18 -26
- data/spec/unit/module_tool/applications/unpacker_spec.rb +19 -52
- data/spec/unit/module_tool/tar/gnu_spec.rb +19 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +59 -0
- data/spec/unit/module_tool/tar/solaris_spec.rb +19 -0
- data/spec/unit/network/http/connection_spec.rb +17 -2
- data/spec/unit/network/http/handler_spec.rb +195 -167
- data/spec/unit/network/http/rack/rest_spec.rb +26 -4
- data/spec/unit/network/http/webrick/rest_spec.rb +28 -1
- data/spec/unit/network/http/webrick_spec.rb +12 -3
- data/spec/unit/node/environment_spec.rb +421 -404
- data/spec/unit/parser/ast/arithmetic_operator_spec.rb +98 -2
- data/spec/unit/parser/collector_spec.rb +4 -4
- data/spec/unit/parser/compiler_spec.rb +13 -13
- data/spec/unit/parser/eparser_adapter_spec.rb +407 -0
- data/spec/unit/parser/functions/extlookup_spec.rb +20 -17
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -0
- data/spec/unit/parser/functions/hiera_include_spec.rb +0 -2
- data/spec/unit/parser/functions/hiera_spec.rb +0 -2
- data/spec/unit/parser/functions_spec.rb +27 -15
- data/spec/unit/parser/methods/collect_spec.rb +110 -0
- data/spec/unit/parser/methods/each_spec.rb +91 -0
- data/spec/unit/parser/methods/foreach_spec.rb +91 -0
- data/spec/unit/parser/methods/reduce_spec.rb +67 -0
- data/spec/unit/parser/methods/reject_spec.rb +73 -0
- data/spec/unit/parser/methods/select_spec.rb +79 -0
- data/spec/unit/parser/methods/shared.rb +61 -0
- data/spec/unit/parser/methods/slice_spec.rb +97 -0
- data/spec/unit/parser/parser_spec.rb +2 -2
- data/spec/unit/parser/scope_spec.rb +39 -16
- data/spec/unit/parser/templatewrapper_spec.rb +6 -5
- data/spec/unit/parser/type_loader_spec.rb +191 -165
- data/spec/unit/pops/adaptable_spec.rb +143 -0
- data/spec/unit/pops/containment_spec.rb +25 -0
- data/spec/unit/pops/factory_rspec_helper.rb +77 -0
- data/spec/unit/pops/factory_spec.rb +329 -0
- data/spec/unit/pops/issues_spec.rb +26 -0
- data/spec/unit/pops/label_provider_spec.rb +42 -0
- data/spec/unit/pops/model/ast_transformer_spec.rb +65 -0
- data/spec/unit/pops/model/model_spec.rb +37 -0
- data/spec/unit/pops/parser/lexer_spec.rb +884 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +248 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +93 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +159 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +175 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +228 -0
- data/spec/unit/pops/parser/parser_rspec_helper.rb +11 -0
- data/spec/unit/pops/parser/parser_spec.rb +15 -0
- data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +16 -0
- data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +243 -0
- data/spec/unit/pops/transformer/transform_calls_spec.rb +80 -0
- data/spec/unit/pops/transformer/transform_conditionals_spec.rb +132 -0
- data/spec/unit/pops/transformer/transform_containers_spec.rb +182 -0
- data/spec/unit/pops/transformer/transform_resource_spec.rb +185 -0
- data/spec/unit/pops/transformer/transformer_rspec_helper.rb +27 -0
- data/spec/unit/pops/visitor_spec.rb +94 -0
- data/spec/unit/property_spec.rb +11 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +3 -0
- data/spec/unit/provider/cron/crontab_spec.rb +97 -7
- data/spec/unit/provider/cron/parsed_spec.rb +325 -0
- data/spec/unit/provider/exec/posix_spec.rb +1 -1
- data/spec/unit/provider/group/groupadd_spec.rb +33 -3
- data/spec/unit/provider/group/pw_spec.rb +5 -5
- data/spec/unit/provider/nameservice_spec.rb +304 -0
- data/spec/unit/provider/package/aix_spec.rb +53 -11
- data/spec/unit/provider/package/aptrpm_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +6 -11
- data/spec/unit/provider/package/nim_spec.rb +216 -7
- data/spec/unit/provider/package/opkg_spec.rb +180 -0
- data/spec/unit/provider/package/rpm_spec.rb +149 -3
- data/spec/unit/provider/package/yum_spec.rb +6 -5
- data/spec/unit/provider/parsedfile_spec.rb +122 -28
- data/spec/unit/provider/service/freebsd_spec.rb +18 -0
- data/spec/unit/provider/service/init_spec.rb +108 -87
- data/spec/unit/provider/service/launchd_spec.rb +2 -2
- data/spec/unit/provider/service/openwrt_spec.rb +109 -0
- data/spec/unit/provider/service/src_spec.rb +117 -41
- data/spec/unit/provider/service/systemd_spec.rb +125 -17
- data/spec/unit/provider/service/upstart_spec.rb +1 -1
- data/spec/unit/provider/user/aix_spec.rb +42 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +24 -12
- data/spec/unit/provider/user/user_role_add_spec.rb +1 -1
- data/spec/unit/provider/user/useradd_spec.rb +179 -15
- data/spec/unit/resource/type_spec.rb +3 -3
- data/spec/unit/scheduler/job_spec.rb +79 -0
- data/spec/unit/scheduler/scheduler_spec.rb +129 -0
- data/spec/unit/scheduler/splay_job_spec.rb +35 -0
- data/spec/unit/ssl/base_spec.rb +3 -9
- data/spec/unit/ssl/certificate_authority_spec.rb +1 -0
- data/spec/unit/ssl/certificate_request_spec.rb +3 -1
- data/spec/unit/ssl/certificate_spec.rb +3 -1
- data/spec/unit/ssl/configuration_spec.rb +74 -0
- data/spec/unit/ssl/host_spec.rb +28 -7
- data/spec/unit/ssl/validator_spec.rb +311 -0
- data/spec/unit/transaction/event_manager_spec.rb +49 -0
- data/spec/unit/transaction/event_spec.rb +20 -5
- data/spec/unit/transaction/report_spec.rb +8 -0
- data/spec/unit/type/cron_spec.rb +9 -0
- data/spec/unit/type/exec_spec.rb +11 -0
- data/spec/unit/type/file/content_spec.rb +20 -20
- data/spec/unit/type/file/mode_spec.rb +6 -0
- data/spec/unit/type/file/source_spec.rb +9 -7
- data/spec/unit/type/file_spec.rb +22 -3
- data/spec/unit/type/service_spec.rb +34 -21
- data/spec/unit/type_spec.rb +46 -1
- data/spec/unit/util/backups_spec.rb +2 -2
- data/spec/unit/util/execution_spec.rb +4 -1
- data/spec/unit/util/filetype_spec.rb +6 -0
- data/spec/unit/util/monkey_patches_spec.rb +18 -0
- data/spec/unit/util/network_device/cisco/device_spec.rb +37 -0
- data/spec/unit/util/network_device/config_spec.rb +14 -0
- data/spec/unit/util/network_device_spec.rb +3 -3
- data/spec/unit/util/profiler/logging_spec.rb +81 -0
- data/spec/unit/util/profiler/none_spec.rb +12 -0
- data/spec/unit/util/profiler/object_counts_spec.rb +14 -0
- data/spec/unit/util/profiler/wall_clock_spec.rb +13 -0
- data/spec/unit/util/pson_spec.rb +5 -0
- data/spec/unit/util/ssl_spec.rb +51 -0
- data/spec/unit/util/windows/root_certs_spec.rb +15 -0
- data/spec/unit/util_spec.rb +28 -0
- metadata +2593 -2307
- data/spec/unit/module_tool/applications/application_spec.rb +0 -19
@@ -12,21 +12,62 @@ reference = Puppet::Util::Reference.newreference :indirection, :doc => "Indirect
|
|
12
12
|
|
13
13
|
text << ind.doc + "\n\n"
|
14
14
|
|
15
|
+
text << "### Termini\n\n"
|
16
|
+
|
15
17
|
Puppet::Indirector::Terminus.terminus_classes(ind.name).sort { |a,b| a.to_s <=> b.to_s }.each do |terminus|
|
16
18
|
terminus_name = terminus.to_s
|
17
19
|
term_class = Puppet::Indirector::Terminus.terminus_class(ind.name, terminus)
|
18
|
-
|
19
|
-
|
20
|
+
if term_class
|
21
|
+
terminus_doc = Puppet::Util::Docs.scrub(term_class.doc)
|
22
|
+
text << markdown_definitionlist(terminus_name, terminus_doc)
|
23
|
+
else
|
24
|
+
Puppet.warning "Could not build docs for indirector #{name.inspect}, terminus #{terminus_name.inspect}: could not locate terminus."
|
25
|
+
end
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
23
29
|
text
|
24
30
|
end
|
25
31
|
|
26
|
-
reference.header =
|
32
|
+
reference.header = <<HEADER
|
33
|
+
|
34
|
+
# About Indirection
|
35
|
+
|
36
|
+
Puppet's indirector support pluggable backends (termini) for a variety of key-value stores (indirections).
|
37
|
+
Each indirection type corresponds to a particular Ruby class (the "Indirected Class" below) and values are instances of that class.
|
38
|
+
Each instance's key is available from its `name` method.
|
39
|
+
The termini can be local (e.g., on-disk files) or remote (e.g., using a REST interface to talk to a puppet master).
|
40
|
+
|
41
|
+
An indirector has five methods, which are mapped into HTTP verbs for the REST interface:
|
42
|
+
|
43
|
+
* `find(key)` - get a single value (mapped to GET or POST with a singular endpoint)
|
44
|
+
* `search(key)` - get a list of matching values (mapped to GET with a plural endpoint)
|
45
|
+
* `head(key)` - return true if the key exists (mapped to HEAD)
|
46
|
+
* `destroy(key)` - remove the key van value (mapped to DELETE)
|
47
|
+
* `save(instance)` - write the instance to the store, using the instance's name as the key (mapped to PUT)
|
48
|
+
|
49
|
+
These methods are available via the `indirection` class method on the indirected classes. For example::
|
50
|
+
|
51
|
+
foo_cert = Puppet::SSL::Certificate.indirection.find('foo.example.com')
|
52
|
+
|
53
|
+
At startup, each indirection is configured with a terminus.
|
54
|
+
In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
|
55
|
+
The available termini differ for each indirection, and are listed below.
|
56
|
+
|
57
|
+
Indirections can also have a cache, represented by a second terminus.
|
58
|
+
This is a write-through cache: modifications are written both to the cache and to the primary terminus.
|
59
|
+
Values fetched from the terminus are written to the cache.
|
60
|
+
|
61
|
+
## Interaction with REST
|
62
|
+
|
63
|
+
REST endpoints have the form `/{environment}/{indirection}/{key}`, where the indirection can be singular or plural, following normal English spelling rules.
|
64
|
+
On the server side, REST responses are generated from the locally-configured endpoints.
|
65
|
+
|
66
|
+
## Indirections and Termini
|
67
|
+
|
68
|
+
Below is the list of all indirections, their associated terminus classes, and how you select between them.
|
27
69
|
|
28
70
|
In general, the appropriate terminus class is selected by the application for you (e.g., `puppet agent` would always use the `rest`
|
29
71
|
terminus for most of its indirected classes), but some classes are tunable via normal settings. These will have `terminus setting` documentation listed with them.
|
30
72
|
|
31
|
-
|
32
|
-
"
|
73
|
+
HEADER
|
@@ -11,8 +11,8 @@ metaparameter = Puppet::Util::Reference.newreference :metaparameter, :doc => "Al
|
|
11
11
|
str = %{
|
12
12
|
|
13
13
|
# Metaparameters
|
14
|
-
|
15
|
-
Metaparameters are parameters that work with any resource type; they are part of the
|
14
|
+
|
15
|
+
Metaparameters are parameters that work with any resource type; they are part of the
|
16
16
|
Puppet framework itself rather than being part of the implementation of any
|
17
17
|
given instance. Thus, any defined metaparameter can be used with any instance
|
18
18
|
in your manifest, including defined components.
|
data/lib/puppet/reports.rb
CHANGED
@@ -12,18 +12,18 @@ require 'puppet/util/instance_loader'
|
|
12
12
|
# def process
|
13
13
|
# if self.status == 'failed'
|
14
14
|
# msg = "failed puppet run for #{self.host} #{self.status}"
|
15
|
-
# . . .
|
15
|
+
# . . .
|
16
16
|
# else
|
17
17
|
# . . .
|
18
18
|
# end
|
19
|
-
# end
|
19
|
+
# end
|
20
20
|
# end
|
21
21
|
#
|
22
22
|
# Required configuration:
|
23
23
|
# --
|
24
24
|
# * A .rb file that defines a new report should be placed in the master's directory `lib/puppet/reports`
|
25
25
|
# * The `puppet.conf` file must have `report = true` in the `[agent]` section
|
26
|
-
#
|
26
|
+
#
|
27
27
|
# @see Puppet::Transaction::Report
|
28
28
|
# @api public
|
29
29
|
#
|
@@ -43,14 +43,14 @@ class Puppet::Reports
|
|
43
43
|
# The block should contain setup, and define a method with the name `process`. The `process` method is
|
44
44
|
# called when the report is executed; the `process` method has access to report data via methods available
|
45
45
|
# in its context where `self` is an instance of {Puppet::Transaction::Report}.
|
46
|
-
#
|
46
|
+
#
|
47
47
|
# For an example, see the overview of this class.
|
48
48
|
#
|
49
49
|
# @param name [Symbol] the name of the report (do not use whitespace in the name).
|
50
50
|
# @param options [Hash] a hash of options
|
51
51
|
# @option options [Boolean] :useyaml whether yaml should be used or not
|
52
52
|
# @todo Uncertain what the options :useyaml really does; "whether yaml should be used or not", used where/how?
|
53
|
-
#
|
53
|
+
#
|
54
54
|
def self.register_report(name, options = {}, &block)
|
55
55
|
name = name.intern
|
56
56
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Puppet::Reports.register_report(:rrdgraph) do
|
2
2
|
desc "Graph all available data about hosts using the RRD library. You
|
3
3
|
must have the Ruby RRDtool library installed to use this report, which
|
4
|
-
you can get from
|
5
|
-
[the RubyRRDTool RubyForge page](http://rubyforge.org/projects/rubyrrdtool/).
|
6
|
-
This package may also be available as `ruby-rrd` or `rrdtool-ruby` in your
|
7
|
-
distribution's package management system. The library and/or package will both
|
4
|
+
you can get from
|
5
|
+
[the RubyRRDTool RubyForge page](http://rubyforge.org/projects/rubyrrdtool/).
|
6
|
+
This package may also be available as `ruby-rrd` or `rrdtool-ruby` in your
|
7
|
+
distribution's package management system. The library and/or package will both
|
8
8
|
require the binary `rrdtool` package from your distribution to be installed.
|
9
9
|
|
10
10
|
This report will create, manage, and graph RRD database files for each
|
@@ -6,7 +6,7 @@ require 'time'
|
|
6
6
|
|
7
7
|
Puppet::Reports.register_report(:tagmail) do
|
8
8
|
desc "This report sends specific log messages to specific email addresses
|
9
|
-
based on the tags in the log messages.
|
9
|
+
based on the tags in the log messages.
|
10
10
|
|
11
11
|
See the [documentation on tags](http://projects.puppetlabs.com/projects/puppet/wiki/Using_Tags) for more information.
|
12
12
|
|
data/lib/puppet/resource.rb
CHANGED
data/lib/puppet/resource/type.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
require 'puppet/parser
|
1
|
+
require 'puppet/parser'
|
2
2
|
require 'puppet/util/warnings'
|
3
3
|
require 'puppet/util/errors'
|
4
4
|
require 'puppet/util/inline_docs'
|
5
5
|
require 'puppet/parser/ast/leaf'
|
6
|
+
require 'puppet/parser/ast/block_expression'
|
6
7
|
require 'puppet/dsl'
|
7
8
|
|
8
9
|
class Puppet::Resource::Type
|
@@ -190,14 +191,15 @@ class Puppet::Resource::Type
|
|
190
191
|
return
|
191
192
|
end
|
192
193
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
194
|
+
self.code = Puppet::Parser::AST::BlockExpression.new(:children => [self.code, other.code])
|
195
|
+
# array_class = Puppet::Parser::AST::ASTArray
|
196
|
+
# self.code = array_class.new(:children => [self.code]) unless self.code.is_a?(array_class)
|
197
|
+
#
|
198
|
+
# if other.code.is_a?(array_class)
|
199
|
+
# code.children += other.code.children
|
200
|
+
# else
|
201
|
+
# code.children << other.code
|
202
|
+
# end
|
201
203
|
end
|
202
204
|
|
203
205
|
# Make an instance of the resource type, and place it in the catalog
|
@@ -260,10 +262,10 @@ class Puppet::Resource::Type
|
|
260
262
|
|
261
263
|
# MQR TODO:
|
262
264
|
#
|
263
|
-
# The change(s) introduced by the fix for #4270 are mostly silly & should be
|
265
|
+
# The change(s) introduced by the fix for #4270 are mostly silly & should be
|
264
266
|
# removed, though we didn't realize it at the time. If it can be established/
|
265
267
|
# ensured that nodes never call parent_type and that resource_types are always
|
266
|
-
# (as they should be) members of exactly one resource_type_collection the
|
268
|
+
# (as they should be) members of exactly one resource_type_collection the
|
267
269
|
# following method could / should be replaced with:
|
268
270
|
#
|
269
271
|
# def parent_type
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Puppet::Scheduler
|
2
|
+
require 'puppet/scheduler/job'
|
3
|
+
require 'puppet/scheduler/splay_job'
|
4
|
+
require 'puppet/scheduler/scheduler'
|
5
|
+
require 'puppet/scheduler/timer'
|
6
|
+
|
7
|
+
module_function
|
8
|
+
|
9
|
+
def create_job(interval, splay=false, splay_limit=0, &block)
|
10
|
+
if splay
|
11
|
+
Puppet::Scheduler::SplayJob.new(interval, splay_limit, &block)
|
12
|
+
else
|
13
|
+
Puppet::Scheduler::Job.new(interval, &block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Puppet::Scheduler
|
2
|
+
class Job
|
3
|
+
attr_reader :run_interval
|
4
|
+
attr_accessor :last_run
|
5
|
+
attr_accessor :start_time
|
6
|
+
|
7
|
+
def initialize(run_interval, &block)
|
8
|
+
self.run_interval = run_interval
|
9
|
+
@last_run = nil
|
10
|
+
@run_proc = block
|
11
|
+
@enabled = true
|
12
|
+
end
|
13
|
+
|
14
|
+
def run_interval=(interval)
|
15
|
+
@run_interval = [interval, 0].max
|
16
|
+
end
|
17
|
+
|
18
|
+
def ready?(time)
|
19
|
+
if @last_run
|
20
|
+
@last_run + @run_interval <= time
|
21
|
+
else
|
22
|
+
true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def enabled?
|
27
|
+
@enabled
|
28
|
+
end
|
29
|
+
|
30
|
+
def enable
|
31
|
+
@enabled = true
|
32
|
+
end
|
33
|
+
|
34
|
+
def disable
|
35
|
+
@enabled = false
|
36
|
+
end
|
37
|
+
|
38
|
+
def interval_to_next_from(time)
|
39
|
+
if ready?(time)
|
40
|
+
0
|
41
|
+
else
|
42
|
+
@run_interval - (time - @last_run)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def run(now)
|
47
|
+
@last_run = now
|
48
|
+
if @run_proc
|
49
|
+
@run_proc.call(self)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Puppet::Scheduler
|
2
|
+
class Scheduler
|
3
|
+
def initialize(jobs, timer=Puppet::Scheduler::Timer.new)
|
4
|
+
@timer = timer
|
5
|
+
@jobs = jobs
|
6
|
+
end
|
7
|
+
|
8
|
+
def run_loop
|
9
|
+
mark_start_times(@timer.now)
|
10
|
+
while not enabled_jobs.empty?
|
11
|
+
@timer.wait_for(min_interval_to_next_run_from(@timer.now))
|
12
|
+
run_ready(@timer.now)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def enabled_jobs
|
19
|
+
@jobs.select(&:enabled?)
|
20
|
+
end
|
21
|
+
|
22
|
+
def mark_start_times(start_time)
|
23
|
+
@jobs.each do |job|
|
24
|
+
job.start_time = start_time
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def min_interval_to_next_run_from(from_time)
|
29
|
+
enabled_jobs.map do |j|
|
30
|
+
j.interval_to_next_from(from_time)
|
31
|
+
end.min
|
32
|
+
end
|
33
|
+
|
34
|
+
def run_ready(at_time)
|
35
|
+
enabled_jobs.each do |j|
|
36
|
+
# This check intentionally happens right before each run,
|
37
|
+
# instead of filtering on ready schedulers, since one may adjust
|
38
|
+
# the readiness of a later one
|
39
|
+
if j.ready?(at_time)
|
40
|
+
j.run(at_time)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Puppet::Scheduler
|
2
|
+
class SplayJob < Job
|
3
|
+
attr_reader :splay
|
4
|
+
|
5
|
+
def initialize(run_interval, splay_limit, &block)
|
6
|
+
@splay = calculate_splay(splay_limit)
|
7
|
+
super(run_interval, &block)
|
8
|
+
end
|
9
|
+
|
10
|
+
def interval_to_next_from(time)
|
11
|
+
if last_run
|
12
|
+
super
|
13
|
+
else
|
14
|
+
(start_time + splay) - time
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def ready?(time)
|
19
|
+
if last_run
|
20
|
+
super
|
21
|
+
else
|
22
|
+
start_time + splay <= time
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def calculate_splay(limit)
|
29
|
+
rand(limit + 1)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -23,7 +23,7 @@ class Puppet::Settings::BaseSetting
|
|
23
23
|
Puppet.deprecation_warning ":call_on_define has been changed to :call_hook => :on_define_and_write. Please change #{name}."
|
24
24
|
@call_hook = :on_define_and_write
|
25
25
|
else
|
26
|
-
Puppet.deprecation_warning ":call_on_define => :false has been changed to :call_hook => :on_write_only. Please change #{name}."
|
26
|
+
Puppet.deprecation_warning ":call_on_define => :false has been changed to :call_hook => :on_write_only. Please change #{name}."
|
27
27
|
@call_hook = :on_write_only
|
28
28
|
end
|
29
29
|
end
|
data/lib/puppet/simple_graph.rb
CHANGED
@@ -19,7 +19,7 @@ class Puppet::SimpleGraph
|
|
19
19
|
#
|
20
20
|
# This class is intended to be used with DAGs. However, if the
|
21
21
|
# graph has a cycle, it will not cause non-termination of any of the
|
22
|
-
# algorithms.
|
22
|
+
# algorithms.
|
23
23
|
#
|
24
24
|
def initialize
|
25
25
|
@in_to = {}
|
@@ -376,7 +376,7 @@ class Puppet::SimpleGraph
|
|
376
376
|
end
|
377
377
|
|
378
378
|
def direct_dependents_of(v)
|
379
|
-
(@out_from[v] || {}).keys
|
379
|
+
(@out_from[v] || {}).keys
|
380
380
|
end
|
381
381
|
|
382
382
|
def upstream_from_vertex(v)
|
@@ -390,7 +390,7 @@ class Puppet::SimpleGraph
|
|
390
390
|
end
|
391
391
|
|
392
392
|
def direct_dependencies_of(v)
|
393
|
-
(@in_to[v] || {}).keys
|
393
|
+
(@in_to[v] || {}).keys
|
394
394
|
end
|
395
395
|
|
396
396
|
# Return an array of the edge-sets between a series of n+1 vertices (f=v0,v1,v2...t=vn)
|
@@ -404,7 +404,7 @@ class Puppet::SimpleGraph
|
|
404
404
|
# * if there is no path from f to t, the result is nil
|
405
405
|
#
|
406
406
|
# This implementation is not particularly efficient; it's used in testing where clarity
|
407
|
-
# is more important than last-mile efficiency.
|
407
|
+
# is more important than last-mile efficiency.
|
408
408
|
#
|
409
409
|
def path_between(f,t)
|
410
410
|
if f==t
|
data/lib/puppet/ssl/base.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'openssl'
|
2
2
|
require 'puppet/ssl'
|
3
3
|
require 'puppet/ssl/digest'
|
4
|
+
require 'puppet/util/ssl'
|
4
5
|
|
5
6
|
# The base class for wrapping SSL instances.
|
6
7
|
class Puppet::SSL::Base
|
@@ -47,9 +48,18 @@ class Puppet::SSL::Base
|
|
47
48
|
self.class.validate_certname(@name)
|
48
49
|
end
|
49
50
|
|
50
|
-
|
51
|
+
##
|
52
|
+
# name_from_subject extracts the common name attribute from the subject of an
|
53
|
+
# x.509 certificate certificate
|
54
|
+
#
|
55
|
+
# @api private
|
56
|
+
#
|
57
|
+
# @param [OpenSSL::X509::Name] subject The full subject (distinguished name) of the x.509
|
58
|
+
# certificate.
|
59
|
+
#
|
60
|
+
# @return [String] the name (CN) extracted from the subject.
|
51
61
|
def self.name_from_subject(subject)
|
52
|
-
|
62
|
+
Puppet::Util::SSL.cn_from_subject(subject)
|
53
63
|
end
|
54
64
|
|
55
65
|
# Create an instance of our Puppet::SSL::* class using a given instance of the wrapped class
|