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
@@ -11,7 +11,7 @@ class TestPuppetDefaults < Test::Unit::TestCase
11
11
  @@dirs = %w{rrddir confdir vardir logdir statedir}
12
12
  @@files = %w{statefile manifest masterlog}
13
13
  @@normals = %w{puppetport masterport server}
14
- @@booleans = %w{rrdgraph noop}
14
+ @@booleans = %w{noop}
15
15
 
16
16
  def testVersion
17
17
  assert( Puppet.version =~ /^[0-9]+(\.[0-9]+)*/, "got invalid version number %s" % Puppet.version )
@@ -84,7 +84,7 @@ class TestSUIDManager < Test::Unit::TestCase
84
84
  ).returns('output')
85
85
 
86
86
 
87
- output = Puppet::Util::SUIDManager.run_and_capture 'yay',
87
+ output = Puppet::Util::SUIDManager.run_and_capture 'yay',
88
88
  @user.uid,
89
89
  @user.gid
90
90
 
@@ -8,10 +8,10 @@ require 'puppettest'
8
8
  require 'puppettest/railstesting'
9
9
 
10
10
  # Don't do any tests w/out this class
11
- if defined? ActiveRecord::Base
11
+ if defined? ::ActiveRecord::Base
12
12
  class TestRailsParameter < Test::Unit::TestCase
13
13
  include PuppetTest::RailsTesting
14
-
14
+
15
15
  def params
16
16
  {"myname" => "myval", "multiple" => %w{one two three}}
17
17
  end
@@ -27,9 +27,9 @@ class TestRailsParameter < Test::Unit::TestCase
27
27
  host = Puppet::Rails::Host.new(:name => "myhost")
28
28
 
29
29
  host.save
30
-
30
+
31
31
  resource = host.resources.create(
32
- :title => "/tmp/to_resource",
32
+ :title => "/tmp/to_resource",
33
33
  :restype => "file",
34
34
  :exported => true)
35
35
 
@@ -29,7 +29,7 @@ class TestTypeAttributes < Test::Unit::TestCase
29
29
  # and a param
30
30
  type.newparam(:param)
31
31
 
32
- inst = type.create(:name => "yay")
32
+ inst = type.new(:name => "yay")
33
33
 
34
34
  # Make sure we can set each of them, including a metaparam
35
35
  [:param, :property, :noop].each do |param|
@@ -66,7 +66,7 @@ class TestTypeAttributes < Test::Unit::TestCase
66
66
  type.newproperty(prop) {}
67
67
  end
68
68
 
69
- inst = type.create(:name => "yay")
69
+ inst = type.new(:name => "yay")
70
70
 
71
71
  inst[:one] = "boo"
72
72
  one = inst.property(:one)
@@ -88,7 +88,7 @@ class TestTypeAttributes < Test::Unit::TestCase
88
88
  @num ||= 0
89
89
  @num += 1
90
90
  name = "name%s" % @num
91
- inst = type.create(:name => name)
91
+ inst = type.new(:name => name)
92
92
  [:meta, :param, :prop].each do |name|
93
93
  klass = type.attrclass(name)
94
94
  assert(klass, "did not get class for %s" % name)
@@ -139,47 +139,12 @@ class TestTypeAttributes < Test::Unit::TestCase
139
139
  end
140
140
  end
141
141
 
142
- def test_setdefaults
143
- type = mktype
144
- type.newparam(:name) {}
145
-
146
- # Make one of each param type
147
- {
148
- :meta2 => :newmetaparam, :param2 => :newparam, :prop2 => :newproperty
149
- }.each do |name, method|
150
- assert_nothing_raised("Could not make %s of type %s" % [name, method]) do
151
- type.send(method, name) do
152
- defaultto "testing"
153
- end
154
- end
155
- end
156
-
157
- inst = type.create(:name => 'yay')
158
- assert_nothing_raised do
159
- inst.setdefaults
160
- end
161
-
162
- [:meta2, :param2, :prop2].each do |name|
163
- assert(inst.value(name), "did not get a value for %s" % name)
164
- end
165
-
166
- # Try a default of "false"
167
- type.newparam(:falsetest) do
168
- defaultto false
169
- end
170
-
171
- assert_nothing_raised do
172
- inst.setdefaults
173
- end
174
- assert_equal(false, inst[:falsetest], "false default was not set")
175
- end
176
-
177
142
  def test_alias_parameter
178
143
  type = mktype
179
144
  type.newparam(:name) {}
180
145
  type.newparam(:one) {}
181
146
  type.newproperty(:two) {}
