puppet 4.0.0 → 4.9.1

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 (1644) hide show
  1. data/COMMITTERS.md +2 -2
  2. data/CONTRIBUTING.md +34 -10
  3. data/Gemfile +25 -9
  4. data/LICENSE +3 -3
  5. data/MAINTAINERS +71 -0
  6. data/README.md +9 -11
  7. data/Rakefile +29 -0
  8. data/conf/auth.conf +2 -2
  9. data/conf/puppet.conf +1 -1
  10. data/ext/README.environment +1 -1
  11. data/ext/build_defaults.yaml +10 -37
  12. data/ext/debian/README.source +1 -1
  13. data/ext/debian/control +3 -5
  14. data/ext/debian/copyright +4 -4
  15. data/ext/debian/puppet.default +0 -5
  16. data/ext/debian/puppet.init +1 -16
  17. data/ext/debian/puppet.logrotate +14 -5
  18. data/ext/debian/puppetmaster.README.debian +11 -9
  19. data/ext/emacs/puppet-mode.el +1 -1
  20. data/ext/envpuppet +2 -2
  21. data/ext/ips/puppetagent.xml +1 -1
  22. data/ext/ips/puppetmaster.xml +1 -1
  23. data/ext/osx/puppet.plist +30 -0
  24. data/ext/project_data.yaml +29 -13
  25. data/ext/puppet-test +3 -3
  26. data/ext/rack/example-passenger-vhost.conf +1 -1
  27. data/ext/redhat/client.init +67 -17
  28. data/ext/redhat/client.sysconfig +1 -10
  29. data/ext/redhat/logrotate +15 -3
  30. data/ext/redhat/puppet.spec.erb +6 -11
  31. data/ext/redhat/server.init +1 -1
  32. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  33. data/ext/solaris/pkginfo +1 -1
  34. data/ext/solaris/smf/puppet +44 -0
  35. data/ext/solaris/smf/puppet.xml +44 -0
  36. data/ext/suse/client.init +30 -33
  37. data/ext/suse/puppet.spec +2 -2
  38. data/ext/suse/server.init +2 -2
  39. data/ext/systemd/puppet.service +13 -1
  40. data/ext/upload_facts.rb +1 -1
  41. data/ext/windows/puppet_interactive.bat +6 -0
  42. data/ext/windows/puppet_shell.bat +9 -0
  43. data/ext/windows/run_puppet_interactive.bat +9 -0
  44. data/ext/windows/service/daemon.rb +2 -1
  45. data/ext/yaml_nodes.rb +1 -1
  46. data/install.rb +98 -65
  47. data/lib/hiera/puppet_function.rb +27 -18
  48. data/lib/hiera/scope.rb +12 -14
  49. data/lib/hiera_puppet.rb +6 -14
  50. data/lib/puppet/agent/locker.rb +11 -2
  51. data/lib/puppet/agent.rb +12 -27
  52. data/lib/puppet/application/agent.rb +40 -19
  53. data/lib/puppet/application/apply.rb +69 -16
  54. data/lib/puppet/application/ca.rb +1 -0
  55. data/lib/puppet/application/cert.rb +52 -3
  56. data/lib/puppet/application/device.rb +10 -5
  57. data/lib/puppet/application/face_base.rb +4 -0
  58. data/lib/puppet/application/filebucket.rb +79 -5
  59. data/lib/puppet/application/generate.rb +5 -0
  60. data/lib/puppet/application/inspect.rb +2 -2
  61. data/lib/puppet/application/lookup.rb +344 -0
  62. data/lib/puppet/application/master.rb +22 -7
  63. data/lib/puppet/application/resource.rb +2 -6
  64. data/lib/puppet/application.rb +6 -4
  65. data/lib/puppet/application_support.rb +1 -1
  66. data/lib/puppet/compilable_resource_type.rb +15 -0
  67. data/lib/puppet/configurer/plugin_handler.rb +7 -5
  68. data/lib/puppet/configurer.rb +184 -42
  69. data/lib/puppet/context/trusted_information.rb +21 -1
  70. data/lib/puppet/context.rb +16 -1
  71. data/lib/puppet/daemon.rb +17 -13
  72. data/lib/puppet/data_binding.rb +4 -2
  73. data/lib/puppet/data_providers/data_adapter.rb +14 -68
  74. data/lib/puppet/data_providers/data_function_support.rb +13 -26
  75. data/lib/puppet/data_providers/function_env_data_provider.rb +7 -9
  76. data/lib/puppet/data_providers/function_module_data_provider.rb +7 -22
  77. data/lib/puppet/data_providers/hiera_config.rb +151 -0
  78. data/lib/puppet/data_providers/hiera_env_data_provider.rb +25 -0
  79. data/lib/puppet/data_providers/hiera_interpolate.rb +21 -0
  80. data/lib/puppet/data_providers/hiera_module_data_provider.rb +30 -0
  81. data/lib/puppet/data_providers/hiera_support.rb +42 -0
  82. data/lib/puppet/data_providers/json_data_provider_factory.rb +38 -0
  83. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +40 -0
  84. data/lib/puppet/data_providers.rb +17 -14
  85. data/lib/puppet/defaults.rb +279 -57
  86. data/lib/puppet/environments.rb +105 -10
  87. data/lib/puppet/error.rb +31 -1
  88. data/lib/puppet/external/dot.rb +1 -1
  89. data/lib/puppet/face/ca.rb +6 -1
  90. data/lib/puppet/face/catalog.rb +1 -1
  91. data/lib/puppet/face/certificate.rb +7 -1
  92. data/lib/puppet/face/certificate_request.rb +2 -0
  93. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  94. data/lib/puppet/face/config.rb +2 -2
  95. data/lib/puppet/face/epp.rb +63 -17
  96. data/lib/puppet/face/file.rb +3 -0
  97. data/lib/puppet/face/generate.rb +64 -0
  98. data/lib/puppet/face/help/face.erb +3 -0
  99. data/lib/puppet/face/help/man.erb +1 -1
  100. data/lib/puppet/face/help.rb +35 -27
  101. data/lib/puppet/face/key.rb +1 -0
  102. data/lib/puppet/face/man.rb +5 -3
  103. data/lib/puppet/face/module/changes.rb +2 -1
  104. data/lib/puppet/face/module/generate.rb +1 -1
  105. data/lib/puppet/face/module/install.rb +6 -6
  106. data/lib/puppet/face/parser.rb +12 -9
  107. data/lib/puppet/face/plugin.rb +7 -14
  108. data/lib/puppet/face/status.rb +4 -1
  109. data/lib/puppet/feature/base.rb +9 -2
  110. data/lib/puppet/feature/cfacter.rb +1 -0
  111. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  112. data/lib/puppet/feature/external_facts.rb +1 -1
  113. data/lib/puppet/feature/hocon.rb +3 -0
  114. data/lib/puppet/feature/telnet.rb +9 -0
  115. data/lib/puppet/file_bucket/dipper.rb +58 -2
  116. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  117. data/lib/puppet/file_serving/metadata.rb +30 -9
  118. data/lib/puppet/file_serving/terminus_helper.rb +7 -8
  119. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  120. data/lib/puppet/file_system/file_impl.rb +11 -2
  121. data/lib/puppet/file_system/memory_impl.rb +9 -1
  122. data/lib/puppet/file_system/path_pattern.rb +1 -0
  123. data/lib/puppet/file_system/uniquefile.rb +3 -3
  124. data/lib/puppet/file_system/windows.rb +36 -13
  125. data/lib/puppet/file_system.rb +46 -5
  126. data/lib/puppet/forge/repository.rb +2 -34
  127. data/lib/puppet/forge.rb +7 -7
  128. data/lib/puppet/functions/alert.rb +14 -0
  129. data/lib/puppet/functions/assert_type.rb +57 -21
  130. data/lib/puppet/functions/binary_file.rb +19 -0
  131. data/lib/puppet/functions/break.rb +22 -0
  132. data/lib/puppet/functions/contain.rb +33 -0
  133. data/lib/puppet/functions/crit.rb +14 -0
  134. data/lib/puppet/functions/debug.rb +14 -0
  135. data/lib/puppet/functions/defined.rb +160 -0
  136. data/lib/puppet/functions/dig.rb +23 -0
  137. data/lib/puppet/functions/each.rb +89 -39
  138. data/lib/puppet/functions/emerg.rb +14 -0
  139. data/lib/puppet/functions/epp.rb +29 -37
  140. data/lib/puppet/functions/err.rb +14 -0
  141. data/lib/puppet/functions/filter.rb +64 -38
  142. data/lib/puppet/functions/find_file.rb +31 -0
  143. data/lib/puppet/functions/hiera.rb +76 -3
  144. data/lib/puppet/functions/hiera_array.rb +66 -4
  145. data/lib/puppet/functions/hiera_hash.rb +74 -2
  146. data/lib/puppet/functions/hiera_include.rb +78 -5
  147. data/lib/puppet/functions/hocon_data.rb +24 -0
  148. data/lib/puppet/functions/include.rb +21 -0
  149. data/lib/puppet/functions/info.rb +14 -0
  150. data/lib/puppet/functions/inline_epp.rb +44 -71
  151. data/lib/puppet/functions/json_data.rb +18 -0
  152. data/lib/puppet/functions/lest.rb +17 -0
  153. data/lib/puppet/functions/lookup.rb +172 -184
  154. data/lib/puppet/functions/map.rb +60 -33
  155. data/lib/puppet/functions/match.rb +30 -12
  156. data/lib/puppet/functions/new.rb +31 -0
  157. data/lib/puppet/functions/next.rb +23 -0
  158. data/lib/puppet/functions/notice.rb +14 -0
  159. data/lib/puppet/functions/reduce.rb +99 -70
  160. data/lib/puppet/functions/regsubst.rb +23 -26
  161. data/lib/puppet/functions/require.rb +37 -0
  162. data/lib/puppet/functions/return.rb +22 -0
  163. data/lib/puppet/functions/reverse_each.rb +25 -0
  164. data/lib/puppet/functions/scanf.rb +15 -18
  165. data/lib/puppet/functions/slice.rb +22 -36
  166. data/lib/puppet/functions/split.rb +3 -3
  167. data/lib/puppet/functions/step.rb +26 -0
  168. data/lib/puppet/functions/strftime.rb +35 -0
  169. data/lib/puppet/functions/then.rb +14 -0
  170. data/lib/puppet/functions/type.rb +31 -0
  171. data/lib/puppet/functions/unwrap.rb +40 -0
  172. data/lib/puppet/functions/versioncmp.rb +36 -0
  173. data/lib/puppet/functions/warning.rb +14 -0
  174. data/lib/puppet/functions/with.rb +15 -7
  175. data/lib/puppet/functions/yaml_data.rb +21 -0
  176. data/lib/puppet/functions.rb +164 -31
  177. data/lib/puppet/generate/models/type/property.rb +70 -0
  178. data/lib/puppet/generate/models/type/type.rb +61 -0
  179. data/lib/puppet/generate/templates/type/pcore.erb +42 -0
  180. data/lib/puppet/generate/type.rb +239 -0
  181. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  182. data/lib/puppet/graph/simple_graph.rb +6 -8
  183. data/lib/puppet/indirector/catalog/compiler.rb +196 -9
  184. data/lib/puppet/indirector/catalog/static_compiler.rb +50 -31
  185. data/lib/puppet/indirector/data_binding/none.rb +4 -1
  186. data/lib/puppet/indirector/face.rb +6 -1
  187. data/lib/puppet/indirector/facts/facter.rb +9 -1
  188. data/lib/puppet/indirector/file_bucket_file/file.rb +68 -3
  189. data/lib/puppet/indirector/file_content/http.rb +15 -0
  190. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  191. data/lib/puppet/indirector/generic_http.rb +16 -0
  192. data/lib/puppet/indirector/hiera.rb +7 -1
  193. data/lib/puppet/indirector/indirection.rb +12 -3
  194. data/lib/puppet/indirector/json.rb +3 -3
  195. data/lib/puppet/indirector/key/ca.rb +2 -2
  196. data/lib/puppet/indirector/msgpack.rb +2 -2
  197. data/lib/puppet/indirector/node/exec.rb +1 -1
  198. data/lib/puppet/indirector/node/ldap.rb +1 -1
  199. data/lib/puppet/indirector/request.rb +36 -12
  200. data/lib/puppet/indirector/resource_type/parser.rb +10 -3
  201. data/lib/puppet/indirector/rest.rb +80 -5
  202. data/lib/puppet/indirector/terminus.rb +4 -4
  203. data/lib/puppet/info_service/class_information_service.rb +111 -0
  204. data/lib/puppet/info_service.rb +7 -0
  205. data/lib/puppet/interface/documentation.rb +1 -1
  206. data/lib/puppet/interface/face_collection.rb +1 -1
  207. data/lib/puppet/interface.rb +14 -2
  208. data/lib/puppet/loaders.rb +6 -0
  209. data/lib/puppet/metatype/manager.rb +25 -8
  210. data/lib/puppet/module.rb +48 -20
  211. data/lib/puppet/module_tool/applications/application.rb +1 -1
  212. data/lib/puppet/module_tool/applications/builder.rb +5 -4
  213. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  214. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  215. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  216. data/lib/puppet/module_tool/checksums.rb +1 -1
  217. data/lib/puppet/module_tool/errors/installer.rb +2 -2
  218. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  219. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  220. data/lib/puppet/module_tool/metadata.rb +34 -11
  221. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +14 -3
  222. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
  223. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +19 -4
  224. data/lib/puppet/module_tool/skeleton/templates/generator/{tests → examples}/init.pp.erb +2 -2
  225. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
  226. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -2
  227. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  228. data/lib/puppet/module_tool.rb +5 -5
  229. data/lib/puppet/network/auth_config_parser.rb +1 -1
  230. data/lib/puppet/network/authconfig.rb +21 -1
  231. data/lib/puppet/network/authorization.rb +8 -1
  232. data/lib/puppet/network/http/api/indirected_routes.rb +23 -34
  233. data/lib/puppet/network/http/api/master/v3/environment.rb +63 -0
  234. data/lib/puppet/network/http/api/master/v3.rb +7 -1
  235. data/lib/puppet/network/http/connection.rb +2 -0
  236. data/lib/puppet/network/http/error.rb +1 -1
  237. data/lib/puppet/network/http/factory.rb +8 -4
  238. data/lib/puppet/network/http/handler.rb +3 -2
  239. data/lib/puppet/network/http/pool.rb +9 -0
  240. data/lib/puppet/network/http/rack/rest.rb +25 -2
  241. data/lib/puppet/network/http/webrick.rb +2 -1
  242. data/lib/puppet/network/rights.rb +1 -11
  243. data/lib/puppet/node/environment.rb +53 -14
  244. data/lib/puppet/node/facts.rb +1 -1
  245. data/lib/puppet/node.rb +39 -8
  246. data/lib/puppet/parameter/boolean.rb +1 -1
  247. data/lib/puppet/parameter/value.rb +1 -1
  248. data/lib/puppet/parameter.rb +23 -3
  249. data/lib/puppet/parser/ast/pops_bridge.rb +101 -27
  250. data/lib/puppet/parser/ast/resource.rb +5 -0
  251. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  252. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  253. data/lib/puppet/parser/ast.rb +5 -0
  254. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  255. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +60 -0
  256. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  257. data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  258. data/lib/puppet/parser/compiler.rb +343 -28
  259. data/lib/puppet/parser/e4_parser_adapter.rb +13 -12
  260. data/lib/puppet/parser/environment_compiler.rb +201 -0
  261. data/lib/puppet/parser/functions/assert_type.rb +47 -17
  262. data/lib/puppet/parser/functions/binary_file.rb +24 -0
  263. data/lib/puppet/parser/functions/break.rb +39 -0
  264. data/lib/puppet/parser/functions/contain.rb +7 -15
  265. data/lib/puppet/parser/functions/create_resources.rb +39 -23
  266. data/lib/puppet/parser/functions/defined.rb +106 -69
  267. data/lib/puppet/parser/functions/dig.rb +29 -0
  268. data/lib/puppet/parser/functions/each.rb +86 -28
  269. data/lib/puppet/parser/functions/epp.rb +30 -38
  270. data/lib/puppet/parser/functions/file.rb +3 -1
  271. data/lib/puppet/parser/functions/filter.rb +60 -24
  272. data/lib/puppet/parser/functions/find_file.rb +28 -0
  273. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  274. data/lib/puppet/parser/functions/hiera.rb +98 -28
  275. data/lib/puppet/parser/functions/hiera_array.rb +86 -29
  276. data/lib/puppet/parser/functions/hiera_hash.rb +96 -31
  277. data/lib/puppet/parser/functions/hiera_include.rb +96 -41
  278. data/lib/puppet/parser/functions/include.rb +4 -8
  279. data/lib/puppet/parser/functions/inline_epp.rb +36 -61
  280. data/lib/puppet/parser/functions/inline_template.rb +2 -2
  281. data/lib/puppet/parser/functions/lest.rb +49 -0
  282. data/lib/puppet/parser/functions/lookup.rb +129 -151
  283. data/lib/puppet/parser/functions/map.rb +56 -21
  284. data/lib/puppet/parser/functions/match.rb +29 -13
  285. data/lib/puppet/parser/functions/new.rb +926 -0
  286. data/lib/puppet/parser/functions/next.rb +38 -0
  287. data/lib/puppet/parser/functions/reduce.rb +98 -61
  288. data/lib/puppet/parser/functions/regsubst.rb +4 -2
  289. data/lib/puppet/parser/functions/require.rb +4 -27
  290. data/lib/puppet/parser/functions/return.rb +71 -0
  291. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  292. data/lib/puppet/parser/functions/scanf.rb +25 -31
  293. data/lib/puppet/parser/functions/slice.rb +18 -25
  294. data/lib/puppet/parser/functions/split.rb +2 -2
  295. data/lib/puppet/parser/functions/step.rb +84 -0
  296. data/lib/puppet/parser/functions/strftime.rb +185 -0
  297. data/lib/puppet/parser/functions/then.rb +73 -0
  298. data/lib/puppet/parser/functions/type.rb +53 -0
  299. data/lib/puppet/parser/functions/with.rb +17 -9
  300. data/lib/puppet/parser/functions.rb +34 -16
  301. data/lib/puppet/parser/resource.rb +149 -35
  302. data/lib/puppet/parser/scope.rb +296 -73
  303. data/lib/puppet/parser/templatewrapper.rb +2 -1
  304. data/lib/puppet/parser/type_loader.rb +1 -1
  305. data/lib/puppet/parser.rb +3 -1
  306. data/lib/puppet/plugins/configuration.rb +11 -2
  307. data/lib/puppet/plugins/data_providers/data_provider.rb +406 -0
  308. data/lib/puppet/plugins/data_providers/registry.rb +51 -0
  309. data/lib/puppet/plugins/data_providers.rb +15 -60
  310. data/lib/puppet/pops/adaptable.rb +4 -4
  311. data/lib/puppet/pops/adapters.rb +115 -31
  312. data/lib/puppet/pops/binder/binder.rb +21 -17
  313. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  314. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  315. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  316. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  317. data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
  318. data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
  319. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  320. data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
  321. data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
  322. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  323. data/lib/puppet/pops/binder/injector.rb +55 -50
  324. data/lib/puppet/pops/binder/key_factory.rb +10 -12
  325. data/lib/puppet/pops/binder/producers.rb +70 -65
  326. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
  327. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
  328. data/lib/puppet/pops/evaluator/access_operator.rb +261 -142
  329. data/lib/puppet/pops/evaluator/closure.rb +251 -109
  330. data/lib/puppet/pops/evaluator/collector_transformer.rb +45 -26
  331. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  332. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -0
  333. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +5 -2
  334. data/lib/puppet/pops/evaluator/compare_operator.rb +110 -10
  335. data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -10
  336. data/lib/puppet/pops/evaluator/evaluator_impl.rb +239 -117
  337. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  338. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +84 -0
  339. data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  340. data/lib/puppet/pops/evaluator/relationship_operator.rb +18 -11
  341. data/lib/puppet/pops/evaluator/runtime3_converter.rb +60 -51
  342. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
  343. data/lib/puppet/pops/evaluator/runtime3_support.rb +119 -82
  344. data/lib/puppet/pops/functions/dispatch.rb +15 -3
  345. data/lib/puppet/pops/functions/dispatcher.rb +13 -5
  346. data/lib/puppet/pops/functions/function.rb +30 -4
  347. data/lib/puppet/pops/issue_reporter.rb +48 -20
  348. data/lib/puppet/pops/issues.rb +208 -18
  349. data/lib/puppet/pops/label_provider.rb +18 -4
  350. data/lib/puppet/pops/loader/base_loader.rb +64 -18
  351. data/lib/puppet/pops/loader/dependency_loader.rb +27 -2
  352. data/lib/puppet/pops/loader/loader.rb +53 -48
  353. data/lib/puppet/pops/loader/loader_paths.rb +110 -6
  354. data/lib/puppet/pops/loader/module_loaders.rb +72 -28
  355. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  356. data/lib/puppet/pops/loader/predefined_loader.rb +29 -0
  357. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
  358. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
  359. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -4
  360. data/lib/puppet/pops/loader/runtime3_type_loader.rb +96 -0
  361. data/lib/puppet/pops/loader/static_loader.rb +139 -38
  362. data/lib/puppet/pops/loader/type_definition_instantiator.rb +93 -0
  363. data/lib/puppet/pops/loader/typed_name.rb +48 -0
  364. data/lib/puppet/pops/loaders.rb +207 -29
  365. data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
  366. data/lib/puppet/pops/lookup/context.rb +136 -0
  367. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  368. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
  369. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
  370. data/lib/puppet/pops/lookup/data_provider.rb +102 -0
  371. data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
  372. data/lib/puppet/pops/lookup/explainer.rb +593 -0
  373. data/lib/puppet/pops/lookup/function_provider.rb +82 -0
  374. data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
  375. data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
  376. data/lib/puppet/pops/lookup/interpolation.rb +136 -0
  377. data/lib/puppet/pops/lookup/invocation.rb +212 -0
  378. data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
  379. data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
  380. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  381. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
  382. data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
  383. data/lib/puppet/pops/lookup/sub_lookup.rb +90 -0
  384. data/lib/puppet/pops/lookup.rb +45 -49
  385. data/lib/puppet/pops/merge_strategy.rb +183 -47
  386. data/lib/puppet/pops/migration/migration_checker.rb +58 -0
  387. data/lib/puppet/pops/model/ast_transformer.rb +8 -1
  388. data/lib/puppet/pops/model/factory.rb +257 -161
  389. data/lib/puppet/pops/model/model.rb +25 -8
  390. data/lib/puppet/pops/model/model_label_provider.rb +30 -6
  391. data/lib/puppet/pops/model/model_meta.rb +50 -3
  392. data/lib/puppet/pops/model/model_tree_dumper.rb +44 -0
  393. data/lib/puppet/pops/parser/code_merger.rb +13 -1
  394. data/lib/puppet/pops/parser/egrammar.ra +155 -38
  395. data/lib/puppet/pops/parser/eparser.rb +1894 -1314
  396. data/lib/puppet/pops/parser/epp_support.rb +27 -12
  397. data/lib/puppet/pops/parser/evaluating_parser.rb +27 -13
  398. data/lib/puppet/pops/parser/heredoc_support.rb +20 -16
  399. data/lib/puppet/pops/parser/interpolation_support.rb +14 -1
  400. data/lib/puppet/pops/parser/lexer2.rb +465 -379
  401. data/lib/puppet/pops/parser/lexer_support.rb +132 -25
  402. data/lib/puppet/pops/parser/locator.rb +63 -9
  403. data/lib/puppet/pops/parser/parser_support.rb +49 -40
  404. data/lib/puppet/pops/parser/slurp_support.rb +37 -12
  405. data/lib/puppet/pops/patterns.rb +16 -1
  406. data/lib/puppet/pops/pcore.rb +96 -0
  407. data/lib/puppet/pops/puppet_stack.rb +43 -0
  408. data/lib/puppet/pops/resource/param.rb +55 -0
  409. data/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
  410. data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
  411. data/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
  412. data/lib/puppet/pops/serialization/abstract_writer.rb +207 -0
  413. data/lib/puppet/pops/serialization/deserializer.rb +77 -0
  414. data/lib/puppet/pops/serialization/extension.rb +157 -0
  415. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  416. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  417. data/lib/puppet/pops/serialization/json.rb +297 -0
  418. data/lib/puppet/pops/serialization/object.rb +71 -0
  419. data/lib/puppet/pops/serialization/rgen.rb +152 -0
  420. data/lib/puppet/pops/serialization/serializer.rb +118 -0
  421. data/lib/puppet/pops/serialization/time_factory.rb +67 -0
  422. data/lib/puppet/pops/serialization.rb +17 -0
  423. data/lib/puppet/pops/time/timespan.rb +718 -0
  424. data/lib/puppet/pops/time/timestamp.rb +148 -0
  425. data/lib/puppet/pops/types/annotatable.rb +36 -0
  426. data/lib/puppet/pops/types/class_loader.rb +25 -23
  427. data/lib/puppet/pops/types/enumeration.rb +9 -27
  428. data/lib/puppet/pops/types/implementation_registry.rb +141 -0
  429. data/lib/puppet/pops/types/iterable.rb +308 -0
  430. data/lib/puppet/pops/types/p_binary_type.rb +220 -0
  431. data/lib/puppet/pops/types/p_meta_type.rb +83 -0
  432. data/lib/puppet/pops/types/p_object_type.rb +888 -0
  433. data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
  434. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +187 -0
  435. data/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
  436. data/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
  437. data/lib/puppet/pops/types/p_timespan_type.rb +141 -0
  438. data/lib/puppet/pops/types/p_timestamp_type.rb +69 -0
  439. data/lib/puppet/pops/types/p_type_set_type.rb +352 -0
  440. data/lib/puppet/pops/types/puppet_object.rb +16 -0
  441. data/lib/puppet/pops/types/recursion_guard.rb +136 -0
  442. data/lib/puppet/pops/types/ruby_generator.rb +275 -0
  443. data/lib/puppet/pops/types/string_converter.rb +1033 -0
  444. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  445. data/lib/puppet/pops/types/type_asserter.rb +21 -19
  446. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  447. data/lib/puppet/pops/types/type_calculator.rb +244 -1186
  448. data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
  449. data/lib/puppet/pops/types/type_factory.rb +270 -164
  450. data/lib/puppet/pops/types/type_formatter.rb +686 -0
  451. data/lib/puppet/pops/types/type_mismatch_describer.rb +1087 -0
  452. data/lib/puppet/pops/types/type_parser.rb +376 -278
  453. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  454. data/lib/puppet/pops/types/types.rb +3247 -287
  455. data/lib/puppet/pops/utils.rb +11 -10
  456. data/lib/puppet/pops/validation/checker4_0.rb +289 -75
  457. data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -5
  458. data/lib/puppet/pops/validation.rb +56 -18
  459. data/lib/puppet/pops/visitor.rb +9 -6
  460. data/lib/puppet/pops.rb +44 -25
  461. data/lib/puppet/property/ensure.rb +1 -1
  462. data/lib/puppet/property.rb +67 -7
  463. data/lib/puppet/provider/aixobject.rb +4 -4
  464. data/lib/puppet/provider/augeas/augeas.rb +57 -2
  465. data/lib/puppet/provider/cron/crontab.rb +1 -1
  466. data/lib/puppet/provider/exec/windows.rb +1 -1
  467. data/lib/puppet/provider/exec.rb +6 -1
  468. data/lib/puppet/provider/group/aix.rb +4 -4
  469. data/lib/puppet/provider/group/directoryservice.rb +10 -0
  470. data/lib/puppet/provider/group/pw.rb +1 -0
  471. data/lib/puppet/provider/group/windows_adsi.rb +23 -7
  472. data/lib/puppet/provider/macauthorization/macauthorization.rb +11 -10
  473. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  474. data/lib/puppet/provider/mcx/mcxcontent.rb +5 -4
  475. data/lib/puppet/provider/mount/parsed.rb +159 -2
  476. data/lib/puppet/provider/nameservice/directoryservice.rb +55 -62
  477. data/lib/puppet/provider/nameservice.rb +15 -0
  478. data/lib/puppet/provider/package/appdmg.rb +7 -6
  479. data/lib/puppet/provider/package/apple.rb +1 -1
  480. data/lib/puppet/provider/package/apt.rb +1 -1
  481. data/lib/puppet/provider/package/dnf.rb +46 -0
  482. data/lib/puppet/provider/package/gem.rb +29 -3
  483. data/lib/puppet/provider/package/nim.rb +2 -2
  484. data/lib/puppet/provider/package/openbsd.rb +7 -7
  485. data/lib/puppet/provider/package/pacman.rb +11 -10
  486. data/lib/puppet/provider/package/pip.rb +83 -22
  487. data/lib/puppet/provider/package/pip3.rb +20 -0
  488. data/lib/puppet/provider/package/pkg.rb +12 -8
  489. data/lib/puppet/provider/package/pkgdmg.rb +11 -8
  490. data/lib/puppet/provider/package/pkgin.rb +4 -4
  491. data/lib/puppet/provider/package/pkgng.rb +143 -0
  492. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  493. data/lib/puppet/provider/package/portage.rb +48 -8
  494. data/lib/puppet/provider/package/ports.rb +0 -3
  495. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  496. data/lib/puppet/provider/package/rpm.rb +122 -16
  497. data/lib/puppet/provider/package/sun.rb +1 -1
  498. data/lib/puppet/provider/package/tdnf.rb +28 -0
  499. data/lib/puppet/provider/package/windows/exe_package.rb +10 -9
  500. data/lib/puppet/provider/package/windows/msi_package.rb +4 -4
  501. data/lib/puppet/provider/package/windows/package.rb +9 -1
  502. data/lib/puppet/provider/package/windows.rb +1 -1
  503. data/lib/puppet/provider/package/yum.rb +62 -83
  504. data/lib/puppet/provider/package/zypper.rb +69 -15
  505. data/lib/puppet/provider/package.rb +6 -2
  506. data/lib/puppet/provider/parsedfile.rb +2 -2
  507. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +39 -7
  508. data/lib/puppet/provider/service/base.rb +4 -3
  509. data/lib/puppet/provider/service/bsd.rb +9 -9
  510. data/lib/puppet/provider/service/daemontools.rb +5 -5
  511. data/lib/puppet/provider/service/debian.rb +14 -5
  512. data/lib/puppet/provider/service/freebsd.rb +1 -1
  513. data/lib/puppet/provider/service/init.rb +27 -3
  514. data/lib/puppet/provider/service/launchd.rb +57 -19
  515. data/lib/puppet/provider/service/rcng.rb +51 -0
  516. data/lib/puppet/provider/service/redhat.rb +2 -1
  517. data/lib/puppet/provider/service/runit.rb +4 -4
  518. data/lib/puppet/provider/service/smf.rb +59 -8
  519. data/lib/puppet/provider/service/src.rb +27 -0
  520. data/lib/puppet/provider/service/systemd.rb +141 -22
  521. data/lib/puppet/provider/service/upstart.rb +1 -1
  522. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  523. data/lib/puppet/provider/sshkey/parsed.rb +20 -10
  524. data/lib/puppet/provider/user/aix.rb +4 -3
  525. data/lib/puppet/provider/user/directoryservice.rb +43 -66
  526. data/lib/puppet/provider/user/hpux.rb +1 -1
  527. data/lib/puppet/provider/user/openbsd.rb +1 -0
  528. data/lib/puppet/provider/user/pw.rb +1 -0
  529. data/lib/puppet/provider/user/user_role_add.rb +19 -2
  530. data/lib/puppet/provider/user/windows_adsi.rb +51 -2
  531. data/lib/puppet/provider/yumrepo/inifile.rb +9 -6
  532. data/lib/puppet/provider/zfs/zfs.rb +2 -2
  533. data/lib/puppet/provider/zone/solaris.rb +6 -3
  534. data/lib/puppet/provider/zpool/zpool.rb +2 -2
  535. data/lib/puppet/provider.rb +9 -7
  536. data/lib/puppet/reference/configuration.rb +13 -5
  537. data/lib/puppet/reference/indirection.rb +2 -2
  538. data/lib/puppet/reference/providers.rb +2 -3
  539. data/lib/puppet/reference/report.rb +9 -12
  540. data/lib/puppet/reference/type.rb +1 -1
  541. data/lib/puppet/reports.rb +5 -1
  542. data/lib/puppet/resource/capability_finder.rb +128 -0
  543. data/lib/puppet/resource/catalog.rb +167 -40
  544. data/lib/puppet/resource/status.rb +30 -5
  545. data/lib/puppet/resource/type.rb +247 -50
  546. data/lib/puppet/resource/type_collection.rb +83 -10
  547. data/lib/puppet/resource.rb +212 -146
  548. data/lib/puppet/settings/base_setting.rb +9 -3
  549. data/lib/puppet/settings/config_file.rb +3 -2
  550. data/lib/puppet/settings/directory_setting.rb +6 -0
  551. data/lib/puppet/settings/environment_conf.rb +26 -6
  552. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  553. data/lib/puppet/settings/file_setting.rb +20 -9
  554. data/lib/puppet/settings/ini_file.rb +2 -2
  555. data/lib/puppet/settings/server_list_setting.rb +20 -0
  556. data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
  557. data/lib/puppet/settings.rb +87 -28
  558. data/lib/puppet/ssl/certificate_authority/interface.rb +166 -26
  559. data/lib/puppet/ssl/certificate_authority.rb +45 -11
  560. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  561. data/lib/puppet/ssl/certificate_request.rb +4 -4
  562. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  563. data/lib/puppet/ssl/host.rb +26 -4
  564. data/lib/puppet/ssl/oids.rb +43 -3
  565. data/lib/puppet/ssl/validator/default_validator.rb +3 -3
  566. data/lib/puppet/syntax_checkers/base64.rb +41 -0
  567. data/lib/puppet/syntax_checkers/json.rb +0 -2
  568. data/lib/puppet/test/test_helper.rb +18 -7
  569. data/lib/puppet/transaction/additional_resource_generator.rb +101 -8
  570. data/lib/puppet/transaction/event.rb +29 -2
  571. data/lib/puppet/transaction/event_manager.rb +1 -1
  572. data/lib/puppet/transaction/persistence.rb +84 -0
  573. data/lib/puppet/transaction/report.rb +86 -4
  574. data/lib/puppet/transaction/resource_harness.rb +95 -35
  575. data/lib/puppet/transaction.rb +64 -36
  576. data/lib/puppet/type/augeas.rb +13 -4
  577. data/lib/puppet/type/component.rb +11 -0
  578. data/lib/puppet/type/cron.rb +13 -13
  579. data/lib/puppet/type/exec.rb +27 -18
  580. data/lib/puppet/type/file/checksum.rb +1 -0
  581. data/lib/puppet/type/file/checksum_value.rb +53 -0
  582. data/lib/puppet/type/file/content.rb +36 -121
  583. data/lib/puppet/type/file/data_sync.rb +92 -0
  584. data/lib/puppet/type/file/ensure.rb +22 -19
  585. data/lib/puppet/type/file/selcontext.rb +1 -1
  586. data/lib/puppet/type/file/source.rb +121 -34
  587. data/lib/puppet/type/file/target.rb +2 -2
  588. data/lib/puppet/type/file.rb +146 -46
  589. data/lib/puppet/type/filebucket.rb +1 -1
  590. data/lib/puppet/type/group.rb +15 -3
  591. data/lib/puppet/type/host.rb +1 -1
  592. data/lib/puppet/type/interface.rb +8 -3
  593. data/lib/puppet/type/macauthorization.rb +1 -1
  594. data/lib/puppet/type/mount.rb +25 -2
  595. data/lib/puppet/type/notify.rb +1 -1
  596. data/lib/puppet/type/package.rb +32 -12
  597. data/lib/puppet/type/resources.rb +1 -1
  598. data/lib/puppet/type/schedule.rb +5 -5
  599. data/lib/puppet/type/scheduled_task.rb +14 -1
  600. data/lib/puppet/type/service.rb +24 -0
  601. data/lib/puppet/type/ssh_authorized_key.rb +17 -11
  602. data/lib/puppet/type/sshkey.rb +5 -3
  603. data/lib/puppet/type/stage.rb +1 -1
  604. data/lib/puppet/type/tidy.rb +10 -5
  605. data/lib/puppet/type/user.rb +80 -25
  606. data/lib/puppet/type/yumrepo.rb +28 -8
  607. data/lib/puppet/type/zone.rb +6 -6
  608. data/lib/puppet/type.rb +162 -40
  609. data/lib/puppet/util/autoload.rb +16 -11
  610. data/lib/puppet/util/checksums.rb +74 -31
  611. data/lib/puppet/util/classgen.rb +1 -1
  612. data/lib/puppet/util/command_line/trollop.rb +1 -1
  613. data/lib/puppet/util/command_line.rb +10 -2
  614. data/lib/puppet/util/execution.rb +26 -10
  615. data/lib/puppet/util/feature.rb +1 -1
  616. data/lib/puppet/util/filetype.rb +11 -5
  617. data/lib/puppet/util/http_proxy.rb +132 -0
  618. data/lib/puppet/util/inifile.rb +1 -1
  619. data/lib/puppet/util/instance_loader.rb +1 -1
  620. data/lib/puppet/util/log/destinations.rb +23 -2
  621. data/lib/puppet/util/log.rb +78 -9
  622. data/lib/puppet/util/logging.rb +82 -3
  623. data/lib/puppet/util/monkey_patches.rb +20 -7
  624. data/lib/puppet/util/multi_match.rb +51 -0
  625. data/lib/puppet/util/network_device/cisco/device.rb +24 -6
  626. data/lib/puppet/util/network_device/cisco/interface.rb +21 -9
  627. data/lib/puppet/util/network_device/config.rb +1 -1
  628. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  629. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  630. data/lib/puppet/util/plist.rb +151 -0
  631. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  632. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  633. data/lib/puppet/util/profiler.rb +1 -1
  634. data/lib/puppet/util/psych_support.rb +1 -1
  635. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  636. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  637. data/lib/puppet/util/rdoc.rb +2 -2
  638. data/lib/puppet/util/resource_template.rb +1 -1
  639. data/lib/puppet/util/rubygems.rb +1 -1
  640. data/lib/puppet/util/run_mode.rb +3 -16
  641. data/lib/puppet/util/skip_tags.rb +9 -0
  642. data/lib/puppet/util/splayer.rb +18 -0
  643. data/lib/puppet/util/tagging.rb +8 -2
  644. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  645. data/lib/puppet/util/windows/access_control_entry.rb +2 -2
  646. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  647. data/lib/puppet/util/windows/adsi.rb +212 -75
  648. data/lib/puppet/util/windows/api_types.rb +24 -18
  649. data/lib/puppet/util/windows/com.rb +3 -3
  650. data/lib/puppet/util/windows/error.rb +1 -1
  651. data/lib/puppet/util/windows/file.rb +107 -18
  652. data/lib/puppet/util/windows/principal.rb +190 -0
  653. data/lib/puppet/util/windows/process.rb +88 -11
  654. data/lib/puppet/util/windows/registry.rb +22 -16
  655. data/lib/puppet/util/windows/root_certs.rb +5 -5
  656. data/lib/puppet/util/windows/security.rb +38 -37
  657. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  658. data/lib/puppet/util/windows/sid.rb +84 -15
  659. data/lib/puppet/util/windows/taskscheduler.rb +99 -43
  660. data/lib/puppet/util/windows/user.rb +32 -14
  661. data/lib/puppet/util/windows.rb +5 -0
  662. data/lib/puppet/util/yaml.rb +15 -3
  663. data/lib/puppet/util.rb +124 -23
  664. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  665. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  666. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  667. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  668. data/lib/puppet/vendor/pathspec/README.md +1 -1
  669. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  670. data/lib/puppet/vendor/require_vendored.rb +0 -1
  671. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  672. data/lib/puppet/vendor/rgen_patch.rb +1 -1
  673. data/lib/puppet/vendor/semantic/lib/semantic.rb +4 -6
  674. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  675. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  676. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/module_release.rb +17 -5
  677. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  678. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  679. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  680. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  681. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  682. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  683. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  684. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  685. data/lib/puppet/version.rb +2 -2
  686. data/lib/puppet.rb +85 -2
  687. data/lib/puppet_x.rb +7 -1
  688. data/lib/semver.rb +36 -13
  689. data/locales/config.yaml +29 -0
  690. data/locales/puppet.pot +79 -0
  691. data/man/man5/puppet.conf.5 +61 -19
  692. data/man/man8/extlookup2hiera.8 +2 -2
  693. data/man/man8/puppet-agent.8 +6 -3
  694. data/man/man8/puppet-apply.8 +6 -3
  695. data/man/man8/puppet-ca.8 +3 -3
  696. data/man/man8/puppet-catalog.8 +3 -3
  697. data/man/man8/puppet-cert.8 +3 -3
  698. data/man/man8/puppet-certificate.8 +3 -3
  699. data/man/man8/puppet-certificate_request.8 +3 -3
  700. data/man/man8/puppet-certificate_revocation_list.8 +3 -3
  701. data/man/man8/puppet-config.8 +4 -4
  702. data/man/man8/puppet-describe.8 +2 -2
  703. data/man/man8/puppet-device.8 +7 -4
  704. data/man/man8/puppet-doc.8 +2 -2
  705. data/man/man8/puppet-epp.8 +3 -3
  706. data/man/man8/puppet-facts.8 +3 -3
  707. data/man/man8/puppet-file.8 +3 -3
  708. data/man/man8/puppet-filebucket.8 +3 -3
  709. data/man/man8/puppet-help.8 +3 -3
  710. data/man/man8/puppet-inspect.8 +3 -3
  711. data/man/man8/puppet-key.8 +3 -3
  712. data/man/man8/puppet-man.8 +3 -3
  713. data/man/man8/puppet-master.8 +6 -3
  714. data/man/man8/puppet-module.8 +10 -10
  715. data/man/man8/puppet-node.8 +3 -3
  716. data/man/man8/puppet-parser.8 +3 -3
  717. data/man/man8/puppet-plugin.8 +3 -3
  718. data/man/man8/puppet-report.8 +3 -3
  719. data/man/man8/puppet-resource.8 +3 -3
  720. data/man/man8/puppet-resource_type.8 +3 -3
  721. data/man/man8/puppet-status.8 +4 -4
  722. data/man/man8/puppet.8 +2 -2
  723. data/spec/fixtures/module.tar.gz +0 -0
  724. data/spec/fixtures/unit/application/environments/production/data/common.yaml +22 -0
  725. data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
  726. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +1 -0
  727. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +1 -0
  728. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +10 -0
  729. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +1 -0
  730. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
  731. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
  732. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
  733. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
  734. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
  735. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
  736. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
  737. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
  738. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
  739. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
  740. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
  741. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
  742. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
  743. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
  744. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
  745. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
  746. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
  747. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
  748. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  749. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  750. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
  751. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
  752. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +22 -0
  753. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
  754. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +48 -0
  755. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
  756. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
  757. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
  758. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
  759. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
  760. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +4 -0
  761. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +4 -0
  762. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
  763. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +7 -0
  764. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
  765. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
  766. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +2 -0
  767. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
  768. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +1 -0
  769. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +1 -0
  770. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
  771. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
  772. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +20 -0
  773. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
  774. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
  775. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +4 -0
  776. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +4 -0
  777. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +2 -0
  778. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +7 -0
  779. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +1 -0
  780. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +6 -0
  781. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +5 -0
  782. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +2 -0
  783. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +9 -0
  784. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +4 -0
  785. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +5 -0
  786. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +3 -0
  787. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +9 -0
  788. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +3 -1
  789. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +2 -1
  790. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +2 -1
  791. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +6 -0
  792. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +9 -0
  793. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +9 -0
  794. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  795. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  796. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  797. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  798. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  799. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +2 -0
  800. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
  801. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  802. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  803. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  804. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  805. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +2 -0
  806. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  807. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +5 -0
  808. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +2 -0
  809. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +9 -0
  810. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +1 -0
  811. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +5 -0
  812. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +2 -0
  813. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +9 -0
  814. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +1 -0
  815. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +5 -0
  816. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +2 -0
  817. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +9 -0
  818. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +2 -0
  819. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  820. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  821. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +9 -0
  822. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +4 -0
  823. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +8 -0
  824. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
  825. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +9 -0
  826. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
  827. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +3 -0
  828. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +9 -0
  829. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
  830. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
  831. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +3 -0
  832. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +9 -0
  833. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  834. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  835. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +3 -0
  836. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +6 -0
  837. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +5 -0
  838. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +8 -0
  839. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  840. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +5 -0
  841. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +5 -0
  842. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +5 -0
  843. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +5 -0
  844. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +5 -0
  845. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +5 -0
  846. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +5 -0
  847. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +5 -0
  848. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +87 -0
  849. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/metadata.json +2 -1
  850. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  851. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  852. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +3 -0
  853. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +3 -0
  854. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +3 -0
  855. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +5 -0
  856. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +3 -0
  857. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +3 -0
  858. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +10 -0
  859. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  860. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +3 -0
  861. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +3 -0
  862. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +1 -10
  863. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  864. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +93 -85
  865. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +11 -7
  866. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +8 -0
  867. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +1 -0
  868. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +1 -0
  869. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +3 -0
  870. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  871. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +195 -0
  872. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
  873. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +3 -0
  874. data/spec/fixtures/unit/provider/service/smf/svcs.out +4 -3
  875. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  876. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
  877. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
  878. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
  879. 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
  880. 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
  881. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  882. 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
  883. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  884. 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
  885. 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
  886. data/spec/integration/agent/logging_spec.rb +15 -14
  887. data/spec/integration/application/apply_spec.rb +432 -29
  888. data/spec/integration/application/doc_spec.rb +0 -0
  889. data/spec/integration/application/lookup_spec.rb +155 -0
  890. data/spec/integration/configurer_spec.rb +0 -0
  891. data/spec/integration/data_binding_spec.rb +195 -0
  892. data/spec/integration/defaults_spec.rb +27 -2
  893. data/spec/integration/directory_environments_spec.rb +16 -0
  894. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  895. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  896. data/spec/integration/environments/settings_spec.rb +32 -4
  897. data/spec/integration/faces/ca_spec.rb +0 -0
  898. data/spec/integration/faces/config_spec.rb +80 -0
  899. data/spec/integration/faces/documentation_spec.rb +1 -1
  900. data/spec/integration/faces/plugin_spec.rb +0 -4
  901. data/spec/integration/file_bucket/file_spec.rb +2 -2
  902. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  903. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  904. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  905. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  906. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  907. data/spec/integration/indirector/facts/facter_spec.rb +97 -0
  908. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
  909. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
  910. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  911. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  912. data/spec/integration/network/formats_spec.rb +0 -0
  913. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  914. data/spec/integration/node/environment_spec.rb +34 -0
  915. data/spec/integration/node/facts_spec.rb +0 -0
  916. data/spec/integration/node_spec.rb +0 -0
  917. data/spec/integration/parser/catalog_spec.rb +14 -2
  918. data/spec/integration/parser/collection_spec.rb +18 -0
  919. data/spec/integration/parser/compiler_spec.rb +877 -666
  920. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  921. data/spec/integration/parser/parameter_defaults_spec.rb +358 -0
  922. data/spec/integration/parser/pcore_resource_spec.rb +245 -0
  923. data/spec/integration/parser/resource_expressions_spec.rb +10 -5
  924. data/spec/integration/parser/scope_spec.rb +46 -7
  925. data/spec/integration/parser/undef_param_spec.rb +9 -1
  926. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  927. data/spec/integration/provider/mount_spec.rb +23 -36
  928. data/spec/integration/provider/service/init_spec.rb +0 -0
  929. data/spec/integration/provider/service/windows_spec.rb +3 -2
  930. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  931. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  932. data/spec/integration/reference/providers_spec.rb +0 -0
  933. data/spec/integration/reports_spec.rb +0 -0
  934. data/spec/integration/resource/catalog_spec.rb +1 -1
  935. data/spec/integration/resource/type_collection_spec.rb +8 -0
  936. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  937. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  938. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  939. data/spec/integration/ssl/host_spec.rb +0 -1
  940. data/spec/integration/test/test_helper_spec.rb +32 -0
  941. data/spec/integration/transaction/report_spec.rb +682 -0
  942. data/spec/integration/transaction_spec.rb +126 -2
  943. data/spec/integration/type/exec_spec.rb +0 -0
  944. data/spec/integration/type/file_spec.rb +553 -51
  945. data/spec/integration/type/package_spec.rb +72 -1
  946. data/spec/integration/type/tidy_spec.rb +21 -9
  947. data/spec/integration/type_spec.rb +0 -0
  948. data/spec/integration/util/autoload_spec.rb +0 -0
  949. data/spec/integration/util/execution_spec.rb +30 -0
  950. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  951. data/spec/integration/util/settings_spec.rb +26 -0
  952. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  953. data/spec/integration/util/windows/principal_spec.rb +250 -0
  954. data/spec/integration/util/windows/process_spec.rb +35 -2
  955. data/spec/{unit → integration}/util/windows/registry_spec.rb +92 -2
  956. data/spec/integration/util/windows/security_spec.rb +75 -21
  957. data/spec/integration/util/windows/user_spec.rb +27 -5
  958. data/spec/integration/util_spec.rb +49 -27
  959. data/spec/lib/matchers/include_in_order.rb +2 -3
  960. data/spec/lib/matchers/resource.rb +22 -1
  961. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
  962. data/spec/lib/puppet/face/basetest.rb +0 -0
  963. data/spec/lib/puppet/face/huzzah.rb +0 -0
  964. data/spec/lib/puppet_spec/compiler.rb +32 -3
  965. data/spec/lib/puppet_spec/files.rb +16 -2
  966. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  967. data/spec/lib/puppet_spec/matchers.rb +6 -4
  968. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  969. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  970. data/spec/lib/puppet_spec/network.rb +12 -8
  971. data/spec/lib/puppet_spec/pops.rb +13 -0
  972. data/spec/lib/puppet_spec/unindent.rb +5 -0
  973. data/spec/lib/puppet_spec/verbose.rb +0 -0
  974. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  975. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  976. data/spec/shared_behaviours/file_serving.rb +0 -0
  977. data/spec/shared_behaviours/iterative_functions.rb +9 -9
  978. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  979. data/spec/shared_behaviours/path_parameters.rb +0 -0
  980. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  981. data/spec/shared_contexts/types_setup.rb +106 -0
  982. data/spec/shared_examples/rhel_package_provider.rb +357 -0
  983. data/spec/spec_helper.rb +16 -2
  984. data/spec/unit/agent/locker_spec.rb +4 -4
  985. data/spec/unit/agent_spec.rb +12 -46
  986. data/spec/unit/application/agent_spec.rb +15 -0
  987. data/spec/unit/application/apply_spec.rb +31 -1
  988. data/spec/unit/application/cert_spec.rb +20 -0
  989. data/spec/unit/application/certificate_spec.rb +0 -0
  990. data/spec/unit/application/config_spec.rb +0 -0
  991. data/spec/unit/application/describe_spec.rb +0 -0
  992. data/spec/unit/application/device_spec.rb +0 -0
  993. data/spec/unit/application/doc_spec.rb +0 -0
  994. data/spec/unit/application/face_base_spec.rb +16 -0
  995. data/spec/unit/application/facts_spec.rb +0 -0
  996. data/spec/unit/application/filebucket_spec.rb +88 -2
  997. data/spec/unit/application/indirection_base_spec.rb +0 -0
  998. data/spec/unit/application/inspect_spec.rb +19 -8
  999. data/spec/unit/application/lookup_spec.rb +532 -0
  1000. data/spec/unit/application/master_spec.rb +33 -7
  1001. data/spec/unit/application/resource_spec.rb +0 -0
  1002. data/spec/unit/application_spec.rb +3 -3
  1003. data/spec/unit/capability_spec.rb +416 -0
  1004. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  1005. data/spec/unit/configurer/downloader_spec.rb +5 -5
  1006. data/spec/unit/configurer/fact_handler_spec.rb +0 -0
  1007. data/spec/unit/configurer/plugin_handler_spec.rb +18 -15
  1008. data/spec/unit/configurer_spec.rb +336 -39
  1009. data/spec/unit/confine/exists_spec.rb +0 -0
  1010. data/spec/unit/confine/false_spec.rb +0 -0
  1011. data/spec/unit/confine/feature_spec.rb +0 -0
  1012. data/spec/unit/confine/true_spec.rb +0 -0
  1013. data/spec/unit/confine/variable_spec.rb +0 -0
  1014. data/spec/unit/confine_collection_spec.rb +0 -0
  1015. data/spec/unit/confine_spec.rb +0 -0
  1016. data/spec/unit/confiner_spec.rb +0 -0
  1017. data/spec/unit/context/trusted_information_spec.rb +24 -1
  1018. data/spec/unit/daemon_spec.rb +18 -8
  1019. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  1020. data/spec/unit/data_providers/function_data_provider_spec.rb +30 -3
  1021. data/spec/unit/data_providers/hiera_data_provider_spec.rb +361 -0
  1022. data/spec/unit/defaults_spec.rb +47 -0
  1023. data/spec/unit/environments_spec.rb +26 -4
  1024. data/spec/unit/external/pson_spec.rb +0 -0
  1025. data/spec/unit/face/ca_spec.rb +10 -0
  1026. data/spec/unit/face/catalog_spec.rb +0 -0
  1027. data/spec/unit/face/certificate_request_spec.rb +10 -0
  1028. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  1029. data/spec/unit/face/certificate_spec.rb +0 -0
  1030. data/spec/unit/face/config_spec.rb +47 -0
  1031. data/spec/unit/face/epp_face_spec.rb +24 -5
  1032. data/spec/unit/face/facts_spec.rb +0 -0
  1033. data/spec/unit/face/file_spec.rb +4 -0
  1034. data/spec/unit/face/generate_spec.rb +230 -0
  1035. data/spec/unit/face/help_spec.rb +70 -0
  1036. data/spec/unit/face/key_spec.rb +10 -0
  1037. data/spec/unit/face/node_spec.rb +1 -1
  1038. data/spec/unit/face/parser_spec.rb +49 -2
  1039. data/spec/unit/face/plugin_spec.rb +29 -4
  1040. data/spec/unit/face/status_spec.rb +10 -0
  1041. data/spec/unit/face_spec.rb +0 -0
  1042. data/spec/unit/file_bucket/dipper_spec.rb +210 -1
  1043. data/spec/unit/file_bucket/file_spec.rb +0 -0
  1044. data/spec/unit/file_serving/base_spec.rb +0 -0
  1045. data/spec/unit/file_serving/configuration/parser_spec.rb +25 -30
  1046. data/spec/unit/file_serving/configuration_spec.rb +1 -1
  1047. data/spec/unit/file_serving/content_spec.rb +0 -0
  1048. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  1049. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  1050. data/spec/unit/file_serving/metadata_spec.rb +51 -1
  1051. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  1052. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  1053. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  1054. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  1055. data/spec/unit/file_serving/mount_spec.rb +0 -0
  1056. data/spec/unit/file_serving/terminus_helper_spec.rb +2 -3
  1057. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  1058. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  1059. data/spec/unit/file_system_spec.rb +373 -6
  1060. data/spec/unit/functions/assert_type_spec.rb +48 -8
  1061. data/spec/unit/functions/binary_file_spec.rb +46 -0
  1062. data/spec/unit/functions/break_spec.rb +89 -0
  1063. data/spec/unit/{parser/functions → functions}/contain_spec.rb +68 -3
  1064. data/spec/unit/functions/defined_spec.rb +289 -0
  1065. data/spec/unit/functions/dig_spec.rb +58 -0
  1066. data/spec/unit/functions/epp_spec.rb +17 -9
  1067. data/spec/unit/functions/filter_spec.rb +18 -0
  1068. data/spec/unit/functions/find_file_spec.rb +69 -0
  1069. data/spec/unit/functions/hiera_spec.rb +261 -49
  1070. data/spec/unit/functions/include_spec.rb +175 -0
  1071. data/spec/unit/functions/inline_epp_spec.rb +4 -4
  1072. data/spec/unit/functions/lest_spec.rb +34 -0
  1073. data/spec/unit/functions/logging_spec.rb +54 -0
  1074. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  1075. data/spec/unit/functions/lookup_spec.rb +1352 -272
  1076. data/spec/unit/functions/match_spec.rb +2 -2
  1077. data/spec/unit/functions/new_spec.rb +694 -0
  1078. data/spec/unit/functions/next_spec.rb +93 -0
  1079. data/spec/unit/functions/regsubst_spec.rb +30 -9
  1080. data/spec/unit/functions/require_spec.rb +83 -0
  1081. data/spec/unit/functions/return_spec.rb +105 -0
  1082. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  1083. data/spec/unit/functions/scanf_spec.rb +1 -1
  1084. data/spec/unit/{parser/functions → functions}/shared.rb +15 -12
  1085. data/spec/unit/functions/split_spec.rb +11 -3
  1086. data/spec/unit/functions/step_spec.rb +113 -0
  1087. data/spec/unit/functions/strftime_spec.rb +152 -0
  1088. data/spec/unit/functions/then_spec.rb +40 -0
  1089. data/spec/unit/functions/type_spec.rb +35 -0
  1090. data/spec/unit/functions/unwrap_spec.rb +29 -0
  1091. data/spec/unit/functions/versioncmp_spec.rb +36 -0
  1092. data/spec/unit/functions4_spec.rb +321 -71
  1093. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  1094. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  1095. data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
  1096. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  1097. data/spec/unit/hiera/scope_spec.rb +6 -3
  1098. data/spec/unit/hiera_puppet_spec.rb +49 -8
  1099. data/spec/unit/indirector/catalog/compiler_spec.rb +752 -8
  1100. data/spec/unit/indirector/catalog/json_spec.rb +0 -0
  1101. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  1102. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  1103. data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
  1104. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  1105. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  1106. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  1107. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  1108. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  1109. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  1110. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  1111. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  1112. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  1113. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  1114. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  1115. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  1116. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  1117. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  1118. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  1119. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  1120. data/spec/unit/indirector/code_spec.rb +0 -0
  1121. data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
  1122. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  1123. data/spec/unit/indirector/envelope_spec.rb +0 -0
  1124. data/spec/unit/indirector/exec_spec.rb +0 -0
  1125. data/spec/unit/indirector/face_spec.rb +10 -2
  1126. data/spec/unit/indirector/facts/facter_spec.rb +7 -7
  1127. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  1128. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  1129. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  1130. data/spec/unit/indirector/file_bucket_file/file_spec.rb +53 -2
  1131. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  1132. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  1133. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  1134. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  1135. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  1136. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  1137. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  1138. data/spec/unit/indirector/file_server_spec.rb +0 -0
  1139. data/spec/unit/indirector/indirection_spec.rb +13 -2
  1140. data/spec/unit/indirector/json_spec.rb +1 -1
  1141. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  1142. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  1143. data/spec/unit/indirector/key/file_spec.rb +0 -0
  1144. data/spec/unit/indirector/ldap_spec.rb +0 -0
  1145. data/spec/unit/indirector/memory_spec.rb +0 -0
  1146. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  1147. data/spec/unit/indirector/node/exec_spec.rb +0 -0
  1148. data/spec/unit/indirector/node/ldap_spec.rb +0 -0
  1149. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  1150. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  1151. data/spec/unit/indirector/node/plain_spec.rb +0 -0
  1152. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  1153. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  1154. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  1155. data/spec/unit/indirector/plain_spec.rb +0 -0
  1156. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  1157. data/spec/unit/indirector/report/processor_spec.rb +0 -0
  1158. data/spec/unit/indirector/report/rest_spec.rb +0 -0
  1159. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  1160. data/spec/unit/indirector/request_spec.rb +17 -8
  1161. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  1162. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  1163. data/spec/unit/indirector/resource_type/parser_spec.rb +5 -0
  1164. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
  1165. data/spec/unit/indirector/rest_spec.rb +107 -9
  1166. data/spec/unit/indirector/ssl_file_spec.rb +1 -1
  1167. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  1168. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  1169. data/spec/unit/indirector/terminus_spec.rb +0 -0
  1170. data/spec/unit/indirector/yaml_spec.rb +1 -1
  1171. data/spec/unit/indirector_spec.rb +0 -0
  1172. data/spec/unit/info_service_spec.rb +298 -0
  1173. data/spec/unit/interface/action_builder_spec.rb +0 -0
  1174. data/spec/unit/interface/action_manager_spec.rb +0 -0
  1175. data/spec/unit/interface/action_spec.rb +0 -0
  1176. data/spec/unit/interface/documentation_spec.rb +0 -0
  1177. data/spec/unit/interface/face_collection_spec.rb +0 -0
  1178. data/spec/unit/interface/option_builder_spec.rb +0 -0
  1179. data/spec/unit/interface/option_spec.rb +0 -0
  1180. data/spec/unit/interface_spec.rb +27 -0
  1181. data/spec/unit/man_spec.rb +1 -1
  1182. data/spec/unit/module_spec.rb +84 -33
  1183. data/spec/unit/module_tool/application_spec.rb +1 -1
  1184. data/spec/unit/module_tool/applications/builder_spec.rb +44 -9
  1185. data/spec/unit/module_tool/applications/installer_spec.rb +11 -2
  1186. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  1187. data/spec/unit/module_tool/applications/upgrader_spec.rb +9 -1
  1188. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  1189. data/spec/unit/module_tool/metadata_spec.rb +31 -2
  1190. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  1191. data/spec/unit/module_tool_spec.rb +3 -3
  1192. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  1193. data/spec/unit/network/authconfig_spec.rb +62 -32
  1194. data/spec/unit/network/authorization_spec.rb +30 -2
  1195. data/spec/unit/network/authstore_spec.rb +2 -2
  1196. data/spec/unit/network/format_handler_spec.rb +0 -0
  1197. data/spec/unit/network/format_spec.rb +0 -0
  1198. data/spec/unit/network/formats_spec.rb +0 -0
  1199. data/spec/unit/network/http/api/indirected_routes_spec.rb +70 -71
  1200. data/spec/unit/network/http/api/master/v3/environment_spec.rb +60 -0
  1201. data/spec/unit/network/http/api/master/v3_spec.rb +22 -4
  1202. data/spec/unit/network/http/compression_spec.rb +1 -1
  1203. data/spec/unit/network/http/connection_spec.rb +25 -19
  1204. data/spec/unit/network/http/error_spec.rb +2 -1
  1205. data/spec/unit/network/http/factory_spec.rb +14 -0
  1206. data/spec/unit/network/http/handler_spec.rb +11 -8
  1207. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  1208. data/spec/unit/network/http/pool_spec.rb +30 -0
  1209. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  1210. data/spec/unit/network/http/rack_spec.rb +0 -0
  1211. data/spec/unit/network/http/session_spec.rb +0 -0
  1212. data/spec/unit/network/http/site_spec.rb +0 -0
  1213. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  1214. data/spec/unit/network/http/webrick_spec.rb +1 -1
  1215. data/spec/unit/network/http_pool_spec.rb +0 -0
  1216. data/spec/unit/network/http_spec.rb +0 -0
  1217. data/spec/unit/network/resolver_spec.rb +0 -0
  1218. data/spec/unit/network/rights_spec.rb +4 -4
  1219. data/spec/unit/network/server_spec.rb +0 -0
  1220. data/spec/unit/node/environment_spec.rb +10 -0
  1221. data/spec/unit/node/facts_spec.rb +0 -0
  1222. data/spec/unit/node_spec.rb +41 -0
  1223. data/spec/unit/other/selinux_spec.rb +0 -0
  1224. data/spec/unit/parameter/path_spec.rb +0 -0
  1225. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  1226. data/spec/unit/parameter/value_spec.rb +0 -0
  1227. data/spec/unit/parameter_spec.rb +11 -0
  1228. data/spec/unit/parser/ast/leaf_spec.rb +1 -1
  1229. data/spec/unit/parser/compiler_spec.rb +120 -33
  1230. data/spec/unit/parser/environment_compiler_spec.rb +688 -0
  1231. data/spec/unit/parser/files_spec.rb +0 -0
  1232. data/spec/unit/parser/functions/create_resources_spec.rb +86 -5
  1233. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  1234. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  1235. data/spec/unit/parser/functions/file_spec.rb +7 -1
  1236. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -2
  1237. data/spec/unit/parser/functions/generate_spec.rb +3 -12
  1238. data/spec/unit/parser/functions/hiera_array_spec.rb +1 -1
  1239. data/spec/unit/parser/functions/hiera_hash_spec.rb +1 -1
  1240. data/spec/unit/parser/functions/hiera_include_spec.rb +1 -1
  1241. data/spec/unit/parser/functions/hiera_spec.rb +1 -1
  1242. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  1243. data/spec/unit/parser/functions/lookup_spec.rb +1 -1
  1244. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  1245. data/spec/unit/parser/functions/regsubst_spec.rb +1 -1
  1246. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  1247. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  1248. data/spec/unit/parser/functions/split_spec.rb +1 -1
  1249. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  1250. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  1251. data/spec/unit/parser/functions/template_spec.rb +1 -1
  1252. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  1253. data/spec/unit/parser/functions_spec.rb +0 -0
  1254. data/spec/unit/parser/relationship_spec.rb +0 -0
  1255. data/spec/unit/parser/resource/param_spec.rb +0 -0
  1256. data/spec/unit/parser/resource_spec.rb +31 -32
  1257. data/spec/unit/parser/scope_spec.rb +85 -18
  1258. data/spec/unit/parser/templatewrapper_spec.rb +1 -1
  1259. data/spec/unit/parser/type_loader_spec.rb +0 -0
  1260. data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
  1261. data/spec/unit/pops/binder/injector_spec.rb +3 -3
  1262. data/spec/unit/pops/evaluator/access_ops_spec.rb +133 -18
  1263. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +170 -0
  1264. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
  1265. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  1266. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +155 -41
  1267. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  1268. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  1269. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
  1270. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +133 -0
  1271. data/spec/unit/pops/evaluator/variables_spec.rb +2 -2
  1272. data/spec/unit/pops/issues_spec.rb +16 -16
  1273. data/spec/unit/pops/label_provider_spec.rb +5 -1
  1274. data/spec/unit/pops/loaders/dependency_loader_spec.rb +66 -1
  1275. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  1276. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  1277. data/spec/unit/pops/loaders/loaders_spec.rb +292 -51
  1278. data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
  1279. data/spec/unit/pops/loaders/static_loader_spec.rb +83 -18
  1280. data/spec/unit/pops/lookup/context_spec.rb +178 -0
  1281. data/spec/unit/pops/lookup/interpolation_spec.rb +333 -0
  1282. data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
  1283. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  1284. data/spec/unit/pops/migration_spec.rb +53 -0
  1285. data/spec/unit/pops/parser/lexer2_spec.rb +369 -10
  1286. data/spec/unit/pops/parser/parse_application_spec.rb +35 -0
  1287. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +31 -0
  1288. data/spec/unit/pops/parser/parse_calls_spec.rb +25 -0
  1289. data/spec/unit/pops/parser/parse_capabilities_spec.rb +40 -0
  1290. data/spec/unit/pops/parser/parse_functions_spec.rb +19 -0
  1291. data/spec/unit/pops/parser/parse_heredoc_spec.rb +26 -0
  1292. data/spec/unit/pops/parser/parse_lambda_spec.rb +19 -0
  1293. data/spec/unit/pops/parser/parse_site_spec.rb +51 -0
  1294. data/spec/unit/pops/parser/parser_rspec_helper.rb +6 -0
  1295. data/spec/unit/pops/parser/parser_spec.rb +28 -0
  1296. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  1297. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  1298. data/spec/unit/pops/resource/resource_type_impl_spec.rb +111 -0
  1299. data/spec/unit/pops/serialization/packer_spec.rb +154 -0
  1300. data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
  1301. data/spec/unit/pops/serialization/serialization_spec.rb +314 -0
  1302. data/spec/unit/pops/time/timespan_spec.rb +121 -0
  1303. data/spec/unit/pops/types/enumeration_spec.rb +13 -12
  1304. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  1305. data/spec/unit/pops/types/p_binary_type_spec.rb +243 -0
  1306. data/spec/unit/pops/types/p_object_type_spec.rb +1167 -0
  1307. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +327 -0
  1308. data/spec/unit/pops/types/p_sensitive_type_spec.rb +169 -0
  1309. data/spec/unit/pops/types/p_timespan_type_spec.rb +273 -0
  1310. data/spec/unit/pops/types/p_timestamp_type_spec.rb +311 -0
  1311. data/spec/unit/pops/types/p_type_set_type_spec.rb +453 -0
  1312. data/spec/unit/pops/types/recursion_guard_spec.rb +93 -0
  1313. data/spec/unit/pops/types/ruby_generator_spec.rb +577 -0
  1314. data/spec/unit/pops/types/string_converter_spec.rb +1029 -0
  1315. data/spec/unit/pops/types/type_acceptor_spec.rb +106 -0
  1316. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  1317. data/spec/unit/pops/types/type_calculator_spec.rb +1107 -871
  1318. data/spec/unit/pops/types/type_factory_spec.rb +132 -91
  1319. data/spec/unit/pops/types/type_formatter_spec.rb +396 -0
  1320. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +219 -0
  1321. data/spec/unit/pops/types/type_parser_spec.rb +206 -36
  1322. data/spec/unit/pops/types/types_spec.rb +600 -0
  1323. data/spec/unit/pops/validation_spec.rb +66 -0
  1324. data/spec/unit/pops/validator/validator_spec.rb +400 -18
  1325. data/spec/unit/property/ensure_spec.rb +0 -0
  1326. data/spec/unit/property/keyvalue_spec.rb +0 -0
  1327. data/spec/unit/property/list_spec.rb +0 -0
  1328. data/spec/unit/property/ordered_list_spec.rb +0 -0
  1329. data/spec/unit/property_spec.rb +49 -12
  1330. data/spec/unit/provider/augeas/augeas_spec.rb +59 -0
  1331. data/spec/unit/provider/cisco_spec.rb +0 -0
  1332. data/spec/unit/provider/command_spec.rb +0 -0
  1333. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  1334. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  1335. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  1336. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  1337. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  1338. data/spec/unit/provider/exec_spec.rb +0 -0
  1339. data/spec/unit/provider/file/posix_spec.rb +0 -0
  1340. data/spec/unit/provider/file/windows_spec.rb +0 -0
  1341. data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
  1342. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  1343. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  1344. data/spec/unit/provider/group/pw_spec.rb +0 -0
  1345. data/spec/unit/provider/group/windows_adsi_spec.rb +88 -18
  1346. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  1347. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  1348. data/spec/unit/provider/ldap_spec.rb +0 -0
  1349. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  1350. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  1351. data/spec/unit/provider/mount/parsed_spec.rb +31 -5
  1352. data/spec/unit/provider/mount_spec.rb +0 -0
  1353. data/spec/unit/provider/naginator_spec.rb +0 -0
  1354. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  1355. data/spec/unit/provider/nameservice_spec.rb +42 -0
  1356. data/spec/unit/provider/network_device_spec.rb +0 -0
  1357. data/spec/unit/provider/package/aix_spec.rb +0 -0
  1358. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  1359. data/spec/unit/provider/package/apt_spec.rb +5 -0
  1360. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  1361. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1362. data/spec/unit/provider/package/base_spec.rb +18 -0
  1363. data/spec/unit/provider/package/dnf_spec.rb +30 -0
  1364. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1365. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  1366. data/spec/unit/provider/package/gem_spec.rb +77 -0
  1367. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  1368. data/spec/unit/provider/package/macports_spec.rb +0 -0
  1369. data/spec/unit/provider/package/nim_spec.rb +6 -6
  1370. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  1371. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  1372. data/spec/unit/provider/package/pacman_spec.rb +55 -0
  1373. data/spec/unit/provider/package/pip3_spec.rb +22 -0
  1374. data/spec/unit/provider/package/pip_spec.rb +173 -46
  1375. data/spec/unit/provider/package/pkg_spec.rb +137 -99
  1376. data/spec/unit/provider/package/pkgdmg_spec.rb +32 -8
  1377. data/spec/unit/provider/package/pkgin_spec.rb +23 -13
  1378. data/spec/unit/provider/package/pkgng_spec.rb +186 -0
  1379. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  1380. data/spec/unit/provider/package/portage_spec.rb +64 -8
  1381. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  1382. data/spec/unit/provider/package/rpm_spec.rb +168 -11
  1383. data/spec/unit/provider/package/sun_spec.rb +0 -0
  1384. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  1385. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -1
  1386. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -1
  1387. data/spec/unit/provider/package/windows/package_spec.rb +45 -1
  1388. data/spec/unit/provider/package/windows_spec.rb +8 -2
  1389. data/spec/unit/provider/package/yum_spec.rb +29 -466
  1390. data/spec/unit/provider/package/zypper_spec.rb +64 -19
  1391. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  1392. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +523 -70
  1393. data/spec/unit/provider/selboolean_spec.rb +0 -0
  1394. data/spec/unit/provider/selmodule_spec.rb +0 -0
  1395. data/spec/unit/provider/service/base_spec.rb +44 -27
  1396. data/spec/unit/provider/service/bsd_spec.rb +130 -0
  1397. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  1398. data/spec/unit/provider/service/debian_spec.rb +38 -0
  1399. data/spec/unit/provider/service/freebsd_spec.rb +17 -0
  1400. data/spec/unit/provider/service/gentoo_spec.rb +8 -0
  1401. data/spec/unit/provider/service/init_spec.rb +42 -1
  1402. data/spec/unit/provider/service/launchd_spec.rb +124 -25
  1403. data/spec/unit/provider/service/openbsd_spec.rb +1 -0
  1404. data/spec/unit/provider/service/openrc_spec.rb +7 -0
  1405. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  1406. data/spec/unit/provider/service/rcng_spec.rb +41 -0
  1407. data/spec/unit/provider/service/redhat_spec.rb +9 -1
  1408. data/spec/unit/provider/service/runit_spec.rb +0 -0
  1409. data/spec/unit/provider/service/smf_spec.rb +77 -13
  1410. data/spec/unit/provider/service/src_spec.rb +26 -4
  1411. data/spec/unit/provider/service/systemd_spec.rb +228 -39
  1412. data/spec/unit/provider/service/upstart_spec.rb +64 -0
  1413. data/spec/unit/provider/service/windows_spec.rb +0 -0
  1414. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -1
  1415. data/spec/unit/provider/sshkey/parsed_spec.rb +42 -18
  1416. data/spec/unit/provider/user/aix_spec.rb +7 -0
  1417. data/spec/unit/provider/user/directoryservice_spec.rb +164 -83
  1418. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  1419. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  1420. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  1421. data/spec/unit/provider/user/pw_spec.rb +0 -0
  1422. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  1423. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  1424. data/spec/unit/provider/user/windows_adsi_spec.rb +160 -7
  1425. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  1426. data/spec/unit/provider/yumrepo/inifile_spec.rb +16 -0
  1427. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  1428. data/spec/unit/provider/zone/solaris_spec.rb +64 -12
  1429. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  1430. data/spec/unit/provider_spec.rb +0 -0
  1431. data/spec/unit/puppet_spec.rb +15 -1
  1432. data/spec/unit/relationship_spec.rb +0 -0
  1433. data/spec/unit/reports/http_spec.rb +0 -0
  1434. data/spec/unit/reports/store_spec.rb +0 -0
  1435. data/spec/unit/reports_spec.rb +10 -0
  1436. data/spec/unit/resource/capability_finder_spec.rb +147 -0
  1437. data/spec/unit/resource/catalog_spec.rb +235 -10
  1438. data/spec/unit/resource/status_spec.rb +0 -0
  1439. data/spec/unit/resource/type_collection_spec.rb +23 -2
  1440. data/spec/unit/resource/type_spec.rb +161 -10
  1441. data/spec/unit/resource_spec.rb +137 -48
  1442. data/spec/unit/semver_spec.rb +14 -0
  1443. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  1444. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  1445. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  1446. data/spec/unit/settings/file_setting_spec.rb +37 -0
  1447. data/spec/unit/settings/ini_file_spec.rb +58 -1
  1448. data/spec/unit/settings/path_setting_spec.rb +0 -0
  1449. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  1450. data/spec/unit/settings_spec.rb +116 -3
  1451. data/spec/unit/ssl/base_spec.rb +0 -0
  1452. data/spec/unit/ssl/certificate_authority/interface_spec.rb +180 -13
  1453. data/spec/unit/ssl/certificate_authority_spec.rb +80 -26
  1454. data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
  1455. data/spec/unit/ssl/certificate_request_spec.rb +1 -1
  1456. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  1457. data/spec/unit/ssl/certificate_spec.rb +0 -0
  1458. data/spec/unit/ssl/configuration_spec.rb +0 -0
  1459. data/spec/unit/ssl/host_spec.rb +3 -3
  1460. data/spec/unit/ssl/inventory_spec.rb +0 -0
  1461. data/spec/unit/ssl/key_spec.rb +0 -0
  1462. data/spec/unit/ssl/oids_spec.rb +24 -13
  1463. data/spec/unit/status_spec.rb +0 -0
  1464. data/spec/unit/transaction/additional_resource_generator_spec.rb +160 -31
  1465. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  1466. data/spec/unit/transaction/event_spec.rb +3 -1
  1467. data/spec/unit/transaction/persistence_spec.rb +178 -0
  1468. data/spec/unit/transaction/report_spec.rb +138 -2
  1469. data/spec/unit/transaction/resource_harness_spec.rb +81 -37
  1470. data/spec/unit/transaction_spec.rb +50 -0
  1471. data/spec/unit/type/augeas_spec.rb +0 -0
  1472. data/spec/unit/type/component_spec.rb +0 -0
  1473. data/spec/unit/type/computer_spec.rb +0 -0
  1474. data/spec/unit/type/cron_spec.rb +0 -0
  1475. data/spec/unit/type/exec_spec.rb +16 -8
  1476. data/spec/unit/type/file/checksum_spec.rb +6 -0
  1477. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  1478. data/spec/unit/type/file/content_spec.rb +59 -208
  1479. data/spec/unit/type/file/ctime_spec.rb +0 -0
  1480. data/spec/unit/type/file/ensure_spec.rb +0 -0
  1481. data/spec/unit/type/file/group_spec.rb +0 -0
  1482. data/spec/unit/type/file/mode_spec.rb +0 -0
  1483. data/spec/unit/type/file/mtime_spec.rb +0 -0
  1484. data/spec/unit/type/file/owner_spec.rb +0 -0
  1485. data/spec/unit/type/file/selinux_spec.rb +0 -0
  1486. data/spec/unit/type/file/source_spec.rb +211 -119
  1487. data/spec/unit/type/file/type_spec.rb +0 -0
  1488. data/spec/unit/type/file_spec.rb +161 -34
  1489. data/spec/unit/type/filebucket_spec.rb +0 -0
  1490. data/spec/unit/type/group_spec.rb +0 -0
  1491. data/spec/unit/type/host_spec.rb +4 -4
  1492. data/spec/unit/type/interface_spec.rb +32 -0
  1493. data/spec/unit/type/k5login_spec.rb +0 -0
  1494. data/spec/unit/type/macauthorization_spec.rb +4 -1
  1495. data/spec/unit/type/mailalias_spec.rb +0 -0
  1496. data/spec/unit/type/maillist_spec.rb +0 -0
  1497. data/spec/unit/type/mcx_spec.rb +0 -0
  1498. data/spec/unit/type/mount_spec.rb +50 -8
  1499. data/spec/unit/type/nagios_spec.rb +0 -0
  1500. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  1501. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  1502. data/spec/unit/type/package_spec.rb +1 -0
  1503. data/spec/unit/type/resources_spec.rb +0 -0
  1504. data/spec/unit/type/schedule_spec.rb +0 -0
  1505. data/spec/unit/type/selboolean_spec.rb +0 -0
  1506. data/spec/unit/type/selmodule_spec.rb +0 -0
  1507. data/spec/unit/type/service_spec.rb +21 -0
  1508. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
  1509. data/spec/unit/type/sshkey_spec.rb +0 -0
  1510. data/spec/unit/type/stage_spec.rb +0 -0
  1511. data/spec/unit/type/tidy_spec.rb +4 -4
  1512. data/spec/unit/type/user_spec.rb +40 -7
  1513. data/spec/unit/type/vlan_spec.rb +1 -1
  1514. data/spec/unit/type/whit_spec.rb +0 -0
  1515. data/spec/unit/type/yumrepo_spec.rb +3 -7
  1516. data/spec/unit/type/zfs_spec.rb +0 -0
  1517. data/spec/unit/type/zone_spec.rb +0 -0
  1518. data/spec/unit/type/zpool_spec.rb +0 -0
  1519. data/spec/unit/type_spec.rb +119 -1
  1520. data/spec/unit/util/autoload_spec.rb +0 -0
  1521. data/spec/unit/util/backups_spec.rb +0 -0
  1522. data/spec/unit/util/checksums_spec.rb +0 -0
  1523. data/spec/unit/util/colors_spec.rb +0 -0
  1524. data/spec/unit/util/command_line_spec.rb +11 -0
  1525. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  1526. data/spec/unit/util/diff_spec.rb +0 -0
  1527. data/spec/unit/util/errors_spec.rb +0 -0
  1528. data/spec/unit/util/execution_spec.rb +1 -1
  1529. data/spec/unit/util/execution_stub_spec.rb +0 -0
  1530. data/spec/unit/util/feature_spec.rb +1 -1
  1531. data/spec/unit/util/filetype_spec.rb +4 -4
  1532. data/spec/unit/util/http_proxy_spec.rb +87 -0
  1533. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  1534. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  1535. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  1536. data/spec/unit/util/log/destinations_spec.rb +0 -2
  1537. data/spec/unit/util/log_spec.rb +125 -1
  1538. data/spec/unit/util/logging_spec.rb +69 -0
  1539. data/spec/unit/util/metric_spec.rb +0 -0
  1540. data/spec/unit/util/monkey_patches_spec.rb +95 -3
  1541. data/spec/unit/util/multi_match_spec.rb +39 -0
  1542. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  1543. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  1544. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  1545. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1546. data/spec/unit/util/network_device/config_spec.rb +0 -0
  1547. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  1548. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  1549. data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
  1550. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  1551. data/spec/unit/util/network_device_spec.rb +1 -1
  1552. data/spec/unit/util/package_spec.rb +0 -0
  1553. data/spec/unit/util/plist_spec.rb +135 -0
  1554. data/spec/unit/util/posix_spec.rb +0 -0
  1555. data/spec/unit/util/rdoc_spec.rb +0 -0
  1556. data/spec/unit/util/resource_template_spec.rb +2 -2
  1557. data/spec/unit/util/retry_action_spec.rb +0 -0
  1558. data/spec/unit/util/run_mode_spec.rb +27 -3
  1559. data/spec/unit/util/selinux_spec.rb +0 -0
  1560. data/spec/unit/util/splayer_spec.rb +45 -0
  1561. data/spec/unit/util/storage_spec.rb +8 -1
  1562. data/spec/unit/util/suidmanager_spec.rb +0 -0
  1563. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  1564. data/spec/unit/util/tagging_spec.rb +4 -0
  1565. data/spec/unit/util/user_attr_spec.rb +0 -0
  1566. data/spec/unit/util/warnings_spec.rb +0 -0
  1567. data/spec/unit/util/windows/adsi_spec.rb +196 -60
  1568. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  1569. data/spec/unit/util/windows/file_spec.rb +89 -0
  1570. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  1571. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  1572. data/spec/unit/util/windows/sid_spec.rb +76 -24
  1573. data/spec/unit/util/yaml_spec.rb +13 -1
  1574. data/spec/unit/util_spec.rb +219 -15
  1575. data/spec/unit/version_spec.rb +15 -0
  1576. data/spec/watchr.rb +0 -0
  1577. data/tasks/cfpropertylist.rake +15 -0
  1578. data/tasks/i18n.rake +20 -0
  1579. metadata +3701 -3043
  1580. checksums.yaml +0 -7
  1581. data/ext/puppet-nm-dispatcher +0 -13
  1582. data/ext/puppetlisten/puppetlisten.rb +0 -77
  1583. data/ext/puppetlisten/puppetrun.rb +0 -38
  1584. data/ext/systemd/puppetmaster.service +0 -11
  1585. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
  1586. data/lib/puppet/pops/types/types_meta.rb +0 -223
  1587. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  1588. data/lib/puppet/vendor/load_plist.rb +0 -1
  1589. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  1590. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  1591. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  1592. data/lib/puppet/vendor/plist/README +0 -36
  1593. data/lib/puppet/vendor/plist/Rakefile +0 -144
  1594. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  1595. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  1596. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  1597. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  1598. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  1599. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  1600. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  1601. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  1602. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  1603. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  1604. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  1605. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  1606. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  1607. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  1608. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  1609. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  1610. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  1611. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
  1612. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  1613. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  1614. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  1615. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  1616. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  1617. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  1618. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  1619. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  1620. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  1621. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  1622. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  1623. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  1624. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
  1625. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -3
  1626. data/spec/integration/data_binding.rb +0 -104
  1627. data/spec/integration/parser/functions/require_spec.rb +0 -43
  1628. data/spec/integration/provider/package_spec.rb +0 -33
  1629. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  1630. data/spec/unit/parser/functions/include_spec.rb +0 -55
  1631. data/spec/unit/parser/functions/require_spec.rb +0 -68
  1632. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
  1633. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  1634. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  1635. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  1636. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  1637. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  1638. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  1639. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  1640. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  1641. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  1642. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  1643. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{usee → modules/usee}/lib/puppet/functions/usee/callee.rb +0 -0
  1644. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/lib/puppet/functions/user/caller.rb +0 -0
