puppet 8.5.1 → 8.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (542) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -20
  3. data/ext/windows/service/daemon.rb +49 -55
  4. data/lib/hiera/scope.rb +3 -3
  5. data/lib/hiera_puppet.rb +1 -1
  6. data/lib/puppet/agent/disabler.rb +1 -1
  7. data/lib/puppet/application/agent.rb +2 -2
  8. data/lib/puppet/application/apply.rb +2 -2
  9. data/lib/puppet/application/describe.rb +6 -6
  10. data/lib/puppet/application/device.rb +99 -100
  11. data/lib/puppet/application/doc.rb +1 -1
  12. data/lib/puppet/application/face_base.rb +7 -7
  13. data/lib/puppet/application/filebucket.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +5 -5
  15. data/lib/puppet/application/resource.rb +10 -3
  16. data/lib/puppet/application/ssl.rb +3 -3
  17. data/lib/puppet/application.rb +16 -18
  18. data/lib/puppet/coercion.rb +1 -1
  19. data/lib/puppet/configurer/downloader.rb +9 -4
  20. data/lib/puppet/configurer/fact_handler.rb +12 -13
  21. data/lib/puppet/configurer.rb +16 -18
  22. data/lib/puppet/confine/feature.rb +1 -1
  23. data/lib/puppet/confine/variable.rb +1 -1
  24. data/lib/puppet/confine.rb +2 -2
  25. data/lib/puppet/confine_collection.rb +1 -1
  26. data/lib/puppet/confiner.rb +2 -2
  27. data/lib/puppet/daemon.rb +3 -3
  28. data/lib/puppet/datatypes.rb +5 -6
  29. data/lib/puppet/defaults.rb +14 -8
  30. data/lib/puppet/environments.rb +3 -7
  31. data/lib/puppet/error.rb +3 -3
  32. data/lib/puppet/external/dot.rb +42 -34
  33. data/lib/puppet/face/catalog/select.rb +1 -1
  34. data/lib/puppet/face/epp.rb +7 -9
  35. data/lib/puppet/face/help.rb +12 -12
  36. data/lib/puppet/face/module/changes.rb +1 -3
  37. data/lib/puppet/face/module/list.rb +37 -37
  38. data/lib/puppet/face/node/clean.rb +1 -1
  39. data/lib/puppet/face/parser.rb +6 -8
  40. data/lib/puppet/face/report.rb +5 -7
  41. data/lib/puppet/facter_impl.rb +1 -1
  42. data/lib/puppet/feature/base.rb +9 -11
  43. data/lib/puppet/feature/pe_license.rb +1 -1
  44. data/lib/puppet/feature/ssh.rb +1 -1
  45. data/lib/puppet/feature/telnet.rb +3 -5
  46. data/lib/puppet/feature/zlib.rb +1 -1
  47. data/lib/puppet/ffi/windows/constants.rb +1 -1
  48. data/lib/puppet/ffi/windows/functions.rb +2 -2
  49. data/lib/puppet/ffi/windows/structs.rb +3 -3
  50. data/lib/puppet/file_bucket/dipper.rb +4 -4
  51. data/lib/puppet/file_bucket/file.rb +4 -4
  52. data/lib/puppet/file_serving/base.rb +5 -5
  53. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  54. data/lib/puppet/file_serving/configuration.rb +3 -3
  55. data/lib/puppet/file_serving/fileset.rb +13 -13
  56. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  57. data/lib/puppet/file_serving/metadata.rb +13 -9
  58. data/lib/puppet/file_serving/mount/file.rb +6 -6
  59. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  60. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  61. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  62. data/lib/puppet/file_serving/mount.rb +1 -1
  63. data/lib/puppet/file_system/file_impl.rb +3 -3
  64. data/lib/puppet/file_system/memory_impl.rb +1 -1
  65. data/lib/puppet/file_system/path_pattern.rb +1 -1
  66. data/lib/puppet/file_system/uniquefile.rb +17 -16
  67. data/lib/puppet/file_system/windows.rb +26 -18
  68. data/lib/puppet/forge/cache.rb +2 -2
  69. data/lib/puppet/forge/errors.rb +1 -1
  70. data/lib/puppet/forge/repository.rb +2 -2
  71. data/lib/puppet/forge.rb +13 -19
  72. data/lib/puppet/functions/abs.rb +2 -2
  73. data/lib/puppet/functions/camelcase.rb +1 -1
  74. data/lib/puppet/functions/compare.rb +2 -2
  75. data/lib/puppet/functions/contain.rb +1 -1
  76. data/lib/puppet/functions/defined.rb +2 -2
  77. data/lib/puppet/functions/dig.rb +1 -1
  78. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  79. data/lib/puppet/functions/get.rb +1 -1
  80. data/lib/puppet/functions/hocon_data.rb +3 -5
  81. data/lib/puppet/functions/import.rb +1 -1
  82. data/lib/puppet/functions/json_data.rb +4 -6
  83. data/lib/puppet/functions/max.rb +2 -2
  84. data/lib/puppet/functions/min.rb +2 -2
  85. data/lib/puppet/functions/new.rb +1 -1
  86. data/lib/puppet/functions/reduce.rb +6 -10
  87. data/lib/puppet/functions/regsubst.rb +2 -2
  88. data/lib/puppet/functions/require.rb +1 -1
  89. data/lib/puppet/functions/yaml_data.rb +11 -13
  90. data/lib/puppet/functions.rb +32 -37
  91. data/lib/puppet/generate/type.rb +2 -2
  92. data/lib/puppet/gettext/config.rb +9 -9
  93. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  94. data/lib/puppet/graph/relationship_graph.rb +12 -12
  95. data/lib/puppet/graph/simple_graph.rb +8 -10
  96. data/lib/puppet/http/client.rb +1 -1
  97. data/lib/puppet/http/dns.rb +4 -4
  98. data/lib/puppet/http/external_client.rb +1 -1
  99. data/lib/puppet/http/factory.rb +1 -1
  100. data/lib/puppet/http/proxy.rb +15 -15
  101. data/lib/puppet/http/redirector.rb +6 -2
  102. data/lib/puppet/http/resolver.rb +2 -2
  103. data/lib/puppet/http/retry_after_handler.rb +2 -2
  104. data/lib/puppet/http/service/ca.rb +1 -1
  105. data/lib/puppet/http/service/compiler.rb +4 -4
  106. data/lib/puppet/http/service/file_server.rb +1 -1
  107. data/lib/puppet/http/service/report.rb +2 -2
  108. data/lib/puppet/http/service.rb +9 -13
  109. data/lib/puppet/http/session.rb +1 -1
  110. data/lib/puppet/http/site.rb +1 -1
  111. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  112. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  113. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  114. data/lib/puppet/indirector/exec.rb +2 -2
  115. data/lib/puppet/indirector/face.rb +7 -9
  116. data/lib/puppet/indirector/fact_search.rb +1 -1
  117. data/lib/puppet/indirector/facts/facter.rb +6 -6
  118. data/lib/puppet/indirector/facts/json.rb +1 -1
  119. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  120. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  121. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  122. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  123. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  124. data/lib/puppet/indirector/hiera.rb +1 -1
  125. data/lib/puppet/indirector/indirection.rb +27 -29
  126. data/lib/puppet/indirector/json.rb +4 -4
  127. data/lib/puppet/indirector/memory.rb +2 -2
  128. data/lib/puppet/indirector/msgpack.rb +5 -5
  129. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  130. data/lib/puppet/indirector/none.rb +1 -1
  131. data/lib/puppet/indirector/report/json.rb +1 -1
  132. data/lib/puppet/indirector/report/yaml.rb +1 -1
  133. data/lib/puppet/indirector/request.rb +4 -4
  134. data/lib/puppet/indirector/resource/ral.rb +2 -4
  135. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  136. data/lib/puppet/indirector/terminus.rb +4 -4
  137. data/lib/puppet/indirector/yaml.rb +3 -3
  138. data/lib/puppet/info_service/class_information_service.rb +5 -8
  139. data/lib/puppet/info_service/task_information_service.rb +6 -7
  140. data/lib/puppet/interface/action.rb +5 -5
  141. data/lib/puppet/interface/action_manager.rb +5 -5
  142. data/lib/puppet/interface/documentation.rb +5 -5
  143. data/lib/puppet/interface/face_collection.rb +7 -7
  144. data/lib/puppet/interface/option.rb +2 -2
  145. data/lib/puppet/interface/option_manager.rb +6 -6
  146. data/lib/puppet/interface.rb +4 -4
  147. data/lib/puppet/metatype/manager.rb +2 -2
  148. data/lib/puppet/module/plan.rb +10 -10
  149. data/lib/puppet/module/task.rb +8 -8
  150. data/lib/puppet/module.rb +39 -41
  151. data/lib/puppet/module_tool/applications/application.rb +10 -8
  152. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  153. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  154. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  155. data/lib/puppet/module_tool/checksums.rb +2 -2
  156. data/lib/puppet/module_tool/dependency.rb +1 -1
  157. data/lib/puppet/module_tool/errors/base.rb +1 -1
  158. data/lib/puppet/module_tool/install_directory.rb +1 -1
  159. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  160. data/lib/puppet/module_tool/metadata.rb +12 -8
  161. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  162. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  163. data/lib/puppet/module_tool.rb +4 -4
  164. data/lib/puppet/network/client_request.rb +5 -3
  165. data/lib/puppet/network/format.rb +2 -2
  166. data/lib/puppet/network/format_support.rb +1 -1
  167. data/lib/puppet/network/formats.rb +1 -1
  168. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  169. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  170. data/lib/puppet/network/http/connection.rb +1 -1
  171. data/lib/puppet/network/http/handler.rb +8 -12
  172. data/lib/puppet/network/http/request.rb +1 -1
  173. data/lib/puppet/network/http/route.rb +9 -9
  174. data/lib/puppet/node/environment.rb +21 -23
  175. data/lib/puppet/node/facts.rb +1 -1
  176. data/lib/puppet/node.rb +5 -5
  177. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  178. data/lib/puppet/pal/pal_impl.rb +48 -50
  179. data/lib/puppet/pal/plan_signature.rb +1 -1
  180. data/lib/puppet/pal/task_signature.rb +1 -1
  181. data/lib/puppet/parameter/package_options.rb +1 -1
  182. data/lib/puppet/parameter/value.rb +2 -2
  183. data/lib/puppet/parameter/value_collection.rb +7 -7
  184. data/lib/puppet/parameter.rb +8 -9
  185. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  186. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  187. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  188. data/lib/puppet/parser/ast/resource.rb +4 -4
  189. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  190. data/lib/puppet/parser/ast.rb +14 -15
  191. data/lib/puppet/parser/compiler.rb +26 -28
  192. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  193. data/lib/puppet/parser/functions/fail.rb +1 -1
  194. data/lib/puppet/parser/functions/generate.rb +2 -2
  195. data/lib/puppet/parser/functions/tag.rb +1 -1
  196. data/lib/puppet/parser/functions.rb +2 -2
  197. data/lib/puppet/parser/relationship.rb +3 -1
  198. data/lib/puppet/parser/resource/param.rb +2 -2
  199. data/lib/puppet/parser/resource.rb +23 -23
  200. data/lib/puppet/parser/scope.rb +10 -10
  201. data/lib/puppet/parser/script_compiler.rb +1 -1
  202. data/lib/puppet/parser/templatewrapper.rb +1 -1
  203. data/lib/puppet/parser/type_loader.rb +10 -12
  204. data/lib/puppet/parser.rb +1 -1
  205. data/lib/puppet/pops/adaptable.rb +1 -1
  206. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  207. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  208. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  209. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  210. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  211. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  212. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  213. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  214. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  215. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  216. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  217. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  218. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  219. data/lib/puppet/pops/functions/function.rb +14 -16
  220. data/lib/puppet/pops/issue_reporter.rb +2 -2
  221. data/lib/puppet/pops/label_provider.rb +2 -2
  222. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  223. data/lib/puppet/pops/loader/loader.rb +4 -4
  224. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  225. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  226. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  227. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  228. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  229. data/lib/puppet/pops/loader/static_loader.rb +3 -3
  230. data/lib/puppet/pops/loaders.rb +3 -3
  231. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  232. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  233. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  234. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  235. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  236. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  237. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  238. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  239. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  240. data/lib/puppet/pops/merge_strategy.rb +6 -6
  241. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  242. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  243. data/lib/puppet/pops/model/factory.rb +4 -5
  244. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  245. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  246. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  247. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  248. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  249. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  250. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  251. data/lib/puppet/pops/parser/locator.rb +4 -4
  252. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  253. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  254. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  255. data/lib/puppet/pops/patterns.rb +12 -12
  256. data/lib/puppet/pops/pcore.rb +1 -1
  257. data/lib/puppet/pops/pn.rb +2 -2
  258. data/lib/puppet/pops/puppet_stack.rb +1 -1
  259. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  260. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  261. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  262. data/lib/puppet/pops/time/timestamp.rb +1 -1
  263. data/lib/puppet/pops/types/class_loader.rb +4 -6
  264. data/lib/puppet/pops/types/iterable.rb +1 -1
  265. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  266. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  267. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  268. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  269. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  270. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  271. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  272. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  273. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  274. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  275. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  276. data/lib/puppet/pops/types/string_converter.rb +12 -8
  277. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  278. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  279. data/lib/puppet/pops/types/type_factory.rb +7 -3
  280. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  281. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  282. data/lib/puppet/pops/types/types.rb +28 -24
  283. data/lib/puppet/pops/utils.rb +38 -42
  284. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  285. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  286. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  287. data/lib/puppet/pops/validation.rb +4 -4
  288. data/lib/puppet/pops/visitor.rb +2 -2
  289. data/lib/puppet/property/ensure.rb +12 -14
  290. data/lib/puppet/property/keyvalue.rb +4 -4
  291. data/lib/puppet/property/list.rb +4 -4
  292. data/lib/puppet/property/ordered_list.rb +1 -1
  293. data/lib/puppet/property.rb +31 -33
  294. data/lib/puppet/provider/exec.rb +2 -2
  295. data/lib/puppet/provider/file/posix.rb +19 -17
  296. data/lib/puppet/provider/file/windows.rb +13 -19
  297. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  298. data/lib/puppet/provider/group/groupadd.rb +4 -4
  299. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  300. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  301. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  302. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  303. data/lib/puppet/provider/nameservice.rb +8 -8
  304. data/lib/puppet/provider/package/aix.rb +19 -19
  305. data/lib/puppet/provider/package/appdmg.rb +2 -2
  306. data/lib/puppet/provider/package/apple.rb +1 -1
  307. data/lib/puppet/provider/package/apt.rb +18 -18
  308. data/lib/puppet/provider/package/aptitude.rb +1 -3
  309. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  310. data/lib/puppet/provider/package/blastwave.rb +10 -14
  311. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  312. data/lib/puppet/provider/package/dpkg.rb +11 -13
  313. data/lib/puppet/provider/package/fink.rb +14 -14
  314. data/lib/puppet/provider/package/freebsd.rb +1 -1
  315. data/lib/puppet/provider/package/gem.rb +12 -14
  316. data/lib/puppet/provider/package/macports.rb +2 -2
  317. data/lib/puppet/provider/package/nim.rb +10 -10
  318. data/lib/puppet/provider/package/openbsd.rb +22 -22
  319. data/lib/puppet/provider/package/opkg.rb +6 -6
  320. data/lib/puppet/provider/package/pacman.rb +35 -29
  321. data/lib/puppet/provider/package/pip.rb +25 -24
  322. data/lib/puppet/provider/package/pkg.rb +15 -15
  323. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  324. data/lib/puppet/provider/package/pkgin.rb +2 -2
  325. data/lib/puppet/provider/package/pkgng.rb +5 -5
  326. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  327. data/lib/puppet/provider/package/portage.rb +59 -61
  328. data/lib/puppet/provider/package/ports.rb +12 -11
  329. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  330. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  331. data/lib/puppet/provider/package/rpm.rb +26 -26
  332. data/lib/puppet/provider/package/rug.rb +7 -9
  333. data/lib/puppet/provider/package/sun.rb +4 -4
  334. data/lib/puppet/provider/package/up2date.rb +5 -7
  335. data/lib/puppet/provider/package/urpmi.rb +6 -6
  336. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  337. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  338. data/lib/puppet/provider/package/windows/package.rb +2 -2
  339. data/lib/puppet/provider/package/windows.rb +3 -5
  340. data/lib/puppet/provider/package/yum.rb +33 -37
  341. data/lib/puppet/provider/package/zypper.rb +12 -14
  342. data/lib/puppet/provider/package.rb +1 -1
  343. data/lib/puppet/provider/package_targetable.rb +1 -1
  344. data/lib/puppet/provider/parsedfile.rb +9 -9
  345. data/lib/puppet/provider/service/base.rb +16 -21
  346. data/lib/puppet/provider/service/bsd.rb +4 -4
  347. data/lib/puppet/provider/service/daemontools.rb +31 -31
  348. data/lib/puppet/provider/service/debian.rb +6 -6
  349. data/lib/puppet/provider/service/freebsd.rb +36 -36
  350. data/lib/puppet/provider/service/gentoo.rb +6 -6
  351. data/lib/puppet/provider/service/init.rb +19 -19
  352. data/lib/puppet/provider/service/launchd.rb +22 -22
  353. data/lib/puppet/provider/service/openbsd.rb +10 -10
  354. data/lib/puppet/provider/service/openrc.rb +1 -1
  355. data/lib/puppet/provider/service/openwrt.rb +3 -3
  356. data/lib/puppet/provider/service/rcng.rb +3 -3
  357. data/lib/puppet/provider/service/redhat.rb +4 -4
  358. data/lib/puppet/provider/service/runit.rb +6 -6
  359. data/lib/puppet/provider/service/service.rb +5 -7
  360. data/lib/puppet/provider/service/smf.rb +28 -27
  361. data/lib/puppet/provider/service/src.rb +7 -7
  362. data/lib/puppet/provider/service/systemd.rb +31 -37
  363. data/lib/puppet/provider/service/upstart.rb +17 -17
  364. data/lib/puppet/provider/service/windows.rb +7 -7
  365. data/lib/puppet/provider/user/aix.rb +4 -2
  366. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  367. data/lib/puppet/provider/user/hpux.rb +10 -14
  368. data/lib/puppet/provider/user/pw.rb +1 -1
  369. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  370. data/lib/puppet/provider/user/useradd.rb +7 -7
  371. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  372. data/lib/puppet/provider.rb +8 -8
  373. data/lib/puppet/reference/indirection.rb +3 -0
  374. data/lib/puppet/reference/metaparameter.rb +1 -1
  375. data/lib/puppet/reference/providers.rb +3 -3
  376. data/lib/puppet/reference/type.rb +1 -1
  377. data/lib/puppet/relationship.rb +4 -5
  378. data/lib/puppet/reports/http.rb +1 -1
  379. data/lib/puppet/reports/log.rb +2 -2
  380. data/lib/puppet/reports/store.rb +4 -4
  381. data/lib/puppet/reports.rb +2 -2
  382. data/lib/puppet/resource/catalog.rb +16 -16
  383. data/lib/puppet/resource/status.rb +3 -3
  384. data/lib/puppet/resource/type.rb +8 -8
  385. data/lib/puppet/resource/type_collection.rb +1 -1
  386. data/lib/puppet/resource.rb +41 -41
  387. data/lib/puppet/scheduler/scheduler.rb +1 -1
  388. data/lib/puppet/settings/alias_setting.rb +3 -5
  389. data/lib/puppet/settings/base_setting.rb +11 -11
  390. data/lib/puppet/settings/boolean_setting.rb +2 -2
  391. data/lib/puppet/settings/config_file.rb +5 -4
  392. data/lib/puppet/settings/duration_setting.rb +2 -2
  393. data/lib/puppet/settings/environment_conf.rb +3 -3
  394. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  395. data/lib/puppet/settings/file_setting.rb +11 -11
  396. data/lib/puppet/settings/ini_file.rb +3 -3
  397. data/lib/puppet/settings/port_setting.rb +1 -1
  398. data/lib/puppet/settings/priority_setting.rb +2 -2
  399. data/lib/puppet/settings/ttl_setting.rb +2 -2
  400. data/lib/puppet/settings/value_translator.rb +8 -8
  401. data/lib/puppet/settings.rb +65 -70
  402. data/lib/puppet/ssl/base.rb +2 -4
  403. data/lib/puppet/ssl/certificate_request.rb +18 -22
  404. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  405. data/lib/puppet/ssl/oids.rb +2 -2
  406. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  407. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  408. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  409. data/lib/puppet/syntax_checkers/json.rb +3 -3
  410. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  411. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  412. data/lib/puppet/transaction/event.rb +2 -2
  413. data/lib/puppet/transaction/event_manager.rb +5 -5
  414. data/lib/puppet/transaction/persistence.rb +12 -14
  415. data/lib/puppet/transaction/report.rb +4 -4
  416. data/lib/puppet/transaction/resource_harness.rb +2 -2
  417. data/lib/puppet/transaction.rb +14 -18
  418. data/lib/puppet/type/component.rb +3 -3
  419. data/lib/puppet/type/exec.rb +43 -45
  420. data/lib/puppet/type/file/checksum_value.rb +1 -1
  421. data/lib/puppet/type/file/content.rb +6 -6
  422. data/lib/puppet/type/file/ctime.rb +2 -2
  423. data/lib/puppet/type/file/data_sync.rb +3 -3
  424. data/lib/puppet/type/file/ensure.rb +16 -15
  425. data/lib/puppet/type/file/mode.rb +9 -9
  426. data/lib/puppet/type/file/mtime.rb +2 -2
  427. data/lib/puppet/type/file/selcontext.rb +14 -14
  428. data/lib/puppet/type/file/source.rb +19 -21
  429. data/lib/puppet/type/file/target.rb +11 -11
  430. data/lib/puppet/type/file.rb +21 -21
  431. data/lib/puppet/type/filebucket.rb +3 -3
  432. data/lib/puppet/type/group.rb +3 -3
  433. data/lib/puppet/type/notify.rb +2 -2
  434. data/lib/puppet/type/package.rb +4 -4
  435. data/lib/puppet/type/resources.rb +6 -6
  436. data/lib/puppet/type/schedule.rb +9 -9
  437. data/lib/puppet/type/service.rb +6 -8
  438. data/lib/puppet/type/tidy.rb +22 -24
  439. data/lib/puppet/type/user.rb +13 -13
  440. data/lib/puppet/type.rb +76 -88
  441. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  442. data/lib/puppet/util/autoload.rb +2 -2
  443. data/lib/puppet/util/backups.rb +9 -9
  444. data/lib/puppet/util/character_encoding.rb +7 -6
  445. data/lib/puppet/util/checksums.rb +2 -2
  446. data/lib/puppet/util/classgen.rb +8 -8
  447. data/lib/puppet/util/colors.rb +1 -1
  448. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  449. data/lib/puppet/util/command_line/trollop.rb +42 -46
  450. data/lib/puppet/util/command_line.rb +2 -2
  451. data/lib/puppet/util/constant_inflector.rb +2 -2
  452. data/lib/puppet/util/diff.rb +19 -21
  453. data/lib/puppet/util/docs.rb +2 -2
  454. data/lib/puppet/util/errors.rb +9 -9
  455. data/lib/puppet/util/execution.rb +32 -9
  456. data/lib/puppet/util/feature.rb +1 -1
  457. data/lib/puppet/util/fileparsing.rb +12 -16
  458. data/lib/puppet/util/filetype.rb +36 -40
  459. data/lib/puppet/util/inifile.rb +6 -12
  460. data/lib/puppet/util/ldap/connection.rb +1 -1
  461. data/lib/puppet/util/ldap/manager.rb +10 -12
  462. data/lib/puppet/util/lockfile.rb +6 -8
  463. data/lib/puppet/util/log/destination.rb +2 -2
  464. data/lib/puppet/util/log/destinations.rb +4 -4
  465. data/lib/puppet/util/log.rb +12 -9
  466. data/lib/puppet/util/logging.rb +11 -11
  467. data/lib/puppet/util/metric.rb +3 -3
  468. data/lib/puppet/util/monkey_patches.rb +5 -7
  469. data/lib/puppet/util/network_device/config.rb +3 -3
  470. data/lib/puppet/util/package/version/debian.rb +27 -28
  471. data/lib/puppet/util/package/version/pip.rb +5 -5
  472. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  473. data/lib/puppet/util/package/version/rpm.rb +1 -1
  474. data/lib/puppet/util/package.rb +2 -2
  475. data/lib/puppet/util/pidlock.rb +2 -2
  476. data/lib/puppet/util/platform.rb +1 -1
  477. data/lib/puppet/util/plist.rb +8 -10
  478. data/lib/puppet/util/posix.rb +17 -17
  479. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  480. data/lib/puppet/util/provider_features.rb +3 -3
  481. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  482. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  483. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  484. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  485. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  486. data/lib/puppet/util/rdoc/parser.rb +1 -1
  487. data/lib/puppet/util/reference.rb +13 -9
  488. data/lib/puppet/util/retry_action.rb +1 -1
  489. data/lib/puppet/util/rpm_compare.rb +17 -18
  490. data/lib/puppet/util/rubygems.rb +1 -1
  491. data/lib/puppet/util/selinux.rb +7 -7
  492. data/lib/puppet/util/storage.rb +10 -12
  493. data/lib/puppet/util/suidmanager.rb +18 -19
  494. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  495. data/lib/puppet/util/tag_set.rb +2 -2
  496. data/lib/puppet/util/tagging.rb +8 -10
  497. data/lib/puppet/util/terminal.rb +4 -4
  498. data/lib/puppet/util/user_attr.rb +7 -7
  499. data/lib/puppet/util/watcher.rb +3 -5
  500. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  501. data/lib/puppet/util/windows/adsi.rb +42 -42
  502. data/lib/puppet/util/windows/daemon.rb +64 -68
  503. data/lib/puppet/util/windows/error.rb +2 -2
  504. data/lib/puppet/util/windows/file.rb +18 -25
  505. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  506. data/lib/puppet/util/windows/principal.rb +8 -8
  507. data/lib/puppet/util/windows/process.rb +16 -28
  508. data/lib/puppet/util/windows/registry.rb +16 -15
  509. data/lib/puppet/util/windows/root_certs.rb +2 -2
  510. data/lib/puppet/util/windows/security.rb +31 -31
  511. data/lib/puppet/util/windows/service.rb +11 -11
  512. data/lib/puppet/util/windows/sid.rb +8 -8
  513. data/lib/puppet/util/windows/user.rb +18 -20
  514. data/lib/puppet/util/yaml.rb +1 -1
  515. data/lib/puppet/util.rb +55 -46
  516. data/lib/puppet/version.rb +2 -2
  517. data/lib/puppet/x509/pem_store.rb +1 -1
  518. data/lib/puppet.rb +3 -3
  519. data/man/man5/puppet.conf.5 +10 -2
  520. data/man/man8/puppet-agent.8 +1 -1
  521. data/man/man8/puppet-apply.8 +1 -1
  522. data/man/man8/puppet-catalog.8 +1 -1
  523. data/man/man8/puppet-config.8 +1 -1
  524. data/man/man8/puppet-describe.8 +1 -1
  525. data/man/man8/puppet-device.8 +1 -1
  526. data/man/man8/puppet-doc.8 +1 -1
  527. data/man/man8/puppet-epp.8 +1 -1
  528. data/man/man8/puppet-facts.8 +1 -1
  529. data/man/man8/puppet-filebucket.8 +1 -1
  530. data/man/man8/puppet-generate.8 +1 -1
  531. data/man/man8/puppet-help.8 +1 -1
  532. data/man/man8/puppet-lookup.8 +1 -1
  533. data/man/man8/puppet-module.8 +1 -1
  534. data/man/man8/puppet-node.8 +1 -1
  535. data/man/man8/puppet-parser.8 +1 -1
  536. data/man/man8/puppet-plugin.8 +1 -1
  537. data/man/man8/puppet-report.8 +1 -1
  538. data/man/man8/puppet-resource.8 +5 -1
  539. data/man/man8/puppet-script.8 +1 -1
  540. data/man/man8/puppet-ssl.8 +1 -1
  541. data/man/man8/puppet.8 +2 -2
  542. metadata +2 -2
