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
@@ -5,763 +5,843 @@ require File.dirname(__FILE__) + '/../../lib/puppettest'
5
5
  require 'puppettest'
6
6
 
7
7
  class TestExec < Test::Unit::TestCase
8
- include PuppetTest
9
- def test_execution
10
- command = nil
11
- output = nil
12
- assert_nothing_raised {
13
- command = Puppet::Type.type(:exec).new(
14
- :command => "/bin/echo"
15
- )
16
- }
17
- assert_nothing_raised {
18
- command.evaluate
19
- }
20
- assert_events([:executed_command], command)
21
- end
8
+ include PuppetTest
9
+ def test_numvsstring
10
+ [0, "0"].each { |val|
11
+ command = nil
12
+ output = nil
13
+ assert_nothing_raised {
22
14
 
23
- def test_numvsstring
24
- [0, "0"].each { |val|
25
- command = nil
26
- output = nil
27
- assert_nothing_raised {
28
- command = Puppet::Type.type(:exec).new(
29
- :command => "/bin/echo",
30
- :returns => val
31
- )
32
- }
33
- assert_events([:executed_command], command)
34
- }
35
- end
15
+ command = Puppet::Type.type(:exec).new(
36
16
 
37
- def test_path_or_qualified
38
- command = nil
39
- output = nil
40
- assert_raise(Puppet::Error) {
41
- command = Puppet::Type.type(:exec).new(
42
- :command => "echo"
43
- )
44
- }
45
- assert_nothing_raised {
46
- command = Puppet::Type.type(:exec).new(
47
- :command => "echo",
48
- :path => "/usr/bin:/bin:/usr/sbin:/sbin"
49
- )
50
- }
51
- assert_nothing_raised {
52
- command = Puppet::Type.type(:exec).new(
53
- :command => "/bin/echo"
54
- )
55
- }
56
- assert_nothing_raised {
57
- command = Puppet::Type.type(:exec).new(
58
- :command => "/bin/echo",
59
- :path => "/usr/bin:/bin:/usr/sbin:/sbin"
60
- )
61
- }
62
- end
17
+ :command => "/bin/echo",
63
18
 
64
- def test_nonzero_returns
65
- assert_nothing_raised {
66
- command = Puppet::Type.type(:exec).new(
67
- :command => "mkdir /this/directory/does/not/exist",
68
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
69
- :returns => 1
70
- )
71
- }
72
- assert_nothing_raised {
73
- command = Puppet::Type.type(:exec).new(
74
- :command => "touch /etc",
75
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
76
- :returns => 1
77
- )
78
- }
79
- assert_nothing_raised {
80
- command = Puppet::Type.type(:exec).new(
81
- :command => "thiscommanddoesnotexist",
82
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
83
- :returns => 127
84
- )
85
- }
86
- end
19
+ :returns => val
20
+ )
21
+ }
22
+ assert_events([:executed_command], command)
23
+ }
24
+ end
25
+
26
+ def test_path_or_qualified
27
+ command = nil
28
+ output = nil
29
+ assert_raise(Puppet::Error) {
30
+ command = Puppet::Type.type(:exec).new(
31
+ :command => "echo"
32
+ )
33
+ }
34
+ assert_nothing_raised {
87
35
 
88
- def test_cwdsettings
89
- command = nil
90
- dir = "/tmp"
91
- wd = Dir.chdir(dir) {
92
- Dir.getwd
93
- }
94
- assert_nothing_raised {
95
- command = Puppet::Type.type(:exec).new(
96
- :command => "pwd",
97
- :cwd => dir,
98
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
99
- :returns => 0
100
- )
101
- }
102
- assert_events([:executed_command], command)
103
- assert_equal(wd,command.output.chomp)
104
- end
36
+ command = Puppet::Type.type(:exec).new(
37
+
38
+ :command => "echo",
105
39
 
106
- def test_refreshonly_functional
107
- file = nil
108
- cmd = nil
109
- tmpfile = tempfile()
110
- @@tmpfiles.push tmpfile
111
- trans = nil
112
- file = Puppet::Type.type(:file).new(
113
- :path => tmpfile,
114
- :content => "yay"
115
- )
116
- # Get the file in sync
117
- assert_apply(file)
118
-
119
- # Now make an exec
120
- maker = tempfile()
121
- assert_nothing_raised {
122
- cmd = Puppet::Type.type(:exec).new(
123
- :command => "touch %s" % maker,
124
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
125
- :subscribe => file,
126
- :refreshonly => true
127
- )
128
- }
40
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin"
41
+ )
42
+ }
43
+ assert_nothing_raised {
44
+ command = Puppet::Type.type(:exec).new(
45
+ :command => "/bin/echo"
46
+ )
47
+ }
48
+ assert_nothing_raised {
129
49
 
130
- assert(cmd, "did not make exec")
50
+ command = Puppet::Type.type(:exec).new(
131
51
 
132
- assert_nothing_raised do
133
- assert(! cmd.check, "Check passed when refreshonly is set")
134
- end
52
+ :command => "/bin/echo",
135
53
 
136
- assert_events([], file, cmd)
137
- assert(! FileTest.exists?(maker), "made file without refreshing")
54
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin"
55
+ )
56
+ }
57
+ end
138
58
 
