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
@@ -3,66 +3,103 @@ Puppet::Parser::Functions::newfunction(
3
3
  :type => :rvalue,
4
4
  :arity => -3,
5
5
  :doc => <<-DOC
6
- Applies a parameterized block to each element in a sequence of entries from the first
7
- argument (_the enumerable_) and returns the last result of the invocation of the parameterized block.
8
-
9
- This function takes two mandatory arguments: the first should be an Array, Hash, or something of
10
- enumerable type, and the last a parameterized block as produced by the puppet syntax:
11
-
12
- $a.reduce |$memo, $x| { ... }
13
- reduce($a) |$memo, $x| { ... }
14
-
15
- When the first argument is an Array or someting of an enumerable type, the block is called with each entry in turn.
16
- When the first argument is a hash each entry is converted to an array with `[key, value]` before being
17
- fed to the block. An optional 'start memo' value may be supplied as an argument between the array/hash
18
- and mandatory block.
19
-
20
- $a.reduce(start) |$memo, $x| { ... }
21
- reduce($a, start) |$memo, $x| { ... }
22
-
23
- If no 'start memo' is given, the first invocation of the parameterized block will be given the first and second
24
- elements of the enumeration, and if the enumerable has fewer than 2 elements, the first
25
- element is produced as the result of the reduction without invocation of the block.
26
-
27
- On each subsequent invocation, the produced value of the invoked parameterized block is given as the memo in the
28
- next invocation.
29
-
30
- Example Using reduce
31
-
32
- # Reduce an array
33
- $a = [1,2,3]
34
- $a.reduce |$memo, $entry| { $memo + $entry }
35
- #=> 6
36
-
37
- # Reduce hash values
38
- $a = {a => 1, b => 2, c => 3}
39
- $a.reduce |$memo, $entry| { [sum, $memo[1]+$entry[1]] }
40
- #=> [sum, 6]
41
-
42
- # reverse a string
43
- "abc".reduce |$memo, $char| { "$char$memo" }
44
- #=>"cbe"
45
-
46
- It is possible to provide a starting 'memo' as an argument.
47
-
48
- Example Using reduce with given start 'memo'
49
-
50
- # Reduce an array
51
- $a = [1,2,3]
52
- $a.reduce(4) |$memo, $entry| { $memo + $entry }
53
- #=> 10
54
-
55
- # Reduce hash values
56
- $a = {a => 1, b => 2, c => 3}
57
- $a.reduce([na, 4]) |$memo, $entry| { [sum, $memo[1]+$entry[1]] }
58
- #=> [sum, 10]
59
-
60
- Example Using reduce with an Integer range
61
-
62
- Integer[1,4].reduce |$memo, $x| { $memo + $x }
63
- #=> 10
64
-
65
- - since 4.0.0
6
+ Applies a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
7
+ to every value in a data structure from the first argument, carrying over the returned
8
+ value of each iteration, and returns the result of the lambda's final iteration. This
9
+ lets you create a new value or data structure by combining values from the first
10
+ argument's data structure.
11
+
12
+ This function takes two mandatory arguments, in this order:
13
+
14
+ 1. An array or hash the function will iterate over.
15
+ 2. A lambda, which the function calls for each element in the first argument. It takes
16
+ two mandatory parameters:
17
+ 1. A memo value that is overwritten after each iteration with the iteration's result.
18
+ 2. A second value that is overwritten after each iteration with the next value in the
19
+ function's first argument.
20
+
21
+ **Example**: Using the `reduce` function
22
+
23
+ `$data.reduce |$memo, $value| { ... }`
24
+
25
+ or
26
+
27
+ `reduce($data) |$memo, $value| { ... }`
28
+
29
+ You can also pass an optional "start memo" value as an argument, such as `start` below:
30
+
31
+ `$data.reduce(start) |$memo, $value| { ... }`
32
+
33
+ or
34
+
35
+ `reduce($data, start) |$memo, $value| { ... }`
36
+
37
+ When the first argument (`$data` in the above example) is an array, Puppet passes each
38
+ of the data structure's values in turn to the lambda's parameters. When the first
39
+ argument is a hash, Puppet converts each of the hash's values to an array in the form
40
+ `[key, value]`.
41
+
42
+ If you pass a start memo value, Puppet executes the lambda with the provided memo value
43
+ and the data structure's first value. Otherwise, Puppet passes the structure's first two
44
+ values to the lambda.
45
+
46
+ Puppet calls the lambda for each of the data structure's remaining values. For each
47
+ call, it passes the result of the previous call as the first parameter ($memo in the
48
+ above examples) and the next value from the data structure as the second parameter
49
+ ($value).
50
+
51
+ If the structure has one value, Puppet returns the value and does not call the lambda.
52
+
53
+ **Example**: Using the `reduce` function
54
+
55
+ ~~~ puppet
56
+ # Reduce the array $data, returning the sum of all values in the array.
57
+ $data = [1, 2, 3]
58
+ $sum = $data.reduce |$memo, $value| { $memo + $value }
59
+ # $sum contains 6
60
+
61
+ # Reduce the array $data, returning the sum of a start memo value and all values in the
62
+ # array.
63
+ $data = [1, 2, 3]
64
+ $sum = $data.reduce(4) |$memo, $value| { $memo + $value }
65
+ # $sum contains 10
66
+
67
+ # Reduce the hash $data, returning the sum of all values and concatenated string of all
68
+ # keys.
69
+ $data = {a => 1, b => 2, c => 3}
70
+ $combine = $data.reduce |$memo, $value| {
71
+ $string = "${memo[0]}${value[0]}"
72
+ $number = $memo[1] + $value[1]
73
+ [$string, $number]
74
+ }
75
+ # $combine contains [abc, 6]
76
+ ~~~
77
+
78
+ **Example**: Using the `reduce` function with a start memo and two-parameter lambda
79
+
80
+ ~~~ puppet
81
+ # Reduce the array $data, returning the sum of all values in the array and starting
82
+ # with $memo set to an arbitrary value instead of $data's first value.
83
+ $data = [1, 2, 3]
84
+ $sum = $data.reduce(4) |$memo, $value| { $memo + $value }
85
+ # At the start of the lambda's first iteration, $memo contains 4 and $value contains 1.
86
+ # After all iterations, $sum contains 10.
87
+
88
+ # Reduce the hash $data, returning the sum of all values and concatenated string of
89
+ # all keys, and starting with $memo set to an arbitrary array instead of $data's first
90
+ # key-value pair.
91
+ $data = {a => 1, b => 2, c => 3}
92
+ $combine = $data.reduce( [d, 4] ) |$memo, $value| {
93
+ $string = "${memo[0]}${value[0]}"
94
+ $number = $memo[1] + $value[1]
95
+ [$string, $number]
96
+ }
97
+ # At the start of the lambda's first iteration, $memo contains [d, 4] and $value
98
+ # contains [a, 1].
99
+ # $combine contains [dabc, 10]
100
+ ~~~
101
+
102
+ - Since 4.0.0
66
103
  DOC
67
104
  ) do |args|
