puppet 4.2.0 → 4.3.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 (422) hide show
  1. data/CONTRIBUTING.md +1 -1
  2. data/Gemfile +5 -7
  3. data/README.md +1 -1
  4. data/Rakefile +20 -0
  5. data/ext/debian/puppet.init +0 -1
  6. data/ext/debian/puppet.logrotate +14 -5
  7. data/ext/osx/puppet.plist +2 -4
  8. data/ext/project_data.yaml +1 -1
  9. data/ext/redhat/client.init +65 -12
  10. data/ext/redhat/logrotate +15 -3
  11. data/ext/redhat/puppet.spec.erb +5 -1
  12. data/ext/redhat/server.init +1 -1
  13. data/ext/solaris/smf/puppet +44 -0
  14. data/ext/solaris/smf/puppet.xml +44 -0
  15. data/ext/suse/client.init +27 -27
  16. data/ext/suse/server.init +2 -2
  17. data/ext/systemd/puppet.service +1 -0
  18. data/install.rb +21 -39
  19. data/lib/hiera/puppet_function.rb +5 -5
  20. data/lib/puppet/agent/locker.rb +11 -2
  21. data/lib/puppet/agent.rb +4 -4
  22. data/lib/puppet/application/agent.rb +28 -14
  23. data/lib/puppet/application/apply.rb +17 -4
  24. data/lib/puppet/application/cert.rb +16 -0
  25. data/lib/puppet/application/filebucket.rb +78 -4
  26. data/lib/puppet/application/lookup.rb +356 -0
  27. data/lib/puppet/application/master.rb +5 -1
  28. data/lib/puppet/configurer.rb +9 -5
  29. data/lib/puppet/context/trusted_information.rb +21 -1
  30. data/lib/puppet/context.rb +16 -1
  31. data/lib/puppet/daemon.rb +17 -13
  32. data/lib/puppet/data_binding.rb +4 -2
  33. data/lib/puppet/data_providers/data_adapter.rb +7 -68
  34. data/lib/puppet/data_providers/data_function_support.rb +5 -26
  35. data/lib/puppet/data_providers/function_env_data_provider.rb +0 -10
  36. data/lib/puppet/data_providers/function_module_data_provider.rb +0 -22
  37. data/lib/puppet/data_providers/hiera_config.rb +106 -0
  38. data/lib/puppet/data_providers/hiera_env_data_provider.rb +18 -0
  39. data/lib/puppet/data_providers/hiera_interpolate.rb +97 -0
  40. data/lib/puppet/data_providers/hiera_module_data_provider.rb +23 -0
  41. data/lib/puppet/data_providers/hiera_support.rb +37 -0
  42. data/lib/puppet/data_providers/json_data_provider_factory.rb +31 -0
  43. data/lib/puppet/data_providers/lookup_adapter.rb +200 -0
  44. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +32 -0
  45. data/lib/puppet/data_providers.rb +12 -13
  46. data/lib/puppet/defaults.rb +14 -3
  47. data/lib/puppet/environments.rb +94 -6
  48. data/lib/puppet/error.rb +4 -0
  49. data/lib/puppet/face/module/changes.rb +2 -1
  50. data/lib/puppet/feature/cfacter.rb +1 -0
  51. data/lib/puppet/file_bucket/dipper.rb +58 -2
  52. data/lib/puppet/file_system/windows.rb +3 -1
  53. data/lib/puppet/functions/assert_type.rb +48 -12
  54. data/lib/puppet/functions/defined.rb +79 -48
  55. data/lib/puppet/functions/each.rb +85 -27
  56. data/lib/puppet/functions/epp.rb +29 -37
  57. data/lib/puppet/functions/filter.rb +60 -25
  58. data/lib/puppet/functions/hiera.rb +76 -3
  59. data/lib/puppet/functions/hiera_array.rb +65 -3
  60. data/lib/puppet/functions/hiera_hash.rb +74 -2
  61. data/lib/puppet/functions/hiera_include.rb +77 -4
  62. data/lib/puppet/functions/inline_epp.rb +44 -71
  63. data/lib/puppet/functions/lookup.rb +19 -17
  64. data/lib/puppet/functions/map.rb +56 -21
  65. data/lib/puppet/functions/match.rb +29 -12
  66. data/lib/puppet/functions/reduce.rb +95 -58
  67. data/lib/puppet/functions/versioncmp.rb +36 -0
  68. data/lib/puppet/functions/with.rb +15 -7
  69. data/lib/puppet/functions.rb +2 -4
  70. data/lib/puppet/indirector/catalog/compiler.rb +3 -3
  71. data/lib/puppet/indirector/catalog/static_compiler.rb +46 -30
  72. data/lib/puppet/indirector/data_binding/none.rb +4 -1
  73. data/lib/puppet/indirector/file_bucket_file/file.rb +58 -1
  74. data/lib/puppet/indirector/hiera.rb +4 -0
  75. data/lib/puppet/indirector/indirection.rb +6 -1
  76. data/lib/puppet/indirector/json.rb +1 -1
  77. data/lib/puppet/indirector/msgpack.rb +1 -1
  78. data/lib/puppet/indirector/request.rb +7 -8
  79. data/lib/puppet/indirector/resource_type/parser.rb +5 -3
  80. data/lib/puppet/info_service/class_information_service.rb +111 -0
  81. data/lib/puppet/info_service.rb +7 -0
  82. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  83. data/lib/puppet/module_tool/metadata.rb +32 -9
  84. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
  85. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
  86. data/lib/puppet/network/authconfig.rb +21 -1
  87. data/lib/puppet/network/authorization.rb +8 -1
  88. data/lib/puppet/network/http/api/master/v3/environment.rb +59 -0
  89. data/lib/puppet/network/http/api/master/v3.rb +7 -1
  90. data/lib/puppet/node/environment.rb +9 -2
  91. data/lib/puppet/node.rb +11 -5
  92. data/lib/puppet/parser/ast/pops_bridge.rb +39 -1
  93. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  94. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +38 -0
  95. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  96. data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  97. data/lib/puppet/parser/compiler.rb +300 -12
  98. data/lib/puppet/parser/environment_compiler.rb +165 -0
  99. data/lib/puppet/parser/functions/assert_type.rb +46 -16
  100. data/lib/puppet/parser/functions/defined.rb +105 -68
  101. data/lib/puppet/parser/functions/each.rb +85 -27
  102. data/lib/puppet/parser/functions/epp.rb +29 -37
  103. data/lib/puppet/parser/functions/filter.rb +59 -23
  104. data/lib/puppet/parser/functions/hiera.rb +83 -27
  105. data/lib/puppet/parser/functions/hiera_array.rb +71 -28
  106. data/lib/puppet/parser/functions/hiera_hash.rb +81 -30
  107. data/lib/puppet/parser/functions/hiera_include.rb +81 -40
  108. data/lib/puppet/parser/functions/inline_epp.rb +35 -60
  109. data/lib/puppet/parser/functions/inline_template.rb +2 -2
  110. data/lib/puppet/parser/functions/map.rb +55 -20
  111. data/lib/puppet/parser/functions/match.rb +27 -12
  112. data/lib/puppet/parser/functions/reduce.rb +97 -60
  113. data/lib/puppet/parser/functions/with.rb +16 -8
  114. data/lib/puppet/parser/resource.rb +103 -21
  115. data/lib/puppet/parser.rb +3 -0
  116. data/lib/puppet/plugins/configuration.rb +3 -2
  117. data/lib/puppet/plugins/data_providers/data_provider.rb +283 -0
  118. data/lib/puppet/plugins/data_providers/registry.rb +84 -0
  119. data/lib/puppet/plugins/data_providers.rb +12 -60
  120. data/lib/puppet/pops/adapters.rb +12 -0
  121. data/lib/puppet/pops/binder/binder.rb +2 -2
  122. data/lib/puppet/pops/binder/bindings_checker.rb +1 -1
  123. data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
  124. data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
  125. data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
  126. data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
  127. data/lib/puppet/pops/binder/injector.rb +4 -4
  128. data/lib/puppet/pops/binder/key_factory.rb +3 -9
  129. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
  130. data/lib/puppet/pops/evaluator/access_operator.rb +27 -60
  131. data/lib/puppet/pops/evaluator/closure.rb +8 -8
  132. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  133. data/lib/puppet/pops/evaluator/evaluator_impl.rb +10 -6
  134. data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  135. data/lib/puppet/pops/evaluator/relationship_operator.rb +7 -1
  136. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  137. data/lib/puppet/pops/issues.rb +11 -3
  138. data/lib/puppet/pops/label_provider.rb +1 -1
  139. data/lib/puppet/pops/lookup/explainer.rb +402 -0
  140. data/lib/puppet/pops/lookup/invocation.rb +117 -0
  141. data/lib/puppet/pops/lookup.rb +25 -47
  142. data/lib/puppet/pops/merge_strategy.rb +73 -5
  143. data/lib/puppet/pops/model/factory.rb +38 -3
  144. data/lib/puppet/pops/model/model_label_provider.rb +10 -1
  145. data/lib/puppet/pops/model/model_meta.rb +19 -1
  146. data/lib/puppet/pops/model/model_tree_dumper.rb +18 -0
  147. data/lib/puppet/pops/parser/code_merger.rb +13 -1
  148. data/lib/puppet/pops/parser/egrammar.ra +65 -2
  149. data/lib/puppet/pops/parser/eparser.rb +1569 -1241
  150. data/lib/puppet/pops/parser/lexer2.rb +32 -1
  151. data/lib/puppet/pops/parser/locator.rb +1 -1
  152. data/lib/puppet/pops/parser/parser_support.rb +25 -13
  153. data/lib/puppet/pops/patterns.rb +3 -0
  154. data/lib/puppet/pops/types/enumeration.rb +1 -2
  155. data/lib/puppet/pops/types/type_asserter.rb +16 -15
  156. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  157. data/lib/puppet/pops/types/type_calculator.rb +171 -1020
  158. data/lib/puppet/pops/types/type_factory.rb +87 -148
  159. data/lib/puppet/pops/types/type_mismatch_describer.rb +743 -0
  160. data/lib/puppet/pops/types/type_parser.rb +118 -129
  161. data/lib/puppet/pops/types/types.rb +1394 -255
  162. data/lib/puppet/pops/types/types_meta.rb +0 -234
  163. data/lib/puppet/pops/validation/checker4_0.rb +49 -1
  164. data/lib/puppet/pops/validation/validator_factory_4_0.rb +3 -1
  165. data/lib/puppet/pops/validation.rb +7 -2
  166. data/lib/puppet/pops.rb +19 -17
  167. data/lib/puppet/provider/augeas/augeas.rb +50 -0
  168. data/lib/puppet/provider/exec.rb +6 -1
  169. data/lib/puppet/provider/group/directoryservice.rb +10 -0
  170. data/lib/puppet/provider/package/dnf.rb +41 -0
  171. data/lib/puppet/provider/package/gem.rb +7 -2
  172. data/lib/puppet/provider/package/nim.rb +1 -1
  173. data/lib/puppet/provider/package/rpm.rb +1 -0
  174. data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
  175. data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
  176. data/lib/puppet/provider/package/windows/package.rb +9 -1
  177. data/lib/puppet/provider/package/yum.rb +20 -9
  178. data/lib/puppet/provider/service/bsd.rb +1 -1
  179. data/lib/puppet/provider/service/debian.rb +21 -0
  180. data/lib/puppet/provider/service/init.rb +6 -0
  181. data/lib/puppet/provider/service/launchd.rb +36 -7
  182. data/lib/puppet/provider/service/rcng.rb +51 -0
  183. data/lib/puppet/provider/service/redhat.rb +2 -1
  184. data/lib/puppet/provider/service/smf.rb +43 -2
  185. data/lib/puppet/provider/service/src.rb +27 -0
  186. data/lib/puppet/provider/service/systemd.rb +25 -5
  187. data/lib/puppet/provider/sshkey/parsed.rb +19 -9
  188. data/lib/puppet/provider/zone/solaris.rb +2 -2
  189. data/lib/puppet/reference/configuration.rb +10 -4
  190. data/lib/puppet/reference/report.rb +9 -12
  191. data/lib/puppet/reports.rb +5 -1
  192. data/lib/puppet/resource/capability_finder.rb +95 -0
  193. data/lib/puppet/resource/catalog.rb +47 -7
  194. data/lib/puppet/resource/status.rb +0 -2
  195. data/lib/puppet/resource/type.rb +238 -44
  196. data/lib/puppet/resource/type_collection.rb +60 -2
  197. data/lib/puppet/resource.rb +50 -73
  198. data/lib/puppet/settings/file_setting.rb +10 -9
  199. data/lib/puppet/settings.rb +2 -2
  200. data/lib/puppet/ssl/certificate_authority/interface.rb +2 -2
  201. data/lib/puppet/ssl/oids.rb +9 -1
  202. data/lib/puppet/transaction/additional_resource_generator.rb +71 -8
  203. data/lib/puppet/transaction/resource_harness.rb +9 -4
  204. data/lib/puppet/transaction.rb +8 -1
  205. data/lib/puppet/type/augeas.rb +8 -0
  206. data/lib/puppet/type/file/source.rb +14 -12
  207. data/lib/puppet/type/package.rb +9 -6
  208. data/lib/puppet/type/user.rb +4 -2
  209. data/lib/puppet/type.rb +78 -7
  210. data/lib/puppet/util/command_line.rb +4 -0
  211. data/lib/puppet/util/execution.rb +18 -2
  212. data/lib/puppet/util/tagging.rb +7 -1
  213. data/lib/puppet/util/windows/adsi.rb +5 -2
  214. data/lib/puppet/util/windows/security.rb +4 -1
  215. data/lib/puppet/util/windows/taskscheduler.rb +1 -1
  216. data/lib/puppet/util.rb +9 -1
  217. data/lib/puppet/version.rb +1 -1
  218. data/lib/puppet.rb +12 -0
  219. data/spec/fixtures/unit/application/environments/production/data/common.yaml +3 -0
  220. data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
  221. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
  222. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
  223. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
  224. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
  225. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
  226. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
  227. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
  228. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
  229. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
  230. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
  231. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
  232. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
  233. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
  234. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
  235. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
  236. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
  237. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
  238. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
  239. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
  240. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
  241. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +18 -0
  242. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
  243. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +46 -0
  244. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
  245. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
  246. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
  247. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
  248. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
  249. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
  250. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
  251. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
  252. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +1 -0
  253. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
  254. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
  255. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
  256. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +18 -0
  257. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
  258. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
  259. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
  260. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
  261. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +3 -0
  262. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/hiera.yaml +8 -0
  263. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
  264. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/metadata.json +9 -0
  265. data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
  266. data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/manifests/init.pp +3 -0
  267. data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/metadata.json +9 -0
  268. data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
  269. data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
  270. data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/manifests/init.pp +3 -0
  271. data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/metadata.json +9 -0
  272. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
  273. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
  274. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
  275. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
  276. data/spec/integration/data_binding_spec.rb +229 -0
  277. data/spec/integration/file_bucket/file_spec.rb +2 -2
  278. data/spec/integration/parser/compiler_spec.rb +30 -24
  279. data/spec/integration/parser/resource_expressions_spec.rb +4 -4
  280. data/spec/integration/parser/undef_param_spec.rb +1 -1
  281. data/spec/integration/provider/package_spec.rb +3 -1
  282. data/spec/integration/resource/catalog_spec.rb +1 -1
  283. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  284. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  285. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  286. data/spec/integration/ssl/host_spec.rb +0 -1
  287. data/spec/integration/type/package_spec.rb +2 -0
  288. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  289. data/spec/integration/util/windows/security_spec.rb +18 -0
  290. data/spec/lib/matchers/include_in_order.rb +2 -2
  291. data/spec/shared_behaviours/iterative_functions.rb +8 -8
  292. data/spec/spec_helper.rb +7 -0
  293. data/spec/unit/agent/locker_spec.rb +4 -4
  294. data/spec/unit/agent_spec.rb +0 -8
  295. data/spec/unit/application/agent_spec.rb +5 -0
  296. data/spec/unit/application/apply_spec.rb +9 -1
  297. data/spec/unit/application/filebucket_spec.rb +88 -2
  298. data/spec/unit/application/lookup_spec.rb +195 -0
  299. data/spec/unit/application/master_spec.rb +2 -2
  300. data/spec/unit/application_spec.rb +3 -3
  301. data/spec/unit/appmgmt_spec.rb +657 -0
  302. data/spec/unit/capability_spec.rb +414 -0
  303. data/spec/unit/configurer_spec.rb +7 -1
  304. data/spec/unit/context/trusted_information_spec.rb +24 -1
  305. data/spec/unit/daemon_spec.rb +18 -8
  306. data/spec/unit/data_providers/hiera_data_provider_spec.rb +201 -0
  307. data/spec/unit/environments_spec.rb +2 -0
  308. data/spec/unit/face/node_spec.rb +1 -1
  309. data/spec/unit/file_bucket/dipper_spec.rb +210 -1
  310. data/spec/unit/file_serving/configuration_spec.rb +1 -1
  311. data/spec/unit/file_system_spec.rb +20 -0
  312. data/spec/unit/functions/assert_type_spec.rb +5 -7
  313. data/spec/unit/functions/defined_spec.rb +2 -2
  314. data/spec/unit/functions/epp_spec.rb +2 -2
  315. data/spec/unit/functions/filter_spec.rb +18 -0
  316. data/spec/unit/functions/hiera_spec.rb +2 -2
  317. data/spec/unit/functions/lookup_spec.rb +200 -9
  318. data/spec/unit/functions/regsubst_spec.rb +17 -8
  319. data/spec/unit/functions/scanf_spec.rb +1 -1
  320. data/spec/unit/functions/split_spec.rb +2 -2
  321. data/spec/unit/functions/versioncmp_spec.rb +36 -0
  322. data/spec/unit/functions4_spec.rb +58 -72
  323. data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
  324. data/spec/unit/indirector/catalog/compiler_spec.rb +28 -8
  325. data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
  326. data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
  327. data/spec/unit/indirector/file_bucket_file/file_spec.rb +52 -1
  328. data/spec/unit/indirector/indirection_spec.rb +13 -2
  329. data/spec/unit/indirector/request_spec.rb +8 -8
  330. data/spec/unit/indirector/ssl_file_spec.rb +1 -1
  331. data/spec/unit/indirector/yaml_spec.rb +1 -1
  332. data/spec/unit/info_service_spec.rb +236 -0
  333. data/spec/unit/module_tool/application_spec.rb +1 -1
  334. data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
  335. data/spec/unit/module_tool/metadata_spec.rb +31 -2
  336. data/spec/unit/network/authconfig_spec.rb +62 -32
  337. data/spec/unit/network/authorization_spec.rb +30 -2
  338. data/spec/unit/network/authstore_spec.rb +1 -1
  339. data/spec/unit/network/http/compression_spec.rb +1 -1
  340. data/spec/unit/network/http/connection_spec.rb +14 -19
  341. data/spec/unit/network/http/handler_spec.rb +0 -5
  342. data/spec/unit/network/rights_spec.rb +3 -3
  343. data/spec/unit/node_spec.rb +27 -0
  344. data/spec/unit/parser/ast/leaf_spec.rb +1 -1
  345. data/spec/unit/parser/compiler_spec.rb +86 -2
  346. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  347. data/spec/unit/parser/resource_spec.rb +2 -20
  348. data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
  349. data/spec/unit/pops/binder/injector_spec.rb +3 -3
  350. data/spec/unit/pops/evaluator/access_ops_spec.rb +13 -11
  351. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
  352. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +20 -11
  353. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
  354. data/spec/unit/pops/label_provider_spec.rb +5 -1
  355. data/spec/unit/pops/parser/lexer2_spec.rb +39 -0
  356. data/spec/unit/pops/parser/parse_application_spec.rb +40 -0
  357. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -0
  358. data/spec/unit/pops/parser/parse_capabilities_spec.rb +47 -0
  359. data/spec/unit/pops/parser/parse_site_spec.rb +38 -0
  360. data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
  361. data/spec/unit/pops/parser/parser_spec.rb +18 -0
  362. data/spec/unit/pops/types/type_calculator_spec.rb +427 -444
  363. data/spec/unit/pops/types/type_factory_spec.rb +12 -12
  364. data/spec/unit/pops/types/type_parser_spec.rb +15 -12
  365. data/spec/unit/pops/validator/validator_spec.rb +68 -0
  366. data/spec/unit/property_spec.rb +1 -1
  367. data/spec/unit/provider/augeas/augeas_spec.rb +50 -0
  368. data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
  369. data/spec/unit/provider/group/windows_adsi_spec.rb +3 -0
  370. data/spec/unit/provider/package/dnf_spec.rb +92 -0
  371. data/spec/unit/provider/package/gem_spec.rb +7 -0
  372. data/spec/unit/provider/package/nim_spec.rb +6 -6
  373. data/spec/unit/provider/package/rpm_spec.rb +25 -2
  374. data/spec/unit/provider/package/windows/package_spec.rb +41 -0
  375. data/spec/unit/provider/package/yum_spec.rb +35 -12
  376. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +10 -0
  377. data/spec/unit/provider/service/debian_spec.rb +28 -0
  378. data/spec/unit/provider/service/gentoo_spec.rb +1 -0
  379. data/spec/unit/provider/service/init_spec.rb +6 -0
  380. data/spec/unit/provider/service/launchd_spec.rb +85 -10
  381. data/spec/unit/provider/service/openrc_spec.rb +1 -0
  382. data/spec/unit/provider/service/rcng_spec.rb +41 -0
  383. data/spec/unit/provider/service/redhat_spec.rb +8 -1
  384. data/spec/unit/provider/service/smf_spec.rb +30 -5
  385. data/spec/unit/provider/service/src_spec.rb +20 -4
  386. data/spec/unit/provider/service/systemd_spec.rb +79 -29
  387. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +1 -1
  388. data/spec/unit/provider/sshkey/parsed_spec.rb +23 -0
  389. data/spec/unit/provider/user/windows_adsi_spec.rb +2 -1
  390. data/spec/unit/provider/zone/solaris_spec.rb +19 -0
  391. data/spec/unit/reports_spec.rb +10 -0
  392. data/spec/unit/resource/capability_finder_spec.rb +56 -0
  393. data/spec/unit/resource/catalog_spec.rb +31 -8
  394. data/spec/unit/resource/type_collection_spec.rb +23 -2
  395. data/spec/unit/resource/type_spec.rb +1 -1
  396. data/spec/unit/resource_spec.rb +23 -5
  397. data/spec/unit/settings/file_setting_spec.rb +31 -0
  398. data/spec/unit/settings_spec.rb +91 -2
  399. data/spec/unit/ssl/certificate_authority/interface_spec.rb +4 -3
  400. data/spec/unit/ssl/certificate_authority_spec.rb +5 -3
  401. data/spec/unit/ssl/host_spec.rb +2 -2
  402. data/spec/unit/ssl/oids_spec.rb +8 -0
  403. data/spec/unit/transaction/additional_resource_generator_spec.rb +78 -5
  404. data/spec/unit/transaction/report_spec.rb +24 -1
  405. data/spec/unit/transaction_spec.rb +7 -0
  406. data/spec/unit/type/exec_spec.rb +16 -8
  407. data/spec/unit/type/host_spec.rb +4 -4
  408. data/spec/unit/type/package_spec.rb +1 -0
  409. data/spec/unit/type/tidy_spec.rb +4 -4
  410. data/spec/unit/type/user_spec.rb +14 -7
  411. data/spec/unit/type/vlan_spec.rb +1 -1
  412. data/spec/unit/type_spec.rb +1 -1
  413. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  414. data/spec/unit/util/network_device/cisco/device_spec.rb +1 -1
  415. data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
  416. data/spec/unit/util/network_device_spec.rb +1 -1
  417. data/spec/unit/util/storage_spec.rb +5 -1
  418. data/spec/unit/util/windows/adsi_spec.rb +13 -0
  419. data/spec/unit/util_spec.rb +21 -2
  420. metadata +173 -7
  421. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
  422. data/spec/integration/data_binding.rb +0 -104
