puppet 8.2.0-universal-darwin → 8.4.0-universal-darwin

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 (1063) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +45 -43
  4. data/README.md +4 -4
  5. data/Rakefile +0 -27
  6. data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
  7. data/ext/project_data.yaml +2 -2
  8. data/ext/windows/service/daemon.rb +4 -5
  9. data/lib/hiera/puppet_function.rb +3 -2
  10. data/lib/hiera/scope.rb +2 -2
  11. data/lib/hiera_puppet.rb +1 -3
  12. data/lib/puppet/agent/disabler.rb +2 -1
  13. data/lib/puppet/agent/locker.rb +1 -2
  14. data/lib/puppet/agent.rb +2 -1
  15. data/lib/puppet/application/agent.rb +292 -291
  16. data/lib/puppet/application/apply.rb +143 -139
  17. data/lib/puppet/application/catalog.rb +1 -0
  18. data/lib/puppet/application/config.rb +1 -0
  19. data/lib/puppet/application/describe.rb +53 -55
  20. data/lib/puppet/application/device.rb +150 -150
  21. data/lib/puppet/application/doc.rb +61 -60
  22. data/lib/puppet/application/epp.rb +1 -0
  23. data/lib/puppet/application/face_base.rb +8 -7
  24. data/lib/puppet/application/facts.rb +1 -0
  25. data/lib/puppet/application/filebucket.rb +186 -184
  26. data/lib/puppet/application/generate.rb +1 -0
  27. data/lib/puppet/application/help.rb +1 -0
  28. data/lib/puppet/application/indirection_base.rb +1 -0
  29. data/lib/puppet/application/lookup.rb +168 -171
  30. data/lib/puppet/application/module.rb +1 -0
  31. data/lib/puppet/application/node.rb +1 -0
  32. data/lib/puppet/application/parser.rb +1 -0
  33. data/lib/puppet/application/plugin.rb +1 -0
  34. data/lib/puppet/application/report.rb +1 -0
  35. data/lib/puppet/application/resource.rb +111 -108
  36. data/lib/puppet/application/script.rb +92 -93
  37. data/lib/puppet/application/ssl.rb +119 -83
  38. data/lib/puppet/application.rb +13 -8
  39. data/lib/puppet/application_support.rb +1 -1
  40. data/lib/puppet/coercion.rb +3 -2
  41. data/lib/puppet/compilable_resource_type.rb +1 -0
  42. data/lib/puppet/concurrent/lock.rb +1 -2
  43. data/lib/puppet/concurrent/synchronized.rb +1 -2
  44. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  45. data/lib/puppet/concurrent.rb +1 -0
  46. data/lib/puppet/configurer/downloader.rb +1 -1
  47. data/lib/puppet/configurer/fact_handler.rb +2 -1
  48. data/lib/puppet/configurer/plugin_handler.rb +1 -0
  49. data/lib/puppet/configurer.rb +17 -13
  50. data/lib/puppet/confine/any.rb +1 -0
  51. data/lib/puppet/confine/boolean.rb +1 -0
  52. data/lib/puppet/confine/exists.rb +1 -0
  53. data/lib/puppet/confine/false.rb +1 -0
  54. data/lib/puppet/confine/feature.rb +1 -0
  55. data/lib/puppet/confine/true.rb +1 -0
  56. data/lib/puppet/confine/variable.rb +1 -0
  57. data/lib/puppet/confine.rb +2 -0
  58. data/lib/puppet/confine_collection.rb +3 -1
  59. data/lib/puppet/confiner.rb +1 -0
  60. data/lib/puppet/context/trusted_information.rb +1 -0
  61. data/lib/puppet/context.rb +1 -0
  62. data/lib/puppet/daemon.rb +4 -1
  63. data/lib/puppet/data_binding.rb +2 -1
  64. data/lib/puppet/datatypes/error.rb +2 -1
  65. data/lib/puppet/datatypes/impl/error.rb +1 -0
  66. data/lib/puppet/datatypes.rb +5 -1
  67. data/lib/puppet/defaults.rb +24 -23
  68. data/lib/puppet/environments.rb +3 -2
  69. data/lib/puppet/error.rb +9 -7
  70. data/lib/puppet/etc.rb +6 -3
  71. data/lib/puppet/external/dot.rb +12 -31
  72. data/lib/puppet/face/catalog/select.rb +2 -1
  73. data/lib/puppet/face/catalog.rb +3 -2
  74. data/lib/puppet/face/config.rb +19 -21
  75. data/lib/puppet/face/epp.rb +8 -8
  76. data/lib/puppet/face/facts.rb +4 -3
  77. data/lib/puppet/face/generate.rb +2 -0
  78. data/lib/puppet/face/help.rb +8 -7
  79. data/lib/puppet/face/module/changes.rb +2 -0
  80. data/lib/puppet/face/module/install.rb +2 -1
  81. data/lib/puppet/face/module/list.rb +9 -10
  82. data/lib/puppet/face/module/uninstall.rb +1 -0
  83. data/lib/puppet/face/module.rb +1 -0
  84. data/lib/puppet/face/node/clean.rb +2 -1
  85. data/lib/puppet/face/node.rb +2 -1
  86. data/lib/puppet/face/parser.rb +3 -3
  87. data/lib/puppet/face/plugin.rb +2 -1
  88. data/lib/puppet/face/report.rb +2 -1
  89. data/lib/puppet/face/resource.rb +1 -0
  90. data/lib/puppet/face.rb +1 -0
  91. data/lib/puppet/feature/base.rb +2 -1
  92. data/lib/puppet/feature/bolt.rb +1 -0
  93. data/lib/puppet/feature/cfpropertylist.rb +1 -0
  94. data/lib/puppet/feature/eventlog.rb +1 -0
  95. data/lib/puppet/feature/hiera_eyaml.rb +1 -0
  96. data/lib/puppet/feature/hocon.rb +1 -0
  97. data/lib/puppet/feature/libuser.rb +4 -3
  98. data/lib/puppet/feature/msgpack.rb +1 -0
  99. data/lib/puppet/feature/pe_license.rb +2 -1
  100. data/lib/puppet/feature/pson.rb +1 -0
  101. data/lib/puppet/feature/selinux.rb +1 -0
  102. data/lib/puppet/feature/ssh.rb +1 -0
  103. data/lib/puppet/feature/telnet.rb +1 -0
  104. data/lib/puppet/feature/zlib.rb +1 -0
  105. data/lib/puppet/ffi/posix/constants.rb +1 -0
  106. data/lib/puppet/ffi/posix/functions.rb +1 -1
  107. data/lib/puppet/ffi/posix.rb +1 -0
  108. data/lib/puppet/ffi/windows/api_types.rb +1 -0
  109. data/lib/puppet/ffi/windows/constants.rb +78 -77
  110. data/lib/puppet/ffi/windows/functions.rb +73 -73
  111. data/lib/puppet/ffi/windows/structs.rb +3 -3
  112. data/lib/puppet/ffi/windows.rb +1 -0
  113. data/lib/puppet/file_bucket/dipper.rb +7 -1
  114. data/lib/puppet/file_bucket/file.rb +1 -0
  115. data/lib/puppet/file_bucket.rb +1 -0
  116. data/lib/puppet/file_serving/base.rb +13 -6
  117. data/lib/puppet/file_serving/configuration/parser.rb +3 -1
  118. data/lib/puppet/file_serving/configuration.rb +5 -3
  119. data/lib/puppet/file_serving/content.rb +1 -0
  120. data/lib/puppet/file_serving/fileset.rb +9 -6
  121. data/lib/puppet/file_serving/http_metadata.rb +1 -3
  122. data/lib/puppet/file_serving/metadata.rb +9 -10
  123. data/lib/puppet/file_serving/mount/file.rb +6 -3
  124. data/lib/puppet/file_serving/mount/locales.rb +2 -1
  125. data/lib/puppet/file_serving/mount/modules.rb +2 -0
  126. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
  127. data/lib/puppet/file_serving/mount/plugins.rb +2 -1
  128. data/lib/puppet/file_serving/mount/scripts.rb +2 -0
  129. data/lib/puppet/file_serving/mount/tasks.rb +2 -0
  130. data/lib/puppet/file_serving/mount.rb +2 -0
  131. data/lib/puppet/file_serving/terminus_helper.rb +1 -0
  132. data/lib/puppet/file_serving/terminus_selector.rb +1 -0
  133. data/lib/puppet/file_serving.rb +1 -0
  134. data/lib/puppet/file_system/file_impl.rb +2 -2
  135. data/lib/puppet/file_system/jruby.rb +1 -0
  136. data/lib/puppet/file_system/memory_file.rb +2 -0
  137. data/lib/puppet/file_system/memory_impl.rb +3 -0
  138. data/lib/puppet/file_system/path_pattern.rb +1 -0
  139. data/lib/puppet/file_system/posix.rb +5 -1
  140. data/lib/puppet/file_system/uniquefile.rb +11 -11
  141. data/lib/puppet/file_system/windows.rb +4 -2
  142. data/lib/puppet/file_system.rb +3 -2
  143. data/lib/puppet/forge/cache.rb +1 -1
  144. data/lib/puppet/forge/errors.rb +1 -3
  145. data/lib/puppet/forge/repository.rb +2 -0
  146. data/lib/puppet/forge.rb +3 -0
  147. data/lib/puppet/functions/abs.rb +2 -1
  148. data/lib/puppet/functions/alert.rb +1 -0
  149. data/lib/puppet/functions/all.rb +1 -0
  150. data/lib/puppet/functions/annotate.rb +1 -0
  151. data/lib/puppet/functions/any.rb +1 -0
  152. data/lib/puppet/functions/assert_type.rb +1 -0
  153. data/lib/puppet/functions/binary_file.rb +3 -1
  154. data/lib/puppet/functions/break.rb +2 -1
  155. data/lib/puppet/functions/call.rb +1 -1
  156. data/lib/puppet/functions/camelcase.rb +1 -1
  157. data/lib/puppet/functions/capitalize.rb +1 -1
  158. data/lib/puppet/functions/ceiling.rb +2 -2
  159. data/lib/puppet/functions/chomp.rb +1 -1
  160. data/lib/puppet/functions/chop.rb +1 -1
  161. data/lib/puppet/functions/compare.rb +1 -0
  162. data/lib/puppet/functions/contain.rb +1 -0
  163. data/lib/puppet/functions/convert_to.rb +1 -0
  164. data/lib/puppet/functions/crit.rb +1 -0
  165. data/lib/puppet/functions/debug.rb +1 -0
  166. data/lib/puppet/functions/defined.rb +7 -4
  167. data/lib/puppet/functions/dig.rb +10 -8
  168. data/lib/puppet/functions/downcase.rb +1 -0
  169. data/lib/puppet/functions/each.rb +1 -0
  170. data/lib/puppet/functions/emerg.rb +1 -0
  171. data/lib/puppet/functions/empty.rb +1 -0
  172. data/lib/puppet/functions/epp.rb +1 -1
  173. data/lib/puppet/functions/err.rb +1 -0
  174. data/lib/puppet/functions/eyaml_lookup_key.rb +6 -4
  175. data/lib/puppet/functions/filter.rb +1 -0
  176. data/lib/puppet/functions/find_file.rb +1 -0
  177. data/lib/puppet/functions/find_template.rb +1 -0
  178. data/lib/puppet/functions/flatten.rb +1 -0
  179. data/lib/puppet/functions/floor.rb +2 -2
  180. data/lib/puppet/functions/get.rb +2 -1
  181. data/lib/puppet/functions/getvar.rb +2 -1
  182. data/lib/puppet/functions/hiera.rb +1 -0
  183. data/lib/puppet/functions/hiera_array.rb +1 -0
  184. data/lib/puppet/functions/hiera_hash.rb +1 -0
  185. data/lib/puppet/functions/hiera_include.rb +2 -0
  186. data/lib/puppet/functions/hocon_data.rb +1 -0
  187. data/lib/puppet/functions/import.rb +1 -0
  188. data/lib/puppet/functions/include.rb +1 -0
  189. data/lib/puppet/functions/index.rb +2 -2
  190. data/lib/puppet/functions/info.rb +1 -0
  191. data/lib/puppet/functions/inline_epp.rb +1 -1
  192. data/lib/puppet/functions/join.rb +2 -1
  193. data/lib/puppet/functions/json_data.rb +1 -0
  194. data/lib/puppet/functions/keys.rb +1 -0
  195. data/lib/puppet/functions/length.rb +1 -1
  196. data/lib/puppet/functions/lest.rb +1 -0
  197. data/lib/puppet/functions/lookup.rb +8 -9
  198. data/lib/puppet/functions/lstrip.rb +1 -1
  199. data/lib/puppet/functions/map.rb +1 -0
  200. data/lib/puppet/functions/match.rb +3 -1
  201. data/lib/puppet/functions/max.rb +4 -4
  202. data/lib/puppet/functions/min.rb +4 -4
  203. data/lib/puppet/functions/module_directory.rb +1 -0
  204. data/lib/puppet/functions/new.rb +2 -1
  205. data/lib/puppet/functions/next.rb +1 -0
  206. data/lib/puppet/functions/notice.rb +1 -0
  207. data/lib/puppet/functions/reduce.rb +1 -1
  208. data/lib/puppet/functions/regsubst.rb +1 -0
  209. data/lib/puppet/functions/require.rb +2 -0
  210. data/lib/puppet/functions/return.rb +1 -0
  211. data/lib/puppet/functions/reverse_each.rb +1 -0
  212. data/lib/puppet/functions/round.rb +1 -0
  213. data/lib/puppet/functions/rstrip.rb +1 -1
  214. data/lib/puppet/functions/scanf.rb +1 -0
  215. data/lib/puppet/functions/size.rb +1 -2
  216. data/lib/puppet/functions/slice.rb +2 -0
  217. data/lib/puppet/functions/sort.rb +1 -0
  218. data/lib/puppet/functions/split.rb +29 -1
  219. data/lib/puppet/functions/step.rb +1 -0
  220. data/lib/puppet/functions/strftime.rb +3 -2
  221. data/lib/puppet/functions/strip.rb +1 -1
  222. data/lib/puppet/functions/then.rb +2 -0
  223. data/lib/puppet/functions/tree_each.rb +1 -1
  224. data/lib/puppet/functions/type.rb +1 -0
  225. data/lib/puppet/functions/unique.rb +2 -1
  226. data/lib/puppet/functions/unwrap.rb +1 -0
  227. data/lib/puppet/functions/upcase.rb +1 -0
  228. data/lib/puppet/functions/values.rb +1 -0
  229. data/lib/puppet/functions/versioncmp.rb +2 -2
  230. data/lib/puppet/functions/warning.rb +1 -0
  231. data/lib/puppet/functions/with.rb +1 -0
  232. data/lib/puppet/functions/yaml_data.rb +1 -0
  233. data/lib/puppet/functions.rb +9 -9
  234. data/lib/puppet/generate/models/type/property.rb +2 -0
  235. data/lib/puppet/generate/models/type/type.rb +2 -0
  236. data/lib/puppet/generate/type.rb +6 -1
  237. data/lib/puppet/gettext/config.rb +6 -0
  238. data/lib/puppet/gettext/module_translations.rb +1 -1
  239. data/lib/puppet/gettext/stubs.rb +1 -0
  240. data/lib/puppet/graph/key.rb +1 -0
  241. data/lib/puppet/graph/prioritizer.rb +1 -0
  242. data/lib/puppet/graph/rb_tree_map.rb +12 -2
  243. data/lib/puppet/graph/relationship_graph.rb +3 -2
  244. data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
  245. data/lib/puppet/graph/simple_graph.rb +38 -31
  246. data/lib/puppet/graph.rb +1 -0
  247. data/lib/puppet/http/client.rb +4 -1
  248. data/lib/puppet/http/dns.rb +5 -5
  249. data/lib/puppet/http/errors.rb +1 -0
  250. data/lib/puppet/http/external_client.rb +2 -2
  251. data/lib/puppet/http/factory.rb +1 -0
  252. data/lib/puppet/http/pool.rb +2 -1
  253. data/lib/puppet/http/pool_entry.rb +1 -0
  254. data/lib/puppet/http/proxy.rb +3 -2
  255. data/lib/puppet/http/redirector.rb +1 -0
  256. data/lib/puppet/http/resolver/server_list.rb +1 -1
  257. data/lib/puppet/http/resolver/settings.rb +1 -1
  258. data/lib/puppet/http/resolver/srv.rb +1 -1
  259. data/lib/puppet/http/resolver.rb +1 -0
  260. data/lib/puppet/http/response.rb +1 -0
  261. data/lib/puppet/http/response_converter.rb +1 -0
  262. data/lib/puppet/http/response_net_http.rb +1 -1
  263. data/lib/puppet/http/retry_after_handler.rb +1 -1
  264. data/lib/puppet/http/service/ca.rb +1 -0
  265. data/lib/puppet/http/service/compiler.rb +9 -3
  266. data/lib/puppet/http/service/file_server.rb +2 -1
  267. data/lib/puppet/http/service/puppetserver.rb +1 -1
  268. data/lib/puppet/http/service/report.rb +1 -1
  269. data/lib/puppet/http/service.rb +1 -0
  270. data/lib/puppet/http/session.rb +2 -1
  271. data/lib/puppet/http/site.rb +1 -0
  272. data/lib/puppet/http.rb +1 -0
  273. data/lib/puppet/indirector/catalog/compiler.rb +50 -40
  274. data/lib/puppet/indirector/catalog/json.rb +1 -0
  275. data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
  276. data/lib/puppet/indirector/catalog/rest.rb +9 -0
  277. data/lib/puppet/indirector/catalog/store_configs.rb +1 -2
  278. data/lib/puppet/indirector/catalog/yaml.rb +1 -0
  279. data/lib/puppet/indirector/code.rb +1 -0
  280. data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
  281. data/lib/puppet/indirector/data_binding/none.rb +1 -0
  282. data/lib/puppet/indirector/direct_file_server.rb +3 -1
  283. data/lib/puppet/indirector/envelope.rb +1 -0
  284. data/lib/puppet/indirector/errors.rb +1 -0
  285. data/lib/puppet/indirector/exec.rb +1 -0
  286. data/lib/puppet/indirector/face.rb +7 -6
  287. data/lib/puppet/indirector/fact_search.rb +1 -0
  288. data/lib/puppet/indirector/facts/facter.rb +3 -1
  289. data/lib/puppet/indirector/facts/json.rb +1 -0
  290. data/lib/puppet/indirector/facts/memory.rb +1 -0
  291. data/lib/puppet/indirector/facts/network_device.rb +1 -0
  292. data/lib/puppet/indirector/facts/rest.rb +1 -0
  293. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  294. data/lib/puppet/indirector/facts/yaml.rb +1 -0
  295. data/lib/puppet/indirector/file_bucket_file/file.rb +11 -6
  296. data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -0
  297. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
  298. data/lib/puppet/indirector/file_content/file.rb +1 -0
  299. data/lib/puppet/indirector/file_content/file_server.rb +1 -0
  300. data/lib/puppet/indirector/file_content/rest.rb +1 -0
  301. data/lib/puppet/indirector/file_content/selector.rb +1 -0
  302. data/lib/puppet/indirector/file_content.rb +1 -0
  303. data/lib/puppet/indirector/file_metadata/file.rb +1 -0
  304. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
  305. data/lib/puppet/indirector/file_metadata/http.rb +1 -0
  306. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  307. data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
  308. data/lib/puppet/indirector/file_metadata.rb +1 -0
  309. data/lib/puppet/indirector/file_server.rb +2 -0
  310. data/lib/puppet/indirector/generic_http.rb +1 -0
  311. data/lib/puppet/indirector/hiera.rb +5 -4
  312. data/lib/puppet/indirector/indirection.rb +12 -2
  313. data/lib/puppet/indirector/json.rb +3 -1
  314. data/lib/puppet/indirector/memory.rb +2 -0
  315. data/lib/puppet/indirector/msgpack.rb +5 -2
  316. data/lib/puppet/indirector/node/exec.rb +3 -2
  317. data/lib/puppet/indirector/node/json.rb +1 -1
  318. data/lib/puppet/indirector/node/memory.rb +1 -0
  319. data/lib/puppet/indirector/node/msgpack.rb +1 -0
  320. data/lib/puppet/indirector/node/plain.rb +1 -0
  321. data/lib/puppet/indirector/node/rest.rb +1 -0
  322. data/lib/puppet/indirector/node/store_configs.rb +1 -2
  323. data/lib/puppet/indirector/node/yaml.rb +1 -0
  324. data/lib/puppet/indirector/none.rb +1 -0
  325. data/lib/puppet/indirector/plain.rb +1 -0
  326. data/lib/puppet/indirector/report/json.rb +1 -0
  327. data/lib/puppet/indirector/report/msgpack.rb +1 -0
  328. data/lib/puppet/indirector/report/processor.rb +2 -0
  329. data/lib/puppet/indirector/report/rest.rb +1 -0
  330. data/lib/puppet/indirector/report/yaml.rb +1 -0
  331. data/lib/puppet/indirector/request.rb +7 -5
  332. data/lib/puppet/indirector/resource/ral.rb +1 -0
  333. data/lib/puppet/indirector/resource/store_configs.rb +1 -0
  334. data/lib/puppet/indirector/resource/validator.rb +1 -0
  335. data/lib/puppet/indirector/rest.rb +1 -0
  336. data/lib/puppet/indirector/store_configs.rb +1 -0
  337. data/lib/puppet/indirector/terminus.rb +4 -1
  338. data/lib/puppet/indirector/yaml.rb +1 -0
  339. data/lib/puppet/indirector.rb +2 -0
  340. data/lib/puppet/info_service/class_information_service.rb +5 -3
  341. data/lib/puppet/info_service/plan_information_service.rb +1 -0
  342. data/lib/puppet/info_service/task_information_service.rb +2 -1
  343. data/lib/puppet/interface/action.rb +32 -27
  344. data/lib/puppet/interface/action_builder.rb +14 -14
  345. data/lib/puppet/interface/action_manager.rb +2 -0
  346. data/lib/puppet/interface/documentation.rb +21 -15
  347. data/lib/puppet/interface/face_collection.rb +5 -2
  348. data/lib/puppet/interface/option.rb +15 -4
  349. data/lib/puppet/interface/option_builder.rb +13 -9
  350. data/lib/puppet/interface/option_manager.rb +3 -2
  351. data/lib/puppet/interface.rb +3 -3
  352. data/lib/puppet/loaders.rb +1 -1
  353. data/lib/puppet/metatype/manager.rb +9 -8
  354. data/lib/puppet/module/plan.rb +10 -4
  355. data/lib/puppet/module/task.rb +8 -2
  356. data/lib/puppet/module.rb +13 -3
  357. data/lib/puppet/module_tool/applications/application.rb +6 -4
  358. data/lib/puppet/module_tool/applications/checksummer.rb +1 -2
  359. data/lib/puppet/module_tool/applications/installer.rb +32 -45
  360. data/lib/puppet/module_tool/applications/uninstaller.rb +22 -21
  361. data/lib/puppet/module_tool/applications/unpacker.rb +3 -0
  362. data/lib/puppet/module_tool/applications/upgrader.rb +28 -26
  363. data/lib/puppet/module_tool/applications.rb +1 -0
  364. data/lib/puppet/module_tool/checksums.rb +1 -1
  365. data/lib/puppet/module_tool/contents_description.rb +1 -2
  366. data/lib/puppet/module_tool/dependency.rb +1 -1
  367. data/lib/puppet/module_tool/errors/base.rb +1 -0
  368. data/lib/puppet/module_tool/errors/installer.rb +4 -4
  369. data/lib/puppet/module_tool/errors/shared.rb +12 -12
  370. data/lib/puppet/module_tool/errors/uninstaller.rb +2 -2
  371. data/lib/puppet/module_tool/errors/upgrader.rb +3 -3
  372. data/lib/puppet/module_tool/errors.rb +1 -0
  373. data/lib/puppet/module_tool/install_directory.rb +6 -4
  374. data/lib/puppet/module_tool/installed_modules.rb +2 -0
  375. data/lib/puppet/module_tool/local_tarball.rb +3 -0
  376. data/lib/puppet/module_tool/metadata.rb +21 -20
  377. data/lib/puppet/module_tool/shared_behaviors.rb +23 -21
  378. data/lib/puppet/module_tool/tar/gnu.rb +1 -0
  379. data/lib/puppet/module_tool/tar/mini.rb +1 -0
  380. data/lib/puppet/module_tool/tar.rb +2 -1
  381. data/lib/puppet/module_tool.rb +2 -2
  382. data/lib/puppet/network/authconfig.rb +1 -0
  383. data/lib/puppet/network/authorization.rb +1 -0
  384. data/lib/puppet/network/client_request.rb +1 -0
  385. data/lib/puppet/network/format.rb +5 -0
  386. data/lib/puppet/network/format_handler.rb +2 -1
  387. data/lib/puppet/network/format_support.rb +6 -5
  388. data/lib/puppet/network/formats.rb +18 -14
  389. data/lib/puppet/network/http/api/indirected_routes.rb +8 -8
  390. data/lib/puppet/network/http/api/indirection_type.rb +1 -1
  391. data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
  392. data/lib/puppet/network/http/api/master/v3.rb +1 -0
  393. data/lib/puppet/network/http/api/master.rb +1 -0
  394. data/lib/puppet/network/http/api/server/v3/environments.rb +20 -14
  395. data/lib/puppet/network/http/api/server/v3.rb +13 -13
  396. data/lib/puppet/network/http/api/server.rb +1 -0
  397. data/lib/puppet/network/http/api.rb +11 -10
  398. data/lib/puppet/network/http/connection.rb +1 -0
  399. data/lib/puppet/network/http/error.rb +2 -1
  400. data/lib/puppet/network/http/handler.rb +3 -2
  401. data/lib/puppet/network/http/issues.rb +1 -0
  402. data/lib/puppet/network/http/memory_response.rb +2 -1
  403. data/lib/puppet/network/http/request.rb +13 -6
  404. data/lib/puppet/network/http/response.rb +1 -0
  405. data/lib/puppet/network/http/route.rb +4 -2
  406. data/lib/puppet/network/http.rb +1 -0
  407. data/lib/puppet/network/http_pool.rb +2 -1
  408. data/lib/puppet/network/uri.rb +1 -0
  409. data/lib/puppet/network.rb +1 -0
  410. data/lib/puppet/node/environment.rb +12 -9
  411. data/lib/puppet/node/facts.rb +2 -1
  412. data/lib/puppet/node.rb +3 -2
  413. data/lib/puppet/pal/catalog_compiler.rb +1 -3
  414. data/lib/puppet/pal/compiler.rb +6 -2
  415. data/lib/puppet/pal/function_signature.rb +2 -1
  416. data/lib/puppet/pal/json_catalog_encoder.rb +5 -1
  417. data/lib/puppet/pal/pal_api.rb +1 -0
  418. data/lib/puppet/pal/pal_impl.rb +20 -19
  419. data/lib/puppet/pal/plan_signature.rb +2 -1
  420. data/lib/puppet/pal/script_compiler.rb +3 -2
  421. data/lib/puppet/pal/task_signature.rb +14 -9
  422. data/lib/puppet/parameter/boolean.rb +1 -0
  423. data/lib/puppet/parameter/package_options.rb +1 -0
  424. data/lib/puppet/parameter/path.rb +3 -0
  425. data/lib/puppet/parameter/value.rb +1 -0
  426. data/lib/puppet/parameter/value_collection.rb +6 -6
  427. data/lib/puppet/parameter.rb +4 -3
  428. data/lib/puppet/parser/abstract_compiler.rb +0 -2
  429. data/lib/puppet/parser/ast/block_expression.rb +1 -0
  430. data/lib/puppet/parser/ast/branch.rb +1 -0
  431. data/lib/puppet/parser/ast/hostclass.rb +1 -0
  432. data/lib/puppet/parser/ast/leaf.rb +2 -0
  433. data/lib/puppet/parser/ast/node.rb +1 -0
  434. data/lib/puppet/parser/ast/pops_bridge.rb +6 -6
  435. data/lib/puppet/parser/ast/resource.rb +2 -3
  436. data/lib/puppet/parser/ast/resource_instance.rb +2 -0
  437. data/lib/puppet/parser/ast/resourceparam.rb +6 -5
  438. data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
  439. data/lib/puppet/parser/ast.rb +4 -3
  440. data/lib/puppet/parser/catalog_compiler.rb +1 -2
  441. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +3 -0
  442. data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
  443. data/lib/puppet/parser/compiler.rb +10 -8
  444. data/lib/puppet/parser/e4_parser_adapter.rb +15 -15
  445. data/lib/puppet/parser/files.rb +5 -4
  446. data/lib/puppet/parser/functions/assert_type.rb +55 -54
  447. data/lib/puppet/parser/functions/binary_file.rb +19 -18
  448. data/lib/puppet/parser/functions/break.rb +35 -34
  449. data/lib/puppet/parser/functions/contain.rb +1 -0
  450. data/lib/puppet/parser/functions/create_resources.rb +8 -6
  451. data/lib/puppet/parser/functions/defined.rb +102 -101
  452. data/lib/puppet/parser/functions/dig.rb +33 -32
  453. data/lib/puppet/parser/functions/digest.rb +1 -0
  454. data/lib/puppet/parser/functions/each.rb +99 -98
  455. data/lib/puppet/parser/functions/epp.rb +2 -2
  456. data/lib/puppet/parser/functions/fail.rb +9 -8
  457. data/lib/puppet/parser/functions/file.rb +14 -13
  458. data/lib/puppet/parser/functions/filter.rb +74 -73
  459. data/lib/puppet/parser/functions/find_file.rb +22 -21
  460. data/lib/puppet/parser/functions/fqdn_rand.rb +23 -22
  461. data/lib/puppet/parser/functions/generate.rb +20 -20
  462. data/lib/puppet/parser/functions/hiera.rb +94 -93
  463. data/lib/puppet/parser/functions/hiera_array.rb +82 -81
  464. data/lib/puppet/parser/functions/hiera_hash.rb +92 -91
  465. data/lib/puppet/parser/functions/hiera_include.rb +92 -91
  466. data/lib/puppet/parser/functions/include.rb +2 -1
  467. data/lib/puppet/parser/functions/inline_epp.rb +2 -2
  468. data/lib/puppet/parser/functions/inline_template.rb +11 -11
  469. data/lib/puppet/parser/functions/lest.rb +44 -43
  470. data/lib/puppet/parser/functions/lookup.rb +131 -130
  471. data/lib/puppet/parser/functions/map.rb +71 -70
  472. data/lib/puppet/parser/functions/match.rb +39 -38
  473. data/lib/puppet/parser/functions/md5.rb +2 -1
  474. data/lib/puppet/parser/functions/new.rb +985 -984
  475. data/lib/puppet/parser/functions/next.rb +34 -33
  476. data/lib/puppet/parser/functions/realize.rb +9 -9
  477. data/lib/puppet/parser/functions/reduce.rb +132 -131
  478. data/lib/puppet/parser/functions/regsubst.rb +6 -5
  479. data/lib/puppet/parser/functions/require.rb +5 -4
  480. data/lib/puppet/parser/functions/return.rb +88 -87
  481. data/lib/puppet/parser/functions/reverse_each.rb +78 -77
  482. data/lib/puppet/parser/functions/scanf.rb +28 -27
  483. data/lib/puppet/parser/functions/sha1.rb +2 -1
  484. data/lib/puppet/parser/functions/sha256.rb +1 -0
  485. data/lib/puppet/parser/functions/shellquote.rb +1 -0
  486. data/lib/puppet/parser/functions/slice.rb +34 -33
  487. data/lib/puppet/parser/functions/split.rb +5 -6
  488. data/lib/puppet/parser/functions/sprintf.rb +3 -3
  489. data/lib/puppet/parser/functions/step.rb +79 -78
  490. data/lib/puppet/parser/functions/strftime.rb +180 -179
  491. data/lib/puppet/parser/functions/tag.rb +7 -6
  492. data/lib/puppet/parser/functions/tagged.rb +13 -12
  493. data/lib/puppet/parser/functions/template.rb +24 -23
  494. data/lib/puppet/parser/functions/then.rb +68 -67
  495. data/lib/puppet/parser/functions/type.rb +48 -47
  496. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  497. data/lib/puppet/parser/functions/with.rb +23 -22
  498. data/lib/puppet/parser/functions.rb +3 -1
  499. data/lib/puppet/parser/parser_factory.rb +1 -0
  500. data/lib/puppet/parser/relationship.rb +3 -0
  501. data/lib/puppet/parser/resource/param.rb +1 -0
  502. data/lib/puppet/parser/resource.rb +10 -4
  503. data/lib/puppet/parser/scope.rb +40 -32
  504. data/lib/puppet/parser/script_compiler.rb +5 -6
  505. data/lib/puppet/parser/templatewrapper.rb +1 -0
  506. data/lib/puppet/parser/type_loader.rb +19 -17
  507. data/lib/puppet/parser.rb +1 -0
  508. data/lib/puppet/plugins/configuration.rb +1 -0
  509. data/lib/puppet/plugins/syntax_checkers.rb +1 -1
  510. data/lib/puppet/plugins.rb +1 -0
  511. data/lib/puppet/pops/adaptable.rb +3 -1
  512. data/lib/puppet/pops/adapters.rb +3 -1
  513. data/lib/puppet/pops/evaluator/access_operator.rb +79 -65
  514. data/lib/puppet/pops/evaluator/callable_signature.rb +1 -1
  515. data/lib/puppet/pops/evaluator/closure.rb +273 -277
  516. data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -9
  517. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
  518. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
  519. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +4 -4
  520. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -1
  521. data/lib/puppet/pops/evaluator/compare_operator.rb +15 -3
  522. data/lib/puppet/pops/evaluator/deferred_resolver.rb +2 -2
  523. data/lib/puppet/pops/evaluator/epp_evaluator.rb +10 -10
  524. data/lib/puppet/pops/evaluator/evaluator_impl.rb +140 -138
  525. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  526. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
  527. data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
  528. data/lib/puppet/pops/evaluator/puppet_proc.rb +2 -0
  529. data/lib/puppet/pops/evaluator/relationship_operator.rb +5 -3
  530. data/lib/puppet/pops/evaluator/runtime3_converter.rb +21 -19
  531. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +31 -33
  532. data/lib/puppet/pops/evaluator/runtime3_support.rb +16 -19
  533. data/lib/puppet/pops/functions/dispatch.rb +1 -0
  534. data/lib/puppet/pops/functions/dispatcher.rb +1 -1
  535. data/lib/puppet/pops/functions/function.rb +1 -2
  536. data/lib/puppet/pops/issue_reporter.rb +19 -17
  537. data/lib/puppet/pops/issues.rb +8 -4
  538. data/lib/puppet/pops/label_provider.rb +1 -0
  539. data/lib/puppet/pops/loader/base_loader.rb +2 -2
  540. data/lib/puppet/pops/loader/dependency_loader.rb +3 -0
  541. data/lib/puppet/pops/loader/gem_support.rb +3 -1
  542. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
  543. data/lib/puppet/pops/loader/loader.rb +1 -2
  544. data/lib/puppet/pops/loader/loader_paths.rb +24 -23
  545. data/lib/puppet/pops/loader/module_loaders.rb +28 -28
  546. data/lib/puppet/pops/loader/predefined_loader.rb +1 -2
  547. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +4 -2
  548. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +4 -2
  549. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -1
  550. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +4 -1
  551. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +4 -1
  552. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -2
  553. data/lib/puppet/pops/loader/runtime3_type_loader.rb +2 -2
  554. data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -2
  555. data/lib/puppet/pops/loader/static_loader.rb +22 -21
  556. data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
  557. data/lib/puppet/pops/loader/type_definition_instantiator.rb +6 -4
  558. data/lib/puppet/pops/loader/typed_name.rb +1 -0
  559. data/lib/puppet/pops/loader/uri_helper.rb +1 -0
  560. data/lib/puppet/pops/loaders.rb +21 -18
  561. data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
  562. data/lib/puppet/pops/lookup/context.rb +24 -23
  563. data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
  564. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +2 -2
  565. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +1 -0
  566. data/lib/puppet/pops/lookup/data_provider.rb +1 -0
  567. data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
  568. data/lib/puppet/pops/lookup/explainer.rb +35 -34
  569. data/lib/puppet/pops/lookup/function_provider.rb +7 -6
  570. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  571. data/lib/puppet/pops/lookup/hiera_config.rb +137 -101
  572. data/lib/puppet/pops/lookup/interpolation.rb +5 -1
  573. data/lib/puppet/pops/lookup/invocation.rb +3 -0
  574. data/lib/puppet/pops/lookup/key_recorder.rb +3 -1
  575. data/lib/puppet/pops/lookup/location_resolver.rb +2 -1
  576. data/lib/puppet/pops/lookup/lookup_adapter.rb +22 -20
  577. data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
  578. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +1 -0
  579. data/lib/puppet/pops/lookup/module_data_provider.rb +3 -1
  580. data/lib/puppet/pops/lookup/sub_lookup.rb +5 -2
  581. data/lib/puppet/pops/lookup.rb +13 -8
  582. data/lib/puppet/pops/merge_strategy.rb +5 -2
  583. data/lib/puppet/pops/migration/migration_checker.rb +3 -1
  584. data/lib/puppet/pops/model/ast.rb +786 -685
  585. data/lib/puppet/pops/model/ast_transformer.rb +4 -3
  586. data/lib/puppet/pops/model/factory.rb +18 -14
  587. data/lib/puppet/pops/model/model_label_provider.rb +1 -1
  588. data/lib/puppet/pops/model/model_tree_dumper.rb +10 -9
  589. data/lib/puppet/pops/model/pn_transformer.rb +4 -6
  590. data/lib/puppet/pops/model/tree_dumper.rb +3 -1
  591. data/lib/puppet/pops/parser/code_merger.rb +0 -1
  592. data/lib/puppet/pops/parser/epp_parser.rb +1 -1
  593. data/lib/puppet/pops/parser/epp_support.rb +3 -3
  594. data/lib/puppet/pops/parser/evaluating_parser.rb +6 -3
  595. data/lib/puppet/pops/parser/heredoc_support.rb +6 -7
  596. data/lib/puppet/pops/parser/interpolation_support.rb +2 -3
  597. data/lib/puppet/pops/parser/lexer2.rb +32 -29
  598. data/lib/puppet/pops/parser/lexer_support.rb +38 -41
  599. data/lib/puppet/pops/parser/locatable.rb +1 -2
  600. data/lib/puppet/pops/parser/locator.rb +31 -28
  601. data/lib/puppet/pops/parser/parser_support.rb +2 -0
  602. data/lib/puppet/pops/parser/pn_parser.rb +2 -2
  603. data/lib/puppet/pops/parser/slurp_support.rb +33 -32
  604. data/lib/puppet/pops/patterns.rb +2 -3
  605. data/lib/puppet/pops/pcore.rb +2 -2
  606. data/lib/puppet/pops/pn.rb +4 -1
  607. data/lib/puppet/pops/puppet_stack.rb +1 -0
  608. data/lib/puppet/pops/resource/param.rb +11 -10
  609. data/lib/puppet/pops/resource/resource_type_impl.rb +37 -36
  610. data/lib/puppet/pops/semantic_error.rb +1 -0
  611. data/lib/puppet/pops/serialization/abstract_reader.rb +3 -2
  612. data/lib/puppet/pops/serialization/abstract_writer.rb +5 -4
  613. data/lib/puppet/pops/serialization/deserializer.rb +2 -0
  614. data/lib/puppet/pops/serialization/extension.rb +7 -0
  615. data/lib/puppet/pops/serialization/from_data_converter.rb +3 -0
  616. data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
  617. data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
  618. data/lib/puppet/pops/serialization/json.rb +6 -3
  619. data/lib/puppet/pops/serialization/json_path.rb +2 -1
  620. data/lib/puppet/pops/serialization/object.rb +4 -1
  621. data/lib/puppet/pops/serialization/serializer.rb +6 -2
  622. data/lib/puppet/pops/serialization/time_factory.rb +1 -1
  623. data/lib/puppet/pops/serialization/to_data_converter.rb +4 -2
  624. data/lib/puppet/pops/serialization/to_stringified_converter.rb +2 -2
  625. data/lib/puppet/pops/serialization.rb +1 -0
  626. data/lib/puppet/pops/time/timespan.rb +16 -6
  627. data/lib/puppet/pops/time/timestamp.rb +4 -0
  628. data/lib/puppet/pops/types/annotatable.rb +1 -1
  629. data/lib/puppet/pops/types/annotation.rb +1 -0
  630. data/lib/puppet/pops/types/class_loader.rb +8 -6
  631. data/lib/puppet/pops/types/implementation_registry.rb +1 -0
  632. data/lib/puppet/pops/types/iterable.rb +18 -9
  633. data/lib/puppet/pops/types/p_binary_type.rb +2 -3
  634. data/lib/puppet/pops/types/p_init_type.rb +12 -9
  635. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  636. data/lib/puppet/pops/types/p_object_type.rb +65 -42
  637. data/lib/puppet/pops/types/p_object_type_extension.rb +10 -7
  638. data/lib/puppet/pops/types/p_runtime_type.rb +11 -9
  639. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  640. data/lib/puppet/pops/types/p_sem_ver_type.rb +5 -5
  641. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -4
  642. data/lib/puppet/pops/types/p_timespan_type.rb +4 -2
  643. data/lib/puppet/pops/types/p_timestamp_type.rb +3 -2
  644. data/lib/puppet/pops/types/p_type_set_type.rb +36 -28
  645. data/lib/puppet/pops/types/p_uri_type.rb +25 -18
  646. data/lib/puppet/pops/types/puppet_object.rb +1 -1
  647. data/lib/puppet/pops/types/recursion_guard.rb +7 -2
  648. data/lib/puppet/pops/types/ruby_generator.rb +9 -6
  649. data/lib/puppet/pops/types/ruby_method.rb +6 -5
  650. data/lib/puppet/pops/types/string_converter.rb +71 -63
  651. data/lib/puppet/pops/types/tree_iterators.rb +6 -7
  652. data/lib/puppet/pops/types/type_acceptor.rb +1 -0
  653. data/lib/puppet/pops/types/type_asserter.rb +1 -0
  654. data/lib/puppet/pops/types/type_assertion_error.rb +0 -1
  655. data/lib/puppet/pops/types/type_calculator.rb +10 -4
  656. data/lib/puppet/pops/types/type_conversion_error.rb +1 -10
  657. data/lib/puppet/pops/types/type_factory.rb +7 -4
  658. data/lib/puppet/pops/types/type_formatter.rb +14 -13
  659. data/lib/puppet/pops/types/type_mismatch_describer.rb +13 -8
  660. data/lib/puppet/pops/types/type_parser.rb +111 -107
  661. data/lib/puppet/pops/types/type_set_reference.rb +2 -0
  662. data/lib/puppet/pops/types/type_with_members.rb +1 -1
  663. data/lib/puppet/pops/types/types.rb +178 -153
  664. data/lib/puppet/pops/utils.rb +1 -0
  665. data/lib/puppet/pops/validation/checker4_0.rb +17 -11
  666. data/lib/puppet/pops/validation/tasks_checker.rb +2 -1
  667. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  668. data/lib/puppet/pops/validation.rb +8 -6
  669. data/lib/puppet/pops/visitable.rb +1 -0
  670. data/lib/puppet/pops/visitor.rb +14 -1
  671. data/lib/puppet/pops.rb +2 -0
  672. data/lib/puppet/property/boolean.rb +1 -0
  673. data/lib/puppet/property/ensure.rb +4 -1
  674. data/lib/puppet/property/keyvalue.rb +5 -4
  675. data/lib/puppet/property/list.rb +5 -5
  676. data/lib/puppet/property/ordered_list.rb +4 -4
  677. data/lib/puppet/property.rb +13 -11
  678. data/lib/puppet/provider/aix_object.rb +5 -0
  679. data/lib/puppet/provider/command.rb +1 -0
  680. data/lib/puppet/provider/confine.rb +1 -0
  681. data/lib/puppet/provider/exec/posix.rb +2 -0
  682. data/lib/puppet/provider/exec/shell.rb +1 -0
  683. data/lib/puppet/provider/exec/windows.rb +2 -1
  684. data/lib/puppet/provider/exec.rb +1 -0
  685. data/lib/puppet/provider/file/posix.rb +1 -0
  686. data/lib/puppet/provider/file/windows.rb +10 -6
  687. data/lib/puppet/provider/group/aix.rb +1 -0
  688. data/lib/puppet/provider/group/directoryservice.rb +1 -1
  689. data/lib/puppet/provider/group/groupadd.rb +9 -4
  690. data/lib/puppet/provider/group/ldap.rb +2 -0
  691. data/lib/puppet/provider/group/pw.rb +1 -0
  692. data/lib/puppet/provider/group/windows_adsi.rb +2 -0
  693. data/lib/puppet/provider/ldap.rb +2 -0
  694. data/lib/puppet/provider/nameservice/directoryservice.rb +30 -21
  695. data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
  696. data/lib/puppet/provider/nameservice/pw.rb +6 -5
  697. data/lib/puppet/provider/nameservice.rb +8 -4
  698. data/lib/puppet/provider/network_device.rb +1 -2
  699. data/lib/puppet/provider/package/aix.rb +5 -4
  700. data/lib/puppet/provider/package/appdmg.rb +20 -19
  701. data/lib/puppet/provider/package/apple.rb +3 -2
  702. data/lib/puppet/provider/package/apt.rb +5 -5
  703. data/lib/puppet/provider/package/aptitude.rb +1 -0
  704. data/lib/puppet/provider/package/aptrpm.rb +2 -1
  705. data/lib/puppet/provider/package/blastwave.rb +6 -6
  706. data/lib/puppet/provider/package/dnf.rb +3 -1
  707. data/lib/puppet/provider/package/dnfmodule.rb +8 -7
  708. data/lib/puppet/provider/package/dpkg.rb +4 -4
  709. data/lib/puppet/provider/package/fink.rb +2 -1
  710. data/lib/puppet/provider/package/freebsd.rb +3 -2
  711. data/lib/puppet/provider/package/gem.rb +9 -5
  712. data/lib/puppet/provider/package/hpux.rb +4 -3
  713. data/lib/puppet/provider/package/macports.rb +2 -1
  714. data/lib/puppet/provider/package/nim.rb +13 -15
  715. data/lib/puppet/provider/package/openbsd.rb +6 -4
  716. data/lib/puppet/provider/package/opkg.rb +2 -0
  717. data/lib/puppet/provider/package/pacman.rb +12 -12
  718. data/lib/puppet/provider/package/pip.rb +3 -1
  719. data/lib/puppet/provider/package/pip2.rb +2 -2
  720. data/lib/puppet/provider/package/pip3.rb +2 -2
  721. data/lib/puppet/provider/package/pkg.rb +17 -13
  722. data/lib/puppet/provider/package/pkgdmg.rb +7 -2
  723. data/lib/puppet/provider/package/pkgin.rb +5 -5
  724. data/lib/puppet/provider/package/pkgng.rb +11 -7
  725. data/lib/puppet/provider/package/pkgutil.rb +7 -6
  726. data/lib/puppet/provider/package/portage.rb +11 -6
  727. data/lib/puppet/provider/package/ports.rb +6 -5
  728. data/lib/puppet/provider/package/portupgrade.rb +6 -12
  729. data/lib/puppet/provider/package/puppet_gem.rb +1 -0
  730. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
  731. data/lib/puppet/provider/package/rpm.rb +10 -6
  732. data/lib/puppet/provider/package/rug.rb +2 -1
  733. data/lib/puppet/provider/package/sun.rb +20 -17
  734. data/lib/puppet/provider/package/sunfreeware.rb +1 -0
  735. data/lib/puppet/provider/package/tdnf.rb +1 -0
  736. data/lib/puppet/provider/package/up2date.rb +2 -1
  737. data/lib/puppet/provider/package/urpmi.rb +1 -0
  738. data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
  739. data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
  740. data/lib/puppet/provider/package/windows/package.rb +5 -3
  741. data/lib/puppet/provider/package/windows.rb +4 -2
  742. data/lib/puppet/provider/package/yum.rb +17 -14
  743. data/lib/puppet/provider/package/zypper.rb +15 -14
  744. data/lib/puppet/provider/package.rb +7 -6
  745. data/lib/puppet/provider/package_targetable.rb +1 -0
  746. data/lib/puppet/provider/parsedfile.rb +7 -2
  747. data/lib/puppet/provider/service/base.rb +2 -1
  748. data/lib/puppet/provider/service/bsd.rb +1 -0
  749. data/lib/puppet/provider/service/daemontools.rb +9 -7
  750. data/lib/puppet/provider/service/debian.rb +4 -3
  751. data/lib/puppet/provider/service/freebsd.rb +5 -6
  752. data/lib/puppet/provider/service/gentoo.rb +5 -4
  753. data/lib/puppet/provider/service/init.rb +10 -11
  754. data/lib/puppet/provider/service/launchd.rb +10 -4
  755. data/lib/puppet/provider/service/openbsd.rb +4 -4
  756. data/lib/puppet/provider/service/openrc.rb +1 -1
  757. data/lib/puppet/provider/service/openwrt.rb +1 -1
  758. data/lib/puppet/provider/service/rcng.rb +1 -0
  759. data/lib/puppet/provider/service/redhat.rb +3 -2
  760. data/lib/puppet/provider/service/runit.rb +8 -7
  761. data/lib/puppet/provider/service/service.rb +1 -0
  762. data/lib/puppet/provider/service/smf.rb +5 -2
  763. data/lib/puppet/provider/service/src.rb +16 -16
  764. data/lib/puppet/provider/service/systemd.rb +8 -4
  765. data/lib/puppet/provider/service/upstart.rb +8 -7
  766. data/lib/puppet/provider/service/windows.rb +22 -26
  767. data/lib/puppet/provider/user/aix.rb +3 -2
  768. data/lib/puppet/provider/user/directoryservice.rb +53 -45
  769. data/lib/puppet/provider/user/hpux.rb +15 -14
  770. data/lib/puppet/provider/user/ldap.rb +8 -6
  771. data/lib/puppet/provider/user/openbsd.rb +21 -20
  772. data/lib/puppet/provider/user/pw.rb +3 -2
  773. data/lib/puppet/provider/user/user_role_add.rb +19 -14
  774. data/lib/puppet/provider/user/useradd.rb +51 -41
  775. data/lib/puppet/provider/user/windows_adsi.rb +4 -1
  776. data/lib/puppet/provider.rb +9 -9
  777. data/lib/puppet/reference/configuration.rb +44 -43
  778. data/lib/puppet/reference/function.rb +1 -0
  779. data/lib/puppet/reference/indirection.rb +43 -42
  780. data/lib/puppet/reference/metaparameter.rb +1 -0
  781. data/lib/puppet/reference/providers.rb +2 -0
  782. data/lib/puppet/reference/report.rb +1 -0
  783. data/lib/puppet/reference/type.rb +4 -3
  784. data/lib/puppet/relationship.rb +3 -2
  785. data/lib/puppet/reports/http.rb +1 -1
  786. data/lib/puppet/reports/log.rb +1 -0
  787. data/lib/puppet/reports/store.rb +3 -1
  788. data/lib/puppet/reports.rb +5 -4
  789. data/lib/puppet/resource/catalog.rb +14 -10
  790. data/lib/puppet/resource/status.rb +1 -1
  791. data/lib/puppet/resource/type.rb +28 -18
  792. data/lib/puppet/resource/type_collection.rb +4 -0
  793. data/lib/puppet/resource.rb +24 -16
  794. data/lib/puppet/runtime.rb +1 -0
  795. data/lib/puppet/scheduler/job.rb +1 -0
  796. data/lib/puppet/scheduler/scheduler.rb +1 -0
  797. data/lib/puppet/scheduler/splay_job.rb +1 -0
  798. data/lib/puppet/scheduler/timer.rb +1 -0
  799. data/lib/puppet/scheduler.rb +1 -0
  800. data/lib/puppet/settings/alias_setting.rb +1 -0
  801. data/lib/puppet/settings/array_setting.rb +1 -1
  802. data/lib/puppet/settings/autosign_setting.rb +1 -1
  803. data/lib/puppet/settings/base_setting.rb +9 -5
  804. data/lib/puppet/settings/boolean_setting.rb +1 -0
  805. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
  806. data/lib/puppet/settings/config_file.rb +3 -3
  807. data/lib/puppet/settings/directory_setting.rb +1 -0
  808. data/lib/puppet/settings/duration_setting.rb +1 -0
  809. data/lib/puppet/settings/enum_setting.rb +2 -1
  810. data/lib/puppet/settings/environment_conf.rb +9 -8
  811. data/lib/puppet/settings/errors.rb +2 -0
  812. data/lib/puppet/settings/file_or_directory_setting.rb +1 -5
  813. data/lib/puppet/settings/file_setting.rb +3 -13
  814. data/lib/puppet/settings/http_extra_headers_setting.rb +1 -1
  815. data/lib/puppet/settings/ini_file.rb +1 -0
  816. data/lib/puppet/settings/integer_setting.rb +1 -0
  817. data/lib/puppet/settings/path_setting.rb +1 -0
  818. data/lib/puppet/settings/port_setting.rb +2 -1
  819. data/lib/puppet/settings/priority_setting.rb +9 -8
  820. data/lib/puppet/settings/server_list_setting.rb +2 -2
  821. data/lib/puppet/settings/string_setting.rb +1 -0
  822. data/lib/puppet/settings/symbolic_enum_setting.rb +2 -1
  823. data/lib/puppet/settings/terminus_setting.rb +1 -0
  824. data/lib/puppet/settings/ttl_setting.rb +2 -0
  825. data/lib/puppet/settings/value_translator.rb +8 -7
  826. data/lib/puppet/settings.rb +89 -66
  827. data/lib/puppet/ssl/base.rb +4 -0
  828. data/lib/puppet/ssl/certificate.rb +3 -2
  829. data/lib/puppet/ssl/certificate_request.rb +9 -7
  830. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -1
  831. data/lib/puppet/ssl/certificate_signer.rb +2 -3
  832. data/lib/puppet/ssl/digest.rb +1 -0
  833. data/lib/puppet/ssl/error.rb +2 -0
  834. data/lib/puppet/ssl/oids.rb +3 -3
  835. data/lib/puppet/ssl/openssl_loader.rb +1 -0
  836. data/lib/puppet/ssl/ssl_context.rb +11 -15
  837. data/lib/puppet/ssl/ssl_provider.rb +2 -1
  838. data/lib/puppet/ssl/state_machine.rb +1 -0
  839. data/lib/puppet/ssl/verifier.rb +2 -2
  840. data/lib/puppet/ssl.rb +1 -0
  841. data/lib/puppet/syntax_checkers/base64.rb +2 -1
  842. data/lib/puppet/syntax_checkers/epp.rb +1 -1
  843. data/lib/puppet/syntax_checkers/json.rb +1 -2
  844. data/lib/puppet/syntax_checkers/pp.rb +1 -1
  845. data/lib/puppet/syntax_checkers.rb +1 -0
  846. data/lib/puppet/test/test_helper.rb +16 -14
  847. data/lib/puppet/thread_local.rb +1 -0
  848. data/lib/puppet/transaction/additional_resource_generator.rb +5 -1
  849. data/lib/puppet/transaction/event.rb +5 -3
  850. data/lib/puppet/transaction/event_manager.rb +4 -3
  851. data/lib/puppet/transaction/persistence.rb +2 -1
  852. data/lib/puppet/transaction/report.rb +24 -16
  853. data/lib/puppet/transaction/resource_harness.rb +6 -3
  854. data/lib/puppet/transaction.rb +11 -6
  855. data/lib/puppet/trusted_external.rb +8 -4
  856. data/lib/puppet/type/component.rb +11 -5
  857. data/lib/puppet/type/exec.rb +26 -10
  858. data/lib/puppet/type/file/checksum.rb +1 -0
  859. data/lib/puppet/type/file/checksum_value.rb +3 -2
  860. data/lib/puppet/type/file/content.rb +16 -13
  861. data/lib/puppet/type/file/ctime.rb +2 -1
  862. data/lib/puppet/type/file/data_sync.rb +4 -2
  863. data/lib/puppet/type/file/ensure.rb +5 -5
  864. data/lib/puppet/type/file/group.rb +2 -1
  865. data/lib/puppet/type/file/mode.rb +4 -2
  866. data/lib/puppet/type/file/mtime.rb +2 -1
  867. data/lib/puppet/type/file/owner.rb +2 -1
  868. data/lib/puppet/type/file/selcontext.rb +2 -2
  869. data/lib/puppet/type/file/source.rb +12 -10
  870. data/lib/puppet/type/file/target.rb +2 -2
  871. data/lib/puppet/type/file/type.rb +2 -1
  872. data/lib/puppet/type/file.rb +22 -13
  873. data/lib/puppet/type/filebucket.rb +2 -1
  874. data/lib/puppet/type/group.rb +8 -8
  875. data/lib/puppet/type/notify.rb +1 -1
  876. data/lib/puppet/type/package.rb +21 -21
  877. data/lib/puppet/type/resources.rb +30 -25
  878. data/lib/puppet/type/schedule.rb +9 -10
  879. data/lib/puppet/type/service.rb +9 -7
  880. data/lib/puppet/type/stage.rb +1 -0
  881. data/lib/puppet/type/tidy.rb +9 -4
  882. data/lib/puppet/type/user.rb +28 -24
  883. data/lib/puppet/type/whit.rb +1 -1
  884. data/lib/puppet/type.rb +71 -61
  885. data/lib/puppet/util/at_fork/noop.rb +1 -0
  886. data/lib/puppet/util/at_fork/solaris.rb +2 -1
  887. data/lib/puppet/util/at_fork.rb +2 -1
  888. data/lib/puppet/util/autoload.rb +5 -0
  889. data/lib/puppet/util/backups.rb +3 -2
  890. data/lib/puppet/util/character_encoding.rb +1 -0
  891. data/lib/puppet/util/checksums.rb +11 -9
  892. data/lib/puppet/util/classgen.rb +8 -13
  893. data/lib/puppet/util/colors.rb +32 -31
  894. data/lib/puppet/util/command_line/puppet_option_parser.rb +12 -12
  895. data/lib/puppet/util/command_line/trollop.rb +693 -690
  896. data/lib/puppet/util/command_line.rb +1 -0
  897. data/lib/puppet/util/constant_inflector.rb +3 -3
  898. data/lib/puppet/util/diff.rb +14 -14
  899. data/lib/puppet/util/docs.rb +3 -0
  900. data/lib/puppet/util/errors.rb +1 -0
  901. data/lib/puppet/util/execution.rb +24 -21
  902. data/lib/puppet/util/execution_stub.rb +1 -0
  903. data/lib/puppet/util/feature.rb +1 -0
  904. data/lib/puppet/util/file_watcher.rb +2 -0
  905. data/lib/puppet/util/fileparsing.rb +2 -0
  906. data/lib/puppet/util/filetype.rb +3 -0
  907. data/lib/puppet/util/http_proxy.rb +1 -0
  908. data/lib/puppet/util/inifile.rb +5 -5
  909. data/lib/puppet/util/instance_loader.rb +2 -0
  910. data/lib/puppet/util/json.rb +1 -0
  911. data/lib/puppet/util/json_lockfile.rb +3 -1
  912. data/lib/puppet/util/ldap/connection.rb +19 -18
  913. data/lib/puppet/util/ldap/generator.rb +1 -0
  914. data/lib/puppet/util/ldap/manager.rb +3 -2
  915. data/lib/puppet/util/ldap.rb +1 -0
  916. data/lib/puppet/util/libuser.rb +1 -1
  917. data/lib/puppet/util/limits.rb +1 -0
  918. data/lib/puppet/util/lockfile.rb +1 -0
  919. data/lib/puppet/util/log/destination.rb +1 -0
  920. data/lib/puppet/util/log/destinations.rb +14 -13
  921. data/lib/puppet/util/log.rb +21 -17
  922. data/lib/puppet/util/logging.rb +18 -14
  923. data/lib/puppet/util/metaid.rb +1 -0
  924. data/lib/puppet/util/metric.rb +2 -0
  925. data/lib/puppet/util/monkey_patches.rb +19 -0
  926. data/lib/puppet/util/multi_match.rb +4 -1
  927. data/lib/puppet/util/network_device/base.rb +1 -1
  928. data/lib/puppet/util/network_device/config.rb +3 -4
  929. data/lib/puppet/util/network_device/transport/base.rb +0 -1
  930. data/lib/puppet/util/network_device/transport.rb +1 -0
  931. data/lib/puppet/util/network_device.rb +1 -0
  932. data/lib/puppet/util/package/version/debian.rb +5 -3
  933. data/lib/puppet/util/package/version/gem.rb +2 -0
  934. data/lib/puppet/util/package/version/pip.rb +7 -2
  935. data/lib/puppet/util/package/version/range/eq.rb +2 -0
  936. data/lib/puppet/util/package/version/range/gt.rb +2 -0
  937. data/lib/puppet/util/package/version/range/gt_eq.rb +2 -0
  938. data/lib/puppet/util/package/version/range/lt.rb +2 -0
  939. data/lib/puppet/util/package/version/range/lt_eq.rb +2 -0
  940. data/lib/puppet/util/package/version/range/min_max.rb +4 -0
  941. data/lib/puppet/util/package/version/range/simple.rb +1 -0
  942. data/lib/puppet/util/package/version/range.rb +3 -0
  943. data/lib/puppet/util/package/version/rpm.rb +7 -5
  944. data/lib/puppet/util/package.rb +3 -0
  945. data/lib/puppet/util/pidlock.rb +7 -7
  946. data/lib/puppet/util/platform.rb +1 -0
  947. data/lib/puppet/util/plist.rb +1 -1
  948. data/lib/puppet/util/posix.rb +8 -5
  949. data/lib/puppet/util/profiler/aggregate.rb +2 -5
  950. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  951. data/lib/puppet/util/profiler/logging.rb +1 -0
  952. data/lib/puppet/util/profiler/object_counts.rb +1 -0
  953. data/lib/puppet/util/profiler/wall_clock.rb +1 -0
  954. data/lib/puppet/util/profiler.rb +1 -0
  955. data/lib/puppet/util/provider_features.rb +5 -1
  956. data/lib/puppet/util/psych_support.rb +1 -0
  957. data/lib/puppet/util/rdoc/code_objects.rb +3 -7
  958. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -50
  959. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -68
  960. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +5 -5
  961. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -0
  962. data/lib/puppet/util/rdoc/parser.rb +1 -0
  963. data/lib/puppet/util/rdoc.rb +1 -1
  964. data/lib/puppet/util/reference.rb +1 -1
  965. data/lib/puppet/util/resource_template.rb +2 -0
  966. data/lib/puppet/util/retry_action.rb +3 -3
  967. data/lib/puppet/util/rpm_compare.rb +6 -3
  968. data/lib/puppet/util/rubygems.rb +1 -1
  969. data/lib/puppet/util/run_mode.rb +2 -1
  970. data/lib/puppet/util/selinux.rb +23 -12
  971. data/lib/puppet/util/skip_tags.rb +1 -0
  972. data/lib/puppet/util/splayer.rb +1 -0
  973. data/lib/puppet/util/storage.rb +2 -1
  974. data/lib/puppet/util/suidmanager.rb +8 -5
  975. data/lib/puppet/util/symbolic_file_mode.rb +3 -1
  976. data/lib/puppet/util/tag_set.rb +1 -0
  977. data/lib/puppet/util/tagging.rb +2 -1
  978. data/lib/puppet/util/terminal.rb +1 -0
  979. data/lib/puppet/util/user_attr.rb +1 -0
  980. data/lib/puppet/util/warnings.rb +3 -0
  981. data/lib/puppet/util/watched_file.rb +1 -0
  982. data/lib/puppet/util/watcher/change_watcher.rb +1 -0
  983. data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
  984. data/lib/puppet/util/watcher/timer.rb +1 -0
  985. data/lib/puppet/util/watcher.rb +1 -0
  986. data/lib/puppet/util/windows/access_control_entry.rb +2 -1
  987. data/lib/puppet/util/windows/access_control_list.rb +4 -3
  988. data/lib/puppet/util/windows/adsi.rb +41 -27
  989. data/lib/puppet/util/windows/com.rb +5 -3
  990. data/lib/puppet/util/windows/daemon.rb +33 -33
  991. data/lib/puppet/util/windows/error.rb +4 -3
  992. data/lib/puppet/util/windows/eventlog.rb +8 -5
  993. data/lib/puppet/util/windows/file.rb +32 -26
  994. data/lib/puppet/util/windows/monkey_patches/process.rb +0 -1
  995. data/lib/puppet/util/windows/principal.rb +27 -27
  996. data/lib/puppet/util/windows/process.rb +8 -7
  997. data/lib/puppet/util/windows/registry.rb +43 -41
  998. data/lib/puppet/util/windows/root_certs.rb +1 -0
  999. data/lib/puppet/util/windows/security.rb +43 -44
  1000. data/lib/puppet/util/windows/security_descriptor.rb +1 -0
  1001. data/lib/puppet/util/windows/service.rb +12 -1
  1002. data/lib/puppet/util/windows/sid.rb +10 -8
  1003. data/lib/puppet/util/windows/string.rb +1 -0
  1004. data/lib/puppet/util/windows/user.rb +33 -33
  1005. data/lib/puppet/util/windows.rb +6 -0
  1006. data/lib/puppet/util/yaml.rb +1 -0
  1007. data/lib/puppet/util.rb +20 -23
  1008. data/lib/puppet/vendor.rb +2 -1
  1009. data/lib/puppet/version.rb +3 -1
  1010. data/lib/puppet/x509/cert_provider.rb +13 -3
  1011. data/lib/puppet/x509/pem_store.rb +1 -0
  1012. data/lib/puppet/x509.rb +1 -0
  1013. data/lib/puppet.rb +1 -0
  1014. data/lib/puppet_pal.rb +1 -0
  1015. data/lib/puppet_x.rb +1 -0
  1016. data/locales/puppet.pot +214 -210
  1017. data/man/man5/puppet.conf.5 +3 -3
  1018. data/man/man8/puppet-agent.8 +1 -1
  1019. data/man/man8/puppet-apply.8 +1 -1
  1020. data/man/man8/puppet-catalog.8 +1 -1
  1021. data/man/man8/puppet-config.8 +1 -1
  1022. data/man/man8/puppet-describe.8 +1 -1
  1023. data/man/man8/puppet-device.8 +1 -1
  1024. data/man/man8/puppet-doc.8 +1 -1
  1025. data/man/man8/puppet-epp.8 +1 -1
  1026. data/man/man8/puppet-facts.8 +1 -1
  1027. data/man/man8/puppet-filebucket.8 +1 -1
  1028. data/man/man8/puppet-generate.8 +1 -1
  1029. data/man/man8/puppet-help.8 +1 -1
  1030. data/man/man8/puppet-lookup.8 +1 -1
  1031. data/man/man8/puppet-module.8 +1 -1
  1032. data/man/man8/puppet-node.8 +1 -1
  1033. data/man/man8/puppet-parser.8 +1 -1
  1034. data/man/man8/puppet-plugin.8 +1 -1
  1035. data/man/man8/puppet-report.8 +1 -1
  1036. data/man/man8/puppet-resource.8 +1 -1
  1037. data/man/man8/puppet-script.8 +1 -1
  1038. data/man/man8/puppet-ssl.8 +5 -1
  1039. data/man/man8/puppet.8 +2 -2
  1040. data/spec/integration/application/agent_spec.rb +13 -0
  1041. data/spec/integration/type/exec_spec.rb +13 -0
  1042. data/spec/lib/puppet_spec/puppetserver.rb +1 -0
  1043. data/spec/lib/puppet_spec/verbose.rb +15 -4
  1044. data/spec/unit/agent_spec.rb +2 -14
  1045. data/spec/unit/application/ssl_spec.rb +49 -0
  1046. data/spec/unit/daemon_spec.rb +3 -20
  1047. data/spec/unit/functions/split_spec.rb +6 -0
  1048. data/spec/unit/indirector/catalog/compiler_spec.rb +17 -0
  1049. data/spec/unit/indirector/catalog/rest_spec.rb +17 -0
  1050. data/spec/unit/info_service_spec.rb +1 -1
  1051. data/spec/unit/provider/package/appdmg_spec.rb +1 -1
  1052. data/spec/unit/provider/package/dnf_spec.rb +7 -0
  1053. data/spec/unit/provider/package/dnfmodule_spec.rb +22 -2
  1054. data/spec/unit/provider/service/systemd_spec.rb +8 -6
  1055. data/spec/unit/ssl/certificate_signer_spec.rb +17 -0
  1056. data/spec/unit/ssl/ssl_provider_spec.rb +1 -1
  1057. data/spec/unit/type/exec_spec.rb +14 -9
  1058. data/spec/unit/util/execution_spec.rb +1 -0
  1059. data/spec/unit/util/monkey_patches_spec.rb +42 -0
  1060. data/spec/unit/util/rpm_compare_spec.rb +8 -8
  1061. data/spec/unit/util/windows/adsi_spec.rb +25 -0
  1062. metadata +5 -4
  1063. data/CONTRIBUTING.md +0 -161
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Puppet::Pops::Types
3
4
  module Iterable
