puppet 0.24.7 → 0.24.8

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 (489) hide show
  1. data/CHANGELOG +72 -0
  2. data/README.rst +38 -0
  3. data/Rakefile +3 -1
  4. data/bin/filebucket +0 -0
  5. data/bin/puppet +0 -0
  6. data/bin/puppetca +0 -0
  7. data/bin/puppetd +0 -0
  8. data/bin/puppetdoc +0 -0
  9. data/bin/puppetmasterd +0 -0
  10. data/bin/puppetrun +0 -0
  11. data/bin/ralsh +4 -0
  12. data/conf/gentoo/init.d/puppetmaster +0 -0
  13. data/conf/osx/createpackage.sh +0 -0
  14. data/conf/osx/preflight +0 -0
  15. data/conf/redhat/puppet.spec +20 -3
  16. data/conf/solaris/smf/svc-puppetd +0 -0
  17. data/conf/solaris/smf/svc-puppetmasterd +0 -0
  18. data/examples/etc/init.d/sleeper +0 -0
  19. data/examples/mac_dscl.pp +0 -0
  20. data/examples/mac_dscl_revert.pp +0 -0
  21. data/examples/mac_netinfo.pp +0 -0
  22. data/examples/mac_pkgdmg.pp +0 -0
  23. data/ext/bin/sleeper +0 -0
  24. data/ext/dbfix.sql +132 -0
  25. data/ext/logcheck/puppet +2 -1
  26. data/ext/module_puppet +0 -0
  27. data/ext/nagios/check_puppet.rb +0 -0
  28. data/ext/puppet-test +0 -0
  29. data/ext/puppetlast +0 -0
  30. data/ext/vim/syntax/puppet.vim +2 -1
  31. data/install.rb +2 -2
  32. data/lib/puppet.rb +1 -1
  33. data/lib/puppet/daemon.rb +0 -0
  34. data/lib/puppet/defaults.rb +9 -0
  35. data/lib/puppet/executables/client/certhandler.rb +6 -1
  36. data/lib/puppet/external/base64.rb +0 -0
  37. data/lib/puppet/external/nagios.rb +0 -0
  38. data/lib/puppet/external/nagios/base.rb +0 -0
  39. data/lib/puppet/external/nagios/parser.rb +39 -57
  40. data/lib/puppet/file_collection.rb +30 -0
  41. data/lib/puppet/file_collection/lookup.rb +20 -0
  42. data/lib/puppet/indirector/facts/facter.rb +6 -2
  43. data/lib/puppet/indirector/node/ldap.rb +75 -39
  44. data/lib/puppet/network/authstore.rb +0 -0
  45. data/lib/puppet/network/handler/filebucket.rb +0 -0
  46. data/lib/puppet/network/handler/fileserver.rb +0 -0
  47. data/lib/puppet/network/handler/report.rb +0 -0
  48. data/lib/puppet/network/handler/resource.rb +0 -0
  49. data/lib/puppet/network/handler/runner.rb +0 -0
  50. data/lib/puppet/network/rights.rb +0 -0
  51. data/lib/puppet/network/xmlrpc/client.rb +113 -53
  52. data/lib/puppet/node/facts.rb +0 -0
  53. data/lib/puppet/parser/ast.rb +4 -3
  54. data/lib/puppet/parser/ast/astarray.rb +2 -1
  55. data/lib/puppet/parser/ast/leaf.rb +1 -1
  56. data/lib/puppet/parser/ast/resource.rb +20 -20
  57. data/lib/puppet/parser/ast/resource_override.rb +2 -2
  58. data/lib/puppet/parser/collector.rb +1 -2
  59. data/lib/puppet/parser/functions/realize.rb +1 -1
  60. data/lib/puppet/parser/functions/regsubst.rb +93 -0
  61. data/lib/puppet/parser/functions/sprintf.rb +17 -0
  62. data/lib/puppet/parser/functions/versioncmp.rb +10 -0
  63. data/lib/puppet/parser/resource.rb +10 -6
  64. data/lib/puppet/parser/resource/param.rb +17 -14
  65. data/lib/puppet/parser/resource/reference.rb +2 -0
  66. data/lib/puppet/parser/scope.rb +3 -3
  67. data/lib/puppet/property/list.rb +5 -1
  68. data/lib/puppet/provider/augeas/augeas.rb +146 -44
  69. data/lib/puppet/provider/cron/crontab.rb +0 -0
  70. data/lib/puppet/provider/mailalias/aliases.rb +0 -0
  71. data/lib/puppet/provider/maillist/mailman.rb +0 -0
  72. data/lib/puppet/provider/mount/parsed.rb +0 -0
  73. data/lib/puppet/provider/naginator.rb +7 -2
  74. data/lib/puppet/provider/nameservice/directoryservice.rb +128 -44
  75. data/lib/puppet/provider/package/apple.rb +0 -0
  76. data/lib/puppet/provider/package/apt.rb +0 -0
  77. data/lib/puppet/provider/package/aptitude.rb +0 -0
  78. data/lib/puppet/provider/package/blastwave.rb +0 -0
  79. data/lib/puppet/provider/package/darwinport.rb +0 -0
  80. data/lib/puppet/provider/package/dpkg.rb +0 -0
  81. data/lib/puppet/provider/package/fink.rb +0 -0
  82. data/lib/puppet/provider/package/freebsd.rb +0 -0
  83. data/lib/puppet/provider/package/gem.rb +0 -0
  84. data/lib/puppet/provider/package/openbsd.rb +0 -0
  85. data/lib/puppet/provider/package/ports.rb +0 -0
  86. data/lib/puppet/provider/package/rpm.rb +0 -0
  87. data/lib/puppet/provider/package/sun.rb +0 -0
  88. data/lib/puppet/provider/package/sunfreeware.rb +0 -0
  89. data/lib/puppet/provider/package/up2date.rb +4 -2
  90. data/lib/puppet/provider/package/yum.rb +0 -0
  91. data/lib/puppet/provider/parsedfile.rb +47 -22
  92. data/lib/puppet/provider/port/parsed.rb +0 -0
  93. data/lib/puppet/provider/service/base.rb +0 -0
  94. data/lib/puppet/provider/service/debian.rb +0 -0
  95. data/lib/puppet/provider/service/gentoo.rb +1 -1
  96. data/lib/puppet/provider/service/init.rb +0 -0
  97. data/lib/puppet/provider/service/launchd.rb +13 -4
  98. data/lib/puppet/provider/service/redhat.rb +5 -5
  99. data/lib/puppet/provider/service/smf.rb +0 -0
  100. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +43 -16
  101. data/lib/puppet/provider/sshkey/parsed.rb +0 -0
  102. data/lib/puppet/provider/user/useradd.rb +1 -1
  103. data/lib/puppet/rails/database/003_add_environment_to_host.rb +6 -2
  104. data/lib/puppet/rails/host.rb +70 -19
  105. data/lib/puppet/rails/param_value.rb +31 -12
  106. data/lib/puppet/rails/resource.rb +36 -9
  107. data/lib/puppet/rails/resource_tag.rb +18 -0
  108. data/lib/puppet/reference/report.rb +1 -0
  109. data/lib/puppet/reports.rb +0 -0
  110. data/lib/puppet/sslcertificates.rb +0 -0
  111. data/lib/puppet/transaction.rb +1 -1
  112. data/lib/puppet/type.rb +2 -6
  113. data/lib/puppet/type/augeas.rb +23 -15
  114. data/lib/puppet/type/cron.rb +0 -0
  115. data/lib/puppet/type/exec.rb +0 -0
  116. data/lib/puppet/type/file/checksum.rb +7 -35
  117. data/lib/puppet/type/file/content.rb +11 -8
  118. data/lib/puppet/type/file/ensure.rb +0 -0
  119. data/lib/puppet/type/file/group.rb +0 -0
  120. data/lib/puppet/type/file/mode.rb +0 -0
  121. data/lib/puppet/type/file/owner.rb +0 -0
  122. data/lib/puppet/type/file/selcontext.rb +8 -0
  123. data/lib/puppet/type/file/source.rb +0 -0
  124. data/lib/puppet/type/file/type.rb +0 -0
  125. data/lib/puppet/type/filebucket.rb +0 -0
  126. data/lib/puppet/type/group.rb +0 -0
  127. data/lib/puppet/type/host.rb +0 -0
  128. data/lib/puppet/type/mailalias.rb +0 -0
  129. data/lib/puppet/type/maillist.rb +0 -0
  130. data/lib/puppet/type/mount.rb +0 -0
  131. data/lib/puppet/type/port.rb +0 -0
  132. data/lib/puppet/type/schedule.rb +0 -0
  133. data/lib/puppet/type/ssh_authorized_key.rb +14 -0
  134. data/lib/puppet/type/sshkey.rb +0 -0
  135. data/lib/puppet/type/tidy.rb +0 -0
  136. data/lib/puppet/type/user.rb +6 -0
  137. data/lib/puppet/type/yumrepo.rb +4 -1
  138. data/lib/puppet/type/zfs.rb +0 -0
  139. data/lib/puppet/type/zpool.rb +0 -0
  140. data/lib/puppet/util/autoload.rb +2 -2
  141. data/lib/puppet/util/filetype.rb +7 -96
  142. data/lib/puppet/util/inifile.rb +1 -0
  143. data/lib/puppet/util/instance_loader.rb +0 -0
  144. data/lib/puppet/util/loadedfile.rb +0 -0
  145. data/lib/puppet/util/nagios_maker.rb +4 -0
  146. data/lib/puppet/util/package.rb +2 -0
  147. data/lib/puppet/util/posix.rb +0 -0
  148. data/lib/puppet/util/rails/reference_serializer.rb +18 -0
  149. data/lib/puppet/util/selinux.rb +3 -1
  150. data/spec/integration/checksum.rb +1 -0
  151. data/spec/integration/defaults.rb +9 -0
  152. data/spec/integration/file_serving/configuration.rb +0 -0
  153. data/spec/integration/file_serving/content.rb +0 -0
  154. data/spec/integration/file_serving/metadata.rb +0 -0
  155. data/spec/integration/indirector/direct_file_server.rb +0 -0
  156. data/spec/integration/indirector/file_content/file_server.rb +0 -0
  157. data/spec/integration/indirector/file_metadata/file_server.rb +0 -0
  158. data/spec/integration/indirector/module_files.rb +0 -0
  159. data/spec/integration/indirector/node/ldap.rb +0 -0
  160. data/spec/integration/indirector/rest.rb +0 -0
  161. data/spec/integration/network/server/mongrel.rb +0 -0
  162. data/spec/integration/network/server/webrick.rb +0 -0
  163. data/spec/integration/node.rb +0 -0
  164. data/spec/integration/node/catalog.rb +0 -0
  165. data/spec/integration/node/facts.rb +0 -0
  166. data/spec/integration/provider/package.rb +0 -0
  167. data/spec/integration/provider/service/init.rb +0 -0
  168. data/spec/integration/reference/providers.rb +0 -0
  169. data/spec/integration/reports.rb +4 -0
  170. data/spec/integration/transaction/report.rb +7 -1
  171. data/spec/integration/type/package.rb +5 -2
  172. data/spec/integration/util/file_locking.rb +0 -0
  173. data/spec/unit/executables/client/certhandler.rb +13 -0
  174. data/spec/unit/file_collection.rb +53 -0
  175. data/spec/unit/file_collection/lookup.rb +46 -0
  176. data/spec/unit/file_serving/configuration.rb +0 -0
  177. data/spec/unit/file_serving/configuration/parser.rb +0 -0
  178. data/spec/unit/file_serving/content.rb +0 -0
  179. data/spec/unit/file_serving/file_base.rb +0 -0
  180. data/spec/unit/file_serving/fileset.rb +0 -0
  181. data/spec/unit/file_serving/indirection_hooks.rb +0 -0
  182. data/spec/unit/file_serving/metadata.rb +0 -0
  183. data/spec/unit/file_serving/mount.rb +0 -0
  184. data/spec/unit/file_serving/terminus_helper.rb +0 -0
  185. data/spec/unit/indirector.rb +0 -0
  186. data/spec/unit/indirector/catalog/compiler.rb +0 -0
  187. data/spec/unit/indirector/catalog/yaml.rb +0 -0
  188. data/spec/unit/indirector/checksum/file.rb +0 -0
  189. data/spec/unit/indirector/code.rb +0 -0
  190. data/spec/unit/indirector/direct_file_server.rb +0 -0
  191. data/spec/unit/indirector/envelope.rb +0 -0
  192. data/spec/unit/indirector/exec.rb +0 -0
  193. data/spec/unit/indirector/facts/facter.rb +27 -2
  194. data/spec/unit/indirector/facts/yaml.rb +0 -0
  195. data/spec/unit/indirector/file.rb +0 -0
  196. data/spec/unit/indirector/file_content/file.rb +0 -0
  197. data/spec/unit/indirector/file_content/file_server.rb +0 -0
  198. data/spec/unit/indirector/file_content/modules.rb +0 -0
  199. data/spec/unit/indirector/file_content/rest.rb +0 -0
  200. data/spec/unit/indirector/file_metadata/file.rb +0 -0
  201. data/spec/unit/indirector/file_metadata/file_server.rb +0 -0
  202. data/spec/unit/indirector/file_metadata/modules.rb +0 -0
  203. data/spec/unit/indirector/file_metadata/rest.rb +0 -0
  204. data/spec/unit/indirector/file_server.rb +0 -0
  205. data/spec/unit/indirector/indirection.rb +0 -0
  206. data/spec/unit/indirector/ldap.rb +0 -0
  207. data/spec/unit/indirector/memory.rb +0 -0
  208. data/spec/unit/indirector/module_files.rb +0 -0
  209. data/spec/unit/indirector/node/exec.rb +0 -0
  210. data/spec/unit/indirector/node/ldap.rb +20 -0
  211. data/spec/unit/indirector/node/memory.rb +0 -0
  212. data/spec/unit/indirector/node/plain.rb +0 -0
  213. data/spec/unit/indirector/node/rest.rb +0 -0
  214. data/spec/unit/indirector/node/yaml.rb +0 -0
  215. data/spec/unit/indirector/plain.rb +0 -0
  216. data/spec/unit/indirector/report/processor.rb +0 -0
  217. data/spec/unit/indirector/request.rb +0 -0
  218. data/spec/unit/indirector/rest.rb +0 -0
  219. data/spec/unit/indirector/ssl_rsa/file.rb +5 -0
  220. data/spec/unit/indirector/terminus.rb +0 -0
  221. data/spec/unit/indirector/yaml.rb +0 -0
  222. data/spec/unit/module.rb +0 -0
  223. data/spec/unit/network/client.rb +0 -0
  224. data/spec/unit/network/client/master.rb +0 -0
  225. data/spec/unit/network/http.rb +0 -0
  226. data/spec/unit/network/http/mongrel.rb +0 -0
  227. data/spec/unit/network/http/mongrel/rest.rb +0 -0
  228. data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
  229. data/spec/unit/network/http/webrick.rb +0 -0
  230. data/spec/unit/network/http/webrick/rest.rb +0 -0
  231. data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
  232. data/spec/unit/network/http_pool.rb +0 -0
  233. data/spec/unit/network/server.rb +0 -0
  234. data/spec/unit/network/xmlrpc/client.rb +165 -7
  235. data/spec/unit/node.rb +0 -0
  236. data/spec/unit/node/catalog.rb +1 -0
  237. data/spec/unit/node/environment.rb +0 -0
  238. data/spec/unit/node/facts.rb +0 -0
  239. data/spec/unit/other/checksum.rb +0 -0
  240. data/spec/unit/other/pgraph.rb +0 -0
  241. data/spec/unit/other/transbucket.rb +4 -4
  242. data/spec/unit/other/transobject.rb +0 -0
  243. data/spec/unit/parameter.rb +0 -0
  244. data/spec/unit/parser/ast.rb +5 -1
  245. data/spec/unit/parser/ast/arithmetic_operator.rb +0 -0
  246. data/spec/unit/parser/ast/astarray.rb +2 -2
  247. data/spec/unit/parser/ast/boolean_operator.rb +0 -0
  248. data/spec/unit/parser/ast/collexpr.rb +0 -0
  249. data/spec/unit/parser/ast/comparison_operator.rb +0 -0
  250. data/spec/unit/parser/ast/definition.rb +0 -0
  251. data/spec/unit/parser/ast/hostclass.rb +0 -0
  252. data/spec/unit/parser/ast/minus.rb +0 -0
  253. data/spec/unit/parser/ast/node.rb +0 -0
  254. data/spec/unit/parser/ast/nop.rb +0 -0
  255. data/spec/unit/parser/ast/not.rb +0 -0
  256. data/spec/unit/parser/ast/resource.rb +103 -0
  257. data/spec/unit/parser/ast/resource_override.rb +0 -0
  258. data/spec/unit/parser/ast/resource_reference.rb +0 -0
  259. data/spec/unit/parser/ast/vardef.rb +0 -0
  260. data/spec/unit/parser/collector.rb +4 -4
  261. data/spec/unit/parser/compiler.rb +0 -0
  262. data/spec/unit/parser/functions/realize.rb +51 -0
  263. data/spec/unit/parser/functions/regsubst.rb +88 -0
  264. data/spec/unit/parser/functions/sprintf.rb +42 -0
  265. data/spec/unit/parser/functions/versioncmp.rb +29 -0
  266. data/spec/unit/parser/interpreter.rb +0 -0
  267. data/spec/unit/parser/lexer.rb +0 -0
  268. data/spec/unit/parser/parser.rb +0 -0
  269. data/spec/unit/parser/resource.rb +4 -0
  270. data/spec/unit/parser/resource/reference.rb +4 -0
  271. data/spec/unit/parser/scope.rb +14 -0
  272. data/spec/unit/parser/templatewrapper.rb +0 -0
  273. data/spec/unit/property.rb +0 -0
  274. data/spec/unit/property/list.rb +4 -0
  275. data/spec/unit/provider/augeas/augeas.rb +219 -92
  276. data/spec/unit/provider/confine.rb +0 -0
  277. data/spec/unit/provider/confine/exists.rb +0 -0
  278. data/spec/unit/provider/confine/false.rb +0 -0
  279. data/spec/unit/provider/confine/feature.rb +0 -0
  280. data/spec/unit/provider/confine/true.rb +0 -0
  281. data/spec/unit/provider/confine/variable.rb +0 -0
  282. data/spec/unit/provider/confine_collection.rb +0 -0
  283. data/spec/unit/provider/confiner.rb +0 -0
  284. data/spec/unit/provider/group/groupadd.rb +0 -0
  285. data/spec/unit/provider/group/ldap.rb +0 -0
  286. data/spec/unit/provider/ldap.rb +0 -0
  287. data/spec/unit/provider/macauthorization.rb +0 -0
  288. data/spec/unit/provider/mcx/mcxcontent.rb +0 -0
  289. data/spec/unit/provider/mount.rb +0 -0
  290. data/spec/unit/provider/mount/parsed.rb +1 -0
  291. data/spec/unit/provider/naginator.rb +58 -0
  292. data/spec/unit/provider/package/apt.rb +0 -0
  293. data/spec/unit/provider/package/dpkg.rb +0 -0
  294. data/spec/unit/provider/parsedfile.rb +95 -0
  295. data/spec/unit/provider/selboolean.rb +0 -0
  296. data/spec/unit/provider/selmodule.rb +0 -0
  297. data/spec/unit/provider/service/launchd.rb +9 -1
  298. data/spec/unit/provider/ssh_authorized_key/parsed.rb +63 -19
  299. data/spec/unit/provider/user/hpux.rb +0 -0
  300. data/spec/unit/provider/user/ldap.rb +0 -0
  301. data/spec/unit/provider/user/useradd.rb +0 -0
  302. data/spec/unit/provider/zfs/solaris.rb +0 -0
  303. data/spec/unit/provider/zone/solaris.rb +0 -0
  304. data/spec/unit/provider/zpool/solaris.rb +0 -0
  305. data/spec/unit/rails.rb +1 -0
  306. data/spec/unit/relationship.rb +0 -0
  307. data/spec/unit/reports.rb +0 -0
  308. data/spec/unit/resource_reference.rb +0 -0
  309. data/spec/unit/simple_graph.rb +0 -0
  310. data/spec/unit/{other/transaction.rb → transaction.rb} +16 -1
  311. data/spec/unit/transaction/change.rb +0 -0
  312. data/spec/unit/transaction/event.rb +0 -0
  313. data/spec/unit/transaction/report.rb +0 -0
  314. data/spec/unit/type.rb +0 -0
  315. data/spec/unit/type/computer.rb +0 -0
  316. data/spec/unit/type/exec.rb +0 -0
  317. data/spec/unit/type/file.rb +2 -0
  318. data/spec/unit/type/file/content.rb +30 -0
  319. data/spec/unit/type/file/ensure.rb +0 -0
  320. data/spec/unit/type/file/group.rb +0 -0
  321. data/spec/unit/type/file/owner.rb +0 -0
  322. data/spec/unit/type/file/selinux.rb +6 -0
  323. data/spec/unit/type/group.rb +3 -0
  324. data/spec/unit/type/macauthorization.rb +0 -0
  325. data/spec/unit/type/mcx.rb +0 -0
  326. data/spec/unit/type/mount.rb +0 -0
  327. data/spec/unit/type/nagios.rb +0 -0
  328. data/spec/unit/type/noop_metaparam.rb +1 -0
  329. data/spec/unit/type/package.rb +0 -0
  330. data/spec/unit/type/schedule.rb +0 -0
  331. data/spec/unit/type/selboolean.rb +0 -0
  332. data/spec/unit/type/selmodule.rb +0 -0
  333. data/spec/unit/type/service.rb +0 -0
  334. data/spec/unit/type/ssh_authorized_key.rb +31 -8
  335. data/spec/unit/type/tidy.rb +4 -0
  336. data/spec/unit/type/user.rb +17 -0
  337. data/spec/unit/type/zfs.rb +0 -0
  338. data/spec/unit/type/zone.rb +0 -0
  339. data/spec/unit/type/zpool.rb +0 -0
  340. data/spec/unit/util/autoload.rb +39 -0
  341. data/spec/unit/util/checksums.rb +0 -0
  342. data/spec/unit/util/constant_inflector.rb +0 -0
  343. data/spec/unit/util/file_locking.rb +0 -0
  344. data/spec/unit/util/filetype.rb +110 -0
  345. data/spec/unit/util/ldap/connection.rb +0 -0
  346. data/spec/unit/util/ldap/generator.rb +0 -0
  347. data/spec/unit/util/ldap/manager.rb +0 -0
  348. data/spec/unit/util/loadedfile.rb +0 -0
  349. data/spec/unit/util/log.rb +0 -0
  350. data/spec/unit/util/metric.rb +0 -0
  351. data/spec/unit/util/nagios_maker.rb +32 -34
  352. data/spec/unit/util/package.rb +21 -0
  353. data/spec/unit/util/posix.rb +0 -0
  354. data/spec/unit/util/resource_template.rb +0 -0
  355. data/spec/unit/util/settings.rb +0 -0
  356. data/spec/unit/util/storage.rb +0 -0
  357. data/spec/unit/util/tagging.rb +0 -0
  358. data/spec/unit/util/uri_helper.rb +0 -0
  359. data/spec/unit/util/warnings.rb +0 -0
  360. data/test/certmgr/ca.rb +0 -0
  361. data/test/certmgr/certmgr.rb +0 -0
  362. data/test/certmgr/inventory.rb +0 -0
  363. data/test/certmgr/support.rb +0 -0
  364. data/test/data/snippets/subclass_name_duplication.pp +0 -0
  365. data/test/executables/filebucket.rb +6 -3
  366. data/test/executables/puppetbin.rb +1 -1
  367. data/test/executables/puppetca.rb +0 -0
  368. data/test/executables/puppetd.rb +0 -0
  369. data/test/executables/puppetmasterd.rb +0 -0
  370. data/test/executables/puppetmodule.rb +0 -0
  371. data/test/language/ast.rb +0 -0
  372. data/test/language/ast/casestatement.rb +0 -0
  373. data/test/language/ast/resource.rb +0 -0
  374. data/test/language/ast/resource_reference.rb +0 -0
  375. data/test/language/ast/selector.rb +0 -0
  376. data/test/language/ast/variable.rb +0 -0
  377. data/test/language/functions.rb +0 -0
  378. data/test/language/parser.rb +0 -0
  379. data/test/language/resource.rb +0 -40
  380. data/test/language/scope.rb +0 -0
  381. data/test/language/snippets.rb +0 -0
  382. data/test/language/transportable.rb +0 -0
  383. data/test/lib/puppettest.rb +3 -0
  384. data/test/lib/puppettest/support/resources.rb +0 -0
  385. data/test/network/authconfig.rb +0 -0
  386. data/test/network/authorization.rb +0 -0
  387. data/test/network/authstore.rb +0 -0
  388. data/test/network/client/ca.rb +0 -0
  389. data/test/network/client/client.rb +0 -0
  390. data/test/network/client/dipper.rb +0 -0
  391. data/test/network/client/master.rb +0 -0
  392. data/test/network/client/resource.rb +0 -0
  393. data/test/network/client_request.rb +0 -0
  394. data/test/network/daemon.rb +0 -0
  395. data/test/network/handler/bucket.rb +0 -0
  396. data/test/network/handler/ca.rb +0 -0
  397. data/test/network/handler/fileserver.rb +0 -0
  398. data/test/network/handler/handler.rb +0 -0
  399. data/test/network/handler/master.rb +0 -0
  400. data/test/network/handler/report.rb +0 -0
  401. data/test/network/handler/resource.rb +0 -0
  402. data/test/network/handler/runner.rb +0 -0
  403. data/test/network/rights.rb +0 -0
  404. data/test/network/server/mongrel_test.rb +0 -0
  405. data/test/network/server/webrick.rb +0 -0
  406. data/test/network/xmlrpc/client.rb +0 -0
  407. data/test/network/xmlrpc/processor.rb +0 -0
  408. data/test/network/xmlrpc/server.rb +0 -0
  409. data/test/network/xmlrpc/webrick_servlet.rb +0 -0
  410. data/test/other/dsl.rb +0 -0
  411. data/test/other/events.rb +0 -0
  412. data/test/other/overrides.rb +0 -0
  413. data/test/other/provider.rb +0 -0
  414. data/test/other/puppet.rb +0 -0
  415. data/test/other/relationships.rb +0 -0
  416. data/test/other/report.rb +0 -0
  417. data/test/other/transactions.rb +0 -0
  418. data/test/puppet/conffiles.rb +0 -0
  419. data/test/puppet/defaults.rb +0 -0
  420. data/test/puppet/errortest.rb +0 -0
  421. data/test/puppet/tc_suidmanager.rb +0 -0
  422. data/test/rails/ast.rb +0 -0
  423. data/test/rails/configuration.rb +0 -0
  424. data/test/rails/host.rb +0 -0
  425. data/test/rails/rails.rb +0 -0
  426. data/test/rails/railsparameter.rb +0 -0
  427. data/test/rails/railsresource.rb +0 -0
  428. data/test/ral/manager/attributes.rb +0 -0
  429. data/test/ral/manager/instances.rb +0 -0
  430. data/test/ral/manager/manager.rb +0 -0
  431. data/test/ral/manager/provider.rb +0 -0
  432. data/test/ral/manager/type.rb +0 -3
  433. data/test/ral/providers/cron/crontab.rb +0 -0
  434. data/test/ral/providers/group.rb +0 -0
  435. data/test/ral/providers/host/netinfo.rb +0 -0
  436. data/test/ral/providers/host/parsed.rb +0 -0
  437. data/test/ral/providers/mailalias/aliases.rb +0 -0
  438. data/test/ral/providers/mount/netinfo.rb +0 -0
  439. data/test/ral/providers/nameservice.rb +0 -0
  440. data/test/ral/providers/package.rb +0 -0
  441. data/test/ral/providers/package/aptitude.rb +0 -0
  442. data/test/ral/providers/package/aptrpm.rb +0 -0
  443. data/test/ral/providers/parsedfile.rb +0 -0
  444. data/test/ral/providers/port/parsed.rb +0 -0
  445. data/test/ral/providers/provider.rb +0 -0
  446. data/test/ral/providers/service/base.rb +0 -0
  447. data/test/ral/providers/service/debian.rb +0 -0
  448. data/test/ral/providers/sshkey/parsed.rb +0 -0
  449. data/test/ral/providers/user.rb +0 -0
  450. data/test/ral/providers/user/useradd.rb +0 -0
  451. data/test/ral/type/basic.rb +0 -0
  452. data/test/ral/type/cron.rb +0 -0
  453. data/test/ral/type/exec.rb +0 -0
  454. data/test/ral/type/file.rb +0 -0
  455. data/test/ral/type/file/target.rb +0 -0
  456. data/test/ral/type/filebucket.rb +0 -0
  457. data/test/ral/type/fileignoresource.rb +0 -0
  458. data/test/ral/type/filesources.rb +0 -0
  459. data/test/ral/type/group.rb +0 -0
  460. data/test/ral/type/host.rb +0 -0
  461. data/test/ral/type/mailalias.rb +0 -0
  462. data/test/ral/type/parameter.rb +0 -0
  463. data/test/ral/type/port.rb +0 -0
  464. data/test/ral/type/property.rb +0 -0
  465. data/test/ral/type/resources.rb +0 -0
  466. data/test/ral/type/service.rb +0 -0
  467. data/test/ral/type/sshkey.rb +0 -0
  468. data/test/ral/type/tidy.rb +0 -0
  469. data/test/ral/type/user.rb +0 -0
  470. data/test/ral/type/yumrepo.rb +0 -0
  471. data/test/ral/type/zone.rb +0 -0
  472. data/test/test +0 -0
  473. data/test/util/autoload.rb +0 -0
  474. data/test/util/classgen.rb +0 -0
  475. data/test/util/execution.rb +0 -0
  476. data/test/util/features.rb +0 -0
  477. data/test/util/fileparsing.rb +0 -0
  478. data/test/util/inifile.rb +0 -0
  479. data/test/util/instance_loader.rb +0 -0
  480. data/test/util/log.rb +0 -0
  481. data/test/util/metrics.rb +0 -0
  482. data/test/util/package.rb +0 -0
  483. data/test/util/pidlock.rb +0 -0
  484. data/test/util/settings.rb +0 -0
  485. data/test/util/storage.rb +0 -0
  486. data/test/util/subclass_loader.rb +0 -0
  487. data/test/util/utiltest.rb +0 -0
  488. metadata +981 -968
  489. data/test/util/filetype.rb +0 -137
