puppet 4.3.2 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (487) hide show
  1. checksums.yaml +4 -4
  2. data/COMMITTERS.md +2 -2
  3. data/CONTRIBUTING.md +6 -6
  4. data/LICENSE +1 -1
  5. data/README.md +8 -9
  6. data/conf/auth.conf +2 -2
  7. data/ext/README.environment +1 -1
  8. data/ext/debian/README.source +1 -1
  9. data/ext/debian/control +1 -1
  10. data/ext/debian/copyright +4 -4
  11. data/ext/debian/puppetmaster.README.debian +11 -9
  12. data/ext/emacs/puppet-mode.el +1 -1
  13. data/ext/envpuppet +2 -2
  14. data/ext/ips/puppetagent.xml +1 -1
  15. data/ext/ips/puppetmaster.xml +1 -1
  16. data/ext/project_data.yaml +8 -0
  17. data/ext/puppet-test +3 -3
  18. data/ext/rack/example-passenger-vhost.conf +1 -1
  19. data/ext/redhat/puppet.spec.erb +2 -2
  20. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  21. data/ext/solaris/pkginfo +1 -1
  22. data/ext/solaris/smf/puppet.xml +1 -1
  23. data/ext/suse/puppet.spec +2 -2
  24. data/ext/upload_facts.rb +1 -1
  25. data/ext/windows/puppet_interactive.bat +6 -0
  26. data/ext/windows/puppet_shell.bat +9 -0
  27. data/ext/windows/run_puppet_interactive.bat +9 -0
  28. data/ext/yaml_nodes.rb +1 -1
  29. data/install.rb +30 -20
  30. data/lib/puppet/agent.rb +1 -1
  31. data/lib/puppet/application/agent.rb +4 -2
  32. data/lib/puppet/application/apply.rb +7 -4
  33. data/lib/puppet/application/cert.rb +1 -1
  34. data/lib/puppet/application/device.rb +1 -1
  35. data/lib/puppet/application/filebucket.rb +1 -1
  36. data/lib/puppet/application/inspect.rb +1 -1
  37. data/lib/puppet/application/lookup.rb +4 -4
  38. data/lib/puppet/application/master.rb +2 -2
  39. data/lib/puppet/application/resource.rb +1 -1
  40. data/lib/puppet/configurer.rb +100 -22
  41. data/lib/puppet/data_providers/hiera_config.rb +28 -3
  42. data/lib/puppet/data_providers/hiera_interpolate.rb +30 -15
  43. data/lib/puppet/data_providers/hiera_support.rb +1 -1
  44. data/lib/puppet/data_providers/json_data_provider_factory.rb +2 -2
  45. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -2
  46. data/lib/puppet/defaults.rb +65 -19
  47. data/lib/puppet/environments.rb +3 -1
  48. data/lib/puppet/face/config.rb +1 -1
  49. data/lib/puppet/face/epp.rb +1 -1
  50. data/lib/puppet/face/help/man.erb +1 -1
  51. data/lib/puppet/face/module/install.rb +6 -6
  52. data/lib/puppet/face/parser.rb +12 -9
  53. data/lib/puppet/face/status.rb +2 -1
  54. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  55. data/lib/puppet/feature/telnet.rb +9 -0
  56. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  57. data/lib/puppet/file_serving/metadata.rb +18 -2
  58. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  59. data/lib/puppet/file_system.rb +2 -2
  60. data/lib/puppet/file_system/file_impl.rb +2 -2
  61. data/lib/puppet/file_system/memory_impl.rb +1 -1
  62. data/lib/puppet/file_system/uniquefile.rb +1 -1
  63. data/lib/puppet/forge.rb +1 -1
  64. data/lib/puppet/forge/repository.rb +1 -31
  65. data/lib/puppet/functions.rb +45 -6
  66. data/lib/puppet/functions/assert_type.rb +9 -9
  67. data/lib/puppet/functions/each.rb +5 -13
  68. data/lib/puppet/functions/filter.rb +5 -14
  69. data/lib/puppet/functions/map.rb +6 -14
  70. data/lib/puppet/functions/reduce.rb +5 -13
  71. data/lib/puppet/functions/reverse_each.rb +82 -0
  72. data/lib/puppet/functions/scanf.rb +15 -18
  73. data/lib/puppet/functions/slice.rb +22 -36
  74. data/lib/puppet/functions/split.rb +2 -2
  75. data/lib/puppet/functions/step.rb +88 -0
  76. data/lib/puppet/functions/type.rb +70 -0
  77. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  78. data/lib/puppet/indirector/catalog/compiler.rb +188 -5
  79. data/lib/puppet/indirector/file_content/http.rb +15 -0
  80. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  81. data/lib/puppet/indirector/generic_http.rb +16 -0
  82. data/lib/puppet/indirector/node/exec.rb +1 -1
  83. data/lib/puppet/indirector/node/ldap.rb +1 -1
  84. data/lib/puppet/indirector/rest.rb +2 -1
  85. data/lib/puppet/info_service/class_information_service.rb +13 -12
  86. data/lib/puppet/loaders.rb +1 -0
  87. data/lib/puppet/module.rb +3 -0
  88. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +9 -2
  89. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -1
  90. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +2 -2
  91. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  92. data/lib/puppet/network/http/pool.rb +9 -0
  93. data/lib/puppet/node.rb +1 -1
  94. data/lib/puppet/node/environment.rb +11 -2
  95. data/lib/puppet/parser/ast/pops_bridge.rb +19 -22
  96. data/lib/puppet/parser/compiler.rb +3 -3
  97. data/lib/puppet/parser/environment_compiler.rb +0 -1
  98. data/lib/puppet/parser/functions.rb +28 -16
  99. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -1
  100. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  101. data/lib/puppet/parser/functions/map.rb +1 -1
  102. data/lib/puppet/parser/functions/scanf.rb +15 -26
  103. data/lib/puppet/parser/functions/slice.rb +17 -24
  104. data/lib/puppet/parser/functions/split.rb +1 -1
  105. data/lib/puppet/parser/resource.rb +19 -17
  106. data/lib/puppet/parser/scope.rb +176 -5
  107. data/lib/puppet/plugins/data_providers/data_provider.rb +54 -13
  108. data/lib/puppet/pops.rb +0 -8
  109. data/lib/puppet/pops/adaptable.rb +4 -1
  110. data/lib/puppet/pops/adapters.rb +38 -13
  111. data/lib/puppet/pops/binder/binder.rb +21 -17
  112. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  113. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  114. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  115. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  116. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  117. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  118. data/lib/puppet/pops/binder/injector.rb +53 -48
  119. data/lib/puppet/pops/binder/key_factory.rb +10 -6
  120. data/lib/puppet/pops/binder/producers.rb +67 -62
  121. data/lib/puppet/pops/evaluator/access_operator.rb +95 -93
  122. data/lib/puppet/pops/evaluator/closure.rb +84 -68
  123. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -14
  124. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -1
  125. data/lib/puppet/pops/evaluator/compare_operator.rb +13 -9
  126. data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
  127. data/lib/puppet/pops/evaluator/evaluator_impl.rb +78 -76
  128. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +85 -0
  129. data/lib/puppet/pops/evaluator/relationship_operator.rb +13 -11
  130. data/lib/puppet/pops/evaluator/runtime3_converter.rb +5 -0
  131. data/lib/puppet/pops/evaluator/runtime3_support.rb +41 -45
  132. data/lib/puppet/pops/issue_reporter.rb +6 -4
  133. data/lib/puppet/pops/issues.rb +34 -11
  134. data/lib/puppet/pops/loader/base_loader.rb +1 -1
  135. data/lib/puppet/pops/loader/loader.rb +1 -1
  136. data/lib/puppet/pops/loader/loader_paths.rb +15 -0
  137. data/lib/puppet/pops/loader/module_loaders.rb +17 -13
  138. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +16 -12
  139. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -3
  140. data/lib/puppet/pops/loader/type_definition_instantiator.rb +55 -0
  141. data/lib/puppet/pops/loaders.rb +51 -9
  142. data/lib/puppet/pops/lookup.rb +14 -12
  143. data/lib/puppet/pops/merge_strategy.rb +16 -19
  144. data/lib/puppet/pops/model/factory.rb +26 -2
  145. data/lib/puppet/pops/model/model.rb +8 -8
  146. data/lib/puppet/pops/model/model_label_provider.rb +13 -7
  147. data/lib/puppet/pops/model/model_meta.rb +17 -0
  148. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -0
  149. data/lib/puppet/pops/parser/egrammar.ra +38 -14
  150. data/lib/puppet/pops/parser/eparser.rb +1353 -1276
  151. data/lib/puppet/pops/parser/epp_support.rb +11 -7
  152. data/lib/puppet/pops/parser/evaluating_parser.rb +14 -10
  153. data/lib/puppet/pops/parser/heredoc_support.rb +15 -11
  154. data/lib/puppet/pops/parser/lexer2.rb +26 -19
  155. data/lib/puppet/pops/parser/lexer_support.rb +85 -7
  156. data/lib/puppet/pops/parser/locator.rb +21 -0
  157. data/lib/puppet/pops/parser/parser_support.rb +19 -16
  158. data/lib/puppet/pops/parser/slurp_support.rb +11 -7
  159. data/lib/puppet/pops/types/class_loader.rb +23 -19
  160. data/lib/puppet/pops/types/enumeration.rb +9 -26
  161. data/lib/puppet/pops/types/iterable.rb +308 -0
  162. data/lib/puppet/pops/types/recursion_guard.rb +82 -0
  163. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  164. data/lib/puppet/pops/types/type_asserter.rb +10 -9
  165. data/lib/puppet/pops/types/type_calculator.rb +138 -381
  166. data/lib/puppet/pops/types/type_factory.rb +91 -57
  167. data/lib/puppet/pops/types/type_formatter.rb +334 -0
  168. data/lib/puppet/pops/types/type_mismatch_describer.rb +226 -59
  169. data/lib/puppet/pops/types/type_parser.rb +159 -112
  170. data/lib/puppet/pops/types/types.rb +2057 -1247
  171. data/lib/puppet/pops/utils.rb +11 -10
  172. data/lib/puppet/pops/validation.rb +11 -9
  173. data/lib/puppet/pops/validation/checker4_0.rb +83 -55
  174. data/lib/puppet/pops/validation/validator_factory_4_0.rb +8 -4
  175. data/lib/puppet/provider/aixobject.rb +1 -1
  176. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  177. data/lib/puppet/provider/cron/crontab.rb +1 -1
  178. data/lib/puppet/provider/exec/windows.rb +1 -1
  179. data/lib/puppet/provider/macauthorization/macauthorization.rb +10 -9
  180. data/lib/puppet/provider/nameservice/directoryservice.rb +35 -50
  181. data/lib/puppet/provider/package/appdmg.rb +3 -2
  182. data/lib/puppet/provider/package/dnf.rb +1 -1
  183. data/lib/puppet/provider/package/pip.rb +5 -8
  184. data/lib/puppet/provider/package/pip3.rb +1 -1
  185. data/lib/puppet/provider/package/pkg.rb +1 -1
  186. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  187. data/lib/puppet/provider/package/pkgng.rb +13 -4
  188. data/lib/puppet/provider/package/windows.rb +1 -1
  189. data/lib/puppet/provider/package/yum.rb +1 -1
  190. data/lib/puppet/provider/package/zypper.rb +19 -0
  191. data/lib/puppet/provider/service/debian.rb +2 -2
  192. data/lib/puppet/provider/service/launchd.rb +6 -18
  193. data/lib/puppet/provider/service/systemd.rb +9 -2
  194. data/lib/puppet/provider/sshkey/parsed.rb +1 -1
  195. data/lib/puppet/provider/user/aix.rb +1 -1
  196. data/lib/puppet/provider/user/directoryservice.rb +33 -58
  197. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  198. data/lib/puppet/provider/zpool/zpool.rb +1 -1
  199. data/lib/puppet/reference/configuration.rb +1 -1
  200. data/lib/puppet/reference/providers.rb +1 -1
  201. data/lib/puppet/resource.rb +15 -12
  202. data/lib/puppet/resource/capability_finder.rb +20 -13
  203. data/lib/puppet/resource/catalog.rb +60 -3
  204. data/lib/puppet/resource/status.rb +11 -2
  205. data/lib/puppet/resource/type.rb +28 -38
  206. data/lib/puppet/settings.rb +1 -1
  207. data/lib/puppet/settings/config_file.rb +1 -1
  208. data/lib/puppet/settings/environment_conf.rb +13 -5
  209. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  210. data/lib/puppet/ssl/certificate_request.rb +4 -4
  211. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  212. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  213. data/lib/puppet/test/test_helper.rb +16 -4
  214. data/lib/puppet/transaction.rb +15 -2
  215. data/lib/puppet/transaction/additional_resource_generator.rb +6 -2
  216. data/lib/puppet/transaction/report.rb +31 -1
  217. data/lib/puppet/transaction/resource_harness.rb +0 -25
  218. data/lib/puppet/type.rb +11 -11
  219. data/lib/puppet/type/augeas.rb +1 -1
  220. data/lib/puppet/type/cron.rb +12 -12
  221. data/lib/puppet/type/file.rb +91 -39
  222. data/lib/puppet/type/file/checksum_value.rb +53 -0
  223. data/lib/puppet/type/file/content.rb +26 -111
  224. data/lib/puppet/type/file/data_sync.rb +84 -0
  225. data/lib/puppet/type/file/ensure.rb +17 -14
  226. data/lib/puppet/type/file/selcontext.rb +1 -1
  227. data/lib/puppet/type/file/source.rb +103 -18
  228. data/lib/puppet/type/filebucket.rb +1 -1
  229. data/lib/puppet/type/interface.rb +8 -3
  230. data/lib/puppet/type/macauthorization.rb +1 -1
  231. data/lib/puppet/type/package.rb +6 -0
  232. data/lib/puppet/type/schedule.rb +1 -1
  233. data/lib/puppet/type/stage.rb +1 -1
  234. data/lib/puppet/type/user.rb +19 -17
  235. data/lib/puppet/type/yumrepo.rb +20 -0
  236. data/lib/puppet/util.rb +109 -22
  237. data/lib/puppet/util/autoload.rb +16 -11
  238. data/lib/puppet/util/checksums.rb +74 -31
  239. data/lib/puppet/util/execution.rb +1 -1
  240. data/lib/puppet/util/http_proxy.rb +72 -0
  241. data/lib/puppet/util/log.rb +2 -0
  242. data/lib/puppet/util/logging.rb +43 -1
  243. data/lib/puppet/util/monkey_patches.rb +2 -2
  244. data/lib/puppet/util/multi_match.rb +51 -0
  245. data/lib/puppet/util/network_device/cisco/device.rb +10 -2
  246. data/lib/puppet/util/network_device/cisco/interface.rb +21 -8
  247. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  248. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  249. data/lib/puppet/util/plist.rb +130 -0
  250. data/lib/puppet/util/resource_template.rb +1 -1
  251. data/lib/puppet/util/run_mode.rb +2 -2
  252. data/lib/puppet/util/skip_tags.rb +9 -0
  253. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  254. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  255. data/lib/puppet/util/windows/adsi.rb +4 -4
  256. data/lib/puppet/util/windows/api_types.rb +24 -18
  257. data/lib/puppet/util/windows/com.rb +3 -3
  258. data/lib/puppet/util/windows/error.rb +1 -1
  259. data/lib/puppet/util/windows/file.rb +8 -8
  260. data/lib/puppet/util/windows/principal.rb +23 -14
  261. data/lib/puppet/util/windows/process.rb +78 -11
  262. data/lib/puppet/util/windows/registry.rb +1 -1
  263. data/lib/puppet/util/windows/root_certs.rb +5 -5
  264. data/lib/puppet/util/windows/security.rb +33 -35
  265. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  266. data/lib/puppet/util/windows/sid.rb +42 -4
  267. data/lib/puppet/util/windows/taskscheduler.rb +15 -15
  268. data/lib/puppet/util/windows/user.rb +10 -10
  269. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  270. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  271. data/lib/puppet/vendor/pathspec/README.md +1 -1
  272. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  273. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +14 -0
  274. data/lib/puppet/version.rb +1 -1
  275. data/lib/semver.rb +17 -1
  276. data/man/man5/puppet.conf.5 +12 -12
  277. data/man/man8/extlookup2hiera.8 +1 -1
  278. data/man/man8/puppet-agent.8 +2 -2
  279. data/man/man8/puppet-apply.8 +2 -2
  280. data/man/man8/puppet-ca.8 +2 -2
  281. data/man/man8/puppet-catalog.8 +2 -2
  282. data/man/man8/puppet-cert.8 +2 -2
  283. data/man/man8/puppet-certificate.8 +2 -2
  284. data/man/man8/puppet-certificate_request.8 +2 -2
  285. data/man/man8/puppet-certificate_revocation_list.8 +2 -2
  286. data/man/man8/puppet-config.8 +3 -3
  287. data/man/man8/puppet-describe.8 +1 -1
  288. data/man/man8/puppet-device.8 +1 -1
  289. data/man/man8/puppet-doc.8 +1 -1
  290. data/man/man8/puppet-epp.8 +2 -2
  291. data/man/man8/puppet-facts.8 +2 -2
  292. data/man/man8/puppet-file.8 +2 -2
  293. data/man/man8/puppet-filebucket.8 +2 -2
  294. data/man/man8/puppet-help.8 +2 -2
  295. data/man/man8/puppet-inspect.8 +2 -2
  296. data/man/man8/puppet-key.8 +2 -2
  297. data/man/man8/puppet-man.8 +2 -2
  298. data/man/man8/puppet-master.8 +2 -2
  299. data/man/man8/puppet-module.8 +9 -9
  300. data/man/man8/puppet-node.8 +2 -2
  301. data/man/man8/puppet-parser.8 +2 -2
  302. data/man/man8/puppet-plugin.8 +2 -2
  303. data/man/man8/puppet-report.8 +2 -2
  304. data/man/man8/puppet-resource.8 +2 -2
  305. data/man/man8/puppet-resource_type.8 +2 -2
  306. data/man/man8/puppet-status.8 +3 -3
  307. data/man/man8/puppet.8 +1 -1
  308. data/spec/fixtures/module.tar.gz +0 -0
  309. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  310. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -1
  311. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/data/empty.json +0 -0
  312. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/hiera.yaml +5 -0
  313. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/manifests/init.pp +2 -0
  314. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/metadata.json +9 -0
  315. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
  316. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  317. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  318. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/metadata.json +9 -0
  319. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +2 -1
  320. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  321. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +3 -1
  322. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  323. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  324. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  325. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  326. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  327. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
  328. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
  329. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  330. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
  331. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  332. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
  333. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
  334. data/spec/integration/defaults_spec.rb +14 -2
  335. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  336. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  337. data/spec/integration/node/environment_spec.rb +13 -0
  338. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  339. data/spec/integration/parser/parameter_defaults_spec.rb +336 -0
  340. data/spec/integration/parser/undef_param_spec.rb +8 -0
  341. data/spec/integration/provider/yumrepo_spec.rb +1 -1
  342. data/spec/integration/test/test_helper_spec.rb +28 -0
  343. data/spec/integration/transaction/report_spec.rb +16 -0
  344. data/spec/integration/transaction_spec.rb +11 -0
  345. data/spec/integration/type/file_spec.rb +194 -4
  346. data/spec/integration/type/package_spec.rb +5 -1
  347. data/spec/integration/type/tidy_spec.rb +21 -9
  348. data/spec/integration/util/execution_spec.rb +22 -0
  349. data/spec/integration/util/windows/principal_spec.rb +90 -4
  350. data/spec/integration/util/windows/process_spec.rb +31 -0
  351. data/spec/integration/util/windows/security_spec.rb +6 -6
  352. data/spec/integration/util/windows/user_spec.rb +1 -1
  353. data/spec/integration/util_spec.rb +49 -27
  354. data/spec/lib/puppet_spec/compiler.rb +17 -0
  355. data/spec/lib/puppet_spec/files.rb +2 -2
  356. data/spec/lib/puppet_spec/pops.rb +13 -0
  357. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  358. data/spec/shared_contexts/types_setup.rb +96 -0
  359. data/spec/unit/agent_spec.rb +1 -0
  360. data/spec/unit/application/agent_spec.rb +10 -0
  361. data/spec/unit/application/apply_spec.rb +9 -0
  362. data/spec/unit/configurer/downloader_spec.rb +5 -5
  363. data/spec/unit/configurer_spec.rb +271 -39
  364. data/spec/unit/data_providers/hiera_interpolation_spec.rb +57 -0
  365. data/spec/unit/defaults_spec.rb +15 -0
  366. data/spec/unit/environments_spec.rb +24 -4
  367. data/spec/unit/face/parser_spec.rb +43 -2
  368. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  369. data/spec/unit/file_serving/metadata_spec.rb +50 -0
  370. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  371. data/spec/unit/file_system_spec.rb +26 -0
  372. data/spec/unit/functions/assert_type_spec.rb +36 -2
  373. data/spec/unit/functions/defined_spec.rb +2 -2
  374. data/spec/unit/functions/epp_spec.rb +11 -3
  375. data/spec/unit/functions/lookup_spec.rb +58 -13
  376. data/spec/unit/functions/regsubst_spec.rb +1 -1
  377. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  378. data/spec/unit/functions/step_spec.rb +113 -0
  379. data/spec/unit/functions/type_spec.rb +35 -0
  380. data/spec/unit/functions4_spec.rb +61 -5
  381. data/spec/unit/indirector/catalog/compiler_spec.rb +705 -4
  382. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  383. data/spec/unit/indirector/indirection_spec.rb +1 -1
  384. data/spec/unit/info_service_spec.rb +94 -32
  385. data/spec/unit/module_spec.rb +14 -0
  386. data/spec/unit/module_tool/applications/builder_spec.rb +4 -4
  387. data/spec/unit/network/authstore_spec.rb +1 -1
  388. data/spec/unit/network/http/connection_spec.rb +1 -0
  389. data/spec/unit/network/http/pool_spec.rb +30 -0
  390. data/spec/unit/node_spec.rb +1 -1
  391. data/spec/unit/parser/compiler_spec.rb +16 -0
  392. data/spec/unit/parser/scope_spec.rb +28 -11
  393. data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
  394. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  395. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +7 -1
  396. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  397. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  398. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +6 -0
  399. data/spec/unit/pops/loaders/dependency_loader_spec.rb +53 -0
  400. data/spec/unit/pops/loaders/loaders_spec.rb +44 -1
  401. data/spec/unit/pops/parser/lexer2_spec.rb +112 -3
  402. data/spec/unit/pops/parser/parse_calls_spec.rb +8 -0
  403. data/spec/unit/pops/parser/parser_spec.rb +10 -0
  404. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  405. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  406. data/spec/unit/pops/types/recursion_guard_spec.rb +91 -0
  407. data/spec/unit/pops/types/type_acceptor_spec.rb +105 -0
  408. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  409. data/spec/unit/pops/types/type_calculator_spec.rb +275 -373
  410. data/spec/unit/pops/types/type_formatter_spec.rb +280 -0
  411. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +152 -0
  412. data/spec/unit/pops/types/type_parser_spec.rb +58 -13
  413. data/spec/unit/pops/types/types_spec.rb +241 -0
  414. data/spec/unit/pops/validator/validator_spec.rb +100 -43
  415. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  416. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  417. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  418. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  419. data/spec/unit/provider/package/dnf_spec.rb +16 -0
  420. data/spec/unit/provider/package/pip3_spec.rb +60 -42
  421. data/spec/unit/provider/package/pip_spec.rb +47 -34
  422. data/spec/unit/provider/package/pkgdmg_spec.rb +18 -9
  423. data/spec/unit/provider/package/pkgng_spec.rb +4 -2
  424. data/spec/unit/provider/package/yum_spec.rb +11 -0
  425. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  426. data/spec/unit/provider/service/launchd_spec.rb +17 -35
  427. data/spec/unit/provider/service/systemd_spec.rb +7 -0
  428. data/spec/unit/provider/sshkey/parsed_spec.rb +20 -19
  429. data/spec/unit/provider/user/directoryservice_spec.rb +40 -59
  430. data/spec/unit/resource/capability_finder_spec.rb +28 -15
  431. data/spec/unit/resource/catalog_spec.rb +33 -1
  432. data/spec/unit/resource/type_spec.rb +149 -7
  433. data/spec/unit/resource_spec.rb +96 -57
  434. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  435. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  436. data/spec/unit/transaction/report_spec.rb +27 -0
  437. data/spec/unit/transaction/resource_harness_spec.rb +0 -47
  438. data/spec/unit/transaction_spec.rb +5 -0
  439. data/spec/unit/type/file/checksum_spec.rb +6 -0
  440. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  441. data/spec/unit/type/file/content_spec.rb +12 -193
  442. data/spec/unit/type/file/source_spec.rb +211 -119
  443. data/spec/unit/type/file_spec.rb +133 -34
  444. data/spec/unit/type/interface_spec.rb +32 -0
  445. data/spec/unit/type/macauthorization_spec.rb +4 -1
  446. data/spec/unit/type/yumrepo_spec.rb +2 -2
  447. data/spec/unit/util/filetype_spec.rb +1 -1
  448. data/spec/unit/util/http_proxy_spec.rb +2 -2
  449. data/spec/unit/util/log/destinations_spec.rb +0 -2
  450. data/spec/unit/util/logging_spec.rb +69 -0
  451. data/spec/unit/util/multi_match_spec.rb +39 -0
  452. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  453. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  454. data/spec/unit/util/plist_spec.rb +110 -0
  455. data/spec/unit/util/resource_template_spec.rb +2 -2
  456. data/spec/unit/util/run_mode_spec.rb +27 -3
  457. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  458. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  459. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  460. data/spec/unit/util/windows/sid_spec.rb +1 -1
  461. data/spec/unit/util_spec.rb +123 -13
  462. data/tasks/cfpropertylist.rake +15 -0
  463. metadata +114 -26
  464. data/lib/puppet/vendor/load_plist.rb +0 -1
  465. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  466. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  467. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  468. data/lib/puppet/vendor/plist/README +0 -36
  469. data/lib/puppet/vendor/plist/Rakefile +0 -144
  470. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  471. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  472. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  473. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  474. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  475. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  476. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  477. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  478. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  479. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  480. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  481. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  482. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  483. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  484. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  485. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  486. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  487. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