@@ -11,9 +11,8 @@ class Puppet::Pops::Types::TypeParser
11
11
 
12
12
  # @api public
13
13
  def initialize
14
- @parser = Puppet::Pops::Parser::Parser.new()
15
- @type_transformer = Puppet::Pops::Visitor.new(nil, "interpret", 0, 0)
16
- @undef_t = TYPES.undef
14
+ @parser = Puppet::Pops::Parser::Parser.new
15
+ @type_transformer = Puppet::Pops::Visitor.new(nil, 'interpret', 0, 0)
17
16
  end
18
17
 
19
18
  # Produces a *puppet type* based on the given string.
@@ -113,87 +112,87 @@ class Puppet::Pops::Types::TypeParser
113
112
  # @api private
114
113
  def interpret_QualifiedReference(name_ast)
115
114
  case name_ast.value
116
- when "integer"
115
+ when 'integer'
117
116
  TYPES.integer
118
117
 
119
- when "float"
118
+ when 'float'
120
119
  TYPES.float
121
120
 
122
- when "numeric"
121
+ when 'numeric'
123
122
  TYPES.numeric
124
123
 
125
- when "string"
124
+ when 'string'
126
125
  TYPES.string
127
126
 
128
- when "enum"
127
+ when 'enum'
129
128
  TYPES.enum
