puppet 2.6.18 → 2.7.1

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.

Files changed (1050) hide show
  1. data/CHANGELOG +733 -187
  2. data/LICENSE +13 -13
  3. data/README.md +5 -9
  4. data/Rakefile +1 -1
  5. data/conf/auth.conf +8 -3
  6. data/conf/redhat/puppet.spec +21 -110
  7. data/conf/solaris/pkginfo +3 -4
  8. data/conf/suse/puppet.spec +1 -1
  9. data/ext/cert_inspector +140 -0
  10. data/ext/nagios/naggen +12 -5
  11. data/ext/puppet-test +11 -5
  12. data/ext/vim/README +1 -2
  13. data/ext/yaml_nodes.rb +11 -5
  14. data/install.rb +1 -54
  15. data/lib/puppet.rb +6 -10
  16. data/lib/puppet/application.rb +23 -32
  17. data/lib/puppet/application/agent.rb +228 -7
  18. data/lib/puppet/application/apply.rb +108 -36
  19. data/lib/puppet/application/catalog.rb +4 -0
  20. data/lib/puppet/application/cert.rb +128 -17
  21. data/lib/puppet/application/certificate.rb +18 -0
  22. data/lib/puppet/application/certificate_request.rb +4 -0
  23. data/lib/puppet/application/certificate_revocation_list.rb +4 -0
  24. data/lib/puppet/application/config.rb +4 -0
  25. data/lib/puppet/application/describe.rb +53 -0
  26. data/lib/puppet/application/device.rb +255 -0
  27. data/lib/puppet/application/doc.rb +92 -6
  28. data/lib/puppet/application/face_base.rb +246 -0
  29. data/lib/puppet/application/facts.rb +4 -0
  30. data/lib/puppet/application/file.rb +4 -0
  31. data/lib/puppet/application/filebucket.rb +102 -0
  32. data/lib/puppet/application/help.rb +4 -0
  33. data/lib/puppet/application/indirection_base.rb +4 -0
  34. data/lib/puppet/application/inspect.rb +21 -23
  35. data/lib/puppet/application/key.rb +4 -0
  36. data/lib/puppet/application/kick.rb +131 -4
  37. data/lib/puppet/application/man.rb +4 -0
  38. data/lib/puppet/application/master.rb +108 -40
  39. data/lib/puppet/application/node.rb +4 -0
  40. data/lib/puppet/application/parser.rb +5 -0
  41. data/lib/puppet/application/plugin.rb +3 -0
  42. data/lib/puppet/application/queue.rb +75 -13
  43. data/lib/puppet/application/report.rb +4 -0
  44. data/lib/puppet/application/resource.rb +115 -23
  45. data/lib/puppet/application/resource_type.rb +4 -0
  46. data/lib/puppet/application/secret_agent.rb +6 -0
  47. data/lib/puppet/application/status.rb +4 -0
  48. data/lib/puppet/configurer.rb +57 -61
  49. data/lib/puppet/configurer/fact_handler.rb +1 -6
  50. data/lib/puppet/daemon.rb +2 -2
  51. data/lib/puppet/defaults.rb +30 -88
  52. data/lib/puppet/dsl/resource_type_api.rb +19 -31
  53. data/lib/puppet/external/nagios/parser.rb +1 -1
  54. data/lib/puppet/face.rb +12 -0
  55. data/lib/puppet/face/catalog.rb +130 -0
  56. data/lib/puppet/face/catalog/select.rb +49 -0
  57. data/lib/puppet/face/certificate.rb +115 -0
  58. data/lib/puppet/face/certificate_request.rb +55 -0
  59. data/lib/puppet/face/certificate_revocation_list.rb +60 -0
  60. data/lib/puppet/face/config.rb +45 -0
  61. data/lib/puppet/face/facts.rb +81 -0
  62. data/lib/puppet/face/file.rb +47 -0
  63. data/lib/puppet/face/file/download.rb +54 -0
  64. data/lib/puppet/face/file/store.rb +21 -0
  65. data/lib/puppet/face/help.rb +131 -0
  66. data/lib/puppet/face/help/action.erb +53 -0
  67. data/lib/puppet/face/help/face.erb +79 -0
  68. data/lib/puppet/face/help/global.erb +19 -0
  69. data/lib/puppet/face/help/man.erb +136 -0
  70. data/lib/puppet/face/key.rb +15 -0
  71. data/lib/puppet/face/man.rb +93 -0
  72. data/lib/puppet/face/node.rb +43 -0
  73. data/lib/puppet/face/parser.rb +42 -0
  74. data/lib/puppet/face/plugin.rb +55 -0
  75. data/lib/puppet/face/report.rb +56 -0
  76. data/lib/puppet/face/resource.rb +53 -0
  77. data/lib/puppet/face/resource_type.rb +81 -0
  78. data/lib/puppet/face/secret_agent.rb +54 -0
  79. data/lib/puppet/face/status.rb +52 -0
  80. data/lib/puppet/feature/ssh.rb +4 -0
  81. data/lib/puppet/file_bucket/dipper.rb +3 -3
  82. data/lib/puppet/file_bucket/file.rb +6 -5
  83. data/lib/puppet/file_bucket/file/indirection_hooks.rb +9 -0
  84. data/lib/puppet/file_serving/configuration.rb +1 -2
  85. data/lib/puppet/file_serving/content.rb +2 -1
  86. data/lib/puppet/file_serving/{terminus_selector.rb → indirection_hooks.rb} +3 -2
  87. data/lib/puppet/file_serving/metadata.rb +2 -1
  88. data/lib/puppet/file_serving/mount/modules.rb +5 -4
  89. data/lib/puppet/indirector.rb +16 -43
  90. data/lib/puppet/indirector/catalog/active_record.rb +1 -1
  91. data/lib/puppet/indirector/catalog/compiler.rb +5 -15
  92. data/lib/puppet/indirector/catalog/static_compiler.rb +137 -0
  93. data/lib/puppet/indirector/certificate_request/ca.rb +8 -0
  94. data/lib/puppet/indirector/certificate_status.rb +4 -0
  95. data/lib/puppet/indirector/certificate_status/file.rb +82 -0
  96. data/lib/puppet/indirector/certificate_status/rest.rb +10 -0
  97. data/lib/puppet/indirector/couch.rb +5 -3
  98. data/lib/puppet/indirector/exec.rb +3 -3
  99. data/lib/puppet/indirector/face.rb +127 -0
  100. data/lib/puppet/indirector/facts/network_device.rb +25 -0
  101. data/lib/puppet/indirector/file.rb +79 -0
  102. data/lib/puppet/indirector/file_bucket_file/file.rb +0 -4
  103. data/lib/puppet/indirector/indirection.rb +1 -2
  104. data/lib/puppet/indirector/inventory/yaml.rb +81 -0
  105. data/lib/puppet/indirector/report/processor.rb +0 -2
  106. data/lib/puppet/indirector/request.rb +0 -4
  107. data/lib/puppet/indirector/resource/ral.rb +0 -4
  108. data/lib/puppet/indirector/resource_type/parser.rb +19 -3
  109. data/lib/puppet/indirector/rest.rb +11 -5
  110. data/lib/puppet/indirector/run/local.rb +0 -4
  111. data/lib/puppet/indirector/ssl_file.rb +1 -5
  112. data/lib/puppet/indirector/terminus.rb +3 -26
  113. data/lib/puppet/indirector/yaml.rb +0 -5
  114. data/lib/puppet/interface.rb +156 -0
  115. data/lib/puppet/interface/action.rb +284 -0
  116. data/lib/puppet/interface/action_builder.rb +74 -0
  117. data/lib/puppet/interface/action_manager.rb +70 -0
  118. data/lib/puppet/interface/documentation.rb +230 -0
  119. data/lib/puppet/interface/face_collection.rb +137 -0
  120. data/lib/puppet/interface/option.rb +108 -0
  121. data/lib/puppet/interface/option_builder.rb +54 -0
  122. data/lib/puppet/interface/option_manager.rb +67 -0
  123. data/lib/puppet/metatype/manager.rb +20 -7
  124. data/lib/puppet/module.rb +1 -1
  125. data/lib/puppet/network/client.rb +179 -0
  126. data/lib/puppet/network/client/ca.rb +56 -0
  127. data/lib/puppet/network/client/file.rb +6 -0
  128. data/lib/puppet/network/client/proxy.rb +27 -0
  129. data/lib/puppet/network/client/report.rb +26 -0
  130. data/lib/puppet/network/client/runner.rb +10 -0
  131. data/lib/puppet/network/client/status.rb +4 -0
  132. data/lib/puppet/network/format.rb +1 -1
  133. data/lib/puppet/network/formats.rb +63 -0
  134. data/lib/puppet/network/handler/ca.rb +106 -16
  135. data/lib/puppet/network/handler/filebucket.rb +2 -4
  136. data/lib/puppet/network/handler/fileserver.rb +3 -2
  137. data/lib/puppet/network/handler/master.rb +5 -3
  138. data/lib/puppet/network/handler/report.rb +0 -2
  139. data/lib/puppet/network/handler/runner.rb +0 -2
  140. data/lib/puppet/network/handler/status.rb +0 -2
  141. data/lib/puppet/network/http/api/v1.rb +11 -3
  142. data/lib/puppet/network/http/handler.rb +26 -35
  143. data/lib/puppet/network/http/rack/rest.rb +2 -7
  144. data/lib/puppet/network/http/webrick.rb +1 -2
  145. data/lib/puppet/network/http_pool.rb +8 -17
  146. data/lib/puppet/network/http_server/mongrel.rb +1 -0
  147. data/lib/puppet/network/http_server/webrick.rb +155 -0
  148. data/lib/puppet/network/rest_authconfig.rb +4 -3
  149. data/lib/puppet/network/rest_authorization.rb +2 -2
  150. data/lib/puppet/network/rights.rb +4 -9
  151. data/lib/puppet/network/server.rb +1 -1
  152. data/lib/puppet/network/xmlrpc/client.rb +211 -0
  153. data/lib/puppet/node.rb +2 -1
  154. data/lib/puppet/node/environment.rb +30 -3
  155. data/lib/puppet/node/facts.rb +15 -15
  156. data/lib/puppet/node/inventory.rb +7 -0
  157. data/lib/puppet/parser/ast.rb +6 -2
  158. data/lib/puppet/parser/ast/astarray.rb +12 -23
  159. data/lib/puppet/parser/ast/caseopt.rb +12 -24
  160. data/lib/puppet/parser/ast/definition.rb +17 -0
  161. data/lib/puppet/parser/ast/hostclass.rb +29 -0
  162. data/lib/puppet/parser/ast/leaf.rb +2 -2
  163. data/lib/puppet/parser/ast/node.rb +20 -0
  164. data/lib/puppet/parser/ast/resource.rb +42 -50
  165. data/lib/puppet/parser/ast/resource_instance.rb +9 -0
  166. data/lib/puppet/parser/ast/resource_override.rb +2 -3
  167. data/lib/puppet/parser/ast/resource_reference.rb +1 -1
  168. data/lib/puppet/parser/ast/top_level_construct.rb +4 -0
  169. data/lib/puppet/parser/ast/vardef.rb +1 -1
  170. data/lib/puppet/parser/compiler.rb +16 -17
  171. data/lib/puppet/parser/functions/create_resources.rb +47 -0
  172. data/lib/puppet/parser/functions/extlookup.rb +2 -7
  173. data/lib/puppet/parser/functions/fqdn_rand.rb +2 -2
  174. data/lib/puppet/parser/functions/sha1.rb +1 -1
  175. data/lib/puppet/parser/grammar.ra +67 -144
  176. data/lib/puppet/parser/lexer.rb +1 -1
  177. data/lib/puppet/parser/parser.rb +1190 -1262
  178. data/lib/puppet/parser/parser_support.rb +48 -73
  179. data/lib/puppet/parser/resource.rb +2 -19
  180. data/lib/puppet/parser/scope.rb +33 -103
  181. data/lib/puppet/parser/templatewrapper.rb +21 -22
  182. data/lib/puppet/parser/type_loader.rb +60 -35
  183. data/lib/puppet/provider/aixobject.rb +393 -0
  184. data/lib/puppet/provider/augeas/augeas.rb +37 -15
  185. data/lib/puppet/provider/cisco.rb +9 -0
  186. data/lib/puppet/provider/cron/crontab.rb +1 -7
  187. data/lib/puppet/provider/exec/posix.rb +3 -6
  188. data/lib/puppet/provider/exec/shell.rb +2 -11
  189. data/lib/puppet/provider/file/posix.rb +1 -1
  190. data/lib/puppet/provider/file/win32.rb +1 -1
  191. data/lib/puppet/provider/group/aix.rb +141 -0
  192. data/lib/puppet/provider/group/directoryservice.rb +0 -14
  193. data/lib/puppet/provider/host/parsed.rb +23 -55
  194. data/lib/puppet/provider/interface/base.rb +0 -0
  195. data/lib/puppet/provider/interface/cisco.rb +27 -0
  196. data/lib/puppet/provider/mcx/mcxcontent.rb +57 -96
  197. data/lib/puppet/provider/mount/parsed.rb +1 -1
  198. data/lib/puppet/provider/naginator.rb +1 -9
  199. data/lib/puppet/provider/nameservice/directoryservice.rb +41 -26
  200. data/lib/puppet/provider/network_device.rb +68 -0
  201. data/lib/puppet/provider/package/appdmg.rb +13 -13
  202. data/lib/puppet/provider/package/aptitude.rb +0 -1
  203. data/lib/puppet/provider/package/pip.rb +109 -0
  204. data/lib/puppet/provider/package/pkgdmg.rb +24 -32
  205. data/lib/puppet/provider/package/pkgutil.rb +175 -0
  206. data/lib/puppet/provider/package/yum.rb +8 -1
  207. data/lib/puppet/provider/service/daemontools.rb +1 -1
  208. data/lib/puppet/provider/service/launchd.rb +1 -1
  209. data/lib/puppet/provider/service/smf.rb +3 -3
  210. data/lib/puppet/provider/service/upstart.rb +73 -0
  211. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +9 -10
  212. data/lib/puppet/provider/user/aix.rb +353 -0
  213. data/lib/puppet/provider/user/directoryservice.rb +0 -14
  214. data/lib/puppet/provider/user/user_role_add.rb +17 -32
  215. data/lib/puppet/provider/vlan/cisco.rb +28 -0
  216. data/lib/puppet/provider/zfs/solaris.rb +1 -1
  217. data/lib/puppet/provider/zone/solaris.rb +3 -0
  218. data/lib/puppet/provider/zpool/solaris.rb +7 -5
  219. data/lib/puppet/rails.rb +1 -1
  220. data/lib/puppet/rails/benchmark.rb +1 -1
  221. data/lib/puppet/rails/fact_name.rb +1 -0
  222. data/lib/puppet/rails/host.rb +0 -7
  223. data/lib/puppet/reference/configuration.rb +26 -101
  224. data/lib/puppet/reports/store.rb +3 -7
  225. data/lib/puppet/resource.rb +1 -1
  226. data/lib/puppet/resource/catalog.rb +86 -36
  227. data/lib/puppet/resource/type.rb +10 -15
  228. data/lib/puppet/resource/type_collection.rb +55 -63
  229. data/lib/puppet/simple_graph.rb +370 -269
  230. data/lib/puppet/ssl/base.rb +0 -8
  231. data/lib/puppet/ssl/certificate.rb +0 -6
  232. data/lib/puppet/ssl/certificate_authority.rb +24 -109
  233. data/lib/puppet/ssl/certificate_authority/interface.rb +19 -66
  234. data/lib/puppet/ssl/certificate_factory.rb +91 -112
  235. data/lib/puppet/ssl/certificate_request.rb +15 -98
  236. data/lib/puppet/ssl/certificate_revocation_list.rb +1 -1
  237. data/lib/puppet/ssl/host.rb +85 -51
  238. data/lib/puppet/ssl/inventory.rb +1 -1
  239. data/lib/puppet/sslcertificates.rb +146 -0
  240. data/lib/puppet/sslcertificates/ca.rb +375 -0
  241. data/lib/puppet/sslcertificates/certificate.rb +255 -0
  242. data/lib/puppet/sslcertificates/inventory.rb +38 -0
  243. data/lib/puppet/sslcertificates/support.rb +146 -0
  244. data/lib/puppet/status.rb +1 -1
  245. data/lib/puppet/transaction.rb +163 -94
  246. data/lib/puppet/transaction/event.rb +1 -1
  247. data/lib/puppet/transaction/event_manager.rb +19 -3
  248. data/lib/puppet/transaction/report.rb +9 -3
  249. data/lib/puppet/type.rb +107 -62
  250. data/lib/puppet/type/augeas.rb +10 -14
  251. data/lib/puppet/type/cron.rb +13 -14
  252. data/lib/puppet/type/exec.rb +0 -9
  253. data/lib/puppet/type/file.rb +20 -29
  254. data/lib/puppet/type/file/ctime.rb +1 -1
  255. data/lib/puppet/type/file/ensure.rb +1 -1
  256. data/lib/puppet/type/file/group.rb +1 -1
  257. data/lib/puppet/type/file/mode.rb +1 -1
  258. data/lib/puppet/type/file/mtime.rb +1 -1
  259. data/lib/puppet/type/file/selcontext.rb +1 -1
  260. data/lib/puppet/type/file/source.rb +3 -3
  261. data/lib/puppet/type/file/type.rb +1 -1
  262. data/lib/puppet/type/group.rb +36 -0
  263. data/lib/puppet/type/host.rb +18 -43
  264. data/lib/puppet/type/interface.rb +109 -0
  265. data/lib/puppet/type/k5login.rb +1 -4
  266. data/lib/puppet/type/macauthorization.rb +3 -3
  267. data/lib/puppet/type/mcx.rb +2 -21
  268. data/lib/puppet/type/router.rb +14 -0
  269. data/lib/puppet/type/schedule.rb +2 -0
  270. data/lib/puppet/type/service.rb +2 -0
  271. data/lib/puppet/type/sshkey.rb +6 -1
  272. data/lib/puppet/type/tidy.rb +12 -12
  273. data/lib/puppet/type/user.rb +36 -9
  274. data/lib/puppet/type/vlan.rb +26 -0
  275. data/lib/puppet/type/whit.rb +13 -1
  276. data/lib/puppet/type/zfs.rb +100 -8
  277. data/lib/puppet/type/zone.rb +45 -1
  278. data/lib/puppet/type/zpool.rb +1 -0
  279. data/lib/puppet/util.rb +63 -91
  280. data/lib/puppet/util/autoload.rb +16 -14
  281. data/lib/puppet/util/classgen.rb +13 -1
  282. data/lib/puppet/util/command_line.rb +109 -22
  283. data/lib/puppet/util/log.rb +1 -0
  284. data/lib/puppet/util/log/destinations.rb +16 -4
  285. data/lib/puppet/util/logging.rb +11 -0
  286. data/lib/puppet/util/monkey_patches.rb +7 -77
  287. data/lib/puppet/util/network_device.rb +17 -0
  288. data/lib/puppet/util/network_device/base.rb +27 -0
  289. data/lib/puppet/util/network_device/cisco.rb +4 -0
  290. data/lib/puppet/util/network_device/cisco/device.rb +256 -0
  291. data/lib/puppet/util/network_device/cisco/facts.rb +72 -0
  292. data/lib/puppet/util/network_device/cisco/interface.rb +82 -0
  293. data/lib/puppet/util/network_device/config.rb +93 -0
  294. data/lib/puppet/util/network_device/ipcalc.rb +68 -0
  295. data/lib/puppet/util/network_device/transport.rb +3 -0
  296. data/lib/puppet/util/network_device/transport/base.rb +26 -0
  297. data/lib/puppet/util/network_device/transport/ssh.rb +121 -0
  298. data/lib/puppet/util/network_device/transport/telnet.rb +42 -0
  299. data/lib/puppet/util/rdoc.rb +4 -10
  300. data/lib/puppet/util/rdoc/parser.rb +34 -23
  301. data/lib/puppet/util/reference.rb +7 -8
  302. data/lib/puppet/util/selinux.rb +2 -2
  303. data/lib/puppet/util/settings.rb +1 -6
  304. data/lib/puppet/util/settings/file_setting.rb +0 -1
  305. data/lib/puppet/util/suidmanager.rb +30 -79
  306. data/lib/puppet/util/zaml.rb +41 -40
  307. data/man/man5/puppet.conf.5 +291 -873
  308. data/man/man8/filebucket.8 +47 -71
  309. data/man/man8/pi.8 +44 -10
  310. data/man/man8/puppet-agent.8 +154 -0
  311. data/man/man8/puppet-apply.8 +75 -0
  312. data/man/man8/puppet-catalog.8 +286 -0
  313. data/man/man8/puppet-cert.8 +97 -0
  314. data/man/man8/puppet-certificate.8 +229 -0
  315. data/man/man8/puppet-certificate_request.8 +168 -0
  316. data/man/man8/puppet-certificate_revocation_list.8 +165 -0
  317. data/man/man8/puppet-config.8 +80 -0
  318. data/man/man8/puppet-describe.8 +51 -0
  319. data/man/man8/puppet-device.8 +86 -0
  320. data/man/man8/puppet-doc.8 +101 -0
  321. data/man/man8/puppet-facts.8 +217 -0
  322. data/man/man8/puppet-file.8 +225 -0
  323. data/man/man8/puppet-filebucket.8 +81 -0
  324. data/man/man8/puppet-help.8 +71 -0
  325. data/man/man8/puppet-inspect.8 +28 -0
  326. data/man/man8/puppet-key.8 +126 -0
  327. data/man/man8/puppet-kick.8 +95 -0
  328. data/man/man8/puppet-man.8 +74 -0
  329. data/man/man8/puppet-master.8 +74 -0
  330. data/man/man8/puppet-node.8 +171 -0
  331. data/man/man8/puppet-parser.8 +71 -0
  332. data/man/man8/puppet-plugin.8 +77 -0
  333. data/man/man8/puppet-queue.8 +55 -0
  334. data/man/man8/puppet-report.8 +187 -0
  335. data/man/man8/puppet-resource.8 +84 -0
  336. data/man/man8/puppet-resource_type.8 +214 -0
  337. data/man/man8/puppet-secret_agent.8 +74 -0
  338. data/man/man8/puppet-status.8 +150 -0
  339. data/man/man8/puppet.8 +2 -2
  340. data/man/man8/puppetca.8 +64 -136
  341. data/man/man8/puppetd.8 +99 -228
  342. data/man/man8/puppetdoc.8 +41 -48
  343. data/man/man8/puppetmasterd.8 +54 -32
  344. data/man/man8/puppetqd.8 +45 -10
  345. data/man/man8/puppetrun.8 +56 -134
  346. data/man/man8/ralsh.8 +48 -49
  347. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +8 -0
  348. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +28 -0
  349. data/spec/fixtures/unit/parser/lexer/aliastest.pp +16 -0
  350. data/spec/fixtures/unit/parser/lexer/append.pp +11 -0
  351. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +14 -0
  352. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +8 -0
  353. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +3 -0
  354. data/spec/fixtures/unit/parser/lexer/casestatement.pp +65 -0
  355. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +15 -0
  356. data/spec/fixtures/unit/parser/lexer/classincludes.pp +17 -0
  357. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +11 -0
  358. data/spec/fixtures/unit/parser/lexer/collection.pp +10 -0
  359. data/spec/fixtures/unit/parser/lexer/collection_override.pp +8 -0
  360. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  361. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +11 -0
  362. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +8 -0
  363. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +23 -0
  364. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +17 -0
  365. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +9 -0
  366. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +3 -0
  367. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +9 -0
  368. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +3 -0
  369. data/spec/fixtures/unit/parser/lexer/filecreate.pp +11 -0
  370. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +5 -0
  371. data/spec/fixtures/unit/parser/lexer/fqparents.pp +11 -0
  372. data/spec/fixtures/unit/parser/lexer/funccomma.pp +5 -0
  373. data/spec/fixtures/unit/parser/lexer/hash.pp +33 -0
  374. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +12 -0
  375. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +15 -0
  376. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +10 -0
  377. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +9 -0
  378. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +7 -0
  379. data/spec/fixtures/unit/parser/lexer/multisubs.pp +13 -0
  380. data/spec/fixtures/unit/parser/lexer/namevartest.pp +9 -0
  381. data/spec/fixtures/unit/parser/lexer/scopetest.pp +13 -0
  382. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +49 -0
  383. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +5 -0
  384. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +38 -0
  385. data/spec/fixtures/unit/parser/lexer/singleary.pp +19 -0
  386. data/spec/fixtures/unit/parser/lexer/singlequote.pp +11 -0
  387. data/spec/fixtures/unit/parser/lexer/singleselector.pp +22 -0
  388. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +11 -0
  389. data/spec/fixtures/unit/parser/lexer/tag.pp +9 -0
  390. data/spec/fixtures/unit/parser/lexer/tagged.pp +35 -0
  391. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +14 -0
  392. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +19 -0
  393. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +144 -0
  394. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +7 -0
  395. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +6 -0
  396. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +8 -0
  397. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +3 -0
  398. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +17 -0
  399. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +11 -0
  400. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +5 -0
  401. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +9 -0
  402. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +8 -0
  403. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +4 -0
  404. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +4 -0
  405. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +11 -0
  406. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +6 -0
  407. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +7 -0
  408. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +3 -0
  409. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +1 -0
  410. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +3 -0
  411. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +30 -0
  412. data/spec/fixtures/unit/util/rdoc/basic.pp +16 -0
  413. data/spec/integration/application/apply_spec.rb +2 -5
  414. data/spec/integration/application/doc_spec.rb +5 -6
  415. data/spec/integration/configurer_spec.rb +10 -6
  416. data/spec/integration/defaults_spec.rb +18 -52
  417. data/spec/integration/faces/documentation_spec.rb +55 -0
  418. data/spec/integration/file_serving/content_spec.rb +10 -3
  419. data/spec/integration/file_serving/fileset_spec.rb +2 -3
  420. data/spec/integration/file_serving/metadata_spec.rb +10 -3
  421. data/spec/integration/file_serving/terminus_helper_spec.rb +2 -3
  422. data/spec/integration/indirector/catalog/compiler_spec.rb +7 -12
  423. data/spec/integration/indirector/catalog/queue_spec.rb +3 -4
  424. data/spec/integration/indirector/direct_file_server_spec.rb +2 -2
  425. data/spec/integration/indirector/file_content/file_server_spec.rb +7 -7
  426. data/spec/integration/indirector/file_metadata/file_server_spec.rb +2 -2
  427. data/spec/integration/indirector/node/ldap_spec.rb +3 -4
  428. data/spec/integration/network/client_spec.rb +18 -0
  429. data/spec/integration/network/formats_spec.rb +3 -4
  430. data/spec/integration/network/handler_spec.rb +3 -4
  431. data/spec/integration/network/server/mongrel_spec.rb +3 -4
  432. data/spec/integration/network/server/webrick_spec.rb +4 -4
  433. data/spec/integration/node/environment_spec.rb +2 -3
  434. data/spec/integration/node/facts_spec.rb +6 -6
  435. data/spec/integration/node_spec.rb +16 -16
  436. data/spec/integration/parser/collector_spec.rb +3 -4
  437. data/spec/integration/parser/compiler_spec.rb +43 -3
  438. data/spec/integration/parser/functions/require_spec.rb +2 -3
  439. data/spec/integration/parser/functions_spec.rb +3 -4
  440. data/spec/integration/parser/parser_spec.rb +7 -6
  441. data/spec/integration/parser/ruby_manifest_spec.rb +2 -3
  442. data/spec/integration/provider/mailalias/aliases_spec.rb +5 -19
  443. data/spec/integration/provider/mount_spec.rb +2 -2
  444. data/spec/integration/provider/package_spec.rb +3 -4
  445. data/spec/integration/provider/service/init_spec.rb +4 -6
  446. data/spec/integration/reference/providers_spec.rb +2 -3
  447. data/spec/integration/reports_spec.rb +2 -2
  448. data/spec/integration/resource/catalog_spec.rb +6 -7
  449. data/spec/integration/resource/type_collection_spec.rb +2 -3
  450. data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
  451. data/spec/integration/ssl/certificate_request_spec.rb +7 -7
  452. data/spec/integration/ssl/certificate_revocation_list_spec.rb +2 -2
  453. data/spec/integration/ssl/host_spec.rb +4 -4
  454. data/spec/integration/transaction/report_spec.rb +3 -3
  455. data/spec/integration/transaction_spec.rb +61 -6
  456. data/spec/integration/type/file_spec.rb +10 -8
  457. data/spec/integration/type/package_spec.rb +2 -3
  458. data/spec/integration/type/tidy_spec.rb +2 -3
  459. data/spec/integration/type_spec.rb +2 -14
  460. data/spec/integration/util/autoload_spec.rb +2 -3
  461. data/spec/integration/util/feature_spec.rb +2 -3
  462. data/spec/integration/util/file_locking_spec.rb +3 -4
  463. data/spec/integration/util/rdoc/parser_spec.rb +3 -4
  464. data/spec/integration/util/settings_spec.rb +2 -3
  465. data/spec/lib/matchers/json.rb +111 -0
  466. data/spec/lib/puppet/face/basetest.rb +46 -0
  467. data/spec/lib/puppet/face/huzzah.rb +7 -0
  468. data/spec/lib/puppet/face/version_matching.rb +12 -0
  469. data/spec/lib/puppet_spec/files.rb +38 -5
  470. data/spec/lib/puppet_spec/fixtures.rb +28 -0
  471. data/spec/lib/puppet_spec/matchers.rb +87 -0
  472. data/spec/lib/puppet_spec/verbose.rb +0 -0
  473. data/spec/monkey_patches/alias_should_to_must.rb +0 -0
  474. data/spec/monkey_patches/publicize_methods.rb +0 -0
  475. data/spec/shared_behaviours/all_parsedfile_providers.rb +21 -0
  476. data/spec/shared_behaviours/an_indirector_face.rb +6 -0
  477. data/spec/shared_behaviours/documentation_on_faces.rb +263 -0
  478. data/spec/shared_behaviours/file_server_terminus.rb +1 -1
  479. data/spec/shared_behaviours/file_serving.rb +61 -70
  480. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  481. data/spec/shared_behaviours/path_parameters.rb +0 -0
  482. data/spec/shared_behaviours/things_that_declare_options.rb +150 -0
  483. data/spec/spec.opts +0 -2
  484. data/spec/spec_helper.rb +33 -75
  485. data/spec/unit/agent/locker_spec.rb +2 -3
  486. data/spec/unit/agent_spec.rb +2 -2
  487. data/spec/unit/application/agent_spec.rb +51 -76
  488. data/spec/unit/application/apply_spec.rb +86 -150
  489. data/spec/unit/application/cert_spec.rb +8 -30
  490. data/spec/unit/application/certificate_spec.rb +20 -0
  491. data/spec/unit/application/config_spec.rb +9 -0
  492. data/spec/unit/application/describe_spec.rb +2 -3
  493. data/spec/unit/application/device_spec.rb +342 -0
  494. data/spec/unit/application/doc_spec.rb +11 -18
  495. data/spec/unit/application/face_base_spec.rb +360 -0
  496. data/spec/unit/application/facts_spec.rb +27 -0
  497. data/spec/unit/application/filebucket_spec.rb +7 -18
  498. data/spec/unit/application/indirection_base_spec.rb +42 -0
  499. data/spec/unit/application/inspect_spec.rb +7 -13
  500. data/spec/unit/application/kick_spec.rb +15 -38
  501. data/spec/unit/application/master_spec.rb +25 -81
  502. data/spec/unit/application/queue_spec.rb +12 -22
  503. data/spec/unit/application/resource_spec.rb +19 -53
  504. data/spec/unit/application/secret_agent_spec.rb +32 -0
  505. data/spec/unit/application_spec.rb +65 -34
  506. data/spec/unit/configurer/downloader_spec.rb +2 -3
  507. data/spec/unit/configurer/fact_handler_spec.rb +39 -46
  508. data/spec/unit/configurer/plugin_handler_spec.rb +2 -3
  509. data/spec/unit/configurer_spec.rb +329 -411
  510. data/spec/unit/daemon_spec.rb +7 -14
  511. data/spec/unit/dsl/resource_api_spec.rb +2 -3
  512. data/spec/unit/dsl/resource_type_api_spec.rb +24 -37
  513. data/spec/unit/face/catalog_spec.rb +7 -0
  514. data/spec/unit/face/certificate_request_spec.rb +7 -0
  515. data/spec/unit/face/certificate_revocation_list_spec.rb +7 -0
  516. data/spec/unit/face/certificate_spec.rb +23 -0
  517. data/spec/unit/face/config_spec.rb +24 -0
  518. data/spec/unit/face/facts_spec.rb +23 -0
  519. data/spec/unit/face/file_spec.rb +12 -0
  520. data/spec/unit/face/help_spec.rb +129 -0
  521. data/spec/unit/face/key_spec.rb +7 -0
  522. data/spec/unit/face/node_spec.rb +7 -0
  523. data/spec/unit/face/plugin_spec.rb +10 -0
  524. data/spec/unit/face/report_spec.rb +7 -0
  525. data/spec/unit/face/resource_spec.rb +7 -0
  526. data/spec/unit/face/resource_type_spec.rb +7 -0
  527. data/spec/unit/face/secret_agent_spec.rb +25 -0
  528. data/spec/unit/face_spec.rb +1 -0
  529. data/spec/unit/file_bucket/dipper_spec.rb +7 -8
  530. data/spec/unit/file_bucket/file_spec.rb +7 -16
  531. data/spec/unit/file_collection/lookup_spec.rb +2 -3
  532. data/spec/unit/file_collection_spec.rb +2 -3
  533. data/spec/unit/file_serving/base_spec.rb +2 -3
  534. data/spec/unit/file_serving/configuration/parser_spec.rb +2 -3
  535. data/spec/unit/file_serving/configuration_spec.rb +31 -40
  536. data/spec/unit/file_serving/content_spec.rb +6 -3
  537. data/spec/unit/file_serving/fileset_spec.rb +2 -3
  538. data/spec/unit/file_serving/{terminus_selector_spec.rb → indirection_hooks_spec.rb} +14 -13
  539. data/spec/unit/file_serving/metadata_spec.rb +6 -3
  540. data/spec/unit/file_serving/mount/file_spec.rb +2 -3
  541. data/spec/unit/file_serving/mount/modules_spec.rb +2 -11
  542. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -3
  543. data/spec/unit/file_serving/mount_spec.rb +2 -3
  544. data/spec/unit/file_serving/terminus_helper_spec.rb +2 -2
  545. data/spec/unit/indirector/active_record_spec.rb +5 -7
  546. data/spec/unit/indirector/catalog/active_record_spec.rb +2 -3
  547. data/spec/unit/indirector/catalog/compiler_spec.rb +30 -50
  548. data/spec/unit/indirector/catalog/queue_spec.rb +2 -3
  549. data/spec/unit/indirector/catalog/rest_spec.rb +2 -3
  550. data/spec/unit/indirector/catalog/yaml_spec.rb +2 -3
  551. data/spec/unit/indirector/certificate/ca_spec.rb +2 -2
  552. data/spec/unit/indirector/certificate/file_spec.rb +2 -2
  553. data/spec/unit/indirector/certificate/rest_spec.rb +2 -3
  554. data/spec/unit/indirector/certificate_request/ca_spec.rb +47 -2
  555. data/spec/unit/indirector/certificate_request/file_spec.rb +2 -2
  556. data/spec/unit/indirector/certificate_request/rest_spec.rb +2 -3
  557. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +2 -2
  558. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +2 -2
  559. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
  560. data/spec/unit/indirector/certificate_status/file_spec.rb +187 -0
  561. data/spec/unit/indirector/certificate_status/rest_spec.rb +14 -0
  562. data/spec/unit/indirector/code_spec.rb +6 -8
  563. data/spec/unit/indirector/direct_file_server_spec.rb +6 -7
  564. data/spec/unit/indirector/envelope_spec.rb +2 -3
  565. data/spec/unit/indirector/exec_spec.rb +12 -13
  566. data/spec/unit/indirector/face_spec.rb +68 -0
  567. data/spec/unit/indirector/facts/active_record_spec.rb +2 -3
  568. data/spec/unit/indirector/facts/couch_spec.rb +71 -66
  569. data/spec/unit/indirector/facts/facter_spec.rb +2 -2
  570. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +20 -20
  571. data/spec/unit/indirector/facts/network_device_spec.rb +89 -0
  572. data/spec/unit/indirector/facts/rest_spec.rb +2 -3
  573. data/spec/unit/indirector/facts/yaml_spec.rb +2 -3
  574. data/spec/unit/indirector/file_bucket_file/file_spec.rb +17 -18
  575. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +2 -3
  576. data/spec/unit/indirector/file_content/file_server_spec.rb +2 -2
  577. data/spec/unit/indirector/file_content/file_spec.rb +2 -2
  578. data/spec/unit/indirector/file_content/rest_spec.rb +2 -3
  579. data/spec/unit/indirector/file_metadata/file_server_spec.rb +2 -2
  580. data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
  581. data/spec/unit/indirector/file_metadata/rest_spec.rb +2 -3
  582. data/spec/unit/indirector/file_server_spec.rb +8 -7
  583. data/spec/unit/indirector/file_spec.rb +179 -0
  584. data/spec/unit/indirector/indirection_spec.rb +3 -24
  585. data/spec/unit/indirector/inventory/yaml_spec.rb +220 -0
  586. data/spec/unit/indirector/key/ca_spec.rb +2 -2
  587. data/spec/unit/indirector/key/file_spec.rb +2 -2
  588. data/spec/unit/indirector/ldap_spec.rb +6 -8
  589. data/spec/unit/indirector/memory_spec.rb +5 -7
  590. data/spec/unit/indirector/node/active_record_spec.rb +2 -3
  591. data/spec/unit/indirector/node/exec_spec.rb +3 -4
  592. data/spec/unit/indirector/node/ldap_spec.rb +3 -4
  593. data/spec/unit/indirector/node/memory_spec.rb +2 -3
  594. data/spec/unit/indirector/node/plain_spec.rb +2 -3
  595. data/spec/unit/indirector/node/rest_spec.rb +2 -3
  596. data/spec/unit/indirector/node/yaml_spec.rb +2 -3
  597. data/spec/unit/indirector/plain_spec.rb +5 -7
  598. data/spec/unit/indirector/queue_spec.rb +11 -14
  599. data/spec/unit/indirector/report/processor_spec.rb +7 -9
  600. data/spec/unit/indirector/report/rest_spec.rb +2 -3
  601. data/spec/unit/indirector/report/yaml_spec.rb +3 -4
  602. data/spec/unit/indirector/request_spec.rb +3 -25
  603. data/spec/unit/indirector/resource/ral_spec.rb +3 -4
  604. data/spec/unit/indirector/resource/rest_spec.rb +2 -3
  605. data/spec/unit/indirector/resource_type/parser_spec.rb +87 -13
  606. data/spec/unit/indirector/resource_type/rest_spec.rb +2 -3
  607. data/spec/unit/indirector/rest_spec.rb +45 -16
  608. data/spec/unit/indirector/run/local_spec.rb +2 -3
  609. data/spec/unit/indirector/run/rest_spec.rb +2 -3
  610. data/spec/unit/indirector/ssl_file_spec.rb +9 -27
  611. data/spec/unit/indirector/status/rest_spec.rb +2 -3
  612. data/spec/unit/indirector/terminus_spec.rb +180 -187
  613. data/spec/unit/indirector/yaml_spec.rb +9 -23
  614. data/spec/unit/indirector_spec.rb +61 -79
  615. data/spec/unit/interface/action_builder_spec.rb +214 -0
  616. data/spec/unit/interface/action_manager_spec.rb +282 -0
  617. data/spec/unit/interface/action_spec.rb +545 -0
  618. data/spec/unit/interface/documentation_spec.rb +34 -0
  619. data/spec/unit/interface/face_collection_spec.rb +180 -0
  620. data/spec/unit/interface/option_builder_spec.rb +77 -0
  621. data/spec/unit/interface/option_spec.rb +100 -0
  622. data/spec/unit/interface_spec.rb +228 -0
  623. data/spec/unit/module_spec.rb +34 -10
  624. data/spec/unit/network/authconfig_spec.rb +3 -4
  625. data/spec/unit/network/authstore_spec.rb +3 -4
  626. data/spec/unit/network/client_spec.rb +45 -0
  627. data/spec/unit/network/format_handler_spec.rb +2 -3
  628. data/spec/unit/network/format_spec.rb +2 -3
  629. data/spec/unit/network/formats_spec.rb +107 -3
  630. data/spec/unit/network/handler/fileserver_spec.rb +3 -4
  631. data/spec/unit/network/http/api/v1_spec.rb +61 -27
  632. data/spec/unit/network/http/compression_spec.rb +2 -3
  633. data/spec/unit/network/http/handler_spec.rb +78 -109
  634. data/spec/unit/network/http/mongrel/rest_spec.rb +3 -4
  635. data/spec/unit/network/http/mongrel_spec.rb +6 -6
  636. data/spec/unit/network/http/rack/rest_spec.rb +2 -20
  637. data/spec/unit/network/http/rack/xmlrpc_spec.rb +2 -3
  638. data/spec/unit/network/http/rack_spec.rb +2 -3
  639. data/spec/unit/network/http/webrick/rest_spec.rb +3 -4
  640. data/spec/unit/network/http/webrick_spec.rb +4 -8
  641. data/spec/unit/network/http_pool_spec.rb +82 -95
  642. data/spec/unit/network/http_spec.rb +2 -2
  643. data/spec/unit/network/rest_authconfig_spec.rb +9 -42
  644. data/spec/unit/network/rights_spec.rb +6 -7
  645. data/spec/unit/network/server_spec.rb +2 -2
  646. data/spec/unit/network/xmlrpc/client_spec.rb +172 -0
  647. data/spec/unit/node/environment_spec.rb +63 -7
  648. data/spec/unit/node/facts_spec.rb +9 -13
  649. data/spec/unit/node_spec.rb +5 -13
  650. data/spec/unit/other/selinux_spec.rb +2 -3
  651. data/spec/unit/other/transbucket_spec.rb +2 -3
  652. data/spec/unit/other/transobject_spec.rb +2 -3
  653. data/spec/unit/parameter/path_spec.rb +2 -2
  654. data/spec/unit/parameter/value_collection_spec.rb +2 -3
  655. data/spec/unit/parameter/value_spec.rb +2 -3
  656. data/spec/unit/parameter_spec.rb +2 -3
  657. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +2 -13
  658. data/spec/unit/parser/ast/astarray_spec.rb +18 -36
  659. data/spec/unit/parser/ast/asthash_spec.rb +4 -4
  660. data/spec/unit/parser/ast/boolean_operator_spec.rb +2 -3
  661. data/spec/unit/parser/ast/casestatement_spec.rb +17 -14
  662. data/spec/unit/parser/ast/collection_spec.rb +2 -3
  663. data/spec/unit/parser/ast/collexpr_spec.rb +2 -3
  664. data/spec/unit/parser/ast/comparison_operator_spec.rb +4 -5
  665. data/spec/unit/parser/ast/definition_spec.rb +21 -0
  666. data/spec/unit/parser/ast/function_spec.rb +3 -4
  667. data/spec/unit/parser/ast/hostclass_spec.rb +72 -0
  668. data/spec/unit/parser/ast/ifstatement_spec.rb +2 -3
  669. data/spec/unit/parser/ast/in_operator_spec.rb +2 -3
  670. data/spec/unit/parser/ast/leaf_spec.rb +23 -19
  671. data/spec/unit/parser/ast/match_operator_spec.rb +2 -3
  672. data/spec/unit/parser/ast/minus_spec.rb +2 -3
  673. data/spec/unit/parser/ast/node_spec.rb +30 -0
  674. data/spec/unit/parser/ast/nop_spec.rb +2 -3
  675. data/spec/unit/parser/ast/not_spec.rb +2 -3
  676. data/spec/unit/parser/ast/relationship_spec.rb +2 -3
  677. data/spec/unit/parser/ast/resource_defaults_spec.rb +2 -3
  678. data/spec/unit/parser/ast/resource_override_spec.rb +2 -3
  679. data/spec/unit/parser/ast/resource_reference_spec.rb +21 -8
  680. data/spec/unit/parser/ast/resource_spec.rb +24 -13
  681. data/spec/unit/parser/ast/selector_spec.rb +3 -4
  682. data/spec/unit/parser/ast/vardef_spec.rb +15 -9
  683. data/spec/unit/parser/ast_spec.rb +2 -3
  684. data/spec/unit/parser/collector_spec.rb +2 -3
  685. data/spec/unit/parser/compiler_spec.rb +62 -35
  686. data/spec/unit/parser/files_spec.rb +2 -3
  687. data/spec/unit/parser/functions/create_resources_spec.rb +137 -0
  688. data/spec/unit/parser/functions/defined_spec.rb +5 -3
  689. data/spec/unit/parser/functions/extlookup_spec.rb +10 -10
  690. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -13
  691. data/spec/unit/parser/functions/generate_spec.rb +5 -3
  692. data/spec/unit/parser/functions/include_spec.rb +5 -3
  693. data/spec/unit/parser/functions/inline_template_spec.rb +6 -17
  694. data/spec/unit/parser/functions/realize_spec.rb +5 -3
  695. data/spec/unit/parser/functions/regsubst_spec.rb +5 -3
  696. data/spec/unit/parser/functions/require_spec.rb +5 -3
  697. data/spec/unit/parser/functions/shellquote_spec.rb +8 -6
  698. data/spec/unit/parser/functions/split_spec.rb +5 -3
  699. data/spec/unit/parser/functions/sprintf_spec.rb +5 -3
  700. data/spec/unit/parser/functions/tag_spec.rb +5 -3
  701. data/spec/unit/parser/functions/template_spec.rb +6 -21
  702. data/spec/unit/parser/functions/versioncmp_spec.rb +5 -3
  703. data/spec/unit/parser/functions_spec.rb +2 -3
  704. data/spec/unit/parser/lexer_spec.rb +3 -7
  705. data/spec/unit/parser/parser_spec.rb +71 -90
  706. data/spec/unit/parser/relationship_spec.rb +2 -3
  707. data/spec/unit/parser/resource_spec.rb +6 -65
  708. data/spec/unit/parser/scope_spec.rb +28 -179
  709. data/spec/unit/parser/templatewrapper_spec.rb +25 -43
  710. data/spec/unit/parser/type_loader_spec.rb +120 -78
  711. data/spec/unit/property/ensure_spec.rb +2 -3
  712. data/spec/unit/property/keyvalue_spec.rb +4 -8
  713. data/spec/unit/property/list_spec.rb +2 -3
  714. data/spec/unit/property/ordered_list_spec.rb +2 -3
  715. data/spec/unit/property_spec.rb +2 -3
  716. data/spec/unit/provider/augeas/augeas_spec.rb +80 -3
  717. data/spec/unit/provider/cisco_spec.rb +16 -0
  718. data/spec/unit/provider/confine/exists_spec.rb +2 -3
  719. data/spec/unit/provider/confine/false_spec.rb +2 -3
  720. data/spec/unit/provider/confine/feature_spec.rb +2 -3
  721. data/spec/unit/provider/confine/true_spec.rb +2 -3
  722. data/spec/unit/provider/confine/variable_spec.rb +2 -3
  723. data/spec/unit/provider/confine_collection_spec.rb +2 -3
  724. data/spec/unit/provider/confine_spec.rb +2 -3
  725. data/spec/unit/provider/confiner_spec.rb +2 -3
  726. data/spec/unit/provider/exec/posix_spec.rb +2 -2
  727. data/spec/unit/provider/exec/shell_spec.rb +2 -2
  728. data/spec/unit/provider/group/groupadd_spec.rb +2 -3
  729. data/spec/unit/provider/group/ldap_spec.rb +2 -2
  730. data/spec/unit/provider/host/parsed_spec.rb +197 -0
  731. data/spec/unit/provider/interface/cisco_spec.rb +58 -0
  732. data/spec/unit/provider/ldap_spec.rb +2 -2
  733. data/spec/unit/provider/macauthorization_spec.rb +2 -2
  734. data/spec/unit/provider/mcx/mcxcontent_spec.rb +2 -21
  735. data/spec/unit/provider/mount/parsed_spec.rb +61 -86
  736. data/spec/unit/provider/mount_spec.rb +2 -3
  737. data/spec/unit/provider/naginator_spec.rb +2 -3
  738. data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -63
  739. data/spec/unit/provider/network_device_spec.rb +153 -0
  740. data/spec/unit/provider/package/aix_spec.rb +2 -3
  741. data/spec/unit/provider/package/apt_spec.rb +2 -3
  742. data/spec/unit/provider/package/dpkg_spec.rb +2 -3
  743. data/spec/unit/provider/package/freebsd_spec.rb +2 -3
  744. data/spec/unit/provider/package/gem_spec.rb +2 -3
  745. data/spec/unit/provider/package/hpux_spec.rb +2 -3
  746. data/spec/unit/provider/package/macports_spec.rb +2 -2
  747. data/spec/unit/provider/package/nim_spec.rb +2 -3
  748. data/spec/unit/provider/package/pip_spec.rb +180 -0
  749. data/spec/unit/provider/package/pkg_spec.rb +2 -3
  750. data/spec/unit/provider/package/pkgdmg_spec.rb +49 -56
  751. data/spec/unit/provider/package/pkgutil_spec.rb +182 -0
  752. data/spec/unit/provider/package/yum_spec.rb +66 -0
  753. data/spec/unit/provider/package/zypper_spec.rb +2 -3
  754. data/spec/unit/provider/parsedfile_spec.rb +2 -3
  755. data/spec/unit/provider/selboolean_spec.rb +2 -3
  756. data/spec/unit/provider/selmodule_spec.rb +2 -2
  757. data/spec/unit/provider/service/daemontools_spec.rb +2 -2
  758. data/spec/unit/provider/service/debian_spec.rb +2 -2
  759. data/spec/unit/provider/service/freebsd_spec.rb +2 -3
  760. data/spec/unit/provider/service/init_spec.rb +3 -3
  761. data/spec/unit/provider/service/launchd_spec.rb +2 -2
  762. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  763. data/spec/unit/provider/service/runit_spec.rb +2 -2
  764. data/spec/unit/provider/service/smf_spec.rb +137 -0
  765. data/spec/unit/provider/service/src_spec.rb +7 -7
  766. data/spec/unit/provider/service/upstart.rb +48 -0
  767. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +28 -47
  768. data/spec/unit/provider/sshkey/parsed_spec.rb +2 -3
  769. data/spec/unit/provider/user/hpux_spec.rb +2 -3
  770. data/spec/unit/provider/user/ldap_spec.rb +2 -2
  771. data/spec/unit/provider/user/user_role_add_spec.rb +15 -53
  772. data/spec/unit/provider/user/useradd_spec.rb +2 -3
  773. data/spec/unit/provider/vlan/cisco_spec.rb +56 -0
  774. data/spec/unit/provider/zfs/solaris_spec.rb +4 -4
  775. data/spec/unit/provider/zone/solaris_spec.rb +2 -3
  776. data/spec/unit/provider/zpool/solaris_spec.rb +33 -4
  777. data/spec/unit/provider_spec.rb +2 -3
  778. data/spec/unit/puppet/provider/README.markdown +4 -0
  779. data/spec/unit/puppet/type/README.markdown +4 -0
  780. data/spec/unit/puppet_spec.rb +2 -2
  781. data/spec/unit/rails/host_spec.rb +2 -11
  782. data/spec/unit/rails/param_value_spec.rb +2 -3
  783. data/spec/unit/rails/resource_spec.rb +2 -3
  784. data/spec/unit/rails_spec.rb +2 -3
  785. data/spec/unit/relationship_spec.rb +2 -2
  786. data/spec/unit/reports/http_spec.rb +2 -3
  787. data/spec/unit/reports/rrdgraph_spec.rb +2 -3
  788. data/spec/unit/reports/store_spec.rb +2 -17
  789. data/spec/unit/reports/tagmail_spec.rb +4 -8
  790. data/spec/unit/reports_spec.rb +2 -3
  791. data/spec/unit/resource/catalog_spec.rb +15 -74
  792. data/spec/unit/resource/status_spec.rb +3 -4
  793. data/spec/unit/resource/type_collection_helper_spec.rb +2 -3
  794. data/spec/unit/resource/type_collection_spec.rb +69 -81
  795. data/spec/unit/resource/type_spec.rb +26 -44
  796. data/spec/unit/resource_spec.rb +3 -4
  797. data/spec/unit/run_spec.rb +2 -3
  798. data/spec/unit/simple_graph_spec.rb +434 -80
  799. data/spec/unit/ssl/base_spec.rb +3 -4
  800. data/spec/unit/ssl/certificate_authority/interface_spec.rb +56 -96
  801. data/spec/unit/ssl/certificate_authority_spec.rb +71 -246
  802. data/spec/unit/ssl/certificate_factory_spec.rb +72 -93
  803. data/spec/unit/ssl/certificate_request_spec.rb +11 -76
  804. data/spec/unit/ssl/certificate_revocation_list_spec.rb +4 -5
  805. data/spec/unit/ssl/certificate_spec.rb +2 -34
  806. data/spec/unit/ssl/host_spec.rb +202 -207
  807. data/spec/unit/ssl/inventory_spec.rb +4 -5
  808. data/spec/unit/ssl/key_spec.rb +2 -3
  809. data/spec/unit/sslcertificates/ca_spec.rb +110 -0
  810. data/spec/unit/status_spec.rb +8 -5
  811. data/spec/unit/transaction/event_manager_spec.rb +2 -3
  812. data/spec/unit/transaction/event_spec.rb +7 -8
  813. data/spec/unit/transaction/report_spec.rb +25 -14
  814. data/spec/unit/transaction/resource_harness_spec.rb +2 -4
  815. data/spec/unit/transaction_spec.rb +31 -28
  816. data/spec/unit/transportable_spec.rb +0 -0
  817. data/spec/unit/type/augeas_spec.rb +3 -4
  818. data/spec/unit/type/component_spec.rb +2 -3
  819. data/spec/unit/type/computer_spec.rb +2 -3
  820. data/spec/unit/type/cron_spec.rb +12 -3
  821. data/spec/unit/type/exec_spec.rb +2 -32
  822. data/spec/unit/type/file/checksum_spec.rb +2 -3
  823. data/spec/unit/type/file/content_spec.rb +2 -3
  824. data/spec/unit/type/file/ctime.rb +2 -3
  825. data/spec/unit/type/file/ensure_spec.rb +2 -3
  826. data/spec/unit/type/file/group_spec.rb +2 -3
  827. data/spec/unit/type/file/mtime.rb +2 -3
  828. data/spec/unit/type/file/owner_spec.rb +2 -3
  829. data/spec/unit/type/file/selinux_spec.rb +2 -3
  830. data/spec/unit/type/file/source_spec.rb +9 -10
  831. data/spec/unit/type/file/type.rb +2 -3
  832. data/spec/unit/type/file_spec.rb +15 -30
  833. data/spec/unit/type/filebucket_spec.rb +2 -3
  834. data/spec/unit/type/group_spec.rb +4 -5
  835. data/spec/unit/type/host_spec.rb +129 -0
  836. data/spec/unit/type/interface_spec.rb +98 -0
  837. data/spec/unit/type/macauthorization_spec.rb +2 -3
  838. data/spec/unit/type/maillist_spec.rb +2 -3
  839. data/spec/unit/type/mcx_spec.rb +2 -23
  840. data/spec/unit/type/mount_spec.rb +41 -18
  841. data/spec/unit/type/nagios_spec.rb +2 -3
  842. data/spec/unit/type/noop_metaparam_spec.rb +2 -3
  843. data/spec/unit/type/package_spec.rb +2 -3
  844. data/spec/unit/type/resources_spec.rb +3 -4
  845. data/spec/unit/type/schedule_spec.rb +19 -12
  846. data/spec/unit/type/selboolean_spec.rb +2 -3
  847. data/spec/unit/type/selmodule_spec.rb +2 -3
  848. data/spec/unit/type/service_spec.rb +6 -3
  849. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -3
  850. data/spec/unit/type/sshkey_spec.rb +70 -0
  851. data/spec/unit/type/stage_spec.rb +2 -3
  852. data/spec/unit/type/tidy_spec.rb +4 -4
  853. data/spec/unit/type/user_spec.rb +2 -11
  854. data/spec/unit/type/vlan_spec.rb +45 -0
  855. data/spec/unit/type/whit_spec.rb +4 -5
  856. data/spec/unit/type/zfs_spec.rb +2 -3
  857. data/spec/unit/type/zone_spec.rb +22 -3
  858. data/spec/unit/type/zpool_spec.rb +2 -3
  859. data/spec/unit/type_spec.rb +2 -69
  860. data/spec/unit/util/autoload/file_cache_spec.rb +2 -3
  861. data/spec/unit/util/autoload_spec.rb +6 -7
  862. data/spec/unit/util/backups_spec.rb +2 -3
  863. data/spec/unit/util/cache_accumulator_spec.rb +2 -3
  864. data/spec/unit/util/cacher_spec.rb +3 -4
  865. data/spec/unit/util/checksums_spec.rb +2 -2
  866. data/spec/unit/util/command_line_spec.rb +11 -8
  867. data/spec/unit/util/constant_inflector_spec.rb +2 -2
  868. data/spec/unit/util/errors_spec.rb +2 -3
  869. data/spec/unit/util/execution_spec.rb +2 -3
  870. data/spec/unit/util/execution_stub_spec.rb +2 -3
  871. data/spec/unit/util/feature_spec.rb +2 -3
  872. data/spec/unit/util/file_locking_spec.rb +4 -5
  873. data/spec/unit/util/filetype_spec.rb +2 -3
  874. data/spec/unit/util/inline_docs_spec.rb +2 -3
  875. data/spec/unit/util/ldap/connection_spec.rb +2 -2
  876. data/spec/unit/util/ldap/generator_spec.rb +2 -2
  877. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  878. data/spec/unit/util/loadedfile_spec.rb +2 -3
  879. data/spec/unit/util/log/destinations_spec.rb +2 -3
  880. data/spec/unit/util/log_spec.rb +6 -7
  881. data/spec/unit/util/logging_spec.rb +27 -3
  882. data/spec/unit/util/metric_spec.rb +2 -3
  883. data/spec/unit/util/monkey_patches_spec.rb +48 -10
  884. data/spec/unit/util/nagios_maker_spec.rb +2 -2
  885. data/spec/unit/util/network_device/cisco/device_spec.rb +408 -0
  886. data/spec/unit/util/network_device/cisco/facts_spec.rb +63 -0
  887. data/spec/unit/util/network_device/cisco/interface_spec.rb +89 -0
  888. data/spec/unit/util/network_device/config_spec.rb +102 -0
  889. data/spec/unit/util/network_device/ipcalc_spec.rb +63 -0
  890. data/spec/unit/util/network_device/transport/base_spec.rb +42 -0
  891. data/spec/unit/util/network_device/transport/ssh_spec.rb +219 -0
  892. data/spec/unit/util/network_device/transport/telnet_spec.rb +76 -0
  893. data/spec/unit/util/network_device_spec.rb +50 -0
  894. data/spec/unit/util/package_spec.rb +2 -3
  895. data/spec/unit/util/posix_spec.rb +2 -3
  896. data/spec/unit/util/pson_spec.rb +3 -4
  897. data/spec/unit/util/queue/stomp_spec.rb +4 -5
  898. data/spec/unit/util/queue_spec.rb +2 -3
  899. data/spec/unit/util/rdoc/parser_spec.rb +17 -12
  900. data/spec/unit/util/rdoc_spec.rb +19 -58
  901. data/spec/unit/util/reference_serializer_spec.rb +2 -3
  902. data/spec/unit/util/resource_template_spec.rb +2 -3
  903. data/spec/unit/util/run_mode_spec.rb +2 -3
  904. data/spec/unit/util/selinux_spec.rb +4 -5
  905. data/spec/unit/util/settings/file_setting_spec.rb +2 -7
  906. data/spec/unit/util/settings_spec.rb +2 -24
  907. data/spec/unit/util/storage_spec.rb +2 -3
  908. data/spec/unit/util/tagging_spec.rb +2 -2
  909. data/spec/unit/util/user_attr_spec.rb +2 -3
  910. data/spec/unit/util/warnings_spec.rb +2 -3
  911. data/spec/unit/util/zaml_spec.rb +23 -53
  912. data/spec/watchr.rb +146 -0
  913. data/tasks/rake/gem.rake +5 -4
  914. data/tasks/rake/git_workflow.rake +62 -51
  915. data/tasks/rake/manpages.rake +69 -0
  916. data/test/certmgr/certmgr.rb +308 -0
  917. data/test/certmgr/inventory.rb +69 -0
  918. data/test/certmgr/support.rb +105 -0
  919. data/test/data/providers/host/parsed/valid_hosts +19 -0
  920. data/test/language/ast.rb +1 -1
  921. data/test/language/ast/variable.rb +1 -1
  922. data/test/language/functions.rb +8 -9
  923. data/test/language/parser.rb +44 -52
  924. data/test/language/scope.rb +13 -24
  925. data/test/language/snippets.rb +11 -2
  926. data/test/language/transportable.rb +1 -1
  927. data/test/lib/puppettest.rb +2 -2
  928. data/test/lib/puppettest/exetest.rb +1 -1
  929. data/test/lib/puppettest/parsertesting.rb +5 -8
  930. data/test/lib/puppettest/servertest.rb +1 -0
  931. data/test/lib/puppettest/support/assertions.rb +6 -1
  932. data/test/lib/puppettest/support/utils.rb +0 -19
  933. data/test/network/authconfig.rb +1 -1
  934. data/test/network/authorization.rb +1 -1
  935. data/test/network/authstore.rb +1 -1
  936. data/test/network/client/ca.rb +69 -0
  937. data/test/network/client/dipper.rb +34 -0
  938. data/test/network/client_request.rb +1 -1
  939. data/test/network/handler/ca.rb +273 -0
  940. data/test/network/handler/fileserver.rb +1 -1
  941. data/test/network/handler/master.rb +13 -9
  942. data/test/network/handler/report.rb +1 -1
  943. data/test/network/handler/runner.rb +1 -1
  944. data/test/network/rights.rb +1 -1
  945. data/test/network/server/mongrel_test.rb +99 -0
  946. data/test/network/server/webrick.rb +128 -0
  947. data/test/network/xmlrpc/client.rb +45 -0
  948. data/test/network/xmlrpc/processor.rb +1 -1
  949. data/test/network/xmlrpc/server.rb +1 -1
  950. data/test/network/xmlrpc/webrick_servlet.rb +1 -1
  951. data/test/other/provider.rb +1 -1
  952. data/test/other/puppet.rb +1 -1
  953. data/test/other/relationships.rb +11 -18
  954. data/test/other/report.rb +1 -1
  955. data/test/other/transactions.rb +2 -35
  956. data/test/puppet/defaults.rb +1 -1
  957. data/test/puppet/errortest.rb +1 -1
  958. data/test/puppet/tc_suidmanager.rb +120 -0
  959. data/test/rails/rails.rb +2 -1
  960. data/test/rails/railsparameter.rb +2 -2
  961. data/test/ral/manager/attributes.rb +1 -1
  962. data/test/ral/manager/instances.rb +1 -1
  963. data/test/ral/manager/manager.rb +1 -1
  964. data/test/ral/manager/provider.rb +1 -1
  965. data/test/ral/manager/type.rb +1 -1
  966. data/test/ral/providers/cron/crontab.rb +1 -1
  967. data/test/ral/providers/group.rb +1 -1
  968. data/test/ral/providers/host/parsed.rb +1 -203
  969. data/test/ral/providers/mailalias/aliases.rb +1 -1
  970. data/test/ral/providers/nameservice.rb +1 -1
  971. data/test/ral/providers/package.rb +1 -1
  972. data/test/ral/providers/package/aptitude.rb +1 -1
  973. data/test/ral/providers/package/aptrpm.rb +1 -1
  974. data/test/ral/providers/parsedfile.rb +1 -1
  975. data/test/ral/providers/port/parsed.rb +1 -1
  976. data/test/ral/providers/provider.rb +1 -1
  977. data/test/ral/providers/service/base.rb +1 -1
  978. data/test/ral/providers/sshkey/parsed.rb +1 -1
  979. data/test/ral/providers/user.rb +1 -1
  980. data/test/ral/providers/user/useradd.rb +1 -1
  981. data/test/ral/type/cron.rb +1 -1
  982. data/test/ral/type/exec.rb +1 -42
  983. data/test/ral/type/file.rb +1 -1
  984. data/test/ral/type/file/target.rb +6 -19
  985. data/test/ral/type/fileignoresource.rb +1 -1
  986. data/test/ral/type/filesources.rb +61 -1
  987. data/test/ral/type/host.rb +1 -1
  988. data/test/ral/type/mailalias.rb +1 -1
  989. data/test/ral/type/port.rb +1 -1
  990. data/test/ral/type/resources.rb +1 -1
  991. data/test/ral/type/service.rb +1 -1
  992. data/test/ral/type/sshkey.rb +1 -1
  993. data/test/ral/type/user.rb +1 -1
  994. data/test/ral/type/yumrepo.rb +1 -1
  995. data/test/ral/type/zone.rb +1 -1
  996. data/test/test +2 -2
  997. data/test/util/classgen.rb +1 -1
  998. data/test/util/execution.rb +1 -1
  999. data/test/util/fileparsing.rb +1 -1
  1000. data/test/util/inifile.rb +1 -1
  1001. data/test/util/instance_loader.rb +1 -1
  1002. data/test/util/log.rb +1 -1
  1003. data/test/util/metrics.rb +1 -1
  1004. data/test/util/package.rb +1 -1
  1005. data/test/util/pidlock.rb +1 -1
  1006. data/test/util/settings.rb +1 -1
  1007. data/test/util/storage.rb +1 -1
  1008. data/test/util/subclass_loader.rb +1 -1
  1009. data/test/util/utiltest.rb +1 -1
  1010. metadata +312 -48
  1011. data/CHANGELOG.old +0 -1705
  1012. data/CONTRIBUTING.md +0 -299
  1013. data/COPYING +0 -340
  1014. data/README.queueing +0 -126
  1015. data/ext/upload_facts.rb +0 -120
  1016. data/ext/vim/ftplugin/puppet.vim +0 -94
  1017. data/ext/vim/indent/puppet.vim +0 -76
  1018. data/lib/puppet/indirector/errors.rb +0 -5
  1019. data/lib/puppet/indirector/facts/inventory_service.rb +0 -20
  1020. data/lib/puppet/indirector/file_bucket_file/selector.rb +0 -53
  1021. data/lib/puppet/indirector/file_content/selector.rb +0 -30
  1022. data/lib/puppet/indirector/file_metadata/selector.rb +0 -30
  1023. data/lib/puppet/indirector/resource/validator.rb +0 -8
  1024. data/lib/puppet/util/command_line/filebucket +0 -97
  1025. data/lib/puppet/util/command_line/pi +0 -48
  1026. data/lib/puppet/util/command_line/puppet +0 -73
  1027. data/lib/puppet/util/command_line/puppetca +0 -131
  1028. data/lib/puppet/util/command_line/puppetd +0 -188
  1029. data/lib/puppet/util/command_line/puppetdoc +0 -67
  1030. data/lib/puppet/util/command_line/puppetmasterd +0 -70
  1031. data/lib/puppet/util/command_line/puppetqd +0 -53
  1032. data/lib/puppet/util/command_line/puppetrun +0 -125
  1033. data/lib/puppet/util/command_line/ralsh +0 -89
  1034. data/spec/integration/file_bucket/file_spec.rb +0 -44
  1035. data/spec/integration/indirector/bucket_file/rest_spec.rb +0 -77
  1036. data/spec/integration/indirector/certificate/rest_spec.rb +0 -69
  1037. data/spec/integration/indirector/certificate_request/rest_spec.rb +0 -89
  1038. data/spec/integration/indirector/certificate_revocation_list/rest_spec.rb +0 -85
  1039. data/spec/integration/indirector/report/rest_spec.rb +0 -93
  1040. data/spec/shared_behaviours/file_serving_model.rb +0 -73
  1041. data/spec/unit/indirector/facts/inventory_service_spec.rb +0 -22
  1042. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +0 -29
  1043. data/spec/unit/indirector/file_content/selector_spec.rb +0 -10
  1044. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -11
  1045. data/spec/unit/network/handler/ca_spec.rb +0 -87
  1046. data/spec/unit/network/rest_authorization_spec.rb +0 -43
  1047. data/spec/unit/provider/package/appdmg_spec.rb +0 -42
  1048. data/spec/unit/type/k5login_spec.rb +0 -115
  1049. data/spec/unit/util/suidmanager_spec.rb +0 -220
  1050. data/spec/unit/util_spec.rb +0 -104