@@ -1,10 +1,13 @@
1
+ module Puppet::Pops
2
+ module Binder
1
3
  # This module contains the various producers used by Puppet Bindings.
2
- # The main (abstract) class is {Puppet::Pops::Binder::Producers::Producer} which documents the
4
+
5
+ # The main (abstract) class is {Producers::Producer} which documents the
3
6
  # Producer API and serves as a base class for all other producers.
4
7
  # It is required that custom producers inherit from this producer (directly or indirectly).
5
8
  #
6
9
  # The selection of a Producer is typically performed by the Innjector when it configures itself
7
- # from a Bindings model where a {Puppet::Pops::Binder::Bindings::ProducerDescriptor} describes
10
+ # from a Bindings model where a {Bindings::ProducerDescriptor} describes
8
11
  # which producer to use. The configuration uses this to create the concrete producer.
9
12
  # It is possible to describe that a particular producer class is to be used, and also to describe that
10
13
  # a custom producer (derived from Producer) should be used. This is available for both regular
@@ -13,7 +16,7 @@
13
16
  #
14
17
  # @api public
15
18
  #
16
- module Puppet::Pops::Binder::Producers
19
+ module Producers
17
20
  # Producer is an abstract base class representing the base contract for a bound producer.
18
21
  # Typically, when a lookup is performed it is the value that is returned (via a producer), but