130
129
 
131
- when "boolean"
130
+ when 'boolean'
132
131
  TYPES.boolean
133
132
 
134
- when "pattern"
133
+ when 'pattern'
135
134
  TYPES.pattern
136
135
 
137
- when "regexp"
136
+ when 'regexp'
138
137
  TYPES.regexp
139
138
 
140
- when "data"
139
+ when 'data'
141
140
  TYPES.data
142
141
 
143
- when "array"
142
+ when 'array'
144
143
  TYPES.array_of_data
145
144
 
146
- when "hash"
145
+ when 'hash'
147
146
  TYPES.hash_of_data
148
147
 
149
- when "class"
150
- TYPES.host_class()
148
+ when 'class'
149
+ TYPES.host_class
151
150
 
152
- when "resource"
153
- TYPES.resource()
151
+ when 'resource'
152
+ TYPES.resource
154
153
 
155
- when "collection"
156
- TYPES.collection()
154
+ when 'collection'
155
+ TYPES.collection
157
156
 
158
- when "scalar"
159
- TYPES.scalar()
157
+ when 'scalar'
158
+ TYPES.scalar
160
159
 
161
- when "catalogentry"
162
- TYPES.catalog_entry()
160
+ when 'catalogentry'
161
+ TYPES.catalog_entry
163
162
 
