puppet 0.24.6 → 0.24.7

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 (383) hide show
  1. data/CHANGELOG +115 -0
  2. data/Rakefile +43 -14
  3. data/bin/puppetca +6 -5
  4. data/bin/puppetdoc +109 -15
  5. data/bin/ralsh +3 -1
  6. data/conf/redhat/puppet.spec +74 -48
  7. data/examples/mcx_dock_absent.pp +4 -0
  8. data/examples/mcx_dock_default.pp +118 -0
  9. data/examples/mcx_dock_full.pp +125 -0
  10. data/examples/mcx_dock_invalid.pp +9 -0
  11. data/examples/mcx_nogroup.pp +118 -0
  12. data/examples/mcx_notexists_absent.pp +4 -0
  13. data/ext/emacs/puppet-mode.el +1 -1
  14. data/lib/puppet.rb +1 -1
  15. data/lib/puppet/external/nagios/base.rb +114 -71
  16. data/lib/puppet/feature/base.rb +6 -0
  17. data/lib/puppet/indirector/yaml.rb +12 -3
  18. data/lib/puppet/module.rb +1 -1
  19. data/lib/puppet/network/client/master.rb +1 -1
  20. data/lib/puppet/network/xmlrpc/client.rb +3 -1
  21. data/lib/puppet/parameter.rb +1 -1
  22. data/lib/puppet/parser/ast.rb +15 -0
  23. data/lib/puppet/parser/ast/astarray.rb +1 -2
  24. data/lib/puppet/parser/ast/casestatement.rb +2 -0
  25. data/lib/puppet/parser/ast/collection.rb +2 -0
  26. data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
  27. data/lib/puppet/parser/ast/definition.rb +2 -0
  28. data/lib/puppet/parser/ast/else.rb +3 -0
  29. data/lib/puppet/parser/ast/function.rb +19 -12
  30. data/lib/puppet/parser/ast/hostclass.rb +9 -1
  31. data/lib/puppet/parser/ast/ifstatement.rb +3 -0
  32. data/lib/puppet/parser/ast/node.rb +3 -0
  33. data/lib/puppet/parser/ast/resource.rb +3 -0
  34. data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
  35. data/lib/puppet/parser/ast/resource_override.rb +3 -0
  36. data/lib/puppet/parser/ast/vardef.rb +3 -0
  37. data/lib/puppet/parser/functions.rb +14 -0
  38. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  39. data/lib/puppet/parser/functions/template.rb +3 -2
  40. data/lib/puppet/parser/lexer.rb +56 -7
  41. data/lib/puppet/parser/parser.rb +114 -98
  42. data/lib/puppet/parser/parser_support.rb +24 -4
  43. data/lib/puppet/parser/resource/reference.rb +4 -3
  44. data/lib/puppet/parser/templatewrapper.rb +30 -22
  45. data/lib/puppet/property.rb +1 -1
  46. data/lib/puppet/property/list.rb +7 -2
  47. data/lib/puppet/property/ordered_list.rb +22 -0
  48. data/lib/puppet/provider/augeas/augeas.rb +189 -0
  49. data/lib/puppet/provider/computer/computer.rb +22 -0
  50. data/lib/puppet/provider/confine.rb +4 -1
  51. data/lib/puppet/provider/confine/variable.rb +13 -2
  52. data/lib/puppet/provider/confine_collection.rb +4 -1
  53. data/lib/puppet/provider/confiner.rb +1 -1
  54. data/lib/puppet/provider/group/directoryservice.rb +6 -3
  55. data/lib/puppet/provider/group/groupadd.rb +5 -2
  56. data/lib/puppet/provider/group/ldap.rb +11 -9
  57. data/lib/puppet/provider/group/netinfo.rb +8 -4
  58. data/lib/puppet/provider/group/pw.rb +5 -1
  59. data/lib/puppet/provider/host/netinfo.rb +5 -2
  60. data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
  61. data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
  62. data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
  63. data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
  64. data/lib/puppet/provider/package/appdmg.rb +0 -3
  65. data/lib/puppet/provider/package/apt.rb +6 -0
  66. data/lib/puppet/provider/package/rpm.rb +2 -0
  67. data/lib/puppet/provider/package/yum.rb +5 -1
  68. data/lib/puppet/provider/package/yumhelper.py +9 -0
  69. data/lib/puppet/provider/service/base.rb +9 -6
  70. data/lib/puppet/provider/service/daemontools.rb +25 -15
  71. data/lib/puppet/provider/service/debian.rb +6 -2
  72. data/lib/puppet/provider/service/freebsd.rb +5 -2
  73. data/lib/puppet/provider/service/gentoo.rb +6 -3
  74. data/lib/puppet/provider/service/init.rb +31 -21
  75. data/lib/puppet/provider/service/launchd.rb +195 -0
  76. data/lib/puppet/provider/service/redhat.rb +5 -2
  77. data/lib/puppet/provider/service/runit.rb +30 -20
  78. data/lib/puppet/provider/service/smf.rb +7 -4
  79. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
  80. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  81. data/lib/puppet/provider/user/netinfo.rb +9 -3
  82. data/lib/puppet/provider/user/user_role_add.rb +43 -6
  83. data/lib/puppet/provider/zfs/solaris.rb +45 -0
  84. data/lib/puppet/provider/zone/solaris.rb +8 -4
  85. data/lib/puppet/provider/zpool/solaris.rb +116 -0
  86. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  87. data/lib/puppet/rails/database/schema.rb +1 -0
  88. data/lib/puppet/rails/host.rb +4 -0
  89. data/lib/puppet/reference/configuration.rb +1 -1
  90. data/lib/puppet/reports/tagmail.rb +15 -6
  91. data/lib/puppet/transaction/change.rb +3 -5
  92. data/lib/puppet/transportable.rb +1 -0
  93. data/lib/puppet/type/augeas.rb +155 -0
  94. data/lib/puppet/type/computer.rb +62 -0
  95. data/lib/puppet/type/exec.rb +2 -1
  96. data/lib/puppet/type/file.rb +1 -1
  97. data/lib/puppet/type/file/ensure.rb +8 -5
  98. data/lib/puppet/type/file/mode.rb +0 -14
  99. data/lib/puppet/type/file/owner.rb +32 -64
  100. data/lib/puppet/type/file/selcontext.rb +3 -8
  101. data/lib/puppet/type/group.rb +27 -45
  102. data/lib/puppet/type/k5login.rb +1 -1
  103. data/lib/puppet/type/macauthorization.rb +141 -0
  104. data/lib/puppet/type/mcx.rb +115 -0
  105. data/lib/puppet/type/mount.rb +1 -1
  106. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  107. data/lib/puppet/type/ssh_authorized_key.rb +16 -0
  108. data/lib/puppet/type/tidy.rb +43 -14
  109. data/lib/puppet/type/user.rb +25 -1
  110. data/lib/puppet/type/zfs.rb +51 -0
  111. data/lib/puppet/type/zone.rb +8 -0
  112. data/lib/puppet/type/zpool.rb +93 -0
  113. data/lib/puppet/util.rb +17 -38
  114. data/lib/puppet/util/file_locking.rb +44 -0
  115. data/lib/puppet/util/filetype.rb +3 -3
  116. data/lib/puppet/util/log.rb +1 -16
  117. data/lib/puppet/util/metric.rb +0 -5
  118. data/lib/puppet/util/rdoc.rb +85 -0
  119. data/lib/puppet/util/rdoc/code_objects.rb +219 -0
  120. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
  121. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
  122. data/lib/puppet/util/rdoc/parser.rb +437 -0
  123. data/lib/puppet/util/selinux.rb +135 -63
  124. data/lib/puppet/util/settings.rb +136 -126
  125. data/lib/puppet/util/storage.rb +4 -2
  126. data/spec/Rakefile +91 -0
  127. data/spec/integration/checksum.rb +47 -0
  128. data/spec/integration/defaults.rb +47 -0
  129. data/spec/integration/file_serving/configuration.rb +43 -0
  130. data/spec/integration/file_serving/content.rb +18 -0
  131. data/spec/integration/file_serving/metadata.rb +18 -0
  132. data/spec/integration/indirector/direct_file_server.rb +80 -0
  133. data/spec/integration/indirector/file_content/file_server.rb +18 -0
  134. data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
  135. data/spec/integration/indirector/module_files.rb +57 -0
  136. data/spec/integration/indirector/node/ldap.rb +15 -0
  137. data/spec/integration/indirector/rest.rb +464 -0
  138. data/spec/integration/network/server/mongrel.rb +48 -0
  139. data/spec/integration/network/server/webrick.rb +48 -0
  140. data/spec/integration/node.rb +93 -0
  141. data/spec/integration/node/catalog.rb +54 -0
  142. data/spec/integration/node/facts.rb +45 -0
  143. data/spec/integration/provider/package.rb +26 -0
  144. data/spec/integration/provider/service/init.rb +32 -0
  145. data/spec/integration/reference/providers.rb +17 -0
  146. data/spec/integration/reports.rb +14 -0
  147. data/spec/integration/transaction/report.rb +26 -0
  148. data/spec/integration/type/package.rb +22 -0
  149. data/spec/integration/util/file_locking.rb +36 -0
  150. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
  151. data/spec/monkey_patches/alias_should_to_must.rb +5 -0
  152. data/spec/shared_behaviours/file_server_terminus.rb +42 -0
  153. data/spec/shared_behaviours/file_serving.rb +64 -0
  154. data/spec/shared_behaviours/memory_terminus.rb +32 -0
  155. data/spec/spec.opts +5 -0
  156. data/spec/spec_helper.rb +36 -0
  157. data/spec/unit/executables/client/certhandler.rb +122 -0
  158. data/spec/unit/file_serving/configuration.rb +224 -0
  159. data/spec/unit/file_serving/configuration/parser.rb +135 -0
  160. data/spec/unit/file_serving/content.rb +71 -0
  161. data/spec/unit/file_serving/file_base.rb +124 -0
  162. data/spec/unit/file_serving/fileset.rb +239 -0
  163. data/spec/unit/file_serving/indirection_hooks.rb +124 -0
  164. data/spec/unit/file_serving/metadata.rb +187 -0
  165. data/spec/unit/file_serving/mount.rb +143 -0
  166. data/spec/unit/file_serving/terminus_helper.rb +76 -0
  167. data/spec/unit/indirector.rb +152 -0
  168. data/spec/unit/indirector/catalog/compiler.rb +156 -0
  169. data/spec/unit/indirector/catalog/yaml.rb +25 -0
  170. data/spec/unit/indirector/checksum/file.rb +139 -0
  171. data/spec/unit/indirector/code.rb +33 -0
  172. data/spec/unit/indirector/direct_file_server.rb +89 -0
  173. data/spec/unit/indirector/envelope.rb +47 -0
  174. data/spec/unit/indirector/exec.rb +51 -0
  175. data/spec/unit/indirector/facts/facter.rb +76 -0
  176. data/spec/unit/indirector/facts/yaml.rb +26 -0
  177. data/spec/unit/indirector/file.rb +154 -0
  178. data/spec/unit/indirector/file_content/file.rb +18 -0
  179. data/spec/unit/indirector/file_content/file_server.rb +18 -0
  180. data/spec/unit/indirector/file_content/modules.rb +18 -0
  181. data/spec/unit/indirector/file_content/rest.rb +11 -0
  182. data/spec/unit/indirector/file_metadata/file.rb +52 -0
  183. data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
  184. data/spec/unit/indirector/file_metadata/modules.rb +42 -0
  185. data/spec/unit/indirector/file_metadata/rest.rb +9 -0
  186. data/spec/unit/indirector/file_server.rb +184 -0
  187. data/spec/unit/indirector/indirection.rb +731 -0
  188. data/spec/unit/indirector/ldap.rb +143 -0
  189. data/spec/unit/indirector/memory.rb +29 -0
  190. data/spec/unit/indirector/module_files.rb +259 -0
  191. data/spec/unit/indirector/node/exec.rb +69 -0
  192. data/spec/unit/indirector/node/ldap.rb +424 -0
  193. data/spec/unit/indirector/node/memory.rb +19 -0
  194. data/spec/unit/indirector/node/plain.rb +19 -0
  195. data/spec/unit/indirector/node/rest.rb +13 -0
  196. data/spec/unit/indirector/node/yaml.rb +25 -0
  197. data/spec/unit/indirector/plain.rb +29 -0
  198. data/spec/unit/indirector/report/processor.rb +81 -0
  199. data/spec/unit/indirector/request.rb +87 -0
  200. data/spec/unit/indirector/rest.rb +372 -0
  201. data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
  202. data/spec/unit/indirector/terminus.rb +245 -0
  203. data/spec/unit/indirector/yaml.rb +145 -0
  204. data/spec/unit/module.rb +247 -0
  205. data/spec/unit/network/client.rb +45 -0
  206. data/spec/unit/network/client/master.rb +442 -0
  207. data/spec/unit/network/handler/fileserver.rb +179 -0
  208. data/spec/unit/network/http.rb +35 -0
  209. data/spec/unit/network/http/mongrel.rb +117 -0
  210. data/spec/unit/network/http/mongrel/rest.rb +377 -0
  211. data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
  212. data/spec/unit/network/http/webrick.rb +127 -0
  213. data/spec/unit/network/http/webrick/rest.rb +323 -0
  214. data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
  215. data/spec/unit/network/http_pool.rb +238 -0
  216. data/spec/unit/network/server.rb +316 -0
  217. data/spec/unit/network/xmlrpc/client.rb +13 -0
  218. data/spec/unit/node.rb +167 -0
  219. data/spec/unit/node/catalog.rb +864 -0
  220. data/spec/unit/node/environment.rb +37 -0
  221. data/spec/unit/node/facts.rb +44 -0
  222. data/spec/unit/other/checksum.rb +92 -0
  223. data/spec/unit/other/pgraph.rb +210 -0
  224. data/spec/unit/other/transaction.rb +33 -0
  225. data/spec/unit/other/transbucket.rb +172 -0
  226. data/spec/unit/other/transobject.rb +92 -0
  227. data/spec/unit/parameter.rb +24 -0
  228. data/spec/unit/parser/ast.rb +37 -0
  229. data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
  230. data/spec/unit/parser/ast/astarray.rb +66 -0
  231. data/spec/unit/parser/ast/boolean_operator.rb +53 -0
  232. data/spec/unit/parser/ast/collexpr.rb +92 -0
  233. data/spec/unit/parser/ast/comparison_operator.rb +92 -0
  234. data/spec/unit/parser/ast/definition.rb +195 -0
  235. data/spec/unit/parser/ast/function.rb +77 -0
  236. data/spec/unit/parser/ast/hostclass.rb +148 -0
  237. data/spec/unit/parser/ast/minus.rb +36 -0
  238. data/spec/unit/parser/ast/node.rb +125 -0
  239. data/spec/unit/parser/ast/nop.rb +20 -0
  240. data/spec/unit/parser/ast/not.rb +30 -0
  241. data/spec/unit/parser/ast/resource_override.rb +51 -0
  242. data/spec/unit/parser/ast/resource_reference.rb +63 -0
  243. data/spec/unit/parser/ast/vardef.rb +47 -0
  244. data/spec/unit/parser/collector.rb +426 -0
  245. data/spec/unit/parser/compiler.rb +561 -0
  246. data/spec/unit/parser/functions.rb +83 -0
  247. data/spec/unit/parser/functions/inline_template.rb +59 -0
  248. data/spec/unit/parser/functions/template.rb +62 -0
  249. data/spec/unit/parser/interpreter.rb +138 -0
  250. data/spec/unit/parser/lexer.rb +646 -0
  251. data/spec/unit/parser/parser.rb +228 -0
  252. data/spec/unit/parser/resource.rb +336 -0
  253. data/spec/unit/parser/resource/reference.rb +95 -0
  254. data/spec/unit/parser/scope.rb +87 -0
  255. data/spec/unit/parser/templatewrapper.rb +129 -0
  256. data/spec/unit/property.rb +35 -0
  257. data/spec/unit/property/keyvalue.rb +168 -0
  258. data/spec/unit/property/list.rb +156 -0
  259. data/spec/unit/property/ordered_list.rb +64 -0
  260. data/spec/unit/provider/augeas/augeas.rb +238 -0
  261. data/spec/unit/provider/confine.rb +78 -0
  262. data/spec/unit/provider/confine/exists.rb +81 -0
  263. data/spec/unit/provider/confine/false.rb +53 -0
  264. data/spec/unit/provider/confine/feature.rb +60 -0
  265. data/spec/unit/provider/confine/true.rb +53 -0
  266. data/spec/unit/provider/confine/variable.rb +107 -0
  267. data/spec/unit/provider/confine_collection.rb +134 -0
  268. data/spec/unit/provider/confiner.rb +63 -0
  269. data/spec/unit/provider/group/groupadd.rb +31 -0
  270. data/spec/unit/provider/group/ldap.rb +105 -0
  271. data/spec/unit/provider/ldap.rb +248 -0
  272. data/spec/unit/provider/macauthorization.rb +147 -0
  273. data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
  274. data/spec/unit/provider/mount.rb +130 -0
  275. data/spec/unit/provider/mount/parsed.rb +185 -0
  276. data/spec/unit/provider/package/apt.rb +138 -0
  277. data/spec/unit/provider/package/dpkg.rb +163 -0
  278. data/spec/unit/provider/package/gem.rb +87 -0
  279. data/spec/unit/provider/package/hpux.rb +52 -0
  280. data/spec/unit/provider/selboolean.rb +37 -0
  281. data/spec/unit/provider/selmodule-example.pp +0 -0
  282. data/spec/unit/provider/selmodule.rb +66 -0
  283. data/spec/unit/provider/service/daemontools.rb +124 -0
  284. data/spec/unit/provider/service/launchd.rb +134 -0
  285. data/spec/unit/provider/service/runit.rb +117 -0
  286. data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
  287. data/spec/unit/provider/user/hpux.rb +25 -0
  288. data/spec/unit/provider/user/ldap.rb +279 -0
  289. data/spec/unit/provider/user/user_role_add.rb +249 -0
  290. data/spec/unit/provider/user/useradd.rb +115 -0
  291. data/spec/unit/provider/zfs/solaris.rb +87 -0
  292. data/spec/unit/provider/zone/solaris.rb +42 -0
  293. data/spec/unit/provider/zpool/solaris.rb +179 -0
  294. data/spec/unit/rails.rb +125 -0
  295. data/spec/unit/relationship.rb +149 -0
  296. data/spec/unit/reports.rb +61 -0
  297. data/spec/unit/resource_reference.rb +73 -0
  298. data/spec/unit/simple_graph.rb +280 -0
  299. data/spec/unit/transaction/change.rb +187 -0
  300. data/spec/unit/transaction/event.rb +25 -0
  301. data/spec/unit/transaction/report.rb +40 -0
  302. data/spec/unit/type.rb +64 -0
  303. data/spec/unit/type/augeas.rb +113 -0
  304. data/spec/unit/type/computer.rb +82 -0
  305. data/spec/unit/type/exec.rb +91 -0
  306. data/spec/unit/type/file.rb +155 -0
  307. data/spec/unit/type/file/ensure.rb +21 -0
  308. data/spec/unit/type/file/group.rb +118 -0
  309. data/spec/unit/type/file/owner.rb +132 -0
  310. data/spec/unit/type/file/selinux.rb +82 -0
  311. data/spec/unit/type/group.rb +40 -0
  312. data/spec/unit/type/macauthorization.rb +78 -0
  313. data/spec/unit/type/mcx.rb +108 -0
  314. data/spec/unit/type/mount.rb +219 -0
  315. data/spec/unit/type/nagios.rb +63 -0
  316. data/spec/unit/type/noop_metaparam.rb +38 -0
  317. data/spec/unit/type/package.rb +246 -0
  318. data/spec/unit/type/resources.rb +27 -0
  319. data/spec/unit/type/schedule.rb +339 -0
  320. data/spec/unit/type/selboolean.rb +47 -0
  321. data/spec/unit/type/selmodule.rb +18 -0
  322. data/spec/unit/type/service.rb +254 -0
  323. data/spec/unit/type/ssh_authorized_key.rb +106 -0
  324. data/spec/unit/type/tidy.rb +68 -0
  325. data/spec/unit/type/user.rb +260 -0
  326. data/spec/unit/type/zfs.rb +45 -0
  327. data/spec/unit/type/zone.rb +20 -0
  328. data/spec/unit/type/zpool.rb +110 -0
  329. data/spec/unit/util/checksums.rb +99 -0
  330. data/spec/unit/util/constant_inflector.rb +70 -0
  331. data/spec/unit/util/file_locking.rb +115 -0
  332. data/spec/unit/util/ldap/connection.rb +169 -0
  333. data/spec/unit/util/ldap/generator.rb +54 -0
  334. data/spec/unit/util/ldap/manager.rb +654 -0
  335. data/spec/unit/util/loadedfile.rb +65 -0
  336. data/spec/unit/util/log.rb +107 -0
  337. data/spec/unit/util/metric.rb +95 -0
  338. data/spec/unit/util/nagios_maker.rb +128 -0
  339. data/spec/unit/util/posix.rb +256 -0
  340. data/spec/unit/util/resource_template.rb +58 -0
  341. data/spec/unit/util/selinux.rb +219 -0
  342. data/spec/unit/util/settings.rb +847 -0
  343. data/spec/unit/util/storage.rb +248 -0
  344. data/spec/unit/util/tagging.rb +92 -0
  345. data/spec/unit/util/uri_helper.rb +41 -0
  346. data/spec/unit/util/user_attr.rb +47 -0
  347. data/spec/unit/util/warnings.rb +35 -0
  348. data/test/certmgr/support.rb +0 -6
  349. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
  350. data/test/data/snippets/multilinecomments.pp +6 -0
  351. data/test/data/snippets/multipleclass.pp +9 -0
  352. data/test/language/functions.rb +11 -1
  353. data/test/language/snippets.rb +16 -0
  354. data/test/lib/puppettest/runnable_test.rb +1 -1
  355. data/test/network/handler/fileserver.rb +5 -0
  356. data/test/other/report.rb +0 -4
  357. data/test/ral/type/resources.rb +2 -19
  358. data/test/util/settings.rb +4 -4
  359. data/test/util/storage.rb +0 -24
  360. data/test/util/utiltest.rb +0 -33
  361. metadata +319 -26
  362. data/conf/debian/README.source +0 -2
  363. data/conf/debian/TODO.Debian +0 -1
  364. data/conf/debian/changelog +0 -257
  365. data/conf/debian/compat +0 -1
  366. data/conf/debian/control +0 -45
  367. data/conf/debian/copyright +0 -17
  368. data/conf/debian/docs +0 -1
  369. data/conf/debian/fileserver.conf +0 -12
  370. data/conf/debian/puppet.NEWS +0 -63
  371. data/conf/debian/puppet.conf +0 -8
  372. data/conf/debian/puppet.dirs +0 -7
  373. data/conf/debian/puppet.files +0 -6
  374. data/conf/debian/puppet.init +0 -64
  375. data/conf/debian/puppet.logrotate +0 -11
  376. data/conf/debian/puppet.postinst +0 -9
  377. data/conf/debian/puppet.postrm +0 -21
  378. data/conf/debian/puppet.preinst +0 -25
  379. data/conf/debian/puppetmaster.files +0 -4
  380. data/conf/debian/puppetmaster.init +0 -58
  381. data/conf/debian/rules +0 -115
  382. data/conf/debian/watch +0 -2
  383. data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/transportable'
