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
@@ -8,974 +8,905 @@ require 'fileutils'
8
8
  require 'mocha'
9
9
 
10
10
  class TestFile < Test::Unit::TestCase
11
- include PuppetTest::Support::Utils
12
- include PuppetTest::FileTesting
13
-
14
- def mkfile(hash)
15
- file = nil
16
- assert_nothing_raised {
17
- file = Puppet::Type.type(:file).new(hash)
18
- }
19
- return file
20
- end
21
-
22
- def mktestfile
23
- tmpfile = tempfile()
24
- File.open(tmpfile, "w") { |f| f.puts rand(100) }
25
- @@tmpfiles.push tmpfile
26
- mkfile(:name => tmpfile)
27
- end
28
-
29
- def setup
30
- super
31
- @file = Puppet::Type.type(:file)
32
- $method = @method_name
33
- Puppet[:filetimeout] = -1
34
- Facter.stubs(:to_hash).returns({})
35
- end
36
-
37
- def teardown
38
- system("rm -rf %s" % Puppet[:statefile])
39
- super
40
- end
11
+ include PuppetTest::Support::Utils
12
+ include PuppetTest::FileTesting
13
+
14
+ def mkfile(hash)
15
+ file = nil
16
+ assert_nothing_raised {
17
+ file = Puppet::Type.type(:file).new(hash)
18
+ }
19
+ file
20
+ end
21
+
22
+ def mktestfile
23
+ tmpfile = tempfile
24
+ File.open(tmpfile, "w") { |f| f.puts rand(100) }
25
+ @@tmpfiles.push tmpfile
26
+ mkfile(:name => tmpfile)
27
+ end
28
+
29
+ def setup
30
+ super
31
+ @file = Puppet::Type.type(:file)
32
+ $method = @method_name
33
+ Puppet[:filetimeout] = -1
34
+ Facter.stubs(:to_hash).returns({})
35
+ end
36
+
37
+ def teardown
38
+ system("rm -rf #{Puppet[:statefile]}")
39
+ super
40
+ end
41
+
42
+ def initstorage
43
+ Puppet::Util::Storage.init
44
+ Puppet::Util::Storage.load
45
+ end
46
+
47
+ def clearstorage
48
+ Puppet::Util::Storage.store
49
+ Puppet::Util::Storage.clear
50
+ end
51
+
52
+ def test_owner
53
+ file = mktestfile
54
+
55
+ users = {}
56
+ count = 0
57
+
58
+ # collect five users
59
+ Etc.passwd { |passwd|
60
+ if count > 5
61
+ break
62
+ else
63
+ count += 1
64
+ end
65
+ users[passwd.uid] = passwd.name
66
+ }
67
+
68
+ fake = {}
69
+ # find a fake user
70
+ while true
71
+ a = rand(1000)
72
+ begin
73
+ Etc.getpwuid(a)
74
+ rescue
75
+ fake[a] = "fakeuser"
76
+ break
77
+ end
78
+ end
79
+
80
+ uid, name = users.shift
81
+ us = {}
82
+ us[uid] = name
83
+ users.each { |uid, name|
84
+ assert_apply(file)
85
+ assert_nothing_raised {
86
+ file[:owner] = name
87
+ }
88
+ assert_nothing_raised {
89
+ file.retrieve
90
+ }
91
+ assert_apply(file)
92
+ }
93
+ end
94
+
95
+ def test_group
96
+ file = mktestfile
97
+ [%x{groups}.chomp.split(/ /), Process.groups].flatten.each { |group|
98
+ assert_nothing_raised {
99
+ file[:group] = group
100
+ }
101
+ assert(file.property(:group))
102
+ assert(file.property(:group).should)
103
+ }
104
+ end
105
+
106
+ def test_groups_fails_when_invalid
107
+ assert_raise(Puppet::Error, "did not fail when the group was empty") do
108
+ Puppet::Type.type(:file).new :path => "/some/file", :group => ""
109
+ end
110
+ end
111
+
112
+ if Puppet.features.root?
113
+ def test_createasuser
114
+ dir = tmpdir
115
+
116
+ user = nonrootuser
117
+ path = File.join(tmpdir, "createusertesting")
118
+ @@tmpfiles << path
119
+
120
+ file = nil
121
+ assert_nothing_raised {
122
+
123
+ file = Puppet::Type.type(:file).new(
124
+
125
+ :path => path,
126
+ :owner => user.name,
127
+ :ensure => "file",
128
+
129
+ :mode => "755"
130
+ )
131
+ }
41
132
 
42
- def initstorage
43
- Puppet::Util::Storage.init
44
- Puppet::Util::Storage.load
45
- end
133
+ comp = mk_catalog("createusertest", file)
46
134
 
47
- def clearstorage
48
- Puppet::Util::Storage.store
49
- Puppet::Util::Storage.clear
135
+ assert_events([:file_created], comp)
50
136
  end
51
137
 
52
- def test_owner
53
- file = mktestfile()
138
+ def test_nofollowlinks
139
+ basedir = tempfile
140
+ Dir.mkdir(basedir)
141
+ file = File.join(basedir, "file")
142
+ link = File.join(basedir, "link")
54
143
 
55
- users = {}
56
- count = 0
144
+ File.open(file, "w", 0644) { |f| f.puts "yayness"; f.flush }
145
+ File.symlink(file, link)
57
146
 
58
- # collect five users
59
- Etc.passwd { |passwd|
60
- if count > 5
61
- break
62
- else
63
- count += 1
64
- end
65
- users[passwd.uid] = passwd.name
66
- }
67
-
68
- fake = {}
69
- # find a fake user
70
- while true
71
- a = rand(1000)
72
- begin
73
- Etc.getpwuid(a)
74
- rescue
75
- fake[a] = "fakeuser"
76
- break
77
- end
78
- end
79
-
80
- uid, name = users.shift
81
- us = {}
82
- us[uid] = name
83
- users.each { |uid, name|
84
- assert_apply(file)
85
- assert_nothing_raised() {
86
- file[:owner] = name
87
- }
88
- assert_nothing_raised() {
89
- file.retrieve
90
- }
91
- assert_apply(file)
92
- }
93
- end
94
-
95
- def test_group
96
- file = mktestfile()
97
- [%x{groups}.chomp.split(/ /), Process.groups].flatten.each { |group|
98
- assert_nothing_raised() {
99
- file[:group] = group
100
- }
101
- assert(file.property(:group))
102
- assert(file.property(:group).should)
103
- }
104
- end
105
-
106
- def test_groups_fails_when_invalid
107
- assert_raise(Puppet::Error, "did not fail when the group was empty") do
108
- Puppet::Type.type(:file).new :path => "/some/file", :group => ""
109
- end
110
- end
147
+ # First test 'user'
148
+ user = nonrootuser
111
149
 
112
- if Puppet::Util::SUIDManager.uid == 0
113
- def test_createasuser
114
- dir = tmpdir()
150
+ inituser = File.lstat(link).uid
151
+ File.lchown(inituser, nil, link)
115
152
 
