puppet 3.1.1 → 3.2.0.rc1

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 (477) hide show
  1. data/CONTRIBUTING.md +2 -2
  2. data/Gemfile +32 -19
  3. data/README_DEVELOPER.md +332 -14
  4. data/Rakefile +9 -5
  5. data/ext/build_defaults.yaml +2 -3
  6. data/ext/debian/changelog.erb +6 -0
  7. data/ext/debian/control +6 -6
  8. data/ext/envpuppet +4 -4
  9. data/ext/project_data.yaml +1 -0
  10. data/ext/puppet-nm-dispatcher +13 -0
  11. data/ext/redhat/puppet.spec.erb +17 -0
  12. data/ext/suse/client.init +1 -1
  13. data/ext/systemd/puppetagent.service +2 -2
  14. data/ext/systemd/puppetmaster.service +2 -2
  15. data/lib/hiera/scope.rb +29 -11
  16. data/lib/hiera_puppet.rb +1 -3
  17. data/lib/puppet/agent.rb +3 -3
  18. data/lib/puppet/application.rb +2 -2
  19. data/lib/puppet/application/agent.rb +27 -12
  20. data/lib/puppet/application/apply.rb +11 -1
  21. data/lib/puppet/application/describe.rb +1 -1
  22. data/lib/puppet/application/doc.rb +13 -9
  23. data/lib/puppet/application/filebucket.rb +0 -1
  24. data/lib/puppet/application/kick.rb +1 -0
  25. data/lib/puppet/application/master.rb +16 -8
  26. data/lib/puppet/daemon.rb +19 -64
  27. data/lib/puppet/defaults.rb +61 -5
  28. data/lib/puppet/error.rb +15 -4
  29. data/lib/puppet/external/nagios/grammar.ry +1 -1
  30. data/lib/puppet/external/nagios/makefile +1 -1
  31. data/lib/puppet/external/nagios/parser.rb +185 -618
  32. data/lib/puppet/external/pson/pure/parser.rb +47 -1
  33. data/lib/puppet/face/certificate.rb +3 -3
  34. data/lib/puppet/face/module.rb +1 -1
  35. data/lib/puppet/face/module/changes.rb +3 -1
  36. data/lib/puppet/face/module/uninstall.rb +1 -1
  37. data/lib/puppet/face/node/clean.rb +5 -5
  38. data/lib/puppet/feature/base.rb +3 -1
  39. data/lib/puppet/feature/libuser.rb +8 -0
  40. data/lib/puppet/file_serving/fileset.rb +9 -1
  41. data/lib/puppet/forge.rb +28 -5
  42. data/lib/puppet/forge/errors.rb +34 -0
  43. data/lib/puppet/forge/repository.rb +1 -1
  44. data/lib/puppet/indirector.rb +4 -1
  45. data/lib/puppet/indirector/catalog/compiler.rb +37 -30
  46. data/lib/puppet/indirector/facts/inventory_active_record.rb +1 -0
  47. data/lib/puppet/indirector/indirection.rb +28 -15
  48. data/lib/puppet/indirector/rest.rb +18 -10
  49. data/lib/puppet/interface.rb +11 -4
  50. data/lib/puppet/interface/action.rb +1 -3
  51. data/lib/puppet/interface/action_builder.rb +0 -3
  52. data/lib/puppet/interface/action_manager.rb +0 -3
  53. data/lib/puppet/interface/face_collection.rb +0 -2
  54. data/lib/puppet/interface/option.rb +0 -2
  55. data/lib/puppet/interface/option_builder.rb +0 -2
  56. data/lib/puppet/interface/option_manager.rb +0 -2
  57. data/lib/puppet/metatype/manager.rb +1 -1
  58. data/lib/puppet/module_tool.rb +1 -0
  59. data/lib/puppet/module_tool/applications/application.rb +0 -3
  60. data/lib/puppet/module_tool/applications/builder.rb +8 -20
  61. data/lib/puppet/module_tool/applications/checksummer.rb +1 -1
  62. data/lib/puppet/module_tool/applications/installer.rb +1 -0
  63. data/lib/puppet/module_tool/applications/unpacker.rb +3 -11
  64. data/lib/puppet/module_tool/checksums.rb +1 -1
  65. data/lib/puppet/module_tool/errors/installer.rb +18 -1
  66. data/lib/puppet/module_tool/modulefile.rb +2 -2
  67. data/lib/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +1 -1
  68. data/lib/puppet/module_tool/tar.rb +17 -0
  69. data/lib/puppet/module_tool/tar/gnu.rb +9 -0
  70. data/lib/puppet/module_tool/tar/mini.rb +39 -0
  71. data/lib/puppet/module_tool/tar/solaris.rb +5 -0
  72. data/lib/puppet/network/http.rb +1 -0
  73. data/lib/puppet/network/http/connection.rb +9 -23
  74. data/lib/puppet/network/http/handler.rb +38 -7
  75. data/lib/puppet/network/http/rack/rest.rb +14 -3
  76. data/lib/puppet/network/http/webrick.rb +3 -1
  77. data/lib/puppet/network/http/webrick/rest.rb +11 -2
  78. data/lib/puppet/node/environment.rb +3 -1
  79. data/lib/puppet/parameter.rb +32 -29
  80. data/lib/puppet/parameter/package_options.rb +1 -1
  81. data/lib/puppet/parameter/path.rb +1 -1
  82. data/lib/puppet/parameter/value.rb +1 -1
  83. data/lib/puppet/parameter/value_collection.rb +7 -3
  84. data/lib/puppet/parser/ast.rb +3 -1
  85. data/lib/puppet/parser/ast/arithmetic_operator.rb +56 -12
  86. data/lib/puppet/parser/ast/astarray.rb +1 -1
  87. data/lib/puppet/parser/ast/block_expression.rb +41 -0
  88. data/lib/puppet/parser/ast/function.rb +13 -2
  89. data/lib/puppet/parser/ast/lambda.rb +107 -0
  90. data/lib/puppet/parser/ast/leaf.rb +1 -2
  91. data/lib/puppet/parser/ast/method_call.rb +77 -0
  92. data/lib/puppet/parser/ast/vardef.rb +7 -0
  93. data/lib/puppet/parser/compiler.rb +27 -16
  94. data/lib/puppet/parser/e_parser_adapter.rb +120 -0
  95. data/lib/puppet/parser/files.rb +7 -6
  96. data/lib/puppet/parser/functions.rb +10 -8
  97. data/lib/puppet/parser/functions/collect.rb +43 -0
  98. data/lib/puppet/parser/functions/each.rb +96 -0
  99. data/lib/puppet/parser/functions/foreach.rb +96 -0
  100. data/lib/puppet/parser/functions/fqdn_rand.rb +2 -2
  101. data/lib/puppet/parser/functions/hiera.rb +20 -2
  102. data/lib/puppet/parser/functions/hiera_array.rb +21 -2
  103. data/lib/puppet/parser/functions/hiera_hash.rb +23 -2
  104. data/lib/puppet/parser/functions/hiera_include.rb +33 -2
  105. data/lib/puppet/parser/functions/inline_template.rb +4 -4
  106. data/lib/puppet/parser/functions/reduce.rb +74 -0
  107. data/lib/puppet/parser/functions/reject.rb +46 -0
  108. data/lib/puppet/parser/functions/select.rb +46 -0
  109. data/lib/puppet/parser/functions/slice.rb +96 -0
  110. data/lib/puppet/parser/functions/template.rb +2 -2
  111. data/lib/puppet/parser/grammar.ra +7 -4
  112. data/lib/puppet/parser/lexer.rb +10 -0
  113. data/lib/puppet/parser/methods.rb +69 -0
  114. data/lib/puppet/parser/parser.rb +855 -808
  115. data/lib/puppet/parser/parser_factory.rb +62 -0
  116. data/lib/puppet/parser/parser_support.rb +8 -2
  117. data/lib/puppet/parser/scope.rb +153 -47
  118. data/lib/puppet/parser/templatewrapper.rb +28 -21
  119. data/lib/puppet/parser/type_loader.rb +3 -1
  120. data/lib/puppet/pops.rb +40 -0
  121. data/lib/puppet/pops/adaptable.rb +190 -0
  122. data/lib/puppet/pops/adapters.rb +65 -0
  123. data/lib/puppet/pops/containment.rb +37 -0
  124. data/lib/puppet/pops/issues.rb +258 -0
  125. data/lib/puppet/pops/label_provider.rb +71 -0
  126. data/lib/puppet/pops/model/ast_transformer.rb +636 -0
  127. data/lib/puppet/pops/model/ast_tree_dumper.rb +378 -0
  128. data/lib/puppet/pops/model/factory.rb +804 -0
  129. data/lib/puppet/pops/model/model.rb +567 -0
  130. data/lib/puppet/pops/model/model_label_provider.rb +75 -0
  131. data/lib/puppet/pops/model/model_tree_dumper.rb +352 -0
  132. data/lib/puppet/pops/model/tree_dumper.rb +59 -0
  133. data/lib/puppet/pops/parser/egrammar.ra +723 -0
  134. data/lib/puppet/pops/parser/eparser.rb +2300 -0
  135. data/lib/puppet/pops/parser/grammar.ra +746 -0
  136. data/lib/puppet/pops/parser/lexer.rb +842 -0
  137. data/lib/puppet/pops/parser/makefile +13 -0
  138. data/lib/puppet/pops/parser/parser_support.rb +203 -0
  139. data/lib/puppet/pops/patterns.rb +35 -0
  140. data/lib/puppet/pops/utils.rb +104 -0
  141. data/lib/puppet/pops/validation.rb +297 -0
  142. data/lib/puppet/pops/validation/checker3_1.rb +551 -0
  143. data/lib/puppet/pops/validation/validator_factory_3_1.rb +41 -0
  144. data/lib/puppet/pops/visitable.rb +6 -0
  145. data/lib/puppet/pops/visitor.rb +50 -0
  146. data/lib/puppet/property.rb +37 -28
  147. data/lib/puppet/property/ensure.rb +2 -2
  148. data/lib/puppet/property/ordered_list.rb +1 -1
  149. data/lib/puppet/provider.rb +26 -30
  150. data/lib/puppet/provider/aixobject.rb +45 -44
  151. data/lib/puppet/provider/augeas/augeas.rb +0 -1
  152. data/lib/puppet/provider/confiner.rb +1 -1
  153. data/lib/puppet/provider/cron/crontab.rb +107 -67
  154. data/lib/puppet/provider/group/groupadd.rb +59 -3
  155. data/lib/puppet/provider/interface/cisco.rb +4 -4
  156. data/lib/puppet/provider/mount/parsed.rb +1 -1
  157. data/lib/puppet/provider/nameservice.rb +22 -6
  158. data/lib/puppet/provider/nameservice/pw.rb +1 -1
  159. data/lib/puppet/provider/package/aix.rb +28 -4
  160. data/lib/puppet/provider/package/gem.rb +0 -2
  161. data/lib/puppet/provider/package/macports.rb +1 -1
  162. data/lib/puppet/provider/package/nim.rb +249 -4
  163. data/lib/puppet/provider/package/opkg.rb +77 -0
  164. data/lib/puppet/provider/package/pacman.rb +2 -2
  165. data/lib/puppet/provider/package/rpm.rb +30 -16
  166. data/lib/puppet/provider/package/yum.rb +3 -3
  167. data/lib/puppet/provider/parsedfile.rb +80 -3
  168. data/lib/puppet/provider/selmodule/semodule.rb +2 -2
  169. data/lib/puppet/provider/service/debian.rb +0 -4
  170. data/lib/puppet/provider/service/freebsd.rb +2 -2
  171. data/lib/puppet/provider/service/gentoo.rb +0 -9
  172. data/lib/puppet/provider/service/init.rb +27 -2
  173. data/lib/puppet/provider/service/launchd.rb +1 -1
  174. data/lib/puppet/provider/service/openwrt.rb +36 -0
  175. data/lib/puppet/provider/service/redhat.rb +0 -9
  176. data/lib/puppet/provider/service/src.rb +38 -4
  177. data/lib/puppet/provider/service/systemd.rb +2 -2
  178. data/lib/puppet/provider/service/upstart.rb +1 -8
  179. data/lib/puppet/provider/user/aix.rb +4 -10
  180. data/lib/puppet/provider/user/pw.rb +6 -10
  181. data/lib/puppet/provider/user/useradd.rb +129 -31
  182. data/lib/puppet/provider/vlan/cisco.rb +4 -4
  183. data/lib/puppet/reference/function.rb +2 -2
  184. data/lib/puppet/reference/indirection.rb +46 -5
  185. data/lib/puppet/reference/metaparameter.rb +2 -2
  186. data/lib/puppet/reports.rb +5 -5
  187. data/lib/puppet/reports/rrdgraph.rb +4 -4
  188. data/lib/puppet/reports/tagmail.rb +1 -1
  189. data/lib/puppet/resource.rb +1 -1
  190. data/lib/puppet/resource/type.rb +13 -11
  191. data/lib/puppet/scheduler.rb +16 -0
  192. data/lib/puppet/scheduler/job.rb +53 -0
  193. data/lib/puppet/scheduler/scheduler.rb +45 -0
  194. data/lib/puppet/scheduler/splay_job.rb +32 -0
  195. data/lib/puppet/scheduler/timer.rb +13 -0
  196. data/lib/puppet/settings/base_setting.rb +1 -1
  197. data/lib/puppet/simple_graph.rb +4 -4
  198. data/lib/puppet/ssl/base.rb +12 -2
  199. data/lib/puppet/ssl/certificate.rb +4 -1
  200. data/lib/puppet/ssl/certificate_request.rb +4 -1
  201. data/lib/puppet/ssl/certificate_revocation_list.rb +4 -1
  202. data/lib/puppet/ssl/configuration.rb +32 -0
  203. data/lib/puppet/ssl/host.rb +18 -21
  204. data/lib/puppet/ssl/key.rb +4 -1
  205. data/lib/puppet/ssl/validator.rb +116 -0
  206. data/lib/puppet/transaction.rb +1 -1
  207. data/lib/puppet/transaction/event.rb +3 -10
  208. data/lib/puppet/transaction/event_manager.rb +8 -1
  209. data/lib/puppet/transaction/report.rb +17 -16
  210. data/lib/puppet/type.rb +77 -69
  211. data/lib/puppet/type/cron.rb +20 -8
  212. data/lib/puppet/type/exec.rb +9 -3
  213. data/lib/puppet/type/file.rb +95 -21
  214. data/lib/puppet/type/file/content.rb +1 -1
  215. data/lib/puppet/type/file/mode.rb +7 -1
  216. data/lib/puppet/type/file/source.rb +2 -2
  217. data/lib/puppet/type/group.rb +11 -0
  218. data/lib/puppet/type/scheduled_task.rb +5 -1
  219. data/lib/puppet/type/service.rb +1 -1
  220. data/lib/puppet/type/ssh_authorized_key.rb +2 -2
  221. data/lib/puppet/type/user.rb +24 -6
  222. data/lib/puppet/util.rb +12 -2
  223. data/lib/puppet/util/classgen.rb +4 -4
  224. data/lib/puppet/util/colors.rb +55 -0
  225. data/lib/puppet/util/command_line/trollop.rb +4 -4
  226. data/lib/puppet/util/errors.rb +39 -3
  227. data/lib/puppet/util/fileparsing.rb +5 -0
  228. data/lib/puppet/util/filetype.rb +11 -9
  229. data/lib/puppet/util/instrumentation/instrumentable.rb +2 -2
  230. data/lib/puppet/util/libuser.conf +15 -0
  231. data/lib/puppet/util/libuser.rb +12 -0
  232. data/lib/puppet/util/monkey_patches.rb +48 -0
  233. data/lib/puppet/util/network_device.rb +1 -1
  234. data/lib/puppet/util/network_device/base.rb +2 -2
  235. data/lib/puppet/util/network_device/cisco/device.rb +29 -19
  236. data/lib/puppet/util/network_device/config.rb +5 -2
  237. data/lib/puppet/util/network_device/ipcalc.rb +1 -1
  238. data/lib/puppet/util/network_device/transport/ssh.rb +4 -3
  239. data/lib/puppet/util/network_device/transport/telnet.rb +4 -2
  240. data/lib/puppet/util/plugins.rb +4 -4
  241. data/lib/puppet/util/posix.rb +1 -1
  242. data/lib/puppet/util/profiler.rb +28 -0
  243. data/lib/puppet/util/profiler/logging.rb +47 -0
  244. data/lib/puppet/util/profiler/none.rb +8 -0
  245. data/lib/puppet/util/profiler/object_counts.rb +17 -0
  246. data/lib/puppet/util/profiler/wall_clock.rb +34 -0
  247. data/lib/puppet/util/provider_features.rb +1 -1
  248. data/lib/puppet/util/rdoc/parser.rb +5 -5
  249. data/lib/puppet/util/ssl.rb +38 -0
  250. data/lib/puppet/util/subclass_loader.rb +1 -5
  251. data/lib/puppet/util/windows.rb +1 -0
  252. data/lib/puppet/util/windows/process.rb +3 -0
  253. data/lib/puppet/util/windows/root_certs.rb +86 -0
  254. data/lib/puppet/util/windows/security.rb +1 -0
  255. data/lib/puppet/version.rb +1 -1
  256. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +19 -0
  257. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +18 -0
  258. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +15 -0
  259. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +4 -0
  260. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +13 -0
  261. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +15 -0
  262. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +6 -0
  263. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +12 -0
  264. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +14 -0
  265. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +16 -0
  266. data/spec/fixtures/unit/pops/parser/lexer/append.pp +11 -0
  267. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +14 -0
  268. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +8 -0
  269. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +3 -0
  270. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +65 -0
  271. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +15 -0
  272. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +17 -0
  273. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +11 -0
  274. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +10 -0
  275. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +8 -0
  276. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  277. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +11 -0
  278. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +8 -0
  279. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +23 -0
  280. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +17 -0
  281. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +9 -0
  282. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +3 -0
  283. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +9 -0
  284. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +3 -0
  285. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +11 -0
  286. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +5 -0
  287. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +11 -0
  288. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +5 -0
  289. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +33 -0
  290. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +12 -0
  291. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +15 -0
  292. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +10 -0
  293. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +9 -0
  294. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +7 -0
  295. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +13 -0
  296. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +9 -0
  297. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +13 -0
  298. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +49 -0
  299. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +5 -0
  300. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +38 -0
  301. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +19 -0
  302. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +11 -0
  303. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +22 -0
  304. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +11 -0
  305. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +9 -0
  306. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +35 -0
  307. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +14 -0
  308. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +4 -4
  309. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +3 -0
  310. data/spec/fixtures/unit/provider/cron/parsed/managed +6 -0
  311. data/spec/fixtures/unit/provider/cron/parsed/simple +9 -0
  312. data/spec/fixtures/unit/provider/parsedfile/simple.txt +4 -0
  313. data/spec/fixtures/unit/provider/service/systemd/list_units +18 -0
  314. data/spec/integration/parser/collector_spec.rb +1 -1
  315. data/spec/integration/parser/compiler_spec.rb +252 -227
  316. data/spec/integration/parser/parser_spec.rb +171 -53
  317. data/spec/integration/parser/scope_spec.rb +1 -1
  318. data/spec/integration/provider/cron/crontab_spec.rb +187 -0
  319. data/spec/integration/provider/service/systemd_spec.rb +20 -0
  320. data/spec/integration/type/file_spec.rb +21 -21
  321. data/spec/integration/type/package_spec.rb +1 -1
  322. data/spec/lib/puppet_spec/database.rb +2 -5
  323. data/spec/spec_helper.rb +6 -1
  324. data/spec/unit/application/apply_spec.rb +16 -1
  325. data/spec/unit/application/describe_spec.rb +1 -1
  326. data/spec/unit/application/doc_spec.rb +55 -32
  327. data/spec/unit/application/kick_spec.rb +8 -6
  328. data/spec/unit/application/master_spec.rb +4 -4
  329. data/spec/unit/daemon_spec.rb +1 -1
  330. data/spec/unit/forge/errors_spec.rb +40 -0
  331. data/spec/unit/forge/repository_spec.rb +11 -1
  332. data/spec/unit/forge_spec.rb +13 -3
  333. data/spec/unit/hiera/backend/puppet_backend_spec.rb +1 -0
  334. data/spec/unit/hiera/scope_spec.rb +48 -25
  335. data/spec/unit/indirector/catalog/active_record_spec.rb +6 -3
  336. data/spec/unit/indirector/catalog/compiler_spec.rb +3 -28
  337. data/spec/unit/indirector/catalog/static_compiler_spec.rb +1 -1
  338. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +154 -150
  339. data/spec/unit/indirector/indirection_spec.rb +5 -0
  340. data/spec/unit/indirector/resource/active_record_spec.rb +5 -22
  341. data/spec/unit/indirector_spec.rb +7 -1
  342. data/spec/unit/interface/action_builder_spec.rb +1 -1
  343. data/spec/unit/interface/action_manager_spec.rb +0 -2
  344. data/spec/unit/interface/action_spec.rb +1 -1
  345. data/spec/unit/interface/documentation_spec.rb +0 -2
  346. data/spec/unit/interface/face_collection_spec.rb +1 -1
  347. data/spec/unit/interface/option_builder_spec.rb +1 -1
  348. data/spec/unit/interface/option_spec.rb +0 -1
  349. data/spec/unit/module_spec.rb +17 -19
  350. data/spec/unit/module_tool/application_spec.rb +1 -3
  351. data/spec/unit/module_tool/applications/builder_spec.rb +38 -0
  352. data/spec/unit/module_tool/applications/checksummer_spec.rb +134 -0
  353. data/spec/unit/module_tool/applications/installer_spec.rb +71 -91
  354. data/spec/unit/module_tool/applications/searcher_spec.rb +1 -3
  355. data/spec/unit/module_tool/applications/uninstaller_spec.rb +18 -26
  356. data/spec/unit/module_tool/applications/unpacker_spec.rb +19 -52
  357. data/spec/unit/module_tool/tar/gnu_spec.rb +19 -0
  358. data/spec/unit/module_tool/tar/mini_spec.rb +59 -0
  359. data/spec/unit/module_tool/tar/solaris_spec.rb +19 -0
  360. data/spec/unit/network/http/connection_spec.rb +17 -2
  361. data/spec/unit/network/http/handler_spec.rb +195 -167
  362. data/spec/unit/network/http/rack/rest_spec.rb +26 -4
  363. data/spec/unit/network/http/webrick/rest_spec.rb +28 -1
  364. data/spec/unit/network/http/webrick_spec.rb +12 -3
  365. data/spec/unit/node/environment_spec.rb +421 -404
  366. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +98 -2
  367. data/spec/unit/parser/collector_spec.rb +4 -4
  368. data/spec/unit/parser/compiler_spec.rb +13 -13
  369. data/spec/unit/parser/eparser_adapter_spec.rb +407 -0
  370. data/spec/unit/parser/functions/extlookup_spec.rb +20 -17
  371. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -0
  372. data/spec/unit/parser/functions/hiera_include_spec.rb +0 -2
  373. data/spec/unit/parser/functions/hiera_spec.rb +0 -2
  374. data/spec/unit/parser/functions_spec.rb +27 -15
  375. data/spec/unit/parser/methods/collect_spec.rb +110 -0
  376. data/spec/unit/parser/methods/each_spec.rb +91 -0
  377. data/spec/unit/parser/methods/foreach_spec.rb +91 -0
  378. data/spec/unit/parser/methods/reduce_spec.rb +67 -0
  379. data/spec/unit/parser/methods/reject_spec.rb +73 -0
  380. data/spec/unit/parser/methods/select_spec.rb +79 -0
  381. data/spec/unit/parser/methods/shared.rb +61 -0
  382. data/spec/unit/parser/methods/slice_spec.rb +97 -0
  383. data/spec/unit/parser/parser_spec.rb +2 -2
  384. data/spec/unit/parser/scope_spec.rb +39 -16
  385. data/spec/unit/parser/templatewrapper_spec.rb +6 -5
  386. data/spec/unit/parser/type_loader_spec.rb +191 -165
  387. data/spec/unit/pops/adaptable_spec.rb +143 -0
  388. data/spec/unit/pops/containment_spec.rb +25 -0
  389. data/spec/unit/pops/factory_rspec_helper.rb +77 -0
  390. data/spec/unit/pops/factory_spec.rb +329 -0
  391. data/spec/unit/pops/issues_spec.rb +26 -0
  392. data/spec/unit/pops/label_provider_spec.rb +42 -0
  393. data/spec/unit/pops/model/ast_transformer_spec.rb +65 -0
  394. data/spec/unit/pops/model/model_spec.rb +37 -0
  395. data/spec/unit/pops/parser/lexer_spec.rb +884 -0
  396. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +248 -0
  397. data/spec/unit/pops/parser/parse_calls_spec.rb +93 -0
  398. data/spec/unit/pops/parser/parse_conditionals_spec.rb +159 -0
  399. data/spec/unit/pops/parser/parse_containers_spec.rb +175 -0
  400. data/spec/unit/pops/parser/parse_resource_spec.rb +228 -0
  401. data/spec/unit/pops/parser/parser_rspec_helper.rb +11 -0
  402. data/spec/unit/pops/parser/parser_spec.rb +15 -0
  403. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +16 -0
  404. data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +243 -0
  405. data/spec/unit/pops/transformer/transform_calls_spec.rb +80 -0
  406. data/spec/unit/pops/transformer/transform_conditionals_spec.rb +132 -0
  407. data/spec/unit/pops/transformer/transform_containers_spec.rb +182 -0
  408. data/spec/unit/pops/transformer/transform_resource_spec.rb +185 -0
  409. data/spec/unit/pops/transformer/transformer_rspec_helper.rb +27 -0
  410. data/spec/unit/pops/visitor_spec.rb +94 -0
  411. data/spec/unit/property_spec.rb +11 -0
  412. data/spec/unit/provider/augeas/augeas_spec.rb +3 -0
  413. data/spec/unit/provider/cron/crontab_spec.rb +97 -7
  414. data/spec/unit/provider/cron/parsed_spec.rb +325 -0
  415. data/spec/unit/provider/exec/posix_spec.rb +1 -1
  416. data/spec/unit/provider/group/groupadd_spec.rb +33 -3
  417. data/spec/unit/provider/group/pw_spec.rb +5 -5
  418. data/spec/unit/provider/nameservice_spec.rb +304 -0
  419. data/spec/unit/provider/package/aix_spec.rb +53 -11
  420. data/spec/unit/provider/package/aptrpm_spec.rb +6 -0
  421. data/spec/unit/provider/package/gem_spec.rb +6 -11
  422. data/spec/unit/provider/package/nim_spec.rb +216 -7
  423. data/spec/unit/provider/package/opkg_spec.rb +180 -0
  424. data/spec/unit/provider/package/rpm_spec.rb +149 -3
  425. data/spec/unit/provider/package/yum_spec.rb +6 -5
  426. data/spec/unit/provider/parsedfile_spec.rb +122 -28
  427. data/spec/unit/provider/service/freebsd_spec.rb +18 -0
  428. data/spec/unit/provider/service/init_spec.rb +108 -87
  429. data/spec/unit/provider/service/launchd_spec.rb +2 -2
  430. data/spec/unit/provider/service/openwrt_spec.rb +109 -0
  431. data/spec/unit/provider/service/src_spec.rb +117 -41
  432. data/spec/unit/provider/service/systemd_spec.rb +125 -17
  433. data/spec/unit/provider/service/upstart_spec.rb +1 -1
  434. data/spec/unit/provider/user/aix_spec.rb +42 -0
  435. data/spec/unit/provider/user/directoryservice_spec.rb +1 -0
  436. data/spec/unit/provider/user/pw_spec.rb +24 -12
  437. data/spec/unit/provider/user/user_role_add_spec.rb +1 -1
  438. data/spec/unit/provider/user/useradd_spec.rb +179 -15
  439. data/spec/unit/resource/type_spec.rb +3 -3
  440. data/spec/unit/scheduler/job_spec.rb +79 -0
  441. data/spec/unit/scheduler/scheduler_spec.rb +129 -0
  442. data/spec/unit/scheduler/splay_job_spec.rb +35 -0
  443. data/spec/unit/ssl/base_spec.rb +3 -9
  444. data/spec/unit/ssl/certificate_authority_spec.rb +1 -0
  445. data/spec/unit/ssl/certificate_request_spec.rb +3 -1
  446. data/spec/unit/ssl/certificate_spec.rb +3 -1
  447. data/spec/unit/ssl/configuration_spec.rb +74 -0
  448. data/spec/unit/ssl/host_spec.rb +28 -7
  449. data/spec/unit/ssl/validator_spec.rb +311 -0
  450. data/spec/unit/transaction/event_manager_spec.rb +49 -0
  451. data/spec/unit/transaction/event_spec.rb +20 -5
  452. data/spec/unit/transaction/report_spec.rb +8 -0
  453. data/spec/unit/type/cron_spec.rb +9 -0
  454. data/spec/unit/type/exec_spec.rb +11 -0
  455. data/spec/unit/type/file/content_spec.rb +20 -20
  456. data/spec/unit/type/file/mode_spec.rb +6 -0
  457. data/spec/unit/type/file/source_spec.rb +9 -7
  458. data/spec/unit/type/file_spec.rb +22 -3
  459. data/spec/unit/type/service_spec.rb +34 -21
  460. data/spec/unit/type_spec.rb +46 -1
  461. data/spec/unit/util/backups_spec.rb +2 -2
  462. data/spec/unit/util/execution_spec.rb +4 -1
  463. data/spec/unit/util/filetype_spec.rb +6 -0
  464. data/spec/unit/util/monkey_patches_spec.rb +18 -0
  465. data/spec/unit/util/network_device/cisco/device_spec.rb +37 -0
  466. data/spec/unit/util/network_device/config_spec.rb +14 -0
  467. data/spec/unit/util/network_device_spec.rb +3 -3
  468. data/spec/unit/util/profiler/logging_spec.rb +81 -0
  469. data/spec/unit/util/profiler/none_spec.rb +12 -0
  470. data/spec/unit/util/profiler/object_counts_spec.rb +14 -0
  471. data/spec/unit/util/profiler/wall_clock_spec.rb +13 -0
  472. data/spec/unit/util/pson_spec.rb +5 -0
  473. data/spec/unit/util/ssl_spec.rb +51 -0
  474. data/spec/unit/util/windows/root_certs_spec.rb +15 -0
  475. data/spec/unit/util_spec.rb +28 -0
  476. metadata +2593 -2307
  477. data/spec/unit/module_tool/applications/application_spec.rb +0 -19
