puppet 0.25.5 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (1474) hide show
  1. data/CHANGELOG +667 -0
  2. data/LICENSE +2 -2
  3. data/README +5 -1
  4. data/README.queueing +1 -1
  5. data/README.rst +7 -4
  6. data/Rakefile +6 -18
  7. data/bin/filebucket +0 -94
  8. data/bin/pi +2 -47
  9. data/bin/puppet +2 -69
  10. data/bin/puppetca +2 -100
  11. data/bin/puppetd +2 -158
  12. data/bin/puppetdoc +2 -63
  13. data/bin/puppetmasterd +2 -64
  14. data/bin/puppetqd +2 -51
  15. data/bin/puppetrun +2 -127
  16. data/bin/ralsh +2 -87
  17. data/conf/epm.list +2 -2
  18. data/conf/osx/PackageInfo.plist +1 -1
  19. data/conf/redhat/client.init +11 -8
  20. data/conf/redhat/puppet.conf +1 -1
  21. data/conf/redhat/puppet.spec +1 -1
  22. data/conf/redhat/rundir-perms.patch +13 -13
  23. data/conf/redhat/server.init +11 -5
  24. data/conf/solaris/pkginfo +2 -2
  25. data/conf/solaris/smf/puppetd.xml +3 -3
  26. data/conf/solaris/smf/puppetmasterd.xml +3 -3
  27. data/conf/suse/client.init +3 -2
  28. data/conf/suse/puppet.spec +22 -18
  29. data/conf/suse/server.init +12 -11
  30. data/examples/modules/sample-module/README.txt +3 -3
  31. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +4 -4
  32. data/ext/extlookup.rb +94 -96
  33. data/ext/nagios/check_puppet.rb +94 -88
  34. data/ext/nagios/naggen +3 -3
  35. data/ext/puppet-test +27 -3
  36. data/ext/puppetlisten/puppetlisten.rb +39 -39
  37. data/ext/puppetlisten/puppetrun.rb +6 -6
  38. data/ext/puppetstoredconfigclean.rb +49 -43
  39. data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
  40. data/ext/regexp_nodes/regexp_nodes.rb +133 -133
  41. data/ext/yaml_nodes.rb +99 -0
  42. data/install.rb +109 -118
  43. data/lib/puppet.rb +118 -131
  44. data/lib/puppet/agent.rb +86 -119
  45. data/lib/puppet/agent/locker.rb +28 -30
  46. data/lib/puppet/application.rb +276 -184
  47. data/lib/puppet/application/agent.rb +266 -0
  48. data/lib/puppet/application/apply.rb +165 -0
  49. data/lib/puppet/application/cert.rb +85 -0
  50. data/lib/puppet/application/describe.rb +203 -0
  51. data/lib/puppet/application/doc.rb +215 -0
  52. data/lib/puppet/application/filebucket.rb +73 -73
  53. data/lib/puppet/application/kick.rb +212 -0
  54. data/lib/puppet/application/master.rb +156 -0
  55. data/lib/puppet/application/queue.rb +91 -0
  56. data/lib/puppet/application/resource.rb +118 -0
  57. data/lib/puppet/configurer.rb +214 -197
  58. data/lib/puppet/configurer/downloader.rb +63 -63
  59. data/lib/puppet/configurer/fact_handler.rb +51 -51
  60. data/lib/puppet/configurer/plugin_handler.rb +19 -19
  61. data/lib/puppet/daemon.rb +100 -103
  62. data/lib/puppet/defaults.rb +793 -796
  63. data/lib/puppet/dsl.rb +5 -269
  64. data/lib/puppet/dsl/resource_api.rb +120 -0
  65. data/lib/puppet/dsl/resource_type_api.rb +40 -0
  66. data/lib/puppet/error.rb +34 -36
  67. data/lib/puppet/external/base64.rb +8 -8
  68. data/lib/puppet/external/dot.rb +262 -262
  69. data/lib/puppet/external/event-loop/better-definers.rb +297 -297
  70. data/lib/puppet/external/event-loop/event-loop.rb +264 -272
  71. data/lib/puppet/external/event-loop/signal-system.rb +161 -163
  72. data/lib/puppet/external/lock.rb +41 -41
  73. data/lib/puppet/external/nagios.rb +32 -32
  74. data/lib/puppet/external/nagios/base.rb +453 -458
  75. data/lib/puppet/external/nagios/parser.rb +264 -287
  76. data/lib/puppet/external/pson/common.rb +8 -5
  77. data/lib/puppet/external/pson/pure/generator.rb +26 -26
  78. data/lib/puppet/external/pson/pure/parser.rb +43 -48
  79. data/lib/puppet/feature/base.rb +21 -1
  80. data/lib/puppet/feature/pson.rb +4 -4
  81. data/lib/puppet/feature/rack.rb +14 -14
  82. data/lib/puppet/feature/rails.rb +23 -25
  83. data/lib/puppet/file_bucket.rb +4 -0
  84. data/lib/puppet/file_bucket/dipper.rb +99 -0
  85. data/lib/puppet/file_bucket/file.rb +136 -0
  86. data/lib/puppet/file_bucket/file/indirection_hooks.rb +9 -0
  87. data/lib/puppet/file_collection.rb +20 -20
  88. data/lib/puppet/file_collection/lookup.rb +11 -11
  89. data/lib/puppet/file_serving/base.rb +67 -71
  90. data/lib/puppet/file_serving/configuration.rb +84 -86
  91. data/lib/puppet/file_serving/configuration/parser.rb +103 -102
  92. data/lib/puppet/file_serving/content.rb +34 -33
  93. data/lib/puppet/file_serving/fileset.rb +131 -133
  94. data/lib/puppet/file_serving/indirection_hooks.rb +17 -17
  95. data/lib/puppet/file_serving/metadata.rb +98 -95
  96. data/lib/puppet/file_serving/mount.rb +22 -22
  97. data/lib/puppet/file_serving/mount/file.rb +101 -106
  98. data/lib/puppet/file_serving/mount/modules.rb +15 -15
  99. data/lib/puppet/file_serving/mount/plugins.rb +15 -16
  100. data/lib/puppet/file_serving/terminus_helper.rb +13 -13
  101. data/lib/puppet/indirector.rb +48 -49
  102. data/lib/puppet/indirector/active_record.rb +19 -19
  103. data/lib/puppet/indirector/catalog/active_record.rb +25 -25
  104. data/lib/puppet/indirector/catalog/compiler.rb +134 -145
  105. data/lib/puppet/indirector/catalog/rest.rb +1 -1
  106. data/lib/puppet/indirector/catalog/yaml.rb +13 -13
  107. data/lib/puppet/indirector/certificate/ca.rb +3 -3
  108. data/lib/puppet/indirector/certificate/file.rb +3 -3
  109. data/lib/puppet/indirector/certificate/rest.rb +8 -8
  110. data/lib/puppet/indirector/certificate_request/ca.rb +7 -7
  111. data/lib/puppet/indirector/certificate_request/file.rb +2 -2
  112. data/lib/puppet/indirector/certificate_request/rest.rb +3 -3
  113. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +2 -2
  114. data/lib/puppet/indirector/certificate_revocation_list/file.rb +2 -2
  115. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +3 -3
  116. data/lib/puppet/indirector/couch.rb +76 -0
  117. data/lib/puppet/indirector/direct_file_server.rb +11 -11
  118. data/lib/puppet/indirector/envelope.rb +4 -4
  119. data/lib/puppet/indirector/exec.rb +38 -42
  120. data/lib/puppet/indirector/facts/active_record.rb +24 -24
  121. data/lib/puppet/indirector/facts/couch.rb +31 -0
  122. data/lib/puppet/indirector/facts/facter.rb +63 -61
  123. data/lib/puppet/indirector/facts/memory.rb +4 -4
  124. data/lib/puppet/indirector/facts/rest.rb +1 -1
  125. data/lib/puppet/indirector/facts/yaml.rb +2 -2
  126. data/lib/puppet/indirector/file.rb +67 -46
  127. data/lib/puppet/indirector/file_bucket_file/file.rb +146 -0
  128. data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  129. data/lib/puppet/indirector/file_content/file.rb +1 -1
  130. data/lib/puppet/indirector/file_content/file_server.rb +1 -1
  131. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  132. data/lib/puppet/indirector/file_metadata/file.rb +11 -11
  133. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -1
  134. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  135. data/lib/puppet/indirector/file_server.rb +44 -44
  136. data/lib/puppet/indirector/indirection.rb +249 -260
  137. data/lib/puppet/indirector/key/ca.rb +5 -5
  138. data/lib/puppet/indirector/key/file.rb +29 -29
  139. data/lib/puppet/indirector/ldap.rb +62 -64
  140. data/lib/puppet/indirector/memory.rb +13 -13
  141. data/lib/puppet/indirector/node/active_record.rb +6 -6
  142. data/lib/puppet/indirector/node/exec.rb +40 -44
  143. data/lib/puppet/indirector/node/ldap.rb +246 -212
  144. data/lib/puppet/indirector/node/memory.rb +5 -5
  145. data/lib/puppet/indirector/node/plain.rb +12 -12
  146. data/lib/puppet/indirector/node/rest.rb +2 -2
  147. data/lib/puppet/indirector/node/yaml.rb +2 -2
  148. data/lib/puppet/indirector/plain.rb +4 -4
  149. data/lib/puppet/indirector/queue.rb +49 -51
  150. data/lib/puppet/indirector/report/processor.rb +34 -37
  151. data/lib/puppet/indirector/report/rest.rb +3 -3
  152. data/lib/puppet/indirector/request.rb +171 -157
  153. data/lib/puppet/indirector/resource/ral.rb +48 -0
  154. data/lib/puppet/indirector/resource/rest.rb +5 -0
  155. data/lib/puppet/indirector/resource_type.rb +5 -0
  156. data/lib/puppet/indirector/resource_type/parser.rb +27 -0
  157. data/lib/puppet/indirector/resource_type/rest.rb +7 -0
  158. data/lib/puppet/indirector/rest.rb +83 -79
  159. data/lib/puppet/indirector/run/local.rb +8 -0
  160. data/lib/puppet/indirector/run/rest.rb +6 -0
  161. data/lib/puppet/indirector/ssl_file.rb +165 -165
  162. data/lib/puppet/indirector/status.rb +3 -0
  163. data/lib/puppet/indirector/status/local.rb +7 -0
  164. data/lib/puppet/indirector/status/rest.rb +5 -0
  165. data/lib/puppet/indirector/terminus.rb +129 -133
  166. data/lib/puppet/indirector/yaml.rb +47 -49
  167. data/lib/puppet/metatype/manager.rb +120 -114
  168. data/lib/puppet/module.rb +182 -124
  169. data/lib/puppet/network/authconfig.rb +146 -156
  170. data/lib/puppet/network/authorization.rb +63 -70
  171. data/lib/puppet/network/authstore.rb +226 -232
  172. data/lib/puppet/network/client.rb +141 -152
  173. data/lib/puppet/network/client/ca.rb +47 -49
  174. data/lib/puppet/network/client/file.rb +3 -3
  175. data/lib/puppet/network/client/proxy.rb +19 -19
  176. data/lib/puppet/network/client/report.rb +17 -21
  177. data/lib/puppet/network/client/runner.rb +5 -7
  178. data/lib/puppet/network/client/status.rb +1 -1
  179. data/lib/puppet/network/client_request.rb +20 -22
  180. data/lib/puppet/network/format.rb +79 -81
  181. data/lib/puppet/network/format_handler.rb +135 -130
  182. data/lib/puppet/network/formats.rb +128 -154
  183. data/lib/puppet/network/handler.rb +43 -46
  184. data/lib/puppet/network/handler/ca.rb +129 -135
  185. data/lib/puppet/network/handler/filebucket.rb +39 -170
  186. data/lib/puppet/network/handler/fileserver.rb +624 -656
  187. data/lib/puppet/network/handler/master.rb +62 -75
  188. data/lib/puppet/network/handler/report.rb +60 -67
  189. data/lib/puppet/network/handler/runner.rb +20 -20
  190. data/lib/puppet/network/handler/status.rb +9 -9
  191. data/lib/puppet/network/http.rb +12 -12
  192. data/lib/puppet/network/http/api/v1.rb +49 -44
  193. data/lib/puppet/network/http/compression.rb +111 -0
  194. data/lib/puppet/network/http/handler.rb +183 -183
  195. data/lib/puppet/network/http/mongrel.rb +46 -48
  196. data/lib/puppet/network/http/mongrel/rest.rb +73 -66
  197. data/lib/puppet/network/http/rack.rb +45 -45
  198. data/lib/puppet/network/http/rack/httphandler.rb +7 -7
  199. data/lib/puppet/network/http/rack/rest.rb +84 -61
  200. data/lib/puppet/network/http/rack/xmlrpc.rb +49 -49
  201. data/lib/puppet/network/http/webrick.rb +108 -112
  202. data/lib/puppet/network/http/webrick/rest.rb +60 -57
  203. data/lib/puppet/network/http_pool.rb +95 -83
  204. data/lib/puppet/network/http_server/mongrel.rb +90 -90
  205. data/lib/puppet/network/http_server/webrick.rb +139 -148
  206. data/lib/puppet/network/rest_authconfig.rb +76 -71
  207. data/lib/puppet/network/rest_authorization.rb +11 -13
  208. data/lib/puppet/network/rights.rb +217 -226
  209. data/lib/puppet/network/server.rb +147 -151
  210. data/lib/puppet/network/xmlrpc/client.rb +197 -205
  211. data/lib/puppet/network/xmlrpc/processor.rb +68 -72
  212. data/lib/puppet/network/xmlrpc/server.rb +10 -10
  213. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +94 -100
  214. data/lib/puppet/node.rb +99 -107
  215. data/lib/puppet/node/environment.rb +109 -62
  216. data/lib/puppet/node/facts.rb +48 -43
  217. data/lib/puppet/parameter.rb +246 -498
  218. data/lib/puppet/parameter/value.rb +63 -0
  219. data/lib/puppet/parameter/value_collection.rb +143 -0
  220. data/lib/puppet/parser.rb +4 -0
  221. data/lib/puppet/parser/ast.rb +81 -67
  222. data/lib/puppet/parser/ast/arithmetic_operator.rb +27 -29
  223. data/lib/puppet/parser/ast/astarray.rb +50 -50
  224. data/lib/puppet/parser/ast/asthash.rb +37 -0
  225. data/lib/puppet/parser/ast/boolean_operator.rb +33 -35
  226. data/lib/puppet/parser/ast/branch.rb +29 -31
  227. data/lib/puppet/parser/ast/caseopt.rb +50 -56
  228. data/lib/puppet/parser/ast/casestatement.rb +30 -30
  229. data/lib/puppet/parser/ast/collection.rb +43 -37
  230. data/lib/puppet/parser/ast/collexpr.rb +66 -69
  231. data/lib/puppet/parser/ast/comparison_operator.rb +32 -35
  232. data/lib/puppet/parser/ast/else.rb +13 -13
  233. data/lib/puppet/parser/ast/function.rb +34 -43
  234. data/lib/puppet/parser/ast/ifstatement.rb +23 -27
  235. data/lib/puppet/parser/ast/in_operator.rb +24 -0
  236. data/lib/puppet/parser/ast/leaf.rb +173 -156
  237. data/lib/puppet/parser/ast/match_operator.rb +16 -19
  238. data/lib/puppet/parser/ast/minus.rb +13 -13
  239. data/lib/puppet/parser/ast/nop.rb +6 -6
  240. data/lib/puppet/parser/ast/not.rb +9 -9
  241. data/lib/puppet/parser/ast/relationship.rb +60 -0
  242. data/lib/puppet/parser/ast/resource.rb +58 -57
  243. data/lib/puppet/parser/ast/resource_defaults.rb +16 -16
  244. data/lib/puppet/parser/ast/resource_override.rb +51 -51
  245. data/lib/puppet/parser/ast/resource_reference.rb +17 -72
  246. data/lib/puppet/parser/ast/resourceparam.rb +20 -17
  247. data/lib/puppet/parser/ast/selector.rb +30 -34
  248. data/lib/puppet/parser/ast/tag.rb +16 -16
  249. data/lib/puppet/parser/ast/vardef.rb +20 -16
  250. data/lib/puppet/parser/collector.rb +181 -189
  251. data/lib/puppet/parser/compiler.rb +395 -364
  252. data/lib/puppet/parser/files.rb +65 -69
  253. data/lib/puppet/parser/functions.rb +85 -97
  254. data/lib/puppet/parser/functions/defined.rb +23 -23
  255. data/lib/puppet/parser/functions/fail.rb +2 -2
  256. data/lib/puppet/parser/functions/file.rb +21 -19
  257. data/lib/puppet/parser/functions/fqdn_rand.rb +7 -7
  258. data/lib/puppet/parser/functions/generate.rb +24 -26
  259. data/lib/puppet/parser/functions/include.rb +16 -18
  260. data/lib/puppet/parser/functions/inline_template.rb +16 -17
  261. data/lib/puppet/parser/functions/realize.rb +8 -8
  262. data/lib/puppet/parser/functions/regsubst.rb +74 -59
  263. data/lib/puppet/parser/functions/require.rb +35 -33
  264. data/lib/puppet/parser/functions/search.rb +5 -5
  265. data/lib/puppet/parser/functions/sha1.rb +3 -4
  266. data/lib/puppet/parser/functions/shellquote.rb +31 -33
  267. data/lib/puppet/parser/functions/split.rb +8 -8
  268. data/lib/puppet/parser/functions/sprintf.rb +10 -9
  269. data/lib/puppet/parser/functions/tag.rb +3 -3
  270. data/lib/puppet/parser/functions/tagged.rb +13 -13
  271. data/lib/puppet/parser/functions/template.rb +18 -19
  272. data/lib/puppet/parser/functions/versioncmp.rb +17 -14
  273. data/lib/puppet/parser/grammar.ra +485 -422
  274. data/lib/puppet/parser/lexer.rb +500 -442
  275. data/lib/puppet/parser/parser.rb +1438 -1084
  276. data/lib/puppet/parser/parser_support.rb +227 -502
  277. data/lib/puppet/parser/relationship.rb +43 -0
  278. data/lib/puppet/parser/resource.rb +280 -375
  279. data/lib/puppet/parser/resource/param.rb +18 -18
  280. data/lib/puppet/parser/scope.rb +450 -447
  281. data/lib/puppet/parser/templatewrapper.rb +92 -94
  282. data/lib/puppet/parser/type_loader.rb +146 -0
  283. data/lib/puppet/parser/yaml_trimmer.rb +6 -8
  284. data/lib/puppet/property.rb +290 -453
  285. data/lib/puppet/property/ensure.rb +92 -0
  286. data/lib/puppet/property/keyvalue.rb +74 -82
  287. data/lib/puppet/property/list.rb +71 -81
  288. data/lib/puppet/property/ordered_list.rb +15 -15
  289. data/lib/puppet/provider.rb +229 -241
  290. data/lib/puppet/provider/augeas/augeas.rb +318 -320
  291. data/lib/puppet/provider/computer/computer.rb +13 -13
  292. data/lib/puppet/provider/confine.rb +63 -63
  293. data/lib/puppet/provider/confine/exists.rb +14 -14
  294. data/lib/puppet/provider/confine/false.rb +12 -12
  295. data/lib/puppet/provider/confine/feature.rb +10 -10
  296. data/lib/puppet/provider/confine/true.rb +13 -13
  297. data/lib/puppet/provider/confine/variable.rb +51 -54
  298. data/lib/puppet/provider/confine_collection.rb +38 -38
  299. data/lib/puppet/provider/confiner.rb +10 -14
  300. data/lib/puppet/provider/cron/crontab.rb +172 -173
  301. data/lib/puppet/provider/file/posix.rb +99 -0
  302. data/lib/puppet/provider/file/win32.rb +74 -0
  303. data/lib/puppet/provider/group/directoryservice.rb +6 -6
  304. data/lib/puppet/provider/group/groupadd.rb +18 -20
  305. data/lib/puppet/provider/group/ldap.rb +40 -43
  306. data/lib/puppet/provider/group/pw.rb +23 -23
  307. data/lib/puppet/provider/host/parsed.rb +51 -50
  308. data/lib/puppet/provider/ldap.rb +121 -123
  309. data/lib/puppet/provider/macauthorization/macauthorization.rb +263 -272
  310. data/lib/puppet/provider/mailalias/aliases.rb +34 -31
  311. data/lib/puppet/provider/maillist/mailman.rb +87 -93
  312. data/lib/puppet/provider/mcx/mcxcontent.rb +155 -151
  313. data/lib/puppet/provider/mount.rb +36 -40
  314. data/lib/puppet/provider/mount/parsed.rb +28 -26
  315. data/lib/puppet/provider/naginator.rb +46 -48
  316. data/lib/puppet/provider/nameservice.rb +215 -257
  317. data/lib/puppet/provider/nameservice/directoryservice.rb +455 -471
  318. data/lib/puppet/provider/nameservice/objectadd.rb +21 -21
  319. data/lib/puppet/provider/nameservice/pw.rb +13 -13
  320. data/lib/puppet/provider/package.rb +18 -20
  321. data/lib/puppet/provider/package/aix.rb +128 -0
  322. data/lib/puppet/provider/package/appdmg.rb +78 -82
  323. data/lib/puppet/provider/package/apple.rb +39 -40
  324. data/lib/puppet/provider/package/apt.rb +95 -104
  325. data/lib/puppet/provider/package/aptitude.rb +19 -21
  326. data/lib/puppet/provider/package/aptrpm.rb +70 -72
  327. data/lib/puppet/provider/package/blastwave.rb +88 -94
  328. data/lib/puppet/provider/package/darwinport.rb +67 -69
  329. data/lib/puppet/provider/package/dpkg.rb +123 -97
  330. data/lib/puppet/provider/package/fink.rb +66 -68
  331. data/lib/puppet/provider/package/freebsd.rb +38 -40
  332. data/lib/puppet/provider/package/gem.rb +98 -102
  333. data/lib/puppet/provider/package/hpux.rb +37 -39
  334. data/lib/puppet/provider/package/nim.rb +35 -0
  335. data/lib/puppet/provider/package/openbsd.rb +100 -75
  336. data/lib/puppet/provider/package/pkg.rb +108 -0
  337. data/lib/puppet/provider/package/pkgdmg.rb +95 -87
  338. data/lib/puppet/provider/package/portage.rb +101 -104
  339. data/lib/puppet/provider/package/ports.rb +71 -73
  340. data/lib/puppet/provider/package/portupgrade.rb +251 -0
  341. data/lib/puppet/provider/package/rpm.rb +113 -115
  342. data/lib/puppet/provider/package/rug.rb +46 -46
  343. data/lib/puppet/provider/package/sun.rb +135 -151
  344. data/lib/puppet/provider/package/sunfreeware.rb +5 -5
  345. data/lib/puppet/provider/package/up2date.rb +31 -31
  346. data/lib/puppet/provider/package/urpmi.rb +51 -51
  347. data/lib/puppet/provider/package/yum.rb +90 -98
  348. data/lib/puppet/provider/package/zypper.rb +52 -0
  349. data/lib/puppet/provider/parsedfile.rb +306 -329
  350. data/lib/puppet/provider/port/parsed.rb +5 -5
  351. data/lib/puppet/provider/selboolean/getsetsebool.rb +34 -34
  352. data/lib/puppet/provider/selmodule/semodule.rb +103 -111
  353. data/lib/puppet/provider/service/base.rb +134 -139
  354. data/lib/puppet/provider/service/bsd.rb +48 -0
  355. data/lib/puppet/provider/service/daemontools.rb +158 -162
  356. data/lib/puppet/provider/service/debian.rb +36 -36
  357. data/lib/puppet/provider/service/freebsd.rb +118 -38
  358. data/lib/puppet/provider/service/gentoo.rb +33 -39
  359. data/lib/puppet/provider/service/init.rb +125 -125
  360. data/lib/puppet/provider/service/launchd.rb +234 -254
  361. data/lib/puppet/provider/service/redhat.rb +58 -58
  362. data/lib/puppet/provider/service/runit.rb +74 -74
  363. data/lib/puppet/provider/service/smf.rb +81 -85
  364. data/lib/puppet/provider/service/src.rb +87 -0
  365. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +73 -81
  366. data/lib/puppet/provider/sshkey/parsed.rb +24 -21
  367. data/lib/puppet/provider/user/directoryservice.rb +71 -71
  368. data/lib/puppet/provider/user/hpux.rb +20 -20
  369. data/lib/puppet/provider/user/ldap.rb +106 -110
  370. data/lib/puppet/provider/user/pw.rb +33 -37
  371. data/lib/puppet/provider/user/user_role_add.rb +168 -183
  372. data/lib/puppet/provider/user/useradd.rb +50 -51
  373. data/lib/puppet/provider/zfs/solaris.rb +35 -35
  374. data/lib/puppet/provider/zone/solaris.rb +206 -205
  375. data/lib/puppet/provider/zpool/solaris.rb +95 -97
  376. data/lib/puppet/rails.rb +115 -122
  377. data/lib/puppet/rails/benchmark.rb +43 -49
  378. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +8 -12
  379. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +8 -12
  380. data/lib/puppet/rails/database/003_add_environment_to_host.rb +6 -10
  381. data/lib/puppet/rails/database/schema.rb +100 -97
  382. data/lib/puppet/rails/fact_name.rb +1 -1
  383. data/lib/puppet/rails/fact_value.rb +5 -5
  384. data/lib/puppet/rails/host.rb +252 -249
  385. data/lib/puppet/rails/param_name.rb +15 -15
  386. data/lib/puppet/rails/param_value.rb +55 -55
  387. data/lib/puppet/rails/puppet_tag.rb +4 -4
  388. data/lib/puppet/rails/resource.rb +189 -203
  389. data/lib/puppet/rails/resource_tag.rb +19 -19
  390. data/lib/puppet/rails/source_file.rb +5 -5
  391. data/lib/puppet/reference/configuration.rb +53 -56
  392. data/lib/puppet/reference/function.rb +1 -1
  393. data/lib/puppet/reference/indirection.rb +13 -13
  394. data/lib/puppet/reference/metaparameter.rb +40 -40
  395. data/lib/puppet/reference/network.rb +16 -16
  396. data/lib/puppet/reference/providers.rb +97 -98
  397. data/lib/puppet/reference/report.rb +1 -1
  398. data/lib/puppet/reference/type.rb +67 -70
  399. data/lib/puppet/relationship.rb +65 -67
  400. data/lib/puppet/reports.rb +32 -34
  401. data/lib/puppet/reports/http.rb +22 -0
  402. data/lib/puppet/reports/log.rb +7 -6
  403. data/lib/puppet/reports/rrdgraph.rb +105 -114
  404. data/lib/puppet/reports/store.rb +53 -56
  405. data/lib/puppet/reports/tagmail.rb +149 -157
  406. data/lib/puppet/resource.rb +428 -194
  407. data/lib/puppet/resource/catalog.rb +496 -512
  408. data/lib/puppet/resource/status.rb +58 -0
  409. data/lib/puppet/resource/type.rb +311 -0
  410. data/lib/puppet/resource/type_collection.rb +217 -0
  411. data/lib/puppet/resource/type_collection_helper.rb +7 -0
  412. data/lib/puppet/run.rb +77 -0
  413. data/lib/puppet/simple_graph.rb +381 -413
  414. data/lib/puppet/ssl.rb +2 -1
  415. data/lib/puppet/ssl/base.rb +60 -43
  416. data/lib/puppet/ssl/certificate.rb +21 -21
  417. data/lib/puppet/ssl/certificate_authority.rb +215 -229
  418. data/lib/puppet/ssl/certificate_authority/interface.rb +84 -68
  419. data/lib/puppet/ssl/certificate_factory.rb +119 -119
  420. data/lib/puppet/ssl/certificate_request.rb +52 -45
  421. data/lib/puppet/ssl/certificate_revocation_list.rb +78 -78
  422. data/lib/puppet/ssl/host.rb +230 -228
  423. data/lib/puppet/ssl/inventory.rb +33 -33
  424. data/lib/puppet/ssl/key.rb +37 -37
  425. data/lib/puppet/sslcertificates.rb +124 -123
  426. data/lib/puppet/sslcertificates/ca.rb +327 -344
  427. data/lib/puppet/sslcertificates/certificate.rb +197 -224
  428. data/lib/puppet/sslcertificates/inventory.rb +27 -29
  429. data/lib/puppet/sslcertificates/support.rb +113 -119
  430. data/lib/puppet/status.rb +28 -0
  431. data/lib/puppet/transaction.rb +349 -696
  432. data/lib/puppet/transaction/change.rb +80 -85
  433. data/lib/puppet/transaction/event.rb +54 -14
  434. data/lib/puppet/transaction/event_manager.rb +99 -0
  435. data/lib/puppet/transaction/report.rb +121 -59
  436. data/lib/puppet/transaction/resource_harness.rb +150 -0
  437. data/lib/puppet/transportable.rb +215 -226
  438. data/lib/puppet/type.rb +1644 -1849
  439. data/lib/puppet/type/augeas.rb +153 -134
  440. data/lib/puppet/type/component.rb +63 -65
  441. data/lib/puppet/type/computer.rb +44 -44
  442. data/lib/puppet/type/cron.rb +364 -384
  443. data/lib/puppet/type/exec.rb +583 -521
  444. data/lib/puppet/type/file.rb +786 -823
  445. data/lib/puppet/type/file/checksum.rb +23 -240
  446. data/lib/puppet/type/file/content.rb +193 -129
  447. data/lib/puppet/type/file/ensure.rb +149 -153
  448. data/lib/puppet/type/file/group.rb +94 -104
  449. data/lib/puppet/type/file/mode.rb +109 -122
  450. data/lib/puppet/type/file/owner.rb +39 -131
  451. data/lib/puppet/type/file/selcontext.rb +69 -73
  452. data/lib/puppet/type/file/source.rb +165 -153
  453. data/lib/puppet/type/file/target.rb +56 -60
  454. data/lib/puppet/type/file/type.rb +18 -18
  455. data/lib/puppet/type/filebucket.rb +91 -92
  456. data/lib/puppet/type/group.rb +77 -82
  457. data/lib/puppet/type/host.rb +85 -85
  458. data/lib/puppet/type/k5login.rb +65 -65
  459. data/lib/puppet/type/macauthorization.rb +141 -143
  460. data/lib/puppet/type/mailalias.rb +37 -37
  461. data/lib/puppet/type/maillist.rb +51 -51
  462. data/lib/puppet/type/mcx.rb +62 -62
  463. data/lib/puppet/type/mount.rb +199 -193
  464. data/lib/puppet/type/notify.rb +33 -33
  465. data/lib/puppet/type/package.rb +301 -298
  466. data/lib/puppet/type/port.rb +4 -4
  467. data/lib/puppet/type/resources.rb +107 -123
  468. data/lib/puppet/type/schedule.rb +317 -326
  469. data/lib/puppet/type/selboolean.rb +19 -19
  470. data/lib/puppet/type/selmodule.rb +34 -34
  471. data/lib/puppet/type/service.rb +152 -152
  472. data/lib/puppet/type/ssh_authorized_key.rb +74 -78
  473. data/lib/puppet/type/sshkey.rb +52 -56
  474. data/lib/puppet/type/stage.rb +18 -0
  475. data/lib/puppet/type/tidy.rb +289 -300
  476. data/lib/puppet/type/user.rb +300 -312
  477. data/lib/puppet/type/yumrepo.rb +300 -335
  478. data/lib/puppet/type/zfs.rb +36 -36
  479. data/lib/puppet/type/zone.rb +376 -347
  480. data/lib/puppet/type/zpool.rb +71 -77
  481. data/lib/puppet/util.rb +383 -387
  482. data/lib/puppet/util/autoload.rb +125 -143
  483. data/lib/puppet/util/autoload/file_cache.rb +78 -101
  484. data/lib/puppet/util/backups.rb +66 -66
  485. data/lib/puppet/util/cacher.rb +112 -120
  486. data/lib/puppet/util/checksums.rb +119 -84
  487. data/lib/puppet/util/classgen.rb +157 -167
  488. data/lib/puppet/util/command_line.rb +95 -0
  489. data/lib/puppet/util/command_line/filebucket +97 -0
  490. data/lib/puppet/util/command_line/pi +48 -0
  491. data/lib/puppet/util/command_line/puppet +69 -0
  492. data/lib/puppet/util/command_line/puppetca +110 -0
  493. data/lib/puppet/util/command_line/puppetd +186 -0
  494. data/lib/puppet/util/command_line/puppetdoc +67 -0
  495. data/lib/puppet/util/command_line/puppetmasterd +65 -0
  496. data/lib/puppet/util/command_line/puppetqd +53 -0
  497. data/lib/puppet/util/command_line/puppetrun +128 -0
  498. data/lib/puppet/util/command_line/ralsh +89 -0
  499. data/lib/puppet/util/constant_inflector.rb +7 -7
  500. data/lib/puppet/util/diff.rb +59 -56
  501. data/lib/puppet/util/docs.rb +97 -99
  502. data/lib/puppet/util/errors.rb +53 -44
  503. data/lib/puppet/util/execution.rb +15 -15
  504. data/lib/puppet/util/feature.rb +62 -72
  505. data/lib/puppet/util/file_locking.rb +33 -33
  506. data/lib/puppet/util/fileparsing.rb +292 -318
  507. data/lib/puppet/util/filetype.rb +246 -263
  508. data/lib/puppet/util/graph.rb +16 -18
  509. data/lib/puppet/util/inifile.rb +170 -184
  510. data/lib/puppet/util/inline_docs.rb +26 -0
  511. data/lib/puppet/util/instance_loader.rb +58 -58
  512. data/lib/puppet/util/ldap/connection.rb +57 -59
  513. data/lib/puppet/util/ldap/generator.rb +31 -31
  514. data/lib/puppet/util/ldap/manager.rb +233 -235
  515. data/lib/puppet/util/loadedfile.rb +49 -51
  516. data/lib/puppet/util/log.rb +210 -494
  517. data/lib/puppet/util/log/destination.rb +49 -0
  518. data/lib/puppet/util/log/destinations.rb +217 -0
  519. data/lib/puppet/util/log_paths.rb +15 -17
  520. data/lib/puppet/util/logging.rb +34 -13
  521. data/lib/puppet/util/metaid.rb +15 -15
  522. data/lib/puppet/util/methodhelper.rb +24 -26
  523. data/lib/puppet/util/metric.rb +123 -125
  524. data/lib/puppet/util/monkey_patches.rb +21 -20
  525. data/lib/puppet/util/nagios_maker.rb +41 -41
  526. data/lib/puppet/util/package.rb +24 -26
  527. data/lib/puppet/util/pidlock.rb +49 -49
  528. data/lib/puppet/util/posix.rb +115 -115
  529. data/lib/puppet/util/provider_features.rb +147 -155
  530. data/lib/puppet/util/pson.rb +5 -5
  531. data/lib/puppet/util/queue.rb +55 -55
  532. data/lib/puppet/util/queue/stomp.rb +27 -27
  533. data/lib/puppet/util/rails/cache_accumulator.rb +49 -49
  534. data/lib/puppet/util/rails/collection_merger.rb +13 -13
  535. data/lib/puppet/util/rails/reference_serializer.rb +26 -26
  536. data/lib/puppet/util/rdoc.rb +77 -74
  537. data/lib/puppet/util/rdoc/code_objects.rb +235 -217
  538. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +732 -676
  539. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +38 -12
  540. data/lib/puppet/util/rdoc/parser.rb +418 -392
  541. data/lib/puppet/util/reference.rb +168 -174
  542. data/lib/puppet/util/resource_template.rb +17 -17
  543. data/lib/puppet/util/run_mode.rb +81 -0
  544. data/lib/puppet/util/selinux.rb +184 -200
  545. data/lib/puppet/util/settings.rb +886 -919
  546. data/lib/puppet/util/settings/boolean_setting.rb +20 -23
  547. data/lib/puppet/util/settings/file_setting.rb +98 -99
  548. data/lib/puppet/util/settings/setting.rb +71 -87
  549. data/lib/puppet/util/storage.rb +73 -84
  550. data/lib/puppet/util/subclass_loader.rb +59 -66
  551. data/lib/puppet/util/suidmanager.rb +87 -84
  552. data/lib/puppet/util/tagging.rb +37 -39
  553. data/lib/puppet/util/user_attr.rb +14 -14
  554. data/lib/puppet/util/warnings.rb +20 -20
  555. data/lib/puppet/util/zaml.rb +242 -241
  556. data/man/man5/puppet.conf.5 +148 -76
  557. data/man/man8/filebucket.8 +6 -6
  558. data/man/man8/pi.8 +5 -5
  559. data/man/man8/puppet.8 +2 -73
  560. data/man/man8/puppetca.8 +47 -32
  561. data/man/man8/puppetd.8 +118 -76
  562. data/man/man8/puppetdoc.8 +16 -12
  563. data/man/man8/puppetmasterd.8 +4 -4
  564. data/man/man8/puppetqd.8 +4 -4
  565. data/man/man8/puppetrun.8 +23 -22
  566. data/man/man8/ralsh.8 +16 -17
  567. data/spec/fixtures/yaml/test.local.yaml +16 -0
  568. data/spec/integration/application/apply_spec.rb +33 -0
  569. data/spec/integration/configurer_spec.rb +35 -0
  570. data/spec/integration/defaults_spec.rb +258 -0
  571. data/spec/integration/file_serving/content_spec.rb +20 -0
  572. data/spec/integration/file_serving/fileset_spec.rb +14 -0
  573. data/spec/integration/file_serving/metadata_spec.rb +21 -0
  574. data/spec/integration/file_serving/terminus_helper_spec.rb +22 -0
  575. data/spec/integration/indirector/bucket_file/rest_spec.rb +68 -0
  576. data/spec/integration/indirector/catalog/compiler_spec.rb +68 -0
  577. data/spec/integration/indirector/catalog/queue_spec.rb +61 -0
  578. data/spec/integration/indirector/certificate/rest_spec.rb +68 -0
  579. data/spec/integration/indirector/certificate_request/rest_spec.rb +88 -0
  580. data/spec/integration/indirector/certificate_revocation_list/rest_spec.rb +76 -0
  581. data/spec/integration/indirector/direct_file_server_spec.rb +73 -0
  582. data/spec/integration/indirector/file_content/file_server_spec.rb +94 -0
  583. data/spec/integration/indirector/file_metadata/file_server_spec.rb +18 -0
  584. data/spec/integration/indirector/node/ldap_spec.rb +15 -0
  585. data/spec/integration/indirector/report/rest_spec.rb +96 -0
  586. data/spec/integration/indirector/rest_spec.rb +524 -0
  587. data/spec/integration/network/client_spec.rb +19 -0
  588. data/spec/integration/network/formats_spec.rb +110 -0
  589. data/spec/integration/network/handler_spec.rb +25 -0
  590. data/spec/integration/network/server/mongrel_spec.rb +66 -0
  591. data/spec/integration/network/server/webrick_spec.rb +85 -0
  592. data/spec/integration/node/environment_spec.rb +58 -0
  593. data/spec/integration/node/facts_spec.rb +47 -0
  594. data/spec/integration/node_spec.rb +93 -0
  595. data/spec/integration/parser/collector_spec.rb +38 -0
  596. data/spec/integration/parser/compiler_spec.rb +29 -0
  597. data/spec/integration/parser/functions/require_spec.rb +44 -0
  598. data/spec/integration/parser/parser_spec.rb +113 -0
  599. data/spec/integration/provider/mailalias/aliases_spec.rb +25 -0
  600. data/spec/integration/provider/package_spec.rb +26 -0
  601. data/spec/integration/provider/service/init_spec.rb +32 -0
  602. data/spec/integration/reference/providers_spec.rb +17 -0
  603. data/spec/integration/reports_spec.rb +18 -0
  604. data/spec/integration/resource/catalog_spec.rb +61 -0
  605. data/spec/integration/resource/type_collection_spec.rb +96 -0
  606. data/spec/integration/ssl/certificate_authority_spec.rb +135 -0
  607. data/spec/integration/ssl/certificate_request_spec.rb +61 -0
  608. data/spec/integration/ssl/certificate_revocation_list_spec.rb +42 -0
  609. data/spec/integration/ssl/host_spec.rb +90 -0
  610. data/spec/integration/transaction/report_spec.rb +29 -0
  611. data/spec/integration/transaction_spec.rb +284 -0
  612. data/spec/integration/type/file_spec.rb +506 -0
  613. data/spec/integration/type/package_spec.rb +25 -0
  614. data/spec/integration/type/tidy_spec.rb +32 -0
  615. data/spec/integration/type_spec.rb +22 -0
  616. data/spec/integration/util/autoload_spec.rb +114 -0
  617. data/spec/integration/util/feature_spec.rb +54 -0
  618. data/spec/integration/util/file_locking_spec.rb +37 -0
  619. data/spec/integration/util/rdoc/parser_spec.rb +59 -0
  620. data/spec/integration/util/settings_spec.rb +30 -0
  621. data/spec/lib/puppet_spec/files.rb +16 -6
  622. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +27 -27
  623. data/spec/monkey_patches/alias_should_to_must.rb +4 -4
  624. data/spec/shared_behaviours/file_server_terminus.rb +28 -28
  625. data/spec/shared_behaviours/file_serving.rb +53 -53
  626. data/spec/shared_behaviours/memory_terminus.rb +22 -22
  627. data/spec/spec.opts +1 -0
  628. data/spec/spec_helper.rb +61 -18
  629. data/spec/spec_specs/runnable_spec.rb +95 -0
  630. data/spec/unit/agent/locker_spec.rb +100 -0
  631. data/spec/unit/agent_spec.rb +281 -0
  632. data/spec/unit/application/agent_spec.rb +588 -0
  633. data/spec/unit/application/apply_spec.rb +387 -0
  634. data/spec/unit/application/cert_spec.rb +194 -0
  635. data/spec/unit/application/describe_spec.rb +84 -0
  636. data/spec/unit/application/doc_spec.rb +368 -0
  637. data/spec/unit/application/filebucket_spec.rb +223 -0
  638. data/spec/unit/application/kick_spec.rb +313 -0
  639. data/spec/unit/application/master_spec.rb +453 -0
  640. data/spec/unit/application/queue_spec.rb +186 -0
  641. data/spec/unit/application/resource_spec.rb +233 -0
  642. data/spec/unit/application_spec.rb +531 -0
  643. data/spec/unit/configurer/downloader_spec.rb +188 -0
  644. data/spec/unit/configurer/fact_handler_spec.rb +164 -0
  645. data/spec/unit/configurer/plugin_handler_spec.rb +112 -0
  646. data/spec/unit/configurer_spec.rb +494 -0
  647. data/spec/unit/daemon_spec.rb +306 -0
  648. data/spec/unit/dsl/resource_api_spec.rb +181 -0
  649. data/spec/unit/dsl/resource_type_api_spec.rb +46 -0
  650. data/spec/unit/file_bucket/dipper_spec.rb +122 -0
  651. data/spec/unit/file_bucket/file_spec.rb +230 -0
  652. data/spec/unit/file_collection/lookup_spec.rb +46 -0
  653. data/spec/unit/file_collection_spec.rb +53 -0
  654. data/spec/unit/file_serving/base_spec.rb +132 -0
  655. data/spec/unit/file_serving/configuration/parser_spec.rb +181 -0
  656. data/spec/unit/file_serving/configuration_spec.rb +249 -0
  657. data/spec/unit/file_serving/content_spec.rb +118 -0
  658. data/spec/unit/file_serving/fileset_spec.rb +347 -0
  659. data/spec/unit/file_serving/indirection_hooks_spec.rb +63 -0
  660. data/spec/unit/file_serving/metadata_spec.rb +286 -0
  661. data/spec/unit/file_serving/mount/file_spec.rb +196 -0
  662. data/spec/unit/file_serving/mount/modules_spec.rb +63 -0
  663. data/spec/unit/file_serving/mount/plugins_spec.rb +61 -0
  664. data/spec/unit/file_serving/mount_spec.rb +32 -0
  665. data/spec/unit/file_serving/terminus_helper_spec.rb +98 -0
  666. data/spec/unit/indirector/active_record_spec.rb +76 -0
  667. data/spec/unit/indirector/catalog/active_record_spec.rb +141 -0
  668. data/spec/unit/indirector/catalog/compiler_spec.rb +275 -0
  669. data/spec/unit/indirector/catalog/queue_spec.rb +20 -0
  670. data/spec/unit/indirector/catalog/rest_spec.rb +11 -0
  671. data/spec/unit/indirector/catalog/yaml_spec.rb +25 -0
  672. data/spec/unit/indirector/certificate/ca_spec.rb +28 -0
  673. data/spec/unit/indirector/certificate/file_spec.rb +28 -0
  674. data/spec/unit/indirector/certificate/rest_spec.rb +58 -0
  675. data/spec/unit/indirector/certificate_request/ca_spec.rb +19 -0
  676. data/spec/unit/indirector/certificate_request/file_spec.rb +19 -0
  677. data/spec/unit/indirector/certificate_request/rest_spec.rb +23 -0
  678. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +21 -0
  679. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +20 -0
  680. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +23 -0
  681. data/spec/unit/indirector/code_spec.rb +33 -0
  682. data/spec/unit/indirector/direct_file_server_spec.rb +84 -0
  683. data/spec/unit/indirector/envelope_spec.rb +47 -0
  684. data/spec/unit/indirector/exec_spec.rb +56 -0
  685. data/spec/unit/indirector/facts/active_record_spec.rb +104 -0
  686. data/spec/unit/indirector/facts/couch_spec.rb +98 -0
  687. data/spec/unit/indirector/facts/facter_spec.rb +143 -0
  688. data/spec/unit/indirector/facts/rest_spec.rb +11 -0
  689. data/spec/unit/indirector/facts/yaml_spec.rb +26 -0
  690. data/spec/unit/indirector/file_bucket_file/file_spec.rb +290 -0
  691. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +11 -0
  692. data/spec/unit/indirector/file_content/file_server_spec.rb +18 -0
  693. data/spec/unit/indirector/file_content/file_spec.rb +18 -0
  694. data/spec/unit/indirector/file_content/rest_spec.rb +11 -0
  695. data/spec/unit/indirector/file_metadata/file_server_spec.rb +18 -0
  696. data/spec/unit/indirector/file_metadata/file_spec.rb +52 -0
  697. data/spec/unit/indirector/file_metadata/rest_spec.rb +9 -0
  698. data/spec/unit/indirector/file_server_spec.rb +267 -0
  699. data/spec/unit/indirector/file_spec.rb +181 -0
  700. data/spec/unit/indirector/indirection_spec.rb +795 -0
  701. data/spec/unit/indirector/key/ca_spec.rb +28 -0
  702. data/spec/unit/indirector/key/file_spec.rb +104 -0
  703. data/spec/unit/indirector/ldap_spec.rb +143 -0
  704. data/spec/unit/indirector/memory_spec.rb +29 -0
  705. data/spec/unit/indirector/node/active_record_spec.rb +41 -0
  706. data/spec/unit/indirector/node/exec_spec.rb +70 -0
  707. data/spec/unit/indirector/node/ldap_spec.rb +456 -0
  708. data/spec/unit/indirector/node/memory_spec.rb +19 -0
  709. data/spec/unit/indirector/node/plain_spec.rb +19 -0
  710. data/spec/unit/indirector/node/rest_spec.rb +13 -0
  711. data/spec/unit/indirector/node/yaml_spec.rb +25 -0
  712. data/spec/unit/indirector/plain_spec.rb +29 -0
  713. data/spec/unit/indirector/queue_spec.rb +123 -0
  714. data/spec/unit/indirector/report/processor_spec.rb +81 -0
  715. data/spec/unit/indirector/report/rest_spec.rb +28 -0
  716. data/spec/unit/indirector/request_spec.rb +304 -0
  717. data/spec/unit/indirector/resource/ral_spec.rb +129 -0
  718. data/spec/unit/indirector/resource/rest_spec.rb +11 -0
  719. data/spec/unit/indirector/resource_type/parser_spec.rb +75 -0
  720. data/spec/unit/indirector/resource_type/rest_spec.rb +15 -0
  721. data/spec/unit/indirector/rest_spec.rb +455 -0
  722. data/spec/unit/indirector/run/local_spec.rb +20 -0
  723. data/spec/unit/indirector/run/rest_spec.rb +11 -0
  724. data/spec/unit/indirector/ssl_file_spec.rb +281 -0
  725. data/spec/unit/indirector/status/rest_spec.rb +11 -0
  726. data/spec/unit/indirector/terminus_spec.rb +245 -0
  727. data/spec/unit/indirector/yaml_spec.rb +146 -0
  728. data/spec/unit/indirector_spec.rb +157 -0
  729. data/spec/unit/module_spec.rb +547 -0
  730. data/spec/unit/network/authconfig_spec.rb +292 -0
  731. data/spec/unit/network/authstore_spec.rb +370 -0
  732. data/spec/unit/network/client_spec.rb +45 -0
  733. data/spec/unit/network/format_handler_spec.rb +336 -0
  734. data/spec/unit/network/format_spec.rb +198 -0
  735. data/spec/unit/network/formats_spec.rb +337 -0
  736. data/spec/unit/network/handler/fileserver_spec.rb +172 -0
  737. data/spec/unit/network/http/api/v1_spec.rb +122 -0
  738. data/spec/unit/network/http/compression_spec.rb +199 -0
  739. data/spec/unit/network/http/handler_spec.rb +455 -0
  740. data/spec/unit/network/http/mongrel/rest_spec.rb +249 -0
  741. data/spec/unit/network/http/mongrel/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  742. data/spec/unit/network/http/mongrel_spec.rb +131 -0
  743. data/spec/unit/network/http/rack/rest_spec.rb +249 -0
  744. data/spec/unit/network/http/rack/xmlrpc_spec.rb +157 -0
  745. data/spec/unit/network/http/rack_spec.rb +102 -0
  746. data/spec/unit/network/http/webrick/rest_spec.rb +180 -0
  747. data/spec/unit/network/http/webrick/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  748. data/spec/unit/network/http/webrick_spec.rb +339 -0
  749. data/spec/unit/network/http_pool_spec.rb +206 -0
  750. data/spec/unit/network/http_spec.rb +35 -0
  751. data/spec/unit/network/rest_authconfig_spec.rb +148 -0
  752. data/spec/unit/network/rest_authorization_spec.rb +43 -0
  753. data/spec/unit/network/rights_spec.rb +519 -0
  754. data/spec/unit/network/server_spec.rb +534 -0
  755. data/spec/unit/network/xmlrpc/client_spec.rb +171 -0
  756. data/spec/unit/node/environment_spec.rb +248 -0
  757. data/spec/unit/node/facts_spec.rb +102 -0
  758. data/spec/unit/node_spec.rb +210 -0
  759. data/spec/unit/other/selinux_spec.rb +94 -0
  760. data/spec/unit/other/transbucket_spec.rb +188 -0
  761. data/spec/unit/other/transobject_spec.rb +112 -0
  762. data/spec/unit/parameter/value_collection_spec.rb +167 -0
  763. data/spec/unit/parameter/value_spec.rb +88 -0
  764. data/spec/unit/parameter_spec.rb +172 -0
  765. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +73 -0
  766. data/spec/unit/parser/ast/astarray_spec.rb +72 -0
  767. data/spec/unit/parser/ast/asthash_spec.rb +98 -0
  768. data/spec/unit/parser/ast/boolean_operator_spec.rb +53 -0
  769. data/spec/unit/parser/ast/casestatement_spec.rb +161 -0
  770. data/spec/unit/parser/ast/collection_spec.rb +63 -0
  771. data/spec/unit/parser/ast/collexpr_spec.rb +115 -0
  772. data/spec/unit/parser/ast/comparison_operator_spec.rb +116 -0
  773. data/spec/unit/parser/ast/function_spec.rb +83 -0
  774. data/spec/unit/parser/ast/ifstatement_spec.rb +76 -0
  775. data/spec/unit/parser/ast/in_operator_spec.rb +60 -0
  776. data/spec/unit/parser/ast/leaf_spec.rb +362 -0
  777. data/spec/unit/parser/ast/match_operator_spec.rb +50 -0
  778. data/spec/unit/parser/ast/minus_spec.rb +36 -0
  779. data/spec/unit/parser/ast/nop_spec.rb +20 -0
  780. data/spec/unit/parser/ast/not_spec.rb +30 -0
  781. data/spec/unit/parser/ast/relationship_spec.rb +88 -0
  782. data/spec/unit/parser/ast/resource_defaults_spec.rb +22 -0
  783. data/spec/unit/parser/ast/resource_override_spec.rb +51 -0
  784. data/spec/unit/parser/ast/resource_reference_spec.rb +46 -0
  785. data/spec/unit/parser/ast/resource_spec.rb +120 -0
  786. data/spec/unit/parser/ast/selector_spec.rb +139 -0
  787. data/spec/unit/parser/ast/vardef_spec.rb +60 -0
  788. data/spec/unit/parser/ast_spec.rb +111 -0
  789. data/spec/unit/parser/collector_spec.rb +559 -0
  790. data/spec/unit/parser/compiler_spec.rb +754 -0
  791. data/spec/unit/parser/files_spec.rb +201 -0
  792. data/spec/unit/parser/functions/defined_spec.rb +50 -0
  793. data/spec/unit/parser/functions/fqdn_rand_spec.rb +62 -0
  794. data/spec/unit/parser/functions/generate_spec.rb +41 -0
  795. data/spec/unit/parser/functions/inline_template_spec.rb +59 -0
  796. data/spec/unit/parser/functions/realize_spec.rb +51 -0
  797. data/spec/unit/parser/functions/regsubst_spec.rb +192 -0
  798. data/spec/unit/parser/functions/require_spec.rb +74 -0
  799. data/spec/unit/parser/functions/shellquote_spec.rb +81 -0
  800. data/spec/unit/parser/functions/split_spec.rb +49 -0
  801. data/spec/unit/parser/functions/sprintf_spec.rb +41 -0
  802. data/spec/unit/parser/functions/tag_spec.rb +24 -0
  803. data/spec/unit/parser/functions/template_spec.rb +62 -0
  804. data/spec/unit/parser/functions/versioncmp_spec.rb +29 -0
  805. data/spec/unit/parser/functions_spec.rb +102 -0
  806. data/spec/unit/parser/lexer_spec.rb +646 -0
  807. data/spec/unit/parser/parser_spec.rb +412 -0
  808. data/spec/unit/parser/relationship_spec.rb +70 -0
  809. data/spec/unit/parser/resource_spec.rb +564 -0
  810. data/spec/unit/parser/scope_spec.rb +629 -0
  811. data/spec/unit/parser/templatewrapper_spec.rb +144 -0
  812. data/spec/unit/parser/type_loader_spec.rb +201 -0
  813. data/spec/unit/property/ensure_spec.rb +13 -0
  814. data/spec/unit/property/keyvalue_spec.rb +168 -0
  815. data/spec/unit/property/list_spec.rb +166 -0
  816. data/spec/unit/property/ordered_list_spec.rb +64 -0
  817. data/spec/unit/property_spec.rb +410 -0
  818. data/spec/unit/provider/augeas/augeas_spec.rb +413 -0
  819. data/spec/unit/provider/confine/exists_spec.rb +81 -0
  820. data/spec/unit/provider/confine/false_spec.rb +53 -0
  821. data/spec/unit/provider/confine/feature_spec.rb +60 -0
  822. data/spec/unit/provider/confine/true_spec.rb +53 -0
  823. data/spec/unit/provider/confine/variable_spec.rb +107 -0
  824. data/spec/unit/provider/confine_collection_spec.rb +134 -0
  825. data/spec/unit/provider/confine_spec.rb +78 -0
  826. data/spec/unit/provider/confiner_spec.rb +63 -0
  827. data/spec/unit/provider/group/groupadd_spec.rb +31 -0
  828. data/spec/unit/provider/group/ldap_spec.rb +105 -0
  829. data/spec/unit/provider/ldap_spec.rb +248 -0
  830. data/spec/unit/provider/macauthorization_spec.rb +147 -0
  831. data/spec/unit/provider/mcx/mcxcontent_spec.rb +175 -0
  832. data/spec/unit/provider/mount/parsed_spec.rb +193 -0
  833. data/spec/unit/provider/mount_spec.rb +130 -0
  834. data/spec/unit/provider/naginator_spec.rb +58 -0
  835. data/spec/unit/provider/package/aix_spec.rb +66 -0
  836. data/spec/unit/provider/package/apt_spec.rb +145 -0
  837. data/spec/unit/provider/package/dpkg_spec.rb +225 -0
  838. data/spec/unit/provider/package/gem_spec.rb +87 -0
  839. data/spec/unit/provider/package/hpux_spec.rb +52 -0
  840. data/spec/unit/provider/package/nim_spec.rb +42 -0
  841. data/spec/unit/provider/package/pkg_spec.rb +63 -0
  842. data/spec/unit/provider/package/pkgdmg_spec.rb +84 -0
  843. data/spec/unit/provider/package/zypper_spec.rb +81 -0
  844. data/spec/unit/provider/parsedfile_spec.rb +95 -0
  845. data/spec/unit/provider/selboolean_spec.rb +37 -0
  846. data/spec/unit/provider/selmodule_spec.rb +66 -0
  847. data/spec/unit/provider/service/daemontools_spec.rb +166 -0
  848. data/spec/unit/provider/service/debian_spec.rb +89 -0
  849. data/spec/unit/provider/service/init_spec.rb +168 -0
  850. data/spec/unit/provider/service/launchd_spec.rb +200 -0
  851. data/spec/unit/provider/service/redhat_spec.rb +121 -0
  852. data/spec/unit/provider/service/runit_spec.rb +140 -0
  853. data/spec/unit/provider/service/src_spec.rb +97 -0
  854. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +228 -0
  855. data/spec/unit/provider/sshkey/parsed_spec.rb +38 -0
  856. data/spec/unit/provider/user/hpux_spec.rb +25 -0
  857. data/spec/unit/provider/user/ldap_spec.rb +279 -0
  858. data/spec/unit/provider/user/user_role_add_spec.rb +249 -0
  859. data/spec/unit/provider/user/useradd_spec.rb +115 -0
  860. data/spec/unit/provider/zfs/solaris_spec.rb +99 -0
  861. data/spec/unit/provider/zone/solaris_spec.rb +55 -0
  862. data/spec/unit/provider/zpool/solaris_spec.rb +179 -0
  863. data/spec/unit/provider_spec.rb +31 -0
  864. data/spec/unit/puppet_spec.rb +12 -0
  865. data/spec/unit/rails/host_spec.rb +163 -0
  866. data/spec/unit/rails/param_value_spec.rb +49 -0
  867. data/spec/unit/rails/resource_spec.rb +123 -0
  868. data/spec/unit/rails_spec.rb +258 -0
  869. data/spec/unit/relationship_spec.rb +236 -0
  870. data/spec/unit/reports/http_spec.rb +56 -0
  871. data/spec/unit/reports/tagmail_spec.rb +94 -0
  872. data/spec/unit/reports_spec.rb +61 -0
  873. data/spec/unit/resource/catalog_spec.rb +1078 -0
  874. data/spec/unit/resource/status_spec.rb +103 -0
  875. data/spec/unit/resource/type_collection_helper_spec.rb +25 -0
  876. data/spec/unit/resource/type_collection_spec.rb +432 -0
  877. data/spec/unit/resource/type_spec.rb +722 -0
  878. data/spec/unit/resource_spec.rb +818 -0
  879. data/spec/unit/run_spec.rb +137 -0
  880. data/spec/unit/simple_graph_spec.rb +544 -0
  881. data/spec/unit/ssl/base_spec.rb +43 -0
  882. data/spec/unit/ssl/certificate_authority/interface_spec.rb +333 -0
  883. data/spec/unit/ssl/certificate_authority_spec.rb +772 -0
  884. data/spec/unit/ssl/certificate_factory_spec.rb +107 -0
  885. data/spec/unit/ssl/certificate_request_spec.rb +220 -0
  886. data/spec/unit/ssl/certificate_revocation_list_spec.rb +168 -0
  887. data/spec/unit/ssl/certificate_spec.rb +124 -0
  888. data/spec/unit/ssl/host_spec.rb +707 -0
  889. data/spec/unit/ssl/inventory_spec.rb +180 -0
  890. data/spec/unit/ssl/key_spec.rb +198 -0
  891. data/spec/unit/status_spec.rb +31 -0
  892. data/spec/unit/transaction/change_spec.rb +193 -0
  893. data/spec/unit/transaction/event_manager_spec.rb +260 -0
  894. data/spec/unit/transaction/event_spec.rb +108 -0
  895. data/spec/unit/transaction/report_spec.rb +234 -0
  896. data/spec/unit/transaction/resource_harness_spec.rb +401 -0
  897. data/spec/unit/transaction_spec.rb +452 -0
  898. data/spec/unit/transportable_spec.rb +0 -0
  899. data/spec/unit/type/augeas_spec.rb +122 -0
  900. data/spec/unit/type/component_spec.rb +63 -0
  901. data/spec/unit/type/computer_spec.rb +81 -0
  902. data/spec/unit/type/cron_spec.rb +33 -0
  903. data/spec/unit/type/exec_spec.rb +162 -0
  904. data/spec/unit/type/file/checksum_spec.rb +73 -0
  905. data/spec/unit/type/file/content_spec.rb +460 -0
  906. data/spec/unit/type/file/ensure_spec.rb +84 -0
  907. data/spec/unit/type/file/group_spec.rb +123 -0
  908. data/spec/unit/type/file/owner_spec.rb +150 -0
  909. data/spec/unit/type/file/selinux_spec.rb +83 -0
  910. data/spec/unit/type/file/source_spec.rb +272 -0
  911. data/spec/unit/type/file_spec.rb +1070 -0
  912. data/spec/unit/type/filebucket_spec.rb +74 -0
  913. data/spec/unit/type/group_spec.rb +57 -0
  914. data/spec/unit/type/macauthorization_spec.rb +111 -0
  915. data/spec/unit/type/maillist_spec.rb +42 -0
  916. data/spec/unit/type/mcx_spec.rb +100 -0
  917. data/spec/unit/type/mount_spec.rb +261 -0
  918. data/spec/unit/type/nagios_spec.rb +63 -0
  919. data/spec/unit/type/noop_metaparam_spec.rb +37 -0
  920. data/spec/unit/type/package_spec.rb +240 -0
  921. data/spec/unit/type/resources_spec.rb +102 -0
  922. data/spec/unit/type/schedule_spec.rb +333 -0
  923. data/spec/unit/type/selboolean_spec.rb +45 -0
  924. data/spec/unit/type/selmodule_spec.rb +18 -0
  925. data/spec/unit/type/service_spec.rb +222 -0
  926. data/spec/unit/type/ssh_authorized_key_spec.rb +152 -0
  927. data/spec/unit/type/stage_spec.rb +9 -0
  928. data/spec/unit/type/tidy_spec.rb +424 -0
  929. data/spec/unit/type/user_spec.rb +281 -0
  930. data/spec/unit/type/zfs_spec.rb +45 -0
  931. data/spec/unit/type/zone_spec.rb +60 -0
  932. data/spec/unit/type/zpool_spec.rb +110 -0
  933. data/spec/unit/type_spec.rb +566 -0
  934. data/spec/unit/util/autoload/file_cache_spec.rb +159 -0
  935. data/spec/unit/util/autoload_spec.rb +120 -0
  936. data/spec/unit/util/backups_spec.rb +159 -0
  937. data/spec/unit/util/cache_accumulator_spec.rb +75 -0
  938. data/spec/unit/util/cacher_spec.rb +185 -0
  939. data/spec/unit/util/checksums_spec.rb +153 -0
  940. data/spec/unit/util/command_line_spec.rb +108 -0
  941. data/spec/unit/util/constant_inflector_spec.rb +70 -0
  942. data/spec/unit/util/errors_spec.rb +38 -0
  943. data/spec/unit/util/feature_spec.rb +72 -0
  944. data/spec/unit/util/file_locking_spec.rb +156 -0
  945. data/spec/unit/util/filetype_spec.rb +100 -0
  946. data/spec/unit/util/inline_docs_spec.rb +32 -0
  947. data/spec/unit/util/json_spec.rb +21 -0
  948. data/spec/unit/util/ldap/connection_spec.rb +169 -0
  949. data/spec/unit/util/ldap/generator_spec.rb +54 -0
  950. data/spec/unit/util/ldap/manager_spec.rb +654 -0
  951. data/spec/unit/util/loadedfile_spec.rb +65 -0
  952. data/spec/unit/util/log/destinations_spec.rb +24 -0
  953. data/spec/unit/util/log_spec.rb +215 -0
  954. data/spec/unit/util/logging_spec.rb +95 -0
  955. data/spec/unit/util/metric_spec.rb +95 -0
  956. data/spec/unit/util/monkey_patches_spec.rb +7 -0
  957. data/spec/unit/util/nagios_maker_spec.rb +126 -0
  958. data/spec/unit/util/package_spec.rb +21 -0
  959. data/spec/unit/util/posix_spec.rb +256 -0
  960. data/spec/unit/util/queue/stomp_spec.rb +140 -0
  961. data/spec/unit/util/queue_spec.rb +96 -0
  962. data/spec/unit/util/rdoc/parser_spec.rb +540 -0
  963. data/spec/unit/util/rdoc_spec.rb +165 -0
  964. data/spec/unit/util/reference_serializer_spec.rb +52 -0
  965. data/spec/unit/util/resource_template_spec.rb +58 -0
  966. data/spec/unit/util/run_mode_spec.rb +51 -0
  967. data/spec/unit/util/selinux_spec.rb +278 -0
  968. data/spec/unit/util/settings/file_setting_spec.rb +256 -0
  969. data/spec/unit/util/settings_spec.rb +1099 -0
  970. data/spec/unit/util/storage_spec.rb +235 -0
  971. data/spec/unit/util/tagging_spec.rb +102 -0
  972. data/spec/unit/util/user_attr_spec.rb +47 -0
  973. data/spec/unit/util/warnings_spec.rb +39 -0
  974. data/spec/unit/util/zaml_spec.rb +38 -0
  975. data/tasks/rake/git_workflow.rake +1 -1
  976. data/tasks/rake/sign.rake +2 -2
  977. data/test/certmgr/ca.rb +61 -61
  978. data/test/certmgr/certmgr.rb +292 -283
  979. data/test/certmgr/inventory.rb +44 -42
  980. data/test/certmgr/support.rb +78 -77
  981. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -1
  982. data/test/data/snippets/hash.pp +33 -0
  983. data/test/language/ast.rb +68 -117
  984. data/test/language/ast/variable.rb +14 -15
  985. data/test/language/functions.rb +404 -463
  986. data/test/language/parser.rb +670 -1135
  987. data/test/language/scope.rb +198 -402
  988. data/test/language/snippets.rb +439 -447
  989. data/test/language/transportable.rb +67 -66
  990. data/test/lib/puppettest.rb +260 -268
  991. data/test/lib/puppettest/certificates.rb +51 -53
  992. data/test/lib/puppettest/exetest.rb +107 -111
  993. data/test/lib/puppettest/fakes.rb +153 -158
  994. data/test/lib/puppettest/fileparsing.rb +17 -17
  995. data/test/lib/puppettest/filetesting.rb +204 -213
  996. data/test/lib/puppettest/parsertesting.rb +382 -365
  997. data/test/lib/puppettest/railstesting.rb +49 -50
  998. data/test/lib/puppettest/reporttesting.rb +10 -10
  999. data/test/lib/puppettest/resourcetesting.rb +45 -36
  1000. data/test/lib/puppettest/runnable_test.rb +36 -28
  1001. data/test/lib/puppettest/servertest.rb +54 -51
  1002. data/test/lib/puppettest/support/assertions.rb +48 -55
  1003. data/test/lib/puppettest/support/helpers.rb +12 -16
  1004. data/test/lib/puppettest/support/resources.rb +23 -25
  1005. data/test/lib/puppettest/support/utils.rb +138 -148
  1006. data/test/lib/puppettest/testcase.rb +15 -17
  1007. data/test/lib/rake/puppet_test_loader.rb +1 -3
  1008. data/test/lib/rake/puppet_testtask.rb +10 -10
  1009. data/test/network/authconfig.rb +48 -50
  1010. data/test/network/authorization.rb +114 -113
  1011. data/test/network/authstore.rb +454 -406
  1012. data/test/network/client/ca.rb +46 -48
  1013. data/test/network/client/dipper.rb +22 -22
  1014. data/test/network/client_request.rb +20 -20
  1015. data/test/network/handler/ca.rb +251 -252
  1016. data/test/network/handler/fileserver.rb +1071 -1001
  1017. data/test/network/handler/master.rb +58 -58
  1018. data/test/network/handler/report.rb +64 -64
  1019. data/test/network/handler/runner.rb +8 -8
  1020. data/test/network/rights.rb +22 -19
  1021. data/test/network/server/mongrel_test.rb +87 -87
  1022. data/test/network/server/webrick.rb +99 -87
  1023. data/test/network/xmlrpc/client.rb +30 -30
  1024. data/test/network/xmlrpc/processor.rb +52 -53
  1025. data/test/network/xmlrpc/server.rb +10 -11
  1026. data/test/network/xmlrpc/webrick_servlet.rb +21 -18
  1027. data/test/other/provider.rb +69 -84
  1028. data/test/other/puppet.rb +61 -76
  1029. data/test/other/relationships.rb +73 -65
  1030. data/test/other/report.rb +88 -187
  1031. data/test/other/transactions.rb +363 -885
  1032. data/test/puppet/defaults.rb +51 -54
  1033. data/test/puppet/errortest.rb +8 -8
  1034. data/test/puppet/tc_suidmanager.rb +106 -103
  1035. data/test/rails/rails.rb +8 -9
  1036. data/test/rails/railsparameter.rb +60 -54
  1037. data/test/ral/manager/attributes.rb +262 -260
  1038. data/test/ral/manager/instances.rb +77 -78
  1039. data/test/ral/manager/manager.rb +36 -36
  1040. data/test/ral/manager/provider.rb +56 -79
  1041. data/test/ral/manager/type.rb +308 -449
  1042. data/test/ral/providers/cron/crontab.rb +561 -545
  1043. data/test/ral/providers/group.rb +203 -212
  1044. data/test/ral/providers/host/parsed.rb +189 -180
  1045. data/test/ral/providers/mailalias/aliases.rb +40 -40
  1046. data/test/ral/providers/nameservice.rb +21 -21
  1047. data/test/ral/providers/package.rb +207 -214
  1048. data/test/ral/providers/package/aptitude.rb +75 -63
  1049. data/test/ral/providers/package/aptrpm.rb +84 -72
  1050. data/test/ral/providers/parsedfile.rb +510 -509
  1051. data/test/ral/providers/port/parsed.rb +5 -5
  1052. data/test/ral/providers/provider.rb +421 -421
  1053. data/test/ral/providers/service/base.rb +59 -53
  1054. data/test/ral/providers/sshkey/parsed.rb +86 -83
  1055. data/test/ral/providers/user.rb +471 -451
  1056. data/test/ral/providers/user/useradd.rb +168 -177
  1057. data/test/ral/type/cron.rb +406 -393
  1058. data/test/ral/type/exec.rb +721 -641
  1059. data/test/ral/type/file.rb +827 -896
  1060. data/test/ral/type/file/target.rb +295 -251
  1061. data/test/ral/type/fileignoresource.rb +232 -205
  1062. data/test/ral/type/filesources.rb +446 -485
  1063. data/test/ral/type/host.rb +124 -153
  1064. data/test/ral/type/mailalias.rb +28 -31
  1065. data/test/ral/type/port.rb +7 -7
  1066. data/test/ral/type/resources.rb +88 -93
  1067. data/test/ral/type/service.rb +19 -19
  1068. data/test/ral/type/sshkey.rb +120 -160
  1069. data/test/ral/type/user.rb +132 -414
  1070. data/test/ral/type/yumrepo.rb +95 -92
  1071. data/test/ral/type/zone.rb +316 -287
  1072. data/test/test +1 -1
  1073. data/test/util/classgen.rb +182 -167
  1074. data/test/util/execution.rb +18 -18
  1075. data/test/util/fileparsing.rb +580 -540
  1076. data/test/util/inifile.rb +117 -106
  1077. data/test/util/instance_loader.rb +29 -29
  1078. data/test/util/log.rb +202 -198
  1079. data/test/util/metrics.rb +51 -51
  1080. data/test/util/package.rb +11 -12
  1081. data/test/util/pidlock.rb +115 -115
  1082. data/test/util/settings.rb +613 -557
  1083. data/test/util/storage.rb +71 -88
  1084. data/test/util/subclass_loader.rb +69 -72
  1085. data/test/util/utiltest.rb +204 -203
  1086. metadata +493 -395
  1087. data/lib/puppet/agent/runner.rb +0 -65
  1088. data/lib/puppet/application/pi.rb +0 -214
  1089. data/lib/puppet/application/puppet.rb +0 -181
  1090. data/lib/puppet/application/puppetca.rb +0 -71
  1091. data/lib/puppet/application/puppetd.rb +0 -250
  1092. data/lib/puppet/application/puppetdoc.rb +0 -224
  1093. data/lib/puppet/application/puppetmasterd.rb +0 -168
  1094. data/lib/puppet/application/puppetqd.rb +0 -96
  1095. data/lib/puppet/application/puppetrun.rb +0 -210
  1096. data/lib/puppet/application/ralsh.rb +0 -152
  1097. data/lib/puppet/checksum.rb +0 -57
  1098. data/lib/puppet/indirector/checksum/file.rb +0 -33
  1099. data/lib/puppet/indirector/runner/rest.rb +0 -7
  1100. data/lib/puppet/network/client/dipper.rb +0 -85
  1101. data/lib/puppet/network/client/resource.rb +0 -38
  1102. data/lib/puppet/network/handler/resource.rb +0 -190
  1103. data/lib/puppet/parser/ast/definition.rb +0 -207
  1104. data/lib/puppet/parser/ast/hostclass.rb +0 -95
  1105. data/lib/puppet/parser/ast/node.rb +0 -42
  1106. data/lib/puppet/parser/interpreter.rb +0 -84
  1107. data/lib/puppet/parser/loaded_code.rb +0 -119
  1108. data/lib/puppet/parser/resource/reference.rb +0 -99
  1109. data/lib/puppet/resource/reference.rb +0 -90
  1110. data/lib/puppet/util/config_store.rb +0 -61
  1111. data/spec/integration/application/puppet.rb +0 -33
  1112. data/spec/integration/bin/puppetmasterd.rb +0 -122
  1113. data/spec/integration/checksum.rb +0 -48
  1114. data/spec/integration/configurer.rb +0 -18
  1115. data/spec/integration/defaults.rb +0 -230
  1116. data/spec/integration/file_serving/content.rb +0 -20
  1117. data/spec/integration/file_serving/fileset.rb +0 -14
  1118. data/spec/integration/file_serving/metadata.rb +0 -21
  1119. data/spec/integration/file_serving/terminus_helper.rb +0 -22
  1120. data/spec/integration/indirector/catalog/compiler.rb +0 -67
  1121. data/spec/integration/indirector/catalog/queue.rb +0 -61
  1122. data/spec/integration/indirector/certificate/rest.rb +0 -70
  1123. data/spec/integration/indirector/certificate_request/rest.rb +0 -88
  1124. data/spec/integration/indirector/certificate_revocation_list/rest.rb +0 -76
  1125. data/spec/integration/indirector/direct_file_server.rb +0 -73
  1126. data/spec/integration/indirector/file_content/file_server.rb +0 -94
  1127. data/spec/integration/indirector/file_metadata/file_server.rb +0 -18
  1128. data/spec/integration/indirector/node/ldap.rb +0 -15
  1129. data/spec/integration/indirector/report/rest.rb +0 -94
  1130. data/spec/integration/indirector/rest.rb +0 -523
  1131. data/spec/integration/network/client.rb +0 -19
  1132. data/spec/integration/network/formats.rb +0 -110
  1133. data/spec/integration/network/handler.rb +0 -25
  1134. data/spec/integration/network/server/mongrel.rb +0 -66
  1135. data/spec/integration/network/server/webrick.rb +0 -86
  1136. data/spec/integration/node.rb +0 -93
  1137. data/spec/integration/node/environment.rb +0 -58
  1138. data/spec/integration/node/facts.rb +0 -47
  1139. data/spec/integration/parser/compiler.rb +0 -29
  1140. data/spec/integration/parser/functions/require.rb +0 -86
  1141. data/spec/integration/provider/mailalias/aliases.rb +0 -25
  1142. data/spec/integration/provider/package.rb +0 -26
  1143. data/spec/integration/provider/service/init.rb +0 -32
  1144. data/spec/integration/reference/providers.rb +0 -17
  1145. data/spec/integration/reports.rb +0 -18
  1146. data/spec/integration/resource/catalog.rb +0 -61
  1147. data/spec/integration/ssl/certificate_authority.rb +0 -135
  1148. data/spec/integration/ssl/certificate_request.rb +0 -61
  1149. data/spec/integration/ssl/certificate_revocation_list.rb +0 -42
  1150. data/spec/integration/ssl/host.rb +0 -90
  1151. data/spec/integration/transaction.rb +0 -66
  1152. data/spec/integration/transaction/report.rb +0 -29
  1153. data/spec/integration/type.rb +0 -22
  1154. data/spec/integration/type/file.rb +0 -477
  1155. data/spec/integration/type/package.rb +0 -25
  1156. data/spec/integration/type/tidy.rb +0 -27
  1157. data/spec/integration/util/autoload.rb +0 -114
  1158. data/spec/integration/util/feature.rb +0 -54
  1159. data/spec/integration/util/file_locking.rb +0 -37
  1160. data/spec/integration/util/settings.rb +0 -27
  1161. data/spec/unit/agent.rb +0 -259
  1162. data/spec/unit/agent/locker.rb +0 -100
  1163. data/spec/unit/agent/runner.rb +0 -118
  1164. data/spec/unit/application.rb +0 -420
  1165. data/spec/unit/application/filebucket.rb +0 -220
  1166. data/spec/unit/application/pi.rb +0 -84
  1167. data/spec/unit/application/puppet.rb +0 -399
  1168. data/spec/unit/application/puppetca.rb +0 -142
  1169. data/spec/unit/application/puppetd.rb +0 -502
  1170. data/spec/unit/application/puppetdoc.rb +0 -360
  1171. data/spec/unit/application/puppetmasterd.rb +0 -457
  1172. data/spec/unit/application/puppetqd.rb +0 -186
  1173. data/spec/unit/application/puppetrun.rb +0 -289
  1174. data/spec/unit/application/ralsh.rb +0 -254
  1175. data/spec/unit/configurer.rb +0 -339
  1176. data/spec/unit/configurer/downloader.rb +0 -188
  1177. data/spec/unit/configurer/fact_handler.rb +0 -164
  1178. data/spec/unit/configurer/plugin_handler.rb +0 -112
  1179. data/spec/unit/daemon.rb +0 -287
  1180. data/spec/unit/file_collection.rb +0 -53
  1181. data/spec/unit/file_collection/lookup.rb +0 -46
  1182. data/spec/unit/file_serving/base.rb +0 -132
  1183. data/spec/unit/file_serving/configuration.rb +0 -249
  1184. data/spec/unit/file_serving/configuration/parser.rb +0 -181
  1185. data/spec/unit/file_serving/content.rb +0 -110
  1186. data/spec/unit/file_serving/fileset.rb +0 -347
  1187. data/spec/unit/file_serving/indirection_hooks.rb +0 -63
  1188. data/spec/unit/file_serving/metadata.rb +0 -286
  1189. data/spec/unit/file_serving/mount.rb +0 -32
  1190. data/spec/unit/file_serving/mount/file.rb +0 -196
  1191. data/spec/unit/file_serving/mount/modules.rb +0 -63
  1192. data/spec/unit/file_serving/mount/plugins.rb +0 -61
  1193. data/spec/unit/file_serving/terminus_helper.rb +0 -98
  1194. data/spec/unit/indirector.rb +0 -157
  1195. data/spec/unit/indirector/active_record.rb +0 -76
  1196. data/spec/unit/indirector/catalog/active_record.rb +0 -141
  1197. data/spec/unit/indirector/catalog/compiler.rb +0 -261
  1198. data/spec/unit/indirector/catalog/queue.rb +0 -20
  1199. data/spec/unit/indirector/catalog/rest.rb +0 -11
  1200. data/spec/unit/indirector/catalog/yaml.rb +0 -25
  1201. data/spec/unit/indirector/certificate/ca.rb +0 -28
  1202. data/spec/unit/indirector/certificate/file.rb +0 -28
  1203. data/spec/unit/indirector/certificate/rest.rb +0 -57
  1204. data/spec/unit/indirector/certificate_request/ca.rb +0 -19
  1205. data/spec/unit/indirector/certificate_request/file.rb +0 -19
  1206. data/spec/unit/indirector/certificate_request/rest.rb +0 -23
  1207. data/spec/unit/indirector/certificate_revocation_list/ca.rb +0 -21
  1208. data/spec/unit/indirector/certificate_revocation_list/file.rb +0 -20
  1209. data/spec/unit/indirector/certificate_revocation_list/rest.rb +0 -23
  1210. data/spec/unit/indirector/checksum/file.rb +0 -139
  1211. data/spec/unit/indirector/code.rb +0 -33
  1212. data/spec/unit/indirector/direct_file_server.rb +0 -84
  1213. data/spec/unit/indirector/envelope.rb +0 -47
  1214. data/spec/unit/indirector/exec.rb +0 -56
  1215. data/spec/unit/indirector/facts/active_record.rb +0 -104
  1216. data/spec/unit/indirector/facts/facter.rb +0 -142
  1217. data/spec/unit/indirector/facts/rest.rb +0 -11
  1218. data/spec/unit/indirector/facts/yaml.rb +0 -26
  1219. data/spec/unit/indirector/file.rb +0 -161
  1220. data/spec/unit/indirector/file_content/file.rb +0 -18
  1221. data/spec/unit/indirector/file_content/file_server.rb +0 -18
  1222. data/spec/unit/indirector/file_content/rest.rb +0 -11
  1223. data/spec/unit/indirector/file_metadata/file.rb +0 -52
  1224. data/spec/unit/indirector/file_metadata/file_server.rb +0 -18
  1225. data/spec/unit/indirector/file_metadata/rest.rb +0 -9
  1226. data/spec/unit/indirector/file_server.rb +0 -267
  1227. data/spec/unit/indirector/indirection.rb +0 -795
  1228. data/spec/unit/indirector/key/ca.rb +0 -28
  1229. data/spec/unit/indirector/key/file.rb +0 -104
  1230. data/spec/unit/indirector/ldap.rb +0 -143
  1231. data/spec/unit/indirector/memory.rb +0 -29
  1232. data/spec/unit/indirector/node/active_record.rb +0 -34
  1233. data/spec/unit/indirector/node/exec.rb +0 -69
  1234. data/spec/unit/indirector/node/ldap.rb +0 -458
  1235. data/spec/unit/indirector/node/memory.rb +0 -19
  1236. data/spec/unit/indirector/node/plain.rb +0 -19
  1237. data/spec/unit/indirector/node/rest.rb +0 -13
  1238. data/spec/unit/indirector/node/yaml.rb +0 -25
  1239. data/spec/unit/indirector/plain.rb +0 -29
  1240. data/spec/unit/indirector/queue.rb +0 -123
  1241. data/spec/unit/indirector/report/processor.rb +0 -81
  1242. data/spec/unit/indirector/report/rest.rb +0 -28
  1243. data/spec/unit/indirector/request.rb +0 -308
  1244. data/spec/unit/indirector/rest.rb +0 -403
  1245. data/spec/unit/indirector/runner/rest.rb +0 -11
  1246. data/spec/unit/indirector/ssl_file.rb +0 -280
  1247. data/spec/unit/indirector/terminus.rb +0 -245
  1248. data/spec/unit/indirector/yaml.rb +0 -145
  1249. data/spec/unit/module.rb +0 -247
  1250. data/spec/unit/network/authconfig.rb +0 -292
  1251. data/spec/unit/network/authstore.rb +0 -370
  1252. data/spec/unit/network/client.rb +0 -45
  1253. data/spec/unit/network/client/dipper.rb +0 -16
  1254. data/spec/unit/network/format.rb +0 -191
  1255. data/spec/unit/network/format_handler.rb +0 -327
  1256. data/spec/unit/network/formats.rb +0 -365
  1257. data/spec/unit/network/handler/fileserver.rb +0 -176
  1258. data/spec/unit/network/http.rb +0 -35
  1259. data/spec/unit/network/http/api/v1.rb +0 -122
  1260. data/spec/unit/network/http/handler.rb +0 -458
  1261. data/spec/unit/network/http/mongrel.rb +0 -131
  1262. data/spec/unit/network/http/mongrel/rest.rb +0 -232
  1263. data/spec/unit/network/http/rack.rb +0 -102
  1264. data/spec/unit/network/http/rack/rest.rb +0 -199
  1265. data/spec/unit/network/http/rack/xmlrpc.rb +0 -157
  1266. data/spec/unit/network/http/webrick.rb +0 -339
  1267. data/spec/unit/network/http/webrick/rest.rb +0 -157
  1268. data/spec/unit/network/http_pool.rb +0 -206
  1269. data/spec/unit/network/rest_authconfig.rb +0 -146
  1270. data/spec/unit/network/rest_authorization.rb +0 -43
  1271. data/spec/unit/network/rights.rb +0 -519
  1272. data/spec/unit/network/server.rb +0 -534
  1273. data/spec/unit/network/xmlrpc/client.rb +0 -171
  1274. data/spec/unit/node.rb +0 -200
  1275. data/spec/unit/node/environment.rb +0 -187
  1276. data/spec/unit/node/facts.rb +0 -97
  1277. data/spec/unit/other/checksum.rb +0 -92
  1278. data/spec/unit/other/selinux.rb +0 -85
  1279. data/spec/unit/other/transbucket.rb +0 -188
  1280. data/spec/unit/other/transobject.rb +0 -112
  1281. data/spec/unit/parameter.rb +0 -405
  1282. data/spec/unit/parser/ast.rb +0 -41
  1283. data/spec/unit/parser/ast/arithmetic_operator.rb +0 -73
  1284. data/spec/unit/parser/ast/astarray.rb +0 -72
  1285. data/spec/unit/parser/ast/boolean_operator.rb +0 -53
  1286. data/spec/unit/parser/ast/casestatement.rb +0 -135
  1287. data/spec/unit/parser/ast/collection.rb +0 -63
  1288. data/spec/unit/parser/ast/collexpr.rb +0 -115
  1289. data/spec/unit/parser/ast/comparison_operator.rb +0 -92
  1290. data/spec/unit/parser/ast/definition.rb +0 -213
  1291. data/spec/unit/parser/ast/function.rb +0 -83
  1292. data/spec/unit/parser/ast/hostclass.rb +0 -148
  1293. data/spec/unit/parser/ast/ifstatement.rb +0 -76
  1294. data/spec/unit/parser/ast/leaf.rb +0 -298
  1295. data/spec/unit/parser/ast/match_operator.rb +0 -50
  1296. data/spec/unit/parser/ast/minus.rb +0 -36
  1297. data/spec/unit/parser/ast/node.rb +0 -145
  1298. data/spec/unit/parser/ast/nop.rb +0 -20
  1299. data/spec/unit/parser/ast/not.rb +0 -30
  1300. data/spec/unit/parser/ast/resource.rb +0 -103
  1301. data/spec/unit/parser/ast/resource_override.rb +0 -51
  1302. data/spec/unit/parser/ast/resource_reference.rb +0 -69
  1303. data/spec/unit/parser/ast/selector.rb +0 -155
  1304. data/spec/unit/parser/ast/vardef.rb +0 -47
  1305. data/spec/unit/parser/collector.rb +0 -556
  1306. data/spec/unit/parser/compiler.rb +0 -604
  1307. data/spec/unit/parser/files.rb +0 -190
  1308. data/spec/unit/parser/functions.rb +0 -83
  1309. data/spec/unit/parser/functions/fqdn_rand.rb +0 -62
  1310. data/spec/unit/parser/functions/generate.rb +0 -41
  1311. data/spec/unit/parser/functions/inline_template.rb +0 -59
  1312. data/spec/unit/parser/functions/realize.rb +0 -51
  1313. data/spec/unit/parser/functions/regsubst.rb +0 -168
  1314. data/spec/unit/parser/functions/require.rb +0 -69
  1315. data/spec/unit/parser/functions/shellquote.rb +0 -92
  1316. data/spec/unit/parser/functions/split.rb +0 -51
  1317. data/spec/unit/parser/functions/sprintf.rb +0 -42
  1318. data/spec/unit/parser/functions/template.rb +0 -62
  1319. data/spec/unit/parser/functions/versioncmp.rb +0 -29
  1320. data/spec/unit/parser/interpreter.rb +0 -147
  1321. data/spec/unit/parser/lexer.rb +0 -731
  1322. data/spec/unit/parser/loaded_code.rb +0 -215
  1323. data/spec/unit/parser/parser.rb +0 -423
  1324. data/spec/unit/parser/resource.rb +0 -529
  1325. data/spec/unit/parser/resource/reference.rb +0 -111
  1326. data/spec/unit/parser/scope.rb +0 -387
  1327. data/spec/unit/parser/templatewrapper.rb +0 -134
  1328. data/spec/unit/property.rb +0 -305
  1329. data/spec/unit/property/keyvalue.rb +0 -168
  1330. data/spec/unit/property/list.rb +0 -166
  1331. data/spec/unit/property/ordered_list.rb +0 -64
  1332. data/spec/unit/provider.rb +0 -31
  1333. data/spec/unit/provider/augeas/augeas.rb +0 -413
  1334. data/spec/unit/provider/confine.rb +0 -78
  1335. data/spec/unit/provider/confine/exists.rb +0 -81
  1336. data/spec/unit/provider/confine/false.rb +0 -53
  1337. data/spec/unit/provider/confine/feature.rb +0 -60
  1338. data/spec/unit/provider/confine/true.rb +0 -53
  1339. data/spec/unit/provider/confine/variable.rb +0 -107
  1340. data/spec/unit/provider/confine_collection.rb +0 -134
  1341. data/spec/unit/provider/confiner.rb +0 -63
  1342. data/spec/unit/provider/group/groupadd.rb +0 -31
  1343. data/spec/unit/provider/group/ldap.rb +0 -105
  1344. data/spec/unit/provider/ldap.rb +0 -248
  1345. data/spec/unit/provider/macauthorization.rb +0 -147
  1346. data/spec/unit/provider/mcx/mcxcontent.rb +0 -175
  1347. data/spec/unit/provider/mount.rb +0 -130
  1348. data/spec/unit/provider/mount/parsed.rb +0 -194
  1349. data/spec/unit/provider/naginator.rb +0 -58
  1350. data/spec/unit/provider/package/apt.rb +0 -138
  1351. data/spec/unit/provider/package/dpkg.rb +0 -170
  1352. data/spec/unit/provider/package/gem.rb +0 -87
  1353. data/spec/unit/provider/package/hpux.rb +0 -52
  1354. data/spec/unit/provider/package/pkgdmg.rb +0 -73
  1355. data/spec/unit/provider/parsedfile.rb +0 -95
  1356. data/spec/unit/provider/selboolean.rb +0 -37
  1357. data/spec/unit/provider/selmodule.rb +0 -66
  1358. data/spec/unit/provider/service/daemontools.rb +0 -166
  1359. data/spec/unit/provider/service/debian.rb +0 -89
  1360. data/spec/unit/provider/service/init.rb +0 -121
  1361. data/spec/unit/provider/service/launchd.rb +0 -200
  1362. data/spec/unit/provider/service/redhat.rb +0 -96
  1363. data/spec/unit/provider/service/runit.rb +0 -140
  1364. data/spec/unit/provider/ssh_authorized_key/parsed.rb +0 -206
  1365. data/spec/unit/provider/sshkey/parsed.rb +0 -38
  1366. data/spec/unit/provider/user/hpux.rb +0 -25
  1367. data/spec/unit/provider/user/ldap.rb +0 -279
  1368. data/spec/unit/provider/user/user_role_add.rb +0 -249
  1369. data/spec/unit/provider/user/useradd.rb +0 -115
  1370. data/spec/unit/provider/zfs/solaris.rb +0 -99
  1371. data/spec/unit/provider/zone/solaris.rb +0 -42
  1372. data/spec/unit/provider/zpool/solaris.rb +0 -179
  1373. data/spec/unit/rails.rb +0 -133
  1374. data/spec/unit/rails/host.rb +0 -163
  1375. data/spec/unit/rails/param_value.rb +0 -49
  1376. data/spec/unit/rails/resource.rb +0 -107
  1377. data/spec/unit/relationship.rb +0 -236
  1378. data/spec/unit/reports.rb +0 -61
  1379. data/spec/unit/resource.rb +0 -495
  1380. data/spec/unit/resource/catalog.rb +0 -1053
  1381. data/spec/unit/resource/reference.rb +0 -111
  1382. data/spec/unit/simple_graph.rb +0 -551
  1383. data/spec/unit/ssl/certificate.rb +0 -124
  1384. data/spec/unit/ssl/certificate_authority.rb +0 -741
  1385. data/spec/unit/ssl/certificate_authority/interface.rb +0 -269
  1386. data/spec/unit/ssl/certificate_factory.rb +0 -107
  1387. data/spec/unit/ssl/certificate_request.rb +0 -193
  1388. data/spec/unit/ssl/certificate_revocation_list.rb +0 -168
  1389. data/spec/unit/ssl/host.rb +0 -704
  1390. data/spec/unit/ssl/inventory.rb +0 -180
  1391. data/spec/unit/ssl/key.rb +0 -198
  1392. data/spec/unit/transaction.rb +0 -146
  1393. data/spec/unit/transaction/change.rb +0 -187
  1394. data/spec/unit/transaction/event.rb +0 -25
  1395. data/spec/unit/transaction/report.rb +0 -40
  1396. data/spec/unit/type.rb +0 -426
  1397. data/spec/unit/type/augeas.rb +0 -106
  1398. data/spec/unit/type/component.rb +0 -63
  1399. data/spec/unit/type/computer.rb +0 -78
  1400. data/spec/unit/type/cron.rb +0 -33
  1401. data/spec/unit/type/exec.rb +0 -116
  1402. data/spec/unit/type/file.rb +0 -810
  1403. data/spec/unit/type/file/checksum.rb +0 -28
  1404. data/spec/unit/type/file/content.rb +0 -297
  1405. data/spec/unit/type/file/ensure.rb +0 -84
  1406. data/spec/unit/type/file/group.rb +0 -123
  1407. data/spec/unit/type/file/owner.rb +0 -143
  1408. data/spec/unit/type/file/selinux.rb +0 -84
  1409. data/spec/unit/type/file/source.rb +0 -264
  1410. data/spec/unit/type/filebucket.rb +0 -74
  1411. data/spec/unit/type/group.rb +0 -39
  1412. data/spec/unit/type/macauthorization.rb +0 -111
  1413. data/spec/unit/type/maillist.rb +0 -42
  1414. data/spec/unit/type/mcx.rb +0 -100
  1415. data/spec/unit/type/mount.rb +0 -211
  1416. data/spec/unit/type/nagios.rb +0 -63
  1417. data/spec/unit/type/noop_metaparam.rb +0 -37
  1418. data/spec/unit/type/package.rb +0 -236
  1419. data/spec/unit/type/resources.rb +0 -89
  1420. data/spec/unit/type/schedule.rb +0 -333
  1421. data/spec/unit/type/selboolean.rb +0 -45
  1422. data/spec/unit/type/selmodule.rb +0 -18
  1423. data/spec/unit/type/service.rb +0 -230
  1424. data/spec/unit/type/ssh_authorized_key.rb +0 -140
  1425. data/spec/unit/type/tidy.rb +0 -422
  1426. data/spec/unit/type/user.rb +0 -285
  1427. data/spec/unit/type/zfs.rb +0 -45
  1428. data/spec/unit/type/zone.rb +0 -20
  1429. data/spec/unit/type/zpool.rb +0 -110
  1430. data/spec/unit/util/autoload.rb +0 -133
  1431. data/spec/unit/util/autoload/file_cache.rb +0 -183
  1432. data/spec/unit/util/backups.rb +0 -159
  1433. data/spec/unit/util/cache_accumulator.rb +0 -69
  1434. data/spec/unit/util/cacher.rb +0 -185
  1435. data/spec/unit/util/checksums.rb +0 -113
  1436. data/spec/unit/util/constant_inflector.rb +0 -70
  1437. data/spec/unit/util/feature.rb +0 -72
  1438. data/spec/unit/util/file_locking.rb +0 -115
  1439. data/spec/unit/util/filetype.rb +0 -100
  1440. data/spec/unit/util/json.rb +0 -21
  1441. data/spec/unit/util/ldap/connection.rb +0 -169
  1442. data/spec/unit/util/ldap/generator.rb +0 -54
  1443. data/spec/unit/util/ldap/manager.rb +0 -654
  1444. data/spec/unit/util/loadedfile.rb +0 -65
  1445. data/spec/unit/util/log.rb +0 -202
  1446. data/spec/unit/util/metric.rb +0 -95
  1447. data/spec/unit/util/monkey_patches.rb +0 -103
  1448. data/spec/unit/util/nagios_maker.rb +0 -126
  1449. data/spec/unit/util/package.rb +0 -21
  1450. data/spec/unit/util/posix.rb +0 -256
  1451. data/spec/unit/util/queue.rb +0 -96
  1452. data/spec/unit/util/queue/stomp.rb +0 -140
  1453. data/spec/unit/util/reference_serializer.rb +0 -52
  1454. data/spec/unit/util/resource_template.rb +0 -58
  1455. data/spec/unit/util/selinux.rb +0 -280
  1456. data/spec/unit/util/settings.rb +0 -1058
  1457. data/spec/unit/util/settings/file_setting.rb +0 -248
  1458. data/spec/unit/util/storage.rb +0 -248
  1459. data/spec/unit/util/tagging.rb +0 -102
  1460. data/spec/unit/util/user_attr.rb +0 -47
  1461. data/spec/unit/util/warnings.rb +0 -39
  1462. data/spec/unit/util/zaml.rb +0 -38
  1463. data/test/language/ast/casestatement.rb +0 -103
  1464. data/test/language/ast/resource.rb +0 -58
  1465. data/test/language/ast/resource_reference.rb +0 -77
  1466. data/test/language/ast/selector.rb +0 -61
  1467. data/test/language/resource.rb +0 -172
  1468. data/test/lib/puppettest/support/collection.rb +0 -29
  1469. data/test/network/client/resource.rb +0 -52
  1470. data/test/network/handler/bucket.rb +0 -313
  1471. data/test/network/handler/resource.rb +0 -250
  1472. data/test/other/dsl.rb +0 -215
  1473. data/test/other/events.rb +0 -124
  1474. data/test/ral/type/group.rb +0 -170
