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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../puppet'
2
4
  require 'getoptlong'
3
5
  require_relative '../puppet/util/watched_file'
@@ -48,26 +50,26 @@ class Puppet::Settings
48
50
  REQUIRED_APP_SETTINGS = [:logdir, :confdir, :vardir, :codedir]
49
51
 
50
52
  # The acceptable sections of the puppet.conf configuration file.
51
- ALLOWED_SECTION_NAMES = ['main', 'server', 'master', 'agent', 'user'].freeze
53
+ ALLOWED_SECTION_NAMES = %w[main server master agent user].freeze
52
54
 
53
- NONE = 'none'.freeze
55
+ NONE = 'none'
54
56
 
55
57
  # This method is intended for puppet internal use only; it is a convenience method that
56
58
  # returns reasonable application default settings values for a given run_mode.
57
59
  def self.app_defaults_for_run_mode(run_mode)
58
60
  {
59
- :name => run_mode.to_s,
60
- :run_mode => run_mode.name,
61
- :confdir => run_mode.conf_dir,
62
- :codedir => run_mode.code_dir,
63
- :vardir => run_mode.var_dir,
64
- :publicdir => run_mode.public_dir,
65
- :rundir => run_mode.run_dir,
66
- :logdir => run_mode.log_dir,
61
+ :name => run_mode.to_s,
62
+ :run_mode => run_mode.name,
63
+ :confdir => run_mode.conf_dir,
64
+ :codedir => run_mode.code_dir,
65
+ :vardir => run_mode.var_dir,
66
+ :publicdir => run_mode.public_dir,
67
+ :rundir => run_mode.run_dir,
68
+ :logdir => run_mode.log_dir,
67
69
  }
68
70
  end
69
71
 
70
- def self.default_certname()
72
+ def self.default_certname
71
73
  hostname = hostname_fact
72
74
  domain = domain_fact
73
75
  if domain and domain != ""
@@ -78,12 +80,12 @@ class Puppet::Settings
78
80
  fqdn.to_s.gsub(/\.$/, '')
79
81
  end
80
82
 
81
- def self.hostname_fact()
82
- Puppet.runtime[:facter].value :hostname
83
+ def self.hostname_fact
84
+ Puppet.runtime[:facter].value('networking.hostname')
83
85
  end
84
86
 
85
- def self.domain_fact()
86
- Puppet.runtime[:facter].value :domain
87
+ def self.domain_fact
88
+ Puppet.runtime[:facter].value('networking.domain')
87
89
  end
88
90
 
89
91
  def self.default_config_file_name
@@ -119,9 +121,10 @@ class Puppet::Settings
119
121
  newhash = {}
120
122
  hash.each do |key, val|
121
123
  key = key.to_s
122
- if val.is_a? Hash
124
+ case val
125
+ when Hash
123
126
  newhash[key] = stringifyhash(val)
124
- elsif val.is_a? Symbol
127
+ when Symbol
125
128
  newhash[key] = val.to_s
126
129
  else
127
130
  newhash[key] = val
@@ -152,6 +155,7 @@ class Puppet::Settings
152
155
  @cache = Concurrent::Hash.new do |hash, key|
153
156
  @cache_lock.synchronize do
154
157
  break hash[key] if hash.key?(key)
158
+
155
159
  hash[key] = Concurrent::Hash.new
156
160
  end
157
161
  end
@@ -159,6 +163,7 @@ class Puppet::Settings
159
163
  @values = Concurrent::Hash.new do |hash, key|
160
164
  @values_lock.synchronize do
161
165
  break hash[key] if hash.key?(key)
166
+
162
167
  hash[key] = Concurrent::Hash.new
163
168
  end
164
169
  end
@@ -215,7 +220,7 @@ class Puppet::Settings
215
220
  # understand, and add them to the passed option list.
216
221
  def addargs(options)
217
222
  # Add all of the settings as valid options.
