openvox 7.37.1 → 8.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1086) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -3
  3. data/Gemfile +17 -12
  4. data/README.md +25 -30
  5. data/Rakefile +43 -33
  6. data/bin/puppet +1 -0
  7. data/examples/hiera/README.md +68 -57
  8. data/examples/hiera/data/common.yaml +12 -0
  9. data/examples/hiera/data/dc1.yaml +6 -0
  10. data/examples/hiera/hiera.yaml +15 -0
  11. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  12. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  13. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  14. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  15. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  16. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  17. data/examples/hiera/site.pp +1 -1
  18. data/ext/build_defaults.yaml +1 -1
  19. data/ext/windows/service/daemon.rb +54 -60
  20. data/install.rb +21 -92
  21. data/lib/hiera/puppet_function.rb +8 -6
  22. data/lib/hiera/scope.rb +15 -13
  23. data/lib/hiera_puppet.rb +4 -6
  24. data/lib/puppet/agent/disabler.rb +5 -3
  25. data/lib/puppet/agent/locker.rb +2 -2
  26. data/lib/puppet/agent.rb +6 -4
  27. data/lib/puppet/application/agent.rb +305 -301
  28. data/lib/puppet/application/apply.rb +124 -117
  29. data/lib/puppet/application/catalog.rb +2 -0
  30. data/lib/puppet/application/config.rb +2 -0
  31. data/lib/puppet/application/describe.rb +50 -48
  32. data/lib/puppet/application/device.rb +224 -223
  33. data/lib/puppet/application/doc.rb +57 -58
  34. data/lib/puppet/application/epp.rb +2 -0
  35. data/lib/puppet/application/face_base.rb +18 -17
  36. data/lib/puppet/application/facts.rb +2 -0
  37. data/lib/puppet/application/filebucket.rb +174 -168
  38. data/lib/puppet/application/generate.rb +3 -1
  39. data/lib/puppet/application/help.rb +2 -0
  40. data/lib/puppet/application/indirection_base.rb +2 -0
  41. data/lib/puppet/application/lookup.rb +181 -181
  42. data/lib/puppet/application/module.rb +2 -0
  43. data/lib/puppet/application/node.rb +2 -0
  44. data/lib/puppet/application/parser.rb +2 -0
  45. data/lib/puppet/application/plugin.rb +2 -0
  46. data/lib/puppet/application/report.rb +2 -0
  47. data/lib/puppet/application/resource.rb +106 -96
  48. data/lib/puppet/application/script.rb +76 -74
  49. data/lib/puppet/application/ssl.rb +100 -92
  50. data/lib/puppet/application.rb +32 -32
  51. data/lib/puppet/application_support.rb +3 -2
  52. data/lib/puppet/coercion.rb +5 -3
  53. data/lib/puppet/compilable_resource_type.rb +4 -2
  54. data/lib/puppet/concurrent/lock.rb +2 -3
  55. data/lib/puppet/concurrent/synchronized.rb +2 -2
  56. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  57. data/lib/puppet/concurrent.rb +2 -0
  58. data/lib/puppet/configurer/downloader.rb +11 -5
  59. data/lib/puppet/configurer/fact_handler.rb +17 -16
  60. data/lib/puppet/configurer/plugin_handler.rb +2 -0
  61. data/lib/puppet/configurer.rb +40 -36
  62. data/lib/puppet/confine/any.rb +3 -1
  63. data/lib/puppet/confine/boolean.rb +3 -1
  64. data/lib/puppet/confine/exists.rb +3 -1
  65. data/lib/puppet/confine/false.rb +3 -1
  66. data/lib/puppet/confine/feature.rb +3 -2
  67. data/lib/puppet/confine/true.rb +3 -1
  68. data/lib/puppet/confine/variable.rb +4 -2
  69. data/lib/puppet/confine.rb +5 -2
  70. data/lib/puppet/confine_collection.rb +6 -3
  71. data/lib/puppet/confiner.rb +5 -3
  72. data/lib/puppet/context/trusted_information.rb +12 -10
  73. data/lib/puppet/context.rb +2 -0
  74. data/lib/puppet/daemon.rb +26 -10
  75. data/lib/puppet/data_binding.rb +3 -1
  76. data/lib/puppet/datatypes/error.rb +3 -1
  77. data/lib/puppet/datatypes/impl/error.rb +2 -0
  78. data/lib/puppet/datatypes.rb +12 -7
  79. data/lib/puppet/defaults.rb +164 -125
  80. data/lib/puppet/environments.rb +13 -15
  81. data/lib/puppet/error.rb +19 -15
  82. data/lib/puppet/etc.rb +10 -5
  83. data/lib/puppet/external/dot.rb +65 -75
  84. data/lib/puppet/face/catalog/select.rb +4 -2
  85. data/lib/puppet/face/catalog.rb +7 -5
  86. data/lib/puppet/face/config.rb +30 -31
  87. data/lib/puppet/face/epp.rb +25 -26
  88. data/lib/puppet/face/facts.rb +8 -6
  89. data/lib/puppet/face/generate.rb +5 -2
  90. data/lib/puppet/face/help/action.erb +0 -1
  91. data/lib/puppet/face/help/face.erb +0 -1
  92. data/lib/puppet/face/help/global.erb +1 -1
  93. data/lib/puppet/face/help.rb +80 -62
  94. data/lib/puppet/face/module/changes.rb +4 -3
  95. data/lib/puppet/face/module/install.rb +7 -4
  96. data/lib/puppet/face/module/list.rb +52 -53
  97. data/lib/puppet/face/module/uninstall.rb +2 -0
  98. data/lib/puppet/face/module/upgrade.rb +5 -3
  99. data/lib/puppet/face/module.rb +3 -1
  100. data/lib/puppet/face/node/clean.rb +4 -2
  101. data/lib/puppet/face/node.rb +5 -3
  102. data/lib/puppet/face/parser.rb +18 -19
  103. data/lib/puppet/face/plugin.rb +10 -8
  104. data/lib/puppet/face/report.rb +10 -10
  105. data/lib/puppet/face/resource.rb +2 -0
  106. data/lib/puppet/face.rb +2 -0
  107. data/lib/puppet/facter_impl.rb +1 -1
  108. data/lib/puppet/feature/base.rb +13 -13
  109. data/lib/puppet/feature/bolt.rb +2 -0
  110. data/lib/puppet/feature/cfpropertylist.rb +2 -0
  111. data/lib/puppet/feature/eventlog.rb +2 -0
  112. data/lib/puppet/feature/hiera_eyaml.rb +2 -0
  113. data/lib/puppet/feature/hocon.rb +2 -0
  114. data/lib/puppet/feature/libuser.rb +5 -3
  115. data/lib/puppet/feature/msgpack.rb +2 -0
  116. data/lib/puppet/feature/pe_license.rb +4 -2
  117. data/lib/puppet/feature/pson.rb +6 -0
  118. data/lib/puppet/feature/selinux.rb +2 -0
  119. data/lib/puppet/feature/ssh.rb +3 -1
  120. data/lib/puppet/feature/telnet.rb +3 -7
  121. data/lib/puppet/feature/zlib.rb +3 -1
  122. data/lib/puppet/ffi/posix/constants.rb +3 -1
  123. data/lib/puppet/ffi/posix/functions.rb +2 -1
  124. data/lib/puppet/ffi/posix.rb +2 -0
  125. data/lib/puppet/ffi/windows/api_types.rb +3 -1
  126. data/lib/puppet/ffi/windows/constants.rb +80 -78
  127. data/lib/puppet/ffi/windows/functions.rb +76 -75
  128. data/lib/puppet/ffi/windows/structs.rb +6 -5
  129. data/lib/puppet/ffi/windows.rb +2 -0
  130. data/lib/puppet/file_bucket/dipper.rb +20 -11
  131. data/lib/puppet/file_bucket/file.rb +8 -6
  132. data/lib/puppet/file_bucket.rb +2 -0
  133. data/lib/puppet/file_serving/base.rb +17 -9
  134. data/lib/puppet/file_serving/configuration/parser.rb +13 -10
  135. data/lib/puppet/file_serving/configuration.rb +10 -7
  136. data/lib/puppet/file_serving/content.rb +2 -0
  137. data/lib/puppet/file_serving/fileset.rb +23 -19
  138. data/lib/puppet/file_serving/http_metadata.rb +3 -4
  139. data/lib/puppet/file_serving/metadata.rb +26 -23
  140. data/lib/puppet/file_serving/mount/file.rb +15 -11
  141. data/lib/puppet/file_serving/mount/locales.rb +5 -5
  142. data/lib/puppet/file_serving/mount/modules.rb +3 -0
  143. data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
  144. data/lib/puppet/file_serving/mount/plugins.rb +5 -5
  145. data/lib/puppet/file_serving/mount/scripts.rb +3 -0
  146. data/lib/puppet/file_serving/mount/tasks.rb +3 -0
  147. data/lib/puppet/file_serving/mount.rb +4 -1
  148. data/lib/puppet/file_serving/terminus_helper.rb +2 -0
  149. data/lib/puppet/file_serving/terminus_selector.rb +3 -1
  150. data/lib/puppet/file_serving.rb +2 -0
  151. data/lib/puppet/file_system/file_impl.rb +9 -8
  152. data/lib/puppet/file_system/jruby.rb +2 -0
  153. data/lib/puppet/file_system/memory_file.rb +3 -0
  154. data/lib/puppet/file_system/memory_impl.rb +5 -1
  155. data/lib/puppet/file_system/path_pattern.rb +4 -2
  156. data/lib/puppet/file_system/posix.rb +7 -2
  157. data/lib/puppet/file_system/uniquefile.rb +33 -31
  158. data/lib/puppet/file_system/windows.rb +33 -22
  159. data/lib/puppet/file_system.rb +5 -3
  160. data/lib/puppet/forge/cache.rb +4 -3
  161. data/lib/puppet/forge/errors.rb +3 -4
  162. data/lib/puppet/forge/repository.rb +6 -3
  163. data/lib/puppet/forge.rb +20 -22
  164. data/lib/puppet/functions/abs.rb +7 -4
  165. data/lib/puppet/functions/alert.rb +2 -0
  166. data/lib/puppet/functions/all.rb +3 -1
  167. data/lib/puppet/functions/annotate.rb +2 -0
  168. data/lib/puppet/functions/any.rb +3 -1
  169. data/lib/puppet/functions/assert_type.rb +5 -2
  170. data/lib/puppet/functions/binary_file.rb +4 -1
  171. data/lib/puppet/functions/break.rb +4 -2
  172. data/lib/puppet/functions/call.rb +2 -1
  173. data/lib/puppet/functions/camelcase.rb +4 -3
  174. data/lib/puppet/functions/capitalize.rb +4 -3
  175. data/lib/puppet/functions/ceiling.rb +3 -2
  176. data/lib/puppet/functions/chomp.rb +3 -2
  177. data/lib/puppet/functions/chop.rb +3 -2
  178. data/lib/puppet/functions/compare.rb +5 -3
  179. data/lib/puppet/functions/contain.rb +7 -4
  180. data/lib/puppet/functions/convert_to.rb +2 -0
  181. data/lib/puppet/functions/crit.rb +2 -0
  182. data/lib/puppet/functions/debug.rb +2 -0
  183. data/lib/puppet/functions/defined.rb +10 -6
  184. data/lib/puppet/functions/dig.rb +13 -10
  185. data/lib/puppet/functions/downcase.rb +4 -2
  186. data/lib/puppet/functions/each.rb +2 -0
  187. data/lib/puppet/functions/emerg.rb +2 -0
  188. data/lib/puppet/functions/empty.rb +2 -0
  189. data/lib/puppet/functions/epp.rb +2 -1
  190. data/lib/puppet/functions/err.rb +2 -0
  191. data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
  192. data/lib/puppet/functions/filter.rb +8 -7
  193. data/lib/puppet/functions/find_file.rb +6 -0
  194. data/lib/puppet/functions/find_template.rb +2 -0
  195. data/lib/puppet/functions/flatten.rb +2 -0
  196. data/lib/puppet/functions/floor.rb +3 -2
  197. data/lib/puppet/functions/get.rb +4 -2
  198. data/lib/puppet/functions/getvar.rb +7 -5
  199. data/lib/puppet/functions/group_by.rb +2 -2
  200. data/lib/puppet/functions/hiera.rb +2 -0
  201. data/lib/puppet/functions/hiera_array.rb +2 -0
  202. data/lib/puppet/functions/hiera_hash.rb +2 -0
  203. data/lib/puppet/functions/hiera_include.rb +3 -0
  204. data/lib/puppet/functions/hocon_data.rb +5 -5
  205. data/lib/puppet/functions/import.rb +3 -1
  206. data/lib/puppet/functions/include.rb +5 -2
  207. data/lib/puppet/functions/index.rb +5 -4
  208. data/lib/puppet/functions/info.rb +2 -0
  209. data/lib/puppet/functions/inline_epp.rb +2 -1
  210. data/lib/puppet/functions/join.rb +4 -2
  211. data/lib/puppet/functions/json_data.rb +6 -6
  212. data/lib/puppet/functions/keys.rb +2 -0
  213. data/lib/puppet/functions/length.rb +2 -1
  214. data/lib/puppet/functions/lest.rb +2 -0
  215. data/lib/puppet/functions/lookup.rb +12 -12
  216. data/lib/puppet/functions/lstrip.rb +3 -2
  217. data/lib/puppet/functions/map.rb +4 -2
  218. data/lib/puppet/functions/match.rb +8 -5
  219. data/lib/puppet/functions/max.rb +75 -8
  220. data/lib/puppet/functions/min.rb +75 -8
  221. data/lib/puppet/functions/module_directory.rb +2 -0
  222. data/lib/puppet/functions/new.rb +5 -3
  223. data/lib/puppet/functions/next.rb +3 -1
  224. data/lib/puppet/functions/notice.rb +2 -0
  225. data/lib/puppet/functions/reduce.rb +8 -11
  226. data/lib/puppet/functions/regsubst.rb +15 -16
  227. data/lib/puppet/functions/require.rb +7 -3
  228. data/lib/puppet/functions/return.rb +2 -0
  229. data/lib/puppet/functions/reverse_each.rb +2 -0
  230. data/lib/puppet/functions/round.rb +2 -0
  231. data/lib/puppet/functions/rstrip.rb +3 -2
  232. data/lib/puppet/functions/scanf.rb +2 -0
  233. data/lib/puppet/functions/size.rb +2 -2
  234. data/lib/puppet/functions/slice.rb +4 -1
  235. data/lib/puppet/functions/sort.rb +2 -0
  236. data/lib/puppet/functions/split.rb +2 -0
  237. data/lib/puppet/functions/step.rb +2 -0
  238. data/lib/puppet/functions/strftime.rb +5 -3
  239. data/lib/puppet/functions/strip.rb +3 -2
  240. data/lib/puppet/functions/then.rb +3 -0
  241. data/lib/puppet/functions/tree_each.rb +4 -3
  242. data/lib/puppet/functions/type.rb +2 -0
  243. data/lib/puppet/functions/unique.rb +12 -9
  244. data/lib/puppet/functions/unwrap.rb +2 -0
  245. data/lib/puppet/functions/upcase.rb +4 -2
  246. data/lib/puppet/functions/values.rb +2 -0
  247. data/lib/puppet/functions/versioncmp.rb +2 -1
  248. data/lib/puppet/functions/warning.rb +2 -0
  249. data/lib/puppet/functions/with.rb +2 -0
  250. data/lib/puppet/functions/yaml_data.rb +13 -13
  251. data/lib/puppet/functions.rb +57 -61
  252. data/lib/puppet/generate/models/type/property.rb +4 -1
  253. data/lib/puppet/generate/models/type/type.rb +5 -2
  254. data/lib/puppet/generate/type.rb +11 -5
  255. data/lib/puppet/gettext/config.rb +16 -9
  256. data/lib/puppet/gettext/module_translations.rb +2 -1
  257. data/lib/puppet/gettext/stubs.rb +2 -0
  258. data/lib/puppet/graph/key.rb +2 -0
  259. data/lib/puppet/graph/prioritizer.rb +2 -0
  260. data/lib/puppet/graph/rb_tree_map.rb +43 -24
  261. data/lib/puppet/graph/relationship_graph.rb +31 -29
  262. data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
  263. data/lib/puppet/graph/simple_graph.rb +63 -57
  264. data/lib/puppet/graph.rb +2 -0
  265. data/lib/puppet/http/client.rb +10 -6
  266. data/lib/puppet/http/dns.rb +12 -12
  267. data/lib/puppet/http/errors.rb +4 -2
  268. data/lib/puppet/http/external_client.rb +4 -3
  269. data/lib/puppet/http/factory.rb +3 -1
  270. data/lib/puppet/http/pool.rb +3 -1
  271. data/lib/puppet/http/pool_entry.rb +2 -0
  272. data/lib/puppet/http/proxy.rb +21 -19
  273. data/lib/puppet/http/redirector.rb +5 -3
  274. data/lib/puppet/http/resolver/server_list.rb +5 -4
  275. data/lib/puppet/http/resolver/settings.rb +2 -1
  276. data/lib/puppet/http/resolver/srv.rb +2 -1
  277. data/lib/puppet/http/resolver.rb +4 -2
  278. data/lib/puppet/http/response.rb +2 -0
  279. data/lib/puppet/http/response_converter.rb +4 -3
  280. data/lib/puppet/http/response_net_http.rb +2 -1
  281. data/lib/puppet/http/retry_after_handler.rb +4 -3
  282. data/lib/puppet/http/service/ca.rb +37 -5
  283. data/lib/puppet/http/service/compiler.rb +13 -10
  284. data/lib/puppet/http/service/file_server.rb +5 -3
  285. data/lib/puppet/http/service/puppetserver.rb +3 -2
  286. data/lib/puppet/http/service/report.rb +5 -7
  287. data/lib/puppet/http/service.rb +17 -22
  288. data/lib/puppet/http/session.rb +6 -4
  289. data/lib/puppet/http/site.rb +3 -1
  290. data/lib/puppet/http.rb +4 -2
  291. data/lib/puppet/indirector/catalog/compiler.rb +81 -80
  292. data/lib/puppet/indirector/catalog/json.rb +2 -0
  293. data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
  294. data/lib/puppet/indirector/catalog/rest.rb +2 -0
  295. data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
  296. data/lib/puppet/indirector/catalog/yaml.rb +2 -0
  297. data/lib/puppet/indirector/code.rb +2 -0
  298. data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
  299. data/lib/puppet/indirector/data_binding/none.rb +2 -0
  300. data/lib/puppet/indirector/direct_file_server.rb +4 -1
  301. data/lib/puppet/indirector/envelope.rb +2 -0
  302. data/lib/puppet/indirector/errors.rb +2 -0
  303. data/lib/puppet/indirector/exec.rb +5 -3
  304. data/lib/puppet/indirector/face.rb +17 -28
  305. data/lib/puppet/indirector/fact_search.rb +4 -2
  306. data/lib/puppet/indirector/facts/facter.rb +10 -7
  307. data/lib/puppet/indirector/facts/json.rb +4 -2
  308. data/lib/puppet/indirector/facts/memory.rb +2 -0
  309. data/lib/puppet/indirector/facts/network_device.rb +2 -0
  310. data/lib/puppet/indirector/facts/rest.rb +2 -0
  311. data/lib/puppet/indirector/facts/store_configs.rb +3 -2
  312. data/lib/puppet/indirector/facts/yaml.rb +2 -0
  313. data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
  314. data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
  315. data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
  316. data/lib/puppet/indirector/file_content/file.rb +2 -0
  317. data/lib/puppet/indirector/file_content/file_server.rb +2 -0
  318. data/lib/puppet/indirector/file_content/rest.rb +3 -1
  319. data/lib/puppet/indirector/file_content/selector.rb +2 -0
  320. data/lib/puppet/indirector/file_content.rb +2 -0
  321. data/lib/puppet/indirector/file_metadata/file.rb +2 -0
  322. data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
  323. data/lib/puppet/indirector/file_metadata/http.rb +4 -2
  324. data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
  325. data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
  326. data/lib/puppet/indirector/file_metadata.rb +2 -0
  327. data/lib/puppet/indirector/file_server.rb +3 -0
  328. data/lib/puppet/indirector/generic_http.rb +2 -0
  329. data/lib/puppet/indirector/hiera.rb +8 -7
  330. data/lib/puppet/indirector/indirection.rb +50 -41
  331. data/lib/puppet/indirector/json.rb +9 -6
  332. data/lib/puppet/indirector/memory.rb +5 -2
  333. data/lib/puppet/indirector/msgpack.rb +11 -7
  334. data/lib/puppet/indirector/node/exec.rb +6 -6
  335. data/lib/puppet/indirector/node/json.rb +2 -1
  336. data/lib/puppet/indirector/node/memory.rb +2 -0
  337. data/lib/puppet/indirector/node/msgpack.rb +2 -0
  338. data/lib/puppet/indirector/node/plain.rb +2 -0
  339. data/lib/puppet/indirector/node/rest.rb +2 -0
  340. data/lib/puppet/indirector/node/store_configs.rb +3 -3
  341. data/lib/puppet/indirector/node/yaml.rb +2 -0
  342. data/lib/puppet/indirector/none.rb +3 -2
  343. data/lib/puppet/indirector/plain.rb +2 -0
  344. data/lib/puppet/indirector/report/json.rb +4 -2
  345. data/lib/puppet/indirector/report/msgpack.rb +3 -1
  346. data/lib/puppet/indirector/report/processor.rb +3 -0
  347. data/lib/puppet/indirector/report/rest.rb +2 -13
  348. data/lib/puppet/indirector/report/yaml.rb +4 -2
  349. data/lib/puppet/indirector/request.rb +15 -12
  350. data/lib/puppet/indirector/resource/ral.rb +10 -10
  351. data/lib/puppet/indirector/resource/store_configs.rb +3 -1
  352. data/lib/puppet/indirector/resource/validator.rb +2 -0
  353. data/lib/puppet/indirector/rest.rb +3 -1
  354. data/lib/puppet/indirector/store_configs.rb +2 -0
  355. data/lib/puppet/indirector/terminus.rb +8 -4
  356. data/lib/puppet/indirector/yaml.rb +7 -5
  357. data/lib/puppet/indirector.rb +3 -0
  358. data/lib/puppet/info_service/class_information_service.rb +16 -17
  359. data/lib/puppet/info_service/plan_information_service.rb +5 -3
  360. data/lib/puppet/info_service/task_information_service.rb +10 -9
  361. data/lib/puppet/info_service.rb +1 -0
  362. data/lib/puppet/interface/action.rb +46 -42
  363. data/lib/puppet/interface/action_builder.rb +12 -6
  364. data/lib/puppet/interface/action_manager.rb +9 -6
  365. data/lib/puppet/interface/documentation.rb +40 -34
  366. data/lib/puppet/interface/face_collection.rb +18 -14
  367. data/lib/puppet/interface/option.rb +23 -11
  368. data/lib/puppet/interface/option_builder.rb +14 -9
  369. data/lib/puppet/interface/option_manager.rb +12 -10
  370. data/lib/puppet/interface.rb +9 -8
  371. data/lib/puppet/loaders.rb +2 -1
  372. data/lib/puppet/metatype/manager.rb +16 -15
  373. data/lib/puppet/module/plan.rb +22 -15
  374. data/lib/puppet/module/task.rb +33 -28
  375. data/lib/puppet/module.rb +59 -47
  376. data/lib/puppet/module_tool/applications/application.rb +17 -12
  377. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  378. data/lib/puppet/module_tool/applications/installer.rb +78 -87
  379. data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
  380. data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
  381. data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
  382. data/lib/puppet/module_tool/applications.rb +2 -0
  383. data/lib/puppet/module_tool/checksums.rb +4 -3
  384. data/lib/puppet/module_tool/dependency.rb +5 -4
  385. data/lib/puppet/module_tool/errors/base.rb +3 -1
  386. data/lib/puppet/module_tool/errors/installer.rb +6 -5
  387. data/lib/puppet/module_tool/errors/shared.rb +16 -15
  388. data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
  389. data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
  390. data/lib/puppet/module_tool/errors.rb +2 -0
  391. data/lib/puppet/module_tool/install_directory.rb +8 -5
  392. data/lib/puppet/module_tool/installed_modules.rb +5 -2
  393. data/lib/puppet/module_tool/local_tarball.rb +10 -8
  394. data/lib/puppet/module_tool/metadata.rb +36 -30
  395. data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
  396. data/lib/puppet/module_tool/tar/gnu.rb +12 -8
  397. data/lib/puppet/module_tool/tar/mini.rb +6 -4
  398. data/lib/puppet/module_tool/tar.rb +4 -2
  399. data/lib/puppet/module_tool.rb +11 -11
  400. data/lib/puppet/network/authconfig.rb +2 -0
  401. data/lib/puppet/network/authorization.rb +2 -0
  402. data/lib/puppet/network/client_request.rb +7 -4
  403. data/lib/puppet/network/format.rb +9 -3
  404. data/lib/puppet/network/format_handler.rb +9 -7
  405. data/lib/puppet/network/format_support.rb +8 -7
  406. data/lib/puppet/network/formats.rb +34 -25
  407. data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
  408. data/lib/puppet/network/http/api/indirection_type.rb +2 -1
  409. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
  410. data/lib/puppet/network/http/api/master/v3.rb +2 -1
  411. data/lib/puppet/network/http/api/master.rb +2 -0
  412. data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
  413. data/lib/puppet/network/http/api/server/v3.rb +14 -13
  414. data/lib/puppet/network/http/api/server.rb +2 -0
  415. data/lib/puppet/network/http/api.rb +20 -18
  416. data/lib/puppet/network/http/connection.rb +6 -4
  417. data/lib/puppet/network/http/error.rb +5 -3
  418. data/lib/puppet/network/http/handler.rb +12 -14
  419. data/lib/puppet/network/http/issues.rb +2 -0
  420. data/lib/puppet/network/http/memory_response.rb +3 -1
  421. data/lib/puppet/network/http/request.rb +22 -10
  422. data/lib/puppet/network/http/response.rb +2 -0
  423. data/lib/puppet/network/http/route.rb +14 -11
  424. data/lib/puppet/network/http.rb +2 -0
  425. data/lib/puppet/network/http_pool.rb +4 -3
  426. data/lib/puppet/network/uri.rb +2 -0
  427. data/lib/puppet/network.rb +2 -0
  428. data/lib/puppet/node/environment.rb +36 -33
  429. data/lib/puppet/node/facts.rb +10 -10
  430. data/lib/puppet/node/server_facts.rb +6 -6
  431. data/lib/puppet/node.rb +12 -12
  432. data/lib/puppet/pal/catalog_compiler.rb +2 -3
  433. data/lib/puppet/pal/compiler.rb +11 -6
  434. data/lib/puppet/pal/function_signature.rb +5 -3
  435. data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
  436. data/lib/puppet/pal/pal_api.rb +2 -0
  437. data/lib/puppet/pal/pal_impl.rb +103 -108
  438. data/lib/puppet/pal/plan_signature.rb +4 -2
  439. data/lib/puppet/pal/script_compiler.rb +4 -2
  440. data/lib/puppet/pal/task_signature.rb +15 -9
  441. data/lib/puppet/parameter/boolean.rb +2 -0
  442. data/lib/puppet/parameter/package_options.rb +3 -1
  443. data/lib/puppet/parameter/path.rb +7 -3
  444. data/lib/puppet/parameter/value.rb +5 -3
  445. data/lib/puppet/parameter/value_collection.rb +17 -16
  446. data/lib/puppet/parameter.rb +17 -16
  447. data/lib/puppet/parser/abstract_compiler.rb +2 -3
  448. data/lib/puppet/parser/ast/block_expression.rb +4 -2
  449. data/lib/puppet/parser/ast/branch.rb +2 -0
  450. data/lib/puppet/parser/ast/hostclass.rb +4 -2
  451. data/lib/puppet/parser/ast/leaf.rb +3 -0
  452. data/lib/puppet/parser/ast/node.rb +2 -0
  453. data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
  454. data/lib/puppet/parser/ast/resource.rb +8 -8
  455. data/lib/puppet/parser/ast/resource_instance.rb +3 -0
  456. data/lib/puppet/parser/ast/resourceparam.rb +9 -7
  457. data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
  458. data/lib/puppet/parser/ast.rb +16 -15
  459. data/lib/puppet/parser/catalog_compiler.rb +3 -3
  460. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
  461. data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
  462. data/lib/puppet/parser/compiler.rb +45 -44
  463. data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
  464. data/lib/puppet/parser/files.rb +8 -6
  465. data/lib/puppet/parser/functions/assert_type.rb +43 -41
  466. data/lib/puppet/parser/functions/binary_file.rb +16 -14
  467. data/lib/puppet/parser/functions/break.rb +29 -27
  468. data/lib/puppet/parser/functions/contain.rb +3 -1
  469. data/lib/puppet/parser/functions/create_resources.rb +18 -14
  470. data/lib/puppet/parser/functions/defined.rb +104 -102
  471. data/lib/puppet/parser/functions/dig.rb +26 -24
  472. data/lib/puppet/parser/functions/digest.rb +3 -1
  473. data/lib/puppet/parser/functions/each.rb +101 -99
  474. data/lib/puppet/parser/functions/epp.rb +4 -3
  475. data/lib/puppet/parser/functions/fail.rb +11 -9
  476. data/lib/puppet/parser/functions/file.rb +16 -14
  477. data/lib/puppet/parser/functions/filter.rb +57 -55
  478. data/lib/puppet/parser/functions/find_file.rb +19 -18
  479. data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
  480. data/lib/puppet/parser/functions/generate.rb +23 -21
  481. data/lib/puppet/parser/functions/hiera.rb +95 -93
  482. data/lib/puppet/parser/functions/hiera_array.rb +83 -82
  483. data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
  484. data/lib/puppet/parser/functions/hiera_include.rb +93 -92
  485. data/lib/puppet/parser/functions/include.rb +5 -3
  486. data/lib/puppet/parser/functions/inline_epp.rb +4 -3
  487. data/lib/puppet/parser/functions/inline_template.rb +15 -13
  488. data/lib/puppet/parser/functions/lest.rb +36 -34
  489. data/lib/puppet/parser/functions/lookup.rb +132 -130
  490. data/lib/puppet/parser/functions/map.rb +54 -52
  491. data/lib/puppet/parser/functions/match.rb +31 -29
  492. data/lib/puppet/parser/functions/md5.rb +4 -2
  493. data/lib/puppet/parser/functions/new.rb +916 -915
  494. data/lib/puppet/parser/functions/next.rb +36 -34
  495. data/lib/puppet/parser/functions/realize.rb +13 -11
  496. data/lib/puppet/parser/functions/reduce.rb +134 -132
  497. data/lib/puppet/parser/functions/regsubst.rb +8 -5
  498. data/lib/puppet/parser/functions/require.rb +8 -5
  499. data/lib/puppet/parser/functions/return.rb +90 -88
  500. data/lib/puppet/parser/functions/reverse_each.rb +59 -57
  501. data/lib/puppet/parser/functions/scanf.rb +25 -23
  502. data/lib/puppet/parser/functions/sha1.rb +4 -2
  503. data/lib/puppet/parser/functions/sha256.rb +3 -1
  504. data/lib/puppet/parser/functions/shellquote.rb +2 -0
  505. data/lib/puppet/parser/functions/slice.rb +27 -25
  506. data/lib/puppet/parser/functions/split.rb +7 -6
  507. data/lib/puppet/parser/functions/sprintf.rb +8 -7
  508. data/lib/puppet/parser/functions/step.rb +62 -60
  509. data/lib/puppet/parser/functions/strftime.rb +175 -173
  510. data/lib/puppet/parser/functions/tag.rb +10 -7
  511. data/lib/puppet/parser/functions/tagged.rb +16 -13
  512. data/lib/puppet/parser/functions/template.rb +27 -24
  513. data/lib/puppet/parser/functions/then.rb +54 -52
  514. data/lib/puppet/parser/functions/type.rb +36 -34
  515. data/lib/puppet/parser/functions/versioncmp.rb +3 -2
  516. data/lib/puppet/parser/functions/with.rb +22 -20
  517. data/lib/puppet/parser/functions.rb +12 -9
  518. data/lib/puppet/parser/parser_factory.rb +2 -0
  519. data/lib/puppet/parser/relationship.rb +9 -3
  520. data/lib/puppet/parser/resource/param.rb +4 -2
  521. data/lib/puppet/parser/resource.rb +42 -40
  522. data/lib/puppet/parser/scope.rb +84 -70
  523. data/lib/puppet/parser/script_compiler.rb +12 -12
  524. data/lib/puppet/parser/templatewrapper.rb +3 -2
  525. data/lib/puppet/parser/type_loader.rb +31 -30
  526. data/lib/puppet/parser.rb +3 -1
  527. data/lib/puppet/plugins/configuration.rb +2 -0
  528. data/lib/puppet/plugins/syntax_checkers.rb +2 -1
  529. data/lib/puppet/plugins.rb +3 -1
  530. data/lib/puppet/pops/adaptable.rb +5 -3
  531. data/lib/puppet/pops/adapters.rb +4 -1
  532. data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
  533. data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
  534. data/lib/puppet/pops/evaluator/closure.rb +272 -277
  535. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
  536. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
  537. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
  538. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
  539. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
  540. data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
  541. data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
  542. data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
  543. data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
  544. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  545. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
  546. data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
  547. data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
  548. data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
  549. data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
  550. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
  551. data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
  552. data/lib/puppet/pops/functions/dispatch.rb +7 -7
  553. data/lib/puppet/pops/functions/dispatcher.rb +8 -7
  554. data/lib/puppet/pops/functions/function.rb +18 -20
  555. data/lib/puppet/pops/issue_reporter.rb +25 -22
  556. data/lib/puppet/pops/issues.rb +10 -5
  557. data/lib/puppet/pops/label_provider.rb +6 -4
  558. data/lib/puppet/pops/loader/base_loader.rb +4 -4
  559. data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
  560. data/lib/puppet/pops/loader/gem_support.rb +5 -2
  561. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
  562. data/lib/puppet/pops/loader/loader.rb +8 -8
  563. data/lib/puppet/pops/loader/loader_paths.rb +42 -41
  564. data/lib/puppet/pops/loader/module_loaders.rb +45 -49
  565. data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
  566. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
  567. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
  568. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
  569. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
  570. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
  571. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
  572. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
  573. data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
  574. data/lib/puppet/pops/loader/static_loader.rb +29 -27
  575. data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
  576. data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
  577. data/lib/puppet/pops/loader/typed_name.rb +4 -2
  578. data/lib/puppet/pops/loader/uri_helper.rb +3 -1
  579. data/lib/puppet/pops/loaders.rb +27 -23
  580. data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
  581. data/lib/puppet/pops/lookup/context.rb +32 -23
  582. data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
  583. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
  584. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
  585. data/lib/puppet/pops/lookup/data_provider.rb +2 -0
  586. data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
  587. data/lib/puppet/pops/lookup/explainer.rb +47 -45
  588. data/lib/puppet/pops/lookup/function_provider.rb +8 -6
  589. data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
  590. data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
  591. data/lib/puppet/pops/lookup/interpolation.rb +21 -10
  592. data/lib/puppet/pops/lookup/invocation.rb +4 -0
  593. data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
  594. data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
  595. data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
  596. data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
  597. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
  598. data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
  599. data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
  600. data/lib/puppet/pops/lookup.rb +16 -11
  601. data/lib/puppet/pops/merge_strategy.rb +22 -16
  602. data/lib/puppet/pops/migration/migration_checker.rb +8 -5
  603. data/lib/puppet/pops/model/ast.rb +786 -685
  604. data/lib/puppet/pops/model/ast_transformer.rb +18 -18
  605. data/lib/puppet/pops/model/factory.rb +33 -31
  606. data/lib/puppet/pops/model/model_label_provider.rb +5 -2
  607. data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
  608. data/lib/puppet/pops/model/pn_transformer.rb +5 -6
  609. data/lib/puppet/pops/model/tree_dumper.rb +7 -4
  610. data/lib/puppet/pops/parser/code_merger.rb +3 -3
  611. data/lib/puppet/pops/parser/epp_parser.rb +6 -5
  612. data/lib/puppet/pops/parser/epp_support.rb +10 -9
  613. data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
  614. data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
  615. data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
  616. data/lib/puppet/pops/parser/lexer2.rb +74 -62
  617. data/lib/puppet/pops/parser/lexer_support.rb +57 -57
  618. data/lib/puppet/pops/parser/locatable.rb +2 -2
  619. data/lib/puppet/pops/parser/locator.rb +47 -43
  620. data/lib/puppet/pops/parser/parser_support.rb +22 -21
  621. data/lib/puppet/pops/parser/pn_parser.rb +10 -9
  622. data/lib/puppet/pops/parser/slurp_support.rb +41 -40
  623. data/lib/puppet/pops/patterns.rb +14 -14
  624. data/lib/puppet/pops/pcore.rb +7 -6
  625. data/lib/puppet/pops/pn.rb +8 -5
  626. data/lib/puppet/pops/puppet_stack.rb +3 -1
  627. data/lib/puppet/pops/resource/param.rb +13 -12
  628. data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
  629. data/lib/puppet/pops/semantic_error.rb +3 -1
  630. data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
  631. data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
  632. data/lib/puppet/pops/serialization/deserializer.rb +3 -0
  633. data/lib/puppet/pops/serialization/extension.rb +8 -0
  634. data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
  635. data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
  636. data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
  637. data/lib/puppet/pops/serialization/json.rb +9 -5
  638. data/lib/puppet/pops/serialization/json_path.rb +3 -1
  639. data/lib/puppet/pops/serialization/object.rb +6 -3
  640. data/lib/puppet/pops/serialization/serializer.rb +20 -16
  641. data/lib/puppet/pops/serialization/time_factory.rb +2 -1
  642. data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
  643. data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
  644. data/lib/puppet/pops/serialization.rb +10 -8
  645. data/lib/puppet/pops/time/timespan.rb +33 -21
  646. data/lib/puppet/pops/time/timestamp.rb +12 -5
  647. data/lib/puppet/pops/types/annotatable.rb +3 -2
  648. data/lib/puppet/pops/types/annotation.rb +6 -4
  649. data/lib/puppet/pops/types/class_loader.rb +17 -15
  650. data/lib/puppet/pops/types/implementation_registry.rb +4 -1
  651. data/lib/puppet/pops/types/iterable.rb +24 -14
  652. data/lib/puppet/pops/types/p_binary_type.rb +6 -6
  653. data/lib/puppet/pops/types/p_init_type.rb +15 -12
  654. data/lib/puppet/pops/types/p_meta_type.rb +6 -5
  655. data/lib/puppet/pops/types/p_object_type.rb +104 -79
  656. data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
  657. data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
  658. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
  659. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
  660. data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
  661. data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
  662. data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
  663. data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
  664. data/lib/puppet/pops/types/p_uri_type.rb +41 -33
  665. data/lib/puppet/pops/types/puppet_object.rb +2 -1
  666. data/lib/puppet/pops/types/recursion_guard.rb +12 -6
  667. data/lib/puppet/pops/types/ruby_generator.rb +19 -14
  668. data/lib/puppet/pops/types/ruby_method.rb +8 -7
  669. data/lib/puppet/pops/types/string_converter.rb +113 -103
  670. data/lib/puppet/pops/types/tree_iterators.rb +16 -20
  671. data/lib/puppet/pops/types/type_acceptor.rb +2 -0
  672. data/lib/puppet/pops/types/type_asserter.rb +5 -3
  673. data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
  674. data/lib/puppet/pops/types/type_calculator.rb +56 -49
  675. data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
  676. data/lib/puppet/pops/types/type_factory.rb +25 -16
  677. data/lib/puppet/pops/types/type_formatter.rb +60 -65
  678. data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
  679. data/lib/puppet/pops/types/type_parser.rb +124 -117
  680. data/lib/puppet/pops/types/type_set_reference.rb +3 -0
  681. data/lib/puppet/pops/types/type_with_members.rb +2 -2
  682. data/lib/puppet/pops/types/types.rb +267 -249
  683. data/lib/puppet/pops/utils.rb +43 -45
  684. data/lib/puppet/pops/validation/checker4_0.rb +65 -58
  685. data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
  686. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
  687. data/lib/puppet/pops/validation.rb +26 -23
  688. data/lib/puppet/pops/visitable.rb +2 -0
  689. data/lib/puppet/pops/visitor.rb +18 -4
  690. data/lib/puppet/pops.rb +6 -3
  691. data/lib/puppet/property/boolean.rb +2 -0
  692. data/lib/puppet/property/ensure.rb +17 -16
  693. data/lib/puppet/property/keyvalue.rb +15 -14
  694. data/lib/puppet/property/list.rb +10 -9
  695. data/lib/puppet/property/ordered_list.rb +6 -5
  696. data/lib/puppet/property.rb +47 -48
  697. data/lib/puppet/provider/aix_object.rb +15 -9
  698. data/lib/puppet/provider/command.rb +2 -0
  699. data/lib/puppet/provider/confine.rb +2 -0
  700. data/lib/puppet/provider/exec/posix.rb +4 -1
  701. data/lib/puppet/provider/exec/shell.rb +2 -0
  702. data/lib/puppet/provider/exec/windows.rb +6 -4
  703. data/lib/puppet/provider/exec.rb +6 -4
  704. data/lib/puppet/provider/file/posix.rb +37 -19
  705. data/lib/puppet/provider/file/windows.rb +28 -29
  706. data/lib/puppet/provider/group/aix.rb +4 -2
  707. data/lib/puppet/provider/group/directoryservice.rb +7 -5
  708. data/lib/puppet/provider/group/groupadd.rb +16 -10
  709. data/lib/puppet/provider/group/ldap.rb +3 -0
  710. data/lib/puppet/provider/group/pw.rb +4 -3
  711. data/lib/puppet/provider/group/windows_adsi.rb +10 -7
  712. data/lib/puppet/provider/ldap.rb +5 -3
  713. data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
  714. data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
  715. data/lib/puppet/provider/nameservice/pw.rb +8 -8
  716. data/lib/puppet/provider/nameservice.rb +23 -19
  717. data/lib/puppet/provider/network_device.rb +2 -2
  718. data/lib/puppet/provider/package/aix.rb +29 -27
  719. data/lib/puppet/provider/package/appdmg.rb +24 -22
  720. data/lib/puppet/provider/package/apple.rb +7 -5
  721. data/lib/puppet/provider/package/apt.rb +28 -25
  722. data/lib/puppet/provider/package/aptitude.rb +3 -3
  723. data/lib/puppet/provider/package/aptrpm.rb +18 -14
  724. data/lib/puppet/provider/package/blastwave.rb +19 -22
  725. data/lib/puppet/provider/package/dnf.rb +12 -5
  726. data/lib/puppet/provider/package/dnfmodule.rb +17 -15
  727. data/lib/puppet/provider/package/dpkg.rb +24 -25
  728. data/lib/puppet/provider/package/fink.rb +17 -15
  729. data/lib/puppet/provider/package/freebsd.rb +6 -4
  730. data/lib/puppet/provider/package/gem.rb +29 -26
  731. data/lib/puppet/provider/package/hpux.rb +9 -7
  732. data/lib/puppet/provider/package/macports.rb +6 -4
  733. data/lib/puppet/provider/package/nim.rb +27 -28
  734. data/lib/puppet/provider/package/openbsd.rb +37 -34
  735. data/lib/puppet/provider/package/opkg.rb +17 -14
  736. data/lib/puppet/provider/package/pacman.rb +39 -42
  737. data/lib/puppet/provider/package/pip.rb +32 -31
  738. data/lib/puppet/provider/package/pip2.rb +3 -2
  739. data/lib/puppet/provider/package/pip3.rb +3 -2
  740. data/lib/puppet/provider/package/pkg.rb +46 -41
  741. data/lib/puppet/provider/package/pkgdmg.rb +23 -17
  742. data/lib/puppet/provider/package/pkgin.rb +14 -13
  743. data/lib/puppet/provider/package/pkgng.rb +20 -15
  744. data/lib/puppet/provider/package/pkgutil.rb +40 -41
  745. data/lib/puppet/provider/package/portage.rb +73 -69
  746. data/lib/puppet/provider/package/ports.rb +19 -16
  747. data/lib/puppet/provider/package/portupgrade.rb +48 -55
  748. data/lib/puppet/provider/package/puppet_gem.rb +6 -15
  749. data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
  750. data/lib/puppet/provider/package/rpm.rb +45 -40
  751. data/lib/puppet/provider/package/rug.rb +11 -11
  752. data/lib/puppet/provider/package/sun.rb +28 -24
  753. data/lib/puppet/provider/package/sunfreeware.rb +3 -1
  754. data/lib/puppet/provider/package/tdnf.rb +9 -2
  755. data/lib/puppet/provider/package/up2date.rb +10 -10
  756. data/lib/puppet/provider/package/urpmi.rb +9 -7
  757. data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
  758. data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
  759. data/lib/puppet/provider/package/windows/package.rb +8 -5
  760. data/lib/puppet/provider/package/windows.rb +10 -9
  761. data/lib/puppet/provider/package/xbps.rb +127 -0
  762. data/lib/puppet/provider/package/yum.rb +65 -62
  763. data/lib/puppet/provider/package/zypper.rb +29 -29
  764. data/lib/puppet/provider/package.rb +9 -7
  765. data/lib/puppet/provider/package_targetable.rb +5 -3
  766. data/lib/puppet/provider/parsedfile.rb +21 -17
  767. data/lib/puppet/provider/service/base.rb +19 -23
  768. data/lib/puppet/provider/service/bsd.rb +7 -5
  769. data/lib/puppet/provider/service/daemontools.rb +42 -39
  770. data/lib/puppet/provider/service/debian.rb +12 -10
  771. data/lib/puppet/provider/service/freebsd.rb +50 -52
  772. data/lib/puppet/provider/service/gentoo.rb +11 -9
  773. data/lib/puppet/provider/service/init.rb +33 -31
  774. data/lib/puppet/provider/service/launchd.rb +38 -31
  775. data/lib/puppet/provider/service/openbsd.rb +17 -16
  776. data/lib/puppet/provider/service/openrc.rb +6 -5
  777. data/lib/puppet/provider/service/openwrt.rb +7 -6
  778. data/lib/puppet/provider/service/rcng.rb +7 -5
  779. data/lib/puppet/provider/service/redhat.rb +10 -7
  780. data/lib/puppet/provider/service/runit.rb +16 -15
  781. data/lib/puppet/provider/service/service.rb +7 -8
  782. data/lib/puppet/provider/service/smf.rb +42 -37
  783. data/lib/puppet/provider/service/src.rb +29 -29
  784. data/lib/puppet/provider/service/systemd.rb +48 -48
  785. data/lib/puppet/provider/service/upstart.rb +37 -37
  786. data/lib/puppet/provider/service/windows.rb +45 -48
  787. data/lib/puppet/provider/user/aix.rb +24 -20
  788. data/lib/puppet/provider/user/directoryservice.rb +98 -91
  789. data/lib/puppet/provider/user/hpux.rb +33 -35
  790. data/lib/puppet/provider/user/ldap.rb +13 -10
  791. data/lib/puppet/provider/user/openbsd.rb +24 -22
  792. data/lib/puppet/provider/user/pw.rb +8 -7
  793. data/lib/puppet/provider/user/user_role_add.rb +40 -36
  794. data/lib/puppet/provider/user/useradd.rb +64 -53
  795. data/lib/puppet/provider/user/windows_adsi.rb +14 -10
  796. data/lib/puppet/provider.rb +20 -19
  797. data/lib/puppet/reference/configuration.rb +55 -47
  798. data/lib/puppet/reference/function.rb +2 -0
  799. data/lib/puppet/reference/indirection.rb +33 -28
  800. data/lib/puppet/reference/metaparameter.rb +3 -1
  801. data/lib/puppet/reference/providers.rb +12 -10
  802. data/lib/puppet/reference/report.rb +2 -0
  803. data/lib/puppet/reference/type.rb +7 -5
  804. data/lib/puppet/relationship.rb +10 -9
  805. data/lib/puppet/reports/http.rb +3 -2
  806. data/lib/puppet/reports/log.rb +4 -3
  807. data/lib/puppet/reports/store.rb +9 -6
  808. data/lib/puppet/reports.rb +8 -6
  809. data/lib/puppet/resource/catalog.rb +54 -53
  810. data/lib/puppet/resource/status.rb +9 -7
  811. data/lib/puppet/resource/type.rb +65 -41
  812. data/lib/puppet/resource/type_collection.rb +10 -6
  813. data/lib/puppet/resource.rb +91 -81
  814. data/lib/puppet/runtime.rb +2 -0
  815. data/lib/puppet/scheduler/job.rb +2 -0
  816. data/lib/puppet/scheduler/scheduler.rb +4 -2
  817. data/lib/puppet/scheduler/splay_job.rb +16 -3
  818. data/lib/puppet/scheduler/timer.rb +2 -0
  819. data/lib/puppet/scheduler.rb +3 -1
  820. data/lib/puppet/settings/alias_setting.rb +5 -5
  821. data/lib/puppet/settings/array_setting.rb +2 -1
  822. data/lib/puppet/settings/autosign_setting.rb +2 -1
  823. data/lib/puppet/settings/base_setting.rb +23 -18
  824. data/lib/puppet/settings/boolean_setting.rb +5 -3
  825. data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
  826. data/lib/puppet/settings/config_file.rb +11 -9
  827. data/lib/puppet/settings/directory_setting.rb +2 -0
  828. data/lib/puppet/settings/duration_setting.rb +5 -4
  829. data/lib/puppet/settings/enum_setting.rb +3 -1
  830. data/lib/puppet/settings/environment_conf.rb +19 -15
  831. data/lib/puppet/settings/errors.rb +6 -3
  832. data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
  833. data/lib/puppet/settings/file_setting.rb +15 -24
  834. data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
  835. data/lib/puppet/settings/ini_file.rb +5 -3
  836. data/lib/puppet/settings/integer_setting.rb +3 -1
  837. data/lib/puppet/settings/path_setting.rb +2 -0
  838. data/lib/puppet/settings/port_setting.rb +4 -2
  839. data/lib/puppet/settings/priority_setting.rb +13 -12
  840. data/lib/puppet/settings/server_list_setting.rb +7 -6
  841. data/lib/puppet/settings/string_setting.rb +2 -0
  842. data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
  843. data/lib/puppet/settings/terminus_setting.rb +2 -0
  844. data/lib/puppet/settings/ttl_setting.rb +7 -5
  845. data/lib/puppet/settings/value_translator.rb +9 -7
  846. data/lib/puppet/settings.rb +171 -163
  847. data/lib/puppet/ssl/base.rb +9 -6
  848. data/lib/puppet/ssl/certificate.rb +6 -4
  849. data/lib/puppet/ssl/certificate_request.rb +34 -38
  850. data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
  851. data/lib/puppet/ssl/certificate_signer.rb +3 -3
  852. data/lib/puppet/ssl/digest.rb +2 -0
  853. data/lib/puppet/ssl/error.rb +3 -0
  854. data/lib/puppet/ssl/oids.rb +11 -9
  855. data/lib/puppet/ssl/openssl_loader.rb +6 -4
  856. data/lib/puppet/ssl/ssl_context.rb +2 -0
  857. data/lib/puppet/ssl/ssl_provider.rb +13 -9
  858. data/lib/puppet/ssl/state_machine.rb +153 -22
  859. data/lib/puppet/ssl/verifier.rb +3 -2
  860. data/lib/puppet/ssl.rb +3 -1
  861. data/lib/puppet/syntax_checkers/base64.rb +7 -5
  862. data/lib/puppet/syntax_checkers/epp.rb +7 -6
  863. data/lib/puppet/syntax_checkers/json.rb +7 -7
  864. data/lib/puppet/syntax_checkers/pp.rb +7 -6
  865. data/lib/puppet/syntax_checkers.rb +3 -1
  866. data/lib/puppet/test/test_helper.rb +30 -44
  867. data/lib/puppet/thread_local.rb +2 -0
  868. data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
  869. data/lib/puppet/transaction/event.rb +8 -5
  870. data/lib/puppet/transaction/event_manager.rb +12 -11
  871. data/lib/puppet/transaction/persistence.rb +16 -16
  872. data/lib/puppet/transaction/report.rb +34 -27
  873. data/lib/puppet/transaction/resource_harness.rb +17 -9
  874. data/lib/puppet/transaction.rb +37 -35
  875. data/lib/puppet/trusted_external.rb +10 -5
  876. data/lib/puppet/type/component.rb +14 -7
  877. data/lib/puppet/type/exec.rb +71 -61
  878. data/lib/puppet/type/file/checksum.rb +6 -2
  879. data/lib/puppet/type/file/checksum_value.rb +6 -4
  880. data/lib/puppet/type/file/content.rb +24 -20
  881. data/lib/puppet/type/file/ctime.rb +5 -4
  882. data/lib/puppet/type/file/data_sync.rb +9 -6
  883. data/lib/puppet/type/file/ensure.rb +24 -25
  884. data/lib/puppet/type/file/group.rb +3 -1
  885. data/lib/puppet/type/file/mode.rb +14 -11
  886. data/lib/puppet/type/file/mtime.rb +5 -3
  887. data/lib/puppet/type/file/owner.rb +3 -2
  888. data/lib/puppet/type/file/selcontext.rb +24 -23
  889. data/lib/puppet/type/file/source.rb +31 -30
  890. data/lib/puppet/type/file/target.rb +23 -25
  891. data/lib/puppet/type/file/type.rb +3 -2
  892. data/lib/puppet/type/file.rb +60 -54
  893. data/lib/puppet/type/filebucket.rb +6 -4
  894. data/lib/puppet/type/group.rb +14 -13
  895. data/lib/puppet/type/notify.rb +4 -3
  896. data/lib/puppet/type/package.rb +47 -45
  897. data/lib/puppet/type/resources.rb +39 -34
  898. data/lib/puppet/type/schedule.rb +21 -21
  899. data/lib/puppet/type/service.rb +19 -18
  900. data/lib/puppet/type/stage.rb +2 -0
  901. data/lib/puppet/type/tidy.rb +40 -34
  902. data/lib/puppet/type/user.rb +62 -56
  903. data/lib/puppet/type/whit.rb +2 -1
  904. data/lib/puppet/type.rb +180 -227
  905. data/lib/puppet/util/at_fork/noop.rb +2 -0
  906. data/lib/puppet/util/at_fork/solaris.rb +37 -39
  907. data/lib/puppet/util/at_fork.rb +3 -1
  908. data/lib/puppet/util/autoload.rb +10 -4
  909. data/lib/puppet/util/backups.rb +13 -11
  910. data/lib/puppet/util/character_encoding.rb +9 -6
  911. data/lib/puppet/util/checksums.rb +16 -12
  912. data/lib/puppet/util/classgen.rb +18 -23
  913. data/lib/puppet/util/colors.rb +67 -65
  914. data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
  915. data/lib/puppet/util/command_line/trollop.rb +695 -673
  916. data/lib/puppet/util/command_line.rb +7 -5
  917. data/lib/puppet/util/constant_inflector.rb +4 -3
  918. data/lib/puppet/util/diff.rb +17 -18
  919. data/lib/puppet/util/docs.rb +8 -4
  920. data/lib/puppet/util/errors.rb +13 -11
  921. data/lib/puppet/util/execution.rb +58 -36
  922. data/lib/puppet/util/execution_stub.rb +2 -0
  923. data/lib/puppet/util/feature.rb +9 -9
  924. data/lib/puppet/util/file_watcher.rb +3 -0
  925. data/lib/puppet/util/fileparsing.rb +20 -24
  926. data/lib/puppet/util/filetype.rb +43 -43
  927. data/lib/puppet/util/http_proxy.rb +2 -0
  928. data/lib/puppet/util/inifile.rb +13 -18
  929. data/lib/puppet/util/instance_loader.rb +3 -0
  930. data/lib/puppet/util/json.rb +2 -0
  931. data/lib/puppet/util/json_lockfile.rb +4 -1
  932. data/lib/puppet/util/ldap/connection.rb +21 -19
  933. data/lib/puppet/util/ldap/generator.rb +2 -0
  934. data/lib/puppet/util/ldap/manager.rb +20 -21
  935. data/lib/puppet/util/ldap.rb +2 -0
  936. data/lib/puppet/util/libuser.rb +3 -2
  937. data/lib/puppet/util/limits.rb +2 -0
  938. data/lib/puppet/util/lockfile.rb +8 -8
  939. data/lib/puppet/util/log/destination.rb +4 -3
  940. data/lib/puppet/util/log/destinations.rb +20 -20
  941. data/lib/puppet/util/log.rb +40 -31
  942. data/lib/puppet/util/logging.rb +34 -30
  943. data/lib/puppet/util/metaid.rb +2 -1
  944. data/lib/puppet/util/metric.rb +9 -6
  945. data/lib/puppet/util/monkey_patches.rb +22 -30
  946. data/lib/puppet/util/multi_match.rb +9 -5
  947. data/lib/puppet/util/network_device/base.rb +3 -2
  948. data/lib/puppet/util/network_device/config.rb +9 -9
  949. data/lib/puppet/util/network_device/transport/base.rb +1 -1
  950. data/lib/puppet/util/network_device/transport.rb +2 -0
  951. data/lib/puppet/util/network_device.rb +2 -0
  952. data/lib/puppet/util/package/version/debian.rb +33 -31
  953. data/lib/puppet/util/package/version/gem.rb +3 -0
  954. data/lib/puppet/util/package/version/pip.rb +14 -8
  955. data/lib/puppet/util/package/version/range/eq.rb +4 -1
  956. data/lib/puppet/util/package/version/range/gt.rb +3 -0
  957. data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
  958. data/lib/puppet/util/package/version/range/lt.rb +4 -1
  959. data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
  960. data/lib/puppet/util/package/version/range/min_max.rb +5 -0
  961. data/lib/puppet/util/package/version/range/simple.rb +2 -0
  962. data/lib/puppet/util/package/version/range.rb +9 -5
  963. data/lib/puppet/util/package/version/rpm.rb +7 -5
  964. data/lib/puppet/util/package.rb +5 -2
  965. data/lib/puppet/util/pidlock.rb +11 -10
  966. data/lib/puppet/util/platform.rb +5 -3
  967. data/lib/puppet/util/plist.rb +16 -16
  968. data/lib/puppet/util/posix.rb +27 -24
  969. data/lib/puppet/util/profiler/aggregate.rb +7 -10
  970. data/lib/puppet/util/profiler/around_profiler.rb +2 -1
  971. data/lib/puppet/util/profiler/logging.rb +3 -1
  972. data/lib/puppet/util/profiler/object_counts.rb +2 -0
  973. data/lib/puppet/util/profiler/wall_clock.rb +6 -5
  974. data/lib/puppet/util/profiler.rb +2 -0
  975. data/lib/puppet/util/provider_features.rb +10 -6
  976. data/lib/puppet/util/psych_support.rb +2 -0
  977. data/lib/puppet/util/rdoc/code_objects.rb +18 -20
  978. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
  979. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
  980. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
  981. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
  982. data/lib/puppet/util/rdoc/parser.rb +3 -1
  983. data/lib/puppet/util/rdoc.rb +10 -9
  984. data/lib/puppet/util/reference.rb +7 -32
  985. data/lib/puppet/util/resource_template.rb +3 -1
  986. data/lib/puppet/util/retry_action.rb +6 -5
  987. data/lib/puppet/util/rpm_compare.rb +31 -28
  988. data/lib/puppet/util/rubygems.rb +3 -3
  989. data/lib/puppet/util/run_mode.rb +46 -4
  990. data/lib/puppet/util/selinux.rb +72 -38
  991. data/lib/puppet/util/skip_tags.rb +2 -0
  992. data/lib/puppet/util/splayer.rb +2 -0
  993. data/lib/puppet/util/storage.rb +13 -13
  994. data/lib/puppet/util/suidmanager.rb +38 -37
  995. data/lib/puppet/util/symbolic_file_mode.rb +76 -76
  996. data/lib/puppet/util/tag_set.rb +4 -2
  997. data/lib/puppet/util/tagging.rb +12 -13
  998. data/lib/puppet/util/terminal.rb +6 -4
  999. data/lib/puppet/util/user_attr.rb +9 -7
  1000. data/lib/puppet/util/warnings.rb +4 -0
  1001. data/lib/puppet/util/watched_file.rb +4 -1
  1002. data/lib/puppet/util/watcher/change_watcher.rb +2 -0
  1003. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
  1004. data/lib/puppet/util/watcher/timer.rb +2 -0
  1005. data/lib/puppet/util/watcher.rb +5 -5
  1006. data/lib/puppet/util/windows/access_control_entry.rb +3 -1
  1007. data/lib/puppet/util/windows/access_control_list.rb +10 -7
  1008. data/lib/puppet/util/windows/adsi.rb +82 -74
  1009. data/lib/puppet/util/windows/com.rb +10 -7
  1010. data/lib/puppet/util/windows/daemon.rb +77 -80
  1011. data/lib/puppet/util/windows/error.rb +7 -5
  1012. data/lib/puppet/util/windows/eventlog.rb +13 -9
  1013. data/lib/puppet/util/windows/file.rb +49 -45
  1014. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
  1015. data/lib/puppet/util/windows/principal.rb +37 -34
  1016. data/lib/puppet/util/windows/process.rb +36 -40
  1017. data/lib/puppet/util/windows/registry.rb +60 -58
  1018. data/lib/puppet/util/windows/root_certs.rb +5 -3
  1019. data/lib/puppet/util/windows/security.rb +92 -90
  1020. data/lib/puppet/util/windows/security_descriptor.rb +2 -0
  1021. data/lib/puppet/util/windows/service.rb +24 -12
  1022. data/lib/puppet/util/windows/sid.rb +23 -21
  1023. data/lib/puppet/util/windows/string.rb +2 -0
  1024. data/lib/puppet/util/windows/user.rb +56 -55
  1025. data/lib/puppet/util/windows.rb +8 -1
  1026. data/lib/puppet/util/yaml.rb +3 -1
  1027. data/lib/puppet/util.rb +112 -161
  1028. data/lib/puppet/vendor.rb +3 -1
  1029. data/lib/puppet/version.rb +5 -2
  1030. data/lib/puppet/x509/cert_provider.rb +48 -12
  1031. data/lib/puppet/x509/pem_store.rb +3 -1
  1032. data/lib/puppet/x509.rb +2 -0
  1033. data/lib/puppet.rb +22 -19
  1034. data/lib/puppet_pal.rb +2 -0
  1035. data/lib/puppet_x.rb +2 -0
  1036. data/locales/puppet.pot +9723 -5
  1037. data/man/man5/puppet.conf.5 +121 -912
  1038. data/man/man8/puppet-agent.8 +39 -107
  1039. data/man/man8/puppet-apply.8 +18 -51
  1040. data/man/man8/puppet-catalog.8 +25 -122
  1041. data/man/man8/puppet-config.8 +22 -70
  1042. data/man/man8/puppet-describe.8 +6 -22
  1043. data/man/man8/puppet-device.8 +13 -49
  1044. data/man/man8/puppet-doc.8 +8 -24
  1045. data/man/man8/puppet-epp.8 +23 -168
  1046. data/man/man8/puppet-facts.8 +14 -92
  1047. data/man/man8/puppet-filebucket.8 +22 -54
  1048. data/man/man8/puppet-generate.8 +5 -35
  1049. data/man/man8/puppet-help.8 +8 -29
  1050. data/man/man8/puppet-lookup.8 +25 -61
  1051. data/man/man8/puppet-module.8 +19 -124
  1052. data/man/man8/puppet-node.8 +47 -68
  1053. data/man/man8/puppet-parser.8 +12 -55
  1054. data/man/man8/puppet-plugin.8 +10 -33
  1055. data/man/man8/puppet-report.8 +10 -53
  1056. data/man/man8/puppet-resource.8 +19 -44
  1057. data/man/man8/puppet-script.8 +11 -33
  1058. data/man/man8/puppet-ssl.8 +12 -30
  1059. data/man/man8/puppet.8 +90 -20
  1060. data/tasks/tag.rake +34 -0
  1061. metadata +77 -65
  1062. data/CONTRIBUTING.md +0 -161
  1063. data/examples/hiera/etc/hiera.yaml +0 -15
  1064. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  1065. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  1066. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  1067. data/examples/hiera/etc/puppet.conf +0 -3
  1068. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  1069. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  1070. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  1071. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  1072. data/lib/puppet/external/pson/common.rb +0 -374
  1073. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1074. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1075. data/lib/puppet/external/pson/pure.rb +0 -15
  1076. data/lib/puppet/external/pson/version.rb +0 -8
  1077. data/lib/puppet/module_tool/contents_description.rb +0 -89
  1078. data/tasks/benchmark.rake +0 -180
  1079. data/tasks/ci.rake +0 -24
  1080. data/tasks/generate_ast_model.rake +0 -90
  1081. data/tasks/generate_cert_fixtures.rake +0 -194
  1082. data/tasks/manpages.rake +0 -67
  1083. data/tasks/memwalk.rake +0 -195
  1084. data/tasks/parallel.rake +0 -410
  1085. data/tasks/parser.rake +0 -22
  1086. data/tasks/yard.rake +0 -59
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../puppet/ffi/windows'
2
4
 