@@ -9,229 +9,130 @@ require 'puppettest'
9
9
  require 'puppettest/reporttesting'
10
10
 
11
11
  class TestReports < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::Reporttesting
12
+ include PuppetTest
13
+ include PuppetTest::Reporttesting
14
14
 
15
- def mkreport
16
- # First do some work
17
- objects = []
18
- 6.times do |i|
19
- file = tempfile()
15
+ def mkreport
16
+ # First do some work
17
+ objects = []
18
+ 6.times do |i|
19
+ file = tempfile
20
20
 
21
- # Make every third file
22
- File.open(file, "w") { |f| f.puts "" } if i % 3 == 0
21
+ # Make every third file
22
+ File.open(file, "w") { |f| f.puts "" } if i % 3 == 0
23
23
 
24
- objects << Puppet::Type.type(:file).new(
25
- :path => file,
26
- :ensure => "file"
27
- )
28
- end
29
-
30
- config = mk_catalog(*objects)
31
- # So the report works out.
32
- config.retrieval_duration = 0.001
33
- trans = config.apply
34
24
 
35
- return trans.generate_report
25
+ objects << Puppet::Type.type(:file).new(
26
+
27
+ :path => file,
28
+
29
+ :ensure => "file"
30
+ )
36
31
  end
37
32
 
