puppet 7.28.0-x86-mingw32 → 8.0.1-x86-mingw32

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 (1167) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +5 -5
  3. data/Gemfile +8 -7
  4. data/Gemfile.lock +76 -75
  5. data/Rakefile +27 -0
  6. data/bin/puppet +1 -0
  7. data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
  8. data/ext/build_defaults.yaml +1 -1
  9. data/ext/project_data.yaml +8 -9
  10. data/ext/windows/service/daemon.rb +1 -0
  11. data/install.rb +18 -18
  12. data/lib/hiera/puppet_function.rb +1 -0
  13. data/lib/hiera/scope.rb +6 -5
  14. data/lib/hiera_puppet.rb +2 -1
  15. data/lib/puppet/agent/disabler.rb +1 -0
  16. data/lib/puppet/agent/locker.rb +1 -0
  17. data/lib/puppet/agent.rb +1 -0
  18. data/lib/puppet/application/agent.rb +1 -0
  19. data/lib/puppet/application/apply.rb +1 -0
  20. data/lib/puppet/application/catalog.rb +1 -0
  21. data/lib/puppet/application/config.rb +1 -0
  22. data/lib/puppet/application/describe.rb +1 -0
  23. data/lib/puppet/application/device.rb +1 -0
  24. data/lib/puppet/application/doc.rb +2 -1
  25. data/lib/puppet/application/epp.rb +1 -0
  26. data/lib/puppet/application/face_base.rb +1 -0
  27. data/lib/puppet/application/facts.rb +1 -0
  28. data/lib/puppet/application/filebucket.rb +1 -0
  29. data/lib/puppet/application/generate.rb +1 -0
  30. data/lib/puppet/application/help.rb +1 -0
  31. data/lib/puppet/application/indirection_base.rb +1 -0
  32. data/lib/puppet/application/lookup.rb +2 -1
  33. data/lib/puppet/application/module.rb +1 -0
  34. data/lib/puppet/application/node.rb +1 -0
  35. data/lib/puppet/application/parser.rb +1 -0
  36. data/lib/puppet/application/plugin.rb +1 -0
  37. data/lib/puppet/application/report.rb +1 -0
  38. data/lib/puppet/application/resource.rb +1 -0
  39. data/lib/puppet/application/script.rb +1 -0
  40. data/lib/puppet/application/ssl.rb +8 -42
  41. data/lib/puppet/application.rb +2 -5
  42. data/lib/puppet/application_support.rb +1 -0
  43. data/lib/puppet/coercion.rb +1 -0
  44. data/lib/puppet/compilable_resource_type.rb +1 -0
  45. data/lib/puppet/concurrent/lock.rb +1 -0
  46. data/lib/puppet/concurrent/synchronized.rb +1 -0
  47. data/lib/puppet/concurrent.rb +1 -0
  48. data/lib/puppet/configurer/downloader.rb +1 -0
  49. data/lib/puppet/configurer/fact_handler.rb +1 -0
  50. data/lib/puppet/configurer/plugin_handler.rb +1 -0
  51. data/lib/puppet/configurer.rb +2 -1
  52. data/lib/puppet/confine/any.rb +1 -0
  53. data/lib/puppet/confine/boolean.rb +1 -0
  54. data/lib/puppet/confine/exists.rb +1 -0
  55. data/lib/puppet/confine/false.rb +1 -0
  56. data/lib/puppet/confine/feature.rb +1 -0
  57. data/lib/puppet/confine/true.rb +1 -0
  58. data/lib/puppet/confine/variable.rb +1 -0
  59. data/lib/puppet/confine.rb +1 -0
  60. data/lib/puppet/confine_collection.rb +1 -0
  61. data/lib/puppet/confiner.rb +2 -1
  62. data/lib/puppet/context/trusted_information.rb +7 -6
  63. data/lib/puppet/context.rb +1 -0
  64. data/lib/puppet/daemon.rb +1 -0
  65. data/lib/puppet/data_binding.rb +1 -0
  66. data/lib/puppet/datatypes/error.rb +1 -0
  67. data/lib/puppet/datatypes/impl/error.rb +1 -0
  68. data/lib/puppet/datatypes.rb +1 -0
  69. data/lib/puppet/defaults.rb +30 -18
  70. data/lib/puppet/environments.rb +1 -0
  71. data/lib/puppet/error.rb +1 -0
  72. data/lib/puppet/etc.rb +1 -0
  73. data/lib/puppet/external/dot.rb +1 -0
  74. data/lib/puppet/face/catalog/select.rb +1 -0
  75. data/lib/puppet/face/catalog.rb +1 -0
  76. data/lib/puppet/face/config.rb +2 -1
  77. data/lib/puppet/face/epp.rb +3 -2
  78. data/lib/puppet/face/facts.rb +1 -0
  79. data/lib/puppet/face/generate.rb +1 -0
  80. data/lib/puppet/face/help/action.erb +0 -1
  81. data/lib/puppet/face/help/face.erb +0 -1
  82. data/lib/puppet/face/help.rb +4 -3
  83. data/lib/puppet/face/module/changes.rb +1 -0
  84. data/lib/puppet/face/module/install.rb +1 -0
  85. data/lib/puppet/face/module/list.rb +3 -2
  86. data/lib/puppet/face/module/uninstall.rb +1 -0
  87. data/lib/puppet/face/module/upgrade.rb +1 -0
  88. data/lib/puppet/face/module.rb +1 -0
  89. data/lib/puppet/face/node/clean.rb +1 -0
  90. data/lib/puppet/face/node.rb +1 -0
  91. data/lib/puppet/face/parser.rb +2 -1
  92. data/lib/puppet/face/plugin.rb +1 -0
  93. data/lib/puppet/face/report.rb +1 -0
  94. data/lib/puppet/face/resource.rb +1 -0
  95. data/lib/puppet/face.rb +1 -0
  96. data/lib/puppet/feature/base.rb +1 -0
  97. data/lib/puppet/feature/bolt.rb +1 -0
  98. data/lib/puppet/feature/cfpropertylist.rb +1 -0
  99. data/lib/puppet/feature/eventlog.rb +1 -0
  100. data/lib/puppet/feature/hiera_eyaml.rb +1 -0
  101. data/lib/puppet/feature/hocon.rb +1 -0
  102. data/lib/puppet/feature/libuser.rb +1 -0
  103. data/lib/puppet/feature/msgpack.rb +1 -0
  104. data/lib/puppet/feature/pe_license.rb +1 -0
  105. data/lib/puppet/feature/pson.rb +5 -0
  106. data/lib/puppet/feature/selinux.rb +1 -0
  107. data/lib/puppet/feature/ssh.rb +1 -0
  108. data/lib/puppet/feature/telnet.rb +1 -0
  109. data/lib/puppet/feature/zlib.rb +1 -0
  110. data/lib/puppet/ffi/posix/constants.rb +1 -0
  111. data/lib/puppet/ffi/posix/functions.rb +1 -0
  112. data/lib/puppet/ffi/posix.rb +1 -0
  113. data/lib/puppet/ffi/windows/api_types.rb +2 -1
  114. data/lib/puppet/ffi/windows/constants.rb +1 -0
  115. data/lib/puppet/ffi/windows/functions.rb +1 -0
  116. data/lib/puppet/ffi/windows/structs.rb +1 -0
  117. data/lib/puppet/ffi/windows.rb +1 -0
  118. data/lib/puppet/file_bucket/dipper.rb +1 -0
  119. data/lib/puppet/file_bucket/file.rb +1 -0
  120. data/lib/puppet/file_bucket.rb +1 -0
  121. data/lib/puppet/file_serving/base.rb +1 -0
  122. data/lib/puppet/file_serving/configuration/parser.rb +1 -0
  123. data/lib/puppet/file_serving/configuration.rb +1 -0
  124. data/lib/puppet/file_serving/content.rb +1 -0
  125. data/lib/puppet/file_serving/fileset.rb +1 -0
  126. data/lib/puppet/file_serving/http_metadata.rb +1 -0
  127. data/lib/puppet/file_serving/metadata.rb +1 -0
  128. data/lib/puppet/file_serving/mount/file.rb +5 -4
  129. data/lib/puppet/file_serving/mount/locales.rb +1 -0
  130. data/lib/puppet/file_serving/mount/modules.rb +1 -0
  131. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -0
  132. data/lib/puppet/file_serving/mount/plugins.rb +1 -0
  133. data/lib/puppet/file_serving/mount/scripts.rb +1 -0
  134. data/lib/puppet/file_serving/mount/tasks.rb +1 -0
  135. data/lib/puppet/file_serving/mount.rb +1 -0
  136. data/lib/puppet/file_serving/terminus_helper.rb +1 -0
  137. data/lib/puppet/file_serving/terminus_selector.rb +1 -0
  138. data/lib/puppet/file_serving.rb +1 -0
  139. data/lib/puppet/file_system/file_impl.rb +2 -1
  140. data/lib/puppet/file_system/jruby.rb +1 -0
  141. data/lib/puppet/file_system/memory_file.rb +1 -0
  142. data/lib/puppet/file_system/memory_impl.rb +1 -0
  143. data/lib/puppet/file_system/path_pattern.rb +2 -1
  144. data/lib/puppet/file_system/posix.rb +4 -3
  145. data/lib/puppet/file_system/uniquefile.rb +2 -1
  146. data/lib/puppet/file_system/windows.rb +1 -0
  147. data/lib/puppet/file_system.rb +1 -0
  148. data/lib/puppet/forge/cache.rb +1 -0
  149. data/lib/puppet/forge/errors.rb +1 -0
  150. data/lib/puppet/forge/repository.rb +1 -0
  151. data/lib/puppet/forge.rb +2 -1
  152. data/lib/puppet/functions/abs.rb +1 -0
  153. data/lib/puppet/functions/alert.rb +1 -0
  154. data/lib/puppet/functions/all.rb +1 -0
  155. data/lib/puppet/functions/annotate.rb +1 -0
  156. data/lib/puppet/functions/any.rb +1 -0
  157. data/lib/puppet/functions/assert_type.rb +1 -0
  158. data/lib/puppet/functions/binary_file.rb +1 -0
  159. data/lib/puppet/functions/break.rb +1 -0
  160. data/lib/puppet/functions/call.rb +1 -0
  161. data/lib/puppet/functions/camelcase.rb +1 -0
  162. data/lib/puppet/functions/capitalize.rb +1 -0
  163. data/lib/puppet/functions/ceiling.rb +1 -0
  164. data/lib/puppet/functions/chomp.rb +1 -0
  165. data/lib/puppet/functions/chop.rb +1 -0
  166. data/lib/puppet/functions/compare.rb +1 -0
  167. data/lib/puppet/functions/contain.rb +1 -0
  168. data/lib/puppet/functions/convert_to.rb +1 -0
  169. data/lib/puppet/functions/crit.rb +1 -0
  170. data/lib/puppet/functions/debug.rb +1 -0
  171. data/lib/puppet/functions/defined.rb +1 -0
  172. data/lib/puppet/functions/dig.rb +1 -0
  173. data/lib/puppet/functions/downcase.rb +1 -0
  174. data/lib/puppet/functions/each.rb +1 -0
  175. data/lib/puppet/functions/emerg.rb +1 -0
  176. data/lib/puppet/functions/empty.rb +1 -0
  177. data/lib/puppet/functions/epp.rb +1 -0
  178. data/lib/puppet/functions/err.rb +1 -0
  179. data/lib/puppet/functions/eyaml_lookup_key.rb +1 -0
  180. data/lib/puppet/functions/filter.rb +1 -0
  181. data/lib/puppet/functions/find_file.rb +1 -0
  182. data/lib/puppet/functions/find_template.rb +1 -0
  183. data/lib/puppet/functions/flatten.rb +1 -0
  184. data/lib/puppet/functions/floor.rb +1 -0
  185. data/lib/puppet/functions/get.rb +1 -0
  186. data/lib/puppet/functions/getvar.rb +1 -0
  187. data/lib/puppet/functions/hiera.rb +1 -0
  188. data/lib/puppet/functions/hiera_array.rb +1 -0
  189. data/lib/puppet/functions/hiera_hash.rb +1 -0
  190. data/lib/puppet/functions/hiera_include.rb +1 -0
  191. data/lib/puppet/functions/hocon_data.rb +1 -0
  192. data/lib/puppet/functions/import.rb +1 -0
  193. data/lib/puppet/functions/include.rb +1 -0
  194. data/lib/puppet/functions/index.rb +1 -0
  195. data/lib/puppet/functions/info.rb +1 -0
  196. data/lib/puppet/functions/inline_epp.rb +1 -0
  197. data/lib/puppet/functions/join.rb +1 -0
  198. data/lib/puppet/functions/json_data.rb +1 -0
  199. data/lib/puppet/functions/keys.rb +1 -0
  200. data/lib/puppet/functions/length.rb +1 -0
  201. data/lib/puppet/functions/lest.rb +1 -0
  202. data/lib/puppet/functions/lookup.rb +1 -0
  203. data/lib/puppet/functions/lstrip.rb +1 -0
  204. data/lib/puppet/functions/map.rb +1 -0
  205. data/lib/puppet/functions/match.rb +1 -0
  206. data/lib/puppet/functions/max.rb +67 -0
  207. data/lib/puppet/functions/min.rb +67 -0
  208. data/lib/puppet/functions/module_directory.rb +1 -0
  209. data/lib/puppet/functions/new.rb +1 -0
  210. data/lib/puppet/functions/next.rb +1 -0
  211. data/lib/puppet/functions/notice.rb +1 -0
  212. data/lib/puppet/functions/reduce.rb +1 -0
  213. data/lib/puppet/functions/regsubst.rb +1 -0
  214. data/lib/puppet/functions/require.rb +1 -0
  215. data/lib/puppet/functions/return.rb +1 -0
  216. data/lib/puppet/functions/reverse_each.rb +1 -0
  217. data/lib/puppet/functions/round.rb +1 -0
  218. data/lib/puppet/functions/rstrip.rb +1 -0
  219. data/lib/puppet/functions/scanf.rb +1 -0
  220. data/lib/puppet/functions/size.rb +1 -0
  221. data/lib/puppet/functions/slice.rb +1 -0
  222. data/lib/puppet/functions/sort.rb +1 -0
  223. data/lib/puppet/functions/split.rb +2 -28
  224. data/lib/puppet/functions/step.rb +1 -0
  225. data/lib/puppet/functions/strftime.rb +1 -0
  226. data/lib/puppet/functions/strip.rb +1 -0
  227. data/lib/puppet/functions/then.rb +1 -0
  228. data/lib/puppet/functions/tree_each.rb +1 -0
  229. data/lib/puppet/functions/type.rb +1 -0
  230. data/lib/puppet/functions/unique.rb +1 -0
  231. data/lib/puppet/functions/unwrap.rb +1 -0
  232. data/lib/puppet/functions/upcase.rb +1 -0
  233. data/lib/puppet/functions/values.rb +1 -0
  234. data/lib/puppet/functions/versioncmp.rb +2 -1
  235. data/lib/puppet/functions/warning.rb +1 -0
  236. data/lib/puppet/functions/with.rb +1 -0
  237. data/lib/puppet/functions/yaml_data.rb +1 -0
  238. data/lib/puppet/functions.rb +6 -5
  239. data/lib/puppet/generate/models/type/property.rb +1 -0
  240. data/lib/puppet/generate/models/type/type.rb +1 -0
  241. data/lib/puppet/generate/type.rb +1 -0
  242. data/lib/puppet/gettext/config.rb +1 -0
  243. data/lib/puppet/gettext/module_translations.rb +1 -0
  244. data/lib/puppet/gettext/stubs.rb +1 -0
  245. data/lib/puppet/graph/key.rb +1 -0
  246. data/lib/puppet/graph/prioritizer.rb +1 -0
  247. data/lib/puppet/graph/rb_tree_map.rb +1 -0
  248. data/lib/puppet/graph/relationship_graph.rb +1 -0
  249. data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
  250. data/lib/puppet/graph/simple_graph.rb +1 -0
  251. data/lib/puppet/graph.rb +1 -0
  252. data/lib/puppet/http/client.rb +6 -12
  253. data/lib/puppet/http/dns.rb +1 -0
  254. data/lib/puppet/http/errors.rb +1 -0
  255. data/lib/puppet/http/external_client.rb +1 -0
  256. data/lib/puppet/http/factory.rb +1 -0
  257. data/lib/puppet/http/pool.rb +1 -0
  258. data/lib/puppet/http/pool_entry.rb +1 -0
  259. data/lib/puppet/http/proxy.rb +1 -0
  260. data/lib/puppet/http/redirector.rb +1 -0
  261. data/lib/puppet/http/resolver/server_list.rb +1 -0
  262. data/lib/puppet/http/resolver/settings.rb +1 -0
  263. data/lib/puppet/http/resolver/srv.rb +1 -0
  264. data/lib/puppet/http/resolver.rb +1 -0
  265. data/lib/puppet/http/response.rb +1 -0
  266. data/lib/puppet/http/response_converter.rb +1 -0
  267. data/lib/puppet/http/response_net_http.rb +1 -0
  268. data/lib/puppet/http/retry_after_handler.rb +1 -0
  269. data/lib/puppet/http/service/ca.rb +2 -1
  270. data/lib/puppet/http/service/compiler.rb +2 -5
  271. data/lib/puppet/http/service/file_server.rb +2 -1
  272. data/lib/puppet/http/service/puppetserver.rb +1 -0
  273. data/lib/puppet/http/service/report.rb +2 -4
  274. data/lib/puppet/http/service.rb +1 -0
  275. data/lib/puppet/http/session.rb +3 -2
  276. data/lib/puppet/http/site.rb +1 -0
  277. data/lib/puppet/http.rb +3 -2
  278. data/lib/puppet/indirector/catalog/compiler.rb +10 -17
  279. data/lib/puppet/indirector/catalog/json.rb +1 -0
  280. data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
  281. data/lib/puppet/indirector/catalog/rest.rb +1 -8
  282. data/lib/puppet/indirector/catalog/store_configs.rb +1 -0
  283. data/lib/puppet/indirector/catalog/yaml.rb +1 -0
  284. data/lib/puppet/indirector/code.rb +1 -0
  285. data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
  286. data/lib/puppet/indirector/data_binding/none.rb +1 -0
  287. data/lib/puppet/indirector/direct_file_server.rb +1 -0
  288. data/lib/puppet/indirector/envelope.rb +1 -0
  289. data/lib/puppet/indirector/errors.rb +1 -0
  290. data/lib/puppet/indirector/exec.rb +1 -0
  291. data/lib/puppet/indirector/face.rb +6 -16
  292. data/lib/puppet/indirector/fact_search.rb +1 -0
  293. data/lib/puppet/indirector/facts/facter.rb +1 -0
  294. data/lib/puppet/indirector/facts/json.rb +1 -0
  295. data/lib/puppet/indirector/facts/memory.rb +1 -0
  296. data/lib/puppet/indirector/facts/network_device.rb +1 -0
  297. data/lib/puppet/indirector/facts/rest.rb +1 -0
  298. data/lib/puppet/indirector/facts/store_configs.rb +1 -0
  299. data/lib/puppet/indirector/facts/yaml.rb +1 -0
  300. data/lib/puppet/indirector/file_bucket_file/file.rb +2 -1
  301. data/lib/puppet/indirector/file_bucket_file/rest.rb +1 -0
  302. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
  303. data/lib/puppet/indirector/file_content/file.rb +1 -0
  304. data/lib/puppet/indirector/file_content/file_server.rb +1 -0
  305. data/lib/puppet/indirector/file_content/rest.rb +1 -0
  306. data/lib/puppet/indirector/file_content/selector.rb +1 -0
  307. data/lib/puppet/indirector/file_content.rb +1 -0
  308. data/lib/puppet/indirector/file_metadata/file.rb +1 -0
  309. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
  310. data/lib/puppet/indirector/file_metadata/http.rb +1 -0
  311. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  312. data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
  313. data/lib/puppet/indirector/file_metadata.rb +1 -0
  314. data/lib/puppet/indirector/file_server.rb +1 -0
  315. data/lib/puppet/indirector/generic_http.rb +1 -0
  316. data/lib/puppet/indirector/hiera.rb +1 -0
  317. data/lib/puppet/indirector/indirection.rb +2 -1
  318. data/lib/puppet/indirector/json.rb +1 -0
  319. data/lib/puppet/indirector/memory.rb +1 -0
  320. data/lib/puppet/indirector/msgpack.rb +1 -0
  321. data/lib/puppet/indirector/node/exec.rb +1 -0
  322. data/lib/puppet/indirector/node/json.rb +1 -0
  323. data/lib/puppet/indirector/node/memory.rb +1 -0
  324. data/lib/puppet/indirector/node/msgpack.rb +1 -0
  325. data/lib/puppet/indirector/node/plain.rb +1 -0
  326. data/lib/puppet/indirector/node/rest.rb +1 -0
  327. data/lib/puppet/indirector/node/store_configs.rb +1 -0
  328. data/lib/puppet/indirector/node/yaml.rb +1 -0
  329. data/lib/puppet/indirector/none.rb +1 -0
  330. data/lib/puppet/indirector/plain.rb +1 -0
  331. data/lib/puppet/indirector/report/json.rb +1 -0
  332. data/lib/puppet/indirector/report/msgpack.rb +1 -0
  333. data/lib/puppet/indirector/report/processor.rb +1 -0
  334. data/lib/puppet/indirector/report/rest.rb +1 -13
  335. data/lib/puppet/indirector/report/yaml.rb +1 -0
  336. data/lib/puppet/indirector/request.rb +1 -0
  337. data/lib/puppet/indirector/resource/ral.rb +1 -0
  338. data/lib/puppet/indirector/resource/store_configs.rb +1 -0
  339. data/lib/puppet/indirector/resource/validator.rb +1 -0
  340. data/lib/puppet/indirector/rest.rb +1 -0
  341. data/lib/puppet/indirector/store_configs.rb +1 -0
  342. data/lib/puppet/indirector/terminus.rb +1 -0
  343. data/lib/puppet/indirector/yaml.rb +1 -0
  344. data/lib/puppet/indirector.rb +1 -0
  345. data/lib/puppet/info_service/class_information_service.rb +1 -0
  346. data/lib/puppet/info_service/plan_information_service.rb +1 -0
  347. data/lib/puppet/info_service/task_information_service.rb +1 -0
  348. data/lib/puppet/info_service.rb +1 -0
  349. data/lib/puppet/interface/action.rb +3 -4
  350. data/lib/puppet/interface/action_builder.rb +10 -4
  351. data/lib/puppet/interface/action_manager.rb +1 -0
  352. data/lib/puppet/interface/documentation.rb +1 -1
  353. data/lib/puppet/interface/face_collection.rb +1 -0
  354. data/lib/puppet/interface/option.rb +1 -0
  355. data/lib/puppet/interface/option_builder.rb +1 -0
  356. data/lib/puppet/interface/option_manager.rb +1 -0
  357. data/lib/puppet/interface.rb +1 -0
  358. data/lib/puppet/loaders.rb +1 -0
  359. data/lib/puppet/metatype/manager.rb +1 -0
  360. data/lib/puppet/module/plan.rb +1 -0
  361. data/lib/puppet/module/task.rb +1 -2
  362. data/lib/puppet/module.rb +4 -1
  363. data/lib/puppet/module_tool/applications/application.rb +1 -0
  364. data/lib/puppet/module_tool/applications/checksummer.rb +1 -0
  365. data/lib/puppet/module_tool/applications/installer.rb +1 -0
  366. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -0
  367. data/lib/puppet/module_tool/applications/unpacker.rb +1 -0
  368. data/lib/puppet/module_tool/applications/upgrader.rb +1 -0
  369. data/lib/puppet/module_tool/applications.rb +1 -0
  370. data/lib/puppet/module_tool/checksums.rb +1 -0
  371. data/lib/puppet/module_tool/contents_description.rb +1 -0
  372. data/lib/puppet/module_tool/dependency.rb +1 -0
  373. data/lib/puppet/module_tool/errors/base.rb +1 -0
  374. data/lib/puppet/module_tool/errors/installer.rb +1 -0
  375. data/lib/puppet/module_tool/errors/shared.rb +1 -0
  376. data/lib/puppet/module_tool/errors/uninstaller.rb +1 -0
  377. data/lib/puppet/module_tool/errors/upgrader.rb +1 -0
  378. data/lib/puppet/module_tool/errors.rb +1 -0
  379. data/lib/puppet/module_tool/install_directory.rb +1 -0
  380. data/lib/puppet/module_tool/installed_modules.rb +1 -0
  381. data/lib/puppet/module_tool/local_tarball.rb +1 -0
  382. data/lib/puppet/module_tool/metadata.rb +1 -0
  383. data/lib/puppet/module_tool/shared_behaviors.rb +1 -0
  384. data/lib/puppet/module_tool/tar/gnu.rb +1 -0
  385. data/lib/puppet/module_tool/tar/mini.rb +1 -0
  386. data/lib/puppet/module_tool/tar.rb +1 -0
  387. data/lib/puppet/module_tool.rb +2 -1
  388. data/lib/puppet/network/authconfig.rb +1 -0
  389. data/lib/puppet/network/authorization.rb +1 -0
  390. data/lib/puppet/network/client_request.rb +1 -0
  391. data/lib/puppet/network/format.rb +1 -0
  392. data/lib/puppet/network/format_handler.rb +2 -1
  393. data/lib/puppet/network/format_support.rb +1 -0
  394. data/lib/puppet/network/formats.rb +6 -3
  395. data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
  396. data/lib/puppet/network/http/api/indirection_type.rb +1 -0
  397. data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
  398. data/lib/puppet/network/http/api/master/v3.rb +1 -0
  399. data/lib/puppet/network/http/api/master.rb +1 -0
  400. data/lib/puppet/network/http/api/server/v3/environments.rb +1 -0
  401. data/lib/puppet/network/http/api/server/v3.rb +1 -0
  402. data/lib/puppet/network/http/api/server.rb +1 -0
  403. data/lib/puppet/network/http/api.rb +1 -0
  404. data/lib/puppet/network/http/connection.rb +1 -0
  405. data/lib/puppet/network/http/error.rb +1 -0
  406. data/lib/puppet/network/http/handler.rb +1 -0
  407. data/lib/puppet/network/http/issues.rb +1 -0
  408. data/lib/puppet/network/http/memory_response.rb +2 -1
  409. data/lib/puppet/network/http/request.rb +1 -0
  410. data/lib/puppet/network/http/response.rb +1 -0
  411. data/lib/puppet/network/http/route.rb +1 -0
  412. data/lib/puppet/network/http.rb +1 -0
  413. data/lib/puppet/network/http_pool.rb +1 -0
  414. data/lib/puppet/network/uri.rb +1 -0
  415. data/lib/puppet/network.rb +1 -0
  416. data/lib/puppet/node/environment.rb +7 -8
  417. data/lib/puppet/node/facts.rb +1 -0
  418. data/lib/puppet/node.rb +2 -1
  419. data/lib/puppet/pal/catalog_compiler.rb +1 -0
  420. data/lib/puppet/pal/compiler.rb +1 -0
  421. data/lib/puppet/pal/function_signature.rb +1 -0
  422. data/lib/puppet/pal/json_catalog_encoder.rb +1 -0
  423. data/lib/puppet/pal/pal_api.rb +1 -0
  424. data/lib/puppet/pal/pal_impl.rb +1 -0
  425. data/lib/puppet/pal/plan_signature.rb +1 -0
  426. data/lib/puppet/pal/script_compiler.rb +1 -0
  427. data/lib/puppet/pal/task_signature.rb +1 -0
  428. data/lib/puppet/parameter/boolean.rb +1 -0
  429. data/lib/puppet/parameter/package_options.rb +1 -0
  430. data/lib/puppet/parameter/path.rb +1 -0
  431. data/lib/puppet/parameter/value.rb +1 -0
  432. data/lib/puppet/parameter/value_collection.rb +2 -1
  433. data/lib/puppet/parameter.rb +1 -0
  434. data/lib/puppet/parser/abstract_compiler.rb +1 -0
  435. data/lib/puppet/parser/ast/block_expression.rb +1 -0
  436. data/lib/puppet/parser/ast/branch.rb +1 -0
  437. data/lib/puppet/parser/ast/hostclass.rb +1 -0
  438. data/lib/puppet/parser/ast/leaf.rb +1 -0
  439. data/lib/puppet/parser/ast/node.rb +1 -0
  440. data/lib/puppet/parser/ast/pops_bridge.rb +1 -0
  441. data/lib/puppet/parser/ast/resource.rb +1 -0
  442. data/lib/puppet/parser/ast/resource_instance.rb +1 -0
  443. data/lib/puppet/parser/ast/resourceparam.rb +1 -0
  444. data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
  445. data/lib/puppet/parser/ast.rb +1 -0
  446. data/lib/puppet/parser/catalog_compiler.rb +1 -0
  447. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -0
  448. data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
  449. data/lib/puppet/parser/compiler.rb +2 -1
  450. data/lib/puppet/parser/e4_parser_adapter.rb +1 -0
  451. data/lib/puppet/parser/files.rb +1 -0
  452. data/lib/puppet/parser/functions/assert_type.rb +1 -0
  453. data/lib/puppet/parser/functions/binary_file.rb +1 -0
  454. data/lib/puppet/parser/functions/break.rb +1 -0
  455. data/lib/puppet/parser/functions/contain.rb +1 -0
  456. data/lib/puppet/parser/functions/create_resources.rb +1 -0
  457. data/lib/puppet/parser/functions/defined.rb +1 -0
  458. data/lib/puppet/parser/functions/dig.rb +1 -0
  459. data/lib/puppet/parser/functions/digest.rb +1 -0
  460. data/lib/puppet/parser/functions/each.rb +1 -0
  461. data/lib/puppet/parser/functions/epp.rb +1 -0
  462. data/lib/puppet/parser/functions/fail.rb +1 -0
  463. data/lib/puppet/parser/functions/file.rb +1 -0
  464. data/lib/puppet/parser/functions/filter.rb +1 -0
  465. data/lib/puppet/parser/functions/find_file.rb +1 -0
  466. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -0
  467. data/lib/puppet/parser/functions/generate.rb +1 -0
  468. data/lib/puppet/parser/functions/hiera.rb +1 -0
  469. data/lib/puppet/parser/functions/hiera_array.rb +1 -0
  470. data/lib/puppet/parser/functions/hiera_hash.rb +1 -0
  471. data/lib/puppet/parser/functions/hiera_include.rb +1 -0
  472. data/lib/puppet/parser/functions/include.rb +1 -0
  473. data/lib/puppet/parser/functions/inline_epp.rb +1 -0
  474. data/lib/puppet/parser/functions/inline_template.rb +1 -0
  475. data/lib/puppet/parser/functions/lest.rb +1 -0
  476. data/lib/puppet/parser/functions/lookup.rb +1 -0
  477. data/lib/puppet/parser/functions/map.rb +1 -0
  478. data/lib/puppet/parser/functions/match.rb +1 -0
  479. data/lib/puppet/parser/functions/md5.rb +1 -0
  480. data/lib/puppet/parser/functions/new.rb +1 -0
  481. data/lib/puppet/parser/functions/next.rb +1 -0
  482. data/lib/puppet/parser/functions/realize.rb +1 -0
  483. data/lib/puppet/parser/functions/reduce.rb +1 -0
  484. data/lib/puppet/parser/functions/regsubst.rb +1 -0
  485. data/lib/puppet/parser/functions/require.rb +1 -0
  486. data/lib/puppet/parser/functions/return.rb +1 -0
  487. data/lib/puppet/parser/functions/reverse_each.rb +1 -0
  488. data/lib/puppet/parser/functions/scanf.rb +1 -0
  489. data/lib/puppet/parser/functions/sha1.rb +1 -0
  490. data/lib/puppet/parser/functions/sha256.rb +1 -0
  491. data/lib/puppet/parser/functions/shellquote.rb +1 -0
  492. data/lib/puppet/parser/functions/slice.rb +1 -0
  493. data/lib/puppet/parser/functions/split.rb +1 -0
  494. data/lib/puppet/parser/functions/sprintf.rb +1 -0
  495. data/lib/puppet/parser/functions/step.rb +1 -0
  496. data/lib/puppet/parser/functions/strftime.rb +1 -0
  497. data/lib/puppet/parser/functions/tag.rb +1 -0
  498. data/lib/puppet/parser/functions/tagged.rb +1 -0
  499. data/lib/puppet/parser/functions/template.rb +1 -0
  500. data/lib/puppet/parser/functions/then.rb +1 -0
  501. data/lib/puppet/parser/functions/type.rb +1 -0
  502. data/lib/puppet/parser/functions/versioncmp.rb +1 -0
  503. data/lib/puppet/parser/functions/with.rb +1 -0
  504. data/lib/puppet/parser/functions.rb +2 -1
  505. data/lib/puppet/parser/parser_factory.rb +1 -0
  506. data/lib/puppet/parser/relationship.rb +1 -0
  507. data/lib/puppet/parser/resource/param.rb +1 -0
  508. data/lib/puppet/parser/resource.rb +1 -0
  509. data/lib/puppet/parser/scope.rb +6 -1
  510. data/lib/puppet/parser/script_compiler.rb +1 -0
  511. data/lib/puppet/parser/type_loader.rb +1 -0
  512. data/lib/puppet/parser.rb +1 -0
  513. data/lib/puppet/plugins/configuration.rb +1 -0
  514. data/lib/puppet/plugins/syntax_checkers.rb +1 -0
  515. data/lib/puppet/plugins.rb +1 -0
  516. data/lib/puppet/pops/adaptable.rb +1 -0
  517. data/lib/puppet/pops/adapters.rb +1 -0
  518. data/lib/puppet/pops/evaluator/access_operator.rb +2 -1
  519. data/lib/puppet/pops/evaluator/callable_signature.rb +1 -0
  520. data/lib/puppet/pops/evaluator/closure.rb +2 -1
  521. data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -0
  522. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
  523. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -0
  524. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -0
  525. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -0
  526. data/lib/puppet/pops/evaluator/compare_operator.rb +1 -0
  527. data/lib/puppet/pops/evaluator/deferred_resolver.rb +6 -22
  528. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -0
  529. data/lib/puppet/pops/evaluator/evaluator_impl.rb +2 -1
  530. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -0
  531. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
  532. data/lib/puppet/pops/evaluator/literal_evaluator.rb +2 -1
  533. data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -0
  534. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -0
  535. data/lib/puppet/pops/evaluator/runtime3_converter.rb +1 -0
  536. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -1
  537. data/lib/puppet/pops/evaluator/runtime3_support.rb +2 -1
  538. data/lib/puppet/pops/functions/dispatch.rb +1 -0
  539. data/lib/puppet/pops/functions/dispatcher.rb +1 -0
  540. data/lib/puppet/pops/functions/function.rb +1 -0
  541. data/lib/puppet/pops/issue_reporter.rb +1 -0
  542. data/lib/puppet/pops/issues.rb +1 -0
  543. data/lib/puppet/pops/label_provider.rb +1 -0
  544. data/lib/puppet/pops/loader/base_loader.rb +1 -0
  545. data/lib/puppet/pops/loader/dependency_loader.rb +1 -0
  546. data/lib/puppet/pops/loader/gem_support.rb +1 -0
  547. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
  548. data/lib/puppet/pops/loader/loader.rb +3 -2
  549. data/lib/puppet/pops/loader/loader_paths.rb +13 -12
  550. data/lib/puppet/pops/loader/module_loaders.rb +2 -1
  551. data/lib/puppet/pops/loader/predefined_loader.rb +1 -0
  552. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +1 -0
  553. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +1 -0
  554. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -0
  555. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +2 -1
  556. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -1
  557. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +3 -2
  558. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -0
  559. data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -0
  560. data/lib/puppet/pops/loader/static_loader.rb +1 -0
  561. data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
  562. data/lib/puppet/pops/loader/type_definition_instantiator.rb +1 -0
  563. data/lib/puppet/pops/loader/typed_name.rb +2 -1
  564. data/lib/puppet/pops/loader/uri_helper.rb +1 -0
  565. data/lib/puppet/pops/loaders.rb +1 -0
  566. data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
  567. data/lib/puppet/pops/lookup/context.rb +1 -0
  568. data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
  569. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +3 -2
  570. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +4 -3
  571. data/lib/puppet/pops/lookup/data_provider.rb +1 -0
  572. data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
  573. data/lib/puppet/pops/lookup/explainer.rb +3 -2
  574. data/lib/puppet/pops/lookup/function_provider.rb +1 -0
  575. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -0
  576. data/lib/puppet/pops/lookup/hiera_config.rb +47 -42
  577. data/lib/puppet/pops/lookup/interpolation.rb +10 -4
  578. data/lib/puppet/pops/lookup/invocation.rb +1 -0
  579. data/lib/puppet/pops/lookup/key_recorder.rb +1 -0
  580. data/lib/puppet/pops/lookup/location_resolver.rb +1 -0
  581. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -6
  582. data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
  583. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +3 -2
  584. data/lib/puppet/pops/lookup/module_data_provider.rb +1 -0
  585. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -0
  586. data/lib/puppet/pops/lookup.rb +3 -2
  587. data/lib/puppet/pops/merge_strategy.rb +1 -0
  588. data/lib/puppet/pops/migration/migration_checker.rb +1 -0
  589. data/lib/puppet/pops/model/ast_transformer.rb +1 -0
  590. data/lib/puppet/pops/model/factory.rb +1 -1
  591. data/lib/puppet/pops/model/model_label_provider.rb +1 -0
  592. data/lib/puppet/pops/model/model_tree_dumper.rb +1 -0
  593. data/lib/puppet/pops/model/pn_transformer.rb +1 -0
  594. data/lib/puppet/pops/model/tree_dumper.rb +2 -1
  595. data/lib/puppet/pops/parser/code_merger.rb +1 -0
  596. data/lib/puppet/pops/parser/epp_parser.rb +1 -0
  597. data/lib/puppet/pops/parser/epp_support.rb +2 -1
  598. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -1
  599. data/lib/puppet/pops/parser/heredoc_support.rb +1 -0
  600. data/lib/puppet/pops/parser/interpolation_support.rb +1 -0
  601. data/lib/puppet/pops/parser/lexer_support.rb +1 -0
  602. data/lib/puppet/pops/parser/locatable.rb +1 -0
  603. data/lib/puppet/pops/parser/locator.rb +1 -0
  604. data/lib/puppet/pops/parser/parser_support.rb +1 -0
  605. data/lib/puppet/pops/parser/pn_parser.rb +5 -4
  606. data/lib/puppet/pops/patterns.rb +1 -0
  607. data/lib/puppet/pops/pcore.rb +3 -2
  608. data/lib/puppet/pops/pn.rb +2 -1
  609. data/lib/puppet/pops/puppet_stack.rb +1 -0
  610. data/lib/puppet/pops/resource/param.rb +1 -0
  611. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -0
  612. data/lib/puppet/pops/semantic_error.rb +1 -0
  613. data/lib/puppet/pops/serialization/abstract_reader.rb +1 -0
  614. data/lib/puppet/pops/serialization/abstract_writer.rb +1 -0
  615. data/lib/puppet/pops/serialization/deserializer.rb +1 -0
  616. data/lib/puppet/pops/serialization/extension.rb +1 -0
  617. data/lib/puppet/pops/serialization/from_data_converter.rb +1 -0
  618. data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
  619. data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
  620. data/lib/puppet/pops/serialization/json.rb +1 -0
  621. data/lib/puppet/pops/serialization/json_path.rb +2 -1
  622. data/lib/puppet/pops/serialization/object.rb +1 -0
  623. data/lib/puppet/pops/serialization/serializer.rb +1 -0
  624. data/lib/puppet/pops/serialization/time_factory.rb +1 -0
  625. data/lib/puppet/pops/serialization/to_data_converter.rb +2 -1
  626. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -0
  627. data/lib/puppet/pops/serialization.rb +9 -8
  628. data/lib/puppet/pops/time/timespan.rb +15 -14
  629. data/lib/puppet/pops/time/timestamp.rb +3 -2
  630. data/lib/puppet/pops/types/annotatable.rb +2 -1
  631. data/lib/puppet/pops/types/annotation.rb +2 -1
  632. data/lib/puppet/pops/types/class_loader.rb +1 -0
  633. data/lib/puppet/pops/types/implementation_registry.rb +1 -0
  634. data/lib/puppet/pops/types/iterable.rb +1 -0
  635. data/lib/puppet/pops/types/p_binary_type.rb +1 -0
  636. data/lib/puppet/pops/types/p_init_type.rb +1 -0
  637. data/lib/puppet/pops/types/p_meta_type.rb +4 -3
  638. data/lib/puppet/pops/types/p_object_type.rb +16 -15
  639. data/lib/puppet/pops/types/p_object_type_extension.rb +1 -0
  640. data/lib/puppet/pops/types/p_runtime_type.rb +1 -0
  641. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -0
  642. data/lib/puppet/pops/types/p_sem_ver_type.rb +1 -0
  643. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -0
  644. data/lib/puppet/pops/types/p_timespan_type.rb +1 -0
  645. data/lib/puppet/pops/types/p_timestamp_type.rb +1 -0
  646. data/lib/puppet/pops/types/p_type_set_type.rb +9 -8
  647. data/lib/puppet/pops/types/p_uri_type.rb +9 -8
  648. data/lib/puppet/pops/types/puppet_object.rb +1 -0
  649. data/lib/puppet/pops/types/recursion_guard.rb +1 -0
  650. data/lib/puppet/pops/types/ruby_generator.rb +3 -2
  651. data/lib/puppet/pops/types/ruby_method.rb +1 -0
  652. data/lib/puppet/pops/types/string_converter.rb +10 -9
  653. data/lib/puppet/pops/types/tree_iterators.rb +1 -0
  654. data/lib/puppet/pops/types/type_acceptor.rb +1 -0
  655. data/lib/puppet/pops/types/type_asserter.rb +1 -0
  656. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  657. data/lib/puppet/pops/types/type_calculator.rb +2 -1
  658. data/lib/puppet/pops/types/type_conversion_error.rb +1 -0
  659. data/lib/puppet/pops/types/type_factory.rb +2 -1
  660. data/lib/puppet/pops/types/type_formatter.rb +2 -2
  661. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -0
  662. data/lib/puppet/pops/types/type_parser.rb +1 -0
  663. data/lib/puppet/pops/types/type_set_reference.rb +1 -0
  664. data/lib/puppet/pops/types/type_with_members.rb +1 -0
  665. data/lib/puppet/pops/types/types.rb +3 -2
  666. data/lib/puppet/pops/utils.rb +3 -2
  667. data/lib/puppet/pops/validation/checker4_0.rb +1 -0
  668. data/lib/puppet/pops/validation/tasks_checker.rb +1 -0
  669. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  670. data/lib/puppet/pops/validation.rb +1 -0
  671. data/lib/puppet/pops/visitable.rb +1 -0
  672. data/lib/puppet/pops/visitor.rb +1 -0
  673. data/lib/puppet/pops.rb +4 -3
  674. data/lib/puppet/property/boolean.rb +1 -0
  675. data/lib/puppet/property/ensure.rb +1 -0
  676. data/lib/puppet/property/keyvalue.rb +1 -0
  677. data/lib/puppet/property/list.rb +1 -0
  678. data/lib/puppet/property/ordered_list.rb +1 -0
  679. data/lib/puppet/property.rb +1 -0
  680. data/lib/puppet/provider/aix_object.rb +1 -0
  681. data/lib/puppet/provider/command.rb +1 -0
  682. data/lib/puppet/provider/confine.rb +1 -0
  683. data/lib/puppet/provider/exec/posix.rb +1 -0
  684. data/lib/puppet/provider/exec/shell.rb +1 -0
  685. data/lib/puppet/provider/exec/windows.rb +4 -3
  686. data/lib/puppet/provider/exec.rb +1 -0
  687. data/lib/puppet/provider/file/posix.rb +1 -0
  688. data/lib/puppet/provider/file/windows.rb +2 -1
  689. data/lib/puppet/provider/group/aix.rb +3 -2
  690. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  691. data/lib/puppet/provider/group/groupadd.rb +2 -1
  692. data/lib/puppet/provider/group/ldap.rb +1 -0
  693. data/lib/puppet/provider/group/pw.rb +3 -2
  694. data/lib/puppet/provider/group/windows_adsi.rb +3 -2
  695. data/lib/puppet/provider/ldap.rb +1 -0
  696. data/lib/puppet/provider/nameservice/directoryservice.rb +5 -4
  697. data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
  698. data/lib/puppet/provider/nameservice/pw.rb +1 -0
  699. data/lib/puppet/provider/nameservice.rb +1 -0
  700. data/lib/puppet/provider/network_device.rb +1 -0
  701. data/lib/puppet/provider/package/aix.rb +3 -2
  702. data/lib/puppet/provider/package/appdmg.rb +3 -2
  703. data/lib/puppet/provider/package/apple.rb +2 -1
  704. data/lib/puppet/provider/package/apt.rb +3 -2
  705. data/lib/puppet/provider/package/aptitude.rb +1 -0
  706. data/lib/puppet/provider/package/aptrpm.rb +1 -0
  707. data/lib/puppet/provider/package/blastwave.rb +2 -1
  708. data/lib/puppet/provider/package/dnf.rb +6 -6
  709. data/lib/puppet/provider/package/dnfmodule.rb +2 -1
  710. data/lib/puppet/provider/package/dpkg.rb +1 -0
  711. data/lib/puppet/provider/package/fink.rb +1 -0
  712. data/lib/puppet/provider/package/freebsd.rb +2 -1
  713. data/lib/puppet/provider/package/gem.rb +5 -4
  714. data/lib/puppet/provider/package/hpux.rb +3 -2
  715. data/lib/puppet/provider/package/macports.rb +2 -1
  716. data/lib/puppet/provider/package/nim.rb +1 -0
  717. data/lib/puppet/provider/package/openbsd.rb +3 -2
  718. data/lib/puppet/provider/package/opkg.rb +3 -2
  719. data/lib/puppet/provider/package/pacman.rb +3 -2
  720. data/lib/puppet/provider/package/pip.rb +1 -0
  721. data/lib/puppet/provider/package/pip2.rb +1 -0
  722. data/lib/puppet/provider/package/pip3.rb +1 -0
  723. data/lib/puppet/provider/package/pkg.rb +4 -3
  724. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  725. data/lib/puppet/provider/package/pkgin.rb +2 -1
  726. data/lib/puppet/provider/package/pkgng.rb +3 -2
  727. data/lib/puppet/provider/package/pkgutil.rb +2 -1
  728. data/lib/puppet/provider/package/portage.rb +3 -2
  729. data/lib/puppet/provider/package/ports.rb +1 -0
  730. data/lib/puppet/provider/package/portupgrade.rb +2 -1
  731. data/lib/puppet/provider/package/puppet_gem.rb +3 -2
  732. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
  733. data/lib/puppet/provider/package/rpm.rb +1 -0
  734. data/lib/puppet/provider/package/rug.rb +2 -1
  735. data/lib/puppet/provider/package/sun.rb +3 -2
  736. data/lib/puppet/provider/package/sunfreeware.rb +2 -1
  737. data/lib/puppet/provider/package/tdnf.rb +2 -1
  738. data/lib/puppet/provider/package/up2date.rb +3 -2
  739. data/lib/puppet/provider/package/urpmi.rb +2 -1
  740. data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
  741. data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
  742. data/lib/puppet/provider/package/windows/package.rb +3 -2
  743. data/lib/puppet/provider/package/windows.rb +3 -2
  744. data/lib/puppet/provider/package/yum.rb +6 -5
  745. data/lib/puppet/provider/package/zypper.rb +3 -2
  746. data/lib/puppet/provider/package.rb +1 -0
  747. data/lib/puppet/provider/package_targetable.rb +1 -0
  748. data/lib/puppet/provider/parsedfile.rb +1 -0
  749. data/lib/puppet/provider/service/base.rb +2 -1
  750. data/lib/puppet/provider/service/bsd.rb +2 -1
  751. data/lib/puppet/provider/service/daemontools.rb +2 -1
  752. data/lib/puppet/provider/service/debian.rb +4 -3
  753. data/lib/puppet/provider/service/freebsd.rb +3 -2
  754. data/lib/puppet/provider/service/gentoo.rb +2 -1
  755. data/lib/puppet/provider/service/init.rb +9 -5
  756. data/lib/puppet/provider/service/launchd.rb +4 -3
  757. data/lib/puppet/provider/service/openbsd.rb +3 -2
  758. data/lib/puppet/provider/service/openrc.rb +3 -2
  759. data/lib/puppet/provider/service/openwrt.rb +3 -2
  760. data/lib/puppet/provider/service/rcng.rb +3 -2
  761. data/lib/puppet/provider/service/redhat.rb +4 -3
  762. data/lib/puppet/provider/service/runit.rb +1 -0
  763. data/lib/puppet/provider/service/service.rb +1 -0
  764. data/lib/puppet/provider/service/smf.rb +6 -5
  765. data/lib/puppet/provider/service/src.rb +3 -2
  766. data/lib/puppet/provider/service/systemd.rb +17 -17
  767. data/lib/puppet/provider/service/upstart.rb +8 -7
  768. data/lib/puppet/provider/service/windows.rb +3 -2
  769. data/lib/puppet/provider/user/aix.rb +3 -2
  770. data/lib/puppet/provider/user/directoryservice.rb +5 -4
  771. data/lib/puppet/provider/user/hpux.rb +3 -2
  772. data/lib/puppet/provider/user/ldap.rb +1 -0
  773. data/lib/puppet/provider/user/openbsd.rb +3 -2
  774. data/lib/puppet/provider/user/pw.rb +3 -2
  775. data/lib/puppet/provider/user/user_role_add.rb +2 -1
  776. data/lib/puppet/provider/user/useradd.rb +7 -6
  777. data/lib/puppet/provider/user/windows_adsi.rb +3 -2
  778. data/lib/puppet/provider.rb +1 -0
  779. data/lib/puppet/reference/configuration.rb +2 -1
  780. data/lib/puppet/reference/function.rb +1 -0
  781. data/lib/puppet/reference/indirection.rb +2 -1
  782. data/lib/puppet/reference/metaparameter.rb +1 -0
  783. data/lib/puppet/reference/providers.rb +5 -5
  784. data/lib/puppet/reference/report.rb +1 -0
  785. data/lib/puppet/reference/type.rb +1 -0
  786. data/lib/puppet/relationship.rb +1 -0
  787. data/lib/puppet/reports/http.rb +1 -0
  788. data/lib/puppet/reports/log.rb +1 -0
  789. data/lib/puppet/reports/store.rb +1 -0
  790. data/lib/puppet/reports.rb +2 -1
  791. data/lib/puppet/resource/catalog.rb +1 -0
  792. data/lib/puppet/resource/status.rb +1 -0
  793. data/lib/puppet/resource/type.rb +9 -8
  794. data/lib/puppet/resource.rb +9 -8
  795. data/lib/puppet/runtime.rb +1 -0
  796. data/lib/puppet/scheduler/job.rb +1 -0
  797. data/lib/puppet/scheduler/scheduler.rb +1 -0
  798. data/lib/puppet/scheduler/splay_job.rb +1 -0
  799. data/lib/puppet/scheduler/timer.rb +1 -0
  800. data/lib/puppet/scheduler.rb +1 -0
  801. data/lib/puppet/settings/alias_setting.rb +1 -0
  802. data/lib/puppet/settings/array_setting.rb +1 -0
  803. data/lib/puppet/settings/autosign_setting.rb +1 -0
  804. data/lib/puppet/settings/base_setting.rb +1 -0
  805. data/lib/puppet/settings/boolean_setting.rb +1 -0
  806. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -0
  807. data/lib/puppet/settings/config_file.rb +1 -0
  808. data/lib/puppet/settings/directory_setting.rb +1 -0
  809. data/lib/puppet/settings/duration_setting.rb +1 -0
  810. data/lib/puppet/settings/enum_setting.rb +1 -0
  811. data/lib/puppet/settings/environment_conf.rb +1 -0
  812. data/lib/puppet/settings/errors.rb +1 -0
  813. data/lib/puppet/settings/file_or_directory_setting.rb +1 -0
  814. data/lib/puppet/settings/file_setting.rb +1 -0
  815. data/lib/puppet/settings/http_extra_headers_setting.rb +1 -0
  816. data/lib/puppet/settings/ini_file.rb +1 -0
  817. data/lib/puppet/settings/integer_setting.rb +1 -0
  818. data/lib/puppet/settings/path_setting.rb +1 -0
  819. data/lib/puppet/settings/port_setting.rb +1 -0
  820. data/lib/puppet/settings/priority_setting.rb +1 -0
  821. data/lib/puppet/settings/server_list_setting.rb +1 -0
  822. data/lib/puppet/settings/string_setting.rb +1 -0
  823. data/lib/puppet/settings/symbolic_enum_setting.rb +1 -0
  824. data/lib/puppet/settings/terminus_setting.rb +1 -0
  825. data/lib/puppet/settings/ttl_setting.rb +1 -0
  826. data/lib/puppet/settings/value_translator.rb +1 -0
  827. data/lib/puppet/settings.rb +7 -20
  828. data/lib/puppet/ssl/base.rb +1 -0
  829. data/lib/puppet/ssl/certificate.rb +1 -0
  830. data/lib/puppet/ssl/certificate_request.rb +2 -4
  831. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -0
  832. data/lib/puppet/ssl/certificate_signer.rb +1 -0
  833. data/lib/puppet/ssl/digest.rb +1 -0
  834. data/lib/puppet/ssl/error.rb +1 -0
  835. data/lib/puppet/ssl/oids.rb +1 -1
  836. data/lib/puppet/ssl/openssl_loader.rb +1 -0
  837. data/lib/puppet/ssl/ssl_context.rb +16 -10
  838. data/lib/puppet/ssl/ssl_provider.rb +2 -1
  839. data/lib/puppet/ssl/state_machine.rb +1 -0
  840. data/lib/puppet/ssl/verifier.rb +1 -0
  841. data/lib/puppet/ssl.rb +2 -1
  842. data/lib/puppet/syntax_checkers/base64.rb +1 -0
  843. data/lib/puppet/syntax_checkers/epp.rb +1 -0
  844. data/lib/puppet/syntax_checkers/json.rb +1 -0
  845. data/lib/puppet/syntax_checkers/pp.rb +1 -0
  846. data/lib/puppet/syntax_checkers.rb +1 -0
  847. data/lib/puppet/test/test_helper.rb +4 -21
  848. data/lib/puppet/thread_local.rb +5 -1
  849. data/lib/puppet/transaction/additional_resource_generator.rb +1 -0
  850. data/lib/puppet/transaction/event.rb +1 -0
  851. data/lib/puppet/transaction/event_manager.rb +1 -0
  852. data/lib/puppet/transaction/persistence.rb +1 -0
  853. data/lib/puppet/transaction/report.rb +3 -2
  854. data/lib/puppet/transaction/resource_harness.rb +1 -0
  855. data/lib/puppet/transaction.rb +1 -0
  856. data/lib/puppet/trusted_external.rb +1 -0
  857. data/lib/puppet/type/component.rb +2 -1
  858. data/lib/puppet/type/exec.rb +8 -15
  859. data/lib/puppet/type/file/checksum.rb +1 -0
  860. data/lib/puppet/type/file/checksum_value.rb +1 -0
  861. data/lib/puppet/type/file/content.rb +1 -0
  862. data/lib/puppet/type/file/ctime.rb +1 -0
  863. data/lib/puppet/type/file/data_sync.rb +1 -0
  864. data/lib/puppet/type/file/ensure.rb +1 -0
  865. data/lib/puppet/type/file/group.rb +1 -0
  866. data/lib/puppet/type/file/mode.rb +1 -0
  867. data/lib/puppet/type/file/mtime.rb +1 -0
  868. data/lib/puppet/type/file/owner.rb +1 -0
  869. data/lib/puppet/type/file/selcontext.rb +1 -0
  870. data/lib/puppet/type/file/source.rb +2 -1
  871. data/lib/puppet/type/file/target.rb +1 -0
  872. data/lib/puppet/type/file/type.rb +1 -0
  873. data/lib/puppet/type/file.rb +1 -0
  874. data/lib/puppet/type/filebucket.rb +1 -0
  875. data/lib/puppet/type/group.rb +1 -0
  876. data/lib/puppet/type/notify.rb +1 -0
  877. data/lib/puppet/type/package.rb +3 -2
  878. data/lib/puppet/type/resources.rb +2 -2
  879. data/lib/puppet/type/schedule.rb +1 -0
  880. data/lib/puppet/type/service.rb +1 -0
  881. data/lib/puppet/type/stage.rb +1 -0
  882. data/lib/puppet/type/tidy.rb +1 -0
  883. data/lib/puppet/type/user.rb +1 -0
  884. data/lib/puppet/type/whit.rb +1 -0
  885. data/lib/puppet/type.rb +2 -42
  886. data/lib/puppet/util/at_fork/noop.rb +1 -0
  887. data/lib/puppet/util/at_fork/solaris.rb +1 -0
  888. data/lib/puppet/util/at_fork.rb +1 -0
  889. data/lib/puppet/util/autoload.rb +1 -0
  890. data/lib/puppet/util/backups.rb +1 -0
  891. data/lib/puppet/util/character_encoding.rb +1 -0
  892. data/lib/puppet/util/checksums.rb +1 -0
  893. data/lib/puppet/util/classgen.rb +1 -0
  894. data/lib/puppet/util/colors.rb +1 -0
  895. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -0
  896. data/lib/puppet/util/command_line/trollop.rb +2 -1
  897. data/lib/puppet/util/command_line.rb +1 -0
  898. data/lib/puppet/util/constant_inflector.rb +1 -0
  899. data/lib/puppet/util/diff.rb +2 -1
  900. data/lib/puppet/util/docs.rb +1 -0
  901. data/lib/puppet/util/errors.rb +1 -0
  902. data/lib/puppet/util/execution.rb +7 -12
  903. data/lib/puppet/util/execution_stub.rb +1 -0
  904. data/lib/puppet/util/feature.rb +1 -0
  905. data/lib/puppet/util/file_watcher.rb +1 -0
  906. data/lib/puppet/util/fileparsing.rb +1 -0
  907. data/lib/puppet/util/filetype.rb +3 -2
  908. data/lib/puppet/util/http_proxy.rb +1 -0
  909. data/lib/puppet/util/inifile.rb +3 -2
  910. data/lib/puppet/util/instance_loader.rb +1 -0
  911. data/lib/puppet/util/json.rb +1 -0
  912. data/lib/puppet/util/json_lockfile.rb +1 -0
  913. data/lib/puppet/util/ldap/connection.rb +1 -0
  914. data/lib/puppet/util/ldap/generator.rb +1 -0
  915. data/lib/puppet/util/ldap/manager.rb +1 -0
  916. data/lib/puppet/util/ldap.rb +1 -0
  917. data/lib/puppet/util/libuser.rb +1 -0
  918. data/lib/puppet/util/limits.rb +1 -0
  919. data/lib/puppet/util/lockfile.rb +1 -0
  920. data/lib/puppet/util/log/destination.rb +1 -0
  921. data/lib/puppet/util/log/destinations.rb +1 -0
  922. data/lib/puppet/util/log.rb +1 -0
  923. data/lib/puppet/util/logging.rb +1 -0
  924. data/lib/puppet/util/metaid.rb +1 -0
  925. data/lib/puppet/util/metric.rb +1 -0
  926. data/lib/puppet/util/monkey_patches.rb +3 -28
  927. data/lib/puppet/util/multi_match.rb +1 -0
  928. data/lib/puppet/util/network_device/base.rb +1 -0
  929. data/lib/puppet/util/network_device/config.rb +1 -0
  930. data/lib/puppet/util/network_device/transport/base.rb +1 -0
  931. data/lib/puppet/util/network_device/transport.rb +1 -0
  932. data/lib/puppet/util/network_device.rb +1 -0
  933. data/lib/puppet/util/package/version/debian.rb +1 -0
  934. data/lib/puppet/util/package/version/gem.rb +1 -0
  935. data/lib/puppet/util/package/version/pip.rb +4 -3
  936. data/lib/puppet/util/package/version/range/eq.rb +1 -0
  937. data/lib/puppet/util/package/version/range/gt.rb +1 -0
  938. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -0
  939. data/lib/puppet/util/package/version/range/lt.rb +1 -0
  940. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -0
  941. data/lib/puppet/util/package/version/range/min_max.rb +1 -0
  942. data/lib/puppet/util/package/version/range/simple.rb +1 -0
  943. data/lib/puppet/util/package/version/range.rb +1 -0
  944. data/lib/puppet/util/package/version/rpm.rb +1 -1
  945. data/lib/puppet/util/pidlock.rb +1 -0
  946. data/lib/puppet/util/platform.rb +3 -2
  947. data/lib/puppet/util/plist.rb +1 -0
  948. data/lib/puppet/util/posix.rb +1 -0
  949. data/lib/puppet/util/profiler/aggregate.rb +1 -0
  950. data/lib/puppet/util/profiler/around_profiler.rb +1 -0
  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 +2 -1
  956. data/lib/puppet/util/psych_support.rb +1 -0
  957. data/lib/puppet/util/rdoc/code_objects.rb +1 -0
  958. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -0
  959. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1 -0
  960. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -0
  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 -0
  964. data/lib/puppet/util/reference.rb +1 -0
  965. data/lib/puppet/util/resource_template.rb +1 -0
  966. data/lib/puppet/util/retry_action.rb +1 -0
  967. data/lib/puppet/util/rpm_compare.rb +1 -0
  968. data/lib/puppet/util/rubygems.rb +1 -0
  969. data/lib/puppet/util/run_mode.rb +1 -0
  970. data/lib/puppet/util/selinux.rb +2 -1
  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 +1 -0
  974. data/lib/puppet/util/suidmanager.rb +2 -1
  975. data/lib/puppet/util/symbolic_file_mode.rb +1 -0
  976. data/lib/puppet/util/tag_set.rb +1 -0
  977. data/lib/puppet/util/terminal.rb +1 -0
  978. data/lib/puppet/util/user_attr.rb +1 -0
  979. data/lib/puppet/util/warnings.rb +1 -0
  980. data/lib/puppet/util/watched_file.rb +1 -0
  981. data/lib/puppet/util/watcher/change_watcher.rb +1 -0
  982. data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
  983. data/lib/puppet/util/watcher/timer.rb +1 -0
  984. data/lib/puppet/util/watcher.rb +1 -0
  985. data/lib/puppet/util/windows/access_control_entry.rb +2 -1
  986. data/lib/puppet/util/windows/access_control_list.rb +2 -1
  987. data/lib/puppet/util/windows/adsi.rb +3 -9
  988. data/lib/puppet/util/windows/com.rb +1 -0
  989. data/lib/puppet/util/windows/daemon.rb +1 -0
  990. data/lib/puppet/util/windows/error.rb +2 -1
  991. data/lib/puppet/util/windows/eventlog.rb +1 -0
  992. data/lib/puppet/util/windows/file.rb +3 -2
  993. data/lib/puppet/util/windows/principal.rb +1 -0
  994. data/lib/puppet/util/windows/process.rb +2 -1
  995. data/lib/puppet/util/windows/registry.rb +1 -0
  996. data/lib/puppet/util/windows/root_certs.rb +1 -0
  997. data/lib/puppet/util/windows/security.rb +1 -0
  998. data/lib/puppet/util/windows/security_descriptor.rb +1 -0
  999. data/lib/puppet/util/windows/service.rb +1 -0
  1000. data/lib/puppet/util/windows/sid.rb +3 -4
  1001. data/lib/puppet/util/windows/string.rb +1 -0
  1002. data/lib/puppet/util/windows/user.rb +1 -0
  1003. data/lib/puppet/util/windows.rb +1 -0
  1004. data/lib/puppet/util/yaml.rb +1 -0
  1005. data/lib/puppet/util.rb +32 -87
  1006. data/lib/puppet/vendor.rb +1 -0
  1007. data/lib/puppet/version.rb +2 -1
  1008. data/lib/puppet/x509/cert_provider.rb +3 -6
  1009. data/lib/puppet/x509/pem_store.rb +1 -0
  1010. data/lib/puppet/x509.rb +1 -0
  1011. data/lib/puppet.rb +5 -8
  1012. data/lib/puppet_pal.rb +1 -0
  1013. data/lib/puppet_x.rb +1 -0
  1014. data/locales/puppet.pot +9679 -5
  1015. data/man/man5/puppet.conf.5 +13 -13
  1016. data/man/man8/puppet-agent.8 +1 -1
  1017. data/man/man8/puppet-apply.8 +1 -1
  1018. data/man/man8/puppet-catalog.8 +1 -5
  1019. data/man/man8/puppet-config.8 +1 -1
  1020. data/man/man8/puppet-describe.8 +1 -1
  1021. data/man/man8/puppet-device.8 +1 -1
  1022. data/man/man8/puppet-doc.8 +1 -1
  1023. data/man/man8/puppet-epp.8 +1 -1
  1024. data/man/man8/puppet-facts.8 +1 -5
  1025. data/man/man8/puppet-filebucket.8 +1 -1
  1026. data/man/man8/puppet-generate.8 +1 -1
  1027. data/man/man8/puppet-help.8 +1 -1
  1028. data/man/man8/puppet-lookup.8 +1 -1
  1029. data/man/man8/puppet-module.8 +1 -1
  1030. data/man/man8/puppet-node.8 +1 -5
  1031. data/man/man8/puppet-parser.8 +1 -1
  1032. data/man/man8/puppet-plugin.8 +1 -1
  1033. data/man/man8/puppet-report.8 +1 -5
  1034. data/man/man8/puppet-resource.8 +1 -1
  1035. data/man/man8/puppet-script.8 +1 -1
  1036. data/man/man8/puppet-ssl.8 +1 -5
  1037. data/man/man8/puppet.8 +2 -2
  1038. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
  1039. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +1 -1
  1040. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +1 -1
  1041. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +1 -1
  1042. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
  1043. data/spec/integration/application/agent_spec.rb +17 -25
  1044. data/spec/integration/application/apply_spec.rb +23 -29
  1045. data/spec/integration/configurer_spec.rb +4 -2
  1046. data/spec/integration/defaults_spec.rb +3 -3
  1047. data/spec/integration/http/client_spec.rb +2 -18
  1048. data/spec/integration/network/formats_spec.rb +1 -1
  1049. data/spec/integration/network/http/api/indirected_routes_spec.rb +2 -2
  1050. data/spec/integration/network/http_pool_spec.rb +2 -2
  1051. data/spec/integration/node/facts_spec.rb +2 -2
  1052. data/spec/integration/parser/compiler_spec.rb +15 -4
  1053. data/spec/integration/parser/conditionals_spec.rb +3 -0
  1054. data/spec/integration/parser/scope_spec.rb +10 -3
  1055. data/spec/integration/type/exec_spec.rb +0 -13
  1056. data/spec/integration/type/file_spec.rb +2 -2
  1057. data/spec/integration/type/package_spec.rb +5 -5
  1058. data/spec/integration/util_spec.rb +1 -1
  1059. data/spec/lib/puppet_spec/network.rb +18 -0
  1060. data/spec/lib/puppet_spec/puppetserver.rb +0 -1
  1061. data/spec/shared_examples/rhel_package_provider.rb +2 -2
  1062. data/spec/unit/application/device_spec.rb +2 -2
  1063. data/spec/unit/application/lookup_spec.rb +6 -0
  1064. data/spec/unit/application/resource_spec.rb +22 -13
  1065. data/spec/unit/application/ssl_spec.rb +0 -49
  1066. data/spec/unit/configurer/fact_handler_spec.rb +1 -1
  1067. data/spec/unit/confine_spec.rb +6 -6
  1068. data/spec/unit/data_providers/hiera_data_provider_spec.rb +2 -0
  1069. data/spec/unit/defaults_spec.rb +48 -2
  1070. data/spec/unit/external/pson_spec.rb +1 -3
  1071. data/spec/unit/face/epp_face_spec.rb +2 -2
  1072. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  1073. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  1074. data/spec/unit/file_serving/mount/file_spec.rb +2 -2
  1075. data/spec/unit/file_system/path_pattern_spec.rb +0 -15
  1076. data/spec/unit/functions/epp_spec.rb +7 -1
  1077. data/spec/unit/functions/hiera_spec.rb +7 -7
  1078. data/spec/unit/functions/inline_epp_spec.rb +7 -1
  1079. data/spec/unit/functions/lookup_spec.rb +59 -69
  1080. data/spec/unit/functions/max_spec.rb +30 -1
  1081. data/spec/unit/functions/min_spec.rb +30 -1
  1082. data/spec/unit/functions/return_spec.rb +4 -0
  1083. data/spec/unit/functions/split_spec.rb +0 -6
  1084. data/spec/unit/hiera/scope_spec.rb +6 -1
  1085. data/spec/unit/hiera_puppet_spec.rb +1 -1
  1086. data/spec/unit/http/factory_spec.rb +1 -1
  1087. data/spec/unit/http/service/compiler_spec.rb +5 -3
  1088. data/spec/unit/http/service/file_server_spec.rb +5 -3
  1089. data/spec/unit/http/service/report_spec.rb +4 -14
  1090. data/spec/unit/http/service_spec.rb +5 -11
  1091. data/spec/unit/indirector/catalog/compiler_spec.rb +12 -28
  1092. data/spec/unit/indirector/catalog/rest_spec.rb +0 -17
  1093. data/spec/unit/indirector/face_spec.rb +4 -6
  1094. data/spec/unit/indirector/facts/facter_spec.rb +1 -1
  1095. data/spec/unit/indirector/hiera_spec.rb +7 -2
  1096. data/spec/unit/indirector/report/rest_spec.rb +0 -26
  1097. data/spec/unit/indirector/rest_spec.rb +1 -1
  1098. data/spec/unit/module_spec.rb +2 -6
  1099. data/spec/unit/module_tool/tar_spec.rb +3 -3
  1100. data/spec/unit/network/formats_spec.rb +1 -1
  1101. data/spec/unit/network/http/api/indirected_routes_spec.rb +10 -10
  1102. data/spec/unit/parser/scope_spec.rb +4 -0
  1103. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +8 -0
  1104. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +5 -0
  1105. data/spec/unit/pops/loaders/loaders_spec.rb +7 -7
  1106. data/spec/unit/pops/lookup/interpolation_spec.rb +12 -0
  1107. data/spec/unit/pops/serialization/serialization_spec.rb +2 -2
  1108. data/spec/unit/pops/serialization/to_from_hr_spec.rb +13 -1
  1109. data/spec/unit/pops/validator/validator_spec.rb +2 -3
  1110. data/spec/unit/provider/package/appdmg_spec.rb +1 -1
  1111. data/spec/unit/provider/package/apt_spec.rb +2 -2
  1112. data/spec/unit/provider/package/dnf_spec.rb +15 -22
  1113. data/spec/unit/provider/package/dnfmodule_spec.rb +8 -28
  1114. data/spec/unit/provider/package/gem_spec.rb +4 -4
  1115. data/spec/unit/provider/package/pip2_spec.rb +2 -2
  1116. data/spec/unit/provider/package/pip3_spec.rb +2 -2
  1117. data/spec/unit/provider/package/pip_spec.rb +2 -2
  1118. data/spec/unit/provider/package/pkg_spec.rb +8 -8
  1119. data/spec/unit/provider/package/pkgng_spec.rb +1 -1
  1120. data/spec/unit/provider/package/portage_spec.rb +2 -2
  1121. data/spec/unit/provider/package/puppet_gem_spec.rb +6 -6
  1122. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -2
  1123. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  1124. data/spec/unit/provider/package/up2date_spec.rb +2 -2
  1125. data/spec/unit/provider/package/yum_spec.rb +16 -16
  1126. data/spec/unit/provider/service/base_spec.rb +1 -1
  1127. data/spec/unit/provider/service/bsd_spec.rb +2 -2
  1128. data/spec/unit/provider/service/debian_spec.rb +7 -7
  1129. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  1130. data/spec/unit/provider/service/gentoo_spec.rb +2 -2
  1131. data/spec/unit/provider/service/init_spec.rb +8 -8
  1132. data/spec/unit/provider/service/openbsd_spec.rb +2 -2
  1133. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  1134. data/spec/unit/provider/service/rcng_spec.rb +2 -2
  1135. data/spec/unit/provider/service/redhat_spec.rb +7 -7
  1136. data/spec/unit/provider/service/smf_spec.rb +8 -8
  1137. data/spec/unit/provider/service/systemd_spec.rb +60 -62
  1138. data/spec/unit/provider/service/upstart_spec.rb +3 -3
  1139. data/spec/unit/provider/user/directoryservice_spec.rb +2 -2
  1140. data/spec/unit/provider/user/openbsd_spec.rb +2 -2
  1141. data/spec/unit/provider/user/useradd_spec.rb +14 -14
  1142. data/spec/unit/provider_spec.rb +51 -51
  1143. data/spec/unit/reports/store_spec.rb +5 -3
  1144. data/spec/unit/resource/catalog_spec.rb +13 -4
  1145. data/spec/unit/ssl/certificate_request_spec.rb +6 -2
  1146. data/spec/unit/ssl/ssl_provider_spec.rb +9 -4
  1147. data/spec/unit/ssl/state_machine_spec.rb +1 -6
  1148. data/spec/unit/test/test_helper_spec.rb +4 -4
  1149. data/spec/unit/transaction/report_spec.rb +39 -7
  1150. data/spec/unit/type/exec_spec.rb +0 -13
  1151. data/spec/unit/type/package_spec.rb +3 -3
  1152. data/spec/unit/type/resources_spec.rb +2 -2
  1153. data/spec/unit/type_spec.rb +2 -2
  1154. data/spec/unit/util/execution_spec.rb +0 -1
  1155. data/spec/unit/util/json_lockfile_spec.rb +1 -1
  1156. data/spec/unit/util/monkey_patches_spec.rb +0 -18
  1157. data/spec/unit/util/run_mode_spec.rb +0 -32
  1158. data/spec/unit/util/windows/adsi_spec.rb +0 -25
  1159. data/spec/unit/util_spec.rb +68 -62
  1160. data/spec/unit/x509/cert_provider_spec.rb +2 -2
  1161. metadata +29 -43
  1162. data/lib/puppet/external/pson/common.rb +0 -374
  1163. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1164. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1165. data/lib/puppet/external/pson/pure.rb +0 -15
  1166. data/lib/puppet/external/pson/version.rb +0 -8
  1167. data/spec/unit/ssl/certificate_signer_spec.rb +0 -17
