puppet 7.25.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 (1154) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +5 -5
  3. data/Gemfile +7 -6
  4. data/Gemfile.lock +44 -42
  5. data/bin/puppet +1 -0
  6. data/ext/build_defaults.yaml +1 -1
  7. data/ext/project_data.yaml +6 -7
  8. data/ext/windows/service/daemon.rb +1 -0
  9. data/install.rb +18 -18
  10. data/lib/hiera/puppet_function.rb +1 -0
  11. data/lib/hiera/scope.rb +6 -5
  12. data/lib/hiera_puppet.rb +2 -1
  13. data/lib/puppet/agent/disabler.rb +1 -0
  14. data/lib/puppet/agent/locker.rb +1 -0
  15. data/lib/puppet/agent.rb +1 -0
  16. data/lib/puppet/application/agent.rb +1 -0
  17. data/lib/puppet/application/apply.rb +1 -0
  18. data/lib/puppet/application/catalog.rb +1 -0
  19. data/lib/puppet/application/config.rb +1 -0
  20. data/lib/puppet/application/describe.rb +1 -0
  21. data/lib/puppet/application/device.rb +1 -0
  22. data/lib/puppet/application/doc.rb +2 -1
  23. data/lib/puppet/application/epp.rb +1 -0
  24. data/lib/puppet/application/face_base.rb +1 -0
  25. data/lib/puppet/application/facts.rb +1 -0
  26. data/lib/puppet/application/filebucket.rb +1 -0
  27. data/lib/puppet/application/generate.rb +1 -0
  28. data/lib/puppet/application/help.rb +1 -0
  29. data/lib/puppet/application/indirection_base.rb +1 -0
  30. data/lib/puppet/application/lookup.rb +2 -1
  31. data/lib/puppet/application/module.rb +1 -0
  32. data/lib/puppet/application/node.rb +1 -0
  33. data/lib/puppet/application/parser.rb +1 -0
  34. data/lib/puppet/application/plugin.rb +1 -0
  35. data/lib/puppet/application/report.rb +1 -0
  36. data/lib/puppet/application/resource.rb +1 -0
  37. data/lib/puppet/application/script.rb +1 -0
  38. data/lib/puppet/application/ssl.rb +1 -0
  39. data/lib/puppet/application.rb +1 -0
  40. data/lib/puppet/application_support.rb +1 -0
  41. data/lib/puppet/coercion.rb +1 -0
  42. data/lib/puppet/compilable_resource_type.rb +1 -0
  43. data/lib/puppet/concurrent/lock.rb +1 -0
  44. data/lib/puppet/concurrent/synchronized.rb +1 -0
  45. data/lib/puppet/concurrent.rb +1 -0
  46. data/lib/puppet/configurer/downloader.rb +1 -0
  47. data/lib/puppet/configurer/fact_handler.rb +1 -0
  48. data/lib/puppet/configurer/plugin_handler.rb +1 -0
  49. data/lib/puppet/configurer.rb +1 -0
  50. data/lib/puppet/confine/any.rb +1 -0
  51. data/lib/puppet/confine/boolean.rb +1 -0
  52. data/lib/puppet/confine/exists.rb +1 -0
  53. data/lib/puppet/confine/false.rb +1 -0
  54. data/lib/puppet/confine/feature.rb +1 -0
  55. data/lib/puppet/confine/true.rb +1 -0
  56. data/lib/puppet/confine/variable.rb +1 -0
  57. data/lib/puppet/confine.rb +1 -0
  58. data/lib/puppet/confine_collection.rb +1 -0
  59. data/lib/puppet/confiner.rb +2 -1
  60. data/lib/puppet/context/trusted_information.rb +7 -6
  61. data/lib/puppet/context.rb +1 -0
  62. data/lib/puppet/daemon.rb +1 -0
  63. data/lib/puppet/data_binding.rb +1 -0
  64. data/lib/puppet/datatypes/error.rb +1 -0
  65. data/lib/puppet/datatypes/impl/error.rb +1 -0
  66. data/lib/puppet/datatypes.rb +1 -0
  67. data/lib/puppet/defaults.rb +25 -17
  68. data/lib/puppet/environments.rb +1 -0
  69. data/lib/puppet/error.rb +1 -0
  70. data/lib/puppet/etc.rb +1 -0
  71. data/lib/puppet/external/dot.rb +1 -0
  72. data/lib/puppet/face/catalog/select.rb +1 -0
  73. data/lib/puppet/face/catalog.rb +1 -0
  74. data/lib/puppet/face/config.rb +2 -1
  75. data/lib/puppet/face/epp.rb +3 -2
  76. data/lib/puppet/face/facts.rb +1 -0
  77. data/lib/puppet/face/generate.rb +1 -0
  78. data/lib/puppet/face/help/action.erb +0 -1
  79. data/lib/puppet/face/help/face.erb +0 -1
  80. data/lib/puppet/face/help.rb +4 -3
  81. data/lib/puppet/face/module/changes.rb +1 -0
  82. data/lib/puppet/face/module/install.rb +1 -0
  83. data/lib/puppet/face/module/list.rb +3 -2
  84. data/lib/puppet/face/module/uninstall.rb +1 -0
  85. data/lib/puppet/face/module/upgrade.rb +1 -0
  86. data/lib/puppet/face/module.rb +1 -0
  87. data/lib/puppet/face/node/clean.rb +1 -0
  88. data/lib/puppet/face/node.rb +1 -0
  89. data/lib/puppet/face/parser.rb +2 -1
  90. data/lib/puppet/face/plugin.rb +1 -0
  91. data/lib/puppet/face/report.rb +1 -0
  92. data/lib/puppet/face/resource.rb +1 -0
  93. data/lib/puppet/face.rb +1 -0
  94. data/lib/puppet/feature/base.rb +1 -0
  95. data/lib/puppet/feature/bolt.rb +1 -0
  96. data/lib/puppet/feature/cfpropertylist.rb +1 -0
  97. data/lib/puppet/feature/eventlog.rb +1 -0
  98. data/lib/puppet/feature/hiera_eyaml.rb +1 -0
  99. data/lib/puppet/feature/hocon.rb +1 -0
  100. data/lib/puppet/feature/libuser.rb +1 -0
  101. data/lib/puppet/feature/msgpack.rb +1 -0
  102. data/lib/puppet/feature/pe_license.rb +1 -0
  103. data/lib/puppet/feature/pson.rb +5 -0
  104. data/lib/puppet/feature/selinux.rb +1 -0
  105. data/lib/puppet/feature/ssh.rb +1 -0
  106. data/lib/puppet/feature/telnet.rb +1 -0
  107. data/lib/puppet/feature/zlib.rb +1 -0
  108. data/lib/puppet/ffi/posix/constants.rb +1 -0
  109. data/lib/puppet/ffi/posix/functions.rb +1 -0
  110. data/lib/puppet/ffi/posix.rb +1 -0
  111. data/lib/puppet/ffi/windows/api_types.rb +2 -1
  112. data/lib/puppet/ffi/windows/constants.rb +1 -0
  113. data/lib/puppet/ffi/windows/functions.rb +1 -0
  114. data/lib/puppet/ffi/windows/structs.rb +1 -0
  115. data/lib/puppet/ffi/windows.rb +1 -0
  116. data/lib/puppet/file_bucket/dipper.rb +1 -0
  117. data/lib/puppet/file_bucket/file.rb +1 -0
  118. data/lib/puppet/file_bucket.rb +1 -0
  119. data/lib/puppet/file_serving/base.rb +1 -0
  120. data/lib/puppet/file_serving/configuration/parser.rb +1 -0
  121. data/lib/puppet/file_serving/configuration.rb +1 -0
  122. data/lib/puppet/file_serving/content.rb +1 -0
  123. data/lib/puppet/file_serving/fileset.rb +1 -0
  124. data/lib/puppet/file_serving/http_metadata.rb +1 -0
  125. data/lib/puppet/file_serving/metadata.rb +1 -0
  126. data/lib/puppet/file_serving/mount/file.rb +5 -4
  127. data/lib/puppet/file_serving/mount/locales.rb +1 -0
  128. data/lib/puppet/file_serving/mount/modules.rb +1 -0
  129. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -0
  130. data/lib/puppet/file_serving/mount/plugins.rb +1 -0
  131. data/lib/puppet/file_serving/mount/scripts.rb +1 -0
  132. data/lib/puppet/file_serving/mount/tasks.rb +1 -0
  133. data/lib/puppet/file_serving/mount.rb +1 -0
  134. data/lib/puppet/file_serving/terminus_helper.rb +1 -0
  135. data/lib/puppet/file_serving/terminus_selector.rb +1 -0
  136. data/lib/puppet/file_serving.rb +1 -0
  137. data/lib/puppet/file_system/file_impl.rb +1 -0
  138. data/lib/puppet/file_system/jruby.rb +1 -0
  139. data/lib/puppet/file_system/memory_file.rb +1 -0
  140. data/lib/puppet/file_system/memory_impl.rb +1 -0
  141. data/lib/puppet/file_system/path_pattern.rb +2 -1
  142. data/lib/puppet/file_system/posix.rb +3 -2
  143. data/lib/puppet/file_system/uniquefile.rb +2 -1
  144. data/lib/puppet/file_system/windows.rb +1 -0
  145. data/lib/puppet/file_system.rb +1 -0
  146. data/lib/puppet/forge/cache.rb +1 -0
  147. data/lib/puppet/forge/errors.rb +1 -0
  148. data/lib/puppet/forge/repository.rb +1 -0
  149. data/lib/puppet/forge.rb +2 -1
  150. data/lib/puppet/functions/abs.rb +1 -0
  151. data/lib/puppet/functions/alert.rb +1 -0
  152. data/lib/puppet/functions/all.rb +1 -0
  153. data/lib/puppet/functions/annotate.rb +1 -0
  154. data/lib/puppet/functions/any.rb +1 -0
  155. data/lib/puppet/functions/assert_type.rb +1 -0
  156. data/lib/puppet/functions/binary_file.rb +1 -0
  157. data/lib/puppet/functions/break.rb +1 -0
  158. data/lib/puppet/functions/call.rb +1 -0
  159. data/lib/puppet/functions/camelcase.rb +1 -0
  160. data/lib/puppet/functions/capitalize.rb +1 -0
  161. data/lib/puppet/functions/ceiling.rb +1 -0
  162. data/lib/puppet/functions/chomp.rb +1 -0
  163. data/lib/puppet/functions/chop.rb +1 -0
  164. data/lib/puppet/functions/compare.rb +1 -0
  165. data/lib/puppet/functions/contain.rb +1 -0
  166. data/lib/puppet/functions/convert_to.rb +1 -0
  167. data/lib/puppet/functions/crit.rb +1 -0
  168. data/lib/puppet/functions/debug.rb +1 -0
  169. data/lib/puppet/functions/defined.rb +1 -0
  170. data/lib/puppet/functions/dig.rb +1 -0
  171. data/lib/puppet/functions/downcase.rb +1 -0
  172. data/lib/puppet/functions/each.rb +1 -0
  173. data/lib/puppet/functions/emerg.rb +1 -0
  174. data/lib/puppet/functions/empty.rb +1 -0
  175. data/lib/puppet/functions/epp.rb +1 -0
  176. data/lib/puppet/functions/err.rb +1 -0
  177. data/lib/puppet/functions/eyaml_lookup_key.rb +1 -0
  178. data/lib/puppet/functions/filter.rb +1 -0
  179. data/lib/puppet/functions/find_file.rb +1 -0
  180. data/lib/puppet/functions/find_template.rb +1 -0
  181. data/lib/puppet/functions/flatten.rb +1 -0
  182. data/lib/puppet/functions/floor.rb +1 -0
  183. data/lib/puppet/functions/get.rb +1 -0
  184. data/lib/puppet/functions/getvar.rb +1 -0
  185. data/lib/puppet/functions/hiera.rb +1 -0
  186. data/lib/puppet/functions/hiera_array.rb +1 -0
  187. data/lib/puppet/functions/hiera_hash.rb +1 -0
  188. data/lib/puppet/functions/hiera_include.rb +1 -0
  189. data/lib/puppet/functions/hocon_data.rb +1 -0
  190. data/lib/puppet/functions/import.rb +1 -0
  191. data/lib/puppet/functions/include.rb +1 -0
  192. data/lib/puppet/functions/index.rb +1 -0
  193. data/lib/puppet/functions/info.rb +1 -0
  194. data/lib/puppet/functions/inline_epp.rb +1 -0
  195. data/lib/puppet/functions/join.rb +1 -0
  196. data/lib/puppet/functions/json_data.rb +1 -0
  197. data/lib/puppet/functions/keys.rb +1 -0
  198. data/lib/puppet/functions/length.rb +1 -0
  199. data/lib/puppet/functions/lest.rb +1 -0
  200. data/lib/puppet/functions/lookup.rb +1 -0
  201. data/lib/puppet/functions/lstrip.rb +1 -0
  202. data/lib/puppet/functions/map.rb +1 -0
  203. data/lib/puppet/functions/match.rb +1 -0
  204. data/lib/puppet/functions/max.rb +67 -0
  205. data/lib/puppet/functions/min.rb +67 -0
  206. data/lib/puppet/functions/module_directory.rb +1 -0
  207. data/lib/puppet/functions/new.rb +1 -0
  208. data/lib/puppet/functions/next.rb +1 -0
  209. data/lib/puppet/functions/notice.rb +1 -0
  210. data/lib/puppet/functions/reduce.rb +1 -0
  211. data/lib/puppet/functions/regsubst.rb +1 -0
  212. data/lib/puppet/functions/require.rb +1 -0
  213. data/lib/puppet/functions/return.rb +1 -0
  214. data/lib/puppet/functions/reverse_each.rb +1 -0
  215. data/lib/puppet/functions/round.rb +1 -0
  216. data/lib/puppet/functions/rstrip.rb +1 -0
  217. data/lib/puppet/functions/scanf.rb +1 -0
  218. data/lib/puppet/functions/size.rb +1 -0
  219. data/lib/puppet/functions/slice.rb +1 -0
  220. data/lib/puppet/functions/sort.rb +1 -0
  221. data/lib/puppet/functions/split.rb +1 -0
  222. data/lib/puppet/functions/step.rb +1 -0
  223. data/lib/puppet/functions/strftime.rb +1 -0
  224. data/lib/puppet/functions/strip.rb +1 -0
  225. data/lib/puppet/functions/then.rb +1 -0
  226. data/lib/puppet/functions/tree_each.rb +1 -0
  227. data/lib/puppet/functions/type.rb +1 -0
  228. data/lib/puppet/functions/unique.rb +1 -0
  229. data/lib/puppet/functions/unwrap.rb +1 -0
  230. data/lib/puppet/functions/upcase.rb +1 -0
  231. data/lib/puppet/functions/values.rb +1 -0
  232. data/lib/puppet/functions/versioncmp.rb +1 -0
  233. data/lib/puppet/functions/warning.rb +1 -0
  234. data/lib/puppet/functions/with.rb +1 -0
  235. data/lib/puppet/functions/yaml_data.rb +1 -0
  236. data/lib/puppet/functions.rb +6 -5
  237. data/lib/puppet/generate/models/type/property.rb +1 -0
  238. data/lib/puppet/generate/models/type/type.rb +1 -0
  239. data/lib/puppet/generate/type.rb +1 -0
  240. data/lib/puppet/gettext/config.rb +1 -0
  241. data/lib/puppet/gettext/module_translations.rb +1 -0
  242. data/lib/puppet/gettext/stubs.rb +1 -0
  243. data/lib/puppet/graph/key.rb +1 -0
  244. data/lib/puppet/graph/prioritizer.rb +1 -0
  245. data/lib/puppet/graph/rb_tree_map.rb +1 -0
  246. data/lib/puppet/graph/relationship_graph.rb +1 -0
  247. data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
  248. data/lib/puppet/graph/simple_graph.rb +1 -0
  249. data/lib/puppet/graph.rb +1 -0
  250. data/lib/puppet/http/client.rb +1 -0
  251. data/lib/puppet/http/dns.rb +1 -0
  252. data/lib/puppet/http/errors.rb +1 -0
  253. data/lib/puppet/http/external_client.rb +1 -0
  254. data/lib/puppet/http/factory.rb +1 -0
  255. data/lib/puppet/http/pool.rb +1 -0
  256. data/lib/puppet/http/pool_entry.rb +1 -0
  257. data/lib/puppet/http/proxy.rb +1 -0
  258. data/lib/puppet/http/redirector.rb +1 -0
  259. data/lib/puppet/http/resolver/server_list.rb +1 -0
  260. data/lib/puppet/http/resolver/settings.rb +1 -0
  261. data/lib/puppet/http/resolver/srv.rb +1 -0
  262. data/lib/puppet/http/resolver.rb +1 -0
  263. data/lib/puppet/http/response.rb +1 -0
  264. data/lib/puppet/http/response_converter.rb +1 -0
  265. data/lib/puppet/http/response_net_http.rb +1 -0
  266. data/lib/puppet/http/retry_after_handler.rb +1 -0
  267. data/lib/puppet/http/service/ca.rb +2 -1
  268. data/lib/puppet/http/service/compiler.rb +2 -1
  269. data/lib/puppet/http/service/file_server.rb +2 -1
  270. data/lib/puppet/http/service/puppetserver.rb +1 -0
  271. data/lib/puppet/http/service/report.rb +2 -4
  272. data/lib/puppet/http/service.rb +1 -0
  273. data/lib/puppet/http/session.rb +3 -2
  274. data/lib/puppet/http/site.rb +1 -0
  275. data/lib/puppet/http.rb +3 -2
  276. data/lib/puppet/indirector/catalog/compiler.rb +6 -5
  277. data/lib/puppet/indirector/catalog/json.rb +1 -0
  278. data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
  279. data/lib/puppet/indirector/catalog/rest.rb +1 -0
  280. data/lib/puppet/indirector/catalog/store_configs.rb +1 -0
  281. data/lib/puppet/indirector/catalog/yaml.rb +1 -0
  282. data/lib/puppet/indirector/code.rb +1 -0
  283. data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
  284. data/lib/puppet/indirector/data_binding/none.rb +1 -0
  285. data/lib/puppet/indirector/direct_file_server.rb +1 -0
  286. data/lib/puppet/indirector/envelope.rb +1 -0
  287. data/lib/puppet/indirector/errors.rb +1 -0
  288. data/lib/puppet/indirector/exec.rb +1 -0
  289. data/lib/puppet/indirector/face.rb +6 -16
  290. data/lib/puppet/indirector/fact_search.rb +1 -0
  291. data/lib/puppet/indirector/facts/facter.rb +1 -0
  292. data/lib/puppet/indirector/facts/json.rb +1 -0
  293. data/lib/puppet/indirector/facts/memory.rb +1 -0
  294. data/lib/puppet/indirector/facts/network_device.rb +1 -0
  295. data/lib/puppet/indirector/facts/rest.rb +1 -0
  296. data/lib/puppet/indirector/facts/store_configs.rb +1 -0
  297. data/lib/puppet/indirector/facts/yaml.rb +1 -0
  298. data/lib/puppet/indirector/file_bucket_file/file.rb +2 -1
  299. data/lib/puppet/indirector/file_bucket_file/rest.rb +1 -0
  300. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
  301. data/lib/puppet/indirector/file_content/file.rb +1 -0
  302. data/lib/puppet/indirector/file_content/file_server.rb +1 -0
  303. data/lib/puppet/indirector/file_content/rest.rb +1 -0
  304. data/lib/puppet/indirector/file_content/selector.rb +1 -0
  305. data/lib/puppet/indirector/file_content.rb +1 -0
  306. data/lib/puppet/indirector/file_metadata/file.rb +1 -0
  307. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
  308. data/lib/puppet/indirector/file_metadata/http.rb +1 -0
  309. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  310. data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
  311. data/lib/puppet/indirector/file_metadata.rb +1 -0
  312. data/lib/puppet/indirector/file_server.rb +1 -0
  313. data/lib/puppet/indirector/generic_http.rb +1 -0
  314. data/lib/puppet/indirector/hiera.rb +1 -0
  315. data/lib/puppet/indirector/indirection.rb +2 -1
  316. data/lib/puppet/indirector/json.rb +1 -0
  317. data/lib/puppet/indirector/memory.rb +1 -0
  318. data/lib/puppet/indirector/msgpack.rb +1 -0
  319. data/lib/puppet/indirector/node/exec.rb +1 -0
  320. data/lib/puppet/indirector/node/json.rb +1 -0
  321. data/lib/puppet/indirector/node/memory.rb +1 -0
  322. data/lib/puppet/indirector/node/msgpack.rb +1 -0
  323. data/lib/puppet/indirector/node/plain.rb +1 -0
  324. data/lib/puppet/indirector/node/rest.rb +1 -0
  325. data/lib/puppet/indirector/node/store_configs.rb +1 -0
  326. data/lib/puppet/indirector/node/yaml.rb +1 -0
  327. data/lib/puppet/indirector/none.rb +1 -0
  328. data/lib/puppet/indirector/plain.rb +1 -0
  329. data/lib/puppet/indirector/report/json.rb +1 -0
  330. data/lib/puppet/indirector/report/msgpack.rb +1 -0
  331. data/lib/puppet/indirector/report/processor.rb +1 -0
  332. data/lib/puppet/indirector/report/rest.rb +1 -13
  333. data/lib/puppet/indirector/report/yaml.rb +1 -0
  334. data/lib/puppet/indirector/request.rb +1 -0
  335. data/lib/puppet/indirector/resource/ral.rb +1 -0
  336. data/lib/puppet/indirector/resource/store_configs.rb +1 -0
  337. data/lib/puppet/indirector/resource/validator.rb +1 -0
  338. data/lib/puppet/indirector/rest.rb +1 -0
  339. data/lib/puppet/indirector/store_configs.rb +1 -0
  340. data/lib/puppet/indirector/terminus.rb +1 -0
  341. data/lib/puppet/indirector/yaml.rb +1 -0
  342. data/lib/puppet/indirector.rb +1 -0
  343. data/lib/puppet/info_service/class_information_service.rb +1 -0
  344. data/lib/puppet/info_service/plan_information_service.rb +1 -0
  345. data/lib/puppet/info_service/task_information_service.rb +1 -0
  346. data/lib/puppet/info_service.rb +1 -0
  347. data/lib/puppet/interface/action.rb +1 -0
  348. data/lib/puppet/interface/action_builder.rb +1 -0
  349. data/lib/puppet/interface/action_manager.rb +1 -0
  350. data/lib/puppet/interface/documentation.rb +1 -1
  351. data/lib/puppet/interface/face_collection.rb +1 -0
  352. data/lib/puppet/interface/option.rb +1 -0
  353. data/lib/puppet/interface/option_builder.rb +1 -0
  354. data/lib/puppet/interface/option_manager.rb +1 -0
  355. data/lib/puppet/interface.rb +1 -0
  356. data/lib/puppet/loaders.rb +1 -0
  357. data/lib/puppet/metatype/manager.rb +1 -0
  358. data/lib/puppet/module/plan.rb +1 -0
  359. data/lib/puppet/module/task.rb +1 -2
  360. data/lib/puppet/module.rb +4 -1
  361. data/lib/puppet/module_tool/applications/application.rb +1 -0
  362. data/lib/puppet/module_tool/applications/checksummer.rb +1 -0
  363. data/lib/puppet/module_tool/applications/installer.rb +1 -0
  364. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -0
  365. data/lib/puppet/module_tool/applications/unpacker.rb +1 -0
  366. data/lib/puppet/module_tool/applications/upgrader.rb +1 -0
  367. data/lib/puppet/module_tool/applications.rb +1 -0
  368. data/lib/puppet/module_tool/checksums.rb +1 -0
  369. data/lib/puppet/module_tool/contents_description.rb +1 -0
  370. data/lib/puppet/module_tool/dependency.rb +1 -0
  371. data/lib/puppet/module_tool/errors/base.rb +1 -0
  372. data/lib/puppet/module_tool/errors/installer.rb +1 -0
  373. data/lib/puppet/module_tool/errors/shared.rb +1 -0
  374. data/lib/puppet/module_tool/errors/uninstaller.rb +1 -0
  375. data/lib/puppet/module_tool/errors/upgrader.rb +1 -0
  376. data/lib/puppet/module_tool/errors.rb +1 -0
  377. data/lib/puppet/module_tool/install_directory.rb +1 -0
  378. data/lib/puppet/module_tool/installed_modules.rb +1 -0
  379. data/lib/puppet/module_tool/local_tarball.rb +1 -0
  380. data/lib/puppet/module_tool/metadata.rb +1 -0
  381. data/lib/puppet/module_tool/shared_behaviors.rb +1 -0
  382. data/lib/puppet/module_tool/tar/gnu.rb +1 -0
  383. data/lib/puppet/module_tool/tar/mini.rb +1 -0
  384. data/lib/puppet/module_tool/tar.rb +1 -0
  385. data/lib/puppet/module_tool.rb +2 -1
  386. data/lib/puppet/network/authconfig.rb +1 -0
  387. data/lib/puppet/network/authorization.rb +1 -0
  388. data/lib/puppet/network/client_request.rb +1 -0
  389. data/lib/puppet/network/format.rb +1 -0
  390. data/lib/puppet/network/format_handler.rb +2 -1
  391. data/lib/puppet/network/format_support.rb +1 -0
  392. data/lib/puppet/network/formats.rb +6 -3
  393. data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
  394. data/lib/puppet/network/http/api/indirection_type.rb +1 -0
  395. data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
  396. data/lib/puppet/network/http/api/master/v3.rb +1 -0
  397. data/lib/puppet/network/http/api/master.rb +1 -0
  398. data/lib/puppet/network/http/api/server/v3/environments.rb +1 -0
  399. data/lib/puppet/network/http/api/server/v3.rb +1 -0
  400. data/lib/puppet/network/http/api/server.rb +1 -0
  401. data/lib/puppet/network/http/api.rb +1 -0
  402. data/lib/puppet/network/http/connection.rb +1 -0
  403. data/lib/puppet/network/http/error.rb +1 -0
  404. data/lib/puppet/network/http/handler.rb +1 -0
  405. data/lib/puppet/network/http/issues.rb +1 -0
  406. data/lib/puppet/network/http/memory_response.rb +2 -1
  407. data/lib/puppet/network/http/request.rb +1 -0
  408. data/lib/puppet/network/http/response.rb +1 -0
  409. data/lib/puppet/network/http/route.rb +1 -0
  410. data/lib/puppet/network/http.rb +1 -0
  411. data/lib/puppet/network/http_pool.rb +1 -0
  412. data/lib/puppet/network/uri.rb +1 -0
  413. data/lib/puppet/network.rb +1 -0
  414. data/lib/puppet/node/environment.rb +3 -2
  415. data/lib/puppet/node/facts.rb +1 -0
  416. data/lib/puppet/node.rb +2 -1
  417. data/lib/puppet/pal/catalog_compiler.rb +1 -0
  418. data/lib/puppet/pal/compiler.rb +1 -0
  419. data/lib/puppet/pal/function_signature.rb +1 -0
  420. data/lib/puppet/pal/json_catalog_encoder.rb +1 -0
  421. data/lib/puppet/pal/pal_api.rb +1 -0
  422. data/lib/puppet/pal/pal_impl.rb +1 -0
  423. data/lib/puppet/pal/plan_signature.rb +1 -0
  424. data/lib/puppet/pal/script_compiler.rb +1 -0
  425. data/lib/puppet/pal/task_signature.rb +1 -0
  426. data/lib/puppet/parameter/boolean.rb +1 -0
  427. data/lib/puppet/parameter/package_options.rb +1 -0
  428. data/lib/puppet/parameter/path.rb +1 -0
  429. data/lib/puppet/parameter/value.rb +1 -0
  430. data/lib/puppet/parameter/value_collection.rb +2 -1
  431. data/lib/puppet/parameter.rb +1 -0
  432. data/lib/puppet/parser/abstract_compiler.rb +1 -0
  433. data/lib/puppet/parser/ast/block_expression.rb +1 -0
  434. data/lib/puppet/parser/ast/branch.rb +1 -0
  435. data/lib/puppet/parser/ast/hostclass.rb +1 -0
  436. data/lib/puppet/parser/ast/leaf.rb +1 -0
  437. data/lib/puppet/parser/ast/node.rb +1 -0
  438. data/lib/puppet/parser/ast/pops_bridge.rb +1 -0
  439. data/lib/puppet/parser/ast/resource.rb +1 -0
  440. data/lib/puppet/parser/ast/resource_instance.rb +1 -0
  441. data/lib/puppet/parser/ast/resourceparam.rb +1 -0
  442. data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
  443. data/lib/puppet/parser/ast.rb +1 -0
  444. data/lib/puppet/parser/catalog_compiler.rb +1 -0
  445. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -0
  446. data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
  447. data/lib/puppet/parser/compiler.rb +2 -1
  448. data/lib/puppet/parser/e4_parser_adapter.rb +1 -0
  449. data/lib/puppet/parser/files.rb +1 -0
  450. data/lib/puppet/parser/functions/assert_type.rb +1 -0
  451. data/lib/puppet/parser/functions/binary_file.rb +1 -0
  452. data/lib/puppet/parser/functions/break.rb +1 -0
  453. data/lib/puppet/parser/functions/contain.rb +1 -0
  454. data/lib/puppet/parser/functions/create_resources.rb +1 -0
  455. data/lib/puppet/parser/functions/defined.rb +1 -0
  456. data/lib/puppet/parser/functions/dig.rb +1 -0
  457. data/lib/puppet/parser/functions/digest.rb +1 -0
  458. data/lib/puppet/parser/functions/each.rb +1 -0
  459. data/lib/puppet/parser/functions/epp.rb +1 -0
  460. data/lib/puppet/parser/functions/fail.rb +1 -0
  461. data/lib/puppet/parser/functions/file.rb +1 -0
  462. data/lib/puppet/parser/functions/filter.rb +1 -0
  463. data/lib/puppet/parser/functions/find_file.rb +1 -0
  464. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -0
  465. data/lib/puppet/parser/functions/generate.rb +1 -0
  466. data/lib/puppet/parser/functions/hiera.rb +1 -0
  467. data/lib/puppet/parser/functions/hiera_array.rb +1 -0
  468. data/lib/puppet/parser/functions/hiera_hash.rb +1 -0
  469. data/lib/puppet/parser/functions/hiera_include.rb +1 -0
  470. data/lib/puppet/parser/functions/include.rb +1 -0
  471. data/lib/puppet/parser/functions/inline_epp.rb +1 -0
  472. data/lib/puppet/parser/functions/inline_template.rb +1 -0
  473. data/lib/puppet/parser/functions/lest.rb +1 -0
  474. data/lib/puppet/parser/functions/lookup.rb +1 -0
  475. data/lib/puppet/parser/functions/map.rb +1 -0
  476. data/lib/puppet/parser/functions/match.rb +1 -0
  477. data/lib/puppet/parser/functions/md5.rb +1 -0
  478. data/lib/puppet/parser/functions/new.rb +1 -0
  479. data/lib/puppet/parser/functions/next.rb +1 -0
  480. data/lib/puppet/parser/functions/realize.rb +1 -0
  481. data/lib/puppet/parser/functions/reduce.rb +1 -0
  482. data/lib/puppet/parser/functions/regsubst.rb +1 -0
  483. data/lib/puppet/parser/functions/require.rb +1 -0
  484. data/lib/puppet/parser/functions/return.rb +1 -0
  485. data/lib/puppet/parser/functions/reverse_each.rb +1 -0
  486. data/lib/puppet/parser/functions/scanf.rb +1 -0
  487. data/lib/puppet/parser/functions/sha1.rb +1 -0
  488. data/lib/puppet/parser/functions/sha256.rb +1 -0
  489. data/lib/puppet/parser/functions/shellquote.rb +1 -0
  490. data/lib/puppet/parser/functions/slice.rb +1 -0
  491. data/lib/puppet/parser/functions/split.rb +1 -0
  492. data/lib/puppet/parser/functions/sprintf.rb +1 -0
  493. data/lib/puppet/parser/functions/step.rb +1 -0
  494. data/lib/puppet/parser/functions/strftime.rb +1 -0
  495. data/lib/puppet/parser/functions/tag.rb +1 -0
  496. data/lib/puppet/parser/functions/tagged.rb +1 -0
  497. data/lib/puppet/parser/functions/template.rb +1 -0
  498. data/lib/puppet/parser/functions/then.rb +1 -0
  499. data/lib/puppet/parser/functions/type.rb +1 -0
  500. data/lib/puppet/parser/functions/versioncmp.rb +1 -0
  501. data/lib/puppet/parser/functions/with.rb +1 -0
  502. data/lib/puppet/parser/functions.rb +2 -1
  503. data/lib/puppet/parser/parser_factory.rb +1 -0
  504. data/lib/puppet/parser/relationship.rb +1 -0
  505. data/lib/puppet/parser/resource/param.rb +1 -0
  506. data/lib/puppet/parser/resource.rb +1 -0
  507. data/lib/puppet/parser/scope.rb +6 -1
  508. data/lib/puppet/parser/script_compiler.rb +1 -0
  509. data/lib/puppet/parser/type_loader.rb +1 -0
  510. data/lib/puppet/parser.rb +1 -0
  511. data/lib/puppet/plugins/configuration.rb +1 -0
  512. data/lib/puppet/plugins/syntax_checkers.rb +1 -0
  513. data/lib/puppet/plugins.rb +1 -0
  514. data/lib/puppet/pops/adaptable.rb +1 -0
  515. data/lib/puppet/pops/adapters.rb +1 -0
  516. data/lib/puppet/pops/evaluator/access_operator.rb +2 -1
  517. data/lib/puppet/pops/evaluator/callable_signature.rb +1 -0
  518. data/lib/puppet/pops/evaluator/closure.rb +2 -1
  519. data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -0
  520. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
  521. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -0
  522. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -0
  523. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -0
  524. data/lib/puppet/pops/evaluator/compare_operator.rb +1 -0
  525. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -2
  526. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -0
  527. data/lib/puppet/pops/evaluator/evaluator_impl.rb +2 -1
  528. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -0
  529. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
  530. data/lib/puppet/pops/evaluator/literal_evaluator.rb +2 -1
  531. data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -0
  532. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -0
  533. data/lib/puppet/pops/evaluator/runtime3_converter.rb +1 -0
  534. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -1
  535. data/lib/puppet/pops/evaluator/runtime3_support.rb +2 -1
  536. data/lib/puppet/pops/functions/dispatch.rb +1 -0
  537. data/lib/puppet/pops/functions/dispatcher.rb +1 -0
  538. data/lib/puppet/pops/functions/function.rb +1 -0
  539. data/lib/puppet/pops/issue_reporter.rb +1 -0
  540. data/lib/puppet/pops/issues.rb +1 -0
  541. data/lib/puppet/pops/label_provider.rb +1 -0
  542. data/lib/puppet/pops/loader/base_loader.rb +1 -0
  543. data/lib/puppet/pops/loader/dependency_loader.rb +1 -0
  544. data/lib/puppet/pops/loader/gem_support.rb +1 -0
  545. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
  546. data/lib/puppet/pops/loader/loader.rb +3 -2
  547. data/lib/puppet/pops/loader/loader_paths.rb +13 -12
  548. data/lib/puppet/pops/loader/module_loaders.rb +2 -1
  549. data/lib/puppet/pops/loader/predefined_loader.rb +1 -0
  550. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +1 -0
  551. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +1 -0
  552. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -0
  553. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -0
  554. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -0
  555. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +2 -1
  556. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -0
  557. data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -0
  558. data/lib/puppet/pops/loader/static_loader.rb +1 -0
  559. data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
  560. data/lib/puppet/pops/loader/type_definition_instantiator.rb +1 -0
  561. data/lib/puppet/pops/loader/typed_name.rb +2 -1
  562. data/lib/puppet/pops/loader/uri_helper.rb +1 -0
  563. data/lib/puppet/pops/loaders.rb +1 -0
  564. data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
  565. data/lib/puppet/pops/lookup/context.rb +1 -0
  566. data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
  567. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +3 -2
  568. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +4 -3
  569. data/lib/puppet/pops/lookup/data_provider.rb +1 -0
  570. data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
  571. data/lib/puppet/pops/lookup/explainer.rb +3 -2
  572. data/lib/puppet/pops/lookup/function_provider.rb +1 -0
  573. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -0
  574. data/lib/puppet/pops/lookup/hiera_config.rb +47 -42
  575. data/lib/puppet/pops/lookup/interpolation.rb +10 -4
  576. data/lib/puppet/pops/lookup/invocation.rb +1 -0
  577. data/lib/puppet/pops/lookup/key_recorder.rb +1 -0
  578. data/lib/puppet/pops/lookup/location_resolver.rb +1 -0
  579. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -6
  580. data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
  581. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +3 -2
  582. data/lib/puppet/pops/lookup/module_data_provider.rb +1 -0
  583. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -0
  584. data/lib/puppet/pops/lookup.rb +3 -2
  585. data/lib/puppet/pops/merge_strategy.rb +1 -0
  586. data/lib/puppet/pops/migration/migration_checker.rb +1 -0
  587. data/lib/puppet/pops/model/ast_transformer.rb +1 -0
  588. data/lib/puppet/pops/model/factory.rb +1 -1
  589. data/lib/puppet/pops/model/model_label_provider.rb +1 -0
  590. data/lib/puppet/pops/model/model_tree_dumper.rb +1 -0
  591. data/lib/puppet/pops/model/pn_transformer.rb +1 -0
  592. data/lib/puppet/pops/model/tree_dumper.rb +2 -1
  593. data/lib/puppet/pops/parser/code_merger.rb +1 -0
  594. data/lib/puppet/pops/parser/epp_parser.rb +1 -0
  595. data/lib/puppet/pops/parser/epp_support.rb +2 -1
  596. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -1
  597. data/lib/puppet/pops/parser/heredoc_support.rb +1 -0
  598. data/lib/puppet/pops/parser/interpolation_support.rb +1 -0
  599. data/lib/puppet/pops/parser/lexer_support.rb +1 -0
  600. data/lib/puppet/pops/parser/locatable.rb +1 -0
  601. data/lib/puppet/pops/parser/locator.rb +1 -0
  602. data/lib/puppet/pops/parser/parser_support.rb +1 -0
  603. data/lib/puppet/pops/parser/pn_parser.rb +5 -4
  604. data/lib/puppet/pops/patterns.rb +1 -0
  605. data/lib/puppet/pops/pcore.rb +3 -2
  606. data/lib/puppet/pops/pn.rb +2 -1
  607. data/lib/puppet/pops/puppet_stack.rb +1 -0
  608. data/lib/puppet/pops/resource/param.rb +1 -0
  609. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -0
  610. data/lib/puppet/pops/semantic_error.rb +1 -0
  611. data/lib/puppet/pops/serialization/abstract_reader.rb +1 -0
  612. data/lib/puppet/pops/serialization/abstract_writer.rb +1 -0
  613. data/lib/puppet/pops/serialization/deserializer.rb +1 -0
  614. data/lib/puppet/pops/serialization/extension.rb +1 -0
  615. data/lib/puppet/pops/serialization/from_data_converter.rb +1 -0
  616. data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
  617. data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
  618. data/lib/puppet/pops/serialization/json.rb +1 -0
  619. data/lib/puppet/pops/serialization/json_path.rb +2 -1
  620. data/lib/puppet/pops/serialization/object.rb +1 -0
  621. data/lib/puppet/pops/serialization/serializer.rb +1 -0
  622. data/lib/puppet/pops/serialization/time_factory.rb +1 -0
  623. data/lib/puppet/pops/serialization/to_data_converter.rb +2 -1
  624. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -0
  625. data/lib/puppet/pops/serialization.rb +9 -8
  626. data/lib/puppet/pops/time/timespan.rb +14 -13
  627. data/lib/puppet/pops/time/timestamp.rb +3 -2
  628. data/lib/puppet/pops/types/annotatable.rb +2 -1
  629. data/lib/puppet/pops/types/annotation.rb +2 -1
  630. data/lib/puppet/pops/types/class_loader.rb +1 -0
  631. data/lib/puppet/pops/types/implementation_registry.rb +1 -0
  632. data/lib/puppet/pops/types/iterable.rb +1 -0
  633. data/lib/puppet/pops/types/p_binary_type.rb +1 -0
  634. data/lib/puppet/pops/types/p_init_type.rb +1 -0
  635. data/lib/puppet/pops/types/p_meta_type.rb +4 -3
  636. data/lib/puppet/pops/types/p_object_type.rb +16 -15
  637. data/lib/puppet/pops/types/p_object_type_extension.rb +1 -0
  638. data/lib/puppet/pops/types/p_runtime_type.rb +1 -0
  639. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -0
  640. data/lib/puppet/pops/types/p_sem_ver_type.rb +1 -0
  641. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -0
  642. data/lib/puppet/pops/types/p_timespan_type.rb +1 -0
  643. data/lib/puppet/pops/types/p_timestamp_type.rb +1 -0
  644. data/lib/puppet/pops/types/p_type_set_type.rb +9 -8
  645. data/lib/puppet/pops/types/p_uri_type.rb +9 -8
  646. data/lib/puppet/pops/types/puppet_object.rb +1 -0
  647. data/lib/puppet/pops/types/recursion_guard.rb +1 -0
  648. data/lib/puppet/pops/types/ruby_generator.rb +3 -2
  649. data/lib/puppet/pops/types/ruby_method.rb +1 -0
  650. data/lib/puppet/pops/types/string_converter.rb +10 -9
  651. data/lib/puppet/pops/types/tree_iterators.rb +1 -0
  652. data/lib/puppet/pops/types/type_acceptor.rb +1 -0
  653. data/lib/puppet/pops/types/type_asserter.rb +1 -0
  654. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  655. data/lib/puppet/pops/types/type_calculator.rb +2 -1
  656. data/lib/puppet/pops/types/type_conversion_error.rb +1 -0
  657. data/lib/puppet/pops/types/type_factory.rb +2 -1
  658. data/lib/puppet/pops/types/type_formatter.rb +2 -2
  659. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -0
  660. data/lib/puppet/pops/types/type_parser.rb +1 -0
  661. data/lib/puppet/pops/types/type_set_reference.rb +1 -0
  662. data/lib/puppet/pops/types/type_with_members.rb +1 -0
  663. data/lib/puppet/pops/types/types.rb +3 -2
  664. data/lib/puppet/pops/utils.rb +3 -2
  665. data/lib/puppet/pops/validation/checker4_0.rb +1 -0
  666. data/lib/puppet/pops/validation/tasks_checker.rb +1 -0
  667. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  668. data/lib/puppet/pops/validation.rb +1 -0
  669. data/lib/puppet/pops/visitable.rb +1 -0
  670. data/lib/puppet/pops/visitor.rb +1 -0
  671. data/lib/puppet/pops.rb +4 -3
  672. data/lib/puppet/property/boolean.rb +1 -0
  673. data/lib/puppet/property/ensure.rb +1 -0
  674. data/lib/puppet/property/keyvalue.rb +1 -0
  675. data/lib/puppet/property/list.rb +1 -0
  676. data/lib/puppet/property/ordered_list.rb +1 -0
  677. data/lib/puppet/property.rb +1 -0
  678. data/lib/puppet/provider/aix_object.rb +1 -0
  679. data/lib/puppet/provider/command.rb +1 -0
  680. data/lib/puppet/provider/confine.rb +1 -0
  681. data/lib/puppet/provider/exec/posix.rb +1 -0
  682. data/lib/puppet/provider/exec/shell.rb +1 -0
  683. data/lib/puppet/provider/exec/windows.rb +4 -3
  684. data/lib/puppet/provider/exec.rb +1 -0
  685. data/lib/puppet/provider/file/posix.rb +1 -0
  686. data/lib/puppet/provider/file/windows.rb +2 -1
  687. data/lib/puppet/provider/group/aix.rb +3 -2
  688. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  689. data/lib/puppet/provider/group/groupadd.rb +2 -1
  690. data/lib/puppet/provider/group/ldap.rb +1 -0
  691. data/lib/puppet/provider/group/pw.rb +3 -2
  692. data/lib/puppet/provider/group/windows_adsi.rb +3 -2
  693. data/lib/puppet/provider/ldap.rb +1 -0
  694. data/lib/puppet/provider/nameservice/directoryservice.rb +5 -4
  695. data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
  696. data/lib/puppet/provider/nameservice/pw.rb +1 -0
  697. data/lib/puppet/provider/nameservice.rb +1 -0
  698. data/lib/puppet/provider/network_device.rb +1 -0
  699. data/lib/puppet/provider/package/aix.rb +3 -2
  700. data/lib/puppet/provider/package/appdmg.rb +2 -1
  701. data/lib/puppet/provider/package/apple.rb +2 -1
  702. data/lib/puppet/provider/package/apt.rb +2 -1
  703. data/lib/puppet/provider/package/aptitude.rb +1 -0
  704. data/lib/puppet/provider/package/aptrpm.rb +1 -0
  705. data/lib/puppet/provider/package/blastwave.rb +2 -1
  706. data/lib/puppet/provider/package/dnf.rb +5 -4
  707. data/lib/puppet/provider/package/dnfmodule.rb +1 -0
  708. data/lib/puppet/provider/package/dpkg.rb +1 -0
  709. data/lib/puppet/provider/package/fink.rb +1 -0
  710. data/lib/puppet/provider/package/freebsd.rb +2 -1
  711. data/lib/puppet/provider/package/gem.rb +5 -4
  712. data/lib/puppet/provider/package/hpux.rb +3 -2
  713. data/lib/puppet/provider/package/macports.rb +2 -1
  714. data/lib/puppet/provider/package/nim.rb +1 -0
  715. data/lib/puppet/provider/package/openbsd.rb +3 -2
  716. data/lib/puppet/provider/package/opkg.rb +3 -2
  717. data/lib/puppet/provider/package/pacman.rb +3 -2
  718. data/lib/puppet/provider/package/pip.rb +1 -0
  719. data/lib/puppet/provider/package/pip2.rb +1 -0
  720. data/lib/puppet/provider/package/pip3.rb +1 -0
  721. data/lib/puppet/provider/package/pkg.rb +4 -3
  722. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  723. data/lib/puppet/provider/package/pkgin.rb +2 -1
  724. data/lib/puppet/provider/package/pkgng.rb +3 -2
  725. data/lib/puppet/provider/package/pkgutil.rb +2 -1
  726. data/lib/puppet/provider/package/portage.rb +3 -2
  727. data/lib/puppet/provider/package/ports.rb +1 -0
  728. data/lib/puppet/provider/package/portupgrade.rb +2 -1
  729. data/lib/puppet/provider/package/puppet_gem.rb +3 -2
  730. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
  731. data/lib/puppet/provider/package/rpm.rb +1 -0
  732. data/lib/puppet/provider/package/rug.rb +2 -1
  733. data/lib/puppet/provider/package/sun.rb +3 -2
  734. data/lib/puppet/provider/package/sunfreeware.rb +2 -1
  735. data/lib/puppet/provider/package/tdnf.rb +2 -1
  736. data/lib/puppet/provider/package/up2date.rb +3 -2
  737. data/lib/puppet/provider/package/urpmi.rb +2 -1
  738. data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
  739. data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
  740. data/lib/puppet/provider/package/windows/package.rb +1 -0
  741. data/lib/puppet/provider/package/windows.rb +3 -2
  742. data/lib/puppet/provider/package/yum.rb +4 -3
  743. data/lib/puppet/provider/package/zypper.rb +3 -2
  744. data/lib/puppet/provider/package.rb +1 -0
  745. data/lib/puppet/provider/package_targetable.rb +1 -0
  746. data/lib/puppet/provider/parsedfile.rb +1 -0
  747. data/lib/puppet/provider/service/base.rb +2 -1
  748. data/lib/puppet/provider/service/bsd.rb +2 -1
  749. data/lib/puppet/provider/service/daemontools.rb +2 -1
  750. data/lib/puppet/provider/service/debian.rb +4 -3
  751. data/lib/puppet/provider/service/freebsd.rb +3 -2
  752. data/lib/puppet/provider/service/gentoo.rb +2 -1
  753. data/lib/puppet/provider/service/init.rb +6 -5
  754. data/lib/puppet/provider/service/launchd.rb +4 -3
  755. data/lib/puppet/provider/service/openbsd.rb +3 -2
  756. data/lib/puppet/provider/service/openrc.rb +3 -2
  757. data/lib/puppet/provider/service/openwrt.rb +3 -2
  758. data/lib/puppet/provider/service/rcng.rb +3 -2
  759. data/lib/puppet/provider/service/redhat.rb +4 -3
  760. data/lib/puppet/provider/service/runit.rb +1 -0
  761. data/lib/puppet/provider/service/service.rb +1 -0
  762. data/lib/puppet/provider/service/smf.rb +6 -5
  763. data/lib/puppet/provider/service/src.rb +3 -2
  764. data/lib/puppet/provider/service/systemd.rb +15 -14
  765. data/lib/puppet/provider/service/upstart.rb +8 -7
  766. data/lib/puppet/provider/service/windows.rb +3 -2
  767. data/lib/puppet/provider/user/aix.rb +3 -2
  768. data/lib/puppet/provider/user/directoryservice.rb +5 -4
  769. data/lib/puppet/provider/user/hpux.rb +3 -2
  770. data/lib/puppet/provider/user/ldap.rb +1 -0
  771. data/lib/puppet/provider/user/openbsd.rb +3 -2
  772. data/lib/puppet/provider/user/pw.rb +3 -2
  773. data/lib/puppet/provider/user/user_role_add.rb +2 -1
  774. data/lib/puppet/provider/user/useradd.rb +7 -6
  775. data/lib/puppet/provider/user/windows_adsi.rb +3 -2
  776. data/lib/puppet/provider.rb +1 -0
  777. data/lib/puppet/reference/configuration.rb +2 -1
  778. data/lib/puppet/reference/function.rb +1 -0
  779. data/lib/puppet/reference/indirection.rb +2 -1
  780. data/lib/puppet/reference/metaparameter.rb +1 -0
  781. data/lib/puppet/reference/providers.rb +5 -5
  782. data/lib/puppet/reference/report.rb +1 -0
  783. data/lib/puppet/reference/type.rb +1 -0
  784. data/lib/puppet/relationship.rb +1 -0
  785. data/lib/puppet/reports/http.rb +1 -0
  786. data/lib/puppet/reports/log.rb +1 -0
  787. data/lib/puppet/reports/store.rb +1 -0
  788. data/lib/puppet/reports.rb +2 -1
  789. data/lib/puppet/resource/catalog.rb +1 -0
  790. data/lib/puppet/resource/status.rb +1 -0
  791. data/lib/puppet/resource/type.rb +9 -8
  792. data/lib/puppet/resource.rb +9 -8
  793. data/lib/puppet/runtime.rb +1 -0
  794. data/lib/puppet/scheduler/job.rb +1 -0
  795. data/lib/puppet/scheduler/scheduler.rb +1 -0
  796. data/lib/puppet/scheduler/splay_job.rb +1 -0
  797. data/lib/puppet/scheduler/timer.rb +1 -0
  798. data/lib/puppet/scheduler.rb +1 -0
  799. data/lib/puppet/settings/alias_setting.rb +1 -0
  800. data/lib/puppet/settings/array_setting.rb +1 -0
  801. data/lib/puppet/settings/autosign_setting.rb +1 -0
  802. data/lib/puppet/settings/base_setting.rb +1 -0
  803. data/lib/puppet/settings/boolean_setting.rb +1 -0
  804. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -0
  805. data/lib/puppet/settings/config_file.rb +1 -0
  806. data/lib/puppet/settings/directory_setting.rb +1 -0
  807. data/lib/puppet/settings/duration_setting.rb +1 -0
  808. data/lib/puppet/settings/enum_setting.rb +1 -0
  809. data/lib/puppet/settings/environment_conf.rb +1 -0
  810. data/lib/puppet/settings/errors.rb +1 -0
  811. data/lib/puppet/settings/file_or_directory_setting.rb +1 -0
  812. data/lib/puppet/settings/file_setting.rb +1 -0
  813. data/lib/puppet/settings/http_extra_headers_setting.rb +1 -0
  814. data/lib/puppet/settings/ini_file.rb +1 -0
  815. data/lib/puppet/settings/integer_setting.rb +1 -0
  816. data/lib/puppet/settings/path_setting.rb +1 -0
  817. data/lib/puppet/settings/port_setting.rb +1 -0
  818. data/lib/puppet/settings/priority_setting.rb +1 -0
  819. data/lib/puppet/settings/server_list_setting.rb +1 -0
  820. data/lib/puppet/settings/string_setting.rb +1 -0
  821. data/lib/puppet/settings/symbolic_enum_setting.rb +1 -0
  822. data/lib/puppet/settings/terminus_setting.rb +1 -0
  823. data/lib/puppet/settings/ttl_setting.rb +1 -0
  824. data/lib/puppet/settings/value_translator.rb +1 -0
  825. data/lib/puppet/settings.rb +5 -4
  826. data/lib/puppet/ssl/base.rb +1 -0
  827. data/lib/puppet/ssl/certificate.rb +1 -0
  828. data/lib/puppet/ssl/certificate_request.rb +2 -4
  829. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -0
  830. data/lib/puppet/ssl/certificate_signer.rb +1 -0
  831. data/lib/puppet/ssl/digest.rb +1 -0
  832. data/lib/puppet/ssl/error.rb +1 -0
  833. data/lib/puppet/ssl/oids.rb +1 -0
  834. data/lib/puppet/ssl/openssl_loader.rb +1 -0
  835. data/lib/puppet/ssl/ssl_context.rb +1 -0
  836. data/lib/puppet/ssl/ssl_provider.rb +2 -1
  837. data/lib/puppet/ssl/state_machine.rb +1 -0
  838. data/lib/puppet/ssl/verifier.rb +1 -0
  839. data/lib/puppet/ssl.rb +2 -1
  840. data/lib/puppet/syntax_checkers/base64.rb +1 -0
  841. data/lib/puppet/syntax_checkers/epp.rb +1 -0
  842. data/lib/puppet/syntax_checkers/json.rb +1 -0
  843. data/lib/puppet/syntax_checkers/pp.rb +1 -0
  844. data/lib/puppet/syntax_checkers.rb +1 -0
  845. data/lib/puppet/test/test_helper.rb +4 -21
  846. data/lib/puppet/thread_local.rb +5 -1
  847. data/lib/puppet/transaction/additional_resource_generator.rb +1 -0
  848. data/lib/puppet/transaction/event.rb +1 -0
  849. data/lib/puppet/transaction/event_manager.rb +1 -0
  850. data/lib/puppet/transaction/persistence.rb +1 -0
  851. data/lib/puppet/transaction/report.rb +3 -2
  852. data/lib/puppet/transaction/resource_harness.rb +1 -0
  853. data/lib/puppet/transaction.rb +1 -0
  854. data/lib/puppet/trusted_external.rb +1 -0
  855. data/lib/puppet/type/component.rb +1 -0
  856. data/lib/puppet/type/exec.rb +1 -0
  857. data/lib/puppet/type/file/checksum.rb +1 -0
  858. data/lib/puppet/type/file/checksum_value.rb +1 -0
  859. data/lib/puppet/type/file/content.rb +1 -0
  860. data/lib/puppet/type/file/ctime.rb +1 -0
  861. data/lib/puppet/type/file/data_sync.rb +1 -0
  862. data/lib/puppet/type/file/ensure.rb +1 -0
  863. data/lib/puppet/type/file/group.rb +1 -0
  864. data/lib/puppet/type/file/mode.rb +1 -0
  865. data/lib/puppet/type/file/mtime.rb +1 -0
  866. data/lib/puppet/type/file/owner.rb +1 -0
  867. data/lib/puppet/type/file/selcontext.rb +1 -0
  868. data/lib/puppet/type/file/source.rb +2 -1
  869. data/lib/puppet/type/file/target.rb +1 -0
  870. data/lib/puppet/type/file/type.rb +1 -0
  871. data/lib/puppet/type/file.rb +1 -0
  872. data/lib/puppet/type/filebucket.rb +1 -0
  873. data/lib/puppet/type/group.rb +1 -0
  874. data/lib/puppet/type/notify.rb +1 -0
  875. data/lib/puppet/type/package.rb +3 -2
  876. data/lib/puppet/type/resources.rb +2 -1
  877. data/lib/puppet/type/schedule.rb +1 -0
  878. data/lib/puppet/type/service.rb +1 -0
  879. data/lib/puppet/type/stage.rb +1 -0
  880. data/lib/puppet/type/tidy.rb +1 -0
  881. data/lib/puppet/type/user.rb +1 -0
  882. data/lib/puppet/type/whit.rb +1 -0
  883. data/lib/puppet/type.rb +2 -42
  884. data/lib/puppet/util/at_fork/noop.rb +1 -0
  885. data/lib/puppet/util/at_fork/solaris.rb +1 -0
  886. data/lib/puppet/util/at_fork.rb +1 -0
  887. data/lib/puppet/util/autoload.rb +1 -0
  888. data/lib/puppet/util/backups.rb +1 -0
  889. data/lib/puppet/util/character_encoding.rb +1 -0
  890. data/lib/puppet/util/checksums.rb +1 -0
  891. data/lib/puppet/util/classgen.rb +1 -0
  892. data/lib/puppet/util/colors.rb +1 -0
  893. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -0
  894. data/lib/puppet/util/command_line/trollop.rb +1 -0
  895. data/lib/puppet/util/command_line.rb +1 -0
  896. data/lib/puppet/util/constant_inflector.rb +1 -0
  897. data/lib/puppet/util/diff.rb +2 -1
  898. data/lib/puppet/util/docs.rb +1 -0
  899. data/lib/puppet/util/errors.rb +1 -0
  900. data/lib/puppet/util/execution.rb +4 -3
  901. data/lib/puppet/util/execution_stub.rb +1 -0
  902. data/lib/puppet/util/feature.rb +1 -0
  903. data/lib/puppet/util/file_watcher.rb +1 -0
  904. data/lib/puppet/util/fileparsing.rb +1 -0
  905. data/lib/puppet/util/filetype.rb +3 -2
  906. data/lib/puppet/util/http_proxy.rb +1 -0
  907. data/lib/puppet/util/inifile.rb +3 -2
  908. data/lib/puppet/util/instance_loader.rb +1 -0
  909. data/lib/puppet/util/json.rb +1 -0
  910. data/lib/puppet/util/json_lockfile.rb +1 -0
  911. data/lib/puppet/util/ldap/connection.rb +1 -0
  912. data/lib/puppet/util/ldap/generator.rb +1 -0
  913. data/lib/puppet/util/ldap/manager.rb +1 -0
  914. data/lib/puppet/util/ldap.rb +1 -0
  915. data/lib/puppet/util/libuser.rb +1 -0
  916. data/lib/puppet/util/limits.rb +1 -0
  917. data/lib/puppet/util/lockfile.rb +1 -0
  918. data/lib/puppet/util/log/destination.rb +1 -0
  919. data/lib/puppet/util/log/destinations.rb +1 -0
  920. data/lib/puppet/util/log.rb +1 -0
  921. data/lib/puppet/util/logging.rb +1 -0
  922. data/lib/puppet/util/metaid.rb +1 -0
  923. data/lib/puppet/util/metric.rb +1 -0
  924. data/lib/puppet/util/monkey_patches.rb +3 -28
  925. data/lib/puppet/util/multi_match.rb +1 -0
  926. data/lib/puppet/util/network_device/base.rb +1 -0
  927. data/lib/puppet/util/network_device/config.rb +1 -0
  928. data/lib/puppet/util/network_device/transport/base.rb +1 -0
  929. data/lib/puppet/util/network_device/transport.rb +1 -0
  930. data/lib/puppet/util/network_device.rb +1 -0
  931. data/lib/puppet/util/package/version/debian.rb +1 -0
  932. data/lib/puppet/util/package/version/gem.rb +1 -0
  933. data/lib/puppet/util/package/version/pip.rb +2 -1
  934. data/lib/puppet/util/package/version/range/eq.rb +1 -0
  935. data/lib/puppet/util/package/version/range/gt.rb +1 -0
  936. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -0
  937. data/lib/puppet/util/package/version/range/lt.rb +1 -0
  938. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -0
  939. data/lib/puppet/util/package/version/range/min_max.rb +1 -0
  940. data/lib/puppet/util/package/version/range/simple.rb +1 -0
  941. data/lib/puppet/util/package/version/range.rb +1 -0
  942. data/lib/puppet/util/package/version/rpm.rb +1 -1
  943. data/lib/puppet/util/pidlock.rb +1 -0
  944. data/lib/puppet/util/platform.rb +3 -2
  945. data/lib/puppet/util/plist.rb +1 -0
  946. data/lib/puppet/util/posix.rb +1 -0
  947. data/lib/puppet/util/profiler/aggregate.rb +1 -0
  948. data/lib/puppet/util/profiler/around_profiler.rb +1 -0
  949. data/lib/puppet/util/profiler/logging.rb +1 -0
  950. data/lib/puppet/util/profiler/object_counts.rb +1 -0
  951. data/lib/puppet/util/profiler/wall_clock.rb +1 -0
  952. data/lib/puppet/util/profiler.rb +1 -0
  953. data/lib/puppet/util/provider_features.rb +2 -1
  954. data/lib/puppet/util/psych_support.rb +1 -0
  955. data/lib/puppet/util/rdoc/code_objects.rb +1 -0
  956. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -0
  957. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1 -0
  958. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -0
  959. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -0
  960. data/lib/puppet/util/rdoc/parser.rb +1 -0
  961. data/lib/puppet/util/rdoc.rb +1 -0
  962. data/lib/puppet/util/reference.rb +1 -0
  963. data/lib/puppet/util/resource_template.rb +1 -0
  964. data/lib/puppet/util/retry_action.rb +1 -0
  965. data/lib/puppet/util/rpm_compare.rb +1 -0
  966. data/lib/puppet/util/rubygems.rb +1 -0
  967. data/lib/puppet/util/run_mode.rb +1 -0
  968. data/lib/puppet/util/selinux.rb +2 -1
  969. data/lib/puppet/util/skip_tags.rb +1 -0
  970. data/lib/puppet/util/splayer.rb +1 -0
  971. data/lib/puppet/util/storage.rb +1 -0
  972. data/lib/puppet/util/suidmanager.rb +2 -1
  973. data/lib/puppet/util/symbolic_file_mode.rb +1 -0
  974. data/lib/puppet/util/tag_set.rb +1 -0
  975. data/lib/puppet/util/terminal.rb +1 -0
  976. data/lib/puppet/util/user_attr.rb +1 -0
  977. data/lib/puppet/util/warnings.rb +1 -0
  978. data/lib/puppet/util/watched_file.rb +1 -0
  979. data/lib/puppet/util/watcher/change_watcher.rb +1 -0
  980. data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
  981. data/lib/puppet/util/watcher/timer.rb +1 -0
  982. data/lib/puppet/util/watcher.rb +1 -0
  983. data/lib/puppet/util/windows/access_control_entry.rb +2 -1
  984. data/lib/puppet/util/windows/access_control_list.rb +2 -1
  985. data/lib/puppet/util/windows/adsi.rb +3 -2
  986. data/lib/puppet/util/windows/com.rb +1 -0
  987. data/lib/puppet/util/windows/daemon.rb +1 -0
  988. data/lib/puppet/util/windows/error.rb +2 -1
  989. data/lib/puppet/util/windows/eventlog.rb +1 -0
  990. data/lib/puppet/util/windows/file.rb +3 -2
  991. data/lib/puppet/util/windows/principal.rb +1 -0
  992. data/lib/puppet/util/windows/process.rb +2 -1
  993. data/lib/puppet/util/windows/registry.rb +1 -0
  994. data/lib/puppet/util/windows/root_certs.rb +1 -0
  995. data/lib/puppet/util/windows/security.rb +1 -0
  996. data/lib/puppet/util/windows/security_descriptor.rb +1 -0
  997. data/lib/puppet/util/windows/service.rb +1 -0
  998. data/lib/puppet/util/windows/sid.rb +1 -0
  999. data/lib/puppet/util/windows/string.rb +1 -0
  1000. data/lib/puppet/util/windows/user.rb +1 -0
  1001. data/lib/puppet/util/windows.rb +1 -0
  1002. data/lib/puppet/util/yaml.rb +1 -0
  1003. data/lib/puppet/util.rb +32 -87
  1004. data/lib/puppet/vendor.rb +1 -0
  1005. data/lib/puppet/version.rb +2 -1
  1006. data/lib/puppet/x509/cert_provider.rb +1 -0
  1007. data/lib/puppet/x509/pem_store.rb +1 -0
  1008. data/lib/puppet/x509.rb +1 -0
  1009. data/lib/puppet.rb +5 -8
  1010. data/lib/puppet_pal.rb +1 -0
  1011. data/lib/puppet_x.rb +1 -0
  1012. data/locales/puppet.pot +9679 -5
  1013. data/man/man5/puppet.conf.5 +13 -13
  1014. data/man/man8/puppet-agent.8 +1 -1
  1015. data/man/man8/puppet-apply.8 +1 -1
  1016. data/man/man8/puppet-catalog.8 +1 -5
  1017. data/man/man8/puppet-config.8 +1 -1
  1018. data/man/man8/puppet-describe.8 +1 -1
  1019. data/man/man8/puppet-device.8 +1 -1
  1020. data/man/man8/puppet-doc.8 +1 -1
  1021. data/man/man8/puppet-epp.8 +1 -1
  1022. data/man/man8/puppet-facts.8 +1 -5
  1023. data/man/man8/puppet-filebucket.8 +1 -1
  1024. data/man/man8/puppet-generate.8 +1 -1
  1025. data/man/man8/puppet-help.8 +1 -1
  1026. data/man/man8/puppet-lookup.8 +1 -1
  1027. data/man/man8/puppet-module.8 +1 -1
  1028. data/man/man8/puppet-node.8 +1 -5
  1029. data/man/man8/puppet-parser.8 +1 -1
  1030. data/man/man8/puppet-plugin.8 +1 -1
  1031. data/man/man8/puppet-report.8 +1 -5
  1032. data/man/man8/puppet-resource.8 +1 -1
  1033. data/man/man8/puppet-script.8 +1 -1
  1034. data/man/man8/puppet-ssl.8 +1 -1
  1035. data/man/man8/puppet.8 +2 -2
  1036. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
  1037. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +1 -1
  1038. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +1 -1
  1039. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +1 -1
  1040. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
  1041. data/spec/integration/application/agent_spec.rb +17 -12
  1042. data/spec/integration/application/apply_spec.rb +23 -15
  1043. data/spec/integration/configurer_spec.rb +4 -2
  1044. data/spec/integration/defaults_spec.rb +3 -3
  1045. data/spec/integration/http/client_spec.rb +2 -2
  1046. data/spec/integration/network/formats_spec.rb +1 -1
  1047. data/spec/integration/network/http/api/indirected_routes_spec.rb +2 -2
  1048. data/spec/integration/network/http_pool_spec.rb +2 -2
  1049. data/spec/integration/node/facts_spec.rb +2 -2
  1050. data/spec/integration/parser/compiler_spec.rb +15 -4
  1051. data/spec/integration/parser/conditionals_spec.rb +3 -0
  1052. data/spec/integration/parser/scope_spec.rb +10 -3
  1053. data/spec/integration/type/file_spec.rb +2 -2
  1054. data/spec/integration/type/package_spec.rb +5 -5
  1055. data/spec/integration/util_spec.rb +1 -1
  1056. data/spec/lib/puppet_spec/network.rb +18 -0
  1057. data/spec/shared_examples/rhel_package_provider.rb +2 -2
  1058. data/spec/unit/application/device_spec.rb +2 -2
  1059. data/spec/unit/application/lookup_spec.rb +6 -0
  1060. data/spec/unit/application/resource_spec.rb +22 -13
  1061. data/spec/unit/configurer/fact_handler_spec.rb +1 -1
  1062. data/spec/unit/confine_spec.rb +6 -6
  1063. data/spec/unit/data_providers/hiera_data_provider_spec.rb +2 -0
  1064. data/spec/unit/defaults_spec.rb +8 -0
  1065. data/spec/unit/external/pson_spec.rb +1 -3
  1066. data/spec/unit/face/epp_face_spec.rb +2 -2
  1067. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  1068. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  1069. data/spec/unit/file_serving/mount/file_spec.rb +2 -2
  1070. data/spec/unit/functions/epp_spec.rb +7 -1
  1071. data/spec/unit/functions/hiera_spec.rb +7 -7
  1072. data/spec/unit/functions/inline_epp_spec.rb +7 -1
  1073. data/spec/unit/functions/lookup_spec.rb +59 -69
  1074. data/spec/unit/functions/max_spec.rb +30 -1
  1075. data/spec/unit/functions/min_spec.rb +30 -1
  1076. data/spec/unit/functions/return_spec.rb +4 -0
  1077. data/spec/unit/hiera/scope_spec.rb +6 -1
  1078. data/spec/unit/hiera_puppet_spec.rb +1 -1
  1079. data/spec/unit/http/factory_spec.rb +1 -1
  1080. data/spec/unit/http/service/compiler_spec.rb +5 -3
  1081. data/spec/unit/http/service/file_server_spec.rb +5 -3
  1082. data/spec/unit/http/service/report_spec.rb +4 -14
  1083. data/spec/unit/http/service_spec.rb +5 -11
  1084. data/spec/unit/indirector/catalog/compiler_spec.rb +12 -11
  1085. data/spec/unit/indirector/face_spec.rb +4 -6
  1086. data/spec/unit/indirector/facts/facter_spec.rb +1 -1
  1087. data/spec/unit/indirector/hiera_spec.rb +7 -2
  1088. data/spec/unit/indirector/report/rest_spec.rb +0 -26
  1089. data/spec/unit/indirector/rest_spec.rb +1 -1
  1090. data/spec/unit/module_spec.rb +2 -6
  1091. data/spec/unit/module_tool/tar_spec.rb +3 -3
  1092. data/spec/unit/network/formats_spec.rb +1 -1
  1093. data/spec/unit/network/http/api/indirected_routes_spec.rb +10 -10
  1094. data/spec/unit/parser/scope_spec.rb +4 -0
  1095. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +8 -0
  1096. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +5 -0
  1097. data/spec/unit/pops/loaders/loaders_spec.rb +7 -7
  1098. data/spec/unit/pops/lookup/interpolation_spec.rb +12 -0
  1099. data/spec/unit/pops/serialization/serialization_spec.rb +2 -2
  1100. data/spec/unit/pops/serialization/to_from_hr_spec.rb +13 -1
  1101. data/spec/unit/pops/validator/validator_spec.rb +2 -3
  1102. data/spec/unit/provider/package/apt_spec.rb +2 -2
  1103. data/spec/unit/provider/package/dnf_spec.rb +15 -15
  1104. data/spec/unit/provider/package/dnfmodule_spec.rb +6 -6
  1105. data/spec/unit/provider/package/gem_spec.rb +4 -4
  1106. data/spec/unit/provider/package/pip2_spec.rb +2 -2
  1107. data/spec/unit/provider/package/pip3_spec.rb +2 -2
  1108. data/spec/unit/provider/package/pip_spec.rb +2 -2
  1109. data/spec/unit/provider/package/pkg_spec.rb +8 -8
  1110. data/spec/unit/provider/package/pkgng_spec.rb +1 -1
  1111. data/spec/unit/provider/package/portage_spec.rb +2 -2
  1112. data/spec/unit/provider/package/puppet_gem_spec.rb +6 -6
  1113. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -2
  1114. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  1115. data/spec/unit/provider/package/up2date_spec.rb +2 -2
  1116. data/spec/unit/provider/package/yum_spec.rb +16 -16
  1117. data/spec/unit/provider/service/base_spec.rb +1 -1
  1118. data/spec/unit/provider/service/bsd_spec.rb +2 -2
  1119. data/spec/unit/provider/service/debian_spec.rb +7 -7
  1120. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  1121. data/spec/unit/provider/service/gentoo_spec.rb +2 -2
  1122. data/spec/unit/provider/service/init_spec.rb +8 -8
  1123. data/spec/unit/provider/service/openbsd_spec.rb +2 -2
  1124. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  1125. data/spec/unit/provider/service/rcng_spec.rb +2 -2
  1126. data/spec/unit/provider/service/redhat_spec.rb +7 -7
  1127. data/spec/unit/provider/service/smf_spec.rb +8 -8
  1128. data/spec/unit/provider/service/systemd_spec.rb +57 -57
  1129. data/spec/unit/provider/service/upstart_spec.rb +3 -3
  1130. data/spec/unit/provider/user/directoryservice_spec.rb +2 -2
  1131. data/spec/unit/provider/user/openbsd_spec.rb +2 -2
  1132. data/spec/unit/provider/user/useradd_spec.rb +14 -14
  1133. data/spec/unit/provider_spec.rb +51 -51
  1134. data/spec/unit/reports/store_spec.rb +5 -3
  1135. data/spec/unit/resource/catalog_spec.rb +13 -4
  1136. data/spec/unit/ssl/certificate_request_spec.rb +6 -2
  1137. data/spec/unit/ssl/ssl_provider_spec.rb +7 -2
  1138. data/spec/unit/ssl/state_machine_spec.rb +1 -6
  1139. data/spec/unit/test/test_helper_spec.rb +4 -4
  1140. data/spec/unit/transaction/report_spec.rb +39 -7
  1141. data/spec/unit/type/package_spec.rb +3 -3
  1142. data/spec/unit/type/resources_spec.rb +2 -2
  1143. data/spec/unit/type_spec.rb +2 -2
  1144. data/spec/unit/util/json_lockfile_spec.rb +1 -1
  1145. data/spec/unit/util/monkey_patches_spec.rb +0 -18
  1146. data/spec/unit/util/run_mode_spec.rb +0 -32
  1147. data/spec/unit/util_spec.rb +68 -62
  1148. data/spec/unit/x509/cert_provider_spec.rb +2 -2
  1149. metadata +19 -37
  1150. data/lib/puppet/external/pson/common.rb +0 -374
  1151. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1152. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1153. data/lib/puppet/external/pson/pure.rb +0 -15
  1154. data/lib/puppet/external/pson/version.rb +0 -8
