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,95 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::Resource::Reference do
6
+ before do
7
+ @type = Puppet::Parser::Resource::Reference
8
+ end
9
+
10
+ it "should require a type" do
11
+ proc { @type.new(:title => "yay") }.should raise_error(Puppet::DevError)
12
+ end
13
+
14
+ it "should require a title" do
15
+ proc { @type.new(:type => "file") }.should raise_error(Puppet::DevError)
16
+ end
17
+
18
+ it "should know when it refers to a builtin type" do
19
+ ref = @type.new(:type => "file", :title => "/tmp/yay")
20
+ ref.builtin?.should be_true
21
+ ref.builtintype.should equal(Puppet::Type.type(:file))
22
+ end
23
+
24
+ it "should return a downcased relationship-style resource reference for defined types" do
25
+ ref = @type.new(:type => "file", :title => "/tmp/yay")
26
+ ref.to_ref.should == ["file", "/tmp/yay"]
27
+ end
28
+
29
+ it "should return a capitalized relationship-style resource reference for defined types" do
30
+ ref = @type.new(:type => "whatever", :title => "/tmp/yay")
31
+ ref.to_ref.should == ["Whatever", "/tmp/yay"]
32
+ end
33
+
34
+ it "should return a resource reference string when asked" do
35
+ ref = @type.new(:type => "file", :title => "/tmp/yay")
36
+ ref.to_s.should == "File[/tmp/yay]"
37
+ end
38
+
39
+ it "should canonize resource references" do
40
+ ref = @type.new(:type => "foo::bar", :title => "/tmp/yay")
41
+ ref.to_s.should == "Foo::Bar[/tmp/yay]"
42
+ end
43
+ end
44
+
45
+ describe Puppet::Parser::Resource::Reference, " when modeling defined types" do
46
+ before do
47
+ @type = Puppet::Parser::Resource::Reference
48
+
49
+ @parser = Puppet::Parser::Parser.new :Code => ""
50
+ @definition = @parser.newdefine "mydefine"
51
+ @class = @parser.newclass "myclass"
52
+ @nodedef = @parser.newnode("mynode")[0]
53
+ @node = Puppet::Node.new("yaynode")
54
+
55
+ @compiler = Puppet::Parser::Compiler.new(@node, @parser)
56
+ end
57
+
58
+ it "should be able to find defined types" do
59
+ ref = @type.new(:type => "mydefine", :title => "/tmp/yay", :scope => @compiler.topscope)
60
+ ref.builtin?.should be_false
61
+ ref.definedtype.should equal(@definition)
62
+ end
63
+
64
+ it "should be able to find classes" do
65
+ ref = @type.new(:type => "class", :title => "myclass", :scope => @compiler.topscope)
66
+ ref.builtin?.should be_false
67
+ ref.definedtype.should equal(@class)
68
+ end
69
+
70
+ it "should be able to find nodes" do
71
+ ref = @type.new(:type => "node", :title => "mynode", :scope => @compiler.topscope)
72
+ ref.builtin?.should be_false
73
+ ref.definedtype.object_id.should == @nodedef.object_id
74
+ end
75
+
76
+ it "should only look for fully qualified classes" do
77
+ top = @parser.newclass "top"
78
+ sub = @parser.newclass "other::top"
79
+
80
+ scope = @compiler.topscope.class.new(:parent => @compiler.topscope, :namespace => "other", :parser => @parser)
81
+
82
+ ref = @type.new(:type => "class", :title => "top", :scope => scope)
83
+ ref.definedtype.classname.should equal(top.classname)
84
+ end
85
+
86
+ it "should only look for fully qualified definitions" do
87
+ top = @parser.newdefine "top"
88
+ sub = @parser.newdefine "other::top"
89
+
90
+ scope = @compiler.topscope.class.new(:parent => @compiler.topscope, :namespace => "other", :parser => @parser)
91
+
92
+ ref = @type.new(:type => "top", :title => "foo", :scope => scope)
93
+ ref.definedtype.classname.should equal(top.classname)
94
+ end
95
+ end
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ describe Puppet::Parser::Scope do
6
+ before :each do
7
+ @scope = Puppet::Parser::Scope.new()
8
+ @topscope = Puppet::Parser::Scope.new()
9
+ @scope.stubs(:parent).returns(@topscope)
10
+ end
11
+
12
+ describe Puppet::Parser::Scope, "when setvar is called with append=true" do
13
+
14
+ it "should raise error if the variable is already defined in this scope" do
15
+ @scope.setvar("var","1",nil,nil,false)
16
+ lambda { @scope.setvar("var","1",nil,nil,true) }.should raise_error(Puppet::ParseError)
17
+ end
18
+
19
+ it "it should lookup current variable value" do
20
+ @scope.expects(:lookupvar).with("var").returns("2")
21
+ @scope.setvar("var","1",nil,nil,true)
22
+ end
23
+
24
+ it "it should store the concatenated string '42'" do
25
+ @topscope.setvar("var","4",nil,nil,false)
26
+ @scope.setvar("var","2",nil,nil,true)
27
+ @scope.lookupvar("var").should == "42"
28
+ end
29
+
30
+ it "it should store the concatenated array [4,2]" do
31
+ @topscope.setvar("var",[4],nil,nil,false)
32
+ @scope.setvar("var",[2],nil,nil,true)
33
+ @scope.lookupvar("var").should == [4,2]
34
+ end
35
+
36
+ end
37
+
38
+ describe Puppet::Parser::Scope, "when calling number?" do
39
+
40
+ it "should return nil if called with anything not a number" do
41
+ Puppet::Parser::Scope.number?([2]).should be_nil
42
+ end
43
+
44
+ it "should return a Fixnum for a Fixnum" do
45
+ Puppet::Parser::Scope.number?(2).should be_an_instance_of(Fixnum)
46
+ end
47
+
48
+ it "should return a Float for a Float" do
49
+ Puppet::Parser::Scope.number?(2.34).should be_an_instance_of(Float)
50
+ end
51
+
52
+ it "should return 234 for '234'" do
53
+ Puppet::Parser::Scope.number?("234").should == 234
54
+ end
55
+
56
+ it "should return nil for 'not a number'" do
57
+ Puppet::Parser::Scope.number?("not a number").should be_nil
58
+ end
59
+
60
+ it "should return 23.4 for '23.4'" do
61
+ Puppet::Parser::Scope.number?("23.4").should == 23.4
62
+ end
63
+
64
+ it "should return 23.4e13 for '23.4e13'" do
65
+ Puppet::Parser::Scope.number?("23.4e13").should == 23.4e13
66
+ end
67
+
68
+ it "should understand negative numbers" do
69
+ Puppet::Parser::Scope.number?("-234").should == -234
70
+ end
71
+
72
+ it "should know how to convert exponential float numbers ala '23e13'" do
73
+ Puppet::Parser::Scope.number?("23e13").should == 23e13
74
+ end
75
+
76
+ it "should understand hexadecimal numbers" do
77
+ Puppet::Parser::Scope.number?("0x234").should == 0x234
78
+ end
79
+
80
+ it "should understand octal numbers" do
81
+ Puppet::Parser::Scope.number?("0755").should == 0755
82
+ end
83
+
84
+
85
+ end
86
+
87
+ end
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ describe Puppet::Parser::TemplateWrapper do
6
+ before(:each) do
7
+ compiler = stub('compiler', :environment => "foo")
8
+ parser = stub('parser', :watch_file => true)
9
+ @scope = stub('scope', :compiler => compiler, :parser => parser, :to_hash => {})
10
+ @file = "fake_template"
11
+ Puppet::Module.stubs(:find_template).returns("/tmp/fake_template")
12
+ FileTest.stubs(:exists?).returns("true")
13
+ File.stubs(:read).with("/tmp/fake_template").returns("template content")
14
+ @tw = Puppet::Parser::TemplateWrapper.new(@scope)
15
+ end
16
+
17
+ it "should create a new object TemplateWrapper from a scope" do
18
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
19
+
20
+ tw.should be_a_kind_of(Puppet::Parser::TemplateWrapper)
21
+ end
22
+
23
+ it "should check template file existance and read its content" do
24
+ Puppet::Module.expects(:find_template).with("fake_template", "foo").returns("/tmp/fake_template")
25
+ FileTest.expects(:exists?).with("/tmp/fake_template").returns(true)
26
+ File.expects(:read).with("/tmp/fake_template").returns("template content")
27
+
28
+ @tw.file = @file
29
+ end
30
+
31
+ it "should turn into a string like template[name] for file based template" do
32
+ @tw.file = @file
33
+ @tw.to_s.should eql("template[/tmp/fake_template]")
34
+ end
35
+
36
+ it "should turn into a string like template[inline] for string-based template" do
37
+ @tw.to_s.should eql("template[inline]")
38
+ end
39
+
40
+ it "should return the processed template contents with a call to result" do
41
+ template_mock = mock("template", :result => "woot!")
42
+ File.expects(:read).with("/tmp/fake_template").returns("template contents")
43
+ ERB.expects(:new).with("template contents", 0, "-").returns(template_mock)
44
+
45
+ @tw.file = @file
46
+ @tw.result.should eql("woot!")
47
+ end
48
+
49
+ it "should return the processed template contents with a call to result and a string" do
50
+ template_mock = mock("template", :result => "woot!")
51
+ ERB.expects(:new).with("template contents", 0, "-").returns(template_mock)
52
+
53
+ @tw.result("template contents").should eql("woot!")
54
+ end
55
+
56
+ it "should return the contents of a variable if called via method_missing" do
57
+ @scope.expects(:lookupvar).with("chicken", false).returns("is good")
58
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
59
+ tw.chicken.should eql("is good")
60
+ end
61
+
62
+ it "should throw an exception if a variable is called via method_missing and it does not exist" do
63
+ @scope.expects(:lookupvar).with("chicken", false).returns(:undefined)
64
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
65
+ lambda { tw.chicken }.should raise_error(Puppet::ParseError)
66
+ end
67
+
68
+ it "should allow you to check whether a variable is defined with has_variable?" do
69
+ @scope.expects(:lookupvar).with("chicken", false).returns("is good")
70
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
71
+ tw.has_variable?("chicken").should eql(true)
72
+ end
73
+
74
+ it "should allow you to check whether a variable is not defined with has_variable?" do
75
+ @scope.expects(:lookupvar).with("chicken", false).returns(:undefined)
76
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
77
+ tw.has_variable?("chicken").should eql(false)
78
+ end
79
+
80
+ it "should allow you to retrieve the defined classes with classes" do
81
+ catalog = mock 'catalog', :classes => ["class1", "class2"]
82
+ @scope.expects(:catalog).returns( catalog )
83
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
84
+ tw.classes().should == ["class1", "class2"]
85
+ end
86
+
87
+ it "should allow you to retrieve all the tags with all_tags" do
88
+ catalog = mock 'catalog', :tags => ["tag1", "tag2"]
89
+ @scope.expects(:catalog).returns( catalog )
90
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
91
+ tw.all_tags().should == ["tag1","tag2"]
92
+ end
93
+
94
+ it "should allow you to retrieve the tags defined in the current scope" do
95
+ @scope.expects(:tags).returns( ["tag1", "tag2"] )
96
+ tw = Puppet::Parser::TemplateWrapper.new(@scope)
97
+ tw.tags().should == ["tag1","tag2"]
98
+ end
99
+
100
+ it "should set all of the scope's variables as instance variables" do
101
+ template_mock = mock("template", :result => "woot!")
102
+ ERB.expects(:new).with("template contents", 0, "-").returns(template_mock)
103
+
104
+ @scope.expects(:to_hash).returns("one" => "foo")
105
+ @tw.result("template contents")
106
+
107
+ @tw.instance_variable_get("@one").should == "foo"
108
+ end
109
+
110
+ it "should not error out if one of the variables is a symbol" do
111
+ template_mock = mock("template", :result => "woot!")
112
+ ERB.expects(:new).with("template contents", 0, "-").returns(template_mock)
113
+
114
+ @scope.expects(:to_hash).returns(:_timestamp => "1234")
115
+ @tw.result("template contents")
116
+ end
117
+
118
+ %w{! . ; :}.each do |badchar|
119
+ it "should translate #{badchar} to _ when setting the instance variables" do
120
+ template_mock = mock("template", :result => "woot!")
121
+ ERB.expects(:new).with("template contents", 0, "-").returns(template_mock)
122
+
123
+ @scope.expects(:to_hash).returns("one#{badchar}" => "foo")
124
+ @tw.result("template contents")
125
+
126
+ @tw.instance_variable_get("@one_").should == "foo"
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ require 'puppet/property'
6
+
7
+ describe Puppet::Property do
8
+ describe "when setting the value" do
9
+ it "should just set the 'should' value" do
10
+ @class = Class.new(Puppet::Property)
11
+ @class.initvars
12
+ @property = @class.new :resource => mock('resource')
13
+
14
+ @property.expects(:should=).with("foo")
15
+ @property.value = "foo"
16
+ end
17
+ end
18
+
19
+ describe "when returning the value" do
20
+ before do
21
+ @class = Class.new(Puppet::Property)
22
+ @class.initvars
23
+ @property = @class.new :resource => mock('resource')
24
+ end
25
+
26
+ it "should return nil if no value is set" do
27
+ @property.value.should be_nil
28
+ end
29
+
30
+ it "should return any set 'should' value" do
31
+ @property.should = "foo"
32
+ @property.value.should == "foo"
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,168 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
4
+
5
+ require 'puppet/property/keyvalue'
6
+
7
+ klass = Puppet::Property::KeyValue
8
+
9
+ describe klass do
10
+
11
+ it "should be a subclass of Property" do
12
+ klass.superclass.must == Puppet::Property
13
+ end
14
+
15
+ describe "as an instance" do
16
+ before do
17
+ # Wow that's a messy interface to the resource.
18
+ klass.initvars
19
+ @resource = stub 'resource', :[]= => nil, :property => nil
20
+ @property = klass.new(:resource => @resource)
21
+ end
22
+
23
+ it "should have a , as default delimiter" do
24
+ @property.delimiter.should == ";"
25
+ end
26
+
27
+ it "should have a = as default separator" do
28
+ @property.separator.should == "="
29
+ end
30
+
31
+ it "should have a :membership as default membership" do
32
+ @property.membership.should == :key_value_membership
33
+ end
34
+
35
+ it "should return the same value passed into should_to_s" do
36
+ @property.should_to_s({:foo => "baz", :bar => "boo"}) == "foo=baz;bar=boo"
37
+ end
38
+
39
+ it "should return the passed in array values joined with the delimiter from is_to_s" do
40
+ @property.is_to_s({"foo" => "baz" , "bar" => "boo"}).should == "foo=baz;bar=boo"
41
+ end
42
+
43
+ describe "when calling inclusive?" do
44
+ it "should use the membership method to look up on the @resource" do
45
+ @property.expects(:membership).returns(:key_value_membership)
46
+ @resource.expects(:[]).with(:key_value_membership)
47
+ @property.inclusive?
48
+ end
49
+
50
+ it "should return true when @resource[membership] == inclusive" do
51
+ @property.stubs(:membership).returns(:key_value_membership)
52
+ @resource.stubs(:[]).with(:key_value_membership).returns(:inclusive)
53
+ @property.inclusive?.must == true
54
+ end
55
+
56
+ it "should return false when @resource[membership] != inclusive" do
57
+ @property.stubs(:membership).returns(:key_value_membership)
58
+ @resource.stubs(:[]).with(:key_value_membership).returns(:minimum)
59
+ @property.inclusive?.must == false
60
+ end
61
+ end
62
+
63
+ describe "when calling process_current_hash" do
64
+ it "should return {} if hash is :absent" do
65
+ @property.process_current_hash(:absent).must == {}
66
+ end
67
+
68
+ it "should set every key to nil if inclusive?" do
69
+ @property.stubs(:inclusive?).returns(true)
70
+ @property.process_current_hash({:foo => "bar", :do => "re"}).must == { :foo => nil, :do => nil }
71
+ end
72
+
73
+ it "should return the hash if !inclusive?" do
74
+ @property.stubs(:inclusive?).returns(false)
75
+ @property.process_current_hash({:foo => "bar", :do => "re"}).must == {:foo => "bar", :do => "re"}
76
+ end
77
+ end
78
+
79
+ describe "when calling should" do
80
+ it "should return nil if @should is nil" do
81
+ @property.should.must == nil
82
+ end
83
+
84
+ it "should call process_current_hash" do
85
+ @property.should = ["foo=baz", "bar=boo"]
86
+ @property.stubs(:retrieve).returns({:do => "re", :mi => "fa" })
87
+ @property.expects(:process_current_hash).returns({})
88
+ @property.should
89
+ end
90
+
91
+ it "should return the hashed values of @should and the nilled values of retrieve if inclusive" do
92
+ @property.should = ["foo=baz", "bar=boo"]
93
+ @property.expects(:retrieve).returns({:do => "re", :mi => "fa" })
94
+ @property.expects(:inclusive?).returns(true)
95
+ @property.should.must == { :foo => "baz", :bar => "boo", :do => nil, :mi => nil }
96
+ end
97
+
98
+ it "should return the hashed @should + the unique values of retrieve if !inclusive" do
99
+ @property.should = ["foo=baz", "bar=boo"]
100
+ @property.expects(:retrieve).returns({:foo => "diff", :do => "re", :mi => "fa"})
101
+ @property.expects(:inclusive?).returns(false)
102
+ @property.should.must == { :foo => "baz", :bar => "boo", :do => "re", :mi => "fa" }
103
+ end
104
+ end
105
+
106
+ describe "when calling retrieve" do
107
+ before do
108
+ @provider = mock("provider")
109
+ @property.stubs(:provider).returns(@provider)
110
+ end
111
+
112
+ it "should send 'name' to the provider" do
113
+ @provider.expects(:send).with(:keys)
114
+ @property.expects(:name).returns(:keys)
115
+ @property.retrieve
116
+ end
117
+
118
+ it "should return a hash with the provider returned info" do
119
+ @provider.stubs(:send).with(:keys).returns({"do" => "re", "mi" => "fa" })
120
+ @property.stubs(:name).returns(:keys)
121
+ @property.retrieve == {"do" => "re", "mi" => "fa" }
122
+ end
123
+
124
+ it "should return :absent when the provider returns :absent" do
125
+ @provider.stubs(:send).with(:keys).returns(:absent)
126
+ @property.stubs(:name).returns(:keys)
127
+ @property.retrieve == :absent
128
+ end
129
+ end
130
+
131
+ describe "when calling hashify" do
132
+ it "should return the array hashified" do
133
+ @property.hashify(["foo=baz", "bar=boo"]).must == { :foo => "baz", :bar => "boo" }
134
+ end
135
+ end
136
+
137
+ describe "when calling insync?" do
138
+ before do
139
+ @provider = mock("provider")
140
+ @property.stubs(:provider).returns(@provider)
141
+ @property.stubs(:name).returns(:prop_name)
142
+ end
143
+
144
+ it "should return true unless @should is defined and not nil" do
145
+ @property.insync?("foo") == true
146
+ end
147
+
148
+ it "should return true if the passed in values is nil" do
149
+ @property.should = "foo"
150
+ @property.insync?(nil) == true
151
+ end
152
+
153
+ it "should return true if hashified should value == (retrieved) value passed in" do
154
+ @provider.stubs(:prop_name).returns({ :foo => "baz", :bar => "boo" })
155
+ @property.should = ["foo=baz", "bar=boo"]
156
+ @property.expects(:inclusive?).returns(true)
157
+ @property.insync?({ :foo => "baz", :bar => "boo" }).must == true
158
+ end
159
+
160
+ it "should return false if prepared value != should value" do
161
+ @provider.stubs(:prop_name).returns({ "foo" => "bee", "bar" => "boo" })
162
+ @property.should = ["foo=baz", "bar=boo"]
163
+ @property.expects(:inclusive?).returns(true)
164
+ @property.insync?({ "foo" => "bee", "bar" => "boo" }).must == false
165
+ end
166
+ end
167
+ end
168
+ end