4
-
5
5
  class TreeIterator
6
6
  include Iterable
7
7
 
@@ -9,7 +9,7 @@ class TreeIterator
9
9
  PArrayType::DEFAULT,
10
10
  PHashType::DEFAULT,
11
11
  PObjectType::DEFAULT
12
- )
12
+ )
13
13
 
14
14
  # Creates a TreeIterator that by default treats all Array, Hash and Object instances as
15
15
  # containers - the 'containers' option can be set to a type that denotes which types of values
@@ -38,6 +38,7 @@ class TreeIterator
38
38
  unless DEFAULT_CONTAINERS.assignable?(@containers_t)
39
39
  raise ArgumentError, _("Only Array, Hash, and Object types can be used as container types. Got %{type}") % {type: @containers_t}
40
40
  end
41
+
41
42
  @with_root = extract_option(options, 'include_root', true)
42
43
  @with_containers = extract_option(options, 'include_containers', true)
43
44
  @with_values = extract_option(options, 'include_values', true)
@@ -45,6 +46,7 @@ class TreeIterator
45
46
  unless @with_containers || @with_values
46
47
  raise ArgumentError, _("Options 'include_containers' and 'include_values' cannot both be false")
47
48
  end
49
+
48
50
  @include_refs = !!options['include_refs']