@@ -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)
@@ -299,6 +299,7 @@ describe Puppet::SSL::SSLProvider do
299
299
  end
300
300
 
301
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))
@@ -339,6 +340,7 @@ describe Puppet::SSL::SSLProvider do
339
340
 
340
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)
@@ -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
@@ -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
 
@@ -171,30 +171,6 @@ describe Puppet::Util::RunMode do
171
171
  end
172
172
  end
173
173
  end
174
-
175
- describe "#without_env internal helper with UTF8 characters" do
176
- let(:varname) { "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7" }
177
- let(:rune_utf8) { "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7" }
178
-
179
- before do
180
- Puppet::Util::Windows::Process.set_environment_variable(varname, rune_utf8)
181
- end
182
-
183
- it "removes environment variables within the block with UTF8 name" do
184
- without_env(varname) do
185
- expect(ENV[varname]).to be(nil)
186
- end
187
- end
188
-
189
- it "restores UTF8 characters in environment variable values" do
190
- without_env(varname) do
191
- Puppet::Util::Windows::Process.set_environment_variable(varname, 'bad value')
192
- end
193
-
194
- envhash = Puppet::Util::Windows::Process.get_environment_strings
195
- expect(envhash[varname]).to eq(rune_utf8)
196
- end
197
- end
198
174
  end