@@ -222,20 +222,20 @@ describe Puppet::Provider do
222
222
  { :true => false } => false,
223
223
  { :false => false } => true,
224
224
  { :false => true } => false,
225
- { :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem) } => true,
226
- { :operatingsystem => :yayness } => false,
225
+ { 'os.name' => Puppet.runtime[:facter].value('os.name') } => true,
226
+ { 'os.name' => :yayness } => false,
227
227
  { :nothing => :yayness } => false,
228
228
  { :exists => Puppet::Util.which(existing_command) } => true,
229
229
  { :exists => "/this/file/does/not/exist" } => false,
230
230
  { :true => true, :exists => Puppet::Util.which(existing_command) } => true,
231
231
  { :true => true, :exists => "/this/file/does/not/exist" } => false,
232
- { :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem),
232
+ { 'os.name' => Puppet.runtime[:facter].value('os.name'),
233
233
  :exists => Puppet::Util.which(existing_command) } => true,
234
- { :operatingsystem => :yayness,
234
+ { 'os.name' => :yayness,
235
235
  :exists => Puppet::Util.which(existing_command) } => false,
236
- { :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem),
236
+ { 'os.name' => Puppet.runtime[:facter].value('os.name'),
237
237
  :exists => "/this/file/does/not/exist" } => false,
238
- { :operatingsystem => :yayness,
238
+ { 'os.name' => :yayness,
239
239
  :exists => "/this/file/does/not/exist" } => false,
240
240
  }.each do |confines, result|
241
241
  it "should confine #{confines.inspect} to #{result}" do
@@ -269,32 +269,32 @@ describe Puppet::Provider do
269
269
  end
270
270
 
271
271
  context "default providers" do
272
- let :os do Puppet.runtime[:facter].value(:operatingsystem) end
272
+ let :os do Puppet.runtime[:facter].value('os.name') end
273
273
 
274
274
  it { is_expected.to respond_to :specificity }
275
275
 
276
276
  it "should find the default provider" do
277
277
  type.provide(:nondefault) {}
278
- subject.defaultfor :operatingsystem => os
278
+ subject.defaultfor 'os.name' => os
279
279
  expect(subject.name).to eq(type.defaultprovider.name)
280
280
  end
281
281
 
282
282
  describe "regex matches" do
283
283
  it "should match a singular regex" do
284
- expect(Facter).to receive(:value).with(:osfamily).at_least(:once).and_return("solaris")
284
+ expect(Facter).to receive(:value).with('os.family').at_least(:once).and_return("solaris")
285
285
 
286
286
  one = type.provide(:one) do
287
- defaultfor :osfamily => /solaris/
287
+ defaultfor 'os.family' => /solaris/
288
288
  end
289
289
 
290
290
  expect(one).to be_default
291
291
  end
292
292
 
293
293
  it "should not match a non-matching regex " do
294
- expect(Facter).to receive(:value).with(:osfamily).at_least(:once).and_return("redhat")
294
+ expect(Facter).to receive(:value).with('os.family').at_least(:once).and_return("redhat")
295
295
 
296
296
  one = type.provide(:one) do
297
- defaultfor :osfamily => /solaris/
297
+ defaultfor 'os.family' => /solaris/
298
298
  end
299
299
 
300
300
  expect(one).to_not be_default
@@ -302,15 +302,15 @@ describe Puppet::Provider do
302
302
 
303
303
  it "should allow a mix of regex and string" do
304
304
 
305
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return("fedora")
306
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).at_least(:once).and_return("24")
305
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return("fedora")
306
+ expect(Facter).to receive(:value).with('os.release.major').at_least(:once).and_return("24")
307
307
 