@@ -49,7 +49,12 @@ module Puppet
49
49
  exit(23) if @one_time
50
50
  end
51
51
 
52
- sleep @wait_for_cert
52
+ if @wait_for_cert > 0
53
+ sleep @wait_for_cert
54
+ else
55
+ Puppet.notice "waitforcert disabled; exiting with no certificate"
56
+ exit(1)
57
+ end
53
58
  end
54
59
  end
55
60
 
File without changes
File without changes
File without changes
@@ -1,22 +1,20 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by racc 1.4.4
3
+ # This file is automatically generated by racc 1.4.5
4
4
  # from racc grammer file "grammar.ry".
5
5
  #
6
6
  #
7
7
  # parser.rb: generated by racc (runtime embedded)
8
8
  #
9
-
10
- ###### racc/parser.rb
11
-
9
+ ###### racc/parser.rb begin
12
10
  unless $".index 'racc/parser.rb'
13
11
  $".push 'racc/parser.rb'
14
12
 
15
- self.class.module_eval <<'..end /usr/lib/ruby/1.8/racc/parser.rb modeval..id1306b79176', '/usr/lib/ruby/1.8/racc/parser.rb', 1
13
+ self.class.module_eval <<'..end racc/parser.rb modeval..id5256434e8a', 'racc/parser.rb', 1
16
14
  #