199
175
 
200
176
  def as_root
@@ -206,12 +182,4 @@ describe Puppet::Util::RunMode do
206
182
  allow(Puppet.features).to receive(:root?).and_return(false)
207
183
  yield
208
184
  end
209
-
210
- def without_env(name, &block)
211
- saved = Puppet::Util.get_env(name)
212
- Puppet::Util.set_env(name, nil)
213
- yield
214
- ensure
215
- Puppet::Util.set_env(name, saved)
216
- end
217
185
  end
@@ -65,10 +65,62 @@ describe Puppet::Util do
65
65
  end
66
66
  expect(ENV["FOO"]).to eq(nil)
67
67
  end
68
+
69
+ it "accepts symbolic keys" do
70
+ Puppet::Util.withenv(:FOO => "bar") do
71
+ expect(ENV["FOO"]).to eq("bar")
72
+ end
73
+ end
74
+
75
+ it "coerces invalid keys to strings" do
76
+ Puppet::Util.withenv(12345678 => "bar") do
77
+ expect(ENV["12345678"]).to eq("bar")
78
+ end
79
+ end
80
+
81
+ it "rejects keys with leading equals" do
82
+ expect {
83
+ Puppet::Util.withenv("=foo" => "bar") {}
84
+ }.to raise_error(Errno::EINVAL, /Invalid argument/)
85
+ end
86
+
87
+ it "includes keys with unicode replacement characters" do
88
+ Puppet::Util.withenv("foo\uFFFD" => "bar") do
89
+ expect(ENV).to be_include("foo\uFFFD")
90
+ end
91
+ end
92
+
93
+ it "accepts a unicode key" do
94
+ key = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
95
+
96
+ Puppet::Util.withenv(key => "bar") do
97
+ expect(ENV[key]).to eq("bar")
98
+ end
99
+ end
100
+
101
+ it "accepts a unicode value" do
102
+ value = "\u16A0\u16C7\u16BB\u16EB\u16D2\u16E6\u16A6\u16EB\u16A0\u16B1\u16A9\u16A0\u16A2\u16B1\u16EB\u16A0\u16C1\u16B1\u16AA\u16EB\u16B7\u16D6\u16BB\u16B9\u16E6\u16DA\u16B3\u16A2\u16D7"
103
+
104
+ Puppet::Util.withenv("runes" => value) do
105
+ expect(ENV["runes"]).to eq(value)
106
+ end
107
+ end
108
+
109
+ it "rejects a non-string value" do
110
+ expect {
111
+ Puppet::Util.withenv("reject" => 123) {}
112
+ }.to raise_error(TypeError, /no implicit conversion of Integer into String/)
113
+ end
114
+
115
+ it "accepts a nil value" do
116
+ Puppet::Util.withenv("foo" => nil) do
117
+ expect(ENV["foo"]).to eq(nil)
118
+ end
119
+ end
68
120
  end