19
22
  # it is also possible to lookup the producer, and ask it to produce the value (the producer may
@@ -48,10 +51,10 @@ module Puppet::Pops::Binder::Producers
48
51
  # Creates a Producer.
49
52
  # Derived classes should call this constructor to get support for transformer lambda.
50
53
  #
51
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
52
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
54
+ # @param injector [Injector] The injector where the lookup originates
55
+ # @param binding [Bindings::Binding, nil] The binding using this producer
53
56
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
54
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
57
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
55
58
  # @api public
56
59
  #
57
60
  def initialize(injector, binding, scope, options)
@@ -60,9 +63,9 @@ module Puppet::Pops::Binder::Producers
60
63
  raise ArgumentError, "Transformer Proc must take one argument; value." unless transformer_lambda.arity == 1
61
64
  @transformer = transformer_lambda
62
65
  else
63
- raise ArgumentError, "Transformer must be a LambdaExpression" unless transformer_lambda.is_a?(Puppet::Pops::Model::LambdaExpression)
66
+ raise ArgumentError, "Transformer must be a LambdaExpression" unless transformer_lambda.is_a?(Model::LambdaExpression)
64
67
  raise ArgumentError, "Transformer lambda must take one argument; value." unless transformer_lambda.parameters.size() == 1
65
- @transformer = Puppet::Pops::Parser::EvaluatingParser.new.closure(transformer_lambda, scope)
68
+ @transformer = Parser::EvaluatingParser.new.closure(transformer_lambda, scope)
66
69
  end