49
51
  end
50
52
 
@@ -92,6 +94,7 @@ class TreeIterator
92
94
 
93
95
  def indexer_on(val)
94
96
  return nil unless @containers_t.instance?(val)
97
+
95
98
  if val.is_a?(Array)
96
99
  val.size.times
97
100
  elsif val.is_a?(Hash)
@@ -100,7 +103,7 @@ class TreeIterator
100
103
  if @include_refs
101
104
  val._pcore_type.attributes.each_key
102
105
  else
103
- val._pcore_type.attributes.reject {|k,v| v.kind == PObjectType::ATTRIBUTE_KIND_REFERENCE }.each_key
106
+ val._pcore_type.attributes.reject {|_k,v| v.kind == PObjectType::ATTRIBUTE_KIND_REFERENCE }.each_key
104
107
  end
105
108
  end
106
109
  end
@@ -124,7 +127,6 @@ class TreeIterator
124
127
  end
125
128
 
126
129
  class DepthFirstTreeIterator < TreeIterator
127
-
128
130
  # Creates a DepthFirstTreeIterator that by default treats all Array, Hash and Object instances as
129
131
  # containers - the 'containers' option can be set to a type that denotes which types of values
130
132
  # should be treated as containers - a `Variant[Array, Hash]` would for instance not treat
