puppet 7.24.0-x64-mingw32 → 8.1.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1155) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +5 -5
  3. data/Gemfile +7 -6
  4. data/Gemfile.lock +48 -38
  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 +53 -18
  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 +9 -3
  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 +9 -3
  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 +8 -2
  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 +90 -11
  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 +2 -4
  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 +23 -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 +9691 -5
  1013. data/man/man5/puppet.conf.5 +35 -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 +67 -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 +7 -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/ca_spec.rb +12 -0
  1081. data/spec/unit/http/service/compiler_spec.rb +5 -3
  1082. data/spec/unit/http/service/file_server_spec.rb +5 -3
  1083. data/spec/unit/http/service/report_spec.rb +4 -14
  1084. data/spec/unit/http/service_spec.rb +5 -11
  1085. data/spec/unit/indirector/catalog/compiler_spec.rb +12 -11
  1086. data/spec/unit/indirector/face_spec.rb +4 -6
  1087. data/spec/unit/indirector/facts/facter_spec.rb +1 -1
  1088. data/spec/unit/indirector/hiera_spec.rb +7 -2
  1089. data/spec/unit/indirector/report/rest_spec.rb +0 -26
  1090. data/spec/unit/indirector/rest_spec.rb +1 -1
  1091. data/spec/unit/module_spec.rb +2 -6
  1092. data/spec/unit/module_tool/tar_spec.rb +3 -3
  1093. data/spec/unit/network/formats_spec.rb +1 -1
  1094. data/spec/unit/network/http/api/indirected_routes_spec.rb +32 -6
  1095. data/spec/unit/parser/scope_spec.rb +4 -0
  1096. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +8 -0
  1097. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +5 -0
  1098. data/spec/unit/pops/loaders/loaders_spec.rb +7 -7
  1099. data/spec/unit/pops/lookup/interpolation_spec.rb +12 -0
  1100. data/spec/unit/pops/serialization/serialization_spec.rb +2 -2
  1101. data/spec/unit/pops/serialization/to_from_hr_spec.rb +13 -1
  1102. data/spec/unit/pops/validator/validator_spec.rb +2 -3
  1103. data/spec/unit/provider/package/apt_spec.rb +2 -2
  1104. data/spec/unit/provider/package/dnf_spec.rb +15 -15
  1105. data/spec/unit/provider/package/dnfmodule_spec.rb +6 -6
  1106. data/spec/unit/provider/package/gem_spec.rb +4 -4
  1107. data/spec/unit/provider/package/pip2_spec.rb +2 -2
  1108. data/spec/unit/provider/package/pip3_spec.rb +2 -2
  1109. data/spec/unit/provider/package/pip_spec.rb +2 -2
  1110. data/spec/unit/provider/package/pkg_spec.rb +8 -8
  1111. data/spec/unit/provider/package/pkgng_spec.rb +1 -1
  1112. data/spec/unit/provider/package/portage_spec.rb +2 -2
  1113. data/spec/unit/provider/package/puppet_gem_spec.rb +6 -6
  1114. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -2
  1115. data/spec/unit/provider/package/tdnf_spec.rb +2 -2
  1116. data/spec/unit/provider/package/up2date_spec.rb +2 -2
  1117. data/spec/unit/provider/package/yum_spec.rb +16 -16
  1118. data/spec/unit/provider/service/base_spec.rb +1 -1
  1119. data/spec/unit/provider/service/bsd_spec.rb +2 -2
  1120. data/spec/unit/provider/service/debian_spec.rb +7 -7
  1121. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  1122. data/spec/unit/provider/service/gentoo_spec.rb +2 -2
  1123. data/spec/unit/provider/service/init_spec.rb +8 -8
  1124. data/spec/unit/provider/service/openbsd_spec.rb +2 -2
  1125. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  1126. data/spec/unit/provider/service/rcng_spec.rb +2 -2
  1127. data/spec/unit/provider/service/redhat_spec.rb +7 -7
  1128. data/spec/unit/provider/service/smf_spec.rb +8 -8
  1129. data/spec/unit/provider/service/systemd_spec.rb +57 -57
  1130. data/spec/unit/provider/service/upstart_spec.rb +3 -3
  1131. data/spec/unit/provider/user/directoryservice_spec.rb +2 -2
  1132. data/spec/unit/provider/user/openbsd_spec.rb +2 -2
  1133. data/spec/unit/provider/user/useradd_spec.rb +14 -14
  1134. data/spec/unit/provider_spec.rb +51 -51
  1135. data/spec/unit/reports/store_spec.rb +5 -3
  1136. data/spec/unit/resource/catalog_spec.rb +13 -4
  1137. data/spec/unit/ssl/certificate_request_spec.rb +6 -2
  1138. data/spec/unit/ssl/ssl_provider_spec.rb +7 -2
  1139. data/spec/unit/ssl/state_machine_spec.rb +69 -6
  1140. data/spec/unit/test/test_helper_spec.rb +4 -4
  1141. data/spec/unit/transaction/report_spec.rb +39 -7
  1142. data/spec/unit/type/package_spec.rb +3 -3
  1143. data/spec/unit/type/resources_spec.rb +2 -2
  1144. data/spec/unit/type_spec.rb +2 -2
  1145. data/spec/unit/util/json_lockfile_spec.rb +1 -1
  1146. data/spec/unit/util/monkey_patches_spec.rb +0 -18
  1147. data/spec/unit/util/run_mode_spec.rb +0 -32
  1148. data/spec/unit/util_spec.rb +68 -62
  1149. data/spec/unit/x509/cert_provider_spec.rb +28 -2
  1150. metadata +13 -43
  1151. data/lib/puppet/external/pson/common.rb +0 -374
  1152. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1153. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1154. data/lib/puppet/external/pson/pure.rb +0 -15
  1155. data/lib/puppet/external/pson/version.rb +0 -8