data/Rakefile CHANGED
@@ -57,12 +57,16 @@ if File.exist?(build_defs_file)
57
57
  end
58
58
 
59
59
  task :default do
60
- sh %{rake -T}
60
+ sh %{rake -T}
61
61
  end
62
62
 
63
- if defined?(RSpec::Core::RakeTask)
64
- RSpec::Core::RakeTask.new do |t|
65
- t.pattern ='spec/{unit,integration}/**/*.rb'
66
- t.fail_on_error = true
63
+ task :spec do
64
+ sh %{rspec -fd spec}
65
+ end
66
+
67
+ namespace "ci" do
68
+ task :spec do
69
+ ENV["LOG_SPEC_ORDER"] = "true"
70
+ sh %{rspec -r yarjuf -f JUnit -o result.xml -fd spec}
67
71
  end
68
72
  end
@@ -2,15 +2,14 @@
2
2
  packaging_url: 'git://github.com/puppetlabs/packaging.git --branch=master'
3
3
  packaging_repo: 'packaging'
4
4
  default_cow: 'base-squeeze-i386.cow'
5
- cows: 'base-lucid-i386.cow base-natty-i386.cow base-oneiric-i386.cow base-precise-i386.cow base-quantal-i386.cow base-sid-i386.cow base-squeeze-i386.cow base-stable-i386.cow base-testing-i386.cow base-unstable-i386.cow base-wheezy-i386.cow'
5
+ cows: 'base-lucid-i386.cow base-oneiric-i386.cow base-precise-i386.cow base-quantal-i386.cow base-raring-i386.cow base-sid-i386.cow base-squeeze-i386.cow base-stable-i386.cow base-testing-i386.cow base-unstable-i386.cow base-wheezy-i386.cow'
6
6
  pbuild_conf: '/etc/pbuilderrc'
