puppet 0.24.9 → 0.25.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 (910) hide show
  1. data/CHANGELOG +18680 -1241
  2. data/CHANGELOG.old +1705 -0
  3. data/LICENSE +2 -2
  4. data/README +1 -1
  5. data/README.queueing +126 -0
  6. data/README.rst +4 -4
  7. data/Rakefile +62 -216
  8. data/bin/filebucket +6 -117
  9. data/bin/pi +50 -0
  10. data/bin/puppet +7 -188
  11. data/bin/puppetdoc +7 -198
  12. data/bin/ralsh +4 -191
  13. data/conf/auth.conf +94 -0
  14. data/conf/gentoo/init.d/puppetmaster +30 -30
  15. data/conf/osx/PackageInfo.plist +30 -30
  16. data/conf/osx/createpackage.sh +23 -18
  17. data/conf/osx/preflight +8 -0
  18. data/conf/puppet-queue.conf +10 -0
  19. data/conf/redhat/client.init +52 -41
  20. data/conf/redhat/logrotate +1 -0
  21. data/conf/redhat/puppet.spec +74 -36
  22. data/conf/redhat/rundir-perms.patch +28 -0
  23. data/conf/redhat/server.init +48 -43
  24. data/conf/redhat/server.sysconfig +4 -4
  25. data/conf/solaris/smf/puppetd.xml +53 -53
  26. data/conf/solaris/smf/puppetmasterd.xml +53 -53
  27. data/conf/solaris/smf/svc-puppetd +4 -4
  28. data/conf/solaris/smf/svc-puppetmasterd +3 -3
  29. data/conf/suse/client.init +4 -4
  30. data/conf/suse/puppet.spec +14 -14
  31. data/conf/suse/server.init +17 -17
  32. data/examples/etc/init.d/sleeper +8 -8
  33. data/examples/mac_dscl.pp +2 -2
  34. data/examples/mac_dscl_revert.pp +1 -1
  35. data/examples/mcx_dock_default.pp +108 -108
  36. data/examples/mcx_dock_full.pp +108 -108
  37. data/examples/mcx_nogroup.pp +108 -108
  38. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
  39. data/examples/modules/sample-module/manifests/init.pp +2 -2
  40. data/examples/relationships +1 -1
  41. data/ext/autotest/config +6 -6
  42. data/ext/bin/sleeper +12 -12
  43. data/ext/dbfix.sql +21 -21
  44. data/ext/emacs/puppet-mode.el +42 -41
  45. data/ext/extlookup.rb +183 -0
  46. data/ext/ldap/puppet.schema +2 -1
  47. data/ext/logcheck/puppet +1 -1
  48. data/ext/module_puppet +7 -7
  49. data/ext/nagios/check_puppet.rb +83 -83
  50. data/ext/nagios/naggen +302 -0
  51. data/ext/puppet-test +61 -18
  52. data/ext/puppetlisten/puppetlisten.rb +76 -0
  53. data/ext/puppetlisten/puppetrun.rb +39 -0
  54. data/ext/puppetstoredconfigclean.rb +29 -29
  55. data/ext/rack/README +73 -0
  56. data/ext/rack/files/apache2.conf +38 -0
  57. data/ext/rack/files/config.ru +18 -0
  58. data/ext/rack/manifest.pp +59 -0
  59. data/ext/vim/syntax/puppet.vim +54 -35
  60. data/install.rb +37 -26
  61. data/lib/puppet.rb +15 -227
  62. data/lib/puppet/agent.rb +134 -0
  63. data/lib/puppet/agent/locker.rb +42 -0
  64. data/lib/puppet/agent/runner.rb +65 -0
  65. data/lib/puppet/application.rb +313 -0
  66. data/lib/puppet/application/filebucket.rb +87 -0
  67. data/lib/puppet/application/pi.rb +214 -0
  68. data/lib/puppet/application/puppet.rb +177 -0
  69. data/lib/puppet/application/puppetca.rb +71 -0
  70. data/lib/puppet/application/puppetd.rb +256 -0
  71. data/lib/puppet/application/puppetdoc.rb +222 -0
  72. data/lib/puppet/application/puppetmasterd.rb +168 -0
  73. data/lib/puppet/application/puppetqd.rb +96 -0
  74. data/lib/puppet/application/puppetrun.rb +219 -0
  75. data/lib/puppet/application/ralsh.rb +168 -0
  76. data/lib/puppet/configurer.rb +177 -0
  77. data/lib/puppet/configurer/downloader.rb +79 -0
  78. data/lib/puppet/configurer/fact_handler.rb +68 -0
  79. data/lib/puppet/configurer/plugin_handler.rb +26 -0
  80. data/lib/puppet/daemon.rb +78 -28
  81. data/lib/puppet/defaults.rb +239 -166
  82. data/lib/puppet/dsl.rb +7 -7
  83. data/lib/puppet/external/dot.rb +271 -271
  84. data/lib/puppet/external/event-loop/better-definers.rb +298 -298
  85. data/lib/puppet/external/event-loop/event-loop.rb +274 -274
  86. data/lib/puppet/external/event-loop/signal-system.rb +163 -163
  87. data/lib/puppet/external/lock.rb +1 -1
  88. data/lib/puppet/external/nagios.rb +20 -20
  89. data/lib/puppet/external/nagios/base.rb +3 -3
  90. data/lib/puppet/external/nagios/grammar.ry +185 -0
  91. data/lib/puppet/external/nagios/makefile +9 -0
  92. data/lib/puppet/external/nagios/parser.rb +1 -1
  93. data/lib/puppet/feature/json.rb +2 -0
  94. data/lib/puppet/feature/rack.rb +24 -0
  95. data/lib/puppet/feature/rails.rb +23 -33
  96. data/lib/puppet/feature/rubygems.rb +6 -0
  97. data/lib/puppet/feature/stomp.rb +6 -0
  98. data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
  99. data/lib/puppet/file_serving/configuration.rb +61 -61
  100. data/lib/puppet/file_serving/configuration/parser.rb +24 -29
  101. data/lib/puppet/file_serving/content.rb +26 -11
  102. data/lib/puppet/file_serving/fileset.rb +54 -19
  103. data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
  104. data/lib/puppet/file_serving/metadata.rb +8 -8
  105. data/lib/puppet/file_serving/mount.rb +9 -151
  106. data/lib/puppet/file_serving/mount/file.rb +126 -0
  107. data/lib/puppet/file_serving/mount/modules.rb +25 -0
  108. data/lib/puppet/file_serving/mount/plugins.rb +27 -0
  109. data/lib/puppet/file_serving/terminus_helper.rb +9 -4
  110. data/lib/puppet/indirector.rb +6 -4
  111. data/lib/puppet/indirector/active_record.rb +28 -0
  112. data/lib/puppet/indirector/catalog/active_record.rb +36 -0
  113. data/lib/puppet/indirector/catalog/compiler.rb +50 -24
  114. data/lib/puppet/indirector/catalog/queue.rb +5 -0
  115. data/lib/puppet/indirector/catalog/rest.rb +6 -0
  116. data/lib/puppet/indirector/catalog/yaml.rb +2 -4
  117. data/lib/puppet/indirector/certificate/ca.rb +9 -0
  118. data/lib/puppet/indirector/certificate/file.rb +9 -0
  119. data/lib/puppet/indirector/certificate/rest.rb +9 -0
  120. data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
  121. data/lib/puppet/indirector/certificate_request/file.rb +8 -0
  122. data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
  123. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  124. data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  125. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
  126. data/lib/puppet/indirector/direct_file_server.rb +4 -8
  127. data/lib/puppet/indirector/exec.rb +2 -6
  128. data/lib/puppet/indirector/facts/active_record.rb +36 -0
  129. data/lib/puppet/indirector/facts/facter.rb +30 -22
  130. data/lib/puppet/indirector/facts/rest.rb +6 -0
  131. data/lib/puppet/indirector/file.rb +1 -0
  132. data/lib/puppet/indirector/file_content/rest.rb +0 -1
  133. data/lib/puppet/indirector/file_metadata/file.rb +2 -2
  134. data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
  135. data/lib/puppet/indirector/file_server.rb +31 -18
  136. data/lib/puppet/indirector/indirection.rb +46 -33
  137. data/lib/puppet/indirector/key/ca.rb +12 -0
  138. data/lib/puppet/indirector/key/file.rb +42 -0
  139. data/lib/puppet/indirector/node/active_record.rb +13 -0
  140. data/lib/puppet/indirector/node/ldap.rb +1 -1
  141. data/lib/puppet/indirector/queue.rb +83 -0
  142. data/lib/puppet/indirector/report/processor.rb +1 -1
  143. data/lib/puppet/indirector/report/rest.rb +7 -0
  144. data/lib/puppet/indirector/request.rb +158 -15
  145. data/lib/puppet/indirector/rest.rb +74 -36
  146. data/lib/puppet/indirector/runner/rest.rb +7 -0
  147. data/lib/puppet/indirector/ssl_file.rb +174 -0
  148. data/lib/puppet/indirector/terminus.rb +4 -4
  149. data/lib/puppet/indirector/yaml.rb +1 -1
  150. data/lib/puppet/metatype/manager.rb +3 -3
  151. data/lib/puppet/module.rb +99 -124
  152. data/lib/puppet/network/authconfig.rb +57 -42
  153. data/lib/puppet/network/authstore.rb +58 -10
  154. data/lib/puppet/network/client.rb +0 -2
  155. data/lib/puppet/network/client/ca.rb +1 -1
  156. data/lib/puppet/network/client/dipper.rb +7 -2
  157. data/lib/puppet/network/format.rb +123 -0
  158. data/lib/puppet/network/format_handler.rb +156 -0
  159. data/lib/puppet/network/formats.rb +123 -0
  160. data/lib/puppet/network/handler/filebucket.rb +1 -1
  161. data/lib/puppet/network/handler/fileserver.rb +43 -35
  162. data/lib/puppet/network/handler/master.rb +4 -4
  163. data/lib/puppet/network/handler/report.rb +1 -1
  164. data/lib/puppet/network/handler/resource.rb +16 -20
  165. data/lib/puppet/network/handler/runner.rb +9 -42
  166. data/lib/puppet/network/http.rb +4 -4
  167. data/lib/puppet/network/http/api.rb +4 -0
  168. data/lib/puppet/network/http/api/v1.rb +65 -0
  169. data/lib/puppet/network/http/handler.rb +163 -56
  170. data/lib/puppet/network/http/mongrel.rb +19 -15
  171. data/lib/puppet/network/http/mongrel/rest.rb +35 -17
  172. data/lib/puppet/network/http/rack.rb +62 -0
  173. data/lib/puppet/network/http/rack/httphandler.rb +34 -0
  174. data/lib/puppet/network/http/rack/rest.rb +79 -0
  175. data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
  176. data/lib/puppet/network/http/webrick.rb +89 -16
  177. data/lib/puppet/network/http/webrick/rest.rb +24 -11
  178. data/lib/puppet/network/http_pool.rb +28 -29
  179. data/lib/puppet/network/http_server/mongrel.rb +8 -10
  180. data/lib/puppet/network/http_server/webrick.rb +1 -3
  181. data/lib/puppet/network/rest_authconfig.rb +89 -0
  182. data/lib/puppet/network/rest_authorization.rb +25 -0
  183. data/lib/puppet/network/rights.rb +230 -27
  184. data/lib/puppet/network/server.rb +133 -31
  185. data/lib/puppet/network/xmlrpc/client.rb +5 -5
  186. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
  187. data/lib/puppet/node.rb +28 -21
  188. data/lib/puppet/node/environment.rb +48 -0
  189. data/lib/puppet/node/facts.rb +21 -0
  190. data/lib/puppet/parameter.rb +291 -219
  191. data/lib/puppet/parser/ast.rb +1 -0
  192. data/lib/puppet/parser/ast/astarray.rb +5 -1
  193. data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
  194. data/lib/puppet/parser/ast/caseopt.rb +10 -0
  195. data/lib/puppet/parser/ast/casestatement.rb +12 -27
  196. data/lib/puppet/parser/ast/collection.rb +31 -0
  197. data/lib/puppet/parser/ast/collexpr.rb +18 -11
  198. data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
  199. data/lib/puppet/parser/ast/definition.rb +6 -2
  200. data/lib/puppet/parser/ast/function.rb +7 -2
  201. data/lib/puppet/parser/ast/ifstatement.rb +11 -6
  202. data/lib/puppet/parser/ast/leaf.rb +106 -3
  203. data/lib/puppet/parser/ast/match_operator.rb +31 -0
  204. data/lib/puppet/parser/ast/node.rb +10 -6
  205. data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
  206. data/lib/puppet/parser/ast/resource_override.rb +1 -1
  207. data/lib/puppet/parser/ast/resource_reference.rb +11 -3
  208. data/lib/puppet/parser/ast/selector.rb +14 -32
  209. data/lib/puppet/parser/ast/vardef.rb +1 -1
  210. data/lib/puppet/parser/collector.rb +67 -15
  211. data/lib/puppet/parser/compiler.rb +21 -53
  212. data/lib/puppet/parser/files.rb +92 -0
  213. data/lib/puppet/parser/functions.rb +3 -3
  214. data/lib/puppet/parser/functions/defined.rb +3 -3
  215. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  216. data/lib/puppet/parser/functions/inline_template.rb +4 -4
  217. data/lib/puppet/parser/functions/regsubst.rb +37 -35
  218. data/lib/puppet/parser/functions/require.rb +34 -0
  219. data/lib/puppet/parser/functions/shellquote.rb +41 -0
  220. data/lib/puppet/parser/functions/split.rb +29 -0
  221. data/lib/puppet/parser/functions/sprintf.rb +6 -6
  222. data/lib/puppet/parser/functions/template.rb +4 -4
  223. data/lib/puppet/parser/functions/versioncmp.rb +22 -1
  224. data/lib/puppet/parser/grammar.ra +812 -0
  225. data/lib/puppet/parser/interpreter.rb +4 -4
  226. data/lib/puppet/parser/lexer.rb +44 -15
  227. data/lib/puppet/parser/loaded_code.rb +115 -0
  228. data/lib/puppet/parser/makefile +8 -0
  229. data/lib/puppet/parser/parser.rb +1080 -928
  230. data/lib/puppet/parser/parser_support.rb +118 -96
  231. data/lib/puppet/parser/resource.rb +56 -126
  232. data/lib/puppet/parser/resource/param.rb +2 -76
  233. data/lib/puppet/parser/resource/reference.rb +15 -8
  234. data/lib/puppet/parser/scope.rb +68 -35
  235. data/lib/puppet/parser/templatewrapper.rb +8 -8
  236. data/lib/puppet/parser/yaml_trimmer.rb +11 -0
  237. data/lib/puppet/property.rb +69 -124
  238. data/lib/puppet/property/list.rb +3 -3
  239. data/lib/puppet/provider.rb +5 -5
  240. data/lib/puppet/provider/augeas/augeas.rb +119 -118
  241. data/lib/puppet/provider/computer/computer.rb +3 -3
  242. data/lib/puppet/provider/confine/variable.rb +1 -1
  243. data/lib/puppet/provider/cron/crontab.rb +8 -7
  244. data/lib/puppet/provider/group/directoryservice.rb +2 -2
  245. data/lib/puppet/provider/group/groupadd.rb +1 -1
  246. data/lib/puppet/provider/group/ldap.rb +3 -3
  247. data/lib/puppet/provider/group/pw.rb +1 -1
  248. data/lib/puppet/provider/host/parsed.rb +3 -3
  249. data/lib/puppet/provider/ldap.rb +1 -3
  250. data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
  251. data/lib/puppet/provider/mailalias/aliases.rb +9 -1
  252. data/lib/puppet/provider/maillist/mailman.rb +8 -4
  253. data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
  254. data/lib/puppet/provider/mount/parsed.rb +2 -2
  255. data/lib/puppet/provider/nameservice.rb +6 -6
  256. data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
  257. data/lib/puppet/provider/package/appdmg.rb +10 -9
  258. data/lib/puppet/provider/package/apple.rb +1 -3
  259. data/lib/puppet/provider/package/apt.rb +5 -5
  260. data/lib/puppet/provider/package/aptitude.rb +1 -1
  261. data/lib/puppet/provider/package/aptrpm.rb +1 -1
  262. data/lib/puppet/provider/package/darwinport.rb +1 -1
  263. data/lib/puppet/provider/package/dpkg.rb +2 -2
  264. data/lib/puppet/provider/package/fink.rb +6 -6
  265. data/lib/puppet/provider/package/freebsd.rb +1 -1
  266. data/lib/puppet/provider/package/gem.rb +2 -2
  267. data/lib/puppet/provider/package/hpux.rb +5 -5
  268. data/lib/puppet/provider/package/pkgdmg.rb +30 -22
  269. data/lib/puppet/provider/package/portage.rb +1 -1
  270. data/lib/puppet/provider/package/ports.rb +1 -1
  271. data/lib/puppet/provider/package/rpm.rb +5 -5
  272. data/lib/puppet/provider/package/rug.rb +1 -1
  273. data/lib/puppet/provider/package/sun.rb +7 -7
  274. data/lib/puppet/provider/package/up2date.rb +1 -1
  275. data/lib/puppet/provider/package/yum.rb +2 -2
  276. data/lib/puppet/provider/package/yumhelper.py +2 -2
  277. data/lib/puppet/provider/port/parsed.rb +1 -1
  278. data/lib/puppet/provider/selmodule/semodule.rb +3 -3
  279. data/lib/puppet/provider/service/base.rb +21 -12
  280. data/lib/puppet/provider/service/daemontools.rb +86 -49
  281. data/lib/puppet/provider/service/debian.rb +20 -12
  282. data/lib/puppet/provider/service/freebsd.rb +5 -5
  283. data/lib/puppet/provider/service/gentoo.rb +2 -2
  284. data/lib/puppet/provider/service/init.rb +21 -33
  285. data/lib/puppet/provider/service/launchd.rb +120 -48
  286. data/lib/puppet/provider/service/redhat.rb +12 -21
  287. data/lib/puppet/provider/service/runit.rb +19 -9
  288. data/lib/puppet/provider/service/smf.rb +49 -34
  289. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
  290. data/lib/puppet/provider/sshkey/parsed.rb +2 -2
  291. data/lib/puppet/provider/user/directoryservice.rb +12 -29
  292. data/lib/puppet/provider/user/hpux.rb +3 -3
  293. data/lib/puppet/provider/user/ldap.rb +2 -2
  294. data/lib/puppet/provider/zfs/solaris.rb +1 -1
  295. data/lib/puppet/provider/zone/solaris.rb +4 -4
  296. data/lib/puppet/provider/zpool/solaris.rb +3 -3
  297. data/lib/puppet/rails.rb +9 -9
  298. data/lib/puppet/rails/benchmark.rb +69 -0
  299. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
  300. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
  301. data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
  302. data/lib/puppet/rails/database/schema.rb +8 -8
  303. data/lib/puppet/rails/fact_value.rb +1 -1
  304. data/lib/puppet/rails/host.rb +211 -93
  305. data/lib/puppet/rails/param_name.rb +5 -1
  306. data/lib/puppet/rails/param_value.rb +29 -2
  307. data/lib/puppet/rails/puppet_tag.rb +5 -0
  308. data/lib/puppet/rails/resource.rb +120 -20
  309. data/lib/puppet/rails/resource_tag.rb +1 -1
  310. data/lib/puppet/rails/source_file.rb +1 -1
  311. data/lib/puppet/reference/configuration.rb +14 -14
  312. data/lib/puppet/reference/function.rb +1 -1
  313. data/lib/puppet/reference/metaparameter.rb +48 -0
  314. data/lib/puppet/reference/providers.rb +6 -6
  315. data/lib/puppet/reference/type.rb +1 -37
  316. data/lib/puppet/relationship.rb +57 -30
  317. data/lib/puppet/reports/rrdgraph.rb +4 -4
  318. data/lib/puppet/reports/store.rb +3 -3
  319. data/lib/puppet/reports/tagmail.rb +15 -15
  320. data/lib/puppet/resource.rb +265 -0
  321. data/lib/puppet/{node → resource}/catalog.rb +188 -112
  322. data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
  323. data/lib/puppet/simple_graph.rb +165 -27
  324. data/lib/puppet/ssl.rb +7 -0
  325. data/lib/puppet/ssl/base.rb +62 -0
  326. data/lib/puppet/ssl/certificate.rb +34 -0
  327. data/lib/puppet/ssl/certificate_authority.rb +298 -0
  328. data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
  329. data/lib/puppet/ssl/certificate_factory.rb +145 -0
  330. data/lib/puppet/ssl/certificate_request.rb +51 -0
  331. data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
  332. data/lib/puppet/ssl/host.rb +271 -0
  333. data/lib/puppet/ssl/inventory.rb +52 -0
  334. data/lib/puppet/ssl/key.rb +56 -0
  335. data/lib/puppet/sslcertificates.rb +6 -6
  336. data/lib/puppet/sslcertificates/ca.rb +15 -15
  337. data/lib/puppet/sslcertificates/certificate.rb +4 -4
  338. data/lib/puppet/sslcertificates/inventory.rb +3 -3
  339. data/lib/puppet/transaction.rb +113 -139
  340. data/lib/puppet/transaction/change.rb +6 -6
  341. data/lib/puppet/transaction/event.rb +1 -1
  342. data/lib/puppet/transaction/report.rb +7 -1
  343. data/lib/puppet/transportable.rb +28 -28
  344. data/lib/puppet/type.rb +263 -688
  345. data/lib/puppet/type/augeas.rb +3 -2
  346. data/lib/puppet/type/component.rb +28 -95
  347. data/lib/puppet/type/computer.rb +10 -10
  348. data/lib/puppet/type/cron.rb +19 -14
  349. data/lib/puppet/type/exec.rb +21 -20
  350. data/lib/puppet/type/file.rb +306 -633
  351. data/lib/puppet/type/file/checksum.rb +10 -11
  352. data/lib/puppet/type/file/content.rb +83 -22
  353. data/lib/puppet/type/file/ensure.rb +15 -9
  354. data/lib/puppet/type/file/group.rb +7 -1
  355. data/lib/puppet/type/file/mode.rb +1 -1
  356. data/lib/puppet/type/file/owner.rb +9 -3
  357. data/lib/puppet/type/file/selcontext.rb +4 -4
  358. data/lib/puppet/type/file/source.rb +78 -179
  359. data/lib/puppet/type/file/target.rb +3 -3
  360. data/lib/puppet/type/file/type.rb +2 -2
  361. data/lib/puppet/type/filebucket.rb +33 -54
  362. data/lib/puppet/type/group.rb +8 -8
  363. data/lib/puppet/type/host.rb +7 -7
  364. data/lib/puppet/type/k5login.rb +2 -2
  365. data/lib/puppet/type/macauthorization.rb +77 -52
  366. data/lib/puppet/type/mailalias.rb +2 -2
  367. data/lib/puppet/type/maillist.rb +2 -2
  368. data/lib/puppet/type/mcx.rb +3 -3
  369. data/lib/puppet/type/mount.rb +16 -11
  370. data/lib/puppet/type/notify.rb +4 -4
  371. data/lib/puppet/type/package.rb +6 -28
  372. data/lib/puppet/type/port.rb +1 -1
  373. data/lib/puppet/type/resources.rb +19 -19
  374. data/lib/puppet/type/schedule.rb +18 -20
  375. data/lib/puppet/type/selmodule.rb +1 -1
  376. data/lib/puppet/type/service.rb +11 -7
  377. data/lib/puppet/type/ssh_authorized_key.rb +26 -9
  378. data/lib/puppet/type/sshkey.rb +2 -2
  379. data/lib/puppet/type/tidy.rb +285 -289
  380. data/lib/puppet/type/user.rb +9 -7
  381. data/lib/puppet/type/yumrepo.rb +17 -16
  382. data/lib/puppet/type/zone.rb +8 -7
  383. data/lib/puppet/util.rb +11 -36
  384. data/lib/puppet/util/autoload.rb +31 -19
  385. data/lib/puppet/util/autoload/file_cache.rb +115 -0
  386. data/lib/puppet/util/backups.rb +86 -0
  387. data/lib/puppet/util/cacher.rb +135 -0
  388. data/lib/puppet/util/checksums.rb +11 -1
  389. data/lib/puppet/util/classgen.rb +1 -1
  390. data/lib/puppet/util/config_store.rb +2 -2
  391. data/lib/puppet/util/constant_inflector.rb +1 -1
  392. data/lib/puppet/util/diff.rb +2 -2
  393. data/lib/puppet/util/docs.rb +9 -3
  394. data/lib/puppet/util/execution.rb +1 -1
  395. data/lib/puppet/util/feature.rb +27 -20
  396. data/lib/puppet/util/fileparsing.rb +3 -3
  397. data/lib/puppet/util/filetype.rb +8 -6
  398. data/lib/puppet/util/graph.rb +5 -5
  399. data/lib/puppet/util/inifile.rb +5 -5
  400. data/lib/puppet/util/json.rb +13 -0
  401. data/lib/puppet/util/ldap/connection.rb +2 -2
  402. data/lib/puppet/util/log.rb +48 -31
  403. data/lib/puppet/util/metric.rb +4 -4
  404. data/lib/puppet/util/monkey_patches.rb +43 -0
  405. data/lib/puppet/util/nagios_maker.rb +1 -1
  406. data/lib/puppet/util/package.rb +4 -4
  407. data/lib/puppet/util/pidlock.rb +59 -59
  408. data/lib/puppet/util/posix.rb +13 -52
  409. data/lib/puppet/util/provider_features.rb +3 -3
  410. data/lib/puppet/util/queue.rb +96 -0
  411. data/lib/puppet/util/queue/stomp.rb +47 -0
  412. data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
  413. data/lib/puppet/util/rails/collection_merger.rb +0 -39
  414. data/lib/puppet/util/rails/reference_serializer.rb +17 -3
  415. data/lib/puppet/util/rdoc.rb +1 -0
  416. data/lib/puppet/util/rdoc/code_objects.rb +5 -1
  417. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
  418. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
  419. data/lib/puppet/util/rdoc/parser.rb +28 -32
  420. data/lib/puppet/util/reference.rb +29 -8
  421. data/lib/puppet/util/resource_template.rb +1 -1
  422. data/lib/puppet/util/selinux.rb +12 -6
  423. data/lib/puppet/util/settings.rb +203 -578
  424. data/lib/puppet/util/settings/boolean_setting.rb +33 -0
  425. data/lib/puppet/util/settings/file_setting.rb +119 -0
  426. data/lib/puppet/util/settings/setting.rb +110 -0
  427. data/lib/puppet/util/subclass_loader.rb +1 -1
  428. data/lib/puppet/util/suidmanager.rb +2 -2
  429. data/lib/puppet/util/tagging.rb +1 -1
  430. data/lib/puppet/util/warnings.rb +17 -9
  431. data/man/man8/filebucket.8 +2 -2
  432. data/man/man8/pi.8 +2 -2
  433. data/man/man8/puppet.8 +3 -4
  434. data/man/man8/puppet.conf.8 +63 -63
  435. data/man/man8/puppetca.8 +2 -2
  436. data/man/man8/puppetd.8 +2 -2
  437. data/man/man8/puppetdoc.8 +2 -2
  438. data/man/man8/puppetmasterd.8 +2 -2
  439. data/man/man8/puppetrun.8 +2 -2
  440. data/man/man8/ralsh.8 +3 -3
  441. data/sbin/puppetca +102 -0
  442. data/sbin/puppetd +159 -0
  443. data/sbin/puppetmasterd +66 -0
  444. data/sbin/puppetqd +53 -0
  445. data/sbin/puppetrun +130 -0
  446. data/spec/Rakefile +2 -2
  447. data/spec/integration/application/puppet.rb +33 -0
  448. data/spec/integration/bin/puppetmasterd.rb +110 -0
  449. data/spec/integration/configurer.rb +18 -0
  450. data/spec/integration/defaults.rb +158 -7
  451. data/spec/integration/file_serving/content.rb +2 -0
  452. data/spec/integration/file_serving/fileset.rb +14 -0
  453. data/spec/integration/file_serving/metadata.rb +2 -0
  454. data/spec/integration/file_serving/terminus_helper.rb +22 -0
  455. data/spec/integration/indirector/catalog/compiler.rb +67 -0
  456. data/spec/integration/indirector/catalog/queue.rb +61 -0
  457. data/spec/integration/indirector/certificate/rest.rb +69 -0
  458. data/spec/integration/indirector/certificate_request/rest.rb +89 -0
  459. data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
  460. data/spec/integration/indirector/direct_file_server.rb +16 -23
  461. data/spec/integration/indirector/file_content/file_server.rb +75 -0
  462. data/spec/integration/indirector/report/rest.rb +95 -0
  463. data/spec/integration/indirector/rest.rb +207 -147
  464. data/spec/integration/network/client.rb +19 -0
  465. data/spec/integration/network/formats.rb +110 -0
  466. data/spec/integration/network/handler.rb +25 -0
  467. data/spec/integration/network/server/mongrel.rb +26 -8
  468. data/spec/integration/network/server/webrick.rb +49 -11
  469. data/spec/integration/node/environment.rb +58 -0
  470. data/spec/integration/node/facts.rb +4 -2
  471. data/spec/integration/parser/compiler.rb +29 -0
  472. data/spec/integration/parser/functions/require.rb +67 -0
  473. data/spec/integration/provider/mailalias/aliases.rb +25 -0
  474. data/spec/integration/{node → resource}/catalog.rb +17 -10
  475. data/spec/integration/ssl/certificate_authority.rb +135 -0
  476. data/spec/integration/ssl/certificate_request.rb +59 -0
  477. data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
  478. data/spec/integration/ssl/host.rb +90 -0
  479. data/spec/integration/transaction.rb +66 -0
  480. data/spec/integration/transaction/report.rb +2 -5
  481. data/spec/integration/type.rb +22 -0
  482. data/spec/integration/type/file.rb +458 -0
  483. data/spec/integration/type/package.rb +1 -1
  484. data/spec/integration/type/tidy.rb +27 -0
  485. data/spec/integration/util/autoload.rb +114 -0
  486. data/spec/integration/util/feature.rb +54 -0
  487. data/spec/integration/util/file_locking.rb +2 -1
  488. data/spec/integration/util/settings.rb +27 -0
  489. data/spec/lib/puppet_spec/files.rb +9 -0
  490. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
  491. data/spec/monkey_patches/alias_should_to_must.rb +1 -0
  492. data/spec/shared_behaviours/file_server_terminus.rb +14 -11
  493. data/spec/shared_behaviours/file_serving.rb +13 -17
  494. data/spec/spec_helper.rb +22 -5
  495. data/spec/unit/agent.rb +259 -0
  496. data/spec/unit/agent/locker.rb +100 -0
  497. data/spec/unit/agent/runner.rb +118 -0
  498. data/spec/unit/application.rb +420 -0
  499. data/spec/unit/application/filebucket.rb +220 -0
  500. data/spec/unit/application/pi.rb +84 -0
  501. data/spec/unit/application/puppet.rb +404 -0
  502. data/spec/unit/application/puppetca.rb +142 -0
  503. data/spec/unit/application/puppetd.rb +502 -0
  504. data/spec/unit/application/puppetdoc.rb +345 -0
  505. data/spec/unit/application/puppetmasterd.rb +456 -0
  506. data/spec/unit/application/puppetqd.rb +186 -0
  507. data/spec/unit/application/puppetrun.rb +279 -0
  508. data/spec/unit/application/ralsh.rb +237 -0
  509. data/spec/unit/configurer.rb +232 -0
  510. data/spec/unit/configurer/downloader.rb +188 -0
  511. data/spec/unit/configurer/fact_handler.rb +150 -0
  512. data/spec/unit/configurer/plugin_handler.rb +112 -0
  513. data/spec/unit/daemon.rb +287 -0
  514. data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
  515. data/spec/unit/file_serving/configuration.rb +104 -93
  516. data/spec/unit/file_serving/configuration/parser.rb +64 -18
  517. data/spec/unit/file_serving/content.rb +65 -26
  518. data/spec/unit/file_serving/fileset.rb +116 -14
  519. data/spec/unit/file_serving/indirection_hooks.rb +34 -95
  520. data/spec/unit/file_serving/metadata.rb +27 -40
  521. data/spec/unit/file_serving/mount.rb +7 -118
  522. data/spec/unit/file_serving/mount/file.rb +188 -0
  523. data/spec/unit/file_serving/mount/modules.rb +63 -0
  524. data/spec/unit/file_serving/mount/plugins.rb +61 -0
  525. data/spec/unit/file_serving/terminus_helper.rb +39 -27
  526. data/spec/unit/indirector.rb +6 -1
  527. data/spec/unit/indirector/active_record.rb +76 -0
  528. data/spec/unit/indirector/catalog/active_record.rb +122 -0
  529. data/spec/unit/indirector/catalog/compiler.rb +222 -118
  530. data/spec/unit/indirector/catalog/queue.rb +20 -0
  531. data/spec/unit/indirector/catalog/rest.rb +11 -0
  532. data/spec/unit/indirector/catalog/yaml.rb +6 -6
  533. data/spec/unit/indirector/certificate/ca.rb +28 -0
  534. data/spec/unit/indirector/certificate/file.rb +28 -0
  535. data/spec/unit/indirector/certificate/rest.rb +23 -0
  536. data/spec/unit/indirector/certificate_request/ca.rb +19 -0
  537. data/spec/unit/indirector/certificate_request/file.rb +19 -0
  538. data/spec/unit/indirector/certificate_request/rest.rb +23 -0
  539. data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
  540. data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
  541. data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
  542. data/spec/unit/indirector/direct_file_server.rb +3 -8
  543. data/spec/unit/indirector/exec.rb +6 -1
  544. data/spec/unit/indirector/facts/active_record.rb +104 -0
  545. data/spec/unit/indirector/facts/facter.rb +53 -12
  546. data/spec/unit/indirector/facts/rest.rb +11 -0
  547. data/spec/unit/indirector/file.rb +8 -1
  548. data/spec/unit/indirector/file_metadata/file.rb +5 -5
  549. data/spec/unit/indirector/file_server.rb +181 -98
  550. data/spec/unit/indirector/indirection.rb +102 -38
  551. data/spec/unit/indirector/key/ca.rb +28 -0
  552. data/spec/unit/indirector/key/file.rb +104 -0
  553. data/spec/unit/indirector/node/active_record.rb +34 -0
  554. data/spec/unit/indirector/node/ldap.rb +1 -1
  555. data/spec/unit/indirector/node/rest.rb +2 -2
  556. data/spec/unit/indirector/queue.rb +123 -0
  557. data/spec/unit/indirector/report/rest.rb +28 -0
  558. data/spec/unit/indirector/request.rb +221 -0
  559. data/spec/unit/indirector/rest.rb +343 -334
  560. data/spec/unit/indirector/runner/rest.rb +11 -0
  561. data/spec/unit/indirector/ssl_file.rb +280 -0
  562. data/spec/unit/module.rb +180 -180
  563. data/spec/unit/network/authconfig.rb +292 -0
  564. data/spec/unit/network/authstore.rb +94 -0
  565. data/spec/unit/network/client.rb +2 -2
  566. data/spec/unit/network/client/dipper.rb +16 -0
  567. data/spec/unit/network/format.rb +191 -0
  568. data/spec/unit/network/format_handler.rb +306 -0
  569. data/spec/unit/network/formats.rb +249 -0
  570. data/spec/unit/network/handler/fileserver.rb +2 -5
  571. data/spec/unit/network/http.rb +3 -3
  572. data/spec/unit/network/http/api/v1.rb +122 -0
  573. data/spec/unit/network/http/handler.rb +448 -0
  574. data/spec/unit/network/http/mongrel.rb +46 -32
  575. data/spec/unit/network/http/mongrel/rest.rb +174 -319
  576. data/spec/unit/network/http/rack.rb +102 -0
  577. data/spec/unit/network/http/rack/rest.rb +199 -0
  578. data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
  579. data/spec/unit/network/http/webrick.rb +249 -37
  580. data/spec/unit/network/http/webrick/rest.rb +113 -279
  581. data/spec/unit/network/http_pool.rb +86 -110
  582. data/spec/unit/network/rest_authconfig.rb +146 -0
  583. data/spec/unit/network/rest_authorization.rb +43 -0
  584. data/spec/unit/network/rights.rb +519 -0
  585. data/spec/unit/network/server.rb +475 -257
  586. data/spec/unit/node.rb +43 -10
  587. data/spec/unit/node/environment.rb +143 -9
  588. data/spec/unit/node/facts.rb +77 -24
  589. data/spec/unit/other/selinux.rb +85 -0
  590. data/spec/unit/other/transbucket.rb +29 -13
  591. data/spec/unit/other/transobject.rb +35 -15
  592. data/spec/unit/parameter.rb +378 -5
  593. data/spec/unit/parser/ast.rb +1 -1
  594. data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
  595. data/spec/unit/parser/ast/astarray.rb +16 -10
  596. data/spec/unit/parser/ast/boolean_operator.rb +2 -2
  597. data/spec/unit/parser/ast/casestatement.rb +143 -0
  598. data/spec/unit/parser/ast/collection.rb +63 -0
  599. data/spec/unit/parser/ast/collexpr.rb +31 -8
  600. data/spec/unit/parser/ast/comparison_operator.rb +9 -9
  601. data/spec/unit/parser/ast/definition.rb +18 -0
  602. data/spec/unit/parser/ast/function.rb +6 -0
  603. data/spec/unit/parser/ast/ifstatement.rb +75 -0
  604. data/spec/unit/parser/ast/leaf.rb +261 -0
  605. data/spec/unit/parser/ast/match_operator.rb +50 -0
  606. data/spec/unit/parser/ast/minus.rb +1 -1
  607. data/spec/unit/parser/ast/node.rb +20 -0
  608. data/spec/unit/parser/ast/not.rb +1 -1
  609. data/spec/unit/parser/ast/resource_override.rb +5 -5
  610. data/spec/unit/parser/ast/resource_reference.rb +11 -5
  611. data/spec/unit/parser/ast/selector.rb +156 -0
  612. data/spec/unit/parser/ast/vardef.rb +11 -11
  613. data/spec/unit/parser/collector.rb +167 -48
  614. data/spec/unit/parser/compiler.rb +128 -104
  615. data/spec/unit/parser/files.rb +190 -0
  616. data/spec/unit/parser/functions/inline_template.rb +0 -0
  617. data/spec/unit/parser/functions/regsubst.rb +42 -42
  618. data/spec/unit/parser/functions/require.rb +36 -0
  619. data/spec/unit/parser/functions/shellquote.rb +92 -0
  620. data/spec/unit/parser/functions/split.rb +51 -0
  621. data/spec/unit/parser/functions/sprintf.rb +11 -11
  622. data/spec/unit/parser/functions/template.rb +0 -0
  623. data/spec/unit/parser/functions/versioncmp.rb +2 -2
  624. data/spec/unit/parser/interpreter.rb +16 -7
  625. data/spec/unit/parser/lexer.rb +72 -12
  626. data/spec/unit/parser/loaded_code.rb +198 -0
  627. data/spec/unit/parser/parser.rb +215 -28
  628. data/spec/unit/parser/resource.rb +131 -22
  629. data/spec/unit/parser/scope.rb +207 -12
  630. data/spec/unit/parser/templatewrapper.rb +8 -3
  631. data/spec/unit/property.rb +270 -16
  632. data/spec/unit/property/list.rb +12 -6
  633. data/spec/unit/provider.rb +31 -0
  634. data/spec/unit/provider/augeas/augeas.rb +61 -33
  635. data/spec/unit/provider/macauthorization.rb +29 -29
  636. data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
  637. data/spec/unit/provider/mount/parsed.rb +5 -8
  638. data/spec/unit/provider/naginator.rb +0 -0
  639. data/spec/unit/provider/package/apt.rb +6 -6
  640. data/spec/unit/provider/package/pkgdmg.rb +73 -0
  641. data/spec/unit/provider/selboolean.rb +1 -1
  642. data/spec/unit/provider/selmodule.rb +2 -2
  643. data/spec/unit/provider/service/daemontools.rb +40 -15
  644. data/spec/unit/provider/service/debian.rb +89 -0
  645. data/spec/unit/provider/service/init.rb +106 -0
  646. data/spec/unit/provider/service/launchd.rb +71 -13
  647. data/spec/unit/provider/service/redhat.rb +94 -0
  648. data/spec/unit/provider/service/runit.rb +14 -2
  649. data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
  650. data/spec/unit/provider/user/ldap.rb +1 -1
  651. data/spec/unit/provider/user/user_role_add.rb +1 -1
  652. data/spec/unit/provider/zfs/solaris.rb +18 -6
  653. data/spec/unit/provider/zone/solaris.rb +1 -1
  654. data/spec/unit/rails.rb +16 -22
  655. data/spec/unit/rails/host.rb +163 -0
  656. data/spec/unit/rails/param_value.rb +49 -0
  657. data/spec/unit/rails/resource.rb +87 -0
  658. data/spec/unit/relationship.rb +141 -29
  659. data/spec/unit/resource.rb +504 -0
  660. data/spec/unit/resource/catalog.rb +1061 -0
  661. data/spec/unit/resource/reference.rb +111 -0
  662. data/spec/unit/simple_graph.rb +448 -191
  663. data/spec/unit/ssl/certificate.rb +124 -0
  664. data/spec/unit/ssl/certificate_authority.rb +741 -0
  665. data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
  666. data/spec/unit/ssl/certificate_factory.rb +107 -0
  667. data/spec/unit/ssl/certificate_request.rb +193 -0
  668. data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
  669. data/spec/unit/ssl/host.rb +704 -0
  670. data/spec/unit/ssl/inventory.rb +180 -0
  671. data/spec/unit/ssl/key.rb +198 -0
  672. data/spec/unit/transaction.rb +65 -2
  673. data/spec/unit/transaction/change.rb +1 -1
  674. data/spec/unit/transaction/report.rb +1 -1
  675. data/spec/unit/type.rb +361 -8
  676. data/spec/unit/type/augeas.rb +30 -37
  677. data/spec/unit/type/component.rb +63 -0
  678. data/spec/unit/type/computer.rb +17 -21
  679. data/spec/unit/type/exec.rb +27 -2
  680. data/spec/unit/type/file.rb +704 -83
  681. data/spec/unit/type/file/content.rb +253 -15
  682. data/spec/unit/type/file/ensure.rb +65 -2
  683. data/spec/unit/type/file/group.rb +5 -0
  684. data/spec/unit/type/file/owner.rb +5 -0
  685. data/spec/unit/type/file/selinux.rb +12 -16
  686. data/spec/unit/type/file/source.rb +264 -0
  687. data/spec/unit/type/filebucket.rb +74 -0
  688. data/spec/unit/type/group.rb +1 -5
  689. data/spec/unit/type/macauthorization.rb +59 -26
  690. data/spec/unit/type/mcx.rb +8 -16
  691. data/spec/unit/type/mount.rb +8 -16
  692. data/spec/unit/type/noop_metaparam.rb +0 -2
  693. data/spec/unit/type/package.rb +13 -23
  694. data/spec/unit/type/resources.rb +4 -7
  695. data/spec/unit/type/schedule.rb +1 -7
  696. data/spec/unit/type/selboolean.rb +4 -6
  697. data/spec/unit/type/service.rb +23 -33
  698. data/spec/unit/type/ssh_authorized_key.rb +25 -14
  699. data/spec/unit/type/tidy.rb +329 -21
  700. data/spec/unit/type/user.rb +18 -10
  701. data/spec/unit/type/zfs.rb +6 -6
  702. data/spec/unit/util/autoload.rb +94 -3
  703. data/spec/unit/util/autoload/file_cache.rb +183 -0
  704. data/spec/unit/util/backups.rb +159 -0
  705. data/spec/unit/util/cache_accumulator.rb +69 -0
  706. data/spec/unit/util/cacher.rb +185 -0
  707. data/spec/unit/util/checksums.rb +9 -1
  708. data/spec/unit/util/feature.rb +72 -0
  709. data/spec/unit/util/filetype.rb +1 -11
  710. data/spec/unit/util/json.rb +21 -0
  711. data/spec/unit/util/log.rb +45 -0
  712. data/spec/unit/util/package.rb +2 -2
  713. data/spec/unit/util/queue.rb +88 -0
  714. data/spec/unit/util/queue/stomp.rb +140 -0
  715. data/spec/unit/util/reference_serializer.rb +52 -0
  716. data/spec/unit/util/selinux.rb +5 -3
  717. data/spec/unit/util/settings.rb +413 -264
  718. data/spec/unit/util/settings/file_setting.rb +223 -0
  719. data/spec/unit/util/storage.rb +11 -11
  720. data/spec/unit/util/warnings.rb +21 -17
  721. data/test/Rakefile +6 -5
  722. data/test/certmgr/ca.rb +5 -5
  723. data/test/certmgr/certmgr.rb +4 -4
  724. data/test/data/providers/cron/crontab.allthree +2 -2
  725. data/test/data/providers/cron/crontab.envNcomment +1 -1
  726. data/test/data/providers/cron/crontab.envNname +1 -1
  727. data/test/data/providers/cron/crontab.multirecords +1 -1
  728. data/test/data/providers/cron/crontab_collections.yaml +14 -14
  729. data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
  730. data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
  731. data/test/data/providers/mailalias/aliases/test1 +28 -0
  732. data/test/data/providers/package/testpackages.yaml +6 -6
  733. data/test/data/reports/1.yaml +17 -17
  734. data/test/data/reports/tagmail_passers.conf +2 -2
  735. data/test/data/snippets/append.pp +5 -5
  736. data/test/data/snippets/casestatement.pp +9 -2
  737. data/test/data/snippets/classincludes.pp +1 -1
  738. data/test/data/snippets/collection_override.pp +8 -0
  739. data/test/data/snippets/fqparents.pp +2 -2
  740. data/test/data/snippets/ifexpression.pp +12 -0
  741. data/test/data/snippets/multilinecomments.pp +5 -1
  742. data/test/data/snippets/selectorvalues.pp +7 -0
  743. data/test/data/types/hosts/1 +1 -1
  744. data/test/data/types/hosts/2 +3 -3
  745. data/test/data/types/hosts/solaris +2 -2
  746. data/test/data/types/mount/freebsd.fstab +7 -7
  747. data/test/data/types/mount/solaris.fstab +10 -10
  748. data/test/data/types/port/1 +472 -472
  749. data/test/data/types/port/darwin +4347 -4347
  750. data/test/language/ast.rb +3 -2
  751. data/test/language/ast/casestatement.rb +12 -12
  752. data/test/language/ast/resource.rb +4 -4
  753. data/test/language/ast/resource_reference.rb +5 -5
  754. data/test/language/ast/selector.rb +11 -11
  755. data/test/language/ast/variable.rb +4 -4
  756. data/test/language/functions.rb +16 -16
  757. data/test/language/parser.rb +89 -111
  758. data/test/language/resource.rb +3 -88
  759. data/test/language/scope.rb +14 -55
  760. data/test/language/snippets.rb +31 -31
  761. data/test/lib/puppettest.rb +12 -12
  762. data/test/lib/puppettest/certificates.rb +2 -2
  763. data/test/lib/puppettest/exetest.rb +0 -1
  764. data/test/lib/puppettest/fakes.rb +1 -1
  765. data/test/lib/puppettest/parsertesting.rb +9 -4
  766. data/test/lib/puppettest/railstesting.rb +3 -3
  767. data/test/lib/puppettest/servertest.rb +1 -1
  768. data/test/lib/puppettest/support/assertions.rb +2 -2
  769. data/test/lib/puppettest/support/collection.rb +1 -1
  770. data/test/lib/puppettest/support/resources.rb +7 -7
  771. data/test/lib/puppettest/support/utils.rb +10 -16
  772. data/test/lib/puppettest/testcase.rb +2 -1
  773. data/test/network/authconfig.rb +1 -1
  774. data/test/network/authorization.rb +1 -1
  775. data/test/network/authstore.rb +57 -14
  776. data/test/network/client/ca.rb +1 -0
  777. data/test/network/client/resource.rb +12 -50
  778. data/test/network/client_request.rb +1 -1
  779. data/test/network/handler/bucket.rb +2 -2
  780. data/test/network/handler/fileserver.rb +17 -21
  781. data/test/network/handler/master.rb +5 -5
  782. data/test/network/handler/report.rb +3 -3
  783. data/test/network/handler/resource.rb +29 -75
  784. data/test/network/handler/runner.rb +8 -58
  785. data/test/network/rights.rb +1 -1
  786. data/test/network/server/mongrel_test.rb +15 -1
  787. data/test/network/server/webrick.rb +0 -36
  788. data/test/network/xmlrpc/webrick_servlet.rb +5 -5
  789. data/test/other/dsl.rb +3 -3
  790. data/test/other/events.rb +15 -15
  791. data/test/other/puppet.rb +2 -32
  792. data/test/other/relationships.rb +21 -148
  793. data/test/other/report.rb +20 -23
  794. data/test/other/transactions.rb +110 -298
  795. data/test/puppet/defaults.rb +1 -1
  796. data/test/puppet/tc_suidmanager.rb +1 -1
  797. data/test/rails/railsparameter.rb +4 -4
  798. data/test/ral/manager/attributes.rb +12 -68
  799. data/test/ral/manager/instances.rb +3 -19
  800. data/test/ral/manager/manager.rb +7 -7
  801. data/test/ral/manager/provider.rb +7 -7
  802. data/test/ral/manager/type.rb +54 -349
  803. data/test/ral/providers/cron/crontab.rb +14 -14
  804. data/test/ral/providers/group.rb +5 -6
  805. data/test/ral/providers/host/parsed.rb +3 -3
  806. data/test/ral/providers/mailalias/aliases.rb +4 -4
  807. data/test/ral/providers/package.rb +3 -3
  808. data/test/ral/providers/package/aptitude.rb +55 -55
  809. data/test/ral/providers/package/aptrpm.rb +7 -7
  810. data/test/ral/providers/parsedfile.rb +10 -14
  811. data/test/ral/providers/port/parsed.rb +6 -6
  812. data/test/ral/providers/provider.rb +10 -10
  813. data/test/ral/providers/service/base.rb +32 -32
  814. data/test/ral/providers/sshkey/parsed.rb +14 -14
  815. data/test/ral/providers/user.rb +16 -17
  816. data/test/ral/providers/user/useradd.rb +19 -22
  817. data/test/ral/type/cron.rb +21 -28
  818. data/test/ral/type/exec.rb +57 -60
  819. data/test/ral/type/file.rb +88 -862
  820. data/test/ral/type/file/target.rb +21 -70
  821. data/test/ral/type/fileignoresource.rb +37 -44
  822. data/test/ral/type/filesources.rb +43 -473
  823. data/test/ral/type/group.rb +6 -7
  824. data/test/ral/type/host.rb +14 -30
  825. data/test/ral/type/mailalias.rb +3 -3
  826. data/test/ral/type/port.rb +5 -5
  827. data/test/ral/type/resources.rb +37 -37
  828. data/test/ral/type/service.rb +3 -3
  829. data/test/ral/type/sshkey.rb +34 -39
  830. data/test/ral/type/user.rb +15 -14
  831. data/test/ral/type/yumrepo.rb +18 -17
  832. data/test/ral/type/zone.rb +4 -6
  833. data/test/test +9 -9
  834. data/test/util/fileparsing.rb +10 -10
  835. data/test/util/inifile.rb +6 -6
  836. data/test/util/instance_loader.rb +1 -1
  837. data/test/util/log.rb +2 -2
  838. data/test/util/metrics.rb +1 -6
  839. data/test/util/package.rb +1 -1
  840. data/test/util/pidlock.rb +116 -116
  841. data/test/util/settings.rb +40 -429
  842. data/test/util/storage.rb +5 -5
  843. data/test/util/subclass_loader.rb +0 -7
  844. data/test/util/utiltest.rb +10 -29
  845. metadata +1369 -941
  846. data/bin/puppetca +0 -363
  847. data/bin/puppetd +0 -439
  848. data/bin/puppetmasterd +0 -289
  849. data/bin/puppetrun +0 -369
  850. data/conf/redhat/lsb-config.patch +0 -51
  851. data/conf/redhat/no-chuser-0.15.1.patch +0 -38
  852. data/conf/redhat/no-lockdir.patch +0 -13
  853. data/examples/mac_netinfo.pp +0 -5
  854. data/ext/passenger/README +0 -63
  855. data/ext/passenger/apache2.conf +0 -29
  856. data/ext/passenger/config.ru +0 -40
  857. data/lib/puppet/config_stores/rest.rb +0 -60
  858. data/lib/puppet/executables/client/certhandler.rb +0 -82
  859. data/lib/puppet/indirector/file_content/modules.rb +0 -11
  860. data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
  861. data/lib/puppet/indirector/module_files.rb +0 -82
  862. data/lib/puppet/indirector/ssl_rsa.rb +0 -5
  863. data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
  864. data/lib/puppet/network/client/master.rb +0 -524
  865. data/lib/puppet/network/http_server/rack.rb +0 -148
  866. data/lib/puppet/pgraph.rb +0 -121
  867. data/lib/puppet/provider/group/netinfo.rb +0 -15
  868. data/lib/puppet/provider/host/netinfo.rb +0 -19
  869. data/lib/puppet/provider/mount/netinfo.rb +0 -37
  870. data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
  871. data/lib/puppet/provider/user/netinfo.rb +0 -111
  872. data/lib/puppet/util/fact_store.rb +0 -59
  873. data/lib/puppet/util/uri_helper.rb +0 -22
  874. data/spec/integration/file_serving/configuration.rb +0 -43
  875. data/spec/integration/indirector/module_files.rb +0 -57
  876. data/spec/unit/executables/client/certhandler.rb +0 -135
  877. data/spec/unit/indirector/file_content/modules.rb +0 -18
  878. data/spec/unit/indirector/file_metadata/modules.rb +0 -42
  879. data/spec/unit/indirector/module_files.rb +0 -259
  880. data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
  881. data/spec/unit/network/client/master.rb +0 -442
  882. data/spec/unit/node/catalog.rb +0 -865
  883. data/spec/unit/other/pgraph.rb +0 -210
  884. data/spec/unit/resource_reference.rb +0 -73
  885. data/spec/unit/util/uri_helper.rb +0 -41
  886. data/test/data/snippets/ifexpression.rb +0 -6
  887. data/test/executables/filebucket.rb +0 -51
  888. data/test/executables/puppetbin.rb +0 -104
  889. data/test/executables/puppetca.rb +0 -115
  890. data/test/executables/puppetd.rb +0 -55
  891. data/test/executables/puppetmasterd.rb +0 -147
  892. data/test/network/client/client.rb +0 -195
  893. data/test/network/client/master.rb +0 -490
  894. data/test/network/daemon.rb +0 -70
  895. data/test/network/handler/handler.rb +0 -63
  896. data/test/other/overrides.rb +0 -107
  897. data/test/puppet/conffiles.rb +0 -107
  898. data/test/rails/ast.rb +0 -73
  899. data/test/rails/configuration.rb +0 -71
  900. data/test/rails/host.rb +0 -154
  901. data/test/rails/railsresource.rb +0 -251
  902. data/test/ral/providers/host/netinfo.rb +0 -56
  903. data/test/ral/providers/mount/netinfo.rb +0 -79
  904. data/test/ral/type/basic.rb +0 -85
  905. data/test/ral/type/filebucket.rb +0 -157
  906. data/test/ral/type/parameter.rb +0 -174
  907. data/test/ral/type/property.rb +0 -388
  908. data/test/ral/type/tidy.rb +0 -291
  909. data/test/util/autoload.rb +0 -145
  910. data/test/util/features.rb +0 -95