116
- user = nonrootuser()
117
- path = File.join(tmpdir, "createusertesting")
118
- @@tmpfiles << path
153
+ obj = nil
154
+ assert_nothing_raised {
119
155
 
120
- file = nil
121
- assert_nothing_raised {
122
- file = Puppet::Type.type(:file).new(
123
- :path => path,
124
- :owner => user.name,
125
- :ensure => "file",
126
- :mode => "755"
127
- )
128
- }
129
-
130
- comp = mk_catalog("createusertest", file)
131
-
132
- assert_events([:file_created], comp)
133
- end
134
-
135
- def test_nofollowlinks
136
- basedir = tempfile()
137
- Dir.mkdir(basedir)
138
- file = File.join(basedir, "file")
139
- link = File.join(basedir, "link")
140
-
141
- File.open(file, "w", 0644) { |f| f.puts "yayness"; f.flush }
142
- File.symlink(file, link)
143
-
144
- # First test 'user'
145
- user = nonrootuser()
146
-
147
- inituser = File.lstat(link).uid
148
- File.lchown(inituser, nil, link)
149
-
150
- obj = nil
151
- assert_nothing_raised {
152
- obj = Puppet::Type.type(:file).new(
153
- :title => link,
154
- :owner => user.name
155
- )
156
- }
157
- obj.retrieve
158
-
159
- # Make sure it defaults to managing the link
160
- assert_events([:file_changed], obj)
161
- assert_equal(user.uid, File.lstat(link).uid)
162
- assert_equal(inituser, File.stat(file).uid)
163
- File.chown(inituser, nil, file)
164
- File.lchown(inituser, nil, link)
165
-
166
- # Try following
167
- obj[:links] = :follow
168
- assert_events([:file_changed], obj)
169
- assert_equal(user.uid, File.stat(file).uid)
170
- assert_equal(inituser, File.lstat(link).uid)
171
-
172
- # And then explicitly managing
173
- File.chown(inituser, nil, file)
174
- File.lchown(inituser, nil, link)
175
- obj[:links] = :manage
176
- assert_events([:file_changed], obj)
177
- assert_equal(user.uid, File.lstat(link).uid)
178
- assert_equal(inituser, File.stat(file).uid)
179
-
180
- obj.delete(:owner)
181
- obj[:links] = :follow
182
-
183
- # And then test 'group'
184
- group = nonrootgroup
185
-
186
- initgroup = File.stat(file).gid
187
- obj[:group] = group.name
188
-
189
- obj[:links] = :follow
190
- assert_events([:file_changed], obj)
191
- assert_equal(group.gid, File.stat(file).gid)
192
- File.chown(nil, initgroup, file)
193
- File.lchown(nil, initgroup, link)
194
-
195
- obj[:links] = :manage
196
- assert_events([:file_changed], obj)
197
- assert_equal(group.gid, File.lstat(link).gid)
198
- assert_equal(initgroup, File.stat(file).gid)
199
- end
200
-
201
- def test_ownerasroot
202
- file = mktestfile()
203
-
204
- users = {}
205
- count = 0
206
-
207
- # collect five users
208
- Etc.passwd { |passwd|
209
- if count > 5
210
- break
211
- else
212
- count += 1
213
- end
214
- next if passwd.uid < 0
215
- users[passwd.uid] = passwd.name
216
- }
217
-
218
- fake = {}
219
- # find a fake user
220
- while true
221
- a = rand(1000)
222
- begin
223
- Etc.getpwuid(a)
224
- rescue
225
- fake[a] = "fakeuser"
226
- break
227
- end
228
- end
229
-
230
- users.each { |uid, name|
231
- assert_nothing_raised() {
232
- file[:owner] = name
233
- }
234
- changes = []
235
- assert_nothing_raised() {
236
- changes << file.evaluate
237
- }
238
- assert(changes.length > 0)
239
- assert_apply(file)
240
- currentvalue = file.retrieve
241
- assert(file.insync?(currentvalue))
242
- assert_nothing_raised() {
243
- file[:owner] = uid
244
- }
245
- assert_apply(file)
246
- currentvalue = file.retrieve
247
- # make sure changing to number doesn't cause a sync
248
- assert(file.insync?(currentvalue))
249
- }
250
-
251
- # We no longer raise an error here, because we check at run time
252
- #fake.each { |uid, name|
253
- # assert_raise(Puppet::Error) {
254
- # file[:owner] = name
255
- # }
256
- # assert_raise(Puppet::Error) {
257
- # file[:owner] = uid
258
- # }
259
- #}
260
- end
261
-
262
- def test_groupasroot
263
- file = mktestfile()
264
- [%x{groups}.chomp.split(/ /), Process.groups].flatten.each { |group|
265
- next unless Puppet::Util.gid(group) # grr.
266
- assert_nothing_raised() {
267
- file[:group] = group
268
- }
269
- assert(file.property(:group))
270
- assert(file.property(:group).should)
271
- assert_apply(file)
272
- currentvalue = file.retrieve
273
- assert(file.insync?(currentvalue))
274
- assert_nothing_raised() {
275
- file.delete(:group)
276
- }
277
- }
278
- end
279
-
280
- if Facter.value(:operatingsystem) == "Darwin"
281
- def test_sillyowner
282
- file = tempfile()
283
- File.open(file, "w") { |f| f.puts "" }
284
- File.chown(-2, nil, file)
285
-
286
- assert(File.stat(file).uid > 120000, "eh?")
287
- user = nonrootuser
288
- obj = Puppet::Type.newfile(
289
- :path => file,
290
- :owner => user.name
291
- )
292
-
293
- assert_apply(obj)
294
-
295
- assert_equal(user.uid, File.stat(file).uid)
296
- end
297
- end
298
- else
299
- $stderr.puts "Run as root for complete owner and group testing"
300
- end
301
-
302
- def test_create
303
- %w{a b c d}.collect { |name| tempfile() + name.to_s }.each { |path|
304
- file =nil
305
- assert_nothing_raised() {
306
- file = Puppet::Type.type(:file).new(
307
- :name => path,
308
- :ensure => "file"
309
- )
310
- }
311
- assert_events([:file_created], file)
312
- assert_events([], file)
313
- assert(FileTest.file?(path), "File does not exist")
314
- assert(file.insync?(file.retrieve))
315
- @@tmpfiles.push path
316
- }
317
- end
318
-
319
- def test_create_dir
320
- basedir = tempfile()
321
- Dir.mkdir(basedir)
322
- %w{a b c d}.collect { |name| "#{basedir}/%s" % name }.each { |path|
323
- file = nil
324
- assert_nothing_raised() {
325
- file = Puppet::Type.type(:file).new(
326
- :name => path,
327
- :ensure => "directory"
328
- )
329
- }
330
- assert(! FileTest.directory?(path), "Directory %s already exists" %
331
- [path])
332
- assert_events([:directory_created], file)
333
- assert_events([], file)
334
- assert(file.insync?(file.retrieve))
335
- assert(FileTest.directory?(path))
336
- @@tmpfiles.push path
337
- }
338
- end
339
-
340
- def test_modes
341
- file = mktestfile
342
- # Set it to something else initially
343
- File.chmod(0775, file.title)
344
- [0644,0755,0777,0641].each { |mode|
345
- assert_nothing_raised() {
346
- file[:mode] = mode
347
- }
348
- assert_events([:file_changed], file)
349
- assert_events([], file)
350
-
351
- assert(file.insync?(file.retrieve))
352
-
353
- assert_nothing_raised() {
354
- file.delete(:mode)
355
- }
356
- }
357
- end
358
-
359
- def cyclefile(path)
360
- # i had problems with using :name instead of :path
361
- [:name,:path].each { |param|
362
- file = nil
363
- changes = nil
364
- comp = nil
365
- trans = nil
366
-
367
- initstorage
368
- assert_nothing_raised {
369
- file = Puppet::Type.type(:file).new(
370
- param => path,
371
- :recurse => true,
372
- :checksum => "md5"
373
- )
374
- }
375
- comp = Puppet::Type.type(:component).new(
376
- :name => "component"
377
- )
378
- comp.push file
379
- assert_nothing_raised {
380
- trans = comp.evaluate
381
- }
382
- assert_nothing_raised {
383
- trans.evaluate
384
- }
385
- clearstorage
386
- Puppet::Type.allclear
387
- }
388
- end
389
-
390
- def test_recurse?
391
- file = Puppet::Type.type(:file).new :path => tempfile
392
-
393
- # Make sure we default to false
394
- assert(! file.recurse?, "Recurse defaulted to true")
395
-
396
- [true, "true", 10, "inf", "remote"].each do |value|
397
- file[:recurse] = value
398
- assert(file.recurse?, "%s did not cause recursion" % value)
399
- end
400
-
401
- [false, "false", 0].each do |value|
402
- file[:recurse] = value
403
- assert(! file.recurse?, "%s caused recursion" % value)
156
+ obj = Puppet::Type.type(:file).new(
157
+
158
+ :title => link,
159
+
160
+ :owner => user.name
161
+ )
162
+ }
163
+ obj.retrieve
164
+
165
+ # Make sure it defaults to managing the link
166
+ assert_events([:file_changed], obj)
167
+ assert_equal(user.uid, File.lstat(link).uid)
168
+ assert_equal(inituser, File.stat(file).uid)
169
+ File.chown(inituser, nil, file)
170
+ File.lchown(inituser, nil, link)
171
+
172
+ # Try following
173
+ obj[:links] = :follow
174
+ assert_events([:file_changed], obj)
175
+ assert_equal(user.uid, File.stat(file).uid)
176
+ assert_equal(inituser, File.lstat(link).uid)
177
+
178
+ # And then explicitly managing
179
+ File.chown(inituser, nil, file)
180
+ File.lchown(inituser, nil, link)
181
+ obj[:links] = :manage
182
+ assert_events([:file_changed], obj)
183
+ assert_equal(user.uid, File.lstat(link).uid)
184
+ assert_equal(inituser, File.stat(file).uid)
185
+
186
+ obj.delete(:owner)
187
+ obj[:links] = :follow
188
+
189
+ # And then test 'group'
190
+ group = nonrootgroup
191
+
192
+ initgroup = File.stat(file).gid
193
+ obj[:group] = group.name
194
+
195
+ obj[:links] = :follow
196
+ assert_events([:file_changed], obj)
197
+ assert_equal(group.gid, File.stat(file).gid)
198
+ File.chown(nil, initgroup, file)
199
+ File.lchown(nil, initgroup, link)
200
+
201
+ obj[:links] = :manage
202
+ assert_events([:file_changed], obj)
203
+ assert_equal(group.gid, File.lstat(link).gid)
204
+ assert_equal(initgroup, File.stat(file).gid)
205
+ end
206
+
207
+ def test_ownerasroot
208
+ file = mktestfile
209
+
210
+ users = {}
211
+ count = 0
212
+
213
+ # collect five users
214
+ Etc.passwd { |passwd|
215
+ if count > 5
216
+ break
217
+ else
218
+ count += 1
404
219
  end
405
- end
406
-
407
- def test_recursion
408
- basedir = tempfile()
409
- subdir = File.join(basedir, "subdir")
410
- tmpfile = File.join(basedir,"testing")
411
- FileUtils.mkdir_p(subdir)
412
-
413
- dir = nil
414
- [true, "true", "inf", 50].each do |value|
415
- assert_nothing_raised {
416
- dir = Puppet::Type.type(:file).new(
417
- :path => basedir,
418
- :recurse => value,
419
- :check => %w{owner mode group}
420
- )
421
- }
422
- config = mk_catalog dir
423
- transaction = Puppet::Transaction.new(config)
424
-
425
- children = nil
426
-
427
- assert_nothing_raised {
428
- children = transaction.eval_generate(dir)
429
- }
430
-
431
- assert_equal([subdir], children.collect {|c| c.title },
432
- "Incorrect generated children")
433
-
434
- # Remove our subdir resource,
435
- subdir_resource = config.resource(:file, subdir)
436
- config.remove_resource(subdir_resource)
437
-
438
- # Create the test file
439
- File.open(tmpfile, "w") { |f| f.puts "yayness" }
440
-
441
- assert_nothing_raised {
442
- children = transaction.eval_generate(dir)
443
- }
444
-
445
- # And make sure we get both resources back.
446
- assert_equal([subdir, tmpfile].sort, children.collect {|c| c.title }.sort,
447
- "Incorrect generated children when recurse == %s" % value.inspect)
448
-
449
- File.unlink(tmpfile)
220
+ next if passwd.uid < 0
221
+ users[passwd.uid] = passwd.name
222
+ }
223
+
224
+ fake = {}
225
+ # find a fake user
226
+ while true
227
+ a = rand(1000)
228
+ begin
229
+ Etc.getpwuid(a)
230
+ rescue
231
+ fake[a] = "fakeuser"
232
+ break
450
233
  end