139
- # Now change our content, so we throw a refresh
140
- file[:content] = "yayness"
141
- assert_events([:file_changed, :triggered], file, cmd)
142
- assert(FileTest.exists?(maker), "file was not made in refresh")
143
- end
59
+ def test_nonzero_returns
60
+ assert_nothing_raised {
144
61
 
145
- def test_refreshonly
146
- cmd = true
147
- assert_nothing_raised {
148
- cmd = Puppet::Type.type(:exec).new(
149
- :command => "pwd",
150
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
151
- :refreshonly => true
152
- )
153
- }
62
+ command = Puppet::Type.type(:exec).new(
154
63
 
155
- # Checks should always fail when refreshonly is enabled
156
- assert(!cmd.check, "Check passed with refreshonly true")
64
+ :command => "mkdir /this/directory/does/not/exist",
65
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
157
66
 
158
- # Now make sure it passes if we pass in "true"
159
- assert(cmd.check(true), "Check failed with refreshonly true while refreshing")
67
+ :returns => 1
68
+ )
69
+ }
70
+ assert_nothing_raised {
160
71
 
161
- # Now set it to false
162
- cmd[:refreshonly] = false
163
- assert(cmd.check, "Check failed with refreshonly false")
164
- end
72
+ command = Puppet::Type.type(:exec).new(
165
73
 
166
- def test_creates
167
- file = tempfile()
168
- exec = nil
169
- assert(! FileTest.exists?(file), "File already exists")
170
- assert_nothing_raised {
171
- exec = Puppet::Type.type(:exec).new(
172
- :command => "touch %s" % file,
173
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
174
- :creates => file
175
- )
176
- }
74
+ :command => "touch /etc",
75
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
177
76
 
178
- comp = mk_catalog("createstest", exec)
179
- assert_events([:executed_command], comp, "creates")
180
- assert_events([], comp, "creates")
181
- end
77
+ :returns => 1
78
+ )
79
+ }
80
+ assert_nothing_raised {
182
81
 
183
- # Verify that we can download the file that we're going to execute.
184
- def test_retrievethenmkexe
185
- exe = tempfile()
186
- oexe = tempfile()
187
- sh = %x{which sh}
188
- File.open(exe, "w") { |f| f.puts "#!#{sh}\necho yup" }
189
-
190
- file = Puppet::Type.type(:file).new(
191
- :path => oexe,
192
- :source => exe,
193
- :mode => 0755
194
- )
82
+ command = Puppet::Type.type(:exec).new(
195
83
 
196
- exec = Puppet::Type.type(:exec).new(
197
- :command => oexe,
198
- :require => Puppet::Resource::Reference.new(:file, oexe)
199
- )
84
+ :command => "thiscommanddoesnotexist",
85
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
200
86
 
201
- comp = mk_catalog("Testing", file, exec)
87
+ :returns => 127
88
+ )
89
+ }
90
+ end
202
91
 
203
- assert_events([:file_created, :executed_command], comp)
204
- end
92
+ def test_cwdsettings
93
+ command = nil
94
+ dir = "/tmp"
95
+ wd = Dir.chdir(dir) {
96
+ Dir.getwd
97
+ }
98
+ assert_nothing_raised {
205
99
 
206
- # Verify that we auto-require any managed scripts.
207
- def test_autorequire_files
208
- exe = tempfile()
209
- oexe = tempfile()
210
- sh = %x{which sh}
211
- File.open(exe, "w") { |f| f.puts "#!#{sh}\necho yup" }
212
-
213
- file = Puppet::Type.type(:file).new(
214
- :path => oexe,
215
- :source => exe,
216
- :mode => 755
217
- )
100
+ command = Puppet::Type.type(:exec).new(
218
101
 
219
- basedir = File.dirname(oexe)
220
- baseobj = Puppet::Type.type(:file).new(
221
- :path => basedir,
222
- :source => exe,
223
- :mode => 755
224
- )
102
+ :command => "pwd",
103
+ :cwd => dir,
104
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
225
105
 
226
- ofile = Puppet::Type.type(:file).new(
227
- :path => exe,
228
- :mode => 755
229
- )
106
+ :returns => 0
107
+ )
108
+ }
109
+ assert_events([:executed_command], command)
110
+ assert_equal(wd,command.output.chomp)
111
+ end
230
112
 
231
- exec = Puppet::Type.type(:exec).new(
232
- :command => oexe,
233
- :path => ENV["PATH"],
234
- :cwd => basedir
235
- )
113
+ def test_refreshonly_functional
114
+ file = nil
115
+ cmd = nil
116
+ tmpfile = tempfile
117
+ @@tmpfiles.push tmpfile
118
+ trans = nil
236
119
 
237
- cat = Puppet::Type.type(:exec).new(
238
- :command => "cat %s %s" % [exe, oexe],
239
- :path => ENV["PATH"]
240
- )
120
+ file = Puppet::Type.type(:file).new(
241
121
 
242
- catalog = mk_catalog(file, baseobj, ofile, exec, cat)
122
+ :path => tmpfile,
243
123
 
244
- rels = nil
245
- assert_nothing_raised do
246
- rels = exec.autorequire
247
- end
124
+ :content => "yay"
125
+ )
126
+ # Get the file in sync
127
+ assert_apply(file)
248
128
 
249
- # Verify we get the script itself
250
- assert(rels.detect { |r| r.source == file }, "Exec did not autorequire its command")
129
+ # Now make an exec
130
+ maker = tempfile
131
+ assert_nothing_raised {
251
132
 
252
- # Verify we catch the cwd
253
- assert(rels.detect { |r| r.source == baseobj }, "Exec did not autorequire its cwd")
133
+ cmd = Puppet::Type.type(:exec).new(
254
134
 
255
- # Verify we don't require ourselves
256
- assert(! rels.detect { |r| r.source == ofile }, "Exec incorrectly required mentioned file")
135
+ :command => "touch #{maker}",
136
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
137
+ :subscribe => file,
257
138
 
258
- # We not longer autorequire inline files
259
- assert_nothing_raised do
260
- rels = cat.autorequire
261
- end
262
- assert(! rels.detect { |r| r.source == ofile }, "Exec required second inline file")
263
- assert(! rels.detect { |r| r.source == file }, "Exec required inline file")
264
- end
139
+ :refreshonly => true
140
+ )
141
+ }
265
142
 
266
- def test_ifonly
267
- afile = tempfile()
268
- bfile = tempfile()
269
-
270
- exec = nil
271
- assert_nothing_raised {
272
- exec = Puppet::Type.type(:exec).new(
273
- :command => "touch %s" % bfile,
274
- :onlyif => "test -f %s" % afile,
275
- :path => ENV['PATH']
276
- )
277
- }
143
+ assert(cmd, "did not make exec")
278
144
 
279
- assert_events([], exec)
280
- system("touch %s" % afile)
281
- assert_events([:executed_command], exec)
282
- assert_events([:executed_command], exec)
283
- system("rm %s" % afile)
284
- assert_events([], exec)
145
+ assert_nothing_raised do
146
+ assert(! cmd.check, "Check passed when refreshonly is set")
285
147
  end
286
148
 