69
121
 
70
122
  describe "#withenv on POSIX", :unless => Puppet::Util::Platform.windows? do
71
- it "should preserve case" do
123
+ it "compares keys case sensitively" do
72
124
  # start with lower case key,
73
125
  env_key = SecureRandom.uuid.downcase
74
126
 
@@ -77,7 +129,7 @@ describe Puppet::Util do
77
129
  ENV[env_key] = original_value
78
130
  new_value = 'goodbye'
79
131
 
80
- Puppet::Util.withenv({env_key.upcase => new_value}, :posix) do
132
+ Puppet::Util.withenv(env_key.upcase => new_value) do
81
133
  expect(ENV[env_key]).to eq(original_value)
82
134
  expect(ENV[env_key.upcase]).to eq(new_value)
83
135
  end
@@ -93,7 +145,7 @@ describe Puppet::Util do
93
145
  describe "#withenv on Windows", :if => Puppet::Util::Platform.windows? do
94
146
  let(:process) { Puppet::Util::Windows::Process }
95
147
 
96
- it "should ignore case" do
148
+ it "compares keys case-insensitively" do
97
149
  # start with lower case key, ensuring string is not entirely numeric
98
150
  env_key = SecureRandom.uuid.downcase + 'a'
99
151
 
@@ -102,7 +154,7 @@ describe Puppet::Util do
102
154
  ENV[env_key] = original_value