17
- # parser.rb
15
+ # $Id: parser.rb,v 1.7 2005/11/20 17:31:32 aamine Exp $
18
16
  #
19
- # Copyright (c) 1999-2003 Minero Aoki <aamine@loveruby.net>
17
+ # Copyright (c) 1999-2005 Minero Aoki
20
18
  #
21
19
  # This program is free software.
22
20
  # You can distribute/modify this program under the same terms of ruby.
@@ -25,8 +23,6 @@ self.class.module_eval <<'..end /usr/lib/ruby/1.8/racc/parser.rb modeval..id1306
25
23
  # into a Racc output file, you may use that output file
26
24
  # without restriction.
27
25
  #
28
- # $raccId: parser.rb,v 1.4 2003/11/03 13:41:47 aamine Exp $
29
- #
30
26
 
31
27
  unless defined?(NotImplementedError)
32
28
  NotImplementedError = NotImplementError
@@ -39,7 +35,6 @@ unless defined?(::ParseError)
39
35
  ParseError = Racc::ParseError
40
36
  end
41
37
 
42
-
43
38
  module Racc
44
39
 
45
40
  unless defined?(Racc_No_Extentions)
@@ -48,14 +43,14 @@ module Racc
48
43
 
49
44
  class Parser
50
45
 
51
- Racc_Runtime_Version = '1.4.4'
52
- Racc_Runtime_Revision = '$raccRevision: 1.4 $'.split[1]
46
+ Racc_Runtime_Version = '1.4.5'
47
+ Racc_Runtime_Revision = '$Revision: 1.7 $'.split[1]
53
48
 