287
- def test_unless
288
- afile = tempfile()
289
- bfile = tempfile()
290
-
291
- exec = nil
292
- assert_nothing_raised {
293
- exec = Puppet::Type.type(:exec).new(
294
- :command => "touch %s" % bfile,
295
- :unless => "test -f %s" % afile,
296
- :path => ENV['PATH']
297
- )
298
- }
299
- comp = mk_catalog(exec)
300
-
301
- assert_events([:executed_command], comp)
302
- assert_events([:executed_command], comp)
303
- system("touch %s" % afile)
304
- assert_events([], comp)
305
- assert_events([], comp)
306
- system("rm %s" % afile)
307
- assert_events([:executed_command], comp)
308
- assert_events([:executed_command], comp)
309
- end
149
+ assert_events([], file, cmd)
150
+ assert(! FileTest.exists?(maker), "made file without refreshing")
310
151
 
311
- if Puppet::Util::SUIDManager.uid == 0
312
- # Verify that we can execute commands as a special user
313
- def mknverify(file, user, group = nil, id = true)
314
- File.umask(0022)
315
-
316
- args = {
317
- :command => "touch %s" % file,
318
- :path => "/usr/bin:/bin:/usr/sbin:/sbin",
319
- }
320
-
321
- if user
322
- #Puppet.warning "Using user %s" % user.name
323
- if id
324
- # convert to a string, because that's what the object expects
325
- args[:user] = user.uid.to_s
326
- else
327
- args[:user] = user.name
328
- end
329
- end
330
-
331
- if group
332
- #Puppet.warning "Using group %s" % group.name
333
- if id
334
- args[:group] = group.gid.to_s
335
- else
336
- args[:group] = group.name
337
- end
338
- end
339
- exec = nil
340
- assert_nothing_raised {
341
- exec = Puppet::Type.type(:exec).new(args)
342
- }
343
-
344
- comp = mk_catalog("usertest", exec)
345
- assert_events([:executed_command], comp, "usertest")
346
-
347
- assert(FileTest.exists?(file), "File does not exist")
348
- if user
349
- assert_equal(user.uid, File.stat(file).uid, "File UIDs do not match")
350
- end
351
-
352
- # We can't actually test group ownership, unfortunately, because
353
- # behaviour changes wildlly based on platform.
354
- Puppet::Type.allclear
355
- end
152
+ # Now change our content, so we throw a refresh
153
+ file[:content] = "yayness"
154
+ assert_events([:content_changed, :restarted], file, cmd)
155
+ assert(FileTest.exists?(maker), "file was not made in refresh")
156
+ end
356
157
 
357
- def test_userngroup
358
- file = tempfile()
359
- [
360
- [nonrootuser()], # just user, by name
361
- [nonrootuser(), nil, true], # user, by uid
362
- [nil, nonrootgroup()], # just group
363
- [nil, nonrootgroup(), true], # just group, by id
364
- [nonrootuser(), nonrootgroup()], # user and group, by name
365
- [nonrootuser(), nonrootgroup(), true], # user and group, by id
366
- ].each { |ary|
367
- mknverify(file, *ary) {
368
- }
369
- }
370
- end
371
- end
158
+ def test_refreshonly
159
+ cmd = true
160
+ assert_nothing_raised {
372
161
 
373
- def test_logoutput
374
- exec = nil
375
- assert_nothing_raised {
376
- exec = Puppet::Type.type(:exec).new(
377
- :title => "logoutputesting",
378
- :path => "/usr/bin:/bin",
379
- :command => "echo logoutput is false",
380
- :logoutput => false
381
- )
382
- }
162
+ cmd = Puppet::Type.type(:exec).new(
383
163
 
384
- assert_apply(exec)
164
+ :command => "pwd",
165
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
385
166
 
386
- assert_nothing_raised {
387
- exec[:command] = "echo logoutput is true"
388
- exec[:logoutput] = true
389
- }
167
+ :refreshonly => true
168
+ )
169
+ }
390
170
 
391
- assert_apply(exec)
171
+ # Checks should always fail when refreshonly is enabled
172
+ assert(!cmd.check, "Check passed with refreshonly true")
392
173
 
393
- assert_nothing_raised {
394
- exec[:command] = "echo logoutput is on_failure"
395
- exec[:logoutput] = "on_failure"
396
- }
174
+ # Now make sure it passes if we pass in "true"
175
+ assert(cmd.check(true), "Check failed with refreshonly true while refreshing")
397
176
 
398
- assert_apply(exec)
399
- end
177
+ # Now set it to false
178
+ cmd[:refreshonly] = false
179
+ assert(cmd.check, "Check failed with refreshonly false")
180
+ end
400
181
 
401
- def test_execthenfile
402
- exec = nil
403
- file = nil
404
- basedir = tempfile()
405
- path = File.join(basedir, "subfile")
406
- assert_nothing_raised {
407
- exec = Puppet::Type.type(:exec).new(
408
- :title => "mkdir",
409
- :path => "/usr/bin:/bin",
410
- :creates => basedir,
411
- :command => "mkdir %s; touch %s" % [basedir, path]
412
-
413
- )
414
- }
182
+ def test_creates
183
+ file = tempfile
184
+ exec = nil
185
+ assert(! FileTest.exists?(file), "File already exists")
186
+ assert_nothing_raised {
415
187
 
416
- assert_nothing_raised {
417
- file = Puppet::Type.type(:file).new(
418
- :path => basedir,
419
- :recurse => true,
420
- :mode => "755",
421
- :require => Puppet::Resource::Reference.new("exec", "mkdir")
422
- )
423
- }
188
+ exec = Puppet::Type.type(:exec).new(
189
+
190
+ :command => "touch #{file}",
191
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
424
192
 
425
- comp = mk_catalog(file, exec)
426
- comp.finalize
427
- assert_events([:executed_command, :file_changed], comp)
193
+ :creates => file
194
+ )
195
+ }
428
196
 