103
155
  new_value = 'goodbye'
104
156
 
105
- Puppet::Util.withenv({env_key.upcase => new_value}, :windows) do
157
+ Puppet::Util.withenv(env_key.upcase => new_value) do
106
158
  expect(ENV[env_key]).to eq(new_value)
107
159
  expect(ENV[env_key.upcase]).to eq(new_value)
108
160
  end
@@ -122,7 +174,7 @@ describe Puppet::Util do
122
174
  utf_8_value = utf_8_key + 'value'
123
175
  codepage_key = utf_8_key.dup.force_encoding(Encoding.default_external)
124
176
 
125
- Puppet::Util.withenv({utf_8_key => utf_8_value}, :windows) do
177
+ Puppet::Util.withenv(utf_8_key => utf_8_value) do
126
178
  # the true Windows environment APIs see the variables correctly
127
179
  expect(process.get_environment_strings[utf_8_key]).to eq(utf_8_value)
128
180
 
@@ -136,52 +188,6 @@ describe Puppet::Util do
136
188
  expect(process.get_environment_strings[utf_8_key]).to eq(nil)
137
189
  end
138
190
 
139
- # document buggy Ruby behavior here for https://bugs.ruby-lang.org/issues/8822
140
- # Ruby retrieves / stores ENV names in the current codepage
141
- # when these tests no longer pass, Ruby has fixed its bugs and workarounds can be removed
142
-
143
- # In 2.3, the behavior is mostly correct when external codepage is 65001 / UTF-8
144
- it "works around Ruby bug 8822 (which fails to preserve UTF-8 properly when accessing ENV) (Ruby >= 2.3.x) ",
145
- :if => Puppet::Util::Platform.windows? && RUBY_VERSION.to_f < 3 do
146
-
147
- withenv_utf8 do |utf_8_key, utf_8_value, codepage_key|
148
- # Ruby 2.3 fixes access by the original UTF-8 key, and behaves differently than 2.1
149
- # keying by local codepage will work only when the UTF-8 can be converted to local codepage
150
- # the key selected for this test contains characters unavailable to a local codepage, hence doesn't work
151
-
152
- # On Japanese Windows (Code Page 932) this test resolves as true.
153
- # otherwise the key selected for this test contains characters
154
- # unavailable to a local codepage, hence doesn't work
155
- # HACK: tech debt to replace once PUP-7019 is understood
156
- should_be_found = (Encoding.default_external == Encoding::CP932)
157
- expect(ENV.key?(codepage_key)).to eq(should_be_found)
158
- expect(ENV.key?(utf_8_key)).to eq(true)
159
-
160
- # Ruby's ENV.keys has slightly different behavior than ENV.key?(key), and 2.3 differs from 2.1
161
- # (codepage_key / utf_8_key have same bytes for the sake of searching)
162
- found = ENV.keys.find { |k| k.bytes == codepage_key.bytes }
163
-
164
- # the keys collection in 2.3 does not have a string with the correct bytes!
165
- # a corrupt version of the key exists with the bytes [225, 154, 160] replaced with [63]!
166
- expect(found).to be_nil
167
-
168
- # given the key is corrupted, include? cannot be used to find it in either UTF-8 or codepage encoding
169
- expect(ENV.keys.include?(codepage_key)).to eq(false)
170
- expect(ENV.keys.include?(utf_8_key)).to eq(false)
171
-
172
- # The value stored at the UTF-8 key is a corrupted current codepage string and won't match UTF-8 value
173
- # again the bytes [225, 154, 160] have irreversibly been changed to [63]!
174
- env_value = ENV[utf_8_key]
175
- expect(env_value).to_not eq(utf_8_value)
176
- expect(env_value.encoding).to_not eq(Encoding::UTF_8)
177
-
178
- # the ENV value returned will be in the local codepage which may or may not be able to be
179
- # encoded to UTF8. Our test UTF8 data is not convertible to non-Unicode codepages
180
- converted_value = ENV[utf_8_key].dup.force_encoding(Encoding::UTF_8)
181
- expect(converted_value).to_not eq(utf_8_value)
182
- end
183
- end
184
-
185
191
  it "should preseve existing environment and should not corrupt UTF-8 environment variables" do