54
- Racc_Runtime_Core_Version_R = '1.4.4'
55
- Racc_Runtime_Core_Revision_R = '$raccRevision: 1.4 $'.split[1]
49
+ Racc_Runtime_Core_Version_R = '1.4.5'
50
+ Racc_Runtime_Core_Revision_R = '$Revision: 1.7 $'.split[1]
56
51
  begin
57
52
  require 'racc/cparse'
58
- # Racc_Runtime_Core_Version_C = (defined in extension)
53
+ # Racc_Runtime_Core_Version_C = (defined in extention)
59
54
  Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2]
60
55
  unless new.respond_to?(:_racc_do_parse_c, true)
61
56
  raise LoadError, 'old cparse.so'
@@ -121,7 +116,7 @@ module Racc
121
116
  raise NotImplementedError, "#{self.class}\#next_token is not defined"
122
117
  end
123
118
 
124
- def _racc_do_parse_rb( arg, in_debug )
119
+ def _racc_do_parse_rb(arg, in_debug)
125
120
  action_table, action_check, action_default, action_pointer,
126
121
  goto_table, goto_check, goto_default, goto_pointer,
127
122
  nt_base, reduce_table, token_table, shift_n,
@@ -166,11 +161,11 @@ module Racc
166
161
  ### yyparse