@@ -1,68 +1,70 @@
1
1
  require 'rgen/metamodel_builder'
2
2
 
3
+ module Puppet::Pops
4
+ module Binder
3
5
  # The Bindings model is a model of Key to Producer mappings (bindings).
4
6
  # It is composed of a meta-model part (bindings_model_meta.rb), and
5
7
  # and implementation part (this file).
6
8
  #
7
- # @see Puppet::Pops::Binder::BindingsFactory The BindingsFactory for more details on how to create model instances.
9
+ # @see BindingsFactory The BindingsFactory for more details on how to create model instances.
8
10
  # @api public
9
- module Puppet::Pops::Binder
10
- require 'puppet/pops/binder/bindings_model_meta'
11
+ require 'puppet/pops/binder/bindings_model_meta'
11
12
 
12
- # TODO: See PUP-2978 for possible performance optimization
13
+ # TODO: See PUP-2978 for possible performance optimization
13
14
 
14
- # Mix in implementation into the generated code
15
- module Bindings
16
- class BindingsModelObject
17
- include Puppet::Pops::Visitable
18
- include Puppet::Pops::Adaptable
19
- include Puppet::Pops::Containment
20
- end
15
+ # Mix in implementation into the generated code
16
+ module Bindings
17
+ class BindingsModelObject
18
+ include Visitable
19
+ include Adaptable
20
+ include Containment
21
+ end
21
22
 
