puppet 6.22.1 → 6.25.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +20 -20
  5. data/README.md +4 -4
  6. data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  7. data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  8. data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  9. data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  10. data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  11. data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
  12. data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
  13. data/{ext → examples}/nagios/check_puppet.rb +2 -2
  14. data/ext/README.md +13 -0
  15. data/ext/osx/puppet.plist +2 -0
  16. data/ext/project_data.yaml +1 -0
  17. data/lib/puppet/application/agent.rb +16 -5
  18. data/lib/puppet/application/apply.rb +22 -3
  19. data/lib/puppet/application/device.rb +2 -1
  20. data/lib/puppet/application/filebucket.rb +1 -0
  21. data/lib/puppet/application/resource.rb +32 -16
  22. data/lib/puppet/application/script.rb +2 -1
  23. data/lib/puppet/application/ssl.rb +1 -0
  24. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  25. data/lib/puppet/configurer/downloader.rb +2 -1
  26. data/lib/puppet/configurer.rb +144 -56
  27. data/lib/puppet/confine/variable.rb +1 -1
  28. data/lib/puppet/defaults.rb +47 -33
  29. data/lib/puppet/environments.rb +75 -25
  30. data/lib/puppet/face/facts.rb +1 -1
  31. data/lib/puppet/face/help/action.erb +1 -0
  32. data/lib/puppet/face/help/face.erb +1 -0
  33. data/lib/puppet/face/node/clean.rb +11 -0
  34. data/lib/puppet/facter_impl.rb +96 -0
  35. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  36. data/lib/puppet/file_serving/configuration.rb +3 -0
  37. data/lib/puppet/file_serving/fileset.rb +14 -2
  38. data/lib/puppet/file_serving/mount/file.rb +4 -4
  39. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  40. data/lib/puppet/file_system/file_impl.rb +3 -1
  41. data/lib/puppet/file_system/windows.rb +2 -2
  42. data/lib/puppet/forge.rb +4 -4
  43. data/lib/puppet/functions/all.rb +1 -1
  44. data/lib/puppet/functions/camelcase.rb +1 -1
  45. data/lib/puppet/functions/capitalize.rb +2 -2
  46. data/lib/puppet/functions/downcase.rb +2 -2
  47. data/lib/puppet/functions/empty.rb +8 -0
  48. data/lib/puppet/functions/find_template.rb +2 -2
  49. data/lib/puppet/functions/get.rb +5 -5
  50. data/lib/puppet/functions/group_by.rb +13 -5
  51. data/lib/puppet/functions/lest.rb +1 -1
  52. data/lib/puppet/functions/new.rb +100 -100
  53. data/lib/puppet/functions/partition.rb +4 -4
  54. data/lib/puppet/functions/require.rb +5 -5
  55. data/lib/puppet/functions/sort.rb +3 -3
  56. data/lib/puppet/functions/strftime.rb +1 -0
  57. data/lib/puppet/functions/tree_each.rb +7 -9
  58. data/lib/puppet/functions/type.rb +4 -4
  59. data/lib/puppet/functions/unwrap.rb +17 -2
  60. data/lib/puppet/functions/upcase.rb +2 -2
  61. data/lib/puppet/http/client.rb +1 -1
  62. data/lib/puppet/http/redirector.rb +5 -0
  63. data/lib/puppet/http/resolver/server_list.rb +15 -4
  64. data/lib/puppet/http/service/compiler.rb +75 -1
  65. data/lib/puppet/http/service/file_server.rb +2 -1
  66. data/lib/puppet/indirector/catalog/compiler.rb +25 -6
  67. data/lib/puppet/indirector/catalog/rest.rb +1 -0
  68. data/lib/puppet/indirector/facts/facter.rb +6 -6
  69. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  70. data/lib/puppet/indirector/indirection.rb +1 -1
  71. data/lib/puppet/indirector/resource/ral.rb +6 -1
  72. data/lib/puppet/indirector/terminus.rb +4 -0
  73. data/lib/puppet/interface/documentation.rb +1 -0
  74. data/lib/puppet/module/plan.rb +0 -1
  75. data/lib/puppet/module/task.rb +1 -1
  76. data/lib/puppet/module.rb +1 -0
  77. data/lib/puppet/module_tool/applications/installer.rb +12 -4
  78. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  79. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  80. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  81. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  82. data/lib/puppet/node/environment.rb +10 -11
  83. data/lib/puppet/pal/pal_impl.rb +1 -1
  84. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  85. data/lib/puppet/parser/resource.rb +1 -1
  86. data/lib/puppet/parser/scope.rb +1 -0
  87. data/lib/puppet/parser/templatewrapper.rb +1 -0
  88. data/lib/puppet/pops/evaluator/closure.rb +7 -5
  89. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +1 -0
  90. data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
  91. data/lib/puppet/pops/model/ast.rb +1 -0
  92. data/lib/puppet/pops/model/factory.rb +2 -1
  93. data/lib/puppet/pops/parser/eparser.rb +201 -201
  94. data/lib/puppet/pops/parser/lexer2.rb +92 -91
  95. data/lib/puppet/pops/parser/slurp_support.rb +1 -0
  96. data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
  97. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  98. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  99. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  100. data/lib/puppet/pops/types/type_formatter.rb +4 -3
  101. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  102. data/lib/puppet/pops/types/types.rb +1 -1
  103. data/lib/puppet/provider/aix_object.rb +1 -1
  104. data/lib/puppet/provider/exec/posix.rb +16 -4
  105. data/lib/puppet/provider/group/groupadd.rb +5 -2
  106. data/lib/puppet/provider/package/nim.rb +11 -6
  107. data/lib/puppet/provider/package/pip.rb +15 -3
  108. data/lib/puppet/provider/package/pkg.rb +19 -2
  109. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  110. data/lib/puppet/provider/package/yum.rb +1 -1
  111. data/lib/puppet/provider/parsedfile.rb +3 -0
  112. data/lib/puppet/provider/service/base.rb +1 -1
  113. data/lib/puppet/provider/service/init.rb +5 -5
  114. data/lib/puppet/provider/service/launchd.rb +2 -2
  115. data/lib/puppet/provider/service/redhat.rb +1 -1
  116. data/lib/puppet/provider/service/smf.rb +3 -3
  117. data/lib/puppet/provider/service/systemd.rb +15 -5
  118. data/lib/puppet/provider/service/upstart.rb +5 -5
  119. data/lib/puppet/provider/service/windows.rb +38 -0
  120. data/lib/puppet/provider/user/aix.rb +44 -1
  121. data/lib/puppet/provider/user/directoryservice.rb +26 -13
  122. data/lib/puppet/provider/user/useradd.rb +72 -16
  123. data/lib/puppet/provider.rb +1 -1
  124. data/lib/puppet/reference/configuration.rb +1 -1
  125. data/lib/puppet/reference/providers.rb +2 -2
  126. data/lib/puppet/resource/catalog.rb +1 -1
  127. data/lib/puppet/resource/type_collection.rb +1 -0
  128. data/lib/puppet/resource.rb +38 -5
  129. data/lib/puppet/runtime.rb +11 -1
  130. data/lib/puppet/settings.rb +32 -9
  131. data/lib/puppet/test/test_helper.rb +4 -1
  132. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  133. data/lib/puppet/transaction/persistence.rb +11 -1
  134. data/lib/puppet/transaction/report.rb +15 -1
  135. data/lib/puppet/type/exec.rb +35 -5
  136. data/lib/puppet/type/file/mode.rb +6 -0
  137. data/lib/puppet/type/file/selcontext.rb +1 -1
  138. data/lib/puppet/type/file.rb +25 -7
  139. data/lib/puppet/type/filebucket.rb +3 -3
  140. data/lib/puppet/type/group.rb +0 -1
  141. data/lib/puppet/type/resources.rb +1 -1
  142. data/lib/puppet/type/service.rb +26 -41
  143. data/lib/puppet/type/tidy.rb +22 -3
  144. data/lib/puppet/type/user.rb +38 -21
  145. data/lib/puppet/type.rb +1 -1
  146. data/lib/puppet/util/command_line.rb +1 -1
  147. data/lib/puppet/util/filetype.rb +2 -2
  148. data/lib/puppet/util/json.rb +3 -0
  149. data/lib/puppet/util/log.rb +1 -2
  150. data/lib/puppet/util/logging.rb +1 -25
  151. data/lib/puppet/util/pidlock.rb +1 -1
  152. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  153. data/lib/puppet/util/selinux.rb +30 -4
  154. data/lib/puppet/util/suidmanager.rb +1 -2
  155. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  156. data/lib/puppet/util/tagging.rb +1 -0
  157. data/lib/puppet/util/windows/service.rb +0 -5
  158. data/lib/puppet/util/windows/sid.rb +3 -1
  159. data/lib/puppet/util/windows/user.rb +0 -2
  160. data/lib/puppet/util/windows.rb +3 -0
  161. data/lib/puppet/util.rb +4 -3
  162. data/lib/puppet/version.rb +1 -1
  163. data/lib/puppet.rb +5 -9
  164. data/locales/puppet.pot +408 -364
  165. data/man/man5/puppet.conf.5 +303 -275
  166. data/man/man8/puppet-agent.8 +4 -1
  167. data/man/man8/puppet-apply.8 +1 -1
  168. data/man/man8/puppet-catalog.8 +9 -9
  169. data/man/man8/puppet-config.8 +1 -1
  170. data/man/man8/puppet-describe.8 +1 -1
  171. data/man/man8/puppet-device.8 +1 -1
  172. data/man/man8/puppet-doc.8 +1 -1
  173. data/man/man8/puppet-epp.8 +1 -1
  174. data/man/man8/puppet-facts.8 +8 -8
  175. data/man/man8/puppet-filebucket.8 +1 -1
  176. data/man/man8/puppet-generate.8 +1 -1
  177. data/man/man8/puppet-help.8 +1 -1
  178. data/man/man8/puppet-key.8 +7 -7
  179. data/man/man8/puppet-lookup.8 +1 -1
  180. data/man/man8/puppet-man.8 +1 -1
  181. data/man/man8/puppet-module.8 +3 -3
  182. data/man/man8/puppet-node.8 +5 -5
  183. data/man/man8/puppet-parser.8 +1 -1
  184. data/man/man8/puppet-plugin.8 +1 -1
  185. data/man/man8/puppet-report.8 +5 -5
  186. data/man/man8/puppet-resource.8 +1 -1
  187. data/man/man8/puppet-script.8 +1 -1
  188. data/man/man8/puppet-ssl.8 +1 -1
  189. data/man/man8/puppet-status.8 +4 -4
  190. data/man/man8/puppet.8 +2 -2
  191. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +2 -1
  192. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  193. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  194. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  195. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  196. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
  197. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  198. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  199. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  200. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  201. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  202. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  203. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  204. data/spec/fixtures/ssl/ca.pem +57 -35
  205. data/spec/fixtures/ssl/crl.pem +28 -18
  206. data/spec/fixtures/ssl/ec-key.pem +11 -11
  207. data/spec/fixtures/ssl/ec.pem +33 -24
  208. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  209. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  210. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  211. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  212. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  213. data/spec/fixtures/ssl/intermediate.pem +57 -36
  214. data/spec/fixtures/ssl/oid-key.pem +117 -0
  215. data/spec/fixtures/ssl/oid.pem +69 -0
  216. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  217. data/spec/fixtures/ssl/pluto.pem +52 -30
  218. data/spec/fixtures/ssl/request-key.pem +107 -57
  219. data/spec/fixtures/ssl/request.pem +47 -26
  220. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  221. data/spec/fixtures/ssl/revoked.pem +52 -30
  222. data/spec/fixtures/ssl/signed-key.pem +107 -57
  223. data/spec/fixtures/ssl/signed.pem +52 -30
  224. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  225. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  226. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  227. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  228. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  229. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  230. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  231. data/spec/integration/application/agent_spec.rb +141 -37
  232. data/spec/integration/application/filebucket_spec.rb +16 -0
  233. data/spec/integration/application/module_spec.rb +21 -0
  234. data/spec/integration/application/resource_spec.rb +64 -0
  235. data/spec/integration/application/ssl_spec.rb +20 -0
  236. data/spec/integration/configurer_spec.rb +18 -2
  237. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  238. data/spec/integration/indirector/facts/facter_spec.rb +93 -39
  239. data/spec/integration/l10n/compiler_spec.rb +37 -0
  240. data/spec/integration/parser/pcore_resource_spec.rb +10 -0
  241. data/spec/integration/transaction/report_spec.rb +1 -1
  242. data/spec/integration/type/exec_spec.rb +70 -45
  243. data/spec/integration/type/file_spec.rb +2 -2
  244. data/spec/integration/type/package_spec.rb +6 -6
  245. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  246. data/spec/integration/util/windows/process_spec.rb +1 -9
  247. data/spec/lib/puppet/test_ca.rb +7 -2
  248. data/spec/lib/puppet_spec/modules.rb +13 -2
  249. data/spec/lib/puppet_spec/puppetserver.rb +15 -0
  250. data/spec/lib/puppet_spec/settings.rb +1 -0
  251. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  252. data/spec/shared_contexts/l10n.rb +27 -0
  253. data/spec/spec_helper.rb +1 -10
  254. data/spec/unit/application/agent_spec.rb +7 -2
  255. data/spec/unit/application/apply_spec.rb +76 -56
  256. data/spec/unit/application/resource_spec.rb +29 -0
  257. data/spec/unit/configurer/downloader_spec.rb +6 -0
  258. data/spec/unit/configurer_spec.rb +256 -57
  259. data/spec/unit/defaults_spec.rb +1 -0
  260. data/spec/unit/environments_spec.rb +184 -0
  261. data/spec/unit/facter_impl_spec.rb +31 -0
  262. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  263. data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
  264. data/spec/unit/file_serving/configuration_spec.rb +14 -4
  265. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  266. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  267. data/spec/unit/file_system_spec.rb +13 -0
  268. data/spec/unit/functions/assert_type_spec.rb +1 -1
  269. data/spec/unit/functions/empty_spec.rb +10 -0
  270. data/spec/unit/functions/logging_spec.rb +1 -0
  271. data/spec/unit/functions/lookup_spec.rb +64 -0
  272. data/spec/unit/functions/unwrap_spec.rb +8 -0
  273. data/spec/unit/functions4_spec.rb +2 -2
  274. data/spec/unit/gettext/config_spec.rb +12 -0
  275. data/spec/unit/http/client_spec.rb +58 -1
  276. data/spec/unit/http/service/compiler_spec.rb +131 -0
  277. data/spec/unit/indirector/catalog/compiler_spec.rb +101 -10
  278. data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
  279. data/spec/unit/indirector/indirection_spec.rb +10 -3
  280. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  281. data/spec/unit/interface/action_spec.rb +0 -9
  282. data/spec/unit/module_spec.rb +15 -1
  283. data/spec/unit/module_tool/applications/installer_spec.rb +51 -12
  284. data/spec/unit/network/authstore_spec.rb +0 -15
  285. data/spec/unit/network/formats_spec.rb +6 -0
  286. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  287. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  288. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
  289. data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
  290. data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
  291. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  292. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  293. data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
  294. data/spec/unit/provider/package/gem_spec.rb +1 -1
  295. data/spec/unit/provider/package/nim_spec.rb +42 -0
  296. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  297. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  298. data/spec/unit/provider/package/pip_spec.rb +38 -1
  299. data/spec/unit/provider/package/pkg_spec.rb +29 -4
  300. data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
  301. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  302. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  303. data/spec/unit/provider/service/init_spec.rb +1 -0
  304. data/spec/unit/provider/service/launchd_spec.rb +11 -0
  305. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  306. data/spec/unit/provider/service/systemd_spec.rb +43 -9
  307. data/spec/unit/provider/service/windows_spec.rb +202 -0
  308. data/spec/unit/provider/user/aix_spec.rb +100 -0
  309. data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
  310. data/spec/unit/provider/user/useradd_spec.rb +43 -2
  311. data/spec/unit/provider_spec.rb +4 -4
  312. data/spec/unit/puppet_spec.rb +12 -4
  313. data/spec/unit/resource/catalog_spec.rb +14 -1
  314. data/spec/unit/resource_spec.rb +58 -2
  315. data/spec/unit/settings_spec.rb +97 -56
  316. data/spec/unit/ssl/certificate_request_spec.rb +8 -14
  317. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  318. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  319. data/spec/unit/transaction_spec.rb +18 -20
  320. data/spec/unit/type/exec_spec.rb +76 -29
  321. data/spec/unit/type/file/selinux_spec.rb +3 -3
  322. data/spec/unit/type/file/source_spec.rb +4 -4
  323. data/spec/unit/type/service_spec.rb +86 -188
  324. data/spec/unit/type/tidy_spec.rb +24 -7
  325. data/spec/unit/type/user_spec.rb +45 -0
  326. data/spec/unit/type_spec.rb +2 -2
  327. data/spec/unit/util/logging_spec.rb +2 -0
  328. data/spec/unit/util/selinux_spec.rb +87 -16
  329. data/spec/unit/util/windows/sid_spec.rb +39 -4
  330. data/tasks/generate_cert_fixtures.rake +12 -3
  331. data/tasks/parallel.rake +3 -3
  332. metadata +49 -95
  333. data/ext/README.environment +0 -8
  334. data/ext/dbfix.sql +0 -132
  335. data/ext/debian/README.Debian +0 -8
  336. data/ext/debian/README.source +0 -2
  337. data/ext/debian/TODO.Debian +0 -1
  338. data/ext/debian/changelog.erb +0 -1122
  339. data/ext/debian/compat +0 -1
  340. data/ext/debian/control +0 -144
  341. data/ext/debian/copyright +0 -339
  342. data/ext/debian/docs +0 -1
  343. data/ext/debian/fileserver.conf +0 -41
  344. data/ext/debian/puppet-common.dirs +0 -13
  345. data/ext/debian/puppet-common.install +0 -3
  346. data/ext/debian/puppet-common.lintian-overrides +0 -5
  347. data/ext/debian/puppet-common.manpages +0 -28
  348. data/ext/debian/puppet-common.postinst +0 -35
  349. data/ext/debian/puppet-common.postrm +0 -33
  350. data/ext/debian/puppet-el.dirs +0 -1
  351. data/ext/debian/puppet-el.emacsen-install +0 -25
  352. data/ext/debian/puppet-el.emacsen-remove +0 -11
  353. data/ext/debian/puppet-el.emacsen-startup +0 -9
  354. data/ext/debian/puppet-el.install +0 -1
  355. data/ext/debian/puppet-testsuite.install +0 -2
  356. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  357. data/ext/debian/puppet.lintian-overrides +0 -3
  358. data/ext/debian/puppet.logrotate +0 -20
  359. data/ext/debian/puppet.postinst +0 -20
  360. data/ext/debian/puppet.postrm +0 -20
  361. data/ext/debian/puppet.preinst +0 -20
  362. data/ext/debian/puppetmaster-common.install +0 -2
  363. data/ext/debian/puppetmaster-common.manpages +0 -2
  364. data/ext/debian/puppetmaster-common.postinst +0 -6
  365. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  366. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  367. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  368. data/ext/debian/puppetmaster.README.debian +0 -17
  369. data/ext/debian/puppetmaster.default +0 -14
  370. data/ext/debian/puppetmaster.init +0 -137
  371. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  372. data/ext/debian/puppetmaster.postinst +0 -20
  373. data/ext/debian/puppetmaster.postrm +0 -5
  374. data/ext/debian/puppetmaster.preinst +0 -22
  375. data/ext/debian/rules +0 -132
  376. data/ext/debian/source/format +0 -1
  377. data/ext/debian/source/options +0 -1
  378. data/ext/debian/vim-puppet.README.Debian +0 -13
  379. data/ext/debian/vim-puppet.dirs +0 -5
  380. data/ext/debian/vim-puppet.yaml +0 -7
  381. data/ext/debian/watch +0 -2
  382. data/ext/freebsd/puppetd +0 -26
  383. data/ext/freebsd/puppetmasterd +0 -26
  384. data/ext/gentoo/conf.d/puppet +0 -5
  385. data/ext/gentoo/conf.d/puppetmaster +0 -12
  386. data/ext/gentoo/init.d/puppet +0 -38
  387. data/ext/gentoo/init.d/puppetmaster +0 -51
  388. data/ext/gentoo/puppet/fileserver.conf +0 -41
  389. data/ext/ips/puppet-agent +0 -44
  390. data/ext/ips/puppet-master +0 -44
  391. data/ext/ips/puppet.p5m.erb +0 -12
  392. data/ext/ips/puppetagent.xml +0 -42
  393. data/ext/ips/puppetmaster.xml +0 -42
  394. data/ext/ips/rules +0 -19
  395. data/ext/ips/transforms +0 -34
  396. data/ext/ldap/puppet.schema +0 -24
  397. data/ext/logcheck/puppet +0 -23
  398. data/ext/osx/file_mapping.yaml +0 -33
  399. data/ext/osx/postflight.erb +0 -109
  400. data/ext/osx/preflight.erb +0 -52
  401. data/ext/osx/prototype.plist.erb +0 -38
  402. data/ext/redhat/fileserver.conf +0 -41
  403. data/ext/redhat/logrotate +0 -21
  404. data/ext/redhat/puppet.spec.erb +0 -842
  405. data/ext/redhat/server.init +0 -128
  406. data/ext/redhat/server.sysconfig +0 -13
  407. data/ext/solaris/pkginfo +0 -6
  408. data/ext/solaris/smf/puppetd.xml +0 -77
  409. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  410. data/ext/solaris/smf/svc-puppetd +0 -71
  411. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  412. data/ext/suse/puppet.spec +0 -310
  413. data/ext/suse/server.init +0 -173
  414. data/ext/yaml_nodes.rb +0 -105
  415. data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -4,14 +4,22 @@
