puppet 0.25.5 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (1474) hide show
  1. data/CHANGELOG +667 -0
  2. data/LICENSE +2 -2
  3. data/README +5 -1
  4. data/README.queueing +1 -1
  5. data/README.rst +7 -4
  6. data/Rakefile +6 -18
  7. data/bin/filebucket +0 -94
  8. data/bin/pi +2 -47
  9. data/bin/puppet +2 -69
  10. data/bin/puppetca +2 -100
  11. data/bin/puppetd +2 -158
  12. data/bin/puppetdoc +2 -63
  13. data/bin/puppetmasterd +2 -64
  14. data/bin/puppetqd +2 -51
  15. data/bin/puppetrun +2 -127
  16. data/bin/ralsh +2 -87
  17. data/conf/epm.list +2 -2
  18. data/conf/osx/PackageInfo.plist +1 -1
  19. data/conf/redhat/client.init +11 -8
  20. data/conf/redhat/puppet.conf +1 -1
  21. data/conf/redhat/puppet.spec +1 -1
  22. data/conf/redhat/rundir-perms.patch +13 -13
  23. data/conf/redhat/server.init +11 -5
  24. data/conf/solaris/pkginfo +2 -2
  25. data/conf/solaris/smf/puppetd.xml +3 -3
  26. data/conf/solaris/smf/puppetmasterd.xml +3 -3
  27. data/conf/suse/client.init +3 -2
  28. data/conf/suse/puppet.spec +22 -18
  29. data/conf/suse/server.init +12 -11
  30. data/examples/modules/sample-module/README.txt +3 -3
  31. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +4 -4
  32. data/ext/extlookup.rb +94 -96
  33. data/ext/nagios/check_puppet.rb +94 -88
  34. data/ext/nagios/naggen +3 -3
  35. data/ext/puppet-test +27 -3
  36. data/ext/puppetlisten/puppetlisten.rb +39 -39
  37. data/ext/puppetlisten/puppetrun.rb +6 -6
  38. data/ext/puppetstoredconfigclean.rb +49 -43
  39. data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
  40. data/ext/regexp_nodes/regexp_nodes.rb +133 -133
  41. data/ext/yaml_nodes.rb +99 -0
  42. data/install.rb +109 -118
  43. data/lib/puppet.rb +118 -131
  44. data/lib/puppet/agent.rb +86 -119
  45. data/lib/puppet/agent/locker.rb +28 -30
  46. data/lib/puppet/application.rb +276 -184
  47. data/lib/puppet/application/agent.rb +266 -0
  48. data/lib/puppet/application/apply.rb +165 -0
  49. data/lib/puppet/application/cert.rb +85 -0
  50. data/lib/puppet/application/describe.rb +203 -0
  51. data/lib/puppet/application/doc.rb +215 -0
  52. data/lib/puppet/application/filebucket.rb +73 -73
  53. data/lib/puppet/application/kick.rb +212 -0
  54. data/lib/puppet/application/master.rb +156 -0
  55. data/lib/puppet/application/queue.rb +91 -0
  56. data/lib/puppet/application/resource.rb +118 -0
  57. data/lib/puppet/configurer.rb +214 -197
  58. data/lib/puppet/configurer/downloader.rb +63 -63
  59. data/lib/puppet/configurer/fact_handler.rb +51 -51
  60. data/lib/puppet/configurer/plugin_handler.rb +19 -19
  61. data/lib/puppet/daemon.rb +100 -103
  62. data/lib/puppet/defaults.rb +793 -796
  63. data/lib/puppet/dsl.rb +5 -269
  64. data/lib/puppet/dsl/resource_api.rb +120 -0
  65. data/lib/puppet/dsl/resource_type_api.rb +40 -0
  66. data/lib/puppet/error.rb +34 -36
  67. data/lib/puppet/external/base64.rb +8 -8
  68. data/lib/puppet/external/dot.rb +262 -262
  69. data/lib/puppet/external/event-loop/better-definers.rb +297 -297
  70. data/lib/puppet/external/event-loop/event-loop.rb +264 -272
  71. data/lib/puppet/external/event-loop/signal-system.rb +161 -163
  72. data/lib/puppet/external/lock.rb +41 -41
  73. data/lib/puppet/external/nagios.rb +32 -32
  74. data/lib/puppet/external/nagios/base.rb +453 -458
  75. data/lib/puppet/external/nagios/parser.rb +264 -287
  76. data/lib/puppet/external/pson/common.rb +8 -5
  77. data/lib/puppet/external/pson/pure/generator.rb +26 -26
  78. data/lib/puppet/external/pson/pure/parser.rb +43 -48
  79. data/lib/puppet/feature/base.rb +21 -1
  80. data/lib/puppet/feature/pson.rb +4 -4
  81. data/lib/puppet/feature/rack.rb +14 -14
  82. data/lib/puppet/feature/rails.rb +23 -25
  83. data/lib/puppet/file_bucket.rb +4 -0
  84. data/lib/puppet/file_bucket/dipper.rb +99 -0
  85. data/lib/puppet/file_bucket/file.rb +136 -0
  86. data/lib/puppet/file_bucket/file/indirection_hooks.rb +9 -0
  87. data/lib/puppet/file_collection.rb +20 -20
  88. data/lib/puppet/file_collection/lookup.rb +11 -11
  89. data/lib/puppet/file_serving/base.rb +67 -71
  90. data/lib/puppet/file_serving/configuration.rb +84 -86
  91. data/lib/puppet/file_serving/configuration/parser.rb +103 -102
  92. data/lib/puppet/file_serving/content.rb +34 -33
  93. data/lib/puppet/file_serving/fileset.rb +131 -133
  94. data/lib/puppet/file_serving/indirection_hooks.rb +17 -17
  95. data/lib/puppet/file_serving/metadata.rb +98 -95
  96. data/lib/puppet/file_serving/mount.rb +22 -22
  97. data/lib/puppet/file_serving/mount/file.rb +101 -106
  98. data/lib/puppet/file_serving/mount/modules.rb +15 -15
  99. data/lib/puppet/file_serving/mount/plugins.rb +15 -16
  100. data/lib/puppet/file_serving/terminus_helper.rb +13 -13
  101. data/lib/puppet/indirector.rb +48 -49
  102. data/lib/puppet/indirector/active_record.rb +19 -19
  103. data/lib/puppet/indirector/catalog/active_record.rb +25 -25
  104. data/lib/puppet/indirector/catalog/compiler.rb +134 -145
  105. data/lib/puppet/indirector/catalog/rest.rb +1 -1
  106. data/lib/puppet/indirector/catalog/yaml.rb +13 -13
  107. data/lib/puppet/indirector/certificate/ca.rb +3 -3
  108. data/lib/puppet/indirector/certificate/file.rb +3 -3
  109. data/lib/puppet/indirector/certificate/rest.rb +8 -8
  110. data/lib/puppet/indirector/certificate_request/ca.rb +7 -7
  111. data/lib/puppet/indirector/certificate_request/file.rb +2 -2
  112. data/lib/puppet/indirector/certificate_request/rest.rb +3 -3
  113. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +2 -2
  114. data/lib/puppet/indirector/certificate_revocation_list/file.rb +2 -2
  115. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +3 -3
  116. data/lib/puppet/indirector/couch.rb +76 -0
  117. data/lib/puppet/indirector/direct_file_server.rb +11 -11
  118. data/lib/puppet/indirector/envelope.rb +4 -4
  119. data/lib/puppet/indirector/exec.rb +38 -42
  120. data/lib/puppet/indirector/facts/active_record.rb +24 -24
  121. data/lib/puppet/indirector/facts/couch.rb +31 -0
  122. data/lib/puppet/indirector/facts/facter.rb +63 -61
  123. data/lib/puppet/indirector/facts/memory.rb +4 -4
  124. data/lib/puppet/indirector/facts/rest.rb +1 -1
  125. data/lib/puppet/indirector/facts/yaml.rb +2 -2
  126. data/lib/puppet/indirector/file.rb +67 -46
  127. data/lib/puppet/indirector/file_bucket_file/file.rb +146 -0
  128. data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  129. data/lib/puppet/indirector/file_content/file.rb +1 -1
  130. data/lib/puppet/indirector/file_content/file_server.rb +1 -1
  131. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  132. data/lib/puppet/indirector/file_metadata/file.rb +11 -11
  133. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -1
  134. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  135. data/lib/puppet/indirector/file_server.rb +44 -44
  136. data/lib/puppet/indirector/indirection.rb +249 -260
  137. data/lib/puppet/indirector/key/ca.rb +5 -5
  138. data/lib/puppet/indirector/key/file.rb +29 -29
  139. data/lib/puppet/indirector/ldap.rb +62 -64
  140. data/lib/puppet/indirector/memory.rb +13 -13
  141. data/lib/puppet/indirector/node/active_record.rb +6 -6
  142. data/lib/puppet/indirector/node/exec.rb +40 -44
  143. data/lib/puppet/indirector/node/ldap.rb +246 -212
  144. data/lib/puppet/indirector/node/memory.rb +5 -5
  145. data/lib/puppet/indirector/node/plain.rb +12 -12
  146. data/lib/puppet/indirector/node/rest.rb +2 -2
  147. data/lib/puppet/indirector/node/yaml.rb +2 -2
  148. data/lib/puppet/indirector/plain.rb +4 -4
  149. data/lib/puppet/indirector/queue.rb +49 -51
  150. data/lib/puppet/indirector/report/processor.rb +34 -37
  151. data/lib/puppet/indirector/report/rest.rb +3 -3
  152. data/lib/puppet/indirector/request.rb +171 -157
  153. data/lib/puppet/indirector/resource/ral.rb +48 -0
  154. data/lib/puppet/indirector/resource/rest.rb +5 -0
  155. data/lib/puppet/indirector/resource_type.rb +5 -0
  156. data/lib/puppet/indirector/resource_type/parser.rb +27 -0
  157. data/lib/puppet/indirector/resource_type/rest.rb +7 -0
  158. data/lib/puppet/indirector/rest.rb +83 -79
  159. data/lib/puppet/indirector/run/local.rb +8 -0
  160. data/lib/puppet/indirector/run/rest.rb +6 -0
  161. data/lib/puppet/indirector/ssl_file.rb +165 -165
  162. data/lib/puppet/indirector/status.rb +3 -0
  163. data/lib/puppet/indirector/status/local.rb +7 -0
  164. data/lib/puppet/indirector/status/rest.rb +5 -0
  165. data/lib/puppet/indirector/terminus.rb +129 -133
  166. data/lib/puppet/indirector/yaml.rb +47 -49
  167. data/lib/puppet/metatype/manager.rb +120 -114
  168. data/lib/puppet/module.rb +182 -124
  169. data/lib/puppet/network/authconfig.rb +146 -156
  170. data/lib/puppet/network/authorization.rb +63 -70
  171. data/lib/puppet/network/authstore.rb +226 -232
  172. data/lib/puppet/network/client.rb +141 -152
  173. data/lib/puppet/network/client/ca.rb +47 -49
  174. data/lib/puppet/network/client/file.rb +3 -3
  175. data/lib/puppet/network/client/proxy.rb +19 -19
  176. data/lib/puppet/network/client/report.rb +17 -21
  177. data/lib/puppet/network/client/runner.rb +5 -7
  178. data/lib/puppet/network/client/status.rb +1 -1
  179. data/lib/puppet/network/client_request.rb +20 -22
  180. data/lib/puppet/network/format.rb +79 -81
  181. data/lib/puppet/network/format_handler.rb +135 -130
  182. data/lib/puppet/network/formats.rb +128 -154
  183. data/lib/puppet/network/handler.rb +43 -46
  184. data/lib/puppet/network/handler/ca.rb +129 -135
  185. data/lib/puppet/network/handler/filebucket.rb +39 -170
  186. data/lib/puppet/network/handler/fileserver.rb +624 -656
  187. data/lib/puppet/network/handler/master.rb +62 -75
  188. data/lib/puppet/network/handler/report.rb +60 -67
  189. data/lib/puppet/network/handler/runner.rb +20 -20
  190. data/lib/puppet/network/handler/status.rb +9 -9
  191. data/lib/puppet/network/http.rb +12 -12
  192. data/lib/puppet/network/http/api/v1.rb +49 -44
  193. data/lib/puppet/network/http/compression.rb +111 -0
  194. data/lib/puppet/network/http/handler.rb +183 -183
  195. data/lib/puppet/network/http/mongrel.rb +46 -48
  196. data/lib/puppet/network/http/mongrel/rest.rb +73 -66
  197. data/lib/puppet/network/http/rack.rb +45 -45
  198. data/lib/puppet/network/http/rack/httphandler.rb +7 -7
  199. data/lib/puppet/network/http/rack/rest.rb +84 -61
  200. data/lib/puppet/network/http/rack/xmlrpc.rb +49 -49
  201. data/lib/puppet/network/http/webrick.rb +108 -112
  202. data/lib/puppet/network/http/webrick/rest.rb +60 -57
  203. data/lib/puppet/network/http_pool.rb +95 -83
  204. data/lib/puppet/network/http_server/mongrel.rb +90 -90
  205. data/lib/puppet/network/http_server/webrick.rb +139 -148
  206. data/lib/puppet/network/rest_authconfig.rb +76 -71
  207. data/lib/puppet/network/rest_authorization.rb +11 -13
  208. data/lib/puppet/network/rights.rb +217 -226
  209. data/lib/puppet/network/server.rb +147 -151
  210. data/lib/puppet/network/xmlrpc/client.rb +197 -205
  211. data/lib/puppet/network/xmlrpc/processor.rb +68 -72
  212. data/lib/puppet/network/xmlrpc/server.rb +10 -10
  213. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +94 -100
  214. data/lib/puppet/node.rb +99 -107
  215. data/lib/puppet/node/environment.rb +109 -62
  216. data/lib/puppet/node/facts.rb +48 -43
  217. data/lib/puppet/parameter.rb +246 -498
  218. data/lib/puppet/parameter/value.rb +63 -0
  219. data/lib/puppet/parameter/value_collection.rb +143 -0
  220. data/lib/puppet/parser.rb +4 -0
  221. data/lib/puppet/parser/ast.rb +81 -67
  222. data/lib/puppet/parser/ast/arithmetic_operator.rb +27 -29
  223. data/lib/puppet/parser/ast/astarray.rb +50 -50
  224. data/lib/puppet/parser/ast/asthash.rb +37 -0
  225. data/lib/puppet/parser/ast/boolean_operator.rb +33 -35
  226. data/lib/puppet/parser/ast/branch.rb +29 -31
  227. data/lib/puppet/parser/ast/caseopt.rb +50 -56
  228. data/lib/puppet/parser/ast/casestatement.rb +30 -30
  229. data/lib/puppet/parser/ast/collection.rb +43 -37
  230. data/lib/puppet/parser/ast/collexpr.rb +66 -69
  231. data/lib/puppet/parser/ast/comparison_operator.rb +32 -35
  232. data/lib/puppet/parser/ast/else.rb +13 -13
  233. data/lib/puppet/parser/ast/function.rb +34 -43
  234. data/lib/puppet/parser/ast/ifstatement.rb +23 -27
  235. data/lib/puppet/parser/ast/in_operator.rb +24 -0
  236. data/lib/puppet/parser/ast/leaf.rb +173 -156
  237. data/lib/puppet/parser/ast/match_operator.rb +16 -19
  238. data/lib/puppet/parser/ast/minus.rb +13 -13
  239. data/lib/puppet/parser/ast/nop.rb +6 -6
  240. data/lib/puppet/parser/ast/not.rb +9 -9
  241. data/lib/puppet/parser/ast/relationship.rb +60 -0
  242. data/lib/puppet/parser/ast/resource.rb +58 -57
  243. data/lib/puppet/parser/ast/resource_defaults.rb +16 -16
  244. data/lib/puppet/parser/ast/resource_override.rb +51 -51
  245. data/lib/puppet/parser/ast/resource_reference.rb +17 -72
  246. data/lib/puppet/parser/ast/resourceparam.rb +20 -17
  247. data/lib/puppet/parser/ast/selector.rb +30 -34
  248. data/lib/puppet/parser/ast/tag.rb +16 -16
  249. data/lib/puppet/parser/ast/vardef.rb +20 -16
  250. data/lib/puppet/parser/collector.rb +181 -189
  251. data/lib/puppet/parser/compiler.rb +395 -364
  252. data/lib/puppet/parser/files.rb +65 -69
  253. data/lib/puppet/parser/functions.rb +85 -97
  254. data/lib/puppet/parser/functions/defined.rb +23 -23
  255. data/lib/puppet/parser/functions/fail.rb +2 -2
  256. data/lib/puppet/parser/functions/file.rb +21 -19
  257. data/lib/puppet/parser/functions/fqdn_rand.rb +7 -7
  258. data/lib/puppet/parser/functions/generate.rb +24 -26
  259. data/lib/puppet/parser/functions/include.rb +16 -18
  260. data/lib/puppet/parser/functions/inline_template.rb +16 -17
  261. data/lib/puppet/parser/functions/realize.rb +8 -8
  262. data/lib/puppet/parser/functions/regsubst.rb +74 -59
  263. data/lib/puppet/parser/functions/require.rb +35 -33
  264. data/lib/puppet/parser/functions/search.rb +5 -5
  265. data/lib/puppet/parser/functions/sha1.rb +3 -4
  266. data/lib/puppet/parser/functions/shellquote.rb +31 -33
  267. data/lib/puppet/parser/functions/split.rb +8 -8
  268. data/lib/puppet/parser/functions/sprintf.rb +10 -9
  269. data/lib/puppet/parser/functions/tag.rb +3 -3
  270. data/lib/puppet/parser/functions/tagged.rb +13 -13
  271. data/lib/puppet/parser/functions/template.rb +18 -19
  272. data/lib/puppet/parser/functions/versioncmp.rb +17 -14
  273. data/lib/puppet/parser/grammar.ra +485 -422
  274. data/lib/puppet/parser/lexer.rb +500 -442
  275. data/lib/puppet/parser/parser.rb +1438 -1084
  276. data/lib/puppet/parser/parser_support.rb +227 -502
  277. data/lib/puppet/parser/relationship.rb +43 -0
  278. data/lib/puppet/parser/resource.rb +280 -375
  279. data/lib/puppet/parser/resource/param.rb +18 -18
  280. data/lib/puppet/parser/scope.rb +450 -447
  281. data/lib/puppet/parser/templatewrapper.rb +92 -94
  282. data/lib/puppet/parser/type_loader.rb +146 -0
  283. data/lib/puppet/parser/yaml_trimmer.rb +6 -8
  284. data/lib/puppet/property.rb +290 -453
  285. data/lib/puppet/property/ensure.rb +92 -0
  286. data/lib/puppet/property/keyvalue.rb +74 -82
  287. data/lib/puppet/property/list.rb +71 -81
  288. data/lib/puppet/property/ordered_list.rb +15 -15
  289. data/lib/puppet/provider.rb +229 -241
  290. data/lib/puppet/provider/augeas/augeas.rb +318 -320
  291. data/lib/puppet/provider/computer/computer.rb +13 -13
  292. data/lib/puppet/provider/confine.rb +63 -63
  293. data/lib/puppet/provider/confine/exists.rb +14 -14
  294. data/lib/puppet/provider/confine/false.rb +12 -12
  295. data/lib/puppet/provider/confine/feature.rb +10 -10
  296. data/lib/puppet/provider/confine/true.rb +13 -13
  297. data/lib/puppet/provider/confine/variable.rb +51 -54
  298. data/lib/puppet/provider/confine_collection.rb +38 -38
  299. data/lib/puppet/provider/confiner.rb +10 -14
  300. data/lib/puppet/provider/cron/crontab.rb +172 -173
  301. data/lib/puppet/provider/file/posix.rb +99 -0
  302. data/lib/puppet/provider/file/win32.rb +74 -0
  303. data/lib/puppet/provider/group/directoryservice.rb +6 -6
  304. data/lib/puppet/provider/group/groupadd.rb +18 -20
  305. data/lib/puppet/provider/group/ldap.rb +40 -43
  306. data/lib/puppet/provider/group/pw.rb +23 -23
  307. data/lib/puppet/provider/host/parsed.rb +51 -50
  308. data/lib/puppet/provider/ldap.rb +121 -123
  309. data/lib/puppet/provider/macauthorization/macauthorization.rb +263 -272
  310. data/lib/puppet/provider/mailalias/aliases.rb +34 -31
  311. data/lib/puppet/provider/maillist/mailman.rb +87 -93
  312. data/lib/puppet/provider/mcx/mcxcontent.rb +155 -151
  313. data/lib/puppet/provider/mount.rb +36 -40
  314. data/lib/puppet/provider/mount/parsed.rb +28 -26
  315. data/lib/puppet/provider/naginator.rb +46 -48
  316. data/lib/puppet/provider/nameservice.rb +215 -257
  317. data/lib/puppet/provider/nameservice/directoryservice.rb +455 -471
  318. data/lib/puppet/provider/nameservice/objectadd.rb +21 -21
  319. data/lib/puppet/provider/nameservice/pw.rb +13 -13
  320. data/lib/puppet/provider/package.rb +18 -20
  321. data/lib/puppet/provider/package/aix.rb +128 -0
  322. data/lib/puppet/provider/package/appdmg.rb +78 -82
  323. data/lib/puppet/provider/package/apple.rb +39 -40
  324. data/lib/puppet/provider/package/apt.rb +95 -104
  325. data/lib/puppet/provider/package/aptitude.rb +19 -21
  326. data/lib/puppet/provider/package/aptrpm.rb +70 -72
  327. data/lib/puppet/provider/package/blastwave.rb +88 -94
  328. data/lib/puppet/provider/package/darwinport.rb +67 -69
  329. data/lib/puppet/provider/package/dpkg.rb +123 -97
  330. data/lib/puppet/provider/package/fink.rb +66 -68
  331. data/lib/puppet/provider/package/freebsd.rb +38 -40
  332. data/lib/puppet/provider/package/gem.rb +98 -102
  333. data/lib/puppet/provider/package/hpux.rb +37 -39
  334. data/lib/puppet/provider/package/nim.rb +35 -0
  335. data/lib/puppet/provider/package/openbsd.rb +100 -75
  336. data/lib/puppet/provider/package/pkg.rb +108 -0
  337. data/lib/puppet/provider/package/pkgdmg.rb +95 -87
  338. data/lib/puppet/provider/package/portage.rb +101 -104
  339. data/lib/puppet/provider/package/ports.rb +71 -73
  340. data/lib/puppet/provider/package/portupgrade.rb +251 -0
  341. data/lib/puppet/provider/package/rpm.rb +113 -115
  342. data/lib/puppet/provider/package/rug.rb +46 -46
  343. data/lib/puppet/provider/package/sun.rb +135 -151
  344. data/lib/puppet/provider/package/sunfreeware.rb +5 -5
  345. data/lib/puppet/provider/package/up2date.rb +31 -31
  346. data/lib/puppet/provider/package/urpmi.rb +51 -51
  347. data/lib/puppet/provider/package/yum.rb +90 -98
  348. data/lib/puppet/provider/package/zypper.rb +52 -0
  349. data/lib/puppet/provider/parsedfile.rb +306 -329
  350. data/lib/puppet/provider/port/parsed.rb +5 -5
  351. data/lib/puppet/provider/selboolean/getsetsebool.rb +34 -34
  352. data/lib/puppet/provider/selmodule/semodule.rb +103 -111
  353. data/lib/puppet/provider/service/base.rb +134 -139
  354. data/lib/puppet/provider/service/bsd.rb +48 -0
  355. data/lib/puppet/provider/service/daemontools.rb +158 -162
  356. data/lib/puppet/provider/service/debian.rb +36 -36
  357. data/lib/puppet/provider/service/freebsd.rb +118 -38
  358. data/lib/puppet/provider/service/gentoo.rb +33 -39
  359. data/lib/puppet/provider/service/init.rb +125 -125
  360. data/lib/puppet/provider/service/launchd.rb +234 -254
  361. data/lib/puppet/provider/service/redhat.rb +58 -58
  362. data/lib/puppet/provider/service/runit.rb +74 -74
  363. data/lib/puppet/provider/service/smf.rb +81 -85
  364. data/lib/puppet/provider/service/src.rb +87 -0
  365. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +73 -81
  366. data/lib/puppet/provider/sshkey/parsed.rb +24 -21
  367. data/lib/puppet/provider/user/directoryservice.rb +71 -71
  368. data/lib/puppet/provider/user/hpux.rb +20 -20
  369. data/lib/puppet/provider/user/ldap.rb +106 -110
  370. data/lib/puppet/provider/user/pw.rb +33 -37
  371. data/lib/puppet/provider/user/user_role_add.rb +168 -183
  372. data/lib/puppet/provider/user/useradd.rb +50 -51
  373. data/lib/puppet/provider/zfs/solaris.rb +35 -35
  374. data/lib/puppet/provider/zone/solaris.rb +206 -205
  375. data/lib/puppet/provider/zpool/solaris.rb +95 -97
  376. data/lib/puppet/rails.rb +115 -122
  377. data/lib/puppet/rails/benchmark.rb +43 -49
  378. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +8 -12
  379. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +8 -12
  380. data/lib/puppet/rails/database/003_add_environment_to_host.rb +6 -10
  381. data/lib/puppet/rails/database/schema.rb +100 -97
  382. data/lib/puppet/rails/fact_name.rb +1 -1
  383. data/lib/puppet/rails/fact_value.rb +5 -5
  384. data/lib/puppet/rails/host.rb +252 -249
  385. data/lib/puppet/rails/param_name.rb +15 -15
  386. data/lib/puppet/rails/param_value.rb +55 -55
  387. data/lib/puppet/rails/puppet_tag.rb +4 -4
  388. data/lib/puppet/rails/resource.rb +189 -203
  389. data/lib/puppet/rails/resource_tag.rb +19 -19
  390. data/lib/puppet/rails/source_file.rb +5 -5
  391. data/lib/puppet/reference/configuration.rb +53 -56
  392. data/lib/puppet/reference/function.rb +1 -1
  393. data/lib/puppet/reference/indirection.rb +13 -13
  394. data/lib/puppet/reference/metaparameter.rb +40 -40
  395. data/lib/puppet/reference/network.rb +16 -16
  396. data/lib/puppet/reference/providers.rb +97 -98
  397. data/lib/puppet/reference/report.rb +1 -1
  398. data/lib/puppet/reference/type.rb +67 -70
  399. data/lib/puppet/relationship.rb +65 -67
  400. data/lib/puppet/reports.rb +32 -34
  401. data/lib/puppet/reports/http.rb +22 -0
  402. data/lib/puppet/reports/log.rb +7 -6
  403. data/lib/puppet/reports/rrdgraph.rb +105 -114
  404. data/lib/puppet/reports/store.rb +53 -56
  405. data/lib/puppet/reports/tagmail.rb +149 -157
  406. data/lib/puppet/resource.rb +428 -194
  407. data/lib/puppet/resource/catalog.rb +496 -512
  408. data/lib/puppet/resource/status.rb +58 -0
  409. data/lib/puppet/resource/type.rb +311 -0
  410. data/lib/puppet/resource/type_collection.rb +217 -0
  411. data/lib/puppet/resource/type_collection_helper.rb +7 -0
  412. data/lib/puppet/run.rb +77 -0
  413. data/lib/puppet/simple_graph.rb +381 -413
  414. data/lib/puppet/ssl.rb +2 -1
  415. data/lib/puppet/ssl/base.rb +60 -43
  416. data/lib/puppet/ssl/certificate.rb +21 -21
  417. data/lib/puppet/ssl/certificate_authority.rb +215 -229
  418. data/lib/puppet/ssl/certificate_authority/interface.rb +84 -68
  419. data/lib/puppet/ssl/certificate_factory.rb +119 -119
  420. data/lib/puppet/ssl/certificate_request.rb +52 -45
  421. data/lib/puppet/ssl/certificate_revocation_list.rb +78 -78
  422. data/lib/puppet/ssl/host.rb +230 -228
  423. data/lib/puppet/ssl/inventory.rb +33 -33
  424. data/lib/puppet/ssl/key.rb +37 -37
  425. data/lib/puppet/sslcertificates.rb +124 -123
  426. data/lib/puppet/sslcertificates/ca.rb +327 -344
  427. data/lib/puppet/sslcertificates/certificate.rb +197 -224
  428. data/lib/puppet/sslcertificates/inventory.rb +27 -29
  429. data/lib/puppet/sslcertificates/support.rb +113 -119
  430. data/lib/puppet/status.rb +28 -0
  431. data/lib/puppet/transaction.rb +349 -696
  432. data/lib/puppet/transaction/change.rb +80 -85
  433. data/lib/puppet/transaction/event.rb +54 -14
  434. data/lib/puppet/transaction/event_manager.rb +99 -0
  435. data/lib/puppet/transaction/report.rb +121 -59
  436. data/lib/puppet/transaction/resource_harness.rb +150 -0
  437. data/lib/puppet/transportable.rb +215 -226
  438. data/lib/puppet/type.rb +1644 -1849
  439. data/lib/puppet/type/augeas.rb +153 -134
  440. data/lib/puppet/type/component.rb +63 -65
  441. data/lib/puppet/type/computer.rb +44 -44
  442. data/lib/puppet/type/cron.rb +364 -384
  443. data/lib/puppet/type/exec.rb +583 -521
  444. data/lib/puppet/type/file.rb +786 -823
  445. data/lib/puppet/type/file/checksum.rb +23 -240
  446. data/lib/puppet/type/file/content.rb +193 -129
  447. data/lib/puppet/type/file/ensure.rb +149 -153
  448. data/lib/puppet/type/file/group.rb +94 -104
  449. data/lib/puppet/type/file/mode.rb +109 -122
  450. data/lib/puppet/type/file/owner.rb +39 -131
  451. data/lib/puppet/type/file/selcontext.rb +69 -73
  452. data/lib/puppet/type/file/source.rb +165 -153
  453. data/lib/puppet/type/file/target.rb +56 -60
  454. data/lib/puppet/type/file/type.rb +18 -18
  455. data/lib/puppet/type/filebucket.rb +91 -92
  456. data/lib/puppet/type/group.rb +77 -82
  457. data/lib/puppet/type/host.rb +85 -85
  458. data/lib/puppet/type/k5login.rb +65 -65
  459. data/lib/puppet/type/macauthorization.rb +141 -143
  460. data/lib/puppet/type/mailalias.rb +37 -37
  461. data/lib/puppet/type/maillist.rb +51 -51
  462. data/lib/puppet/type/mcx.rb +62 -62
  463. data/lib/puppet/type/mount.rb +199 -193
  464. data/lib/puppet/type/notify.rb +33 -33
  465. data/lib/puppet/type/package.rb +301 -298
  466. data/lib/puppet/type/port.rb +4 -4
  467. data/lib/puppet/type/resources.rb +107 -123
  468. data/lib/puppet/type/schedule.rb +317 -326
  469. data/lib/puppet/type/selboolean.rb +19 -19
  470. data/lib/puppet/type/selmodule.rb +34 -34
  471. data/lib/puppet/type/service.rb +152 -152
  472. data/lib/puppet/type/ssh_authorized_key.rb +74 -78
  473. data/lib/puppet/type/sshkey.rb +52 -56
  474. data/lib/puppet/type/stage.rb +18 -0
  475. data/lib/puppet/type/tidy.rb +289 -300
  476. data/lib/puppet/type/user.rb +300 -312
  477. data/lib/puppet/type/yumrepo.rb +300 -335
  478. data/lib/puppet/type/zfs.rb +36 -36
  479. data/lib/puppet/type/zone.rb +376 -347
  480. data/lib/puppet/type/zpool.rb +71 -77
  481. data/lib/puppet/util.rb +383 -387
  482. data/lib/puppet/util/autoload.rb +125 -143
  483. data/lib/puppet/util/autoload/file_cache.rb +78 -101
  484. data/lib/puppet/util/backups.rb +66 -66
  485. data/lib/puppet/util/cacher.rb +112 -120
  486. data/lib/puppet/util/checksums.rb +119 -84
  487. data/lib/puppet/util/classgen.rb +157 -167
  488. data/lib/puppet/util/command_line.rb +95 -0
  489. data/lib/puppet/util/command_line/filebucket +97 -0
  490. data/lib/puppet/util/command_line/pi +48 -0
  491. data/lib/puppet/util/command_line/puppet +69 -0
  492. data/lib/puppet/util/command_line/puppetca +110 -0
  493. data/lib/puppet/util/command_line/puppetd +186 -0
  494. data/lib/puppet/util/command_line/puppetdoc +67 -0
  495. data/lib/puppet/util/command_line/puppetmasterd +65 -0
  496. data/lib/puppet/util/command_line/puppetqd +53 -0
  497. data/lib/puppet/util/command_line/puppetrun +128 -0
  498. data/lib/puppet/util/command_line/ralsh +89 -0
  499. data/lib/puppet/util/constant_inflector.rb +7 -7
  500. data/lib/puppet/util/diff.rb +59 -56
  501. data/lib/puppet/util/docs.rb +97 -99
  502. data/lib/puppet/util/errors.rb +53 -44
  503. data/lib/puppet/util/execution.rb +15 -15
  504. data/lib/puppet/util/feature.rb +62 -72
  505. data/lib/puppet/util/file_locking.rb +33 -33
  506. data/lib/puppet/util/fileparsing.rb +292 -318
  507. data/lib/puppet/util/filetype.rb +246 -263
  508. data/lib/puppet/util/graph.rb +16 -18
  509. data/lib/puppet/util/inifile.rb +170 -184
  510. data/lib/puppet/util/inline_docs.rb +26 -0
  511. data/lib/puppet/util/instance_loader.rb +58 -58
  512. data/lib/puppet/util/ldap/connection.rb +57 -59
  513. data/lib/puppet/util/ldap/generator.rb +31 -31
  514. data/lib/puppet/util/ldap/manager.rb +233 -235
  515. data/lib/puppet/util/loadedfile.rb +49 -51
  516. data/lib/puppet/util/log.rb +210 -494
  517. data/lib/puppet/util/log/destination.rb +49 -0
  518. data/lib/puppet/util/log/destinations.rb +217 -0
  519. data/lib/puppet/util/log_paths.rb +15 -17
  520. data/lib/puppet/util/logging.rb +34 -13
  521. data/lib/puppet/util/metaid.rb +15 -15
  522. data/lib/puppet/util/methodhelper.rb +24 -26
  523. data/lib/puppet/util/metric.rb +123 -125
  524. data/lib/puppet/util/monkey_patches.rb +21 -20
  525. data/lib/puppet/util/nagios_maker.rb +41 -41
  526. data/lib/puppet/util/package.rb +24 -26
  527. data/lib/puppet/util/pidlock.rb +49 -49
  528. data/lib/puppet/util/posix.rb +115 -115
  529. data/lib/puppet/util/provider_features.rb +147 -155
  530. data/lib/puppet/util/pson.rb +5 -5
  531. data/lib/puppet/util/queue.rb +55 -55
  532. data/lib/puppet/util/queue/stomp.rb +27 -27
  533. data/lib/puppet/util/rails/cache_accumulator.rb +49 -49
  534. data/lib/puppet/util/rails/collection_merger.rb +13 -13
  535. data/lib/puppet/util/rails/reference_serializer.rb +26 -26
  536. data/lib/puppet/util/rdoc.rb +77 -74
  537. data/lib/puppet/util/rdoc/code_objects.rb +235 -217
  538. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +732 -676
  539. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +38 -12
  540. data/lib/puppet/util/rdoc/parser.rb +418 -392
  541. data/lib/puppet/util/reference.rb +168 -174
  542. data/lib/puppet/util/resource_template.rb +17 -17
  543. data/lib/puppet/util/run_mode.rb +81 -0
  544. data/lib/puppet/util/selinux.rb +184 -200
  545. data/lib/puppet/util/settings.rb +886 -919
  546. data/lib/puppet/util/settings/boolean_setting.rb +20 -23
  547. data/lib/puppet/util/settings/file_setting.rb +98 -99
  548. data/lib/puppet/util/settings/setting.rb +71 -87
  549. data/lib/puppet/util/storage.rb +73 -84
  550. data/lib/puppet/util/subclass_loader.rb +59 -66
  551. data/lib/puppet/util/suidmanager.rb +87 -84
  552. data/lib/puppet/util/tagging.rb +37 -39
  553. data/lib/puppet/util/user_attr.rb +14 -14
  554. data/lib/puppet/util/warnings.rb +20 -20
  555. data/lib/puppet/util/zaml.rb +242 -241
  556. data/man/man5/puppet.conf.5 +148 -76
  557. data/man/man8/filebucket.8 +6 -6
  558. data/man/man8/pi.8 +5 -5
  559. data/man/man8/puppet.8 +2 -73
  560. data/man/man8/puppetca.8 +47 -32
  561. data/man/man8/puppetd.8 +118 -76
  562. data/man/man8/puppetdoc.8 +16 -12
  563. data/man/man8/puppetmasterd.8 +4 -4
  564. data/man/man8/puppetqd.8 +4 -4
  565. data/man/man8/puppetrun.8 +23 -22
  566. data/man/man8/ralsh.8 +16 -17
  567. data/spec/fixtures/yaml/test.local.yaml +16 -0
  568. data/spec/integration/application/apply_spec.rb +33 -0
  569. data/spec/integration/configurer_spec.rb +35 -0
  570. data/spec/integration/defaults_spec.rb +258 -0
  571. data/spec/integration/file_serving/content_spec.rb +20 -0
  572. data/spec/integration/file_serving/fileset_spec.rb +14 -0
  573. data/spec/integration/file_serving/metadata_spec.rb +21 -0
  574. data/spec/integration/file_serving/terminus_helper_spec.rb +22 -0
  575. data/spec/integration/indirector/bucket_file/rest_spec.rb +68 -0
  576. data/spec/integration/indirector/catalog/compiler_spec.rb +68 -0
  577. data/spec/integration/indirector/catalog/queue_spec.rb +61 -0
  578. data/spec/integration/indirector/certificate/rest_spec.rb +68 -0
  579. data/spec/integration/indirector/certificate_request/rest_spec.rb +88 -0
  580. data/spec/integration/indirector/certificate_revocation_list/rest_spec.rb +76 -0
  581. data/spec/integration/indirector/direct_file_server_spec.rb +73 -0
  582. data/spec/integration/indirector/file_content/file_server_spec.rb +94 -0
  583. data/spec/integration/indirector/file_metadata/file_server_spec.rb +18 -0
  584. data/spec/integration/indirector/node/ldap_spec.rb +15 -0
  585. data/spec/integration/indirector/report/rest_spec.rb +96 -0
  586. data/spec/integration/indirector/rest_spec.rb +524 -0
  587. data/spec/integration/network/client_spec.rb +19 -0
  588. data/spec/integration/network/formats_spec.rb +110 -0
  589. data/spec/integration/network/handler_spec.rb +25 -0
  590. data/spec/integration/network/server/mongrel_spec.rb +66 -0
  591. data/spec/integration/network/server/webrick_spec.rb +85 -0
  592. data/spec/integration/node/environment_spec.rb +58 -0
  593. data/spec/integration/node/facts_spec.rb +47 -0
  594. data/spec/integration/node_spec.rb +93 -0
  595. data/spec/integration/parser/collector_spec.rb +38 -0
  596. data/spec/integration/parser/compiler_spec.rb +29 -0
  597. data/spec/integration/parser/functions/require_spec.rb +44 -0
  598. data/spec/integration/parser/parser_spec.rb +113 -0
  599. data/spec/integration/provider/mailalias/aliases_spec.rb +25 -0
  600. data/spec/integration/provider/package_spec.rb +26 -0
  601. data/spec/integration/provider/service/init_spec.rb +32 -0
  602. data/spec/integration/reference/providers_spec.rb +17 -0
  603. data/spec/integration/reports_spec.rb +18 -0
  604. data/spec/integration/resource/catalog_spec.rb +61 -0
  605. data/spec/integration/resource/type_collection_spec.rb +96 -0
  606. data/spec/integration/ssl/certificate_authority_spec.rb +135 -0
  607. data/spec/integration/ssl/certificate_request_spec.rb +61 -0
  608. data/spec/integration/ssl/certificate_revocation_list_spec.rb +42 -0
  609. data/spec/integration/ssl/host_spec.rb +90 -0
  610. data/spec/integration/transaction/report_spec.rb +29 -0
  611. data/spec/integration/transaction_spec.rb +284 -0
  612. data/spec/integration/type/file_spec.rb +506 -0
  613. data/spec/integration/type/package_spec.rb +25 -0
  614. data/spec/integration/type/tidy_spec.rb +32 -0
  615. data/spec/integration/type_spec.rb +22 -0
  616. data/spec/integration/util/autoload_spec.rb +114 -0
  617. data/spec/integration/util/feature_spec.rb +54 -0
  618. data/spec/integration/util/file_locking_spec.rb +37 -0
  619. data/spec/integration/util/rdoc/parser_spec.rb +59 -0
  620. data/spec/integration/util/settings_spec.rb +30 -0
  621. data/spec/lib/puppet_spec/files.rb +16 -6
  622. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +27 -27
  623. data/spec/monkey_patches/alias_should_to_must.rb +4 -4
  624. data/spec/shared_behaviours/file_server_terminus.rb +28 -28
  625. data/spec/shared_behaviours/file_serving.rb +53 -53
  626. data/spec/shared_behaviours/memory_terminus.rb +22 -22
  627. data/spec/spec.opts +1 -0
  628. data/spec/spec_helper.rb +61 -18
  629. data/spec/spec_specs/runnable_spec.rb +95 -0
  630. data/spec/unit/agent/locker_spec.rb +100 -0
  631. data/spec/unit/agent_spec.rb +281 -0
  632. data/spec/unit/application/agent_spec.rb +588 -0
  633. data/spec/unit/application/apply_spec.rb +387 -0
  634. data/spec/unit/application/cert_spec.rb +194 -0
  635. data/spec/unit/application/describe_spec.rb +84 -0
  636. data/spec/unit/application/doc_spec.rb +368 -0
  637. data/spec/unit/application/filebucket_spec.rb +223 -0
  638. data/spec/unit/application/kick_spec.rb +313 -0
  639. data/spec/unit/application/master_spec.rb +453 -0
  640. data/spec/unit/application/queue_spec.rb +186 -0
  641. data/spec/unit/application/resource_spec.rb +233 -0
  642. data/spec/unit/application_spec.rb +531 -0
  643. data/spec/unit/configurer/downloader_spec.rb +188 -0
  644. data/spec/unit/configurer/fact_handler_spec.rb +164 -0
  645. data/spec/unit/configurer/plugin_handler_spec.rb +112 -0
  646. data/spec/unit/configurer_spec.rb +494 -0
  647. data/spec/unit/daemon_spec.rb +306 -0
  648. data/spec/unit/dsl/resource_api_spec.rb +181 -0
  649. data/spec/unit/dsl/resource_type_api_spec.rb +46 -0
  650. data/spec/unit/file_bucket/dipper_spec.rb +122 -0
  651. data/spec/unit/file_bucket/file_spec.rb +230 -0
  652. data/spec/unit/file_collection/lookup_spec.rb +46 -0
  653. data/spec/unit/file_collection_spec.rb +53 -0
  654. data/spec/unit/file_serving/base_spec.rb +132 -0
  655. data/spec/unit/file_serving/configuration/parser_spec.rb +181 -0
  656. data/spec/unit/file_serving/configuration_spec.rb +249 -0
  657. data/spec/unit/file_serving/content_spec.rb +118 -0
  658. data/spec/unit/file_serving/fileset_spec.rb +347 -0
  659. data/spec/unit/file_serving/indirection_hooks_spec.rb +63 -0
  660. data/spec/unit/file_serving/metadata_spec.rb +286 -0
  661. data/spec/unit/file_serving/mount/file_spec.rb +196 -0
  662. data/spec/unit/file_serving/mount/modules_spec.rb +63 -0
  663. data/spec/unit/file_serving/mount/plugins_spec.rb +61 -0
  664. data/spec/unit/file_serving/mount_spec.rb +32 -0
  665. data/spec/unit/file_serving/terminus_helper_spec.rb +98 -0
  666. data/spec/unit/indirector/active_record_spec.rb +76 -0
  667. data/spec/unit/indirector/catalog/active_record_spec.rb +141 -0
  668. data/spec/unit/indirector/catalog/compiler_spec.rb +275 -0
  669. data/spec/unit/indirector/catalog/queue_spec.rb +20 -0
  670. data/spec/unit/indirector/catalog/rest_spec.rb +11 -0
  671. data/spec/unit/indirector/catalog/yaml_spec.rb +25 -0
  672. data/spec/unit/indirector/certificate/ca_spec.rb +28 -0
  673. data/spec/unit/indirector/certificate/file_spec.rb +28 -0
  674. data/spec/unit/indirector/certificate/rest_spec.rb +58 -0
  675. data/spec/unit/indirector/certificate_request/ca_spec.rb +19 -0
  676. data/spec/unit/indirector/certificate_request/file_spec.rb +19 -0
  677. data/spec/unit/indirector/certificate_request/rest_spec.rb +23 -0
  678. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +21 -0
  679. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +20 -0
  680. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +23 -0
  681. data/spec/unit/indirector/code_spec.rb +33 -0
  682. data/spec/unit/indirector/direct_file_server_spec.rb +84 -0
  683. data/spec/unit/indirector/envelope_spec.rb +47 -0
  684. data/spec/unit/indirector/exec_spec.rb +56 -0
  685. data/spec/unit/indirector/facts/active_record_spec.rb +104 -0
  686. data/spec/unit/indirector/facts/couch_spec.rb +98 -0
  687. data/spec/unit/indirector/facts/facter_spec.rb +143 -0
  688. data/spec/unit/indirector/facts/rest_spec.rb +11 -0
  689. data/spec/unit/indirector/facts/yaml_spec.rb +26 -0
  690. data/spec/unit/indirector/file_bucket_file/file_spec.rb +290 -0
  691. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +11 -0
  692. data/spec/unit/indirector/file_content/file_server_spec.rb +18 -0
  693. data/spec/unit/indirector/file_content/file_spec.rb +18 -0
  694. data/spec/unit/indirector/file_content/rest_spec.rb +11 -0
  695. data/spec/unit/indirector/file_metadata/file_server_spec.rb +18 -0
  696. data/spec/unit/indirector/file_metadata/file_spec.rb +52 -0
  697. data/spec/unit/indirector/file_metadata/rest_spec.rb +9 -0
  698. data/spec/unit/indirector/file_server_spec.rb +267 -0
  699. data/spec/unit/indirector/file_spec.rb +181 -0
  700. data/spec/unit/indirector/indirection_spec.rb +795 -0
  701. data/spec/unit/indirector/key/ca_spec.rb +28 -0
  702. data/spec/unit/indirector/key/file_spec.rb +104 -0
  703. data/spec/unit/indirector/ldap_spec.rb +143 -0
  704. data/spec/unit/indirector/memory_spec.rb +29 -0
  705. data/spec/unit/indirector/node/active_record_spec.rb +41 -0
  706. data/spec/unit/indirector/node/exec_spec.rb +70 -0
  707. data/spec/unit/indirector/node/ldap_spec.rb +456 -0
  708. data/spec/unit/indirector/node/memory_spec.rb +19 -0
  709. data/spec/unit/indirector/node/plain_spec.rb +19 -0
  710. data/spec/unit/indirector/node/rest_spec.rb +13 -0
  711. data/spec/unit/indirector/node/yaml_spec.rb +25 -0
  712. data/spec/unit/indirector/plain_spec.rb +29 -0
  713. data/spec/unit/indirector/queue_spec.rb +123 -0
  714. data/spec/unit/indirector/report/processor_spec.rb +81 -0
  715. data/spec/unit/indirector/report/rest_spec.rb +28 -0
  716. data/spec/unit/indirector/request_spec.rb +304 -0
  717. data/spec/unit/indirector/resource/ral_spec.rb +129 -0
  718. data/spec/unit/indirector/resource/rest_spec.rb +11 -0
  719. data/spec/unit/indirector/resource_type/parser_spec.rb +75 -0
  720. data/spec/unit/indirector/resource_type/rest_spec.rb +15 -0
  721. data/spec/unit/indirector/rest_spec.rb +455 -0
  722. data/spec/unit/indirector/run/local_spec.rb +20 -0
  723. data/spec/unit/indirector/run/rest_spec.rb +11 -0
  724. data/spec/unit/indirector/ssl_file_spec.rb +281 -0
  725. data/spec/unit/indirector/status/rest_spec.rb +11 -0
  726. data/spec/unit/indirector/terminus_spec.rb +245 -0
  727. data/spec/unit/indirector/yaml_spec.rb +146 -0
  728. data/spec/unit/indirector_spec.rb +157 -0
  729. data/spec/unit/module_spec.rb +547 -0
  730. data/spec/unit/network/authconfig_spec.rb +292 -0
  731. data/spec/unit/network/authstore_spec.rb +370 -0
  732. data/spec/unit/network/client_spec.rb +45 -0
  733. data/spec/unit/network/format_handler_spec.rb +336 -0
  734. data/spec/unit/network/format_spec.rb +198 -0
  735. data/spec/unit/network/formats_spec.rb +337 -0
  736. data/spec/unit/network/handler/fileserver_spec.rb +172 -0
  737. data/spec/unit/network/http/api/v1_spec.rb +122 -0
  738. data/spec/unit/network/http/compression_spec.rb +199 -0
  739. data/spec/unit/network/http/handler_spec.rb +455 -0
  740. data/spec/unit/network/http/mongrel/rest_spec.rb +249 -0
  741. data/spec/unit/network/http/mongrel/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  742. data/spec/unit/network/http/mongrel_spec.rb +131 -0
  743. data/spec/unit/network/http/rack/rest_spec.rb +249 -0
  744. data/spec/unit/network/http/rack/xmlrpc_spec.rb +157 -0
  745. data/spec/unit/network/http/rack_spec.rb +102 -0
  746. data/spec/unit/network/http/webrick/rest_spec.rb +180 -0
  747. data/spec/unit/network/http/webrick/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  748. data/spec/unit/network/http/webrick_spec.rb +339 -0
  749. data/spec/unit/network/http_pool_spec.rb +206 -0
  750. data/spec/unit/network/http_spec.rb +35 -0
  751. data/spec/unit/network/rest_authconfig_spec.rb +148 -0
  752. data/spec/unit/network/rest_authorization_spec.rb +43 -0
  753. data/spec/unit/network/rights_spec.rb +519 -0
  754. data/spec/unit/network/server_spec.rb +534 -0
  755. data/spec/unit/network/xmlrpc/client_spec.rb +171 -0
  756. data/spec/unit/node/environment_spec.rb +248 -0
  757. data/spec/unit/node/facts_spec.rb +102 -0
  758. data/spec/unit/node_spec.rb +210 -0
  759. data/spec/unit/other/selinux_spec.rb +94 -0
  760. data/spec/unit/other/transbucket_spec.rb +188 -0
  761. data/spec/unit/other/transobject_spec.rb +112 -0
  762. data/spec/unit/parameter/value_collection_spec.rb +167 -0
  763. data/spec/unit/parameter/value_spec.rb +88 -0
  764. data/spec/unit/parameter_spec.rb +172 -0
  765. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +73 -0
  766. data/spec/unit/parser/ast/astarray_spec.rb +72 -0
  767. data/spec/unit/parser/ast/asthash_spec.rb +98 -0
  768. data/spec/unit/parser/ast/boolean_operator_spec.rb +53 -0
  769. data/spec/unit/parser/ast/casestatement_spec.rb +161 -0
  770. data/spec/unit/parser/ast/collection_spec.rb +63 -0
  771. data/spec/unit/parser/ast/collexpr_spec.rb +115 -0
  772. data/spec/unit/parser/ast/comparison_operator_spec.rb +116 -0
  773. data/spec/unit/parser/ast/function_spec.rb +83 -0
  774. data/spec/unit/parser/ast/ifstatement_spec.rb +76 -0
  775. data/spec/unit/parser/ast/in_operator_spec.rb +60 -0
  776. data/spec/unit/parser/ast/leaf_spec.rb +362 -0
  777. data/spec/unit/parser/ast/match_operator_spec.rb +50 -0
  778. data/spec/unit/parser/ast/minus_spec.rb +36 -0
  779. data/spec/unit/parser/ast/nop_spec.rb +20 -0
  780. data/spec/unit/parser/ast/not_spec.rb +30 -0
  781. data/spec/unit/parser/ast/relationship_spec.rb +88 -0
  782. data/spec/unit/parser/ast/resource_defaults_spec.rb +22 -0
  783. data/spec/unit/parser/ast/resource_override_spec.rb +51 -0
  784. data/spec/unit/parser/ast/resource_reference_spec.rb +46 -0
  785. data/spec/unit/parser/ast/resource_spec.rb +120 -0
  786. data/spec/unit/parser/ast/selector_spec.rb +139 -0
  787. data/spec/unit/parser/ast/vardef_spec.rb +60 -0
  788. data/spec/unit/parser/ast_spec.rb +111 -0
  789. data/spec/unit/parser/collector_spec.rb +559 -0
  790. data/spec/unit/parser/compiler_spec.rb +754 -0
  791. data/spec/unit/parser/files_spec.rb +201 -0
  792. data/spec/unit/parser/functions/defined_spec.rb +50 -0
  793. data/spec/unit/parser/functions/fqdn_rand_spec.rb +62 -0
  794. data/spec/unit/parser/functions/generate_spec.rb +41 -0
  795. data/spec/unit/parser/functions/inline_template_spec.rb +59 -0
  796. data/spec/unit/parser/functions/realize_spec.rb +51 -0
  797. data/spec/unit/parser/functions/regsubst_spec.rb +192 -0
  798. data/spec/unit/parser/functions/require_spec.rb +74 -0
  799. data/spec/unit/parser/functions/shellquote_spec.rb +81 -0
  800. data/spec/unit/parser/functions/split_spec.rb +49 -0
  801. data/spec/unit/parser/functions/sprintf_spec.rb +41 -0
  802. data/spec/unit/parser/functions/tag_spec.rb +24 -0
  803. data/spec/unit/parser/functions/template_spec.rb +62 -0
  804. data/spec/unit/parser/functions/versioncmp_spec.rb +29 -0
  805. data/spec/unit/parser/functions_spec.rb +102 -0
  806. data/spec/unit/parser/lexer_spec.rb +646 -0
  807. data/spec/unit/parser/parser_spec.rb +412 -0
  808. data/spec/unit/parser/relationship_spec.rb +70 -0
  809. data/spec/unit/parser/resource_spec.rb +564 -0
  810. data/spec/unit/parser/scope_spec.rb +629 -0
  811. data/spec/unit/parser/templatewrapper_spec.rb +144 -0
  812. data/spec/unit/parser/type_loader_spec.rb +201 -0
  813. data/spec/unit/property/ensure_spec.rb +13 -0
  814. data/spec/unit/property/keyvalue_spec.rb +168 -0
  815. data/spec/unit/property/list_spec.rb +166 -0
  816. data/spec/unit/property/ordered_list_spec.rb +64 -0
  817. data/spec/unit/property_spec.rb +410 -0
  818. data/spec/unit/provider/augeas/augeas_spec.rb +413 -0
  819. data/spec/unit/provider/confine/exists_spec.rb +81 -0
  820. data/spec/unit/provider/confine/false_spec.rb +53 -0
  821. data/spec/unit/provider/confine/feature_spec.rb +60 -0
  822. data/spec/unit/provider/confine/true_spec.rb +53 -0
  823. data/spec/unit/provider/confine/variable_spec.rb +107 -0
  824. data/spec/unit/provider/confine_collection_spec.rb +134 -0
  825. data/spec/unit/provider/confine_spec.rb +78 -0
  826. data/spec/unit/provider/confiner_spec.rb +63 -0
  827. data/spec/unit/provider/group/groupadd_spec.rb +31 -0
  828. data/spec/unit/provider/group/ldap_spec.rb +105 -0
  829. data/spec/unit/provider/ldap_spec.rb +248 -0
  830. data/spec/unit/provider/macauthorization_spec.rb +147 -0
  831. data/spec/unit/provider/mcx/mcxcontent_spec.rb +175 -0
  832. data/spec/unit/provider/mount/parsed_spec.rb +193 -0
  833. data/spec/unit/provider/mount_spec.rb +130 -0
  834. data/spec/unit/provider/naginator_spec.rb +58 -0
  835. data/spec/unit/provider/package/aix_spec.rb +66 -0
  836. data/spec/unit/provider/package/apt_spec.rb +145 -0
  837. data/spec/unit/provider/package/dpkg_spec.rb +225 -0
  838. data/spec/unit/provider/package/gem_spec.rb +87 -0
  839. data/spec/unit/provider/package/hpux_spec.rb +52 -0
  840. data/spec/unit/provider/package/nim_spec.rb +42 -0
  841. data/spec/unit/provider/package/pkg_spec.rb +63 -0
  842. data/spec/unit/provider/package/pkgdmg_spec.rb +84 -0
  843. data/spec/unit/provider/package/zypper_spec.rb +81 -0
  844. data/spec/unit/provider/parsedfile_spec.rb +95 -0
  845. data/spec/unit/provider/selboolean_spec.rb +37 -0
  846. data/spec/unit/provider/selmodule_spec.rb +66 -0
  847. data/spec/unit/provider/service/daemontools_spec.rb +166 -0
  848. data/spec/unit/provider/service/debian_spec.rb +89 -0
  849. data/spec/unit/provider/service/init_spec.rb +168 -0
  850. data/spec/unit/provider/service/launchd_spec.rb +200 -0
  851. data/spec/unit/provider/service/redhat_spec.rb +121 -0
  852. data/spec/unit/provider/service/runit_spec.rb +140 -0
  853. data/spec/unit/provider/service/src_spec.rb +97 -0
  854. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +228 -0
  855. data/spec/unit/provider/sshkey/parsed_spec.rb +38 -0
  856. data/spec/unit/provider/user/hpux_spec.rb +25 -0
  857. data/spec/unit/provider/user/ldap_spec.rb +279 -0
  858. data/spec/unit/provider/user/user_role_add_spec.rb +249 -0
  859. data/spec/unit/provider/user/useradd_spec.rb +115 -0
  860. data/spec/unit/provider/zfs/solaris_spec.rb +99 -0
  861. data/spec/unit/provider/zone/solaris_spec.rb +55 -0
  862. data/spec/unit/provider/zpool/solaris_spec.rb +179 -0
  863. data/spec/unit/provider_spec.rb +31 -0
  864. data/spec/unit/puppet_spec.rb +12 -0
  865. data/spec/unit/rails/host_spec.rb +163 -0
  866. data/spec/unit/rails/param_value_spec.rb +49 -0
  867. data/spec/unit/rails/resource_spec.rb +123 -0
  868. data/spec/unit/rails_spec.rb +258 -0
  869. data/spec/unit/relationship_spec.rb +236 -0
  870. data/spec/unit/reports/http_spec.rb +56 -0
  871. data/spec/unit/reports/tagmail_spec.rb +94 -0
  872. data/spec/unit/reports_spec.rb +61 -0
  873. data/spec/unit/resource/catalog_spec.rb +1078 -0
  874. data/spec/unit/resource/status_spec.rb +103 -0
  875. data/spec/unit/resource/type_collection_helper_spec.rb +25 -0
  876. data/spec/unit/resource/type_collection_spec.rb +432 -0
  877. data/spec/unit/resource/type_spec.rb +722 -0
  878. data/spec/unit/resource_spec.rb +818 -0
  879. data/spec/unit/run_spec.rb +137 -0
  880. data/spec/unit/simple_graph_spec.rb +544 -0
  881. data/spec/unit/ssl/base_spec.rb +43 -0
  882. data/spec/unit/ssl/certificate_authority/interface_spec.rb +333 -0
  883. data/spec/unit/ssl/certificate_authority_spec.rb +772 -0
  884. data/spec/unit/ssl/certificate_factory_spec.rb +107 -0
  885. data/spec/unit/ssl/certificate_request_spec.rb +220 -0
  886. data/spec/unit/ssl/certificate_revocation_list_spec.rb +168 -0
  887. data/spec/unit/ssl/certificate_spec.rb +124 -0
  888. data/spec/unit/ssl/host_spec.rb +707 -0
  889. data/spec/unit/ssl/inventory_spec.rb +180 -0
  890. data/spec/unit/ssl/key_spec.rb +198 -0
  891. data/spec/unit/status_spec.rb +31 -0
  892. data/spec/unit/transaction/change_spec.rb +193 -0
  893. data/spec/unit/transaction/event_manager_spec.rb +260 -0
  894. data/spec/unit/transaction/event_spec.rb +108 -0
  895. data/spec/unit/transaction/report_spec.rb +234 -0
  896. data/spec/unit/transaction/resource_harness_spec.rb +401 -0
  897. data/spec/unit/transaction_spec.rb +452 -0
  898. data/spec/unit/transportable_spec.rb +0 -0
  899. data/spec/unit/type/augeas_spec.rb +122 -0
  900. data/spec/unit/type/component_spec.rb +63 -0
  901. data/spec/unit/type/computer_spec.rb +81 -0
  902. data/spec/unit/type/cron_spec.rb +33 -0
  903. data/spec/unit/type/exec_spec.rb +162 -0
  904. data/spec/unit/type/file/checksum_spec.rb +73 -0
  905. data/spec/unit/type/file/content_spec.rb +460 -0
  906. data/spec/unit/type/file/ensure_spec.rb +84 -0
  907. data/spec/unit/type/file/group_spec.rb +123 -0
  908. data/spec/unit/type/file/owner_spec.rb +150 -0
  909. data/spec/unit/type/file/selinux_spec.rb +83 -0
  910. data/spec/unit/type/file/source_spec.rb +272 -0
  911. data/spec/unit/type/file_spec.rb +1070 -0
  912. data/spec/unit/type/filebucket_spec.rb +74 -0
  913. data/spec/unit/type/group_spec.rb +57 -0
  914. data/spec/unit/type/macauthorization_spec.rb +111 -0
  915. data/spec/unit/type/maillist_spec.rb +42 -0
  916. data/spec/unit/type/mcx_spec.rb +100 -0
  917. data/spec/unit/type/mount_spec.rb +261 -0
  918. data/spec/unit/type/nagios_spec.rb +63 -0
  919. data/spec/unit/type/noop_metaparam_spec.rb +37 -0
  920. data/spec/unit/type/package_spec.rb +240 -0
  921. data/spec/unit/type/resources_spec.rb +102 -0
  922. data/spec/unit/type/schedule_spec.rb +333 -0
  923. data/spec/unit/type/selboolean_spec.rb +45 -0
  924. data/spec/unit/type/selmodule_spec.rb +18 -0
  925. data/spec/unit/type/service_spec.rb +222 -0
  926. data/spec/unit/type/ssh_authorized_key_spec.rb +152 -0
  927. data/spec/unit/type/stage_spec.rb +9 -0
  928. data/spec/unit/type/tidy_spec.rb +424 -0
  929. data/spec/unit/type/user_spec.rb +281 -0
  930. data/spec/unit/type/zfs_spec.rb +45 -0
  931. data/spec/unit/type/zone_spec.rb +60 -0
  932. data/spec/unit/type/zpool_spec.rb +110 -0
  933. data/spec/unit/type_spec.rb +566 -0
  934. data/spec/unit/util/autoload/file_cache_spec.rb +159 -0
  935. data/spec/unit/util/autoload_spec.rb +120 -0
  936. data/spec/unit/util/backups_spec.rb +159 -0
  937. data/spec/unit/util/cache_accumulator_spec.rb +75 -0
  938. data/spec/unit/util/cacher_spec.rb +185 -0
  939. data/spec/unit/util/checksums_spec.rb +153 -0
  940. data/spec/unit/util/command_line_spec.rb +108 -0
  941. data/spec/unit/util/constant_inflector_spec.rb +70 -0
  942. data/spec/unit/util/errors_spec.rb +38 -0
  943. data/spec/unit/util/feature_spec.rb +72 -0
  944. data/spec/unit/util/file_locking_spec.rb +156 -0
  945. data/spec/unit/util/filetype_spec.rb +100 -0
  946. data/spec/unit/util/inline_docs_spec.rb +32 -0
  947. data/spec/unit/util/json_spec.rb +21 -0
  948. data/spec/unit/util/ldap/connection_spec.rb +169 -0
  949. data/spec/unit/util/ldap/generator_spec.rb +54 -0
  950. data/spec/unit/util/ldap/manager_spec.rb +654 -0
  951. data/spec/unit/util/loadedfile_spec.rb +65 -0
  952. data/spec/unit/util/log/destinations_spec.rb +24 -0
  953. data/spec/unit/util/log_spec.rb +215 -0
  954. data/spec/unit/util/logging_spec.rb +95 -0
  955. data/spec/unit/util/metric_spec.rb +95 -0
  956. data/spec/unit/util/monkey_patches_spec.rb +7 -0
  957. data/spec/unit/util/nagios_maker_spec.rb +126 -0
  958. data/spec/unit/util/package_spec.rb +21 -0
  959. data/spec/unit/util/posix_spec.rb +256 -0
  960. data/spec/unit/util/queue/stomp_spec.rb +140 -0
  961. data/spec/unit/util/queue_spec.rb +96 -0
  962. data/spec/unit/util/rdoc/parser_spec.rb +540 -0
  963. data/spec/unit/util/rdoc_spec.rb +165 -0
  964. data/spec/unit/util/reference_serializer_spec.rb +52 -0
  965. data/spec/unit/util/resource_template_spec.rb +58 -0
  966. data/spec/unit/util/run_mode_spec.rb +51 -0
  967. data/spec/unit/util/selinux_spec.rb +278 -0
  968. data/spec/unit/util/settings/file_setting_spec.rb +256 -0
  969. data/spec/unit/util/settings_spec.rb +1099 -0
  970. data/spec/unit/util/storage_spec.rb +235 -0
  971. data/spec/unit/util/tagging_spec.rb +102 -0
  972. data/spec/unit/util/user_attr_spec.rb +47 -0
  973. data/spec/unit/util/warnings_spec.rb +39 -0
  974. data/spec/unit/util/zaml_spec.rb +38 -0
  975. data/tasks/rake/git_workflow.rake +1 -1
  976. data/tasks/rake/sign.rake +2 -2
  977. data/test/certmgr/ca.rb +61 -61
  978. data/test/certmgr/certmgr.rb +292 -283
  979. data/test/certmgr/inventory.rb +44 -42
  980. data/test/certmgr/support.rb +78 -77
  981. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -1
  982. data/test/data/snippets/hash.pp +33 -0
  983. data/test/language/ast.rb +68 -117
  984. data/test/language/ast/variable.rb +14 -15
  985. data/test/language/functions.rb +404 -463
  986. data/test/language/parser.rb +670 -1135
  987. data/test/language/scope.rb +198 -402
  988. data/test/language/snippets.rb +439 -447
  989. data/test/language/transportable.rb +67 -66
  990. data/test/lib/puppettest.rb +260 -268
  991. data/test/lib/puppettest/certificates.rb +51 -53
  992. data/test/lib/puppettest/exetest.rb +107 -111
  993. data/test/lib/puppettest/fakes.rb +153 -158
  994. data/test/lib/puppettest/fileparsing.rb +17 -17
  995. data/test/lib/puppettest/filetesting.rb +204 -213
  996. data/test/lib/puppettest/parsertesting.rb +382 -365
  997. data/test/lib/puppettest/railstesting.rb +49 -50
  998. data/test/lib/puppettest/reporttesting.rb +10 -10
  999. data/test/lib/puppettest/resourcetesting.rb +45 -36
  1000. data/test/lib/puppettest/runnable_test.rb +36 -28
  1001. data/test/lib/puppettest/servertest.rb +54 -51
  1002. data/test/lib/puppettest/support/assertions.rb +48 -55
  1003. data/test/lib/puppettest/support/helpers.rb +12 -16
  1004. data/test/lib/puppettest/support/resources.rb +23 -25
  1005. data/test/lib/puppettest/support/utils.rb +138 -148
  1006. data/test/lib/puppettest/testcase.rb +15 -17
  1007. data/test/lib/rake/puppet_test_loader.rb +1 -3
  1008. data/test/lib/rake/puppet_testtask.rb +10 -10
  1009. data/test/network/authconfig.rb +48 -50
  1010. data/test/network/authorization.rb +114 -113
  1011. data/test/network/authstore.rb +454 -406
  1012. data/test/network/client/ca.rb +46 -48
  1013. data/test/network/client/dipper.rb +22 -22
  1014. data/test/network/client_request.rb +20 -20
  1015. data/test/network/handler/ca.rb +251 -252
  1016. data/test/network/handler/fileserver.rb +1071 -1001
  1017. data/test/network/handler/master.rb +58 -58
  1018. data/test/network/handler/report.rb +64 -64
  1019. data/test/network/handler/runner.rb +8 -8
  1020. data/test/network/rights.rb +22 -19
  1021. data/test/network/server/mongrel_test.rb +87 -87
  1022. data/test/network/server/webrick.rb +99 -87
  1023. data/test/network/xmlrpc/client.rb +30 -30
  1024. data/test/network/xmlrpc/processor.rb +52 -53
  1025. data/test/network/xmlrpc/server.rb +10 -11
  1026. data/test/network/xmlrpc/webrick_servlet.rb +21 -18
  1027. data/test/other/provider.rb +69 -84
  1028. data/test/other/puppet.rb +61 -76
  1029. data/test/other/relationships.rb +73 -65
  1030. data/test/other/report.rb +88 -187
  1031. data/test/other/transactions.rb +363 -885
  1032. data/test/puppet/defaults.rb +51 -54
  1033. data/test/puppet/errortest.rb +8 -8
  1034. data/test/puppet/tc_suidmanager.rb +106 -103
  1035. data/test/rails/rails.rb +8 -9
  1036. data/test/rails/railsparameter.rb +60 -54
  1037. data/test/ral/manager/attributes.rb +262 -260
  1038. data/test/ral/manager/instances.rb +77 -78
  1039. data/test/ral/manager/manager.rb +36 -36
  1040. data/test/ral/manager/provider.rb +56 -79
  1041. data/test/ral/manager/type.rb +308 -449
  1042. data/test/ral/providers/cron/crontab.rb +561 -545
  1043. data/test/ral/providers/group.rb +203 -212
  1044. data/test/ral/providers/host/parsed.rb +189 -180
  1045. data/test/ral/providers/mailalias/aliases.rb +40 -40
  1046. data/test/ral/providers/nameservice.rb +21 -21
  1047. data/test/ral/providers/package.rb +207 -214
  1048. data/test/ral/providers/package/aptitude.rb +75 -63
  1049. data/test/ral/providers/package/aptrpm.rb +84 -72
  1050. data/test/ral/providers/parsedfile.rb +510 -509
  1051. data/test/ral/providers/port/parsed.rb +5 -5
  1052. data/test/ral/providers/provider.rb +421 -421
  1053. data/test/ral/providers/service/base.rb +59 -53
  1054. data/test/ral/providers/sshkey/parsed.rb +86 -83
  1055. data/test/ral/providers/user.rb +471 -451
  1056. data/test/ral/providers/user/useradd.rb +168 -177
  1057. data/test/ral/type/cron.rb +406 -393
  1058. data/test/ral/type/exec.rb +721 -641
  1059. data/test/ral/type/file.rb +827 -896
  1060. data/test/ral/type/file/target.rb +295 -251
  1061. data/test/ral/type/fileignoresource.rb +232 -205
  1062. data/test/ral/type/filesources.rb +446 -485
  1063. data/test/ral/type/host.rb +124 -153
  1064. data/test/ral/type/mailalias.rb +28 -31
  1065. data/test/ral/type/port.rb +7 -7
  1066. data/test/ral/type/resources.rb +88 -93
  1067. data/test/ral/type/service.rb +19 -19
  1068. data/test/ral/type/sshkey.rb +120 -160
  1069. data/test/ral/type/user.rb +132 -414
  1070. data/test/ral/type/yumrepo.rb +95 -92
  1071. data/test/ral/type/zone.rb +316 -287
  1072. data/test/test +1 -1
  1073. data/test/util/classgen.rb +182 -167
  1074. data/test/util/execution.rb +18 -18
  1075. data/test/util/fileparsing.rb +580 -540
  1076. data/test/util/inifile.rb +117 -106
  1077. data/test/util/instance_loader.rb +29 -29
  1078. data/test/util/log.rb +202 -198
  1079. data/test/util/metrics.rb +51 -51
  1080. data/test/util/package.rb +11 -12
  1081. data/test/util/pidlock.rb +115 -115
  1082. data/test/util/settings.rb +613 -557
  1083. data/test/util/storage.rb +71 -88
  1084. data/test/util/subclass_loader.rb +69 -72
  1085. data/test/util/utiltest.rb +204 -203
  1086. metadata +493 -395
  1087. data/lib/puppet/agent/runner.rb +0 -65
  1088. data/lib/puppet/application/pi.rb +0 -214
  1089. data/lib/puppet/application/puppet.rb +0 -181
  1090. data/lib/puppet/application/puppetca.rb +0 -71
  1091. data/lib/puppet/application/puppetd.rb +0 -250
  1092. data/lib/puppet/application/puppetdoc.rb +0 -224
  1093. data/lib/puppet/application/puppetmasterd.rb +0 -168
  1094. data/lib/puppet/application/puppetqd.rb +0 -96
  1095. data/lib/puppet/application/puppetrun.rb +0 -210
  1096. data/lib/puppet/application/ralsh.rb +0 -152
  1097. data/lib/puppet/checksum.rb +0 -57
  1098. data/lib/puppet/indirector/checksum/file.rb +0 -33
  1099. data/lib/puppet/indirector/runner/rest.rb +0 -7
  1100. data/lib/puppet/network/client/dipper.rb +0 -85
  1101. data/lib/puppet/network/client/resource.rb +0 -38
  1102. data/lib/puppet/network/handler/resource.rb +0 -190
  1103. data/lib/puppet/parser/ast/definition.rb +0 -207
  1104. data/lib/puppet/parser/ast/hostclass.rb +0 -95
  1105. data/lib/puppet/parser/ast/node.rb +0 -42
  1106. data/lib/puppet/parser/interpreter.rb +0 -84
  1107. data/lib/puppet/parser/loaded_code.rb +0 -119
  1108. data/lib/puppet/parser/resource/reference.rb +0 -99
  1109. data/lib/puppet/resource/reference.rb +0 -90
  1110. data/lib/puppet/util/config_store.rb +0 -61
  1111. data/spec/integration/application/puppet.rb +0 -33
  1112. data/spec/integration/bin/puppetmasterd.rb +0 -122
  1113. data/spec/integration/checksum.rb +0 -48
  1114. data/spec/integration/configurer.rb +0 -18
  1115. data/spec/integration/defaults.rb +0 -230
  1116. data/spec/integration/file_serving/content.rb +0 -20
  1117. data/spec/integration/file_serving/fileset.rb +0 -14
  1118. data/spec/integration/file_serving/metadata.rb +0 -21
  1119. data/spec/integration/file_serving/terminus_helper.rb +0 -22
  1120. data/spec/integration/indirector/catalog/compiler.rb +0 -67
  1121. data/spec/integration/indirector/catalog/queue.rb +0 -61
  1122. data/spec/integration/indirector/certificate/rest.rb +0 -70
  1123. data/spec/integration/indirector/certificate_request/rest.rb +0 -88
  1124. data/spec/integration/indirector/certificate_revocation_list/rest.rb +0 -76
  1125. data/spec/integration/indirector/direct_file_server.rb +0 -73
  1126. data/spec/integration/indirector/file_content/file_server.rb +0 -94
  1127. data/spec/integration/indirector/file_metadata/file_server.rb +0 -18
  1128. data/spec/integration/indirector/node/ldap.rb +0 -15
  1129. data/spec/integration/indirector/report/rest.rb +0 -94
  1130. data/spec/integration/indirector/rest.rb +0 -523
  1131. data/spec/integration/network/client.rb +0 -19
  1132. data/spec/integration/network/formats.rb +0 -110
  1133. data/spec/integration/network/handler.rb +0 -25
  1134. data/spec/integration/network/server/mongrel.rb +0 -66
  1135. data/spec/integration/network/server/webrick.rb +0 -86
  1136. data/spec/integration/node.rb +0 -93
  1137. data/spec/integration/node/environment.rb +0 -58
  1138. data/spec/integration/node/facts.rb +0 -47
  1139. data/spec/integration/parser/compiler.rb +0 -29
  1140. data/spec/integration/parser/functions/require.rb +0 -86
  1141. data/spec/integration/provider/mailalias/aliases.rb +0 -25
  1142. data/spec/integration/provider/package.rb +0 -26
  1143. data/spec/integration/provider/service/init.rb +0 -32
  1144. data/spec/integration/reference/providers.rb +0 -17
  1145. data/spec/integration/reports.rb +0 -18
  1146. data/spec/integration/resource/catalog.rb +0 -61
  1147. data/spec/integration/ssl/certificate_authority.rb +0 -135
  1148. data/spec/integration/ssl/certificate_request.rb +0 -61
  1149. data/spec/integration/ssl/certificate_revocation_list.rb +0 -42
  1150. data/spec/integration/ssl/host.rb +0 -90
  1151. data/spec/integration/transaction.rb +0 -66
  1152. data/spec/integration/transaction/report.rb +0 -29
  1153. data/spec/integration/type.rb +0 -22
  1154. data/spec/integration/type/file.rb +0 -477
  1155. data/spec/integration/type/package.rb +0 -25
  1156. data/spec/integration/type/tidy.rb +0 -27
  1157. data/spec/integration/util/autoload.rb +0 -114
  1158. data/spec/integration/util/feature.rb +0 -54
  1159. data/spec/integration/util/file_locking.rb +0 -37
  1160. data/spec/integration/util/settings.rb +0 -27
  1161. data/spec/unit/agent.rb +0 -259
  1162. data/spec/unit/agent/locker.rb +0 -100
  1163. data/spec/unit/agent/runner.rb +0 -118
  1164. data/spec/unit/application.rb +0 -420
  1165. data/spec/unit/application/filebucket.rb +0 -220
  1166. data/spec/unit/application/pi.rb +0 -84
  1167. data/spec/unit/application/puppet.rb +0 -399
  1168. data/spec/unit/application/puppetca.rb +0 -142
  1169. data/spec/unit/application/puppetd.rb +0 -502
  1170. data/spec/unit/application/puppetdoc.rb +0 -360
  1171. data/spec/unit/application/puppetmasterd.rb +0 -457
  1172. data/spec/unit/application/puppetqd.rb +0 -186
  1173. data/spec/unit/application/puppetrun.rb +0 -289
  1174. data/spec/unit/application/ralsh.rb +0 -254
  1175. data/spec/unit/configurer.rb +0 -339
  1176. data/spec/unit/configurer/downloader.rb +0 -188
  1177. data/spec/unit/configurer/fact_handler.rb +0 -164
  1178. data/spec/unit/configurer/plugin_handler.rb +0 -112
  1179. data/spec/unit/daemon.rb +0 -287
  1180. data/spec/unit/file_collection.rb +0 -53
  1181. data/spec/unit/file_collection/lookup.rb +0 -46
  1182. data/spec/unit/file_serving/base.rb +0 -132
  1183. data/spec/unit/file_serving/configuration.rb +0 -249
  1184. data/spec/unit/file_serving/configuration/parser.rb +0 -181
  1185. data/spec/unit/file_serving/content.rb +0 -110
  1186. data/spec/unit/file_serving/fileset.rb +0 -347
  1187. data/spec/unit/file_serving/indirection_hooks.rb +0 -63
  1188. data/spec/unit/file_serving/metadata.rb +0 -286
  1189. data/spec/unit/file_serving/mount.rb +0 -32
  1190. data/spec/unit/file_serving/mount/file.rb +0 -196
  1191. data/spec/unit/file_serving/mount/modules.rb +0 -63
  1192. data/spec/unit/file_serving/mount/plugins.rb +0 -61
  1193. data/spec/unit/file_serving/terminus_helper.rb +0 -98
  1194. data/spec/unit/indirector.rb +0 -157
  1195. data/spec/unit/indirector/active_record.rb +0 -76
  1196. data/spec/unit/indirector/catalog/active_record.rb +0 -141
  1197. data/spec/unit/indirector/catalog/compiler.rb +0 -261
  1198. data/spec/unit/indirector/catalog/queue.rb +0 -20
  1199. data/spec/unit/indirector/catalog/rest.rb +0 -11
  1200. data/spec/unit/indirector/catalog/yaml.rb +0 -25
  1201. data/spec/unit/indirector/certificate/ca.rb +0 -28
  1202. data/spec/unit/indirector/certificate/file.rb +0 -28
  1203. data/spec/unit/indirector/certificate/rest.rb +0 -57
  1204. data/spec/unit/indirector/certificate_request/ca.rb +0 -19
  1205. data/spec/unit/indirector/certificate_request/file.rb +0 -19
  1206. data/spec/unit/indirector/certificate_request/rest.rb +0 -23
  1207. data/spec/unit/indirector/certificate_revocation_list/ca.rb +0 -21
  1208. data/spec/unit/indirector/certificate_revocation_list/file.rb +0 -20
  1209. data/spec/unit/indirector/certificate_revocation_list/rest.rb +0 -23
  1210. data/spec/unit/indirector/checksum/file.rb +0 -139
  1211. data/spec/unit/indirector/code.rb +0 -33
  1212. data/spec/unit/indirector/direct_file_server.rb +0 -84
  1213. data/spec/unit/indirector/envelope.rb +0 -47
  1214. data/spec/unit/indirector/exec.rb +0 -56
  1215. data/spec/unit/indirector/facts/active_record.rb +0 -104
  1216. data/spec/unit/indirector/facts/facter.rb +0 -142
  1217. data/spec/unit/indirector/facts/rest.rb +0 -11
  1218. data/spec/unit/indirector/facts/yaml.rb +0 -26
  1219. data/spec/unit/indirector/file.rb +0 -161
  1220. data/spec/unit/indirector/file_content/file.rb +0 -18
  1221. data/spec/unit/indirector/file_content/file_server.rb +0 -18
  1222. data/spec/unit/indirector/file_content/rest.rb +0 -11
  1223. data/spec/unit/indirector/file_metadata/file.rb +0 -52
  1224. data/spec/unit/indirector/file_metadata/file_server.rb +0 -18
  1225. data/spec/unit/indirector/file_metadata/rest.rb +0 -9
  1226. data/spec/unit/indirector/file_server.rb +0 -267
  1227. data/spec/unit/indirector/indirection.rb +0 -795
  1228. data/spec/unit/indirector/key/ca.rb +0 -28
  1229. data/spec/unit/indirector/key/file.rb +0 -104
  1230. data/spec/unit/indirector/ldap.rb +0 -143
  1231. data/spec/unit/indirector/memory.rb +0 -29
  1232. data/spec/unit/indirector/node/active_record.rb +0 -34
  1233. data/spec/unit/indirector/node/exec.rb +0 -69
  1234. data/spec/unit/indirector/node/ldap.rb +0 -458
  1235. data/spec/unit/indirector/node/memory.rb +0 -19
  1236. data/spec/unit/indirector/node/plain.rb +0 -19
  1237. data/spec/unit/indirector/node/rest.rb +0 -13
  1238. data/spec/unit/indirector/node/yaml.rb +0 -25
  1239. data/spec/unit/indirector/plain.rb +0 -29
  1240. data/spec/unit/indirector/queue.rb +0 -123
  1241. data/spec/unit/indirector/report/processor.rb +0 -81
  1242. data/spec/unit/indirector/report/rest.rb +0 -28
  1243. data/spec/unit/indirector/request.rb +0 -308
  1244. data/spec/unit/indirector/rest.rb +0 -403
  1245. data/spec/unit/indirector/runner/rest.rb +0 -11
  1246. data/spec/unit/indirector/ssl_file.rb +0 -280
  1247. data/spec/unit/indirector/terminus.rb +0 -245
  1248. data/spec/unit/indirector/yaml.rb +0 -145
  1249. data/spec/unit/module.rb +0 -247
  1250. data/spec/unit/network/authconfig.rb +0 -292
  1251. data/spec/unit/network/authstore.rb +0 -370
  1252. data/spec/unit/network/client.rb +0 -45
  1253. data/spec/unit/network/client/dipper.rb +0 -16
  1254. data/spec/unit/network/format.rb +0 -191
  1255. data/spec/unit/network/format_handler.rb +0 -327
  1256. data/spec/unit/network/formats.rb +0 -365
  1257. data/spec/unit/network/handler/fileserver.rb +0 -176
  1258. data/spec/unit/network/http.rb +0 -35
  1259. data/spec/unit/network/http/api/v1.rb +0 -122
  1260. data/spec/unit/network/http/handler.rb +0 -458
  1261. data/spec/unit/network/http/mongrel.rb +0 -131
  1262. data/spec/unit/network/http/mongrel/rest.rb +0 -232
  1263. data/spec/unit/network/http/rack.rb +0 -102
  1264. data/spec/unit/network/http/rack/rest.rb +0 -199
  1265. data/spec/unit/network/http/rack/xmlrpc.rb +0 -157
  1266. data/spec/unit/network/http/webrick.rb +0 -339
  1267. data/spec/unit/network/http/webrick/rest.rb +0 -157
  1268. data/spec/unit/network/http_pool.rb +0 -206
  1269. data/spec/unit/network/rest_authconfig.rb +0 -146
  1270. data/spec/unit/network/rest_authorization.rb +0 -43
  1271. data/spec/unit/network/rights.rb +0 -519
  1272. data/spec/unit/network/server.rb +0 -534
  1273. data/spec/unit/network/xmlrpc/client.rb +0 -171
  1274. data/spec/unit/node.rb +0 -200
  1275. data/spec/unit/node/environment.rb +0 -187
  1276. data/spec/unit/node/facts.rb +0 -97
  1277. data/spec/unit/other/checksum.rb +0 -92
  1278. data/spec/unit/other/selinux.rb +0 -85
  1279. data/spec/unit/other/transbucket.rb +0 -188
  1280. data/spec/unit/other/transobject.rb +0 -112
  1281. data/spec/unit/parameter.rb +0 -405
  1282. data/spec/unit/parser/ast.rb +0 -41
  1283. data/spec/unit/parser/ast/arithmetic_operator.rb +0 -73
  1284. data/spec/unit/parser/ast/astarray.rb +0 -72
  1285. data/spec/unit/parser/ast/boolean_operator.rb +0 -53
  1286. data/spec/unit/parser/ast/casestatement.rb +0 -135
  1287. data/spec/unit/parser/ast/collection.rb +0 -63
  1288. data/spec/unit/parser/ast/collexpr.rb +0 -115
  1289. data/spec/unit/parser/ast/comparison_operator.rb +0 -92
  1290. data/spec/unit/parser/ast/definition.rb +0 -213
  1291. data/spec/unit/parser/ast/function.rb +0 -83
  1292. data/spec/unit/parser/ast/hostclass.rb +0 -148
  1293. data/spec/unit/parser/ast/ifstatement.rb +0 -76
  1294. data/spec/unit/parser/ast/leaf.rb +0 -298
  1295. data/spec/unit/parser/ast/match_operator.rb +0 -50
  1296. data/spec/unit/parser/ast/minus.rb +0 -36
  1297. data/spec/unit/parser/ast/node.rb +0 -145
  1298. data/spec/unit/parser/ast/nop.rb +0 -20
  1299. data/spec/unit/parser/ast/not.rb +0 -30
  1300. data/spec/unit/parser/ast/resource.rb +0 -103
  1301. data/spec/unit/parser/ast/resource_override.rb +0 -51
  1302. data/spec/unit/parser/ast/resource_reference.rb +0 -69
  1303. data/spec/unit/parser/ast/selector.rb +0 -155
  1304. data/spec/unit/parser/ast/vardef.rb +0 -47
  1305. data/spec/unit/parser/collector.rb +0 -556
  1306. data/spec/unit/parser/compiler.rb +0 -604
  1307. data/spec/unit/parser/files.rb +0 -190
  1308. data/spec/unit/parser/functions.rb +0 -83
  1309. data/spec/unit/parser/functions/fqdn_rand.rb +0 -62
  1310. data/spec/unit/parser/functions/generate.rb +0 -41
  1311. data/spec/unit/parser/functions/inline_template.rb +0 -59
  1312. data/spec/unit/parser/functions/realize.rb +0 -51
  1313. data/spec/unit/parser/functions/regsubst.rb +0 -168
  1314. data/spec/unit/parser/functions/require.rb +0 -69
  1315. data/spec/unit/parser/functions/shellquote.rb +0 -92
  1316. data/spec/unit/parser/functions/split.rb +0 -51
  1317. data/spec/unit/parser/functions/sprintf.rb +0 -42
  1318. data/spec/unit/parser/functions/template.rb +0 -62
  1319. data/spec/unit/parser/functions/versioncmp.rb +0 -29
  1320. data/spec/unit/parser/interpreter.rb +0 -147
  1321. data/spec/unit/parser/lexer.rb +0 -731
  1322. data/spec/unit/parser/loaded_code.rb +0 -215
  1323. data/spec/unit/parser/parser.rb +0 -423
  1324. data/spec/unit/parser/resource.rb +0 -529
  1325. data/spec/unit/parser/resource/reference.rb +0 -111
  1326. data/spec/unit/parser/scope.rb +0 -387
  1327. data/spec/unit/parser/templatewrapper.rb +0 -134
  1328. data/spec/unit/property.rb +0 -305
  1329. data/spec/unit/property/keyvalue.rb +0 -168
  1330. data/spec/unit/property/list.rb +0 -166
  1331. data/spec/unit/property/ordered_list.rb +0 -64
  1332. data/spec/unit/provider.rb +0 -31
  1333. data/spec/unit/provider/augeas/augeas.rb +0 -413
  1334. data/spec/unit/provider/confine.rb +0 -78
  1335. data/spec/unit/provider/confine/exists.rb +0 -81
  1336. data/spec/unit/provider/confine/false.rb +0 -53
  1337. data/spec/unit/provider/confine/feature.rb +0 -60
  1338. data/spec/unit/provider/confine/true.rb +0 -53
  1339. data/spec/unit/provider/confine/variable.rb +0 -107
  1340. data/spec/unit/provider/confine_collection.rb +0 -134
  1341. data/spec/unit/provider/confiner.rb +0 -63
  1342. data/spec/unit/provider/group/groupadd.rb +0 -31
  1343. data/spec/unit/provider/group/ldap.rb +0 -105
  1344. data/spec/unit/provider/ldap.rb +0 -248
  1345. data/spec/unit/provider/macauthorization.rb +0 -147
  1346. data/spec/unit/provider/mcx/mcxcontent.rb +0 -175
  1347. data/spec/unit/provider/mount.rb +0 -130
  1348. data/spec/unit/provider/mount/parsed.rb +0 -194
  1349. data/spec/unit/provider/naginator.rb +0 -58
  1350. data/spec/unit/provider/package/apt.rb +0 -138
  1351. data/spec/unit/provider/package/dpkg.rb +0 -170
  1352. data/spec/unit/provider/package/gem.rb +0 -87
  1353. data/spec/unit/provider/package/hpux.rb +0 -52
  1354. data/spec/unit/provider/package/pkgdmg.rb +0 -73
  1355. data/spec/unit/provider/parsedfile.rb +0 -95
  1356. data/spec/unit/provider/selboolean.rb +0 -37
  1357. data/spec/unit/provider/selmodule.rb +0 -66
  1358. data/spec/unit/provider/service/daemontools.rb +0 -166
  1359. data/spec/unit/provider/service/debian.rb +0 -89
  1360. data/spec/unit/provider/service/init.rb +0 -121
  1361. data/spec/unit/provider/service/launchd.rb +0 -200
  1362. data/spec/unit/provider/service/redhat.rb +0 -96
  1363. data/spec/unit/provider/service/runit.rb +0 -140
  1364. data/spec/unit/provider/ssh_authorized_key/parsed.rb +0 -206
  1365. data/spec/unit/provider/sshkey/parsed.rb +0 -38
  1366. data/spec/unit/provider/user/hpux.rb +0 -25
  1367. data/spec/unit/provider/user/ldap.rb +0 -279
  1368. data/spec/unit/provider/user/user_role_add.rb +0 -249
  1369. data/spec/unit/provider/user/useradd.rb +0 -115
  1370. data/spec/unit/provider/zfs/solaris.rb +0 -99
  1371. data/spec/unit/provider/zone/solaris.rb +0 -42
  1372. data/spec/unit/provider/zpool/solaris.rb +0 -179
  1373. data/spec/unit/rails.rb +0 -133
  1374. data/spec/unit/rails/host.rb +0 -163
  1375. data/spec/unit/rails/param_value.rb +0 -49
  1376. data/spec/unit/rails/resource.rb +0 -107
  1377. data/spec/unit/relationship.rb +0 -236
  1378. data/spec/unit/reports.rb +0 -61
  1379. data/spec/unit/resource.rb +0 -495
  1380. data/spec/unit/resource/catalog.rb +0 -1053
  1381. data/spec/unit/resource/reference.rb +0 -111
  1382. data/spec/unit/simple_graph.rb +0 -551
  1383. data/spec/unit/ssl/certificate.rb +0 -124
  1384. data/spec/unit/ssl/certificate_authority.rb +0 -741
  1385. data/spec/unit/ssl/certificate_authority/interface.rb +0 -269
  1386. data/spec/unit/ssl/certificate_factory.rb +0 -107
  1387. data/spec/unit/ssl/certificate_request.rb +0 -193
  1388. data/spec/unit/ssl/certificate_revocation_list.rb +0 -168
  1389. data/spec/unit/ssl/host.rb +0 -704
  1390. data/spec/unit/ssl/inventory.rb +0 -180
  1391. data/spec/unit/ssl/key.rb +0 -198
  1392. data/spec/unit/transaction.rb +0 -146
  1393. data/spec/unit/transaction/change.rb +0 -187
  1394. data/spec/unit/transaction/event.rb +0 -25
  1395. data/spec/unit/transaction/report.rb +0 -40
  1396. data/spec/unit/type.rb +0 -426
  1397. data/spec/unit/type/augeas.rb +0 -106
  1398. data/spec/unit/type/component.rb +0 -63
  1399. data/spec/unit/type/computer.rb +0 -78
  1400. data/spec/unit/type/cron.rb +0 -33
  1401. data/spec/unit/type/exec.rb +0 -116
  1402. data/spec/unit/type/file.rb +0 -810
  1403. data/spec/unit/type/file/checksum.rb +0 -28
  1404. data/spec/unit/type/file/content.rb +0 -297
  1405. data/spec/unit/type/file/ensure.rb +0 -84
  1406. data/spec/unit/type/file/group.rb +0 -123
  1407. data/spec/unit/type/file/owner.rb +0 -143
  1408. data/spec/unit/type/file/selinux.rb +0 -84
  1409. data/spec/unit/type/file/source.rb +0 -264
  1410. data/spec/unit/type/filebucket.rb +0 -74
  1411. data/spec/unit/type/group.rb +0 -39
  1412. data/spec/unit/type/macauthorization.rb +0 -111
  1413. data/spec/unit/type/maillist.rb +0 -42
  1414. data/spec/unit/type/mcx.rb +0 -100
  1415. data/spec/unit/type/mount.rb +0 -211
  1416. data/spec/unit/type/nagios.rb +0 -63
  1417. data/spec/unit/type/noop_metaparam.rb +0 -37
  1418. data/spec/unit/type/package.rb +0 -236
  1419. data/spec/unit/type/resources.rb +0 -89
  1420. data/spec/unit/type/schedule.rb +0 -333
  1421. data/spec/unit/type/selboolean.rb +0 -45
  1422. data/spec/unit/type/selmodule.rb +0 -18
  1423. data/spec/unit/type/service.rb +0 -230
  1424. data/spec/unit/type/ssh_authorized_key.rb +0 -140
  1425. data/spec/unit/type/tidy.rb +0 -422
  1426. data/spec/unit/type/user.rb +0 -285
  1427. data/spec/unit/type/zfs.rb +0 -45
  1428. data/spec/unit/type/zone.rb +0 -20
  1429. data/spec/unit/type/zpool.rb +0 -110
  1430. data/spec/unit/util/autoload.rb +0 -133
  1431. data/spec/unit/util/autoload/file_cache.rb +0 -183
  1432. data/spec/unit/util/backups.rb +0 -159
  1433. data/spec/unit/util/cache_accumulator.rb +0 -69
  1434. data/spec/unit/util/cacher.rb +0 -185
  1435. data/spec/unit/util/checksums.rb +0 -113
  1436. data/spec/unit/util/constant_inflector.rb +0 -70
  1437. data/spec/unit/util/feature.rb +0 -72
  1438. data/spec/unit/util/file_locking.rb +0 -115
  1439. data/spec/unit/util/filetype.rb +0 -100
  1440. data/spec/unit/util/json.rb +0 -21
  1441. data/spec/unit/util/ldap/connection.rb +0 -169
  1442. data/spec/unit/util/ldap/generator.rb +0 -54
  1443. data/spec/unit/util/ldap/manager.rb +0 -654
  1444. data/spec/unit/util/loadedfile.rb +0 -65
  1445. data/spec/unit/util/log.rb +0 -202
  1446. data/spec/unit/util/metric.rb +0 -95
  1447. data/spec/unit/util/monkey_patches.rb +0 -103
  1448. data/spec/unit/util/nagios_maker.rb +0 -126
  1449. data/spec/unit/util/package.rb +0 -21
  1450. data/spec/unit/util/posix.rb +0 -256
  1451. data/spec/unit/util/queue.rb +0 -96
  1452. data/spec/unit/util/queue/stomp.rb +0 -140
  1453. data/spec/unit/util/reference_serializer.rb +0 -52
  1454. data/spec/unit/util/resource_template.rb +0 -58
  1455. data/spec/unit/util/selinux.rb +0 -280
  1456. data/spec/unit/util/settings.rb +0 -1058
  1457. data/spec/unit/util/settings/file_setting.rb +0 -248
  1458. data/spec/unit/util/storage.rb +0 -248
  1459. data/spec/unit/util/tagging.rb +0 -102
  1460. data/spec/unit/util/user_attr.rb +0 -47
  1461. data/spec/unit/util/warnings.rb +0 -39
  1462. data/spec/unit/util/zaml.rb +0 -38
  1463. data/test/language/ast/casestatement.rb +0 -103
  1464. data/test/language/ast/resource.rb +0 -58
  1465. data/test/language/ast/resource_reference.rb +0 -77
  1466. data/test/language/ast/selector.rb +0 -61
  1467. data/test/language/resource.rb +0 -172
  1468. data/test/lib/puppettest/support/collection.rb +0 -29
  1469. data/test/network/client/resource.rb +0 -52
  1470. data/test/network/handler/bucket.rb +0 -313
  1471. data/test/network/handler/resource.rb +0 -250
  1472. data/test/other/dsl.rb +0 -215
  1473. data/test/other/events.rb +0 -124
  1474. data/test/ral/type/group.rb +0 -170