167
162
  ###
168
163
 
169
- def yyparse( recv, mid )
164
+ def yyparse(recv, mid)
170
165
  __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true)
171
166
  end
172
167
 
173
- def _racc_yyparse_rb( recv, mid, arg, c_debug )
168
+ def _racc_yyparse_rb(recv, mid, arg, c_debug)
174
169
  action_table, action_check, action_default, action_pointer,
175
170
  goto_table, goto_check, goto_default, goto_pointer,
176
171
  nt_base, reduce_table, token_table, shift_n,
@@ -189,7 +184,6 @@ module Racc
189
184
  end
190
185
  end
191
186
  recv.__send__(mid) do |tok, val|
192
- # $stderr.puts "rd: tok=#{tok}, val=#{val}"
193
187
  unless tok
194
188
  @racc_t = 0
195
189
  else
@@ -203,12 +197,7 @@ module Racc
203
197
  act = action_table[i] and
204
198
  action_check[i] == @racc_state[-1]
205
199
  act = action_default[@racc_state[-1]]
206
- # $stderr.puts "02: act=#{act}"
207
- # $stderr.puts "curstate=#{@racc_state[-1]}"
208
- else
209
- # $stderr.puts "01: act=#{act}"
210
200
  end
211
-
212
201
  while act = _racc_evalact(act, arg)