@@ -26,7 +26,7 @@ class CollectorTransformer
26
26
 
27
27
  fail "Resource type #{type} doesn't exist" unless resource_type
28
28
 
29
- if !o.operations.empty?
29
+ unless o.operations.empty?
30
30
  overrides = {
31
31
  :parameters => o.operations.map { |x| @@evaluator.evaluate(x, scope) }.flatten,
32
32
  :file => o.file,
@@ -182,19 +182,19 @@ class CollectorTransformer
182
182
  def match_AndExpression(o, scope)
183
183
  left_match = match(o.left_expr, scope)
184
184
  right_match = match(o.right_expr, scope)
185
- return [left_match, 'and', right_match]
185
+ [left_match, 'and', right_match]
186
186
  end
187
187
 
188
188
  def match_OrExpression(o, scope)
189
189
  left_match = match(o.left_expr, scope)
190
190
  right_match = match(o.right_expr, scope)
191
- return [left_match, 'or', right_match]
191
+ [left_match, 'or', right_match]
192
192
  end
193
193
 
194
194
  def match_ComparisonExpression(o, scope)
195
195
  left_match = match(o.left_expr, scope)
196
196
  right_match = match(o.right_expr, scope)
197
- return [left_match, o.operator.to_s, right_match]
197
+ [left_match, o.operator.to_s, right_match]
198
198
  end
199
199
 
200
200
  def match_VariableExpression(o, scope)
@@ -28,7 +28,7 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
28
28
  @collected = {}
29
29
  @scope = scope
30
30
 
31
- if !(overrides.nil? || overrides[:parameters])
31
+ unless overrides.nil? || overrides[:parameters]
32
32
  raise ArgumentError, _("Exported resource try to override without parameters")
33
33
  end
34
34
 
@@ -50,12 +50,12 @@ class Puppet::Pops::Evaluator::Collectors::AbstractCollector
50
50
  overrides[:source].override = true
51
51
 
52
52
  objects.each do |res|
53
- unless @collected.include?(res.ref)
54
- t = res.type
55
- t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t)
56
- newres = Puppet::Parser::Resource.new(t, res.title, @overrides)
57
- scope.compiler.add_override(newres)
58
- end
53
+ next if @collected.include?(res.ref)
54
+
55
+ t = res.type
56
+ t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t)
57
+ newres = Puppet::Parser::Resource.new(t, res.title, @overrides)
58
+ scope.compiler.add_override(newres)
59
59
  end