67
70
  end
68
71
  end
@@ -81,9 +84,9 @@ module Puppet::Pops::Binder::Producers
81
84
  # This implementation returns `self`. A derived class may want to override this method
82
85
  # to perform initialization/refresh of its internal state. This method is called when
83
86
  # a producer is requested.
84
- # @see Puppet::Pops::Binder::ProducerProducer for an example of implementation.
87
+ # @see ProducerProducer for an example of implementation.
85
88
  # @param scope [Puppet::Parser:Scope] the scope to use for evaluation
86
- # @return [Puppet::Pops::Binder::Producer] the producer to use
89
+ # @return [Producer] the producer to use
87
90
  # @api public
88
91
  #
89
92
  def producer(scope)
@@ -123,11 +126,11 @@ module Puppet::Pops::Binder::Producers
123
126
  # @api public
124
127
  attr_reader :value
125
128
 
126
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
127
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
129
+ # @param injector [Injector] The injector where the lookup originates
130
+ # @param binding [Bindings::Binding, nil] The binding using this producer
128
131
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
129
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
130
- # @option options [Puppet::Pops::Model::LambdaExpression, nil] :value (nil) the value to produce
132
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
133
+ # @option options [Model::LambdaExpression, nil] :value (nil) the value to produce
131
134
  # @api public
