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,11 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range/simple'
2
4
 
3
5
  module Puppet::Util::Package::Version
4
6
  class Range
5
7
  class Eq < Simple
6
8
  def to_s
7
- "#{@version}"
9
+ @version.to_s
8
10
  end
11
+
9
12
  def include?(version)
10
13
  version == @version
11
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range/simple'
2
4
 
3
5
  module Puppet::Util::Package::Version
@@ -6,6 +8,7 @@ module Puppet::Util::Package::Version
6
8
  def to_s
7
9
  ">#{@version}"
8
10
  end
11
+
9
12
  def include?(version)
10
13
  version > @version
11
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range/simple'
2
4
 
3
5
  module Puppet::Util::Package::Version
@@ -6,6 +8,7 @@ module Puppet::Util::Package::Version
6
8
  def to_s
7
9
  ">=#{@version}"
8
10
  end
11
+
9
12
  def include?(version)
10
13
  version >= @version
11
14
  end
@@ -1,11 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range/simple'
2
4
 
3
5
  module Puppet::Util::Package::Version
4
6
  class Range
5
- class Lt< Simple
7
+ class Lt < Simple
6
8
  def to_s
7
9
  "<#{@version}"
8
10
  end
11
+
9
12
  def include?(version)
10
13
  version < @version
11
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range/simple'
2
4
 
3
5
  module Puppet::Util::Package::Version
@@ -6,6 +8,7 @@ module Puppet::Util::Package::Version
6
8
  def to_s
7
9
  "<=#{@version}"
8
10
  end
11
+
9
12
  def include?(version)
10
13
  version <= @version
11
14
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range'
2
4
 
3
5
  module Puppet::Util::Package::Version
@@ -7,12 +9,15 @@ module Puppet::Util::Package::Version
7
9
  @min = min
8
10
  @max = max
9
11
  end
12
+
10
13
  def to_s
11
14
  "#{@min} #{@max}"
12
15
  end
16
+
13
17
  def to_gem_version
14
18
  "#{@min}, #{@max}"
15
19
  end
20
+
16
21
  def include?(version)
17
22
  @min.include?(version) && @max.include?(version)
18
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../../../puppet/util/package/version/range'
2
4
 
3
5
  module Puppet::Util::Package::Version
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'range/lt'
2
4
  require_relative 'range/lt_eq'
3
5
  require_relative 'range/gt'
@@ -29,20 +31,22 @@ module Puppet::Util::Package::Version
29
31
  # @api public
30
32
  def self.parse(range_string, version_class)
31
33
  raise ValidationFailure, "Unable to parse '#{range_string}' as a string" unless range_string.is_a?(String)
34
+
32
35
  simples = range_string.split(RANGE_SPLIT).map do |simple|
33
36
  match, operator, version = *simple.match(FULL_REGEX)
34
37
  raise ValidationFailure, "Unable to parse '#{simple}' as a version range identifier" unless match
38
+
35
39
  case operator
36
40
  when '>'
37
- Gt.new(version_class::parse(version))
41
+ Gt.new(version_class.parse(version))
38
42
  when '>='
39
- GtEq.new(version_class::parse(version))
43
+ GtEq.new(version_class.parse(version))
40
44
  when '<'
41
- Lt.new(version_class::parse(version))
45
+ Lt.new(version_class.parse(version))
42
46
  when '<='
43
- LtEq.new(version_class::parse(version))
47
+ LtEq.new(version_class.parse(version))
44
48
  when ''
45
- Eq.new(version_class::parse(version))
49
+ Eq.new(version_class.parse(version))
46
50
  else
47
51
  raise ValidationFailure, "Operator '#{operator}' is not implemented"
48
52
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require_relative '../../../../puppet/util/rpm_compare'
3
4
 
4
5
  module Puppet::Util::Package::Version
@@ -14,13 +15,14 @@ module Puppet::Util::Package::Version
14
15
 
15
16
  def self.parse(ver)
16
17
  raise ValidationFailure unless ver.is_a?(String)
18
+
17
19
  version = rpm_parse_evr(ver)
18
20
  new(version[:epoch], version[:version], version[:release], version[:arch]).freeze