@@ -1,10 +1,13 @@
1
1
  require 'spec_helper'
2
+ require 'puppet_spec/network'
2
3
  require 'puppet/http'
3
4
  require 'puppet/file_serving'
4
5
  require 'puppet/file_serving/content'
5
6
  require 'puppet/file_serving/metadata'
6
7
 
7
8
  describe Puppet::HTTP::Service do
9
+ include PuppetSpec::Network
10
+
8
11
  let(:ssl_context) { Puppet::SSL::SSLContext.new }
9
12
  let(:client) { Puppet::HTTP::Client.new(ssl_context: ssl_context) }
10
13
  let(:session) { Puppet::HTTP::Session.new(client, []) }
@@ -114,11 +117,7 @@ describe Puppet::HTTP::Service do
114
117
  end
115
118
 
116
119
  it 'returns different mime types for different models' do
117
- mimes = if Puppet.features.msgpack?
118
- %w[application/json application/x-msgpack text/pson]
119
- else
120
- %w[application/json text/pson]
121
- end
120
+ mimes = acceptable_content_types
122
121
 
123
122
  service = TestService.new(client, session, url)
124
123
  [
@@ -133,11 +132,6 @@ describe Puppet::HTTP::Service do
133
132
  # These are special
134
133
  expect(service.mime_types(Puppet::FileServing::Content)).to eq(%w[application/octet-stream])
135
134
 
136
- catalog_mimes = if Puppet.features.msgpack?
137
- %w[application/vnd.puppet.rich+json application/json application/vnd.puppet.rich+msgpack application/x-msgpack text/pson]
138
- else
139
- %w[application/vnd.puppet.rich+json application/json text/pson]
140
- end
141
- expect(service.mime_types(Puppet::Resource::Catalog)).to eq(catalog_mimes)
135
+ expect(service.mime_types(Puppet::Resource::Catalog)).to eq(acceptable_catalog_content_types)
142
136
  end
143
137
  end
@@ -321,7 +321,7 @@ describe Puppet::Resource::Catalog::Compiler do
321
321
  expect(facts.timestamp).to eq(time)
322
322
  end
323
323
 
324
- it "accepts PSON facts from older agents" do
324
+ it "accepts PSON facts from older agents", :if => Puppet.features.pson? do
325
325
  request = a_legacy_request_that_contains(facts)
326
326
 
327
327
  facts = compiler.extract_facts_from_request(request)
@@ -432,9 +432,9 @@ describe Puppet::Resource::Catalog::Compiler do
432
432
  before do
433
433
  allow(Puppet).to receive(:version).and_return(1)
434
434
  set_facts({
435
- 'fqdn' => "my.server.com",
436
- 'ipaddress' => "my.ip.address",
437
- 'ipaddress6' => nil
435
+ 'networking.fqdn' => "my.server.com",
436
+ 'networking.ip' => "my.ip.address",
437
+ 'networking.ip6' => nil
438
438
  })
439
439
  @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
440
440
  allow(compiler).to receive(:compile)
@@ -467,16 +467,16 @@ describe Puppet::Resource::Catalog::Compiler do
467
467
  before do |example|
468
468
  allow(Puppet).to receive(:version).and_return(1)
469
469
  set_facts({
470
- 'fqdn' => "my.server.com",
471
- 'ipaddress' => nil,
470
+ 'networking.fqdn' => "my.server.com",
471
+ 'networking.ip' => nil,
472
472
  })
473
473
  if example.metadata[:nil_ipv6]
474
474
  set_facts({
475
- 'ipaddress6' => nil
475
+ 'networking.ip6' => nil
476
476
  })
477
477
  else
478
478
  set_facts({
479
- 'ipaddress6' => "my.ipv6.address"
479
+ 'networking.ip6' => "my.ipv6.address"
480
480
  })
481
481
  end
482
482
  @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
@@ -514,9 +514,10 @@ describe Puppet::Resource::Catalog::Compiler do
514
514
 
515
515
  it "should not add 'pe_serverversion' when FOSS" do
516
516
  allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
517
- catalog = compiler.find(request)
518
-
519
- expect(catalog.resource('notify', 'PE Version: 2019.2.0')).to be_nil
517
+ expect {
518
+ catalog = compiler.find(request)
519
+ catalog.resource('notify', 'PE Version: 2019.2.0')
520
+ }.to raise_error(/Evaluation Error: Unknown variable: 'pe_serverversion'./)
520
521
  end
521
522
 
522
523
  it "should add 'pe_serverversion' when PE" do
@@ -11,8 +11,6 @@ describe Puppet::Indirector::Face do
11
11
  instance
12
12
  end
13
13
 
14
- it { is_expected.to be_option :extra }
15
-
16
14
  it "should be able to return a list of indirections" do
17
15
  expect(Puppet::Indirector::Face.indirections).to be_include("catalog")
18
16
  end
@@ -56,14 +54,14 @@ describe Puppet::Indirector::Face do
56
54
  end
57
55
 
58
56
  it "should forward passed options" do
59
- expect(subject.indirection).to receive(method).with(:test, *params(method, {'one'=>'1'}))
60
- subject.send(method, :test, :extra => {'one'=>'1'})
57
+ expect(subject.indirection).to receive(method).with(:test, *params(method, {}))
58
+ subject.send(method, :test, {})
61
59
  end
62
60
  end
63
61
 
64
62
  it "should default key to certname for find action" do
65
- expect(subject.indirection).to receive(:find).with(Puppet[:certname], {'one'=>'1'})
66
- subject.send(:find, :extra => {'one'=>'1'})
63
+ expect(subject.indirection).to receive(:find).with(Puppet[:certname], {})
64
+ subject.send(:find, {})
67
65
  end
68
66
 
69
67
  it "should be able to override its indirection name" do
@@ -65,7 +65,7 @@ describe Puppet::Node::Facts::Facter do
65
65
  end
66
66
 
67
67
  it "should return the Facter facts as the values in the Facts instance" do
68
- expect(Facter).to receive(:to_hash).and_return("one" => "two")
68
+ expect(Facter).to receive(:resolve).and_return("one" => "two")
69
69
  facts = @facter.find(@request)
70
70
  expect(facts.values["one"]).to eq("two")
71
71
  end
@@ -1,9 +1,14 @@
1
1
  require 'spec_helper'
2
2
  require 'puppet/data_binding'
3
3
  require 'puppet/indirector/hiera'
4
- require 'hiera/backend'
5
4
 
6
- describe Puppet::Indirector::Hiera do
5
+ begin
6
+ require 'hiera/backend'
7
+ rescue LoadError => e
8
+ Puppet.warning(_("Unable to load Hiera 3 backend: %{message}") % {message: e.message})
9
+ end
10
+
11
+ describe Puppet::Indirector::Hiera, :if => Puppet.features.hiera? do
7
12
 
8
13
  module Testing
9
14
  module DataBinding
@@ -55,30 +55,4 @@ describe Puppet::Transaction::Report::Rest do
55
55
 
56
56
  expect(described_class.indirection.save(report)).to eq(["store"])
57
57
  end
58
-
59
- describe "when the server major version is less than 5" do
60
- it "raises if the save fails and we're not using pson" do
61
- Puppet[:preferred_serialization_format] = "json"
62
-
63
- stub_request(:put, uri)
64
- .to_return(status: 500,
65
- headers: { 'Content-Type' => 'text/pson', Puppet::HTTP::HEADER_PUPPET_VERSION => '4.10.1' })
66
-
67
- expect {
68
- described_class.indirection.save(report)
69
- }.to raise_error(Puppet::Error, /To submit reports to a server running puppetserver 4.10.1, set preferred_serialization_format to pson/)
70
- end
71
-
72
- it "raises with HTTP 500 if the save fails and we're already using pson" do
73
- Puppet[:preferred_serialization_format] = "pson"
74
-
75
- stub_request(:put, uri)
76
- .to_return(status: 500,
77
- headers: { 'Content-Type' => 'text/pson', Puppet::HTTP::HEADER_PUPPET_VERSION => '4.10.1' })
78
-
79
- expect {
80
- described_class.indirection.save(report)
81
- }.to raise_error(Net::HTTPError, /Error 500 on SERVER/)
82
- end
83
- end
84
58
  end
@@ -123,7 +123,7 @@ describe Puppet::Indirector::REST do
123
123
  }.to raise_error(Net::HTTPError, 'Error 500 on SERVER: json error')