22
- class ConstantProducerDescriptor
23
- module ClassModule
24
- def setValue(v)
25
- @value = v
26
- end
27
- def getValue()
28
- @value
29
- end
30
- def value=(v)
31
- @value = v
32
- end
23
+ class ConstantProducerDescriptor
24
+ module ClassModule
25
+ def setValue(v)
26
+ @value = v
27
+ end
28
+ def getValue()
29
+ @value
30
+ end
31
+ def value=(v)
32
+ @value = v
33
33
  end
34
34
  end
35
+ end
35
36
 
36
- class NamedArgument
37
- module ClassModule
38
- def setValue(v)
39
- @value = v
40
- end
41
- def getValue()
42
- @value
43
- end
44
- def value=(v)
45
- @value = v
46
- end
37
+ class NamedArgument
38
+ module ClassModule
39
+ def setValue(v)
40
+ @value = v
41
+ end
42
+ def getValue()
43
+ @value
44
+ end
45
+ def value=(v)
46
+ @value = v
47
47
  end
48
48
  end
49
+ end
49
50
 
50
- class InstanceProducerDescriptor
51
- module ClassModule
52
- def addArguments(val, index =-1)
53
- @arguments ||= []
54
- @arguments.insert(index, val)
55
- end
56
- def removeArguments(val)
57
- raise "unsupported operation"
58
- end
59
- def setArguments(values)
60
- @arguments = []
61
- values.each {|v| addArguments(v) }
62
- end
51
+ class InstanceProducerDescriptor
52
+ module ClassModule
53
+ def addArguments(val, index =-1)
54
+ @arguments ||= []
55
+ @arguments.insert(index, val)
56
+ end
57
+ def removeArguments(val)
58
+ raise "unsupported operation"
59
+ end
60
+ def setArguments(values)
61
+ @arguments = []
62
+ values.each {|v| addArguments(v) }
63
63
  end