132
135
  #
133
136
  def initialize(injector, binding, scope, options)
@@ -182,10 +185,10 @@ module Puppet::Pops::Binder::Producers
182
185
  # @api public
183
186
  attr_reader :binding
184
187
 
185
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
186
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
188
+ # @param injector [Injector] The injector where the lookup originates
189
+ # @param binding [Bindings::Binding, nil] The binding using this producer
187
190
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
188
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
191
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
189
192
  # @api public
190
193
  #
191
194
  def initialize(injector, binding, scope, options)
@@ -204,10 +207,10 @@ module Puppet::Pops::Binder::Producers
204
207
  # @api public
205
208
  attr_reader :init_args
206
209
 
207
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
208
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
210
+ # @param injector [Injector] The injector where the lookup originates
211
+ # @param binding [Bindings::Binding, nil] The binding using this producer
209
212
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
210
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
213
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
211
214
  # @option options [String] :class_name The name of the class to create instance of
212
215
  # @option options [Array<Object>] :init_args ([]) Optional arguments to class constructor
213
216
  # @api public
@@ -220,7 +223,7 @@ module Puppet::Pops::Binder::Producers
220
223
  class_name = options[:class_name]
221
224
  raise ArgumentError, "Option 'class_name' must be given for an InstantiatingProducer" unless class_name