308
308
  one = type.provide(:one) do
309
- defaultfor :operatingsystem => "fedora", :operatingsystemmajrelease => /^2[2-9]$/
309
+ defaultfor 'os.name' => "fedora", 'os.release.major' => /^2[2-9]$/
310
310
  end
311
311
 
312
312
  two = type.provide(:two) do
313
- defaultfor :operatingsystem => /fedora/, :operatingsystemmajrelease => '24'
313
+ defaultfor 'os.name' => /fedora/, 'os.release.major' => '24'
314
314
  end
315
315
 
316
316
  expect(one).to be_default
@@ -320,21 +320,21 @@ describe Puppet::Provider do
320
320
 
321
321
  describe "when there are multiple defaultfor's of equal specificity" do
322
322
  before :each do
323
- subject.defaultfor :operatingsystem => :os1
324
- subject.defaultfor :operatingsystem => :os2
323
+ subject.defaultfor 'os.name' => :os1
324
+ subject.defaultfor 'os.name' => :os2
325
325
  end
326
326
 
327
327
  let(:alternate) { type.provide(:alternate) {} }
328
328
 
329
329
  it "should be default for the first defaultfor" do
330
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:os1)
330
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return(:os1)
331
331
 
332
332
  expect(provider).to be_default
333
333
  expect(alternate).not_to be_default