213
202
  ;
214
203
  end
@@ -221,9 +210,6 @@ module Racc
221
210
  act = action_table[i] and
222
211
  action_check[i] == @racc_state[-1]
223
212
  act = action_default[@racc_state[-1]]
224
- # $stderr.puts "04: act=#{act}"
225
- else
226
- # $stderr.puts "03: act=#{act}"
227
213
  end
228
214
  while act = _racc_evalact(act, arg)
229
215
  ;
@@ -237,13 +223,12 @@ module Racc
237
223
  ### common
238
224
  ###
239
225
 
240
- def _racc_evalact( act, arg )
241
- # $stderr.puts "ea: act=#{act}"
226
+ def _racc_evalact(act, arg)
242
227
  action_table, action_check, action_default, action_pointer,
243
228
  goto_table, goto_check, goto_default, goto_pointer,
244
229
  nt_base, reduce_table, token_table, shift_n,
245
230
  reduce_n, use_result, * = arg
246
- nerr = 0 # tmp
231
+ nerr = 0 # tmp
247
232
 
248
233
  if act > 0 and act < shift_n
249
234
  #
@@ -276,7 +261,7 @@ nerr = 0 # tmp
276
261
  when 2 # yyaccept
277
262
  return shift_n
278
263
  else
279
- raise RuntimeError, '[Racc Bug] unknown jump code'
264
+ raise '[Racc Bug] unknown jump code'
280
265
  end
281
266
  end
282
267
 
@@ -314,7 +299,6 @@ nerr = 0 # tmp
314
299
  break
315
300
  end
316
301
  end