64
64
  end
65
-
66
65
  end
67
66
 
68
67
  end
68
+ end
69
+ end
70
+
@@ -1,15 +1,17 @@
1
- module Puppet::Pops::Binder::Config
1
+ module Puppet::Pops
2
+ module Binder
3
+ module Config
2
4
  # Generates validation diagnostics
3
- class Puppet::Pops::Binder::Config::DiagnosticProducer
5
+ class DiagnosticProducer
4
6
  def initialize(acceptor)
5
7
  @acceptor = acceptor
6
- @severity_producer = Puppet::Pops::Validation::SeverityProducer.new
8
+ @severity_producer = Validation::SeverityProducer.new
7
9
  end
8
10
 
9
11
  def accept(issue, semantic, arguments={})
10
12
  arguments[:semantic] ||= semantic
11
13
  severity = severity_producer.severity(issue)
12
- @acceptor.accept(Puppet::Pops::Validation::Diagnostic.new(severity, issue, nil, nil, arguments))
14
+ @acceptor.accept(Validation::Diagnostic.new(severity, issue, nil, nil, arguments))
13
15
  end
14
16
 
15
17
  def errors?()
@@ -22,11 +24,13 @@ module Puppet::Pops::Binder::Config
22
24
  # p[Issues::XXX] = :warning