@@ -24,7 +24,7 @@ class TestFileTarget < Test::Unit::TestCase
24
24
 
25
25
  file = nil
26
26
  assert_nothing_raised {
27
- file = Puppet.type(:file).create(
27
+ file = Puppet::Type.type(:file).new(
28
28
  :title => "somethingelse",
29
29
  :ensure => path,
30
30
  :path => link
@@ -42,54 +42,6 @@ class TestFileTarget < Test::Unit::TestCase
42
42
  assert_events([], file)
43
43
  assert_events([], file)
44
44
  end
45
-
46
- def test_linkrecurse
47
- dest = tempfile()
48
- link = @file.create :path => tempfile(), :recurse => true, :ensure => dest
49
- mk_catalog link
50
-
51
- ret = nil
52
-
53
- # Start with nothing, just to make sure we get nothing back
54
- assert_nothing_raised { ret = link.linkrecurse(true) }
55
- assert_nil(ret, "got a return when the dest doesn't exist")
56
-
57
- # then with a directory with only one file
58
- Dir.mkdir(dest)
59
- one = File.join(dest, "one")
60
- File.open(one, "w") { |f| f.puts "" }
61
- link[:ensure] = dest
62
- assert_nothing_raised { ret = link.linkrecurse(true) }
63
-
64
- assert_equal(:directory, link.should(:ensure), "ensure was not set to directory")
65
- assert_equal([File.join(link.title, "one")], ret.collect { |f| f.title },
66
- "Did not get linked file")
67
- oneobj = @file[File.join(link.title, "one")]
68
- assert_equal(one, oneobj.should(:target), "target was not set correctly")
69
-
70
- oneobj.remove
71
- File.unlink(one)
72
-
73
- # Then make sure we get multiple files
74
- returns = []
75
- 5.times do |i|
76
- path = File.join(dest, i.to_s)
77
- returns << File.join(link.title, i.to_s)
78
- File.open(path, "w") { |f| f.puts "" }
79
- end
80
- assert_nothing_raised { ret = link.linkrecurse(true) }
81
-
82
- assert_equal(returns.sort, ret.collect { |f| f.title }.sort,
83
- "Did not get links back")
84
-
85
- returns.each do |path|
86
- obj = @file[path]
87
- assert(path, "did not get obj for %s" % path)
88
- sdest = File.join(dest, File.basename(path))
89
- assert_equal(sdest, obj.should(:target),
90
- "target was not set correctly for %s" % path)
91
- end
92
- end
93
45
 
94
46
  def test_simplerecursivelinking
95
47
  source = tempfile()
@@ -100,16 +52,14 @@ class TestFileTarget < Test::Unit::TestCase
100
52
  system("mkdir -p %s" % subdir)
101
53
  system("touch %s" % file)
102
54
 
103
- link = nil
104
- assert_nothing_raised {
105
- link = Puppet.type(:file).create(
106
- :ensure => source,
107
- :path => path,
108
- :recurse => true
109
- )
110
- }
55
+ link = Puppet::Type.type(:file).new(
56
+ :ensure => source,
57
+ :path => path,
58
+ :recurse => true
59
+ )
111
60
 
112
- assert_apply(link)
61
+ catalog = mk_catalog(link)
62
+ catalog.apply
113
63
 
114
64
  sublink = File.join(path, "subdir")
115
65
  linkpath = File.join(sublink, "file")
@@ -118,7 +68,8 @@ class TestFileTarget < Test::Unit::TestCase
118
68
  assert(File.symlink?(linkpath), "path is not a link")
119
69
  assert_equal(file, File.readlink(linkpath))
120
70
 
121
- assert_nil(@file[sublink], "objects were not removed")
71
+ # Use classes for comparison, because the resource inspection is so large
72
+ assert_equal(NilClass, catalog.resource(:file, sublink).class, "dynamically generated resources were not removed")
122
73
  assert_equal([], link.evaluate, "Link is not in sync")
123
74
  end
124
75
 
@@ -146,7 +97,7 @@ class TestFileTarget < Test::Unit::TestCase
146
97
 
147
98
  link = nil
148
99
  assert_nothing_raised {
149
- link = Puppet.type(:file).create(
100
+ link = Puppet::Type.type(:file).new(
150
101
  :ensure => source,
151
102
  :path => dest,
152
103
  :recurse => true
@@ -181,7 +132,7 @@ class TestFileTarget < Test::Unit::TestCase
181
132
 
182
133
  link = nil
183
134
  assert_nothing_raised {
184
- link = Puppet.type(:file).create(
135
+ link = Puppet::Type.type(:file).new(
185
136
  :path => dest,
186
137
  :ensure => "source"
187
138
  )
@@ -197,20 +148,20 @@ class TestFileTarget < Test::Unit::TestCase
197
148
  source = tempfile()
198
149
  dest = tempfile()
199
150
 
200
- objects = []
201
- objects << Puppet.type(:exec).create(
151
+ resources = []
152
+ resources << Puppet::Type.type(:exec).new(
202
153
  :command => "mkdir %s; touch %s/file" % [source, source],
203
154
  :title => "yay",
204
155
  :path => ENV["PATH"]
205
156
  )
206
- objects << Puppet.type(:file).create(
157
+ resources << Puppet::Type.type(:file).new(
207
158
  :ensure => source,
208
159
  :path => dest,
209
160
  :recurse => true,
210
- :require => objects[0]
161
+ :require => resources[0]
211
162
  )
212
163
 
213
- assert_apply(*objects)
164
+ assert_apply(*resources)
214
165
 
215
166
  link = File.join(dest, "file")
216
167
  assert(FileTest.symlink?(link), "Did not make link")
@@ -252,7 +203,7 @@ class TestFileTarget < Test::Unit::TestCase
252
203
 
253
204
  file = nil
254
205
  assert_nothing_raised {
255
- file = Puppet.type(:file).create(
206
+ file = Puppet::Type.type(:file).new(
256
207
  :ensure => path,
257
208
  :path => link,
258
209
  :backup => false
@@ -283,7 +234,7 @@ class TestFileTarget < Test::Unit::TestCase
283
234
  File.open(file, "w") { |f| f.puts "yayness" }
284
235
  File.symlink(file, link)
285
236
 
286
- obj = Puppet::Type.type(:file).create(
237
+ obj = Puppet::Type.type(:file).new(
287
238
  :path => link,
288
239
  :ensure => "file"
289
240
  )
@@ -314,7 +265,7 @@ class TestFileTarget < Test::Unit::TestCase
314
265
  File.open(sourcefile, "w") { |f| f.puts "source" }
315
266
  File.symlink(file, link)
316
267
 
317
- obj = Puppet::Type.type(:file).create(
268
+ obj = Puppet::Type.type(:file).new(
318
269
  :path => dirs["target"],
319
270
  :ensure => :file,
320
271
  :source => dirs["source"],
@@ -344,7 +295,7 @@ class TestFileTarget < Test::Unit::TestCase
344
295
  File.open(dest, "w") { |f| f.puts "boo" }
345
296
  File.open(otherdest, "w") { |f| f.puts "yay" }
346
297
 
347
- obj = Puppet::Type.type(:file).create(
298
+ obj = Puppet::Type.type(:file).new(
348
299
  :path => link,
349
300
  :ensure => otherdest
350
301
  )
@@ -10,7 +10,7 @@ require 'fileutils'
10
10
  class TestFileIgnoreSources < Test::Unit::TestCase
11
11
  include PuppetTest::Support::Utils
12
12
  include PuppetTest::FileTesting
13
-
13
+
14
14
  def setup
15
15
  super
16
16
  begin
@@ -18,6 +18,8 @@ class TestFileIgnoreSources < Test::Unit::TestCase
18
18
  rescue
19
19
  system("rm -rf %s" % Puppet[:statefile])
20
20
  end
21
+
22
+ Facter.stubs(:to_hash).returns({})
21
23
  end
22
24
 
23
25
  #This is not needed unless using md5 (correct me if I'm wrong)
@@ -54,40 +56,38 @@ class TestFileIgnoreSources < Test::Unit::TestCase
54
56
 
55
57
  #create source files
56
58
 
57
- File.open(File.join(frompath,sourcefile1),
59
+ File.open(File.join(frompath,sourcefile1),
58
60
  File::WRONLY|File::CREAT|File::APPEND) { |of|
59
61
  of.puts "yayness"
60
62
  }
61
-
62
- File.open(File.join(frompath,sourcefile2),
63
+
64
+ File.open(File.join(frompath,sourcefile2),
63
65
  File::WRONLY|File::CREAT|File::APPEND) { |of|
64
66
  of.puts "even yayer"
65
67
  }
66
-
68
+
67
69
 
68
70
  #makes Puppet file Object
69
71
  assert_nothing_raised {
70
- tofile = Puppet.type(:file).create(
72
+ tofile = Puppet::Type.type(:file).new(
71
73
  :name => topath,
72
74
  :source => frompath,
73
- :recurse => true,
74
- :ignore => "sourcefile2"
75
+ :recurse => true,
76
+ :ignore => "sourcefile2"
75
77
  )
76
78
  }
77
79
 
78
80
  config = mk_catalog(tofile)
79
81
  config.apply
80
-
81
-
82
+
83
+
82
84
  #topath should exist as a directory with sourcedir as a directory
83
-
85
+
84
86
  #This file should exist
85
87
  assert(FileTest.exists?(File.join(topath,sourcefile1)))
86
88
 
87
89
  #This file should not
88
90
  assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
89
-
90
- Puppet::Type.allclear
91
91
  end
92
92
 
93
93
  def test_ignore_with_wildcard
@@ -104,7 +104,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
104
104
 
105
105
  frompath = File.join(path,sourcedir)
106
106
  FileUtils.mkdir_p frompath
107
-
107
+
108
108
  FileUtils.mkdir_p(File.join(frompath, subdir))
109
109
  FileUtils.mkdir_p(File.join(frompath, subdir2))
110
110
  dir = Dir.glob(File.join(path,"**/*"))
@@ -117,35 +117,35 @@ class TestFileIgnoreSources < Test::Unit::TestCase
117
117
  trans = nil
118
118
 
119
119
  #create source files
120
-
121
- dir.each { |dir|
122
- File.open(File.join(dir,sourcefile1),
120
+
121
+ dir.each { |dir|
122
+ File.open(File.join(dir,sourcefile1),
123
123
  File::WRONLY|File::CREAT|File::APPEND) { |of|
124
124
  of.puts "yayness"
125
125
  }
126
-
127
- File.open(File.join(dir,sourcefile2),
126
+
127
+ File.open(File.join(dir,sourcefile2),
128
128
  File::WRONLY|File::CREAT|File::APPEND) { |of|
129
129
  of.puts "even yayer"
130
130
  }
131
-
131
+
132
132
  }
133
133
 
134
134
  #makes Puppet file Object
135
135
  assert_nothing_raised {
136
- tofile = Puppet.type(:file).create(
136
+ tofile = Puppet::Type.type(:file).new(
137
137
  :name => topath,
138
138
  :source => frompath,
139
- :recurse => true,
140
- :ignore => "*2"
139
+ :recurse => true,
140
+ :ignore => "*2"
141
141
  )
142
142
  }
143
143
 
144
144
  config = mk_catalog(tofile)
145
145
  config.apply
146
-
146
+
147
147
  #topath should exist as a directory with sourcedir as a directory
148
-
148
+
149
149
  #This file should exist
150
150
  assert(FileTest.exists?(File.join(topath,sourcefile1)))
151
151
  assert(FileTest.exists?(File.join(topath,subdir)))
@@ -155,8 +155,6 @@ class TestFileIgnoreSources < Test::Unit::TestCase
155
155
  assert(!(FileTest.exists?(File.join(topath,sourcefile2))))
156
156
  assert(!(FileTest.exists?(File.join(topath,subdir2))))
157
157
  assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))))
158
- Puppet::Type.allclear
159
-
160
158
  end
161
159
 
162
160
  def test_ignore_array
@@ -174,7 +172,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
174
172
 
175
173
  frompath = File.join(path,sourcedir)
176
174
  FileUtils.mkdir_p frompath
177
-
175
+
178
176
  FileUtils.mkdir_p(File.join(frompath, subdir))
179
177
  FileUtils.mkdir_p(File.join(frompath, subdir2))
180
178
  FileUtils.mkdir_p(File.join(frompath, subdir3))
@@ -188,31 +186,31 @@ class TestFileIgnoreSources < Test::Unit::TestCase
188
186
  trans = nil
189
187
 
190
188
  #create source files
191
-
192
189
 
193
-
194
- sourcedir.each { |dir|
195
- File.open(File.join(dir,sourcefile1),
190
+
191
+
192
+ sourcedir.each { |dir|
193
+ File.open(File.join(dir,sourcefile1),
196
194
  File::WRONLY|File::CREAT|File::APPEND) { |of|
197
195
  of.puts "yayness"
198
196
  }
199
-
200
- File.open(File.join(dir,sourcefile2),
197
+
198
+ File.open(File.join(dir,sourcefile2),
201
199
  File::WRONLY|File::CREAT|File::APPEND) { |of|
202
200
  of.puts "even yayer"
203
201
  }
204
-
202
+
205
203
  }
206
204
 
207
205
 
208
206
  #makes Puppet file Object
209
207
  assert_nothing_raised {
210
- tofile = Puppet.type(:file).create(
208
+ tofile = Puppet::Type.type(:file).new(
211
209
  :name => topath,
212
210
  :source => frompath,
213
211
  :recurse => true,
214
- :ignore => ["*2", "an*"]
215
- # :ignore => ["*2", "an*", "nomatch"]
212
+ :ignore => ["*2", "an*"]
213
+ # :ignore => ["*2", "an*", "nomatch"]
216
214
  )
217
215
  }
218
216
 
@@ -226,7 +224,7 @@ class TestFileIgnoreSources < Test::Unit::TestCase
226
224
  assert(FileTest.exists?(File.join(topath,sourcefile1)), "file1 not in destdir")
227
225
  assert(FileTest.exists?(File.join(topath,subdir)), "subdir1 not in destdir")
228
226
  assert(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile1)), "file1 not in subdir")
229
- # proper files in source
227
+ # proper files in source
230
228
  assert(FileTest.exists?(File.join(frompath,subdir)), "subdir not in source")
231
229
  assert(FileTest.exists?(File.join(frompath,subdir2)), "subdir2 not in source")
232
230
  assert(FileTest.exists?(File.join(frompath,subdir3)), "subdir3 not in source")
@@ -236,10 +234,5 @@ class TestFileIgnoreSources < Test::Unit::TestCase
236
234
  assert(!(FileTest.exists?(File.join(topath,subdir2))), "subdir2 in dest")
237
235
  assert(!(FileTest.exists?(File.join(topath,subdir3))), "anotherdir in dest")
238
236
  assert(!(FileTest.exists?(File.join(File.join(topath,subdir),sourcefile2))), "file2 in dest/sub")
239
-
240
-
241
- Puppet::Type.allclear
242
-
243
237
  end
244
-
245
238
  end
@@ -20,14 +20,15 @@ class TestFileSources < Test::Unit::TestCase
20
20
  end
21
21
  @file = Puppet::Type.type(:file)
22
22
  Puppet[:filetimeout] = -1
23
- Puppet::Util::SUIDManager.stubs(:asuser).yields
23
+ Puppet::Util::SUIDManager.stubs(:asuser).yields
24
+ Facter.stubs(:to_hash).returns({})
24
25
  end
25
26
 
26
27
  def teardown
27
28
  super
28
29
  Puppet::Network::HttpPool.clear_http_instances
29
30
  end
30
-
31
+
31
32
  def use_storage
32
33
  begin
33
34
  initstorage
@@ -40,321 +41,34 @@ class TestFileSources < Test::Unit::TestCase
40
41
  Puppet::Util::Storage.init
41
42
  Puppet::Util::Storage.load
42
43
  end
43
-
44
+
44
45
  # Make a simple recursive tree.
45
46
  def mk_sourcetree
46
47
  source = tempfile()
47
48
  sourcefile = File.join(source, "file")
48
49
  Dir.mkdir source
49
50
  File.open(sourcefile, "w") { |f| f.puts "yay" }
50
-
51
+
51
52
  dest = tempfile()
52
53
  destfile = File.join(dest, "file")
53
54
  return source, dest, sourcefile, destfile
54
55
  end
55
56
 
56
- def test_newchild
57
- path = tempfile()
58
- @@tmpfiles.push path
59
-
60
- FileUtils.mkdir_p path
61
- File.open(File.join(path,"childtest"), "w") { |of|
62
- of.puts "yayness"
63
- }
64
- file = nil
65
- comp = nil
66
- trans = nil
67
- assert_nothing_raised {
68
- file = Puppet.type(:file).create(
69
- :name => path
70
- )
71
- }
72
- config = mk_catalog(file)
73
- child = nil
74
- assert_nothing_raised {
75
- child = file.newchild("childtest", true)
76
- }
77
- assert(child)
78
- assert_raise(Puppet::DevError) {
79
- file.newchild(File.join(path,"childtest"), true)
80
- }
81
- end
82
-
83
- def test_describe
84
- source = tempfile()
85
- dest = tempfile()
86
-
87
- file = Puppet::Type.newfile :path => dest, :source => source, :title => "copier"
88
-
89
- property = file.property(:source)
90
-
91
- # First try describing with a normal source
92
- result = nil
93
- assert_nothing_raised do
94
- result = property.describe(source)
95
- end
96
- assert_nil(result, "Got a result back when source is missing")
97
-
98
- # Now make a remote directory
99
- Dir.mkdir(source)
100
- assert_nothing_raised do
101
- result = property.describe(source)
102
- end
103
- assert_equal("directory", result[:type])
104
-
105
- # And as a file
106
- Dir.rmdir(source)
107
- File.open(source, "w") { |f| f.puts "yay" }
108
- assert_nothing_raised do
109
- result = property.describe(source)
110
- end
111
- assert_equal("file", result[:type])
112
- assert(result[:checksum], "did not get value for checksum")
113
- if Puppet::Util::SUIDManager.uid == 0
114
- assert(result.has_key?(:owner), "Lost owner in describe")
115
- else
116
- assert(! result.has_key?(:owner),
117
- "Kept owner in describe even tho not root")
118
- end
119
-
120
- # Now let's do the various link things
121
- File.unlink(source)
122
- target = tempfile()
123
- File.open(target, "w") { |f| f.puts "yay" }
124
- File.symlink(target, source)
125
-
126
- file[:links] = :manage
127
- assert_equal("link", property.describe(source)[:type])
128
-
129
- # And then make sure links get followed
130
- file[:links] = :follow
131
- assert_equal("file", property.describe(source)[:type])
132
- end
133
-
134
- def test_source_retrieve
135
- source = tempfile()
136
- dest = tempfile()
137
-
138
- file = Puppet::Type.newfile :path => dest, :source => source,
139
- :title => "copier"
140
-
141
- assert(file.property(:checksum), "source property did not create checksum property")
142
- property = file.property(:source)
143
- assert(property, "did not get source property")
144
-
145
- # Make sure the munge didn't actually change the source
146
- assert_equal([source], property.should, "munging changed the source")
147
-
148
- currentvalue = nil
149
- # Now make the dest a directory, and make sure the object sets :ensure
150
- # up to create a directory
151
- Dir.mkdir(source)
152
- assert_nothing_raised do
153
- currentvalue = property.retrieve
154
- end
155
- assert_equal(:directory, file.should(:ensure),
156
- "Did not set to create directory")
157
-
158
- # And make sure the source property won't try to do anything with a
159
- # remote dir
160
- assert(property.insync?(currentvalue), "Source was out of sync even tho remote is dir")
161
-
162
- # Now remove the source, and make sure :ensure was not modified
163
- Dir.rmdir(source)
164
- assert_equal(:directory, file.should(:ensure),
165
- "Did not keep :ensure setting")
166
-
167
- # Now have a remote file and make sure things work correctly
168
- File.open(source, "w") { |f| f.puts "yay" }
169
- File.chmod(0755, source)
170
-
171
- assert_nothing_raised do
172
- property.retrieve
173
- end
174
- assert_equal(:file, file.should(:ensure),
175
- "Did not make correct :ensure setting")
176
- assert_equal(0755, file.should(:mode),
177
- "Mode was not copied over")
178
-
179
- # Now let's make sure that we get the first found source
180
- fake = tempfile()
181
- property.should = [fake, source]
182
- assert_nothing_raised do
183
- property.retrieve
184
- end
185
- assert_equal(Digest::MD5.hexdigest(File.read(source)), property.checksum.sub(/^\{\w+\}/, ''),
186
- "Did not catch later source")
187
- end
188
-
189
- def test_insync
190
- source = tempfile()
191
- dest = tempfile()
192
-
193
- file = Puppet::Type.newfile :path => dest, :source => source,
194
- :title => "copier"
195
-
196
- property = file.property(:source)
197
- assert(property, "did not get source property")
198
-
199
- # with a directory
200
- Dir.mkdir(source)
201
- currentvalues = file.retrieve
202
- assert(property.insync?(currentvalues[property]), "source property not in sync with directory as source")
203
- Dir.rmdir(source)
204
-
205
- # with a file
206
- File.open(source, "w") { |f| f.puts "yay" }
207
- currentvalues = file.retrieve
208
- assert(!property.insync?(currentvalues[property]), "source property was in sync when file was missing")
209
-
210
- # With a different file
211
- File.open(dest, "w") { |f| f.puts "foo" }
212
- currentvalues = file.retrieve
213
- assert(!property.insync?(currentvalues[property]), "source property was in sync with different file")
214
-
215
- # with matching files
216
- File.open(dest, "w") { |f| f.puts "yay" }
217
- currentvalues = file.retrieve
218
- assert(property.insync?(currentvalues[property]), "source property was not in sync with matching file")
219
- end
220
-
221
- def test_source_sync
222
- source = tempfile()
223
- dest = tempfile()
224
-
225
- file = Puppet::Type.newfile :path => dest, :source => source,
226
- :title => "copier"
227
- property = file.property(:source)
228
-
229
- File.open(source, "w") { |f| f.puts "yay" }
230
-
231
- currentvalues = file.retrieve
232
- assert(! property.insync?(currentvalues[property]), "source thinks it's in sync")
233
-
234
- event = nil
235
- assert_nothing_raised do
236
- event = property.sync
237
- end
238
- assert_equal(:file_created, event)
239
- assert_equal(File.read(source), File.read(dest),
240
- "File was not copied correctly")
241
-
242
- # Now write something different
243
- File.open(source, "w") { |f| f.puts "rah" }
244
- currentvalues = file.retrieve
245
- assert(! property.insync?(currentvalues[property]), "source should be out of sync")
246
- assert_nothing_raised do
247
- event = property.sync
248
- end
249
- assert_equal(:file_changed, event)
250
- assert_equal(File.read(source), File.read(dest),
251
- "File was not copied correctly")
252
- end
253
-
254
- # XXX This test doesn't cover everything. Specifically,
255
- # it doesn't handle 'ignore' and 'links'.
256
- def test_sourcerecurse
257
- source, dest, sourcefile, destfile = mk_sourcetree
258
-
259
- # The sourcerecurse method will only ever get called when we're
260
- # recursing, so we go ahead and set it.
261
- obj = Puppet::Type.newfile :source => source, :path => dest, :recurse => true
262
- config = mk_catalog(obj)
263
-
264
- result = nil
265
- sourced = nil
266
- assert_nothing_raised do
267
- result, sourced = obj.sourcerecurse(true)
268
- end
269
-
270
- assert_equal([destfile], sourced, "Did not get correct list of sourced objects")
271
- dfileobj = @file[destfile]
272
- assert(dfileobj, "Did not create destfile object")
273
- assert_equal([dfileobj], result)
274
-
275
- # Clean this up so it can be recreated
276
- config.remove_resource(dfileobj)
277
-
278
- # Make sure we correctly iterate over the sources
279
- nosource = tempfile()
280
- obj[:source] = [nosource, source]
281
-
282
- result = nil
283
- assert_nothing_raised do
284
- result, sourced = obj.sourcerecurse(true)
285
- end
286
- assert_equal([destfile], sourced, "Did not get correct list of sourced objects")
287
- dfileobj = @file[destfile]
288
- assert(dfileobj, "Did not create destfile object with a missing source")
289
- assert_equal([dfileobj], result)
290
- dfileobj.remove
291
-
292
- # Lastly, make sure we return an empty array when no sources are there
293
- obj[:source] = [nosource, tempfile()]
294
-
295
- assert_raise(Puppet::Error) do
296
- result, sourced = obj.sourcerecurse(true)
297
- end
298
- end
299
-
300
- def test_simplelocalsource
301
- path = tempfile()
302
- FileUtils.mkdir_p path
303
- frompath = File.join(path,"source")
304
- topath = File.join(path,"dest")
305
- fromfile = nil
306
- tofile = nil
307
- trans = nil
308
-
309
- File.open(frompath, File::WRONLY|File::CREAT|File::APPEND) { |of|
310
- of.puts "yayness"
311
- }
312
- assert_nothing_raised {
313
- tofile = Puppet.type(:file).create(
314
- :name => topath,
315
- :source => frompath
316
- )
317
- }
318
-
319
- assert_apply(tofile)
320
-
321
- assert(FileTest.exists?(topath), "File #{topath} is missing")
322
- from = File.open(frompath) { |o| o.read }
323
- to = File.open(topath) { |o| o.read }
324
- assert_equal(from,to)
325
- end
326
-
327
- # Make sure a simple recursive copy works
328
- def test_simple_recursive_source
329
- source, dest, sourcefile, destfile = mk_sourcetree
330
-
331
- file = Puppet::Type.newfile :path => dest, :source => source, :recurse => true
332
-
333
- assert_events([:directory_created, :file_created], file)
334
-
335
- assert(FileTest.directory?(dest), "Dest dir was not created")
336
- assert(FileTest.file?(destfile), "dest file was not created")
337
- assert_equal("yay\n", File.read(destfile), "dest file was not copied correctly")
338
- end
339
-
340
57
  def recursive_source_test(fromdir, todir)
341
- Puppet::Type.allclear
342
58
  initstorage
343
59
  tofile = nil
344
60
  trans = nil
345
61
 
346
- assert_nothing_raised {
347
- tofile = Puppet.type(:file).create(
348
- :path => todir,
349
- :recurse => true,
350
- :backup => false,
351
- :source => fromdir
352
- )
353
- }
354
- assert_apply(tofile)
62
+ tofile = Puppet::Type.type(:file).new(
63
+ :path => todir,
64
+ :recurse => true,
65
+ :backup => false,
66
+ :source => fromdir
67
+ )
68
+ catalog = mk_catalog(tofile)
69
+ catalog.apply
355
70
 
356
71
  assert(FileTest.exists?(todir), "Created dir %s does not exist" % todir)
357
- Puppet::Type.allclear
358
72
  end
359
73
 
360
74
  def run_complex_sources(networked = false)
@@ -396,9 +110,6 @@ class TestFileSources < Test::Unit::TestCase
396
110
  def test_sources_with_deleted_destfiles
397
111
  fromdir, todir, one, two = run_complex_sources
398
112
  assert(FileTest.exists?(todir))
399
-
400
- # We shouldn't have a 'two' file object in memory
401
- assert_nil(@file[two], "object for 'two' is still in memory")
402
113
 
403
114
  # then delete a file
404
115
  File.unlink(two)
@@ -420,7 +131,7 @@ class TestFileSources < Test::Unit::TestCase
420
131
 
421
132
  # and make sure they're still equal
422
133
  assert_trees_equal(fromdir,todir)
423
-
134
+
424
135
  # Now try it with the directory being read-only
425
136
  File.chmod(0111, todir)
426
137
  recursive_source_test(fromdir, todir)
@@ -433,7 +144,7 @@ class TestFileSources < Test::Unit::TestCase
433
144
  fromdir, todir, one, two = run_complex_sources
434
145
 
435
146
  assert(FileTest.exists?(todir))
436
-
147
+
437
148
  # Modify a dest file
438
149
  File.open(two, "w") { |f| f.puts "something else" }
439
150
 
@@ -460,7 +171,7 @@ class TestFileSources < Test::Unit::TestCase
460
171
  FileUtils.cd(todir) {
461
172
  %x{find . 2>/dev/null}.chomp.split(/\n/).each { |file|
462
173
  if file =~ /file[0-9]+/
463
- File.unlink(file)
174
+ FileUtils.rm_rf(file)
464
175
  end
465
176
  }
466
177
  }
@@ -481,14 +192,14 @@ class TestFileSources < Test::Unit::TestCase
481
192
  File.open(file1, "w") { |f| f.puts "yay" }
482
193
  rootobj = nil
483
194
  assert_nothing_raised {
484
- rootobj = Puppet.type(:file).create(
195
+ rootobj = Puppet::Type.type(:file).new(
485
196
  :name => basedir,
486
197
  :recurse => true,
487
198
  :check => %w{type owner},
488
199
  :mode => 0755
489
200
  )
490
201
  }
491
-
202
+
492
203
  assert_apply(rootobj)
493
204
  assert_equal(0755, filemode(file1))
494
205
 
@@ -514,53 +225,6 @@ class TestFileSources < Test::Unit::TestCase
514
225
  return file
515
226
  end
516
227
 
517
- def test_NetworkSources
518
- server = nil
519
- mounts = {
520
- "/" => "root"
521
- }
522
-
523
- fileserverconf = mkfileserverconf(mounts)
524
-
525
- Puppet[:autosign] = true
526
-
527
- Puppet[:masterport] = 8762
528
- Puppet[:name] = "puppetmasterd"
529
- Puppet[:certdnsnames] = "localhost"
530
-
531
- serverpid = nil
532
- assert_nothing_raised() {
533
- server = Puppet::Network::HTTPServer::WEBrick.new(
534
- :Handlers => {
535
- :CA => {}, # so that certs autogenerate
536
- :FileServer => {
537
- :Config => fileserverconf
538
- }
539
- }
540
- )
541
-
542
- }
543
- serverpid = fork {
544
- assert_nothing_raised() {
545
- #trap(:INT) { server.shutdown; Kernel.exit! }
546
- trap(:INT) { server.shutdown }
547
- server.start
548
- }
549
- }
550
- @@tmppids << serverpid
551
-
552
- sleep(1)
553
-
554
- fromdir, todir = run_complex_sources("root")
555
- assert_trees_equal(fromdir,todir)
556
- recursive_source_test(fromdir, todir)
557
- assert_trees_equal(fromdir,todir)
558
-
559
- assert_nothing_raised {
560
- system("kill -INT %s" % serverpid)
561
- }
562
- end
563
-
564
228
  def test_unmountedNetworkSources
565
229
  server = nil
566
230
  mounts = {
@@ -600,14 +264,14 @@ class TestFileSources < Test::Unit::TestCase
600
264
  sleep(1)
601
265
 
602
266
  name = File.join(tmpdir(), "nosourcefile")
603
- file = Puppet.type(:file).create(
267
+ file = Puppet::Type.type(:file).new(
604
268
  :source => "puppet://localhost/noexist/file",
605
269
  :name => name
606
270
  )
607
271
 
608
- assert_raise Puppet::Error do
272
+ assert_raise Puppet::Error do
609
273
  file.retrieve
610
- end
274
+ end
611
275
 
612
276
  comp = mk_catalog(file)
613
277
  comp.apply
@@ -627,7 +291,7 @@ class TestFileSources < Test::Unit::TestCase
627
291
  # Now the files should be exactly the same, so we should not see attempts
628
292
  # at copying
629
293
  assert_nothing_raised {
630
- file = Puppet.type(:file).create(
294
+ file = Puppet::Type.type(:file).new(
631
295
  :path => to,
632
296
  :source => from
633
297
  )
@@ -635,7 +299,7 @@ class TestFileSources < Test::Unit::TestCase
635
299
 
636
300
  currentvalue = file.retrieve
637
301
 
638
- assert(currentvalue[file.property(:checksum)],
302
+ assert(currentvalue[file.property(:checksum)],
639
303
  "File does not have a checksum property")
640
304
 
641
305
  assert_equal(0, file.evaluate.length, "File produced changes")
@@ -643,7 +307,7 @@ class TestFileSources < Test::Unit::TestCase
643
307
 
644
308
  def test_sourcepaths
645
309
  files = []
646
- 3.times {
310
+ 3.times {
647
311
  files << tempfile()
648
312
  }
649
313
 
@@ -653,7 +317,7 @@ class TestFileSources < Test::Unit::TestCase
653
317
 
654
318
  file = nil
655
319
  assert_nothing_raised {
656
- file = Puppet.type(:file).create(
320
+ file = Puppet::Type.type(:file).new(
657
321
  :name => to,
658
322
  :source => files
659
323
  )
@@ -679,7 +343,7 @@ class TestFileSources < Test::Unit::TestCase
679
343
 
680
344
  file = nil
681
345
  assert_nothing_raised {
682
- file = Puppet.type(:file).create(
346
+ file = Puppet::Type.type(:file).new(
683
347
  :name => dest,
684
348
  :source => source
685
349
  )
@@ -700,7 +364,7 @@ class TestFileSources < Test::Unit::TestCase
700
364
 
701
365
  file = nil
702
366
  assert_nothing_raised {
703
- file = Puppet.type(:file).create(
367
+ file = Puppet::Type.type(:file).new(
704
368
  :name => dest,
705
369
  :ensure => "file",
706
370
  :source => source
@@ -723,77 +387,18 @@ class TestFileSources < Test::Unit::TestCase
723
387
  File.open(source, "w") { |f| f.puts "yay" }
724
388
  File.symlink(source, link)
725
389
 
726
- file = nil
727
- assert_nothing_raised {
728
- file = Puppet.type(:file).create(
729
- :name => dest,
730
- :source => link,
731
- :links => :follow
732
- )
733
- }
734
-
735
- assert_events([:file_created], file)
736
- assert(FileTest.file?(dest), "Destination is not a file")
737
-
738
- # Now copy the links
739
- file[:links] = :manage
740
- assert_events([:link_created], file)
741
- assert(FileTest.symlink?(dest), "Destination is not a link")
742
- end
743
-
744
- def test_changes
745
- source = tempfile()
746
- dest = tempfile()
747
-
748
- File.open(source, "w") { |f| f.puts "yay" }
749
-
750
- obj = nil
751
- assert_nothing_raised {
752
- obj = Puppet.type(:file).create(
753
- :name => dest,
754
- :source => source
755
- )
756
- }
757
-
758
- assert_events([:file_created], obj)
759
- assert_equal(File.read(source), File.read(dest), "Files are not equal")
760
- assert_events([], obj)
761
-
762
- File.open(source, "w") { |f| f.puts "boo" }
763
-
764
- assert_events([:file_changed], obj)
765
- assert_equal(File.read(source), File.read(dest), "Files are not equal")
766
- assert_events([], obj)
767
-
768
- File.open(dest, "w") { |f| f.puts "kaboom" }
769
-
770
- # There are two changes, because first the checksum is noticed, and
771
- # then the source causes a change
772
- assert_events([:file_changed, :file_changed], obj)
773
- assert_equal(File.read(source), File.read(dest), "Files are not equal")
774
- assert_events([], obj)
775
- end
776
-
777
- def test_file_source_with_space
778
- dir = tempfile()
779
- source = File.join(dir, "file with spaces")
780
- Dir.mkdir(dir)
781
- File.open(source, "w") { |f| f.puts "yayness" }
782
-
783
- newdir = tempfile()
784
- newpath = File.join(newdir, "file with spaces")
785
-
786
- file = Puppet::Type.newfile(
787
- :path => newdir,
788
- :source => dir,
789
- :recurse => true
790
- )
390
+ file = Puppet::Type.type(:file).new(:name => dest, :source => link)
791
391
 
392
+ catalog = mk_catalog(file)
792
393
 
793
- assert_apply(file)
394
+ # Default to managing links
395
+ catalog.apply
396
+ assert(FileTest.symlink?(dest), "Did not create link")
794
397
 
795
- assert(FileTest.exists?(newpath), "Did not create file")
796
- assert_equal("yayness\n", File.read(newpath))
398
+ # Now follow the links
399
+ file[:links] = :follow
400
+ catalog.apply
401
+ assert(FileTest.file?(dest), "Destination is not a file")
797
402
  end
798
403
 
799
404
  # Make sure files aren't replaced when replace is false, but otherwise
@@ -828,49 +433,14 @@ class TestFileSources < Test::Unit::TestCase
828
433
  "File got replaced when :replace was false")
829
434
 
830
435
  # Now set it to true and make sure it does change.
831
- assert_nothing_raised {
832
- file[:replace] = true
833
- }
436
+ file[:replace] = true
834
437
  assert_apply(file)
835
438
 
836
- # Make sure it doesn't change.
439
+ # Make sure it changes.
837
440
  assert_equal("funtest\n", File.read(dest),
838
441
  "File was not replaced when :replace was true")
839
442
  end
840
443
 
841
- # Testing #285. This just makes sure that URI parsing works correctly.
842
- def test_fileswithpoundsigns
843
- dir = tstdir()
844
- subdir = File.join(dir, "#dir")
845
- Dir.mkdir(subdir)
846
- file = File.join(subdir, "file")
847
- File.open(file, "w") { |f| f.puts "yayness" }
848
-
849
- dest = tempfile()
850
- source = "file://localhost#{dir}"
851
- obj = Puppet::Type.newfile(
852
- :path => dest,
853
- :source => source,
854
- :recurse => true
855
- )
856
-
857
- newfile = File.join(dest, "#dir", "file")
858
-
859
- poundsource = "file://localhost#{subdir}"
860
-
861
- sourceobj = path = nil
862
- assert_nothing_raised {
863
- sourceobj, path = obj.uri2obj(poundsource)
864
- }
865
-
866
- assert_equal("/localhost" + URI.escape(subdir), path)
867
-
868
- assert_apply(obj)
869
-
870
- assert(FileTest.exists?(newfile), "File did not get created")
871
- assert_equal("yayness\n", File.read(newfile))
872
- end
873
-
874
444
  def test_sourceselect
875
445
  dest = tempfile()
876
446
  sources = []
@@ -919,7 +489,7 @@ class TestFileSources < Test::Unit::TestCase
919
489
  assert(FileTest.exists?(file3), "File from source 1 was not copied")
920
490
  assert_equal("0", File.read(file3), "file3 got wrong contents")
921
491
  end
922
-
492
+
923
493
  def test_recursive_sourceselect
924
494
  dest = tempfile()
925
495
  source1 = tempfile()
@@ -936,15 +506,15 @@ class TestFileSources < Test::Unit::TestCase
936
506
  File.open(file, "w") { |f| f.puts "yaysecond-%s" % i}
937
507
  files << file
938
508
  end
939
-
509
+
940
510
  obj = Puppet::Type.newfile(:path => dest, :source => [source1, source2], :sourceselect => :all, :recurse => true)
941
-
511
+
942
512
  assert_apply(obj)
943
-
513
+
944
514
  ["file0", "file1", "second-file0", "second-file1", "subdir/file2", "subdir/second-file2", "subdir/file3", "subdir/second-file3"].each do |file|
945
515
  path = File.join(dest, file)
946
516
  assert(FileTest.exists?(path), "did not create %s" % file)
947
-
517
+
948
518
  assert_equal("yay%s\n" % File.basename(file).sub("file", ''), File.read(path), "file was not copied correctly")
949
519
  end
950
520
  end