@@ -169,7 +171,6 @@ class DepthFirstTreeIterator < TreeIterator
169
171
  redo unless @with_values
170
172
  end
171
173
  return [@current_path.dup, value]
172
-
173
174
  rescue StopIteration
174
175
  # end of current value's range of content
175
176
  # pop all until out of next values
@@ -227,7 +228,6 @@ class BreadthFirstTreeIterator < TreeIterator
227
228
  next unless @with_containers
228
229
  end
229
230
  return [@current_path.dup, value]
230
-
231
231
  rescue StopIteration
232
232
  # end of current value's range of content
233
233
  # shift all until out of next values
@@ -249,7 +249,6 @@ class BreadthFirstTreeIterator < TreeIterator
249
249
  @recursed = true
250
250
  end
251
251
  private :shift_level
252
-
253
252
  end
254
253
  end
255
254
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Puppet::Pops
3
4
  module Types
4
5
  # Implements a standard visitor patter for the Puppet Type system.
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Utility module for type assertion
3
4
  #
4
5
  module Puppet::Pops::Types
@@ -4,7 +4,6 @@ module Puppet::Pops::Types
4
4
  # Raised when an assertion of actual type against an expected type fails.
5
5
  #
6
6
  class TypeAssertionError < Puppet::Error
7
-
8
7
  # Returns the expected type