3
5
  module Puppet::FFI::Windows
4
6
  module Functions
5
-
6
7
  extend FFI::Library
7
8
  include Puppet::FFI::Windows::Constants
8
9
 
@@ -39,8 +40,8 @@ module Puppet::FFI::Windows
39
40
  # );
40
41
  ffi_lib :kernel32
41
42
  attach_function_private :CreateProcessW,
42
- [:lpcwstr, :lpwstr, :pointer, :pointer, :win32_bool,
43
- :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
43
+ [:lpcwstr, :lpwstr, :pointer, :pointer, :win32_bool,
44
+ :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
44
45
 
45
46
  # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess
46
47
  # HANDLE OpenProcess(
@@ -75,8 +76,8 @@ module Puppet::FFI::Windows
75
76
  # );
76
77
  ffi_lib :advapi32
77
78
  attach_function_private :CreateProcessWithLogonW,
78
- [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpcwstr, :lpwstr,
79
- :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
79
+ [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpcwstr, :lpwstr,
80
+ :dword, :lpvoid, :lpcwstr, :pointer, :pointer], :bool
80
81
 
81
82
  # https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/get-osfhandle?view=vs-2019
82
83
  # intptr_t _get_osfhandle(
@@ -102,7 +103,7 @@ module Puppet::FFI::Windows
102
103
  # );
103
104
  ffi_lib :kernel32
104
105
  attach_function_private :WaitForSingleObject,
105
- [:handle, :dword], :dword, :blocking => true
106
+ [:handle, :dword], :dword, :blocking => true
106
107
 
107
108
  # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects
108
109
  # DWORD WaitForMultipleObjects(
@@ -113,7 +114,7 @@ module Puppet::FFI::Windows
113
114
  # );
114
115
  ffi_lib :kernel32
115
116
  attach_function_private :WaitForMultipleObjects,
116
- [:dword, :phandle, :win32_bool, :dword], :dword
117
+ [:dword, :phandle, :win32_bool, :dword], :dword
117
118
 
118
119
  # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createeventw
119
120
  # HANDLE CreateEventW(
@@ -124,7 +125,7 @@ module Puppet::FFI::Windows
124
125
  # );
125
126
  ffi_lib :kernel32
126
127
  attach_function_private :CreateEventW,
127
- [:pointer, :win32_bool, :win32_bool, :lpcwstr], :handle
128
+ [:pointer, :win32_bool, :win32_bool, :lpcwstr], :handle
128
129
 
129
130
  # https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createthread
130
131
  # HANDLE CreateThread(
@@ -137,7 +138,7 @@ module Puppet::FFI::Windows
137
138
  # );
138
139
  ffi_lib :kernel32
139
140
  attach_function_private :CreateThread,
140
- [:pointer, :size_t, :pointer, :lpvoid, :dword, :lpdword], :handle, :blocking => true
141
+ [:pointer, :size_t, :pointer, :lpvoid, :dword, :lpdword], :handle, :blocking => true
141
142
 
142
143
  # https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-setevent
143
144
  # BOOL SetEvent(
@@ -145,7 +146,7 @@ module Puppet::FFI::Windows
145
146
  # );
146
147
  ffi_lib :kernel32
147
148
  attach_function_private :SetEvent,
148
- [:handle], :win32_bool
149
+ [:handle], :win32_bool
149
150
 
150
151
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683189(v=vs.85).aspx
151
152
  # BOOL WINAPI GetExitCodeProcess(
@@ -154,7 +155,7 @@ module Puppet::FFI::Windows
154
155
  # );
155
156
  ffi_lib :kernel32
156
157
  attach_function_private :GetExitCodeProcess,
157
- [:handle, :lpdword], :win32_bool
158
+ [:handle, :lpdword], :win32_bool
158
159
 
159
160
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms683179(v=vs.85).aspx
160
161
  # HANDLE WINAPI GetCurrentProcess(void);
@@ -172,7 +173,7 @@ module Puppet::FFI::Windows
172
173
  # );
173
174
  ffi_lib :kernel32
174
175
  attach_function_private :FreeEnvironmentStringsW,
175
- [:pointer], :win32_bool
176
+ [:pointer], :win32_bool
176
177
 
177
178
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms686206(v=vs.85).aspx
178
179
  # BOOL WINAPI SetEnvironmentVariableW(
@@ -181,7 +182,7 @@ module Puppet::FFI::Windows
181
182
  # );
182
183
  ffi_lib :kernel32
183
184
  attach_function_private :SetEnvironmentVariableW,
184
- [:lpcwstr, :lpcwstr], :win32_bool
185
+ [:lpcwstr, :lpcwstr], :win32_bool
185
186
 
186
187
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms684320(v=vs.85).aspx
187
188
  # HANDLE WINAPI OpenProcess(
@@ -191,7 +192,7 @@ module Puppet::FFI::Windows
191
192
  # );
192
193
  ffi_lib :kernel32
193
194
  attach_function_private :OpenProcess,
194
- [:dword, :win32_bool, :dword], :handle
195
+ [:dword, :win32_bool, :dword], :handle
195
196
 
196
197
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295(v=vs.85).aspx
197
198
  # BOOL WINAPI OpenProcessToken(
@@ -201,7 +202,7 @@ module Puppet::FFI::Windows
201
202
  # );
202
203
  ffi_lib :advapi32
203
204
  attach_function_private :OpenProcessToken,
204
- [:handle, :dword, :phandle], :win32_bool
205
+ [:handle, :dword, :phandle], :win32_bool
205
206
 
206
207
  # https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-queryfullprocessimagenamew
207
208
  # BOOL WINAPI QueryFullProcessImageName(
@@ -212,7 +213,7 @@ module Puppet::FFI::Windows
212
213
  # );
213
214
  ffi_lib :kernel32
214
215
  attach_function_private :QueryFullProcessImageNameW,
215
- [:handle, :dword, :lpwstr, :pdword], :win32_bool
216
+ [:handle, :dword, :lpwstr, :pdword], :win32_bool
216
217
 
217
218
  # https://msdn.microsoft.com/en-us/library/Windows/desktop/aa379180(v=vs.85).aspx
218
219
  # BOOL WINAPI LookupPrivilegeValue(
@@ -222,7 +223,7 @@ module Puppet::FFI::Windows
222
223
  # );
223
224
  ffi_lib :advapi32
224
225
  attach_function_private :LookupPrivilegeValueW,
225
- [:lpcwstr, :lpcwstr, :pointer], :win32_bool
226
+ [:lpcwstr, :lpcwstr, :pointer], :win32_bool
226
227
 
227
228
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671(v=vs.85).aspx
228
229
  # BOOL WINAPI GetTokenInformation(
@@ -234,7 +235,7 @@ module Puppet::FFI::Windows
234
235
  # );
235
236
  ffi_lib :advapi32
236
237
  attach_function_private :GetTokenInformation,
237
- [:handle, TOKEN_INFORMATION_CLASS, :lpvoid, :dword, :pdword ], :win32_bool
238
+ [:handle, TOKEN_INFORMATION_CLASS, :lpvoid, :dword, :pdword], :win32_bool
238
239
 
239
240
  # https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx
240
241
  # BOOL WINAPI GetVersionEx(
@@ -242,7 +243,7 @@ module Puppet::FFI::Windows
242
243
  # );
243
244
  ffi_lib :kernel32
244
245
  attach_function_private :GetVersionExW,
245
- [:pointer], :win32_bool
246
+ [:pointer], :win32_bool
246
247
 
247
248
  # https://msdn.microsoft.com/en-us/library/windows/desktop/dd318123(v=vs.85).aspx
248
249
  # LANGID GetSystemDefaultUILanguage(void);
@@ -257,7 +258,7 @@ module Puppet::FFI::Windows
257
258
  # );
258
259
  ffi_lib :advapi32
259
260
  attach_function_private :OpenSCManagerW,
260
- [:lpcwstr, :lpcwstr, :dword], :handle
261
+ [:lpcwstr, :lpcwstr, :dword], :handle
261
262
 
262
263
  # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-openservicew
263
264
  # SC_HANDLE OpenServiceW(
@@ -267,7 +268,7 @@ module Puppet::FFI::Windows
267
268
  # );
268
269
  ffi_lib :advapi32
269
270
  attach_function_private :OpenServiceW,
270
- [:handle, :lpcwstr, :dword], :handle
271
+ [:handle, :lpcwstr, :dword], :handle
271
272
 
272
273
  # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-closeservicehandle
273
274
  # BOOL CloseServiceHandle(
@@ -275,7 +276,7 @@ module Puppet::FFI::Windows
275
276
  # );
276
277
  ffi_lib :advapi32
277
278
  attach_function_private :CloseServiceHandle,
278
- [:handle], :win32_bool
279
+ [:handle], :win32_bool
279
280
 
280
281
  # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-queryservicestatusex
281
282
  # BOOL QueryServiceStatusEx(
@@ -286,11 +287,11 @@ module Puppet::FFI::Windows
286
287
  # LPDWORD pcbBytesNeeded
287
288
  # );
288
289
  SC_STATUS_TYPE = enum(
289
- :SC_STATUS_PROCESS_INFO, 0,
290
+ :SC_STATUS_PROCESS_INFO, 0
290
291
  )
291
292
  ffi_lib :advapi32
292
293
  attach_function_private :QueryServiceStatusEx,
293
- [:handle, SC_STATUS_TYPE, :lpbyte, :dword, :lpdword], :win32_bool
294
+ [:handle, SC_STATUS_TYPE, :lpbyte, :dword, :lpdword], :win32_bool
294
295
 
295
296
  # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-queryserviceconfigw
296
297
  # BOOL QueryServiceConfigW(
@@ -301,7 +302,7 @@ module Puppet::FFI::Windows
301
302
  # );
302
303
  ffi_lib :advapi32
303
304
  attach_function_private :QueryServiceConfigW,
304
- [:handle, :lpbyte, :dword, :lpdword], :win32_bool
305
+ [:handle, :lpbyte, :dword, :lpdword], :win32_bool
305
306
 
306
307
  # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-queryserviceconfig2w
307
308
  # BOOL QueryServiceConfig2W(
@@ -313,7 +314,7 @@ module Puppet::FFI::Windows
313
314
  # );
314
315
  ffi_lib :advapi32
315
316
  attach_function_private :QueryServiceConfig2W,
316
- [:handle, :dword, :lpbyte, :dword, :lpdword], :win32_bool
317
+ [:handle, :dword, :lpbyte, :dword, :lpdword], :win32_bool
317
318
 
318
319
  # https://docs.microsoft.com/en-us/windows/desktop/api/Winsvc/nf-winsvc-startservicew
319
320
  # BOOL StartServiceW(
@@ -323,7 +324,7 @@ module Puppet::FFI::Windows
323
324
  # );
324
325
  ffi_lib :advapi32
325
326
  attach_function_private :StartServiceW,
326
- [:handle, :dword, :pointer], :win32_bool
327
+ [:handle, :dword, :pointer], :win32_bool
327
328
 
328
329
  # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-startservicectrldispatcherw
329
330
  # BOOL StartServiceCtrlDispatcherW(
@@ -331,7 +332,7 @@ module Puppet::FFI::Windows
331
332
  # );
332
333
  ffi_lib :advapi32
333
334
  attach_function_private :StartServiceCtrlDispatcherW,
334
- [:pointer], :win32_bool, :blocking => true
335
+ [:pointer], :win32_bool, :blocking => true
335
336
 
336
337
  # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-setservicestatus
337
338
  # BOOL SetServiceStatus(
@@ -340,7 +341,7 @@ module Puppet::FFI::Windows
340
341
  # );
341
342
  ffi_lib :advapi32
342
343
  attach_function_private :SetServiceStatus,
343
- [:handle, :pointer], :win32_bool
344
+ [:handle, :pointer], :win32_bool
344
345
 
345
346
  # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-controlservice
346
347
  # BOOL ControlService(
@@ -350,7 +351,7 @@ module Puppet::FFI::Windows
350
351
  # );
351
352
  ffi_lib :advapi32
352
353
  attach_function_private :ControlService,
353
- [:handle, :dword, :pointer], :win32_bool
354
+ [:handle, :dword, :pointer], :win32_bool
354
355
 
355
356
  # DWORD LphandlerFunctionEx(
356
357
  # DWORD dwControl,
@@ -368,7 +369,7 @@ module Puppet::FFI::Windows
368
369
  # );
369
370
  ffi_lib :advapi32
370
371
  attach_function_private :RegisterServiceCtrlHandlerExW,
371
- [:lpcwstr, :handler_ex, :lpvoid], :handle
372
+ [:lpcwstr, :handler_ex, :lpvoid], :handle
372
373
 
373
374
  # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-changeserviceconfigw
374
375
  # BOOL ChangeServiceConfigW(
@@ -386,19 +387,19 @@ module Puppet::FFI::Windows
386
387
  # );
387
388
  ffi_lib :advapi32
388
389
  attach_function_private :ChangeServiceConfigW,
389
- [
390
- :handle,
391
- :dword,
392
- :dword,
393
- :dword,
394
- :lpcwstr,
395
- :lpcwstr,
396
- :lpdword,
397
- :lpcwstr,
398
- :lpcwstr,
399
- :lpcwstr,
400
- :lpcwstr
401
- ], :win32_bool
390
+ [
391
+ :handle,
392
+ :dword,
393
+ :dword,
394
+ :dword,
395
+ :lpcwstr,
396
+ :lpcwstr,
397
+ :lpdword,
398
+ :lpcwstr,
399
+ :lpcwstr,
400
+ :lpcwstr,
401
+ :lpcwstr
402
+ ], :win32_bool
402
403
 
403
404
  # https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w
404
405
  # BOOL ChangeServiceConfig2W(
@@ -408,7 +409,7 @@ module Puppet::FFI::Windows
408
409
  # );
409
410
  ffi_lib :advapi32
410
411
  attach_function_private :ChangeServiceConfig2W,
411
- [:handle, :dword, :lpvoid], :win32_bool
412
+ [:handle, :dword, :lpvoid], :win32_bool
412
413
 
413
414
  # https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/nf-winsvc-enumservicesstatusexw
414
415
  # BOOL EnumServicesStatusExW(
@@ -424,22 +425,22 @@ module Puppet::FFI::Windows
424
425
  # LPCWSTR pszGroupName
425
426
  # );
426
427
  SC_ENUM_TYPE = enum(
427
- :SC_ENUM_PROCESS_INFO, 0,
428
+ :SC_ENUM_PROCESS_INFO, 0
428
429
  )
429
430
  ffi_lib :advapi32
430
431
  attach_function_private :EnumServicesStatusExW,
431
- [
432
- :handle,
433
- SC_ENUM_TYPE,
434
- :dword,
435
- :dword,
436
- :lpbyte,
437
- :dword,
438
- :lpdword,
439
- :lpdword,
440
- :lpdword,
441
- :lpcwstr
442
- ], :win32_bool
432
+ [
433
+ :handle,
434
+ SC_ENUM_TYPE,
435
+ :dword,
436
+ :dword,
437
+ :lpbyte,
438
+ :dword,
439
+ :lpdword,
440
+ :lpdword,
441
+ :lpdword,
442
+ :lpcwstr
443
+ ], :win32_bool
443
444
 
444
445
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365512(v=vs.85).aspx
445
446
  # BOOL WINAPI ReplaceFile(
@@ -454,7 +455,7 @@ module Puppet::FFI::Windows
454
455
  # );
455
456
  ffi_lib :kernel32
456
457
  attach_function_private :ReplaceFileW,
457
- [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpvoid, :lpvoid], :win32_bool
458
+ [:lpcwstr, :lpcwstr, :lpcwstr, :dword, :lpvoid, :lpvoid], :win32_bool
458
459
 
459
460
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365240(v=vs.85).aspx
460
461
  # BOOL WINAPI MoveFileEx(
@@ -464,7 +465,7 @@ module Puppet::FFI::Windows
464
465
  # );
465
466
  ffi_lib :kernel32
466
467
  attach_function_private :MoveFileExW,
467
- [:lpcwstr, :lpcwstr, :dword], :win32_bool
468
+ [:lpcwstr, :lpcwstr, :dword], :win32_bool
468
469
 
469
470
  # BOOLEAN WINAPI CreateSymbolicLink(
470
471
  # _In_ LPTSTR lpSymlinkFileName, - symbolic link to be created
@@ -475,7 +476,7 @@ module Puppet::FFI::Windows
475
476
  begin
476
477
  ffi_lib :kernel32
477
478
  attach_function_private :CreateSymbolicLinkW,
478
- [:lpwstr, :lpwstr, :dword], :boolean
479
+ [:lpwstr, :lpwstr, :dword], :boolean
479
480
  rescue LoadError
480
481
  end
481
482
 
@@ -486,7 +487,7 @@ module Puppet::FFI::Windows
486
487
  # );
487
488
  ffi_lib :kernel32
488
489
  attach_function_private :GetCurrentDirectoryW,
489
- [:dword, :lpwstr], :dword
490
+ [:dword, :lpwstr], :dword
490
491
 
491
492
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364944(v=vs.85).aspx
492
493
  # DWORD WINAPI GetFileAttributes(
@@ -494,7 +495,7 @@ module Puppet::FFI::Windows
494
495
  # );
495
496
  ffi_lib :kernel32
496
497
  attach_function_private :GetFileAttributesW,
497
- [:lpcwstr], :dword
498
+ [:lpcwstr], :dword
498
499
 
499
500
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa365535(v=vs.85).aspx
500
501
  # BOOL WINAPI SetFileAttributes(
@@ -503,7 +504,7 @@ module Puppet::FFI::Windows
503
504
  # );
504
505
  ffi_lib :kernel32
505
506
  attach_function_private :SetFileAttributesW,
506
- [:lpcwstr, :dword], :win32_bool
507
+ [:lpcwstr, :dword], :win32_bool
507
508
 
508
509
  # HANDLE WINAPI CreateFile(
509
510
  # _In_ LPCTSTR lpFileName,
@@ -516,7 +517,7 @@ module Puppet::FFI::Windows
516
517
  # );
517
518
  ffi_lib :kernel32
518
519
  attach_function_private :CreateFileW,
519
- [:lpcwstr, :dword, :dword, :pointer, :dword, :dword, :handle], :handle
520
+ [:lpcwstr, :dword, :dword, :pointer, :dword, :dword, :handle], :handle
520
521
 
521
522
  # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createdirectoryw
522
523
  # BOOL CreateDirectoryW(
@@ -525,7 +526,7 @@ module Puppet::FFI::Windows
525
526
  # );
526
527
  ffi_lib :kernel32
527
528
  attach_function_private :CreateDirectoryW,
528
- [:lpcwstr, :pointer], :win32_bool
529
+ [:lpcwstr, :pointer], :win32_bool
529
530
 
530
531
  # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-removedirectoryw
531
532
  # BOOL RemoveDirectoryW(
@@ -533,7 +534,7 @@ module Puppet::FFI::Windows
533
534
  # );
534
535
  ffi_lib :kernel32
535
536
  attach_function_private :RemoveDirectoryW,
536
- [:lpcwstr], :win32_bool
537
+ [:lpcwstr], :win32_bool
537
538
 
538
539
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa363216(v=vs.85).aspx
539
540
  # BOOL WINAPI DeviceIoControl(
@@ -548,7 +549,7 @@ module Puppet::FFI::Windows
548
549
  # );
549
550
  ffi_lib :kernel32
550
551
  attach_function_private :DeviceIoControl,
551
- [:handle, :dword, :lpvoid, :dword, :lpvoid, :dword, :lpdword, :pointer], :win32_bool
552
+ [:handle, :dword, :lpvoid, :dword, :lpvoid, :dword, :lpdword, :pointer], :win32_bool
552
553
 
553
554
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364980(v=vs.85).aspx
554
555
  # DWORD WINAPI GetLongPathName(
@@ -558,7 +559,7 @@ module Puppet::FFI::Windows
558
559
  # );
559
560
  ffi_lib :kernel32
560
561
  attach_function_private :GetLongPathNameW,
561
- [:lpcwstr, :lpwstr, :dword], :dword
562
+ [:lpcwstr, :lpwstr, :dword], :dword
562
563
 
563
564
  # https://msdn.microsoft.com/en-us/library/windows/desktop/aa364989(v=vs.85).aspx
564
565
  # DWORD WINAPI GetShortPathName(
@@ -568,7 +569,7 @@ module Puppet::FFI::Windows
568
569
  # );
569
570
  ffi_lib :kernel32
570
571
  attach_function_private :GetShortPathNameW,
571
- [:lpcwstr, :lpwstr, :dword], :dword
572
+ [:lpcwstr, :lpwstr, :dword], :dword
572
573
 
573
574
  # https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfullpathnamew
574
575
  # DWORD GetFullPathNameW(
@@ -579,7 +580,7 @@ module Puppet::FFI::Windows
579
580
  # );
580
581
  ffi_lib :kernel32
581
582
  attach_function_private :GetFullPathNameW,
582
- [:lpcwstr, :dword, :lpwstr, :pointer], :dword
583
+ [:lpcwstr, :dword, :lpwstr, :pointer], :dword
583
584
 
584
585
  # https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpathw
585
586
  # SHFOLDERAPI SHGetFolderPathW(
@@ -591,7 +592,7 @@ module Puppet::FFI::Windows
591
592
  # );
592
593
  ffi_lib :shell32
593
594
  attach_function_private :SHGetFolderPathW,
594
- [:hwnd, :int, :handle, :dword, :lpwstr], :dword
595
+ [:hwnd, :int, :handle, :dword, :lpwstr], :dword
595
596
 
596
597
  # https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderlocation
597
598
  # SHSTDAPI SHGetFolderLocation(
@@ -603,7 +604,7 @@ module Puppet::FFI::Windows
603
604
  # );
604
605
  ffi_lib :shell32
605
606
  attach_function_private :SHGetFolderLocation,
606
- [:hwnd, :int, :handle, :dword, :pointer], :dword
607
+ [:hwnd, :int, :handle, :dword, :pointer], :dword
607
608
 
608
609
  # https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shgetfileinfoa
609
610
  # DWORD_PTR SHGetFileInfoA(
@@ -615,7 +616,7 @@ module Puppet::FFI::Windows
615
616
  # );
616
617
  ffi_lib :shell32
617
618
  attach_function_private :SHGetFileInfo,
618
- [:dword, :dword, :pointer, :uint, :uint], :dword
619
+ [:dword, :dword, :pointer, :uint, :uint], :dword
619
620
 
620
621
  # https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectoryemptyw
621
622
  # BOOL PathIsDirectoryEmptyW(
@@ -623,6 +624,6 @@ module Puppet::FFI::Windows
623
624
  # );
624
625
  ffi_lib :shlwapi
625
626
  attach_function_private :PathIsDirectoryEmptyW,
626
- [:lpcwstr], :win32_bool
627
+ [:lpcwstr], :win32_bool
627
628
  end
628
629
  end
@@ -1,9 +1,10 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
3
+
2
4
  require_relative '../../../puppet/ffi/windows'
3
5
 
4
6
  module Puppet::FFI::Windows
5
7
  module Structs
6
-
7
8
  extend FFI::Library
8
9
  extend Puppet::FFI::Windows::APITypes
9
10
 
@@ -115,7 +116,7 @@ module Puppet::FFI::Windows
115
116
  # } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
116
117
  class TOKEN_PRIVILEGES < FFI::Struct
117
118
  layout :PrivilegeCount, :dword,
118
- :Privileges, [LUID_AND_ATTRIBUTES, 1] # placeholder for offset
119
+ :Privileges, [LUID_AND_ATTRIBUTES, 1] # placeholder for offset
119
120
  end
120
121
 
121
122
  # https://msdn.microsoft.com/en-us/library/windows/desktop/bb530717(v=vs.85).aspx
@@ -197,7 +198,7 @@ module Puppet::FFI::Windows
197
198
  :dwWin32ExitCode, :dword,
198
199
  :dwServiceSpecificExitCode, :dword,
199
200
  :dwCheckPoint, :dword,
200
- :dwWaitHint, :dword,
201
+ :dwWaitHint, :dword
201
202
  )
202
203
  end
203
204
 
@@ -222,7 +223,7 @@ module Puppet::FFI::Windows
222
223
  :dwTagId, :dword,
223
224
  :lpDependencies, :pointer,
224
225
  :lpServiceStartName, :pointer,
225
- :lpDisplayName, :pointer,
226
+ :lpDisplayName, :pointer
226
227
  )
227
228
  end
228
229
 
@@ -257,7 +258,7 @@ module Puppet::FFI::Windows
257
258
  )