164
- when "undef"
165
- TYPES.undef()
163
+ when 'undef'
164
+ TYPES.undef
166
165
 
167
- when "notundef"
166
+ when 'notundef'
168
167
  TYPES.not_undef()
169
168
 
170
- when "default"
169
+ when 'default'
171
170
  TYPES.default()
171
+
172
+ when 'any'
173
+ TYPES.any
172
174
 
173
- when "any"
174
- TYPES.any()
175
+ when 'variant'
176
+ TYPES.variant
175
177
 
176
- when "variant"
177
- TYPES.variant()
178
+ when 'optional'
179
+ TYPES.optional
178
180
 
179
- when "optional"
180
- TYPES.optional()
181
+ when 'runtime'
182
+ TYPES.runtime
181
183
 
182
- when "runtime"
183
- TYPES.runtime()
184
+ when 'type'
185
+ TYPES.type_type
184
186
 
185
- when "type"
186
- TYPES.type_type()
187
+ when 'tuple'
188
+ TYPES.tuple
187
189
 
188
- when "tuple"
189
- TYPES.tuple()
190
+ when 'struct'
191
+ TYPES.struct
190
192
 
191
- when "struct"
192
- TYPES.struct()
193
-
194
- when "callable"
193
+ when 'callable'
195
194
  # A generic callable as opposed to one that does not accept arguments