38
- # Make sure we can use reports as log destinations.
39
- def test_reports_as_log_destinations
40
- report = fakereport
33
+ config = mk_catalog(*objects)
34
+ # So the report works out.
35
+ config.retrieval_duration = 0.001
36
+ trans = config.apply
41
37
 
42
- assert_nothing_raised {
43
- Puppet::Util::Log.newdestination(report)
44
- }
38
+ report = Puppet::Transaction::Report.new
39
+ trans.add_metrics_to_report(report)
45
40
 
46
- # Now make a file for testing logging
47
- file = Puppet::Type.type(:file).new(:path => tempfile(), :ensure => "file")
48
- file.finish
41
+ report
42
+ end
49
43
 
50
- log = nil
51
- assert_nothing_raised {
52
- log = file.log "This is a message, yo"
53
- }
44
+ # Make sure we can use reports as log destinations.
45
+ def test_reports_as_log_destinations
46
+ report = fakereport
54
47
 
55
- assert(report.logs.include?(log), "Report did not get log message")
48
+ assert_nothing_raised {
49
+ Puppet::Util::Log.newdestination(report)
50
+ }
56
51
 
57
- assert_nothing_raised {
58
- Puppet::Util::Log.close(report)
59
- }
52
+ # Now make a file for testing logging
53
+ file = Puppet::Type.type(:file).new(:path => tempfile, :ensure => "file")
54
+ file.finish
60
55
 