124
124
  end
125
125
 
126
- it 'parses the response body as pson and returns the "message"' do
126
+ it 'parses the response body as pson and returns the "message"', if: Puppet.features.pson? do
127
127
  stub_request(
128
128
  :get, 'http://puppet.example.com:8140/puppet/v3/failing_test_model'
129
129
  ).to_return(status: [500, 'Internal Server Error'],
@@ -773,12 +773,14 @@ describe Puppet::Module do
773
773
  end
774
774
 
775
775
  it "should not have metadata if it has a metadata file and its data is empty" do
776
+ Puppet[:strict] = :warning
776
777
  allow(File).to receive(:read).with(mymod_metadata, {:encoding => 'utf-8'}).and_return("")
777
778
 
778
779
  expect(mymod).not_to be_has_metadata
779
780
  end
780
781
 
781
782
  it "should not have metadata if has a metadata file and its data is invalid" do
783
+ Puppet[:strict] = :warning
782
784
  allow(File).to receive(:read).with(mymod_metadata, {:encoding => 'utf-8'}).and_return("This is some invalid json.\n")
783
785
  expect(mymod).not_to be_has_metadata
784
786
  end
@@ -799,12 +801,6 @@ describe Puppet::Module do
799
801
  Puppet::Module.new("yay", "/path", double("env"))
800
802
  end
801
803
 
802
- it "should tolerate failure to parse" do
803
- allow(File).to receive(:read).with(mymod_metadata, {:encoding => 'utf-8'}).and_return(my_fixture('trailing-comma.json'))
804
-
805
- expect(mymod.has_metadata?).to be_falsey
806
- end
807
-
808
804
  describe 'when --strict is warning' do
809
805
  before :each do
810
806
  Puppet[:strict] = :warning
@@ -7,7 +7,7 @@ describe Puppet::ModuleTool::Tar do
7
7
  { :name => 'Windows', :win => true }
8
8
  ].each do |os|