@@ -1,6 +1,5 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ #!/usr/bin/env rspec
2
+ require 'spec_helper'
4
3
 
5
4
  require 'puppet/configurer/downloader'
6
5
 
@@ -1,6 +1,5 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ #!/usr/bin/env rspec
2
+ require 'spec_helper'
4
3
  require 'puppet/configurer'
5
4
  require 'puppet/configurer/fact_handler'
6
5
 
@@ -13,6 +12,14 @@ describe Puppet::Configurer::FactHandler do
13
12
  @facthandler = FactHandlerTester.new
14
13
  end
15
14
 
15
+ it "should have a method for downloading fact plugins" do
16
+ @facthandler.should respond_to(:download_fact_plugins)
17
+ end
18
+
19
+ it "should have a boolean method for determining whether fact plugins should be downloaded" do
20
+ @facthandler.should respond_to(:download_fact_plugins?)
21
+ end
22
+
16
23
  it "should download fact plugins when :factsync is true" do
17
24
  Puppet.settings.expects(:value).with(:factsync).returns true
18
25
  @facthandler.should be_download_fact_plugins
@@ -44,60 +51,46 @@ describe Puppet::Configurer::FactHandler do
44
51
  @facthandler.download_fact_plugins
45
52
  end
46
53
 
47
- describe "when finding facts" do
48
- before :each do
49
- @facthandler.stubs(:reload_facter)
50
- Puppet::Node::Facts.terminus_class = :memory
51
- end
52
-
53
- it "should use the node name value to retrieve the facts" do
54
- foo_facts = Puppet::Node::Facts.new('foo')
55
- bar_facts = Puppet::Node::Facts.new('bar')
56
- foo_facts.save
57
- bar_facts.save
58
- Puppet[:certname] = 'foo'
59
- Puppet[:node_name_value] = 'bar'
60
-
61
- @facthandler.find_facts.should == bar_facts
62
- end
54
+ it "should warn about factsync deprecation when factsync is enabled" do
55
+ Puppet::Configurer::Downloader.stubs(:new).returns mock("downloader", :evaluate => nil)
63
56
 