258
259
  end
259
260
 
260
- MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384
261
+ MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16_384
261
262
 
262
263
  # SYMLINK_REPARSE_DATA_BUFFER
263
264
  # https://msdn.microsoft.com/en-us/library/cc232006.aspx
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ffi'
2
4
 
3
5
  module Puppet
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pathname'
2
4
  require_relative '../../puppet/file_bucket'
3
5
  require_relative '../../puppet/file_bucket/file'
@@ -30,13 +32,14 @@ class Puppet::FileBucket::Dipper
30
32
  end
31
33
 
32
34
  def local?
33
- !! @local_path
35
+ !!@local_path
34
36
  end
35
37
 
36
38
  # Backs up a file to the file bucket
37
39
  def backup(file)
38
40
  file_handle = Puppet::FileSystem.pathname(file)
39
41
  raise(ArgumentError, _("File %{file} does not exist") % { file: file }) unless Puppet::FileSystem.exist?(file_handle)
42
+
40
43
  begin
41
44
  file_bucket_file = Puppet::FileBucket::File.new(file_handle, :bucket_path => @local_path)
42
45
  files_original_path = absolutize_path(file)
@@ -49,7 +52,7 @@ class Puppet::FileBucket::Dipper
49
52
  Puppet::FileBucket::File.indirection.save(file_bucket_file, dest_path)