4
4
  # and the values are arrays of elements in the collection that correspond to the key.
5
5
  Puppet::Functions.create_function(:group_by) do
6
6
  # @param collection A collection of things to group.
7
- # @example Group array of strings by length, results in e.g. { 1 => [a, b], 2 => [ab] }
7
+ # @example Group array of strings by length, results in e.g. `{ 1 => [a, b], 2 => [ab] }`
8
+ # ```puppet
8
9
  # [a, b, ab].group_by |$s| { $s.length }
9
- # @example Group array of strings by length and index, results in e.g. {1 => ['a'], 2 => ['b', 'ab']}
10
+ # ```
11
+ # @example Group array of strings by length and index, results in e.g. `{1 => ['a'], 2 => ['b', 'ab']}`
12
+ # ```puppet
10
13
  # [a, b, ab].group_by |$i, $s| { $i%2 + $s.length }
11
- # @example Group hash iterating by key-value pair, results in e.g. { 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }
14
+ # ```
15
+ # @example Group hash iterating by key-value pair, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
16
+ # ```puppet
12
17
  # { a => [1, 2], b => [1] }.group_by |$kv| { $kv[1].length }
13
- # @example Group hash iterating by key and value, results in e.g. { 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }
14
- # { a => [1, 2], b => [1] }.group_by |$k, $v| { $v.length }
18
+ # ```
19
+ # @example Group hash iterating by key and value, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
20
+ # ```puppet
21
+ # { a => [1, 2], b => [1] }.group_by |$k, $v| { $v.length }
22
+ # ```
15
23
  dispatch :group_by_1 do