64
- it "should set the facts name based on the node_name_fact" do
65
- Puppet::Node::Facts.new(Puppet[:node_name_value], 'my_name_fact' => 'other_node_name').save
66
- Puppet[:node_name_fact] = 'my_name_fact'
57
+ @facthandler.expects(:download_fact_plugins?).returns true
58
+ Puppet.expects(:warning)
59
+ @facthandler.download_fact_plugins
60
+ end
67
61
 
68
- @facthandler.find_facts.name.should == 'other_node_name'
69
- end
62
+ it "should have a method for retrieving facts" do
63
+ @facthandler.should respond_to(:find_facts)
64
+ end
70
65
 
71
- it "should set the node_name_value based on the node_name_fact" do
72
- Puppet::Node::Facts.new(Puppet[:node_name_value], 'my_name_fact' => 'other_node_name').save
73
- Puppet[:node_name_fact] = 'my_name_fact'
66
+ it "should use the Facts class with the :certname to find the facts" do
67
+ Puppet.settings.expects(:value).with(:certname).returns "foo"
68
+ Puppet::Node::Facts.indirection.expects(:find).with("foo").returns "myfacts"
69
+ @facthandler.stubs(:reload_facter)
70
+ @facthandler.find_facts.should == "myfacts"
71
+ end
74
72
 