196
- TYPES.all_callables()
195
+ TYPES.all_callables
197
196
 
198
197
  else
199
198
  TYPES.resource(name_ast.value)
@@ -209,118 +208,112 @@ class Puppet::Pops::Types::TypeParser
209
208
  end
210
209
 
211
210
  case parameterized_ast.left_expr.value
212
- when "array"
211
+ when 'array'
213
212
  case parameters.size
214
213
  when 1
215
214
  when 2
216
215
  size_type =
217
- if parameters[1].is_a?(Puppet::Pops::Types::PIntegerType)
218
- parameters[1].copy
219
- else
220
- assert_range_parameter(parameters[1])
221
- TYPES.range(parameters[1], :default)
222
- end
216
+ if parameters[1].is_a?(Puppet::Pops::Types::PIntegerType)
217
+ parameters[1]
218
+ else
219
+ assert_range_parameter(parameters[1])
220
+ TYPES.range(parameters[1], :default)
221
+ end
223
222
  when 3
224
223
  assert_range_parameter(parameters[1])
225
224
  assert_range_parameter(parameters[2])
226
225
  size_type = TYPES.range(parameters[1], parameters[2])
227
226
  else
228
- raise_invalid_parameters_error("Array", "1 to 3", parameters.size)
227
+ raise_invalid_parameters_error('Array', '1 to 3', parameters.size)
229
228
  end