451
- end
234
+ end
452
235
 
453
- def test_filetype_retrieval
454
- file = nil
455
-
456
- # Verify it retrieves files of type directory
236
+ users.each { |uid, name|
457
237
  assert_nothing_raised {
458
- file = Puppet::Type.type(:file).new(
459
- :name => tmpdir(),
460
- :check => :type
461
- )
238
+ file[:owner] = name
462
239
  }
463
-
240
+ assert_apply(file)
241
+ currentvalue = file.retrieve
242
+ assert(file.insync?(currentvalue))
464
243
  assert_nothing_raised {
465
- file.evaluate
244
+ file[:owner] = uid
466
245
  }
467
-
468
- assert_equal("directory", file.property(:type).retrieve)
469
-
470
- # And then check files
246
+ assert_apply(file)
247
+ currentvalue = file.retrieve
248
+ # make sure changing to number doesn't cause a sync
249
+ assert(file.insync?(currentvalue))
250
+ }
251
+
252
+ # We no longer raise an error here, because we check at run time
253
+ #fake.each { |uid, name|
254
+ # assert_raise(Puppet::Error) {
255
+ # file[:owner] = name
256
+ # }
257
+ # assert_raise(Puppet::Error) {
258
+ # file[:owner] = uid
259
+ # }
260
+ #}
261
+ end
262
+
263
+ def test_groupasroot
264
+ file = mktestfile
265
+ [%x{groups}.chomp.split(/ /), Process.groups].flatten.each { |group|
266
+ next unless Puppet::Util.gid(group) # grr.
471
267
  assert_nothing_raised {
472
- file = Puppet::Type.type(:file).new(
473
- :name => tempfile(),
474
- :ensure => "file"
475
- )
268
+ file[:group] = group
476
269
  }
477
-
270
+ assert(file.property(:group))
271
+ assert(file.property(:group).should)
478
272
  assert_apply(file)
479
- file[:check] = "type"
480
- assert_apply(file)
481
-
482
- assert_equal("file", file.property(:type).retrieve)
483
-
484
- file[:type] = "directory"
485
-
486
- currentvalues = {}
487
- assert_nothing_raised { currentvalues = file.retrieve }
488
-
489
- # The 'retrieve' method sets @should to @is, so they're never
490
- # out of sync. It's a read-only class.
491
- assert(file.insync?(currentvalues))
492
- end
493
-
494
- def test_path
495
- dir = tempfile()
496
-
497
- path = File.join(dir, "subdir")
498
-
499
- assert_nothing_raised("Could not make file") {
500
- FileUtils.mkdir_p(File.dirname(path))
501
- File.open(path, "w") { |f| f.puts "yayness" }
273
+ currentvalue = file.retrieve
274
+ assert(file.insync?(currentvalue))
275
+ assert_nothing_raised {
276
+ file.delete(:group)
502
277
  }
278
+ }
279
+ end
503
280
 
504
- file = nil
505
- dirobj = nil
506
- assert_nothing_raised("Could not make file object") {
507
- dirobj = Puppet::Type.type(:file).new(
508
- :path => dir,
509
- :recurse => true,
510
- :check => %w{mode owner group}
511
- )
512
- }
513
- catalog = mk_catalog dirobj
514
- transaction = Puppet::Transaction.new(catalog)
515
- transaction.eval_generate(dirobj)
281
+ if Facter.value(:operatingsystem) == "Darwin"
282
+ def test_sillyowner
283
+ file = tempfile
284
+ File.open(file, "w") { |f| f.puts "" }
285
+ File.chown(-2, nil, file)
516
286
 
517
- #assert_nothing_raised {
518
- # dirobj.eval_generate
519
- #}
287
+ assert(File.stat(file).uid > 120000, "eh?")
288
+ user = nonrootuser
520
289
 
521
- file = catalog.resource(:file, path)
290
+ obj = Puppet::Type.newfile(
291
+
292
+ :path => file,
293
+
294
+ :owner => user.name
295
+ )
522
296
 
523
- assert(file, "Could not retrieve file object")
297
+ assert_apply(obj)
524
298
 
525
- assert_equal("/%s" % file.ref, file.path)
299
+ assert_equal(user.uid, File.stat(file).uid)
300
+ end
526
301
  end
302
+ else
303
+ $stderr.puts "Run as root for complete owner and group testing"
304
+ end
527
305
 
528
- def test_autorequire
529
- basedir = tempfile()
530
- subfile = File.join(basedir, "subfile")
306
+ def test_create
307
+ %w{a b c d}.collect { |name| tempfile + name.to_s }.each { |path|
308
+ file =nil
309
+ assert_nothing_raised {
531
310
 
532
- baseobj = Puppet::Type.type(:file).new(
533
- :name => basedir,
534
- :ensure => "directory"
311
+ file = Puppet::Type.type(:file).new(
312
+
313
+ :name => path,
314
+
315
+ :ensure => "file"
535
316
  )
536
-
537
- subobj = Puppet::Type.type(:file).new(
538
- :name => subfile,
539
- :ensure => "file"
317
+ }
318
+ assert_events([:file_created], file)
319
+ assert_events([], file)
320
+ assert(FileTest.file?(path), "File does not exist")
321
+ @@tmpfiles.push path
322
+ }
323
+ end
324
+
325
+ def test_create_dir
326
+ basedir = tempfile
327
+ Dir.mkdir(basedir)
328
+ %w{a b c d}.collect { |name| "#{basedir}/#{name}" }.each { |path|
329
+ file = nil
330
+ assert_nothing_raised {
331
+
332
+ file = Puppet::Type.type(:file).new(
333
+
334
+ :name => path,
335
+
336
+ :ensure => "directory"
540
337
  )
541
- catalog = mk_catalog(baseobj, subobj)
542
- edge = nil
543
- assert_nothing_raised do
544
- edge = subobj.autorequire.shift
545
- end
546
- assert_equal(baseobj, edge.source, "file did not require its parent dir")
547
- assert_equal(subobj, edge.target, "file did not require its parent dir")
548
- end
338
+ }
339
+ assert(! FileTest.directory?(path), "Directory #{path} already exists")
340
+ assert_events([:directory_created], file)
341
+ assert_events([], file)
342
+ assert(FileTest.directory?(path))
343
+ @@tmpfiles.push path
344
+ }
345
+ end
346
+
347
+ def test_modes
348
+ file = mktestfile
349
+ # Set it to something else initially
350
+ File.chmod(0775, file.title)
351
+ [0644,0755,0777,0641].each { |mode|
352
+ assert_nothing_raised {
353
+ file[:mode] = mode
354
+ }
355
+ assert_events([:mode_changed], file)
356
+ assert_events([], file)
357
+
358
+ assert_nothing_raised {
359
+ file.delete(:mode)
360
+ }
361
+ }
362
+ end
363
+
364
+ def cyclefile(path)
365
+ # i had problems with using :name instead of :path
366
+ [:name,:path].each { |param|
367
+ file = nil
368
+ changes = nil
369
+ comp = nil
370
+ trans = nil
371
+
372
+ initstorage
373
+ assert_nothing_raised {
374
+
375
+ file = Puppet::Type.type(:file).new(
376
+
377
+ param => path,
378
+ :recurse => true,
379
+
380
+ :checksum => "md5"
381
+ )
382
+ }
383
+ comp = Puppet::Type.type(:component).new(
384
+ :name => "component"
385
+ )
386
+ comp.push file
387
+ assert_nothing_raised {
388
+ trans = comp.evaluate
389
+ }
390
+ assert_nothing_raised {
391
+ trans.evaluate
392
+ }
393
+ clearstorage
394
+ Puppet::Type.allclear
395
+ }
396
+ end
397
+
398
+ def test_filetype_retrieval
399
+ file = nil
400
+
401
+ # Verify it retrieves files of type directory
402
+ assert_nothing_raised {
549
403
 
550
- # Unfortunately, I know this fails
551
- def disabled_test_recursivemkdir
552
- path = tempfile()
553
- subpath = File.join(path, "this", "is", "a", "dir")
554
- file = nil
555
- assert_nothing_raised {
556
404
  file = Puppet::Type.type(:file).new(
557
- :name => subpath,
558
- :ensure => "directory",
559
- :recurse => true
560
- )
561
- }
405
+
406
+ :name => tmpdir,
407
+
408
+ :check => :type
409
+ )
410
+ }
562
411
 
563
- comp = mk_catalog("yay", file)
564
- comp.finalize
565
- assert_apply(comp)
566
- #assert_events([:directory_created], comp)
412
+ assert_equal("directory", file.property(:type).retrieve)
567
413
 
568
- assert(FileTest.directory?(subpath), "Did not create directory")
569
- end
570
-
571
- # Make sure that content updates the checksum on the same run
572
- def test_checksumchange_for_content
573
- dest = tempfile()
574
- File.open(dest, "w") { |f| f.puts "yayness" }
414
+ # And then check files
415
+ assert_nothing_raised {
575
416
 
576
- file = nil
577
- assert_nothing_raised {
578
417
  file = Puppet::Type.type(:file).new(
579
- :name => dest,
580
- :checksum => "md5",
581
- :content => "This is some content",
582
- :backup => false
583
- )
584
- }
585
-
586
- file.retrieve
587
-
588
- assert_events([:file_changed], file)
589
- file.retrieve
590
- assert_events([], file)
591
- end
418
+
419
+ :name => tempfile,
420
+
421
+ :ensure => "file"
422
+ )
423
+ }
592
424
 
593
- # Make sure that content updates the checksum on the same run
594
- def test_checksumchange_for_ensure
595
- dest = tempfile()
425
+ assert_apply(file)
426
+ file[:check] = "type"
427
+ assert_apply(file)
596
428
 
597
- file = nil
598
- assert_nothing_raised {
599
- file = Puppet::Type.type(:file).new(
600
- :name => dest,
601
- :checksum => "md5",
602
- :ensure => "file"
603
- )
604
- }
429
+ assert_equal("file", file.property(:type).retrieve)
430
+ end
605
431
 
606
- file.retrieve
607
-
608
- assert_events([:file_created], file)
609
- file.retrieve
610
- assert_events([], file)
611
- end
432
+ def test_path
433
+ dir = tempfile
612
434
 
613
- def test_nameandpath
614
- path = tempfile()
435
+ path = File.join(dir, "subdir")
615
436
 
616
- file = nil
617
- assert_nothing_raised {
618
- file = Puppet::Type.type(:file).new(
619
- :title => "fileness",
620
- :path => path,
621
- :content => "this is some content"
622
- )
623
- }
437
+ assert_nothing_raised("Could not make file") {
438
+ FileUtils.mkdir_p(File.dirname(path))
439
+ File.open(path, "w") { |f| f.puts "yayness" }
440
+ }
624
441
 
625
- assert_apply(file)
442
+ file = nil
443
+ dirobj = nil
444
+ assert_nothing_raised("Could not make file object") {
626
445
 
627
- assert(FileTest.exists?(path))
628
- end
446
+ dirobj = Puppet::Type.type(:file).new(
447
+
448
+ :path => dir,
449
+ :recurse => true,
450
+
451
+ :check => %w{mode owner group}
452
+ )
453
+ }
454
+ catalog = mk_catalog dirobj
455
+ transaction = Puppet::Transaction.new(catalog)
456
+ transaction.eval_generate(dirobj)
457
+
458
+ #assert_nothing_raised {
459
+ # dirobj.eval_generate
460
+ #}
461
+
462
+ file = catalog.resource(:file, path)
463
+
464
+ assert(file, "Could not retrieve file object")
465
+
466
+ assert_equal("/#{file.ref}", file.path)
467
+ end
468
+
469
+ def test_autorequire
470
+ basedir = tempfile
471
+ subfile = File.join(basedir, "subfile")
472
+
473
+
474
+ baseobj = Puppet::Type.type(:file).new(
475
+
476
+ :name => basedir,
477
+
478
+ :ensure => "directory"
479
+ )
480
+
481
+
482
+ subobj = Puppet::Type.type(:file).new(
483
+
484
+ :name => subfile,
485
+
486
+ :ensure => "file"
487
+ )
488
+ catalog = mk_catalog(baseobj, subobj)
489
+ edge = nil
490
+ assert_nothing_raised do
491
+ edge = subobj.autorequire.shift
492
+ end
493
+ assert_equal(baseobj, edge.source, "file did not require its parent dir")
494
+ assert_equal(subobj, edge.target, "file did not require its parent dir")
495
+ end
496
+
497
+ # Unfortunately, I know this fails
498
+ def disabled_test_recursivemkdir
499
+ path = tempfile
500
+ subpath = File.join(path, "this", "is", "a", "dir")
501
+ file = nil
502
+ assert_nothing_raised {
629
503
 
630
- # Make sure that a missing group isn't fatal at object instantiation time.
631
- def test_missinggroup
632
- file = nil
633
- assert_nothing_raised {
634
504
  file = Puppet::Type.type(:file).new(
635
- :path => tempfile(),
636
- :group => "fakegroup"
637
- )
638
- }
639
-
640
- assert(file.property(:group), "Group property failed")
641
- end
642
-
643
- def test_modecreation
644
- path = tempfile()
645
- file = Puppet::Type.type(:file).new(
646
- :path => path,
647
- :ensure => "file",
648
- :mode => "0777"
649
- )
650
- assert_equal(0777, file.should(:mode),
651
- "Mode did not get set correctly")
652
- assert_apply(file)
653
- assert_equal(0777, File.stat(path).mode & 007777,
654
- "file mode is incorrect")
655
- File.unlink(path)
656
- file[:ensure] = "directory"
657
- assert_apply(file)
658
- assert_equal(0777, File.stat(path).mode & 007777,
659
- "directory mode is incorrect")
660
- end
661
-
662
- # If both 'ensure' and 'content' are used, make sure that all of the other
663
- # properties are handled correctly.
664
- def test_contentwithmode
665
- path = tempfile()
505
+
506
+ :name => subpath,
507
+ :ensure => "directory",
508
+
509
+ :recurse => true
510
+ )
511
+ }
512
+
513
+ comp = mk_catalog("yay", file)
514
+ comp.finalize
515
+ assert_apply(comp)
516
+ #assert_events([:directory_created], comp)
517
+
518
+ assert(FileTest.directory?(subpath), "Did not create directory")
519
+ end
520
+
521
+ # Make sure that content updates the checksum on the same run
522
+ def test_checksumchange_for_content
523
+ dest = tempfile
524
+ File.open(dest, "w") { |f| f.puts "yayness" }
525
+
526
+ file = nil
527
+ assert_nothing_raised {
666
528
 
667
- file = nil
668
- assert_nothing_raised {
669
529
  file = Puppet::Type.type(:file).new(
670
- :path => path,
671
- :ensure => "file",
672
- :content => "some text\n",
673
- :mode => 0755
674
- )
675
- }
676
-
677
- assert_apply(file)
678
- assert_equal("%o" % 0755, "%o" % (File.stat(path).mode & 007777))
679
- end
680
-
681
- def test_backupmodes
682
- File.umask(0022)
683
-
684
- file = tempfile()
685
- newfile = tempfile()
530
+
531
+ :name => dest,
532
+ :checksum => "md5",
533
+ :content => "This is some content",
534
+
535
+ :backup => false
536
+ )
537
+ }
686
538
 