75
- @facthandler.find_facts
73
+ it "should reload Facter and find local facts when asked to find facts" do
74
+ @facthandler.expects(:reload_facter)
76
75
 
77
- Puppet[:node_name_value].should == 'other_node_name'
78
- end
76
+ Puppet.settings.expects(:value).with(:certname).returns "myhost"
77
+ Puppet::Node::Facts.indirection.expects(:find).with("myhost")
79
78
 
80
- it "should reload Facter before finding facts" do
81
- @facthandler.expects(:reload_facter)
79
+ @facthandler.find_facts
80
+ end
82
81
 
83
- @facthandler.find_facts
84
- end
82
+ it "should fail if finding facts fails" do
83
+ @facthandler.stubs(:reload_facter)
85
84
 
86
- it "should fail if finding facts fails" do
87
- Puppet[:trace] = false
88
- Puppet[:certname] = "myhost"
89
- Puppet::Node::Facts.expects(:find).raises RuntimeError
85
+ Puppet.settings.stubs(:value).with(:trace).returns false
86
+ Puppet.settings.stubs(:value).with(:certname).returns "myhost"
87
+ Puppet::Node::Facts.indirection.expects(:find).raises RuntimeError
90
88
 
91
- lambda { @facthandler.find_facts }.should raise_error(Puppet::Error)
92
- end
89
+ lambda { @facthandler.find_facts }.should raise_error(Puppet::Error)
93
90
  end
