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,195 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::Definition, "when initializing" do
6
+ end
7
+
8
+ describe Puppet::Parser::AST::Definition, "when evaluating" do
9
+ before do
10
+ @type = Puppet::Parser::Resource
11
+ @parser = Puppet::Parser::Parser.new :Code => ""
12
+ @source = @parser.newclass ""
13
+ @definition = @parser.newdefine "mydefine"
14
+ @node = Puppet::Node.new("yaynode")
15
+ @compiler = Puppet::Parser::Compiler.new(@node, @parser)
16
+ @scope = @compiler.topscope
17
+
18
+ @resource = Puppet::Parser::Resource.new(:type => "mydefine", :title => "myresource", :scope => @scope, :source => @source)
19
+ end
20
+
21
+ it "should create a new scope" do
22
+ scope = nil
23
+ code = mock 'code'
24
+ code.expects(:safeevaluate).with do |scope|
25
+ scope.object_id.should_not == @scope.object_id
26
+ true
27
+ end
28
+ @definition.stubs(:code).returns(code)
29
+ @definition.evaluate_code(@resource)
30
+ end
31
+
32
+ # it "should copy its namespace to the scope"
33
+ #
34
+ # it "should mark the scope virtual if the resource is virtual"
35
+ #
36
+ # it "should mark the scope exported if the resource is exported"
37
+ #
38
+ # it "should set the resource's parameters as variables in the scope"
39
+ #
40
+ # it "should set the resource's title as a variable in the scope"
41
+ #
42
+ # it "should copy the resource's title in a 'name' variable in the scope"
43
+ #
44
+ # it "should not copy the resource's title as the name if 'name' is one of the resource parameters"
45
+ #
46
+ # it "should evaluate the associated code with the new scope"
47
+
48
+ def old_test_initialize
49
+ parser = mkparser
50
+
51
+ # Create a new definition
52
+ klass = parser.newdefine "yayness",
53
+ :arguments => [["owner", stringobj("nobody")], %w{mode}],
54
+ :code => AST::ASTArray.new(
55
+ :children => [resourcedef("file", "/tmp/$name",
56
+ "owner" => varref("owner"), "mode" => varref("mode"))]
57
+ )
58
+
59
+ # Test validattr? a couple different ways
60
+ [:owner, "owner", :schedule, "schedule"].each do |var|
61
+ assert(klass.validattr?(var), "%s was not considered valid" % var.inspect)
62
+ end
63
+
64
+ [:random, "random"].each do |var|
65
+ assert(! klass.validattr?(var), "%s was considered valid" % var.inspect)
66
+ end
67
+
68
+ end
69
+
70
+ def oldtest_evaluate
71
+ parser = mkparser
72
+ config = mkcompiler
73
+ config.send(:evaluate_main)
74
+ scope = config.topscope
75
+ klass = parser.newdefine "yayness",
76
+ :arguments => [["owner", stringobj("nobody")], %w{mode}],
77
+ :code => AST::ASTArray.new(
78
+ :children => [resourcedef("file", "/tmp/$name",
79
+ "owner" => varref("owner"), "mode" => varref("mode"))]
80
+ )
81
+
82
+ resource = Puppet::Parser::Resource.new(
83
+ :title => "first",
84
+ :type => "yayness",
85
+ :exported => false,
86
+ :virtual => false,
87
+ :scope => scope,
88
+ :source => scope.source
89
+ )
90
+ resource.send(:set_parameter, "name", "first")
91
+ resource.send(:set_parameter, "mode", "755")
92
+
93
+ resource.stubs(:title)
94
+ assert_nothing_raised do
95
+ klass.evaluate_code(resource)
96
+ end
97
+
98
+ firstobj = config.findresource("File[/tmp/first]")
99
+ assert(firstobj, "Did not create /tmp/first obj")
100
+
101
+ assert_equal("File", firstobj.type)
102
+ assert_equal("/tmp/first", firstobj.title)
103
+ assert_equal("nobody", firstobj[:owner])
104
+ assert_equal("755", firstobj[:mode])
105
+
106
+ # Make sure we can't evaluate it with the same args
107
+ assert_raise(Puppet::ParseError) do
108
+ klass.evaluate_code(resource)
109
+ end
110
+
111
+ # Now create another with different args
112
+ resource2 = Puppet::Parser::Resource.new(
113
+ :title => "second",
114
+ :type => "yayness",
115
+ :exported => false,
116
+ :virtual => false,
117
+ :scope => scope,
118
+ :source => scope.source
119
+ )
120
+ resource2.send(:set_parameter, "name", "second")
121
+ resource2.send(:set_parameter, "mode", "755")
122
+ resource2.send(:set_parameter, "owner", "daemon")
123
+
124
+ assert_nothing_raised do
125
+ klass.evaluate_code(resource2)
126
+ end
127
+
128
+ secondobj = config.findresource("File[/tmp/second]")
129
+ assert(secondobj, "Did not create /tmp/second obj")
130
+
131
+ assert_equal("File", secondobj.type)
132
+ assert_equal("/tmp/second", secondobj.title)
133
+ assert_equal("daemon", secondobj[:owner])
134
+ assert_equal("755", secondobj[:mode])
135
+ end
136
+
137
+ # #539 - definitions should support both names and titles
138
+ def oldtest_names_and_titles
139
+ parser = mkparser
140
+ scope = mkscope :parser => parser
141
+
142
+ [
143
+ {:name => "one", :title => "two"},
144
+ {:title => "mytitle"}
145
+ ].each_with_index do |hash, i|
146
+ # Create a definition that uses both name and title. Put this
147
+ # inside the loop so the subscope expectations work.
148
+ klass = parser.newdefine "yayness%s" % i
149
+
150
+ resource = Puppet::Parser::Resource.new(
151
+ :title => hash[:title],
152
+ :type => "yayness%s" % i,
153
+ :exported => false,
154
+ :virtual => false,
155
+ :scope => scope,
156
+ :source => scope.source
157
+ )
158
+
159
+ subscope = klass.subscope(scope, resource)
160
+
161
+ klass.expects(:subscope).returns(subscope)
162
+
163
+ if hash[:name]
164
+ resource.stubs(:to_hash).returns({:name => hash[:name]})
165
+ end
166
+
167
+ assert_nothing_raised("Could not evaluate definition with %s" % hash.inspect) do
168
+ klass.evaluate_code(resource)
169
+ end
170
+
171
+ name = hash[:name] || hash[:title]
172
+ title = hash[:title]
173
+
174
+ assert_equal(name, subscope.lookupvar("name"),
175
+ "Name did not get set correctly")
176
+ assert_equal(title, subscope.lookupvar("title"),
177
+ "title did not get set correctly")
178
+
179
+ [:name, :title].each do |param|
180
+ val = resource.send(param)
181
+ assert(subscope.tags.include?(val),
182
+ "Scope was not tagged with %s '%s'" % [param, val])
183
+ end
184
+ end
185
+ end
186
+
187
+ # Testing the root cause of #615. We should be using the fqname for the type, instead
188
+ # of just the short name.
189
+ def oldtest_fully_qualified_types
190
+ parser = mkparser
191
+ klass = parser.newclass("one::two")
192
+
193
+ assert_equal("one::two", klass.classname, "Class did not get fully qualified class name")
194
+ end
195
+ end
@@ -0,0 +1,77 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::Function do
6
+ before :each do
7
+ @scope = mock 'scope'
8
+ end
9
+
10
+ describe "when initializing" do
11
+ it "should not fail if the function doesn't exist" do
12
+ Puppet::Parser::Functions.stubs(:function).returns(false)
13
+
14
+ lambda{ Puppet::Parser::AST::Function.new :name => "dontexist" }.should_not raise_error(Puppet::ParseError)
15
+
16
+ end
17
+ end
18
+
19
+ describe "when evaluating" do
20
+
21
+ it "should fail if the function doesn't exist" do
22
+ Puppet::Parser::Functions.stubs(:function).returns(false)
23
+ func = Puppet::Parser::AST::Function.new :name => "dontexist"
24
+
25
+ lambda{ func.evaluate(@scope) }.should raise_error(Puppet::ParseError)
26
+ end
27
+
28
+ it "should fail if the function is a statement used as rvalue" do
29
+ Puppet::Parser::Functions.stubs(:function).with("exist").returns(true)
30
+ Puppet::Parser::Functions.stubs(:rvalue?).with("exist").returns(false)
31
+
32
+ func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :rvalue
33
+
34
+ lambda{ func.evaluate(@scope) }.should raise_error(Puppet::ParseError, "Function 'exist' does not return a value")
35
+ end
36
+
37
+ it "should fail if the function is an rvalue used as statement" do
38
+ Puppet::Parser::Functions.stubs(:function).with("exist").returns(true)
39
+ Puppet::Parser::Functions.stubs(:rvalue?).with("exist").returns(true)
40
+
41
+ func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :statement
42
+
43
+ lambda{ func.evaluate(@scope) }.should raise_error(Puppet::ParseError,"Function 'exist' must be the value of a statement")
44
+ end
45
+
46
+ it "should evaluate its arguments" do
47
+ argument = stub 'arg'
48
+ Puppet::Parser::Functions.stubs(:function).with("exist").returns(true)
49
+ func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :statement, :arguments => argument
50
+ @scope.stubs(:function_exist)
51
+
52
+ argument.expects(:safeevaluate).with(@scope).returns("argument")
53
+
54
+ func.evaluate(@scope)
55
+ end
56
+
57
+ it "should call the underlying ruby function" do
58
+ argument = stub 'arg', :safeevaluate => "nothing"
59
+ Puppet::Parser::Functions.stubs(:function).with("exist").returns(true)
60
+ func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :statement, :arguments => argument
61
+
62
+ @scope.expects(:function_exist).with("nothing")
63
+
64
+ func.evaluate(@scope)
65
+ end
66
+
67
+ it "should return the ruby function return for rvalue functions" do
68
+ argument = stub 'arg', :safeevaluate => "nothing"
69
+ Puppet::Parser::Functions.stubs(:function).with("exist").returns(true)
70
+ func = Puppet::Parser::AST::Function.new :name => "exist", :ftype => :statement, :arguments => argument
71
+ @scope.stubs(:function_exist).with("nothing").returns("returning")
72
+
73
+ func.evaluate(@scope).should == "returning"
74
+ end
75
+
76
+ end
77
+ end
@@ -0,0 +1,148 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::HostClass do
6
+ before :each do
7
+ @node = Puppet::Node.new "testnode"
8
+ @parser = Puppet::Parser::Parser.new :environment => "development"
9
+ @scope_resource = stub 'scope_resource', :builtin? => true
10
+ @compiler = Puppet::Parser::Compiler.new(@node, @parser)
11
+
12
+ @scope = @compiler.topscope
13
+ end
14
+
15
+ describe Puppet::Parser::AST::HostClass, "when evaluating" do
16
+
17
+ before do
18
+ @top = @parser.newclass "top"
19
+ @middle = @parser.newclass "middle", :parent => "top"
20
+ end
21
+
22
+ it "should create a resource that references itself" do
23
+ @top.evaluate(@scope)
24
+
25
+ @compiler.catalog.resource(:class, "top").should be_instance_of(Puppet::Parser::Resource)
26
+ end
27
+
28
+ it "should evaluate the parent class if one exists" do
29
+ @middle.evaluate(@scope)
30
+
31
+ @compiler.catalog.resource(:class, "top").should be_instance_of(Puppet::Parser::Resource)
32
+ end
33
+
34
+ it "should fail to evaluate if a parent class is defined but cannot be found" do
35
+ othertop = @parser.newclass "something", :parent => "yay"
36
+ lambda { othertop.evaluate(@scope) }.should raise_error(Puppet::ParseError)
37
+ end
38
+
39
+ it "should not create a new resource if one already exists" do
40
+ @compiler.catalog.expects(:resource).with(:class, "top").returns("something")
41
+ @compiler.catalog.expects(:add_resource).never
42
+ @top.evaluate(@scope)
43
+ end
44
+
45
+ it "should return the existing resource when not creating a new one" do
46
+ @compiler.catalog.expects(:resource).with(:class, "top").returns("something")
47
+ @compiler.catalog.expects(:add_resource).never
48
+ @top.evaluate(@scope).should == "something"
49
+ end
50
+
51
+ it "should not create a new parent resource if one already exists and it has a parent class" do
52
+ @top.evaluate(@scope)
53
+
54
+ top_resource = @compiler.catalog.resource(:class, "top")
55
+
56
+ @middle.evaluate(@scope)
57
+
58
+ @compiler.catalog.resource(:class, "top").should equal(top_resource)
59
+ end
60
+
61
+ # #795 - tag before evaluation.
62
+ it "should tag the catalog with the resource tags when it is evaluated" do
63
+ @middle.evaluate(@scope)
64
+
65
+ @compiler.catalog.should be_tagged("middle")
66
+ end
67
+
68
+ it "should tag the catalog with the parent class tags when it is evaluated" do
69
+ @middle.evaluate(@scope)
70
+
71
+ @compiler.catalog.should be_tagged("top")
72
+ end
73
+ end
74
+
75
+ describe Puppet::Parser::AST::HostClass, "when evaluating code" do
76
+
77
+ before do
78
+ @top_resource = stub "top_resource"
79
+ @top = @parser.newclass "top", :code => @top_resource
80
+
81
+ @middle_resource = stub "middle_resource"
82
+ @middle = @parser.newclass "top::middle", :parent => "top", :code => @middle_resource
83
+ end
84
+
85
+ it "should set its namespace to its fully qualified name" do
86
+ @middle.namespace.should == "top::middle"
87
+ end
88
+
89
+ it "should evaluate the code referred to by the class" do
90
+ @top_resource.expects(:safeevaluate)
91
+
92
+ resource = @top.evaluate(@scope)
93
+
94
+ @top.evaluate_code(resource)
95
+ end
96
+
97
+ it "should evaluate the parent class's code if it has a parent" do
98
+ @top_resource.expects(:safeevaluate)
99
+ @middle_resource.expects(:safeevaluate)
100
+
101
+ resource = @middle.evaluate(@scope)
102
+
103
+ @middle.evaluate_code(resource)
104
+ end
105
+
106
+ it "should not evaluate the parent class's code if the parent has already been evaluated" do
107
+ @top_resource.stubs(:safeevaluate)
108
+ resource = @top.evaluate(@scope)
109
+ @top.evaluate_code(resource)
110
+
111
+ @top_resource.expects(:safeevaluate).never
112
+ @middle_resource.stubs(:safeevaluate)
113
+ resource = @middle.evaluate(@scope)
114
+ @middle.evaluate_code(resource)
115
+ end
116
+
117
+ it "should use the parent class's scope as its parent scope" do
118
+ @top_resource.stubs(:safeevaluate)
119
+ @middle_resource.stubs(:safeevaluate)
120
+ resource = @middle.evaluate(@scope)
121
+ @middle.evaluate_code(resource)
122
+
123
+ @compiler.class_scope(@middle).parent.should equal(@compiler.class_scope(@top))
124
+ end
125
+
126
+ it "should add the class's name and title to its own scope" do
127
+ @top_resource.stubs(:safeevaluate)
128
+ @middle_resource.stubs(:safeevaluate)
129
+ resource = @middle.evaluate(@scope)
130
+ scope = stub_everything 'scope', :compiler => @compiler
131
+ @middle.stubs(:subscope).returns(scope)
132
+
133
+ scope.expects(:setvar).with("title","top::middle")
134
+ scope.expects(:setvar).with("name","top::middle")
135
+
136
+ @middle.evaluate_code(resource)
137
+ end
138
+
139
+ it "should add the parent class's namespace to its namespace search path" do
140
+ @top_resource.stubs(:safeevaluate)
141
+ @middle_resource.stubs(:safeevaluate)
142
+ resource = @middle.evaluate(@scope)
143
+ @middle.evaluate_code(resource)
144
+
145
+ @compiler.class_scope(@middle).namespaces.should be_include(@top.namespace)
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ describe Puppet::Parser::AST::Minus do
6
+ before :each do
7
+ @scope = Puppet::Parser::Scope.new()
8
+ end
9
+
10
+ it "should evaluate its argument" do
11
+ value = stub "value"
12
+ value.expects(:safeevaluate).with(@scope).returns(123)
13
+
14
+ operator = Puppet::Parser::AST::Minus.new :value => value
15
+ operator.evaluate(@scope)
16
+ end
17
+
18
+ it "should fail if argument is not a string or integer" do
19
+ array_ast = stub 'array_ast', :safeevaluate => [2]
20
+ operator = Puppet::Parser::AST::Minus.new :value => array_ast
21
+ lambda { operator.evaluate(@scope) }.should raise_error
22
+ end
23
+
24
+ it "should work with integer as string" do
25
+ string = stub 'string', :safeevaluate => "123"
26
+ operator = Puppet::Parser::AST::Minus.new :value => string
27
+ operator.evaluate(@scope).should == -123
28
+ end
29
+
30
+ it "should work with integers" do
31
+ int = stub 'int', :safeevaluate => 123
32
+ operator = Puppet::Parser::AST::Minus.new :value => int
33
+ operator.evaluate(@scope).should == -123
34
+ end
35
+
36
+ end