429
- assert(FileTest.exists?(path), "Exec ran first")
430
- assert(File.stat(path).mode & 007777 == 0755)
197
+ comp = mk_catalog("createstest", exec)
198
+ assert_events([:executed_command], comp, "creates")
199
+ assert_events([], comp, "creates")
200
+ end
201
+
202
+ # Verify that we can download the file that we're going to execute.
203
+ def test_retrievethenmkexe
204
+ exe = tempfile
205
+ oexe = tempfile
206
+ sh = %x{which sh}
207
+ File.open(exe, "w") { |f| f.puts "#!#{sh}\necho yup" }
208
+
209
+
210
+ file = Puppet::Type.type(:file).new(
211
+
212
+ :path => oexe,
213
+ :source => exe,
214
+
215
+ :mode => 0755
216
+ )
217
+
218
+
219
+ exec = Puppet::Type.type(:exec).new(
220
+
221
+ :command => oexe,
222
+
223
+ :require => Puppet::Resource.new(:file, oexe)
224
+ )
225
+
226
+ comp = mk_catalog("Testing", file, exec)
227
+
228
+ assert_events([:file_created, :executed_command], comp)
229
+ end
230
+
231
+ # Verify that we auto-require any managed scripts.
232
+ def test_autorequire_files
233
+ exe = tempfile
234
+ oexe = tempfile
235
+ sh = %x{which sh}
236
+ File.open(exe, "w") { |f| f.puts "#!#{sh}\necho yup" }
237
+
238
+
239
+ file = Puppet::Type.type(:file).new(
240
+
241
+ :path => oexe,
242
+ :source => exe,
243
+
244
+ :mode => 755
245
+ )
246
+
247
+ basedir = File.dirname(oexe)
248
+
249
+ baseobj = Puppet::Type.type(:file).new(
250
+
251
+ :path => basedir,
252
+ :source => exe,
253
+
254
+ :mode => 755
255
+ )
256
+
257
+
258
+ ofile = Puppet::Type.type(:file).new(
259
+
260
+ :path => exe,
261
+
262
+ :mode => 755
263
+ )
264
+
265
+
266
+ exec = Puppet::Type.type(:exec).new(
267
+
268
+ :command => oexe,
269
+ :path => ENV["PATH"],
270
+
271
+ :cwd => basedir
272
+ )
273
+
274
+
275
+ cat = Puppet::Type.type(:exec).new(
276
+
277
+ :command => "cat #{exe} #{oexe}",
278
+
279
+ :path => ENV["PATH"]
280
+ )
281
+
282
+ catalog = mk_catalog(file, baseobj, ofile, exec, cat)
283
+
284
+ rels = nil
285
+ assert_nothing_raised do
286
+ rels = exec.autorequire
431
287
  end
432
288
 
433
- # Make sure all checks need to be fully qualified.
434
- def test_falsevals
435
- exec = nil
436
- assert_nothing_raised do
437
- exec = Puppet::Type.type(:exec).new(
438
- :command => "/bin/touch yayness"
439
- )
440
- end
289
+ # Verify we get the script itself
290
+ assert(rels.detect { |r| r.source == file }, "Exec did not autorequire its command")
291
+
292
+ # Verify we catch the cwd
293
+ assert(rels.detect { |r| r.source == baseobj }, "Exec did not autorequire its cwd")
441
294
 
442
- Puppet::Type.type(:exec).checks.each do |check|
443
- klass = Puppet::Type.type(:exec).paramclass(check)
444
- next if klass.value_collection.values.include? :false
445
- assert_raise(Puppet::Error, "Check '%s' did not fail on false" % check) do
446
- exec[check] = false
447
- end
295
+ # Verify we don't require ourselves
296
+ assert(! rels.detect { |r| r.source == ofile }, "Exec incorrectly required mentioned file")
297
+
298
+ # We not longer autorequire inline files
299
+ assert_nothing_raised do
300
+ rels = cat.autorequire
301
+ end
302
+ assert(! rels.detect { |r| r.source == ofile }, "Exec required second inline file")
303
+ assert(! rels.detect { |r| r.source == file }, "Exec required inline file")
304
+ end
305
+
306
+ def test_ifonly
307
+ afile = tempfile
308
+ bfile = tempfile
309
+
310
+ exec = nil
311
+ assert_nothing_raised {
312
+
313
+ exec = Puppet::Type.type(:exec).new(
314
+
315
+ :command => "touch #{bfile}",
316
+ :onlyif => "test -f #{afile}",
317
+
318
+ :path => ENV['PATH']
319
+ )
320
+ }
321
+
322
+ assert_events([], exec)
323
+ system("touch #{afile}")
324
+ assert_events([:executed_command], exec)
325
+ assert_events([:executed_command], exec)
326
+ system("rm #{afile}")
327
+ assert_events([], exec)
328
+ end
329
+
330
+ def test_unless
331
+ afile = tempfile
332
+ bfile = tempfile
333
+
334
+ exec = nil
335
+ assert_nothing_raised {
336
+
337
+ exec = Puppet::Type.type(:exec).new(
338
+
339
+ :command => "touch #{bfile}",
340
+ :unless => "test -f #{afile}",
341
+
342
+ :path => ENV['PATH']
343
+ )
344
+ }
345
+ comp = mk_catalog(exec)
346
+
347
+ assert_events([:executed_command], comp)
348
+ assert_events([:executed_command], comp)
349
+ system("touch #{afile}")
350
+ assert_events([], comp)
351
+ assert_events([], comp)
352
+ system("rm #{afile}")
353
+ assert_events([:executed_command], comp)
354
+ assert_events([:executed_command], comp)
355
+ end
356
+
357
+ if Puppet.features.root?
358
+ # Verify that we can execute commands as a special user
359
+ def mknverify(file, user, group = nil, id = true)
360
+ File.umask(0022)
361
+
362
+ args = {
363
+ :command => "touch #{file}",
364
+ :path => "/usr/bin:/bin:/usr/sbin:/sbin",
365
+ }
366
+
367
+ if user
368
+ #Puppet.warning "Using user #{user.name}"
369
+ if id
370
+ # convert to a string, because that's what the object expects
371
+ args[:user] = user.uid.to_s
372
+ else
373
+ args[:user] = user.name
374
+ end
375
+ end
376
+
377
+ if group
378
+ #Puppet.warning "Using group #{group.name}"
379
+ if id
380
+ args[:group] = group.gid.to_s
381
+ else
382
+ args[:group] = group.name
448
383
  end