334
334
  end
335
335
 
336
336
  it "should be default for the last defaultfor" do
337
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:os2)
337
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return(:os2)
338
338
 
339
339
  expect(provider).to be_default
340
340
  expect(alternate).not_to be_default
@@ -343,31 +343,31 @@ describe Puppet::Provider do
343
343
 
344
344
  describe "when there are multiple defaultfor's with different specificity" do
345
345
  before :each do
346
- subject.defaultfor :operatingsystem => :os1
347
- subject.defaultfor :operatingsystem => :os2, :operatingsystemmajrelease => "42"
348
- subject.defaultfor :operatingsystem => :os3, :operatingsystemmajrelease => /^4[2-9]$/
346
+ subject.defaultfor 'os.name' => :os1
347
+ subject.defaultfor 'os.name' => :os2, 'os.release.major' => "42"
348
+ subject.defaultfor 'os.name' => :os3, 'os.release.major' => /^4[2-9]$/
349
349
  end
350
350
 
351
351
  let(:alternate) { type.provide(:alternate) {} }
352
352
 
353
353
  it "should be default for a more specific, but matching, defaultfor" do
354
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:os2)
355
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).at_least(:once).and_return("42")
354
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return(:os2)
355
+ expect(Facter).to receive(:value).with('os.release.major').at_least(:once).and_return("42")
356
356
 
