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
@@ -0,0 +1,20 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:service).provider(:systemd), '(integration)' do
|
6
|
+
# TODO: Unfortunately there does not seem a way to stub the executable
|
7
|
+
# checks in the systemd provider because they happen at load time.
|
8
|
+
it "should be considered suitable if /bin/systemctl is present", :if => File.executable?('/bin/systemctl') do
|
9
|
+
described_class.should be_suitable
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should be considered suitable if /usr/bin/systemctl is present", :if => File.executable?('/usr/bin/systemctl') do
|
13
|
+
described_class.should be_suitable
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should not be cosidered suitable if systemctl is absent",
|
17
|
+
:unless => (File.executable?('/bin/systemctl') or File.executable?('/usr/bin/systemctl')) do
|
18
|
+
described_class.should_not be_suitable
|
19
|
+
end
|
20
|
+
end
|
@@ -273,22 +273,20 @@ describe Puppet::Type.type(:file) do
|
|
273
273
|
|
274
274
|
describe "that is readable" do
|
275
275
|
it "should set the executable bits when creating the destination (#10315)" do
|
276
|
-
pending "bug #10315"
|
277
|
-
|
278
276
|
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
|
279
277
|
catalog.apply
|
280
278
|
|
279
|
+
File.should be_directory(path)
|
281
280
|
(get_mode(path) & 07777).should == 0777
|
282
281
|
end
|
283
282
|
|
284
283
|
it "should set the executable bits when overwriting the destination (#10315)" do
|
285
|
-
pending "bug #10315"
|
286
|
-
|
287
284
|
FileUtils.touch(path)
|
288
285
|
|
289
|
-
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
|
286
|
+
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow, :backup => false)
|
290
287
|
catalog.apply
|
291
288
|
|
289
|
+
File.should be_directory(path)
|
292
290
|
(get_mode(path) & 07777).should == 0777
|
293
291
|
end
|
294
292
|
end
|
@@ -303,37 +301,41 @@ describe Puppet::Type.type(:file) do
|
|
303
301
|
set_mode(0700, link_target)
|
304
302
|
end
|
305
303
|
|
306
|
-
it "should
|
307
|
-
pending "bug #10315"
|
308
|
-
|
304
|
+
it "should set executable bits when creating the destination (#10315)" do
|
309
305
|
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
|
310
306
|
catalog.apply
|
311
307
|
|
312
|
-
(
|
308
|
+
File.should be_directory(path)
|
309
|
+
(get_mode(path) & 07777).should == 0777
|
313
310
|
end
|
314
311
|
|
315
|
-
it "should
|
312
|
+
it "should set executable bits when overwriting the destination" do
|
316
313
|
FileUtils.touch(path)
|
317
314
|
|
318
|
-
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
|
315
|
+
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow, :backup => false)
|
319
316
|
catalog.apply
|
320
317
|
|
321
|
-
(
|
318
|
+
File.should be_directory(path)
|
319
|
+
(get_mode(path) & 07777).should == 0777
|
322
320
|
end
|
323
321
|
end
|
324
322
|
end
|
325
323
|
|
326
324
|
describe "to a file" do
|
327
|
-
let(:
|
325
|
+
let(:link_target) { tmpfile('file_target') }
|
328
326
|
|
329
|
-
|
330
|
-
|
327
|
+
before :each do
|
328
|
+
FileUtils.touch(link_target)
|
331
329
|
|
330
|
+
File.symlink(link_target, link)
|
331
|
+
end
|
332
|
+
|
333
|
+
it "should create the file, not a symlink (#2817, #10315)" do
|
332
334
|
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
|
333
335
|
catalog.apply
|
334
336
|
|
335
337
|
File.should be_file(path)
|
336
|
-
(get_mode(path) & 07777) == 0600
|
338
|
+
(get_mode(path) & 07777).should == 0600
|
337
339
|
end
|
338
340
|
|
339
341
|
it "should overwrite the file" do
|
@@ -343,7 +345,7 @@ describe Puppet::Type.type(:file) do
|
|
343
345
|
catalog.apply
|
344
346
|
|
345
347
|
File.should be_file(path)
|
346
|
-
(get_mode(path) & 07777) == 0600
|
348
|
+
(get_mode(path) & 07777).should == 0600
|
347
349
|
end
|
348
350
|
end
|
349
351
|
|
@@ -365,13 +367,11 @@ describe Puppet::Type.type(:file) do
|
|
365
367
|
|
366
368
|
describe "when following all links" do
|
367
369
|
it "should create the destination and apply executable bits (#10315)" do
|
368
|
-
pending "bug #10315"
|
369
|
-
|
370
370
|
catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
|
371
371
|
catalog.apply
|
372
372
|
|
373
373
|
File.should be_directory(path)
|
374
|
-
(get_mode(path) & 07777) ==
|
374
|
+
(get_mode(path) & 07777).should == 0700
|
375
375
|
end
|
376
376
|
|
377
377
|
it "should overwrite the destination and apply executable bits" do
|
@@ -381,7 +381,7 @@ describe Puppet::Type.type(:file) do
|
|
381
381
|
catalog.apply
|
382
382
|
|
383
383
|
File.should be_directory(path)
|
384
|
-
(get_mode(path) &
|
384
|
+
(get_mode(path) & 0111).should == 0100
|
385
385
|
end
|
386
386
|
end
|
387
387
|
end
|
@@ -11,7 +11,7 @@ describe Puppet::Type.type(:package), "when choosing a default package provider"
|
|
11
11
|
if Facter.value(:operatingsystem) == 'Solaris' && Puppet::Util::Package.versioncmp(Facter.value(:kernelrelease), '5.11') >= 0
|
12
12
|
:pkg
|
13
13
|
else
|
14
|
-
{"Ubuntu" => :apt, "Debian" => :apt, "Darwin" => :pkgdmg, "RedHat" => :up2date, "Fedora" => :yum, "FreeBSD" => :ports, "OpenBSD" => :openbsd, "Solaris" => :sun, "DragonFly" => :pkgin}[os]
|
14
|
+
{"Ubuntu" => :apt, "Debian" => :apt, "Darwin" => :pkgdmg, "RedHat" => :up2date, "Fedora" => :yum, "FreeBSD" => :ports, "OpenBSD" => :openbsd, "Solaris" => :sun, "DragonFly" => :pkgin, "OpenWrt" => :opkg}[os]
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -22,11 +22,8 @@ end
|
|
22
22
|
# ready to roll with a serious database and all. Cleanup is handled
|
23
23
|
# automatically for you. Nothing to do there.
|
24
24
|
def setup_scratch_database
|
25
|
-
Puppet
|
26
|
-
|
27
|
-
:log_level => Puppet[:rails_loglevel],
|
28
|
-
:database => ':memory:'
|
29
|
-
)
|
25
|
+
Puppet[:dbadapter] = 'sqlite3'
|
26
|
+
Puppet[:dblocation] = ':memory'
|
30
27
|
Puppet[:railslog] = PuppetSpec::Files.tmpfile('storeconfigs.log')
|
31
28
|
Puppet::Rails.init
|
32
29
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -67,7 +67,12 @@ RSpec.configure do |config|
|
|
67
67
|
if Puppet::Util::Platform.windows?
|
68
68
|
config.output_stream = $stdout
|
69
69
|
config.error_stream = $stderr
|
70
|
-
|
70
|
+
|
71
|
+
config.formatters.each do |f|
|
72
|
+
if not f.instance_variable_get(:@output).kind_of?(::File)
|
73
|
+
f.instance_variable_set(:@output, $stdout)
|
74
|
+
end
|
75
|
+
end
|
71
76
|
end
|
72
77
|
|
73
78
|
Puppet::Test::TestHelper.initialize
|
@@ -20,7 +20,7 @@ describe Puppet::Application::Apply do
|
|
20
20
|
Puppet::Node.indirection.cache_class = nil
|
21
21
|
end
|
22
22
|
|
23
|
-
[:debug,:loadclasses,:verbose,:use_nodes,:detailed_exitcodes,:catalog].each do |option|
|
23
|
+
[:debug,:loadclasses,:verbose,:use_nodes,:detailed_exitcodes,:catalog, :write_catalog_summary].each do |option|
|
24
24
|
it "should declare handle_#{option} method" do
|
25
25
|
@apply.should respond_to("handle_#{option}".to_sym)
|
26
26
|
end
|
@@ -241,6 +241,21 @@ describe Puppet::Application::Apply do
|
|
241
241
|
expect { @apply.main }.to exit_with 0
|
242
242
|
end
|
243
243
|
|
244
|
+
it "should not save the classes or resource file by default" do
|
245
|
+
@catalog.expects(:write_class_file).never
|
246
|
+
@catalog.expects(:write_resource_file).never
|
247
|
+
expect { @apply.main }.to exit_with 0
|
248
|
+
end
|
249
|
+
|
250
|
+
it "should save the classes and resources files when requested" do
|
251
|
+
@apply.options[:write_catalog_summary] = true
|
252
|
+
|
253
|
+
@catalog.expects(:write_class_file).once
|
254
|
+
@catalog.expects(:write_resource_file).once
|
255
|
+
|
256
|
+
expect { @apply.main }.to exit_with 0
|
257
|
+
end
|
258
|
+
|
244
259
|
it "should call the prerun and postrun commands on a Configurer instance" do
|
245
260
|
Puppet::Configurer.any_instance.expects(:execute_prerun_command).returns(true)
|
246
261
|
Puppet::Configurer.any_instance.expects(:execute_postrun_command).returns(true)
|
@@ -143,6 +143,61 @@ describe Puppet::Application::Doc do
|
|
143
143
|
@doc.setup
|
144
144
|
end
|
145
145
|
|
146
|
+
describe "configuring logging" do
|
147
|
+
before :each do
|
148
|
+
Puppet::Util::Log.stubs(:newdestination)
|
149
|
+
end
|
150
|
+
|
151
|
+
describe "with --debug" do
|
152
|
+
before do
|
153
|
+
@doc.options[:debug] = true
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should set log level to debug" do
|
157
|
+
@doc.setup
|
158
|
+
Puppet::Util::Log.level.should == :debug
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should set log destination to console" do
|
162
|
+
Puppet::Util::Log.expects(:newdestination).with(:console)
|
163
|
+
@doc.setup
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
describe "with --verbose" do
|
168
|
+
before do
|
169
|
+
@doc.options[:verbose] = true
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should set log level to info" do
|
173
|
+
@doc.setup
|
174
|
+
Puppet::Util::Log.level.should == :info
|
175
|
+
end
|
176
|
+
|
177
|
+
it "should set log destination to console" do
|
178
|
+
Puppet::Util::Log.expects(:newdestination).with(:console)
|
179
|
+
@doc.setup
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
describe "without --debug or --verbose" do
|
184
|
+
before do
|
185
|
+
@doc.options[:debug] = false
|
186
|
+
@doc.options[:verbose] = false
|
187
|
+
end
|
188
|
+
|
189
|
+
it "should set log level to warning" do
|
190
|
+
@doc.setup
|
191
|
+
Puppet::Util::Log.level.should == :warning
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should set log destination to console" do
|
195
|
+
Puppet::Util::Log.expects(:newdestination).with(:console)
|
196
|
+
@doc.setup
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
146
201
|
describe "in non-rdoc mode" do
|
147
202
|
it "should get all non-dynamic reference if --all" do
|
148
203
|
@doc.options[:all] = true
|
@@ -163,10 +218,6 @@ describe Puppet::Application::Doc do
|
|
163
218
|
end
|
164
219
|
|
165
220
|
describe "in rdoc mode" do
|
166
|
-
before :each do
|
167
|
-
Puppet::Util::Log.stubs(:newdestination)
|
168
|
-
end
|
169
|
-
|
170
221
|
describe "when there are unknown args" do
|
171
222
|
it "should expand --modulepath if any" do
|
172
223
|
@doc.unknown_args = [ { :opt => "--modulepath", :arg => "path" } ]
|
@@ -199,34 +250,6 @@ describe Puppet::Application::Doc do
|
|
199
250
|
|
200
251
|
@doc.setup_rdoc
|
201
252
|
end
|
202
|
-
|
203
|
-
it "should set log level to debug if --debug" do
|
204
|
-
@doc.options[:debug] = true
|
205
|
-
@doc.setup_rdoc
|
206
|
-
Puppet::Util::Log.level.should == :debug
|
207
|
-
end
|
208
|
-
|
209
|
-
it "should set log level to info if --verbose" do
|
210
|
-
@doc.options[:verbose] = true
|
211
|
-
@doc.setup_rdoc
|
212
|
-
Puppet::Util::Log.level.should == :info
|
213
|
-
end
|
214
|
-
|
215
|
-
it "should set log destination to console if --verbose" do
|
216
|
-
@doc.options[:verbose] = true
|
217
|
-
|
218
|
-
Puppet::Util::Log.expects(:newdestination).with(:console)
|
219
|
-
|
220
|
-
@doc.setup_rdoc
|
221
|
-
end
|
222
|
-
|
223
|
-
it "should set log destination to console if --debug" do
|
224
|
-
@doc.options[:debug] = true
|
225
|
-
|
226
|
-
Puppet::Util::Log.expects(:newdestination).with(:console)
|
227
|
-
|
228
|
-
@doc.setup_rdoc
|
229
|
-
end
|
230
253
|
end
|
231
254
|
end
|
232
255
|
|
@@ -2,11 +2,11 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
require 'puppet/application/kick'
|
5
|
+
require 'puppet/run'
|
6
|
+
require 'puppet/util/ldap/connection'
|
5
7
|
|
6
8
|
describe Puppet::Application::Kick, :if => Puppet.features.posix? do
|
7
|
-
|
8
9
|
before :each do
|
9
|
-
require 'puppet/util/ldap/connection'
|
10
10
|
Puppet::Util::Ldap::Connection.stubs(:new).returns(stub_everything)
|
11
11
|
@kick = Puppet::Application[:kick]
|
12
12
|
Puppet::Util::Log.stubs(:newdestination)
|
@@ -82,7 +82,7 @@ describe Puppet::Application::Kick, :if => Puppet.features.posix? do
|
|
82
82
|
@kick.preinit
|
83
83
|
end
|
84
84
|
|
85
|
-
[:all, :foreground, :debug, :ping, :test].each do |option|
|
85
|
+
[:all, :foreground, :debug, :ping, :test, :ignoreschedules].each do |option|
|
86
86
|
it "should declare handle_#{option} method" do
|
87
87
|
@kick.should respond_to("handle_#{option}".to_sym)
|
88
88
|
end
|
@@ -226,7 +226,7 @@ describe Puppet::Application::Kick, :if => Puppet.features.posix? do
|
|
226
226
|
@kick.options.stubs(:[]).with(:debug).returns(false)
|
227
227
|
@kick.options.stubs(:[]).with(:verbose).returns(false) # needed when logging is initialized
|
228
228
|
@kick.options.stubs(:[]).with(:setdest).returns(false) # needed when logging is initialized
|
229
|
-
|
229
|
+
|
230
230
|
@kick.stubs(:print)
|
231
231
|
@kick.preinit
|
232
232
|
@kick.stubs(:parse_options)
|
@@ -256,7 +256,6 @@ describe Puppet::Application::Kick, :if => Puppet.features.posix? do
|
|
256
256
|
|
257
257
|
describe "during call of run_for_host" do
|
258
258
|
before do
|
259
|
-
require 'puppet/run'
|
260
259
|
options = {
|
261
260
|
:background => true, :ignoreschedules => false, :tags => []
|
262
261
|
}
|
@@ -264,13 +263,16 @@ describe Puppet::Application::Kick, :if => Puppet.features.posix? do
|
|
264
263
|
@agent_run = Puppet::Run.new( options.dup )
|
265
264
|
@agent_run.stubs(:status).returns("success")
|
266
265
|
|
266
|
+
# ensure that we don't actually run the agent
|
267
|
+
@agent_run.stubs(:run).returns(@agent_run)
|
268
|
+
|
269
|
+
Puppet::Run.indirection.terminus_class = :local
|
267
270
|
Puppet::Run.indirection.expects(:terminus_class=).with( :rest )
|
268
271
|
Puppet::Run.expects(:new).with( options ).returns(@agent_run)
|
269
272
|
end
|
270
273
|
|
271
274
|
it "should call run on a Puppet::Run for the given host" do
|
272
275
|
Puppet::Run.indirection.expects(:save).with(@agent_run, 'https://host:8139/production/run/host').returns(@agent_run)
|
273
|
-
|
274
276
|
expect { @kick.run_for_host('host') }.to exit_with 0
|
275
277
|
end
|
276
278
|
|
@@ -241,25 +241,25 @@ describe Puppet::Application::Master, :unless => Puppet.features.microsoft_windo
|
|
241
241
|
before do
|
242
242
|
Puppet[:manifest] = "site.pp"
|
243
243
|
Puppet.stubs(:err)
|
244
|
-
@master.stubs(:
|
244
|
+
@master.stubs(:puts)
|
245
245
|
end
|
246
246
|
|
247
247
|
it "should compile a catalog for the specified node" do
|
248
248
|
@master.options[:node] = "foo"
|
249
249
|
Puppet::Resource::Catalog.indirection.expects(:find).with("foo").returns Puppet::Resource::Catalog.new
|
250
|
-
$stdout.stubs(:puts)
|
251
250
|
|
252
251
|
expect { @master.compile }.to exit_with 0
|
253
252
|
end
|
254
253
|
|
255
|
-
it "should convert the catalog to a pure-resource catalog and use '
|
254
|
+
it "should convert the catalog to a pure-resource catalog and use 'PSON::pretty_generate' to pretty-print the catalog" do
|
256
255
|
catalog = Puppet::Resource::Catalog.new
|
256
|
+
PSON.stubs(:pretty_generate)
|
257
257
|
Puppet::Resource::Catalog.indirection.expects(:find).returns catalog
|
258
258
|
|
259
259
|
catalog.expects(:to_resource).returns("rescat")
|
260
260
|
|
261
261
|
@master.options[:node] = "foo"
|
262
|
-
|
262
|
+
PSON.expects(:pretty_generate).with('rescat', :allow_nan => true, :max_nesting => false)
|
263
263
|
|
264
264
|
expect { @master.compile }.to exit_with 0
|
265
265
|
end
|
data/spec/unit/daemon_spec.rb
CHANGED
@@ -203,7 +203,7 @@ describe Puppet::Daemon, :unless => Puppet.features.microsoft_windows? do
|
|
203
203
|
|
204
204
|
it "should run the agent if one is available and it is not running" do
|
205
205
|
@agent.expects(:running?).returns false
|
206
|
-
@agent.expects
|
206
|
+
@agent.expects(:run).with({:splay => false})
|
207
207
|
|
208
208
|
@daemon.agent = @agent
|
209
209
|
|
@@ -39,4 +39,44 @@ Could not connect to http://fake.com:1111
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
describe 'ResponseError' do
|
43
|
+
subject { Puppet::Forge::Errors::ResponseError }
|
44
|
+
let(:response) { stub(:body => '{}', :code => '404', :message => "not found") }
|
45
|
+
|
46
|
+
context 'without message' do
|
47
|
+
let(:exception) { subject.new(:uri => 'http://fake.com:1111', :response => response, :input => 'user/module') }
|
48
|
+
|
49
|
+
it 'should return a valid single line error' do
|
50
|
+
exception.message.should == 'Could not execute operation for \'user/module\'. Detail: 404 not found.'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should return a valid multiline error' do
|
54
|
+
exception.multiline.should == <<-eos.chomp
|
55
|
+
Could not execute operation for 'user/module'
|
56
|
+
The server being queried was http://fake.com:1111
|
57
|
+
The HTTP response we received was '404 not found'
|
58
|
+
Check the author and module names are correct.
|
59
|
+
eos
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'with message' do
|
64
|
+
let(:exception) { subject.new(:uri => 'http://fake.com:1111', :response => response, :input => 'user/module', :message => 'no such module') }
|
65
|
+
|
66
|
+
it 'should return a valid single line error' do
|
67
|
+
exception.message.should == 'Could not execute operation for \'user/module\'. Detail: no such module / 404 not found.'
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should return a valid multiline error' do
|
71
|
+
exception.multiline.should == <<-eos.chomp
|
72
|
+
Could not execute operation for 'user/module'
|
73
|
+
The server being queried was http://fake.com:1111
|
74
|
+
The HTTP response we received was '404 not found'
|
75
|
+
The message we received said 'no such module'
|
76
|
+
Check the author and module names are correct.
|
77
|
+
eos
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
42
82
|
end
|