384
+ end
385
+ exec = nil
386
+ assert_nothing_raised {
387
+ exec = Puppet::Type.type(:exec).new(args)
388
+ }
389
+
390
+ comp = mk_catalog("usertest", exec)
391
+ assert_events([:executed_command], comp, "usertest")
392
+
393
+ assert(FileTest.exists?(file), "File does not exist")
394
+ assert_equal(user.uid, File.stat(file).uid, "File UIDs do not match") if user
395
+
396
+ # We can't actually test group ownership, unfortunately, because
397
+ # behaviour changes wildlly based on platform.
398
+ Puppet::Type.allclear
449
399
  end
450
400
 
451
- def test_createcwdandexe
452
- exec1 = exec2 = nil
453
- dir = tempfile()
454
- file = tempfile()
455
-
456
- assert_nothing_raised {
457
- exec1 = Puppet::Type.type(:exec).new(
458
- :title => "one",
459
- :path => ENV["PATH"],
460
- :command => "mkdir #{dir}"
461
- )
462
- }
401
+ def test_userngroup
402
+ file = tempfile
403
+ [
404
+ [nonrootuser], # just user, by name
405
+ [nonrootuser, nil, true], # user, by uid
406
+ [nil, nonrootgroup], # just group
407
+ [nil, nonrootgroup, true], # just group, by id
408
+ [nonrootuser, nonrootgroup], # user and group, by name
409
+ [nonrootuser, nonrootgroup, true], # user and group, by id
410
+ ].each { |ary|
411
+ mknverify(file, *ary) {
412
+ }
413
+ }
414
+ end
415
+ end
463
416
 
464
- assert_nothing_raised("Could not create exec w/out existing cwd") {
465
- exec2 = Puppet::Type.type(:exec).new(
466
- :title => "two",
467
- :path => ENV["PATH"],
468
- :command => "touch #{file}",
469
- :cwd => dir
470
- )
471
- }
417
+ def test_logoutput
418
+ exec = nil
419
+ assert_nothing_raised {
472
420
 
473
- # Throw a check in there with our cwd and make sure it works
474
- assert_nothing_raised("Could not check with a missing cwd") do
475
- exec2[:unless] = "test -f /this/file/does/not/exist"
476
- exec2.retrieve
477
- end
421
+ exec = Puppet::Type.type(:exec).new(
478
422
 
479
- assert_raise(Puppet::Error) do
480
- exec2.property(:returns).sync
481
- end
423
+ :title => "logoutputesting",
424
+ :path => "/usr/bin:/bin",
425
+ :command => "echo logoutput is false",
482
426
 
483
- assert_nothing_raised do
484
- exec2[:require] = exec1
485
- end
427
+ :logoutput => false
428
+ )
429
+ }
430
+
431
+ assert_apply(exec)
432
+
433
+ assert_nothing_raised {
434
+ exec[:command] = "echo logoutput is true"
435
+ exec[:logoutput] = true
436
+ }
437
+
438
+ assert_apply(exec)
486
439
 
487
- assert_apply(exec1, exec2)
440
+ assert_nothing_raised {
441
+ exec[:command] = "echo logoutput is on_failure"
442
+ exec[:logoutput] = "on_failure"
443
+ }
488
444
 
489
- assert(FileTest.exists?(file))
445
+ assert_apply(exec)
446
+ end
447
+
448
+ def test_execthenfile
449
+ exec = nil
450
+ file = nil
451
+ basedir = tempfile
452
+ path = File.join(basedir, "subfile")
453
+ assert_nothing_raised {
454
+
455
+ exec = Puppet::Type.type(:exec).new(
456
+
457
+ :title => "mkdir",
458
+ :path => "/usr/bin:/bin",
459
+ :creates => basedir,
460
+
461
+ :command => "mkdir #{basedir}; touch #{path}"
462
+
463
+ )
464
+ }
465
+
466
+ assert_nothing_raised {
467
+
468
+ file = Puppet::Type.type(:file).new(
469
+
470
+ :path => basedir,
471
+ :recurse => true,
472
+ :mode => "755",
473
+
474
+ :require => Puppet::Resource.new("exec", "mkdir")
475
+ )
476
+ }
477
+
478
+ comp = mk_catalog(file, exec)
479
+ comp.finalize
480
+ assert_events([:executed_command, :mode_changed], comp)
481
+
482
+ assert(FileTest.exists?(path), "Exec ran first")
483
+ assert(File.stat(path).mode & 007777 == 0755)
484
+ end
485
+
486
+ # Make sure all checks need to be fully qualified.
487
+ def test_falsevals
488
+ exec = nil
489
+ assert_nothing_raised do
490
+ exec = Puppet::Type.type(:exec).new(
491
+ :command => "/bin/touch yayness"
492
+ )
490
493
  end
491
494
 
492
- def test_checkarrays
493
- exec = nil
494
- file = tempfile()
495
+ Puppet::Type.type(:exec).checks.each do |check|
496
+ klass = Puppet::Type.type(:exec).paramclass(check)
497
+ next if klass.value_collection.values.include? :false
498
+ assert_raise(Puppet::Error, "Check '#{check}' did not fail on false") do
499
+ exec[check] = false
500
+ end
501
+ end
502
+ end
495
503
 
496
- test = "test -f #{file}"
504
+ def test_createcwdandexe
505
+ exec1 = exec2 = nil
506
+ dir = tempfile
507
+ file = tempfile
497
508
 
498
- assert_nothing_raised {
499
- exec = Puppet::Type.type(:exec).new(
500
- :path => ENV["PATH"],
501
- :command => "touch #{file}"
502
- )
503
- }
509
+ assert_nothing_raised {
504
510
 
505
- assert_nothing_raised {
506
- exec[:unless] = test
507
- }
511
+ exec1 = Puppet::Type.type(:exec).new(
508
512
 
509
- assert_nothing_raised {
510
- assert(exec.check, "Check did not pass")
511
- }
513
+ :title => "one",
514
+ :path => ENV["PATH"],
512
515
 
513
- assert_nothing_raised {
514
- exec[:unless] = [test, test]
515
- }
516
+ :command => "mkdir #{dir}"
517
+ )
518
+ }
516
519
 