60
60
  end
61
61
 
@@ -18,14 +18,14 @@ class Puppet::Pops::Evaluator::Collectors::FixedSetCollector < Puppet::Pops::Eva
18
18
  resolved = []
19
19
  result = @resources.each_with_object([]) do |ref, memo|
20
20
  res = @scope.findresource(ref.to_s)
21
- if res
22
- res.virtual = false
23
- memo << res
24
- resolved << ref
25
- end
21
+ next unless res
22
+
23
+ res.virtual = false
24
+ memo << res
25
+ resolved << ref
26
26
  end
27
27
 
28
- @resources = @resources - resolved
28
+ @resources -= resolved
29
29
 
30
30
  @scope.compiler.delete_collection(self) if @resources.empty?
31
31
 
@@ -50,7 +50,7 @@ class CompareOperator
50
50
  def cmp_String(a, b)
51
51
  return a.casecmp(b) if b.is_a?(String)
52
52
 
53
- raise ArgumentError.new(_("A String is not comparable to a non String"))
53
+ raise ArgumentError, _("A String is not comparable to a non String")
54
54
  end
55
55
 
56
56
  # Equality is case independent.
@@ -67,7 +67,7 @@ class CompareOperator
67
67
  when Time::Timespan, Time::Timestamp
68
68
  -(b <=> a) # compare other way and invert result