186
192
  env_var_name = SecureRandom.uuid
187
193
  utf_8_bytes = [225, 154, 160] # rune ᚠ
@@ -195,7 +201,7 @@ describe Puppet::Util do
195
201
  process.set_environment_variable(env_var_name, utf_8_str)
196
202
 
197
203
  original_keys = process.get_environment_strings.keys.to_a
198
- Puppet::Util.withenv({}, :windows) { }
204
+ Puppet::Util.withenv({}) { }
199
205
 
200
206
  env = process.get_environment_strings
201
207
 
@@ -700,8 +706,8 @@ describe Puppet::Util do
700
706
  end
701
707
 
702
708
  it "should walk the search PATH returning the first executable" do
703
- allow(Puppet::Util).to receive(:get_env).with('PATH').and_return(File.expand_path('/bin'))
704
- allow(Puppet::Util).to receive(:get_env).with('PATHEXT').and_return(nil)
709
+ allow(ENV).to receive(:[]).with('PATH').and_return(File.expand_path('/bin'))
710
+ allow(ENV).to receive(:[]).with('PATHEXT').and_return(nil)
705
711
 
706
712
  expect(Puppet::Util.which('foo')).to eq(path)
707
713
  end
@@ -717,8 +723,8 @@ describe Puppet::Util do
717
723
 
