openvox 7.37.1 → 8.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1086) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -3
  3. data/Gemfile +17 -12
  4. data/README.md +25 -30
  5. data/Rakefile +43 -33
  6. data/bin/puppet +1 -0
  7. data/examples/hiera/README.md +68 -57
  8. data/examples/hiera/data/common.yaml +12 -0
  9. data/examples/hiera/data/dc1.yaml +6 -0
  10. data/examples/hiera/hiera.yaml +15 -0
  11. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  12. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  13. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  14. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  15. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  16. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  17. data/examples/hiera/site.pp +1 -1
  18. data/ext/build_defaults.yaml +1 -1
  19. data/ext/windows/service/daemon.rb +54 -60
  20. data/install.rb +21 -92
  21. data/lib/hiera/puppet_function.rb +8 -6
  22. data/lib/hiera/scope.rb +15 -13
  23. data/lib/hiera_puppet.rb +4 -6
  24. data/lib/puppet/agent/disabler.rb +5 -3
  25. data/lib/puppet/agent/locker.rb +2 -2
  26. data/lib/puppet/agent.rb +6 -4
  27. data/lib/puppet/application/agent.rb +305 -301
  28. data/lib/puppet/application/apply.rb +124 -117
  29. data/lib/puppet/application/catalog.rb +2 -0
  30. data/lib/puppet/application/config.rb +2 -0
  31. data/lib/puppet/application/describe.rb +50 -48
  32. data/lib/puppet/application/device.rb +224 -223
  33. data/lib/puppet/application/doc.rb +57 -58
  34. data/lib/puppet/application/epp.rb +2 -0
  35. data/lib/puppet/application/face_base.rb +18 -17
  36. data/lib/puppet/application/facts.rb +2 -0
  37. data/lib/puppet/application/filebucket.rb +174 -168
  38. data/lib/puppet/application/generate.rb +3 -1
  39. data/lib/puppet/application/help.rb +2 -0
  40. data/lib/puppet/application/indirection_base.rb +2 -0
  41. data/lib/puppet/application/lookup.rb +181 -181
  42. data/lib/puppet/application/module.rb +2 -0
  43. data/lib/puppet/application/node.rb +2 -0
  44. data/lib/puppet/application/parser.rb +2 -0
  45. data/lib/puppet/application/plugin.rb +2 -0
  46. data/lib/puppet/application/report.rb +2 -0
  47. data/lib/puppet/application/resource.rb +106 -96
  48. data/lib/puppet/application/script.rb +76 -74
  49. data/lib/puppet/application/ssl.rb +100 -92
  50. data/lib/puppet/application.rb +32 -32
  51. data/lib/puppet/application_support.rb +3 -2
  52. data/lib/puppet/coercion.rb +5 -3
  53. data/lib/puppet/compilable_resource_type.rb +4 -2
  54. data/lib/puppet/concurrent/lock.rb +2 -3
  55. data/lib/puppet/concurrent/synchronized.rb +2 -2
  56. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  57. data/lib/puppet/concurrent.rb +2 -0
  58. data/lib/puppet/configurer/downloader.rb +11 -5
  59. data/lib/puppet/configurer/fact_handler.rb +17 -16
  60. data/lib/puppet/configurer/plugin_handler.rb +2 -0
  61. data/lib/puppet/configurer.rb +40 -36
  62. data/lib/puppet/confine/any.rb +3 -1
  63. data/lib/puppet/confine/boolean.rb +3 -1
  64. data/lib/puppet/confine/exists.rb +3 -1
  65. data/lib/puppet/confine/false.rb +3 -1
  66. data/lib/puppet/confine/feature.rb +3 -2
  67. data/lib/puppet/confine/true.rb +3 -1
  68. data/lib/puppet/confine/variable.rb +4 -2
  69. data/lib/puppet/confine.rb +5 -2
  70. data/lib/puppet/confine_collection.rb +6 -3
  71. data/lib/puppet/confiner.rb +5 -3
  72. data/lib/puppet/context/trusted_information.rb +12 -10
  73. data/lib/puppet/context.rb +2 -0
  74. data/lib/puppet/daemon.rb +26 -10
  75. data/lib/puppet/data_binding.rb +3 -1
  76. data/lib/puppet/datatypes/error.rb +3 -1
  77. data/lib/puppet/datatypes/impl/error.rb +2 -0
  78. data/lib/puppet/datatypes.rb +12 -7
  79. data/lib/puppet/defaults.rb +164 -125
  80. data/lib/puppet/environments.rb +13 -15
  81. data/lib/puppet/error.rb +19 -15
  82. data/lib/puppet/etc.rb +10 -5
  83. data/lib/puppet/external/dot.rb +65 -75
  84. data/lib/puppet/face/catalog/select.rb +4 -2
  85. data/lib/puppet/face/catalog.rb +7 -5
  86. data/lib/puppet/face/config.rb +30 -31
  87. data/lib/puppet/face/epp.rb +25 -26
  88. data/lib/puppet/face/facts.rb +8 -6
  89. data/lib/puppet/face/generate.rb +5 -2
  90. data/lib/puppet/face/help/action.erb +0 -1
  91. data/lib/puppet/face/help/face.erb +0 -1
  92. data/lib/puppet/face/help/global.erb +1 -1
  93. data/lib/puppet/face/help.rb +80 -62
  94. data/lib/puppet/face/module/changes.rb +4 -3
  95. data/lib/puppet/face/module/install.rb +7 -4
  96. data/lib/puppet/face/module/list.rb +52 -53
  97. data/lib/puppet/face/module/uninstall.rb +2 -0
  98. data/lib/puppet/face/module/upgrade.rb +5 -3
  99. data/lib/puppet/face/module.rb +3 -1
  100. data/lib/puppet/face/node/clean.rb +4 -2
  101. data/lib/puppet/face/node.rb +5 -3
  102. data/lib/puppet/face/parser.rb +18 -19
  103. data/lib/puppet/face/plugin.rb +10 -8
  104. data/lib/puppet/face/report.rb +10 -10
  105. data/lib/puppet/face/resource.rb +2 -0
  106. data/lib/puppet/face.rb +2 -0
  107. data/lib/puppet/facter_impl.rb +1 -1
  108. data/lib/puppet/feature/base.rb +13 -13
  109. data/lib/puppet/feature/bolt.rb +2 -0
  110. data/lib/puppet/feature/cfpropertylist.rb +2 -0
  111. data/lib/puppet/feature/eventlog.rb +2 -0
  112. data/lib/puppet/feature/hiera_eyaml.rb +2 -0
  113. data/lib/puppet/feature/hocon.rb +2 -0
  114. data/lib/puppet/feature/libuser.rb +5 -3
  115. data/lib/puppet/feature/msgpack.rb +2 -0
  116. data/lib/puppet/feature/pe_license.rb +4 -2
  117. data/lib/puppet/feature/pson.rb +6 -0
  118. data/lib/puppet/feature/selinux.rb +2 -0
  119. data/lib/puppet/feature/ssh.rb +3 -1
  120. data/lib/puppet/feature/telnet.rb +3 -7
  121. data/lib/puppet/feature/zlib.rb +3 -1
  122. data/lib/puppet/ffi/posix/constants.rb +3 -1
  123. data/lib/puppet/ffi/posix/functions.rb +2 -1
  124. data/lib/puppet/ffi/posix.rb +2 -0
  125. data/lib/puppet/ffi/windows/api_types.rb +3 -1
  126. data/lib/puppet/ffi/windows/constants.rb +80 -78
  127. data/lib/puppet/ffi/windows/functions.rb +76 -75
  128. data/lib/puppet/ffi/windows/structs.rb +6 -5
  129. data/lib/puppet/ffi/windows.rb +2 -0
  130. data/lib/puppet/file_bucket/dipper.rb +20 -11
  131. data/lib/puppet/file_bucket/file.rb +8 -6
  132. data/lib/puppet/file_bucket.rb +2 -0
  133. data/lib/puppet/file_serving/base.rb +17 -9
  134. data/lib/puppet/file_serving/configuration/parser.rb +13 -10
  135. data/lib/puppet/file_serving/configuration.rb +10 -7
  136. data/lib/puppet/file_serving/content.rb +2 -0
  137. data/lib/puppet/file_serving/fileset.rb +23 -19
  138. data/lib/puppet/file_serving/http_metadata.rb +3 -4
  139. data/lib/puppet/file_serving/metadata.rb +26 -23
  140. data/lib/puppet/file_serving/mount/file.rb +15 -11
  141. data/lib/puppet/file_serving/mount/locales.rb +5 -5
  142. data/lib/puppet/file_serving/mount/modules.rb +3 -0
  143. data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
  144. data/lib/puppet/file_serving/mount/plugins.rb +5 -5
  145. data/lib/puppet/file_serving/mount/scripts.rb +3 -0
  146. data/lib/puppet/file_serving/mount/tasks.rb +3 -0
  147. data/lib/puppet/file_serving/mount.rb +4 -1
  148. data/lib/puppet/file_serving/terminus_helper.rb +2 -0
  149. data/lib/puppet/file_serving/terminus_selector.rb +3 -1
  150. data/lib/puppet/file_serving.rb +2 -0
  151. data/lib/puppet/file_system/file_impl.rb +9 -8
  152. data/lib/puppet/file_system/jruby.rb +2 -0
  153. data/lib/puppet/file_system/memory_file.rb +3 -0
  154. data/lib/puppet/file_system/memory_impl.rb +5 -1
  155. data/lib/puppet/file_system/path_pattern.rb +4 -2
  156. data/lib/puppet/file_system/posix.rb +7 -2
  157. data/lib/puppet/file_system/uniquefile.rb +33 -31
  158. data/lib/puppet/file_system/windows.rb +33 -22
  159. data/lib/puppet/file_system.rb +5 -3
  160. data/lib/puppet/forge/cache.rb +4 -3
  161. data/lib/puppet/forge/errors.rb +3 -4
  162. data/lib/puppet/forge/repository.rb +6 -3
  163. data/lib/puppet/forge.rb +20 -22
  164. data/lib/puppet/functions/abs.rb +7 -4
  165. data/lib/puppet/functions/alert.rb +2 -0
  166. data/lib/puppet/functions/all.rb +3 -1
  167. data/lib/puppet/functions/annotate.rb +2 -0
  168. data/lib/puppet/functions/any.rb +3 -1
  169. data/lib/puppet/functions/assert_type.rb +5 -2
  170. data/lib/puppet/functions/binary_file.rb +4 -1
  171. data/lib/puppet/functions/break.rb +4 -2
  172. data/lib/puppet/functions/call.rb +2 -1
  173. data/lib/puppet/functions/camelcase.rb +4 -3
  174. data/lib/puppet/functions/capitalize.rb +4 -3
  175. data/lib/puppet/functions/ceiling.rb +3 -2
  176. data/lib/puppet/functions/chomp.rb +3 -2
  177. data/lib/puppet/functions/chop.rb +3 -2
  178. data/lib/puppet/functions/compare.rb +5 -3
  179. data/lib/puppet/functions/contain.rb +7 -4
  180. data/lib/puppet/functions/convert_to.rb +2 -0
  181. data/lib/puppet/functions/crit.rb +2 -0
  182. data/lib/puppet/functions/debug.rb +2 -0
  183. data/lib/puppet/functions/defined.rb +10 -6
  184. data/lib/puppet/functions/dig.rb +13 -10
  185. data/lib/puppet/functions/downcase.rb +4 -2
  186. data/lib/puppet/functions/each.rb +2 -0
  187. data/lib/puppet/functions/emerg.rb +2 -0
  188. data/lib/puppet/functions/empty.rb +2 -0
  189. data/lib/puppet/functions/epp.rb +2 -1
  190. data/lib/puppet/functions/err.rb +2 -0
  191. data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
  192. data/lib/puppet/functions/filter.rb +8 -7
  193. data/lib/puppet/functions/find_file.rb +6 -0
  194. data/lib/puppet/functions/find_template.rb +2 -0
  195. data/lib/puppet/functions/flatten.rb +2 -0
  196. data/lib/puppet/functions/floor.rb +3 -2
  197. data/lib/puppet/functions/get.rb +4 -2
  198. data/lib/puppet/functions/getvar.rb +7 -5
  199. data/lib/puppet/functions/group_by.rb +2 -2
  200. data/lib/puppet/functions/hiera.rb +2 -0
  201. data/lib/puppet/functions/hiera_array.rb +2 -0
  202. data/lib/puppet/functions/hiera_hash.rb +2 -0
  203. data/lib/puppet/functions/hiera_include.rb +3 -0
  204. data/lib/puppet/functions/hocon_data.rb +5 -5
  205. data/lib/puppet/functions/import.rb +3 -1
  206. data/lib/puppet/functions/include.rb +5 -2
  207. data/lib/puppet/functions/index.rb +5 -4
  208. data/lib/puppet/functions/info.rb +2 -0
  209. data/lib/puppet/functions/inline_epp.rb +2 -1
  210. data/lib/puppet/functions/join.rb +4 -2
  211. data/lib/puppet/functions/json_data.rb +6 -6
  212. data/lib/puppet/functions/keys.rb +2 -0
  213. data/lib/puppet/functions/length.rb +2 -1
  214. data/lib/puppet/functions/lest.rb +2 -0
  215. data/lib/puppet/functions/lookup.rb +12 -12
  216. data/lib/puppet/functions/lstrip.rb +3 -2
  217. data/lib/puppet/functions/map.rb +4 -2
  218. data/lib/puppet/functions/match.rb +8 -5
  219. data/lib/puppet/functions/max.rb +75 -8
  220. data/lib/puppet/functions/min.rb +75 -8
  221. data/lib/puppet/functions/module_directory.rb +2 -0
  222. data/lib/puppet/functions/new.rb +5 -3
  223. data/lib/puppet/functions/next.rb +3 -1
  224. data/lib/puppet/functions/notice.rb +2 -0
  225. data/lib/puppet/functions/reduce.rb +8 -11
  226. data/lib/puppet/functions/regsubst.rb +15 -16
  227. data/lib/puppet/functions/require.rb +7 -3
  228. data/lib/puppet/functions/return.rb +2 -0
  229. data/lib/puppet/functions/reverse_each.rb +2 -0
  230. data/lib/puppet/functions/round.rb +2 -0
  231. data/lib/puppet/functions/rstrip.rb +3 -2
  232. data/lib/puppet/functions/scanf.rb +2 -0
  233. data/lib/puppet/functions/size.rb +2 -2
  234. data/lib/puppet/functions/slice.rb +4 -1
  235. data/lib/puppet/functions/sort.rb +2 -0
  236. data/lib/puppet/functions/split.rb +2 -0
  237. data/lib/puppet/functions/step.rb +2 -0
  238. data/lib/puppet/functions/strftime.rb +5 -3
  239. data/lib/puppet/functions/strip.rb +3 -2
  240. data/lib/puppet/functions/then.rb +3 -0
  241. data/lib/puppet/functions/tree_each.rb +4 -3
  242. data/lib/puppet/functions/type.rb +2 -0
  243. data/lib/puppet/functions/unique.rb +12 -9
  244. data/lib/puppet/functions/unwrap.rb +2 -0
  245. data/lib/puppet/functions/upcase.rb +4 -2
  246. data/lib/puppet/functions/values.rb +2 -0
  247. data/lib/puppet/functions/versioncmp.rb +2 -1
  248. data/lib/puppet/functions/warning.rb +2 -0
  249. data/lib/puppet/functions/with.rb +2 -0
  250. data/lib/puppet/functions/yaml_data.rb +13 -13
  251. data/lib/puppet/functions.rb +57 -61
  252. data/lib/puppet/generate/models/type/property.rb +4 -1
  253. data/lib/puppet/generate/models/type/type.rb +5 -2
  254. data/lib/puppet/generate/type.rb +11 -5
  255. data/lib/puppet/gettext/config.rb +16 -9
  256. data/lib/puppet/gettext/module_translations.rb +2 -1
  257. data/lib/puppet/gettext/stubs.rb +2 -0
  258. data/lib/puppet/graph/key.rb +2 -0
  259. data/lib/puppet/graph/prioritizer.rb +2 -0
  260. data/lib/puppet/graph/rb_tree_map.rb +43 -24
  261. data/lib/puppet/graph/relationship_graph.rb +31 -29
  262. data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
  263. data/lib/puppet/graph/simple_graph.rb +63 -57
  264. data/lib/puppet/graph.rb +2 -0
  265. data/lib/puppet/http/client.rb +10 -6
  266. data/lib/puppet/http/dns.rb +12 -12
  267. data/lib/puppet/http/errors.rb +4 -2
  268. data/lib/puppet/http/external_client.rb +4 -3
  269. data/lib/puppet/http/factory.rb +3 -1
  270. data/lib/puppet/http/pool.rb +3 -1
  271. data/lib/puppet/http/pool_entry.rb +2 -0
  272. data/lib/puppet/http/proxy.rb +21 -19
  273. data/lib/puppet/http/redirector.rb +5 -3
  274. data/lib/puppet/http/resolver/server_list.rb +5 -4
  275. data/lib/puppet/http/resolver/settings.rb +2 -1
  276. data/lib/puppet/http/resolver/srv.rb +2 -1
  277. data/lib/puppet/http/resolver.rb +4 -2
  278. data/lib/puppet/http/response.rb +2 -0
  279. data/lib/puppet/http/response_converter.rb +4 -3
  280. data/lib/puppet/http/response_net_http.rb +2 -1
  281. data/lib/puppet/http/retry_after_handler.rb +4 -3
  282. data/lib/puppet/http/service/ca.rb +37 -5
  283. data/lib/puppet/http/service/compiler.rb +13 -10
  284. data/lib/puppet/http/service/file_server.rb +5 -3
  285. data/lib/puppet/http/service/puppetserver.rb +3 -2
  286. data/lib/puppet/http/service/report.rb +5 -7
  287. data/lib/puppet/http/service.rb +17 -22
  288. data/lib/puppet/http/session.rb +6 -4
  289. data/lib/puppet/http/site.rb +3 -1
  290. data/lib/puppet/http.rb +4 -2
  291. data/lib/puppet/indirector/catalog/compiler.rb +81 -80
  292. data/lib/puppet/indirector/catalog/json.rb +2 -0
  293. data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
  294. data/lib/puppet/indirector/catalog/rest.rb +2 -0
  295. data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
  296. data/lib/puppet/indirector/catalog/yaml.rb +2 -0
  297. data/lib/puppet/indirector/code.rb +2 -0
  298. data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
  299. data/lib/puppet/indirector/data_binding/none.rb +2 -0
  300. data/lib/puppet/indirector/direct_file_server.rb +4 -1
  301. data/lib/puppet/indirector/envelope.rb +2 -0
  302. data/lib/puppet/indirector/errors.rb +2 -0
  303. data/lib/puppet/indirector/exec.rb +5 -3
  304. data/lib/puppet/indirector/face.rb +17 -28
  305. data/lib/puppet/indirector/fact_search.rb +4 -2
  306. data/lib/puppet/indirector/facts/facter.rb +10 -7
  307. data/lib/puppet/indirector/facts/json.rb +4 -2
  308. data/lib/puppet/indirector/facts/memory.rb +2 -0
  309. data/lib/puppet/indirector/facts/network_device.rb +2 -0
  310. data/lib/puppet/indirector/facts/rest.rb +2 -0
  311. data/lib/puppet/indirector/facts/store_configs.rb +3 -2
  312. data/lib/puppet/indirector/facts/yaml.rb +2 -0
  313. data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
  314. data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
  315. data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
  316. data/lib/puppet/indirector/file_content/file.rb +2 -0
  317. data/lib/puppet/indirector/file_content/file_server.rb +2 -0
  318. data/lib/puppet/indirector/file_content/rest.rb +3 -1
  319. data/lib/puppet/indirector/file_content/selector.rb +2 -0
  320. data/lib/puppet/indirector/file_content.rb +2 -0
  321. data/lib/puppet/indirector/file_metadata/file.rb +2 -0
  322. data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
  323. data/lib/puppet/indirector/file_metadata/http.rb +4 -2
  324. data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
  325. data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
  326. data/lib/puppet/indirector/file_metadata.rb +2 -0
  327. data/lib/puppet/indirector/file_server.rb +3 -0
  328. data/lib/puppet/indirector/generic_http.rb +2 -0
  329. data/lib/puppet/indirector/hiera.rb +8 -7
  330. data/lib/puppet/indirector/indirection.rb +50 -41
  331. data/lib/puppet/indirector/json.rb +9 -6
  332. data/lib/puppet/indirector/memory.rb +5 -2
  333. data/lib/puppet/indirector/msgpack.rb +11 -7
  334. data/lib/puppet/indirector/node/exec.rb +6 -6
  335. data/lib/puppet/indirector/node/json.rb +2 -1
  336. data/lib/puppet/indirector/node/memory.rb +2 -0
  337. data/lib/puppet/indirector/node/msgpack.rb +2 -0
  338. data/lib/puppet/indirector/node/plain.rb +2 -0
  339. data/lib/puppet/indirector/node/rest.rb +2 -0
  340. data/lib/puppet/indirector/node/store_configs.rb +3 -3
  341. data/lib/puppet/indirector/node/yaml.rb +2 -0
  342. data/lib/puppet/indirector/none.rb +3 -2
  343. data/lib/puppet/indirector/plain.rb +2 -0
  344. data/lib/puppet/indirector/report/json.rb +4 -2
  345. data/lib/puppet/indirector/report/msgpack.rb +3 -1
  346. data/lib/puppet/indirector/report/processor.rb +3 -0
  347. data/lib/puppet/indirector/report/rest.rb +2 -13
  348. data/lib/puppet/indirector/report/yaml.rb +4 -2
  349. data/lib/puppet/indirector/request.rb +15 -12
  350. data/lib/puppet/indirector/resource/ral.rb +10 -10
  351. data/lib/puppet/indirector/resource/store_configs.rb +3 -1
  352. data/lib/puppet/indirector/resource/validator.rb +2 -0
  353. data/lib/puppet/indirector/rest.rb +3 -1
  354. data/lib/puppet/indirector/store_configs.rb +2 -0
  355. data/lib/puppet/indirector/terminus.rb +8 -4
  356. data/lib/puppet/indirector/yaml.rb +7 -5
  357. data/lib/puppet/indirector.rb +3 -0
  358. data/lib/puppet/info_service/class_information_service.rb +16 -17
  359. data/lib/puppet/info_service/plan_information_service.rb +5 -3
  360. data/lib/puppet/info_service/task_information_service.rb +10 -9
  361. data/lib/puppet/info_service.rb +1 -0
  362. data/lib/puppet/interface/action.rb +46 -42
  363. data/lib/puppet/interface/action_builder.rb +12 -6
  364. data/lib/puppet/interface/action_manager.rb +9 -6
  365. data/lib/puppet/interface/documentation.rb +40 -34
  366. data/lib/puppet/interface/face_collection.rb +18 -14
  367. data/lib/puppet/interface/option.rb +23 -11
  368. data/lib/puppet/interface/option_builder.rb +14 -9
  369. data/lib/puppet/interface/option_manager.rb +12 -10
  370. data/lib/puppet/interface.rb +9 -8
  371. data/lib/puppet/loaders.rb +2 -1
  372. data/lib/puppet/metatype/manager.rb +16 -15
  373. data/lib/puppet/module/plan.rb +22 -15
  374. data/lib/puppet/module/task.rb +33 -28
  375. data/lib/puppet/module.rb +59 -47
  376. data/lib/puppet/module_tool/applications/application.rb +17 -12
  377. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  378. data/lib/puppet/module_tool/applications/installer.rb +78 -87
  379. data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
  380. data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
  381. data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
  382. data/lib/puppet/module_tool/applications.rb +2 -0
  383. data/lib/puppet/module_tool/checksums.rb +4 -3
  384. data/lib/puppet/module_tool/dependency.rb +5 -4
  385. data/lib/puppet/module_tool/errors/base.rb +3 -1
  386. data/lib/puppet/module_tool/errors/installer.rb +6 -5
  387. data/lib/puppet/module_tool/errors/shared.rb +16 -15
  388. data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
  389. data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
  390. data/lib/puppet/module_tool/errors.rb +2 -0
  391. data/lib/puppet/module_tool/install_directory.rb +8 -5
  392. data/lib/puppet/module_tool/installed_modules.rb +5 -2
  393. data/lib/puppet/module_tool/local_tarball.rb +10 -8
  394. data/lib/puppet/module_tool/metadata.rb +36 -30
  395. data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
  396. data/lib/puppet/module_tool/tar/gnu.rb +12 -8
  397. data/lib/puppet/module_tool/tar/mini.rb +6 -4
  398. data/lib/puppet/module_tool/tar.rb +4 -2
  399. data/lib/puppet/module_tool.rb +11 -11
  400. data/lib/puppet/network/authconfig.rb +2 -0
  401. data/lib/puppet/network/authorization.rb +2 -0
  402. data/lib/puppet/network/client_request.rb +7 -4
  403. data/lib/puppet/network/format.rb +9 -3
  404. data/lib/puppet/network/format_handler.rb +9 -7
  405. data/lib/puppet/network/format_support.rb +8 -7
  406. data/lib/puppet/network/formats.rb +34 -25
  407. data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
  408. data/lib/puppet/network/http/api/indirection_type.rb +2 -1
  409. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
  410. data/lib/puppet/network/http/api/master/v3.rb +2 -1
  411. data/lib/puppet/network/http/api/master.rb +2 -0
  412. data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
  413. data/lib/puppet/network/http/api/server/v3.rb +14 -13
  414. data/lib/puppet/network/http/api/server.rb +2 -0
  415. data/lib/puppet/network/http/api.rb +20 -18
  416. data/lib/puppet/network/http/connection.rb +6 -4
  417. data/lib/puppet/network/http/error.rb +5 -3
  418. data/lib/puppet/network/http/handler.rb +12 -14
  419. data/lib/puppet/network/http/issues.rb +2 -0
  420. data/lib/puppet/network/http/memory_response.rb +3 -1
  421. data/lib/puppet/network/http/request.rb +22 -10
  422. data/lib/puppet/network/http/response.rb +2 -0
  423. data/lib/puppet/network/http/route.rb +14 -11
  424. data/lib/puppet/network/http.rb +2 -0
  425. data/lib/puppet/network/http_pool.rb +4 -3
  426. data/lib/puppet/network/uri.rb +2 -0
  427. data/lib/puppet/network.rb +2 -0
  428. data/lib/puppet/node/environment.rb +36 -33
  429. data/lib/puppet/node/facts.rb +10 -10
  430. data/lib/puppet/node/server_facts.rb +6 -6
  431. data/lib/puppet/node.rb +12 -12
  432. data/lib/puppet/pal/catalog_compiler.rb +2 -3
  433. data/lib/puppet/pal/compiler.rb +11 -6
  434. data/lib/puppet/pal/function_signature.rb +5 -3
  435. data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
  436. data/lib/puppet/pal/pal_api.rb +2 -0
  437. data/lib/puppet/pal/pal_impl.rb +103 -108
  438. data/lib/puppet/pal/plan_signature.rb +4 -2
  439. data/lib/puppet/pal/script_compiler.rb +4 -2
  440. data/lib/puppet/pal/task_signature.rb +15 -9
  441. data/lib/puppet/parameter/boolean.rb +2 -0
  442. data/lib/puppet/parameter/package_options.rb +3 -1
  443. data/lib/puppet/parameter/path.rb +7 -3
  444. data/lib/puppet/parameter/value.rb +5 -3
  445. data/lib/puppet/parameter/value_collection.rb +17 -16
  446. data/lib/puppet/parameter.rb +17 -16
  447. data/lib/puppet/parser/abstract_compiler.rb +2 -3
  448. data/lib/puppet/parser/ast/block_expression.rb +4 -2
  449. data/lib/puppet/parser/ast/branch.rb +2 -0
  450. data/lib/puppet/parser/ast/hostclass.rb +4 -2
  451. data/lib/puppet/parser/ast/leaf.rb +3 -0
  452. data/lib/puppet/parser/ast/node.rb +2 -0
  453. data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
  454. data/lib/puppet/parser/ast/resource.rb +8 -8
  455. data/lib/puppet/parser/ast/resource_instance.rb +3 -0
  456. data/lib/puppet/parser/ast/resourceparam.rb +9 -7
  457. data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
  458. data/lib/puppet/parser/ast.rb +16 -15
  459. data/lib/puppet/parser/catalog_compiler.rb +3 -3
  460. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
  461. data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
  462. data/lib/puppet/parser/compiler.rb +45 -44
  463. data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
  464. data/lib/puppet/parser/files.rb +8 -6
  465. data/lib/puppet/parser/functions/assert_type.rb +43 -41
  466. data/lib/puppet/parser/functions/binary_file.rb +16 -14
  467. data/lib/puppet/parser/functions/break.rb +29 -27
  468. data/lib/puppet/parser/functions/contain.rb +3 -1
  469. data/lib/puppet/parser/functions/create_resources.rb +18 -14
  470. data/lib/puppet/parser/functions/defined.rb +104 -102
  471. data/lib/puppet/parser/functions/dig.rb +26 -24
  472. data/lib/puppet/parser/functions/digest.rb +3 -1
  473. data/lib/puppet/parser/functions/each.rb +101 -99
  474. data/lib/puppet/parser/functions/epp.rb +4 -3
  475. data/lib/puppet/parser/functions/fail.rb +11 -9
  476. data/lib/puppet/parser/functions/file.rb +16 -14
  477. data/lib/puppet/parser/functions/filter.rb +57 -55
  478. data/lib/puppet/parser/functions/find_file.rb +19 -18
  479. data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
  480. data/lib/puppet/parser/functions/generate.rb +23 -21
  481. data/lib/puppet/parser/functions/hiera.rb +95 -93
  482. data/lib/puppet/parser/functions/hiera_array.rb +83 -82
  483. data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
  484. data/lib/puppet/parser/functions/hiera_include.rb +93 -92
  485. data/lib/puppet/parser/functions/include.rb +5 -3
  486. data/lib/puppet/parser/functions/inline_epp.rb +4 -3
  487. data/lib/puppet/parser/functions/inline_template.rb +15 -13
  488. data/lib/puppet/parser/functions/lest.rb +36 -34
  489. data/lib/puppet/parser/functions/lookup.rb +132 -130
  490. data/lib/puppet/parser/functions/map.rb +54 -52
  491. data/lib/puppet/parser/functions/match.rb +31 -29
  492. data/lib/puppet/parser/functions/md5.rb +4 -2
  493. data/lib/puppet/parser/functions/new.rb +916 -915
  494. data/lib/puppet/parser/functions/next.rb +36 -34
  495. data/lib/puppet/parser/functions/realize.rb +13 -11
  496. data/lib/puppet/parser/functions/reduce.rb +134 -132
  497. data/lib/puppet/parser/functions/regsubst.rb +8 -5
  498. data/lib/puppet/parser/functions/require.rb +8 -5
  499. data/lib/puppet/parser/functions/return.rb +90 -88
  500. data/lib/puppet/parser/functions/reverse_each.rb +59 -57
  501. data/lib/puppet/parser/functions/scanf.rb +25 -23
  502. data/lib/puppet/parser/functions/sha1.rb +4 -2
  503. data/lib/puppet/parser/functions/sha256.rb +3 -1
  504. data/lib/puppet/parser/functions/shellquote.rb +2 -0
  505. data/lib/puppet/parser/functions/slice.rb +27 -25
  506. data/lib/puppet/parser/functions/split.rb +7 -6
  507. data/lib/puppet/parser/functions/sprintf.rb +8 -7
  508. data/lib/puppet/parser/functions/step.rb +62 -60
  509. data/lib/puppet/parser/functions/strftime.rb +175 -173
  510. data/lib/puppet/parser/functions/tag.rb +10 -7
  511. data/lib/puppet/parser/functions/tagged.rb +16 -13
  512. data/lib/puppet/parser/functions/template.rb +27 -24
  513. data/lib/puppet/parser/functions/then.rb +54 -52
  514. data/lib/puppet/parser/functions/type.rb +36 -34
  515. data/lib/puppet/parser/functions/versioncmp.rb +3 -2
  516. data/lib/puppet/parser/functions/with.rb +22 -20
  517. data/lib/puppet/parser/functions.rb +12 -9
  518. data/lib/puppet/parser/parser_factory.rb +2 -0
  519. data/lib/puppet/parser/relationship.rb +9 -3
  520. data/lib/puppet/parser/resource/param.rb +4 -2
  521. data/lib/puppet/parser/resource.rb +42 -40
  522. data/lib/puppet/parser/scope.rb +84 -70
  523. data/lib/puppet/parser/script_compiler.rb +12 -12
  524. data/lib/puppet/parser/templatewrapper.rb +3 -2
  525. data/lib/puppet/parser/type_loader.rb +31 -30
  526. data/lib/puppet/parser.rb +3 -1
  527. data/lib/puppet/plugins/configuration.rb +2 -0
  528. data/lib/puppet/plugins/syntax_checkers.rb +2 -1
  529. data/lib/puppet/plugins.rb +3 -1
  530. data/lib/puppet/pops/adaptable.rb +5 -3
  531. data/lib/puppet/pops/adapters.rb +4 -1
  532. data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
  533. data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
  534. data/lib/puppet/pops/evaluator/closure.rb +272 -277
  535. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
  536. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
  537. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
  538. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
  539. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
  540. data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
  541. data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
  542. data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
  543. data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
  544. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  545. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
  546. data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
  547. data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
  548. data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
  549. data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
  550. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
  551. data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
  552. data/lib/puppet/pops/functions/dispatch.rb +7 -7
  553. data/lib/puppet/pops/functions/dispatcher.rb +8 -7
  554. data/lib/puppet/pops/functions/function.rb +18 -20
  555. data/lib/puppet/pops/issue_reporter.rb +25 -22
  556. data/lib/puppet/pops/issues.rb +10 -5
  557. data/lib/puppet/pops/label_provider.rb +6 -4
  558. data/lib/puppet/pops/loader/base_loader.rb +4 -4
  559. data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
  560. data/lib/puppet/pops/loader/gem_support.rb +5 -2
  561. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
  562. data/lib/puppet/pops/loader/loader.rb +8 -8
  563. data/lib/puppet/pops/loader/loader_paths.rb +42 -41
  564. data/lib/puppet/pops/loader/module_loaders.rb +45 -49
  565. data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
  566. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
  567. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
  568. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
  569. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
  570. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
  571. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
  572. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
  573. data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
  574. data/lib/puppet/pops/loader/static_loader.rb +29 -27
  575. data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
  576. data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
  577. data/lib/puppet/pops/loader/typed_name.rb +4 -2
  578. data/lib/puppet/pops/loader/uri_helper.rb +3 -1
  579. data/lib/puppet/pops/loaders.rb +27 -23
  580. data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
  581. data/lib/puppet/pops/lookup/context.rb +32 -23
  582. data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
  583. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
  584. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
  585. data/lib/puppet/pops/lookup/data_provider.rb +2 -0
  586. data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
  587. data/lib/puppet/pops/lookup/explainer.rb +47 -45
  588. data/lib/puppet/pops/lookup/function_provider.rb +8 -6
  589. data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
  590. data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
  591. data/lib/puppet/pops/lookup/interpolation.rb +21 -10
  592. data/lib/puppet/pops/lookup/invocation.rb +4 -0
  593. data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
  594. data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
  595. data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
  596. data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
  597. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
  598. data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
  599. data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
  600. data/lib/puppet/pops/lookup.rb +16 -11
  601. data/lib/puppet/pops/merge_strategy.rb +22 -16
  602. data/lib/puppet/pops/migration/migration_checker.rb +8 -5
  603. data/lib/puppet/pops/model/ast.rb +786 -685
  604. data/lib/puppet/pops/model/ast_transformer.rb +18 -18
  605. data/lib/puppet/pops/model/factory.rb +33 -31
  606. data/lib/puppet/pops/model/model_label_provider.rb +5 -2
  607. data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
  608. data/lib/puppet/pops/model/pn_transformer.rb +5 -6
  609. data/lib/puppet/pops/model/tree_dumper.rb +7 -4
  610. data/lib/puppet/pops/parser/code_merger.rb +3 -3
  611. data/lib/puppet/pops/parser/epp_parser.rb +6 -5
  612. data/lib/puppet/pops/parser/epp_support.rb +10 -9
  613. data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
  614. data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
  615. data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
  616. data/lib/puppet/pops/parser/lexer2.rb +74 -62
  617. data/lib/puppet/pops/parser/lexer_support.rb +57 -57
  618. data/lib/puppet/pops/parser/locatable.rb +2 -2
  619. data/lib/puppet/pops/parser/locator.rb +47 -43
  620. data/lib/puppet/pops/parser/parser_support.rb +22 -21
  621. data/lib/puppet/pops/parser/pn_parser.rb +10 -9
  622. data/lib/puppet/pops/parser/slurp_support.rb +41 -40
  623. data/lib/puppet/pops/patterns.rb +14 -14
  624. data/lib/puppet/pops/pcore.rb +7 -6
  625. data/lib/puppet/pops/pn.rb +8 -5
  626. data/lib/puppet/pops/puppet_stack.rb +3 -1
  627. data/lib/puppet/pops/resource/param.rb +13 -12
  628. data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
  629. data/lib/puppet/pops/semantic_error.rb +3 -1
  630. data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
  631. data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
  632. data/lib/puppet/pops/serialization/deserializer.rb +3 -0
  633. data/lib/puppet/pops/serialization/extension.rb +8 -0
  634. data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
  635. data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
  636. data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
  637. data/lib/puppet/pops/serialization/json.rb +9 -5
  638. data/lib/puppet/pops/serialization/json_path.rb +3 -1
  639. data/lib/puppet/pops/serialization/object.rb +6 -3
  640. data/lib/puppet/pops/serialization/serializer.rb +20 -16
  641. data/lib/puppet/pops/serialization/time_factory.rb +2 -1
  642. data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
  643. data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
  644. data/lib/puppet/pops/serialization.rb +10 -8
  645. data/lib/puppet/pops/time/timespan.rb +33 -21
  646. data/lib/puppet/pops/time/timestamp.rb +12 -5
  647. data/lib/puppet/pops/types/annotatable.rb +3 -2
  648. data/lib/puppet/pops/types/annotation.rb +6 -4
  649. data/lib/puppet/pops/types/class_loader.rb +17 -15
  650. data/lib/puppet/pops/types/implementation_registry.rb +4 -1
  651. data/lib/puppet/pops/types/iterable.rb +24 -14
  652. data/lib/puppet/pops/types/p_binary_type.rb +6 -6
  653. data/lib/puppet/pops/types/p_init_type.rb +15 -12
  654. data/lib/puppet/pops/types/p_meta_type.rb +6 -5
  655. data/lib/puppet/pops/types/p_object_type.rb +104 -79
  656. data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
  657. data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
  658. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
  659. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
  660. data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
  661. data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
  662. data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
  663. data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
  664. data/lib/puppet/pops/types/p_uri_type.rb +41 -33
  665. data/lib/puppet/pops/types/puppet_object.rb +2 -1
  666. data/lib/puppet/pops/types/recursion_guard.rb +12 -6
  667. data/lib/puppet/pops/types/ruby_generator.rb +19 -14
  668. data/lib/puppet/pops/types/ruby_method.rb +8 -7
  669. data/lib/puppet/pops/types/string_converter.rb +113 -103
  670. data/lib/puppet/pops/types/tree_iterators.rb +16 -20
  671. data/lib/puppet/pops/types/type_acceptor.rb +2 -0
  672. data/lib/puppet/pops/types/type_asserter.rb +5 -3
  673. data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
  674. data/lib/puppet/pops/types/type_calculator.rb +56 -49
  675. data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
  676. data/lib/puppet/pops/types/type_factory.rb +25 -16
  677. data/lib/puppet/pops/types/type_formatter.rb +60 -65
  678. data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
  679. data/lib/puppet/pops/types/type_parser.rb +124 -117
  680. data/lib/puppet/pops/types/type_set_reference.rb +3 -0
  681. data/lib/puppet/pops/types/type_with_members.rb +2 -2
  682. data/lib/puppet/pops/types/types.rb +267 -249
  683. data/lib/puppet/pops/utils.rb +43 -45
  684. data/lib/puppet/pops/validation/checker4_0.rb +65 -58
  685. data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
  686. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
  687. data/lib/puppet/pops/validation.rb +26 -23
  688. data/lib/puppet/pops/visitable.rb +2 -0
  689. data/lib/puppet/pops/visitor.rb +18 -4
  690. data/lib/puppet/pops.rb +6 -3
  691. data/lib/puppet/property/boolean.rb +2 -0
  692. data/lib/puppet/property/ensure.rb +17 -16
  693. data/lib/puppet/property/keyvalue.rb +15 -14
  694. data/lib/puppet/property/list.rb +10 -9
  695. data/lib/puppet/property/ordered_list.rb +6 -5
  696. data/lib/puppet/property.rb +47 -48
  697. data/lib/puppet/provider/aix_object.rb +15 -9
  698. data/lib/puppet/provider/command.rb +2 -0
  699. data/lib/puppet/provider/confine.rb +2 -0
  700. data/lib/puppet/provider/exec/posix.rb +4 -1
  701. data/lib/puppet/provider/exec/shell.rb +2 -0
  702. data/lib/puppet/provider/exec/windows.rb +6 -4
  703. data/lib/puppet/provider/exec.rb +6 -4
  704. data/lib/puppet/provider/file/posix.rb +37 -19
  705. data/lib/puppet/provider/file/windows.rb +28 -29
  706. data/lib/puppet/provider/group/aix.rb +4 -2
  707. data/lib/puppet/provider/group/directoryservice.rb +7 -5
  708. data/lib/puppet/provider/group/groupadd.rb +16 -10
  709. data/lib/puppet/provider/group/ldap.rb +3 -0
  710. data/lib/puppet/provider/group/pw.rb +4 -3
  711. data/lib/puppet/provider/group/windows_adsi.rb +10 -7
  712. data/lib/puppet/provider/ldap.rb +5 -3
  713. data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
  714. data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
  715. data/lib/puppet/provider/nameservice/pw.rb +8 -8
  716. data/lib/puppet/provider/nameservice.rb +23 -19
  717. data/lib/puppet/provider/network_device.rb +2 -2
  718. data/lib/puppet/provider/package/aix.rb +29 -27
  719. data/lib/puppet/provider/package/appdmg.rb +24 -22
  720. data/lib/puppet/provider/package/apple.rb +7 -5
  721. data/lib/puppet/provider/package/apt.rb +28 -25
  722. data/lib/puppet/provider/package/aptitude.rb +3 -3
  723. data/lib/puppet/provider/package/aptrpm.rb +18 -14
  724. data/lib/puppet/provider/package/blastwave.rb +19 -22
  725. data/lib/puppet/provider/package/dnf.rb +12 -5
  726. data/lib/puppet/provider/package/dnfmodule.rb +17 -15
  727. data/lib/puppet/provider/package/dpkg.rb +24 -25
  728. data/lib/puppet/provider/package/fink.rb +17 -15
  729. data/lib/puppet/provider/package/freebsd.rb +6 -4
  730. data/lib/puppet/provider/package/gem.rb +29 -26
  731. data/lib/puppet/provider/package/hpux.rb +9 -7
  732. data/lib/puppet/provider/package/macports.rb +6 -4
  733. data/lib/puppet/provider/package/nim.rb +27 -28
  734. data/lib/puppet/provider/package/openbsd.rb +37 -34
  735. data/lib/puppet/provider/package/opkg.rb +17 -14
  736. data/lib/puppet/provider/package/pacman.rb +39 -42
  737. data/lib/puppet/provider/package/pip.rb +32 -31
  738. data/lib/puppet/provider/package/pip2.rb +3 -2
  739. data/lib/puppet/provider/package/pip3.rb +3 -2
  740. data/lib/puppet/provider/package/pkg.rb +46 -41
  741. data/lib/puppet/provider/package/pkgdmg.rb +23 -17
  742. data/lib/puppet/provider/package/pkgin.rb +14 -13
  743. data/lib/puppet/provider/package/pkgng.rb +20 -15
  744. data/lib/puppet/provider/package/pkgutil.rb +40 -41
  745. data/lib/puppet/provider/package/portage.rb +73 -69
  746. data/lib/puppet/provider/package/ports.rb +19 -16
  747. data/lib/puppet/provider/package/portupgrade.rb +48 -55
  748. data/lib/puppet/provider/package/puppet_gem.rb +6 -15
  749. data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
  750. data/lib/puppet/provider/package/rpm.rb +45 -40
  751. data/lib/puppet/provider/package/rug.rb +11 -11
  752. data/lib/puppet/provider/package/sun.rb +28 -24
  753. data/lib/puppet/provider/package/sunfreeware.rb +3 -1
  754. data/lib/puppet/provider/package/tdnf.rb +9 -2
  755. data/lib/puppet/provider/package/up2date.rb +10 -10
  756. data/lib/puppet/provider/package/urpmi.rb +9 -7
  757. data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
  758. data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
  759. data/lib/puppet/provider/package/windows/package.rb +8 -5
  760. data/lib/puppet/provider/package/windows.rb +10 -9
  761. data/lib/puppet/provider/package/xbps.rb +127 -0
  762. data/lib/puppet/provider/package/yum.rb +65 -62
  763. data/lib/puppet/provider/package/zypper.rb +29 -29
  764. data/lib/puppet/provider/package.rb +9 -7
  765. data/lib/puppet/provider/package_targetable.rb +5 -3
  766. data/lib/puppet/provider/parsedfile.rb +21 -17
  767. data/lib/puppet/provider/service/base.rb +19 -23
  768. data/lib/puppet/provider/service/bsd.rb +7 -5
  769. data/lib/puppet/provider/service/daemontools.rb +42 -39
  770. data/lib/puppet/provider/service/debian.rb +12 -10
  771. data/lib/puppet/provider/service/freebsd.rb +50 -52
  772. data/lib/puppet/provider/service/gentoo.rb +11 -9
  773. data/lib/puppet/provider/service/init.rb +33 -31
  774. data/lib/puppet/provider/service/launchd.rb +38 -31
  775. data/lib/puppet/provider/service/openbsd.rb +17 -16
  776. data/lib/puppet/provider/service/openrc.rb +6 -5
  777. data/lib/puppet/provider/service/openwrt.rb +7 -6
  778. data/lib/puppet/provider/service/rcng.rb +7 -5
  779. data/lib/puppet/provider/service/redhat.rb +10 -7
  780. data/lib/puppet/provider/service/runit.rb +16 -15
  781. data/lib/puppet/provider/service/service.rb +7 -8
  782. data/lib/puppet/provider/service/smf.rb +42 -37
  783. data/lib/puppet/provider/service/src.rb +29 -29
  784. data/lib/puppet/provider/service/systemd.rb +48 -48
  785. data/lib/puppet/provider/service/upstart.rb +37 -37
  786. data/lib/puppet/provider/service/windows.rb +45 -48
  787. data/lib/puppet/provider/user/aix.rb +24 -20
  788. data/lib/puppet/provider/user/directoryservice.rb +98 -91
  789. data/lib/puppet/provider/user/hpux.rb +33 -35
  790. data/lib/puppet/provider/user/ldap.rb +13 -10
  791. data/lib/puppet/provider/user/openbsd.rb +24 -22
  792. data/lib/puppet/provider/user/pw.rb +8 -7
  793. data/lib/puppet/provider/user/user_role_add.rb +40 -36
  794. data/lib/puppet/provider/user/useradd.rb +64 -53
  795. data/lib/puppet/provider/user/windows_adsi.rb +14 -10
  796. data/lib/puppet/provider.rb +20 -19
  797. data/lib/puppet/reference/configuration.rb +55 -47
  798. data/lib/puppet/reference/function.rb +2 -0
  799. data/lib/puppet/reference/indirection.rb +33 -28
  800. data/lib/puppet/reference/metaparameter.rb +3 -1
  801. data/lib/puppet/reference/providers.rb +12 -10
  802. data/lib/puppet/reference/report.rb +2 -0
  803. data/lib/puppet/reference/type.rb +7 -5
  804. data/lib/puppet/relationship.rb +10 -9
  805. data/lib/puppet/reports/http.rb +3 -2
  806. data/lib/puppet/reports/log.rb +4 -3
  807. data/lib/puppet/reports/store.rb +9 -6
  808. data/lib/puppet/reports.rb +8 -6
  809. data/lib/puppet/resource/catalog.rb +54 -53
  810. data/lib/puppet/resource/status.rb +9 -7
  811. data/lib/puppet/resource/type.rb +65 -41
  812. data/lib/puppet/resource/type_collection.rb +10 -6
  813. data/lib/puppet/resource.rb +91 -81
  814. data/lib/puppet/runtime.rb +2 -0
  815. data/lib/puppet/scheduler/job.rb +2 -0
  816. data/lib/puppet/scheduler/scheduler.rb +4 -2
  817. data/lib/puppet/scheduler/splay_job.rb +16 -3
  818. data/lib/puppet/scheduler/timer.rb +2 -0
  819. data/lib/puppet/scheduler.rb +3 -1
  820. data/lib/puppet/settings/alias_setting.rb +5 -5
  821. data/lib/puppet/settings/array_setting.rb +2 -1
  822. data/lib/puppet/settings/autosign_setting.rb +2 -1
  823. data/lib/puppet/settings/base_setting.rb +23 -18
  824. data/lib/puppet/settings/boolean_setting.rb +5 -3
  825. data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
  826. data/lib/puppet/settings/config_file.rb +11 -9
  827. data/lib/puppet/settings/directory_setting.rb +2 -0
  828. data/lib/puppet/settings/duration_setting.rb +5 -4
  829. data/lib/puppet/settings/enum_setting.rb +3 -1
  830. data/lib/puppet/settings/environment_conf.rb +19 -15
  831. data/lib/puppet/settings/errors.rb +6 -3
  832. data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
  833. data/lib/puppet/settings/file_setting.rb +15 -24
  834. data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
  835. data/lib/puppet/settings/ini_file.rb +5 -3
  836. data/lib/puppet/settings/integer_setting.rb +3 -1
  837. data/lib/puppet/settings/path_setting.rb +2 -0
  838. data/lib/puppet/settings/port_setting.rb +4 -2
  839. data/lib/puppet/settings/priority_setting.rb +13 -12
  840. data/lib/puppet/settings/server_list_setting.rb +7 -6
  841. data/lib/puppet/settings/string_setting.rb +2 -0
  842. data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
  843. data/lib/puppet/settings/terminus_setting.rb +2 -0
  844. data/lib/puppet/settings/ttl_setting.rb +7 -5
  845. data/lib/puppet/settings/value_translator.rb +9 -7
  846. data/lib/puppet/settings.rb +171 -163
  847. data/lib/puppet/ssl/base.rb +9 -6
  848. data/lib/puppet/ssl/certificate.rb +6 -4
  849. data/lib/puppet/ssl/certificate_request.rb +34 -38
  850. data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
  851. data/lib/puppet/ssl/certificate_signer.rb +3 -3
  852. data/lib/puppet/ssl/digest.rb +2 -0
  853. data/lib/puppet/ssl/error.rb +3 -0
  854. data/lib/puppet/ssl/oids.rb +11 -9
  855. data/lib/puppet/ssl/openssl_loader.rb +6 -4
  856. data/lib/puppet/ssl/ssl_context.rb +2 -0
  857. data/lib/puppet/ssl/ssl_provider.rb +13 -9
  858. data/lib/puppet/ssl/state_machine.rb +153 -22
  859. data/lib/puppet/ssl/verifier.rb +3 -2
  860. data/lib/puppet/ssl.rb +3 -1
  861. data/lib/puppet/syntax_checkers/base64.rb +7 -5
  862. data/lib/puppet/syntax_checkers/epp.rb +7 -6
  863. data/lib/puppet/syntax_checkers/json.rb +7 -7
  864. data/lib/puppet/syntax_checkers/pp.rb +7 -6
  865. data/lib/puppet/syntax_checkers.rb +3 -1
  866. data/lib/puppet/test/test_helper.rb +30 -44
  867. data/lib/puppet/thread_local.rb +2 -0
  868. data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
  869. data/lib/puppet/transaction/event.rb +8 -5
  870. data/lib/puppet/transaction/event_manager.rb +12 -11
  871. data/lib/puppet/transaction/persistence.rb +16 -16
  872. data/lib/puppet/transaction/report.rb +34 -27
  873. data/lib/puppet/transaction/resource_harness.rb +17 -9
  874. data/lib/puppet/transaction.rb +37 -35
  875. data/lib/puppet/trusted_external.rb +10 -5
  876. data/lib/puppet/type/component.rb +14 -7
  877. data/lib/puppet/type/exec.rb +71 -61
  878. data/lib/puppet/type/file/checksum.rb +6 -2
  879. data/lib/puppet/type/file/checksum_value.rb +6 -4
  880. data/lib/puppet/type/file/content.rb +24 -20
  881. data/lib/puppet/type/file/ctime.rb +5 -4
  882. data/lib/puppet/type/file/data_sync.rb +9 -6
  883. data/lib/puppet/type/file/ensure.rb +24 -25
  884. data/lib/puppet/type/file/group.rb +3 -1
  885. data/lib/puppet/type/file/mode.rb +14 -11
  886. data/lib/puppet/type/file/mtime.rb +5 -3
  887. data/lib/puppet/type/file/owner.rb +3 -2
  888. data/lib/puppet/type/file/selcontext.rb +24 -23
  889. data/lib/puppet/type/file/source.rb +31 -30
  890. data/lib/puppet/type/file/target.rb +23 -25
  891. data/lib/puppet/type/file/type.rb +3 -2
  892. data/lib/puppet/type/file.rb +60 -54
  893. data/lib/puppet/type/filebucket.rb +6 -4
  894. data/lib/puppet/type/group.rb +14 -13
  895. data/lib/puppet/type/notify.rb +4 -3
  896. data/lib/puppet/type/package.rb +47 -45
  897. data/lib/puppet/type/resources.rb +39 -34
  898. data/lib/puppet/type/schedule.rb +21 -21
  899. data/lib/puppet/type/service.rb +19 -18
  900. data/lib/puppet/type/stage.rb +2 -0
  901. data/lib/puppet/type/tidy.rb +40 -34
  902. data/lib/puppet/type/user.rb +62 -56
  903. data/lib/puppet/type/whit.rb +2 -1
  904. data/lib/puppet/type.rb +180 -227
  905. data/lib/puppet/util/at_fork/noop.rb +2 -0
  906. data/lib/puppet/util/at_fork/solaris.rb +37 -39
  907. data/lib/puppet/util/at_fork.rb +3 -1
  908. data/lib/puppet/util/autoload.rb +10 -4
  909. data/lib/puppet/util/backups.rb +13 -11
  910. data/lib/puppet/util/character_encoding.rb +9 -6
  911. data/lib/puppet/util/checksums.rb +16 -12
  912. data/lib/puppet/util/classgen.rb +18 -23
  913. data/lib/puppet/util/colors.rb +67 -65
  914. data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
  915. data/lib/puppet/util/command_line/trollop.rb +695 -673
  916. data/lib/puppet/util/command_line.rb +7 -5
  917. data/lib/puppet/util/constant_inflector.rb +4 -3
  918. data/lib/puppet/util/diff.rb +17 -18
  919. data/lib/puppet/util/docs.rb +8 -4
  920. data/lib/puppet/util/errors.rb +13 -11
  921. data/lib/puppet/util/execution.rb +58 -36
  922. data/lib/puppet/util/execution_stub.rb +2 -0
  923. data/lib/puppet/util/feature.rb +9 -9
  924. data/lib/puppet/util/file_watcher.rb +3 -0
  925. data/lib/puppet/util/fileparsing.rb +20 -24
  926. data/lib/puppet/util/filetype.rb +43 -43
  927. data/lib/puppet/util/http_proxy.rb +2 -0
  928. data/lib/puppet/util/inifile.rb +13 -18
  929. data/lib/puppet/util/instance_loader.rb +3 -0
  930. data/lib/puppet/util/json.rb +2 -0
  931. data/lib/puppet/util/json_lockfile.rb +4 -1
  932. data/lib/puppet/util/ldap/connection.rb +21 -19
  933. data/lib/puppet/util/ldap/generator.rb +2 -0
  934. data/lib/puppet/util/ldap/manager.rb +20 -21
  935. data/lib/puppet/util/ldap.rb +2 -0
  936. data/lib/puppet/util/libuser.rb +3 -2
  937. data/lib/puppet/util/limits.rb +2 -0
  938. data/lib/puppet/util/lockfile.rb +8 -8
  939. data/lib/puppet/util/log/destination.rb +4 -3
  940. data/lib/puppet/util/log/destinations.rb +20 -20
  941. data/lib/puppet/util/log.rb +40 -31
  942. data/lib/puppet/util/logging.rb +34 -30
  943. data/lib/puppet/util/metaid.rb +2 -1
  944. data/lib/puppet/util/metric.rb +9 -6
  945. data/lib/puppet/util/monkey_patches.rb +22 -30
  946. data/lib/puppet/util/multi_match.rb +9 -5
  947. data/lib/puppet/util/network_device/base.rb +3 -2
  948. data/lib/puppet/util/network_device/config.rb +9 -9
  949. data/lib/puppet/util/network_device/transport/base.rb +1 -1
  950. data/lib/puppet/util/network_device/transport.rb +2 -0
  951. data/lib/puppet/util/network_device.rb +2 -0
  952. data/lib/puppet/util/package/version/debian.rb +33 -31
  953. data/lib/puppet/util/package/version/gem.rb +3 -0
  954. data/lib/puppet/util/package/version/pip.rb +14 -8
  955. data/lib/puppet/util/package/version/range/eq.rb +4 -1
  956. data/lib/puppet/util/package/version/range/gt.rb +3 -0
  957. data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
  958. data/lib/puppet/util/package/version/range/lt.rb +4 -1
  959. data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
  960. data/lib/puppet/util/package/version/range/min_max.rb +5 -0
  961. data/lib/puppet/util/package/version/range/simple.rb +2 -0
  962. data/lib/puppet/util/package/version/range.rb +9 -5
  963. data/lib/puppet/util/package/version/rpm.rb +7 -5
  964. data/lib/puppet/util/package.rb +5 -2
  965. data/lib/puppet/util/pidlock.rb +11 -10
  966. data/lib/puppet/util/platform.rb +5 -3
  967. data/lib/puppet/util/plist.rb +16 -16
  968. data/lib/puppet/util/posix.rb +27 -24
  969. data/lib/puppet/util/profiler/aggregate.rb +7 -10
  970. data/lib/puppet/util/profiler/around_profiler.rb +2 -1
  971. data/lib/puppet/util/profiler/logging.rb +3 -1
  972. data/lib/puppet/util/profiler/object_counts.rb +2 -0
  973. data/lib/puppet/util/profiler/wall_clock.rb +6 -5
  974. data/lib/puppet/util/profiler.rb +2 -0
  975. data/lib/puppet/util/provider_features.rb +10 -6
  976. data/lib/puppet/util/psych_support.rb +2 -0
  977. data/lib/puppet/util/rdoc/code_objects.rb +18 -20
  978. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
  979. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
  980. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
  981. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
  982. data/lib/puppet/util/rdoc/parser.rb +3 -1
  983. data/lib/puppet/util/rdoc.rb +10 -9
  984. data/lib/puppet/util/reference.rb +7 -32
  985. data/lib/puppet/util/resource_template.rb +3 -1
  986. data/lib/puppet/util/retry_action.rb +6 -5
  987. data/lib/puppet/util/rpm_compare.rb +31 -28
  988. data/lib/puppet/util/rubygems.rb +3 -3
  989. data/lib/puppet/util/run_mode.rb +46 -4
  990. data/lib/puppet/util/selinux.rb +72 -38
  991. data/lib/puppet/util/skip_tags.rb +2 -0
  992. data/lib/puppet/util/splayer.rb +2 -0
  993. data/lib/puppet/util/storage.rb +13 -13
  994. data/lib/puppet/util/suidmanager.rb +38 -37
  995. data/lib/puppet/util/symbolic_file_mode.rb +76 -76
  996. data/lib/puppet/util/tag_set.rb +4 -2
  997. data/lib/puppet/util/tagging.rb +12 -13
  998. data/lib/puppet/util/terminal.rb +6 -4
  999. data/lib/puppet/util/user_attr.rb +9 -7
  1000. data/lib/puppet/util/warnings.rb +4 -0
  1001. data/lib/puppet/util/watched_file.rb +4 -1
  1002. data/lib/puppet/util/watcher/change_watcher.rb +2 -0
  1003. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
  1004. data/lib/puppet/util/watcher/timer.rb +2 -0
  1005. data/lib/puppet/util/watcher.rb +5 -5
  1006. data/lib/puppet/util/windows/access_control_entry.rb +3 -1
  1007. data/lib/puppet/util/windows/access_control_list.rb +10 -7
  1008. data/lib/puppet/util/windows/adsi.rb +82 -74
  1009. data/lib/puppet/util/windows/com.rb +10 -7
  1010. data/lib/puppet/util/windows/daemon.rb +77 -80
  1011. data/lib/puppet/util/windows/error.rb +7 -5
  1012. data/lib/puppet/util/windows/eventlog.rb +13 -9
  1013. data/lib/puppet/util/windows/file.rb +49 -45
  1014. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
  1015. data/lib/puppet/util/windows/principal.rb +37 -34
  1016. data/lib/puppet/util/windows/process.rb +36 -40
  1017. data/lib/puppet/util/windows/registry.rb +60 -58
  1018. data/lib/puppet/util/windows/root_certs.rb +5 -3
  1019. data/lib/puppet/util/windows/security.rb +92 -90
  1020. data/lib/puppet/util/windows/security_descriptor.rb +2 -0
  1021. data/lib/puppet/util/windows/service.rb +24 -12
  1022. data/lib/puppet/util/windows/sid.rb +23 -21
  1023. data/lib/puppet/util/windows/string.rb +2 -0
  1024. data/lib/puppet/util/windows/user.rb +56 -55
  1025. data/lib/puppet/util/windows.rb +8 -1
  1026. data/lib/puppet/util/yaml.rb +3 -1
  1027. data/lib/puppet/util.rb +112 -161
  1028. data/lib/puppet/vendor.rb +3 -1
  1029. data/lib/puppet/version.rb +5 -2
  1030. data/lib/puppet/x509/cert_provider.rb +48 -12
  1031. data/lib/puppet/x509/pem_store.rb +3 -1
  1032. data/lib/puppet/x509.rb +2 -0
  1033. data/lib/puppet.rb +22 -19
  1034. data/lib/puppet_pal.rb +2 -0
  1035. data/lib/puppet_x.rb +2 -0
  1036. data/locales/puppet.pot +9723 -5
  1037. data/man/man5/puppet.conf.5 +121 -912
  1038. data/man/man8/puppet-agent.8 +39 -107
  1039. data/man/man8/puppet-apply.8 +18 -51
  1040. data/man/man8/puppet-catalog.8 +25 -122
  1041. data/man/man8/puppet-config.8 +22 -70
  1042. data/man/man8/puppet-describe.8 +6 -22
  1043. data/man/man8/puppet-device.8 +13 -49
  1044. data/man/man8/puppet-doc.8 +8 -24
  1045. data/man/man8/puppet-epp.8 +23 -168
  1046. data/man/man8/puppet-facts.8 +14 -92
  1047. data/man/man8/puppet-filebucket.8 +22 -54
  1048. data/man/man8/puppet-generate.8 +5 -35
  1049. data/man/man8/puppet-help.8 +8 -29
  1050. data/man/man8/puppet-lookup.8 +25 -61
  1051. data/man/man8/puppet-module.8 +19 -124
  1052. data/man/man8/puppet-node.8 +47 -68
  1053. data/man/man8/puppet-parser.8 +12 -55
  1054. data/man/man8/puppet-plugin.8 +10 -33
  1055. data/man/man8/puppet-report.8 +10 -53
  1056. data/man/man8/puppet-resource.8 +19 -44
  1057. data/man/man8/puppet-script.8 +11 -33
  1058. data/man/man8/puppet-ssl.8 +12 -30
  1059. data/man/man8/puppet.8 +90 -20
  1060. data/tasks/tag.rake +34 -0
  1061. metadata +77 -65
  1062. data/CONTRIBUTING.md +0 -161
  1063. data/examples/hiera/etc/hiera.yaml +0 -15
  1064. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  1065. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  1066. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  1067. data/examples/hiera/etc/puppet.conf +0 -3
  1068. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  1069. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  1070. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  1071. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  1072. data/lib/puppet/external/pson/common.rb +0 -374
  1073. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1074. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1075. data/lib/puppet/external/pson/pure.rb +0 -15
  1076. data/lib/puppet/external/pson/version.rb +0 -8
  1077. data/lib/puppet/module_tool/contents_description.rb +0 -89
  1078. data/tasks/benchmark.rake +0 -180
  1079. data/tasks/ci.rake +0 -24
  1080. data/tasks/generate_ast_model.rake +0 -90
  1081. data/tasks/generate_cert_fixtures.rake +0 -194
  1082. data/tasks/manpages.rake +0 -67
  1083. data/tasks/memwalk.rake +0 -195
  1084. data/tasks/parallel.rake +0 -410
  1085. data/tasks/parser.rake +0 -22
  1086. data/tasks/yard.rake +0 -59
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../puppet/util/platform'
2
4
 