9
8
  # @return [PAnyType] expected type
10
9
  attr_reader :expected_type
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../../../puppet/concurrent/thread_local_singleton'
3
4
 
4
5
  module Puppet::Pops
@@ -139,9 +140,10 @@ class TypeCalculator
139
140
  o.instance_of?(Array) ||
140
141
  o.instance_of?(Hash) ||
141
142
  Types::PUndefType::DEFAULT.instance?(o)
142
- )
143
+ )
143
144
  return nil
144
145
  end
146
+
145
147
  # For other objects (e.g. PObjectType instances, and runtime types) full inference needed, since that will
146
148
  # cover looking into the runtime type registry.
147
149
  #
@@ -197,6 +199,7 @@ class TypeCalculator
197
199
  # Answers if the two given types describe the same type
198
200
  def equals(left, right)
199
201
  return false unless left.is_a?(PAnyType) && right.is_a?(PAnyType)
202
+
200
203
  # Types compare per class only - an extra test must be made if the are mutually assignable
201
204
  # to find all types that represent the same type of instance
202
205
  #
@@ -369,7 +372,7 @@ class TypeCalculator
369
372
  # when both are resources, reduce to Resource[T] or Resource[] (since one was not assignable to the other)
370
373
  if t1.is_a?(PResourceType) && t2.is_a?(PResourceType)