7
7
  packager: 'puppetlabs'
8
8
  gpg_name: 'info@puppetlabs.com'
9
9
  gpg_key: '4BD6EC30'
10
10
  sign_tar: FALSE
11
11
  # a space separated list of mock configs
12
- final_mocks: 'pl-5-i386 pl-6-i386 fedora-16-i386 fedora-17-i386'
13
- rc_mocks: 'pl-5-i386-dev pl-6-i386-dev fedora-16-i386-dev fedora-17-i386-dev'
12
+ final_mocks: 'pl-el-5-i386 pl-el-6-i386 pl-fedora-17-i386 pl-fedora-18-i386'
14
13
  yum_host: 'burji.puppetlabs.com'
15
14
  yum_repo_path: '/opt/repository/yum/'
16
15
  build_gem: TRUE
@@ -4,6 +4,12 @@ puppet (<%= @debversion %>) hardy lucid natty oneiric unstable sid squeeze wheez
4
4
 
5
5
  -- Puppet Labs Release <info@puppetlabs.com> <%= Time.now.strftime("%a, %d %b %Y %H:%M:%S %z")%>
6
6
 
7
+ puppet (3.2.0-0.1rc0puppetlabs1) lucid oneiric precise unstable sid squeeze wheezy precise; urgency=low
8
+
9
+ * Add ruby-rgen dependency for new parser in Puppet 3.2
10
+
11
+ -- Matthaus Owens <matthaus@puppetlabs.com> Fri, 12 Apr 2013 14:45:14 +0000
12
+
7
13
  puppet (3.1.0-0.1rc1puppetlabs1) lucid natty oneiric precise unstable sid squeeze wheezy precise; urgency=low