520
+ assert_nothing_raised("Could not create exec w/out existing cwd") {
517
521
 
518
- assert_nothing_raised {
519
- exec.finish
520
- }
522
+ exec2 = Puppet::Type.type(:exec).new(
521
523
 
522
- assert_nothing_raised {
523
- assert(exec.check, "Check did not pass")
524
- }
524
+ :title => "two",
525
+ :path => ENV["PATH"],
526
+ :command => "touch #{file}",
525
527
 
526
- assert_apply(exec)
528
+ :cwd => dir
529
+ )
530
+ }
527
531
 
528
- assert_nothing_raised {
529
- assert(! exec.check, "Check passed")
530
- }
532
+ # Throw a check in there with our cwd and make sure it works
533
+ assert_nothing_raised("Could not check with a missing cwd") do
534
+ exec2[:unless] = "test -f /this/file/does/not/exist"
535
+ exec2.retrieve
531
536
  end
532
537
 
533
- def test_missing_checks_cause_failures
534
- # Solaris's sh exits with 1 here instead of 127
535
- return if Facter.value(:operatingsystem) == "Solaris"
536
- exec = Puppet::Type.type(:exec).new(
537
- :command => "echo true",
538
- :path => ENV["PATH"],
539
- :onlyif => "/bin/nosuchthingexists"
540
- )
538
+ assert_raise(Puppet::Error) do
539
+ exec2.property(:returns).sync
540
+ end
541
541
 
542
- assert_raise(ArgumentError, "Missing command did not raise error") {
543
- exec.run("/bin/nosuchthingexists")
544
- }
542
+ assert_nothing_raised do
543
+ exec2[:require] = exec1
545
544
  end
546
545
 
547
- def test_envparam
548
- exec = Puppet::Type.newexec(
549
- :command => "echo $envtest",
550
- :path => ENV["PATH"],
551
- :env => "envtest=yayness"
552
- )
546
+ assert_apply(exec1, exec2)
553
547
 
554
- assert(exec, "Could not make exec")
548
+ assert(FileTest.exists?(file))
549
+ end
555
550
 
556
- output = status = nil
557
- assert_nothing_raised {
558
- output, status = exec.run("echo $envtest")
559
- }
551
+ def test_checkarrays
552
+ exec = nil
553
+ file = tempfile
560
554
 
561
- assert_equal("yayness\n", output)
555
+ test = "test -f #{file}"
562
556
 
563
- # Now check whether we can do multiline settings
564
- assert_nothing_raised do
565
- exec[:env] = "envtest=a list of things
566
- and stuff"
567
- end
557
+ assert_nothing_raised {
568
558
 
569
- output = status = nil
570
- assert_nothing_raised {
571
- output, status = exec.run('echo "$envtest"')
572
- }
573
- assert_equal("a list of things\nand stuff\n", output)
559
+ exec = Puppet::Type.type(:exec).new(
574
560
 
575
- # Now test arrays
576
- assert_nothing_raised do
577
- exec[:env] = ["funtest=A", "yaytest=B"]
578
- end
561
+ :path => ENV["PATH"],
579
562
 
580
- output = status = nil
581
- assert_nothing_raised {
582
- output, status = exec.run('echo "$funtest" "$yaytest"')
583
- }
584
- assert_equal("A B\n", output)
585
- end
563
+ :command => "touch #{file}"
564
+ )
565
+ }
586
566
 
587
- def test_environmentparam
588
- exec = Puppet::Type.newexec(
589
- :command => "echo $environmenttest",
590
- :path => ENV["PATH"],
591
- :environment => "environmenttest=yayness"
592
- )
567
+ assert_nothing_raised {
568
+ exec[:unless] = test
569
+ }
593
570
 
594
- assert(exec, "Could not make exec")
571
+ assert_nothing_raised {
572
+ assert(exec.check, "Check did not pass")
573
+ }
595
574
 
596
- output = status = nil
597
- assert_nothing_raised {
598
- output, status = exec.run("echo $environmenttest")
599
- }
575
+ assert_nothing_raised {
576
+ exec[:unless] = [test, test]
577
+ }
600
578
 
601
- assert_equal("yayness\n", output)
602
579
 
603
- # Now check whether we can do multiline settings
604
- assert_nothing_raised do
605
- exec[:environment] = "environmenttest=a list of things
606
- and stuff"
607
- end
580
+ assert_nothing_raised {
581
+ exec.finish
582
+ }
608
583
 
609
- output = status = nil
610
- assert_nothing_raised {
611
- output, status = exec.run('echo "$environmenttest"')
612
- }
613
- assert_equal("a list of things\nand stuff\n", output)
584
+ assert_nothing_raised {
585
+ assert(exec.check, "Check did not pass")
586
+ }
614
587
 
615
- # Now test arrays
616
- assert_nothing_raised do
617
- exec[:environment] = ["funtest=A", "yaytest=B"]
618
- end
588
+ assert_apply(exec)
619
589
 
620
- output = status = nil
621
- assert_nothing_raised {
622
- output, status = exec.run('echo "$funtest" "$yaytest"')
623
- }
624
- assert_equal("A B\n", output)
625
- end
590
+ assert_nothing_raised {
591
+ assert(! exec.check, "Check passed")
592
+ }
593
+ end
626
594
 
627
- def test_timeout
628
- exec = Puppet::Type.type(:exec).new(:command => "sleep 1", :path => ENV["PATH"], :timeout => "0.2")
629
- time = Time.now
595
+ def test_missing_checks_cause_failures
596
+ # Solaris's sh exits with 1 here instead of 127
597
+ return if Facter.value(:operatingsystem) == "Solaris"
630
598
 
631
- assert_raise(Timeout::Error) {
632
- exec.run("sleep 1")
633
- }
634
- Puppet.info "%s seconds, vs a timeout of %s" % [Time.now.to_f - time.to_f, exec[:timeout]]
599
+ exec = Puppet::Type.type(:exec).new(
635
600
 
601
+ :command => "echo true",
602
+ :path => ENV["PATH"],
636
603
 
637
- assert_apply(exec)
638
- end
604
+ :onlyif => "/bin/nosuchthingexists"
605
+ )
639
606
 
640
- # Testing #470
641
- def test_run_as_created_user
642
- exec = nil
643
- if Process.uid == 0
644
- user = "nosuchuser"
645
- assert_nothing_raised("Could not create exec with non-existent user") do
646
- exec = Puppet::Type.type(:exec).new(
647
- :command => "/bin/echo yay",
648
- :user => user
649
- )
650
- end
651
- end
607
+ assert_raise(ArgumentError, "Missing command did not raise error") {
608
+ exec.run("/bin/nosuchthingexists")
609
+ }
610
+ end
652
611
 