6
+
7
+ describe Puppet::TransObject do
8
+ it "should canonize resource references" do
9
+ resource = Puppet::TransObject.new("me", "foo::bar")
10
+ resource.ref.should == 'Foo::Bar[me]'
11
+ end
12
+
13
+ it "should lower-case resource types for backward compatibility with 0.23.2" do
14
+ resource = Puppet::TransObject.new("me", "Foo")
15
+ resource.type.should == 'foo'
16
+ end
17
+ end
18
+
19
+ describe Puppet::TransObject, " when serializing" do
20
+ before do
21
+ @resource = Puppet::TransObject.new("/my/file", "file")
22
+ @resource["one"] = "test"
23
+ @resource["two"] = "other"
24
+ end
25
+
26
+ it "should be able to be dumped to yaml" do
27
+ proc { YAML.dump(@resource) }.should_not raise_error
28
+ end
29
+
30
+ it "should produce an equivalent yaml object" do
31
+ text = YAML.dump(@resource)
32
+
33
+ newresource = YAML.load(text)
34
+ newresource.name.should == "/my/file"
35
+ newresource.type.should == "file"
36
+ %w{one two}.each do |param|
37
+ newresource[param].should == @resource[param]
38
+ end
39
+ end
40
+ end
41
+
42
+ describe Puppet::TransObject, " when converting to a RAL resource" do
43
+ before do
44
+ @resource = Puppet::TransObject.new("/my/file", "file")
45
+ @resource["one"] = "test"
46
+ @resource["two"] = "other"
47
+ end
48
+
49
+ it "should use the resource type's :create method to create the resource" do
50
+ type = mock 'resource type'
51
+ type.expects(:create).with(@resource).returns(:myresource)
52
+ Puppet::Type.expects(:type).with("file").returns(type)
53
+ @resource.to_type.should == :myresource
54
+ end
55
+
56
+ it "should convert to a component instance if the resource type cannot be found" do
57
+ Puppet::Type.expects(:type).with("file").returns(nil)
58
+ @resource.expects(:to_component).returns(:mycomponent)
59
+ @resource.to_type.should == :mycomponent
60
+ end
61
+ end
62
+
63
+ describe Puppet::TransObject, " when converting to a RAL component instance" do
64
+ before do
65
+ @resource = Puppet::TransObject.new("/my/file", "one::two")
66
+ @resource["one"] = "test"
67
+ @resource["noop"] = "other"
68
+ end
69
+
70
+ it "should use a new TransObject whose name is a resource reference of the type and title of the original TransObject" do
71
+ Puppet::Type::Component.expects(:create).with { |resource| resource.type == "component" and resource.name == "One::Two[/my/file]" }.returns(:yay)
72
+ @resource.to_component.should == :yay
73
+ end
74
+
75
+ it "should pass the resource parameters on to the newly created TransObject" do
76
+ Puppet::Type::Component.expects(:create).with { |resource| resource["noop"] == "other" }.returns(:yay)
77
+ @resource.to_component.should == :yay
78
+ end
79
+
80
+ it "should copy over the catalog" do
81
+ @resource.catalog = "mycat"
82
+ Puppet::Type::Component.expects(:create).with { |resource| resource.catalog == "mycat" }.returns(:yay)
83
+ @resource.to_component
84
+ end
85
+
86
+ # LAK:FIXME This really isn't the design we want going forward, but it's
87
+ # good enough for now.
88
+ it "should not pass resource parameters that are not metaparams" do
89
+ Puppet::Type::Component.expects(:create).with { |resource| resource["one"].nil? }.returns(:yay)
90
+ @resource.to_component.should == :yay
91
+ end
92
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ require 'puppet/parameter'
6
+
7
+ describe Puppet::Parameter do
8
+ describe "when returning the value" do
9
+ before do
10
+ @class = Class.new(Puppet::Parameter)
11
+ @class.initvars
12
+ @parameter = @class.new :resource => mock('resource')
13
+ end
14
+
15
+ it "should return nil if no value is set" do
16
+ @parameter.value.should be_nil
17
+ end
18
+
19
+ it "should return any set value" do
20
+ @parameter.value = "foo"
21
+ @parameter.value.should == "foo"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/parser/ast'
6
+
7
+ describe Puppet::Parser::AST do
8
+
9
+ it "should have a doc accessor" do
10
+ ast = Puppet::Parser::AST.new({})
11
+ ast.should respond_to(:doc)
12
+ end
13
+
14
+ it "should have a use_docs accessor to indicate it wants documentation" do
15
+ ast = Puppet::Parser::AST.new({})
16
+ ast.should respond_to(:use_docs)
17
+ end
18
+
19
+ [ Puppet::Parser::AST::Collection, Puppet::Parser::AST::Definition, Puppet::Parser::AST::Else,
20
+ Puppet::Parser::AST::Function, Puppet::Parser::AST::HostClass, Puppet::Parser::AST::IfStatement,
21
+ Puppet::Parser::AST::Node, Puppet::Parser::AST::Resource, Puppet::Parser::AST::ResourceDefaults,
22
+ Puppet::Parser::AST::ResourceOverride, Puppet::Parser::AST::VarDef
23
+ ].each do |k|
24
+ it "#{k}.use_docs should return true" do
25
+ ast = k.new({})
26
+ ast.use_docs.should be_true
27
+ end
28
+ end
29
+
30
+ describe "when initializing" do
31
+ it "should store the doc argument if passed" do
32
+ ast = Puppet::Parser::AST.new(:doc => "documentation")
33
+ ast.doc.should == "documentation"
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::ArithmeticOperator do
6
+
7
+ ast = Puppet::Parser::AST
8
+
9
+ before :each do
10
+ @scope = Puppet::Parser::Scope.new()
11
+ @one = stub 'lval', :safeevaluate => 1
12
+ @two = stub 'rval', :safeevaluate => 2
13
+ end
14
+
15
+ it "should evaluate both branches" do
16
+ lval = stub "lval"
17
+ lval.expects(:safeevaluate).with(@scope).returns(1)
18
+ rval = stub "rval"
19
+ rval.expects(:safeevaluate).with(@scope).returns(2)
20
+
21
+ operator = ast::ArithmeticOperator.new :rval => rval, :operator => "+", :lval => lval
22
+ operator.evaluate(@scope)
23
+ end
24
+
25
+ it "should fail for an unknown operator" do
26
+ lambda { operator = ast::ArithmeticOperator.new :lval => @one, :operator => "%", :rval => @two }.should raise_error
27
+ end
28
+
29
+ it "should call Puppet::Parser::Scope.number?" do
30
+ Puppet::Parser::Scope.expects(:number?).with(1).returns(1)
31
+ Puppet::Parser::Scope.expects(:number?).with(2).returns(2)
32
+
33
+ ast::ArithmeticOperator.new(:lval => @one, :operator => "+", :rval => @two).evaluate(@scope)
34
+ end
35
+
36
+
37
+ %w{ + - * / << >>}.each do |op|
38
+ it "should call ruby Numeric '#{op}'" do
39
+ one = stub 'one'
40
+ two = stub 'two'
41
+ operator = ast::ArithmeticOperator.new :lval => @one, :operator => op, :rval => @two
42
+ Puppet::Parser::Scope.stubs(:number?).with(1).returns(one)
43
+ Puppet::Parser::Scope.stubs(:number?).with(2).returns(two)
44
+ one.expects(:send).with(op,two)
45
+ operator.evaluate(@scope)
46
+ end
47
+ end
48
+
49
+ it "should work even with numbers embedded in strings" do
50
+ two = stub 'two', :safeevaluate => "2"
51
+ one = stub 'one', :safeevaluate => "1"
52
+ operator = ast::ArithmeticOperator.new :lval => two, :operator => "+", :rval => one
53
+ operator.evaluate(@scope).should == 3
54
+ end
55
+
56
+ it "should work even with floats" do
57
+ two = stub 'two', :safeevaluate => 2.53
58
+ one = stub 'one', :safeevaluate => 1.80
59
+ operator = ast::ArithmeticOperator.new :lval => two, :operator => "+", :rval => one
60
+ operator.evaluate(@scope).should == 4.33
61
+ end
62
+
63
+ it "should work for variables too" do
64
+ @scope.expects(:lookupvar).with("one").returns(1)
65
+ @scope.expects(:lookupvar).with("two").returns(2)
66
+ one = ast::Variable.new( :value => "one" )
67
+ two = ast::Variable.new( :value => "two" )
68
+
69
+ operator = ast::ArithmeticOperator.new :lval => one, :operator => "+", :rval => two
70
+ operator.evaluate(@scope).should == 3
71
+ end
72
+
73
+ end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::ASTArray do
6
+ before :each do
7
+ @scope = Puppet::Parser::Scope.new()
8
+ end
9
+
10
+ it "should have a [] accessor" do
11
+ array = Puppet::Parser::AST::ASTArray.new :children => []
12
+ array.should respond_to(:[])
13
+ end
14
+
15
+ it "should evaluate all its children" do
16
+ item1 = stub "item1", :is_a? => true
17
+ item2 = stub "item2", :is_a? => true
18
+
19
+ item1.expects(:safeevaluate).with(@scope).returns(123)
20
+ item2.expects(:safeevaluate).with(@scope).returns(246)
21
+
22
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item1,item2]
23
+ operator.evaluate(@scope)
24
+ end
25
+
26
+ it "should evaluate childrens of type ASTArray" do
27
+ item1 = stub "item1", :is_a? => true
28
+ item2 = stub "item2"
29
+ item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
30
+ item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
31
+ item2.stubs(:each).yields(item1)
32
+
33
+ item1.expects(:safeevaluate).with(@scope).returns(123)
34
+
35
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
36
+ operator.evaluate(@scope).should == [123]
37
+ end
38
+
39
+ it "should flatten children coming from children ASTArray" do
40
+ item1 = stub "item1", :is_a? => true
41
+ item2 = stub "item2"
42
+ item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
43
+ item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
44
+ item2.stubs(:each).yields([item1])
45
+
46
+ item1.expects(:safeevaluate).with(@scope).returns(123)
47
+
48
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
49
+ operator.evaluate(@scope).should == [123]
50
+ end
51
+
52
+ it "should flatten the results of children evaluation" do
53
+ item1 = stub "item1", :is_a? => true
54
+ item2 = stub "item2"
55
+ item2.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)
56
+ item2.stubs(:instance_of?).with(Puppet::Parser::AST::ASTArray).returns(true)
57
+ item2.stubs(:each).yields([item1])
58
+
59
+ item1.expects(:safeevaluate).with(@scope).returns([123])
60
+
61
+ operator = Puppet::Parser::AST::ASTArray.new :children => [item2]
62
+ operator.evaluate(@scope).should == [123]
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::BooleanOperator do
6
+
7
+ ast = Puppet::Parser::AST
8
+
9
+ before :each do
10
+ @scope = Puppet::Parser::Scope.new()
11
+ @true_ast = ast::Boolean.new( :value => true)
12
+ @false_ast = ast::Boolean.new( :value => false)
13
+ end
14
+
15
+ it "should evaluate left operand inconditionally" do
16
+ lval = stub "lval"
17
+ lval.expects(:safeevaluate).with(@scope).returns("true")
18
+ rval = stub "rval", :safeevaluate => false
19
+ rval.expects(:safeevaluate).never
20
+
21
+ operator = ast::BooleanOperator.new :rval => rval, :operator => "or", :lval => lval
22
+ operator.evaluate(@scope)
23
+ end
24
+
25
+ it "should evaluate right 'and' operand only if left operand is true" do
26
+ lval = stub "lval", :safeevaluate => true
27
+ rval = stub "rval", :safeevaluate => false
28
+ rval.expects(:safeevaluate).with(@scope).returns(false)
29
+ operator = ast::BooleanOperator.new :rval => rval, :operator => "and", :lval => lval
30
+ operator.evaluate(@scope)
31
+ end
32
+
33
+ it "should evaluate right 'or' operand only if left operand is false" do
34
+ lval = stub "lval", :safeevaluate => false
35
+ rval = stub "rval", :safeevaluate => false
36
+ rval.expects(:safeevaluate).with(@scope).returns(false)
37
+ operator = ast::BooleanOperator.new :rval => rval, :operator => "or", :lval => lval
38
+ operator.evaluate(@scope)
39
+ end
40
+
41
+ it "should return true for false OR true" do
42
+ ast::BooleanOperator.new(:rval => @true_ast, :operator => "or", :lval => @false_ast).evaluate(@scope).should be_true
43
+ end
44
+
45
+ it "should return false for true AND false" do
46
+ ast::BooleanOperator.new(:rval => @true_ast, :operator => "and", :lval => @false_ast ).evaluate(@scope).should be_false
47
+ end
48
+
49
+ it "should return true for true AND true" do
50
+ ast::BooleanOperator.new(:rval => @true_ast, :operator => "and", :lval => @true_ast ).evaluate(@scope).should be_true
51
+ end
52
+
53
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::CollExpr do
6
+
7
+ ast = Puppet::Parser::AST
8
+
9
+ before :each do
10
+ @scope = Puppet::Parser::Scope.new()
11
+ end
12
+
13
+ describe "when evaluating with two operands" do
14
+ before :each do
15
+ @test1 = mock 'test1'
16
+ @test1.expects(:safeevaluate).with(@scope).returns("test1")
17
+ @test2 = mock 'test2'
18
+ @test2.expects(:safeevaluate).with(@scope).returns("test2")
19
+ end
20
+
21
+ it "should evaluate both" do
22
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper=>"==")
23
+ collexpr.evaluate(@scope)
24
+ end
25
+
26
+ it "should produce a textual representation and code of the expression" do
27
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper=>"==")
28
+ result = collexpr.evaluate(@scope)
29
+ result[0].should == "param_values.value = 'test2' and param_names.name = 'test1'"
30
+ result[1].should be_an_instance_of(Proc)
31
+ end
32
+
33
+ it "should propagate expression type and form to child if expression themselves" do
34
+ [@test1, @test2].each do |t|
35
+ t.expects(:is_a?).returns(true)
36
+ t.expects(:form).returns(false)
37
+ t.expects(:type).returns(false)
38
+ t.expects(:type=)
39
+ t.expects(:form=)
40
+ end
41
+
42
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper=>"==", :form => true, :type => true)
43
+ result = collexpr.evaluate(@scope)
44
+ end
45
+
46
+ describe "and when evaluating the produced code" do
47
+ before :each do
48
+ @resource = mock 'resource'
49
+ @resource.expects(:[]).with("test1").at_least(1).returns("test2")
50
+ end
51
+
52
+ it "should evaluate like the original expression for ==" do
53
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper => "==")
54
+ collexpr.evaluate(@scope)[1].call(@resource).should === (@resource["test1"] == "test2")
55
+ end
56
+
57
+ it "should evaluate like the original expression for !=" do
58
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper => "!=")
59
+ collexpr.evaluate(@scope)[1].call(@resource).should === (@resource["test1"] != "test2")
60
+ end
61
+ end
62
+
63
+ it "should warn if this is an exported collection containing parenthesis (unsupported)" do
64
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper=>"==", :parens => true, :form => :exported)
65
+ Puppet.expects(:warning)
66
+ collexpr.evaluate(@scope)
67
+ end
68
+
69
+ %w{and or}.each do |op|
70
+ it "should raise an error if this is an exported collection with #{op} operator (unsupported)" do
71
+ collexpr = ast::CollExpr.new(:test1 => @test1, :test2 => @test2, :oper=> op, :form => :exported)
72
+ lambda { collexpr.evaluate(@scope) }.should raise_error(Puppet::ParseError)
73
+ end
74
+ end
75
+ end
76
+
77
+ it "should check for array member equality if resource parameter is an array for ==" do
78
+ array = mock 'array', :safeevaluate => "array"
79
+ test1 = mock 'test1'
80
+ test1.expects(:safeevaluate).with(@scope).returns("test1")
81
+
82
+ resource = mock 'resource'
83
+ resource.expects(:[]).with("array").at_least(1).returns(["test1","test2","test3"])
84
+ collexpr = ast::CollExpr.new(:test1 => array, :test2 => test1, :oper => "==")
85
+ collexpr.evaluate(@scope)[1].call(resource).should be_true
86
+ end
87
+
88
+ it "should raise an error for invalid operator" do
89
+ lambda { collexpr = ast::CollExpr.new(:oper=>">") }.should raise_error
90
+ end
91
+
92
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::ComparisonOperator do
6
+ before :each do
7
+ @scope = Puppet::Parser::Scope.new()
8
+ @one = stub 'one', :safeevaluate => "1"
9
+ @two = stub 'two', :safeevaluate => "2"
10
+ end
11
+
12
+ it "should evaluate both branches" do
13
+ lval = stub "lval"
14
+ lval.expects(:safeevaluate).with(@scope)
15
+ rval = stub "rval"
16
+ rval.expects(:safeevaluate).with(@scope)
17
+
18
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => lval, :operator => "==", :rval => rval
19
+ operator.evaluate(@scope)
20
+ end
21
+
22
+ it "should convert arguments strings to numbers if they are" do
23
+ Puppet::Parser::Scope.expects(:number?).with("1").returns(1)
24
+ Puppet::Parser::Scope.expects(:number?).with("2").returns(2)
25
+
26
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => @one, :operator => "==", :rval => @two
27
+ operator.evaluate(@scope)
28
+ end
29
+
30
+ %w{< > <= >= ==}.each do |oper|
31
+ it "should use string comparison #{oper} if operands are strings" do
32
+ lval = stub 'one', :safeevaluate => "one"
33
+ rval = stub 'two', :safeevaluate => "two"
34
+ Puppet::Parser::Scope.stubs(:number?).with("one").returns(nil)
35
+ Puppet::Parser::Scope.stubs(:number?).with("two").returns(nil)
36
+
37
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => lval, :operator => oper, :rval => rval
38
+ operator.evaluate(@scope).should == "one".send(oper,"two")
39
+ end
40
+ end
41
+
42
+ it "should fail with arguments of different types" do
43
+ lval = stub 'one', :safeevaluate => "one"
44
+ rval = stub 'two', :safeevaluate => "2"
45
+ Puppet::Parser::Scope.stubs(:number?).with("one").returns(nil)
46
+ Puppet::Parser::Scope.stubs(:number?).with("2").returns(2)
47
+
48
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => lval, :operator => ">", :rval => rval
49
+ lambda { operator.evaluate(@scope) }.should raise_error(ArgumentError)
50
+ end
51
+
52
+ it "should fail for an unknown operator" do
53
+ lambda { operator = Puppet::Parser::AST::ComparisonOperator.new :lval => @one, :operator => "or", :rval => @two }.should raise_error
54
+ end
55
+
56
+ %w{< > <= >= ==}.each do |oper|
57
+ it "should return the result of using '#{oper}' to compare the left and right sides" do
58
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => @one, :operator => oper, :rval => @two
59
+
60
+ operator.evaluate(@scope).should == 1.send(oper,2)
61
+ end
62
+ end
63
+
64
+ it "should return the result of using '!=' to compare the left and right sides" do
65
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => @one, :operator => '!=', :rval => @two
66
+
67
+ operator.evaluate(@scope).should == true
68
+ end
69
+
70
+ it "should work for variables too" do
71
+ one = Puppet::Parser::AST::Variable.new( :value => "one" )
72
+ two = Puppet::Parser::AST::Variable.new( :value => "two" )
73
+
74
+ @scope.expects(:lookupvar).with("one").returns(1)
75
+ @scope.expects(:lookupvar).with("two").returns(2)
76
+
77
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => one, :operator => "<", :rval => two
78
+ operator.evaluate(@scope).should == true
79
+ end
80
+
81
+ # see ticket #1759
82
+ %w{< > <= >=}.each do |oper|
83
+ it "should return the correct result of using '#{oper}' to compare 10 and 9" do
84
+ ten = stub 'one', :safeevaluate => "10"
85
+ nine = stub 'two', :safeevaluate => "9"
86
+ operator = Puppet::Parser::AST::ComparisonOperator.new :lval => ten, :operator => oper, :rval => nine
87
+
88
+ operator.evaluate(@scope).should == 10.send(oper,9)
89
+ end
90
+ end
91
+
92
+ end