357
357
  expect(provider).to be_default
358
358
  expect(alternate).not_to be_default
359
359
  end
360
360
 
361
361
  it "should be default for a more specific, but matching, defaultfor with regex" do
362
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:os3)
363
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).at_least(:once).and_return("42")
362
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return(:os3)
363
+ expect(Facter).to receive(:value).with('os.release.major').at_least(:once).and_return("42")
364
364
 
365
365
  expect(provider).to be_default
366
366
  expect(alternate).not_to be_default
367
367
  end
368
368
 
369
369
  it "should be default for a less specific, but matching, defaultfor" do
370
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return(:os1)
370
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return(:os1)
371
371
 
372
372
  expect(provider).to be_default
373
373
  expect(alternate).not_to be_default
@@ -377,7 +377,7 @@ describe Puppet::Provider do
377
377
  it "should consider any true value enough to be default" do
378
378
  alternate = type.provide(:alternate) {}
379
379
 
380
- subject.defaultfor :operatingsystem => [:one, :two, :three, os]
380
+ subject.defaultfor 'os.name' => [:one, :two, :three, os]
381
381
  expect(subject.name).to eq(type.defaultprovider.name)
382
382
 
383
383
  expect(subject).to be_default
@@ -386,29 +386,29 @@ describe Puppet::Provider do
386
386
 