653
- # Now try the group
654
- group = "nosuchgroup"
655
- assert_nothing_raised("Could not create exec with non-existent user") do
656
- exec = Puppet::Type.type(:exec).new(
657
- :command => "/bin/echo yay",
658
- :group => group
659
- )
660
- end
612
+ def test_envparam
613
+
614
+ exec = Puppet::Type.newexec(
615
+
616
+ :command => "echo $envtest",
617
+ :path => ENV["PATH"],
618
+
619
+ :env => "envtest=yayness"
620
+ )
621
+
622
+ assert(exec, "Could not make exec")
623
+
624
+ output = status = nil
625
+ assert_nothing_raised {
626
+ output, status = exec.run("echo $envtest")
627
+ }
628
+
629
+ assert_equal("yayness\n", output)
630
+
631
+ # Now check whether we can do multiline settings
632
+ assert_nothing_raised do
633
+ exec[:env] = "envtest=a list of things
634
+ and stuff"
635
+ end
636
+
637
+ output = status = nil
638
+ assert_nothing_raised {
639
+ output, status = exec.run('echo "$envtest"')
640
+ }
641
+ assert_equal("a list of things\nand stuff\n", output)
642
+
643
+ # Now test arrays
644
+ assert_nothing_raised do
645
+ exec[:env] = ["funtest=A", "yaytest=B"]
661
646
  end
662
647
 
663
- # make sure paths work both as arrays and strings
664
- def test_paths_as_arrays
665
- path = %w{/usr/bin /usr/sbin /sbin}
666
- exec = nil
667
- assert_nothing_raised("Could not use an array for the path") do
668
- exec = Puppet::Type.type(:exec).new(:command => "echo yay",
669
- :path => path)
670
- end
671
- assert_equal(path, exec[:path], "array-based path did not match")
672
- assert_nothing_raised("Could not use a string for the path") do
673
- exec = Puppet::Type.type(:exec).new(:command => "echo yay",
674
- :path => path.join(":"))
675
- end
676
- assert_equal(path, exec[:path], "string-based path did not match")
677
- assert_nothing_raised("Could not use a colon-separated strings in an array for the path") do
678
- exec = Puppet::Type.type(:exec).new(:command => "echo yay",
679
- :path => ["/usr/bin", "/usr/sbin:/sbin"])
680
- end
681
- assert_equal(path, exec[:path], "colon-separated array path did not match")
648
+ output = status = nil
649
+ assert_nothing_raised {
650
+ output, status = exec.run('echo "$funtest" "$yaytest"')
651
+ }
652
+ assert_equal("A B\n", output)
653
+ end
654
+
655
+ def test_environmentparam
656
+
657
+ exec = Puppet::Type.newexec(
658
+
659
+ :command => "echo $environmenttest",
660
+ :path => ENV["PATH"],
661
+
662
+ :environment => "environmenttest=yayness"
663
+ )
664
+
665
+ assert(exec, "Could not make exec")
666
+
667
+ output = status = nil
668
+ assert_nothing_raised {
669
+ output, status = exec.run("echo $environmenttest")
670
+ }
671
+
672
+ assert_equal("yayness\n", output)
673
+
674
+ # Now check whether we can do multiline settings
675
+ assert_nothing_raised do
676
+ exec[:environment] = "environmenttest=a list of things
677
+ and stuff"
678
+ end
679
+
680
+ output = status = nil
681
+ assert_nothing_raised {
682
+ output, status = exec.run('echo "$environmenttest"')
683
+ }
684
+ assert_equal("a list of things\nand stuff\n", output)
685
+
686
+ # Now test arrays
687
+ assert_nothing_raised do
688
+ exec[:environment] = ["funtest=A", "yaytest=B"]
682
689
  end
683
690
 
684
- def test_checks_apply_to_refresh
685
- file = tempfile()
686
- maker = tempfile()
691
+ output = status = nil
692
+ assert_nothing_raised {
693
+ output, status = exec.run('echo "$funtest" "$yaytest"')
694
+ }
695
+ assert_equal("A B\n", output)
696
+ end
697
+
698
+ def test_timeout
699
+ exec = Puppet::Type.type(:exec).new(:command => "sleep 1", :path => ENV["PATH"], :timeout => "0.2")
700
+ time = Time.now
701
+
702
+ assert_raise(Timeout::Error) {
703
+ exec.run("sleep 1")
704
+ }
705
+ Puppet.info "#{Time.now.to_f - time.to_f} seconds, vs a timeout of #{exec[:timeout]}"
706
+
707
+
708
+ assert_apply(exec)
709
+ end
710
+
711
+ # Testing #470
712
+ def test_run_as_created_user
713
+ exec = nil
714
+ if Process.uid == 0
715
+ user = "nosuchuser"
716
+ assert_nothing_raised("Could not create exec with non-existent user") do
717
+
687
718
  exec = Puppet::Type.type(:exec).new(
688
- :title => "maker",
689
- :command => "touch #{maker}",
690
- :path => ENV["PATH"]
719
+
720
+ :command => "/bin/echo yay",
721
+
722
+ :user => user
691
723
  )
724
+ end
725
+ end
692
726
 
693
- # Make sure it runs normally
694
- assert_apply(exec)
695
- assert(FileTest.exists?(maker), "exec did not run")
696
- File.unlink(maker)
727
+ # Now try the group
728
+ group = "nosuchgroup"
729
+ assert_nothing_raised("Could not create exec with non-existent user") do
697
730
 