61
- log = file.log "This is another message, yo"
56
+ log = nil
57
+ assert_nothing_raised {
58
+ log = file.log "This is a message, yo"
59
+ }
62
60
 
63
- assert(! report.logs.include?(log), "Report got log message after close")
64
- end
61
+ assert(report.logs.include?(log), "Report did not get log message")
65
62
 
66
- def test_newmetric
67
- report = nil
68
- assert_nothing_raised {
69
- report = Puppet::Transaction::Report.new
70
- }
71
-
72
- assert_nothing_raised {
73
- report.newmetric(:mymetric,
74
- :total => 12,
75
- :done => 6
76
- )
77
- }
78
- end
63
+ assert_nothing_raised {
64
+ Puppet::Util::Log.close(report)
65
+ }
79
66
 
80
- def test_store_report
81
- # Create a bunch of log messages in an array.
82
- report = Puppet::Transaction::Report.new
67
+ log = file.log "This is another message, yo"
83
68
 
84
- # We have to reuse reporting here because of something going on in the
85
- # server/report.rb file
86
- Puppet.settings.use(:main, :puppetmasterd)
69
+ assert(! report.logs.include?(log), "Report got log message after close")
70
+ end
87
71
 
88
- 3.times { |i|
89
- log = Puppet.warning("Report test message %s" % i)
72
+ def test_store_report
73
+ # Create a bunch of log messages in an array.
74
+ report = Puppet::Transaction::Report.new
90
75
 
91
- report.newlog(log)
92
- }
76
+ # We have to reuse reporting here because of something going on in the
77
+ # server/report.rb file
78
+ Puppet.settings.use(:main, :master)
93
79
 