23
25
 
24
26
  # ignored because there is a default
25
- p[Puppet::Pops::Binder::Config::Issues::CONFIG_LAYERS_MISSING] = :ignore
27
+ p[Issues::CONFIG_LAYERS_MISSING] = :ignore
26
28
 
27
29
  # ignored because there is a default
28
- p[Puppet::Pops::Binder::Config::Issues::CONFIG_CATEGORIES_MISSING] = :ignore
30
+ p[Issues::CONFIG_CATEGORIES_MISSING] = :ignore
29
31
  p
30
32
  end
31
33
  end
32
34
  end
35
+ end
36
+ end
@@ -1,8 +1,10 @@
1
+ module Puppet::Pops
2
+ module Binder
1
3
  # The injector is the "lookup service" class
2
4
  #
3
5
  # Initialization
4
6
  # --------------
5
- # The injector is initialized with a configured {Puppet::Pops::Binder::Binder Binder}. The Binder instance contains a resolved set of
7
+ # The injector is initialized with a configured {Binder Binder}. The Binder instance contains a resolved set of
6
8
  # `key => "binding information"` that is used to setup the injector.
7
9
  #
8
10
  # Lookup
@@ -34,8 +36,8 @@
34
36
  # recreate the producer on each call to `produce`; i.e. each `lookup_producer` returns a producer capable of returning