68
105
  function_fail(["reduce() is only available when parser/evaluator future is in effect"])
@@ -3,17 +3,25 @@ Puppet::Parser::Functions::newfunction(
3
3
  :type => :rvalue,
4
4
  :arity => -1,
5
5
  :doc => <<-DOC
6
- Call a lambda code block with the given arguments. Since the parameters of the lambda
7
- are local to the lambda's scope, this can be used to create private sections
8
- of logic in a class so that the variables are not visible outside of the
9
- class.
6
+ Call a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
7
+ with the given arguments and return the result. Since a lambda's scope is
8
+ [local](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html#lambda-scope)
9
+ to the lambda, you can use the `with` function to create private blocks of code within a
10
+ class using variables whose values cannot be accessed outside of the lambda.
10
11
 
11
- Example:
12
+ **Example**: Using `with`
12
13
 
13
- # notices the array [1, 2, 'foo']
14
- with(1, 2, 'foo') |$x, $y, $z| { notice [$x, $y, $z] }
14
+ ~~~ puppet
15
+ # Concatenate three strings into a single string formatted as a list.
16
+ $fruit = with("apples", "oranges", "bananas") |$x, $y, $z| {
17
+ "${x}, ${y}, and ${z}"
18
+ }
19
+ $check_var = $x
20
+ # $fruit contains "apples, oranges, and bananas"
21
+ # $check_var is undefined, as the value of $x is local to the lambda.
22
+ ~~~
15
23
 
16
- - since 4.0.0
24
+ - Since 4.0.0
17
25
  DOC
18
26
  ) do |args|
19
27
  function_fail(["with() is only available when parser/evaluator future is in effect"])
@@ -73,16 +73,16 @@ class Puppet::Parser::Resource < Puppet::Resource
73
73
  # Retrieve the associated definition and evaluate it.
74
74
  def evaluate
75
75
  return if evaluated?
76
- @evaluated = true
77
- if klass = resource_type and ! builtin_type?
78
- finish
79
- evaluated_code = klass.evaluate_code(self)
80
-
81
- return evaluated_code
82
- elsif builtin?
83
- devfail "Cannot evaluate a builtin type (#{type})"
84
- else
85
- self.fail "Cannot find definition #{type}"
76
+ Puppet::Util::Profiler.profile("Evaluated resource #{self}", [:compiler, :evaluate_resource, self]) do
77
+ @evaluated = true
78
+ if builtin?
79
+ devfail "Cannot evaluate a builtin type (#{type})"
80
+ elsif resource_type.nil?
81
+ self.fail "Cannot find definition #{type}"
82
+ else
83
+ finish(false) # Call finish but do not validate
84
+ resource_type.evaluate_code(self)
85
+ end
86
86
  end
87
87
  end
88
88
 
@@ -98,13 +98,18 @@ class Puppet::Parser::Resource < Puppet::Resource
98
98
  end
99
99
 
100
100
  # Do any finishing work on this object, called before evaluation or
101
- # before storage/translation.
102
- def finish
101
+ # before storage/translation. The method does nothing the second time
102
+ # it is called on the same resource.
103
+ #
104
+ # @param do_validate [Boolean] true if validation should be performed
105
+ #
106
+ # @api private
107
+ def finish(do_validate = true)
103
108
  return if finished?
104
109
  @finished = true
105
110
  add_defaults
106
111
  add_scope_tags
107
- validate
112
+ validate if do_validate
108
113
  end
109
114
 
110
115
  # Has this resource already been finished?
@@ -112,9 +117,9 @@ class Puppet::Parser::Resource < Puppet::Resource
112
117
  @finished
113
118
  end
114
119
 
115
- def initialize(*args)
116
- raise ArgumentError, "Resources require a hash as last argument" unless args.last.is_a? Hash
117
- raise ArgumentError, "Resources require a scope" unless args.last[:scope]
120
+ def initialize(type, title, attributes)
121
+ raise ArgumentError, 'Resources require a hash as last argument' unless attributes.is_a? Hash
122
+ raise ArgumentError, 'Resources require a scope' unless attributes[:scope]
118
123
  super
119
124
 
120
125
  @source ||= scope.source
@@ -129,6 +134,15 @@ class Puppet::Parser::Resource < Puppet::Resource
129
134
  end
130
135
  end
131
136
 
137
+ def is_unevaluated_consumer?
138
+ # We don't declare a new variable here just to test. Saves memory
139
+ instance_variable_defined?(:@unevaluated_consumer)
140
+ end
141
+
142
+ def mark_unevaluated_consumer
143
+ @unevaluated_consumer = true
144
+ end
145
+
132
146
  # Merge an override resource in. This will throw exceptions if
133
147
  # any overrides aren't allowed.
134
148
  def merge(resource)
@@ -199,6 +213,69 @@ class Puppet::Parser::Resource < Puppet::Resource
199
213
  super || ((scope_resource = scope.resource) && !scope_resource.equal?(self) && scope_resource.raw_tagged?(tag_array))
200
214
  end
201
215
 
216
+ # Fills resource params from a capability
217
+ #
218
+ # This backs 'consumes => Sql[one]'
219
+ # @api private
220
+ def add_parameters_from_consume
221
+ return if self[:consume].nil?
222
+
223
+ map = {}
224
+ [ self[:consume] ].flatten.map do |ref|
225
+ # Assert that the ref really is a resource reference
226
+ raise Puppet::Error, "Invalid consume in #{self.ref}: #{ref} is not a resource" unless ref.is_a?(Puppet::Resource)
227
+
228
+ # Resolve references
229
+ cap = catalog.resource(ref.type, ref.title)
230
+ if cap.nil?
231
+ raise "Resource #{ref} could not be found; it might not have been produced yet"
232
+ end
233
+
234
+ # Ensure that the found resource is a capability resource
235
+ raise Puppet::Error, "Invalid consume in #{ref}: #{cap} is not a capability resource" unless cap.resource_type.is_capability?
236
+ cap
237
+ end.each do |cns|
238
+ # Establish mappings
239
+ blueprint = resource_type.consumes.find do |bp|
240
+ bp[:capability] == cns.type
241
+ end
242
+ # @todo lutter 2015-08-03: catch this earlier, can we do this during
243
+ # static analysis ?
244
+ raise "Resource #{self} tries to consume #{cns} but no 'consumes' mapping exists for #{self.resource_type} and #{cns.type}" unless blueprint
245
+
246
+ # setup scope that has, for each attr of cns, a binding to cns[attr]
247
+ cns_scope = scope.find_global_scope.newscope(:source => self, :resource => self)
248
+ cns.to_hash.each { |name, value| cns_scope[name.to_s] = value }
249
+
250
+ # evaluate mappings in that scope
251
+ resource_type.arguments.keys.each do |name|
252
+ if expr = blueprint[:mappings][name]
253
+ # Explicit mapping
254
+ value = expr.safeevaluate(cns_scope)
255
+ else
256
+ value = cns[name]
257
+ end
258
+ unless value.nil?
259
+ # @todo lutter 2015-07-01: this should be caught by the checker
260
+ # much earlier. We consume several capres, at least two of which
261
+ # want to map to the same parameter (PUP-5080)
262
+ raise "Attempt to reassign attribute '#{name}' in '#{self}' caused by multiple consumed mappings to the same attribute" if map[name]
263
+ map[name] = value
264
+ end
265
+ end
266
+ end
267
+
268
+ map.each { |name, value| self[name] = value if self[name].nil? }
269
+ end
270
+
271
+ def offset
272
+ nil
273
+ end
274
+
275
+ def pos
276
+ nil
277
+ end
278
+
202
279
  private
203
280
 
204
281
  # Add default values from our definition.
@@ -213,7 +290,8 @@ class Puppet::Parser::Resource < Puppet::Resource
213
290
  end
214
291
 
215
292
  def add_scope_tags
216
- if scope_resource = scope.resource
293
+ scope_resource = scope.resource
294
+ unless scope_resource.nil? || scope_resource.equal?(self)
217
295
  merge_tags(scope_resource)
218
296
  end
219
297
  end
@@ -256,11 +334,15 @@ class Puppet::Parser::Resource < Puppet::Resource
256
334
 
257
335
  # Make sure the resource's parameters are all valid for the type.
258
336
  def validate
259
- @parameters.each do |name, param|
260
- validate_parameter(name)
337
+ if builtin_type?
338
+ begin
339
+ @parameters.each { |name, value| validate_parameter(name) }
340
+ rescue => detail
341
+ self.fail Puppet::ParseError, detail.to_s + " on #{self}", detail
342
+ end
343
+ else
344
+ resource_type.validate_resource(self)
261
345
  end
262
- rescue => detail
263
- self.fail Puppet::ParseError, detail.to_s + " on #{self}", detail
264
346
  end
265
347
 
266
348
  def extract_parameters(params)
data/lib/puppet/parser.rb CHANGED
@@ -3,6 +3,7 @@ module Puppet::Parser; end
3
3
 
4
4
  require 'puppet/parser/ast'
5
5
  require 'puppet/parser/compiler'
6
+ require 'puppet/parser/compiler/catalog_validator'
6
7
  require 'puppet/resource/type_collection'
7
8
 
8
9
  require 'puppet/parser/functions'
@@ -13,5 +14,7 @@ require 'puppet/resource/type_collection_helper'
13
14
  require 'puppet/resource/type'
14
15
  require 'monitor'
15
16
 
17
+ Dir[File.dirname(__FILE__) + '/parser/compiler/catalog_validator/*.rb'].each { |f| require f }
18
+
16
19
  # PUP-3274 This should probably go someplace else
17
20
  class Puppet::LexError < RuntimeError; end
@@ -11,6 +11,7 @@ module Puppet::Plugins::Configuration
11
11
  require 'puppet/plugins/binding_schemes'
12
12
  require 'puppet/plugins/syntax_checkers'
13
13
  require 'puppet/plugins/data_providers'
14
+ require 'puppet/plugins/data_providers/registry'
14
15
 
15
16
  # Extension-points are registered here:
16
17
  #
@@ -33,7 +34,7 @@ module Puppet::Plugins::Configuration
33
34
 
34
35
  extensions.multibind(checkers_name).name(checkers_name).hash_of(checkers_type)
35
36
  extensions.multibind(schemes_name).name(schemes_name).hash_of(schemes_type)
36
- Puppet::Plugins::DataProviders::register_extensions(extensions)
37
+ Puppet::Plugins::DataProviders::Registry.register_extensions(extensions)
37
38
 
38
39
  # Register injector boot bindings
39
40
  # -------------------------------
@@ -64,5 +65,5 @@ module Puppet::Plugins::Configuration
64
65
  in_multibind(checkers_name)
65
66
  to_instance('Puppet::SyntaxCheckers::Json')
66
67
  end
67
- Puppet::Plugins::DataProviders::register_defaults(bindings)
68
+ Puppet::Plugins::DataProviders::Registry.register_defaults(bindings)
68
69
  end