317
-
318
302
  throw :racc_end_parse, nil if @racc_state.size <= 1
319
303
  @racc_state.pop
320
304
  @racc_vstack.pop
@@ -326,7 +310,7 @@ nerr = 0 # tmp
326
310
  return act
327
311
 
328
312
  else
329
- raise RuntimeError, "[Racc Bug] unknown action #{act.inspect}"
313
+ raise "[Racc Bug] unknown action #{act.inspect}"
330
314
  end
331
315
 
332
316
  racc_next_state(@racc_state[-1], @racc_state) if @yydebug
@@ -334,7 +318,7 @@ nerr = 0 # tmp
334
318
  nil
335
319
  end
336
320
 
337
- def _racc_do_reduce( arg, act )
321
+ def _racc_do_reduce(arg, act)
338
322
  action_table, action_check, action_default, action_pointer,
339
323
  goto_table, goto_check, goto_default, goto_pointer,
340
324
  nt_base, reduce_table, token_table, shift_n,
@@ -375,7 +359,7 @@ nerr = 0 # tmp
375
359
  goto_default[k1]
376
360
  end
377
361
 
378
- def on_error( t, val, vstack )
362
+ def on_error(t, val, vstack)
379
363
  raise ParseError, sprintf("\nparse error on value %s (%s)",
380
364
  val.inspect, token_to_str(t) || '?')
381
365
  end
@@ -396,20 +380,20 @@ nerr = 0 # tmp
396
380
  # for debugging output
397
381
  #
398
382
 
399
- def racc_read_token( t, tok, val )
383
+ def racc_read_token(t, tok, val)
400
384
  @racc_debug_out.print 'read '
401
385
  @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
402
386
  @racc_debug_out.puts val.inspect
403
387
  @racc_debug_out.puts
404
388
  end
405
389
 
406
- def racc_shift( tok, tstack, vstack )
390
+ def racc_shift(tok, tstack, vstack)
407
391
  @racc_debug_out.puts "shift #{racc_token2str tok}"
408
392
  racc_print_stacks tstack, vstack
409
393
  @racc_debug_out.puts
410
394
  end
411
395
 
412
- def racc_reduce( toks, sim, tstack, vstack )
396
+ def racc_reduce(toks, sim, tstack, vstack)
413
397
  out = @racc_debug_out
414
398
  out.print 'reduce '
415
399
  if toks.empty?
@@ -428,20 +412,20 @@ nerr = 0 # tmp
428
412
  @racc_debug_out.puts
429
413
  end
430
414
 
431
- def racc_e_pop( state, tstack, vstack )
415
+ def racc_e_pop(state, tstack, vstack)
432
416
  @racc_debug_out.puts 'error recovering mode: pop token'
433
417
  racc_print_states state
434
418
  racc_print_stacks tstack, vstack
435
419
  @racc_debug_out.puts
436
420
  end
437
421
 
438
- def racc_next_state( curstate, state )
422
+ def racc_next_state(curstate, state)
439
423
  @racc_debug_out.puts "goto #{curstate}"
440
424
  racc_print_states state
441
425
  @racc_debug_out.puts
442
426
  end
443
427
 
444
- def racc_print_stacks( t, v )
428
+ def racc_print_stacks(t, v)
445
429
  out = @racc_debug_out
446
430
  out.print ' ['
447
431
  t.each_index do |i|
@@ -450,34 +434,37 @@ nerr = 0 # tmp
450
434
  out.puts ' ]'
451
435
  end
452
436
 
453
- def racc_print_states( s )
437
+ def racc_print_states(s)
454
438
  out = @racc_debug_out
455
439
  out.print ' ['
456
440
  s.each {|st| out.print ' ', st }
457
441
  out.puts ' ]'
458
442
  end
459
443
 
460
- def racc_token2str( tok )
444
+ def racc_token2str(tok)
461
445
  self.class::Racc_token_to_s_table[tok] or
462
- raise RuntimeError, "[Racc Bug] can't convert token #{tok} to string"
446
+ raise "[Racc Bug] can't convert token #{tok} to string"
463
447
  end
464
448
 
465
- def token_to_str( t )
449
+ def token_to_str(t)
466
450
  self.class::Racc_token_to_s_table[t]
467
451
  end
468
452
 
469
453
  end
470
454
 
471
455
  end
472
- ..end /usr/lib/ruby/1.8/racc/parser.rb modeval..id1306b79176
473
- end # end of racc/parser.rb
456
+ ..end racc/parser.rb modeval..id5256434e8a
457
+ end
458
+ ###### racc/parser.rb end
474
459
 
475
460
 
476
461
  module Nagios
477
462
 
478
463
  class Parser < Racc::Parser
479
464
 
480
- module_eval <<'..end grammar.ry modeval..id458299781d', 'grammar.ry', 57
465
+ module_eval <<'..end grammar.ry modeval..idcb2ea30b34', 'grammar.ry', 57
466
+
467
+ class ::Nagios::Parser::SyntaxError < RuntimeError; end
481
468
 
482
469
  def parse(src)
483
470
  @src = src
@@ -490,12 +477,7 @@ def parse(src)
490
477
  @line = 0
491
478
  @yydebug = true
492
479
 
493
- begin
494
- do_parse
495
- rescue SyntaxError
496
- $stderr.print "#{$!}\n"
497
- exit
498
- end
480
+ do_parse
499
481
  end
500
482
 
501
483
  # The lexer. Very simple.
@@ -607,12 +589,12 @@ def on_error(token, value, vstack )
607
589
  if token == '$end'.intern
608
590
  puts "okay, this is silly"
609
591
  else
610
- raise SyntaxError, msg
592
+ raise ::Nagios::Parser::SyntaxError, msg
611
593
  end
612
594
  end
613
- ..end grammar.ry modeval..id458299781d
595
+ ..end grammar.ry modeval..idcb2ea30b34
614
596
 
615
- ##### racc 1.4.4 generates ###
597
+ ##### racc 1.4.5 generates ###
616
598
 