8
14
 
9
15
  * Add extlookup2hiera manpage to puppet-common.manpages
data/ext/debian/control CHANGED
@@ -11,9 +11,9 @@ Homepage: http://projects.puppetlabs.com/projects/puppet
11
11
 
12
12
  Package: puppet-common
13
13
  Architecture: all
14
- Depends: ${misc:Depends}, ruby | ruby-interpreter, libxmlrpc-ruby, libopenssl-ruby, libshadow-ruby1.8 | ruby-shadow , libaugeas-ruby1.8 | libaugeas-ruby1.9, adduser, lsb-base, sysv-rc (>= 2.86) | file-rc, hiera (>= 1.0.0), facter (>= 1.6.12)
14
+ Depends: ${misc:Depends}, ruby | ruby-interpreter, libxmlrpc-ruby, libopenssl-ruby, ruby-shadow | libshadow-ruby1.8, libaugeas-ruby | libaugeas-ruby1.9.1 | libaugeas-ruby1.8, adduser, lsb-base, sysv-rc (>= 2.86) | file-rc, hiera (>= 1.0.0), facter (>= 1.6.12), ruby-rgen
15
15
  Recommends: lsb-release, debconf-utils
16
- Suggests: libselinux-ruby1.8 | ruby-selinux, librrd-ruby1.8 | librrd-ruby1.9
16
+ Suggests: ruby-selinux | libselinux-ruby1.8, librrd-ruby1.9.1 | librrd-ruby1.8
17
17
  Breaks: puppet (<< 2.6.0~rc2-1), puppetmaster (<< 0.25.4-1)