94
91
 
95
- it "should warn about factsync deprecation when factsync is enabled" do
96
- Puppet::Configurer::Downloader.stubs(:new).returns mock("downloader", :evaluate => nil)
97
-
98
- @facthandler.expects(:download_fact_plugins?).returns true
99
- Puppet.expects(:warning)
100
- @facthandler.download_fact_plugins
92
+ it "should have a method to prepare the facts for uploading" do
93
+ @facthandler.should respond_to(:facts_for_uploading)
101
94
  end
102
95
 
103
96
  # I couldn't get marshal to work for this, only yaml, so we hard-code yaml.
@@ -1,6 +1,5 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ #!/usr/bin/env rspec
2
+ require 'spec_helper'
4
3
  require 'puppet/configurer'
5
4
  require 'puppet/configurer/plugin_handler'
6
5
 
@@ -1,16 +1,15 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/bin/env rspec
2
2
  #
3
3
  # Created by Luke Kanies on 2007-11-12.
4
4
  # Copyright (c) 2007. All rights reserved.
5
5
 
6
- require File.dirname(__FILE__) + '/../spec_helper'
6
+ require 'spec_helper'
7
7
  require 'puppet/configurer'
8
8
 
9
9
  describe Puppet::Configurer do
10
10
  before do
11
11
  Puppet.settings.stubs(:use).returns(true)