16
24
  required_param 'Collection', :collection
17
25
  block_param 'Callable[1,1]', :block
@@ -23,7 +23,7 @@
23
23
  # .lest || { fail("no value for $data[a][b][c]" }
24
24
  # ```
25
25
  #
26
- # Would fail the operation because $data[a][b][c] results in `undef`
26
+ # Would fail the operation because `$data[a][b][c]` results in `undef`
27
27
  # (there is no `b` key in `a`).
28
28
  #
29
29
  # In contrast - this example:
@@ -51,7 +51,7 @@
51
51
  # The following sections show the arguments and conversion rules
52
52
  # per data type built into the Puppet Type System.
53
53
  #
54
- # ### Conversion to Optional[T] and NotUndef[T]
54
+ # ### Conversion to `Optional[T]` and `NotUndef[T]`
55
55
  #
56
56
  # Conversion to these data types is the same as a conversion to the type argument `T`.
57
57
  # In the case of `Optional[T]` it is accepted that the argument to convert may be `undef`.
@@ -85,13 +85,13 @@
85
85
  # * `0` as radix 8.
86
86
  # * All others are decimal.
87
87
  # * Conversion from `String` accepts an optional sign in the string.
88
- # * For hexadecimal (radix 16) conversion an optional leading "0x", or "0X" is accepted.
89
- # * For octal (radix 8) an optional leading "0" is accepted.
90
- # * For binary (radix 2) an optional leading "0b" or "0B" is accepted.
88
+ # * For hexadecimal (radix 16) conversion an optional leading `"0x"`, or `"0X"` is accepted.
89
+ # * For octal (radix 8) an optional leading `"0"` is accepted.
90
+ # * For binary (radix 2) an optional leading `"0b"` or `"0B"` is accepted.
91
91
  # * When `radix` is set to `default`, the conversion is based on the leading.