371
374
  # only Resource[] unless the type name is the same
372
- return t1.type_name == t2.type_name ? PResourceType.new(t1.type_name, nil) : PResourceType::DEFAULT
375
+ return t1.type_name == t2.type_name ? PResourceType.new(t1.type_name, nil) : PResourceType::DEFAULT
373
376
  end
374
377
 
375
378
  # Integers have range, expand the range to the common range
@@ -455,6 +458,7 @@ class TypeCalculator
455
458
  if t1.runtime == t2.runtime && t1.runtime_type_name == t2.runtime_type_name
456
459
  return t1
457
460
  end
461
+
458
462
  # finding the common super class requires that names are resolved to class
459
463
  # NOTE: This only supports runtime type of :ruby
460
464
  c1 = ClassLoader.provide_from_type(t1)
@@ -478,7 +482,7 @@ class TypeCalculator
478
482
  # Produces the superclasses of the given class, including the class
479
483
  def superclasses(c)
480
484
  result = [c]
481
- while s = c.superclass #rubocop:disable Lint/AssignmentInCondition
485
+ while s = c.superclass # rubocop:disable Lint/AssignmentInCondition
482
486
  result << s
483
487
  c = s
484
488
  end
@@ -528,9 +532,11 @@ class TypeCalculator
528
532
  else