687
- File.open(file, "w", 0411) { |f| f.puts "yayness" }
539
+ file.retrieve
688
540
 
689
- obj = Puppet::Type.type(:file).new(
690
- :path => file, :content => "rahness\n", :backup => ".puppet-bak"
691
- )
692
- catalog = mk_catalog(obj)
693
- catalog.apply
694
-
695
- backupfile = file + obj[:backup]
696
- @@tmpfiles << backupfile
697
- assert(FileTest.exists?(backupfile),
698
- "Backup file %s does not exist" % backupfile)
541
+ assert_events([:content_changed], file)
542
+ file.retrieve
543
+ assert_events([], file)
544
+ end
699
545
 
700
- assert_equal(0411, filemode(backupfile),
701
- "File mode is wrong for backupfile")
546
+ # Make sure that content updates the checksum on the same run
547
+ def test_checksumchange_for_ensure
548
+ dest = tempfile
702
549
 
703
- name = "bucket"
704
- bpath = tempfile()
705
- Dir.mkdir(bpath)
706
- bucket = Puppet::Type.type(:filebucket).new(:title => name, :path => bpath)
707
- catalog.add_resource(bucket)
550
+ file = nil
551
+ assert_nothing_raised {
708
552
 
709
- obj[:backup] = name
710
- obj[:content] = "New content"
711
- catalog.finalize
712
- catalog.apply
553
+ file = Puppet::Type.type(:file).new(
554
+
555
+ :name => dest,
556
+ :checksum => "md5",
557
+
558
+ :ensure => "file"
559
+ )
560
+ }
713
561
 