35
37
  # a series of objects.
36
38
  #
37
- # @see Puppet::Pops::Binder::Binder Binder, for details about how to bind keys to producers
38
- # @see Puppet::Pops::Binder::BindingsFactory BindingsFactory, for a convenient way to create a Binder and bindings
39
+ # @see Binder Binder, for details about how to bind keys to producers
40
+ # @see BindingsFactory BindingsFactory, for a convenient way to create a Binder and bindings
39
41
  #
40
42
  # Assisted Inject
41
43
  # ---------------
@@ -66,7 +68,7 @@
66
68
  # injector.lookup(scope, Duck)
67
69
  # # Produces a Duck named 'Donald Duck' or named after the binding 'default-duck-name' (and with similar treatment of
68
70
  # # year_of_birth).
69
- # @see Puppet::Pops::Binder::Producers::AssistedInjectProducer AssistedInjectProducer, for more details on assisted injection
71
+ # @see Producers::AssistedInjectProducer AssistedInjectProducer, for more details on assisted injection
70
72
  #
71
73
  # Access to key factory and type calculator
72
74
  # -----------------------------------------
@@ -82,19 +84,19 @@
82
84
  #
83
85
  # @api public
84
86
  #
85
- class Puppet::Pops::Binder::Injector
87
+ class Injector
86
88
 
87
- Producers = Puppet::Pops::Binder::Producers
89
+ Producers = Producers
88
90
 
89
91
  def self.create_from_model(layered_bindings_model)
90
- self.new(Puppet::Pops::Binder::Binder.new(layered_bindings_model))
92
+ self.new(Binder.new(layered_bindings_model))
91
93
  end
92
94
 
93
95
  def self.create_from_hash(name, key_value_hash)
94
- factory = Puppet::Pops::Binder::BindingsFactory
96
+ factory = BindingsFactory
95
97
  named_bindings = factory.named_bindings(name) { key_value_hash.each {|k,v| bind.name(k).to(v) }}
96
98
  layered_bindings = factory.layered_bindings(factory.named_layer(name+'-layer',named_bindings.model))
97
- self.new(Puppet::Pops::Binder::Binder.new(layered_bindings))
99
+ self.new(Binder.new(layered_bindings))
98
100
  end
99
101
 
100
102
  # Creates an injector with a single bindings layer created with the given name, and the bindings
@@ -108,9 +110,9 @@ class Puppet::Pops::Binder::Injector
108
110
  # @api public
109
111
  #
110
112
  def self.create(name, &block)
111
- factory = Puppet::Pops::Binder::BindingsFactory
113
+ factory = BindingsFactory
112
114
  layered_bindings = factory.layered_bindings(factory.named_layer(name+'-layer',factory.named_bindings(name, &block).model))
113
- self.new(Puppet::Pops::Binder::Binder.new(layered_bindings))
115
+ self.new(Binder.new(layered_bindings))
114
116
  end
115
117
 
116
118
  # Creates an overriding injector with a single bindings layer
@@ -125,9 +127,9 @@ class Puppet::Pops::Binder::Injector
125
127
  # @api public
126
128
  #
127
129
  def override(name, &block)
128
- factory = Puppet::Pops::Binder::BindingsFactory
130
+ factory = BindingsFactory
129
131
  layered_bindings = factory.layered_bindings(factory.named_layer(name+'-layer',factory.named_bindings(name, &block).model))
130
- self.class.new(Puppet::Pops::Binder::Binder.new(layered_bindings, @impl.binder))
132
+ self.class.new(Binder.new(layered_bindings, @impl.binder))
131
133
  end
132
134
 
133
135
  # Creates an overriding injector with bindings from a bindings model (a LayeredBindings) which
@@ -136,10 +138,10 @@ class Puppet::Pops::Binder::Injector
136
138
  # @api public
137
139
  #
138
140
  def override_with_model(layered_bindings)
139
- unless layered_bindings.is_a?(Puppet::Pops::Binder::Bindings::LayeredBindings)
141
+ unless layered_bindings.is_a?(Bindings::LayeredBindings)
140
142
  raise ArgumentError, "Expected a LayeredBindings model, got '#{bindings_model.class}'"
141
143
  end
142
- self.class.new(Puppet::Pops::Binder::Binder.new(layered_bindings, @impl.binder))
144
+ self.class.new(Binder.new(layered_bindings, @impl.binder))
143
145
  end
144
146
 
145
147
  # Creates an overriding injector with a single bindings layer
@@ -147,15 +149,15 @@ class Puppet::Pops::Binder::Injector
147
149
  # @api public
148
150
  #
149
151
  def override_with_hash(name, key_value_hash)
150
- factory = Puppet::Pops::Binder::BindingsFactory
152
+ factory = BindingsFactory
151
153
  named_bindings = factory.named_bindings(name) { key_value_hash.each {|k,v| bind.name(k).to(v) }}
152
154
  layered_bindings = factory.layered_bindings(factory.named_layer(name+'-layer',named_bindings.model))
153
- self.class.new(Puppet::Pops::Binder::Binder.new(layered_bindings, @impl.binder))
155
+ self.class.new(Binder.new(layered_bindings, @impl.binder))
154
156
  end
155
157
 