230
229
  assert_type(parameters[0])
231
- t = TYPES.array_of(parameters[0])
232
- t.size_type = size_type if size_type
233
- t
230
+ TYPES.array_of(parameters[0], size_type)
234
231
 
235
- when "hash"
236
- result = case parameters.size
232
+ when 'hash'
233
+ case parameters.size
237
234
  when 2
238
235
  assert_type(parameters[0])
239
236
  assert_type(parameters[1])
240
237
  TYPES.hash_of(parameters[1], parameters[0])
241
238
  when 3
242
239
  size_type =
243
- if parameters[2].is_a?(Puppet::Pops::Types::PIntegerType)
244
- parameters[2].copy
245
- else
246
- assert_range_parameter(parameters[2])
247
- TYPES.range(parameters[2], :default)
248
- end
240
+ if parameters[2].is_a?(Puppet::Pops::Types::PIntegerType)
241
+ parameters[2]
242
+ else
243
+ assert_range_parameter(parameters[2])
244
+ TYPES.range(parameters[2], :default)
245
+ end
249
246
  assert_type(parameters[0])
250
247
  assert_type(parameters[1])
251
- TYPES.hash_of(parameters[1], parameters[0])
248
+ TYPES.hash_of(parameters[1], parameters[0], size_type)
252
249
  when 4
253
250
  assert_range_parameter(parameters[2])
254
251
  assert_range_parameter(parameters[3])
255
- size_type = TYPES.range(parameters[2], parameters[3])
256
252
  assert_type(parameters[0])
257
253
  assert_type(parameters[1])
258
- TYPES.hash_of(parameters[1], parameters[0])
254
+ TYPES.hash_of(parameters[1], parameters[0], TYPES.range(parameters[2], parameters[3]))
259
255
  else