69
69
  else
70
- raise ArgumentError.new(_("A Numeric is not comparable to non Numeric"))
70
+ raise ArgumentError, _("A Numeric is not comparable to non Numeric")
71
71
  end
72
72
  end
73
73
 
@@ -97,30 +97,30 @@ class CompareOperator
97
97
  if b.is_a?(Symbol)
98
98
  a <=> b
99
99
  else
100
- raise ArgumentError.new(_("Symbol not comparable to non Symbol"))
100
+ raise ArgumentError, _("Symbol not comparable to non Symbol")
101
101
  end
102
102
  end
103
103
 
104
104
  def cmp_Timespan(a, b)
105
- raise ArgumentError.new(_('Timespans are only comparable to Timespans, Integers, and Floats')) unless b.is_a?(Time::Timespan) || b.is_a?(Integer) || b.is_a?(Float)
105
+ raise ArgumentError, _('Timespans are only comparable to Timespans, Integers, and Floats') unless b.is_a?(Time::Timespan) || b.is_a?(Integer) || b.is_a?(Float)
106
106
 
107
107
  a <=> b
108
108
  end
109
109
 
110
110
  def cmp_Timestamp(a, b)
111
- raise ArgumentError.new(_('Timestamps are only comparable to Timestamps, Integers, and Floats')) unless b.is_a?(Time::Timestamp) || b.is_a?(Integer) || b.is_a?(Float)
111
+ raise ArgumentError, _('Timestamps are only comparable to Timestamps, Integers, and Floats') unless b.is_a?(Time::Timestamp) || b.is_a?(Integer) || b.is_a?(Float)
112
112
 