3
5
  module Puppet
4
-
5
6
  def self.default_diffargs
6
7
  '-u'
7
8
  end
8
9
 
10
+ # If you modify this, update puppet/type/file/checksum.rb too
9
11
  def self.default_digest_algorithm
10
12
  'sha256'
11
13
  end
@@ -30,6 +32,7 @@ module Puppet
30
32
 
31
33
  def self.default_cadir
32
34
  return "" if Puppet::Util::Platform.windows?
35
+
33
36
  old_ca_dir = "#{Puppet[:ssldir]}/ca"
34
37
  new_ca_dir = "/etc/puppetlabs/puppetserver/ca"
35
38
 
@@ -45,29 +48,15 @@ module Puppet
45
48
  end
46
49
 
47
50
  def self.default_basemodulepath
48
- if Puppet::Util::Platform.windows?
49
- path = ['$codedir/modules']
50
- installdir = ENV["FACTER_env_windows_installdir"]
51
- if installdir
52
- path << "#{installdir}/puppet/modules"
53
- end
54
- path.join(File::PATH_SEPARATOR)
55
- else
56
- '$codedir/modules:/opt/puppetlabs/puppet/modules'
51
+ path = ['$codedir/modules']
52
+ if (run_mode_dir = Puppet.run_mode.common_module_dir)
53
+ path << run_mode_dir
57
54
  end