19
21
  end
20
22
 
21
23
  def to_s
22
- version_found = ''
23
- version_found += "#{@epoch}:" if @epoch
24
+ version_found = ''.dup
25
+ version_found += "#{@epoch}:" if @epoch
24
26
  version_found += @version
25
27
  version_found += "-#{@release}" if @release
26
28
  version_found
@@ -39,18 +41,18 @@ module Puppet::Util::Package::Version
39
41
  def <=>(other)
40
42
  raise ArgumentError, _("Cannot compare, as %{other} is not a Rpm Version") % { other: other } unless other.is_a?(self.class)
41
43
 
42
- rpm_compareEVR(self.to_s, other.to_s)
44
+ rpm_compare_evr(to_s, other.to_s)
43
45
  end
44
46
 
45
47
  private
46
48
 
47
- # overwrite rpm_compareEVR to treat no epoch as zero epoch
49
+ # overwrite rpm_compare_evr to treat no epoch as zero epoch
48
50
  # in order to compare version correctly
49
51
  #
50
52
  # returns 1 if a is newer than b,
51
53
  # 0 if they are identical
52
54
  # -1 if a is older than b
53
- def rpm_compareEVR(a, b)
55
+ def rpm_compare_evr(a, b)
54
56
  a_hash = rpm_parse_evr(a)
55
57
  b_hash = rpm_parse_evr(b)
56
58
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Puppet::Util::Package
3
4
  def versioncmp(version_a, version_b, ignore_trailing_zeroes = false)
4
5
  vre = /[-.]|\d+|[^-.\d]+/
@@ -11,7 +12,7 @@ module Puppet::Util::Package
11
12
  ax = version_a.scan(vre)
12
13
  bx = version_b.scan(vre)
13
14
 
14
- while (ax.length>0 && bx.length>0)
15
+ while ax.length > 0 && bx.length > 0
15
16
  a = ax.shift
16
17
  b = bx.shift
17
18
 
@@ -20,8 +21,10 @@ module Puppet::Util::Package
20
21
  return 1 if b == '-'
21
22
  return -1 if a == '.'
22
23
  return 1 if b == '.'
24
+
23
25
  if a =~ /^\d+$/ && b =~ /^\d+$/
24
26
  return a.to_s.upcase <=> b.to_s.upcase if a =~ /^0/ || b =~ /^0/
27
+
25
28
  return a.to_i <=> b.to_i
26
29
  end
27
30
  return a.upcase <=> b.upcase
@@ -32,7 +35,7 @@ module Puppet::Util::Package
32
35
 
33
36
  def self.normalize(version)
34
37
  version = version.split('-')
35
- version.first.sub!(/([\.0]+)$/, '')
38
+ version.first.sub!(/([.0]+)$/, '')
36
39
 
37
40
  version.join('-')
38
41
  end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require_relative '../../puppet/util/lockfile'
3
5
 
4
6
  class Puppet::Util::Pidlock
5
-
6
7
  def initialize(lockfile)
7
8
  @lockfile = Puppet::Util::Lockfile.new(lockfile)
8
9
  end
@@ -24,7 +25,7 @@ class Puppet::Util::Pidlock
24
25
 
25
26
  def unlock
26
27
  if mine?
27
- return @lockfile.unlock
28
+ @lockfile.unlock
28
29
  else
29
30
  false
30
31
  end
@@ -47,18 +48,18 @@ class Puppet::Util::Pidlock
47
48
 
48
49
  def ps_argument_for_current_kernel
49
50
  case Puppet.runtime[:facter].value(:kernel)
50
- when "Linux"
51
- "-eq"
52
- when "AIX"
53
- "-T"
54
- else
55
- "-p"
51
+ when "Linux"
52
+ "-eq"
53
+ when "AIX"
54
+ "-T"
55
+ else
56
+ "-p"
56
57
  end
57
58
  end
58
59
 
59
60
  def clear_if_stale
60
61
  pid = lock_pid
61
- return @lockfile.unlock if pid == nil
62
+ return @lockfile.unlock if pid.nil?
62
63
  return if Process.pid == pid
63
64
 