92
- # characters in the string. A leading "0" for radix 8, a leading "0x", or "0X" for
93
- # radix 16, and leading "0b" or "0B" for binary.
94
- # * Conversion from `Boolean` results in 0 for `false` and 1 for `true`.
92
+ # characters in the string. A leading `"0"` for radix 8, a leading `"0x"`, or `"0X"` for
93
+ # radix 16, and leading `"0b"` or `"0B"` for binary.
94
+ # * Conversion from `Boolean` results in `0` for `false` and `1` for `true`.
95
95
  # * Conversion from `Integer`, `Float`, and `Boolean` ignores the radix.
96
96
  # * `Float` value fractions are truncated (no rounding).
97
97
  # * When `abs` is set to `true`, the result will be an absolute integer.
@@ -119,9 +119,9 @@
119
119
  # ```
120
120
  #
121
121
  # * For an integer, the floating point fraction of `.0` is added to the value.
122
- # * A `Boolean` `true` is converted to 1.0, and a `false` to 0.0
122
+ # * A `Boolean` `true` is converted to `1.0`, and a `false` to `0.0`.
123
123
  # * In `String` format, integer prefixes for hex and binary are understood (but not octal since
124
- # floating point in string format may start with a '0').
124
+ # floating point in string format may start with a `'0'`).
125
125
  # * When `abs` is set to `true`, the result will be an absolute floating point value.
126
126
  #
127
127
  # ### Conversion to Numeric
@@ -139,7 +139,7 @@
139
139
  # * If the value has a decimal period, or if given in scientific notation
140
140
  # (e/E), the result is a `Float`, otherwise the value is an `Integer`. The
141
141
  # conversion from `String` always uses a radix based on the prefix of the string.
142
- # * Conversion from `Boolean` results in 0 for `false` and 1 for `true`.
142
+ # * Conversion from `Boolean` results in `0` for `false` and `1` for `true`.
143
143
  # * When `abs` is set to `true`, the result will be an absolute `Float`or `Integer` value.
144
144
  #
145
145
  # @example Converting to Numeric in different ways
@@ -225,7 +225,7 @@
225
225
  # )
226
226
  # ```
227
227
  #
228
- # The directive consists of a percent (%) character, zero or more flags, optional minimum field width and
228
+ # The directive consists of a percent (`%`) character, zero or more flags, optional minimum field width and
229
229
  # a conversion specifier as follows:
230
230
  # ```
231
231
  # %[Flags][Width]Conversion
@@ -291,7 +291,7 @@
291
291
  # argument is omitted, an array of default formats will be used.
292
292
  #
293
293
  # A third optional timezone argument can be provided. The first argument will then be parsed as if it represents a local time in that
294
- # timezone. The timezone can be any timezone that is recognized when using the '%z' or '%Z' formats, or the word 'current', in which
294
+ # timezone. The timezone can be any timezone that is recognized when using the `'%z'` or `'%Z'` formats, or the word `'current'`, in which
295
295
  # case the current timezone of the evaluating process will be used. The timezone argument is case insensitive.
296
296
  #
297
297
  # The default timezone, when no argument is provided, or when using the keyword `default`, is 'UTC'.
@@ -336,7 +336,7 @@
336
336
  # | 0 | Use zeros for padding
337
337
  # | # | Change names to upper-case or change case of am/pm
338
338
  # | ^ | Use uppercase
339
- # | : | Use colons for %z
339
+ # | : | Use colons for `%z`
340
340
  #
341
341
  # ##### Format directives (names and padding can be altered using flags):
342
342
  #
@@ -345,48 +345,48 @@
345
345
  # | Format | Meaning |
346
346
  # | ------ | ------- |
347
347
  # | Y | Year with century, zero-padded to at least 4 digits |