50
53
  end
51
54
 
52
- return file_bucket_file.checksum_data
55
+ file_bucket_file.checksum_data
53
56
  rescue => detail
54
57
  message = _("Could not back up %{file}: %{detail}") % { file: file, detail: detail }
55
58
  Puppet.log_exception(detail, message)
@@ -60,13 +63,15 @@ class Puppet::FileBucket::Dipper
60
63
  # Diffs two filebucket files identified by their sums
61
64
  def diff(checksum_a, checksum_b, file_a, file_b)
62
65
  raise RuntimeError, _("Diff is not supported on this platform") if Puppet[:diff] == ""
66
+
63
67
  if checksum_a
64
68
  source_path = "#{@rest_path}#{@checksum_type}/#{checksum_a}"
65
69
  if checksum_b
66
70
  file_diff = Puppet::FileBucket::File.indirection.find(
67
71
  source_path,
68
72
  :bucket_path => @local_path,
69
- :diff_with => checksum_b)
73
+ :diff_with => checksum_b
74
+ )
70
75
  elsif file_b
71
76
  tmp_file = ::Tempfile.new('diff')
72
77
  begin
@@ -94,6 +99,7 @@ class Puppet::FileBucket::Dipper
94
99
  end
95
100
  end
96
101
  raise Puppet::Error, _("Failed to diff files") unless file_diff