64
65
  errors = [Errno::ESRCH]
@@ -92,7 +93,7 @@ class Puppet::Util::Pidlock
92
93
  # On Windows, we're checking if the filesystem path name of the running
93
94
  # process is our vendored ruby:
94
95
  begin
95
- exe_path = Puppet::Util::Windows::Process::get_process_image_name_by_pid(pid)
96
+ exe_path = Puppet::Util::Windows::Process.get_process_image_name_by_pid(pid)
96
97
  @lockfile.unlock unless exe_path =~ /\\bin\\ruby.exe$/
97
98
  rescue Puppet::Util::Windows::Error => e
98
99
  Puppet.debug("Failed to read pidfile #{file_path}: #{e.message}")
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Puppet
2
4
  module Util
3
5
  module Platform
4
- FIPS_STATUS_FILE = "/proc/sys/crypto/fips_enabled".freeze
5
- WINDOWS_FIPS_REGISTRY_KEY = 'System\\CurrentControlSet\\Control\\Lsa\\FipsAlgorithmPolicy'.freeze
6
+ FIPS_STATUS_FILE = "/proc/sys/crypto/fips_enabled"
7
+ WINDOWS_FIPS_REGISTRY_KEY = 'System\\CurrentControlSet\\Control\\Lsa\\FipsAlgorithmPolicy'
6
8
 
7
9
  def windows?
8
10
  # Ruby only sets File::ALT_SEPARATOR on Windows and the Ruby standard
@@ -22,7 +24,7 @@ module Puppet
22
24
  def default_paths
23
25
  return [] if windows?
24
26
 
25
- %w{/usr/sbin /sbin}
27
+ %w[/usr/sbin /sbin]
26
28
  end
27
29
  module_function :default_paths
28
30
 
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'cfpropertylist' if Puppet.features.cfpropertylist?
2
4
  require_relative '../../puppet/util/execution'
3
5
 
4
6
  module Puppet::Util::Plist
5
-
6
7
  class FormatError < RuntimeError; end
7
8
 
8
9
  # So I don't have to prepend every method name with 'self.' Most of the
@@ -42,7 +43,7 @@ module Puppet::Util::Plist
42
43
  Puppet.debug "Plist #{file_path} ill-formatted, converting with plutil"
43
44
  begin
44
45
  plist = Puppet::Util::Execution.execute(['/usr/bin/plutil', '-convert', 'xml1', '-o', '-', file_path],
45
- {:failonfail => true, :combine => true})
46
+ { :failonfail => true, :combine => true })
46
47
  return parse_plist(plist)
47
48
  rescue Puppet::ExecutionFailure => detail
48
49
  message = _("Cannot read file %{file_path}; Puppet is skipping it.") % { file_path: file_path }
@@ -50,12 +51,12 @@ module Puppet::Util::Plist
50
51
  Puppet.warning(message)
51
52
  end
52
53
  end
53
- return nil
54
+ nil
54
55
  end
55
56
 
56
57
  # Read plist text using the CFPropertyList gem.
57
58
  def parse_plist(plist_data, file_path = '')