529
533
  name = o.class.name
530
534
  return PRuntimeType.new(:ruby, nil) if name.nil? # anonymous class that doesn't implement PuppetObject is impossible to infer
535
+
531
536
  ir = Loaders.implementation_registry
532
537
  type = ir.nil? ? nil : ir.type_for_module(name)
533
538
  return PRuntimeType.new(:ruby, name) if type.nil?
539
+
534
540
  if type.is_a?(PObjectType) && type.parameterized?
535
541
  type = PObjectTypeExtension.create_from_instance(type, o)
536
542
  end
@@ -750,6 +756,7 @@ class TypeCalculator
750
756
  #
751
757
  def size_range(range)
752
758
  return [1,1] if range.nil?
759
+
753
760
  from = range.from
754
761
  to = range.to
755
762
  x = from.nil? ? 1 : from
@@ -817,7 +824,6 @@ class TypeCalculator
817
824
  def common_numeric?(t1, t2)
818
825
  PNumericType::DEFAULT.assignable?(t1) && PNumericType::DEFAULT.assignable?(t2)
819
826
  end
820
-
821
827
  end
822
828
  end
823
829
  end
@@ -3,14 +3,5 @@
3
3
  module Puppet::Pops::Types
4
4
  # Raised when a conversion of a value to another type failed.
5
5
  #
6
- class TypeConversionError < Puppet::Error
7
-
8
- # Creates a new instance with a given message
9
- #
10
- # @param message [String] The error message describing what failed
11
- #
12
- def initialize(message)
13
- super(message)
14
- end
15
- end
6
+ class TypeConversionError < Puppet::Error; end
16
7
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Puppet::Pops
3
4
  module Types
4
5
  # Helper module that makes creation of type objects simpler.
@@ -114,7 +115,7 @@ module TypeFactory
114
115
  size_type_or_value.nil? ? PStringType::DEFAULT : PStringType.new(size_type_or_value)
115
116
  else
116
117
  if Puppet[:strict] != :off
117
- #TRANSLATORS 'TypeFactory#string' is a class and method name and should not be translated
118
+ # TRANSLATORS 'TypeFactory#string' is a class and method name and should not be translated
118
119
  message = _("Passing more than one argument to TypeFactory#string is deprecated")
119
120
  Puppet.warn_once('deprecations', "TypeFactory#string_multi_args", message)
120
121
  end
@@ -179,6 +180,7 @@ module TypeFactory
179
180
  # TODO: Should have stricter name rule
180
181
  if key_type.is_a?(String)
181
182
  raise ArgumentError, 'Struct element key cannot be an empty String' if key_type.empty?
183
+
182
184
  key_type = string(key_type)
183
185
  # Must make key optional if the value can be Undef
184
186
  key_type = optional(key_type) if tc.assignable?(value_type, PUndefType::DEFAULT)
@@ -270,7 +272,7 @@ module TypeFactory
270
272
  case re
271
273
  when String
272
274
  re_t = PRegexpType.new(re)
273
- re_t.regexp # compile it to catch errors
275
+ re_t.regexp # compile it to catch errors
274
276
  re_t
275
277
 