9
9
  it "always prefers minitar if it and zlib are present, even with tar available" do
10
- allow(Facter).to receive(:value).with('osfamily').and_return(os[:name])
10
+ allow(Facter).to receive(:value).with('os.family').and_return(os[:name])
11
11
  allow(Puppet::Util).to receive(:which).with('tar').and_return('/usr/bin/tar')
12
12
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(os[:win])
13
13
  allow(Puppet).to receive(:features).and_return(double(:minitar? => true, :zlib? => true))
@@ -17,7 +17,7 @@ describe Puppet::ModuleTool::Tar do
17
17
  end
18
18
 
19
19
  it "falls back to tar when minitar not present and not on Windows" do
20
- allow(Facter).to receive(:value).with('osfamily').and_return('ObscureLinuxDistro')
20
+ allow(Facter).to receive(:value).with('os.family').and_return('ObscureLinuxDistro')
21
21
  allow(Puppet::Util).to receive(:which).with('tar').and_return('/usr/bin/tar')
22
22
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(false)
23
23
  allow(Puppet).to receive(:features).and_return(double(:minitar? => false))
@@ -26,7 +26,7 @@ describe Puppet::ModuleTool::Tar do
26
26
  end
27
27
 
28
28
  it "fails when there is no possible implementation" do
29
- allow(Facter).to receive(:value).with('osfamily').and_return('Windows')
29
+ allow(Facter).to receive(:value).with('os.family').and_return('Windows')
30
30
  allow(Puppet::Util).to receive(:which).with('tar')
31
31
  allow(Puppet::Util::Platform).to receive(:windows?).and_return(true)
32
32
  allow(Puppet).to receive(:features).and_return(double(:minitar? => false, :zlib? => false))