58
- bad_xml_doctype = /^.*<!DOCTYPE plist PUBLIC -\/\/Apple Computer.*$/
59
+ bad_xml_doctype = %r{^.*<!DOCTYPE plist PUBLIC -//Apple Computer.*$}
59
60
  # Depending on where parse_plist is called from, plist_data can be either XML or binary.
60
61
  # If we get XML, make sure ruby knows it's UTF-8 so we avoid invalid byte sequence errors.
61
62
  if plist_data.include?('encoding="UTF-8"') && plist_data.encoding != Encoding::UTF_8
@@ -64,7 +65,7 @@ module Puppet::Util::Plist
64
65
 
65
66
  begin
66
67
  if plist_data =~ bad_xml_doctype
67
- plist_data.gsub!( bad_xml_doctype, plist_xml_doctype )
68
+ plist_data.gsub!(bad_xml_doctype, plist_xml_doctype)
68
69
  Puppet.debug("Had to fix plist with incorrect DOCTYPE declaration: #{file_path}")
69
70
  end
70
71
  rescue ArgumentError => e
@@ -129,27 +130,26 @@ module Puppet::Util::Plist
129
130
  end
130
131
 
131
132
  def to_format(format)
132
- if format.to_sym == :xml
133
+ case format.to_sym
134
+ when :xml
133
135
  CFPropertyList::List::FORMAT_XML
134
- elsif format.to_sym == :binary
136
+ when :binary
135
137
  CFPropertyList::List::FORMAT_BINARY
136
- elsif format.to_sym == :plain
138
+ when :plain
137
139
  CFPropertyList::List::FORMAT_PLAIN
138
140
  else
139
- raise FormatError.new "Unknown plist format #{format}"
141
+ raise FormatError, "Unknown plist format #{format}"
140
142
  end
141
143
  end
142
144
 
143
145
  # This method will write a plist file using a specified format (or XML
144
146
  # by default)
145
147
  def write_plist_file(plist, file_path, format = :xml)
146
- begin
147
- plist_to_save = CFPropertyList::List.new
148
- plist_to_save.value = CFPropertyList.guess(plist)
149
- plist_to_save.save(file_path, to_format(format), :formatted => true)
150
- rescue IOError => e
151
- Puppet.err(_("Unable to write the file %{file_path}. %{error}") % { file_path: file_path, error: e.inspect })
152
- end
148
+ plist_to_save = CFPropertyList::List.new
149
+ plist_to_save.value = CFPropertyList.guess(plist)
150
+ plist_to_save.save(file_path, to_format(format), :formatted => true)
151
+ rescue IOError => e
152
+ Puppet.err(_("Unable to write the file %{file_path}. %{error}") % { file_path: file_path, error: e.inspect })
153
153
  end
154
154
 
155
155
  def dump_plist(plist_data, format = :xml)
@@ -1,13 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Utility methods for interacting with POSIX objects; mostly user and group
2
4
  module Puppet::Util::POSIX
3
-
4
5
  # This is a list of environment variables that we will set when we want to override the POSIX locale
5
- LOCALE_ENV_VARS = ['LANG', 'LC_ALL', 'LC_MESSAGES', 'LANGUAGE',
6
- 'LC_COLLATE', 'LC_CTYPE', 'LC_MONETARY', 'LC_NUMERIC', 'LC_TIME']
6
+ LOCALE_ENV_VARS = %w[LANG LC_ALL LC_MESSAGES LANGUAGE
7
+ LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME]
7
8
 
8
9
  # This is a list of user-related environment variables that we will unset when we want to provide a pristine
9
10
  # environment for "exec" runs
10
- USER_ENV_VARS = ['HOME', 'USER', 'LOGNAME']
11
+ USER_ENV_VARS = %w[HOME USER LOGNAME]
11
12
 
12
13
  class << self
13
14
  # Returns an array of all the groups that the user's a member of.
@@ -33,19 +34,20 @@ module Puppet::Util::POSIX
33
34
  end
34
35
 
35
36
  private
37
+
36
38
  def get_groups_list(user)
37
39
  raise LoadError, "The 'getgrouplist' method is not available" unless Puppet::FFI::POSIX::Functions.respond_to?(:getgrouplist)
38
40
 
39
41
  user_gid = Puppet::Etc.getpwnam(user).gid
40
42
  ngroups = Puppet::FFI::POSIX::Constants::MAXIMUM_NUMBER_OF_GROUPS
41
43
 
42
- while true do # rubocop:disable Lint/LiteralInCondition
44
+ loop do
43
45
  FFI::MemoryPointer.new(:int) do |ngroups_ptr|
44
46
  FFI::MemoryPointer.new(:uint, ngroups) do |groups_ptr|
45
47
  old_ngroups = ngroups
46
48
  ngroups_ptr.write_int(ngroups)
47
49
 
48
- if Puppet::FFI::POSIX::Functions::getgrouplist(user, user_gid, groups_ptr, ngroups_ptr) != -1
50
+ if Puppet::FFI::POSIX::Functions.getgrouplist(user, user_gid, groups_ptr, ngroups_ptr) != -1
49
51
  groups_gids = groups_ptr.get_array_of_uint(0, ngroups_ptr.read_int)
50
52
 
51
53
  result = []
@@ -85,10 +87,10 @@ module Puppet::Util::POSIX
85
87
  end
86
88
 
87
89
  begin
88
- return Etc.send(method, id).send(field)
90
+ Etc.send(method, id).send(field)
89
91
  rescue NoMethodError, ArgumentError
90
92
  # ignore it; we couldn't find the object
91
- return nil
93
+ nil
92
94
  end
93
95
  end
94
96
 
@@ -126,46 +128,46 @@ module Puppet::Util::POSIX
126
128
  # Determine what the field name is for users and groups.
127
129
  def idfield(space)
128
130
  case space.intern
129
- when :gr, :group; return :gid
130
- when :pw, :user, :passwd; return :uid
131
+ when :gr, :group; :gid
132
+ when :pw, :user, :passwd; :uid
131
133
  else
132
- raise ArgumentError.new(_("Can only handle users and groups"))
134
+ raise ArgumentError, _("Can only handle users and groups")
133
135
  end
134
136
  end
135
137
 
136
138
  # Determine what the method is to get users and groups by id
137
139
  def methodbyid(space)
138
140
  case space.intern
139
- when :gr, :group; return :getgrgid
140
- when :pw, :user, :passwd; return :getpwuid
141
+ when :gr, :group; :getgrgid
142
+ when :pw, :user, :passwd; :getpwuid
141
143
  else
142
- raise ArgumentError.new(_("Can only handle users and groups"))
144
+ raise ArgumentError, _("Can only handle users and groups")
143
145
  end
144
146
  end
145
147
 
146
148
  # Determine what the method is to get users and groups by name
147
149
  def methodbyname(space)
148
150
  case space.intern
149
- when :gr, :group; return :getgrnam
150
- when :pw, :user, :passwd; return :getpwnam
151
+ when :gr, :group; :getgrnam
152
+ when :pw, :user, :passwd; :getpwnam
151
153
  else
152
- raise ArgumentError.new(_("Can only handle users and groups"))
154
+ raise ArgumentError, _("Can only handle users and groups")
153
155
  end
154
156
  end
155
157
 
156
158
  # Get the GID
157
159
  def gid(group)
158
- get_posix_value(:group, :gid, group)
160
+ get_posix_value(:group, :gid, group)
159
161
  end
160
162
 
161
163
  # Get the UID
162
164
  def uid(user)
163
- get_posix_value(:passwd, :uid, user)
165
+ get_posix_value(:passwd, :uid, user)
164
166
  end
165
167
 
166
168
  private
167
169
 
168
- # Get the specified id_field of a given field (user or group),
170
+ # Get the specified id_field of a given field (user or group),
169
171
  # whether an ID name is provided
170
172
  def get_posix_value(location, id_field, field)
171
173
  begin
@@ -176,11 +178,13 @@ module Puppet::Util::POSIX
176
178
  if field.is_a?(Integer)
177
179
  name = get_posix_field(location, :name, field)
178
180
  return nil unless name
181
+
179
182
  id = get_posix_field(location, id_field, name)
180
183
  check_value = id
181
184
  else
182
185
  id = get_posix_field(location, id_field, field)
183
186
  return nil unless id
187
+
184
188
  name = get_posix_field(location, :name, id)
185
189
  check_value = name
186
190
  end
@@ -190,14 +194,13 @@ module Puppet::Util::POSIX
190
194
 
191
195
  if id == check_value_id
192
196
  Puppet.debug("Multiple entries found for resource: '#{location}' with #{id_field}: #{id}")
193
- return id
197
+ id
194
198
  else
195
199
  Puppet.debug("The value retrieved: '#{check_value}' is different than the required state: '#{field}', searching in all entries")
196
- return search_posix_field(location, id_field, field)
200
+ search_posix_field(location, id_field, field)
197
201
  end
198
202
  else
199
- return id
203
+ id
200
204
  end
201
205
  end
202
206
  end
203
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../puppet/util/profiler'
2
4
  require_relative '../../../puppet/util/profiler/wall_clock'
3
5
 
@@ -7,7 +9,7 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
7
9
  @metrics_hash = Metric.new
8
10
  end
9
11
 
10
- def shutdown()
12
+ def shutdown
11
13
  super
12
14
  @logger.call("AGGREGATE PROFILING RESULTS:")
13
15
  @logger.call("----------------------------")
@@ -15,10 +17,6 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
15
17
  @logger.call("----------------------------")
16
18
  end
17
19
 
18
- def do_start(description, metric_id)
19
- super(description, metric_id)
20
- end
21
-
22
20
  def do_finish(context, description, metric_id)
23
21
  result = super(context, description, metric_id)
24
22
  update_metric(@metrics_hash, metric_id, result[:time])
@@ -42,7 +40,7 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
42
40
  end
43
41
 
44
42
  def print_metrics(metrics_hash, prefix)
45
- metrics_hash.sort_by {|k,v| v.time }.reverse_each do |k,v|
43
+ metrics_hash.sort_by { |_k, v| v.time }.reverse_each do |k, v|
46
44
  @logger.call("#{prefix}#{k}: #{v.time} s (#{v.count} calls)")
47
45
  print_metrics(metrics_hash[k], "#{prefix}#{k} -> ")
48
46
  end
@@ -57,7 +55,7 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
57
55
  attr_reader :count, :time
58
56
 
59
57
  def [](key)
60
- if !has_key?(key)
58
+ unless has_key?(key)
61
59
  self[key] = Metric.new
62
60
  end
63
61
  super(key)
@@ -74,12 +72,11 @@ class Puppet::Util::Profiler::Aggregate < Puppet::Util::Profiler::WallClock
74
72
 
75
73
  class Timer
76
74
  def initialize
77
- @start = Time.now
75
+ @start = Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_second)
78
76
  end