12
12
  @agent = Puppet::Configurer.new
13
- Puppet::Util::Storage.stubs(:store)
14
13
  end
15
14
 
16
15
  it "should include the Plugin Handler module" do
@@ -36,16 +35,16 @@ describe Puppet::Configurer do
36
35
 
37
36
  it "should execute any pre-run command provided via the 'prerun_command' setting" do
38
37
  Puppet.settings[:prerun_command] = "/my/command"
39
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
38
+ Puppet::Util.expects(:execute).with { |args| args[0] == "/my/command" }
40
39
 
41
40
  @agent.execute_prerun_command
42
41
  end
43
42
 
44
43
  it "should fail if the command fails" do
45
44
  Puppet.settings[:prerun_command] = "/my/command"
46
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
45
+ Puppet::Util.expects(:execute).raises Puppet::ExecutionFailure
47
46
 
48
- @agent.execute_prerun_command.should be_false
47
+ lambda { @agent.execute_prerun_command }.should raise_error(Puppet::Configurer::CommandHookError)
49
48
  end
50
49
  end
51
50
 
@@ -59,550 +58,469 @@ describe Puppet::Configurer do
59
58
 
60
59
  it "should execute any post-run command provided via the 'postrun_command' setting" do
61
60
  Puppet.settings[:postrun_command] = "/my/command"
62
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
61
+ Puppet::Util.expects(:execute).with { |args| args[0] == "/my/command" }
63
62
 
64
63
  @agent.execute_postrun_command
65
64
  end
66
65
 
67
66
  it "should fail if the command fails" do
68
67
  Puppet.settings[:postrun_command] = "/my/command"
69
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
68
+ Puppet::Util.expects(:execute).raises Puppet::ExecutionFailure
70
69
 
71
- @agent.execute_postrun_command.should be_false
70
+ lambda { @agent.execute_postrun_command }.should raise_error(Puppet::Configurer::CommandHookError)
72
71
  end
73
72
  end
73
+ end
74
74
 
75
- describe "when executing a catalog run" do
76
- before do
77
- Puppet.settings.stubs(:use).returns(true)
78
- @agent.stubs(:prepare)
79
- Puppet::Node::Facts.terminus_class = :memory
80
- @facts = Puppet::Node::Facts.new(Puppet[:node_name_value])
81
- @facts.save
82
-
83
- @catalog = Puppet::Resource::Catalog.new
84
- @catalog.stubs(:to_ral).returns(@catalog)
85
- Puppet::Resource::Catalog.terminus_class = :rest
86
- Puppet::Resource::Catalog.stubs(:find).returns(@catalog)
87
- @agent.stubs(:send_report)
88
- @agent.stubs(:save_last_run_summary)
89
-
90
- Puppet::Util::Log.stubs(:close)
91
- end
92
-
93
- after :all do
94
- Puppet::Node::Facts.indirection.reset_terminus_class
95
- Puppet::Resource::Catalog.indirection.reset_terminus_class
96
- end
97
-
98
- it "should prepare for the run" do
99
- @agent.expects(:prepare)
100
-
101
- @agent.run
102
- end
103
-
104
- it "should initialize a transaction report if one is not provided" do
105
- report = Puppet::Transaction::Report.new("apply")
106
- Puppet::Transaction::Report.expects(:new).returns report
107
-
108
- @agent.run
109
- end
110
-
111
- it "should respect node_name_fact when setting the host on a report" do
112
- Puppet[:node_name_fact] = 'my_name_fact'
113
- @facts.values = {'my_name_fact' => 'node_name_from_fact'}
114
-
115
- @agent.run.host.should == 'node_name_from_fact'
116
- end
117
-
118
- it "should pass the new report to the catalog" do
119
- report = Puppet::Transaction::Report.new("apply")
120
- Puppet::Transaction::Report.stubs(:new).returns report
121
- @catalog.expects(:apply).with{|options| options[:report] == report}
122
-
123
- @agent.run
124
- end
125
-
126
- it "should use the provided report if it was passed one" do
127
- report = Puppet::Transaction::Report.new("apply")
128
- Puppet::Transaction::Report.expects(:new).never
129
- @catalog.expects(:apply).with{|options| options[:report] == report}
130
-
131
- @agent.run(:report => report)
132
- end
133
-
134
- it "should set the report as a log destination" do
135
- report = Puppet::Transaction::Report.new("apply")
136
- Puppet::Transaction::Report.expects(:new).returns report
75
+ describe Puppet::Configurer, "when executing a catalog run" do
76
+ before do
77
+ Puppet.settings.stubs(:use).returns(true)
78
+ @agent = Puppet::Configurer.new
79
+ @agent.stubs(:prepare)
80
+ @agent.stubs(:facts_for_uploading).returns({})
81
+ @catalog = Puppet::Resource::Catalog.new
82
+ @catalog.stubs(:apply)
83
+ @agent.stubs(:retrieve_catalog).returns @catalog
84
+ @agent.stubs(:save_last_run_summary)
85
+ Puppet::Transaction::Report.indirection.stubs(:save)
86
+ end
137
87
 
138
- Puppet::Util::Log.expects(:newdestination).with(report)
139
- Puppet::Util::Log.expects(:close).with(report)
140
- Puppet::Util::Log.expects(:close).with([])
88
+ it "should prepare for the run" do
89
+ @agent.expects(:prepare)
141
90
 
142
- @agent.run
143
- end
91
+ @agent.run
92
+ end
144
93
 
145
- it "should retrieve the catalog" do
146
- @agent.expects(:retrieve_catalog)
94
+ it "should initialize a transaction report if one is not provided" do
95
+ report = Puppet::Transaction::Report.new("apply")
96
+ Puppet::Transaction::Report.expects(:new).at_least_once.returns report
147
97
 
148
- @agent.run
149
- end
98
+ @agent.run
99
+ end
150
100
 
151
- it "should log a failure and do nothing if no catalog can be retrieved" do
152
- @agent.expects(:retrieve_catalog).returns nil
101
+ it "should pass the new report to the catalog" do
102
+ report = Puppet::Transaction::Report.new("apply")
103
+ Puppet::Transaction::Report.stubs(:new).returns report
104
+ @catalog.expects(:apply).with{|options| options[:report] == report}
153
105
 
154
- Puppet.expects(:err).with "Could not retrieve catalog; skipping run"
106
+ @agent.run
107
+ end
155
108
 
156
- @agent.run
157
- end
109
+ it "should use the provided report if it was passed one" do
110
+ report = Puppet::Transaction::Report.new("apply")
111
+ Puppet::Transaction::Report.expects(:new).never
112
+ @catalog.expects(:apply).with{|options| options[:report] == report}
158
113
 
159
- it "should apply the catalog with all options to :run" do
160
- @agent.expects(:retrieve_catalog).returns @catalog
114
+ @agent.run(:report => report)
115
+ end
161
116
 
162
- @catalog.expects(:apply).with { |args| args[:one] == true }
163
- @agent.run :one => true
164
- end
117
+ it "should set the report as a log destination" do
118
+ report = Puppet::Transaction::Report.new("apply")
119
+ Puppet::Transaction::Report.expects(:new).returns report
165
120
 
166
- it "should accept a catalog and use it instead of retrieving a different one" do
167
- @agent.expects(:retrieve_catalog).never
121
+ @agent.stubs(:send_report)
122
+ Puppet::Util::Log.expects(:newdestination).with(report)
168
123
 
169
- @catalog.expects(:apply)
170
- @agent.run :one => true, :catalog => @catalog
171
- end
124
+ @agent.run
125
+ end
172
126
 
173
- it "should benchmark how long it takes to apply the catalog" do
174
- @agent.expects(:benchmark).with(:notice, "Finished catalog run")
127
+ it "should retrieve the catalog" do
128
+ @agent.expects(:retrieve_catalog)
175
129
 
176
- @agent.expects(:retrieve_catalog).returns @catalog
130
+ @agent.run
131
+ end
177
132
 
178
- @catalog.expects(:apply).never # because we're not yielding
179
- @agent.run
180
- end
133
+ it "should log a failure and do nothing if no catalog can be retrieved" do
134
+ @agent.expects(:retrieve_catalog).returns nil
181
135
 
182
- it "should execute post-run hooks after the run" do
183
- @agent.expects(:execute_postrun_command)
136
+ Puppet.expects(:err).with "Could not retrieve catalog; skipping run"
184
137
 
185
- @agent.run
186
- end
138
+ @agent.run
139
+ end
187
140
 