@@ -247,7 +247,7 @@ describe "Puppet Network Format" do
247
247
  end
248
248
  end
249
249
 
250
- describe "pson" do
250
+ describe "pson", :if => Puppet.features.pson? do
251
251
  let(:pson) { Puppet::Network::FormatHandler.format(:pson) }
252
252
 
253
253
  it "should include a pson format" do
@@ -177,7 +177,8 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
177
177
  expect(response.type).to eq(Puppet::Network::FormatHandler.format(:json))
178
178
  end
179
179
 
180
- it "falls back to the next supported format" do
180
+ it "falls back to the next supported format", if: Puppet.features.pson? do
181
+ Puppet[:allow_pson_serialization] = true
181
182
  data = Puppet::IndirectorTesting.new("my data")
182
183
  indirection.save(data, "my data")
183
184
  request = a_request_that_finds(data, :accept_header => "application/json, text/pson")
@@ -210,6 +211,19 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
210
211
  handler.call(request, response)
211
212
  }.to raise_error(not_found_error)
212
213
  end
214
+
215
+ it "should raise FormatError if tries to fallback" do
216
+ data = Puppet::IndirectorTesting.new("my data")
217
+ indirection.save(data, "my data")
218
+ request = a_request_that_finds(data, :accept_header => "unknown, text/pson")
219
+ allow(Puppet.features).to receive(:pson?).and_return(true)
220
+ allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
221
+
222
+ expect {
223
+ handler.call(request, response)
224
+ }.to raise_error(Puppet::Network::FormatHandler::FormatError,
225
+ %r{Failed to serialize Puppet::IndirectorTesting for 'my data': Could not render to Puppet::Network::Format\[pson\]})
226
+ end
213
227
  end
214
228
 
215
229
  describe "when searching for model instances" do
@@ -224,7 +238,8 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
224
238
  expect(response.body).to eq(Puppet::IndirectorTesting.render_multiple(:json, [data]))
225
239
  end
226
240
 
227
- it "falls back to the next supported format" do
241
+ it "falls back to the next supported format", if: Puppet.features.pson? do
242
+ Puppet[:allow_pson_serialization] = true
228
243
  data = Puppet::IndirectorTesting.new("my data")
229
244
  indirection.save(data, "my data")
230
245
  request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "application/json, text/pson")
@@ -240,14 +255,25 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
240
255
  it "raises 406 not acceptable if no formats are accceptable" do
241
256
  data = Puppet::IndirectorTesting.new("my data")
242
257
  indirection.save(data, "my data")
243
- request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "application/json, text/pson")
244
- allow(data).to receive(:to_json).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[json]: source sequence is illegal/malformed utf-8')
245
- allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
258
+ request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "unknown")
246
259
 
247
260
  expect {
248
261
  handler.call(request, response)
249
262
  }.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAcceptableError,
250
- %r{No supported formats are acceptable \(Accept: application/json, text/pson\)})
263
+ %r{No supported formats are acceptable \(Accept: unknown\)})
264
+ end
265
+
266
+ it "raises FormatError if tries to fallback" do
267
+ data = Puppet::IndirectorTesting.new("my data")
268
+ indirection.save(data, "my data")
269
+ request = a_request_that_searches(Puppet::IndirectorTesting.new("my"), :accept_header => "unknown, text/pson")
270
+ allow(Puppet.features).to receive(:pson?).and_return(true)
271
+ allow(data).to receive(:to_pson).and_raise(Puppet::Network::FormatHandler::FormatError, 'Could not render to Puppet::Network::Format[pson]: source sequence is illegal/malformed utf-8')
272
+
273
+ expect {
274
+ handler.call(request, response)
275
+ }.to raise_error(Puppet::Network::FormatHandler::FormatError,
276
+ %r{Failed to serialize Puppet::IndirectorTesting for 'my': Could not render_multiple to Puppet::Network::Format\[pson\]})
251
277
  end
252
278
 
253
279
  it "should return [] when searching returns an empty array" do
@@ -162,6 +162,10 @@ describe Puppet::Parser::Scope do
162
162
  end
163
163
 
164
164
  describe "when looking up a variable" do
165
+ before :each do
166
+ Puppet[:strict] = :warning
167
+ end
168
+
165
169
  it "should support :lookupvar and :setvar for backward compatibility" do
166
170
  @scope.setvar("var", "yep")
167
171
  expect(@scope.lookupvar("var")).to eq("yep")
@@ -94,6 +94,9 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
94
94
  end