156
- # An Injector is initialized with a configured {Puppet::Pops::Binder::Binder Binder}.
158
+ # An Injector is initialized with a configured {Binder Binder}.
157
159
  #
158
- # @param configured_binder [Puppet::Pops::Binder::Binder,nil] The configured binder containing effective bindings. A given value
160
+ # @param configured_binder [Binder,nil] The configured binder containing effective bindings. A given value
159
161
  # of nil creates an injector that returns or yields nil on all lookup requests.
160
162
  # @raise ArgumentError if the given binder is not fully configured
161
163
  #
@@ -172,7 +174,7 @@ class Puppet::Pops::Binder::Injector
172
174
  # The KeyFactory used to produce keys in this injector.
173
175
  # The factory is shared with the Binder to ensure consistent translation to keys.
174
176
  # A compatible type calculator can also be obtained from the key factory.
175
- # @return [Puppet::Pops::Binder::KeyFactory] the key factory in use
177
+ # @return [KeyFactory] the key factory in use
176
178
  #
177
179
  # @api public
178
180
  #
@@ -183,7 +185,7 @@ class Puppet::Pops::Binder::Injector
183
185
  # Returns the TypeCalculator in use for keys. The same calculator (as used for keys) should be used if there is a need
184
186
  # to check type conformance, or infer the type of Ruby objects.
185
187
  #
186
- # @return [Puppet::Pops::Types::TypeCalculator] the type calculator that is in use for keys
188
+ # @return [Types::TypeCalculator] the type calculator that is in use for keys
187
189
  # @api public
188
190
  #
189
191
  def type_calculator()
@@ -205,7 +207,7 @@ class Puppet::Pops::Binder::Injector
205
207
  # @overload lookup(scope, type, name = '')
206
208
  # (see #lookup_type)
207
209
  # @param scope [Puppet::Parser::Scope] the scope to use for evaluation
208
- # @param type [Puppet::Pops::Types::PAnyType] the type of what to lookup
210
+ # @param type [Types::PAnyType] the type of what to lookup
209
211
  # @param name [String] the name to use, defaults to empty string (for unnamed)
210
212
  #
211
213
  # @overload lookup(scope, name)
@@ -231,7 +233,7 @@ class Puppet::Pops::Binder::Injector
231
233
  # Creates a key for the type/name combination using a KeyFactory. Specialization of the Data type are transformed
232
234
  # to a Data key, and the result is type checked to conform with the given key.
233
235
  #
234
- # @param type [Puppet::Pops::Types::PAnyType] the type to lookup as defined by Puppet::Pops::Types::TypeFactory
236
+ # @param type [Types::PAnyType] the type to lookup as defined by Types::TypeFactory
235
237
  # @param name [String] the (optional for non `Data` types) name of the entry to lookup.
236
238
  # The name may be an empty String (the default), but not nil. The name is required for lookup for subtypes of
237
239
  # `Data`.
@@ -247,7 +249,7 @@ class Puppet::Pops::Binder::Injector
247
249
  # Looks up the key and returns the entry, or nil if no entry is found.
248
250
  # Produced type is checked for type conformance with its binding, but not with the lookup key.
249
251
  # (This since all subtypes of PDataType are looked up using a key based on PDataType).
250
- # Use the Puppet::Pops::Types::TypeCalculator#instance? method to check for conformance of the result
252
+ # Use the Types::TypeCalculator#instance? method to check for conformance of the result
251
253
  # if this is wanted, or use #lookup_type.
252
254
  #
253
255
  # @param key [Object] lookup of key as produced by the key factory
@@ -275,7 +277,7 @@ class Puppet::Pops::Binder::Injector
275
277
  # @overload lookup_producer(scope, type, name = '')
276
278
  # (see #lookup_type)
277
279
  # @param scope [Puppet::Parser::Scope] the scope to use for evaluation
278
- # @param type [Puppet::Pops::Types::PAnyType], the type of what to lookup
280
+ # @param type [Types::PAnyType], the type of what to lookup
279
281
  # @param name [String], the name to use, defaults to empty string (for unnamed)
280
282
  #
281
283
  # @overload lookup_producer(scope, name)
@@ -284,11 +286,11 @@ class Puppet::Pops::Binder::Injector
284
286
  # @param scope [Puppet::Parser::Scope] the scope to use for evaluation
285
287
  # @param name [String], the Data/name to lookup
286
288
  #
287
- # @return [Puppet::Pops::Binder::Producers::Producer, Object, nil] a producer, or what the optional block returns
289
+ # @return [Producers::Producer, Object, nil] a producer, or what the optional block returns
288
290
  #
289
291
  # @yield [producer] passes the looked up producer to an optional block and returns what this block returns
290
292
  # @yield [scope, producer] passes scope and producer to the block and returns what this block returns
291
- # @yieldparam producer [Puppet::Pops::Binder::Producers::Producer, nil] the looked up producer or nil if nothing was bound
293
+ # @yieldparam producer [Producers::Producer, nil] the looked up producer or nil if nothing was bound
292
294
  # @yieldparam scope [Puppet::Parser::Scope] the scope given to lookup
293
295
  #
294
296
  # @raise [ArgumentError] if the block has an arity that is not 1 or 2
@@ -300,7 +302,7 @@ class Puppet::Pops::Binder::Injector
300
302
  end
301
303
 
302
304
  # Looks up a Producer given an opaque binder key.
303
- # @return [Puppet::Pops::Binder::Producers::Producer, nil] the bound producer, or nil if no such producer was found.
305
+ # @return [Producers::Producer, nil] the bound producer, or nil if no such producer was found.
304
306
  #
305
307
  # @api public
306
308
  #
@@ -310,7 +312,7 @@ class Puppet::Pops::Binder::Injector
310
312
 
311
313
  # Looks up a Producer given a type/name key.
312
314
  # @note The result is not type checked (it cannot be until the producer has produced an instance).
313
- # @return [Puppet::Pops::Binder::Producers::Producer, nil] the bound producer, or nil if no such producer was found
315
+ # @return [Producers::Producer, nil] the bound producer, or nil if no such producer was found
314
316
  #
315
317
  # @api public
316
318
  #
@@ -323,7 +325,7 @@ class Puppet::Pops::Binder::Injector
323
325
  #
324
326
  # @param scope [Puppet::Parser::Scope] the scope to use