102
+
97
103
  file_diff.to_s
98
104
  end
99
105
 
@@ -108,6 +114,7 @@ class Puppet::FileBucket::Dipper
108
114
  file_bucket_file = Puppet::FileBucket::File.indirection.find(source_path, :bucket_path => @local_path)
109
115
 
110
116
  raise Puppet::Error, _("File not found") unless file_bucket_file
117
+
111
118
  file_bucket_file
112
119
  end
113
120
 
@@ -130,11 +137,11 @@ class Puppet::FileBucket::Dipper
130
137
  if newcontents
131
138
  newsum = newcontents.checksum_data
132
139
  changed = nil
133
- if Puppet::FileSystem.exist?(file_handle) and ! Puppet::FileSystem.writable?(file_handle)
140
+ if Puppet::FileSystem.exist?(file_handle) and !Puppet::FileSystem.writable?(file_handle)
134
141
  changed = Puppet::FileSystem.stat(file_handle).mode
135
- ::File.chmod(changed | 0200, file)
142
+ ::File.chmod(changed | 0o200, file)
136
143
  end
137
- ::File.open(file, ::File::WRONLY|::File::TRUNC|::File::CREAT) { |of|
144
+ ::File.open(file, ::File::WRONLY | ::File::TRUNC | ::File::CREAT) { |of|
138
145
  of.binmode
139
146
  newcontents.stream do |source_stream|
140
147
  FileUtils.copy_stream(source_stream, of)
@@ -145,9 +152,9 @@ class Puppet::FileBucket::Dipper
145
152
  Puppet.err _("Could not find file with checksum %{sum}") % { sum: sum }
146
153
  return nil
147
154
  end
148
- return newsum
155
+ newsum
149
156
  else
150
- return nil
157
+ nil
151
158
  end
152
159
  end
153
160
 
@@ -161,14 +168,16 @@ class Puppet::FileBucket::Dipper
161
168
  :bucket_path => @local_path,
162
169
  :list_all => true,
163
170
  :fromdate => fromdate,
164
- :todate => todate)
171
+ :todate => todate
172
+ )
165
173
  raise Puppet::Error, _("File not found") unless file_bucket_list
174
+
166
175
  file_bucket_list.to_s
167
176
  end
168
177
 
169
178
  private
170
- def absolutize_path( path )
179
+
180
+ def absolutize_path(path)
171
181
  Pathname.new(path).realpath
172
182
  end
173
-
174
183
  end