@@ -1,799 +1,796 @@
1
1
  # The majority of the system configuration parameters are set in this file.
2
2
  module Puppet
3
- # If we're running the standalone puppet process as a non-root user,
4
- # use basedirs that are in the user's home directory.
5
- conf = nil
6
- var = nil
7
- name = $0.gsub(/.+#{File::SEPARATOR}/,'').sub(/\.rb$/, '')
8
-
9
- # Make File.expand_path happy
10
- require 'etc'
11
- ENV["HOME"] ||= Etc.getpwuid(Process.uid).dir
12
-
13
- if name != "puppetmasterd" and Puppet::Util::SUIDManager.uid != 0
14
- conf = File.expand_path("~/.puppet")
15
- var = File.expand_path("~/.puppet/var")
16
- else
17
- # Else, use system-wide directories.
18
- conf = "/etc/puppet"
19
- var = "/var/lib/puppet"
20
- end
21
-
22
- self.setdefaults(:main,
23
- :confdir => [conf, "The main Puppet configuration directory. The default for this parameter is calculated based on the user. If the process
24
- is runnig as root or the user that ``puppetmasterd`` is supposed to run as, it defaults to a system directory, but if it's running as any other user,
25
- it defaults to being in ``~``."],
26
- :vardir => [var, "Where Puppet stores dynamic and growing data. The default for this parameter is calculated specially, like `confdir`_."],
27
- :name => [name, "The name of the service, if we are running as one. The
28
- default is essentially $0 without the path or ``.rb``."]
29
- )
30
-
31
- if name == "puppetmasterd"
32
- logopts = {:default => "$vardir/log",
33
- :mode => 0750,
34
- :owner => "service",
35
- :group => "service",
36
- :desc => "The Puppet log directory."
37
- }
38
- else
39
- logopts = ["$vardir/log", "The Puppet log directory."]
40
- end
41
- setdefaults(:main, :logdir => logopts)
42
-
43
- # This name hackery is necessary so that the rundir is set reasonably during
44
- # unit tests.
45
- if Process.uid == 0 and %w{puppetd puppetmasterd}.include?(self.name)
46
- rundir = "/var/run/puppet"
47
- else
48
- rundir = "$vardir/run"
49
- end
50
-
51
- self.setdefaults(:main,
52
- :trace => [false, "Whether to print stack traces on some errors"],
53
- :autoflush => [false, "Whether log files should always flush to disk."],
54
- :syslogfacility => ["daemon", "What syslog facility to use when logging to
55
- syslog. Syslog has a fixed list of valid facilities, and you must
56
- choose one of those; you cannot just make one up."],
57
- :statedir => { :default => "$vardir/state",
58
- :mode => 01755,
59
- :desc => "The directory where Puppet state is stored. Generally,
60
- this directory can be removed without causing harm (although it
61
- might result in spurious service restarts)."
62
- },
63
- :rundir => {
64
- :default => rundir,
65
- :mode => 01777,
66
- :desc => "Where Puppet PID files are kept."
67
- },
68
- :genconfig => [false,
69
- "Whether to just print a configuration to stdout and exit. Only makes
70
- sense when used interactively. Takes into account arguments specified
71
- on the CLI."],
72
- :genmanifest => [false,
73
- "Whether to just print a manifest to stdout and exit. Only makes
74
- sense when used interactively. Takes into account arguments specified
75
- on the CLI."],
76
- :configprint => ["",
77
- "Print the value of a specific configuration parameter. If a
78
- parameter is provided for this, then the value is printed and puppet
79
- exits. Comma-separate multiple values. For a list of all values,
80
- specify 'all'. This feature is only available in Puppet versions
81
- higher than 0.18.4."],
82
- :color => ["ansi", "Whether to use colors when logging to the console.
83
- Valid values are ``ansi`` (equivalent to ``true``), ``html`` (mostly
84
- used during testing with TextMate), and ``false``, which produces
85
- no color."],
86
- :mkusers => [false,
87
- "Whether to create the necessary user and group that puppetd will
88
- run as."],
89
- :manage_internal_file_permissions => [true,
90
- "Whether Puppet should manage the owner, group, and mode of files
91
- it uses internally"
92
- ],
93
- :path => {:default => "none",
94
- :desc => "The shell search path. Defaults to whatever is inherited
95
- from the parent process.",
96
- :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
97
- :hook => proc do |value|
98
- ENV["PATH"] = "" if ENV["PATH"].nil?
99
- ENV["PATH"] = value unless value == "none"
100
- paths = ENV["PATH"].split(File::PATH_SEPARATOR)
101
- %w{/usr/sbin /sbin}.each do |path|
102
- unless paths.include?(path)
103
- ENV["PATH"] += File::PATH_SEPARATOR + path
104
- end
105
- end
106
- value
107
- end
108
- },
109
- :libdir => {:default => "$vardir/lib",
110
- :desc => "An extra search path for Puppet. This is only useful
111
- for those files that Puppet will load on demand, and is only
112
- guaranteed to work for those cases. In fact, the autoload
113
- mechanism is responsible for making sure this directory
114
- is in Ruby's search path",
115
- :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
116
- :hook => proc do |value|
117
- if defined? @oldlibdir and $:.include?(@oldlibdir)
118
- $:.delete(@oldlibdir)
119
- end
120
- @oldlibdir = value
121
- $: << value
122
- end
123
- },
124
- :ignoreimport => [false, "A parameter that can be used in commit
125
- hooks, since it enables you to parse-check a single file rather
126
- than requiring that all files exist."],
127
- :authconfig => [ "$confdir/namespaceauth.conf",
128
- "The configuration file that defines the rights to the different
129
- namespaces and methods. This can be used as a coarse-grained
130
- authorization system for both ``puppetd`` and ``puppetmasterd``."
131
- ],
132
- :environment => {:default => "production", :desc => "The environment Puppet is running in. For clients
133
- (e.g., ``puppetd``) this determines the environment itself, which
134
- is used to find modules and much more. For servers (i.e.,
135
- ``puppetmasterd``) this provides the default environment for nodes
136
- we know nothing about."
137
- },
138
- :diff_args => ["-u", "Which arguments to pass to the diff command when printing differences between files."],
139
- :diff => ["diff", "Which diff command to use when printing differences between files."],
140
- :show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff
141
- is printed on stdout, so this option is meaningless unless you are running Puppet interactively.
142
- This feature currently requires the ``diff/lcs`` Ruby library."],
143
- :daemonize => { :default => true,
144
- :desc => "Send the process into the background. This is the default.",
145
- :short => "D"
146
- },
147
- :maximum_uid => [4294967290, "The maximum allowed UID. Some platforms use negative UIDs
148
- but then ship with tools that do not know how to handle signed ints, so the UIDs show up as
149
- huge numbers that can then not be fed back into the system. This is a hackish way to fail in a
150
- slightly more useful way when that happens."],
151
- :node_terminus => ["plain", "Where to find information about nodes."],
152
- :catalog_terminus => ["compiler", "Where to get node catalogs. This is useful to change if, for instance,
153
- you'd like to pre-compile catalogs and store them in memcached or some other easily-accessed store."],
154
- :httplog => { :default => "$logdir/http.log",
155
- :owner => "root",
156
- :mode => 0640,
157
- :desc => "Where the puppetd web server logs."
158
- },
159
- :http_proxy_host => ["none",
160
- "The HTTP proxy host to use for outgoing connections. Note: You
161
- may need to use a FQDN for the server hostname when using a proxy."],
162
- :http_proxy_port => [3128,
163
- "The HTTP proxy port to use for outgoing connections"],
164
- :filetimeout => [ 15,
165
- "The minimum time to wait (in seconds) between checking for updates in
166
- configuration files. This timeout determines how quickly Puppet checks whether
167
- a file (such as manifests or templates) has changed on disk."
168
- ],
169
- :queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
170
- :queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
171
- :queue_source => ["stomp://localhost:61613/", "Which type of queue to use for asynchronous processing. If your stomp server requires
172
- authentication, you can include it in the URI as long as your stomp client library is at least 1.1.1"],
173
- :async_storeconfigs => {:default => false, :desc => "Whether to use a queueing system to provide asynchronous database integration.
174
- Requires that ``puppetqd`` be running and that 'PSON' support for ruby be installed.",
175
- :hook => proc do |value|
176
- if value
177
- # This reconfigures the terminii for Node, Facts, and Catalog
178
- Puppet.settings[:storeconfigs] = true
179
-
180
- # But then we modify the configuration
181
- Puppet::Resource::Catalog.cache_class = :queue
182
- else
183
- raise "Cannot disable asynchronous storeconfigs in a running process"
184
- end
185
- end
186
- },
187
- :thin_storeconfigs => {:default => false, :desc =>
188
- "Boolean; wether storeconfigs store in the database only the facts and exported resources.
189
- If true, then storeconfigs performance will be higher and still allow exported/collected
190
- resources, but other usage external to Puppet might not work",
191
- :hook => proc do |value|
192
- Puppet.settings[:storeconfigs] = true if value
193
- end
194
- },
195
- :config_version => ["", "How to determine the configuration version. By default, it will be the
196
- time that the configuration is parsed, but you can provide a shell script to override how the
197
- version is determined. The output of this script will be added to every log message in the
198
- reports, allowing you to correlate changes on your hosts to the source version on the server."],
199
- :zlib => [true,
200
- "Boolean; whether to use the zlib library",
201
- ],
202
- :prerun_command => ["", "A command to run before every agent run. If this command returns a non-zero
203
- return code, the entire Puppet run will fail."],
204
- :postrun_command => ["", "A command to run after every agent run. If this command returns a non-zero
205
- return code, the entire Puppet run will be considered to have failed, even though it might have
206
- performed work during the normal run."]
207
- )
208
-
209
- hostname = Facter["hostname"].value
210
- domain = Facter["domain"].value
211
- if domain and domain != ""
212
- fqdn = [hostname, domain].join(".")
213
- else
214
- fqdn = hostname
215
- end
216
-
217
- Puppet.setdefaults(:main,
218
- # We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for
219
- # manipulating naming.
220
- :certname => {:default => fqdn.downcase, :desc => "The name to use when handling certificates. Defaults
221
- to the fully qualified domain name.",
222
- :call_on_define => true, # Call our hook with the default value, so we're always downcased
223
- :hook => proc { |value| raise(ArgumentError, "Certificate names must be lower case; see #1168") unless value == value.downcase }},
224
- :certdnsnames => ['', "The DNS names on the Server certificate as a colon-separated list.
225
- If it's anything other than an empty string, it will be used as an alias in the created
226
- certificate. By default, only the server gets an alias set up, and only for 'puppet'."],
227
- :certdir => {
228
- :default => "$ssldir/certs",
229
- :owner => "service",
230
- :desc => "The certificate directory."
231
- },
232
- :ssldir => {
233
- :default => "$confdir/ssl",
234
- :mode => 0771,
235
- :owner => "service",
236
- :desc => "Where SSL certificates are kept."
237
- },
238
- :publickeydir => {
239
- :default => "$ssldir/public_keys",
240
- :owner => "service",
241
- :desc => "The public key directory."
242
- },
243
- :requestdir => {
244
- :default => "$ssldir/certificate_requests",
245
- :owner => "service",
246
- :desc => "Where host certificate requests are stored."
247
- },
248
- :privatekeydir => { :default => "$ssldir/private_keys",
249
- :mode => 0750,
250
- :owner => "service",
251
- :desc => "The private key directory."
252
- },
253
- :privatedir => { :default => "$ssldir/private",
254
- :mode => 0750,
255
- :owner => "service",
256
- :desc => "Where the client stores private certificate information."
257
- },
258
- :passfile => { :default => "$privatedir/password",
259
- :mode => 0640,
260
- :owner => "service",
261
- :desc => "Where puppetd stores the password for its private key.
262
- Generally unused."
263
- },
264
- :hostcsr => { :default => "$ssldir/csr_$certname.pem",
265
- :mode => 0644,
266
- :owner => "service",
267
- :desc => "Where individual hosts store and look for their certificate requests."
268
- },
269
- :hostcert => { :default => "$certdir/$certname.pem",
270
- :mode => 0644,
271
- :owner => "service",
272
- :desc => "Where individual hosts store and look for their certificates."
273
- },
274
- :hostprivkey => { :default => "$privatekeydir/$certname.pem",
275
- :mode => 0600,
276
- :owner => "service",
277
- :desc => "Where individual hosts store and look for their private key."
278
- },
279
- :hostpubkey => { :default => "$publickeydir/$certname.pem",
280
- :mode => 0644,
281
- :owner => "service",
282
- :desc => "Where individual hosts store and look for their public key."
283
- },
284
- :localcacert => { :default => "$certdir/ca.pem",
285
- :mode => 0644,
286
- :owner => "service",
287
- :desc => "Where each client stores the CA certificate."
288
- },
289
- :hostcrl => { :default => "$ssldir/crl.pem",
290
- :mode => 0644,
291
- :owner => "service",
292
- :desc => "Where the host's certificate revocation list can be found.
293
- This is distinct from the certificate authority's CRL."
294
- },
295
- :certificate_revocation => [true, "Whether certificate revocation should be supported by downloading a Certificate Revocation List (CRL)
296
- to all clients. If enabled, CA chaining will almost definitely not work."]
297
- )
298
-
299
- setdefaults(:ca,
300
- :cadir => { :default => "$ssldir/ca",
301
- :owner => "service",
302
- :group => "service",
303
- :mode => 0770,
304
- :desc => "The root directory for the certificate authority."
305
- },
306
- :cacert => { :default => "$cadir/ca_crt.pem",
307
- :owner => "service",
308
- :group => "service",
309
- :mode => 0660,
310
- :desc => "The CA certificate."
311
- },
312
- :cakey => { :default => "$cadir/ca_key.pem",
313
- :owner => "service",
314
- :group => "service",
315
- :mode => 0660,
316
- :desc => "The CA private key."
317
- },
318
- :capub => { :default => "$cadir/ca_pub.pem",
319
- :owner => "service",
320
- :group => "service",
321
- :desc => "The CA public key."
322
- },
323
- :cacrl => { :default => "$cadir/ca_crl.pem",
324
- :owner => "service",
325
- :group => "service",
326
- :mode => 0664,
327
- :desc => "The certificate revocation list (CRL) for the CA. Will be used if present but otherwise ignored.",
328
- :hook => proc do |value|
329
- if value == 'false'
330
- Puppet.warning "Setting the :cacrl to 'false' is deprecated; Puppet will just ignore the crl if yours is missing"
331
- end
332
- end
333
- },
334
- :caprivatedir => { :default => "$cadir/private",
335
- :owner => "service",
336
- :group => "service",
337
- :mode => 0770,
338
- :desc => "Where the CA stores private certificate information."
339
- },
340
- :csrdir => { :default => "$cadir/requests",
341
- :owner => "service",
342
- :group => "service",
343
- :desc => "Where the CA stores certificate requests"
344
- },
345
- :signeddir => { :default => "$cadir/signed",
346
- :owner => "service",
347
- :group => "service",
348
- :mode => 0770,
349
- :desc => "Where the CA stores signed certificates."
350
- },
351
- :capass => { :default => "$caprivatedir/ca.pass",
352
- :owner => "service",
353
- :group => "service",
354
- :mode => 0660,
355
- :desc => "Where the CA stores the password for the private key"
356
- },
357
- :serial => { :default => "$cadir/serial",
358
- :owner => "service",
359
- :group => "service",
360
- :mode => 0644,
361
- :desc => "Where the serial number for certificates is stored."
362
- },
363
- :autosign => { :default => "$confdir/autosign.conf",
364
- :mode => 0644,
365
- :desc => "Whether to enable autosign. Valid values are true (which
366
- autosigns any key request, and is a very bad idea), false (which
367
- never autosigns any key request), and the path to a file, which
368
- uses that configuration file to determine which keys to sign."},
369
- :ca_days => ["", "How long a certificate should be valid.
370
- This parameter is deprecated, use ca_ttl instead"],
371
- :ca_ttl => ["5y", "The default TTL for new certificates; valid values
372
- must be an integer, optionally followed by one of the units
373
- 'y' (years of 365 days), 'd' (days), 'h' (hours), or
374
- 's' (seconds). The unit defaults to seconds. If this parameter
375
- is set, ca_days is ignored. Examples are '3600' (one hour)
376
- and '1825d', which is the same as '5y' (5 years) "],
377
- :ca_md => ["md5", "The type of hash used in certificates."],
378
- :req_bits => [2048, "The bit length of the certificates."],
379
- :keylength => [1024, "The bit length of keys."],
380
- :cert_inventory => {
381
- :default => "$cadir/inventory.txt",
382
- :mode => 0644,
383
- :owner => "service",
384
- :group => "service",
385
- :desc => "A Complete listing of all certificates"
386
- }
387
- )
388
-
389
- # Define the config default.
390
- self.setdefaults(self.settings[:name],
391
- :config => ["$confdir/puppet.conf",
392
- "The configuration file for #{Puppet[:name]}."],
393
- :pidfile => ["$rundir/$name.pid", "The pid file"],
394
- :bindaddress => ["", "The address a listening server should bind to. Mongrel servers
395
- default to 127.0.0.1 and WEBrick defaults to 0.0.0.0."],
396
- :servertype => {:default => "webrick", :desc => "The type of server to use. Currently supported
397
- options are webrick and mongrel. If you use mongrel, you will need
398
- a proxy in front of the process or processes, since Mongrel cannot
399
- speak SSL.",
400
- :call_on_define => true, # Call our hook with the default value, so we always get the correct bind address set.
401
- :hook => proc { |value| value == "webrick" ? Puppet.settings[:bindaddress] = "0.0.0.0" : Puppet.settings[:bindaddress] = "127.0.0.1" if Puppet.settings[:bindaddress] == "" }
402
- }
403
- )
404
-
405
- self.setdefaults(:puppetmasterd,
406
- :user => ["puppet", "The user puppetmasterd should run as."],
407
- :group => ["puppet", "The group puppetmasterd should run as."],
408
- :manifestdir => ["$confdir/manifests",
409
- "Where puppetmasterd looks for its manifests."],
410
- :manifest => ["$manifestdir/site.pp",
411
- "The entry-point manifest for puppetmasterd."],
412
- :code => ["", "Code to parse directly. This is essentially only used
413
- by ``puppet``, and should only be set if you're writing your own Puppet
414
- executable"],
415
- :masterlog => { :default => "$logdir/puppetmaster.log",
416
- :owner => "service",
417
- :group => "service",
418
- :mode => 0660,
419
- :desc => "Where puppetmasterd logs. This is generally not used,
420
- since syslog is the default log destination."
421
- },
422
- :masterhttplog => { :default => "$logdir/masterhttp.log",
423
- :owner => "service",
424
- :group => "service",
425
- :mode => 0660,
426
- :create => true,
427
- :desc => "Where the puppetmasterd web server logs."
428
- },
429
- :masterport => [8140, "Which port puppetmasterd listens on."],
430
- :parseonly => [false, "Just check the syntax of the manifests."],
431
- :node_name => ["cert", "How the puppetmaster determines the client's identity
432
- and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
433
- in particular for determining which 'node' statement applies to the client.
434
- Possible values are 'cert' (use the subject's CN in the client's
435
- certificate) and 'facter' (use the hostname that the client
436
- reported in its facts)"],
437
- :bucketdir => {
438
- :default => "$vardir/bucket",
439
- :mode => 0750,
440
- :owner => "service",
441
- :group => "service",
442
- :desc => "Where FileBucket files are stored."
443
- },
444
- :rest_authconfig => [ "$confdir/auth.conf",
445
- "The configuration file that defines the rights to the different
446
- rest indirections. This can be used as a fine-grained
447
- authorization system for ``puppetmasterd``."
448
- ],
449
- :ca => [true, "Wether the master should function as a certificate authority."],
450
- :modulepath => {:default => "$confdir/modules:/usr/share/puppet/modules",
451
- :desc => "The search path for modules as a colon-separated list of
452
- directories.", :type => :setting }, # We don't want this to be considered a file, since it's multiple files.
453
- :ssl_client_header => ["HTTP_X_CLIENT_DN", "The header containing an authenticated
454
- client's SSL DN. Only used with Mongrel. This header must be set by the proxy
455
- to the authenticated client's SSL DN (e.g., ``/CN=puppet.puppetlabs.com``).
456
- See http://puppetlabs.com/puppet/trac/wiki/UsingMongrel for more information."],
457
- :ssl_client_verify_header => ["HTTP_X_CLIENT_VERIFY", "The header containing the status
458
- message of the client verification. Only used with Mongrel. This header must be set by the proxy
459
- to 'SUCCESS' if the client successfully authenticated, and anything else otherwise.
460
- See http://puppetlabs.com/puppet/trac/wiki/UsingMongrel for more information."],
461
- # To make sure this directory is created before we try to use it on the server, we need
462
- # it to be in the server section (#1138).
463
- :yamldir => {:default => "$vardir/yaml", :owner => "service", :group => "service", :mode => "750",
464
- :desc => "The directory in which YAML data is stored, usually in a subdirectory."},
465
- :reports => ["store",
466
- "The list of reports to generate. All reports are looked for
467
- in puppet/reports/<name>.rb, and multiple report names should be
468
- comma-separated (whitespace is okay)."
469
- ],
470
- :reportdir => {:default => "$vardir/reports",
471
- :mode => 0750,
472
- :owner => "service",
473
- :group => "service",
474
- :desc => "The directory in which to store reports
475
- received from the client. Each client gets a separate
476
- subdirectory."},
477
- :fileserverconfig => ["$confdir/fileserver.conf",
478
- "Where the fileserver configuration is stored."],
479
- :rrddir => {:default => "$vardir/rrd",
480
- :owner => "service",
481
- :group => "service",
482
- :desc => "The directory where RRD database files are stored.
483
- Directories for each reporting host will be created under
484
- this directory."
485
- },
486
- :rrdinterval => ["$runinterval", "How often RRD should expect data.
487
- This should match how often the hosts report back to the server."],
488
- :strict_hostname_checking => [false, "Whether to only search for the complete
489
- hostname as it is in the certificate when searching for node information
490
- in the catalogs."]
491
- )
492
-
493
- self.setdefaults(:puppetd,
494
- :localconfig => { :default => "$statedir/localconfig",
495
- :owner => "root",
496
- :mode => 0660,
497
- :desc => "Where puppetd caches the local configuration. An
498
- extension indicating the cache format is added automatically."},
499
- :statefile => { :default => "$statedir/state.yaml",
500
- :mode => 0660,
501
- :desc => "Where puppetd and puppetmasterd store state associated
502
- with the running configuration. In the case of puppetmasterd,
503
- this file reflects the state discovered through interacting
504
- with clients."
505
- },
506
- :clientyamldir => {:default => "$vardir/client_yaml", :mode => "750",
507
- :desc => "The directory in which client-side YAML data is stored."},
508
- :classfile => { :default => "$statedir/classes.txt",
509
- :owner => "root",
510
- :mode => 0644,
511
- :desc => "The file in which puppetd stores a list of the classes
512
- associated with the retrieved configuration. Can be loaded in
513
- the separate ``puppet`` executable using the ``--loadclasses``
514
- option."},
515
- :puppetdlog => { :default => "$logdir/puppetd.log",
516
- :owner => "root",
517
- :mode => 0640,
518
- :desc => "The log file for puppetd. This is generally not used."
519
- },
520
- :server => ["puppet",
521
- "The server to which server puppetd should connect"],
522
- :ignoreschedules => [false,
523
- "Boolean; whether puppetd should ignore schedules. This is useful
524
- for initial puppetd runs."],
525
- :puppetport => [8139, "Which port puppetd listens on."],
526
- :noop => [false, "Whether puppetd should be run in noop mode."],
527
- :runinterval => [1800, # 30 minutes
528
- "How often puppetd applies the client configuration; in seconds."],
529
- :listen => [false, "Whether puppetd should listen for
530
- connections. If this is true, then by default only the
531
- ``runner`` server is started, which allows remote authorized
532
- and authenticated nodes to connect and trigger ``puppetd``
533
- runs."],
534
- :ca_server => ["$server", "The server to use for certificate
535
- authority requests. It's a separate server because it cannot
536
- and does not need to horizontally scale."],
537
- :ca_port => ["$masterport", "The port to use for the certificate authority."],
538
- :catalog_format => {
539
- :default => "",
540
- :desc => "(Deprecated for 'preferred_serialization_format') What format to
541
- use to dump the catalog. Only supports 'marshal' and 'yaml'. Only
542
- matters on the client, since it asks the server for a specific format.",
543
- :hook => proc { |value|
544
- if value
545
- Puppet.warning "Setting 'catalog_format' is deprecated; use 'preferred_serialization_format' instead."
546
- Puppet.settings[:preferred_serialization_format] = value
547
- end
548
- }
549
- },
550
- :preferred_serialization_format => ["pson", "The preferred means of serializing
551
- ruby instances for passing over the wire. This won't guarantee that all
552
- instances will be serialized using this method, since not all classes
553
- can be guaranteed to support this format, but it will be used for all
554
- classes that support it."],
555
- :puppetdlockfile => [ "$statedir/puppetdlock",
556
- "A lock file to temporarily stop puppetd from doing anything."],
557
- :usecacheonfailure => [true,
558
- "Whether to use the cached configuration when the remote
559
- configuration will not compile. This option is useful for testing
560
- new configurations, where you want to fix the broken configuration
561
- rather than reverting to a known-good one."
562
- ],
563
- :use_cached_catalog => [false,
564
- "Whether to only use the cached catalog rather than compiling a new catalog
565
- on every run. Puppet can be run with this enabled by default and then selectively
566
- disabled when a recompile is desired."],
567
- :ignorecache => [false,
568
- "Ignore cache and always recompile the configuration. This is
569
- useful for testing new configurations, where the local cache may in
570
- fact be stale even if the timestamps are up to date - if the facts
571
- change or if the server changes."
572
- ],
573
- :downcasefacts => [false,
574
- "Whether facts should be made all lowercase when sent to the server."],
575
- :dynamicfacts => ["memorysize,memoryfree,swapsize,swapfree",
576
- "Facts that are dynamic; these facts will be ignored when deciding whether
577
- changed facts should result in a recompile. Multiple facts should be
578
- comma-separated."],
579
- :splaylimit => ["$runinterval",
580
- "The maximum time to delay before runs. Defaults to being the same as the
581
- run interval."],
582
- :splay => [false,
583
- "Whether to sleep for a pseudo-random (but consistent) amount of time before
584
- a run."],
585
- :clientbucketdir => {
586
- :default => "$vardir/clientbucket",
587
- :mode => 0750,
588
- :desc => "Where FileBucket files are stored locally."
589
- },
590
- :configtimeout => [120,
591
- "How long the client should wait for the configuration to be retrieved
592
- before considering it a failure. This can help reduce flapping if too
593
- many clients contact the server at one time."
594
- ],
595
- :reportserver => {
596
- :default => "$server",
597
- :call_on_define => false,
598
- :desc => "(Deprecated for 'report_server') The server to which to send transaction reports.",
599
- :hook => proc do |value|
600
- if value
601
- Puppet.settings[:report_server] = value
602
- end
603
- end
604
- },
605
- :report_server => ["$server",
606
- "The server to which to send transaction reports."
607
- ],
608
- :report_port => ["$masterport",
609
- "The port to communicate with the report_server."
610
- ],
611
- :report => [false,
612
- "Whether to send reports after every transaction."
613
- ],
614
- :graph => [false, "Whether to create dot graph files for the different
615
- configuration graphs. These dot files can be interpreted by tools
616
- like OmniGraffle or dot (which is part of ImageMagick)."],
617
- :graphdir => ["$statedir/graphs", "Where to store dot-outputted graphs."]
618
- )
619
-
620
- # Plugin information.
621
- self.setdefaults(:main,
622
- :plugindest => ["$libdir",
623
- "Where Puppet should store plugins that it pulls down from the central
624
- server."],
625
- :pluginsource => ["puppet://$server/plugins",
626
- "From where to retrieve plugins. The standard Puppet ``file`` type
627
- is used for retrieval, so anything that is a valid file source can
628
- be used here."],
629
- :pluginsync => [false,
630
- "Whether plugins should be synced with the central server."],
631
- :pluginsignore => [".svn CVS .git",
632
- "What files to ignore when pulling down plugins."]
633
- )
634
-
635
- # Central fact information.
636
- self.setdefaults(:main,
637
- :factpath => {:default => "$vardir/lib/facter/:$vardir/facts",
638
- :desc => "Where Puppet should look for facts. Multiple directories should
639
- be colon-separated, like normal PATH variables.",
640
- :call_on_define => true, # Call our hook with the default value, so we always get the value added to facter.
641
- :type => :setting, # Don't consider it a file, because it could be multiple colon-separated files
642
- :hook => proc { |value| Facter.search(value) if Facter.respond_to?(:search) }},
643
- :factdest => ["$vardir/facts/",
644
- "Where Puppet should store facts that it pulls down from the central
645
- server."],
646
- :factsource => ["puppet://$server/facts/",
647
- "From where to retrieve facts. The standard Puppet ``file`` type
648
- is used for retrieval, so anything that is a valid file source can
649
- be used here."],
650
- :factsync => [false,
651
- "Whether facts should be synced with the central server."],
652
- :factsignore => [".svn CVS",
653
- "What files to ignore when pulling down facts."]
654
- )
655
-
656
- self.setdefaults(:tagmail,
657
- :tagmap => ["$confdir/tagmail.conf",
658
- "The mapping between reporting tags and email addresses."],
659
- :sendmail => [%x{which sendmail 2>/dev/null}.chomp,
660
- "Where to find the sendmail binary with which to send email."],
661
- :reportfrom => ["report@" + [Facter["hostname"].value, Facter["domain"].value].join("."),
662
- "The 'from' email address for the reports."],
663
- :smtpserver => ["none",
664
- "The server through which to send email reports."]
665
- )
666
-
667
- self.setdefaults(:rails,
668
- :dblocation => { :default => "$statedir/clientconfigs.sqlite3",
669
- :mode => 0660,
670
- :owner => "service",
671
- :group => "service",
672
- :desc => "The database cache for client configurations. Used for
673
- querying within the language."
674
- },
675
- :dbadapter => [ "sqlite3", "The type of database to use." ],
676
- :dbmigrate => [ false, "Whether to automatically migrate the database." ],
677
- :dbname => [ "puppet", "The name of the database to use." ],
678
- :dbserver => [ "localhost", "The database server for caching. Only
679
- used when networked databases are used."],
680
- :dbuser => [ "puppet", "The database user for caching. Only
681
- used when networked databases are used."],
682
- :dbpassword => [ "puppet", "The database password for caching. Only
683
- used when networked databases are used."],
684
- :dbsocket => [ "", "The database socket location. Only used when networked
685
- databases are used. Will be ignored if the value is an empty string."],
686
- :railslog => {:default => "$logdir/rails.log",
687
- :mode => 0600,
688
- :owner => "service",
689
- :group => "service",
690
- :desc => "Where Rails-specific logs are sent"
691
- },
692
- :rails_loglevel => ["info", "The log level for Rails connections. The value must be
693
- a valid log level within Rails. Production environments normally use ``info``
694
- and other environments normally use ``debug``."]
695
- )
696
-
697
- setdefaults(:transaction,
698
- :tags => ["", "Tags to use to find resources. If this is set, then
699
- only resources tagged with the specified tags will be applied.
700
- Values must be comma-separated."],
701
- :evaltrace => [false, "Whether each resource should log when it is
702
- being evaluated. This allows you to interactively see exactly
703
- what is being done."],
704
- :summarize => [false,
705
- "Whether to print a transaction summary."
706
- ]
707
- )
708
-
709
- setdefaults(:parser,
710
- :typecheck => [true, "Whether to validate types during parsing."],
711
- :paramcheck => [true, "Whether to validate parameters during parsing."]
712
- )
713
-
714
- setdefaults(:main,
715
- :casesensitive => [false,
716
- "Whether matching in case statements and selectors
717
- should be case-sensitive. Case insensitivity is
718
- handled by downcasing all values before comparison."],
719
- :external_nodes => ["none",
720
- "An external command that can produce node information. The output
721
- must be a YAML dump of a hash, and that hash must have one or both of
722
- ``classes`` and ``parameters``, where ``classes`` is an array and
723
- ``parameters`` is a hash. For unknown nodes, the commands should
724
- exit with a non-zero exit code.
725
-
726
- This command makes it straightforward to store your node mapping
727
- information in other data sources like databases."])
728
-
729
- setdefaults(:ldap,
730
- :ldapnodes => [false,
731
- "Whether to search for node configurations in LDAP. See
732
- http://puppetlabs.com/trac/puppet/wiki/LDAPNodes for more information."],
733
- :ldapssl => [false,
734
- "Whether SSL should be used when searching for nodes.
735
- Defaults to false because SSL usually requires certificates
736
- to be set up on the client side."],
737
- :ldaptls => [false,
738
- "Whether TLS should be used when searching for nodes.
739
- Defaults to false because TLS usually requires certificates
740
- to be set up on the client side."],
741
- :ldapserver => ["ldap",
742
- "The LDAP server. Only used if ``ldapnodes`` is enabled."],
743
- :ldapport => [389,
744
- "The LDAP port. Only used if ``ldapnodes`` is enabled."],
745
- :ldapstring => ["(&(objectclass=puppetClient)(cn=%s))",
746
- "The search string used to find an LDAP node."],
747
- :ldapclassattrs => ["puppetclass",
748
- "The LDAP attributes to use to define Puppet classes. Values
749
- should be comma-separated."],
750
- :ldapstackedattrs => ["puppetvar",
751
- "The LDAP attributes that should be stacked to arrays by adding
752
- the values in all hierarchy elements of the tree. Values
753
- should be comma-separated."],
754
- :ldapattrs => ["all",
755
- "The LDAP attributes to include when querying LDAP for nodes. All
756
- returned attributes are set as variables in the top-level scope.
757
- Multiple values should be comma-separated. The value 'all' returns
758
- all attributes."],
759
- :ldapparentattr => ["parentnode",
760
- "The attribute to use to define the parent node."],
761
- :ldapuser => ["",
762
- "The user to use to connect to LDAP. Must be specified as a
763
- full DN."],
764
- :ldappassword => ["",
765
- "The password to use to connect to LDAP."],
766
- :ldapbase => ["",
767
- "The search base for LDAP searches. It's impossible to provide
768
- a meaningful default here, although the LDAP libraries might
769
- have one already set. Generally, it should be the 'ou=Hosts'
770
- branch under your main directory."]
771
- )
772
-
773
- setdefaults(:puppetmasterd,
774
- :storeconfigs => {:default => false, :desc => "Whether to store each client's configuration. This
775
- requires ActiveRecord from Ruby on Rails.",
776
- :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
777
- :hook => proc do |value|
778
- require 'puppet/node'
779
- require 'puppet/node/facts'
780
- require 'puppet/resource/catalog'
781
- if value
782
- raise "StoreConfigs not supported without ActiveRecord 2.1 or higher" unless Puppet.features.rails?
783
- Puppet::Resource::Catalog.cache_class = :active_record unless Puppet.settings[:async_storeconfigs]
784
- Puppet::Node::Facts.cache_class = :active_record
785
- Puppet::Node.cache_class = :active_record
786
- end
787
- end
788
- }
789
- )
790
-
791
- # This doesn't actually work right now.
792
- setdefaults(:parser,
793
- :lexical => [false, "Whether to use lexical scoping (vs. dynamic)."],
794
- :templatedir => ["$vardir/templates",
795
- "Where Puppet looks for template files. Can be a list of colon-seperated
796
- directories."
797
- ]
798
- )
3
+ setdefaults(:main,
4
+ :confdir => [Puppet.run_mode.conf_dir, "The main Puppet configuration directory. The default for this parameter is calculated based on the user. If the process
5
+ is running as root or the user that ``puppet master`` is supposed to run as, it defaults to a system directory, but if it's running as any other user,
6
+ it defaults to being in ``~``."],
7
+ :vardir => [Puppet.run_mode.var_dir, "Where Puppet stores dynamic and growing data. The default for this parameter is calculated specially, like `confdir`_."],
8
+ :name => [Puppet.application_name.to_s, "The name of the application, if we are running as one. The
9
+ default is essentially $0 without the path or ``.rb``."],
10
+ :mode => [Puppet.run_mode.name.to_s, "The effective 'run mode' of the application: master, agent, or user."]
11
+ )
12
+
13
+ setdefaults(:main, :logdir => Puppet.run_mode.logopts)
14
+
15
+ setdefaults(:main,
16
+ :trace => [false, "Whether to print stack traces on some errors"],
17
+ :autoflush => [false, "Whether log files should always flush to disk."],
18
+ :syslogfacility => ["daemon", "What syslog facility to use when logging to
19
+ syslog. Syslog has a fixed list of valid facilities, and you must
20
+ choose one of those; you cannot just make one up."],
21
+ :statedir => { :default => "$vardir/state",
22
+ :mode => 01755,
23
+ :desc => "The directory where Puppet state is stored. Generally,
24
+ this directory can be removed without causing harm (although it
25
+ might result in spurious service restarts)."
26
+ },
27
+ :rundir => {
28
+ :default => Puppet.run_mode.run_dir,
29
+ :mode => 01777,
30
+ :desc => "Where Puppet PID files are kept."
31
+ },
32
+ :genconfig => [false,
33
+ "Whether to just print a configuration to stdout and exit. Only makes
34
+ sense when used interactively. Takes into account arguments specified
35
+ on the CLI."],
36
+ :genmanifest => [false,
37
+ "Whether to just print a manifest to stdout and exit. Only makes
38
+ sense when used interactively. Takes into account arguments specified
39
+ on the CLI."],
40
+ :configprint => ["",
41
+ "Print the value of a specific configuration parameter. If a
42
+ parameter is provided for this, then the value is printed and puppet
43
+ exits. Comma-separate multiple values. For a list of all values,
44
+ specify 'all'. This feature is only available in Puppet versions
45
+ higher than 0.18.4."],
46
+ :color => ["ansi", "Whether to use colors when logging to the console.
47
+ Valid values are ``ansi`` (equivalent to ``true``), ``html`` (mostly
48
+ used during testing with TextMate), and ``false``, which produces
49
+ no color."],
50
+ :mkusers => [false,
51
+ "Whether to create the necessary user and group that puppet agent will
52
+ run as."],
53
+ :manage_internal_file_permissions => [true,
54
+ "Whether Puppet should manage the owner, group, and mode of files
55
+ it uses internally"
56
+ ],
57
+ :onetime => {:default => false,
58
+ :desc => "Run the configuration once, rather than as a long-running
59
+ daemon. This is useful for interactively running puppetd.",
60
+ :short => 'o'
61
+ },
62
+ :path => {:default => "none",
63
+ :desc => "The shell search path. Defaults to whatever is inherited
64
+ from the parent process.",
65
+ :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
66
+ :hook => proc do |value|
67
+ ENV["PATH"] = "" if ENV["PATH"].nil?
68
+ ENV["PATH"] = value unless value == "none"
69
+ paths = ENV["PATH"].split(File::PATH_SEPARATOR)
70
+ %w{/usr/sbin /sbin}.each do |path|
71
+ ENV["PATH"] += File::PATH_SEPARATOR + path unless paths.include?(path)
72
+ end
73
+ value
74
+ end
75
+ },
76
+ :libdir => {:default => "$vardir/lib",
77
+ :desc => "An extra search path for Puppet. This is only useful
78
+ for those files that Puppet will load on demand, and is only
79
+ guaranteed to work for those cases. In fact, the autoload
80
+ mechanism is responsible for making sure this directory
81
+ is in Ruby's search path",
82
+ :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
83
+ :hook => proc do |value|
84
+ $LOAD_PATH.delete(@oldlibdir) if defined?(@oldlibdir) and $LOAD_PATH.include?(@oldlibdir)
85
+ @oldlibdir = value
86
+ $LOAD_PATH << value
87
+ end
88
+ },
89
+ :ignoreimport => [false, "A parameter that can be used in commit
90
+ hooks, since it enables you to parse-check a single file rather
91
+ than requiring that all files exist."],
92
+ :authconfig => [ "$confdir/namespaceauth.conf",
93
+ "The configuration file that defines the rights to the different
94
+ namespaces and methods. This can be used as a coarse-grained
95
+ authorization system for both ``puppet agent`` and ``puppet master``."
96
+ ],
97
+ :environment => {:default => "production", :desc => "The environment Puppet is running in. For clients
98
+ (e.g., ``puppet agent``) this determines the environment itself, which
99
+ is used to find modules and much more. For servers (i.e., ``puppet master``) this provides the default environment for nodes
100
+ we know nothing about."
101
+ },
102
+ :diff_args => ["-u", "Which arguments to pass to the diff command when printing differences between files."],
103
+ :diff => ["diff", "Which diff command to use when printing differences between files."],
104
+ :show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff
105
+ is printed on stdout, so this option is meaningless unless you are running Puppet interactively.
106
+ This feature currently requires the ``diff/lcs`` Ruby library."],
107
+ :daemonize => { :default => true,
108
+ :desc => "Send the process into the background. This is the default.",
109
+ :short => "D"
110
+ },
111
+ :maximum_uid => [4294967290, "The maximum allowed UID. Some platforms use negative UIDs
112
+ but then ship with tools that do not know how to handle signed ints, so the UIDs show up as
113
+ huge numbers that can then not be fed back into the system. This is a hackish way to fail in a
114
+ slightly more useful way when that happens."],
115
+ :node_terminus => ["plain", "Where to find information about nodes."],
116
+ :catalog_terminus => ["compiler", "Where to get node catalogs. This is useful to change if, for instance,
117
+ you'd like to pre-compile catalogs and store them in memcached or some other easily-accessed store."],
118
+ :facts_terminus => ["facter", "Where to get node facts."],
119
+ :httplog => { :default => "$logdir/http.log",
120
+ :owner => "root",
121
+ :mode => 0640,
122
+ :desc => "Where the puppet agent web server logs."
123
+ },
124
+ :http_proxy_host => ["none",
125
+ "The HTTP proxy host to use for outgoing connections. Note: You
126
+ may need to use a FQDN for the server hostname when using a proxy."],
127
+ :http_proxy_port => [3128, "The HTTP proxy port to use for outgoing connections"],
128
+ :filetimeout => [ 15,
129
+ "The minimum time to wait (in seconds) between checking for updates in
130
+ configuration files. This timeout determines how quickly Puppet checks whether
131
+ a file (such as manifests or templates) has changed on disk."
132
+ ],
133
+ :queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
134
+ :queue_type => ["stomp", "Which type of queue to use for asynchronous processing."],
135
+ :queue_source => ["stomp://localhost:61613/", "Which type of queue to use for asynchronous processing. If your stomp server requires
136
+ authentication, you can include it in the URI as long as your stomp client library is at least 1.1.1"],
137
+ :async_storeconfigs => {:default => false, :desc => "Whether to use a queueing system to provide asynchronous database integration.
138
+ Requires that ``puppetqd`` be running and that 'PSON' support for ruby be installed.",
139
+ :hook => proc do |value|
140
+ if value
141
+ # This reconfigures the terminii for Node, Facts, and Catalog
142
+ Puppet.settings[:storeconfigs] = true
143
+
144
+ # But then we modify the configuration
145
+ Puppet::Resource::Catalog.cache_class = :queue
146
+ else
147
+ raise "Cannot disable asynchronous storeconfigs in a running process"
148
+ end
149
+ end
150
+ },
151
+ :thin_storeconfigs => {:default => false, :desc =>
152
+ "Boolean; wether storeconfigs store in the database only the facts and exported resources.
153
+ If true, then storeconfigs performance will be higher and still allow exported/collected
154
+ resources, but other usage external to Puppet might not work",
155
+ :hook => proc do |value|
156
+ Puppet.settings[:storeconfigs] = true if value
157
+ end
158
+ },
159
+ :config_version => ["", "How to determine the configuration version. By default, it will be the
160
+ time that the configuration is parsed, but you can provide a shell script to override how the
161
+ version is determined. The output of this script will be added to every log message in the
162
+ reports, allowing you to correlate changes on your hosts to the source version on the server."],
163
+ :zlib => [true,
164
+ "Boolean; whether to use the zlib library",
165
+ ],
166
+ :prerun_command => ["", "A command to run before every agent run. If this command returns a non-zero
167
+ return code, the entire Puppet run will fail."],
168
+ :postrun_command => ["", "A command to run after every agent run. If this command returns a non-zero
169
+ return code, the entire Puppet run will be considered to have failed, even though it might have
170
+ performed work during the normal run."],
171
+ :freeze_main => [false, "Freezes the 'main' class, disallowing any code to be added to it. This
172
+ essentially means that you can't have any code outside of a node, class, or definition other
173
+ than in the site manifest."]
174
+ )
175
+
176
+ hostname = Facter["hostname"].value
177
+ domain = Facter["domain"].value
178
+ if domain and domain != ""
179
+ fqdn = [hostname, domain].join(".")
180
+ else
181
+ fqdn = hostname
182
+ end
183
+
184
+
185
+ Puppet.setdefaults(
186
+ :main,
187
+
188
+ # We have to downcase the fqdn, because the current ssl stuff (as oppsed to in master) doesn't have good facilities for
189
+ # manipulating naming.
190
+ :certname => {:default => fqdn.downcase, :desc => "The name to use when handling certificates. Defaults
191
+ to the fully qualified domain name.",
192
+ :call_on_define => true, # Call our hook with the default value, so we're always downcased
193
+ :hook => proc { |value| raise(ArgumentError, "Certificate names must be lower case; see #1168") unless value == value.downcase }},
194
+ :certdnsnames => ['', "The DNS names on the Server certificate as a colon-separated list.
195
+ If it's anything other than an empty string, it will be used as an alias in the created
196
+ certificate. By default, only the server gets an alias set up, and only for 'puppet'."],
197
+ :certdir => {
198
+ :default => "$ssldir/certs",
199
+ :owner => "service",
200
+ :desc => "The certificate directory."
201
+ },
202
+ :ssldir => {
203
+ :default => "$confdir/ssl",
204
+ :mode => 0771,
205
+ :owner => "service",
206
+ :desc => "Where SSL certificates are kept."
207
+ },
208
+ :publickeydir => {
209
+ :default => "$ssldir/public_keys",
210
+ :owner => "service",
211
+ :desc => "The public key directory."
212
+ },
213
+ :requestdir => {
214
+ :default => "$ssldir/certificate_requests",
215
+ :owner => "service",
216
+ :desc => "Where host certificate requests are stored."
217
+ },
218
+ :privatekeydir => { :default => "$ssldir/private_keys",
219
+ :mode => 0750,
220
+ :owner => "service",
221
+ :desc => "The private key directory."
222
+ },
223
+ :privatedir => { :default => "$ssldir/private",
224
+ :mode => 0750,
225
+ :owner => "service",
226
+ :desc => "Where the client stores private certificate information."
227
+ },
228
+ :passfile => { :default => "$privatedir/password",
229
+ :mode => 0640,
230
+ :owner => "service",
231
+ :desc => "Where puppet agent stores the password for its private key.
232
+ Generally unused."
233
+ },
234
+ :hostcsr => { :default => "$ssldir/csr_$certname.pem",
235
+ :mode => 0644,
236
+ :owner => "service",
237
+ :desc => "Where individual hosts store and look for their certificate requests."
238
+ },
239
+ :hostcert => { :default => "$certdir/$certname.pem",
240
+ :mode => 0644,
241
+ :owner => "service",
242
+ :desc => "Where individual hosts store and look for their certificates."
243
+ },
244
+ :hostprivkey => { :default => "$privatekeydir/$certname.pem",
245
+ :mode => 0600,
246
+ :owner => "service",
247
+ :desc => "Where individual hosts store and look for their private key."
248
+ },
249
+ :hostpubkey => { :default => "$publickeydir/$certname.pem",
250
+ :mode => 0644,
251
+ :owner => "service",
252
+ :desc => "Where individual hosts store and look for their public key."
253
+ },
254
+ :localcacert => { :default => "$certdir/ca.pem",
255
+ :mode => 0644,
256
+ :owner => "service",
257
+ :desc => "Where each client stores the CA certificate."
258
+ },
259
+ :hostcrl => { :default => "$ssldir/crl.pem",
260
+ :mode => 0644,
261
+ :owner => "service",
262
+ :desc => "Where the host's certificate revocation list can be found.
263
+ This is distinct from the certificate authority's CRL."
264
+ },
265
+ :certificate_revocation => [true, "Whether certificate revocation should be supported by downloading a Certificate Revocation List (CRL)
266
+ to all clients. If enabled, CA chaining will almost definitely not work."]
267
+ )
268
+
269
+
270
+ setdefaults(
271
+ :ca,
272
+ :ca_name => ["$certname", "The name to use the Certificate Authority certificate."],
273
+ :cadir => { :default => "$ssldir/ca",
274
+ :owner => "service",
275
+ :group => "service",
276
+ :mode => 0770,
277
+ :desc => "The root directory for the certificate authority."
278
+ },
279
+ :cacert => { :default => "$cadir/ca_crt.pem",
280
+ :owner => "service",
281
+ :group => "service",
282
+ :mode => 0660,
283
+ :desc => "The CA certificate."
284
+ },
285
+ :cakey => { :default => "$cadir/ca_key.pem",
286
+ :owner => "service",
287
+ :group => "service",
288
+ :mode => 0660,
289
+ :desc => "The CA private key."
290
+ },
291
+ :capub => { :default => "$cadir/ca_pub.pem",
292
+ :owner => "service",
293
+ :group => "service",
294
+ :desc => "The CA public key."
295
+ },
296
+ :cacrl => { :default => "$cadir/ca_crl.pem",
297
+ :owner => "service",
298
+ :group => "service",
299
+ :mode => 0664,
300
+
301
+ :desc => "The certificate revocation list (CRL) for the CA. Will be used if present but otherwise ignored.",
302
+ :hook => proc do |value|
303
+ if value == 'false'
304
+ Puppet.warning "Setting the :cacrl to 'false' is deprecated; Puppet will just ignore the crl if yours is missing"
305
+ end
306
+ end
307
+ },
308
+ :caprivatedir => { :default => "$cadir/private",
309
+ :owner => "service",
310
+ :group => "service",
311
+ :mode => 0770,
312
+ :desc => "Where the CA stores private certificate information."
313
+ },
314
+ :csrdir => { :default => "$cadir/requests",
315
+ :owner => "service",
316
+ :group => "service",
317
+ :desc => "Where the CA stores certificate requests"
318
+ },
319
+ :signeddir => { :default => "$cadir/signed",
320
+ :owner => "service",
321
+ :group => "service",
322
+ :mode => 0770,
323
+ :desc => "Where the CA stores signed certificates."
324
+ },
325
+ :capass => { :default => "$caprivatedir/ca.pass",
326
+ :owner => "service",
327
+ :group => "service",
328
+ :mode => 0660,
329
+ :desc => "Where the CA stores the password for the private key"
330
+ },
331
+ :serial => { :default => "$cadir/serial",
332
+ :owner => "service",
333
+ :group => "service",
334
+ :mode => 0644,
335
+ :desc => "Where the serial number for certificates is stored."
336
+ },
337
+ :autosign => { :default => "$confdir/autosign.conf",
338
+ :mode => 0644,
339
+ :desc => "Whether to enable autosign. Valid values are true (which
340
+ autosigns any key request, and is a very bad idea), false (which
341
+ never autosigns any key request), and the path to a file, which
342
+ uses that configuration file to determine which keys to sign."},
343
+ :ca_days => ["", "How long a certificate should be valid.
344
+ This parameter is deprecated, use ca_ttl instead"],
345
+ :ca_ttl => ["5y", "The default TTL for new certificates; valid values
346
+ must be an integer, optionally followed by one of the units
347
+ 'y' (years of 365 days), 'd' (days), 'h' (hours), or
348
+ 's' (seconds). The unit defaults to seconds. If this parameter
349
+ is set, ca_days is ignored. Examples are '3600' (one hour)
350
+ and '1825d', which is the same as '5y' (5 years) "],
351
+ :ca_md => ["md5", "The type of hash used in certificates."],
352
+ :req_bits => [2048, "The bit length of the certificates."],
353
+ :keylength => [1024, "The bit length of keys."],
354
+ :cert_inventory => {
355
+ :default => "$cadir/inventory.txt",
356
+ :mode => 0644,
357
+ :owner => "service",
358
+ :group => "service",
359
+ :desc => "A Complete listing of all certificates"
360
+ }
361
+ )
362
+
363
+ # Define the config default.
364
+
365
+ setdefaults(
366
+ Puppet.settings[:name],
367
+ :config => ["$confdir/puppet.conf",
368
+ "The configuration file for #{Puppet[:name]}."],
369
+ :pidfile => ["$rundir/$name.pid", "The pid file"],
370
+ :bindaddress => ["", "The address a listening server should bind to. Mongrel servers
371
+ default to 127.0.0.1 and WEBrick defaults to 0.0.0.0."],
372
+ :servertype => {:default => "webrick", :desc => "The type of server to use. Currently supported
373
+ options are webrick and mongrel. If you use mongrel, you will need
374
+ a proxy in front of the process or processes, since Mongrel cannot
375
+ speak SSL.",
376
+
377
+ :call_on_define => true, # Call our hook with the default value, so we always get the correct bind address set.
378
+ :hook => proc { |value| value == "webrick" ? Puppet.settings[:bindaddress] = "0.0.0.0" : Puppet.settings[:bindaddress] = "127.0.0.1" if Puppet.settings[:bindaddress] == "" }
379
+ }
380
+ )
381
+
382
+ setdefaults(:master,
383
+ :user => ["puppet", "The user puppet master should run as."],
384
+ :group => ["puppet", "The group puppet master should run as."],
385
+ :manifestdir => ["$confdir/manifests", "Where puppet master looks for its manifests."],
386
+ :manifest => ["$manifestdir/site.pp", "The entry-point manifest for puppet master."],
387
+ :code => ["", "Code to parse directly. This is essentially only used
388
+ by ``puppet``, and should only be set if you're writing your own Puppet
389
+ executable"],
390
+ :masterlog => { :default => "$logdir/puppetmaster.log",
391
+ :owner => "service",
392
+ :group => "service",
393
+ :mode => 0660,
394
+ :desc => "Where puppet master logs. This is generally not used,
395
+ since syslog is the default log destination."
396
+ },
397
+ :masterhttplog => { :default => "$logdir/masterhttp.log",
398
+ :owner => "service",
399
+ :group => "service",
400
+ :mode => 0660,
401
+ :create => true,
402
+ :desc => "Where the puppet master web server logs."
403
+ },
404
+ :masterport => [8140, "Which port puppet master listens on."],
405
+ :parseonly => [false, "Just check the syntax of the manifests."],
406
+ :node_name => ["cert", "How the puppetmaster determines the client's identity
407
+ and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
408
+ in particular for determining which 'node' statement applies to the client.
409
+ Possible values are 'cert' (use the subject's CN in the client's
410
+ certificate) and 'facter' (use the hostname that the client
411
+ reported in its facts)"],
412
+ :bucketdir => {
413
+ :default => "$vardir/bucket",
414
+ :mode => 0750,
415
+ :owner => "service",
416
+ :group => "service",
417
+ :desc => "Where FileBucket files are stored."
418
+ },
419
+ :rest_authconfig => [ "$confdir/auth.conf",
420
+ "The configuration file that defines the rights to the different
421
+ rest indirections. This can be used as a fine-grained
422
+ authorization system for ``puppet master``."
423
+ ],
424
+ :ca => [true, "Wether the master should function as a certificate authority."],
425
+ :modulepath => {:default => "$confdir/modules:/usr/share/puppet/modules",
426
+ :desc => "The search path for modules as a colon-separated list of
427
+ directories.", :type => :setting }, # We don't want this to be considered a file, since it's multiple files.
428
+ :ssl_client_header => ["HTTP_X_CLIENT_DN", "The header containing an authenticated
429
+ client's SSL DN. Only used with Mongrel. This header must be set by the proxy
430
+ to the authenticated client's SSL DN (e.g., ``/CN=puppet.puppetlabs.com``).
431
+ See http://projects.puppetlabs.com/projects/puppet/wiki/Using_Mongrel for more information."],
432
+ :ssl_client_verify_header => ["HTTP_X_CLIENT_VERIFY", "The header containing the status
433
+ message of the client verification. Only used with Mongrel. This header must be set by the proxy
434
+ to 'SUCCESS' if the client successfully authenticated, and anything else otherwise.
435
+ See http://projects.puppetlabs.com/projects/puppet/wiki/Using_Mongrel for more information."],
436
+ # To make sure this directory is created before we try to use it on the server, we need
437
+ # it to be in the server section (#1138).
438
+ :yamldir => {:default => "$vardir/yaml", :owner => "service", :group => "service", :mode => "750",
439
+ :desc => "The directory in which YAML data is stored, usually in a subdirectory."},
440
+ :server_datadir => {:default => "$vardir/server_data", :owner => "service", :group => "service", :mode => "750",
441
+ :desc => "The directory in which serialized data is stored, usually in a subdirectory."},
442
+ :reports => ["store",
443
+ "The list of reports to generate. All reports are looked for
444
+ in puppet/reports/name.rb, and multiple report names should be
445
+ comma-separated (whitespace is okay)."
446
+ ],
447
+ :fileserverconfig => ["$confdir/fileserver.conf", "Where the fileserver configuration is stored."],
448
+ :rrddir => {:default => "$vardir/rrd",
449
+ :owner => "service",
450
+ :group => "service",
451
+ :desc => "The directory where RRD database files are stored.
452
+ Directories for each reporting host will be created under
453
+ this directory."
454
+ },
455
+ :rrdinterval => ["$runinterval", "How often RRD should expect data.
456
+ This should match how often the hosts report back to the server."],
457
+ :strict_hostname_checking => [false, "Whether to only search for the complete
458
+ hostname as it is in the certificate when searching for node information
459
+ in the catalogs."]
460
+ )
461
+
462
+ setdefaults(:agent,
463
+ :localconfig => { :default => "$statedir/localconfig",
464
+ :owner => "root",
465
+ :mode => 0660,
466
+ :desc => "Where puppet agent caches the local configuration. An
467
+ extension indicating the cache format is added automatically."},
468
+ :statefile => { :default => "$statedir/state.yaml",
469
+ :mode => 0660,
470
+ :desc => "Where puppet agent and puppet master store state associated
471
+ with the running configuration. In the case of puppet master,
472
+ this file reflects the state discovered through interacting
473
+ with clients."
474
+ },
475
+ :clientyamldir => {:default => "$vardir/client_yaml", :mode => "750", :desc => "The directory in which client-side YAML data is stored."},
476
+ :client_datadir => {:default => "$vardir/client_data", :mode => "750", :desc => "The directory in which serialized data is stored on the client."},
477
+ :classfile => { :default => "$statedir/classes.txt",
478
+ :owner => "root",
479
+ :mode => 0644,
480
+ :desc => "The file in which puppet agent stores a list of the classes
481
+ associated with the retrieved configuration. Can be loaded in
482
+ the separate ``puppet`` executable using the ``--loadclasses``
483
+ option."},
484
+ :puppetdlog => { :default => "$logdir/puppetd.log",
485
+ :owner => "root",
486
+ :mode => 0640,
487
+ :desc => "The log file for puppet agent. This is generally not used."
488
+ },
489
+ :server => ["puppet", "The server to which server puppet agent should connect"],
490
+ :ignoreschedules => [false,
491
+ "Boolean; whether puppet agent should ignore schedules. This is useful
492
+ for initial puppet agent runs."],
493
+ :puppetport => [8139, "Which port puppet agent listens on."],
494
+ :noop => [false, "Whether puppet agent should be run in noop mode."],
495
+ :runinterval => [1800, # 30 minutes
496
+ "How often puppet agent applies the client configuration; in seconds."],
497
+ :listen => [false, "Whether puppet agent should listen for
498
+ connections. If this is true, then by default only the
499
+ ``runner`` server is started, which allows remote authorized
500
+ and authenticated nodes to connect and trigger ``puppet agent``
501
+ runs."],
502
+ :ca_server => ["$server", "The server to use for certificate
503
+ authority requests. It's a separate server because it cannot
504
+ and does not need to horizontally scale."],
505
+ :ca_port => ["$masterport", "The port to use for the certificate authority."],
506
+ :catalog_format => {
507
+ :default => "",
508
+ :desc => "(Deprecated for 'preferred_serialization_format') What format to
509
+ use to dump the catalog. Only supports 'marshal' and 'yaml'. Only
510
+ matters on the client, since it asks the server for a specific format.",
511
+ :hook => proc { |value|
512
+ if value
513
+ Puppet.warning "Setting 'catalog_format' is deprecated; use 'preferred_serialization_format' instead."
514
+ Puppet.settings[:preferred_serialization_format] = value
515
+ end
516
+ }
517
+ },
518
+ :preferred_serialization_format => ["pson", "The preferred means of serializing
519
+ ruby instances for passing over the wire. This won't guarantee that all
520
+ instances will be serialized using this method, since not all classes
521
+ can be guaranteed to support this format, but it will be used for all
522
+ classes that support it."],
523
+ :puppetdlockfile => [ "$statedir/puppetdlock", "A lock file to temporarily stop puppet agent from doing anything."],
524
+ :usecacheonfailure => [true,
525
+ "Whether to use the cached configuration when the remote
526
+ configuration will not compile. This option is useful for testing
527
+ new configurations, where you want to fix the broken configuration
528
+ rather than reverting to a known-good one."
529
+ ],
530
+ :use_cached_catalog => [false,
531
+ "Whether to only use the cached catalog rather than compiling a new catalog
532
+ on every run. Puppet can be run with this enabled by default and then selectively
533
+ disabled when a recompile is desired."],
534
+ :ignorecache => [false,
535
+ "Ignore cache and always recompile the configuration. This is
536
+ useful for testing new configurations, where the local cache may in
537
+ fact be stale even if the timestamps are up to date - if the facts
538
+ change or if the server changes."
539
+ ],
540
+ :downcasefacts => [false, "Whether facts should be made all lowercase when sent to the server."],
541
+ :dynamicfacts => ["memorysize,memoryfree,swapsize,swapfree",
542
+ "Facts that are dynamic; these facts will be ignored when deciding whether
543
+ changed facts should result in a recompile. Multiple facts should be
544
+ comma-separated."],
545
+ :splaylimit => ["$runinterval",
546
+ "The maximum time to delay before runs. Defaults to being the same as the
547
+ run interval."],
548
+ :splay => [false,
549
+ "Whether to sleep for a pseudo-random (but consistent) amount of time before
550
+ a run."],
551
+ :clientbucketdir => {
552
+ :default => "$vardir/clientbucket",
553
+ :mode => 0750,
554
+ :desc => "Where FileBucket files are stored locally."
555
+ },
556
+ :configtimeout => [120,
557
+ "How long the client should wait for the configuration to be retrieved
558
+ before considering it a failure. This can help reduce flapping if too
559
+ many clients contact the server at one time."
560
+ ],
561
+ :reportserver => {
562
+ :default => "$server",
563
+ :call_on_define => false,
564
+ :desc => "(Deprecated for 'report_server') The server to which to send transaction reports.",
565
+ :hook => proc do |value|
566
+ Puppet.settings[:report_server] = value if value
567
+ end
568
+ },
569
+ :report_server => ["$server",
570
+ "The server to which to send transaction reports."
571
+ ],
572
+ :report_port => ["$masterport",
573
+ "The port to communicate with the report_server."
574
+ ],
575
+ :report => [false,
576
+ "Whether to send reports after every transaction."
577
+ ],
578
+ :graph => [false, "Whether to create dot graph files for the different
579
+ configuration graphs. These dot files can be interpreted by tools
580
+ like OmniGraffle or dot (which is part of ImageMagick)."],
581
+ :graphdir => ["$statedir/graphs", "Where to store dot-outputted graphs."],
582
+ :http_compression => [false, "Allow http compression in REST communication with the master.
583
+ This setting might improve performance for agent -> master communications over slow WANs.
584
+ Your puppetmaster needs to support compression (usually by activating some settings in a reverse-proxy
585
+ in front of the puppetmaster, which rules out webrick).
586
+ It is harmless to activate this settings if your master doesn't support
587
+ compression, but if it supports it, this setting might reduce performance on high-speed LANs."]
588
+ )
589
+
590
+ # Plugin information.
591
+
592
+ setdefaults(
593
+ :main,
594
+ :plugindest => ["$libdir",
595
+ "Where Puppet should store plugins that it pulls down from the central
596
+ server."],
597
+ :pluginsource => ["puppet://$server/plugins",
598
+ "From where to retrieve plugins. The standard Puppet ``file`` type
599
+ is used for retrieval, so anything that is a valid file source can
600
+ be used here."],
601
+ :pluginsync => [false, "Whether plugins should be synced with the central server."],
602
+
603
+ :pluginsignore => [".svn CVS .git", "What files to ignore when pulling down plugins."]
604
+ )
605
+
606
+ # Central fact information.
607
+
608
+ setdefaults(
609
+ :main,
610
+ :factpath => {:default => "$vardir/lib/facter/${File::PATH_SEPARATOR}$vardir/facts",
611
+ :desc => "Where Puppet should look for facts. Multiple directories should
612
+ be colon-separated, like normal PATH variables.",
613
+
614
+ :call_on_define => true, # Call our hook with the default value, so we always get the value added to facter.
615
+ :type => :setting, # Don't consider it a file, because it could be multiple colon-separated files
616
+ :hook => proc { |value| Facter.search(value) if Facter.respond_to?(:search) }},
617
+ :factdest => ["$vardir/facts/",
618
+ "Where Puppet should store facts that it pulls down from the central
619
+ server."],
620
+ :factsource => ["puppet://$server/facts/",
621
+ "From where to retrieve facts. The standard Puppet ``file`` type
622
+ is used for retrieval, so anything that is a valid file source can
623
+ be used here."],
624
+ :factsync => [false, "Whether facts should be synced with the central server."],
625
+ :factsignore => [".svn CVS", "What files to ignore when pulling down facts."],
626
+ :reportdir => {:default => "$vardir/reports",
627
+ :mode => 0750,
628
+ :owner => "service",
629
+ :group => "service",
630
+ :desc => "The directory in which to store reports
631
+ received from the client. Each client gets a separate
632
+ subdirectory."},
633
+ :reporturl => ["http://localhost:3000/reports",
634
+ "The URL used by the http reports processor to send reports"]
635
+ )
636
+
637
+
638
+ setdefaults(
639
+ :tagmail,
640
+ :tagmap => ["$confdir/tagmail.conf", "The mapping between reporting tags and email addresses."],
641
+ :sendmail => [%x{which sendmail 2>/dev/null}.chomp, "Where to find the sendmail binary with which to send email."],
642
+
643
+ :reportfrom => ["report@" + [Facter["hostname"].value, Facter["domain"].value].join("."), "The 'from' email address for the reports."],
644
+ :smtpserver => ["none", "The server through which to send email reports."]
645
+ )
646
+
647
+
648
+ setdefaults(
649
+ :rails,
650
+ :dblocation => { :default => "$statedir/clientconfigs.sqlite3",
651
+ :mode => 0660,
652
+ :owner => "service",
653
+ :group => "service",
654
+ :desc => "The database cache for client configurations. Used for
655
+ querying within the language."
656
+ },
657
+ :dbadapter => [ "sqlite3", "The type of database to use." ],
658
+ :dbmigrate => [ false, "Whether to automatically migrate the database." ],
659
+ :dbname => [ "puppet", "The name of the database to use." ],
660
+ :dbserver => [ "localhost", "The database server for caching. Only
661
+ used when networked databases are used."],
662
+ :dbport => [ "", "The database password for caching. Only
663
+ used when networked databases are used."],
664
+ :dbuser => [ "puppet", "The database user for caching. Only
665
+ used when networked databases are used."],
666
+ :dbpassword => [ "puppet", "The database password for caching. Only
667
+ used when networked databases are used."],
668
+ :dbsocket => [ "", "The database socket location. Only used when networked
669
+ databases are used. Will be ignored if the value is an empty string."],
670
+ :dbconnections => [ 0, "The number of database connections. Only used when
671
+ networked databases are used. Will be ignored if the value is an empty
672
+ string or is less than 1."],
673
+ :railslog => {:default => "$logdir/rails.log",
674
+ :mode => 0600,
675
+ :owner => "service",
676
+ :group => "service",
677
+ :desc => "Where Rails-specific logs are sent"
678
+ },
679
+
680
+ :rails_loglevel => ["info", "The log level for Rails connections. The value must be
681
+ a valid log level within Rails. Production environments normally use ``info``
682
+ and other environments normally use ``debug``."]
683
+ )
684
+
685
+
686
+ setdefaults(
687
+ :couchdb,
688
+
689
+ :couchdb_url => ["http://127.0.0.1:5984/puppet", "The url where the puppet couchdb database will be created"]
690
+ )
691
+
692
+
693
+ setdefaults(
694
+ :transaction,
695
+ :tags => ["", "Tags to use to find resources. If this is set, then
696
+ only resources tagged with the specified tags will be applied.
697
+ Values must be comma-separated."],
698
+ :evaltrace => [false, "Whether each resource should log when it is
699
+ being evaluated. This allows you to interactively see exactly
700
+ what is being done."],
701
+ :summarize => [false,
702
+
703
+ "Whether to print a transaction summary."
704
+ ]
705
+ )
706
+
707
+
708
+ setdefaults(
709
+ :main,
710
+ :external_nodes => ["none",
711
+
712
+ "An external command that can produce node information. The output
713
+ must be a YAML dump of a hash, and that hash must have one or both of
714
+ ``classes`` and ``parameters``, where ``classes`` is an array and
715
+ ``parameters`` is a hash. For unknown nodes, the commands should
716
+ exit with a non-zero exit code.
717
+
718
+ This command makes it straightforward to store your node mapping
719
+ information in other data sources like databases."])
720
+
721
+
722
+ setdefaults(
723
+ :ldap,
724
+ :ldapnodes => [false,
725
+ "Whether to search for node configurations in LDAP. See
726
+ http://projects.puppetlabs.com/projects/puppet/wiki/LDAP_Nodes for more information."],
727
+ :ldapssl => [false,
728
+ "Whether SSL should be used when searching for nodes.
729
+ Defaults to false because SSL usually requires certificates
730
+ to be set up on the client side."],
731
+ :ldaptls => [false,
732
+ "Whether TLS should be used when searching for nodes.
733
+ Defaults to false because TLS usually requires certificates
734
+ to be set up on the client side."],
735
+ :ldapserver => ["ldap",
736
+ "The LDAP server. Only used if ``ldapnodes`` is enabled."],
737
+ :ldapport => [389,
738
+ "The LDAP port. Only used if ``ldapnodes`` is enabled."],
739
+
740
+ :ldapstring => ["(&(objectclass=puppetClient)(cn=%s))",
741
+ "The search string used to find an LDAP node."],
742
+ :ldapclassattrs => ["puppetclass",
743
+ "The LDAP attributes to use to define Puppet classes. Values
744
+ should be comma-separated."],
745
+ :ldapstackedattrs => ["puppetvar",
746
+ "The LDAP attributes that should be stacked to arrays by adding
747
+ the values in all hierarchy elements of the tree. Values
748
+ should be comma-separated."],
749
+ :ldapattrs => ["all",
750
+ "The LDAP attributes to include when querying LDAP for nodes. All
751
+ returned attributes are set as variables in the top-level scope.
752
+ Multiple values should be comma-separated. The value 'all' returns
753
+ all attributes."],
754
+ :ldapparentattr => ["parentnode",
755
+ "The attribute to use to define the parent node."],
756
+ :ldapuser => ["",
757
+ "The user to use to connect to LDAP. Must be specified as a
758
+ full DN."],
759
+ :ldappassword => ["", "The password to use to connect to LDAP."],
760
+ :ldapbase => ["",
761
+ "The search base for LDAP searches. It's impossible to provide
762
+ a meaningful default here, although the LDAP libraries might
763
+ have one already set. Generally, it should be the 'ou=Hosts'
764
+ branch under your main directory."]
765
+ )
766
+
767
+ setdefaults(:master,
768
+ :storeconfigs => {:default => false, :desc => "Whether to store each client's configuration. This
769
+ requires ActiveRecord from Ruby on Rails.",
770
+ :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
771
+ :hook => proc do |value|
772
+ require 'puppet/node'
773
+ require 'puppet/node/facts'
774
+ if value
775
+ require 'puppet/rails'
776
+ raise "StoreConfigs not supported without ActiveRecord 2.1 or higher" unless Puppet.features.rails?
777
+ Puppet::Resource::Catalog.cache_class = :active_record unless Puppet.settings[:async_storeconfigs]
778
+ Puppet::Node::Facts.cache_class = :active_record
779
+ Puppet::Node.cache_class = :active_record
780
+ end
781
+ end
782
+ }
783
+ )
784
+
785
+ # This doesn't actually work right now.
786
+
787
+ setdefaults(
788
+ :parser,
789
+
790
+ :lexical => [false, "Whether to use lexical scoping (vs. dynamic)."],
791
+ :templatedir => ["$vardir/templates",
792
+ "Where Puppet looks for template files. Can be a list of colon-seperated
793
+ directories."
794
+ ]
795
+ )
799
796
  end