714
- md5 = "18cc17fa3047fcc691fdf49c0a7f539a"
715
- dir, file, pathfile = Puppet::Network::Handler.filebucket.paths(bpath, md5)
562
+ file.retrieve
716
563
 
717
- assert_equal(0440, filemode(file))
718
- end
564
+ assert_events([:file_created], file)
565
+ file.retrieve
566
+ assert_events([], file)
567
+ end
719
568
 
720
- def test_replacefilewithlink
721
- path = tempfile()
722
- link = tempfile()
569
+ def test_nameandpath
570
+ path = tempfile
723
571
 
724
- File.open(path, "w") { |f| f.puts "yay" }
725
- File.open(link, "w") { |f| f.puts "a file" }
572
+ file = nil
573
+ assert_nothing_raised {
726
574
 
727
- file = nil
728
- assert_nothing_raised {
729
575
  file = Puppet::Type.type(:file).new(
730
- :ensure => path,
731
- :path => link,
732
- :backup => false
733
- )
734
- }
576
+
577
+ :title => "fileness",
578
+ :path => path,
579
+
580
+ :content => "this is some content"
581
+ )
582
+ }
735
583
 
736
- assert_events([:link_created], file)
584
+ assert_apply(file)
737
585
 
738
- assert(FileTest.symlink?(link), "Link was not created")
586
+ assert(FileTest.exists?(path))
587
+ end
739
588
 