348
- # | C | year / 100 (rounded down such as 20 in 2009) |
349
- # | y | year % 100 (00..99) |
350
- # | m | Month of the year, zero-padded (01..12) |
351
- # | B | The full month name ("January") |
352
- # | b | The abbreviated month name ("Jan") |
353
- # | h | Equivalent to %b |
354
- # | d | Day of the month, zero-padded (01..31) |
355
- # | e | Day of the month, blank-padded ( 1..31) |
356
- # | j | Day of the year (001..366) |
348
+ # | C | year / 100 (rounded down such as `20` in `2009`) |
349
+ # | y | year % 100 (`00..99`) |
350
+ # | m | Month of the year, zero-padded (`01..12`) |
351
+ # | B | The full month name (`"January"`) |
352
+ # | b | The abbreviated month name (`"Jan"`) |
353
+ # | h | Equivalent to `%b` |
354
+ # | d | Day of the month, zero-padded (`01..31`) |
355
+ # | e | Day of the month, blank-padded (`1..31`) |
356
+ # | j | Day of the year (`001..366`) |
357
357
  #
358
358
  # **Time (Hour, Minute, Second, Subsecond):**
359
359
  #
360
360
  # | Format | Meaning |
361
361
  # | ------ | ------- |
362
- # | H | Hour of the day, 24-hour clock, zero-padded (00..23) |
363
- # | k | Hour of the day, 24-hour clock, blank-padded ( 0..23) |
364
- # | I | Hour of the day, 12-hour clock, zero-padded (01..12) |
365
- # | l | Hour of the day, 12-hour clock, blank-padded ( 1..12) |
366
- # | P | Meridian indicator, lowercase ("am" or "pm") |
367
- # | p | Meridian indicator, uppercase ("AM" or "PM") |
368
- # | M | Minute of the hour (00..59) |
369
- # | S | Second of the minute (00..60) |
370
- # | L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000 |
362
+ # | H | Hour of the day, 24-hour clock, zero-padded (`00..23`) |
363
+ # | k | Hour of the day, 24-hour clock, blank-padded (`0..23`) |
364
+ # | I | Hour of the day, 12-hour clock, zero-padded (`01..12`) |
365
+ # | l | Hour of the day, 12-hour clock, blank-padded (`1..12`) |
366
+ # | P | Meridian indicator, lowercase (`"am"` or `"pm"`) |
367
+ # | p | Meridian indicator, uppercase (`"AM"` or `"PM"`) |
368
+ # | M | Minute of the hour (`00..59`) |
369
+ # | S | Second of the minute (`00..60`) |
370
+ # | L | Millisecond of the second (`000..999`). Digits under millisecond are truncated to not produce 1000 |
371
371
  # | N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified width are truncated to avoid carry up |
372
372
  #
373
373
  # **Time (Hour, Minute, Second, Subsecond):**
374
374
  #
375
375
  # | Format | Meaning |
376
376
  # | ------ | ------- |
377
- # | z | Time zone as hour and minute offset from UTC (e.g. +0900) |
378
- # | :z | hour and minute offset from UTC with a colon (e.g. +09:00) |
379
- # | ::z | hour, minute and second offset from UTC (e.g. +09:00:00) |
377
+ # | z | Time zone as hour and minute offset from UTC (e.g. `+0900`) |
378
+ # | :z | hour and minute offset from UTC with a colon (e.g. `+09:00`) |
379
+ # | ::z | hour, minute and second offset from UTC (e.g. `+09:00:00`) |
380
380
  # | Z | Abbreviated time zone name or similar information. (OS dependent) |
381
381
  #
382
382
  # **Weekday:**
383
383
  #
384
384
  # | Format | Meaning |
385
385
  # | ------ | ------- |
386
- # | A | The full weekday name ("Sunday") |
387
- # | a | The abbreviated name ("Sun") |
388
- # | u | Day of the week (Monday is 1, 1..7) |
389
- # | w | Day of the week (Sunday is 0, 0..6) |
386
+ # | A | The full weekday name (`"Sunday"`) |
387
+ # | a | The abbreviated name (`"Sun"`) |
388
+ # | u | Day of the week (Monday is `1`, `1..7`) |
389
+ # | w | Day of the week (Sunday is `0`, `0..6`) |
390
390
  #
391
391
  # **ISO 8601 week-based year and week number:**
392
392
  #
@@ -397,8 +397,8 @@
397
397
  # | Format | Meaning |
398
398
  # | ------ | ------- |
399
399
  # | G | The week-based year |
400
- # | g | The last 2 digits of the week-based year (00..99) |
401
- # | V | Week number of the week-based year (01..53) |
400
+ # | g | The last 2 digits of the week-based year (`00..99`) |
401
+ # | V | Week number of the week-based year (`01..53`) |
402
402
  #
403
403
  # **Week number:**
404
404
  #
@@ -407,8 +407,8 @@
407
407
  #
408
408
  # | Format | Meaning |
409
409
  # | ------ | ------- |
410
- # | U | Week number of the year. The week starts with Sunday. (00..53) |
411
- # | W | Week number of the year. The week starts with Monday. (00..53) |
410
+ # | U | Week number of the year. The week starts with Sunday. (`00..53`) |
411
+ # | W | Week number of the year. The week starts with Monday. (`00..53`) |
412
412
  #
413
413
  # **Seconds since the Epoch:**
414
414
  #
@@ -419,23 +419,23 @@
419
419
  #
420
420
  # | Format | Meaning |
421
421
  # | ------ | ------- |
422
- # | n | Newline character (\n) |
423
- # | t | Tab character (\t) |
424
- # | % | Literal "%" character |
422
+ # | n | Newline character (`\n`) |
423
+ # | t | Tab character (`\t`) |
424
+ # | % | Literal `%` character |
425
425
  #
426
426
  # **Combination:**
427
427
  #
428
428
  # | Format | Meaning |
429
429
  # | ------ | ------- |
430
- # | c | date and time (%a %b %e %T %Y) |
431
- # | D | Date (%m/%d/%y) |
432
- # | F | The ISO 8601 date format (%Y-%m-%d) |
433
- # | v | VMS date (%e-%^b-%4Y) |
434
- # | x | Same as %D |
435
- # | X | Same as %T |
436
- # | r | 12-hour time (%I:%M:%S %p) |
437
- # | R | 24-hour time (%H:%M) |
438
- # | T | 24-hour time (%H:%M:%S) |
430
+ # | c | date and time (`%a %b %e %T %Y`) |
431
+ # | D | Date (`%m/%d/%y`) |
432
+ # | F | The ISO 8601 date format (`%Y-%m-%d`) |
433
+ # | v | VMS date (`%e-%^b-%4Y`) |
434
+ # | x | Same as `%D` |
435
+ # | X | Same as `%T` |
436
+ # | r | 12-hour time (`%I:%M:%S %p`) |
437
+ # | R | 24-hour time (`%H:%M`) |
438
+ # | T | 24-hour time (`%H:%M:%S`) |
439
439
  #
440
440
  # The default array contains the following patterns:
441
441
  #
@@ -489,7 +489,7 @@
489
489
  # The mapping from data type to format is referred to as the *format map*. This map
490
490
  # allows different formatting depending on type.
491
491
  #
492
- # @example Positive Integers in Hexadecimal prefixed with '0x', negative in Decimal
492
+ # @example Positive Integers in Hexadecimal prefixed with `'0x'`, negative in Decimal
493
493
  #
494
494
  # ```puppet
495
495
  # $format_map = {
@@ -578,13 +578,13 @@
578
578
  #