94
- assert_nothing_raised do
95
- report.extend(Puppet::Reports.report(:store))
96
- end
80
+ 3.times { |i|
81
+ log = Puppet.warning("Report test message #{i}")
97
82
 
98
- yaml = YAML.dump(report)
83
+ report << log
84
+ }
99
85
 
100
- file = report.process
101
-
102
- assert(FileTest.exists?(file), "report file did not get created")
103
- assert_equal(yaml, File.read(file), "File did not get written")
86
+ assert_nothing_raised do
87
+ report.extend(Puppet::Reports.report(:store))
104
88
  end
105
89
 
106
- if Puppet.features.rrd?
107
- def test_rrdgraph_report
108
- Puppet.settings.use(:main, :metrics)
109
- report = mkreport
110
-
111
- assert(! report.metrics.empty?, "Did not receive any metrics")
112
-
113
- assert_nothing_raised do
114
- report.extend(Puppet::Reports.report(:rrdgraph))
115
- end
116
-
117
- assert_nothing_raised {
118
- report.process
119
- }
90
+ yaml = YAML.dump(report)
120
91
 
121
- hostdir = nil
122
- assert_nothing_raised do
123
- hostdir = report.hostdir
124
- end
92
+ file = report.process
125
93
 
126
- assert(hostdir, "Did not get hostdir back")
94
+ assert(FileTest.exists?(file), "report file did not get created")
95
+ assert_equal(yaml, File.read(file), "File did not get written")
96
+ end
127
97
 
