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
@@ -7,13 +7,13 @@ require 'puppet/util/inifile'
7
7
  require 'puppettest'
8
8
 
9
9
  class TestFileType < Test::Unit::TestCase
10
- include PuppetTest
10
+ include PuppetTest
11
11
 
12
12
  def setup
13
13
  super
14
14
  @file = Puppet::Util::IniConfig::File.new
15
15
  end
16
-
16
+
17
17
  def teardown
18
18
  @file = nil
19
19
  super
@@ -43,7 +43,7 @@ class TestFileType < Test::Unit::TestCase
43
43
  @file.read(fsub)
44
44
  }
45
45
  main = get_section('main')
46
- assert_entries(main,
46
+ assert_entries(main,
47
47
  { 'key1' => 'main.value1', 'key2' => 'main.value2' })
48
48
  sub1 = get_section('sub1')
49
49
  assert_entries(sub1, { 'key1' => 'sub1 value1' })
@@ -106,9 +106,9 @@ class TestFileType < Test::Unit::TestCase
106
106
  end
107
107
 
108
108
  def assert_entries(section, hash)
109
- hash.each do |k, v|
110
- assert_equal(v, section[k],
111
- "Expected <#{v}> for #{section.name}[#{k}] " +
109
+ hash.each do |k, v|
110
+ assert_equal(v, section[k],
111
+ "Expected <#{v}> for #{section.name}[#{k}] " +
112
112
  "but got <#{section[k]}>")
113
113
  end
114
114
  end
@@ -7,7 +7,7 @@ require 'puppet/util/instance_loader'
7
7
  require 'puppettest'
8
8
 
9
9
  class TestInstanceloader < Test::Unit::TestCase
10
- include PuppetTest
10
+ include PuppetTest
11
11
 
12
12
  def setup
13
13
  super
@@ -129,7 +129,7 @@ class TestLog < Test::Unit::TestCase
129
129
  # Verify that the error and source are always strings
130
130
  def test_argsAreStrings
131
131
  msg = nil
132
- file = Puppet.type(:file).create(
132
+ file = Puppet::Type.type(:file).new(
133
133
  :path => tempfile(),
134
134
  :check => %w{owner group}
135
135
  )
@@ -195,7 +195,7 @@ class TestLog < Test::Unit::TestCase
195
195
  Puppet.warning "A test"
196
196
  assert(File.read(file) =~ /A test/,
197
197
  "File did not flush")
198
- # Rename the file
198
+ # Rename the file
199
199
  newfile = file + ".old"
200
200
  File.rename(file, newfile)
201
201
 
@@ -17,7 +17,7 @@ class TestMetric < PuppetTest::TestCase
17
17
  eventmax = 10
18
18
  maxdiff = 10
19
19
 
20
- types = [Puppet.type(:file), Puppet.type(:package), Puppet.type(:package)]
20
+ types = [Puppet::Type.type(:file), Puppet::Type.type(:package), Puppet::Type.type(:package)]
21
21
  data = [:total, :managed, :outofsync, :changed, :totalchanges]
22
22
  events = [:file_changed, :package_installed, :service_started]
23
23
 
@@ -49,11 +49,6 @@ class TestMetric < PuppetTest::TestCase
49
49
  }
50
50
  end
51
51
 
52
- def setup
53
- super
54
- Puppet[:rrdgraph] = true
55
- end
56
-
57
52
  def test_fakedata
58
53
  report = Puppet::Transaction::Report.new
59
54
  time = Time.now.to_i
@@ -11,7 +11,7 @@ class TestPuppetUtilPackage < Test::Unit::TestCase
11
11
  include Puppet::Util::Package
12
12
 
13
13
  def test_versioncmp
14
- ary = %w{ 1.1.6 2.3 1.1a 3.0 1.5 1 2.4 1.1-4
14
+ ary = %w{ 1.1.6 2.3 1.1a 3.0 1.5 1 2.4 1.1-4
15
15
  2.3.1 1.2 2.3.0 1.1-3 2.4b 2.4 2.40.2 2.3a.1 3.1 0002 1.1-5 1.1.a 1.06}
16
16
 
17
17
  newary = nil
@@ -7,120 +7,120 @@ require 'fileutils'
7
7
  Puppet.debug = false
8
8
 
9
9
  class TestPuppetUtilPidlock < Test::Unit::TestCase
10
- include PuppetTest
11
-
12
- def setup
13
- super
14
- @workdir = tstdir
15
- end
16
-
17
- def teardown
18
- super
19
- FileUtils.rm_rf(@workdir)
20
- end
21
-
22
- def test_00_basic_create
23
- l = nil
24
- assert_nothing_raised { l = Puppet::Util::Pidlock.new(@workdir + '/nothingmuch') }
25
-
26
- assert_equal Puppet::Util::Pidlock, l.class
27
-
28
- assert_equal @workdir + '/nothingmuch', l.lockfile
29
- end
30
-
31
- def test_10_uncontended_lock
32
- l = Puppet::Util::Pidlock.new(@workdir + '/test_lock')
33
-
34
- assert !l.locked?
35
- assert !l.mine?
36
- assert l.lock
37
- assert l.locked?
38
- assert l.mine?
39
- assert !l.anonymous?
40
- # It's OK to call lock multiple times
41
- assert l.lock
42
- assert l.unlock
43
- assert !l.locked?
44
- assert !l.mine?
45
- end
46
-
47
- def test_20_someone_elses_lock
48
- childpid = nil
49
- l = Puppet::Util::Pidlock.new(@workdir + '/someone_elses_lock')
50
-
51
- # First, we need a PID that's guaranteed to be (a) used, (b) someone
52
- # else's, and (c) around for the life of this test.
53
- childpid = fork { loop do; sleep 10; end }
54
-
55
- File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
56
-
57
- assert l.locked?
58
- assert !l.mine?
59
- assert !l.lock
60
- assert l.locked?
61
- assert !l.mine?
62
- assert !l.unlock
63
- assert l.locked?
64
- assert !l.mine?
65
- ensure
66
- Process.kill("KILL", childpid) unless childpid.nil?
67
- end
68
-
69
- def test_30_stale_lock
70
- # This is a bit hard to guarantee, but we need a PID that is definitely
71
- # unused, and will stay so for the the life of this test. Our best
72
- # bet is to create a process, get it's PID, let it die, and *then*
73
- # lock on it.
74
- childpid = fork { exit }
75
-
76
- # Now we can't continue until we're sure that the PID is dead
77
- Process.wait(childpid)
78
-
79
- l = Puppet::Util::Pidlock.new(@workdir + '/stale_lock')
80
-
81
- # locked? should clear the lockfile
82
- File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
83
- assert File.exists?(l.lockfile)
84
- assert !l.locked?
85
- assert !File.exists?(l.lockfile)
86
-
87
- # lock should replace the lockfile with our own
88
- File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
89
- assert File.exists?(l.lockfile)
90
- assert l.lock
91
- assert l.locked?
92
- assert l.mine?
93
-
94
- # unlock should fail, and should *not* molest the existing lockfile,
95
- # despite it being stale
96
- File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
97
- assert File.exists?(l.lockfile)
98
- assert !l.unlock
99
- assert File.exists?(l.lockfile)
100
- end
101
-
102
- def test_40_not_locked_at_all
103
- l = Puppet::Util::Pidlock.new(@workdir + '/not_locked')
104
-
105
- assert !l.locked?
106
- # We can't unlock if we don't hold the lock
107
- assert !l.unlock
108
- end
109
-
110
- def test_50_anonymous_lock
111
- l = Puppet::Util::Pidlock.new(@workdir + '/anonymous_lock')
112
-
113
- assert !l.locked?
114
- assert l.lock(:anonymous => true)
115
- assert l.locked?
116
- assert l.anonymous?
117
- assert !l.mine?
118
- assert "", File.read(l.lockfile)
119
- assert !l.unlock
120
- assert l.locked?
121
- assert l.anonymous?
122
- assert l.unlock(:anonymous => true)
123
- assert !File.exists?(l.lockfile)
124
- end
10
+ include PuppetTest
11
+
12
+ def setup
13
+ super
14
+ @workdir = tstdir
15
+ end
16
+
17
+ def teardown
18
+ super
19
+ FileUtils.rm_rf(@workdir)
20
+ end
21
+
22
+ def test_00_basic_create
23
+ l = nil
24
+ assert_nothing_raised { l = Puppet::Util::Pidlock.new(@workdir + '/nothingmuch') }
25
+
26
+ assert_equal Puppet::Util::Pidlock, l.class
27
+
28
+ assert_equal @workdir + '/nothingmuch', l.lockfile
29
+ end
30
+
31
+ def test_10_uncontended_lock
32
+ l = Puppet::Util::Pidlock.new(@workdir + '/test_lock')
33
+
34
+ assert !l.locked?
35
+ assert !l.mine?
36
+ assert l.lock
37
+ assert l.locked?
38
+ assert l.mine?
39
+ assert !l.anonymous?
40
+ # It's OK to call lock multiple times
41
+ assert l.lock
42
+ assert l.unlock
43
+ assert !l.locked?
44
+ assert !l.mine?
45
+ end
46
+
47
+ def test_20_someone_elses_lock
48
+ childpid = nil
49
+ l = Puppet::Util::Pidlock.new(@workdir + '/someone_elses_lock')
50
+
51
+ # First, we need a PID that's guaranteed to be (a) used, (b) someone
52
+ # else's, and (c) around for the life of this test.
53
+ childpid = fork { loop do; sleep 10; end }
54
+
55
+ File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
56
+
57
+ assert l.locked?
58
+ assert !l.mine?
59
+ assert !l.lock
60
+ assert l.locked?
61
+ assert !l.mine?
62
+ assert !l.unlock
63
+ assert l.locked?
64
+ assert !l.mine?
65
+ ensure
66
+ Process.kill("KILL", childpid) unless childpid.nil?
67
+ end
68
+
69
+ def test_30_stale_lock
70
+ # This is a bit hard to guarantee, but we need a PID that is definitely
71
+ # unused, and will stay so for the the life of this test. Our best
72
+ # bet is to create a process, get it's PID, let it die, and *then*
73
+ # lock on it.
74
+ childpid = fork { exit }
75
+
76
+ # Now we can't continue until we're sure that the PID is dead
77
+ Process.wait(childpid)
78
+
79
+ l = Puppet::Util::Pidlock.new(@workdir + '/stale_lock')
80
+
81
+ # locked? should clear the lockfile
82
+ File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
83
+ assert File.exists?(l.lockfile)
84
+ assert !l.locked?
85
+ assert !File.exists?(l.lockfile)
86
+
87
+ # lock should replace the lockfile with our own
88
+ File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
89
+ assert File.exists?(l.lockfile)
90
+ assert l.lock
91
+ assert l.locked?
92
+ assert l.mine?
93
+
94
+ # unlock should fail, and should *not* molest the existing lockfile,
95
+ # despite it being stale
96
+ File.open(l.lockfile, 'w') { |fd| fd.write(childpid) }
97
+ assert File.exists?(l.lockfile)
98
+ assert !l.unlock
99
+ assert File.exists?(l.lockfile)
100
+ end
101
+
102
+ def test_40_not_locked_at_all
103
+ l = Puppet::Util::Pidlock.new(@workdir + '/not_locked')
104
+
105
+ assert !l.locked?
106
+ # We can't unlock if we don't hold the lock
107
+ assert !l.unlock
108
+ end
109
+
110
+ def test_50_anonymous_lock
111
+ l = Puppet::Util::Pidlock.new(@workdir + '/anonymous_lock')
112
+
113
+ assert !l.locked?
114
+ assert l.lock(:anonymous => true)
115
+ assert l.locked?
116
+ assert l.anonymous?
117
+ assert !l.mine?
118
+ assert "", File.read(l.lockfile)
119
+ assert !l.unlock
120
+ assert l.locked?
121
+ assert l.anonymous?
122
+ assert l.unlock(:anonymous => true)
123
+ assert !File.exists?(l.lockfile)
124
+ end
125
125
  end
126
-
126
+
@@ -8,10 +8,10 @@ require 'puppet/util/settings'
8
8
  require 'puppettest/parsertesting'
9
9
 
10
10
  class TestSettings < Test::Unit::TestCase
11
- include PuppetTest
12
- include PuppetTest::ParserTesting
13
- CElement = Puppet::Util::Settings::CElement
14
- CBoolean = Puppet::Util::Settings::CBoolean
11
+ include PuppetTest
12
+ include PuppetTest::ParserTesting
13
+ Setting = Puppet::Util::Settings::Setting
14
+ BooleanSetting = Puppet::Util::Settings::BooleanSetting
15
15
 
16
16
  def setup
17
17
  super
@@ -42,23 +42,6 @@ class TestSettings < Test::Unit::TestCase
42
42
  assert(count > 0, "Found no users")
43
43
  end
44
44
 
45
- def test_to_transportable
46
- set_configs
47
- trans = nil
48
- assert_nothing_raised("Could not convert to a transportable") {
49
- trans = @config.to_transportable
50
- }
51
-
52
- comp = nil
53
- assert_nothing_raised("Could not convert transportable to component") {
54
- comp = trans.to_type
55
- }
56
-
57
- assert_nothing_raised("Could not retrieve transported config") {
58
- comp.retrieve
59
- }
60
- end
61
-
62
45
  def test_to_config
63
46
  set_configs
64
47
 
@@ -83,8 +66,10 @@ class TestSettings < Test::Unit::TestCase
83
66
  end
84
67
  }
85
68
 
69
+ newc.setdefaults :section, :config => [newfile, "eh"]
70
+
86
71
  assert_nothing_raised("Could not parse generated configuration") {
87
- newc.parse(newfile)
72
+ newc.parse
88
73
  }
89
74
 
90
75
  @config.each do |name, object|
@@ -221,8 +206,6 @@ yay = /a/path
221
206
  file = tempfile()
222
207
  File.open(file, "w") { |f| f.puts text }
223
208
 
224
- @config.expects(:settimer)
225
-
226
209
  result = nil
227
210
  assert_nothing_raised {
228
211
  result = @config.send(:parse_file, file)
@@ -256,214 +239,6 @@ yay = /a/path
256
239
  end
257
240
  end
258
241
 
259
- def test_old_parse
260
- text = %{
261
- one = this is a test
262
- two = another test
263
- owner = root
264
- group = root
265
- yay = /a/path
266
-
267
- [section1]
268
- attr = value
269
- owner = puppet
270
- group = puppet
271
- attrdir = /some/dir
272
- attr3 = $attrdir/other
273
- }
274
-
275
- file = tempfile()
276
- File.open(file, "w") { |f| f.puts text }
277
-
278
- assert_nothing_raised {
279
- @config.setdefaults("puppet",
280
- :one => ["a", "one"],
281
- :two => ["a", "two"],
282
- :yay => ["/default/path", "boo"],
283
- :mkusers => [true, "uh, yeah"]
284
- )
285
- }
286
-
287
- assert_nothing_raised {
288
- @config.setdefaults("section1",
289
- :attr => ["a", "one"],
290
- :attrdir => ["/another/dir", "two"],
291
- :attr3 => ["$attrdir/maybe", "boo"]
292
- )
293
- }
294
-
295
- assert_nothing_raised {
296
- @config.old_parse(file)
297
- }
298
-
299
- assert_equal("value", @config[:attr])
300
- assert_equal("/some/dir", @config[:attrdir])
301
- assert_equal(:directory, @config.element(:attrdir).type)
302
- assert_equal("/some/dir/other", @config[:attr3])
303
-
304
- elem = nil
305
- assert_nothing_raised {
306
- elem = @config.element(:attr3)
307
- }
308
-
309
- assert(elem)
310
- assert_equal("puppet", elem.owner)
311
-
312
- config = nil
313
- assert_nothing_raised {
314
- config = @config.to_config
315
- }
316
-
317
- assert_nothing_raised("Could not create transportable config") {
318
- @config.to_transportable
319
- }
320
- end
321
-
322
- def test_parse
323
- result = {
324
- :main => {:main => "main", :bad => "invalid", :cliparam => "reset"},
325
- :puppet => {:other => "puppet", :cliparam => "reset"},
326
- :puppetd => {:other => "puppetd", :cliparam => "reset"}
327
- }
328
- # Set our defaults, so they're valid. Don't define 'bad', since we want to test for failures.
329
- @config.setdefaults(:main,
330
- :main => ["whatever", "a"],
331
- :cliparam => ["default", "y"],
332
- :other => ["a", "b"],
333
- :name => ["puppet", "b"] # our default name
334
- )
335
- @config.setdefaults(:other,
336
- :one => ["whatever", "a"],
337
- :two => ["default", "y"],
338
- :apple => ["a", "b"],
339
- :shoe => ["puppet", "b"] # our default name
340
- )
341
- @config.handlearg("--cliparam", "changed")
342
- @config.stubs(:parse_file).returns(result)
343
-
344
- # First do it with our name being 'puppet'
345
- assert_nothing_raised("Could not handle parse results") do
346
- @config.parse(tempfile)
347
- end
348
-
349
- assert_equal(:puppet, @config.name, "Did not get correct name")
350
- assert_equal("main", @config[:main], "Did not get main value")
351
- assert_equal("puppet", @config[:other], "Did not get name value")
352
- assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
353
-
354
- # Now switch names and make sure the parsing switches, too.
355
- @config.clear(true)
356
- assert_nothing_raised("Could not handle parse results") do
357
- @config.parse(tempfile)
358
- end
359
- @config[:name] = :puppetd
360
-
361
- assert_equal(:puppetd, @config.name, "Did not get correct name")
362
- assert_equal("main", @config[:main], "Did not get main value")
363
- assert_equal("puppetd", @config[:other], "Did not get name value")
364
- assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
365
- end
366
-
367
- # Make sure we can extract file options correctly.
368
- def test_parsing_file_options
369
- @config.setdefaults(:whev,
370
- :file => {
371
- :desc => "whev",
372
- :default => "/default",
373
- :owner => "me",
374
- :group => "me",
375
- :mode => "755"
376
- }
377
- )
378
-
379
- file = tempfile
380
- count = 0
381
-
382
- {
383
- :pass => {
384
- " {owner = you}" => {:owner => "you"},
385
- " {owner = you, group = you}" => {:owner => "you", :group => "you"},
386
- " {owner = you, group = you, mode = 755}" => {:owner => "you", :group => "you", :mode => "755"},
387
- " { owner = you, group = you } " => {:owner => "you", :group => "you"},
388
- "{owner=you,group=you} " => {:owner => "you", :group => "you"},
389
- "{owner=you,} " => {:owner => "you"}
390
- },
391
- :fail => [
392
- %{{owner = you group = you}},
393
- %{{owner => you, group => you}},
394
- %{{user => you}},
395
- %{{random => you}},
396
- %{{mode => you}}, # make sure modes are numbers
397
- %{{owner => you}}
398
- ]
399
- }.each do |type, list|
400
- count += 1
401
- list.each do |value|
402
- if type == :pass
403
- value, should = value[0], value[1]
404
- end
405
- path = "/other%s" % count
406
- # Write our file out
407
- File.open(file, "w") do |f|
408
- f.puts %{[main]\nfile = #{path}#{value}}
409
- end
410
-
411
- if type == :fail
412
- assert_raise(ArgumentError, "Did not fail on %s" % value.inspect) do
413
- @config.send(:parse_file, file)
414
- end
415
- else
416
- result = nil
417
- assert_nothing_raised("Failed to parse %s" % value.inspect) do
418
- result = @config.send(:parse_file, file)
419
- end
420
- assert_equal(should, result[:main][:_meta][:file], "Got incorrect return for %s" % value.inspect)
421
- assert_equal(path, result[:main][:file], "Got incorrect value for %s" % value.inspect)
422
- end
423
- end
424
- end
425
- end
426
-
427
- # Make sure file options returned from parse_file are handled correctly.
428
- def test_parsed_file_options
429
- @config.setdefaults(:whev,
430
- :file => {
431
- :desc => "whev",
432
- :default => "/default",
433
- :owner => "me",
434
- :group => "me",
435
- :mode => "755"
436
- }
437
- )
438
-
439
- result = {
440
- :main => {
441
- :file => "/other",
442
- :_meta => {
443
- :file => {
444
- :owner => "you",
445
- :group => "you",
446
- :mode => "644"
447
- }
448
- }
449
- }
450
- }
451
-
452
- @config.expects(:parse_file).returns(result)
453
-
454
- assert_nothing_raised("Could not handle file options") do
455
- @config.parse("/whatever")
456
- end
457
-
458
- # Get the actual object, so we can verify metadata
459
- file = @config.element(:file)
460
-
461
- assert_equal("/other", @config[:file], "Did not get correct value")
462
- assert_equal("you", file.owner, "Did not pass on user")
463
- assert_equal("you", file.group, "Did not pass on group")
464
- assert_equal("644", file.mode, "Did not pass on mode")
465
- end
466
-
467
242
  def test_arghandling
468
243
  c = mkconfig
469
244
 
@@ -548,91 +323,6 @@ yay = /a/path
548
323
  assert_equal(should, result, "Add args functional test failed")
549
324
  end
550
325
 
551
- def test_usesection
552
- # We want to make sure that config processes do not result in graphing.
553
- Puppet[:graphdir] = tempfile()
554
- Puppet[:graph] = true
555
- Dir.mkdir(Puppet[:graphdir])
556
- c = mkconfig
557
-
558
- dir = tempfile()
559
- file = "$mydir/myfile"
560
- realfile = File.join(dir, "myfile")
561
- otherfile = File.join(dir, "otherfile")
562
- section = "testing"
563
- assert_nothing_raised {
564
- @config.setdefaults(section,
565
- :mydir => [dir, "A dir arg"],
566
- :otherfile => {
567
- :default => "$mydir/otherfile",
568
- :create => true,
569
- :desc => "A file arg"
570
- },
571
- :myfile => [file, "A file arg"]
572
- )
573
- }
574
-
575
- assert_nothing_raised("Could not use a section") {
576
- @config.use(section)
577
- }
578
-
579
- assert_nothing_raised("Could not reuse a section") {
580
- @config.use(section)
581
- }
582
-
583
- # Make sure it didn't graph anything, which is the only real way
584
- # to test that the transaction was marked as a configurator.
585
- assert(Dir.entries(Puppet[:graphdir]).reject { |f| f =~ /^\.\.?$/ }.empty?, "Graphed config process")
586
-
587
- assert(FileTest.directory?(dir), "Did not create directory")
588
- assert(FileTest.exists?(otherfile), "Did not create file")
589
- assert(!FileTest.exists?(realfile), "Created file")
590
- end
591
-
592
- def test_setdefaultsarray
593
- c = mkconfig
594
-
595
- assert_nothing_raised {
596
- @config.setdefaults("yay",
597
- :a => [false, "some value"],
598
- :b => ["/my/file", "a file"]
599
- )
600
- }
601
-
602
- assert_equal(false, @config[:a], "Values are not equal")
603
- assert_equal("/my/file", @config[:b], "Values are not equal")
604
- end
605
-
606
- def test_setdefaultshash
607
- c = mkconfig
608
-
609
- assert_nothing_raised {
610
- @config.setdefaults("yay",
611
- :a => {:default => false, :desc => "some value"},
612
- :b => {:default => "/my/file", :desc => "a file"}
613
- )
614
- }
615
-
616
- assert_equal(false, @config[:a], "Values are not equal")
617
- assert_equal("/my/file", @config[:b], "Values are not equal")
618
- end
619
-
620
- def test_notmanagingdev
621
- c = mkconfig
622
- path = "/dev/testing"
623
- @config.setdefaults(:test,
624
- :file => {
625
- :default => path,
626
- :mode => 0640,
627
- :desc => 'yay'
628
- }
629
- )
630
-
631
- config = @config.to_configuration
632
-
633
- assert(! config.resource(:file, "/dev/testing"), "Created dev file")
634
- end
635
-
636
326
  def test_groupsetting
637
327
  cfile = tempfile()
638
328
 
@@ -645,10 +335,10 @@ yay = /a/path
645
335
  end
646
336
 
647
337
  config = mkconfig
648
- config.setdefaults(Puppet[:name], :group => ["puppet", "a group"])
338
+ config.setdefaults(Puppet[:name], :group => ["puppet", "a group"], :config => [cfile, "eh"])
649
339
 
650
340
  assert_nothing_raised {
651
- config.parse(cfile)
341
+ config.parse
652
342
  }
653
343
 
654
344
  assert_equal(group, config[:group], "Group did not take")
@@ -658,7 +348,7 @@ yay = /a/path
658
348
  # already stored in a config
659
349
  def test_writingfiles
660
350
  File.umask(0022)
661
-
351
+
662
352
  path = tempfile()
663
353
  mode = 0644
664
354
 
@@ -684,12 +374,12 @@ yay = /a/path
684
374
 
685
375
  assert_equal(mode, filemode(path), "Modes are not equal")
686
376
 
687
- # OS X is broken in how it chgrps files
377
+ # OS X is broken in how it chgrps files
688
378
  if Puppet::Util::SUIDManager.uid == 0
689
379
  assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
690
380
 
691
381
  case Facter["operatingsystem"].value
692
- when /BSD/, "Darwin": # nothing
382
+ when /BSD/, "Darwin" # nothing
693
383
  else
694
384
  assert_equal(group.gid, File.stat(path).gid, "GIDS are not equal")
695
385
  end
@@ -698,7 +388,7 @@ yay = /a/path
698
388
 
699
389
  def test_mkdir
700
390
  File.umask(0022)
701
-
391
+
702
392
  path = tempfile()
703
393
  mode = 0755
704
394
 
@@ -723,12 +413,12 @@ yay = /a/path
723
413
  assert_equal(mode, filemode(path), "Modes are not equal")
724
414
 
725
415
 
726
- # OS X and *BSD is broken in how it chgrps files
416
+ # OS X and *BSD is broken in how it chgrps files
727
417
  if Puppet::Util::SUIDManager.uid == 0
728
418
  assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
729
419
 
730
420
  case Facter["operatingsystem"].value
731
- when /BSD/, "Darwin": # nothing
421
+ when /BSD/, "Darwin" # nothing
732
422
  else
733
423
  assert_equal(group.gid, File.stat(path).gid, "GIDS are not equal")
734
424
  end
@@ -758,7 +448,7 @@ yay = /a/path
758
448
 
759
449
  def test_configs_replace_in_url
760
450
  config = mkconfig
761
-
451
+
762
452
  config.setdefaults(:mysection, :name => ["yayness", "yay"])
763
453
  config.setdefaults(:mysection, :url => ["http://$name/rahness", "yay"])
764
454
 
@@ -772,11 +462,9 @@ yay = /a/path
772
462
  end
773
463
 
774
464
  def test_correct_type_assumptions
775
- config = mkconfig
776
-
777
- file = Puppet::Util::Settings::CFile
778
- element = Puppet::Util::Settings::CElement
779
- bool = Puppet::Util::Settings::CBoolean
465
+ file = Puppet::Util::Settings::FileSetting
466
+ element = Puppet::Util::Settings::Setting
467
+ bool = Puppet::Util::Settings::BooleanSetting
780
468
 
781
469
  # We have to keep these ordered, unfortunately.
782
470
  [
@@ -789,56 +477,19 @@ yay = /a/path
789
477
  ["$server/yayness", file],
790
478
  ["$server/yayness.conf", file]
791
479
  ].each do |ary|
480
+ config = mkconfig
792
481
  value, type = ary
482
+ name = value.to_s + "_setting"
793
483
  assert_nothing_raised {
794
- config.setdefaults(:yayness, value => { :default => value, :desc => name.to_s})
484
+ config.setdefaults(:yayness, name => { :default => value, :desc => name.to_s})
795
485
  }
796
- elem = config.element(value)
486
+ elem = config.element(name)
797
487
 
798
488
  assert_instance_of(type, elem,
799
489
  "%s got created as wrong type" % value.inspect)
800
490
  end
801
491
  end
802
492
 
803
- # Make sure we correctly reparse our config files but don't lose CLI values.
804
- def test_reparse
805
- Puppet[:filetimeout] = 0
806
-
807
- config = mkconfig()
808
- config.setdefaults(:mysection, :default => ["default", "yay"])
809
- config.setdefaults(:mysection, :clichange => ["clichange", "yay"])
810
- config.setdefaults(:mysection, :filechange => ["filechange", "yay"])
811
-
812
- config.stubs(:read_file).returns(%{[main]\nfilechange = filevalue\n})
813
- file = mock 'file'
814
- file.stubs(:changed?).returns(true)
815
-
816
- assert_nothing_raised {
817
- config.parse(file)
818
- }
819
-
820
- # Set another "from the cli"
821
- assert_nothing_raised {
822
- config.handlearg("clichange", "clivalue")
823
- }
824
-
825
- # And leave the other unset
826
- assert_equal("default", config[:default])
827
- assert_equal("filevalue", config[:filechange], "Did not get value from file")
828
- assert_equal("clivalue", config[:clichange])
829
-
830
- # Now reparse
831
- config.stubs(:read_file).returns(%{[main]\nfilechange = newvalue\n})
832
- file = mock 'file'
833
- file.stubs(:changed?).returns(true)
834
- config.parse(file)
835
-
836
- # And check all of the values
837
- assert_equal("default", config[:default])
838
- assert_equal("clivalue", config[:clichange])
839
- assert_equal("newvalue", config[:filechange])
840
- end
841
-
842
493
  def test_parse_removes_quotes
843
494
  config = mkconfig()
844
495
  config.setdefaults(:mysection, :singleq => ["single", "yay"])
@@ -857,8 +508,10 @@ yay = /a/path
857
508
  }
858
509
  }
859
510
 
511
+ config.setdefaults(:mysection, :config => [file, "eh"])
512
+
860
513
  assert_nothing_raised {
861
- config.parse(file)
514
+ config.parse
862
515
  }
863
516
 
864
517
  %w{singleq doubleq none}.each do |p|
@@ -867,49 +520,6 @@ yay = /a/path
867
520
  assert_equal('mid"quote', config["middle"], "middle did not match")
868
521
  end
869
522
 
870
- def test_timer
871
- Puppet[:filetimeout] = 0.1
872
- origpath = tempfile()
873
- config = mkconfig()
874
- config.setdefaults(:mysection, :paramdir => [tempfile(), "yay"])
875
-
876
- file = tempfile()
877
- # Set one parameter in the file
878
- File.open(file, "w") { |f|
879
- f.puts %{[main]\n
880
- paramdir = #{origpath}
881
- }
882
- }
883
-
884
- assert_nothing_raised {
885
- config.parse(file)
886
- config.use(:mysection)
887
- }
888
-
889
- assert(FileTest.directory?(origpath), "dir did not get created")
890
-
891
- # Now start the timer
892
- assert_nothing_raised {
893
- EventLoop.current.monitor_timer config.timer
894
- }
895
-
896
- newpath = tempfile()
897
-
898
- File.open(file, "w") { |f|
899
- f.puts %{[main]\n
900
- paramdir = #{newpath}
901
- }
902
- }
903
- config.file.send("tstamp=".intern, Time.now - 50)
904
- sleep 1
905
-
906
- assert_equal(newpath, config["paramdir"],
907
- "File did not get reparsed from timer")
908
- assert(FileTest.directory?(newpath), "new dir did not get created")
909
-
910
-
911
- end
912
-
913
523
  # Test that config parameters correctly call passed-in blocks when the value
914
524
  # is set.
915
525
  def test_paramblocks
@@ -981,7 +591,7 @@ yay = /a/path
981
591
  # Now enable it so they'll be added
982
592
  config[:mkusers] = true
983
593
 
984
- comp = config.to_configuration
594
+ comp = config.to_catalog
985
595
 
986
596
  comp.vertices.find_all { |r| r.class.name == :user }.each do |u|
987
597
  assert(u.name != "root", "Tried to manage root user")
@@ -1000,16 +610,16 @@ yay = /a/path
1000
610
  # assert(! yay.find { |o| o.class.name == :group and o.name == "root" },
1001
611
  # "Found root group")
1002
612
  end
1003
-
613
+
1004
614
  # #415
1005
615
  def test_remove_trailing_spaces
1006
616
  config = mkconfig()
1007
- config.setdefaults(:yay, :rah => ["testing", "a desc"])
1008
-
1009
617
  file = tempfile()
1010
618
  File.open(file, "w") { |f| f.puts "rah = something " }
1011
-
1012
- assert_nothing_raised { config.parse(file) }
619
+
620
+ config.setdefaults(:yay, :config => [file, "eh"], :rah => ["testing", "a desc"])
621
+
622
+ assert_nothing_raised { config.parse }
1013
623
  assert_equal("something", config[:rah], "did not remove trailing whitespace in parsing")
1014
624
  end
1015
625
 
@@ -1017,7 +627,6 @@ yay = /a/path
1017
627
  def test_parsing_unknown_variables
1018
628
  logstore()
1019
629
  config = mkconfig()
1020
- config.setdefaults(:mysection, :one => ["yay", "yay"])
1021
630
  file = tempfile()
1022
631
  File.open(file, "w") { |f|
1023
632
  f.puts %{[main]\n
@@ -1026,8 +635,10 @@ yay = /a/path
1026
635
  }
1027
636
  }
1028
637
 
638
+ config.setdefaults(:mysection, :config => [file, "eh"], :one => ["yay", "yay"])
639
+
1029
640
  assert_nothing_raised("Unknown parameter threw an exception") do
1030
- config.parse(file)
641
+ config.parse
1031
642
  end
1032
643
  end
1033
644
 
@@ -1058,12 +669,12 @@ yay = /a/path
1058
669
  def test_celement_short_name
1059
670
  element = nil
1060
671
  assert_nothing_raised("Could not create celement") do
1061
- element = CElement.new :short => "n", :desc => "anything", :settings => Puppet::Util::Settings.new
672
+ element = Setting.new :short => "n", :desc => "anything", :settings => Puppet::Util::Settings.new
1062
673
  end
1063
674
  assert_equal("n", element.short, "Short value is not retained")
1064
675
 
1065
676
  assert_raise(ArgumentError,"Allowed multicharactered short names.") do
1066
- element = CElement.new :short => "no", :desc => "anything", :settings => Puppet::Util::Settings.new
677
+ element = Setting.new :short => "no", :desc => "anything", :settings => Puppet::Util::Settings.new
1067
678
  end
1068
679
  end
1069
680
 
@@ -1088,13 +699,13 @@ yay = /a/path
1088
699
 
1089
700
  # Tell getopt which arguments are valid
1090
701
  def test_get_getopt_args
1091
- element = CElement.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
702
+ element = Setting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
1092
703
  assert_equal([["--foo", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
1093
-
704
+
1094
705
  element.short = "n"
1095
706
  assert_equal([["--foo", "-n", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
1096
707
 
1097
- element = CBoolean.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
708
+ element = BooleanSetting.new :name => "foo", :desc => "anything", :settings => Puppet::Util::Settings.new
1098
709
  assert_equal([["--foo", GetoptLong::NO_ARGUMENT], ["--no-foo", GetoptLong::NO_ARGUMENT]],
1099
710
  element.getopt_args, "Did not produce appropriate getopt args")
1100
711