617
599
  racc_reduce_table = [
618
600
  0, 0, :racc_error,
@@ -0,0 +1,30 @@
1
+ # A simple way to turn file names into singletons,
2
+ # so we don't have tons of copies of each file path around.
3
+ class Puppet::FileCollection
4
+ require 'puppet/file_collection/lookup'
5
+
6
+ def self.collection
7
+ @collection
8
+ end
9
+
10
+ def initialize
11
+ @paths = []
12
+ @inverse = {}
13
+ end
14
+
15
+ def index(path)
16
+ if i = @inverse[path]
17
+ return i
18
+ else
19
+ @paths << path
20
+ i = @inverse[path] = @paths.length - 1
21
+ return i
22
+ end
23
+ end
24
+
25
+ def path(index)
26
+ @paths[index]
27
+ end
28
+
29
+ @collection = self.new
30
+ end
@@ -0,0 +1,20 @@
1
+ require 'puppet/file_collection'
2
+
3
+ # A simple module for looking up file paths and indexes
4
+ # in a file collection.
5
+ module Puppet::FileCollection::Lookup
6
+ attr_accessor :line, :file_index
7
+
8
+ def file_collection
9
+ Puppet::FileCollection.collection
10
+ end
11
+
12
+ def file=(path)
13
+ @file_index = file_collection.index(path)
14
+ end
15
+
16
+ def file
17
+ return nil unless file_index
18
+ file_collection.path(file_index)
19
+ end
20
+ end
@@ -24,8 +24,12 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
24
24
  end
25
25
 
26
26
  def self.loadfacts
27
- # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com]
28
- x = Puppet[:factpath].split(":").each do |dir|
27
+ # Add any per-module fact directories to the factpath
28
+ module_fact_dirs = Puppet[:modulepath].split(":").collect do |d|
29
+ Dir.glob("%s/*/plugins/facter" % d)
30
+ end.flatten
31
+ dirs = module_fact_dirs + Puppet[:factpath].split(":")
32
+ x = dirs.each do |dir|
29
33
  loaddir(dir, "fact")
30
34
  end
31
35
  end
@@ -81,45 +81,10 @@ class Puppet::Node::Ldap < Puppet::Indirector::Ldap
81
81
  def entry2hash(entry)
82
82
  result = {}
83
83
  result[:name] = entry.dn.split(',')[0].split("=")[1]
84
- if pattr = parent_attribute
85
- if values = entry.vals(pattr)
86
- if values.length > 1
87
- raise Puppet::Error,
88
- "Node entry %s specifies more than one parent: %s" % [entry.dn, values.inspect]
89
- end
90
- unless values.empty?
91
- result[:parent] = values.shift
92
- end
93
- end
94
- end
95
-
96
- result[:classes] = []
97
- class_attributes.each { |attr|
98
- if values = entry.vals(attr)
99
- values.each do |v| result[:classes] << v end
100
- end
101
- }
102
- result[:classes].uniq!
103
-
104
- result[:stacked] = []
105
- stacked_params = stacked_attributes
106
- stacked_params.each { |attr|
107
- if values = entry.vals(attr)
108
- result[:stacked] = result[:stacked] + values
109
- end
110
- }
111
-
112
-
113
- result[:parameters] = entry.to_hash.inject({}) do |hash, ary|
114
- unless stacked_params.include?(ary[0]) # don't add our stacked parameters to the main param list
115
- if ary[1].length == 1
116
- hash[ary[0]] = ary[1].shift
117
- else
118
- hash[ary[0]] = ary[1]
119
- end
120
- end
121
- hash
122
- end
84
+ result[:parent] = get_parent_from_entry(entry) if parent_attribute
85
+ result[:classes] = get_classes_from_entry(entry)
86
+ result[:stacked] = get_stacked_values_from_entry(entry)
87
+ result[:parameters] = get_parameters_from_entry(entry)
123
88
 
124
89
  result[:environment] = result[:parameters]["environment"] if result[:parameters]["environment"]
125
90
 
@@ -138,6 +103,8 @@ class Puppet::Node::Ldap < Puppet::Indirector::Ldap
138
103
  end
139
104
  end
140
105
 
106
+ result[:parameters] = convert_parameters(result[:parameters])
107
+
141
108
  result
142
109
  end
143
110
 
@@ -178,6 +145,29 @@ class Puppet::Node::Ldap < Puppet::Indirector::Ldap
178
145
  node.environment = information[:environment] if information[:environment]
179
146
  end
180
147
 
148
+ def convert_parameters(parameters)
149
+ result = {}
150
+ parameters.each do |param, value|
151
+ if value.is_a?(Array)
152
+ result[param] = value.collect { |v| convert(v) }
153
+ else
154
+ result[param] = convert(value)
155
+ end
156
+ end
157
+ result
158
+ end
159
+
160
+ # Convert any values if necessary.
161
+ def convert(value)
162
+ case value
163
+ when Integer, Fixnum, Bignum; value
164
+ when "true"; true
165
+ when "false"; false
166
+ else
167
+ value
168
+ end
169
+ end
170
+
181
171
  # Find information for our parent and merge it into the current info.
182
172
  def find_and_merge_parent(parent, information)
183
173
  unless parent_info = name2hash(parent)
@@ -224,4 +214,50 @@ class Puppet::Node::Ldap < Puppet::Indirector::Ldap
224
214
 
225
215
  return info
226
216
  end
217
+
218
+ def get_classes_from_entry(entry)
219
+ result = class_attributes.inject([]) do |array, attr|
220
+ if values = entry.vals(attr)
221
+ values.each do |v| array << v end
222
+ end
223
+ array
224
+ end
225
+ result.uniq
226
+ end
227
+
228
+ def get_parameters_from_entry(entry)
229
+ stacked_params = stacked_attributes
230
+ entry.to_hash.inject({}) do |hash, ary|
231
+ unless stacked_params.include?(ary[0]) # don't add our stacked parameters to the main param list
232
+ if ary[1].length == 1
233
+ hash[ary[0]] = ary[1].shift
234
+ else
235
+ hash[ary[0]] = ary[1]
236
+ end
237
+ end
238
+ hash
239
+ end
240
+ end
241
+
242
+ def get_parent_from_entry(entry)
243
+ pattr = parent_attribute
244
+
245
+ return nil unless values = entry.vals(pattr)
246
+
247
+ if values.length > 1
248
+ raise Puppet::Error,
249
+ "Node entry %s specifies more than one parent: %s" % [entry.dn, values.inspect]
250
+ end
251
+ return nil if values.empty?
252
+ return values.shift
253
+ end
254
+
255
+ def get_stacked_values_from_entry(entry)
256
+ stacked_attributes.inject([]) do |result, attr|
257
+ if values = entry.vals(attr)
258
+ result += values
259
+ end
260
+ result
261
+ end
262
+ end
227
263
  end