718
724
  describe "when a file extension is specified" do
719
725
  it "should walk each directory in PATH ignoring PATHEXT" do
720
- allow(Puppet::Util).to receive(:get_env).with('PATH').and_return(%w[/bar /bin].map{|dir| File.expand_path(dir)}.join(File::PATH_SEPARATOR))
721
- allow(Puppet::Util).to receive(:get_env).with('PATHEXT').and_return('.FOOBAR')
726
+ allow(ENV).to receive(:[]).with('PATH').and_return(%w[/bar /bin].map{|dir| File.expand_path(dir)}.join(File::PATH_SEPARATOR))
727
+ allow(ENV).to receive(:[]).with('PATHEXT').and_return('.FOOBAR')
722
728
 
723
729
  expect(FileTest).to receive(:file?).with(File.join(File.expand_path('/bar'), 'foo.CMD')).and_return(false)
724
730
 
@@ -729,8 +735,8 @@ describe Puppet::Util do
729
735
  describe "when a file extension is not specified" do
730
736
  it "should walk each extension in PATHEXT until an executable is found" do
731
737
  bar = File.expand_path('/bar')
732
- allow(Puppet::Util).to receive(:get_env).with('PATH').and_return("#{bar}#{File::PATH_SEPARATOR}#{base}")
733
- allow(Puppet::Util).to receive(:get_env).with('PATHEXT').and_return(".EXE#{File::PATH_SEPARATOR}.CMD")
738
+ allow(ENV).to receive(:[]).with('PATH').and_return("#{bar}#{File::PATH_SEPARATOR}#{base}")
739
+ allow(ENV).to receive(:[]).with('PATHEXT').and_return(".EXE#{File::PATH_SEPARATOR}.CMD")
734
740
 