18
18
  Provides: hiera-puppet
19
19
  Conflicts: hiera-puppet
@@ -62,7 +62,7 @@ Replaces: puppetmaster (<< 2.6.1~rc2-1)
62
62
  Suggests: apache2 | nginx, puppet-el, vim-puppet, stompserver, ruby-stomp | libstomp-ruby1.8,
63
63
  rdoc, ruby-ldap | libldap-ruby1.8, puppetdb-terminus
64
64
  Description: Puppet master common scripts
65
- This package contains common scripts for the puppet master,
65
+ This package contains common scripts for the puppet master,
66
66
  which is the server hosting manifests and files for the puppet nodes.
67
67
  .
68
68
  Puppet lets you centrally manage every important aspect of your system
@@ -80,8 +80,8 @@ Package: puppetmaster
80
80
  Architecture: all
81
81
  Depends: ${misc:Depends}, ruby | ruby-interpreter, puppetmaster-common (= ${source:Version}), facter (>= 1.6.12), lsb-base
82
82
  Breaks: puppet (<< 0.24.7-1)
83
- Suggests: apache2 | nginx, puppet-el, vim-puppet, stompserver, libstomp-ruby1.8 | ruby-stomp,
84
- rdoc, libldap-ruby1.8 | ruby-ldap, puppetdb-terminus
83
+ Suggests: apache2 | nginx, puppet-el, vim-puppet, stompserver, ruby-stomp | libstomp-ruby1.8,
84
+ rdoc, ruby-ldap | libldap-ruby1.8, puppetdb-terminus
85
85
  Description: Centralized configuration management - master startup and compatibility scripts