222
225
  # get class by name
223
- @the_class = Puppet::Pops::Types::ClassLoader.provide(class_name)
226
+ @the_class = Types::ClassLoader.provide(class_name)
224
227
  @init_args = options[:init_args] || []
225
228
  raise ArgumentError, "Can not load the class #{class_name} specified in binding named: '#{binding.name}'" unless @the_class
226
229
  end
@@ -255,11 +258,11 @@ module Puppet::Pops::Binder::Producers
255
258
  # @api public
256
259
  attr_reader :producers
257
260
 
258
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
259
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
261
+ # @param injector [Injector] The injector where the lookup originates
262
+ # @param binding [Bindings::Binding, nil] The binding using this producer
260
263
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
261
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
262
- # @option options [Array<Puppet::Pops::Binder::Producers::Producer>] :producers list of producers to consult. Required.
264
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
265
+ # @option options [Array<Producers::Producer>] :producers list of producers to consult. Required.
263
266
  # @api public
264
267
  #
265
268
  def initialize(injector, binding, scope, options)
@@ -288,11 +291,11 @@ module Puppet::Pops::Binder::Producers
288
291
  #
289
292
  attr_reader :expression
290
293
 
291
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
292
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
294
+ # @param injector [Injector] The injector where the lookup originates
295
+ # @param binding [Bindings::Binding, nil] The binding using this producer
293
296
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
294
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
295
- # @option options [Array<Puppet::Pops::Model::Expression>] :expression The expression to evaluate
297
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
298
+ # @option options [Array<Model::Expression>] :expression The expression to evaluate
296
299
  # @api public