95
95
 
96
96
  context "on strings requiring boxing to Numeric" do
97
+ before :each do
98
+ Puppet[:strict] = :off
99
+ end
97
100
  it "'2' + '2' == 4" do
98
101
  expect(evaluate(literal('2') + literal('2'))).to eq(4)
99
102
  end
@@ -125,6 +128,11 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
125
128
  it "'012.3' + '010' == 20.3 (not error, floats can start with 0)" do
126
129
  expect(evaluate(literal('012.3') + literal('010'))).to eq(20.3)
127
130
  end
131
+
132
+ it "raises an error when coercing string to numerical by default" do
133
+ Puppet[:strict] = :error
134
+ expect { evaluate(literal('2') + literal('2')) }.to raise_error(/Evaluation Error: The string '2' was automatically coerced to the numerical value 2/)
135
+ end
128
136
  end
129
137
 
130
138
  context 'on binary values' do
@@ -439,6 +439,10 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
439
439
  end
440
440
 
441
441
  context "on strings requiring boxing to Numeric" do
442
+ # turn strict mode off so behavior is not stubbed out
443
+ before :each do
444
+ Puppet[:strict] = :off
445
+ end
442
446
  let(:logs) { [] }
443
447
  let(:notices) { logs.select { |log| log.level == :notice }.map { |log| log.message } }
444
448
  let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
@@ -851,6 +855,7 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
851
855
  "[1,2][1, -1.0]" => "An Array[] cannot use Float where Integer is expected",
852
856
  }.each do |source, result|
853
857
  it "should parse and evaluate the expression '#{source}' to #{result}" do
858
+ Puppet[:strict] = :off
854
859
  expect { parser.evaluate_string(scope, source, __FILE__)}.to raise_error(Regexp.new(Regexp.quote(result)))
855
860
  end
856
861
  end
@@ -307,7 +307,7 @@ describe 'loaders' do
307
307
  end
308
308
 
309
309
  it 'all dependent modules are visible' do
310
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'}, { 'name' => 'test-usee2'} ]).to_pson)
310
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'}, { 'name' => 'test-usee2'} ]).to_json)
311
311
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
312
312
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
313
313
  loaders = Puppet::Pops::Loaders.new(env)
@@ -338,7 +338,7 @@ describe 'loaders' do
338
338
  case_number = from_idx * 3 + called_idx + 1
339
339
 
340
340
  it "can call #{desc[:called]} from #{desc[:from]} when dependency is present in metadata.json" do
341
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_pson)
341
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_json)
342
342
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
343
343
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
344
344
  Puppet[:code] = "$case_number = #{case_number}\ninclude ::user"
@@ -360,7 +360,7 @@ describe 'loaders' do
360
360
  end
361
361
 
362
362
  it "can not call #{desc[:called]} from #{desc[:from]} if dependency is missing in existing metadata.json" do
363
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => []).to_pson)
363
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => []).to_json)
364
364
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
365
365
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
366
366
  Puppet[:code] = "$case_number = #{case_number}\ninclude ::user"
@@ -373,7 +373,7 @@ describe 'loaders' do
373
373
  end
374
374
 
375
375
  it "a type can reference an autoloaded type alias from another module when dependency is present in metadata.json" do
376
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_pson)
376
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_json)
377
377
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
378
378
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
379
379
  expect(eval_and_collect_notices(<<-CODE, node)).to eq(['ok'])
@@ -391,7 +391,7 @@ describe 'loaders' do
391
391
  end
392
392
 
393
393
  it "a type can reference a type alias from another module when other module has it declared in init.pp" do
394
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_pson)
394
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_json)
395
395
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
396
396
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
397
397
  expect(eval_and_collect_notices(<<-CODE, node)).to eq(['ok'])
@@ -402,7 +402,7 @@ describe 'loaders' do
402
402
  end
403
403
 
404
404
  it "an autoloaded type can reference an autoloaded type alias from another module when dependency is present in metadata.json" do
405
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_pson)
405
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_json)
406
406
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
407
407
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
408
408
  expect(eval_and_collect_notices(<<-CODE, node)).to eq(['ok'])
@@ -412,7 +412,7 @@ describe 'loaders' do
412
412
  end
413
413
 
414
414
  it "an autoloaded type can reference an autoloaded type alias from another module when other module has it declared in init.pp" do