740
- assert_equal(path, File.readlink(link), "Link was created incorrectly")
741
- end
589
+ # Make sure that a missing group isn't fatal at object instantiation time.
590
+ def test_missinggroup
591
+ file = nil
592
+ assert_nothing_raised {
742
593
 
743
- def test_file_with_spaces
744
- dir = tempfile()
745
- Dir.mkdir(dir)
746
- source = File.join(dir, "file spaces")
747
- dest = File.join(dir, "another space")
594
+ file = Puppet::Type.type(:file).new(
595
+
596
+ :path => tempfile,
597
+
598
+ :group => "fakegroup"
599
+ )
600
+ }
601
+
602
+ assert(file.property(:group), "Group property failed")
603
+ end
604
+
605
+ def test_modecreation
606
+ path = tempfile
607
+
608
+ file = Puppet::Type.type(:file).new(
609
+
610
+ :path => path,
611
+ :ensure => "file",
612
+
613
+ :mode => "0777"
614
+ )
615
+ assert_equal(0777, file.should(:mode), "Mode did not get set correctly")
616
+ assert_apply(file)
617
+ assert_equal(0777, File.stat(path).mode & 007777, "file mode is incorrect")
618
+ File.unlink(path)
619
+ file[:ensure] = "directory"
620
+ assert_apply(file)
621
+ assert_equal(0777, File.stat(path).mode & 007777, "directory mode is incorrect")
622
+ end
623
+
624
+ # If both 'ensure' and 'content' are used, make sure that all of the other
625
+ # properties are handled correctly.
626
+ def test_contentwithmode
627
+ path = tempfile
628
+
629
+ file = nil
630
+ assert_nothing_raised {
748
631
 
749
- File.open(source, "w") { |f| f.puts :yay }
750
- obj = Puppet::Type.type(:file).new(
751
- :path => dest,
752
- :source => source
753
- )
754
- assert(obj, "Did not create file")
632
+ file = Puppet::Type.type(:file).new(
633
+
634
+ :path => path,
635
+ :ensure => "file",
636
+ :content => "some text\n",
637
+
638
+ :mode => 0755
639
+ )
640
+ }
755
641
 
756
- assert_apply(obj)
642
+ assert_apply(file)
643
+ assert_equal("%o" % 0755, "%o" % (File.stat(path).mode & 007777))
644
+ end
757
645
 
758
- assert(FileTest.exists?(dest), "File did not get created")
759
- end
646
+ def test_replacefilewithlink
647
+ path = tempfile
648
+ link = tempfile
760
649
 
761
- # Testing #274. Make sure target can be used without 'ensure'.
762
- def test_target_without_ensure
763
- source = tempfile()
764
- dest = tempfile()
765
- File.open(source, "w") { |f| f.puts "funtest" }
650
+ File.open(path, "w") { |f| f.puts "yay" }
651
+ File.open(link, "w") { |f| f.puts "a file" }
766
652
 