276
278
  when Regexp
@@ -283,7 +285,7 @@ module TypeFactory
283
285
  re.patterns
284
286
 
285
287
  else
286
- raise ArgumentError, "Only String, Regexp, Pattern-Type, and Regexp-Type are allowed: got '#{re.class}"
288
+ raise ArgumentError, "Only String, Regexp, Pattern-Type, and Regexp-Type are allowed: got '#{re.class}"
287
289
  end
288
290
  end.flatten.uniq
289
291
  PPatternType.new(patterns)
@@ -431,9 +433,11 @@ module TypeFactory
431
433
  when String
432
434
  type_name = TypeFormatter.singleton.capitalize_segments(type_name)
433
435
  raise ArgumentError, "Illegal type name '#{type_name}'" unless type_name =~ Patterns::CLASSREF_EXT
436
+
434
437
  PResourceType.new(type_name, title)
435
438
  when nil
436
439
  raise ArgumentError, 'The type name cannot be nil, if title is given' unless title.nil?
440
+
437
441
  PResourceType::DEFAULT
438
442
  else
439
443
  raise ArgumentError, "The type name cannot be a #{type_name.class.name}"
@@ -626,7 +630,6 @@ module TypeFactory
626
630
  def self.is_range_parameter?(t)
627
631
  t.is_a?(Integer) || t == 'default' || :default == t
628
632
  end
629
-
630
633
  end
631
634
  end
632
635
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../../../puppet/concurrent/thread_local_singleton'
3
4
 
4
5
  module Puppet::Pops
@@ -50,7 +51,7 @@ class TypeFormatter
50
51
  # @api public
51
52
  #
52
53
  def string(t)
53
- @bld = String.new
54
+ @bld = ''.dup
54
55
  append_string(t)
55
56
  @bld
56
57
  end
@@ -64,7 +65,7 @@ class TypeFormatter
64
65
  #
65
66
  # @api public
66
67
  def indented_string(t, indent = 0, indent_width = 2)
67
- @bld = String.new
68
+ @bld = ''.dup
68
69
  append_indented_string(t, indent, indent_width)
69
70
  @bld
70
71
  end
@@ -97,7 +98,6 @@ class TypeFormatter
97
98
  end
98
99
  end
99
100
 
100
-
101
101
  def append_default
102
102
  @bld << 'default'
103
103
  end
@@ -156,10 +156,10 @@ class TypeFormatter
156
156
  end
157
157
 
158
158
  # @api private
159
- def string_PScalarType(_) ; @bld << 'Scalar' ; end
159
+ def string_PScalarType(_) ; @bld << 'Scalar' ; end
160
160
 
161
161
  # @api private
162
- def string_PScalarDataType(_) ; @bld << 'ScalarData' ; end
162
+ def string_PScalarDataType(_) ; @bld << 'ScalarData' ; end
163
163
 
164
164
  # @api private
165
165
  def string_PNumericType(_) ; @bld << 'Numeric' ; end
@@ -179,12 +179,12 @@ class TypeFormatter
179
179
 
180
180
  # @api private
181
181
  def string_PInitType(t)
182
- append_array('Init', t.type.nil?) { append_strings([t.type, *t.init_args]) }
182
+ append_array('Init', t.type.nil?) { append_strings([t.type, *t.init_args]) }
183
183
  end
184
184
 
185
185
  # @api private
186
186
  def string_PIterableType(t)
187
- append_array('Iterable', t.element_type.nil?) { append_string(t.element_type) }
187
+ append_array('Iterable', t.element_type.nil?) { append_string(t.element_type) }
188
188
  end
189
189
 
190
190
  # @api private
@@ -332,7 +332,6 @@ class TypeFormatter
332
332
  append_array('Pattern', t.patterns.empty?) { append_strings(t.patterns.map(&:regexp)) }
333
333
  end
334
334
 
335
-
336
335
  # @api private
337
336
  def string_PCollectionType(t)
338
337
  range = range_array_part(t.size_type)
@@ -480,7 +479,7 @@ class TypeFormatter
480
479
  old_ts = @type_set
481
480
  @type_set = t
482
481
  begin
483
- append_hash(v, proc { |tk| @bld << symbolic_key(tk) }) do |tk, tv|
482
+ append_hash(v, proc { |tk| @bld << symbolic_key(tk) }) do |_tk, tv|
484
483
  if tv.is_a?(Hash)
485
484
  append_object_hash(tv)
486
485
  else
@@ -585,7 +584,7 @@ class TypeFormatter
585
584
  end
586
585
 
587
586
  # @api private
588
- def string_FalseClass(t) ; @bld << 'false' ; end
587
+ def string_FalseClass(t) ; @bld << 'false' ; end
589
588
 
590
589
  # @api private
591
590
  def string_Hash(t)
@@ -601,7 +600,7 @@ class TypeFormatter
601
600
  def string_NilClass(t) ; @bld << (@ruby ? 'nil' : 'undef') ; end
602
601
 
603
602
  # @api private
604
- def string_Numeric(t) ; @bld << t.to_s ; end
603
+ def string_Numeric(t) ; @bld << t.to_s ; end
605
604
 
606
605
  # @api private
607
606
  def string_Regexp(t) ; @bld << PRegexpType.regexp_to_s_with_delimiters(t); end
@@ -625,10 +624,10 @@ class TypeFormatter
625
624
  def string_VersionRange(t) ; @bld << "'#{t}'" ; end
626
625
 
627
626
  # @api private
628
- def string_Timespan(t) ; @bld << "'#{t}'" ; end
627
+ def string_Timespan(t) ; @bld << "'#{t}'" ; end
629
628
 
630
629
  # @api private
631
- def string_Timestamp(t) ; @bld << "'#{t}'" ; end
630
+ def string_Timestamp(t) ; @bld << "'#{t}'" ; end
632
631
 
633
632
  # Debugging to_s to reduce the amount of output
634
633
  def to_s
@@ -728,6 +727,7 @@ class TypeFormatter
728
727
  def append_elements(array, to_be_continued = false)
729
728
  case array.size
730
729
  when 0
730
+ # do nothing
731
731
  when 1
732
732
  @bld << array[0]
733
733
  @bld << COMMA_SEP if to_be_continued
@@ -740,6 +740,7 @@ class TypeFormatter
740
740
  def append_strings(array, to_be_continued = false)
741
741
  case array.size
742
742
  when 0
743
+ # do nothing
743
744
  when 1
744
745
  append_string(array[0])
745
746
  @bld << COMMA_SEP if to_be_continued
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Puppet::Pops
3
4
  module Types
4
5
  # @api private
@@ -127,6 +128,7 @@ module Types
127
128
 
128
129
  def chop_path(element_index)
129
130
  return self if element_index >= @path.size
131
+
130
132
  chopped_path = @path.clone
131
133
  chopped_path.delete_at(element_index)
132
134
  copy = self.clone
@@ -482,10 +484,6 @@ module Types
482
484
 
483
485
  # @api private
484
486
  class CountMismatch < SizeMismatch
485
- def initialize(path, expected, actual)
486
- super(path, expected, actual)
487
- end
488
-
489
487
  def message(variant, position)
490
488
  min = expected.from || 0
491
489
  max = expected.to || Float::INFINITY
@@ -513,7 +511,7 @@ module Types
513
511
  end
514
512
 
515
513
  def tense_deprecated
516
- #TRANSLATORS TypeMismatchDescriber is a class name and 'tense' is a method name and should not be translated
514
+ # TRANSLATORS TypeMismatchDescriber is a class name and 'tense' is a method name and should not be translated
517
515
  message = _("Passing a 'tense' argument to the TypeMismatchDescriber is deprecated and ignored.")
518
516
  message += ' ' + _("Everything is now reported using present tense")
519
517
  Puppet.warn_once('deprecations', 'typemismatch#tense', message)
@@ -533,6 +531,7 @@ module Types
533
531
  errors = describe_struct_signature(params_struct, given_hash, missing_ok).flatten
534
532
  case errors.size
535
533
  when 0
534
+ # do nothing
536
535
  when 1
537
536
  raise Puppet::ParseError.new("#{subject}:#{errors[0].format}")
538
537
  else
@@ -573,6 +572,7 @@ module Types
573
572
  errors = describe(param_type, TypeCalculator.singleton.infer_set(value).generalize, [ParameterPathElement.new(param_name)])
574
573
  case errors.size
575
574
  when 0
575
+ # do nothing
576
576
  when 1
577
577
  raise Puppet::ParseError.new("#{subject}:#{errors[0].format}")
578
578
  else
@@ -583,10 +583,11 @@ module Types
583
583
  end
584
584
 
585
585
  def get_deferred_function_return_type(value)
586
- func = Puppet.lookup(:loaders).private_environment_loader.
587
- load(:function, value.name)
586
+ func = Puppet.lookup(:loaders).private_environment_loader
587
+ .load(:function, value.name)
588
588
  dispatcher = func.class.dispatcher.find_matching_dispatcher(value.arguments)
589
589
  raise ArgumentError, "No matching arity found for #{func.class.name} with arguments #{value.arguments}" unless dispatcher
590
+
590
591
  dispatcher.type.return_type
591
592
  end
592
593
  private :get_deferred_function_return_type
@@ -601,7 +602,7 @@ module Types
601
602
  # @return [Array<Mismatch>] An array of found errors. An empty array indicates no errors.
602
603
  def describe_struct_signature(params_struct, param_hash, missing_ok = false)
603
604
  param_type_hash = params_struct.hashed_elements
604
- result = param_hash.each_key.reject { |name| param_type_hash.include?(name) }.map { |name| InvalidParameter.new(nil, name) }
605
+ result = param_hash.each_key.reject { |name| param_type_hash.include?(name) }.map { |name| InvalidParameter.new(nil, name) }
605
606
 
606
607
  params_struct.elements.each do |elem|
607
608
  name = elem.name
@@ -741,6 +742,7 @@ module Types
741
742
  types.each_with_index do |vt, index|
742
743
  d = describe(vt, actual, path + [VariantPathElement.new(index)])
743
744
  return EMPTY_ARRAY if d.empty?
745
+
744
746
  variant_descriptions << d
745
747
  end
746
748
  descriptions = merge_descriptions(path.length, SizeMismatch, variant_descriptions)
@@ -761,6 +763,7 @@ module Types
761
763
  # If they all have the same canonical path, then we can compact this into one
762
764
  generic_mismatch = mismatches.inject do |prev, curr|
763
765
  break nil unless prev.canonical_path == curr.canonical_path
766
+
764
767
  prev.merge(prev.path, curr)
765
768
  end
766
769
  unless generic_mismatch.nil?
@@ -776,6 +779,7 @@ module Types
776
779
 
777
780
  def describe_POptionalType(expected, original, actual, path)
778
781
  return EMPTY_ARRAY if actual.is_a?(PUndefType) || expected.optional_type.nil?
782
+
779
783
  internal_describe(expected.optional_type, original.is_a?(PTypeAliasType) ? original : expected, actual, path)
780
784
  end
781
785
 
@@ -889,6 +893,7 @@ module Types
889
893
 
890
894
  def describe_tuple(expected, original, actual, path, size_mismatch_class)
891
895
  return EMPTY_ARRAY if expected == actual || expected.types.empty? && (actual.is_a?(PArrayType))
896
+
892
897
  expected_size = expected.size_type || TypeFactory.range(*expected.size_range)
893
898
 
894
899
  if actual.is_a?(PTupleType)