415
- allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_pson)
415
+ allow(File).to receive(:read).with(user_metadata_path, {:encoding => 'utf-8'}).and_return(user_metadata.merge('dependencies' => [ { 'name' => 'test-usee'} ]).to_json)
416
416
  allow(File).to receive(:read).with(usee_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
417
417
  allow(File).to receive(:read).with(usee2_metadata_path, {:encoding => 'utf-8'}).and_raise(Errno::ENOENT)
418
418
  expect(eval_and_collect_notices(<<-CODE, node)).to eq(['ok'])
@@ -45,6 +45,18 @@ describe 'Puppet::Pops::Lookup::Interpolation' do
45
45
  keys.each { |key| expect(adapter).to receive(:track).with(key) }
46
46
  end
47
47
 
48
+ context 'when the invocation has a default falsey values' do
49
+ let(:lookup_invocation) { Lookup::Invocation.new(scope, {}, {'key' => false, 'key2' => nil}, nil) }
50
+
51
+ it 'converts boolean false to a "false" string in interpolation' do
52
+ expect(interpolator.interpolate('%{key}', lookup_invocation, true)).to eq("false")
53
+ end
54
+
55
+ it 'converts nil to an empty string in interpolation' do
56
+ expect(interpolator.interpolate('%{key2}', lookup_invocation, true)).to eq("")
57
+ end
58
+ end
59
+
48
60
  context 'when interpolating nested data' do
49
61
  let(:nested_hash) { {'a' => {'aa' => "%{alias('aaa')}"}} }
50
62
 
@@ -298,7 +298,7 @@ module Serialization
298
298
 
299
299
  it 'nested Expression' do
300
300
  expr = parse(<<-CODE)
301
- $rootgroup = $osfamily ? {
301
+ $rootgroup = $os['family'] ? {
302
302
  'Solaris' => 'wheel',
303
303
  /(Darwin|FreeBSD)/ => 'wheel',
304
304
  default => 'root',
@@ -435,7 +435,7 @@ module Serialization
435
435
 
436
436
  it 'can write and read an AST expression' do
437
437
  expr = parse(<<-CODE)
438
- $rootgroup = $osfamily ? {
438
+ $rootgroup = $os['family'] ? {
439
439
  'Solaris' => 'wheel',
440
440
  /(Darwin|FreeBSD)/ => 'wheel',
441
441
  default => 'root',
@@ -344,7 +344,7 @@ module Serialization
344
344
 
345
345
  it 'nested Expression' do
346
346
  expr = parse(<<-CODE)
347
- $rootgroup = $osfamily ? {
347
+ $rootgroup = $os['family'] ? {
348
348
  'Solaris' => 'wheel',
349
349
  /(Darwin|FreeBSD)/ => 'wheel',
350
350
  default => 'root',
@@ -493,6 +493,10 @@ module Serialization
493
493
  end
494
494
 
495
495
  context 'with rich_data set to false' do
496
+ before :each do
497
+ # strict mode off so behavior is not stubbed
498
+ Puppet[:strict] = :warning
499
+ end
496
500
  let(:to_converter) { ToDataConverter.new(:message_prefix => 'Test Hash', :rich_data => false) }
497
501
  let(:logs) { [] }
498
502
  let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
@@ -521,6 +525,14 @@ module Serialization
521
525
  expect(warnings).to eql([
522
526
  "Test Hash contains a hash with a SemanticPuppet::Version key. It will be converted to the String '1.0.0'",
523
527
  "Test Hash contains a hash with a SemanticPuppet::Version key. It will be converted to the String '2.0.0'"])
528
+ end
529
+
530
+ it 'A Hash with rich data is not converted and raises error by default' do
531
+ Puppet[:strict] = :error
532
+ expect do
533
+ val = { SemanticPuppet::Version.parse('1.0.0') => 'one', SemanticPuppet::Version.parse('2.0.0') => 'two' }
534
+ write(val)
535
+ end.to raise_error(/Evaluation Error: Test Hash contains a hash with a SemanticPuppet::Version key. It will be converted to the String '1.0.0'/)
524
536
  end
525
537
 
526
538
  context 'and symbol_as_string is set to true' do
@@ -142,10 +142,9 @@ describe "validating 4x" do
142
142
  end
143
143
 
144
144
  context 'with the default settings for --strict' do
145
- it 'produces a warning for duplicate keys in a literal hash' do
145
+ it 'produces an error for duplicate keys in a literal hash' do
146
146
  acceptor = validate(parse('{ a => 1, a => 2 }'))
147
- expect(acceptor.warning_count).to eql(1)
148
- expect(acceptor.error_count).to eql(0)
147
+ expect(acceptor.error_count).to eql(1)
149
148
  expect(acceptor).to have_issue(Puppet::Pops::Issues::DUPLICATE_KEY)
150
149
  end
151
150
 
@@ -14,8 +14,8 @@ describe Puppet::Type.type(:package).provider(:apt) do
14
14
  resource.provider
15
15
  end
16
16
 
17
- it "should be the default provider on :osfamily => Debian" do
18
- expect(Facter).to receive(:value).with(:osfamily).and_return("Debian")
17
+ it "should be the default provider on 'os.family' => Debian" do
18
+ expect(Facter).to receive(:value).with('os.family').and_return("Debian")
19
19
  expect(described_class.default?).to be_truthy
20
20
  end
21
21
 
@@ -6,40 +6,40 @@ describe Puppet::Type.type(:package).provider(:dnf) do
6
6
  context 'default' do
7
7
  (19..21).each do |ver|
8
8
  it "should not be the default provider on fedora#{ver}" do
9
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
10
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:fedora)
11
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("#{ver}")
9
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
10
+ allow(Facter).to receive(:value).with('os.name').and_return(:fedora)
11
+ allow(Facter).to receive(:value).with('os.release.major').and_return("#{ver}")
12
12
  expect(described_class).to_not be_default
13
13
  end
14
14
  end
15
15
 
16
16
  (22..26).each do |ver|
17
17
  it "should be the default provider on fedora#{ver}" do
18
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
19
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:fedora)
20
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("#{ver}")
18
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
19
+ allow(Facter).to receive(:value).with('os.name').and_return(:fedora)
20
+ allow(Facter).to receive(:value).with('os.release.major').and_return("#{ver}")
21
21
  expect(described_class).to be_default
22
22
  end
23
23
  end
24
24
 
25
25
  it "should not be the default provider on rhel7" do
26
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
27
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:redhat)
28
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("7")
26
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
27
+ allow(Facter).to receive(:value).with('os.name').and_return(:redhat)
28
+ allow(Facter).to receive(:value).with('os.release.major').and_return("7")
29
29
  expect(described_class).to_not be_default
30
30
  end
31
31
 
32
32
  it "should be the default provider on some random future fedora" do
33
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
34
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:fedora)
35
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("8675")
33
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
34
+ allow(Facter).to receive(:value).with('os.name').and_return(:fedora)
35
+ allow(Facter).to receive(:value).with('os.release.major').and_return("8675")
36
36
  expect(described_class).to be_default
37
37
  end
38
38
 
39
39
  it "should be the default provider on rhel8" do
40
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
41
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:redhat)
42
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return("8")
40
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
41
+ allow(Facter).to receive(:value).with('os.name').and_return(:redhat)
42
+ allow(Facter).to receive(:value).with('os.release.major').and_return("8")
43
43
  expect(described_class).to be_default
44
44
  end
45
45
  end
@@ -24,18 +24,18 @@ describe Puppet::Type.type(:package).provider(:dnfmodule) do
24
24
  before(:each) { allow(Puppet::Util).to receive(:which).with('/usr/bin/dnf').and_return(dnf_path) }
25
25
 
26
26
  it "should have lower specificity" do
27
- allow(Facter).to receive(:value).with(:osfamily).and_return(:redhat)
28
- allow(Facter).to receive(:value).with(:operatingsystem).and_return(:redhat)
29
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return('8')
27
+ allow(Facter).to receive(:value).with('os.family').and_return(:redhat)
28
+ allow(Facter).to receive(:value).with('os.name').and_return(:redhat)
29
+ allow(Facter).to receive(:value).with('os.release.major').and_return('8')
30
30
  expect(described_class.specificity).to be < 200
31
31
  end
32
32
 
33
33
  describe "should be an opt-in provider" do
34
34
  Array(4..8).each do |ver|
35
35
  it "should not be default for redhat #{ver}" do
36
- allow(Facter).to receive(:value).with(:operatingsystem).and_return('redhat')
37
- allow(Facter).to receive(:value).with(:osfamily).and_return('redhat')
38
- allow(Facter).to receive(:value).with(:operatingsystemmajrelease).and_return(ver.to_s)
36
+ allow(Facter).to receive(:value).with('os.name').and_return('redhat')
37
+ allow(Facter).to receive(:value).with('os.family').and_return('redhat')
38
+ allow(Facter).to receive(:value).with('os.release.major').and_return(ver.to_s)
39
39
  expect(described_class).not_to be_default
40
40
  end
41
41
  end