767
- obj = nil
768
- assert_nothing_raised {
769
- obj = Puppet::Type.newfile(:path => dest, :target => source)
770
- }
653
+ file = nil
654
+ assert_nothing_raised {
771
655
 
772
- assert_apply(obj)
773
- end
656
+ file = Puppet::Type.type(:file).new(
657
+
658
+ :ensure => path,
659
+ :path => link,
660
+
661
+ :backup => false
662
+ )
663
+ }
664
+
665
+ assert_events([:link_created], file)
666
+
667
+ assert(FileTest.symlink?(link), "Link was not created")
668
+
669
+ assert_equal(path, File.readlink(link), "Link was created incorrectly")
670
+ end
671
+
672
+ def test_file_with_spaces
673
+ dir = tempfile
674
+ Dir.mkdir(dir)
675
+ source = File.join(dir, "file spaces")
676
+ dest = File.join(dir, "another space")
677
+
678
+ File.open(source, "w") { |f| f.puts :yay }
679
+
680
+ obj = Puppet::Type.type(:file).new(
681
+
682
+ :path => dest,
683
+
684
+ :source => source
685
+ )
686
+ assert(obj, "Did not create file")
687
+
688
+ assert_apply(obj)
689
+
690
+ assert(FileTest.exists?(dest), "File did not get created")
691
+ end
692
+
693
+ # Testing #274. Make sure target can be used without 'ensure'.
694
+ def test_target_without_ensure
695
+ source = tempfile
696
+ dest = tempfile
697
+ File.open(source, "w") { |f| f.puts "funtest" }
698
+
699
+ obj = nil
700
+ assert_nothing_raised {
701
+ obj = Puppet::Type.newfile(:path => dest, :target => source)
702
+ }
703
+
704
+ assert_apply(obj)
705
+ end
706
+
707
+ def test_autorequire_owner_and_group
708
+ file = tempfile
709
+ comp = nil
710
+ user = nil
711
+ group =nil
712
+ home = nil
713
+ ogroup = nil
714
+ assert_nothing_raised {
774
715
 
775
- def test_autorequire_owner_and_group
776
- file = tempfile()
777
- comp = nil
778
- user = nil
779
- group =nil
780
- home = nil
781
- ogroup = nil
782
- assert_nothing_raised {
783
716
  user = Puppet::Type.type(:user).new(
784
- :name => "pptestu",
785
- :home => file,
786
- :gid => "pptestg"
787
- )
788
- home = Puppet::Type.type(:file).new(
789
- :path => file,
790
- :owner => "pptestu",
791
- :group => "pptestg",
792
- :ensure => "directory"
793
- )
794
- group = Puppet::Type.type(:group).new(
795
- :name => "pptestg"
796
- )
797
- comp = mk_catalog(user, group, home)
798
- }
799
-
800
- # Now make sure we get a relationship for each of these
801
- rels = nil
802
- assert_nothing_raised { rels = home.autorequire }
803
- assert(rels.detect { |e| e.source == user }, "owner was not autorequired")
804
- assert(rels.detect { |e| e.source == group }, "group was not autorequired")
805
- end
806
-
807
- # Testing #309 -- //my/file => /my/file
808
- def test_slash_deduplication
809
- ["/my/////file/for//testing", "//my/file/for/testing///",
810
- "/my/file/for/testing"].each do |path|
811
- file = nil
812
- assert_nothing_raised do
813
- file = Puppet::Type.newfile(:path => path)
814
- end
815
-
816
- assert_equal("/my/file/for/testing", file.title)
817
- end
818
- end
819
-
820
- if Process.uid == 0
821
- # Testing #364.
822
- def test_writing_in_directories_with_no_write_access
823
- # Make a directory that our user does not have access to
824
- dir = tempfile()
825
- Dir.mkdir(dir)
826
-
827
- # Get a fake user
828
- user = nonrootuser
829
- # and group
830
- group = nonrootgroup
831
-
832
- # First try putting a file in there
833
- path = File.join(dir, "file")
834
- file = Puppet::Type.newfile :path => path, :owner => user.name, :group => group.name, :content => "testing"
835
-
836
- # Make sure we can create it
837
- assert_apply(file)
838
- assert(FileTest.exists?(path), "File did not get created")
839
- # And that it's owned correctly
840
- assert_equal(user.uid, File.stat(path).uid, "File has the wrong owner")
841
- assert_equal(group.gid, File.stat(path).gid, "File has the wrong group")
842
-
843
- assert_equal("testing", File.read(path), "file has the wrong content")
844
-
845
- # Now make a dir
846
- subpath = File.join(dir, "subdir")
847
- subdir = Puppet::Type.newfile :path => subpath, :owner => user.name, :group => group.name, :ensure => :directory
848
- # Make sure we can create it
849
- assert_apply(subdir)
850
- assert(FileTest.directory?(subpath), "File did not get created")
851
- # And that it's owned correctly
852
- assert_equal(user.uid, File.stat(subpath).uid, "File has the wrong owner")
853
- assert_equal(group.gid, File.stat(subpath).gid, "File has the wrong group")
854
-
855
- assert_equal("testing", File.read(path), "file has the wrong content")
856
- end
857
- end
858
-
859
- # #366
860
- def test_replace_aliases
861
- file = Puppet::Type.newfile :path => tempfile()
862
- file[:replace] = :yes
863
- assert_equal(:true, file[:replace], ":replace did not alias :true to :yes")
864
- file[:replace] = :no
865
- assert_equal(:false, file[:replace], ":replace did not alias :false to :no")
866
- end
717
+
718
+ :name => "pptestu",
719
+ :home => file,
720
+
721
+ :gid => "pptestg"
722
+ )
867
723
 
868
- def test_pathbuilder
869
- dir = tempfile()
870
- Dir.mkdir(dir)
871
- file = File.join(dir, "file")
872
- File.open(file, "w") { |f| f.puts "" }
873
- obj = Puppet::Type.newfile :path => dir, :recurse => true, :mode => 0755
874
- catalog = mk_catalog obj
875
- transaction = Puppet::Transaction.new(catalog)
876
-
877
- assert_equal("/%s" % obj.ref, obj.path)
878
-
879
- list = transaction.eval_generate(obj)
880
- fileobj = catalog.resource(:file, file)
881
- assert(fileobj, "did not generate file object")
882
- assert_equal("/%s" % fileobj.ref, fileobj.path, "did not generate correct subfile path")
883
- end
884
-
885
- # Testing #403
886
- def test_removal_with_content_set
887
- path = tempfile()
888
- File.open(path, "w") { |f| f.puts "yay" }
889
- file = Puppet::Type.newfile(:name => path, :ensure => :absent, :content => "foo", :backup => false)
890
-
891
- assert_apply(file)
892
- assert(! FileTest.exists?(path), "File was not removed")
893
- end
894
-
895
- # Testing #438
896
- def test_creating_properties_conflict
897
- file = tempfile()
898
- first = tempfile()
899
- second = tempfile()
900
- params = [:content, :source, :target]
901
- params.each do |param|
902
- assert_nothing_raised("%s conflicted with ensure" % [param]) do
903
- Puppet::Type.newfile(:path => file, param => first, :ensure => :file)
904
- end
905
- params.each do |other|
906
- next if other == param
907
- assert_raise(Puppet::Error, "%s and %s did not conflict" % [param, other]) do
908
- Puppet::Type.newfile(:path => file, other => first, param => second)
909
- end
910
- end
911
- end
912
- end
913
-
914
- # Testing #508
915
- if Process.uid == 0
916
- def test_files_replace_with_right_attrs
917
- source = tempfile()
918
- File.open(source, "w") { |f|
919
- f.puts "some text"
920
- }
921
- File.chmod(0755, source)
922
- user = nonrootuser
923
- group = nonrootgroup
924
- path = tempfile()
925
- good = {:uid => user.uid, :gid => group.gid, :mode => 0640}
926
-
927
- run = Proc.new do |obj, msg|
928
- assert_apply(obj)
929
- stat = File.stat(obj[:path])
930
- good.each do |should, sval|
931
- if should == :mode
932
- current = filemode(obj[:path])
933
- else
934
- current = stat.send(should)
935
- end
936
- assert_equal(sval, current,
937
- "Attr %s was not correct %s" % [should, msg])
938
- end
724
+ home = Puppet::Type.type(:file).new(
725
+
726
+ :path => file,
727
+ :owner => "pptestu",
728
+ :group => "pptestg",
729
+
730
+ :ensure => "directory"
731
+ )
732
+ group = Puppet::Type.type(:group).new(
733
+ :name => "pptestg"
734
+ )
735
+ comp = mk_catalog(user, group, home)
736
+ }
737
+
738
+ # Now make sure we get a relationship for each of these
739
+ rels = nil
740
+ assert_nothing_raised { rels = home.autorequire }
741
+ assert(rels.detect { |e| e.source == user }, "owner was not autorequired")
742
+ assert(rels.detect { |e| e.source == group }, "group was not autorequired")
743
+ end
744
+
745
+ # Testing #309 -- //my/file => /my/file
746
+ def test_slash_deduplication
747
+ ["/my/////file/for//testing", "/my/file/for/testing///",
748
+ "/my/file/for/testing"].each do |path|
749
+ file = nil
750
+ assert_nothing_raised do
751
+ file = Puppet::Type.newfile(:path => path)
752
+ end
753
+
754
+ assert_equal("/my/file/for/testing", file[:path])
755
+ end
756
+ end
757
+
758
+ if Process.uid == 0
759
+ # Testing #364.
760
+ def test_writing_in_directories_with_no_write_access
761
+ # Make a directory that our user does not have access to
762
+ dir = tempfile
763
+ Dir.mkdir(dir)
764
+
765
+ # Get a fake user
766
+ user = nonrootuser
767
+ # and group
768
+ group = nonrootgroup
769
+
770
+ # First try putting a file in there
771
+ path = File.join(dir, "file")
772
+ file = Puppet::Type.newfile :path => path, :owner => user.name, :group => group.name, :content => "testing"
773
+
774
+ # Make sure we can create it
775
+ assert_apply(file)
776
+ assert(FileTest.exists?(path), "File did not get created")
777
+ # And that it's owned correctly
778
+ assert_equal(user.uid, File.stat(path).uid, "File has the wrong owner")
779
+ assert_equal(group.gid, File.stat(path).gid, "File has the wrong group")
780
+
781
+ assert_equal("testing", File.read(path), "file has the wrong content")
782
+
783
+ # Now make a dir
784
+ subpath = File.join(dir, "subdir")
785
+ subdir = Puppet::Type.newfile :path => subpath, :owner => user.name, :group => group.name, :ensure => :directory
786
+ # Make sure we can create it
787
+ assert_apply(subdir)
788
+ assert(FileTest.directory?(subpath), "File did not get created")
789
+ # And that it's owned correctly
790
+ assert_equal(user.uid, File.stat(subpath).uid, "File has the wrong owner")
791
+ assert_equal(group.gid, File.stat(subpath).gid, "File has the wrong group")
792
+
793
+ assert_equal("testing", File.read(path), "file has the wrong content")
794
+ end
795
+ end
796
+
797
+ # #366
798
+ def test_replace_aliases
799
+ file = Puppet::Type.newfile :path => tempfile
800
+ file[:replace] = :yes
801
+ assert_equal(:true, file[:replace], ":replace did not alias :true to :yes")
802
+ file[:replace] = :no
803
+ assert_equal(:false, file[:replace], ":replace did not alias :false to :no")
804
+ end
805
+
806
+ def test_pathbuilder
807
+ dir = tempfile
808
+ Dir.mkdir(dir)
809
+ file = File.join(dir, "file")
810
+ File.open(file, "w") { |f| f.puts "" }
811
+ obj = Puppet::Type.newfile :path => dir, :recurse => true, :mode => 0755
812
+ catalog = mk_catalog obj
813
+ transaction = Puppet::Transaction.new(catalog)
814
+
815
+ assert_equal("/#{obj.ref}", obj.path)
816
+
817
+ list = transaction.eval_generate(obj)
818
+ fileobj = catalog.resource(:file, file)
819
+ assert(fileobj, "did not generate file object")
820
+ assert_equal("/#{fileobj.ref}", fileobj.path, "did not generate correct subfile path")
821
+ end
822
+
823
+ # Testing #403
824
+ def test_removal_with_content_set
825
+ path = tempfile
826
+ File.open(path, "w") { |f| f.puts "yay" }
827
+ file = Puppet::Type.newfile(:name => path, :ensure => :absent, :content => "foo", :backup => false)
828
+
829
+ assert_apply(file)
830
+ assert(! FileTest.exists?(path), "File was not removed")
831
+ end
832
+
833
+ # Testing #438
834
+ def test_creating_properties_conflict
835
+ file = tempfile
836
+ first = tempfile
837
+ second = tempfile
838
+ params = [:content, :source, :target]
839
+ params.each do |param|
840
+ assert_nothing_raised("#{param} conflicted with ensure") do
841
+ Puppet::Type.newfile(:path => file, param => first, :ensure => :file)
842
+ end
843
+ params.each do |other|
844
+ next if other == param
845
+ assert_raise(Puppet::Error, "#{param} and #{other} did not conflict") do
846
+ Puppet::Type.newfile(:path => file, other => first, param => second)
939
847
  end