297
300
  #
298
301
  def initialize(injector, binding, scope, options)
@@ -303,7 +306,7 @@ module Puppet::Pops::Binder::Producers
303
306
 
304
307
  # @api private
305
308
  def internal_produce(scope)
306
- Puppet::Pops::Parser::EvaluatingParser.new.evaluate(scope, expression)
309
+ Parser::EvaluatingParser.new.evaluate(scope, expression)
307
310
  end
308
311
  end
309
312
 
@@ -316,11 +319,11 @@ module Puppet::Pops::Binder::Producers
316
319
  # @api public
317
320
  attr_reader :name
318
321
 
319
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
320
- # @param binder [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
322
+ # @param injector [Injector] The injector where the lookup originates
323
+ # @param binder [Bindings::Binding, nil] The binding using this producer
321
324
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
322
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
323
- # @option options [Puppet::Pops::Types::PAnyType] :type The type to lookup
325
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
326
+ # @option options [Types::PAnyType] :type The type to lookup
324
327
  # @option options [String] :name ('') The name to lookup
325
328
  # @api public
326
329
  #
@@ -345,13 +348,13 @@ module Puppet::Pops::Binder::Producers
345
348
  # @api public
346
349
  attr_reader :key
347
350
 
348
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
349
- # @param binder [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
351
+ # @param injector [Injector] The injector where the lookup originates
352
+ # @param binder [Bindings::Binding, nil] The binding using this producer
350
353
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
351
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
352
- # @option options [Puppet::Pops::Types::PAnyType] :type The type to lookup
354
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
355
+ # @option options [Types::PAnyType] :type The type to lookup
353
356
  # @option options [String] :name ('') The name to lookup