128
- assert(FileTest.directory?(hostdir), "Host rrd dir did not get created")
129
- index = File.join(hostdir, "index.html")
130
- assert(FileTest.exists?(index), "index file was not created")
98
+ if Puppet.features.rrd?
99
+ def test_rrdgraph_report
100
+ Puppet.settings.use(:main, :metrics)
101
+ report = mkreport
131
102
 
132
- # Now make sure it creaets each of the rrd files
133
- %w{changes resources time}.each do |type|
134
- file = File.join(hostdir, "%s.rrd" % type)
135
- assert(FileTest.exists?(file), "Did not create rrd file for %s" % type)
103
+ assert(! report.metrics.empty?, "Did not receive any metrics")
136
104
 
137
- daily = file.sub ".rrd", "-daily.png"
138
- assert(FileTest.exists?(daily),
139
- "Did not make daily graph for %s" % type)
140
- end
141
-
142
- end
143
- else
144
- $stderr.puts "Install RRD for metric reporting tests"
105
+ assert_nothing_raised do
106
+ report.extend(Puppet::Reports.report(:rrdgraph))
145
107
  end
146
108
 
147
- def test_tagmail_parsing
148
- report = Object.new
149
- report.extend(Puppet::Reports.report(:tagmail))
150
-
151
- passers = File.join(datadir, "reports", "tagmail_passers.conf")
152
- assert(FileTest.exists?(passers), "no passers file %s" % passers)
153
-
154
- File.readlines(passers).each do |line|
155
- assert_nothing_raised("Could not parse %s" % line.inspect) do
156
- report.parse(line)
157
- end
158
- end
159
-
160
- # Now make sure the failers fail
161
- failers = File.join(datadir, "reports", "tagmail_failers.conf")
162
- assert(FileTest.exists?(failers), "no failers file %s" % failers)
109
+ assert_nothing_raised {
110
+ report.process
111
+ }
163
112
 
164
- File.readlines(failers).each do |line|
165
- assert_raise(ArgumentError, "Parsed %s" % line.inspect) do
166
- report.parse(line)
167
- end
168
- end
113
+ hostdir = nil
114
+ assert_nothing_raised do
115
+ hostdir = report.hostdir
169
116
  end
170
117
 
171
- def test_tagmail_parsing_results
172
- report = Object.new
173
- report.extend(Puppet::Reports.report(:tagmail))
174
- # Now test a few specific lines to make sure we get the results we want
175
- {
176
- "tag: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag}, []],
177
- "tag, other: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag other}, []],
178
- "tag-other: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag-other}, []],
179
- "tag, !other: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag}, %w{other}],
180
- "tag, !other, one, !two: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag one}, %w{other two}],
181
- "tag: abuse@domain.com, other@domain.com" => [%w{abuse@domain.com other@domain.com}, %w{tag}, []]
182
-
183
- }.each do |line, results|
184
- assert_nothing_raised("Failed to parse %s" % line.inspect) do
185
- assert_equal(results, report.parse(line).shift, "line %s returned incorrect results %s" % [line.inspect, results.inspect])
186
- end
187
- end
188
- end
189
-
190
- def test_tagmail_matching
191
- report = Puppet::Transaction::Report.new
192
- Puppet::Util::Log.close
193
- [%w{one}, %w{one two}, %w{one two three}, %w{one two three four}].each do |tags|
194
- log = Puppet::Util::Log.new(:level => :notice, :message => tags.join(" "), :tags => tags)
195
-
196
- report << log
197
- end
198
-
199
- list = report.logs.collect { |l| l.to_report }
200
-
201
- report.extend(Puppet::Reports.report(:tagmail))
202
-
203
- {
204
- [%w{abuse@domain.com}, %w{all}, []] => list,
205
- [%w{abuse@domain.com}, %w{all}, %w{three}] => list[0..1],
206
- [%w{abuse@domain.com}, %w{one}, []] => list,
207
- [%w{abuse@domain.com}, %w{two}, []] => list[1..3],
208
- [%w{abuse@domain.com}, %w{two}, %w{three}] => list[1..1],
209
- [%w{abuse@domain.com}, %w{}, %w{one}] => nil
210
- }.each do |args, expected|
211
- results = nil
212
- assert_nothing_raised("Could not match with %s" % args.inspect) do
213
- results = report.match([args])
214
- end
215
-
216
- if expected
217
- assert_equal([args[0], expected.join("\n")], results[0], "did get correct results for %s" % args.inspect)
218
- else
219
- assert_nil(results[0], "got a report for %s" % args.inspect)
220
- end
221
- end
222
- end
118
+ assert(hostdir, "Did not get hostdir back")
223
119
 
224
- def test_summary
225
- report = mkreport
120
+ assert(FileTest.directory?(hostdir), "Host rrd dir did not get created")
121
+ index = File.join(hostdir, "index.html")
122
+ assert(FileTest.exists?(index), "index file was not created")
226
123
 
227
- summary = nil
228
- assert_nothing_raised("Could not create report summary") do
229
- summary = report.summary
230
- end
124
+ # Now make sure it creaets each of the rrd files
125
+ %w{changes resources time}.each do |type|
126
+ file = File.join(hostdir, "#{type}.rrd")
127
+ assert(FileTest.exists?(file), "Did not create rrd file for #{type}")
231
128
 
232
- %w{Changes Total Resources}.each do |main|
233
- assert(summary.include?(main), "Summary did not include info for %s" % main)
234
- end
129
+ daily = file.sub ".rrd", "-daily.png"
130
+ assert(FileTest.exists?(daily), "Did not make daily graph for #{type}")
235
131
  end
132
+
133
+ end
134
+ else
135
+ $stderr.puts "Install RRD for metric reporting tests"
136
+ end
236
137
  end
237
138
 
@@ -2,955 +2,433 @@
2
2
 
3
3
  require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
+ require 'mocha'
5
6
  require 'puppet'
6
7
  require 'puppettest'
7
- require 'mocha'
8
8
  require 'puppettest/support/resources'
9
9
  require 'puppettest/support/utils'
10
10
 
11
11
  class TestTransactions < Test::Unit::TestCase
12
- include PuppetTest::FileTesting
13
- include PuppetTest::Support::Resources
14
- include PuppetTest::Support::Utils
15
- class Fakeprop <Puppet::Property
16
- initvars()
17
-
18
- attr_accessor :path, :is, :should, :name
19
- def should_to_s(value)
20
- value.to_s
21
- end
22
- def insync?(foo)
23
- true
24
- end
25
- def info(*args)
26
- false
27
- end
12
+ include PuppetTest::FileTesting
13
+ include PuppetTest::Support::Resources
14
+ include PuppetTest::Support::Utils
15
+ class Fakeprop <Puppet::Property
16
+ initvars
28
17
 
29
- def set(value)
30
- # eh
31
- end
32
-
33
- def log(msg)
34
- end
18
+ attr_accessor :path, :is, :should, :name
19
+ def should_to_s(value)
20
+ value.to_s
35
21
  end
36
-
37
-
38
- def mkgenerator(&block)
39
- $finished = []
40
- cleanup { $finished = nil }
41
-
42
- # Create a bogus type that generates new instances with shorter
43
- type = Puppet::Type.newtype(:generator) do
44
- newparam(:name, :namevar => true)
45
- def finish
46
- $finished << self.name
47
- end
48
- end
49
- if block
50
- type.class_eval(&block)
51
- end
52
- cleanup do
53
- Puppet::Type.rmtype(:generator)
54
- end
55
-
56
- return type
22
+ def insync?(foo)
23
+ true
57
24
  end
58
-
59
- # Create a new type that generates instances with shorter names.
60
- def mkreducer(&block)
61
- type = mkgenerator() do
62
- def eval_generate
63
- ret = []
64
- if title.length > 1
65
- ret << self.class.new(:title => title[0..-2])
66
- else
67
- return nil
68
- end
69
- ret
70
- end
71
- end
72
-
73
- if block
74
- type.class_eval(&block)
75
- end
76
-
77
- return type
25
+ def info(*args)
26
+ false
78
27
  end
79
28
 
80
- def test_reports
81
- path1 = tempfile()
82
- path2 = tempfile()
83
- objects = []
84
- objects << Puppet::Type.type(:file).new(
85
- :path => path1,
86
- :content => "yayness"
87
- )
88
- objects << Puppet::Type.type(:file).new(
89
- :path => path2,
90
- :content => "booness"
91
- )
92
-
93
- trans = assert_events([:file_created, :file_created], *objects)
94
-
95
- report = nil
96
-
97
- assert_nothing_raised {
98
- report = trans.generate_report
99
- }
100
-
101
- # First test the report logs
102
- assert(report.logs.length > 0, "Did not get any report logs")
103
-
104
- report.logs.each do |obj|
105
- assert_instance_of(Puppet::Util::Log, obj)
106
- end
107
-
108
- # Then test the metrics
109
- metrics = report.metrics
110
-
111
- assert(metrics, "Did not get any metrics")
112
- assert(metrics.length > 0, "Did not get any metrics")
113
-
114
- assert(metrics.has_key?("resources"), "Did not get object metrics")
115
- assert(metrics.has_key?("changes"), "Did not get change metrics")
116
-
117
- metrics.each do |name, metric|
118
- assert_instance_of(Puppet::Util::Metric, metric)
119
- end
29
+ def set(value)
30
+ # eh
120
31
  end
121
32
 
122
- def test_prefetch
123
- # Create a type just for testing prefetch
124
- name = :prefetchtesting
125
- $prefetched = false
126
- type = Puppet::Type.newtype(name) do
127
- newparam(:name) {}
128
- end
129
-
130
- cleanup do
131
- Puppet::Type.rmtype(name)
132
- end
133
-
134
- # Now create a provider
135
- type.provide(:prefetch) do
136
- def self.prefetch(resources)
137
- $prefetched = resources
138
- end
139
- end
140
-
141
- # Now create an instance
142
- inst = type.new :name => "yay"
143
-
144
- # Create a transaction
145
- trans = Puppet::Transaction.new(mk_catalog(inst))
33
+ def log(msg)
34
+ end
35
+ end
146
36
 
147
- # Make sure prefetch works
148
- assert_nothing_raised do
149
- trans.prefetch
150
- end
151
37
 
152
- assert_equal({inst.title => inst}, $prefetched, "type prefetch was not called")
38
+ def mkgenerator(&block)
39
+ $finished = []
40
+ cleanup { $finished = nil }
153
41
 
154
- # Now make sure it gets called from within evaluate()
155
- $prefetched = false
156
- assert_nothing_raised do
157
- trans.evaluate
158
- end
159
-
160
- assert_equal({inst.title => inst}, $prefetched, "evaluate did not call prefetch")
42
+ # Create a bogus type that generates new instances with shorter
43
+ type = Puppet::Type.newtype(:generator) do
44
+ newparam(:name, :namevar => true)
45
+ def finish
46
+ $finished << self.name
47
+ end
161
48
  end
162
-
163
- def test_refreshes_generate_events
164
- path = tempfile()
165
- firstpath = tempfile()
166
- secondpath = tempfile()
167
- file = Puppet::Type.type(:file).new(:title => "file", :path => path, :content => "yayness")
168
- first = Puppet::Type.type(:exec).new(:title => "first",
169
- :command => "/bin/echo first > #{firstpath}",
170
- :subscribe => Puppet::Resource::Reference.new(:file, path),
171
- :refreshonly => true
172
- )
173
- second = Puppet::Type.type(:exec).new(:title => "second",
174
- :command => "/bin/echo second > #{secondpath}",
175
- :subscribe => Puppet::Resource::Reference.new(:exec, "first"),
176
- :refreshonly => true
177
- )
178
-
179
- assert_apply(file, first, second)
180
-
181
- assert(FileTest.exists?(secondpath), "Refresh did not generate an event")
49
+ type.class_eval(&block) if block
50
+ cleanup do
51
+ Puppet::Type.rmtype(:generator)
182
52
  end
183
53
 