940
-
941
- file = Puppet::Type.newfile(:path => path, :owner => user.name,
942
- :group => group.name, :mode => 0640, :backup => false)
943
- {:source => source, :content => "some content"}.each do |attr, value|
944
- file[attr] = value
945
- # First create the file
946
- run.call(file, "upon creation with %s" % attr)
947
-
948
- # Now change something so that we replace the file
949
- case attr
950
- when :source
951
- File.open(source, "w") { |f| f.puts "some different text" }
952
- when :content; file[:content] = "something completely different"
953
- else
954
- raise "invalid attr %s" % attr
955
- end
956
-
957
- # Run it again
958
- run.call(file, "after modification with %s" % attr)
959
-
960
- # Now remove the file and the attr
961
- file.delete(attr)
962
- File.unlink(path)
848
+ end
849
+ end
850
+ end
851
+
852
+ # Testing #508
853
+ if Process.uid == 0
854
+ def test_files_replace_with_right_attrs
855
+ source = tempfile
856
+ File.open(source, "w") { |f|
857
+ f.puts "some text"
858
+ }
859
+ File.chmod(0755, source)
860
+ user = nonrootuser
861
+ group = nonrootgroup
862
+ path = tempfile
863
+ good = {:uid => user.uid, :gid => group.gid, :mode => 0640}
864
+
865
+ run = Proc.new do |obj, msg|
866
+ assert_apply(obj)
867
+ stat = File.stat(obj[:path])
868
+ good.each do |should, sval|
869
+ if should == :mode
870
+ current = filemode(obj[:path])
871
+ else
872
+ current = stat.send(should)
963
873
  end
964
- end
965
- end
966
-
967
- # #567
968
- def test_missing_files_are_in_sync
969
- file = tempfile
970
- obj = Puppet::Type.newfile(:path => file, :mode => 0755)
971
-
972
- changes = obj.evaluate
973
- assert(changes.empty?, "Missing file with no ensure resulted in changes")
974
- end
975
-
976
- def test_root_dir_is_named_correctly
977
- obj = Puppet::Type.newfile(:path => '/', :mode => 0755)
978
- assert_equal("/", obj.title, "/ directory was changed to empty string")
979
- end
874
+ assert_equal(sval, current, "Attr #{should} was not correct #{msg}")
875
+ end
876
+ end
877
+
878
+
879
+ file = Puppet::Type.newfile(
880
+ :path => path, :owner => user.name,
881
+
882
+ :group => group.name, :mode => 0640, :backup => false)
883
+ {:source => source, :content => "some content"}.each do |attr, value|
884
+ file[attr] = value
885
+ # First create the file
886
+ run.call(file, "upon creation with #{attr}")
887
+
888
+ # Now change something so that we replace the file
889
+ case attr
890
+ when :source
891
+ File.open(source, "w") { |f| f.puts "some different text" }
892
+ when :content; file[:content] = "something completely different"
893
+ else
894
+ raise "invalid attr #{attr}"
895
+ end
896
+
897
+ # Run it again
898
+ run.call(file, "after modification with #{attr}")
899
+
900
+ # Now remove the file and the attr
901
+ file.delete(attr)
902
+ File.unlink(path)
903
+ end
904
+ end
905
+ end
906
+
907
+ def test_root_dir_is_named_correctly
908
+ obj = Puppet::Type.newfile(:path => '/', :mode => 0755)
909
+ assert_equal("/", obj.title, "/ directory was changed to empty string")
910
+ end
980
911
 
981
912
  end