354
- # @option options [Puppet::Pops::Types::PAnyType] :key The key to lookup in the hash
357
+ # @option options [Types::PAnyType] :key The key to lookup in the hash
355
358
  # @api public
356
359
  #
357
360
  def initialize(injector, binder, scope, options)
@@ -379,11 +382,11 @@ module Puppet::Pops::Binder::Producers
379
382
  # @api public
380
383
  attr_reader :value_producer
381
384
 
382
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
383
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
385
+ # @param injector [Injector] The injector where the lookup originates
386
+ # @param binding [Bindings::Binding, nil] The binding using this producer
384
387
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
385
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
386
- # @option options [Puppet::Pops::Model::LambdaExpression] :producer_producer a producer of a value producer (required)
388
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
389
+ # @option options [Model::LambdaExpression] :producer_producer a producer of a value producer (required)
387
390
  # @api public
388
391
  #
389
392
  def initialize(injector, binding, scope, options)
@@ -420,11 +423,11 @@ module Puppet::Pops::Binder::Producers
420
423
 
421
424
  # Creates new ProducerProducer given a producer.
422
425
  #
423
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
424
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
426
+ # @param injector [Injector] The injector where the lookup originates
427
+ # @param binding [Bindings::Binding, nil] The binding using this producer
425
428
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
426
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
427
- # @option options [Puppet::Pops::Binder::Producer] :producer_producer a producer of a value producer (required)
429
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
430
+ # @option options [Producer] :producer_producer a producer of a value producer (required)
428
431
  #
429
432
  # @api public
430
433
  #
@@ -512,10 +515,10 @@ module Puppet::Pops::Binder::Producers
512
515
  class MultibindProducer < AbstractArgumentedProducer
513
516
  attr_reader :contributions_key
514
517
 
515
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
516
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
518
+ # @param injector [Injector] The injector where the lookup originates
519
+ # @param binding [Bindings::Binding, nil] The binding using this producer
517
520
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
518
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
521
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
519
522
  #
520
523
  # @api public
521
524
  #
@@ -524,8 +527,8 @@ module Puppet::Pops::Binder::Producers
524
527
  @contributions_key = injector.key_factory.multibind_contributions(binding.id)
525
528
  end
526
529
 
527
- # @param expected [Array<Puppet::Pops::Types::PAnyType>, Puppet::Pops::Types::PAnyType] expected type or types
528
- # @param actual [Object, Puppet::Pops::Types::PAnyType> the actual value (or its type)
530
+ # @param expected [Array<Types::PAnyType>, Types::PAnyType] expected type or types
531
+ # @param actual [Object, Types::PAnyType> the actual value (or its type)
529
532
  # @return [String] a formatted string for inclusion as detail in an error message
530
533
  # @api private
531
534
  #
@@ -533,8 +536,8 @@ module Puppet::Pops::Binder::Producers
533
536
  tc = injector.type_calculator
534
537
  expected = [expected] unless expected.is_a?(Array)
535
538
  actual_t = tc.is_ptype?(actual) ? actual : tc.infer(actual)
536
- expstrs = expected.collect {|t| tc.string(t) }
537
- "expected: #{expstrs.join(', or ')}, got: #{tc.string(actual_t)}"
539
+ expstrs = expected.collect {|t| t.to_s }
540
+ "expected: #{expstrs.join(', or ')}, got: #{actual_t}"
538
541
  end
539
542
  end
540
543
 
@@ -578,10 +581,10 @@ module Puppet::Pops::Binder::Producers
578
581
  # @api public
579
582
  attr_reader :priority_on_unnamed
580
583
 
581
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
582
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
584
+ # @param injector [Injector] The injector where the lookup originates
585
+ # @param binding [Bindings::Binding, nil] The binding using this producer
583
586
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
584
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
587
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
585
588
  # @option options [Boolean] :uniq (false) if collected result should be post-processed to contain only unique entries
586
589
  # @option options [Boolean, Integer] :flatten (false) if collected result should be post-processed so all contained arrays
587
590
  # are flattened. May be set to an Integer value to indicate the level of recursion (-1 is endless, 0 is none).
@@ -680,10 +683,10 @@ module Puppet::Pops::Binder::Producers
680
683
  # By default, the hash is produced using `:priority` resolution - the highest entry is selected, the rest are
681
684
  # ignored unless they have the same priority which is an error.
682
685
  #
683
- # @param injector [Puppet::Pops::Binder::Injector] The injector where the lookup originates
684
- # @param binding [Puppet::Pops::Binder::Bindings::Binding, nil] The binding using this producer
686
+ # @param injector [Injector] The injector where the lookup originates
687
+ # @param binding [Bindings::Binding, nil] The binding using this producer
685
688
  # @param scope [Puppet::Parser::Scope] The scope to use for evaluation
686
- # @option options [Puppet::Pops::Model::LambdaExpression] :transformer (nil) a transformer of produced value
689
+ # @option options [Model::LambdaExpression] :transformer (nil) a transformer of produced value
687
690
  # @option options [Symbol, String] :conflict_resolution (:priority) One of `:error`, `:merge`, `:append`, `:priority`, `:ignore`
688
691
  # <ul><li> `ignore` the first found highest priority contribution is used, the rest are ignored</li>
689
692
  # <li>`error` any duplicate key is an error</li>
@@ -719,14 +722,14 @@ module Puppet::Pops::Binder::Producers
719
722
  end
720
723
 
721
724
  if uniq || flatten || conflict_resolution.to_s == 'append'
722
- etype = binding.type.element_type
723
- unless etype.class == Puppet::Pops::Types::PDataType || etype.is_a?(Puppet::Pops::Types::PArrayType)
725
+ etype = binding.type.value_type
726
+ unless etype.class == Types::PDataType || etype.is_a?(Types::PArrayType)
724
727
  detail = []
725
728
  detail << ":uniq" if uniq
726
729
  detail << ":flatten" if flatten
727
730
  detail << ":conflict_resolution => :append" if conflict_resolution.to_s == 'append'
728
731
  raise ArgumentError, ["Options #{detail.join(', and ')} cannot be used with a Multibind ",
729
- "of type #{injector.type_calculator.string(binding.type)}"].join()
732
+ "of type #{binding.type}"].join()
730
733
  end
731
734
  end
732
735
  end
@@ -815,12 +818,14 @@ module Puppet::Pops::Binder::Producers
815
818
  raise ArgumentError, "Entry contributing to multibind hash with id '#{binding.id}' must have a name."
816
819
  end
817
820
 
818
- unless tc.instance?(binding.type.element_type, value)
821
+ unless tc.instance?(binding.type.value_type, value)
819
822
  raise ArgumentError, ["Type Error: value contribution to #{binding.name}['#{key}'] ",
820
823
  "is incompatible, ",
821
- type_error_detail(binding.type.element_type, value)].join()
824
+ type_error_detail(binding.type.value_type, value)].join()
822
825
  end
823
826
  end
824
827
  end
825
828
 
826
829
  end
830
+ end
831
+ end
@@ -6,7 +6,7 @@ require 'puppet/pops/binder/scheme_handler/symbolic_scheme'
6
6
  # URI
7
7
  # ---
8
8
  # The URI scheme is `confdir:/[<FQN>]['?' | [?optional]` where FQN is the fully qualified name of the bindings to load.
9
- # The referecence is made optional by using a URI query of `?` or `?optional`.
9
+ # The reference is made optional by using a URI query of `?` or `?optional`.
10
10
  #
11
11
  # @todo
12
12
  # If the file to load is outside of the file system rooted at $confdir (in a gem, or just on the Ruby path), it can not
@@ -15,7 +15,18 @@ require 'puppet/pops/binder/scheme_handler/symbolic_scheme'
15
15
  # Does currently only support checking of optionality against files under a module. If the result should be loaded
16
16
  # from any other location it can not be marked as optional as it will be ignored.
17
17
  #
18
- class Puppet::Pops::Binder::SchemeHandler::ModuleScheme < Puppet::Pops::Binder::SchemeHandler::SymbolicScheme
18
+ module Puppet::Pops::Binder
19
+ class SchemeHandler::ModuleScheme < SchemeHandler::SymbolicScheme
20
+
21
+ METADATA_DATA_PROVIDER = 'data_provider'.freeze
22
+
23
+ def contributed_bindings(uri, scope, composer)
24
+ split_name, fqn = fqn_from_path(uri)
25
+ bindings = Puppet::Bindings.resolve(scope, split_name[0]) || load_bindings(uri, scope, composer, split_name, fqn)
26
+
27
+ # Must clone as the rest mutates the model
28
+ BindingsFactory.contributed_bindings(fqn, Marshal.load(Marshal.dump(bindings)))
29
+ end
19
30
 
20
31
  # Expands URIs with wildcards and checks optionality.
21
32
  # @param uri [URI] the uri to possibly expand
@@ -29,13 +40,18 @@ class Puppet::Pops::Binder::SchemeHandler::ModuleScheme < Puppet::Pops::Binder::
29
40
  # supports wild card in the module name
30
41
  case split_name[0]
31
42
  when '*'
32
- # create new URIs, one per module name that has a corresponding .rb file relative to its
33
- # '<root>/lib/puppet/bindings/'
43
+ # create new URIs, one per module name that has a corresponding data_provider entry in metadata.json
44
+ # or an .rb file relative to its '<root>/lib/puppet/bindings/'
34
45
  #
35
- composer.name_to_module.each_pair do | mod_name, mod |
36
- expanded_name_parts = [mod_name] + split_name[1..-1]
46
+ composer.name_to_module.each_pair do | module_name, mod |
47
+ expanded_name_parts = [module_name] + split_name[1..-1]
37
48
  expanded_name = expanded_name_parts.join('::')
38
- if Puppet::Pops::Binder::BindingsLoader.loadable?(mod.path, expanded_name)
49
+
50
+ if is_metadata?(split_name)
51
+ if mod.metadata && mod.metadata[METADATA_DATA_PROVIDER]
52
+ result << URI.parse('module:/' + expanded_name)
53
+ end
54
+ elsif BindingsLoader.loadable?(mod.path, expanded_name)
39
55
  result << URI.parse('module:/' + expanded_name)
40
56
  end
41
57
  end
@@ -43,11 +59,18 @@ class Puppet::Pops::Binder::SchemeHandler::ModuleScheme < Puppet::Pops::Binder::
43
59
  raise ArgumentError, "Bad bindings uri, the #{uri} has neither module name or wildcard '*' in its first path position"
44
60
  else
45
61
  joined_name = split_name.join('::')
62
+ module_name = split_name[0]
46
63
  # skip optional uri if it does not exist
47
64
  if is_optional?(uri)
48
- mod = composer.name_to_module[split_name[0]]
49
- if mod && Puppet::Binder::BindingsLoader.loadable?(mod.path, joined_name)
50
- result << URI.parse('module:/' + joined_name)
65
+ mod = composer.name_to_module[module_name]
66
+ unless mod.nil?
67
+ if is_metadata?(split_name)
68
+ if mod.metadata && mod.metadata[METADATA_DATA_PROVIDER]
69
+ result << URI.parse('module:/' + joined_name)
70
+ end
71
+ elsif BindingsLoader.loadable?(mod.path, joined_name)
72
+ result << URI.parse('module:/' + joined_name)
73
+ end
51
74
  end
52
75
  else
53
76
  # assume it exists (do not give error if not, since it may be excluded later)
@@ -81,4 +104,40 @@ class Puppet::Pops::Binder::SchemeHandler::ModuleScheme < Puppet::Pops::Binder::
81
104
  end
82
105
  result
83
106
  end
107
+
108
+ def load_bindings(uri, scope, composer, split_name, fqn)
109
+ module_name = split_name[0]
110
+ mod = composer.name_to_module[module_name]
111
+ # given module name must exist
112
+ raise ArgumentError, "Cannot load bindings '#{uri}' - module not found." if mod.nil?
113
+
114
+ if is_metadata?(split_name)
115
+ metadata = mod.metadata
116
+ data_provider = metadata.nil? ? nil : metadata[METADATA_DATA_PROVIDER]
117
+ unless data_provider.nil?
118
+ # bind the data provider in a binding named after the module
119
+ # loader.load('thallgren/sample_module_data', Puppet.lookup(:current_environment))
120
+ Puppet::Bindings.newbindings(module_name) do
121
+ bind {
122
+ name(module_name)
123
+ to(data_provider)
124
+ in_multibind(Puppet::Plugins::DataProviders::PER_MODULE_DATA_PROVIDER_KEY)
125
+ }
126
+ end
127
+ # pick up and return the just created and registered bindings
128
+ bindings = Puppet::Bindings.resolve(scope, module_name)
129
+ end
130
+ else
131
+ bindings = BindingsLoader.provide(scope, fqn)
132
+ end
133
+ raise ArgumentError, "Cannot load bindings '#{uri}' - no bindings found." unless bindings
134
+ bindings
135
+ end
136
+ private :load_bindings
137
+
138
+ def is_metadata?(split_name)
139
+ split_name.size > 1 && split_name[1] == 'metadata'
140
+ end
141
+ private :is_metadata?
142
+ end
84
143
  end