387
387
  it "should not be default if the defaultfor doesn't match" do
388
388
  expect(subject).not_to be_default
389
- subject.defaultfor :operatingsystem => :one
389
+ subject.defaultfor 'os.name' => :one
390
390
  expect(subject).not_to be_default
391
391
  end
392
392
 
393
393
  it "should not be default if the notdefaultfor does match" do
394
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return("fedora")
395
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).at_least(:once).and_return("24")
394
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return("fedora")
395
+ expect(Facter).to receive(:value).with('os.release.major').at_least(:once).and_return("24")
396
396
 
397
397
  one = type.provide(:one) do
398
- defaultfor :operatingsystem => "fedora"
399
- notdefaultfor :operatingsystem => "fedora", :operatingsystemmajrelease => 24
398
+ defaultfor 'os.name' => "fedora"
399
+ notdefaultfor 'os.name' => "fedora", 'os.release.major' => 24
400
400
  end
401
401
 
402
402
  expect(one).not_to be_default
403
403
  end
404
404
 
405
405
  it "should be default if the notdefaultfor doesn't match" do
406
- expect(Facter).to receive(:value).with(:operatingsystem).at_least(:once).and_return("fedora")
407
- expect(Facter).to receive(:value).with(:operatingsystemmajrelease).at_least(:once).and_return("24")
406
+ expect(Facter).to receive(:value).with('os.name').at_least(:once).and_return("fedora")
407
+ expect(Facter).to receive(:value).with('os.release.major').at_least(:once).and_return("24")
408
408
 