79
77
 
80
78
  def stop
81
- Time.now - @start
79
+ Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_second) - @start
82
80
  end
83
81
  end
84
82
  end
85
-
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # A Profiler that can be used to wrap around blocks of code. It is configured
2
4
  # with other profilers and controls them to start before the block is executed
3
5
  # and finish after the block is executed.
4
6
  #
5
7
  # @api private
6
8
  class Puppet::Util::Profiler::AroundProfiler
7
-
8
9
  def initialize
9
10
  @profilers = []
10
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Puppet::Util::Profiler::Logging
2
4
  def initialize(logger, identifier)
3
5
  @logger = logger
@@ -17,7 +19,7 @@ class Puppet::Util::Profiler::Logging
17
19
  @logger.call("PROFILE [#{@identifier}] #{@sequence} #{description}: #{profile_explanation}")
18
20
  end
19
21
 
20
- def shutdown()
22
+ def shutdown
21
23
  # nothing to do
22
24
  end
23
25
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../puppet/util/profiler/logging'
2
4
 
3
5
  class Puppet::Util::Profiler::ObjectCounts < Puppet::Util::Profiler::Logging
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../../../puppet/util/profiler/logging'
2
4
 
3
5
  # A profiler implementation that measures the number of seconds a segment of
@@ -11,19 +13,19 @@ class Puppet::Util::Profiler::WallClock < Puppet::Util::Profiler::Logging
11
13
  end
12
14
 
13
15
  def do_finish(context, description, metric_id)
14
- {:time => context.stop,
15
- :msg => _("took %{context} seconds") % { context: context }}
16
+ { :time => context.stop,
17
+ :msg => _("took %{context} seconds") % { context: context } }
16
18
  end
17
19
 
18
20
  class Timer
19
21
  FOUR_DECIMAL_DIGITS = '%0.4f'
20
22
 
21
23
  def initialize
22
- @start = Time.now
24
+ @start = Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_second)
23
25
  end
24
26
 
25
27
  def stop
26
- @time = Time.now - @start
28
+ @time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_second) - @start
27
29
  @time
28
30
  end
29
31
 
@@ -32,4 +34,3 @@ class Puppet::Util::Profiler::WallClock < Puppet::Util::Profiler::Logging
32
34
  end
33
35
  end
34
36
  end
35
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'benchmark'
2
4
 
3
5
  # A simple profiling callback system.