113
113
  a <=> b
114
114
  end
115
115
 
116
116
  def cmp_Version(a, b)
117
- raise ArgumentError.new(_('Versions not comparable to non Versions')) unless b.is_a?(SemanticPuppet::Version)
117
+ raise ArgumentError, _('Versions not comparable to non Versions') unless b.is_a?(SemanticPuppet::Version)
118
118
 
119
119
  a <=> b
120
120
  end
121
121
 
122
122
  def cmp_Object(a, b)
123
- raise ArgumentError.new(_('Only Strings, Numbers, Timespans, Timestamps, and Versions are comparable'))
123
+ raise ArgumentError, _('Only Strings, Numbers, Timespans, Timestamps, and Versions are comparable')
124
124
  end
125
125
 
126
126
  def equals_Object(a, b)
@@ -183,15 +183,15 @@ class CompareOperator
183
183
  end
184
184
  # Always set match data, a "not found" should not keep old match data visible
185
185
  set_match_data(matched, scope) # creates ephemeral
186
- return !!matched
186
+ !!matched
187
187
  when String, SemanticPuppet::Version
188
188
  a.any? { |element| match(b, element, scope) }
189
189
  when Types::PAnyType
190
190
  a.each { |element| return true if b.instance?(element) }
191
- return false
191
+ false
192
192
  else