325
327
  # @param contributions_key [Object] Opaque key as produced by KeyFactory as the contributions key for a multibinding
326
- # @return [Array<Puppet::Pops::Binder::InjectorEntry>] the contributions sorted in deecending order of precedence
328
+ # @return [Array<InjectorEntry>] the contributions sorted in deecending order of precedence
327
329
  #
328
330
  # @api public
329
331
  #
@@ -339,7 +341,7 @@ class Puppet::Pops::Binder::Injector
339
341
  end
340
342
 
341
343
  # The implementation of the Injector is private.
342
- # @see Puppet::Pops::Binder::Injector The public API this module implements.
344
+ # @see Injector The public API this module implements.
343
345
  # @api private
344
346
  #
345
347
  module Private
@@ -353,8 +355,8 @@ module Private
353
355
 
354
356
  def initialize
355
357
  @entries = []
356
- @key_factory = Puppet::Pops::Binder::KeyFactory.new()
357
- @type_calculator = Puppet::Pops::Types::TypeCalculator.singleton
358
+ @key_factory = KeyFactory.new()
359
+ @type_calculator = Types::TypeCalculator.singleton
358
360
  end
359
361
 
360
362
  def lookup(scope, *args, &block)
@@ -430,8 +432,8 @@ module Private
430
432
  # represented the same (but still opaque) way.
431
433
  #
432
434
  @key_factory = configured_binder.key_factory()
433
- @type_calculator = Puppet::Pops::Types::TypeCalculator.singleton
434
- @@transform_visitor ||= Puppet::Pops::Visitor.new(nil,"transform", 2, 2)
435
+ @type_calculator = Types::TypeCalculator.singleton
436
+ @@transform_visitor ||= Visitor.new(nil,"transform", 2, 2)
435
437
  @recursion_lock = [ ]
436
438
  end
437
439
 
@@ -441,7 +443,7 @@ module Private
441
443
 
442
444
  val = case args[ 0 ]
443
445
 
444
- when Puppet::Pops::Types::PAnyType
446
+ when Types::PAnyType
445
447
  lookup_type(scope, *args)
446
448
 
447
449
  when String
@@ -493,7 +495,7 @@ module Private
493
495
  # @api private
494
496
  def type_error_detail(expected, actual)
495
497
  actual_t = type_calculator.infer(actual)
496
- "expected: #{type_calculator.string(expected)}, got: #{type_calculator.string(actual_t)}"
498
+ "expected: #{expected}, got: #{actual_t}"
497
499
  end
498
500
 
499
501
  # @api private
@@ -507,7 +509,7 @@ module Private
507
509
  when NilClass
508
510
  @parent ? @parent.lookup_key(scope, key) : nil
509
511
 
510
- when Puppet::Pops::Binder::InjectorEntry
512
+ when InjectorEntry
511
513
  val = produce(scope, entry)
512
514
  return nil if val.nil?
513
515
  unless type_calculator.instance?(entry.binding.type, val)
@@ -561,7 +563,7 @@ module Private
561
563
  #
562
564
  def assistable_injected_class(key)
563
565
  kt = key_factory.get_type(key)
564
- return nil unless kt.is_a?(Puppet::Pops::Types::PRuntimeType) && kt.runtime == :ruby && !key_factory.is_named?(key)
566
+ return nil unless kt.is_a?(Types::PRuntimeType) && kt.runtime == :ruby && !key_factory.is_named?(key)
565
567
  type_calculator.injectable_class(kt)
566
568
  end
567
569
 
@@ -569,7 +571,7 @@ module Private
569
571
  raise ArgumentError, "lookup_producer should be called with two or three arguments, got: #{args.size()+1}" unless args.size <= 2
570
572
 
571
573
  p = case args[ 0 ]
572
- when Puppet::Pops::Types::PAnyType
574
+ when Types::PAnyType
573
575
  lookup_producer_type(scope, *args)
574
576
 
575
577
  when String
@@ -615,7 +617,7 @@ module Private
615
617
  end
616
618
 
617
619
  # Returns the producer for the entry
618
- # @return [Puppet::Pops::Binder::Producers::Producer] the entry's producer.
620
+ # @return [Producers::Producer] the entry's producer.
619
621
  #
620
622
  # @api private
621
623
  #
@@ -660,21 +662,21 @@ module Private
660
662
 
661
663
  # @api private
662
664
  def format_binding(b)
663
- Puppet::Pops::Binder::Binder.format_binding(b)
665
+ Binder.format_binding(b)
664
666
  end
665
667
 
666
668
  # Handles a missing producer (which is valid for a Multibinding where one is selected automatically)
667
669
  # @api private
668
670
  #
669
671
  def transform_NilClass(descriptor, scope, entry)
670
- unless entry.binding.is_a?(Puppet::Pops::Binder::Bindings::Multibinding)
672
+ unless entry.binding.is_a?(Bindings::Multibinding)
671
673
  raise ArgumentError, "Binding without producer detected, #{format_binding(entry.binding)}"
672
674
  end
673
675
  case entry.binding.type
674
- when Puppet::Pops::Types::PArrayType
675
- transform(Puppet::Pops::Binder::Bindings::ArrayMultibindProducerDescriptor.new(), scope, entry)
676
- when Puppet::Pops::Types::PHashType
677
- transform(Puppet::Pops::Binder::Bindings::HashMultibindProducerDescriptor.new(), scope, entry)
676
+ when Types::PArrayType
677
+ transform(Bindings::ArrayMultibindProducerDescriptor.new(), scope, entry)
678
+ when Types::PHashType
679
+ transform(Bindings::HashMultibindProducerDescriptor.new(), scope, entry)
678
680
  else
679
681
  raise ArgumentError, "Unsupported multibind type, must be an array or hash type, #{format_binding(entry.binding)}"
680
682
  end
@@ -754,7 +756,7 @@ module Private
754
756
 
755
757
  # @api private
756
758
  def singleton?(descriptor)
757
- ! descriptor.eContainer().is_a?(Puppet::Pops::Binder::Bindings::NonCachingProducerDescriptor)
759
+ ! descriptor.eContainer().is_a?(Bindings::NonCachingProducerDescriptor)
758
760
  end
759
761
 
760
762
  # Special marker class used in entries
@@ -764,3 +766,6 @@ module Private
764
766
  end
765
767
  end
766
768
  end
769
+ end
770
+ end
771
+