86
86
  This package contains the startup and compatibility scripts for the puppet
87
87
  master, which is the server hosting manifests and files for the puppet nodes.
@@ -136,7 +136,7 @@ Description: syntax highlighting for puppet manifests in emacs
136
136
 
137
137
  Package: puppet-testsuite
138
138
  Architecture: all
139
- Depends: ${misc:Depends}, ruby | ruby-interpreter, puppet-common (= ${source:Version}), facter (>= 1.6.12), lsb-base, rails (>= 1.2.3-2), rdoc, libldap-ruby1.8 | ruby-ldap, librspec-ruby | ruby-rspec, git-core, libmocha-ruby1.8 | ruby-mocha
139
+ Depends: ${misc:Depends}, ruby | ruby-interpreter, puppet-common (= ${source:Version}), facter (>= 1.6.12), lsb-base, rails (>= 1.2.3-2), rdoc, ruby-ldap | libldap-ruby1.8, ruby-rspec | librspec-ruby, git-core, ruby-mocha | libmocha-ruby1.8
140
140
  Recommends: cron
141
141
  Description: Centralized configuration management - test suite
142
142
  This package provides all the tests from the upstream puppet source code.
data/ext/envpuppet CHANGED
@@ -1,4 +1,4 @@
1
- #! /bin/bash
1
+ #! /bin/sh
2
2
  #
3
3
  # Jeff McCune <jeff@puppetlabs.com>
4
4
  # 2010-10-20
@@ -34,7 +34,7 @@
34
34
  set -e
35
35
  set -u
36
36
 
37
- if [[ "${1:-}" == "--help" ]]; then
37
+ if [ "${1:-}" = "--help" ]; then
38
38
  cat <<EO_HELP
39
39
  This command reconfigures the environment once for development.
40
40
  It is designed to wrap around any other command, specifically puppet
@@ -99,7 +99,7 @@ myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/facter/lib"
99
99
  mypath="${mypath}:${ENVPUPPET_BASEDIR}/hiera/bin"
100
100
  myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/hiera/lib"
101
101
 
102
- if [[ "${ENVPUPPET_BLEEDING:-}" == "true" ]]; then
102
+ if [ "${ENVPUPPET_BLEEDING:-}" = "true" ]; then
103
103
  # git://github.com/puppetlabs/facter.git
104
104
  mypath="${mypath}:${ENVPUPPET_BASEDIR}/puppet-interfaces/bin"
105
105
  myrubylib="${myrubylib}:${ENVPUPPET_BASEDIR}/puppet-interfaces/lib"
@@ -126,7 +126,7 @@ export ENVPUPPET_OLD_RUBYLIB="${RUBYLIB:-}"
126
126
  export PATH="${mypath%%:}"
127
127
  export RUBYLIB="${myrubylib%%:}"
128
128
 