260
- raise_invalid_parameters_error("Hash", "2 to 4", parameters.size)
256
+ raise_invalid_parameters_error('Hash', '2 to 4', parameters.size)
261
257
  end
262
- result.size_type = size_type if size_type
263
- result
264
258
 
265
- when "collection"
259
+ when 'collection'
266
260
  size_type = case parameters.size
267
- when 1
268
- if parameters[0].is_a?(Puppet::Pops::Types::PIntegerType)
269
- parameters[0].copy
270
- else
261
+ when 1
262
+ if parameters[0].is_a?(Puppet::Pops::Types::PIntegerType)
263
+ parameters[0]
264
+ else
265
+ assert_range_parameter(parameters[0])
266
+ TYPES.range(parameters[0], :default)
267
+ end
268
+ when 2
271
269
  assert_range_parameter(parameters[0])
272
- TYPES.range(parameters[0], :default)
270
+ assert_range_parameter(parameters[1])
271
+ TYPES.range(parameters[0], parameters[1])
272
+ else
273
+ raise_invalid_parameters_error('Collection', '1 to 2', parameters.size)
273
274
  end
274
- when 2
275
- assert_range_parameter(parameters[0])
276
- assert_range_parameter(parameters[1])
277
- TYPES.range(parameters[0], parameters[1])
278
- else
279
- raise_invalid_parameters_error("Collection", "1 to 2", parameters.size)
280
- end
281
- result = TYPES.collection
282
- result.size_type = size_type
283
- result
275
+ TYPES.collection(size_type)
284
276
 
285
- when "class"
277
+ when 'class'
286
278
  if parameters.size != 1
287
- raise_invalid_parameters_error("Class", 1, parameters.size)
279
+ raise_invalid_parameters_error('Class', 1, parameters.size)
288
280
  end
289
281
  TYPES.host_class(parameters[0])
290
282
 
291
- when "resource"
283
+ when 'resource'
292
284
  if parameters.size == 1
293
285
  TYPES.resource(parameters[0])
294
286
  elsif parameters.size != 2
295
- raise_invalid_parameters_error("Resource", "1 or 2", parameters.size)
287
+ raise_invalid_parameters_error('Resource', '1 or 2', parameters.size)
296
288
  else
297
289
  TYPES.resource(parameters[0], parameters[1])
298
290
  end
299
291
 
300
- when "regexp"
292
+ when 'regexp'
301
293
  # 1 parameter being a string, or regular expression
302
- raise_invalid_parameters_error("Regexp", "1", parameters.size) unless parameters.size == 1
294
+ raise_invalid_parameters_error('Regexp', '1', parameters.size) unless parameters.size == 1
303
295
  TYPES.regexp(parameters[0])
304
296
 
305
- when "enum"
297
+ when 'enum'
306
298
  # 1..m parameters being strings
307
- raise_invalid_parameters_error("Enum", "1 or more", parameters.size) unless parameters.size >= 1
299
+ raise_invalid_parameters_error('Enum', '1 or more', parameters.size) unless parameters.size >= 1
308
300
  TYPES.enum(*parameters)
309
301
 
310
- when "pattern"
302
+ when 'pattern'
311
303
  # 1..m parameters being strings or regular expressions
312
- raise_invalid_parameters_error("Pattern", "1 or more", parameters.size) unless parameters.size >= 1
304
+ raise_invalid_parameters_error('Pattern', '1 or more', parameters.size) unless parameters.size >= 1
313
305
  TYPES.pattern(*parameters)
314
306
 
315
- when "variant"
307
+ when 'variant'
316
308
  # 1..m parameters being strings or regular expressions
317
- raise_invalid_parameters_error("Variant", "1 or more", parameters.size) unless parameters.size >= 1
309
+ raise_invalid_parameters_error('Variant', '1 or more', parameters.size) unless parameters.size >= 1
318
310
  TYPES.variant(*parameters)
319
311
 
320
- when "tuple"
312
+ when 'tuple'
321
313
  # 1..m parameters being types (last two optionally integer or literal default
322
- raise_invalid_parameters_error("Tuple", "1 or more", parameters.size) unless parameters.size >= 1
314
+ raise_invalid_parameters_error('Tuple', '1 or more', parameters.size) unless parameters.size >= 1
323
315
  length = parameters.size
316
+ size_type = nil
324
317
  if TYPES.is_range_parameter?(parameters[-2])
325
318
  # min, max specification
326
319
  min = parameters[-2]
@@ -329,63 +322,61 @@ class Puppet::Pops::Types::TypeParser
329
322
  max = parameters[-1]
330
323
  max = max == :default ? nil : max
331
324
  parameters = parameters[0, length-2]
325
+ size_type = TYPES.range(min, max)
332
326
  elsif TYPES.is_range_parameter?(parameters[-1])
333
327
  min = parameters[-1]
334
328
  min = (min == :default || min == 'default') ? 0 : min
335
329
  max = nil
336
330
  parameters = parameters[0, length-1]
331
+ size_type = TYPES.range(min, max)
337
332
  end
338
- t = TYPES.tuple(*parameters)
339
- if min || max
340
- TYPES.constrain_size(t, min, max)
341
- end
342
- t
333
+ TYPES.tuple(parameters, size_type)
343
334
 