579
579
  # | Format | Integer Formats
580
580
  # | ------ | ---------------
581
- # | d | Decimal, negative values produces leading '-'.
582
- # | x X | Hexadecimal in lower or upper case. Uses ..f/..F for negative values unless + is also used. A `#` adds prefix 0x/0X.
583
- # | o | Octal. Uses ..0 for negative values unless `+` is also used. A `#` adds prefix 0.
584
- # | b B | Binary with prefix 'b' or 'B'. Uses ..1/..1 for negative values unless `+` is also used.
585
- # | c | Numeric value representing a Unicode value, result is a one unicode character string, quoted if alternative flag # is used
586
- # | s | Same as d, or d in quotes if alternative flag # is used.
587
- # | p | Same as d.
581
+ # | d | Decimal, negative values produces leading `-`.
582
+ # | x X | Hexadecimal in lower or upper case. Uses `..f/..F` for negative values unless `+` is also used. A `#` adds prefix `0x/0X`.
583
+ # | o | Octal. Uses `..0` for negative values unless `+` is also used. A `#` adds prefix `0`.
584
+ # | b B | Binary with prefix `b` or `B`. Uses `..1/..1` for negative values unless `+` is also used.
585
+ # | c | Numeric value representing a Unicode value, result is a one unicode character string, quoted if alternative flag `#` is used
586
+ # | s | Same as `d`, or `d` in quotes if alternative flag `#` is used.
587
+ # | p | Same as `d`.
588
588
  # | eEfgGaA | Converts integer to float and formats using the floating point rules.
589
589
  #
590
590
  # Defaults to `d`.
@@ -594,11 +594,11 @@
594
594
  # | Format | Float formats
595
595
  # | ------ | -------------
596
596
  # | f | Floating point in non exponential notation.
597
- # | e E | Exponential notation with 'e' or 'E'.
598
- # | g G | Conditional exponential with 'e' or 'E' if exponent < -4 or >= the precision.
599
- # | a A | Hexadecimal exponential form, using 'x'/'X' as prefix and 'p'/'P' before exponent.
600
- # | s | Converted to string using format p, then applying string formatting rule, alternate form # quotes result.
601
- # | p | Same as f format with minimum significant number of fractional digits, prec has no effect.
597
+ # | e E | Exponential notation with `e` or `E`.
598
+ # | g G | Conditional exponential with `e` or `E` if exponent `< -4` or `>=` the precision.
599
+ # | a A | Hexadecimal exponential form, using `x`/`X` as prefix and `p`/`P` before exponent.
600
+ # | s | Converted to string using format `p`, then applying string formatting rule, alternate form `#`` quotes result.
601
+ # | p | Same as `f` format with minimum significant number of fractional digits, prec has no effect.
602
602
  # | dxXobBc | Converts float to integer and formats using the integer rules.
603
603
  #
604
604
  # Defaults to `p`.
@@ -621,12 +621,12 @@
621
621
  #
622
622
  # | Format | Boolean Formats
623
623
  # | ---- | -------------------
624
- # | t T | String 'true'/'false' or 'True'/'False', first char if alternate form is used (i.e. 't'/'f' or 'T'/'F').
625
- # | y Y | String 'yes'/'no', 'Yes'/'No', 'y'/'n' or 'Y'/'N' if alternative flag `#` is used.
626
- # | dxXobB | Numeric value 0/1 in accordance with the given format which must be valid integer format.
627
- # | eEfgGaA | Numeric value 0.0/1.0 in accordance with the given float format and flags.
628
- # | s | String 'true' / 'false'.
629
- # | p | String 'true' / 'false'.
624
+ # | t T | String `'true'/'false'` or `'True'/'False'`, first char if alternate form is used (i.e. `'t'/'f'` or `'T'/'F'`).
625
+ # | y Y | String `'yes'/'no'`, `'Yes'/'No'`, `'y'/'n'` or `'Y'/'N'` if alternative flag `#` is used.
626
+ # | dxXobB | Numeric value `0/1` in accordance with the given format which must be valid integer format.
627
+ # | eEfgGaA | Numeric value `0.0/1.0` in accordance with the given float format and flags.
628
+ # | s | String `'true'` / `'false'`.
629
+ # | p | String `'true'` / `'false'`.
630
630
  #
631
631
  # **Regexp to String**
632
632
  #
@@ -640,33 +640,33 @@
640
640
  # | Format | Undef formats
641
641
  # | ------ | -------------
642
642
  # | s | Empty string, or quoted empty string if alternative flag `#` is used.
643
- # | p | String 'undef', or quoted '"undef"' if alternative flag `#` is used.
644
- # | n | String 'nil', or 'null' if alternative flag `#` is used.
645
- # | dxXobB | String 'NaN'.
646
- # | eEfgGaA | String 'NaN'.
647
- # | v | String 'n/a'.
648
- # | V | String 'N/A'.
649
- # | u | String 'undef', or 'undefined' if alternative `#` flag is used.
643
+ # | p | String `'undef'`, or quoted `'"undef"'` if alternative flag `#` is used.
644
+ # | n | String `'nil'`, or `'null'` if alternative flag `#` is used.
645
+ # | dxXobB | String `'NaN'`.
646
+ # | eEfgGaA | String `'NaN'`.
647
+ # | v | String `'n/a'`.
648
+ # | V | String `'N/A'`.
649
+ # | u | String `'undef'`, or `'undefined'` if alternative `#` flag is used.
650
650
  #
651
651
  # **Default value to String**
652
652
  #
653
653
  # | Format | Default formats
654
654
  # | ------ | ---------------
655
- # | d D | String 'default' or 'Default', alternative form `#` causes value to be quoted.
656
- # | s | Same as d.
657
- # | p | Same as d.
655
+ # | d D | String `'default'` or `'Default'`, alternative form `#` causes value to be quoted.
656
+ # | s | Same as `d`.
657
+ # | p | Same as `d`.
658
658
  #
659
659
  # **Binary value to String**
660
660
  #
661
661
  # | Format | Default formats
662
662
  # | ------ | ---------------
663
663
  # | s | binary as unquoted UTF-8 characters (errors if byte sequence is invalid UTF-8). Alternate form escapes non ascii bytes.
664
- # | p | 'Binary("<base64strict>")'
665
- # | b | '<base64>' - base64 string with newlines inserted
666
- # | B | '<base64strict>' - base64 strict string (without newlines inserted)
667
- # | u | '<base64urlsafe>' - base64 urlsafe string
668
- # | t | 'Binary' - outputs the name of the type only
669
- # | T | 'BINARY' - output the name of the type in all caps only
664
+ # | p | `'Binary("<base64strict>")'`
665
+ # | b | `'<base64>'` - base64 string with newlines inserted
666
+ # | B | `'<base64strict>'` - base64 strict string (without newlines inserted)
667
+ # | u | `'<base64urlsafe>'` - base64 urlsafe string
668
+ # | t | `'Binary'` - outputs the name of the type only
669
+ # | T | `'BINARY'` - output the name of the type in all caps only
670
670
  #
671
671
  # * The alternate form flag `#` will quote the binary or base64 text output.
672
672
  # * The format `%#s` allows invalid UTF-8 characters and outputs all non ascii bytes
@@ -678,8 +678,8 @@
678
678
  # | Format | Array/Tuple Formats
679
679
  # | ------ | -------------