129
- if [[ $# -eq 0 ]]; then
129
+ if [ $# -eq 0 ]; then
130
130
  echo "export ENVPUPPET_OLD_PATH='${ENVPUPPET_OLD_PATH}'"
131
131
  echo "export ENVPUPPET_OLD_RUBYLIB='${ENVPUPPET_OLD_RUBYLIB}'"
132
132
  echo "export ENVPUPPET_BASEDIR='${ENVPUPPET_BASEDIR}'"
@@ -17,6 +17,7 @@ gem_forge_project: 'puppet'
17
17
  gem_runtime_dependencies:
18
18
  facter: '~> 1.6'
19
19
  hiera: '~> 1.0'
20
+ rgen: '~> 0.6'
20
21
  gem_rdoc_options:
21
22
  - --title
22
23
  - "Puppet - Configuration Management"
@@ -0,0 +1,13 @@
1
+ #!/bin/bash
2
+ #
3
+ # Restart puppet on network changes to pickup changes to /etc/resolv.conf
4
+ #
5
+ # https://projects.puppetlabs.com/issues/2776
6
+ # https://bugzilla.redhat.com/532085
7
+
8
+
9
+ if [ -f "/bin/systemctl" ] ; then
10
+ [[ $2 =~ ^(up|down)$ ]] && /bin/systemctl try-restart puppet.service || :
11
+ else
12
+ [[ $2 =~ ^(up|down)$ ]] && /sbin/service puppet condrestart || :
13
+ fi
@@ -56,6 +56,7 @@ Requires: facter >= 1.6.11
56
56
  # Ruby 1.8.7 available for el5 at: yum.puppetlabs.com/el/5/devel/$ARCH
57
57
  Requires: ruby >= 1.8.7
58
58
  Requires: hiera >= 1.0.0
59
+ Requires: ruby-rgen
59
60
  Obsoletes: hiera-puppet < 1.0.0
60
61
  Provides: hiera-puppet >= 1.0.0
61
62
  %{!?_without_augeas:Requires: ruby-augeas}
@@ -168,12 +169,22 @@ echo "D /var/run/%{name} 0755 %{name} %{name} -" > \
168
169
  # Create puppet modules directory for puppet module tool
169
170
  mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules
170
171
 
172
+
173
+ # Install a NetworkManager dispatcher script to pickup changes to
174
+ # # /etc/resolv.conf and such (https://bugzilla.redhat.com/532085).
175
+ mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
176
+ cp -pr ext/puppet-nm-dispatcher \
177
+ %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/98-%{name}
178
+
171
179
  %files
172
180
  %defattr(-, root, root, 0755)
173
181
  %doc LICENSE README.md examples
174
182
  %{_bindir}/puppet
175
183
  %{_bindir}/extlookup2hiera
176
184
  %{puppet_libdir}/*
185
+ %dir %{_sysconfdir}/NetworkManager
186
+ %dir %{_sysconfdir}/NetworkManager/dispatcher.d
187
+ %{_sysconfdir}/NetworkManager/dispatcher.d/98-puppet
177
188
  %if 0%{?_with_systemd}
178
189
  %{_unitdir}/puppetagent.service
179
190
  %else
@@ -380,12 +391,18 @@ rm -rf %{buildroot}
380
391
  * <%= Time.now.strftime("%a %b %d %Y") %> Puppet Labs Release <info@puppetlabs.com> - <%= @rpmversion %>-<%= @rpmrelease %>
381
392
  - Build for <%= @version %>
382
393
 
394
+ * Fri Apr 12 2013 Matthaus Owens <matthaus@puppetlabs.com> - 3.2.0-0.1rc0
395
+ - Add requires on ruby-rgen for new parser in Puppet 3.2
396
+
383
397
  * Fri Jan 25 2013 Matthaus Owens <matthaus@puppetlabs.com> - 3.1.0-0.1rc1
384
398
  - Add extlookup2hiera.8.gz to the files list
385
399
 
386
400
  * Wed Jan 9 2013 Ryan Uber <ru@ryanuber.com> - 3.1.0-0.1rc1
387
401
  - Work-around for RH Bugzilla 681540
388
402
 
403
+ * Fri Dec 28 2012 Michael Stahnke <stahnma@puppetlabs.com> - 3.0.2-2
404
+ - Added a script for Network Manager for bug https://bugzilla.redhat.com/532085
405
+
389
406
  * Tue Dec 18 2012 Matthaus Owens <matthaus@puppetlabs.com>
390
407
  - Remove for loop on examples/ code which no longer exists. Add --no-run-if-empty to xargs invocations.
391
408
 
data/ext/suse/client.init CHANGED
@@ -39,7 +39,7 @@ puppetd=${PUPPETD-/usr/bin/puppet}
39
39
  RETVAL=0
40
40
 
41
41
  PUPPET_OPTS="agent"
42
- [ -n "${PUPPET_SERVER}" ] && PUPPET_OPTS="--server=${PUPPET_SERVER}"
42
+ [ -n "${PUPPET_SERVER}" ] && PUPPET_OPTS="${PUPPET_OPTS} --server=${PUPPET_SERVER}"
43
43
  [ -n "$PUPPET_LOG" ] && PUPPET_OPTS="${PUPPET_OPTS} --logdest=${PUPPET_LOG}"
44
44
  [ -n "$PUPPET_PORT" ] && PUPPET_OPTS="${PUPPET_OPTS} --port=${PUPPET_PORT}"
45
45
 
@@ -5,9 +5,9 @@ After=basic.target network.target
5
5
 
6
6
  [Service]
7
7
  Type=forking
8
+ EnvironmentFile=-/etc/sysconfig/puppetagent
8
9
  PIDFile=/run/puppet/agent.pid
9
- ExecStartPre=/usr/bin/install -d -o puppet -m 755 /run/puppet
10
- ExecStart=/usr/bin/puppet agent
10
+ ExecStart=/usr/bin/puppet agent $PUPPET_EXTRA_OPTS
11
11
 
12
12
  [Install]
13
13
  WantedBy=multi-user.target
@@ -5,9 +5,9 @@ After=basic.target network.target
5
5
 
6
6
  [Service]
7
7
  Type=forking
8
+ EnvironmentFile=-/etc/sysconfig/puppetmaster
8
9
  PIDFile=/run/puppet/master.pid
9
- ExecStartPre=/usr/bin/install -d -o puppet -m 755 /run/puppet
10
- ExecStart=/usr/bin/puppet master
10
+ ExecStart=/usr/bin/puppet master $PUPPETMASTER_EXTRA_OPTS
11
11
 
12
12
  [Install]
13
13
  WantedBy=multi-user.target
data/lib/hiera/scope.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  class Hiera
2
2
  class Scope
3
+ CALLING_CLASS = "calling_class"
4
+ CALLING_MODULE = "calling_module"
5
+ MODULE_NAME = "module_name"
6
+
3
7
  attr_reader :real
4
8
 
5
9
  def initialize(real)
@@ -7,23 +11,27 @@ class Hiera
7
11
  end
8
12
 
9
13
  def [](key)
10
- if key == "calling_class"
11
- ans = @real.resource.name.to_s.downcase
12
- elsif key == "calling_module"
13
- ans = @real.resource.name.to_s.downcase.split("::").first
14
+ if key == CALLING_CLASS
15
+ ans = find_hostclass(@real)
16
+ elsif key == CALLING_MODULE
17
+ ans = @real.lookupvar(MODULE_NAME)
14
18
  else
15
19
  ans = @real.lookupvar(key)
16
20
  end
17
21
 
18
- # damn you puppet visual basic style variables.
19
- return nil if ans == ""
20
- return ans
22
+ if ans.nil? or ans == ""
23
+ nil
24
+ else
25
+ ans
26
+ end
21
27
  end
22
28
 
23
29
  def include?(key)
24
- return true if ["calling_class", "calling_module"].include?(key)
25
-
26
- return @real.lookupvar(key) != ""
30
+ if key == CALLING_CLASS or key == CALLING_MODULE
31
+ true
32
+ else
33
+ @real.lookupvar(key) != ""
34
+ end
27
35
  end
28
36
 
29
37
  def catalog
@@ -37,6 +45,16 @@ class Hiera
37
45
  def compiler
38
46
  @real.compiler
39
47
  end
48
+
49
+ def find_hostclass(scope)
50
+ if scope.source and scope.source.type == :hostclass
51
+ return scope.source.name.downcase
52
+ elsif scope.parent
53
+ return find_hostclass(scope.parent)
54
+ else
55
+ return nil
56
+ end
57
+ end
58
+ private :find_hostclass
40
59
  end
41
60
  end
42
-
data/lib/hiera_puppet.rb CHANGED
@@ -6,9 +6,7 @@ module HieraPuppet
6
6
  module_function
7
7
 
8
8
  def lookup(key, default, scope, override, resolution_type)
9
- unless scope.respond_to?("[]")
10
- scope = Hiera::Scope.new(scope)
11
- end
9
+ scope = Hiera::Scope.new(scope)
12
10
 
13
11
  answer = hiera.lookup(key, default, scope, override, resolution_type)
14
12
 
data/lib/puppet/agent.rb CHANGED
@@ -37,7 +37,7 @@ class Puppet::Agent
37
37
 
38
38
  result = nil
39
39
  block_run = Puppet::Application.controlled_run do
40
- splay
40
+ splay client_options.fetch :splay, Puppet[:splay]
41
41
  result = run_in_fork(should_fork) do
42
42
  with_client do |client|
43
43
  begin
@@ -66,8 +66,8 @@ class Puppet::Agent
66
66
  end
67
67
 
68
68
  # Sleep when splay is enabled; else just return.
69
- def splay
70
- return unless Puppet[:splay]
69
+ def splay(do_splay = Puppet[:splay])
70
+ return unless do_splay
71
71
  return if splayed?
72
72
 
73
73
  time = rand(Puppet[:splaylimit] + 1)
@@ -376,8 +376,8 @@ class Application
376
376
  setup_logs
377
377
  end
378
378
 
379
- def setup_logs
380
- if options[:debug] or options[:verbose]
379
+ def setup_logs(is_daemon = false)
380
+ if options[:debug] or options[:verbose] or is_daemon
381
381
  Puppet::Util::Log.newdestination(:console)
382
382
  if options[:debug]
383
383
  Puppet::Util::Log.level = :debug
@@ -166,16 +166,16 @@ when signing certificates).
166
166
 
167
167
  OPTIONS
168
168
  -------
169
- Note that any configuration parameter that's valid in the configuration
170
- file is also a valid long argument. For example, 'server' is a valid
171
- configuration parameter, so you can specify '--server <servername>' as
172
- an argument.
169
+
170
+ Note that any Puppet setting that's valid in the configuration file is also a
171
+ valid long argument. For example, 'server' is a valid setting, so you can
172
+ specify '--server <servername>' as an argument. Boolean settings translate into
173
+ '--setting' and '--no-setting' pairs.
173
174
 
174
175
  See the configuration file documentation at
175
176
  http://docs.puppetlabs.com/references/stable/configuration.html for the
176
- full list of acceptable parameters. A commented list of all
177
- configuration options can also be generated by running puppet agent with
178
- '--genconfig'.
177
+ full list of acceptable settings. A commented list of all settings can also be
178
+ generated by running puppet agent with '--genconfig'.
179
179
 
180
180
  * --certname:
181
181
  Set the certname (unique ID) of the client. The master reads this
@@ -183,12 +183,17 @@ configuration options can also be generated by running puppet agent with
183
183
  fully-qualified domain name, to determine which configurations the
184
184
  node will receive. Use this option to debug setup problems or
185
185
  implement unusual node identification schemes.
186
+ (This is a Puppet setting, and can go in puppet.conf.)
186
187
 
187
188
  * --daemonize:
188
189
  Send the process into the background. This is the default.
190
+ (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
191
+ prefix for boolean settings on the command line.)
189
192
 
190
193
  * --no-daemonize:
191
194
  Do not send the process into the background.
195
+ (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
196
+ prefix for boolean settings on the command line.)
192
197
 
193
198
  * --debug:
194
199
  Enable full debugging.
@@ -240,26 +245,34 @@ configuration options can also be generated by running puppet agent with
240
245
  file. Defaults to sending messages to syslog, or the console if
241
246
  debugging or verbosity is enabled.
242
247
 
248
+ * --masterport:
249
+ The port on which to contact the puppet master.
250
+ (This is a Puppet setting, and can go in puppet.conf.)
251
+
243
252
  * --no-client:
244
- Do not create a config client. This will cause the daemon to start
245
- but not check configuration unless it is triggered with `puppet
246
- kick`. This only makes sense when puppet agent is being run with
253
+ Do not create a config client. This will cause the daemon to start
254
+ but not check configuration unless it is triggered with `puppet
255
+ kick`. This only makes sense when puppet agent is being run with
247
256
  listen = true in puppet.conf or was started with the `--listen` option.
248
257
 
249
258
  * --noop:
250
259
  Use 'noop' mode where the daemon runs in a no-op or dry-run mode. This
251
260
  is useful for seeing what changes Puppet will make without actually
252
261
  executing the changes.
262
+ (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
263
+ prefix for boolean settings on the command line.)
253
264
 
254
265
  * --onetime:
255
266
  Run the configuration once. Runs a single (normally daemonized) Puppet
256
267
  run. Useful for interactively running puppet agent when used in
257
268
  conjunction with the --no-daemonize option.
269
+ (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
270
+ prefix for boolean settings on the command line.)
258
271
 
259
272
  * --test:
260
273
  Enable the most common options used for testing. These are 'onetime',
261
274
  'verbose', 'ignorecache', 'no-daemonize', 'no-usecacheonfailure',
262
- 'detailed-exit-codes', 'no-splay', and 'show_diff'.
275
+ 'detailed-exitcodes', 'no-splay', and 'show_diff'.
263
276
 
264
277
  * --verbose:
265
278
  Turn on verbose reporting.
@@ -274,6 +287,8 @@ configuration options can also be generated by running puppet agent with
274
287
  it to sign a certificate request. This is useful for the initial setup
275
288
  of a puppet client. You can turn off waiting for certificates by
276
289
  specifying a time of 0.
290
+ (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
291
+ prefix for boolean settings on the command line.)
277
292
 
278
293
 
279
294
  EXAMPLE
@@ -430,7 +445,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
430
445
  def setup
431
446
  setup_test if options[:test]
432
447
 
433
- setup_logs
448
+ setup_logs(true)
434
449
 
435
450
  exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
436
451