344
- when "callable"
335
+ when 'callable'
345
336
  # 1..m parameters being types (last three optionally integer or literal default, and a callable)
346
337
  TYPES.callable(*parameters)
347
338
 
348
- when "struct"
339
+ when 'struct'
349
340
  # 1..m parameters being types (last two optionally integer or literal default
350
- raise_invalid_parameters_error("Struct", "1", parameters.size) unless parameters.size == 1
341
+ raise_invalid_parameters_error('Struct', '1', parameters.size) unless parameters.size == 1
351
342
  h = parameters[0]
352
343
  raise_invalid_type_specification_error unless h.is_a?(Hash)
353
344
  TYPES.struct(h)
354
345
 
355
- when "integer"
346
+ when 'integer'
356
347
  if parameters.size == 1
357
348
  case parameters[0]
358
349
  when Integer
359
- TYPES.range(parameters[0], parameters[0])
350
+ TYPES.range(parameters[0], :default)
360
351
  when :default
361
352
  TYPES.integer # unbound
362
353
  end
363
354
  elsif parameters.size != 2
364
- raise_invalid_parameters_error("Integer", "1 or 2", parameters.size)
355
+ raise_invalid_parameters_error('Integer', '1 or 2', parameters.size)
365
356
  else
366
357
  TYPES.range(parameters[0] == :default ? nil : parameters[0], parameters[1] == :default ? nil : parameters[1])
367
358
  end
368
359
 
369
- when "float"
360
+ when 'float'
370
361
  if parameters.size == 1
371
362
  case parameters[0]
372
363
  when Integer, Float
373
- TYPES.float_range(parameters[0], parameters[0])
364
+ TYPES.float_range(parameters[0], :default)
374
365
  when :default
375
366
  TYPES.float # unbound
376
367
  end
377
368
  elsif parameters.size != 2
378
- raise_invalid_parameters_error("Float", "1 or 2", parameters.size)
369
+ raise_invalid_parameters_error('Float', '1 or 2', parameters.size)
379
370
  else
380
371
  TYPES.float_range(parameters[0] == :default ? nil : parameters[0], parameters[1] == :default ? nil : parameters[1])
381
372
  end
382
373
 
383
- when "string"
374
+ when 'string'
384
375
  size_type =
385
376
  case parameters.size
386
377
  when 1
387
378
  if parameters[0].is_a?(Puppet::Pops::Types::PIntegerType)
388
- parameters[0].copy
379
+ parameters[0]
389
380
  else
390
381
  assert_range_parameter(parameters[0])
391
382
  TYPES.range(parameters[0], :default)
@@ -395,24 +386,22 @@ class Puppet::Pops::Types::TypeParser
395
386
  assert_range_parameter(parameters[1])
396
387
  TYPES.range(parameters[0], parameters[1])
397
388
  else
398
- raise_invalid_parameters_error("String", "1 to 2", parameters.size)
389
+ raise_invalid_parameters_error('String', '1 to 2', parameters.size)
399
390
  end
400
- result = TYPES.string
401
- result.size_type = size_type
402
- result
391
+ TYPES.string(size_type)
403
392
 
404
- when "optional"
393
+ when 'optional'
405
394
  if parameters.size != 1
406
- raise_invalid_parameters_error("Optional", 1, parameters.size)
395
+ raise_invalid_parameters_error('Optional', 1, parameters.size)
407
396
  end
408
397
  param = parameters[0]
409
398
  assert_type(param) unless param.is_a?(String)
410
399
  TYPES.optional(param)
411
400
 
412
- when "any", "data", "catalogentry", "boolean", "scalar", "undef", "numeric", "default"
401
+ when 'any', 'data', 'catalogentry', 'boolean', 'scalar', 'undef', 'numeric', 'default'
413
402
  raise_unparameterized_type_error(parameterized_ast.left_expr)
414
403
 
415
- when "notundef"
404
+ when 'notundef'
416
405
  case parameters.size
417
406
  when 0
418
407
  TYPES.not_undef
@@ -424,15 +413,15 @@ class Puppet::Pops::Types::TypeParser
424
413
  raise_invalid_parameters_error("NotUndef", "0 to 1", parameters.size)
425
414
  end
426
415
 
427
- when "type"
416
+ when 'type'
428
417
  if parameters.size != 1
429
- raise_invalid_parameters_error("Type", 1, parameters.size)
418
+ raise_invalid_parameters_error('Type', 1, parameters.size)
430
419
  end
431
420
  assert_type(parameters[0])
432
421
  TYPES.type_type(parameters[0])
433
422
 
434
- when "runtime"
435
- raise_invalid_parameters_error("Runtime", "2", parameters.size) unless parameters.size == 2
423
+ when 'runtime'
424
+ raise_invalid_parameters_error('Runtime', '2', parameters.size) unless parameters.size == 2
436
425
  TYPES.runtime(*parameters)
437
426
 
438
427
  else
@@ -476,6 +465,6 @@ class Puppet::Pops::Types::TypeParser
476
465
 
477
466
  def original_text_of(ast)
478
467
  position = Puppet::Pops::Adapters::SourcePosAdapter.adapt(ast)
479
- position.extract_text()
468
+ position.extract_text
480
469
  end
481
470
  end