409
409
  one = type.provide(:one) do
410
- defaultfor :operatingsystem => "fedora"
411
- notdefaultfor :operatingsystem => "fedora", :operatingsystemmajrelease => 42
410
+ defaultfor 'os.name' => "fedora"
411
+ notdefaultfor 'os.name' => "fedora", 'os.release.major' => 42
412
412
  end
413
413
 
414
414
  expect(one).to be_default
@@ -519,18 +519,18 @@ describe Puppet::Provider do
519
519
  end
520
520
 
521
521
  it "with the specification: %{spec}" % { spec: thisspec.join(', ') } do
522
- allow(Facter).to receive(:value).with(:osfamily).and_return("redhat")
523
- allow(Facter).to receive(:value).with(:operatingsystem).and_return("centos")
524
- allow(Facter).to receive(:value).with(:operatingsystemrelease).and_return("27")
522
+ allow(Facter).to receive(:value).with('os.family').and_return("redhat")
523
+ allow(Facter).to receive(:value).with('os.name').and_return("centos")
524
+ allow(Facter).to receive(:value).with('os.release.full').and_return("27")
525
525
 
526
526
  one = type.provide(:one) do
527
527
  if defaultforspec[:one].key?(:defaultfor)
528
- defaultfor :osfamily => "redhat" if defaultforspec[:one][:defaultfor]
529
- defaultfor :osfamily => "ubuntu" if !defaultforspec[:one][:defaultfor]
528
+ defaultfor 'os.family' => "redhat" if defaultforspec[:one][:defaultfor]
529
+ defaultfor 'os.family' => "ubuntu" if !defaultforspec[:one][:defaultfor]
530
530
  end
531
531
  if defaultforspec[:one].key?(:notdefaultfor)
532
- notdefaultfor :operatingsystem => "centos" if defaultforspec[:one][:notdefaultfor]
533
- notdefaultfor :operatingsystem => "ubuntu" if !defaultforspec[:one][:notdefaultfor]
532
+ notdefaultfor 'os.name' => "centos" if defaultforspec[:one][:notdefaultfor]
533
+ notdefaultfor 'os.name' => "ubuntu" if !defaultforspec[:one][:notdefaultfor]
534
534
  end
535
535
  end
536
536
 
@@ -538,14 +538,14 @@ describe Puppet::Provider do
538
538
  provider_options[:parent] = one if defaultforspec[:two][:derived] # :two inherits from one, if spec'd
539
539
  two = type.provide(:two, provider_options) do
540
540
  if defaultforspec[:two].key?(:defaultfor) || defaultforspec[:two].key?(:extradefaultfor)
541
- defaultfor :osfamily => "redhat" if defaultforspec[:two][:defaultfor]
542
- defaultfor :osfamily => "redhat",# defaultforspec[:two][:extradefaultfor] has two parts
543
- :operatingsystem => "centos" if defaultforspec[:two][:extradefaultfor]
544
- defaultfor :osfamily => "ubuntu" if !defaultforspec[:two][:defaultfor]
541
+ defaultfor 'os.family' => "redhat" if defaultforspec[:two][:defaultfor]
542
+ defaultfor 'os.family' => "redhat",# defaultforspec[:two][:extradefaultfor] has two parts
543
+ 'os.name' => "centos" if defaultforspec[:two][:extradefaultfor]
544
+ defaultfor 'os.family' => "ubuntu" if !defaultforspec[:two][:defaultfor]
545
545
  end
546
546
  if defaultforspec[:two].key?(:notdefaultfor)
547
- notdefaultfor :operatingsystemrelease => "27" if defaultforspec[:two][:notdefaultfor]
548
- notdefaultfor :operatingsystemrelease => "99" if !defaultforspec[:two][:notdefaultfor]
547
+ notdefaultfor 'os.release.full' => "27" if defaultforspec[:two][:notdefaultfor]
548
+ notdefaultfor 'os.release.full' => "99" if !defaultforspec[:two][:notdefaultfor]
549
549
  end
550
550
  end
551
551
 
@@ -15,10 +15,12 @@ describe Puppet::Reports.report(:store) do
15
15
  end
16
16
 
17
17
  let(:report) do
18
- if RUBY_VERSION < "3.0"
19
- report = YAML.load_file(File.join(PuppetSpec::FIXTURE_DIR, 'yaml/report2.6.x.yaml'))
20
- else
18
+ # It's possible to install Psych 5 with Ruby 2.7, so check whether underlying YAML supports
19
+ # unsafe_load_file. This check can be removed in PUP-11718
20
+ if YAML.respond_to?(:unsafe_load_file)
21
21
  report = YAML.unsafe_load_file(File.join(PuppetSpec::FIXTURE_DIR, 'yaml/report2.6.x.yaml'))
22
+ else
23
+ report = YAML.load_file(File.join(PuppetSpec::FIXTURE_DIR, 'yaml/report2.6.x.yaml'))
22
24
  end
23
25
  report.extend(described_class)
24
26
  report
@@ -13,9 +13,9 @@ describe Puppet::Resource::Catalog, "when compiling" do
13
13
  allow(Puppet::Util::Storage).to receive(:store)
14
14
  end
15
15
 
16
- it "should support json, pson, dot, yaml" do
17
- # msgpack is optional, so using include instead of eq
18
- expect(Puppet::Resource::Catalog.supported_formats).to include(:json, :pson, :dot, :yaml)
16
+ it "should support json, dot, yaml" do
17
+ # msgpack and pson are optional, so using include instead of eq
18
+ expect(Puppet::Resource::Catalog.supported_formats).to include(:json, :dot, :yaml)
19
19
  end
20
20
 
21
21
  # audit only resources are unmanaged
@@ -965,7 +965,8 @@ describe Puppet::Resource::Catalog, "when converting a resource catalog to json"
965
965
 
966
966
  context 'and rich_data is disabled' do
967
967
  before(:each) do
968
- Puppet[:rich_data] = false
968
+ Puppet[:rich_data] = false
969
+ Puppet[:strict] = :warning # do not want to stub out behavior in tests
969
970
  end
970
971
 
971
972
  let(:catalog_w_regexp) { compile_to_catalog("notify {'foo': message => /[a-z]+/ }") }
@@ -1032,6 +1033,14 @@ describe Puppet::Resource::Catalog, "when converting a resource catalog to json"
1032
1033
  expect(message['a']).to eql(nil)
1033
1034
  expect(message['b']).to eql(10)
1034
1035
  end
1036
+
1037
+ it 'should raise an error by default when trying to convert parameter with rich data' do
1038
+ Puppet[:strict] = :error
1039
+ expect {
1040
+ catalog = compile_to_catalog("notify {'foo': message => Timestamp('2016-09-15T08:32:16.123 UTC') }")
1041
+ Puppet::Resource::Catalog.from_data_hash(JSON.parse(catalog.to_json))
1042
+ }.to raise_error(/Evaluation Error: Notify\[foo\]\['message'\] contains a Puppet::Pops::Time::Timestamp value. It will be converted to the String '2016-09-15T08:32:16.123000000 UTC'/)
1043
+ end
1035
1044
  end
1036
1045
  end
1037
1046
  end
@@ -198,7 +198,7 @@ describe Puppet::SSL::CertificateRequest do
198
198
 
199
199
  expect do
200
200
  request.generate(key, :csr_attributes => csr_attributes)
201
- end.to raise_error Puppet::Error, /Cannot create CSR with attribute thats\.no\.moon: first num too large/
201
+ end.to raise_error Puppet::Error, /Cannot create CSR with attribute thats\.no\.moon: /
202
202
  end
203
203
 
204
204
  it "should support old non-DER encoded extensions" do
@@ -271,7 +271,7 @@ describe Puppet::SSL::CertificateRequest do
271
271
  exts = {"thats.no.moon" => "death star"}
272
272
  expect do
273
273
  request.generate(key, :extension_requests => exts)
274
- end.to raise_error Puppet::Error, /Cannot create CSR with extension request thats\.no\.moon.*: first num too large/
274
+ end.to raise_error Puppet::Error, /Cannot create CSR with extension request thats\.no\.moon.*: /
275
275
  end
276
276
  end
277
277
 
@@ -313,6 +313,7 @@ describe Puppet::SSL::CertificateRequest do
313
313
 
314
314
  it "should use SHA1 to sign the csr when SHA256 isn't available" do
315
315
  csr = OpenSSL::X509::Request.new
316
+ csr.public_key = key.public_key
316
317
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
317
318
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(true)
318
319
  signer = Puppet::SSL::CertificateSigner.new
@@ -323,6 +324,7 @@ describe Puppet::SSL::CertificateRequest do
323
324
  it "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
324
325
  key = OpenSSL::PKey::RSA.new(2048)
325
326
  csr = OpenSSL::X509::Request.new
327
+ csr.public_key = key.public_key
326
328
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
327
329
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
328
330
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(true)
@@ -334,6 +336,7 @@ describe Puppet::SSL::CertificateRequest do
334
336
  it "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
335
337
  key = OpenSSL::PKey::RSA.new(2048)
336
338
  csr = OpenSSL::X509::Request.new
339
+ csr.public_key = key.public_key
337
340
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
338
341
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
339
342
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
@@ -345,6 +348,7 @@ describe Puppet::SSL::CertificateRequest do
345
348
 
346
349
  it "should use SHA224 to sign the csr when SHA256/SHA1/SHA512/SHA384 aren't available" do
347
350
  csr = OpenSSL::X509::Request.new
351
+ csr.public_key = key.public_key
348
352
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
349
353
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
350
354
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
@@ -298,7 +298,8 @@ describe Puppet::SSL::SSLProvider do
298
298
  ).to eq(['CN=signed', 'CN=Test CA Subauthority', 'CN=Test CA'])
299
299
  end
300
300
 
301
- it 'raises if client cert signature is invalid', unless: Puppet::Util::Platform.jruby? && RUBY_VERSION.to_f >= 2.6 do
301
+ it 'raises if client cert signature is invalid' do
302
+ client_cert.public_key = wrong_key.public_key
302
303
  client_cert.sign(wrong_key, OpenSSL::Digest::SHA256.new)