188
- it "should send the report" do
189
- report = Puppet::Transaction::Report.new("apply")
190
- Puppet::Transaction::Report.expects(:new).returns(report)
191
- @agent.expects(:send_report).with(report)
141
+ it "should apply the catalog with all options to :run" do
142
+ @agent.expects(:retrieve_catalog).returns @catalog
192
143
 
193
- @agent.run
194
- end
144
+ @catalog.expects(:apply).with { |args| args[:one] == true }
145
+ @agent.run :one => true
146
+ end
195
147
 
196
- it "should send the transaction report even if the catalog could not be retrieved" do
197
- @agent.expects(:retrieve_catalog).returns nil
148
+ it "should accept a catalog and use it instead of retrieving a different one" do
149
+ @agent.expects(:retrieve_catalog).never
198
150
 
199
- report = Puppet::Transaction::Report.new("apply")
200
- Puppet::Transaction::Report.expects(:new).returns(report)
201
- @agent.expects(:send_report)
151
+ @catalog.expects(:apply)
152
+ @agent.run :one => true, :catalog => @catalog
153
+ end
202
154
 
203
- @agent.run
204
- end
155
+ it "should benchmark how long it takes to apply the catalog" do
156
+ @agent.expects(:benchmark).with(:notice, "Finished catalog run")
205
157
 
206
- it "should send the transaction report even if there is a failure" do
207
- @agent.expects(:retrieve_catalog).raises "whatever"
158
+ @agent.expects(:retrieve_catalog).returns @catalog
208
159
 
209
- report = Puppet::Transaction::Report.new("apply")
210
- Puppet::Transaction::Report.expects(:new).returns(report)
211
- @agent.expects(:send_report)
160
+ @catalog.expects(:apply).never # because we're not yielding
161
+ @agent.run
162
+ end
212
163
 
213
- @agent.run.should be_nil
214
- end
164
+ it "should execute post-run hooks after the run" do
165
+ @agent.expects(:execute_postrun_command)
215
166
 
216
- it "should remove the report as a log destination when the run is finished" do
217
- report = Puppet::Transaction::Report.new("apply")
218
- Puppet::Transaction::Report.expects(:new).returns(report)
167
+ @agent.run
168
+ end
219
169
 
220
- Puppet::Util::Log.expects(:close).with(report)
170
+ it "should send the report" do
171
+ report = Puppet::Transaction::Report.new("apply")
172
+ Puppet::Transaction::Report.expects(:new).returns(report)
173
+ @agent.expects(:send_report).with { |r, trans| r == report }
221
174
 
222
- @agent.run
223
- end
175
+ @agent.run
176
+ end
224
177
 
225
- it "should return the report as the result of the run" do
226
- report = Puppet::Transaction::Report.new("apply")
227
- Puppet::Transaction::Report.expects(:new).returns(report)
178
+ it "should send the transaction report with a reference to the transaction if a run was actually made" do
179
+ report = Puppet::Transaction::Report.new("apply")
180
+ Puppet::Transaction::Report.expects(:new).returns(report)
228
181
 
229
- @agent.run.should equal(report)
230
- end
182
+ trans = stub 'transaction'
183
+ @catalog.expects(:apply).returns trans
231
184
 
232
- it "should send the transaction report even if the pre-run command fails" do
233
- report = Puppet::Transaction::Report.new("apply")
234
- Puppet::Transaction::Report.expects(:new).returns(report)
185
+ @agent.expects(:send_report).with { |r, t| t == trans }
235
186
 
236
- Puppet.settings[:prerun_command] = "/my/command"
237
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
238
- @agent.expects(:send_report)
187
+ @agent.run :catalog => @catalog
188
+ end
239
189
 
240
- @agent.run.should be_nil
241
- end
190
+ it "should send the transaction report even if the catalog could not be retrieved" do
191
+ @agent.expects(:retrieve_catalog).returns nil
242
192
 
243
- it "should include the pre-run command failure in the report" do
244
- report = Puppet::Transaction::Report.new("apply")
245
- Puppet::Transaction::Report.expects(:new).returns(report)
193
+ report = Puppet::Transaction::Report.new("apply")
194
+ Puppet::Transaction::Report.expects(:new).returns(report)
195
+ @agent.expects(:send_report)
246
196
 
247
- Puppet.settings[:prerun_command] = "/my/command"
248
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
197
+ @agent.run
198
+ end
249
199
 
250
- report.expects(:<<).with { |log| log.message.include?("Could not run command from prerun_command") }
200
+ it "should send the transaction report even if there is a failure" do
201
+ @agent.expects(:retrieve_catalog).raises "whatever"
251
202
 
252
- @agent.run.should be_nil
253
- end
203
+ report = Puppet::Transaction::Report.new("apply")
204
+ Puppet::Transaction::Report.expects(:new).returns(report)
205
+ @agent.expects(:send_report)
254
206
 
255
- it "should send the transaction report even if the post-run command fails" do
256
- report = Puppet::Transaction::Report.new("apply")
257
- Puppet::Transaction::Report.expects(:new).returns(report)
207
+ lambda { @agent.run }.should raise_error
208
+ end
258
209
 
259
- Puppet.settings[:postrun_command] = "/my/command"
260
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
261
- @agent.expects(:send_report)
210
+ it "should remove the report as a log destination when the run is finished" do
211
+ report = Puppet::Transaction::Report.new("apply")
212
+ Puppet::Transaction::Report.expects(:new).returns(report)
262
213
 
263
- @agent.run.should be_nil
264
- end
214
+ report.expects(:<<).at_least_once
265
215
 
266
- it "should include the post-run command failure in the report" do
267
- report = Puppet::Transaction::Report.new("apply")
268
- Puppet::Transaction::Report.expects(:new).returns(report)
216
+ @agent.run
217
+ Puppet::Util::Log.destinations.should_not include(report)
218
+ end
269
219
 
270
- Puppet.settings[:postrun_command] = "/my/command"
271
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
220
+ it "should return the report as the result of the run" do
221
+ report = Puppet::Transaction::Report.new("apply")
222
+ Puppet::Transaction::Report.expects(:new).returns(report)
272
223
 
273
- report.expects(:<<).with { |log| log.message.include?("Could not run command from postrun_command") }
224
+ @agent.run.should equal(report)
225
+ end
226
+ end
274
227
 
275
- @agent.run.should be_nil
276
- end
228
+ describe Puppet::Configurer, "when sending a report" do
229
+ include PuppetSpec::Files
277
230
 
278
- it "should execute post-run command even if the pre-run command fails" do
279
- Puppet.settings[:prerun_command] = "/my/precommand"
280
- Puppet.settings[:postrun_command] = "/my/postcommand"
281
- Puppet::Util.expects(:execute).with(["/my/precommand"]).raises(Puppet::ExecutionFailure, "Failed")
282
- Puppet::Util.expects(:execute).with(["/my/postcommand"])
231
+ before do
232
+ Puppet.settings.stubs(:use).returns(true)
233
+ @configurer = Puppet::Configurer.new
234
+ Puppet[:lastrunfile] = tmpfile('last_run_file')
283
235
 
284
- @agent.run.should be_nil
285
- end
236
+ @report = Puppet::Transaction::Report.new("apply")
237
+ @trans = stub 'transaction'
238
+ end
286
239
 
287
- it "should finalize the report" do
288
- report = Puppet::Transaction::Report.new("apply")
289
- Puppet::Transaction::Report.expects(:new).returns(report)
240
+ it "should finalize the report" do
241
+ @report.expects(:finalize_report)
242
+ @configurer.send_report(@report, @trans)
243
+ end
290
244
 
291
- report.expects(:finalize_report)
292
- @agent.run
293
- end
245
+ it "should print a report summary if configured to do so" do
246
+ Puppet.settings[:summarize] = true
294
247
 
295
- it "should not apply the catalog if the pre-run command fails" do
296
- report = Puppet::Transaction::Report.new("apply")
297
- Puppet::Transaction::Report.expects(:new).returns(report)
248
+ @report.expects(:summary).returns "stuff"
298
249
 
299
- Puppet.settings[:prerun_command] = "/my/command"
300
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
250
+ @configurer.expects(:puts).with("stuff")
251
+ @configurer.send_report(@report, nil)
252
+ end
301
253
 
302
- @catalog.expects(:apply).never()
303
- @agent.expects(:send_report)
254
+ it "should not print a report summary if not configured to do so" do
255
+ Puppet.settings[:summarize] = false
304
256
 
305
- @agent.run.should be_nil
306
- end
257
+ @configurer.expects(:puts).never
258
+ @configurer.send_report(@report, nil)
259
+ end
307
260
 
308
- it "should apply the catalog, send the report, and return nil if the post-run command fails" do
309
- report = Puppet::Transaction::Report.new("apply")
310
- Puppet::Transaction::Report.expects(:new).returns(report)
261
+ it "should save the report if reporting is enabled" do
262
+ Puppet.settings[:report] = true
311
263
 
312
- Puppet.settings[:postrun_command] = "/my/command"
313
- Puppet::Util.expects(:execute).with(["/my/command"]).raises(Puppet::ExecutionFailure, "Failed")
264
+ Puppet::Transaction::Report.indirection.expects(:save).with(@report)
265
+ @configurer.send_report(@report, nil)
266
+ end
314
267
 
315
- @catalog.expects(:apply)
316
- @agent.expects(:send_report)
268
+ it "should not save the report if reporting is disabled" do
269
+ Puppet.settings[:report] = false
317
270
 
318
- @agent.run.should be_nil
319
- end
271
+ Puppet::Transaction::Report.indirection.expects(:save).never
272
+ @configurer.send_report(@report, nil)
273
+ end
320
274
 
321
- describe "when not using a REST terminus for catalogs" do
322
- it "should not pass any facts when retrieving the catalog" do
323
- Puppet::Resource::Catalog.terminus_class = :compiler
324
- @agent.expects(:facts_for_uploading).never
325
- Puppet::Resource::Catalog.expects(:find).with { |name, options|
326
- options[:facts].nil?
327
- }.returns @catalog
275
+ it "should save the last run summary if reporting is enabled" do
276
+ Puppet.settings[:report] = true
328
277
 
329
- @agent.run
330
- end
331
- end
278
+ @configurer.expects(:save_last_run_summary).with(@report)
279
+ @configurer.send_report(@report, nil)
280
+ end
332
281
 
333
- describe "when using a REST terminus for catalogs" do
334
- it "should pass the prepared facts and the facts format as arguments when retrieving the catalog" do
335
- Puppet::Resource::Catalog.terminus_class = :rest
336
- @agent.expects(:facts_for_uploading).returns(:facts => "myfacts", :facts_format => :foo)
337
- Puppet::Resource::Catalog.expects(:find).with { |name, options|
338
- options[:facts] == "myfacts" and options[:facts_format] == :foo
339
- }.returns @catalog
282
+ it "should save the last run summary if reporting is disabled" do
283
+ Puppet.settings[:report] = false
340
284
 
341
- @agent.run
342
- end
343
- end
285
+ @configurer.expects(:save_last_run_summary).with(@report)
286
+ @configurer.send_report(@report, nil)
344
287
  end
345
288
 
346
- describe "when sending a report" do
347
- include PuppetSpec::Files
289
+ it "should log but not fail if saving the report fails" do
290
+ Puppet.settings[:report] = true
348
291
 
349
- before do
350
- Puppet.settings.stubs(:use).returns(true)
351
- @configurer = Puppet::Configurer.new
352
- Puppet[:lastrunfile] = tmpfile('last_run_file')
292
+ Puppet::Transaction::Report.indirection.expects(:save).with(@report).raises "whatever"
353
293
 
354
- @report = Puppet::Transaction::Report.new("apply")
355
- end
294
+ Puppet.expects(:err)
295
+ lambda { @configurer.send_report(@report, nil) }.should_not raise_error
296
+ end
297
+ end
356
298
 
357
- it "should print a report summary if configured to do so" do
358
- Puppet.settings[:summarize] = true
299
+ describe Puppet::Configurer, "when saving the summary report file" do
300
+ before do
301
+ Puppet.settings.stubs(:use).returns(true)
302
+ @configurer = Puppet::Configurer.new
359
303
 
360
- @report.expects(:summary).returns "stuff"
304
+ @report = stub 'report'
305
+ @trans = stub 'transaction'
306
+ @lastrunfd = stub 'lastrunfd'
307
+ Puppet::Util::FileLocking.stubs(:writelock).yields(@lastrunfd)
308
+ end
361
309
 
362
- @configurer.expects(:puts).with("stuff")
363
- @configurer.send_report(@report)
364
- end
310
+ it "should write the raw summary to the lastrunfile setting value" do
311
+ Puppet::Util::FileLocking.expects(:writelock).with(Puppet[:lastrunfile], 0660)
312
+ @configurer.save_last_run_summary(@report)
313
+ end
365
314
 
366
- it "should not print a report summary if not configured to do so" do
367
- Puppet.settings[:summarize] = false
315
+ it "should write the raw summary as yaml" do
316
+ @report.expects(:raw_summary).returns("summary")
317
+ @lastrunfd.expects(:print).with(YAML.dump("summary"))
318
+ @configurer.save_last_run_summary(@report)
319
+ end
368
320
 
369
- @configurer.expects(:puts).never
370
- @configurer.send_report(@report)
371
- end
321
+ it "should log but not fail if saving the last run summary fails" do
322
+ Puppet::Util::FileLocking.expects(:writelock).raises "exception"
323
+ Puppet.expects(:err)
324
+ lambda { @configurer.save_last_run_summary(@report) }.should_not raise_error
325
+ end
372
326
 
373
- it "should save the report if reporting is enabled" do
374
- Puppet.settings[:report] = true
327
+ end
375
328
 
376
- @report.expects(:save)
377
- @configurer.send_report(@report)
378
- end
329
+ describe Puppet::Configurer, "when retrieving a catalog" do
330
+ before do
331
+ Puppet.settings.stubs(:use).returns(true)
332
+ @agent = Puppet::Configurer.new
333
+ @agent.stubs(:facts_for_uploading).returns({})
379
334
 
380
- it "should not save the report if reporting is disabled" do
381
- Puppet.settings[:report] = false
335
+ @catalog = Puppet::Resource::Catalog.new
382
336
 