680
680
  # | a | Formats with `[ ]` delimiters and `,`, alternate form `#` indents nested arrays/hashes.
681
- # | s | Same as a.
682
- # | p | Same as a.
681
+ # | s | Same as `a`.
682
+ # | p | Same as `a`.
683
683
  #
684
684
  # See "Flags" `<[({\|` for formatting of delimiters, and "Additional parameters for containers; Array and Hash" for
685
685
  # more information about options.
@@ -695,7 +695,7 @@
695
695
  # | h | Formats with `{ }` delimiters, `,` element separator and ` => ` inner element separator unless overridden by flags.
696
696
  # | s | Same as h.
697
697
  # | p | Same as h.
698
- # | a | Converts the hash to an array of [k,v] tuples and formats it using array rule(s).
698
+ # | a | Converts the hash to an array of `[k,v]` tuples and formats it using array rule(s).
699
699
  #
700
700
  # See "Flags" `<[({\|` for formatting of delimiters, and "Additional parameters for containers; Array and Hash" for
701
701
  # more information about options.
@@ -714,18 +714,18 @@
714
714
  # | Flag | Effect
715
715
  # | ------ | ------
716
716
  # | (space) | A space instead of `+` for numeric output (`-` is shown), for containers skips delimiters.
717
- # | # | Alternate format; prefix 0x/0x, 0 (octal) and 0b/0B for binary, Floats force decimal '.'. For g/G keep trailing 0.
718
- # | + | Show sign +/- depending on value's sign, changes x, X, o, b, B format to not use 2's complement form.
717
+ # | # | Alternate format; prefix `0x/0x`, `0` (octal) and `0b/0B` for binary, Floats force decimal '.'. For g/G keep trailing `0`.
718
+ # | + | Show sign `+/-` depending on value's sign, changes `x`, `X`, `o`, `b`, `B` format to not use 2's complement form.
719
719
  # | - | Left justify the value in the given width.
720
- # | 0 | Pad with 0 instead of space for widths larger than value.
721
- # | <[({\| | Defines an enclosing pair <> [] () {} or \| \| when used with a container type.
720
+ # | 0 | Pad with `0` instead of space for widths larger than value.
721
+ # | <[({\| | Defines an enclosing pair `<> [] () {} or \| \|` when used with a container type.
722
722
  #
723
723
  # ### Conversion to Boolean
724
724
  #
725
725
  # Accepts a single value as argument:
726
726
  #
727
- # * Float 0.0 is `false`, all other float values are `true`
728
- # * Integer 0 is `false`, all other integer values are `true`
727
+ # * Float `0.0` is `false`, all other float values are `true`
728
+ # * Integer `0` is `false`, all other integer values are `true`
729
729
  # * Strings
730
730
  # * `true` if 'true', 'yes', 'y' (case independent compare)
731
731
  # * `false` if 'false', 'no', 'n' (case independent compare)
@@ -840,7 +840,7 @@
840
840
  # function SemVer.new(SemVerHash $hash_args)
841
841
  # ```
842
842
  #
843
- # @example SemVer and SemVerRange usage
843
+ # @example `SemVer` and `SemVerRange` usage
844
844
  #
845
845
  # ```puppet
846
846
  # # As a type, SemVer can describe disjunct ranges which versions can be
@@ -856,7 +856,7 @@
856
856
  # notice(SemVer('3.4.5') =~ $t) # true
857
857
  # ```
858
858
  #
859
- # ### Creating a SemVerRange
859
+ # ### Creating a `SemVerRange`
860
860
  #
861
861
  # A `SemVerRange` object represents a range of `SemVer`. It can be created from
862
862
  # a `String`, or from two `SemVer` instances, where either end can be given as
@@ -4,19 +4,19 @@
4
4
  # the second containing the rest.
5
5
  Puppet::Functions.create_function(:partition) do
6
6
  # @param collection A collection of things to partition.
7
- # @example Partition array of empty strings, results in e.g. [[''], [b, c]]
7
+ # @example Partition array of empty strings, results in e.g. `[[''], [b, c]]`
8
8
  # ```puppet
9
9
  # ['', b, c].partition |$s| { $s.empty }
10
10
  # ```
11
- # @example Partition array of strings using index, results in e.g. [['', 'ab'], ['b']]
11
+ # @example Partition array of strings using index, results in e.g. `[['', 'ab'], ['b']]`
12
12
  # ```puppet
13
13
  # ['', b, ab].partition |$i, $s| { $i == 2 or $s.empty }
14
14
  # ```
15
- # @example Partition hash of strings by key-value pair, results in e.g. [[['b', []]], [['a', [1, 2]]]]
15
+ # @example Partition hash of strings by key-value pair, results in e.g. `[[['b', []]], [['a', [1, 2]]]]`
16
16
  # ```puppet
17
17
  # { a => [1, 2], b => [] }.partition |$kv| { $kv[1].empty }
18
18
  # ```
19
- # @example Partition hash of strings by key and value, results in e.g. [[['b', []]], [['a', [1, 2]]]]
19
+ # @example Partition hash of strings by key and value, results in e.g. `[[['b', []]], [['a', [1, 2]]]]`
20
20
  # ```puppet
21
21
  # { a => [1, 2], b => [] }.partition |$k, $v| { $v.empty }
22
22
  # ```
@@ -4,13 +4,13 @@
4
4
  # The relationship metaparameters work well for specifying relationships
5
5
  # between individual resources, but they can be clumsy for specifying
6
6
  # relationships between classes. This function is a superset of the
7
- # 'include' function, adding a class relationship so that the requiring
7
+ # `include` function, adding a class relationship so that the requiring
8
8
  # class depends on the required class.
9
9
  #
10
- # Warning: using require in place of include can lead to unwanted dependency cycles.
10
+ # Warning: using `require` in place of `include` can lead to unwanted dependency cycles.
11
11
  #
12
- # For instance the following manifest, with 'require' instead of 'include' would produce a nasty
13
- # dependence cycle, because notify imposes a before between File[/foo] and Service[foo]:
12
+ # For instance, the following manifest, with `require` instead of `include`, would produce a nasty
13
+ # dependence cycle, because `notify` imposes a `before` between `File[/foo]` and `Service[foo]`:
14
14
  #
15
15
  # ```puppet
16
16
  # class myservice {
@@ -32,7 +32,7 @@
32
32
  # resource and relationship expressions.
33
33
  #
34
34
  # - Since 4.0.0 Class and Resource types, absolute names
35
- # - Since 4.7.0 Returns an Array[Type[Class]] with references to the required classes
35
+ # - Since 4.7.0 Returns an `Array[Type[Class]]` with references to the required classes
36
36
  #
37
37
  Puppet::Functions.create_function(:require, Puppet::Functions::InternalFunction) do
38
38
  dispatch :require_impl do
@@ -2,9 +2,9 @@
2
2
  # Please note: This function is based on Ruby String comparison and as such may not be entirely UTF8 compatible.
3
3
  # To ensure compatibility please use this function with Ruby 2.4.0 or greater - https://bugs.ruby-lang.org/issues/10085.
4
4
  #
5
- # This function is compatible with the function sort() in stdlib.
5
+ # This function is compatible with the function `sort()` in `stdlib`.
6
6
  # * Comparison of characters in a string always uses a system locale and may not be what is expected for a particular locale