193
193
  a.each { |element| return true if equals(element, b) }
194
- return false
194
+ false
195
195
  end
196
196
  end
197
197
 
@@ -172,7 +172,7 @@ class DeferredResolver
172
172
  else
173
173
  # call the function later
174
174
  DeferredValue.new(
175
- Proc.new {
175
+ proc {
176
176
  # deferred functions can have nested deferred arguments
177
177
  resolved_arguments = mapped_arguments.map { |arg| resolve_lazy_args(arg) }
178
178
  @scope.call_function(func_name, resolved_arguments)
@@ -31,7 +31,7 @@ class Puppet::Pops::Evaluator::EppEvaluator
31
31
 
32
32
  unless Puppet::FileSystem.exist?(file)
33
33
  unless file =~ /\.epp$/
34
- file = file + ".epp"
34
+ file += ".epp"
35
35
  end
36
36
  end
37
37
 
@@ -82,7 +82,7 @@ class Puppet::Pops::Evaluator::EppEvaluator
82
82
  end
83
83
 
84
84
  # filter out all qualified names and set them in qualified_variables
85
- # only pass unqualified (filtered) variable names to the the template
85
+ # only pass unqualified (filtered) variable names to the template
86
86
  filtered_args = {}
87
87
  template_args.each_pair do |k, v|
88
88
  if k =~ /::/
@@ -74,46 +74,44 @@ class EvaluatorImpl
74
74
  # @api public
75
75
  #
76
76
  def evaluate(target, scope)
77
- begin
78
- @@eval_visitor.visit_this_1(self, target, scope)
79
- rescue SemanticError => e
80
- # A raised issue may not know the semantic target, use errors call stack, but fill in the
81
- # rest from a supplied semantic object, or the target instruction if there is not semantic
82
- # object.
83
- #
84
- fail(e.issue, e.semantic || target, e.options, e)
85
- rescue Puppet::PreformattedError => e
86
- # Already formatted with location information, and with the wanted call stack.
87
- # Note this is currently a specialized ParseError, so rescue-order is important
88
- #
89
- raise e
90
- rescue Puppet::ParseError => e
91
- # ParseError may be raised in ruby code without knowing the location
92
- # in puppet code.
93
- # Accept a ParseError that has file or line information available
94
- # as an error that should be used verbatim. (Tests typically run without
95
- # setting a file name).
96
- # ParseError can supply an original - it is impossible to determine which
97
- # call stack that should be propagated, using the ParseError's backtrace.
98
- #
99
- if e.file || e.line
100
- raise e
101
- else
102
- # Since it had no location information, treat it as user intended a general purpose
103
- # error. Pass on its call stack.
104
- fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
105
- end
106
- rescue Puppet::Error => e
107
- # PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
108
- # call stack instead
109
- fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e.original || e)
110
- rescue StopIteration => e
111
- # Ensure these are not rescued as StandardError
77
+ @@eval_visitor.visit_this_1(self, target, scope)
78
+ rescue SemanticError => e
79
+ # A raised issue may not know the semantic target, use errors call stack, but fill in the
80
+ # rest from a supplied semantic object, or the target instruction if there is not semantic
81
+ # object.
82
+ #
83
+ fail(e.issue, e.semantic || target, e.options, e)
84
+ rescue Puppet::PreformattedError => e
85
+ # Already formatted with location information, and with the wanted call stack.
86
+ # Note this is currently a specialized ParseError, so rescue-order is important
87
+ #
88
+ raise e
89
+ rescue Puppet::ParseError => e
90
+ # ParseError may be raised in ruby code without knowing the location
91
+ # in puppet code.
92
+ # Accept a ParseError that has file or line information available
93
+ # as an error that should be used verbatim. (Tests typically run without
94
+ # setting a file name).
95
+ # ParseError can supply an original - it is impossible to determine which
96
+ # call stack that should be propagated, using the ParseError's backtrace.
97
+ #
98
+ if e.file || e.line
112
99
  raise e
113
- rescue StandardError => e
114
- # All other errors, use its message and call stack
100
+ else
101
+ # Since it had no location information, treat it as user intended a general purpose
102
+ # error. Pass on its call stack.
115
103
  fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
116
104
  end
105
+ rescue Puppet::Error => e
106
+ # PuppetError has the ability to wrap an exception, if so, use the wrapped exception's
107
+ # call stack instead
108
+ fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e.original || e)
109
+ rescue StopIteration => e
110
+ # Ensure these are not rescued as StandardError
111
+ raise e
112
+ rescue StandardError => e
113
+ # All other errors, use its message and call stack
114
+ fail(Issues::RUNTIME_ERROR, target, { :detail => e.message }, e)
117
115
  end
118
116
 
119
117
  # Assigns the given _value_ to the given _target_. The additional argument _o_ is the instruction that
@@ -693,7 +691,7 @@ class EvaluatorImpl
693
691
  the_default = nil
694
692
  if o.options.find do |co|
695
693
  # the first case option that matches
696
- if co.values.find do |c|
694
+ next unless co.values.find do |c|
697
695
  c = unwind_parentheses(c)
698
696
  case c
699
697
  when Model::LiteralDefault
@@ -707,9 +705,9 @@ class EvaluatorImpl
707
705
  is_match?(test, evaluate(c, scope), c, co, scope)
708
706
  end
709
707
  end
710
- result = evaluate(co.then_expr, scope)
711
- true # the option was picked
712
- end
708
+
709
+ result = evaluate(co.then_expr, scope)
710
+ true # the option was picked
713
711
  end
714
712
  result # an option was picked, and produced a result
715
713
  else
@@ -746,17 +744,15 @@ class EvaluatorImpl
746
744
  end
747
745
 
748
746
  def eval_Program(o, scope)
749
- begin
750
- file = o.locator.file
751
- line = 0
752
- # Add stack frame for "top scope" logic. See Puppet::Pops::PuppetStack
753
- return Puppet::Pops::PuppetStack.stack(file, line, self, 'evaluate', [o.body, scope])
754
- # evaluate(o.body, scope)
755
- rescue Puppet::Pops::Evaluator::PuppetStopIteration => ex
756
- # breaking out of a file level program is not allowed
757
- # TRANSLATOR break() is a method that should not be translated
758
- raise Puppet::ParseError.new(_("break() from context where this is illegal"), ex.file, ex.line)
759
- end
747
+ file = o.locator.file
748
+ line = 0
749
+ # Add stack frame for "top scope" logic. See Puppet::Pops::PuppetStack
750
+ Puppet::Pops::PuppetStack.stack(file, line, self, 'evaluate', [o.body, scope])
751
+ # evaluate(o.body, scope)
752
+ rescue Puppet::Pops::Evaluator::PuppetStopIteration => ex
753
+ # breaking out of a file level program is not allowed
754
+ # TRANSLATOR break() is a method that should not be translated
755
+ raise Puppet::ParseError.new(_("break() from context where this is illegal"), ex.file, ex.line)
760
756
  end
761
757
 
762
758
  # Produces Array[PAnyType], an array of resource references
@@ -811,7 +807,7 @@ class EvaluatorImpl
811
807
 
812
808
  # This is a runtime check - the model is valid, but will have runtime issues when evaluated
813
809
  # and storeconfigs is not set.
814
- if (o.exported)
810
+ if o.exported
815
811
  optionally_fail(Issues::RT_NO_STORECONFIGS_EXPORT, o);
816
812
  end
817
813
 
@@ -1068,10 +1064,10 @@ class EvaluatorImpl
1068
1064
  # Evaluates Puppet DSL `unless`
1069
1065
  def eval_UnlessExpression o, scope
1070
1066
  scope.with_guarded_scope do
1071
- unless is_true?(evaluate(o.test, scope), o.test)
1072
- evaluate(o.then_expr, scope)
1073
- else
1067
+ if is_true?(evaluate(o.test, scope), o.test)
1074
1068
  evaluate(o.else_expr, scope)
1069
+ else
1070
+ evaluate(o.then_expr, scope)
1075
1071
  end
1076
1072
  end
1077
1073
  end
@@ -1236,15 +1232,15 @@ class EvaluatorImpl
1236
1232
  Hash[*y]
1237
1233
  end
1238
1234
  else
1239
- raise ArgumentError.new(_('Can only append Array or Hash to a Hash'))
1235
+ raise ArgumentError, _('Can only append Array or Hash to a Hash')
1240
1236
  end
1241
1237
  x.merge y # new hash with overwrite
1242
1238
  when URI
1243
- raise ArgumentError.new(_('An URI can only be merged with an URI or String')) unless y.is_a?(String) || y.is_a?(URI)
1239
+ raise ArgumentError, _('An URI can only be merged with an URI or String') unless y.is_a?(String) || y.is_a?(URI)
1244
1240
 
1245
1241
  x + y
1246
1242
  when Types::PBinaryType::Binary
1247
- raise ArgumentError.new(_('Can only append Binary to a Binary')) unless y.is_a?(Types::PBinaryType::Binary)
1243
+ raise ArgumentError, _('Can only append Binary to a Binary') unless y.is_a?(Types::PBinaryType::Binary)
1248
1244
 
1249
1245
  Types::PBinaryType::Binary.from_binary_string(x.binary_buffer + y.binary_buffer)
1250
1246
  else
@@ -1276,7 +1272,7 @@ class EvaluatorImpl
1276
1272
  end
1277
1273
  y.each { |e| result.delete(e) }
1278
1274
  else
1279
- raise ArgumentError.new(_("Can only delete from an Array or Hash."))
1275
+ raise ArgumentError, _("Can only delete from an Array or Hash.")
1280
1276
  end
1281
1277
  result
1282
1278
  end
@@ -47,7 +47,7 @@ class RelationshipOperator
47
47
  # Catch all non transformable objects
48
48
  # @api private
49
49
  def transform_Object(o, scope)
50
- raise IllegalRelationshipOperandError.new(o)
50
+ raise IllegalRelationshipOperandError, o
51
51
  end
52
52
 
53
53
  # A Resource is by definition a Catalog type, but of 3.x type
@@ -98,7 +98,7 @@ class RelationshipOperator
98
98
  #
99
99
  def assert_catalog_type(o, scope)
100
100
  unless @type_calculator.assignable?(@catalog_type, o)
101
- raise NotCatalogTypeError.new(o)
101
+ raise NotCatalogTypeError, o
102
102
  end
103
103
 
104
104
  # TODO must check if this is an abstract PResourceType (i.e. without a type_name) - which should fail ?
@@ -70,7 +70,7 @@ class Runtime3Converter
70
70
  return o unless o < MIN_INTEGER || o > MAX_INTEGER
71
71
 
72
72
  range_end = o > MAX_INTEGER ? 'max' : 'min'
73
- raise Puppet::Error, "Use of a Ruby Integer outside of Puppet Integer #{range_end} range, got '#{"0x%x" % o}'"
73
+ raise Puppet::Error, "Use of a Ruby Integer outside of Puppet Integer #{range_end} range, got '#{'0x%x' % o}'"
74
74
  end
75
75
 
76
76
  def convert_BigDecimal(o, scope, undef_value)
@@ -165,7 +165,7 @@ class Runtime3Converter
165
165
  @convert_visitor = Puppet::Pops::Visitor.new(self, 'convert', 2, 2)
166
166
  end
167
167
 
168
- @instance = self.new
168
+ @instance = new
169
169
  end
170
170
 
171
171
  # A Ruby function written for the 3.x API cannot be expected to handle extended data types. This
@@ -220,6 +220,6 @@ class Runtime3FunctionArgumentConverter < Runtime3Converter
220
220
  end
221
221
  end
222
222
 
223
- @instance = self.new
223
+ @instance = new
224
224
  end
225
225
  end
@@ -37,7 +37,7 @@ module Runtime3Support
37
37
  if except.nil? && diagnostic_producer.severity_producer[issue] == :error
38
38
  # Want a stacktrace, and it must be passed as an exception
39
39
  begin
40
- raise EvaluationError.new()
40
+ raise EvaluationError
41
41
  rescue EvaluationError => e
42
42
  except = e
43
43
  end
@@ -62,15 +62,15 @@ class Puppet::Pops::Functions::Dispatcher
62
62
  # make a copy to make sure it can be contained by someone else (even if it is not contained here, it
63
63
  # should be treated as immutable).
64
64
  #
65
- callables = dispatchers.map { |dispatch| dispatch.type }
65
+ callables = dispatchers.map(&:type)
66
66
 
67
67
  # multiple signatures, produce a Variant type of Callable1-n (must copy them)
68
68
  # single signature, produce single Callable
69
- callables.size > 1 ? Puppet::Pops::Types::TypeFactory.variant(*callables) : callables.pop
69
+ callables.size > 1 ? Puppet::Pops::Types::TypeFactory.variant(*callables) : callables.pop
70
70
  end
71
71
 
72
72
  # @api private
73
73
  def signatures
74
- @dispatchers.reject { |dispatcher| dispatcher.argument_mismatch_handler? }
74
+ @dispatchers.reject(&:argument_mismatch_handler?)
75
75
  end
76
76
  end
@@ -40,23 +40,21 @@ class Puppet::Pops::Functions::Function
40
40
  #
41
41
  # @api public
42
42
  def call(scope, *args, &block)
43
+ result = catch(:return) do
44
+ return self.class.dispatcher.dispatch(self, scope, args, &block)
45
+ end
46
+ result.value
47
+ rescue Puppet::Pops::Evaluator::Next => jumper
43
48
  begin
44
- result = catch(:return) do
45
- return self.class.dispatcher.dispatch(self, scope, args, &block)
46
- end
47
- return result.value
48
- rescue Puppet::Pops::Evaluator::Next => jumper
49
- begin
50
- throw :next, jumper.value
51
- rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
52
- raise Puppet::ParseError.new("next() from context where this is illegal", jumper.file, jumper.line)
53
- end
54
- rescue Puppet::Pops::Evaluator::Return => jumper
55
- begin
56
- throw :return, jumper
57
- rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
58
- raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
59
- end
49
+ throw :next, jumper.value
50
+ rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
51
+ raise Puppet::ParseError.new("next() from context where this is illegal", jumper.file, jumper.line)
52
+ end
53
+ rescue Puppet::Pops::Evaluator::Return => jumper
54
+ begin
55
+ throw :return, jumper
56
+ rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
57
+ raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
60
58
  end
61
59
  end
62
60
 
@@ -48,7 +48,7 @@ class IssueReporter
48
48
  errors = acceptor.errors
49
49
  if errors.size > 0
50
50
  unless emit_errors
51
- raise emit_exception.new(emit_message)
51
+ raise emit_exception, emit_message
52
52
  end
53
53
 
54
54
  formatter = Validation::DiagnosticFormatterPuppetStyle.new
@@ -70,7 +70,7 @@ class IssueReporter
70
70
  emitted += 1
71
71
  break if emitted >= max_errors
72
72
  end
73
- giving_up_message = if (emit_warnings && warnings.size > 0)
73
+ giving_up_message = if emit_warnings && warnings.size > 0
74
74
  _("Language validation logged %{error_count} errors, and %{warning_count} warnings. Giving up") %
75
75
  { error_count: errors.size, warning_count: warnings.size }
76
76
  else
@@ -4,8 +4,8 @@
4
4
  # This simple implementation calls #to_s on the given object, and handles articles 'a/an/the'.
5
5
  #
6
6
  module Puppet::Pops::LabelProvider
7
- VOWELS = %w{a e i o u y}
8
- SKIPPED_CHARACTERS = %w{" '}
7
+ VOWELS = %w[a e i o u y]
8
+ SKIPPED_CHARACTERS = %w[" ']
9
9
  A = "a"
10
10
  AN = "an"
11
11
 
@@ -44,7 +44,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
44
44
  # (Note: superclass caches the result in this loader as it would have to repeat this search for every
45
45
  # lookup otherwise).
46
46
  loaded = @dependency_loaders.reduce(nil) do |previous, loader|
47
- break previous if !previous.nil?
47
+ break previous unless previous.nil?
48
48
 
49
49
  loader.load_typed(typed_name)
50
50
  end
@@ -62,7 +62,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
62
62
  end
63
63
 
64
64
  def to_s
65
- "(DependencyLoader '#{@loader_name}' [" + @dependency_loaders.map { |loader| loader.to_s }.join(' ,') + "])"
65
+ "(DependencyLoader '#{@loader_name}' [" + @dependency_loaders.map(&:to_s).join(' ,') + "])"
66
66
  end
67
67
 
68
68
  private
@@ -81,7 +81,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
81
81
  # (Note: superclass caches the result in this loader as it would have to repeat this search for every
82
82
  # lookup otherwise).
83
83
  @dependency_loaders.reduce(nil) do |previous, loader|
84
- break previous if !previous.nil?
84
+ break previous unless previous.nil?
85
85
 
86
86
  loader.loaded_entry(typed_name, check_dependencies)
87
87
  end
@@ -54,7 +54,7 @@ class Loader
54
54
  # @yieldreturn [Boolean] `true` to keep the entry, `false` to discard it.
55
55
  # @return [Array<TypedName>] the list of names of discovered values
56
56
  def discover(type, error_collector = nil, name_authority = Pcore::RUNTIME_NAME_AUTHORITY, &block)
57
- return EMPTY_ARRAY
57
+ EMPTY_ARRAY
58
58
  end
59
59
 
60
60
  # Produces the value associated with the given name if already loaded, or available for loading
@@ -164,7 +164,7 @@ class Loader
164
164
  # @api private
165
165
  #
166
166
  def set_entry(type, name, value, origin = nil)
167
- raise NotImplementedError.new
167
+ raise NotImplementedError
168
168
  end
169
169
 
170
170
  # Produces a NamedEntry if a value is bound to the given name, or nil if nothing is bound.
@@ -175,7 +175,7 @@ class Loader
175
175
  # @api private
176
176
  #
177
177
  def get_entry(typed_name)
178
- raise NotImplementedError.new
178
+ raise NotImplementedError
179
179
  end
180
180
 
181
181
  # A loader is by default a loader for all kinds of loadables. An implementation may override
@@ -199,7 +199,7 @@ class Loader
199
199
  # at this point to inspect (ie children would print out `loader_name`
200
200
  # rather than their version of to_s if they chose to implement it).
201
201
  def inspect
202
- self.to_s
202
+ to_s
203
203
  end
204
204
 
205
205
  # An entry for one entity loaded by the loader.
@@ -108,11 +108,11 @@ module LoaderPaths
108
108
  end
109
109
 
110
110
  def relative_path
111
- raise NotImplementedError.new
111
+ raise NotImplementedError
112
112
  end
113
113
 
114
114
  def instantiator
115
- raise NotImplementedError.new
115
+ raise NotImplementedError
116
116
  end
117
117
  end
118
118
 
@@ -234,7 +234,7 @@ module LoaderPaths
234
234
  # match more than one path with one name
235
235
  class TaskPath < PuppetSmartPath
236
236
  TASKS_PATH = 'tasks'
237
- FORBIDDEN_EXTENSIONS = %w{.conf .md}.freeze
237
+ FORBIDDEN_EXTENSIONS = %w[.conf .md].freeze
238
238
 
239
239
  def extension
240
240
  EMPTY_STRING