735
741
  expect(FileTest).to receive(:file?).ordered().with(File.join(bar, 'foo.EXE')).and_return(false)
736
742
  expect(FileTest).to receive(:file?).ordered().with(File.join(bar, 'foo.CMD')).and_return(false)
@@ -741,8 +747,8 @@ describe Puppet::Util do
741
747
  end
742
748
 
743
749
  it "should walk the default extension path if the environment variable is not defined" do
744
- allow(Puppet::Util).to receive(:get_env).with('PATH').and_return(base)
745
- allow(Puppet::Util).to receive(:get_env).with('PATHEXT').and_return(nil)
750
+ allow(ENV).to receive(:[]).with('PATH').and_return(base)
751
+ allow(ENV).to receive(:[]).with('PATHEXT').and_return(nil)
746
752
 
747
753
  %w[.COM .EXE .BAT].each do |ext|
748
754
  expect(FileTest).to receive(:file?).ordered().with(File.join(base, "foo#{ext}")).and_return(false)
@@ -753,8 +759,8 @@ describe Puppet::Util do
753
759
  end
754
760
 
755
761
  it "should fall back if no extension matches" do
756
- allow(Puppet::Util).to receive(:get_env).with('PATH').and_return(base)
757
- allow(Puppet::Util).to receive(:get_env).with('PATHEXT').and_return(".EXE")
762
+ allow(ENV).to receive(:[]).with('PATH').and_return(base)
763
+ allow(ENV).to receive(:[]).with('PATHEXT').and_return(".EXE")
758
764
 
759
765
  allow(FileTest).to receive(:file?).with(File.join(base, 'foo.EXE')).and_return(false)
760
766
  allow(FileTest).to receive(:file?).with(File.join(base, 'foo')).and_return(true)
@@ -280,7 +280,7 @@ describe Puppet::X509::CertProvider do
280
280
  # password is 74695716c8b6
281
281
  expect {
282
282
  provider.load_private_key('encrypted-key')
283
- }.to raise_error(OpenSSL::PKey::PKeyError, /Could not parse PKey: no start line/)
283
+ }.to raise_error(OpenSSL::PKey::PKeyError, /Could not parse PKey: (no start line|bad decrypt)/)
284
284
  end
285
285
 
286
286
  it 'decrypts an RSA key previously saved using 3DES' do
@@ -315,7 +315,7 @@ describe Puppet::X509::CertProvider do
315
315
  # password is 74695716c8b6
316
316
  expect {
317
317
  provider.load_private_key('encrypted-ec-key')
318
- }.to raise_error(OpenSSL::PKey::PKeyError, /(unknown|invalid) curve name|Could not parse PKey: no start line/)
318
+ }.to raise_error(OpenSSL::PKey::PKeyError, /(unknown|invalid) curve name|Could not parse PKey: (no start line|bad decrypt)/)
319
319
  end
320
320
  end
321
321
  end