7
- # * Sorting is based on Ruby's <=> operator unless a lambda is given that performs the comparison.
7
+ # * Sorting is based on Ruby's `<=>` operator unless a lambda is given that performs the comparison.
8
8
  # * comparison of strings is case dependent (use lambda with `compare($a,$b)` to ignore case)
9
9
  # * comparison of mixed data types raises an error (if there is the need to sort mixed data types use a lambda)
10
10
  #
@@ -49,7 +49,7 @@
49
49
  # }
50
50
  # })
51
51
  # ```
52
- # Would notice [2,3,'a','b']
52
+ # Would notice `[2,3,'a','b']`
53
53
  #
54
54
  # @since 6.0.0 - supporting a lambda to do compare
55
55
  #
@@ -105,6 +105,7 @@
105
105
  # **Seconds since the Epoch:**
106
106
  #
107
107
  # | Format | Meaning |
108
+ # | ------ | ------- |
108
109
  # | s | Number of seconds since 1970-01-01 00:00:00 UTC. |
109
110
  #
110
111
  # **Literal string:**
@@ -6,13 +6,13 @@
6
6
  #
7
7
  # 1. An `Array`, `Hash`, `Iterator`, or `Object` that the function will iterate over.
8
8
  # 2. An optional hash with the options:
9
- # * `include_containers` => `Optional[Boolean]` # default true - if containers should be given to the lambda
10
- # * `include_values` => `Optional[Boolean]` # default true - if non containers should be given to the lambda
11
- # * `include_root` => `Optional[Boolean]` # default true - if the root container should be given to the lambda
9
+ # * `include_containers` => `Optional[Boolean]` # default `true` - if containers should be given to the lambda
10
+ # * `include_values` => `Optional[Boolean]` # default `true` - if non containers should be given to the lambda
11
+ # * `include_root` => `Optional[Boolean]` # default `true` - if the root container should be given to the lambda
12
12
  # * `container_type` => `Optional[Type[Variant[Array, Hash, Object]]]` # a type that determines what a container is - can only
13
13
  # be set to a type that matches the default `Variant[Array, Hash, Object]`.
14
14
  # * `order` => `Enum[depth_first, breadth_first]` # default ´depth_first`, the order in which elements are visited
15
- # * `include_refs` => Optional[Boolean] # default `false`, if attributes in objects marked as bing of `reference` kind
15
+ # * `include_refs` => `Optional[Boolean]` # default `false`, if attributes in objects marked as bing of `reference` kind
16
16
  # should be included.
17
17
  # 3. An optional lambda, which the function calls for each element in the first argument. It must
18
18
  # accept one or two arguments; either `$path`, and `$value`, or just `$value`.
@@ -46,14 +46,12 @@
46
46
  # [1, [2, 3], 4]
47
47
  # ```
48
48
  #
49
- # Results in:
50
- #
51
- # If containers are skipped:
49
+ # If containers are skipped, results in:
52
50
  #
53
51
  # * `depth_first` order `1`, `2`, `3`, `4`
54
52
  # * `breadth_first` order `1`, `4`,`2`, `3`
55
53
  #
56
- # If containers and root, are included:
54
+ # If containers and root are included, results in:
57
55
  #
58
56
  # * `depth_first` order `[1, [2, 3], 4]`, `1`, `[2, 3]`, `2`, `3`, `4`
59
57
  # * `breadth_first` order `[1, [2, 3], 4]`, `1`, `[2, 3]`, `4`, `2`, `3`
@@ -96,7 +94,7 @@
96
94
  #
97
95
  # Any Puppet Type system data type can be used to filter what is
98
96
  # considered to be a container, but it must be a narrower type than one of
99
- # the default Array, Hash, Object types - for example it is not possible to make a
97
+ # the default `Array`, `Hash`, `Object` types - for example it is not possible to make a
100
98
  # `String` be a container type.
101
99
  #
102
100
  # @example Only `Array` as container type
@@ -35,10 +35,10 @@
35
35
  #
36
36
  # Would notice the four values:
37
37
  #
38
- # 1. 'Array[Numeric]'
39
- # 2. 'Array[Numeric, 2, 2]'
40
- # 3. 'Tuple[Float[3.14], Integer[42,42]]]'
41
- # 4. 'Tuple[Float[3.14], Integer[42,42]]]'
38
+ # 1. `Array[Numeric]`
39
+ # 2. `Array[Numeric, 2, 2]`
40
+ # 3. `Tuple[Float[3.14], Integer[42,42]]]`
41
+ # 4. `Tuple[Float[3.14], Integer[42,42]]]`
42
42
  #
43
43
  # @since 4.4.0
44
44
  #
@@ -1,4 +1,5 @@
1
1
  # Unwraps a Sensitive value and returns the wrapped object.
2
+ # Returns the Value itself, if it is not Sensitive.
2
3
  #
3
4
  # @example Usage of unwrap
4
5
  #
@@ -28,12 +29,17 @@
28
29
  # @since 4.0.0
29
30
  #
30
31
  Puppet::Functions.create_function(:unwrap) do
31
- dispatch :unwrap do
32
+ dispatch :from_sensitive do
32
33
  param 'Sensitive', :arg
33
34
  optional_block_param
34
35
  end
35
36
 
36
- def unwrap(arg)
37
+ dispatch :from_any do
38
+ param 'Any', :arg
39
+ optional_block_param
40
+ end
41
+
42
+ def from_sensitive(arg)
37
43
  unwrapped = arg.unwrap
38
44
  if block_given?
39
45
  yield(unwrapped)
@@ -41,4 +47,13 @@ Puppet::Functions.create_function(:unwrap) do
41
47
  unwrapped
42
48
  end
43
49
  end
50
+
51
+ def from_any(arg)
52
+ unwrapped = arg
53
+ if block_given?
54
+ yield(unwrapped)
55
+ else
56
+ unwrapped
57
+ end
58
+ end
44
59
  end
@@ -22,14 +22,14 @@
22
22
  # 'hello'.upcase()
23
23
  # upcase('hello')
24
24
  # ```
25
- # Would both result in "HELLO"
25
+ # Would both result in `"HELLO"`
26
26
  #
27
27
  # @example Converting an Array to upper case
28
28
  # ```puppet
29
29
  # ['a', 'b'].upcase()
30
30
  # upcase(['a', 'b'])
31
31
  # ```
32
- # Would both result in ['A', 'B']
32
+ # Would both result in `['A', 'B']`
33
33
  #
34
34
  # @example Converting a Hash to upper case
35
35
  # ```puppet
@@ -303,7 +303,7 @@ class Puppet::HTTP::Client
303
303
 
304
304
  while !done do
305
305
  connect(request.uri, options: options) do |http|
306
- apply_auth(request, basic_auth)
306
+ apply_auth(request, basic_auth) if redirects.zero?
307
307
 
308
308
  # don't call return within the `request` block
309
309
  http.request(request) do |nethttp|
@@ -57,6 +57,11 @@ class Puppet::HTTP::Redirector
57
57
  new_request = request.class.new(url)
58
58
  new_request.body = request.body
59
59
  request.each do |header, value|
60
+ unless Puppet[:location_trusted]
61
+ # skip adding potentially sensitive header to other hosts
62
+ next if header.casecmp('Authorization').zero? && request.uri.host.casecmp(location.host) != 0
63
+ next if header.casecmp('Cookie').zero? && request.uri.host.casecmp(location.host) != 0
64
+ end
60
65
  new_request[header] = value
61
66
  end
62
67