184
- unless %x{groups}.chomp.split(/ /).length > 1
185
- $stderr.puts "You must be a member of more than one group to test transactions"
186
- else
187
- def ingroup(gid)
188
- require 'etc'
189
- begin
190
- group = Etc.getgrgid(gid)
191
- rescue => detail
192
- puts "Could not retrieve info for group %s: %s" % [gid, detail]
193
- return nil
194
- end
195
-
196
- return @groups.include?(group.name)
197
- end
54
+ type
55
+ end
198
56
 
199
- def setup
200
- super
201
- @groups = %x{groups}.chomp.split(/ /)
202
- unless @groups.length > 1
203
- p @groups
204
- raise "You must be a member of more than one group to test this"
57
+ # Create a new type that generates instances with shorter names.
58
+ def mkreducer(&block)
59
+ type = mkgenerator do
60
+ def eval_generate
61
+ ret = []
62
+ if title.length > 1
63
+ ret << self.class.new(:title => title[0..-2])
64
+ else
65
+ return nil
205
66
  end
67
+ ret
68
+ end
206
69
  end
207
70
 
208
- def newfile(hash = {})
209
- tmpfile = tempfile()
210
- File.open(tmpfile, "w") { |f| f.puts rand(100) }
211
-
212
- # XXX now, because os x apparently somehow allows me to make a file
213
- # owned by a group i'm not a member of, i have to verify that
214
- # the file i just created is owned by one of my groups
215
- # grrr
216
- unless ingroup(File.stat(tmpfile).gid)
217
- Puppet.info "Somehow created file in non-member group %s; fixing" %
218
- File.stat(tmpfile).gid
219
-
220
- require 'etc'
221
- firstgr = @groups[0]
222
- unless firstgr.is_a?(Integer)
223
- str = Etc.getgrnam(firstgr)
224
- firstgr = str.gid
225
- end
226
- File.chown(nil, firstgr, tmpfile)
227
- end
71
+ type.class_eval(&block) if block
228
72
 
229
- hash[:name] = tmpfile
230
- assert_nothing_raised() {
231
- return Puppet::Type.type(:file).new(hash)
232
- }
233
- end
73
+ type
74
+ end
234
75
 
235
- def newexec(file)
236
- assert_nothing_raised() {
237
- return Puppet::Type.type(:exec).new(
238
- :name => "touch %s" % file,
239
- :path => "/bin:/usr/bin:/sbin:/usr/sbin",
240
- :returns => 0
241
- )
242
- }
76
+ def test_prefetch
77
+ # Create a type just for testing prefetch
78
+ name = :prefetchtesting
79
+ $prefetched = false
80
+ type = Puppet::Type.newtype(name) do
81
+ newparam(:name) {}
243
82
  end
244
83
 
245
- # modify a file and then roll the modifications back
246
- def test_filerollback
247
- transaction = nil
248
- file = newfile()
249
-
250
- properties = {}
251
- check = [:group,:mode]
252
- file[:check] = check
253
-
254
- assert_nothing_raised() {
255
- file.retrieve
256
- }
257
-
258
- assert_nothing_raised() {
259
- check.each { |property|
260
- value = file.property(property).retrieve
261
- assert(value)
262
- properties[property] = value
263
- }
264
- }
265
-
266
-
267
- component = mk_catalog("file",file)
268
- require 'etc'
269
- groupname = Etc.getgrgid(File.stat(file.name).gid).name
270
- assert_nothing_raised() {
271
- # Find a group that it's not set to
272
- group = @groups.find { |group| group != groupname }
273
- unless group
274
- raise "Could not find suitable group"
275
- end
276
- file[:group] = group
277
-
278
- file[:mode] = "755"
279
- }
280
- trans = assert_events([:file_changed, :file_changed], component)
281
- file.retrieve
282
-
283
- assert_rollback_events(trans, [:file_changed, :file_changed], "file")
284
-
285
- assert_nothing_raised() {
286
- file.retrieve
287
- }
288
- properties.each { |property,value|
289
- assert_equal(
290
- value, file.value(property), "File %s remained %s" % [property, file.value(property)]
291
- )
292
- }
84
+ cleanup do
85
+ Puppet::Type.rmtype(name)
293
86
  end
294
87
 
295
- # test that services are correctly restarted and that work is done
296
- # in the right order
297
- def test_refreshing
298
- transaction = nil
299
- file = newfile()
300
- execfile = File.join(tmpdir(), "exectestingness")
301
- exec = newexec(execfile)
302
- properties = {}
303
- check = [:group,:mode]
304
- file[:check] = check
305
- file[:group] = @groups[0]
306
-
307
- config = mk_catalog(file)
308
- config.apply
309
-
310
- @@tmpfiles << execfile
311
-
312
- # 'subscribe' expects an array of arrays
313
- exec[:subscribe] = Puppet::Resource::Reference.new(file.class.name,file.name)
314
- exec[:refreshonly] = true
315
-
316
- assert_nothing_raised() {
317
- file.retrieve
318
- exec.retrieve
319
- }
320
-
321
- check.each { |property|
322
- properties[property] = file.value(property)
323
- }
324
- assert_nothing_raised() {
325
- file[:mode] = "755"
326
- }
327
-
328
- # Make a new catalog so the resource relationships get
329
- # set up.
330
- config = mk_catalog(file, exec)
331
-
332
- trans = assert_events([:file_changed, :triggered], config)
333
-
334
- assert(FileTest.exists?(execfile), "Execfile does not exist")
335
- File.unlink(execfile)
336
- assert_nothing_raised() {
337
- file[:group] = @groups[1]
338
- }
339
-
340
- trans = assert_events([:file_changed, :triggered], config)
341
- assert(FileTest.exists?(execfile), "Execfile does not exist")
88
+ # Now create a provider
89
+ type.provide(:prefetch) do
90
+ def self.prefetch(resources)
91
+ $prefetched = resources
92
+ end
342
93
  end
343
94
 
344
- # Verify that one component requiring another causes the contained
345
- # resources in the requiring component to get refreshed.
346
- def test_refresh_across_two_components
347
- transaction = nil
348
- file = newfile()
349
- execfile = File.join(tmpdir(), "exectestingness2")
350
- @@tmpfiles << execfile
351
- exec = newexec(execfile)
352
- properties = {}
353
- check = [:group,:mode]
354
- file[:check] = check
355
- file[:group] = @groups[0]
356
- assert_apply(file)
357
-
358
- config = Puppet::Resource::Catalog.new
359
- fcomp = Puppet::Type.type(:component).new(:name => "file")
360
- config.add_resource fcomp
361
- config.add_resource file
362
- config.add_edge(fcomp, file)
363
-
364
- ecomp = Puppet::Type.type(:component).new(:name => "exec")
365
- config.add_resource ecomp
366
- config.add_resource exec
367
- config.add_edge(ecomp, exec)
368
-
369
- # 'subscribe' expects an array of arrays
370
- #component[:require] = [[file.class.name,file.name]]
371
- ecomp[:subscribe] = fcomp.ref
372
- exec[:refreshonly] = true
373
-
374
- trans = assert_events([], config)
375
-
376
- assert_nothing_raised() {
377
- file[:group] = @groups[1]
378
- file[:mode] = "755"
379
- }
380
-
381
- trans = assert_events([:file_changed, :file_changed, :triggered], config)
382
- end
95
+ # Now create an instance
96
+ inst = type.new :name => "yay"
383
97
 
384
- # Make sure that multiple subscriptions get triggered.
385
- def test_multisubs
386
- path = tempfile()
387
- file1 = tempfile()
388
- file2 = tempfile()
389
- file = Puppet::Type.type(:file).new(
390
- :path => path,
391
- :ensure => "file"
392
- )
393
- exec1 = Puppet::Type.type(:exec).new(
394
- :path => ENV["PATH"],
395
- :command => "touch %s" % file1,
396
- :refreshonly => true,
397
- :subscribe => Puppet::Resource::Reference.new(:file, path)
398
- )
399
- exec2 = Puppet::Type.type(:exec).new(
400
- :path => ENV["PATH"],
401
- :command => "touch %s" % file2,
402
- :refreshonly => true,
403
- :subscribe => Puppet::Resource::Reference.new(:file, path)
404
- )
405
-
406
- assert_apply(file, exec1, exec2)
407
- assert(FileTest.exists?(file1), "File 1 did not get created")
408
- assert(FileTest.exists?(file2), "File 2 did not get created")
409
- end
98
+ # Create a transaction
99
+ trans = Puppet::Transaction.new(mk_catalog(inst))
410
100
 
411
- # Make sure that a failed trigger doesn't result in other events not
412
- # getting triggered.
413
- def test_failedrefreshes
414
- path = tempfile()
415
- newfile = tempfile()
416
- file = Puppet::Type.type(:file).new(
417
- :path => path,
418
- :ensure => "file"
419
- )
420
- exec1 = Puppet::Type.type(:exec).new(
421
- :path => ENV["PATH"],
422
- :command => "touch /this/cannot/possibly/exist",
423
- :logoutput => true,
424
- :refreshonly => true,
425
- :subscribe => file,
426
- :title => "one"
427
- )
428
- exec2 = Puppet::Type.type(:exec).new(
429
- :path => ENV["PATH"],
430
- :command => "touch %s" % newfile,
431
- :logoutput => true,
432
- :refreshonly => true,
433
- :subscribe => [file, exec1],
434
- :title => "two"
435
- )
436
-
437
- assert_apply(file, exec1, exec2)
438
- assert(FileTest.exists?(newfile), "Refresh file did not get created")
101
+ # Make sure prefetch works
102
+ assert_nothing_raised do
103
+ trans.prefetch
439
104
  end
440
105
 
441
- # Make sure that unscheduled and untagged objects still respond to events
442
- def test_unscheduled_and_untagged_response
443
- Puppet::Type.type(:schedule).mkdefaultschedules
444
- Puppet[:ignoreschedules] = false
445
- file = Puppet::Type.type(:file).new(
446
- :name => tempfile(),
447
- :ensure => "file",
448
- :backup => false
449
- )
450
-
451
- fname = tempfile()
452
- exec = Puppet::Type.type(:exec).new(
453
- :name => "touch %s" % fname,
454
- :path => "/usr/bin:/bin",
455
- :schedule => "monthly",
456
- :subscribe => Puppet::Resource::Reference.new("file", file.name)
457
- )
458
-
459
- config = mk_catalog(file, exec)
460
-
461
- # Run it once
462
- assert_apply(config)
463
- assert(FileTest.exists?(fname), "File did not get created")
464
-
465
- assert(!exec.scheduled?, "Exec is somehow scheduled")
466
-
467
- # Now remove it, so it can get created again
468
- File.unlink(fname)
469
-
470
- file[:content] = "some content"
471
-
472
- assert_events([:file_changed, :triggered], config)
106
+ assert_equal({inst.title => inst}, $prefetched, "type prefetch was not called")
473
107
 
474
- assert(FileTest.exists?(fname), "File did not get recreated")
475
-
476
- # Now remove it, so it can get created again
477
- File.unlink(fname)
478
-
479
- # And tag our exec
480
- exec.tag("testrun")
481
-
482
- # And our file, so it runs
483
- file.tag("norun")
484
-
485
- Puppet[:tags] = "norun"
486
-
487
- file[:content] = "totally different content"
488
-
489
- assert(! file.insync?(file.retrieve), "Uh, file is in sync?")
490
-
491
- assert_events([:file_changed, :triggered], config)
492
- assert(FileTest.exists?(fname), "File did not get recreated")
108
+ # Now make sure it gets called from within evaluate
109
+ $prefetched = false
110
+ assert_nothing_raised do
111
+ trans.evaluate
493
112
  end
494
113
 
495
- def test_failed_reqs_mean_no_run
496
- exec = Puppet::Type.type(:exec).new(
497
- :command => "/bin/mkdir /this/path/cannot/possibly/exit",
498
- :title => "mkdir"
499
- )
500
-
501
- file1 = Puppet::Type.type(:file).new(
502
- :title => "file1",
503
- :path => tempfile(),
504
- :require => exec,
505
- :ensure => :file
506
- )
507
-
508
- file2 = Puppet::Type.type(:file).new(
509
- :title => "file2",
510
- :path => tempfile(),
511
- :require => file1,
512
- :ensure => :file
513
- )
514
-
515
- config = mk_catalog(exec, file1, file2)
516
-
517
- assert_apply(config)
518
-
519
- assert(! FileTest.exists?(file1[:path]),
520
- "File got created even tho its dependency failed")
521
- assert(! FileTest.exists?(file2[:path]),
522
- "File got created even tho its deep dependency failed")
523
- end
524
- end
525
-
526
- # We need to generate resources before we prefetch them, else generated
527
- # resources that require prefetching don't work.
528
- def test_generate_before_prefetch
529
- config = mk_catalog()
530
- trans = Puppet::Transaction.new(config)
114
+ assert_equal({inst.title => inst}, $prefetched, "evaluate did not call prefetch")
115
+ end
531
116
 
532
- generate = nil
533
- prefetch = nil
534
- trans.expects(:generate).with { |*args| generate = Time.now; true }
535
- trans.expects(:prefetch).with { |*args| ! generate.nil? }
536
- trans.prepare
537
- return
538
-
539
- resource = Puppet::Type.type(:file).new :ensure => :present, :path => tempfile()
540
- other_resource = mock 'generated'
541
- def resource.generate
542
- [other_resource]
543
- end
117
+ # We need to generate resources before we prefetch them, else generated
118
+ # resources that require prefetching don't work.
119
+ def test_generate_before_prefetch
120
+ config = mk_catalog
121
+ trans = Puppet::Transaction.new(config)
544
122
 
123
+ generate = nil
124
+ prefetch = nil
125
+ trans.expects(:generate).with { |*args| generate = Time.now; true }
126
+ trans.expects(:prefetch).with { |*args| ! generate.nil? }
127
+ trans.prepare
128
+ return
545
129
 
546
- config = mk_catalog(yay, rah)
547
- trans = Puppet::Transaction.new(config)
548
-
549
- assert_nothing_raised do
550
- trans.generate
551
- end
552
-
553
- %w{ya ra y r}.each do |name|
554
- assert(trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
555
- "Generated %s was not a vertex" % name)
556
- assert($finished.include?(name), "%s was not finished" % name)
557
- end
130
+ resource = Puppet::Type.type(:file).new :ensure => :present, :path => tempfile
131
+ other_resource = mock 'generated'
132
+ def resource.generate
133
+ [other_resource]
558
134
  end
559
135
 
560
- def test_ignore_tags?
561
- config = Puppet::Resource::Catalog.new
562
- config.host_config = true
563
- transaction = Puppet::Transaction.new(config)
564
- assert(! transaction.ignore_tags?, "Ignoring tags when applying a host catalog")
565
136
 
566
- config.host_config = false
567
- transaction = Puppet::Transaction.new(config)
568
- assert(transaction.ignore_tags?, "Not ignoring tags when applying a non-host catalog")
569
- end
137
+ config = mk_catalog(yay, rah)
138
+ trans = Puppet::Transaction.new(config)
570
139
 
571
- def test_missing_tags?
572
- resource = stub 'resource', :tagged? => true
573
- config = Puppet::Resource::Catalog.new
574
-
575
- # Mark it as a host config so we don't care which test is first
576
- config.host_config = true
577
- transaction = Puppet::Transaction.new(config)
578
- assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when none are set")
579
-
580
- # host catalogs pay attention to tags, no one else does.
581
- Puppet[:tags] = "three,four"
582
- config.host_config = false
583
- transaction = Puppet::Transaction.new(config)
584
- assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when not running a host catalog")
585
-
586
- #
587
- config.host_config = true
588
- transaction = Puppet::Transaction.new(config)
589
- assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when running a host catalog and all tags are present")
590
-
591
- transaction = Puppet::Transaction.new(config)
592
- resource.stubs :tagged? => false
593
- assert(transaction.missing_tags?(resource), "Considered a resource not to be missing tags when running a host catalog and tags are missing")
140
+ assert_nothing_raised do
141
+ trans.generate
594
142
  end
595
143
 
596
- # Make sure changes generated by eval_generated resources have proxies
597
- # set to the top-level resource.
598
- def test_proxy_resources
599
- type = mkreducer do
600
- def evaluate
601
- return Puppet::Transaction::Change.new(Fakeprop.new(
602
- :path => :path, :is => "start_value", :should => "desired_value", :name => self.name, :resource => "fake_parent"), :is)
603
- end
604
- end
605
-
606
- resource = type.new :name => "test"
607
- config = mk_catalog(resource)
608
- trans = Puppet::Transaction.new(config)
609
- trans.prepare
610
-
611
- assert_nothing_raised do
612
- trans.eval_resource(resource)
613
- end
614
-
615
- changes = trans.instance_variable_get("@changes")
616
-
617
- assert(changes.length > 0, "did not get any changes")
618
-
619
- changes.each do |change|
620
- assert_equal(resource.object_id, change.resource.object_id, "change did not get proxy set correctly")
621
- end
622
- end
623
-
624
- # Make sure changes in contained files still generate callback events.
625
- def test_generated_callbacks
626
- dir = tempfile()
627
- maker = tempfile()
628
- Dir.mkdir(dir)
629
- file = File.join(dir, "file")
630
- File.open(file, "w") { |f| f.puts "" }
631
- File.chmod(0644, file)
632
- File.chmod(0755, dir) # So only the child file causes a change
633
-
634
- dirobj = Puppet::Type.type(:file).new :mode => "755", :recurse => true, :path => dir
635
- exec = Puppet::Type.type(:exec).new :title => "make",
636
- :command => "touch #{maker}", :path => ENV['PATH'], :refreshonly => true,
637
- :subscribe => dirobj
638
-
639
- assert_apply(dirobj, exec)
640
- assert(FileTest.exists?(maker), "Did not make callback file")
144
+ %w{ya ra y r}.each do |name|
145
+ assert(trans.catalog.vertex?(Puppet::Type.type(:generator)[name]), "Generated #{name} was not a vertex")
146
+ assert($finished.include?(name), "#{name} was not finished")
641
147
  end
148
+ end
642
149
 
643
- # Yay, this out to be fun.
644
- def test_trigger
645
- $triggered = []
646
- cleanup { $triggered = nil }
647
- trigger = Class.new do
648
- attr_accessor :name
649
- include Puppet::Util::Logging
650
- def initialize(name)
651
- @name = name
652
- end
653
- def ref
654
- self.name
655
- end
656
- def refresh
657
- $triggered << self.name
658
- end
659
-
660
- def to_s
661
- self.name
662
- end
663
- end
664
-
665
- # Make a graph with some stuff in it.
666
- graph = Puppet::Resource::Catalog.new
667
-
668
- # Add a non-triggering edge.
669
- a = trigger.new(:a)
670
- b = trigger.new(:b)
671
- c = trigger.new(:c)
672
- nope = Puppet::Relationship.new(a, b)
673
- yep = Puppet::Relationship.new(a, c, {:callback => :refresh})
674
- graph.add_edge(nope)
675
-
676
- # And a triggering one.
677
- graph.add_edge(yep)
150
+ def test_ignore_tags?
151
+ config = Puppet::Resource::Catalog.new
152
+ config.host_config = true
153
+ transaction = Puppet::Transaction.new(config)
154
+ assert(! transaction.ignore_tags?, "Ignoring tags when applying a host catalog")
678
155
 
679
- # Create our transaction
680
- trans = Puppet::Transaction.new(graph)
156
+ config.host_config = false
157
+ transaction = Puppet::Transaction.new(config)
158
+ assert(transaction.ignore_tags?, "Not ignoring tags when applying a non-host catalog")
159
+ end
681
160
 
682
- # Set the non-triggering on
683
- assert_nothing_raised do
684
- trans.set_trigger(nope)
685
- end
161
+ def test_missing_tags?
162
+ resource = Puppet::Type.type(:notify).new :title => "foo"
163
+ resource.stubs(:tagged?).returns true
164
+ config = Puppet::Resource::Catalog.new
686
165
 