698
- # Now make sure it refreshes
699
- assert_nothing_raised("Failed to refresh exec") do
700
- exec.refresh
701
- end
702
- assert(FileTest.exists?(maker), "exec did not run refresh")
703
- File.unlink(maker)
731
+ exec = Puppet::Type.type(:exec).new(
704
732
 
705
- # Now add the checks
706
- exec[:creates] = file
733
+ :command => "/bin/echo yay",
707
734
 
708
- # Make sure it runs when the file doesn't exist
709
- assert_nothing_raised("Failed to refresh exec") do
710
- exec.refresh
711
- end
712
- assert(FileTest.exists?(maker), "exec did not refresh when checks passed")
713
- File.unlink(maker)
735
+ :group => group
736
+ )
737
+ end
738
+ end
739
+
740
+ # make sure paths work both as arrays and strings
741
+ def test_paths_as_arrays
742
+ path = %w{/usr/bin /usr/sbin /sbin}
743
+ exec = nil
744
+ assert_nothing_raised("Could not use an array for the path") do
745
+ exec = Puppet::Type.type(:exec).new(:command => "echo yay", :path => path)
746
+ end
747
+ assert_equal(path, exec[:path], "array-based path did not match")
748
+ assert_nothing_raised("Could not use a string for the path") do
749
+ exec = Puppet::Type.type(:exec).new(:command => "echo yay", :path => path.join(":"))
750
+ end
751
+ assert_equal(path, exec[:path], "string-based path did not match")
752
+ assert_nothing_raised("Could not use a colon-separated strings in an array for the path") do
753
+ exec = Puppet::Type.type(:exec).new(:command => "echo yay", :path => ["/usr/bin", "/usr/sbin:/sbin"])
754
+ end
755
+ assert_equal(path, exec[:path], "colon-separated array path did not match")
756
+ end
714
757
 
715
- # Now create the file and make sure it doesn't refresh
716
- File.open(file, "w") { |f| f.puts "" }
717
- assert_nothing_raised("Failed to refresh exec") do
718
- exec.refresh
719
- end
720
- assert(! FileTest.exists?(maker), "exec refreshed with failing checks")
758
+ def test_checks_apply_to_refresh
759
+ file = tempfile
760
+ maker = tempfile
761
+
762
+ exec = Puppet::Type.type(:exec).new(
763
+
764
+ :title => "maker",
765
+ :command => "touch #{maker}",
766
+
767
+ :path => ENV["PATH"]
768
+ )
769
+
770
+ # Make sure it runs normally
771
+ assert_apply(exec)
772
+ assert(FileTest.exists?(maker), "exec did not run")
773
+ File.unlink(maker)
774
+
775
+ # Now make sure it refreshes
776
+ assert_nothing_raised("Failed to refresh exec") do
777
+ exec.refresh
721
778
  end
779
+ assert(FileTest.exists?(maker), "exec did not run refresh")
780
+ File.unlink(maker)
722
781
 
723
- def test_explicit_refresh
724
- refresher = tempfile()
725
- maker = tempfile()
726
- exec = Puppet::Type.type(:exec).new(
727
- :title => "maker",
728
- :command => "touch #{maker}",
729
- :path => ENV["PATH"]
730
- )
782
+ # Now add the checks
783
+ exec[:creates] = file
731
784
 
732
- # Call refresh normally
733
- assert_nothing_raised do
734
- exec.refresh
735
- end
785
+ # Make sure it runs when the file doesn't exist
786
+ assert_nothing_raised("Failed to refresh exec") do
787
+ exec.refresh
788
+ end
789
+ assert(FileTest.exists?(maker), "exec did not refresh when checks passed")
790
+ File.unlink(maker)
791
+
792
+ # Now create the file and make sure it doesn't refresh
793
+ File.open(file, "w") { |f| f.puts "" }
794
+ assert_nothing_raised("Failed to refresh exec") do
795
+ exec.refresh
796
+ end
797
+ assert(! FileTest.exists?(maker), "exec refreshed with failing checks")
798
+ end
736
799
 
737
- # Make sure it created the normal file
738
- assert(FileTest.exists?(maker), "normal refresh did not work")
739
- File.unlink(maker)
800
+ def test_explicit_refresh
801
+ refresher = tempfile
802
+ maker = tempfile
740
803
 
741
- # Now reset refresh, and make sure it wins
742
- assert_nothing_raised("Could not set refresh parameter") do
743
- exec[:refresh] = "touch #{refresher}"
744
- end
745
- assert_nothing_raised do
746
- exec.refresh
747
- end
804
+ exec = Puppet::Type.type(:exec).new(
748
805
 
749
- # Make sure it created the normal file
750
- assert(FileTest.exists?(refresher), "refresh param was ignored")
751
- assert(! FileTest.exists?(maker), "refresh param also ran command")
806
+ :title => "maker",
807
+ :command => "touch #{maker}",
808
+
809
+ :path => ENV["PATH"]
810
+ )
811
+
812
+ # Call refresh normally
813
+ assert_nothing_raised do
814
+ exec.refresh
752
815
  end
753
816
 
754
- if Puppet.features.root?
755
- def test_autorequire_user
756
- user = Puppet::Type.type(:user).new(:name => "yay")
757
- exec = Puppet::Type.type(:exec).new(:command => "/bin/echo fun", :user => "yay")
817
+ # Make sure it created the normal file
818
+ assert(FileTest.exists?(maker), "normal refresh did not work")
819
+ File.unlink(maker)
758
820
 
759
- rels = nil
760
- assert_nothing_raised("Could not evaluate autorequire") do
761
- rels = exec.autorequire
762
- end
763
- assert(rels.find { |r| r.source == user and r.target == exec }, "Exec did not autorequire user")
764
- end
821
+ # Now reset refresh, and make sure it wins
822
+ assert_nothing_raised("Could not set refresh parameter") do
823
+ exec[:refresh] = "touch #{refresher}"
824
+ end
825
+ assert_nothing_raised do
826
+ exec.refresh
827
+ end
828
+
829
+ # Make sure it created the normal file
830
+ assert(FileTest.exists?(refresher), "refresh param was ignored")
831
+ assert(! FileTest.exists?(maker), "refresh param also ran command")
832
+ end
833
+
834
+ if Puppet.features.root?
835
+ def test_autorequire_user
836
+ user = Puppet::Type.type(:user).new(:name => "yay")
837
+ exec = Puppet::Type.type(:exec).new(:command => "/bin/echo fun", :user => "yay")
838
+
839
+ rels = nil
840
+ assert_nothing_raised("Could not evaluate autorequire") do
841
+ rels = exec.autorequire
842
+ end
843
+ assert(rels.find { |r| r.source == user and r.target == exec }, "Exec did not autorequire user")
765
844
  end
845
+ end
766
846
  end
767
847