383
- @report.expects(:save).never
384
- @configurer.send_report(@report)
385
- end
337
+ # this is the default when using a Configurer instance
338
+ Puppet::Resource::Catalog.indirection.stubs(:terminus_class).returns :rest
386
339
 
387
- it "should save the last run summary if reporting is enabled" do
388
- Puppet.settings[:report] = true
340
+ @agent.stubs(:convert_catalog).returns @catalog
341
+ end
389
342
 
390
- @configurer.expects(:save_last_run_summary).with(@report)
391
- @configurer.send_report(@report)
343
+ describe "and configured to only retrieve a catalog from the cache" do
344
+ before do
345
+ Puppet.settings[:use_cached_catalog] = true
392
346
  end
393
347
 
394
- it "should save the last run summary if reporting is disabled" do
395
- Puppet.settings[:report] = false
348
+ it "should first look in the cache for a catalog" do
349
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
350
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.never
396
351
 
397
- @configurer.expects(:save_last_run_summary).with(@report)
398
- @configurer.send_report(@report)
352
+ @agent.retrieve_catalog.should == @catalog
399
353
  end
400
354
 
401
- it "should log but not fail if saving the report fails" do
402
- Puppet.settings[:report] = true
403
-
404
- @report.expects(:save).raises "whatever"
355
+ it "should compile a new catalog if none is found in the cache" do
356
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
357
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
405
358
 
406
- Puppet.expects(:err)
407
- lambda { @configurer.send_report(@report) }.should_not raise_error
359
+ @agent.retrieve_catalog.should == @catalog
408
360
  end
409
361
  end
410
362
 
411
- describe "when saving the summary report file" do
412
- before do
413
- Puppet.settings.stubs(:use).returns(true)
414
- @configurer = Puppet::Configurer.new
363
+ describe "when not using a REST terminus for catalogs" do
364
+ it "should not pass any facts when retrieving the catalog" do
365
+ @agent.expects(:facts_for_uploading).never
366
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options|
367
+ options[:facts].nil?
368
+ }.returns @catalog
415
369
 
416
- @report = stub 'report'
417
- @trans = stub 'transaction'
418
- @lastrunfd = stub 'lastrunfd'
419
- Puppet::Util::FileLocking.stubs(:writelock).yields(@lastrunfd)
370
+ @agent.retrieve_catalog
420
371
  end
421
-
422
- it "should write the raw summary to the lastrunfile setting value" do
423
- Puppet::Util::FileLocking.expects(:writelock).with(Puppet[:lastrunfile], 0660)
424
- @configurer.save_last_run_summary(@report)
425
- end
426
-
427
- it "should write the raw summary as yaml" do
428
- @report.expects(:raw_summary).returns("summary")
429
- @lastrunfd.expects(:print).with(YAML.dump("summary"))
430
- @configurer.save_last_run_summary(@report)
431
- end
432
-
433
- it "should log but not fail if saving the last run summary fails" do
434
- Puppet::Util::FileLocking.expects(:writelock).raises "exception"
435
- Puppet.expects(:err)
436
- lambda { @configurer.save_last_run_summary(@report) }.should_not raise_error
437
- end
438
-
439
372
  end
440
373
 
441
- describe "when retrieving a catalog" do
442
- before do
443
- Puppet.settings.stubs(:use).returns(true)
444
- @agent.stubs(:facts_for_uploading).returns({})
445
-
446
- @catalog = Puppet::Resource::Catalog.new
374
+ describe "when using a REST terminus for catalogs" do
375
+ it "should pass the prepared facts and the facts format as arguments when retrieving the catalog" do
376
+ @agent.expects(:facts_for_uploading).returns(:facts => "myfacts", :facts_format => :foo)
377
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options|
378
+ options[:facts] == "myfacts" and options[:facts_format] == :foo
379
+ }.returns @catalog
447
380
 
448
- # this is the default when using a Configurer instance
449
- Puppet::Resource::Catalog.indirection.stubs(:terminus_class).returns :rest
450
-
451
- @agent.stubs(:convert_catalog).returns @catalog
381
+ @agent.retrieve_catalog
452
382
  end
383
+ end
453
384
 
454
- describe "and configured to only retrieve a catalog from the cache" do
455
- before do
456
- Puppet.settings[:use_cached_catalog] = true
457
- end
458
-
459
- it "should first look in the cache for a catalog" do
460
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
461
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.never
462
-
463
- @agent.retrieve_catalog({}).should == @catalog
464
- end
465
-
466
- it "should compile a new catalog if none is found in the cache" do
467
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
468
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
385
+ it "should use the Catalog class to get its catalog" do
386
+ Puppet::Resource::Catalog.indirection.expects(:find).returns @catalog
469
387
 
470
- @agent.retrieve_catalog({}).should == @catalog
471
- end
472
- end
388
+ @agent.retrieve_catalog
389
+ end
473
390
 
474
- it "should use the Catalog class to get its catalog" do
475
- Puppet::Resource::Catalog.expects(:find).returns @catalog
391
+ it "should use its certname to retrieve the catalog" do
392
+ Facter.stubs(:value).returns "eh"
393
+ Puppet.settings[:certname] = "myhost.domain.com"
394
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| name == "myhost.domain.com" }.returns @catalog
476
395
 
477
- @agent.retrieve_catalog({})
478
- end
396
+ @agent.retrieve_catalog
397
+ end
479
398
 
480
- it "should use its node_name_value to retrieve the catalog" do
481
- Facter.stubs(:value).returns "eh"
482
- Puppet.settings[:node_name_value] = "myhost.domain.com"
483
- Puppet::Resource::Catalog.expects(:find).with { |name, options| name == "myhost.domain.com" }.returns @catalog
399
+ it "should default to returning a catalog retrieved directly from the server, skipping the cache" do
400
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
484
401
 
485
- @agent.retrieve_catalog({})
486
- end
402
+ @agent.retrieve_catalog.should == @catalog
403
+ end
487
404
 
488
- it "should default to returning a catalog retrieved directly from the server, skipping the cache" do
489
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
405
+ it "should log and return the cached catalog when no catalog can be retrieved from the server" do
406
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
407
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
490
408
 
491
- @agent.retrieve_catalog({}).should == @catalog
492
- end
409
+ Puppet.expects(:notice)
493
410
 
494
- it "should log and return the cached catalog when no catalog can be retrieved from the server" do
495
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
496
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
411
+ @agent.retrieve_catalog.should == @catalog
412
+ end
497
413
 
498
- Puppet.expects(:notice)
414
+ it "should not look in the cache for a catalog if one is returned from the server" do
415
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
416
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.never
499
417
 
500
- @agent.retrieve_catalog({}).should == @catalog
501
- end
418
+ @agent.retrieve_catalog.should == @catalog
419
+ end
502
420
 
503
- it "should not look in the cache for a catalog if one is returned from the server" do
504
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog
505
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.never
421
+ it "should return the cached catalog when retrieving the remote catalog throws an exception" do
422
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.raises "eh"
423
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
506
424
 
507
- @agent.retrieve_catalog({}).should == @catalog
508
- end
425
+ @agent.retrieve_catalog.should == @catalog
426
+ end
509
427
 
510
- it "should return the cached catalog when retrieving the remote catalog throws an exception" do
511
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.raises "eh"
512
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns @catalog
428
+ it "should log and return nil if no catalog can be retrieved from the server and :usecacheonfailure is disabled" do
429
+ Puppet.stubs(:[])
430
+ Puppet.expects(:[]).with(:usecacheonfailure).returns false
431
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
513
432
 
514
- @agent.retrieve_catalog({}).should == @catalog
515
- end
433
+ Puppet.expects(:warning)
516
434
 
517
- it "should log and return nil if no catalog can be retrieved from the server and :usecacheonfailure is disabled" do
518
- Puppet.stubs(:[])
519
- Puppet.expects(:[]).with(:usecacheonfailure).returns false
520
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
435
+ @agent.retrieve_catalog.should be_nil
436
+ end
521
437
 
522
- Puppet.expects(:warning)
438
+ it "should return nil if no cached catalog is available and no catalog can be retrieved from the server" do
439
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
440
+ Puppet::Resource::Catalog.indirection.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
523
441
 
524
- @agent.retrieve_catalog({}).should be_nil
525
- end
442
+ @agent.retrieve_catalog.should be_nil
443
+ end
526
444
 
527
- it "should return nil if no cached catalog is available and no catalog can be retrieved from the server" do
528
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns nil
529
- Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_terminus] == true }.returns nil
445
+ it "should convert the catalog before returning" do
446
+ Puppet::Resource::Catalog.indirection.stubs(:find).returns @catalog
530
447
 
531
- @agent.retrieve_catalog({}).should be_nil
532
- end
448
+ @agent.expects(:convert_catalog).with { |cat, dur| cat == @catalog }.returns "converted catalog"
449
+ @agent.retrieve_catalog.should == "converted catalog"
450
+ end
533
451
 
534
- it "should convert the catalog before returning" do
535
- Puppet::Resource::Catalog.stubs(:find).returns @catalog
452
+ it "should return nil if there is an error while retrieving the catalog" do
453
+ Puppet::Resource::Catalog.indirection.expects(:find).at_least_once.raises "eh"
536
454
 
537
- @agent.expects(:convert_catalog).with { |cat, dur| cat == @catalog }.returns "converted catalog"
538
- @agent.retrieve_catalog({}).should == "converted catalog"
539
- end
455
+ @agent.retrieve_catalog.should be_nil
456
+ end
457
+ end
540
458
 
541
- it "should return nil if there is an error while retrieving the catalog" do
542
- Puppet::Resource::Catalog.expects(:find).at_least_once.raises "eh"
459
+ describe Puppet::Configurer, "when converting the catalog" do
460
+ before do
461
+ Puppet.settings.stubs(:use).returns(true)
462
+ @agent = Puppet::Configurer.new
543
463
 
544
- @agent.retrieve_catalog({}).should be_nil
545
- end
464
+ @catalog = Puppet::Resource::Catalog.new
465
+ @oldcatalog = stub 'old_catalog', :to_ral => @catalog
546
466
  end
547
467
 
548
- describe "when converting the catalog" do
549
- before do
550
- Puppet.settings.stubs(:use).returns(true)
551
-
552
- @catalog = Puppet::Resource::Catalog.new
553
- @oldcatalog = stub 'old_catalog', :to_ral => @catalog
554
- end
468
+ it "should convert the catalog to a RAL-formed catalog" do
469
+ @oldcatalog.expects(:to_ral).returns @catalog
555
470
 
556
- it "should convert the catalog to a RAL-formed catalog" do
557
- @oldcatalog.expects(:to_ral).returns @catalog
471
+ @agent.convert_catalog(@oldcatalog, 10).should equal(@catalog)
472
+ end
558
473
 
559
- @agent.convert_catalog(@oldcatalog, 10).should equal(@catalog)
560
- end
474
+ it "should finalize the catalog" do
475
+ @catalog.expects(:finalize)
561
476
 
562
- it "should finalize the catalog" do
563
- @catalog.expects(:finalize)
477
+ @agent.convert_catalog(@oldcatalog, 10)
478
+ end
564
479
 
565
- @agent.convert_catalog(@oldcatalog, 10)
566
- end
480
+ it "should record the passed retrieval time with the RAL catalog" do
481
+ @catalog.expects(:retrieval_duration=).with 10
567
482
 
568
- it "should record the passed retrieval time with the RAL catalog" do
569
- @catalog.expects(:retrieval_duration=).with 10
483
+ @agent.convert_catalog(@oldcatalog, 10)
484
+ end
570
485
 
571
- @agent.convert_catalog(@oldcatalog, 10)
572
- end
486
+ it "should write the RAL catalog's class file" do
487
+ @catalog.expects(:write_class_file)
573
488
 
574
- it "should write the RAL catalog's class file" do
575
- @catalog.expects(:write_class_file)
489
+ @agent.convert_catalog(@oldcatalog, 10)
490
+ end
491
+ end
576
492
 
577
- @agent.convert_catalog(@oldcatalog, 10)
578
- end
493
+ describe Puppet::Configurer, "when preparing for a run" do
494
+ before do
495
+ Puppet.settings.stubs(:use).returns(true)
496
+ @agent = Puppet::Configurer.new
497
+ @agent.stubs(:dostorage)
498
+ @agent.stubs(:download_fact_plugins)
499
+ @agent.stubs(:download_plugins)
500
+ @agent.stubs(:execute_prerun_command)
501
+ @facts = {"one" => "two", "three" => "four"}
579
502
  end
580
503
 
581
- describe "when preparing for a run" do
582
- before do
583
- Puppet.settings.stubs(:use).returns(true)
584
- @agent.stubs(:dostorage)
585
- @agent.stubs(:download_fact_plugins)
586
- @agent.stubs(:download_plugins)
587
- @facts = {"one" => "two", "three" => "four"}
588
- end
504
+ it "should initialize the metadata store" do
505
+ @agent.class.stubs(:facts).returns(@facts)
506
+ @agent.expects(:dostorage)
507
+ @agent.prepare({})
508
+ end
589
509
 
590
- it "should initialize the metadata store" do
591
- @agent.class.stubs(:facts).returns(@facts)
592
- @agent.expects(:dostorage)
593
- @agent.prepare({})
594
- end
510
+ it "should download fact plugins" do
511
+ @agent.expects(:download_fact_plugins)
595
512
 
596
- it "should download fact plugins" do
597
- @agent.expects(:download_fact_plugins)
513
+ @agent.prepare({})
514
+ end
598
515
 
599
- @agent.prepare({})
600
- end
516
+ it "should download plugins" do
517
+ @agent.expects(:download_plugins)
601
518
 
602
- it "should download plugins" do
603
- @agent.expects(:download_plugins)
519
+ @agent.prepare({})
520
+ end
604
521
 
605
- @agent.prepare({})
606
- end
522
+ it "should perform the pre-run commands" do
523
+ @agent.expects(:execute_prerun_command)
524
+ @agent.prepare({})
607
525
  end
608
526
  end