687
- assert(! trans.targeted?(b), "b is incorrectly targeted")
166
+ # Mark it as a host config so we don't care which test is first
167
+ config.host_config = true
168
+ transaction = Puppet::Transaction.new(config)
169
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when none are set")
688
170
 
689
- # Now set the other
690
- assert_nothing_raised do
691
- trans.set_trigger(yep)
692
- end
693
- assert(trans.targeted?(c), "c is not targeted")
171
+ # host catalogs pay attention to tags, no one else does.
172
+ Puppet[:tags] = "three,four"
173
+ config.host_config = false
174
+ transaction = Puppet::Transaction.new(config)
175
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when not running a host catalog")
694
176
 
695
- # Now trigger our three resources
696
- assert_nothing_raised do
697
- assert_nil(trans.trigger(a), "a somehow triggered something")
698
- end
699
- assert_nothing_raised do
700
- assert_nil(trans.trigger(b), "b somehow triggered something")
701
- end
702
- assert_equal([], $triggered,"got something in triggered")
703
- result = nil
704
- assert_nothing_raised do
705
- result = trans.trigger(c)
706
- end
707
- assert(result, "c did not trigger anything")
708
- assert_instance_of(Array, result)
709
- event = result.shift
710
- assert_instance_of(Puppet::Transaction::Event, event)
711
- assert_equal(:triggered, event.name, "event was not set correctly")
712
- assert_equal(c, event.source, "source was not set correctly")
713
-
714
- assert(trans.triggered?(c, :refresh),
715
- "Transaction did not store the trigger")
716
- end
177
+ #
178
+ config.host_config = true
179
+ transaction = Puppet::Transaction.new(config)
180
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when running a host catalog and all tags are present")
717
181
 
718
- def test_set_target
719
- file = Puppet::Type.type(:file).new(:path => tempfile(), :content => "yay")
720
- exec1 = Puppet::Type.type(:exec).new :command => "/bin/echo exec1"
721
- exec2 = Puppet::Type.type(:exec).new :command => "/bin/echo exec2"
722
- trans = Puppet::Transaction.new(mk_catalog(file, exec1, exec2))
723
-
724
- # First try it with an edge that has no callback
725
- edge = Puppet::Relationship.new(file, exec1)
726
- assert_nothing_raised { trans.set_trigger(edge) }
727
- assert(! trans.targeted?(exec1), "edge with no callback resulted in a target")
728
-
729
- # Now with an edge that has an unsupported callback
730
- edge = Puppet::Relationship.new(file, exec1, :callback => :nosuchmethod, :event => :ALL_EVENTS)
731
- assert_nothing_raised { trans.set_trigger(edge) }
732
- assert(! trans.targeted?(exec1), "edge with invalid callback resulted in a target")
733
-
734
- # Lastly, with an edge with a supported callback
735
- edge = Puppet::Relationship.new(file, exec1, :callback => :refresh, :event => :ALL_EVENTS)
736
- assert_nothing_raised { trans.set_trigger(edge) }
737
- assert(trans.targeted?(exec1), "edge with valid callback did not result in a target")
738
- end
182
+ transaction = Puppet::Transaction.new(config)
183
+ resource.stubs :tagged? => false
184
+ assert(transaction.missing_tags?(resource), "Considered a resource not to be missing tags when running a host catalog and tags are missing")
185
+ end
739
186
 
740
- # Testing #401 -- transactions are calling refresh() on classes that don't support it.
741
- def test_callback_availability
742
- $called = []
743
- klass = Puppet::Type.newtype(:norefresh) do
744
- newparam(:name, :namevar => true) {}
745
- def method_missing(method, *args)
746
- $called << method
747
- end
748
- end
749
- cleanup do
750
- $called = nil
751
- Puppet::Type.rmtype(:norefresh)
752
- end
753
-
754
- file = Puppet::Type.type(:file).new :path => tempfile(), :content => "yay"
755
- one = klass.new :name => "one", :subscribe => file
756
-
757
- assert_apply(file, one)
758
-
759
- assert(! $called.include?(:refresh), "Called refresh when it wasn't set as a method")
760
- end
761
-
762
- # Testing #437 - cyclic graphs should throw failures.
763
- def test_fail_on_cycle
764
- one = Puppet::Type.type(:exec).new(:name => "/bin/echo one")
765
- two = Puppet::Type.type(:exec).new(:name => "/bin/echo two")
766
- one[:require] = two
767
- two[:require] = one
768
-
769
- config = mk_catalog(one, two)
770
- trans = Puppet::Transaction.new(config)
771
- assert_raise(Puppet::Error) do
772
- trans.prepare
773
- end
774
- end
775
-
776
- def test_errors_during_generation
777
- type = Puppet::Type.newtype(:failer) do
778
- newparam(:name) {}
779
- def eval_generate
780
- raise ArgumentError, "Invalid value"
781
- end
782
- def generate
783
- raise ArgumentError, "Invalid value"
784
- end
785
- end
786
- cleanup { Puppet::Type.rmtype(:failer) }
787
-
788
- obj = type.new(:name => "testing")
789
-
790
- assert_apply(obj)
791
- end
792
-
793
- def test_self_refresh_causes_triggering
794
- type = Puppet::Type.newtype(:refresher, :self_refresh => true) do
795
- attr_accessor :refreshed, :testing
796
- newparam(:name) {}
797
- newproperty(:testing) do
798
- def retrieve
799
- :eh
800
- end
801
-
802
- def sync
803
- # noop
804
- :ran_testing
805
- end
806
- end
807
- def refresh
808
- @refreshed = true
809
- end
810
- end
811
- cleanup { Puppet::Type.rmtype(:refresher)}
812
-
813
- obj = type.new(:name => "yay", :testing => "cool")
814
-
815
- assert(! obj.insync?(obj.retrieve), "fake object is already in sync")
816
-
817
- # Now make sure it gets refreshed when the change happens
818
- assert_apply(obj)
819
- assert(obj.refreshed, "object was not refreshed during transaction")
820
- end
821
-
822
- # Testing #433
823
- def test_explicit_dependencies_beat_automatic
824
- # Create a couple of different resource sets that have automatic relationships and make sure the manual relationships win
825
- rels = {}
826
- # First users and groups
827
- group = Puppet::Type.type(:group).new(:name => nonrootgroup.name, :ensure => :present)
828
- user = Puppet::Type.type(:user).new(:name => nonrootuser.name, :ensure => :present, :gid => group.title)
829
-
830
- # Now add the explicit relationship
831
- group[:require] = user
832
- rels[group] = user
833
- # Now files
834
- d = tempfile()
835
- f = File.join(d, "file")
836
- file = Puppet::Type.type(:file).new(:path => f, :content => "yay")
837
- dir = Puppet::Type.type(:file).new(:path => d, :ensure => :directory, :require => file)
838
-
839
- rels[dir] = file
840
- rels.each do |after, before|
841
- config = mk_catalog(before, after)
842
- trans = Puppet::Transaction.new(config)
843
- str = "from %s to %s" % [before, after]
844
-
845
- assert_nothing_raised("Failed to create graph %s" % str) do
846
- trans.prepare
847
- end
848
-
849
- graph = trans.relationship_graph
850
- assert(graph.edge?(before, after), "did not create manual relationship %s" % str)
851
- assert(! graph.edge?(after, before), "created automatic relationship %s" % str)
187
+ # Make sure changes in contained files still generate callback events.
188
+ def test_generated_callbacks
189
+ dir = tempfile
190
+ maker = tempfile
191
+ Dir.mkdir(dir)
192
+ file = File.join(dir, "file")
193
+ File.open(file, "w") { |f| f.puts "" }
194
+ File.chmod(0644, file)
195
+ File.chmod(0755, dir) # So only the child file causes a change
196
+
197
+ dirobj = Puppet::Type.type(:file).new :mode => "755", :recurse => true, :path => dir
198
+ exec = Puppet::Type.type(:exec).new :title => "make",
199
+ :command => "touch #{maker}", :path => ENV['PATH'], :refreshonly => true,
200
+ :subscribe => dirobj
201
+
202
+ assert_apply(dirobj, exec)
203
+ assert(FileTest.exists?(maker), "Did not make callback file")
204
+ end
205
+
206
+ # Testing #401 -- transactions are calling refresh on classes that don't support it.
207
+ def test_callback_availability
208
+ $called = []
209
+ klass = Puppet::Type.newtype(:norefresh) do
210
+ newparam(:name, :namevar => true) {}
211
+ def method_missing(method, *args)
212
+ $called << method
213
+ end
214
+ end
215
+ cleanup do
216
+ $called = nil
217
+ Puppet::Type.rmtype(:norefresh)
218
+ end
219
+
220
+ file = Puppet::Type.type(:file).new :path => tempfile, :content => "yay"
221
+ one = klass.new :name => "one", :subscribe => file
222
+
223
+ assert_apply(file, one)
224
+
225
+ assert(! $called.include?(:refresh), "Called refresh when it wasn't set as a method")
226
+ end
227
+
228
+ # Testing #437 - cyclic graphs should throw failures.
229
+ def test_fail_on_cycle
230
+ one = Puppet::Type.type(:exec).new(:name => "/bin/echo one")
231
+ two = Puppet::Type.type(:exec).new(:name => "/bin/echo two")
232
+ one[:require] = two
233
+ two[:require] = one
234
+
235
+ config = mk_catalog(one, two)
236
+ trans = Puppet::Transaction.new(config)
237
+ assert_raise(Puppet::Error) do
238
+ trans.prepare
239
+ end
240
+ end
241
+
242
+ def test_errors_during_generation
243
+ type = Puppet::Type.newtype(:failer) do
244
+ newparam(:name) {}
245
+ def eval_generate
246
+ raise ArgumentError, "Invalid value"
247
+ end
248
+ def generate
249
+ raise ArgumentError, "Invalid value"
250
+ end
251
+ end
252
+ cleanup { Puppet::Type.rmtype(:failer) }
253
+
254
+ obj = type.new(:name => "testing")
255
+
256
+ assert_apply(obj)
257
+ end
258
+
259
+ def test_self_refresh_causes_triggering
260
+ type = Puppet::Type.newtype(:refresher, :self_refresh => true) do
261
+ attr_accessor :refreshed, :testing
262
+ newparam(:name) {}
263
+ newproperty(:testing) do
264
+ def retrieve
265
+ :eh
266
+ end
267
+
268
+ def sync
269
+ # noop
270
+ :ran_testing
271
+ end
272
+ end
273
+ def refresh
274
+ @refreshed = true
275
+ end
276
+ end
277
+ cleanup { Puppet::Type.rmtype(:refresher)}
278
+
279
+ obj = type.new(:name => "yay", :testing => "cool")
280
+
281
+ assert(! obj.insync?(obj.retrieve), "fake object is already in sync")
282
+
283
+ # Now make sure it gets refreshed when the change happens
284
+ assert_apply(obj)
285
+ assert(obj.refreshed, "object was not refreshed during transaction")
286
+ end
287
+
288
+ # Testing #433
289
+ def test_explicit_dependencies_beat_automatic
290
+ # Create a couple of different resource sets that have automatic relationships and make sure the manual relationships win
291
+ rels = {}
292
+ # Now add the explicit relationship
293
+ # Now files
294
+ d = tempfile
295
+ f = File.join(d, "file")
296
+ file = Puppet::Type.type(:file).new(:path => f, :content => "yay")
297
+ dir = Puppet::Type.type(:file).new(:path => d, :ensure => :directory, :require => file)
298
+
299
+ rels[dir] = file
300
+ rels.each do |after, before|
301
+ config = mk_catalog(before, after)
302
+ trans = Puppet::Transaction.new(config)
303
+ str = "from #{before} to #{after}"
304
+
305
+ assert_nothing_raised("Failed to create graph #{str}") do
306
+ trans.prepare
307
+ end
308
+
309
+ graph = trans.relationship_graph
310
+ assert(graph.edge?(before, after), "did not create manual relationship #{str}")
311
+ assert(! graph.edge?(after, before), "created automatic relationship #{str}")
312
+ end
313
+ end
314
+
315
+ # #542 - make sure resources in noop mode still notify their resources,
316
+ # so that users know if a service will get restarted.
317
+ def test_noop_with_notify
318
+ path = tempfile
319
+ epath = tempfile
320
+ spath = tempfile
321
+
322
+ file = Puppet::Type.type(:file).new(
323
+ :path => path, :ensure => :file,
324
+
325
+ :title => "file")
326
+
327
+ exec = Puppet::Type.type(:exec).new(
328
+ :command => "touch #{epath}",
329
+ :path => ENV["PATH"], :subscribe => file, :refreshonly => true,
330
+
331
+ :title => 'exec1')
332
+
333
+ exec2 = Puppet::Type.type(:exec).new(
334
+ :command => "touch #{spath}",
335
+ :path => ENV["PATH"], :subscribe => exec, :refreshonly => true,
336
+
337
+ :title => 'exec2')
338
+
339
+ Puppet[:noop] = true
340
+
341
+ assert(file.noop, "file not in noop")
342
+ assert(exec.noop, "exec not in noop")
343
+
344
+ @logs.clear
345
+ assert_apply(file, exec, exec2)
346
+
347
+ assert(! FileTest.exists?(path), "Created file in noop")
348
+ assert(! FileTest.exists?(epath), "Executed exec in noop")
349
+ assert(! FileTest.exists?(spath), "Executed second exec in noop")
350
+
351
+ assert(@logs.detect { |l|
352
+ l.message =~ /should be/ and l.source == file.property(:ensure).path},
353
+ "did not log file change")
354
+
355
+ assert(
356
+ @logs.detect { |l|
357
+ l.message =~ /Would have/ and l.source == exec.path },
358
+
359
+ "did not log first exec trigger")
360
+
361
+ assert(
362
+ @logs.detect { |l|
363
+ l.message =~ /Would have/ and l.source == exec2.path },
364
+
365
+ "did not log second exec trigger")
366
+ end
367
+
368
+ def test_only_stop_purging_with_relations
369
+ files = []
370
+ paths = []
371
+ 3.times do |i|
372
+ path = tempfile
373
+ paths << path
374
+
375
+ file = Puppet::Type.type(:file).new(
376
+ :path => path, :ensure => :absent,
377
+
378
+ :backup => false, :title => "file#{i}")
379
+ File.open(path, "w") { |f| f.puts "" }
380
+ files << file
381
+ end
382
+
383
+ files[0][:ensure] = :file
384
+ files[0][:require] = files[1..2]
385
+
386
+ # Mark the second as purging
387
+ files[1].purging
388
+
389
+ assert_apply(*files)
390
+
391
+ assert(FileTest.exists?(paths[1]), "Deleted required purging file")
392
+ assert(! FileTest.exists?(paths[2]), "Did not delete non-purged file")
393
+ end
394
+
395
+ def test_flush
396
+ $state = :absent
397
+ $flushed = 0
398
+ type = Puppet::Type.newtype(:flushtest) do
399
+ newparam(:name)
400
+ newproperty(:ensure) do
401
+ newvalues :absent, :present, :other
402
+ def retrieve
403
+ $state
852
404
  end
853
- end
854
-
855
- # #542 - make sure resources in noop mode still notify their resources,
856
- # so that users know if a service will get restarted.
857
- def test_noop_with_notify
858
- path = tempfile
859
- epath = tempfile
860
- spath = tempfile
861
- file = Puppet::Type.type(:file).new(:path => path, :ensure => :file,
862
- :title => "file")
863
- exec = Puppet::Type.type(:exec).new(:command => "touch %s" % epath,
864
- :path => ENV["PATH"], :subscribe => file, :refreshonly => true,
865
- :title => 'exec1')
866
- exec2 = Puppet::Type.type(:exec).new(:command => "touch %s" % spath,
867
- :path => ENV["PATH"], :subscribe => exec, :refreshonly => true,
868
- :title => 'exec2')
869
-
870
- Puppet[:noop] = true
871
-
872
- assert(file.noop, "file not in noop")
873
- assert(exec.noop, "exec not in noop")
874
-
875
- @logs.clear
876
- assert_apply(file, exec, exec2)
877
-
878
- assert(! FileTest.exists?(path), "Created file in noop")
879
- assert(! FileTest.exists?(epath), "Executed exec in noop")
880
- assert(! FileTest.exists?(spath), "Executed second exec in noop")
881
-
882
- assert(@logs.detect { |l|
883
- l.message =~ /should be/ and l.source == file.property(:ensure).path},
884
- "did not log file change")
885
- assert(@logs.detect { |l|
886
- l.message =~ /Would have/ and l.source == exec.path },
887
- "did not log first exec trigger")
888
- assert(@logs.detect { |l|
889
- l.message =~ /Would have/ and l.source == exec2.path },
890
- "did not log second exec trigger")
891
- end
892
-
893
- def test_only_stop_purging_with_relations
894
- files = []
895
- paths = []
896
- 3.times do |i|
897
- path = tempfile
898
- paths << path
899
- file = Puppet::Type.type(:file).new(:path => path, :ensure => :absent,
900
- :backup => false, :title => "file%s" % i)
901
- File.open(path, "w") { |f| f.puts "" }
902
- files << file
405
+ def set(value)
406
+ $state = value
407
+ :thing_changed
903
408
  end
409
+ end
904
410
 
905
- files[0][:ensure] = :file
906
- files[0][:require] = files[1..2]
907
-
908
- # Mark the second as purging
909
- files[1].purging
910
-
911
- assert_apply(*files)
912
-
913
- assert(FileTest.exists?(paths[1]), "Deleted required purging file")
914
- assert(! FileTest.exists?(paths[2]), "Did not delete non-purged file")
411
+ def flush
412
+ $flushed += 1
413
+ end
915
414
  end
916
415
 
917
- def test_flush
918
- $state = :absent
919
- $flushed = 0
920
- type = Puppet::Type.newtype(:flushtest) do
921
- newparam(:name)
922
- newproperty(:ensure) do
923
- newvalues :absent, :present, :other
924
- def retrieve
925
- $state
926
- end
927
- def set(value)
928
- $state = value
929
- :thing_changed
930
- end
931
- end
932
-
933
- def flush
934
- $flushed += 1
935
- end
936
- end
937
-
938
- cleanup { Puppet::Type.rmtype(:flushtest) }
416
+ cleanup { Puppet::Type.rmtype(:flushtest) }
939
417
 
940
- obj = type.new(:name => "test", :ensure => :present)
418
+ obj = type.new(:name => "test", :ensure => :present)
941
419
 
942
- # first make sure it runs through and flushes
943
- assert_apply(obj)
420
+ # first make sure it runs through and flushes
421
+ assert_apply(obj)
944
422
 
945
- assert_equal(:present, $state, "Object did not make a change")
946
- assert_equal(1, $flushed, "object was not flushed")
423
+ assert_equal(:present, $state, "Object did not make a change")
424
+ assert_equal(1, $flushed, "object was not flushed")
947
425
 
948
- # Now run a noop and make sure we don't flush
949
- obj[:ensure] = "other"
950
- obj[:noop] = true
426
+ # Now run a noop and make sure we don't flush
427
+ obj[:ensure] = "other"
428
+ obj[:noop] = true
951
429
 
952
- assert_apply(obj)
953
- assert_equal(:present, $state, "Object made a change in noop")
954
- assert_equal(1, $flushed, "object was flushed in noop")
955
- end
430
+ assert_apply(obj)
431
+ assert_equal(:present, $state, "Object made a change in noop")
432
+ assert_equal(1, $flushed, "object was flushed in noop")
433
+ end
956
434
  end