182
-
147
+
183
148
  aliases = {
184
149
  :three => :one,
185
150
  :four => :two
@@ -197,7 +162,7 @@ class TestTypeAttributes < Test::Unit::TestCase
197
162
 
198
163
  assert_nil(type.attr_alias(:name), "got invalid alias info for name")
199
164
 
200
- inst = type.create(:name => "my name")
165
+ inst = type.new(:name => "my name")
201
166
  assert(inst, "could not create instance")
202
167
 
203
168
  aliases.each do |new, old|
@@ -207,7 +172,7 @@ class TestTypeAttributes < Test::Unit::TestCase
207
172
  end
208
173
 
209
174
  case old
210
- when :one: # param
175
+ when :one # param
211
176
  assert_equal(val, inst[new],
212
177
  "Incorrect alias value for %s in []" % new)
213
178
  else
@@ -219,27 +184,6 @@ class TestTypeAttributes < Test::Unit::TestCase
219
184
  end
220
185
  end
221
186
 
222
- # Make sure eachattr is called in the parameter order.
223
- def test_eachattr
224
- type = mktype
225
- name = type.newparam(:name) {}
226
- one = type.newparam(:one) {}
227
- two = type.newproperty(:two) {}
228
- type.provide(:testing) {}
229
- provider = type.attrclass(:provider)
230
- should = [[name, :param], [provider, :param], [two, :property], [one, :param]]
231
- assert_nothing_raised do
232
- result = nil
233
- type.eachattr do |obj, name|
234
- result = [obj, name]
235
- shouldary = should.shift
236
- assert_equal(shouldary, result, "Did not get correct parameter")
237
- break if should.empty?
238
- end
239
- end
240
- assert(should.empty?, "Did not get all of the parameters.")
241
- end
242
-
243
187
  # Make sure newattr handles required features correctly.
244
188
  def test_newattr_and_required_features
245
189
  # Make a type with some features
@@ -262,16 +206,16 @@ class TestTypeAttributes < Test::Unit::TestCase
262
206
 
263
207
  # Now make sure that we get warnings and no properties in those cases where our providers do not support the features requested
264
208
  [nope, maybe, yep].each_with_index do |prov, i|
265
- resource = type.create(:provider => prov.name, :name => "test%s" % i, :none => "a", :one => "b", :two => "c")
209
+ resource = type.new(:provider => prov.name, :name => "test%s" % i, :none => "a", :one => "b", :two => "c")
266
210
 
267
211
  case prov.name
268
- when :nope:
212
+ when :nope
269
213
  yes = [:none]
270
214
  no = [:one, :two]
271
- when :maybe:
215
+ when :maybe
272
216
  yes = [:none, :one]
273
217
  no = [:two]
274
- when :yep:
218
+ when :yep
275
219
  yes = [:none, :one, :two]
276
220
  no = []
277
221
  end
@@ -292,7 +236,7 @@ class TestTypeAttributes < Test::Unit::TestCase
292
236
  file = Puppet::Type.type(:file)
293
237
  klass = file.attrclass(:check)
294
238
 
295
- resource = file.create(:path => tempfile)
239
+ resource = file.new(:path => tempfile)
296
240
  inst = klass.new(:resource => resource)
297
241
 
298
242
  {:property => [:owner, :group], :parameter => [:ignore, :recurse], :metaparam => [:require, :subscribe]}.each do |attrtype, attrs|
@@ -343,7 +287,7 @@ class TestTypeAttributes < Test::Unit::TestCase
343
287
  end
344
288
  cleanup { Puppet::Type.rmtype(:unsupported) }
345
289
 
346
- obj = type.create(:name => "test", :check => :yep)
290
+ obj = type.new(:name => "test", :check => :yep)
347
291
  obj.expects(:newattr).with(:nope).never
348
292
  obj[:check] = :all
349
293
  end
@@ -64,9 +64,9 @@ class TestTypeInstances < Test::Unit::TestCase
64
64
 
65
65
  # Now make a couple of instances, so we know we correctly match instead of always
66
66
  # trying to create new ones.
67
- one = @type.create(:name => :one, :ensure => :present)
68
- three = @type.create(:name => :three, :ensure => :present, :provider => :sub)
69
- five = @type.create(:name => :five, :ensure => :present, :provider => :yep)
67
+ one = @type.new(:name => :one, :ensure => :present)
68
+ three = @type.new(:name => :three, :ensure => :present, :provider => :sub)
69
+ five = @type.new(:name => :five, :ensure => :present, :provider => :yep)
70
70
 
71
71
  result = nil
72
72
  assert_nothing_raised("Could not get instance list") do
@@ -89,21 +89,5 @@ class TestTypeInstances < Test::Unit::TestCase
89
89
  # Now make sure the resources have an 'ensure' property to go with the value in the provider
90
90
  assert(resources[:one].send(:instance_variable_get, "@parameters").include?(:ensure), "Did not create ensure property")
91
91
  end
92
-
93
- # Make sure resources are entirely deleted.
94
- def test_delete
95
- aliases = %w{one}
96
- catalog = mk_catalog
97
- obj = @type.create(:name => "testing", :alias => "two", :catalog => catalog)
98
- aliases << "two"
99
-
100
- @type.alias("two", obj)
101
-
102
- obj.remove
103
- assert_nil(@type["testing"], "Object was not removed from objects hash")
104
- assert_nil(@type["one"], "Object's alias was not removed")
105
- assert_nil(@type["two"], "Object's second alias was not removed")
106
-
107
- end
108
92
  end
109
93
 
@@ -9,19 +9,19 @@ require 'puppettest'
9
9
 
10
10
  class TestTypeManager < Test::Unit::TestCase
11
11
  include PuppetTest
12
-
12
+
13
13
  class FakeManager
14
14
  extend Puppet::MetaType::Manager
15
15
  def self.clear
16
16
  @types = {}
17
17
  end
18
18
  end
19
-
19
+
20
20
  def teardown
21
21
  super
22
22
  FakeManager.clear
23
23
  end
24
-
24
+
25
25
  # Make sure we can remove defined types
26
26
  def test_rmtype
27
27
  assert_nothing_raised {
@@ -30,22 +30,22 @@ class TestTypeManager < Test::Unit::TestCase
30
30
  end
31
31
  }
32
32
  assert(FakeManager.type(:testing), "Did not get fake type")
33
-
33
+
34
34
  assert_nothing_raised do
35
35
  FakeManager.rmtype(:testing)
36
36
  end
37
-
37
+
38
38
  assert_nil(FakeManager.type(:testing), "Type was not removed")
39
39
  assert(! defined?(FakeManager::Testing), "Constant was not removed")
40
40
  end
41
-
41
+
42
42
  def test_newtype
43
43
  assert_nothing_raised do
44
44
  FakeManager.newtype(:testing, :self_refresh => true) do
45
45
  newparam(:name, :namevar => true)
46
46
  end
47
47
  end
48
-
48
+
49
49
  test = FakeManager.type(:testing)
50
50
  assert(test, "did not get type")
51
51
  assert(test.self_refresh, "did not set attribute")
@@ -6,7 +6,7 @@ require 'puppettest'
6
6
  require 'mocha'
7
7
 
8
8
  class TestTypeProviders < Test::Unit::TestCase
9
- include PuppetTest
9
+ include PuppetTest
10
10
 
11
11
  def setup
12
12
  super
@@ -54,7 +54,7 @@ class TestTypeProviders < Test::Unit::TestCase
54
54
  # first make sure we can pass the name in
55
55
  resource = nil
56
56
  assert_nothing_raised("Could not create provider instance by name") do
57
- resource = @type.create :name => "yay", :provider => :testing
57
+ resource = @type.new :name => "yay", :provider => :testing
58
58
  end
59
59
 
60
60
  assert_instance_of(provider, resource.provider, "Did not create provider instance")
@@ -62,7 +62,7 @@ class TestTypeProviders < Test::Unit::TestCase
62
62
  # Now make sure we can pass in an instance
63
63
  provinst = provider.new(:name => "foo")
64
64
  assert_nothing_raised("Could not pass in provider instance") do
65
- resource = @type.create :name => "foo", :provider => provinst
65
+ resource = @type.new :name => "foo", :provider => provinst
66
66
  end
67
67
 
68
68
  assert_equal(provinst, resource.provider, "Did not retain provider instance")
@@ -74,11 +74,11 @@ class TestTypeProviders < Test::Unit::TestCase
74
74
  end
75
75
 
76
76
  # And make sure the provider must be a valid provider type for this resource
77
- pkgprov = Puppet::Type.type(:package).create(:name => "yayness").provider
77
+ pkgprov = Puppet::Type.type(:package).new(:name => "yayness").provider
78
78
  assert(provider, "did not get package provider")
79
79
 
80
80
  assert_raise(Puppet::Error, "Did not fail on invalid provider instance") do
81
- resource = @type.create :name => "bar", :provider => pkgprov
81
+ resource = @type.new :name => "bar", :provider => pkgprov
82
82
  end
83
83
 
84
84
  end
@@ -89,7 +89,7 @@ class TestTypeProviders < Test::Unit::TestCase
89
89
  Puppet::Type.type(:user).provider(:useradd).stubs(:suitable?).returns false
90
90
 
91
91
  assert_nothing_raised("Unsuitable providers failed at initialization") do
92
- Puppet::Type.type(:user).create :name => "luke", :ensure => :present, :provider => :useradd
92
+ Puppet::Type.type(:user).new :name => "luke", :ensure => :present, :provider => :useradd
93
93
  end
94
94
  end
95
95
 
@@ -98,7 +98,7 @@ class TestTypeProviders < Test::Unit::TestCase
98
98
  def test_unsuitable_providers_should_fail_at_evaluation
99
99
  Puppet::Type.type(:user).provider(:useradd).stubs(:suitable?).returns false
100
100
 
101
- user = Puppet::Type.type(:user).create :name => "luke", :ensure => :present, :provider => :useradd
101
+ user = Puppet::Type.type(:user).new :name => "luke", :ensure => :present, :provider => :useradd
102
102
  assert_raise(Puppet::Error, "Unsuitable provider did not fail at evaluation") do
103
103
  user.evaluate
104
104
  end
@@ -6,7 +6,7 @@ require 'puppettest'
6
6
  require 'mocha'
7
7
 
8
8
  class TestType < Test::Unit::TestCase
9
- include PuppetTest
9
+ include PuppetTest
10
10
  def test_typemethods
11
11
  Puppet::Type.eachtype { |type|
12
12
  name = nil
@@ -52,7 +52,7 @@ class TestType < Test::Unit::TestCase
52
52
  path = tempfile()
53
53
  assert_nothing_raised() {
54
54
  system("rm -f %s" % path)
55
- file = Puppet.type(:file).create(
55
+ file = Puppet::Type.type(:file).new(
56
56
  :path => path,
57
57
  :ensure => "file",
58
58
  :recurse => true,
@@ -65,10 +65,9 @@ class TestType < Test::Unit::TestCase
65
65
  assert_nothing_raised() {
66
66
  file.evaluate
67
67
  }
68
- Puppet.type(:file).clear
69
68
  assert_nothing_raised() {
70
69
  system("rm -f %s" % path)
71
- file = Puppet.type(:file).create(
70
+ file = Puppet::Type.type(:file).new(
72
71
  "path" => path,
73
72
  "ensure" => "file",
74
73
  "recurse" => true,
@@ -102,7 +101,7 @@ class TestType < Test::Unit::TestCase
102
101
  # currently groups are the only objects with the namevar as a property
103
102
  group = nil
104
103
  assert_nothing_raised {
105
- group = Puppet.type(:group).create(
104
+ group = Puppet::Type.type(:group).new(
106
105
  :name => "testing"
107
106
  )
108
107
  }
@@ -110,48 +109,8 @@ class TestType < Test::Unit::TestCase
110
109
  assert_equal("testing", group.name, "Could not retrieve name")
111
110
  end
112
111
 
113
- # Verify that values get merged correctly
114
- def test_mergepropertyvalues
115
- file = tempfile()
116
-
117
- # Create the first version
118
- assert_nothing_raised {
119
- Puppet.type(:file).create(
120
- :path => file,
121
- :owner => ["root", "bin"]
122
- )
123
- }
124
-
125
- # Make sure no other statements are allowed
126
- assert_raise(Puppet::Error) {
127
- Puppet.type(:file).create(
128
- :path => file,
129
- :group => "root"
130
- )
131
- }
132
- end
133
-
134
- def test_aliases_to_self_are_not_failures
135
- resource = Puppet.type(:file).create(
136
- :name => "/path/to/some/missing/file",
137
- :ensure => "file"
138
- )
139
- resource.stubs(:path).returns("")
140
-
141
- catalog = stub 'catalog'
142
- catalog.expects(:resource).with(:file, "/path/to/some/missing/file").returns(resource)
143
- resource.catalog = catalog
144
-
145
- # Verify our adding ourselves as an alias isn't an error.
146
- assert_nothing_raised("Could not add alias") {
147
- resource[:alias] = "/path/to/some/missing/file"
148
- }
149
-
150
- assert_equal(resource.object_id, Puppet.type(:file)["/path/to/some/missing/file"].object_id, "Could not retrieve alias to self")
151
- end
152
-
153
- def test_aliases_are_added_to_class_and_catalog
154
- resource = Puppet.type(:file).create(
112
+ def test_aliases_are_added_to_catalog
113
+ resource = Puppet::Type.type(:file).new(
155
114
  :name => "/path/to/some/missing/file",
156
115
  :ensure => "file"
157
116
  )
@@ -165,12 +124,10 @@ class TestType < Test::Unit::TestCase
165
124
  assert_nothing_raised("Could not add alias") {
166
125
  resource[:alias] = "funtest"
167
126
  }
168
-
169
- assert_equal(resource.object_id, Puppet.type(:file)["funtest"].object_id, "Could not retrieve alias")
170
127
  end
171
128
 
172
129
  def test_aliasing_fails_without_a_catalog
173
- resource = Puppet.type(:file).create(
130
+ resource = Puppet::Type.type(:file).new(
174
131
  :name => "/no/such/file",
175
132
  :ensure => "file"
176
133
  )
@@ -180,78 +137,10 @@ class TestType < Test::Unit::TestCase
180
137
  }
181
138
  end
182
139
 
183
- def test_catalogs_are_set_during_initialization_if_present_on_the_transobject
184
- trans = Puppet::TransObject.new("/path/to/some/file", :file)
185
- trans.catalog = :my_config
186
- resource = trans.to_type
187
- assert_equal(resource.catalog, trans.catalog, "Did not set catalog on initialization")
188
- end
189
-
190
- # Verify that requirements don't depend on file order
191
- def test_prereqorder
192
- one = tempfile()
193
- two = tempfile()
194
-
195
- twoobj = nil
196
- oneobj = nil
197
- assert_nothing_raised("Could not create prereq that doesn't exist yet") {
198
- twoobj = Puppet.type(:file).create(
199
- :name => two,
200
- :require => [:file, one]
201
- )
202
- }
203
-
204
- assert_nothing_raised {
205
- oneobj = Puppet.type(:file).create(
206
- :name => one
207
- )
208
- }
209
-
210
- comp = mk_catalog(twoobj, oneobj)
211
-
212
- assert_nothing_raised {
213
- comp.finalize
214
- }
215
-
216
-
217
- assert(twoobj.requires?(oneobj), "Requirement was not created")
218
- end
219
-
220
- # Verify that names are aliases, not equivalents
221
- def test_nameasalias
222
- file = nil
223
- # Create the parent dir, so we make sure autorequiring the parent dir works
224
- parentdir = tempfile()
225
- dir = Puppet.type(:file).create(
226
- :name => parentdir,
227
- :ensure => "directory"
228
- )
229
- assert_apply(dir)
230
- path = File.join(parentdir, "subdir")
231
- name = "a test file"
232
- transport = Puppet::TransObject.new(name, "file")
233
- transport[:path] = path
234
- transport[:ensure] = "file"
235
- assert_nothing_raised {
236
- file = transport.to_type
237
- }
238
-
239
- assert_equal(path, file[:path])
240
- assert_equal(name, file.title)
241
-
242
- assert_nothing_raised {
243
- file.retrieve
244
- }
245
-
246
- assert_apply(file)
247
-
248
- assert(Puppet.type(:file)[name], "Could not look up object by name")
249
- end
250
-
251
140
  def test_ensuredefault
252
141
  user = nil
253
142
  assert_nothing_raised {
254
- user = Puppet.type(:user).create(
143
+ user = Puppet::Type.type(:user).new(
255
144
  :name => "pptestAA",
256
145
  :check => [:uid]
257
146
  )
@@ -261,7 +150,7 @@ class TestType < Test::Unit::TestCase
261
150
  assert(! user.property(:ensure), "User got an ensure property")
262
151
 
263
152
  assert_nothing_raised {
264
- user = Puppet.type(:user).create(
153
+ user = Puppet::Type.type(:user).new(
265
154
  :name => "pptestAB",
266
155
  :comment => "Testingness"
267
156
  )
@@ -270,7 +159,7 @@ class TestType < Test::Unit::TestCase
270
159
  assert(user.property(:ensure), "User did not add ensure property")
271
160
 
272
161
  assert_nothing_raised {
273
- user = Puppet.type(:user).create(
162
+ user = Puppet::Type.type(:user).new(
274
163
  :name => "pptestBC",
275
164
  :comment => "A fake user"
276
165
  )
@@ -386,41 +275,10 @@ class TestType < Test::Unit::TestCase
386
275
  assert_equal(:yayness, ret)
387
276
  end
388
277
 
389
- def test_name_vs_title
390
- path = tempfile()
391
-
392
- trans = nil
393
-
394
- assert_nothing_raised {
395
- trans = Puppet::TransObject.new(path, :file)
396
- }
397
-
398
- file = nil
399
- assert_nothing_raised {
400
- file = Puppet::Type.newfile(trans)
401
- }
402
-
403
- assert(file.respond_to?(:title),
404
- "No 'title' method")
405
-
406
- assert(file.respond_to?(:name),
407
- "No 'name' method")
408
-
409
- assert_equal(file.title, file.name,
410
- "Name and title were not marked equal")
411
-
412
- assert_nothing_raised {
413
- file.title = "My file"
414
- }
415
-
416
- assert_equal("My file", file.title)
417
- assert_equal(path, file.name)
418
- end
419
-
420
278
  # Make sure the title is sufficiently differentiated from the namevar.
421
279
  def test_title_at_creation_with_hash
422
280
  file = nil
423
- fileclass = Puppet::Type.type(:file)
281
+ fileclass = Puppet::Type.type(:file)
424
282
 
425
283
  path = tempfile()
426
284
  assert_nothing_raised do
@@ -434,7 +292,6 @@ class TestType < Test::Unit::TestCase
434
292
  assert_equal(path, file[:name], "Did not get correct name")
435
293
 
436
294
  file = nil
437
- Puppet::Type.type(:file).clear
438
295
 
439
296
  # Now make sure we can specify both and still get the right answers
440
297
  assert_nothing_raised do
@@ -450,183 +307,56 @@ class TestType < Test::Unit::TestCase
450
307
  assert_equal(path, file[:name], "Did not get correct name")
451
308
  end
452
309
 
453
- # Make sure the "create" class method behaves appropriately.
454
- def test_class_create
455
- title = "Myfile"
456
- validate = proc do |element|
457
- assert(element, "Did not create file")
458
- assert_instance_of(Puppet::Type.type(:file), element)
459
- assert_equal(title, element.title, "Title is not correct")
460
- end
461
- type = :file
462
- args = {:path => tempfile(), :owner => "root"}
463
-
464
- trans = Puppet::TransObject.new(title, type)
465
- args.each do |name, val| trans[name] = val end
466
-
467
- # First call it on the appropriate typeclass
468
- obj = nil
469
- assert_nothing_raised do
470
- obj = Puppet::Type.type(:file).create(trans)
471
- end
472
-
473
- validate.call(obj)
474
-
475
- # Now try it using the class method on Type
476
- oldid = obj.object_id
477
- obj = nil
478
- Puppet::Type.type(:file).clear
479
-
480
- assert_nothing_raised {
481
- obj = Puppet::Type.create(trans)
482
- }
483
-
484
- validate.call(obj)
485
- assert(oldid != obj.object_id, "Got same object back")
486
-
487
- # Now try the same things with hashes instead of a transobject
488
- oldid = obj.object_id
489
- obj = nil
490
- Puppet::Type.type(:file).clear
491
- hash = {
492
- :type => :file,
493
- :title => "Myfile",
494
- :path => tempfile(),
495
- :owner => "root"
496
- }
497
-
498
- # First call it on the appropriate typeclass
499
- obj = nil
500
- assert_nothing_raised do
501
- obj = Puppet::Type.type(:file).create(hash)
502
- end
503
-
504
- validate.call(obj)
505
- assert_equal(:file, obj.should(:type),
506
- "Type param did not pass through")
507
-
508
- assert(oldid != obj.object_id, "Got same object back")
509
-
510
- # Now try it using the class method on Type
511
- oldid = obj.object_id
512
- obj = nil
513
- Puppet::Type.type(:file).clear
514
-
515
- assert_nothing_raised {
516
- obj = Puppet::Type.create(hash)
517
- }
518
-
519
- validate.call(obj)
520
- assert(oldid != obj.object_id, "Got same object back")
521
- assert_nil(obj.should(:type),
522
- "Type param passed through")
523
- end
524
-
525
- def test_multiplenames
526
- obj = nil
527
- path = tempfile()
528
- assert_raise ArgumentError do
529
- obj = Puppet::Type.type(:file).create(
530
- :name => path,
531
- :path => path
532
- )
533
- end
534
- end
535
-
536
- def test_title_and_name
537
- obj = nil
538
- path = tempfile()
539
- fileobj = Puppet::Type.type(:file)
540
-
541
- assert_nothing_raised do
542
- obj = fileobj.create(
543
- :title => "myfile",
544
- :path => path
545
- )
546
- end
547
-
548
- assert_equal(obj, fileobj["myfile"],
549
- "Could not retrieve obj by title")
550
-
551
- assert_equal(obj, fileobj[path],
552
- "Could not retrieve obj by name")
553
- end
554
-
555
- # Make sure default providers behave correctly
556
- def test_defaultproviders
557
- # Make a fake type
558
- type = Puppet::Type.newtype(:defaultprovidertest) do
559
- newparam(:name) do end
560
- end
561
-
562
- basic = type.provide(:basic) do
563
- defaultfor :operatingsystem => :somethingelse,
564
- :operatingsystemrelease => :yayness
565
- end
566
-
567
- assert_equal(basic, type.defaultprovider)
568
- type.defaultprovider = nil
569
-
570
- greater = type.provide(:greater) do
571
- defaultfor :operatingsystem => Facter.value("operatingsystem")
572
- end
573
-
574
- assert_equal(greater, type.defaultprovider)
575
- end
576
-
577
310
  # Make sure that we can have multiple non-isomorphic objects with the same name,
578
311
  # but not with isomorphic objects.
579
312
  def test_isomorphic_names
313
+ catalog = mk_catalog
580
314
  # First do execs, since they're not isomorphic.
581
315
  echo = Puppet::Util.binary "echo"
582
316
  exec1 = exec2 = nil
583
317
  assert_nothing_raised do
584
- exec1 = Puppet::Type.type(:exec).create(
318
+ exec1 = Puppet::Type.type(:exec).new(
585
319
  :title => "exec1",
586
320
  :command => "#{echo} funtest"
587
321
  )
588
322
  end
323
+ catalog.add_resource(exec1)
589
324
  assert_nothing_raised do
590
- exec2 = Puppet::Type.type(:exec).create(
325
+ exec2 = Puppet::Type.type(:exec).new(
591
326
  :title => "exec2",
592
327
  :command => "#{echo} funtest"
593
328
  )
594
329
  end
595
-
596
- assert_apply(exec1, exec2)
330
+ catalog.add_resource(exec2)
597
331
 
598
332
  # Now do files, since they are. This should fail.
599
333
  file1 = file2 = nil
600
334
  path = tempfile()
601
- assert_nothing_raised do
602
- file1 = Puppet::Type.type(:file).create(
603
- :title => "file1",
604
- :path => path,
605
- :content => "yayness"
606
- )
607
- end
608
-
609
- # This will fail, but earlier systems will catch it.
610
- assert_raise(Puppet::Error) do
611
- file2 = Puppet::Type.type(:file).create(
612
- :title => "file2",
613
- :path => path,
614
- :content => "rahness"
615
- )
616
- end
335
+ file1 = Puppet::Type.type(:file).new(
336
+ :title => "file1",
337
+ :path => path,
338
+ :content => "yayness"
339
+ )
340
+ catalog.add_resource(file1)
617
341
 
618
- assert(file1, "Did not create first file")
619
- assert_nil(file2, "Incorrectly created second file")
342
+ file2 = Puppet::Type.type(:file).new(
343
+ :title => "file2",
344
+ :path => path,
345
+ :content => "rahness"
346
+ )
347
+ assert_raise(ArgumentError) { catalog.add_resource(file2) }
620
348
  end
621
349
 
622
350
  def test_tags
623
- obj = Puppet::Type.type(:file).create(:path => tempfile())
351
+ obj = Puppet::Type.type(:file).new(:path => tempfile())
624
352
 
625
- tags = [:some, :test, :tags]
353
+ tags = ["some", "test", "tags"]
626
354
 
627
355
  obj.tags = tags
628
356
 
629
- assert_equal(tags + [:file], obj.tags)
357
+ # tags can be stored in an unordered set, so we sort
358
+ # them for the assert_equal to work
359
+ assert_equal((tags << "file").sort, obj.tags.sort)
630
360
  end
631
361
 
632
362
  def disabled_test_list
@@ -654,20 +384,6 @@ class TestType < Test::Unit::TestCase
654
384
  end
655
385
  end
656
386
 
657
- # Make sure that classes behave like hashes.
658
- def test_class_hash_behaviour
659
- path = tempfile()
660
-
661
- filetype = Puppet::Type.type(:file)
662
- one = Puppet::Type.newfile :path => path
663
-
664
- assert_equal(one, filetype[path], "Did not get file back")
665
-
666
- assert_raise(Puppet::Error) do
667
- filetype[path] = one
668
- end
669
- end
670
-
671
387
  def test_ref
672
388
  path = tempfile()
673
389
  Puppet::Type.type(:exec) # uggh, the methods need to load the types
@@ -677,7 +393,7 @@ class TestType < Test::Unit::TestCase
677
393
  exec = Puppet::Type.newexec(:title => "yay", :command => "/bin/echo yay")
678
394
  assert_equal("Exec[yay]", exec.ref)
679
395
  end
680
-
396
+
681
397
  def test_path
682
398
  config = mk_catalog
683
399
 
@@ -685,7 +401,7 @@ class TestType < Test::Unit::TestCase
685
401
  type = Puppet::Type.type(:exec)
686
402
  mk = Proc.new do |i, hash|
687
403
  hash[:title] = "exec%s" % i
688
- hash[:command] = "/bin/echo"
404
+ hash[:command] = "/bin/echo %s" % i
689
405
  if parent = hash[:parent]
690
406
  hash.delete(:parent)
691
407
  end
@@ -696,33 +412,33 @@ class TestType < Test::Unit::TestCase
696
412
  end
697
413
  res
698
414
  end
699
-
415
+
700
416
  exec = mk.call(1, {})
701
-
417
+
702
418
  assert_equal("/Exec[exec1]", exec.path)
703
-
419
+
704
420
  comp = Puppet::Type.newcomponent :title => "My[component]", :type => "Yay"
705
421
  config.add_resource comp
706
-
422
+
707
423
  exec = mk.call(2, :parent => comp)
708
-
424
+
709
425
  assert_equal("/My[component]/Exec[exec2]", exec.path)
710
-
426
+
711
427
  comp = Puppet::Type.newcomponent :name => "Other[thing]"
712
428
  config.add_resource comp
713
429
  exec = mk.call(3, :parent => comp)
714
430
  assert_equal("/Other[thing]/Exec[exec3]", exec.path)
715
-
431
+
716
432
  comp = Puppet::Type.newcomponent :type => "server", :name => "server"
717
433
  config.add_resource comp
718
434
  exec = mk.call(4, :parent => comp)
719
435
  assert_equal("/server/Exec[exec4]", exec.path)
720
-
436
+
721
437
  comp = Puppet::Type.newcomponent :type => "whatever", :name => "class[main]"
722
438
  config.add_resource comp
723
439
  exec = mk.call(5, :parent => comp)
724
440
  assert_equal("//Exec[exec5]", exec.path)
725
-
441
+
726
442
  newcomp = Puppet::Type.newcomponent :type => "yay", :name => "Good[bad]"
727
443
  config.add_resource newcomp
728
444
  config.add_edge comp, newcomp
@@ -730,56 +446,45 @@ class TestType < Test::Unit::TestCase
730
446
  assert_equal("//Good[bad]/Exec[exec6]", exec.path)
731
447
  end
732
448
 
733
- def test_evaluate
734
- faketype = Puppet::Type.newtype(:faketype) do
735
- newparam(:name) {}
736
- end
737
- cleanup { Puppet::Type.rmtype(:faketype) }
738
- faketype.provide(:fake) do
739
- end
740
-
741
- obj = faketype.create :name => "yayness", :provider => :fake
742
- assert(obj, "did not create object")
743
-
744
- obj.expects(:retrieve)
745
- obj.expects(:propertychanges).returns([])
746
- obj.expects(:cache)
747
-
748
- obj.evaluate
749
- end
750
-
751
449
  # Partially test #704, but also cover the rest of the schedule management bases.
752
450
  def test_schedule
753
- Puppet::Type.type(:schedule).create(:name => "maint")
451
+ schedule = Puppet::Type.type(:schedule).new(:name => "maint")
452
+ catalog = mk_catalog(schedule)
754
453
 
755
454
  {"maint" => true, nil => false, :fail => :fail}.each do |name, should|
756
455
  args = {:name => tempfile, :ensure => :file}
757
456
  if name
758
457
  args[:schedule] = name
759
458
  end
760
- resource = Puppet::Type.type(:file).create(args)
459
+ resource = Puppet::Type.type(:file).new(args)
460
+ catalog.add_resource(resource)
761
461
 
762
462
  if should == :fail
763
463
  assert_raise(Puppet::Error, "Did not fail on missing schedule") do
764
464
  resource.schedule
765
465
  end
466
+ elsif should == false
467
+ assert_nil(resource.schedule, "Set the schedule tho it is set to nil")
766
468
  else
767
469
  sched = nil
768
470
  assert_nothing_raised("Failed when schedule was %s" % sched) do
769
471
  sched = resource.schedule
770
472
  end
771
473
 
474
+ assert(sched, "Did not find schedule %s" % sched.inspect)
475
+
772
476
  if should
773
477
  assert_equal(name, sched.name, "did not get correct schedule back")
774
478
  end
775
479
  end
480
+ catalog.remove_resource(resource)
776
481
  end
777
482
  end
778
483
 
779
484
  # #801 -- resources only checked in noop should be rescheduled immediately.
780
485
  def test_reschedule_when_noop
781
486
  Puppet::Type.type(:schedule).mkdefaultschedules
782
- file = Puppet::Type.type(:file).create(:path => "/tmp/whatever", :mode => "755", :noop => true, :schedule => :daily, :ensure => :file)
487
+ file = Puppet::Type.type(:file).new(:path => "/tmp/whatever", :mode => "755", :noop => true, :schedule => :daily, :ensure => :file)
783
488
 
784
489
  assert(file.noop?, "File not considered in noop")
785
490
  assert(file.scheduled?, "File is not considered scheduled")