218
- self.each { |name, setting|
223
+ each { |_name, setting|
219
224
  setting.getopt_args.each { |args| options << args }
220
225
  }
221
226
 
@@ -226,7 +231,7 @@ class Puppet::Settings
226
231
  # understand, and add them to the passed option list.
227
232
  def optparse_addargs(options)
228
233
  # Add all of the settings as valid options.
229
- self.each { |name, setting|
234
+ each { |_name, setting|
230
235
  options << setting.optparse_args
231
236
  }
232
237
 
@@ -236,7 +241,7 @@ class Puppet::Settings
236
241
  # Is our setting a boolean setting?
237
242
  def boolean?(param)
238
243
  param = param.to_sym
239
- @config.include?(param) and @config[param].kind_of?(BooleanSetting)
244
+ @config.include?(param) and @config[param].is_a?(BooleanSetting)
240
245
  end
241
246
 
242
247
  # Remove all set values, potentially skipping cli values.
@@ -277,7 +282,6 @@ class Puppet::Settings
277
282
  #
278
283
  # @api private
279
284
  def clear_environment_settings(environment)
280
-
281
285
  if environment.nil?
282
286
  return
283
287
  end
@@ -310,7 +314,7 @@ class Puppet::Settings
310
314
  @used = []
311
315
  end
312
316
 
313
- def global_defaults_initialized?()
317
+ def global_defaults_initialized?
314
318
  @global_defaults_initialized
315
319
  end
316
320
 
@@ -340,7 +344,7 @@ class Puppet::Settings
340
344
  option_parser.ignore_invalid_options = true
341
345
 
342
346
  # Add all global options to it.
343
- self.optparse_addargs([]).each do |option|
347
+ optparse_addargs([]).each do |option|
344
348
  option_parser.on(*option) do |arg|
345
349
  opt, val = Puppet::Settings.clean_opt(option[0], arg)
346
350
  handlearg(opt, val)
@@ -357,7 +361,7 @@ class Puppet::Settings
357
361
 
358
362
  # remove run_mode options from the arguments so that later parses don't think
359
363
  # it is an unknown option.
360
- while option_index = args.index('--run_mode') do #rubocop:disable Lint/AssignmentInCondition
364
+ while option_index = args.index('--run_mode') # rubocop:disable Lint/AssignmentInCondition
361
365
  args.delete_at option_index
362
366
  args.delete_at option_index
363
367
  end
@@ -374,14 +378,13 @@ class Puppet::Settings
374
378
  def self.clean_opt(opt, val)
375
379
  # rewrite --[no-]option to --no-option if that's what was given
376
380
  if opt =~ /\[no-\]/ and !val
377
- opt = opt.gsub(/\[no-\]/,'no-')
381
+ opt = opt.gsub(/\[no-\]/, 'no-')
378
382
  end
379
383
  # otherwise remove the [no-] prefix to not confuse everybody
380
384
  opt = opt.gsub(/\[no-\]/, '')
381
385
  [opt, val]
382
386
  end
383
387
 
384
-
385
388
  def app_defaults_initialized?
386
389
  @app_defaults_initialized
387
390
  end
@@ -418,7 +421,7 @@ class Puppet::Settings
418
421
  def create_ancestors(dir)
419
422
  parent_dir = File.dirname(dir)
420
423
 
421
- if !File.exist?(parent_dir)
424
+ unless File.exist?(parent_dir)
422
425
  FileUtils.mkdir_p(parent_dir)
423
426
  end
424
427
  end
@@ -426,13 +429,11 @@ class Puppet::Settings
426
429
 
427
430
  def call_hooks_deferred_to_application_initialization(options = {})
428
431
  @hooks_to_call_on_application_initialization.each do |setting|
429
- begin
430
- setting.handle(self.value(setting.name))
431
- rescue InterpolationError => err
432
- raise InterpolationError, err.message, err.backtrace unless options[:ignore_interpolation_dependency_errors]
433
- #swallow. We're not concerned if we can't call hooks because dependencies don't exist yet
434
- #we'll get another chance after application defaults are initialized
435
- end
432
+ setting.handle(value(setting.name))
433
+ rescue InterpolationError => err
434
+ raise InterpolationError, err.message, err.backtrace unless options[:ignore_interpolation_dependency_errors]
435
+ # swallow. We're not concerned if we can't call hooks because dependencies don't exist yet
436
+ # we'll get another chance after application defaults are initialized
436
437
  end
437
438
  end
438
439
  private :call_hooks_deferred_to_application_initialization
@@ -473,14 +474,15 @@ class Puppet::Settings
473
474
  def handlearg(opt, value = nil)
474
475
  @cache.clear
475
476
 
476
- if value.is_a?(FalseClass)
477
+ case value
478
+ when FalseClass
477
479
  value = "false"
478
- elsif value.is_a?(TrueClass)
480
+ when TrueClass
479
481
  value = "true"
480
482
  end
481
483
 
482
484
  value &&= @translate[value]
483
- str = opt.sub(/^--/,'')
485
+ str = opt.sub(/^--/, '')
484
486
 
485
487
  bool = true
486
488
  newstr = str.sub(/^no-/, '')
@@ -515,7 +517,7 @@ class Puppet::Settings
515
517
  def print_config_options
516
518
  if Puppet::Util::Log.sendlevel?(:info)
517
519
  Puppet::Util::Log.newdestination(:console)
518
- message = (_("Using --configprint is deprecated. Use 'puppet config <subcommand>' instead."))
520
+ message = _("Using --configprint is deprecated. Use 'puppet config <subcommand>' instead.")
519
521
  Puppet.deprecation_warning(message)
520
522
  end
521
523
 
@@ -523,23 +525,23 @@ class Puppet::Settings
523
525
  val = value(:configprint)
524
526
  if val == "all"
525
527
  hash = {}
526
- each do |name, obj|
527
- val = value(name,env)
528
+ each do |name, _obj|
529
+ val = value(name, env)
528
530
  val = val.inspect if val == ""
529
531
  hash[name] = val
530
532
  end
531
- hash.sort { |a,b| a[0].to_s <=> b[0].to_s }.each do |name, v|
533
+ hash.sort { |a, b| a[0].to_s <=> b[0].to_s }.each do |name, v|
532
534
  puts "#{name} = #{v}"
533
535
  end
534
536
  else
535
537
  val.split(/\s*,\s*/).sort.each do |v|
536
538
  if include?(v)
537
- #if there is only one value, just print it for back compatibility
539
+ # if there is only one value, just print it for back compatibility
538
540
  if v == val
539
- puts value(val,env)
541
+ puts value(val, env)
540
542
  break
541
543
  end
542
- puts "#{v} = #{value(v,env)}"
544
+ puts "#{v} = #{value(v, env)}"
543
545
  else
544
546
  puts "invalid setting: #{v}"
545
547
  return false
@@ -562,6 +564,7 @@ class Puppet::Settings
562
564
  def print_configs
563
565
  return print_config_options if value(:configprint) != ""
564
566
  return generate_config if value(:genconfig)
567
+
565
568
  generate_manifest if value(:genmanifest)
566
569
  end
567
570
 
@@ -583,11 +586,11 @@ class Puppet::Settings
583
586
  def preferred_run_mode=(mode)
584
587
  mode = mode.to_s.downcase.intern
585
588
  raise ValidationError, "Invalid run mode '#{mode}'" unless [:server, :master, :agent, :user].include?(mode)
589
+
586
590
  @preferred_run_mode_name = mode
587
591
  # Changing the run mode has far-reaching consequences. Flush any cached
588
592
  # settings so they will be re-generated.
589
593
  flush_cache
590
- mode
591
594
  end
592
595
 
593
596
  def parse_config(text, file = "text")
@@ -617,7 +620,7 @@ class Puppet::Settings
617
620
 
618
621
  # Determine our environment, if we have one.
619
622
  if @config[:environment]
620
- env = self.value(:environment).to_sym
623
+ env = value(:environment).to_sym
621
624
  else
622
625
  env = NONE
623
626
  end
@@ -626,23 +629,24 @@ class Puppet::Settings
626
629
  value_sets = value_sets_for(env, preferred_run_mode)
627
630
  @config.values.select(&:has_hook?).each do |setting|
628
631
  value_sets.each do |source|
629
- if source.include?(setting.name)
630
- # We still have to use value to retrieve the value, since
631
- # we want the fully interpolated value, not $vardir/lib or whatever.
632
- # This results in extra work, but so few of the settings
633
- # will have associated hooks that it ends up being less work this
634
- # way overall.
635
- if setting.call_hook_on_initialize?
636
- @hooks_to_call_on_application_initialization |= [ setting ]
637
- else
638
- setting.handle(ChainedValues.new(
639
- preferred_run_mode,
640
- env,
641
- value_sets,
642
- @config).interpolate(setting.name))
643
- end
644
- break
632
+ next unless source.include?(setting.name)
633
+
634
+ # We still have to use value to retrieve the value, since
635
+ # we want the fully interpolated value, not $vardir/lib or whatever.
636
+ # This results in extra work, but so few of the settings
637
+ # will have associated hooks that it ends up being less work this
638
+ # way overall.
639
+ if setting.call_hook_on_initialize?
640
+ @hooks_to_call_on_application_initialization |= [setting]
641
+ else
642
+ setting.handle(ChainedValues.new(
643
+ preferred_run_mode,
644
+ env,
645
+ value_sets,
646
+ @config
647
+ ).interpolate(setting.name))
645
648
  end
649
+ break
646
650
  end
647
651
  end
648
652
 
@@ -657,7 +661,7 @@ class Puppet::Settings
657
661
  begin
658
662
  text = read_file(file)
659
663
  rescue => detail
660
- message = _("Could not load %{file}: %{detail}") % { file: file, detail: detail}
664
+ message = _("Could not load %{file}: %{detail}") % { file: file, detail: detail }
661
665
  if require_config
662
666
  Puppet.log_and_raise(detail, message)
663
667
  else
@@ -675,15 +679,15 @@ class Puppet::Settings
675
679
 
676
680
  def main_config_file
677
681
  if explicit_config_file?
678
- return self[:config]
682
+ self[:config]
679
683
  else
680
- return File.join(Puppet::Util::RunMode[:server].conf_dir, config_file_name)
684
+ File.join(Puppet::Util::RunMode[:server].conf_dir, config_file_name)
681
685
  end
682
686
  end
683
687
  private :main_config_file
684
688
 
685
689
  def user_config_file
686
- return File.join(Puppet::Util::RunMode[:user].conf_dir, config_file_name)
690
+ File.join(Puppet::Util::RunMode[:user].conf_dir, config_file_name)
687
691
  end
688
692
  private :user_config_file
689
693
 
@@ -702,7 +706,7 @@ class Puppet::Settings
702
706
  # This just means that the setting wasn't explicitly set on the command line, so we will ignore it and
703
707
  # fall through to the default name.
704
708
  end
705
- return self.class.default_config_file_name
709
+ self.class.default_config_file_name
706
710
  end
707
711
  private :config_file_name
708
712
 
@@ -731,26 +735,26 @@ class Puppet::Settings
731
735
  end
732
736
 
733
737
  SETTING_TYPES = {
734
- :string => StringSetting,
735
- :file => FileSetting,
736
- :directory => DirectorySetting,
737
- :file_or_directory => FileOrDirectorySetting,
738
- :path => PathSetting,
739
- :boolean => BooleanSetting,
740
- :integer => IntegerSetting,
741
- :port => PortSetting,
742
- :terminus => TerminusSetting,
743
- :duration => DurationSetting,
744
- :ttl => TTLSetting,
745
- :array => ArraySetting,
746
- :enum => EnumSetting,
747
- :symbolic_enum => SymbolicEnumSetting,
748
- :priority => PrioritySetting,
749
- :autosign => AutosignSetting,
750
- :server_list => ServerListSetting,
751
- :http_extra_headers => HttpExtraHeadersSetting,
752
- :certificate_revocation => CertificateRevocationSetting,
753
- :alias => AliasSetting
738
+ :string => StringSetting,
739
+ :file => FileSetting,
740
+ :directory => DirectorySetting,
741
+ :file_or_directory => FileOrDirectorySetting,
742
+ :path => PathSetting,
743
+ :boolean => BooleanSetting,
744
+ :integer => IntegerSetting,
745
+ :port => PortSetting,
746
+ :terminus => TerminusSetting,
747
+ :duration => DurationSetting,
748
+ :ttl => TTLSetting,
749
+ :array => ArraySetting,
750
+ :enum => EnumSetting,
751
+ :symbolic_enum => SymbolicEnumSetting,
752
+ :priority => PrioritySetting,
753
+ :autosign => AutosignSetting,
754
+ :server_list => ServerListSetting,
755
+ :http_extra_headers => HttpExtraHeadersSetting,
756
+ :certificate_revocation => CertificateRevocationSetting,
757
+ :alias => AliasSetting
754
758
  }
755
759
 
756
760
  # Create a new setting. The value is passed in because it's used to determine
@@ -768,6 +772,7 @@ class Puppet::Settings
768
772
  unless klass
769
773
  raise ArgumentError, _("Invalid setting type '%{type}'") % { type: type }
770
774
  end
775
+
771
776
  hash.delete(:type)
772
777
  else
773
778
  # The only implicit typing we still do for settings is to fall back to "String" type if they didn't explicitly
@@ -776,9 +781,7 @@ class Puppet::Settings
776
781
  klass = StringSetting
777
782
  end
778
783
  hash[:settings] = self
779
- setting = klass.new(hash)
780
-
781
- setting
784
+ klass.new(hash)
782
785
  end
783
786
 
784
787
  # This has to be private, because it doesn't add the settings to @config
@@ -787,7 +790,7 @@ class Puppet::Settings
787
790
  # Iterate across all of the objects in a given section.
788
791
  def persection(section)
789
792
  section = section.to_sym
790
- self.each { |name, obj|
793
+ each { |_name, obj|
791
794
  if obj.section == section
792
795
  yield obj
793
796
  end
@@ -808,6 +811,7 @@ class Puppet::Settings
808
811
 
809
812
  def files
810
813
  return @files if @files
814
+
811
815
  @files = []
812
816
  [main_config_file, user_config_file].each do |path|
813
817
  if Puppet::FileSystem.exist?(path)
@@ -831,12 +835,13 @@ class Puppet::Settings
831
835
 
832
836
  def reuse
833
837
  return unless defined?(@used)
838
+
834
839
  new = @used
835
840
  @used = []
836
- self.use(*new)
841
+ use(*new)
837
842
  end
838
843
 
839
- class SearchPathElement < Struct.new(:name, :type); end
844
+ SearchPathElement = Struct.new(:name, :type)
840
845
 
841
846
  # The order in which to search for values, without defaults.
842
847
  #
@@ -847,7 +852,7 @@ class Puppet::Settings
847
852
  def configsearchpath(environment = nil, run_mode = preferred_run_mode)
848
853
  searchpath = [
849
854
  SearchPathElement.new(:memory, :values),
850
- SearchPathElement.new(:cli, :values),
855
+ SearchPathElement.new(:cli, :values)
851
856
  ]
852
857
  searchpath << SearchPathElement.new(environment.intern, :environment) if environment
853
858
 
@@ -936,7 +941,7 @@ class Puppet::Settings
936
941
  when :environment
937
942
  ValuesFromEnvironmentConf.new(source.name)
938
943
  else
939
- raise Puppet::DevError, _("Unknown searchpath case: %{source_type} for the %{source} settings path element.") % { source_type: source.type, source: source}
944
+ raise Puppet::DevError, _("Unknown searchpath case: %{source_type} for the %{source} settings path element.") % { source_type: source.type, source: source }
940
945
  end
941
946
  end
942
947
 
@@ -1023,6 +1028,7 @@ class Puppet::Settings
1023
1028
  hash[:name] = name
1024
1029
  hash[:section] = section
1025
1030
  raise ArgumentError, _("Setting %{name} is already defined") % { name: name } if @config.include?(name)
1031
+
1026
1032
  tryconfig = newsetting(hash)
1027
1033
  short = tryconfig.short
1028
1034
  if short
@@ -1030,6 +1036,7 @@ class Puppet::Settings
1030
1036
  if other
1031
1037
  raise ArgumentError, _("Setting %{name} is already using short name '%{short}'") % { name: other.name, short: short }
1032
1038
  end
1039
+
1033
1040
  @shortnames[short] = tryconfig
1034
1041
  end
1035
1042
  @config[name] = tryconfig
@@ -1041,7 +1048,7 @@ class Puppet::Settings
1041
1048
  if tryconfig.call_hook_on_define?
1042
1049
  call << tryconfig
1043
1050
  elsif tryconfig.call_hook_on_initialize?
1044
- @hooks_to_call_on_application_initialization |= [ tryconfig ]
1051
+ @hooks_to_call_on_application_initialization |= [tryconfig]
1045
1052
  end
1046
1053
  end
1047
1054
 
@@ -1049,7 +1056,7 @@ class Puppet::Settings
1049
1056
  end
1050
1057
 
1051
1058
  call.each do |setting|
1052
- setting.handle(self.value(setting.name))
1059
+ setting.handle(value(setting.name))
1053
1060
  end
1054
1061
  end
1055
1062
 
@@ -1061,12 +1068,13 @@ class Puppet::Settings
1061
1068
  @config.keys.find_all { |key| @config[key].is_a?(FileSetting) }.each do |key|
1062
1069
  file = @config[key]
1063
1070
  next if file.value.nil?
1064
- next unless (sections.nil? or sections.include?(file.section))
1071
+ next unless sections.nil? or sections.include?(file.section)
1072
+
1065
1073
  resource = file.to_resource
1066
1074
  next unless resource
1067
1075
  next if catalog.resource(resource.ref)
1068
1076
 
1069
- Puppet.debug {"Using settings: adding file resource '#{key}': '#{resource.inspect}'"}
1077
+ Puppet.debug { "Using settings: adding file resource '#{key}': '#{resource.inspect}'" }
1070
1078
 
1071
1079
  catalog.add_resource(resource)
1072
1080
  end
@@ -1079,22 +1087,21 @@ class Puppet::Settings
1079
1087
 
1080
1088
  # Convert our list of config settings into a configuration file.
1081
1089
  def to_config
1082
- str = %{The configuration file for #{Puppet.run_mode.name}. Note that this file
1090
+ str = %(The configuration file for #{Puppet.run_mode.name}. Note that this file
1083
1091
  is likely to have unused settings in it; any setting that's
1084
- valid anywhere in Puppet can be in any config file, even if it's not used.
1092
+ valid anywhere in OpenVox can be in any config file, even if it's not used.
1085
1093
 
1086
1094
  Every section can specify three special parameters: owner, group, and mode.
1087
1095
  These parameters affect the required permissions of any files specified after
1088
- their specification. Puppet will sometimes use these parameters to check its
1089
- own configured state, so they can be used to make Puppet a bit more self-managing.
1096
+ their specification. OpenVox will sometimes use these parameters to check its
1097
+ own configured state, so they can be used to make OpenVox a bit more self-managing.
1090
1098
 
1091
1099
  The file format supports octothorpe-commented lines, but not partial-line comments.
1092
1100
 
1093
1101
  Generated on #{Time.now}.
1102
+ ).gsub(/^/, "# ")
1094
1103
 
1095
- }.gsub(/^/, "# ")
1096
-
1097
- # Add a section heading that matches our name.
1104
+ # Add a section heading that matches our name.
1098
1105
  str += "[#{preferred_run_mode}]\n"
1099
1106
  eachsection do |section|
1100
1107
  persection(section) do |obj|
@@ -1102,7 +1109,7 @@ Generated on #{Time.now}.
1102
1109
  end
1103
1110
  end
1104
1111
 
1105
- return str
1112
+ str
1106
1113
  end
1107
1114
 
1108
1115
  # Convert to a parseable manifest
@@ -1117,7 +1124,7 @@ Generated on #{Time.now}.
1117
1124
  # you can 'use' a section as many times as you want.
1118
1125
  def use(*sections)
1119
1126
  if Puppet[:settings_catalog]
1120
- sections = sections.collect { |s| s.to_sym }
1127
+ sections = sections.collect(&:to_sym)
1121
1128
  sections = sections.reject { |s| @used.include?(s) }
1122
1129
 
1123
1130
  Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
@@ -1125,7 +1132,7 @@ Generated on #{Time.now}.
1125
1132
  # add :server if sections include :master or :master if sections include :server
1126
1133
  sections |= [:master, :server] if (sections & [:master, :server]).any?
1127
1134
 
1128
- sections = sections.collect { |s| s.to_sym }
1135
+ sections = sections.collect(&:to_sym)
1129
1136
  sections = sections.reject { |s| @used.include?(s) }
1130
1137
 
1131
1138
  return if sections.empty?
@@ -1135,19 +1142,19 @@ Generated on #{Time.now}.
1135
1142
  begin
1136
1143
  catalog = to_catalog(*sections).to_ral
1137
1144
  rescue => detail
1138
- Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
1145
+ Puppet.log_and_raise(detail, "Could not create resources for managing OpenVox's files and directories in sections #{sections.inspect}: #{detail}")
1139
1146
  end
1140
1147
 
1141
1148
  catalog.host_config = false
1142
1149
  catalog.apply do |transaction|
1143
1150
  if transaction.any_failed?
1144
1151
  report = transaction.report
1145
- status_failures = report.resource_statuses.values.select { |r| r.failed? }
1146
- status_fail_msg = status_failures.
1147
- collect(&:events).
1148
- flatten.
1149
- select { |event| event.status == 'failure' }.
1150
- collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
1152
+ status_failures = report.resource_statuses.values.select(&:failed?)
1153
+ status_fail_msg = status_failures
1154
+ .collect(&:events)
1155
+ .flatten
1156
+ .select { |event| event.status == 'failure' }
1157
+ .collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
1151
1158
 
1152
1159
  raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
1153
1160
  end
@@ -1177,7 +1184,8 @@ Generated on #{Time.now}.
1177
1184
  section,
1178
1185
  environment,
1179
1186
  value_sets_for(environment, section),
1180
- @config)
1187
+ @config
1188
+ )
1181
1189
  end
1182
1190
 
1183
1191
  # Find the correct value using our search path.
@@ -1239,9 +1247,9 @@ Generated on #{Time.now}.
1239
1247
  # in {https://projects.puppetlabs.com/issues/16637 #16637}
1240
1248
  def which_configuration_file
1241
1249
  if explicit_config_file? or Puppet.features.root? then
1242
- return main_config_file
1250
+ main_config_file
1243
1251
  else
1244
- return user_config_file
1252
+ user_config_file
1245
1253
  end
1246
1254
  end
1247
1255
 
@@ -1263,7 +1271,7 @@ Generated on #{Time.now}.
1263
1271
  def screen_non_puppet_conf_settings(puppet_conf)
1264
1272
  puppet_conf.sections.values.each do |section|
1265
1273
  forbidden = section.settings.select { |setting| Puppet::Settings::EnvironmentConf::ENVIRONMENT_CONF_ONLY_SETTINGS.include?(setting.name) }
1266
- raise(SettingsError, "Cannot set #{forbidden.map { |s| s.name }.join(", ")} settings in puppet.conf") if !forbidden.empty?
1274
+ raise(SettingsError, "Cannot set #{forbidden.map(&:name).join(', ')} settings in puppet.conf") unless forbidden.empty?
1267
1275
  end
1268
1276
  end
1269
1277
 
@@ -1292,18 +1300,17 @@ Generated on #{Time.now}.
1292
1300
 
1293
1301
  def issue_deprecation_warning(setting, msg = nil)
1294
1302
  name = setting.name
1295
- ref = DEPRECATION_REFS.find { |params,reference| params.include?(name) }
1303
+ ref = DEPRECATION_REFS.find { |params, _reference| params.include?(name) }
1296
1304
  ref = ref[1] if ref
1297
- case
1298
- when msg
1305
+ if msg
1299
1306
  msg << " #{ref}" if ref
1300
1307
  Puppet.deprecation_warning(msg)
1301
- when setting.completely_deprecated?
1308
+ elsif setting.completely_deprecated?
1302
1309
  message = _("Setting %{name} is deprecated.") % { name: name }
1303
1310
  message += " #{ref}"
1304
1311
  Puppet.deprecation_warning(message, "setting-#{name}")
1305
- when setting.allowed_on_commandline?
1306
- #TRANSLATORS 'puppet.conf' is a file name and should not be translated
1312
+ elsif setting.allowed_on_commandline?
1313
+ # TRANSLATORS 'puppet.conf' is a file name and should not be translated
1307
1314
  message = _("Setting %{name} is deprecated in puppet.conf.") % { name: name }
1308
1315
  message += " #{ref}"
1309
1316
  Puppet.deprecation_warning(message, "puppet-conf-setting-#{name}")
@@ -1347,38 +1354,38 @@ Generated on #{Time.now}.
1347
1354
  return if Puppet::Util::Platform.windows?
1348
1355
  return unless self[:mkusers]
1349
1356
 
1350
- @config.each do |name, setting|
1357
+ @config.each do |_name, setting|
1351
1358
  next unless setting.respond_to?(:owner)
1352
1359
  next unless sections.nil? or sections.include?(setting.section)
1353
1360
 
1354
1361
  user = setting.owner
1355
1362
  if user && user != "root" && catalog.resource(:user, user).nil?
1356
- resource = Puppet::Resource.new(:user, user, :parameters => {:ensure => :present})
1363
+ resource = Puppet::Resource.new(:user, user, :parameters => { :ensure => :present })
1357
1364
  resource[:gid] = self[:group] if self[:group]
1358
1365
  catalog.add_resource resource
1359
1366
  end
1360
1367
  group = setting.group
1361
- if group && ! %w{root wheel}.include?(group) && catalog.resource(:group, group).nil?
1362
- catalog.add_resource Puppet::Resource.new(:group, group, :parameters => {:ensure => :present})
1368
+ if group && !%w[root wheel].include?(group) && catalog.resource(:group, group).nil?
1369
+ catalog.add_resource Puppet::Resource.new(:group, group, :parameters => { :ensure => :present })
1363
1370
  end
1364
1371
  end
1365
1372
  end
1366
1373
 
1367
1374
  # Yield each search source in turn.
1368
1375
  def value_sets_for(environment, mode)
1369
- searchpath(environment, mode).collect { |source| searchpath_values(source) }.compact
1376
+ searchpath(environment, mode).filter_map { |source| searchpath_values(source) }
1370
1377
  end
1371
1378
 
1372
1379
  # Read the file in.
1373
1380
  # @api private
1374
1381
  def read_file(file)
1375
- return Puppet::FileSystem.read(file, :encoding => 'utf-8')
1382
+ Puppet::FileSystem.read(file, :encoding => 'utf-8')
1376
1383
  end
1377
1384
 
1378
1385
  # Private method for internal test use only; allows to do a comprehensive clear of all settings between tests.
1379
1386
  #
1380
1387
  # @return nil
1381
- def clear_everything_for_tests()
1388
+ def clear_everything_for_tests
1382
1389
  unsafe_clear(true, true)
1383
1390
  @configuration_file = nil
1384
1391
  @global_defaults_initialized = false
@@ -1399,14 +1406,13 @@ Generated on #{Time.now}.
1399
1406
  # If they've specified neither, then the interpolation will fail and we'll
1400
1407
  # get an exception.
1401
1408
  #
1402
- begin
1403
- return true if self[:config]
1404
- rescue InterpolationError
1405
- # This means we failed to interpolate, which means that they didn't
1406
- # explicitly specify either :config or :confdir... so we'll fall out to
1407
- # the default value.
1408
- return false
1409
- end
1409
+
1410
+ true if self[:config]
1411
+ rescue InterpolationError
1412
+ # This means we failed to interpolate, which means that they didn't
1413
+ # explicitly specify either :config or :confdir... so we'll fall out to
1414
+ # the default value.
1415
+ false
1410
1416
  end
1411
1417
  private :explicit_config_file?
1412
1418
 
@@ -1414,7 +1420,7 @@ Generated on #{Time.now}.
1414
1420
  #
1415
1421
  # @api public
1416
1422
  class ChainedValues
1417
- ENVIRONMENT_SETTING = "environment".freeze
1423
+ ENVIRONMENT_SETTING = "environment"
1418
1424
  ENVIRONMENT_INTERPOLATION_ALLOWED = ['config_version'].freeze
1419
1425
 
1420
1426
  # @see Puppet::Settings.values
@@ -1437,14 +1443,14 @@ Generated on #{Time.now}.
1437
1443
  end
1438
1444
  if set
1439
1445
  value = set.lookup(name)
1440
- if !value.nil?
1446
+ unless value.nil?
1441
1447
  return value
1442
1448
  end
1443
1449
  end
1444
1450
 
1445
- setting = @defaults[name]
1451
+ setting = @defaults[name]
1446
1452
  if setting.respond_to?(:alias_name)
1447
- val = lookup(setting.alias_name)
1453
+ val = lookup(setting.alias_name)
1448
1454
  return val if val
1449
1455
  end
1450
1456
 
@@ -1505,26 +1511,26 @@ Generated on #{Time.now}.
1505
1511
  when String
1506
1512
  failed_environment_interpolation = false
1507
1513
  interpolated_value = value.gsub(/\$(\w+)|\$\{(\w+)\}/) do |expression|
1508
- varname = $2 || $1
1514
+ varname = ::Regexp.last_match(2) || ::Regexp.last_match(1)
1509
1515
  interpolated_expression =
1510
- if varname != ENVIRONMENT_SETTING || ok_to_interpolate_environment(setting_name)
1511
- if varname == ENVIRONMENT_SETTING && @environment
1512
- @environment
1513
- elsif varname == "run_mode"
1514
- @mode
1515
- elsif !(pval = interpolate(varname.to_sym)).nil?
1516
- pval
1516
+ if varname != ENVIRONMENT_SETTING || ok_to_interpolate_environment(setting_name)
1517
+ if varname == ENVIRONMENT_SETTING && @environment
1518
+ @environment
1519
+ elsif varname == "run_mode"
1520
+ @mode
1521
+ elsif !(pval = interpolate(varname.to_sym)).nil?
1522
+ pval
1523
+ else
1524
+ raise InterpolationError, _("Could not find value for %{expression}") % { expression: expression }
1525
+ end
1517
1526
  else
1518
- raise InterpolationError, _("Could not find value for %{expression}") % { expression: expression }
1527
+ failed_environment_interpolation = true
1528
+ expression
1519
1529
  end
1520
- else
1521
- failed_environment_interpolation = true
1522
- expression
1523
- end
1524
1530
  interpolated_expression
1525
1531
  end
1526
1532
  if failed_environment_interpolation
1527
- #TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
1533
+ # TRANSLATORS '$environment' is a Puppet specific variable and should not be translated
1528
1534
  Puppet.warning(_("You cannot interpolate $environment within '%{setting_name}' when using directory environments.") % { setting_name: setting_name } +
1529
1535
  ' ' + _("Its value will remain %{value}.") % { value: interpolated_value })
1530
1536
  end
@@ -1556,7 +1562,7 @@ Generated on #{Time.now}.
1556
1562
  def set(name, value)
1557
1563
  default = @defaults[name]
1558
1564
 
1559
- if !default
1565
+ unless default
1560
1566
  raise ArgumentError, _("Attempt to assign a value to unknown setting %{name}") % { name: name.inspect }
1561
1567
  end
1562
1568
 
@@ -1577,7 +1583,7 @@ Generated on #{Time.now}.
1577
1583
  end
1578
1584
 
1579
1585
  def inspect
1580
- %Q{<#{self.class}:#{self.object_id} @name="#{@name}" @values="#{@values}">}
1586
+ %Q(<#{self.class}:#{object_id} @name="#{@name}" @values="#{@values}">)
1581
1587
  end
1582
1588
  end
1583
1589
 
@@ -1601,7 +1607,7 @@ Generated on #{Time.now}.
1601
1607
  end
1602
1608
 
1603
1609
  def inspect
1604
- %Q{<#{self.class}:#{self.object_id} @name="#{@name}" @section="#{@section}">}
1610
+ %Q(<#{self.class}:#{object_id} @name="#{@name}" @section="#{@section}">)
1605
1611
  end
1606
1612
  end
1607
1613
 
@@ -1619,11 +1625,13 @@ Generated on #{Time.now}.
1619
1625
  if Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name) && conf
1620
1626
  return true
1621
1627
  end
1628
+
1622
1629
  false
1623
1630
  end
1624
1631
 
1625
1632
  def lookup(name)
1626
1633
  return nil unless Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name)
1634
+
1627
1635
  conf.send(name) if conf
1628
1636
  end
1629
1637
 
@@ -1636,7 +1644,7 @@ Generated on #{Time.now}.
1636
1644
  end
1637
1645
 
1638
1646
  def inspect
1639
- %Q{<#{self.class}:#{self.object_id} @environment_name="#{@environment_name}" @conf="#{@conf}">}
1647
+ %Q(<#{self.class}:#{object_id} @environment_name="#{@environment_name}" @conf="#{@conf}">)
1640
1648
  end
1641
1649
  end
1642
1650
  end