303
304
  expect {
304
305
  subject.create_context(**config.merge(client_cert: client_cert))
@@ -337,8 +338,9 @@ describe Puppet::SSL::SSLProvider do
337
338
  end
338
339
  end
339
340
 
340
- it 'raises if intermediate CA signature is invalid', unless: Puppet::Util::Platform.jruby? && RUBY_VERSION.to_f >= 2.6 do
341
+ it 'raises if intermediate CA signature is invalid' do
341
342
  int = global_cacerts.last
343
+ int.public_key = wrong_key.public_key if Puppet::Util::Platform.jruby?
342
344
  int.sign(wrong_key, OpenSSL::Digest::SHA256.new)
343
345
 
344
346
  expect {
@@ -459,10 +461,13 @@ describe Puppet::SSL::SSLProvider do
459
461
  it "raises if root CA's isCA basic constraint is false", unless: Puppet::Util::Platform.jruby? || OpenSSL::OPENSSL_VERSION_NUMBER < 0x10100000 do
460
462
  certs = [cert_fixture('bad-basic-constraints.pem'), cert_fixture('intermediate.pem')]
461
463
 
464
+ # openssl 3 returns 79
465
+ # define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 24
466
+ # define X509_V_ERR_INVALID_CA 79
462
467
  expect {
463
468
  subject.create_context(**config.merge(cacerts: certs, crls: [], revocation: false))
464
469
  }.to raise_error(Puppet::SSL::CertVerifyError,
465
- "Certificate 'CN=Test CA' failed verification (24): invalid CA certificate")
470
+ /Certificate 'CN=Test CA' failed verification \((24|79)\): invalid CA certificate/)
466
471
  end
467
472
 
468
473
  # OpenSSL < 1.1 does not verify basicConstraints
@@ -472,7 +477,7 @@ describe Puppet::SSL::SSLProvider do
472
477
  expect {
473
478
  subject.create_context(**config.merge(cacerts: certs, crls: [], revocation: false))
474
479
  }.to raise_error(Puppet::SSL::CertVerifyError,
475
- "Certificate 'CN=Test CA Subauthority' failed verification (24): invalid CA certificate")
480
+ /Certificate 'CN=Test CA Subauthority' failed verification \((24|79)\): invalid CA certificate/)
476
481
  end
477
482
 
478
483
  it 'accepts CA certs in any order' do
@@ -30,6 +30,7 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
30
30
  Puppet[:daemonize] = false
31
31
  Puppet[:ssl_lockfile] = tmpfile('ssllock')
32
32
  allow(Kernel).to receive(:sleep)
33
+ allow_any_instance_of(Puppet::X509::CertProvider).to receive(:crl_last_update).and_return(Time.now + (5 * 60))
33
34
  end
34
35
 
35
36
  def expected_digest(name, content)
@@ -526,12 +527,6 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
526
527
  expect(File).to_not exist(Puppet[:hostcrl])
527
528
  end
528
529
 
529
- it 'skips CRL refresh by default' do
530
- allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_crls).and_return(crls)
531
-
532
- state.next_state
533
- end
534
-
535
530
  it 'skips CRL refresh if it has not expired' do
536
531
  Puppet[:crl_refresh_interval] = '1y'
537
532
  Puppet::FileSystem.touch(Puppet[:hostcrl], mtime: Time.now)
@@ -4,14 +4,14 @@ describe "TestHelper" do
4
4
  context "#after_each_test" do
5
5
  it "restores the original environment" do
6
6
  varname = 'test_helper_spec-test_variable'
7
- Puppet::Util.set_env(varname, "\u16A0")
7
+ ENV[varname] = "\u16A0"
8
8
 
9
- expect(Puppet::Util.get_env(varname)).to eq("\u16A0")
9
+ expect(ENV[varname]).to eq("\u16A0")
10
10
 
11
11
  # Prematurely trigger the after_each_test method
12
12
  Puppet::Test::TestHelper.after_each_test
13
13
 
14
- expect(Puppet::Util::get_env(varname)).to be_nil
14
+ expect(ENV[varname]).to be_nil
15
15
  end
16
16
  end
17
- end
17
+ end
@@ -138,14 +138,46 @@ describe Puppet::Transaction::Report do
138
138
  end
139
139
 
140
140
  describe "when exclude_unchanged_resources is true" do
141
+ let(:test_dir) { tmpdir('unchanged_resources') }
142
+ let(:test_dir2) { tmpdir('unchanged_resources') }
143
+ let(:test_file) { tmpfile('some_path')}
144
+ it 'should still list "changed" resource statuses but remove "unchanged"' do
145
+ transaction = apply_compiled_manifest(<<-END)
146
+ notify { "hi": } ~>
147
+ exec { "/bin/this_command_does_not_exist":
148
+ command => "#{make_absolute('/bin/this_command_does_not_exist')}",
149
+ refreshonly => true,
150
+ }
151
+ file { '#{test_dir}':
152
+ ensure => directory
153
+ }
154
+ file { 'failing_file':
155
+ path => '#{test_dir2}',
156
+ ensure => file
157
+ }
158
+ file { 'skipped_file':
159
+ path => '#{test_file}',
160
+ require => File[failing_file]
161
+ }
162
+ END
163
+ rs = transaction.report.to_data_hash['resource_statuses']
164
+ expect(rs["Notify[hi]"]['out_of_sync']).to be true
165
+ expect(rs["Exec[/bin/this_command_does_not_exist]"]['failed_to_restart']).to be true
166
+ expect(rs["File[failing_file]"]['failed']).to be true
167
+ expect(rs["File[skipped_file]"]['skipped']).to be true
168
+ expect(rs).to_not have_key(["File[#{test_dir}]"])
169
+ end
170
+ end
171
+
172
+ describe"when exclude_unchanged_resources is false" do
141
173
  before do
142
- Puppet[:exclude_unchanged_resources] = true
174
+ Puppet[:exclude_unchanged_resources] = false
143
175
  end
144
176
 
145
177
  let(:test_dir) { tmpdir('unchanged_resources') }
146
178
  let(:test_dir2) { tmpdir('unchanged_resources') }
147
179
  let(:test_file) { tmpfile('some_path')}
148
- it 'should still list "changed" resource statuses but remove "unchanged"' do
180
+ it 'should list all resource statuses' do
149
181
  transaction = apply_compiled_manifest(<<-END)
150
182
  notify { "hi": } ~>
151
183
  exec { "/bin/this_command_does_not_exist":
@@ -169,7 +201,7 @@ describe Puppet::Transaction::Report do
169
201
  expect(rs["Exec[/bin/this_command_does_not_exist]"]['failed_to_restart']).to be true
170
202
  expect(rs["File[failing_file]"]['failed']).to be true
171
203
  expect(rs["File[skipped_file]"]['skipped']).to be true
172
- expect(rs).to_not have_key(["File[#{test_dir}]"])
204
+ expect(rs["File[#{test_dir}]"]['changed']).to be false
173
205
  end
174
206
  end
175
207
 
@@ -578,9 +610,9 @@ Version:
578
610
  expect(Puppet::Transaction::Report.default_format).to eq(:json)
579
611
  end
580
612
 
581
- it "supports both json, pson and yaml" do
582
- # msgpack is optional, so using include instead of eq
583
- expect(Puppet::Transaction::Report.supported_formats).to include(:json, :pson, :yaml)
613
+ it "supports both json and yaml" do
614
+ # msgpack and pson are optional, so using include instead of eq
615
+ expect(Puppet::Transaction::Report.supported_formats).to include(:json, :yaml)
584
616
  end
585
617
 
586
618
  context 'can make a round trip through' do
@@ -590,7 +622,7 @@ Version:
590
622
 
591
623
  after(:each) { Puppet.pop_context }
592
624
 
593
- it 'pson' do
625
+ it 'pson', if: Puppet.features.pson? do
594
626
  report = generate_report
595
627
 
596
628
  tripped = Puppet::Transaction::Report.convert_from(:pson, report.render)
@@ -252,19 +252,6 @@ RSpec.describe Puppet::Type.type(:exec) do
252
252
  expect(dependencies.collect(&:to_s)).to eq([Puppet::Relationship.new(tmp, execer).to_s])
253
253
  end
254
254
 
255
- it "skips autorequire for deferred commands" do
256
- foo = make_absolute('/bin/foo')
257
- catalog = Puppet::Resource::Catalog.new
258
- tmp = Puppet::Type.type(:file).new(:name => foo)
259
- execer = Puppet::Type.type(:exec).new(:name => 'test array', :command => Puppet::Pops::Evaluator::DeferredValue.new(nil))
260
-
261
- catalog.add_resource tmp
262
- catalog.add_resource execer
263
- dependencies = execer.autorequire(catalog)
264
-
265
- expect(dependencies.collect(&:to_s)).to eq([])
266
- end
267
-
268
255
  describe "when handling the path parameter" do
269
256
  expect = %w{one two three four}
270
257
  { "an array" => expect,
@@ -370,9 +370,9 @@ describe Puppet::Type.type(:package) do
370
370
  it "should select dnf over yum for dnf supported fedora versions" do
371
371
  dnf = Puppet::Type.type(:package).provider(:dnf)
372
372
  yum = Puppet::Type.type(:package).provider(:yum)
373
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
374
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:fedora)
375
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("22")
373
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
374
+ allow(Facter).to receive(:value).with('os.name').and_return(:fedora)
375
+ allow(Facter).to receive(:value).with('os.release.major').and_return("22")
376
376
 
377
377
  expect(dnf.specificity).to be > yum.specificity
378
378
  end
@@ -124,8 +124,8 @@ describe resources do
124
124
  context "on #{os}" do
125
125
  before :each do
126
126
  allow(Facter).to receive(:value).with(:kernel).and_return(os)
127
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(os)
128
- allow(Facter).to receive(:value).with(:osfamily).and_return(os)
127
+ allow(Facter).to receive(:value).with('os.name').and_return(os)
128
+ allow(Facter).to receive(:value).with('os.family').and_return(os)
129
129
  allow(Puppet::FileSystem).to receive(:exist?).with('/etc/login.defs').and_return(false)
130
130
  @res = Puppet::Type.type(:resources).new :name => :user, :purge => true, :unless_system_user => true
131
131
  @res.catalog = Puppet::Resource::Catalog.new
@@ -1142,7 +1142,7 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
1142
1142
 
1143
1143
  before :each do
1144
1144
  type.provide(:default) do
1145
- defaultfor :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem)
1145
+ defaultfor 'os.name' => Puppet.runtime[:facter].value('os.name')
1146
1146
  mk_resource_methods
1147
1147
  class << self
1148
1148
  attr_accessor :params
@@ -1172,7 +1172,7 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
1172
1172
  context "with a default provider" do
1173
1173
  before :each do
1174
1174
  type.provide(:default) do
1175
- defaultfor :operatingsystem => Puppet.runtime[:facter].value(:operatingsystem)
1175
+ defaultfor 'os.name' => Puppet.runtime[:facter].value('os.name')
1176
1176
  mk_resource_methods
1177
1177
  class << self
1178
1178
  attr_accessor :names
@@ -29,7 +29,6 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
29
29
  allow(FFI::WIN32).to receive(:CloseHandle).with(thread_handle)
30
30
  else
31
31
  allow(Process).to receive(:waitpid2).with(pid, Process::WNOHANG).and_return(nil, [pid, double('child_status', :exitstatus => exitstatus)])
32
- allow(Process).to receive(:waitpid2).with(pid, 0).and_return(nil, [pid, double('child_status', :exitstatus => exitstatus)])
33
32
  allow(Process).to receive(:waitpid2).with(pid).and_return([pid, double('child_status', :exitstatus => exitstatus)])
34
33
  end
35
34
  end
@@ -16,7 +16,7 @@ describe Puppet::Util::JsonLockfile do
16
16
  data = { "foo" => "foofoo", "bar" => "barbar" }
17
17
  @lock.lock(data)
18
18
 
19
- expect(PSON.parse(File.read(@lockfile))).to eq(data)
19
+ expect(JSON.parse(File.read(@lockfile))).to eq(data)
20
20
  end
21
21
  end
22
22
 
@@ -29,21 +29,10 @@ describe Symbol do
29
29
  end
30
30
 
31
31
  describe OpenSSL::SSL::SSLContext do
32
- it 'disables SSLv2 via the SSLContext#options bitmask' do
33
- expect(subject.options & OpenSSL::SSL::OP_NO_SSLv2).to eq(OpenSSL::SSL::OP_NO_SSLv2)
34
- end
35
-
36
32
  it 'disables SSLv3 via the SSLContext#options bitmask' do
37
33
  expect(subject.options & OpenSSL::SSL::OP_NO_SSLv3).to eq(OpenSSL::SSL::OP_NO_SSLv3)
38
34
  end
39
35
 
40
- it 'explicitly disable SSLv2 ciphers using the ! prefix so they cannot be re-added' do
41
- cipher_str = OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers]
42
- if cipher_str
43
- expect(cipher_str.split(':')).to include('!SSLv2')
44
- end
45
- end
46
-
47
36
  it 'does not exclude SSLv3 ciphers shared with TLSv1' do
48
37
  cipher_str = OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ciphers]
49
38
  if cipher_str
@@ -55,13 +44,6 @@ describe OpenSSL::SSL::SSLContext do
55
44
  expect_any_instance_of(described_class).to receive(:set_params)
56
45
  subject
57
46
  end
58
-
59
- it 'has no ciphers with version SSLv2 enabled' do
60
- ciphers = subject.ciphers.select do |name, version, bits, alg_bits|
61
- /SSLv2/.match(version)
62
- end
63
- expect(ciphers).to be_empty
64
- end
65
47
  end
66
48
 
67
49