55
+ path.join(File::PATH_SEPARATOR)
58
56
  end
59
57
 
60
58
  def self.default_vendormoduledir
61
- if Puppet::Util::Platform.windows?
62
- installdir = ENV["FACTER_env_windows_installdir"]
63
- if installdir
64
- "#{installdir}\\puppet\\vendor_modules"
65
- else
66
- nil
67
- end
68
- else
69
- '/opt/puppetlabs/puppet/vendor_modules'
70
- end
59
+ Puppet.run_mode.vendor_module_dir
71
60
  end
72
61
 
73
62
  ############################################################################################
@@ -75,14 +64,14 @@ module Puppet
75
64
  # see the docs for Settings.define_settings
76
65
  ############################################################################################
77
66
 
78
- AS_DURATION = %q{This setting can be a time interval in seconds (30 or 30s), minutes (30m), hours (6h), days (2d), or years (5y).}
67
+ AS_DURATION = 'This setting can be a time interval in seconds (30 or 30s), minutes (30m), hours (6h), days (2d), or years (5y).'
79
68
 
80
69
  # @api public
81
70
  # @param args [Puppet::Settings] the settings object to define default settings for
82
71
  # @return void
83
72
  def self.initialize_default_settings!(settings)
84
73
  settings.define_settings(:main,
85
- :confdir => {
74
+ :confdir => {
86
75
  :default => nil,
87
76
  :type => :directory,
88
77
  :desc => "The main Puppet configuration directory. The default for this setting
@@ -91,7 +80,7 @@ module Puppet
91
80
  directory, but if it's running as any other user, it defaults to being
92
81
  in the user's home directory.",
93
82
  },
94
- :codedir => {
83
+ :codedir => {
95
84
  :default => nil,
96
85
  :type => :directory,
97
86
  :desc => "The main Puppet code directory. The default for this setting
@@ -100,7 +89,7 @@ module Puppet
100
89
  directory, but if it's running as any other user, it defaults to being
101
90
  in the user's home directory.",
102
91
  },
103
- :vardir => {
92
+ :vardir => {
104
93
  :default => nil,
105
94
  :type => :directory,
106
95
  :owner => "service",
@@ -111,12 +100,12 @@ module Puppet
111
100
 
112
101
  ### NOTE: this setting is usually being set to a symbol value. We don't officially have a
113
102
  ### setting type for that yet, but we might want to consider creating one.
114
- :name => {
103
+ :name => {
115
104
  :default => nil,
116
105
  :desc => "The name of the application, if we are running as one. The
117
106
  default is essentially $0 without the path or `.rb`.",
118
107
  }
119
- )
108
+ )
120
109
 
121
110
  settings.define_settings(:main,
122
111
  :logdir => {
@@ -130,7 +119,7 @@ module Puppet
130
119
  :log_level => {
131
120
  :default => 'notice',
132
121
  :type => :enum,
133
- :values => ["debug","info","notice","warning","err","alert","emerg","crit"],
122
+ :values => %w[debug info notice warning err alert emerg crit],
134
123
  :desc => "Default logging level for messages from Puppet. Allowed values are:
135
124
 
136
125
  * debug
@@ -160,11 +149,11 @@ module Puppet
160
149
  * `deprecations` --- disables deprecation warnings.
161
150
  * `undefined_variables` --- disables warnings about non existing variables.
162
151
  * `undefined_resources` --- disables warnings about non existing resources.",
163
- :hook => proc do |value|
152
+ :hook => proc do |value|
164
153
  values = munge(value)
165
154
  valid = %w[deprecations undefined_variables undefined_resources]
166
155
  invalid = values - (values & valid)
167
- if not invalid.empty?
156
+ unless invalid.empty?
168
157
  raise ArgumentError, _("Cannot disable unrecognized warning types '%{invalid}'.") % { invalid: invalid.join(',') } +
169
158
  ' ' + _("Valid values are '%{values}'.") % { values: valid.join(', ') }
170
159
  end
@@ -173,8 +162,8 @@ module Puppet
173
162
  :skip_logging_catalog_request_destination => {
174
163
  :default => false,
175
164
  :type => :boolean,
176
- :desc => "If you wish to suppress the notice of which compiler supplied the
177
- catalog",
165
+ :desc => "Specifies whether to suppress the notice of which compiler
166
+ supplied the catalog. A value of `true` suppresses the notice.",
178
167
  },
179
168
  :merge_dependency_warnings => {
180
169
  :default => false,
@@ -190,14 +179,14 @@ module Puppet
190
179
  ",
191
180
  },
192
181
  :strict => {
193
- :default => :warning,
182
+ :default => :error,
194
183
  :type => :symbolic_enum,
195
184
  :values => [:off, :warning, :error],
196
185
  :desc => "The strictness level of puppet. Allowed values are:
197
186
 
198
187
  * off - do not perform extra validation, do not report
199
- * warning - perform extra validation, report as warning (default)
200
- * error - perform extra validation, fail with error
188
+ * warning - perform extra validation, report as warning
189
+ * error - perform extra validation, fail with error (default)
201
190
 
202
191
  The strictness level is for both language semantics and runtime
203
192
  evaluation validation. In addition to controlling the behavior with
@@ -208,7 +197,7 @@ module Puppet
208
197
  but may be added in minor releases (x.y.0). In major releases
209
198
  it expected that most (if not all) strictness validation become
210
199
  standard behavior.",
211
- :hook => proc do |value|
200
+ :hook => proc do |value|
212
201
  munge(value)
213
202
  value.to_sym
214
203
  end
@@ -370,12 +359,14 @@ module Puppet
370
359
  This setting can only be set in the `[main]` section of puppet.conf; it cannot
371
360
  be set in `[server]`, `[agent]`, or an environment config section.",
372
361
  :call_hook => :on_define_and_write,
373
- :hook => proc do |value|
374
- Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
375
- Puppet::Util.set_env('PATH', value) unless value == 'none'
376
- paths = Puppet::Util.get_env('PATH').split(File::PATH_SEPARATOR)
362
+ :hook => proc do |value|
363
+ ENV['PATH'] = '' if ENV['PATH'].nil?
364
+ ENV['PATH'] = value unless value == 'none'
365
+ paths = ENV['PATH'].split(File::PATH_SEPARATOR)
377
366
  Puppet::Util::Platform.default_paths.each do |path|
378
- Puppet::Util.set_env('PATH', Puppet::Util.get_env('PATH') + File::PATH_SEPARATOR + path) unless paths.include?(path)
367
+ next if paths.include?(path)
368
+
369
+ ENV['PATH'] = ENV.fetch('PATH', nil) + File::PATH_SEPARATOR + path
379
370
  end
380
371
  value
381
372
  end
@@ -427,14 +418,16 @@ module Puppet
427
418
  :type => :boolean,
428
419
  :default => true,
429
420
  :desc => <<-'EOT'
430
- When versioned_environment_dirs is `true` Puppet will readlink the environmentpath
431
- when constructing the environment's modulepath. The full readlinked path is referred
432
- to as the "resolved path" and the configured path potentially containing symlinks is
433
- the "configured path". When reporting where resources come from users may choose
434
- between the configured or resolved path.
435
-
436
- When set to false, the resolved paths are reported instead of the configured paths.
437
- EOT
421
+ Specifies how environment paths are reported. When the value of
422
+ `versioned_environment_dirs` is `true`, Puppet applies the readlink function to
423
+ the `environmentpath` setting when constructing the environment's modulepath. The
424
+ full readlinked path is referred to as the "resolved path," and the configured
425
+ path potentially containing symlinks is the "configured path." When reporting
426
+ where resources come from, users may choose between the configured and resolved
427
+ path.
428
+
429
+ When set to `false`, the resolved paths are reported instead of the configured paths.
430
+ EOT
438
431
  },
439
432
  :use_last_environment => {
440
433
  :type => :boolean,
@@ -445,7 +438,7 @@ module Puppet
445
438
  environment and skip the node request.
446
439
 
447
440
  When set to false, we will do the node request and ignore the environment data from the last_run_summary file.
448
- EOT
441
+ EOT
449
442
  },
450
443
  :always_retry_plugins => {
451
444
  :type => :boolean,
@@ -466,10 +459,10 @@ module Puppet
466
459
  feature. This behavior is almost always appropriate for the server,
467
460
  and can result in a significant performance improvement for types and
468
461
  features that are checked frequently.
469
- EOT
462
+ EOT
470
463
  },
471
464
  :diff_args => {
472
- :default => lambda { default_diffargs },
465
+ :default => -> { default_diffargs },
473
466
  :desc => "Which arguments to pass to the diff command when printing differences between
474
467
  files. The command to use can be chosen with the `diff` setting.",
475
468
  },
@@ -491,19 +484,19 @@ module Puppet
491
484
  },
492
485
  :daemonize => {
493
486
  :type => :boolean,
494
- :default => (Puppet::Util::Platform.windows? ? false : true),
487
+ :default => !Puppet::Util::Platform.windows?,
495
488
  :desc => "Whether to send the process into the background. This defaults
496
489
  to true on POSIX systems, and to false on Windows (where Puppet
497
490
  currently cannot daemonize).",
498
491
  :short => "D",
499
492
  :hook => proc do |value|
500
- if value and Puppet::Util::Platform.windows?
501
- raise "Cannot daemonize on Windows"
502
- end
503
- end
493
+ if value and Puppet::Util::Platform.windows?
494
+ raise "Cannot daemonize on Windows"
495
+ end
496
+ end
504
497
  },
505
498
  :maximum_uid => {
506
- :default => 4294967290,
499
+ :default => 4_294_967_290,
507
500
  :type => :integer,
508
501
  :desc => "The maximum allowed UID. Some platforms use negative UIDs
509
502
  but then ship with tools that do not know how to handle signed ints,
@@ -589,7 +582,7 @@ module Puppet
589
582
  :desc => "The binder configuration file. Puppet reads this file on each request to configure the bindings system.
590
583
  If set to nil (the default), a $confdir/binder_config.yaml is optionally loaded. If it does not exists, a default configuration
591
584
  is used. If the setting :binding_config is specified, it must reference a valid and existing yaml file.",
592
- :type => :file,
585
+ :type => :file,
593
586
  },
594
587
  :catalog_terminus => {
595
588
  :type => :terminus,
@@ -649,10 +642,10 @@ module Puppet
649
642
  :default => "none",
650
643
  :desc => "The user name for an authenticated HTTP proxy. Requires the `http_proxy_host` setting.",
651
644
  },
652
- :http_proxy_password =>{
645
+ :http_proxy_password => {
653
646
  :default => "none",
654
647
  :hook => proc do |value|
655
- if value =~ /[@!# \/]/
648
+ if value =~ %r{[@!# /]}
656
649
  raise "Passwords set in the http_proxy_password setting must be valid as part of a URL, and any reserved characters must be URL-encoded. We received: #{value}"
657
650
  end
658
651
  end,
@@ -713,7 +706,7 @@ Fine grained control of filetimeouts is deprecated. In future
713
706
  releases this value will only determine if file content is cached.
714
707
 
715
708
  Valid values are 0 (never cache) and 15 (15 second minimum wait time).
716
- WARNING
709
+ WARNING
717
710
  end
718
711
  end
719
712
  },
@@ -749,7 +742,7 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
749
742
  "
750
743
  },
751
744
  :environment_data_provider => {
752
- :desc => "The name of a registered environment data provider used when obtaining environment
745
+ :desc => "The name of a registered environment data provider used when obtaining environment
753
746
  specific data. The three built in and registered providers are 'none' (no data), 'function' (data
754
747
  obtained by calling the function 'environment::data()') and 'hiera' (data obtained using a data
755
748
  provider configured using a hiera.yaml file in root of the environment).
@@ -790,14 +783,14 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
790
783
  },
791
784
  :location_trusted => {
792
785
  :default => false,
793
- :type => :boolean,
794
- :desc => "This will allow sending the name + password and the cookie header to all hosts that puppet may redirect to.
786
+ :type => :boolean,
787
+ :desc => "This will allow sending the name + password and the cookie header to all hosts that puppet may redirect to.
795
788
  This may or may not introduce a security breach if puppet redirects you to a site to which you'll send your authentication info and cookies."
796
789
  }
797
790
  )
798
791
 
799
792
  settings.define_settings(:module_tool,
800
- :module_repository => {
793
+ :module_repository => {
801
794
  :default => 'https://forgeapi.puppet.com',
802
795
  :desc => "The module repository",
803
796
  },
@@ -817,11 +810,10 @@ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
817
810
 
818
811
  settings.define_settings(
819
812
  :main,
820
-
821
813
  # We have to downcase the fqdn, because the current ssl stuff (as opposed to in master) doesn't have good facilities for
822
814
  # manipulating naming.
823
815
  :certname => {
824
- :default => lambda { Puppet::Settings.default_certname.downcase },
816
+ :default => -> { Puppet::Settings.default_certname.downcase },
825
817
  :desc => "The name to use when handling certificates. When a node
826
818
  requests a certificate from the CA Puppet Server, it uses the value of the
827
819
  `certname` setting as its requested Subject CN.
@@ -916,7 +908,7 @@ EOT
916
908
  },
917
909
  :certdir => {
918
910
  :default => "$ssldir/certs",
919
- :type => :directory,
911
+ :type => :directory,
920
912
  :mode => "0755",
921
913
  :owner => "service",
922
914
  :group => "service",
@@ -924,7 +916,7 @@ EOT
924
916
  },
925
917
  :ssldir => {
926
918
  :default => "$confdir/ssl",
927
- :type => :directory,
919
+ :type => :directory,
928
920
  :mode => "0771",
929
921
  :owner => "service",
930
922
  :group => "service",
@@ -937,7 +929,7 @@ EOT
937
929
  },
938
930
  :publickeydir => {
939
931
  :default => "$ssldir/public_keys",
940
- :type => :directory,
932
+ :type => :directory,
941
933
  :mode => "0755",
942
934
  :owner => "service",
943
935
  :group => "service",
@@ -953,7 +945,7 @@ EOT
953
945
  },
954
946
  :privatekeydir => {
955
947
  :default => "$ssldir/private_keys",
956
- :type => :directory,
948
+ :type => :directory,
957
949
  :mode => "0750",
958
950
  :owner => "service",
959
951
  :group => "service",
@@ -961,7 +953,7 @@ EOT
961
953
  },
962
954
  :privatedir => {
963
955
  :default => "$ssldir/private",
964
- :type => :directory,
956
+ :type => :directory,
965
957
  :mode => "0750",
966
958
  :owner => "service",
967
959
  :group => "service",
@@ -969,7 +961,7 @@ EOT
969
961
  },
970
962
  :passfile => {
971
963
  :default => "$privatedir/password",
972
- :type => :file,
964
+ :type => :file,
973
965
  :mode => "0640",
974
966
  :owner => "service",
975
967
  :group => "service",
@@ -978,7 +970,7 @@ EOT
978
970
  },
979
971
  :hostcsr => {
980
972
  :default => "$requestdir/$certname.pem",
981
- :type => :file,
973
+ :type => :file,
982
974
  :mode => "0644",
983
975
  :owner => "service",
984
976
  :group => "service",
@@ -987,7 +979,7 @@ EOT
987
979
  },
988
980
  :hostcert => {
989
981
  :default => "$certdir/$certname.pem",
990
- :type => :file,
982
+ :type => :file,
991
983
  :mode => "0644",
992
984
  :owner => "service",
993
985
  :group => "service",
@@ -995,7 +987,7 @@ EOT
995
987
  },
996
988
  :hostprivkey => {
997
989
  :default => "$privatekeydir/$certname.pem",
998
- :type => :file,
990
+ :type => :file,
999
991
  :mode => "0640",
1000
992
  :owner => "service",
1001
993
  :group => "service",
@@ -1003,7 +995,7 @@ EOT
1003
995
  },
1004
996
  :hostpubkey => {
1005
997
  :default => "$publickeydir/$certname.pem",
1006
- :type => :file,
998
+ :type => :file,
1007
999
  :mode => "0644",
1008
1000
  :owner => "service",
1009
1001
  :group => "service",
@@ -1011,7 +1003,7 @@ EOT
1011
1003
  },
1012
1004
  :localcacert => {
1013
1005
  :default => "$certdir/ca.pem",
1014
- :type => :file,
1006
+ :type => :file,
1015
1007
  :mode => "0644",
1016
1008
  :owner => "service",
1017
1009
  :group => "service",
@@ -1019,7 +1011,7 @@ EOT
1019
1011
  },
1020
1012
  :ca_fingerprint => {
1021
1013
  :default => nil,
1022
- :type => :string,
1014
+ :type => :string,
1023
1015
  :desc => "The expected fingerprint of the CA certificate. If specified, the agent
1024
1016
  will compare the CA certificate fingerprint that it downloads against this value
1025
1017
  and reject the CA certificate if the values do not match. This only applies
@@ -1036,7 +1028,7 @@ EOT
1036
1028
  },
1037
1029
  :hostcrl => {
1038
1030
  :default => "$ssldir/crl.pem",
1039
- :type => :file,
1031
+ :type => :file,
1040
1032
  :mode => "0644",
1041
1033
  :owner => "service",
1042
1034
  :group => "service",
@@ -1089,7 +1081,7 @@ EOT
1089
1081
  Default is `prime256v1`."
1090
1082
  },
1091
1083
  :digest_algorithm => {
1092
- :default => lambda { default_digest_algorithm },
1084
+ :default => -> { default_digest_algorithm },
1093
1085
  :type => :enum,
1094
1086
  :values => valid_digest_algorithms,
1095
1087
  :desc => "Which digest algorithm to use for file resources and the filebucket.
@@ -1097,7 +1089,7 @@ EOT
1097
1089
  #{default_digest_algorithm}.",
1098
1090
  },
1099
1091
  :supported_checksum_types => {
1100
- :default => lambda { default_file_checksum_types },
1092
+ :default => -> { default_file_checksum_types },
1101
1093
  :type => :array,
1102
1094
  :desc => "Checksum types supported by this agent for use in file resources of a
1103
1095
  static catalog. Values must be comma-separated. Valid types are
@@ -1107,7 +1099,7 @@ EOT
1107
1099
  values = munge(value)
1108
1100
 
1109
1101
  invalid = values - Puppet.valid_file_checksum_types
1110
- if not invalid.empty?
1102
+ unless invalid.empty?
1111
1103
  raise ArgumentError, _("Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'") % {
1112
1104
  value: invalid.first, name: @name, allowed_values: Puppet.valid_file_checksum_types.join("', '")
1113
1105
  }
@@ -1132,7 +1124,7 @@ EOT
1132
1124
  :desc => "The name to use the Certificate Authority certificate.",
1133
1125
  },
1134
1126
  :cadir => {
1135
- :default => lambda { default_cadir },
1127
+ :default => -> { default_cadir },
1136
1128
  :type => :directory,
1137
1129
  :desc => "The root directory for the certificate authority.",
1138
1130
  },
@@ -1212,23 +1204,60 @@ EOT
1212
1204
  :desc => "The default TTL for new certificates.
1213
1205
  #{AS_DURATION}",
1214
1206
  },
1215
- :crl_refresh_interval => {
1207
+ :ca_refresh_interval => {
1208
+ :default => "1d",
1216
1209
  :type => :duration,
1217
- :desc => "How often the Puppet agent refreshes its local CRL. By
1218
- default the CRL is only downloaded once, and never refreshed. If a
1219
- duration is specified, then the agent will refresh its CRL whenever it
1220
- next runs and the elapsed time since the CRL was last refreshed exceeds
1221
- the duration.
1222
-
1223
- In general, the duration should be greater than the `runinterval`.
1224
- Setting it to an equal or lesser value will cause the CRL to be
1210
+ :desc => "How often the Puppet agent refreshes its local CA
1211
+ certificates. By default, CA certificates are refreshed every 24 hours. If a
1212
+ different interval is specified, the agent refreshes its CA certificates during
1213
+ the next agent run if the elapsed time since the certificates were last
1214
+ refreshed exceeds the specified duration.
1215
+
1216
+ In general, the interval should be greater than the `runinterval`
1217
+ value. Setting the `ca_refresh_interval` value to 0 or an equal or
1218
+ lesser value than `runinterval` causes the CA certificates to be
1225
1219
  refreshed on every run.
1226
1220
 
1221
+ If the agent downloads new CA certs, the agent uses those for subsequent
1222
+ network requests. If the refresh request fails or if the CA certs are
1223
+ unchanged on the server, then the agent run will continue using the
1224
+ local CA certs it already has. #{AS_DURATION}",
1225
+ },
1226
+ :crl_refresh_interval => {
1227
+ :default => "1d",
1228
+ :type => :duration,
1229
+ :desc => "How often the Puppet agent refreshes its local Certificate
1230
+ Revocation List (CRL). By default, the CRL is refreshed every 24 hours. If
1231
+ a different interval is specified, the agent refreshes its CRL on the next
1232
+ Puppet agent run if the elapsed time since the CRL was last refreshed
1233
+ exceeds the specified interval.
1234
+
1235
+ In general, the interval should be greater than the `runinterval` value.
1236
+ Setting the `crl_refresh_interval` value to 0 or an equal or lesser value
1237
+ than `runinterval` causes the CRL to be refreshed on every run.
1238
+
1227
1239
  If the agent downloads a new CRL, the agent will use it for subsequent
1228
1240
  network requests. If the refresh request fails or if the CRL is
1229
1241
  unchanged on the server, then the agent run will continue using the
1230
1242
  local CRL it already has.#{AS_DURATION}",
1231
1243
  },
1244
+ :hostcert_renewal_interval => {
1245
+ :default => "30d",
1246
+ :type => :duration,
1247
+ :desc => "How often the Puppet agent renews its client certificate. By
1248
+ default, the client certificate is renewed 30 days before the certificate
1249
+ expires. If a different interval is specified, the agent renews its client
1250
+ certificate during the next agent run, assuming that the client certificate has
1251
+ expired within the specified duration.
1252
+
1253
+ In general, the `hostcert_renewal_interval` value should be greater than the
1254
+ `runinterval` value. Setting the `hostcert_renewal_interval` value to 0 disables
1255
+ automatic renewal.
1256
+
1257
+ If the agent downloads a new certificate, the agent will use it
1258
+ for subsequent network requests. If the refresh request fails, the agent run
1259
+ continues to use its existing certificate. #{AS_DURATION}",
1260
+ },
1232
1261
  :keylength => {
1233
1262
  :default => 4096,
1234
1263
  :type => :integer,
@@ -1242,7 +1271,7 @@ EOT
1242
1271
  }
1243
1272
  )
1244
1273
 
1245
- # Define the config default.
1274
+ # Define the config default.
1246
1275
 
1247
1276
  settings.define_settings(:application,
1248
1277
  :config_file_name => {
@@ -1266,8 +1295,8 @@ EOT
1266
1295
  :sourceaddress => {
1267
1296
  :default => nil,
1268
1297
  :desc => "The address the agent should use to initiate requests.",
1269
- },
1270
- )
1298
+ }
1299
+ )
1271
1300
 
1272
1301
  settings.define_settings(:environment,
1273
1302
  :manifest => {
@@ -1387,7 +1416,7 @@ EOT
1387
1416
  :desc => "File that provides mapping between custom SSL oids and user-friendly names"
1388
1417
  },
1389
1418
  :basemodulepath => {
1390
- :default => lambda { default_basemodulepath },
1419
+ :default => -> { default_basemodulepath },
1391
1420
  :type => :path,
1392
1421
  :desc => "The search path for **global** modules. Should be specified as a
1393
1422
  list of directories separated by the system path separator character. (The
@@ -1399,7 +1428,7 @@ EOT
1399
1428
  <https://puppet.com/docs/puppet/latest/environments_about.html>",
1400
1429
  },
1401
1430
  :vendormoduledir => {
1402
- :default => lambda { default_vendormoduledir },
1431
+ :default => -> { default_vendormoduledir },
1403
1432
  :type => :string,
1404
1433
  :desc => "The directory containing **vendored** modules. These modules will
1405
1434
  be used by _all_ environments like those in the `basemodulepath`. The only
@@ -1466,10 +1495,12 @@ EOT
1466
1495
  To turn off reports entirely, set this to `none`",
1467
1496
  },
1468
1497
  :exclude_unchanged_resources => {
1469
- :default => false,
1498
+ :default => true,
1470
1499
  :type => :boolean,
1471
- :desc => 'When set to true, resources that have had no changes after catalog application
1472
- will not have corresponding unchanged resource status updates listed in the report.'
1500
+ :desc => "Specifies how unchanged resources are listed in reports. When
1501
+ set to `true`, resources that have had no changes after catalog application
1502
+ will not have corresponding unchanged resource status updates listed in a
1503
+ report."
1473
1504
  },
1474
1505
  :reportdir => {
1475
1506
  :default => "$vardir/reports",
@@ -1591,7 +1622,7 @@ EOT
1591
1622
  :owner => "root",
1592
1623
  :mode => "0640",
1593
1624
  :desc => "The file in which puppet agent stores a list of the resources
1594
- associated with the retrieved configuration." },
1625
+ associated with the retrieved configuration." },
1595
1626
  :puppetdlog => {
1596
1627
  :default => "$logdir/puppetd.log",
1597
1628
  :type => :file,
@@ -1634,7 +1665,7 @@ EOT
1634
1665
  :desc => "Whether the server will search for SRV records in DNS for the current domain.",
1635
1666
  },
1636
1667
  :srv_domain => {
1637
- :default => lambda { Puppet::Settings.domain_fact },
1668
+ :default => -> { Puppet::Settings.domain_fact },
1638
1669
  :desc => "The domain which will be queried to find the SRV records of servers to use.",
1639
1670
  },
1640
1671
  :http_extra_headers => {
@@ -1712,15 +1743,21 @@ EOT
1712
1743
  instances will be serialized using this method, since not all classes
1713
1744
  can be guaranteed to support this format, but it will be used for all
1714
1745
  classes that support it.",
1746
+ :hook => proc { |value|
1747
+ if value == "pson" && !Puppet.features.pson?
1748
+ raise(Puppet::Settings::ValidationError, "The 'puppet-pson' gem must be installed to use the PSON serialization format.")
1749
+ end
1750
+ }
1715
1751
  },
1716
1752
  :allow_pson_serialization => {
1717
- :default => true,
1753
+ :default => false,
1718
1754
  :type => :boolean,
1719
- :desc => "Whether when unable to serialize to JSON or other formats,
1720
- Puppet falls back to PSON. This option affects both puppetserver's
1721
- configuration management service responses and when the agent saves its
1722
- cached catalog. This option is useful in preventing the loss of data because
1723
- rich data cannot be serialized via PSON.",
1755
+ :desc => "Whether to allow PSON serialization. When unable to serialize to
1756
+ JSON or other formats, Puppet falls back to PSON. This option affects the
1757
+ configuration management service responses of Puppet Server and the process by
1758
+ which the agent saves its cached catalog. With a default value of `false`, this
1759
+ option is useful in preventing the loss of data because rich data cannot be
1760
+ serialized via PSON.",
1724
1761
  },
1725
1762
  :agent_catalog_run_lockfile => {
1726
1763
  :default => "$statedir/agent_catalog_run.lock",
@@ -1744,9 +1781,9 @@ EOT
1744
1781
  },
1745
1782
  :include_legacy_facts => {
1746
1783
  :type => :boolean,
1747
- :default => true,
1784
+ :default => false,
1748
1785
  :desc => "Whether to include legacy facts when requesting a catalog. This
1749
- option can be set to false provided all puppet manifests, hiera.yaml and hiera
1786
+ option can be set to `false` if all puppet manifests, hiera.yaml, and hiera
1750
1787
  configuration layers no longer access legacy facts, such as `$osfamily`, and
1751
1788
  instead access structured facts, such as `$facts['os']['family']`."
1752
1789
  },
@@ -1766,7 +1803,7 @@ EOT
1766
1803
  :desc => "The soft limit for the number of top level facts.",
1767
1804
  },
1768
1805
  :number_of_facts_soft_limit => {
1769
- :default => 2048,
1806
+ :default => 10_240,
1770
1807
  :type => :integer,
1771
1808
  :desc => "The soft limit for the total number of fact values. This counts the
1772
1809
  child elements of all facts (e.g. all items of an array or a hash), not just top
@@ -2002,7 +2039,7 @@ EOT
2002
2039
  :type => :boolean,
2003
2040
  :desc => "Whether plugins should be synced with the central server. This setting is
2004
2041
  deprecated.",
2005
- :hook => proc { |value|
2042
+ :hook => proc { |_value|
2006
2043
  #TRANSLATORS 'pluginsync' is a setting and should not be translated
2007
2044
  Puppet.deprecation_warning(_("Setting 'pluginsync' is deprecated."))
2008
2045
  }
@@ -2020,7 +2057,7 @@ EOT
2020
2057
  }
2021
2058
  )
2022
2059
 
2023
- # Central fact information.
2060
+ # Central fact information.
2024
2061
 
2025
2062
  settings.define_settings(
2026
2063
  :main,
@@ -2062,14 +2099,14 @@ EOT
2062
2099
  what is being done.",
2063
2100
  },
2064
2101
  :preprocess_deferred => {
2065
- :default => true,
2102
+ :default => false,
2066
2103
  :type => :boolean,
2067
- :desc => "Whether puppet should call deferred functions before applying
2068
- the catalog. If set to `true`, then all prerequisites needed for the
2069
- deferred function must be satified prior to puppet running. If set to
2070
- `false`, then deferred functions will follow puppet relationships and
2071
- ordering. This allows puppet to install prerequisites needed for a
2072
- deferred function and call the deferred function in the same run."
2104
+ :desc => "Whether Puppet should call deferred functions before applying
2105
+ the catalog. If set to `true`, all prerequisites required for the
2106
+ deferred function must be satisfied before the Puppet run. If set to
2107
+ `false`, deferred functions follow Puppet relationships and
2108
+ ordering. In this way, Puppet can install the prerequisites required for a
2109
+ deferred function and call the deferred function in the same run.",
2073
2110
  },
2074
2111
  :summarize => {
2075
2112
  :default => false,
@@ -2091,22 +2128,24 @@ EOT
2091
2128
  can produce node information. The command must:
2092
2129
 
2093
2130
  * Take the name of a node as a command-line argument.
2131
+
2094
2132
  * Return a YAML hash with up to three keys:
2095
2133
  * `classes` --- A list of classes, as an array or hash.
2096
2134
  * `environment` --- A string.
2097
2135
  * `parameters` --- A list of top-scope variables to set, as a hash.
2136
+
2098
2137
  * For unknown nodes, exit with a non-zero exit code.
2099
2138
 
2100
2139
  Generally, an ENC script makes requests to an external data source.
2101
2140
 
2102
2141
  For more info, see [the ENC documentation](https://puppet.com/docs/puppet/latest/nodes_external.html).",
2103
2142
  }
2104
- )
2143
+ )
2105
2144
 
2106
2145
  settings.define_settings(
2107
2146
  :ldap,
2108
2147
  :ldapssl => {
2109
- :default => false,
2148
+ :default => false,
2110
2149
  :type => :boolean,
2111
2150
  :desc => "Whether SSL should be used when searching for nodes.
2112
2151
  Defaults to false because SSL usually requires certificates
@@ -2171,7 +2210,7 @@ EOT
2171
2210
  have one already set. Generally, it should be the 'ou=Hosts'
2172
2211
  branch under your main directory.",
2173
2212
  }
2174
- )
2213
+ )
2175
2214
 
2176
2215
  settings.define_settings(:server,
2177
2216
  :storeconfigs => {
@@ -2235,7 +2274,7 @@ EOT
2235
2274
  EOT
2236
2275
  },
2237
2276
  :strict_variables => {
2238
- :default => false,
2277
+ :default => true,
2239
2278
  :type => :boolean,
2240
2279
  :desc => <<-'EOT'
2241
2280
  Causes an evaluation error when referencing unknown variables. (This does not affect