puppet 4.1.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1628) hide show
  1. checksums.yaml +4 -4
  2. data/COMMITTERS.md +2 -2
  3. data/CONTRIBUTING.md +34 -10
  4. data/Gemfile +26 -9
  5. data/LICENSE +3 -3
  6. data/MAINTAINERS +71 -0
  7. data/README.md +9 -11
  8. data/Rakefile +35 -0
  9. data/conf/auth.conf +2 -2
  10. data/conf/puppet.conf +1 -1
  11. data/ext/README.environment +1 -1
  12. data/ext/build_defaults.yaml +2 -2
  13. data/ext/debian/README.source +1 -1
  14. data/ext/debian/control +3 -5
  15. data/ext/debian/copyright +4 -4
  16. data/ext/debian/puppet.init +0 -1
  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 +31 -15
  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 +17 -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 +35 -19
  53. data/lib/puppet/application/apply.rb +46 -14
  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 +2 -2
  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 +5 -2
  61. data/lib/puppet/application/lookup.rb +344 -0
  62. data/lib/puppet/application/master.rb +7 -3
  63. data/lib/puppet/application/resource.rb +2 -6
  64. data/lib/puppet/application.rb +20 -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 +177 -37
  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 +273 -59
  86. data/lib/puppet/environments.rb +104 -9
  87. data/lib/puppet/error.rb +4 -0
  88. data/lib/puppet/etc.rb +125 -0
  89. data/lib/puppet/external/dot.rb +1 -1
  90. data/lib/puppet/face/ca.rb +6 -1
  91. data/lib/puppet/face/catalog.rb +1 -1
  92. data/lib/puppet/face/certificate.rb +7 -1
  93. data/lib/puppet/face/certificate_request.rb +2 -0
  94. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  95. data/lib/puppet/face/config.rb +2 -2
  96. data/lib/puppet/face/epp.rb +63 -17
  97. data/lib/puppet/face/file.rb +3 -0
  98. data/lib/puppet/face/generate.rb +64 -0
  99. data/lib/puppet/face/help/face.erb +3 -0
  100. data/lib/puppet/face/help/man.erb +1 -1
  101. data/lib/puppet/face/help.rb +35 -27
  102. data/lib/puppet/face/key.rb +1 -0
  103. data/lib/puppet/face/man.rb +5 -3
  104. data/lib/puppet/face/module/changes.rb +2 -1
  105. data/lib/puppet/face/module/generate.rb +1 -1
  106. data/lib/puppet/face/module/install.rb +6 -6
  107. data/lib/puppet/face/parser.rb +12 -9
  108. data/lib/puppet/face/plugin.rb +7 -14
  109. data/lib/puppet/face/status.rb +4 -1
  110. data/lib/puppet/feature/base.rb +9 -2
  111. data/lib/puppet/feature/cfacter.rb +1 -0
  112. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  113. data/lib/puppet/feature/external_facts.rb +1 -1
  114. data/lib/puppet/feature/hiera_eyaml.rb +3 -0
  115. data/lib/puppet/feature/hocon.rb +3 -0
  116. data/lib/puppet/feature/telnet.rb +9 -0
  117. data/lib/puppet/file_bucket/dipper.rb +58 -2
  118. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  119. data/lib/puppet/file_serving/metadata.rb +18 -2
  120. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  121. data/lib/puppet/file_system/file_impl.rb +7 -2
  122. data/lib/puppet/file_system/memory_impl.rb +5 -1
  123. data/lib/puppet/file_system/path_pattern.rb +1 -0
  124. data/lib/puppet/file_system/uniquefile.rb +3 -3
  125. data/lib/puppet/file_system/windows.rb +28 -13
  126. data/lib/puppet/file_system.rb +33 -5
  127. data/lib/puppet/forge/repository.rb +3 -35
  128. data/lib/puppet/forge.rb +7 -7
  129. data/lib/puppet/functions/alert.rb +14 -0
  130. data/lib/puppet/functions/assert_type.rb +53 -19
  131. data/lib/puppet/functions/binary_file.rb +19 -0
  132. data/lib/puppet/functions/break.rb +22 -0
  133. data/lib/puppet/functions/contain.rb +33 -0
  134. data/lib/puppet/functions/crit.rb +14 -0
  135. data/lib/puppet/functions/debug.rb +14 -0
  136. data/lib/puppet/functions/defined.rb +88 -58
  137. data/lib/puppet/functions/dig.rb +23 -0
  138. data/lib/puppet/functions/each.rb +89 -39
  139. data/lib/puppet/functions/emerg.rb +14 -0
  140. data/lib/puppet/functions/epp.rb +29 -37
  141. data/lib/puppet/functions/err.rb +14 -0
  142. data/lib/puppet/functions/eyaml_lookup_key.rb +90 -0
  143. data/lib/puppet/functions/filter.rb +64 -38
  144. data/lib/puppet/functions/find_file.rb +31 -0
  145. data/lib/puppet/functions/hiera.rb +76 -3
  146. data/lib/puppet/functions/hiera_array.rb +66 -4
  147. data/lib/puppet/functions/hiera_hash.rb +74 -2
  148. data/lib/puppet/functions/hiera_include.rb +78 -5
  149. data/lib/puppet/functions/hocon_data.rb +35 -0
  150. data/lib/puppet/functions/include.rb +21 -0
  151. data/lib/puppet/functions/info.rb +14 -0
  152. data/lib/puppet/functions/inline_epp.rb +44 -71
  153. data/lib/puppet/functions/json_data.rb +29 -0
  154. data/lib/puppet/functions/lest.rb +17 -0
  155. data/lib/puppet/functions/lookup.rb +172 -184
  156. data/lib/puppet/functions/map.rb +60 -33
  157. data/lib/puppet/functions/match.rb +30 -12
  158. data/lib/puppet/functions/new.rb +31 -0
  159. data/lib/puppet/functions/next.rb +23 -0
  160. data/lib/puppet/functions/notice.rb +14 -0
  161. data/lib/puppet/functions/reduce.rb +99 -70
  162. data/lib/puppet/functions/regsubst.rb +22 -25
  163. data/lib/puppet/functions/require.rb +37 -0
  164. data/lib/puppet/functions/return.rb +22 -0
  165. data/lib/puppet/functions/reverse_each.rb +25 -0
  166. data/lib/puppet/functions/scanf.rb +15 -18
  167. data/lib/puppet/functions/slice.rb +22 -36
  168. data/lib/puppet/functions/split.rb +2 -2
  169. data/lib/puppet/functions/step.rb +26 -0
  170. data/lib/puppet/functions/strftime.rb +35 -0
  171. data/lib/puppet/functions/then.rb +14 -0
  172. data/lib/puppet/functions/type.rb +31 -0
  173. data/lib/puppet/functions/unwrap.rb +40 -0
  174. data/lib/puppet/functions/versioncmp.rb +36 -0
  175. data/lib/puppet/functions/warning.rb +14 -0
  176. data/lib/puppet/functions/with.rb +15 -7
  177. data/lib/puppet/functions/yaml_data.rb +38 -0
  178. data/lib/puppet/functions.rb +180 -32
  179. data/lib/puppet/generate/models/type/property.rb +70 -0
  180. data/lib/puppet/generate/models/type/type.rb +61 -0
  181. data/lib/puppet/generate/templates/type/pcore.erb +42 -0
  182. data/lib/puppet/generate/type.rb +239 -0
  183. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  184. data/lib/puppet/graph/simple_graph.rb +6 -8
  185. data/lib/puppet/indirector/catalog/compiler.rb +195 -8
  186. data/lib/puppet/indirector/catalog/static_compiler.rb +50 -31
  187. data/lib/puppet/indirector/data_binding/none.rb +4 -1
  188. data/lib/puppet/indirector/face.rb +6 -1
  189. data/lib/puppet/indirector/facts/facter.rb +3 -6
  190. data/lib/puppet/indirector/file_bucket_file/file.rb +137 -25
  191. data/lib/puppet/indirector/file_content/http.rb +15 -0
  192. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  193. data/lib/puppet/indirector/generic_http.rb +16 -0
  194. data/lib/puppet/indirector/hiera.rb +7 -1
  195. data/lib/puppet/indirector/indirection.rb +12 -3
  196. data/lib/puppet/indirector/json.rb +3 -3
  197. data/lib/puppet/indirector/key/ca.rb +2 -2
  198. data/lib/puppet/indirector/key/file.rb +2 -1
  199. data/lib/puppet/indirector/msgpack.rb +2 -2
  200. data/lib/puppet/indirector/node/exec.rb +1 -1
  201. data/lib/puppet/indirector/node/ldap.rb +1 -1
  202. data/lib/puppet/indirector/request.rb +36 -12
  203. data/lib/puppet/indirector/resource_type/parser.rb +10 -3
  204. data/lib/puppet/indirector/rest.rb +80 -5
  205. data/lib/puppet/indirector/ssl_file.rb +24 -3
  206. data/lib/puppet/indirector/terminus.rb +4 -4
  207. data/lib/puppet/info_service/class_information_service.rb +111 -0
  208. data/lib/puppet/info_service.rb +7 -0
  209. data/lib/puppet/interface/documentation.rb +1 -1
  210. data/lib/puppet/interface/face_collection.rb +1 -1
  211. data/lib/puppet/interface.rb +14 -2
  212. data/lib/puppet/loaders.rb +5 -0
  213. data/lib/puppet/metatype/manager.rb +25 -8
  214. data/lib/puppet/module.rb +65 -31
  215. data/lib/puppet/module_tool/applications/application.rb +1 -1
  216. data/lib/puppet/module_tool/applications/builder.rb +5 -4
  217. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  218. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  219. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  220. data/lib/puppet/module_tool/checksums.rb +1 -1
  221. data/lib/puppet/module_tool/errors/installer.rb +2 -2
  222. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  223. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  224. data/lib/puppet/module_tool/metadata.rb +34 -11
  225. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +14 -3
  226. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
  227. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +19 -4
  228. data/lib/puppet/module_tool/skeleton/templates/generator/{tests → examples}/init.pp.erb +2 -2
  229. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
  230. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -2
  231. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  232. data/lib/puppet/module_tool.rb +5 -5
  233. data/lib/puppet/network/auth_config_parser.rb +1 -1
  234. data/lib/puppet/network/authconfig.rb +21 -1
  235. data/lib/puppet/network/authorization.rb +8 -1
  236. data/lib/puppet/network/http/api/indirected_routes.rb +23 -34
  237. data/lib/puppet/network/http/api/master/v3/environment.rb +63 -0
  238. data/lib/puppet/network/http/api/master/v3.rb +7 -1
  239. data/lib/puppet/network/http/compression.rb +2 -1
  240. data/lib/puppet/network/http/connection.rb +2 -0
  241. data/lib/puppet/network/http/error.rb +1 -1
  242. data/lib/puppet/network/http/factory.rb +8 -4
  243. data/lib/puppet/network/http/handler.rb +3 -2
  244. data/lib/puppet/network/http/pool.rb +9 -0
  245. data/lib/puppet/network/http/rack/rest.rb +25 -2
  246. data/lib/puppet/network/http/webrick.rb +2 -1
  247. data/lib/puppet/network/rights.rb +1 -11
  248. data/lib/puppet/node/environment.rb +49 -14
  249. data/lib/puppet/node/facts.rb +1 -1
  250. data/lib/puppet/node.rb +22 -7
  251. data/lib/puppet/parameter/boolean.rb +1 -1
  252. data/lib/puppet/parameter/value.rb +1 -1
  253. data/lib/puppet/parameter.rb +23 -3
  254. data/lib/puppet/parser/ast/pops_bridge.rb +97 -27
  255. data/lib/puppet/parser/ast/resource.rb +5 -0
  256. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  257. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  258. data/lib/puppet/parser/ast.rb +5 -0
  259. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  260. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +60 -0
  261. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  262. data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  263. data/lib/puppet/parser/compiler.rb +325 -42
  264. data/lib/puppet/parser/e4_parser_adapter.rb +13 -12
  265. data/lib/puppet/parser/environment_compiler.rb +201 -0
  266. data/lib/puppet/parser/functions/assert_type.rb +47 -17
  267. data/lib/puppet/parser/functions/binary_file.rb +24 -0
  268. data/lib/puppet/parser/functions/break.rb +39 -0
  269. data/lib/puppet/parser/functions/contain.rb +7 -15
  270. data/lib/puppet/parser/functions/create_resources.rb +39 -23
  271. data/lib/puppet/parser/functions/defined.rb +106 -93
  272. data/lib/puppet/parser/functions/dig.rb +29 -0
  273. data/lib/puppet/parser/functions/each.rb +86 -28
  274. data/lib/puppet/parser/functions/epp.rb +30 -38
  275. data/lib/puppet/parser/functions/filter.rb +60 -24
  276. data/lib/puppet/parser/functions/find_file.rb +28 -0
  277. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  278. data/lib/puppet/parser/functions/hiera.rb +98 -28
  279. data/lib/puppet/parser/functions/hiera_array.rb +86 -29
  280. data/lib/puppet/parser/functions/hiera_hash.rb +96 -31
  281. data/lib/puppet/parser/functions/hiera_include.rb +96 -41
  282. data/lib/puppet/parser/functions/include.rb +4 -8
  283. data/lib/puppet/parser/functions/inline_epp.rb +36 -61
  284. data/lib/puppet/parser/functions/inline_template.rb +2 -2
  285. data/lib/puppet/parser/functions/lest.rb +49 -0
  286. data/lib/puppet/parser/functions/lookup.rb +129 -151
  287. data/lib/puppet/parser/functions/map.rb +56 -21
  288. data/lib/puppet/parser/functions/match.rb +29 -13
  289. data/lib/puppet/parser/functions/new.rb +926 -0
  290. data/lib/puppet/parser/functions/next.rb +38 -0
  291. data/lib/puppet/parser/functions/reduce.rb +98 -61
  292. data/lib/puppet/parser/functions/regsubst.rb +4 -2
  293. data/lib/puppet/parser/functions/require.rb +4 -27
  294. data/lib/puppet/parser/functions/return.rb +71 -0
  295. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  296. data/lib/puppet/parser/functions/scanf.rb +25 -31
  297. data/lib/puppet/parser/functions/slice.rb +18 -25
  298. data/lib/puppet/parser/functions/split.rb +2 -2
  299. data/lib/puppet/parser/functions/step.rb +84 -0
  300. data/lib/puppet/parser/functions/strftime.rb +185 -0
  301. data/lib/puppet/parser/functions/then.rb +73 -0
  302. data/lib/puppet/parser/functions/type.rb +53 -0
  303. data/lib/puppet/parser/functions/with.rb +17 -9
  304. data/lib/puppet/parser/functions.rb +34 -16
  305. data/lib/puppet/parser/resource.rb +149 -35
  306. data/lib/puppet/parser/scope.rb +344 -88
  307. data/lib/puppet/parser/type_loader.rb +1 -1
  308. data/lib/puppet/parser.rb +3 -1
  309. data/lib/puppet/plugins/configuration.rb +11 -2
  310. data/lib/puppet/plugins/data_providers/data_provider.rb +406 -0
  311. data/lib/puppet/plugins/data_providers/registry.rb +51 -0
  312. data/lib/puppet/plugins/data_providers.rb +15 -60
  313. data/lib/puppet/pops/adaptable.rb +4 -4
  314. data/lib/puppet/pops/adapters.rb +114 -31
  315. data/lib/puppet/pops/binder/binder.rb +21 -17
  316. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  317. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  318. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  319. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  320. data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
  321. data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
  322. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  323. data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
  324. data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
  325. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  326. data/lib/puppet/pops/binder/injector.rb +55 -50
  327. data/lib/puppet/pops/binder/key_factory.rb +10 -12
  328. data/lib/puppet/pops/binder/producers.rb +70 -65
  329. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
  330. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
  331. data/lib/puppet/pops/evaluator/access_operator.rb +246 -147
  332. data/lib/puppet/pops/evaluator/callable_signature.rb +7 -0
  333. data/lib/puppet/pops/evaluator/closure.rb +231 -115
  334. data/lib/puppet/pops/evaluator/collector_transformer.rb +44 -15
  335. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  336. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -2
  337. data/lib/puppet/pops/evaluator/compare_operator.rb +69 -12
  338. data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
  339. data/lib/puppet/pops/evaluator/evaluator_impl.rb +194 -106
  340. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  341. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +84 -0
  342. data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  343. data/lib/puppet/pops/evaluator/relationship_operator.rb +18 -11
  344. data/lib/puppet/pops/evaluator/runtime3_converter.rb +60 -51
  345. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
  346. data/lib/puppet/pops/evaluator/runtime3_support.rb +111 -79
  347. data/lib/puppet/pops/functions/dispatch.rb +27 -7
  348. data/lib/puppet/pops/functions/dispatcher.rb +15 -20
  349. data/lib/puppet/pops/functions/function.rb +30 -4
  350. data/lib/puppet/pops/issue_reporter.rb +7 -5
  351. data/lib/puppet/pops/issues.rb +177 -17
  352. data/lib/puppet/pops/label_provider.rb +18 -4
  353. data/lib/puppet/pops/loader/base_loader.rb +74 -20
  354. data/lib/puppet/pops/loader/dependency_loader.rb +27 -2
  355. data/lib/puppet/pops/loader/loader.rb +43 -49
  356. data/lib/puppet/pops/loader/loader_paths.rb +48 -2
  357. data/lib/puppet/pops/loader/module_loaders.rb +53 -20
  358. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  359. data/lib/puppet/pops/loader/predefined_loader.rb +29 -0
  360. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +26 -20
  361. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
  362. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -4
  363. data/lib/puppet/pops/loader/runtime3_type_loader.rb +96 -0
  364. data/lib/puppet/pops/loader/static_loader.rb +139 -38
  365. data/lib/puppet/pops/loader/type_definition_instantiator.rb +93 -0
  366. data/lib/puppet/pops/loader/typed_name.rb +48 -0
  367. data/lib/puppet/pops/loaders.rb +204 -26
  368. data/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
  369. data/lib/puppet/pops/lookup/context.rb +200 -0
  370. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  371. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
  372. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
  373. data/lib/puppet/pops/lookup/data_provider.rb +107 -0
  374. data/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
  375. data/lib/puppet/pops/lookup/explainer.rb +594 -0
  376. data/lib/puppet/pops/lookup/function_provider.rb +110 -0
  377. data/lib/puppet/pops/lookup/global_data_provider.rb +78 -0
  378. data/lib/puppet/pops/lookup/hiera_config.rb +782 -0
  379. data/lib/puppet/pops/lookup/interpolation.rb +153 -0
  380. data/lib/puppet/pops/lookup/invocation.rb +251 -0
  381. data/lib/puppet/pops/lookup/location_resolver.rb +99 -0
  382. data/lib/puppet/pops/lookup/lookup_adapter.rb +510 -0
  383. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  384. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
  385. data/lib/puppet/pops/lookup/module_data_provider.rb +81 -0
  386. data/lib/puppet/pops/lookup/sub_lookup.rb +90 -0
  387. data/lib/puppet/pops/lookup.rb +47 -49
  388. data/lib/puppet/pops/merge_strategy.rb +183 -47
  389. data/lib/puppet/pops/migration/migration_checker.rb +4 -0
  390. data/lib/puppet/pops/model/ast_transformer.rb +8 -1
  391. data/lib/puppet/pops/model/factory.rb +254 -162
  392. data/lib/puppet/pops/model/model.rb +25 -8
  393. data/lib/puppet/pops/model/model_label_provider.rb +28 -6
  394. data/lib/puppet/pops/model/model_meta.rb +45 -2
  395. data/lib/puppet/pops/model/model_tree_dumper.rb +44 -0
  396. data/lib/puppet/pops/parser/code_merger.rb +13 -1
  397. data/lib/puppet/pops/parser/egrammar.ra +150 -32
  398. data/lib/puppet/pops/parser/eparser.rb +1887 -1321
  399. data/lib/puppet/pops/parser/epp_support.rb +15 -9
  400. data/lib/puppet/pops/parser/evaluating_parser.rb +21 -13
  401. data/lib/puppet/pops/parser/heredoc_support.rb +16 -13
  402. data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
  403. data/lib/puppet/pops/parser/lexer2.rb +465 -396
  404. data/lib/puppet/pops/parser/lexer_support.rb +85 -7
  405. data/lib/puppet/pops/parser/locator.rb +63 -9
  406. data/lib/puppet/pops/parser/parser_support.rb +40 -28
  407. data/lib/puppet/pops/parser/slurp_support.rb +23 -14
  408. data/lib/puppet/pops/patterns.rb +16 -1
  409. data/lib/puppet/pops/pcore.rb +96 -0
  410. data/lib/puppet/pops/puppet_stack.rb +43 -0
  411. data/lib/puppet/pops/resource/param.rb +55 -0
  412. data/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
  413. data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
  414. data/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
  415. data/lib/puppet/pops/serialization/abstract_writer.rb +207 -0
  416. data/lib/puppet/pops/serialization/deserializer.rb +77 -0
  417. data/lib/puppet/pops/serialization/extension.rb +157 -0
  418. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  419. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  420. data/lib/puppet/pops/serialization/json.rb +297 -0
  421. data/lib/puppet/pops/serialization/object.rb +71 -0
  422. data/lib/puppet/pops/serialization/rgen.rb +152 -0
  423. data/lib/puppet/pops/serialization/serializer.rb +118 -0
  424. data/lib/puppet/pops/serialization/time_factory.rb +67 -0
  425. data/lib/puppet/pops/serialization.rb +17 -0
  426. data/lib/puppet/pops/time/timespan.rb +718 -0
  427. data/lib/puppet/pops/time/timestamp.rb +148 -0
  428. data/lib/puppet/pops/types/annotatable.rb +36 -0
  429. data/lib/puppet/pops/types/class_loader.rb +25 -23
  430. data/lib/puppet/pops/types/enumeration.rb +9 -27
  431. data/lib/puppet/pops/types/implementation_registry.rb +141 -0
  432. data/lib/puppet/pops/types/iterable.rb +308 -0
  433. data/lib/puppet/pops/types/p_binary_type.rb +220 -0
  434. data/lib/puppet/pops/types/p_meta_type.rb +83 -0
  435. data/lib/puppet/pops/types/p_object_type.rb +886 -0
  436. data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
  437. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +187 -0
  438. data/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
  439. data/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
  440. data/lib/puppet/pops/types/p_timespan_type.rb +141 -0
  441. data/lib/puppet/pops/types/p_timestamp_type.rb +69 -0
  442. data/lib/puppet/pops/types/p_type_set_type.rb +352 -0
  443. data/lib/puppet/pops/types/puppet_object.rb +16 -0
  444. data/lib/puppet/pops/types/recursion_guard.rb +136 -0
  445. data/lib/puppet/pops/types/ruby_generator.rb +275 -0
  446. data/lib/puppet/pops/types/string_converter.rb +1033 -0
  447. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  448. data/lib/puppet/pops/types/type_asserter.rb +21 -19
  449. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  450. data/lib/puppet/pops/types/type_calculator.rb +244 -1287
  451. data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
  452. data/lib/puppet/pops/types/type_factory.rb +222 -169
  453. data/lib/puppet/pops/types/type_formatter.rb +686 -0
  454. data/lib/puppet/pops/types/type_mismatch_describer.rb +1105 -0
  455. data/lib/puppet/pops/types/type_parser.rb +364 -281
  456. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  457. data/lib/puppet/pops/types/types.rb +3286 -307
  458. data/lib/puppet/pops/utils.rb +11 -10
  459. data/lib/puppet/pops/validation/checker4_0.rb +238 -56
  460. data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -5
  461. data/lib/puppet/pops/validation.rb +31 -16
  462. data/lib/puppet/pops/visitor.rb +9 -6
  463. data/lib/puppet/pops.rb +40 -25
  464. data/lib/puppet/property/ensure.rb +1 -1
  465. data/lib/puppet/property.rb +67 -7
  466. data/lib/puppet/provider/aixobject.rb +4 -4
  467. data/lib/puppet/provider/augeas/augeas.rb +57 -2
  468. data/lib/puppet/provider/cron/crontab.rb +1 -1
  469. data/lib/puppet/provider/exec/windows.rb +1 -1
  470. data/lib/puppet/provider/exec.rb +10 -3
  471. data/lib/puppet/provider/group/aix.rb +4 -4
  472. data/lib/puppet/provider/group/directoryservice.rb +10 -0
  473. data/lib/puppet/provider/group/pw.rb +1 -0
  474. data/lib/puppet/provider/group/windows_adsi.rb +15 -3
  475. data/lib/puppet/provider/macauthorization/macauthorization.rb +11 -10
  476. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  477. data/lib/puppet/provider/mcx/mcxcontent.rb +5 -4
  478. data/lib/puppet/provider/mount/parsed.rb +16 -2
  479. data/lib/puppet/provider/nameservice/directoryservice.rb +55 -62
  480. data/lib/puppet/provider/nameservice.rb +23 -8
  481. data/lib/puppet/provider/package/appdmg.rb +7 -6
  482. data/lib/puppet/provider/package/apple.rb +1 -1
  483. data/lib/puppet/provider/package/dnf.rb +46 -0
  484. data/lib/puppet/provider/package/gem.rb +29 -3
  485. data/lib/puppet/provider/package/nim.rb +2 -2
  486. data/lib/puppet/provider/package/openbsd.rb +7 -7
  487. data/lib/puppet/provider/package/pacman.rb +11 -10
  488. data/lib/puppet/provider/package/pip.rb +72 -20
  489. data/lib/puppet/provider/package/pip3.rb +20 -0
  490. data/lib/puppet/provider/package/pkg.rb +12 -8
  491. data/lib/puppet/provider/package/pkgdmg.rb +11 -8
  492. data/lib/puppet/provider/package/pkgin.rb +4 -4
  493. data/lib/puppet/provider/package/pkgng.rb +15 -6
  494. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  495. data/lib/puppet/provider/package/portage.rb +48 -8
  496. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  497. data/lib/puppet/provider/package/rpm.rb +123 -17
  498. data/lib/puppet/provider/package/sun.rb +1 -1
  499. data/lib/puppet/provider/package/tdnf.rb +28 -0
  500. data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
  501. data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
  502. data/lib/puppet/provider/package/windows/package.rb +9 -1
  503. data/lib/puppet/provider/package/windows.rb +1 -1
  504. data/lib/puppet/provider/package/yum.rb +62 -83
  505. data/lib/puppet/provider/package/zypper.rb +19 -0
  506. data/lib/puppet/provider/package.rb +6 -2
  507. data/lib/puppet/provider/parsedfile.rb +2 -2
  508. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +7 -0
  509. data/lib/puppet/provider/selmodule/semodule.rb +20 -16
  510. data/lib/puppet/provider/service/base.rb +4 -3
  511. data/lib/puppet/provider/service/bsd.rb +9 -9
  512. data/lib/puppet/provider/service/daemontools.rb +5 -5
  513. data/lib/puppet/provider/service/debian.rb +14 -5
  514. data/lib/puppet/provider/service/freebsd.rb +1 -1
  515. data/lib/puppet/provider/service/init.rb +20 -3
  516. data/lib/puppet/provider/service/launchd.rb +57 -19
  517. data/lib/puppet/provider/service/rcng.rb +51 -0
  518. data/lib/puppet/provider/service/redhat.rb +2 -1
  519. data/lib/puppet/provider/service/runit.rb +4 -4
  520. data/lib/puppet/provider/service/smf.rb +59 -8
  521. data/lib/puppet/provider/service/src.rb +66 -39
  522. data/lib/puppet/provider/service/systemd.rb +141 -22
  523. data/lib/puppet/provider/service/upstart.rb +1 -1
  524. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  525. data/lib/puppet/provider/sshkey/parsed.rb +20 -10
  526. data/lib/puppet/provider/user/aix.rb +11 -5
  527. data/lib/puppet/provider/user/directoryservice.rb +43 -66
  528. data/lib/puppet/provider/user/hpux.rb +1 -1
  529. data/lib/puppet/provider/user/pw.rb +1 -0
  530. data/lib/puppet/provider/user/user_role_add.rb +19 -2
  531. data/lib/puppet/provider/user/windows_adsi.rb +11 -5
  532. data/lib/puppet/provider/yumrepo/inifile.rb +9 -6
  533. data/lib/puppet/provider/zfs/zfs.rb +2 -2
  534. data/lib/puppet/provider/zone/solaris.rb +6 -3
  535. data/lib/puppet/provider/zpool/zpool.rb +2 -2
  536. data/lib/puppet/provider.rb +9 -7
  537. data/lib/puppet/reference/configuration.rb +13 -5
  538. data/lib/puppet/reference/indirection.rb +1 -1
  539. data/lib/puppet/reference/providers.rb +2 -3
  540. data/lib/puppet/reference/report.rb +9 -12
  541. data/lib/puppet/reference/type.rb +1 -1
  542. data/lib/puppet/reports.rb +5 -1
  543. data/lib/puppet/resource/capability_finder.rb +128 -0
  544. data/lib/puppet/resource/catalog.rb +167 -36
  545. data/lib/puppet/resource/status.rb +30 -5
  546. data/lib/puppet/resource/type.rb +247 -50
  547. data/lib/puppet/resource/type_collection.rb +83 -10
  548. data/lib/puppet/resource.rb +211 -145
  549. data/lib/puppet/settings/base_setting.rb +9 -3
  550. data/lib/puppet/settings/config_file.rb +3 -2
  551. data/lib/puppet/settings/directory_setting.rb +6 -0
  552. data/lib/puppet/settings/environment_conf.rb +26 -6
  553. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  554. data/lib/puppet/settings/file_setting.rb +20 -9
  555. data/lib/puppet/settings/ini_file.rb +2 -2
  556. data/lib/puppet/settings/server_list_setting.rb +20 -0
  557. data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
  558. data/lib/puppet/settings.rb +98 -45
  559. data/lib/puppet/ssl/base.rb +14 -1
  560. data/lib/puppet/ssl/certificate.rb +1 -1
  561. data/lib/puppet/ssl/certificate_authority/interface.rb +166 -26
  562. data/lib/puppet/ssl/certificate_authority.rb +49 -13
  563. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  564. data/lib/puppet/ssl/certificate_request.rb +5 -5
  565. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  566. data/lib/puppet/ssl/configuration.rb +4 -1
  567. data/lib/puppet/ssl/host.rb +26 -4
  568. data/lib/puppet/ssl/inventory.rb +10 -3
  569. data/lib/puppet/ssl/key.rb +7 -3
  570. data/lib/puppet/ssl/oids.rb +43 -3
  571. data/lib/puppet/ssl/validator/default_validator.rb +3 -3
  572. data/lib/puppet/syntax_checkers/base64.rb +41 -0
  573. data/lib/puppet/syntax_checkers/json.rb +0 -2
  574. data/lib/puppet/test/test_helper.rb +21 -7
  575. data/lib/puppet/transaction/additional_resource_generator.rb +101 -8
  576. data/lib/puppet/transaction/event.rb +29 -2
  577. data/lib/puppet/transaction/event_manager.rb +1 -1
  578. data/lib/puppet/transaction/persistence.rb +84 -0
  579. data/lib/puppet/transaction/report.rb +86 -4
  580. data/lib/puppet/transaction/resource_harness.rb +95 -35
  581. data/lib/puppet/transaction.rb +64 -36
  582. data/lib/puppet/type/augeas.rb +13 -4
  583. data/lib/puppet/type/component.rb +11 -0
  584. data/lib/puppet/type/cron.rb +13 -13
  585. data/lib/puppet/type/exec.rb +43 -19
  586. data/lib/puppet/type/file/checksum.rb +1 -0
  587. data/lib/puppet/type/file/checksum_value.rb +53 -0
  588. data/lib/puppet/type/file/content.rb +36 -121
  589. data/lib/puppet/type/file/data_sync.rb +92 -0
  590. data/lib/puppet/type/file/ensure.rb +21 -18
  591. data/lib/puppet/type/file/selcontext.rb +1 -1
  592. data/lib/puppet/type/file/source.rb +121 -34
  593. data/lib/puppet/type/file/target.rb +2 -2
  594. data/lib/puppet/type/file.rb +145 -46
  595. data/lib/puppet/type/filebucket.rb +1 -1
  596. data/lib/puppet/type/group.rb +26 -8
  597. data/lib/puppet/type/host.rb +1 -1
  598. data/lib/puppet/type/interface.rb +8 -3
  599. data/lib/puppet/type/macauthorization.rb +1 -1
  600. data/lib/puppet/type/mount.rb +16 -1
  601. data/lib/puppet/type/notify.rb +1 -1
  602. data/lib/puppet/type/package.rb +32 -12
  603. data/lib/puppet/type/resources.rb +1 -1
  604. data/lib/puppet/type/schedule.rb +5 -5
  605. data/lib/puppet/type/scheduled_task.rb +1 -1
  606. data/lib/puppet/type/service.rb +24 -0
  607. data/lib/puppet/type/ssh_authorized_key.rb +17 -11
  608. data/lib/puppet/type/sshkey.rb +5 -3
  609. data/lib/puppet/type/stage.rb +1 -1
  610. data/lib/puppet/type/tidy.rb +7 -4
  611. data/lib/puppet/type/user.rb +51 -26
  612. data/lib/puppet/type/yumrepo.rb +23 -3
  613. data/lib/puppet/type/zone.rb +6 -6
  614. data/lib/puppet/type.rb +175 -41
  615. data/lib/puppet/util/autoload.rb +16 -11
  616. data/lib/puppet/util/character_encoding.rb +95 -0
  617. data/lib/puppet/util/checksums.rb +74 -31
  618. data/lib/puppet/util/classgen.rb +1 -1
  619. data/lib/puppet/util/command_line/trollop.rb +1 -1
  620. data/lib/puppet/util/command_line.rb +10 -2
  621. data/lib/puppet/util/execution.rb +35 -16
  622. data/lib/puppet/util/feature.rb +1 -1
  623. data/lib/puppet/util/filetype.rb +11 -5
  624. data/lib/puppet/util/http_proxy.rb +132 -0
  625. data/lib/puppet/util/inifile.rb +1 -1
  626. data/lib/puppet/util/instance_loader.rb +1 -1
  627. data/lib/puppet/util/log.rb +28 -1
  628. data/lib/puppet/util/logging.rb +46 -3
  629. data/lib/puppet/util/monkey_patches.rb +20 -7
  630. data/lib/puppet/util/multi_match.rb +51 -0
  631. data/lib/puppet/util/network_device/cisco/device.rb +24 -6
  632. data/lib/puppet/util/network_device/cisco/interface.rb +21 -9
  633. data/lib/puppet/util/network_device/config.rb +1 -1
  634. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  635. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  636. data/lib/puppet/util/plist.rb +151 -0
  637. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  638. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  639. data/lib/puppet/util/profiler.rb +1 -1
  640. data/lib/puppet/util/psych_support.rb +1 -1
  641. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  642. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  643. data/lib/puppet/util/rdoc.rb +2 -2
  644. data/lib/puppet/util/reference.rb +4 -2
  645. data/lib/puppet/util/resource_template.rb +1 -1
  646. data/lib/puppet/util/rubygems.rb +1 -1
  647. data/lib/puppet/util/run_mode.rb +2 -2
  648. data/lib/puppet/util/skip_tags.rb +9 -0
  649. data/lib/puppet/util/splayer.rb +18 -0
  650. data/lib/puppet/util/tagging.rb +8 -2
  651. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  652. data/lib/puppet/util/windows/access_control_entry.rb +2 -2
  653. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  654. data/lib/puppet/util/windows/adsi.rb +97 -32
  655. data/lib/puppet/util/windows/api_types.rb +24 -18
  656. data/lib/puppet/util/windows/com.rb +3 -3
  657. data/lib/puppet/util/windows/error.rb +1 -1
  658. data/lib/puppet/util/windows/file.rb +112 -19
  659. data/lib/puppet/util/windows/principal.rb +190 -0
  660. data/lib/puppet/util/windows/process.rb +88 -11
  661. data/lib/puppet/util/windows/registry.rb +22 -16
  662. data/lib/puppet/util/windows/root_certs.rb +5 -5
  663. data/lib/puppet/util/windows/security.rb +38 -37
  664. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  665. data/lib/puppet/util/windows/sid.rb +84 -15
  666. data/lib/puppet/util/windows/taskscheduler.rb +99 -43
  667. data/lib/puppet/util/windows/user.rb +32 -14
  668. data/lib/puppet/util/windows.rb +5 -0
  669. data/lib/puppet/util/yaml.rb +15 -3
  670. data/lib/puppet/util.rb +125 -23
  671. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  672. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  673. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  674. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  675. data/lib/puppet/vendor/pathspec/README.md +1 -1
  676. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  677. data/lib/puppet/vendor/require_vendored.rb +0 -1
  678. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  679. data/lib/puppet/vendor/rgen_patch.rb +1 -1
  680. data/lib/puppet/vendor/semantic/lib/semantic.rb +4 -6
  681. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  682. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  683. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/module_release.rb +17 -5
  684. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  685. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  686. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  687. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  688. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  689. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  690. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  691. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  692. data/lib/puppet/version.rb +7 -3
  693. data/lib/puppet.rb +86 -2
  694. data/lib/puppet_x.rb +7 -1
  695. data/lib/semver.rb +36 -13
  696. data/locales/config.yaml +29 -0
  697. data/locales/puppet.pot +93 -0
  698. data/man/man5/puppet.conf.5 +13 -13
  699. data/man/man8/extlookup2hiera.8 +1 -1
  700. data/man/man8/puppet-agent.8 +2 -2
  701. data/man/man8/puppet-apply.8 +2 -2
  702. data/man/man8/puppet-ca.8 +2 -2
  703. data/man/man8/puppet-catalog.8 +2 -2
  704. data/man/man8/puppet-cert.8 +2 -2
  705. data/man/man8/puppet-certificate.8 +2 -2
  706. data/man/man8/puppet-certificate_request.8 +2 -2
  707. data/man/man8/puppet-certificate_revocation_list.8 +2 -2
  708. data/man/man8/puppet-config.8 +3 -3
  709. data/man/man8/puppet-describe.8 +1 -1
  710. data/man/man8/puppet-device.8 +1 -1
  711. data/man/man8/puppet-doc.8 +1 -1
  712. data/man/man8/puppet-epp.8 +2 -2
  713. data/man/man8/puppet-facts.8 +2 -2
  714. data/man/man8/puppet-file.8 +2 -2
  715. data/man/man8/puppet-filebucket.8 +2 -2
  716. data/man/man8/puppet-help.8 +2 -2
  717. data/man/man8/puppet-inspect.8 +2 -2
  718. data/man/man8/puppet-key.8 +2 -2
  719. data/man/man8/puppet-man.8 +2 -2
  720. data/man/man8/puppet-master.8 +2 -2
  721. data/man/man8/puppet-module.8 +9 -9
  722. data/man/man8/puppet-node.8 +2 -2
  723. data/man/man8/puppet-parser.8 +2 -2
  724. data/man/man8/puppet-plugin.8 +2 -2
  725. data/man/man8/puppet-report.8 +2 -2
  726. data/man/man8/puppet-resource.8 +2 -2
  727. data/man/man8/puppet-resource_type.8 +2 -2
  728. data/man/man8/puppet-status.8 +3 -3
  729. data/man/man8/puppet.8 +1 -1
  730. data/spec/fixtures/module.tar.gz +0 -0
  731. data/spec/fixtures/unit/application/environments/production/data/common.yaml +22 -0
  732. data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
  733. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +1 -0
  734. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +1 -0
  735. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +10 -0
  736. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +1 -0
  737. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
  738. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
  739. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
  740. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
  741. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
  742. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
  743. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
  744. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
  745. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
  746. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
  747. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
  748. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
  749. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
  750. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
  751. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
  752. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
  753. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
  754. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
  755. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  756. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  757. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
  758. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
  759. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +22 -0
  760. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
  761. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +48 -0
  762. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
  763. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
  764. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
  765. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
  766. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
  767. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +4 -0
  768. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +4 -0
  769. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
  770. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +7 -0
  771. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
  772. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
  773. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +2 -0
  774. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
  775. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +1 -0
  776. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +1 -0
  777. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
  778. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
  779. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +20 -0
  780. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
  781. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
  782. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +4 -0
  783. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +4 -0
  784. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +2 -0
  785. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +7 -0
  786. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +1 -0
  787. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +6 -0
  788. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +5 -0
  789. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +2 -0
  790. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +9 -0
  791. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +4 -0
  792. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +5 -0
  793. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +3 -0
  794. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +9 -0
  795. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +2 -1
  796. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +2 -1
  797. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  798. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  799. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  800. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  801. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  802. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +2 -0
  803. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
  804. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  805. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  806. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  807. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  808. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +2 -0
  809. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  810. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +5 -0
  811. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +2 -0
  812. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +9 -0
  813. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +1 -0
  814. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +5 -0
  815. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +2 -0
  816. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +9 -0
  817. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +1 -0
  818. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +5 -0
  819. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +2 -0
  820. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +9 -0
  821. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +2 -0
  822. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  823. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  824. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +9 -0
  825. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +4 -0
  826. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +8 -0
  827. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
  828. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +9 -0
  829. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
  830. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +3 -0
  831. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +9 -0
  832. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
  833. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
  834. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +3 -0
  835. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +9 -0
  836. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  837. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  838. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +3 -0
  839. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +6 -0
  840. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +5 -0
  841. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +8 -0
  842. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  843. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +5 -0
  844. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +5 -0
  845. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +5 -0
  846. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +5 -0
  847. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +5 -0
  848. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +5 -0
  849. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +5 -0
  850. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +5 -0
  851. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +87 -0
  852. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/metadata.json +2 -1
  853. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  854. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  855. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  856. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  857. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  858. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +195 -0
  859. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
  860. data/spec/fixtures/unit/provider/service/smf/svcs.out +4 -3
  861. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  862. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
  863. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
  864. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
  865. 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
  866. 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
  867. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  868. 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
  869. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  870. 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
  871. 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
  872. data/spec/integration/agent/logging_spec.rb +15 -14
  873. data/spec/integration/application/apply_spec.rb +383 -29
  874. data/spec/integration/application/doc_spec.rb +0 -0
  875. data/spec/integration/application/lookup_spec.rb +155 -0
  876. data/spec/integration/configurer_spec.rb +0 -0
  877. data/spec/integration/data_binding_spec.rb +195 -0
  878. data/spec/integration/defaults_spec.rb +27 -2
  879. data/spec/integration/directory_environments_spec.rb +16 -0
  880. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  881. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  882. data/spec/integration/environments/settings_spec.rb +32 -4
  883. data/spec/integration/faces/ca_spec.rb +0 -0
  884. data/spec/integration/faces/config_spec.rb +80 -0
  885. data/spec/integration/faces/documentation_spec.rb +1 -1
  886. data/spec/integration/file_bucket/file_spec.rb +2 -2
  887. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  888. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  889. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  890. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  891. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  892. data/spec/integration/indirector/facts/facter_spec.rb +38 -0
  893. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
  894. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
  895. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  896. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  897. data/spec/integration/network/formats_spec.rb +0 -0
  898. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  899. data/spec/integration/node/environment_spec.rb +34 -0
  900. data/spec/integration/node/facts_spec.rb +0 -0
  901. data/spec/integration/node_spec.rb +0 -0
  902. data/spec/integration/parser/catalog_spec.rb +14 -2
  903. data/spec/integration/parser/collection_spec.rb +18 -0
  904. data/spec/integration/parser/compiler_spec.rb +225 -864
  905. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  906. data/spec/integration/parser/parameter_defaults_spec.rb +358 -0
  907. data/spec/integration/parser/pcore_resource_spec.rb +245 -0
  908. data/spec/integration/parser/resource_expressions_spec.rb +9 -7
  909. data/spec/integration/parser/scope_spec.rb +20 -2
  910. data/spec/integration/parser/undef_param_spec.rb +9 -1
  911. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  912. data/spec/integration/provider/mount_spec.rb +23 -36
  913. data/spec/integration/provider/service/init_spec.rb +0 -0
  914. data/spec/integration/provider/service/windows_spec.rb +3 -2
  915. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  916. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  917. data/spec/integration/reference/providers_spec.rb +0 -0
  918. data/spec/integration/reports_spec.rb +0 -0
  919. data/spec/integration/resource/catalog_spec.rb +1 -1
  920. data/spec/integration/resource/type_collection_spec.rb +8 -0
  921. data/spec/integration/ssl/autosign_spec.rb +18 -3
  922. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  923. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  924. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  925. data/spec/integration/ssl/host_spec.rb +0 -1
  926. data/spec/integration/ssl/key_spec.rb +104 -0
  927. data/spec/integration/test/test_helper_spec.rb +32 -0
  928. data/spec/integration/transaction/report_spec.rb +682 -0
  929. data/spec/integration/transaction_spec.rb +125 -1
  930. data/spec/integration/type/exec_spec.rb +0 -0
  931. data/spec/integration/type/file_spec.rb +237 -12
  932. data/spec/integration/type/package_spec.rb +72 -1
  933. data/spec/integration/type/tidy_spec.rb +21 -9
  934. data/spec/integration/type/user_spec.rb +13 -6
  935. data/spec/integration/type_spec.rb +0 -0
  936. data/spec/integration/util/autoload_spec.rb +0 -0
  937. data/spec/integration/util/execution_spec.rb +30 -0
  938. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  939. data/spec/integration/util/settings_spec.rb +26 -0
  940. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  941. data/spec/integration/util/windows/principal_spec.rb +250 -0
  942. data/spec/integration/util/windows/process_spec.rb +35 -2
  943. data/spec/{unit → integration}/util/windows/registry_spec.rb +92 -2
  944. data/spec/integration/util/windows/security_spec.rb +61 -16
  945. data/spec/integration/util/windows/user_spec.rb +27 -5
  946. data/spec/integration/util_spec.rb +49 -27
  947. data/spec/lib/matchers/include_in_order.rb +2 -3
  948. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
  949. data/spec/lib/puppet/face/basetest.rb +0 -0
  950. data/spec/lib/puppet/face/huzzah.rb +0 -0
  951. data/spec/lib/puppet_spec/compiler.rb +32 -3
  952. data/spec/lib/puppet_spec/files.rb +16 -2
  953. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  954. data/spec/lib/puppet_spec/language.rb +3 -1
  955. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  956. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  957. data/spec/lib/puppet_spec/network.rb +12 -8
  958. data/spec/lib/puppet_spec/pops.rb +13 -0
  959. data/spec/lib/puppet_spec/unindent.rb +5 -0
  960. data/spec/lib/puppet_spec/verbose.rb +0 -0
  961. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  962. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  963. data/spec/shared_behaviours/file_serving.rb +0 -0
  964. data/spec/shared_behaviours/iterative_functions.rb +9 -9
  965. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  966. data/spec/shared_behaviours/path_parameters.rb +0 -0
  967. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  968. data/spec/shared_contexts/types_setup.rb +106 -0
  969. data/spec/shared_examples/rhel_package_provider.rb +357 -0
  970. data/spec/spec_helper.rb +23 -2
  971. data/spec/unit/agent/locker_spec.rb +4 -4
  972. data/spec/unit/agent_spec.rb +12 -46
  973. data/spec/unit/application/agent_spec.rb +15 -0
  974. data/spec/unit/application/apply_spec.rb +31 -1
  975. data/spec/unit/application/cert_spec.rb +20 -0
  976. data/spec/unit/application/certificate_spec.rb +0 -0
  977. data/spec/unit/application/config_spec.rb +0 -0
  978. data/spec/unit/application/describe_spec.rb +0 -0
  979. data/spec/unit/application/device_spec.rb +0 -0
  980. data/spec/unit/application/doc_spec.rb +0 -0
  981. data/spec/unit/application/face_base_spec.rb +16 -0
  982. data/spec/unit/application/facts_spec.rb +0 -0
  983. data/spec/unit/application/filebucket_spec.rb +88 -2
  984. data/spec/unit/application/indirection_base_spec.rb +0 -0
  985. data/spec/unit/application/inspect_spec.rb +28 -10
  986. data/spec/unit/application/lookup_spec.rb +532 -0
  987. data/spec/unit/application/master_spec.rb +2 -2
  988. data/spec/unit/application/resource_spec.rb +0 -0
  989. data/spec/unit/application_spec.rb +3 -3
  990. data/spec/unit/capability_spec.rb +416 -0
  991. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  992. data/spec/unit/configurer/downloader_spec.rb +5 -5
  993. data/spec/unit/configurer/fact_handler_spec.rb +0 -0
  994. data/spec/unit/configurer/plugin_handler_spec.rb +18 -15
  995. data/spec/unit/configurer_spec.rb +336 -39
  996. data/spec/unit/confine/exists_spec.rb +0 -0
  997. data/spec/unit/confine/false_spec.rb +0 -0
  998. data/spec/unit/confine/feature_spec.rb +0 -0
  999. data/spec/unit/confine/true_spec.rb +0 -0
  1000. data/spec/unit/confine/variable_spec.rb +0 -0
  1001. data/spec/unit/confine_collection_spec.rb +0 -0
  1002. data/spec/unit/confine_spec.rb +0 -0
  1003. data/spec/unit/confiner_spec.rb +0 -0
  1004. data/spec/unit/context/trusted_information_spec.rb +24 -1
  1005. data/spec/unit/daemon_spec.rb +18 -8
  1006. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  1007. data/spec/unit/data_providers/function_data_provider_spec.rb +21 -3
  1008. data/spec/unit/data_providers/hiera_data_provider_spec.rb +361 -0
  1009. data/spec/unit/defaults_spec.rb +47 -0
  1010. data/spec/unit/environments_spec.rb +26 -4
  1011. data/spec/unit/etc_spec.rb +234 -0
  1012. data/spec/unit/external/pson_spec.rb +0 -0
  1013. data/spec/unit/face/ca_spec.rb +10 -0
  1014. data/spec/unit/face/catalog_spec.rb +0 -0
  1015. data/spec/unit/face/certificate_request_spec.rb +10 -0
  1016. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  1017. data/spec/unit/face/certificate_spec.rb +10 -2
  1018. data/spec/unit/face/config_spec.rb +47 -0
  1019. data/spec/unit/face/epp_face_spec.rb +24 -5
  1020. data/spec/unit/face/facts_spec.rb +0 -0
  1021. data/spec/unit/face/file_spec.rb +4 -0
  1022. data/spec/unit/face/generate_spec.rb +230 -0
  1023. data/spec/unit/face/help_spec.rb +70 -0
  1024. data/spec/unit/face/key_spec.rb +10 -0
  1025. data/spec/unit/face/module/search_spec.rb +1 -1
  1026. data/spec/unit/face/node_spec.rb +1 -1
  1027. data/spec/unit/face/parser_spec.rb +49 -2
  1028. data/spec/unit/face/plugin_spec.rb +29 -4
  1029. data/spec/unit/face/status_spec.rb +10 -0
  1030. data/spec/unit/face_spec.rb +0 -0
  1031. data/spec/unit/file_bucket/dipper_spec.rb +210 -1
  1032. data/spec/unit/file_bucket/file_spec.rb +0 -0
  1033. data/spec/unit/file_serving/base_spec.rb +0 -0
  1034. data/spec/unit/file_serving/configuration/parser_spec.rb +25 -30
  1035. data/spec/unit/file_serving/configuration_spec.rb +1 -1
  1036. data/spec/unit/file_serving/content_spec.rb +0 -0
  1037. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  1038. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  1039. data/spec/unit/file_serving/metadata_spec.rb +50 -0
  1040. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  1041. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  1042. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  1043. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  1044. data/spec/unit/file_serving/mount_spec.rb +0 -0
  1045. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -0
  1046. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  1047. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  1048. data/spec/unit/file_system_spec.rb +335 -6
  1049. data/spec/unit/forge/repository_spec.rb +27 -0
  1050. data/spec/unit/functions/assert_type_spec.rb +48 -8
  1051. data/spec/unit/functions/binary_file_spec.rb +46 -0
  1052. data/spec/unit/functions/break_spec.rb +89 -0
  1053. data/spec/unit/{parser/functions → functions}/contain_spec.rb +68 -3
  1054. data/spec/unit/functions/defined_spec.rb +2 -2
  1055. data/spec/unit/functions/dig_spec.rb +58 -0
  1056. data/spec/unit/functions/epp_spec.rb +17 -9
  1057. data/spec/unit/functions/filter_spec.rb +18 -0
  1058. data/spec/unit/functions/find_file_spec.rb +69 -0
  1059. data/spec/unit/functions/hiera_spec.rb +447 -47
  1060. data/spec/unit/functions/include_spec.rb +175 -0
  1061. data/spec/unit/functions/inline_epp_spec.rb +4 -4
  1062. data/spec/unit/functions/lest_spec.rb +34 -0
  1063. data/spec/unit/functions/logging_spec.rb +54 -0
  1064. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  1065. data/spec/unit/functions/lookup_spec.rb +2904 -265
  1066. data/spec/unit/functions/match_spec.rb +2 -2
  1067. data/spec/unit/functions/new_spec.rb +694 -0
  1068. data/spec/unit/functions/next_spec.rb +93 -0
  1069. data/spec/unit/functions/regsubst_spec.rb +26 -9
  1070. data/spec/unit/functions/require_spec.rb +83 -0
  1071. data/spec/unit/functions/return_spec.rb +105 -0
  1072. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  1073. data/spec/unit/functions/scanf_spec.rb +1 -1
  1074. data/spec/unit/{parser/functions → functions}/shared.rb +15 -12
  1075. data/spec/unit/functions/split_spec.rb +3 -3
  1076. data/spec/unit/functions/step_spec.rb +113 -0
  1077. data/spec/unit/functions/strftime_spec.rb +152 -0
  1078. data/spec/unit/functions/then_spec.rb +40 -0
  1079. data/spec/unit/functions/type_spec.rb +35 -0
  1080. data/spec/unit/functions/unwrap_spec.rb +29 -0
  1081. data/spec/unit/functions/versioncmp_spec.rb +36 -0
  1082. data/spec/unit/functions4_spec.rb +270 -79
  1083. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  1084. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  1085. data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
  1086. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  1087. data/spec/unit/hiera/scope_spec.rb +6 -3
  1088. data/spec/unit/hiera_puppet_spec.rb +49 -8
  1089. data/spec/unit/indirector/catalog/compiler_spec.rb +752 -8
  1090. data/spec/unit/indirector/catalog/json_spec.rb +0 -0
  1091. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  1092. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  1093. data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
  1094. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  1095. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  1096. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  1097. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  1098. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  1099. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  1100. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  1101. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  1102. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  1103. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  1104. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  1105. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  1106. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  1107. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  1108. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  1109. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  1110. data/spec/unit/indirector/code_spec.rb +0 -0
  1111. data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
  1112. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  1113. data/spec/unit/indirector/envelope_spec.rb +0 -0
  1114. data/spec/unit/indirector/exec_spec.rb +0 -0
  1115. data/spec/unit/indirector/face_spec.rb +10 -2
  1116. data/spec/unit/indirector/facts/facter_spec.rb +3 -10
  1117. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  1118. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  1119. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  1120. data/spec/unit/indirector/file_bucket_file/file_spec.rb +86 -4
  1121. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  1122. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  1123. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  1124. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  1125. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  1126. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  1127. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  1128. data/spec/unit/indirector/file_server_spec.rb +0 -0
  1129. data/spec/unit/indirector/indirection_spec.rb +13 -2
  1130. data/spec/unit/indirector/json_spec.rb +1 -1
  1131. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  1132. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  1133. data/spec/unit/indirector/key/file_spec.rb +1 -1
  1134. data/spec/unit/indirector/ldap_spec.rb +0 -0
  1135. data/spec/unit/indirector/memory_spec.rb +0 -0
  1136. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  1137. data/spec/unit/indirector/node/exec_spec.rb +0 -0
  1138. data/spec/unit/indirector/node/ldap_spec.rb +0 -0
  1139. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  1140. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  1141. data/spec/unit/indirector/node/plain_spec.rb +0 -0
  1142. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  1143. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  1144. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  1145. data/spec/unit/indirector/plain_spec.rb +0 -0
  1146. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  1147. data/spec/unit/indirector/report/processor_spec.rb +0 -0
  1148. data/spec/unit/indirector/report/rest_spec.rb +0 -0
  1149. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  1150. data/spec/unit/indirector/request_spec.rb +17 -8
  1151. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  1152. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  1153. data/spec/unit/indirector/resource_type/parser_spec.rb +5 -0
  1154. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
  1155. data/spec/unit/indirector/rest_spec.rb +107 -9
  1156. data/spec/unit/indirector/ssl_file_spec.rb +4 -4
  1157. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  1158. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  1159. data/spec/unit/indirector/terminus_spec.rb +0 -0
  1160. data/spec/unit/indirector/yaml_spec.rb +1 -1
  1161. data/spec/unit/indirector_spec.rb +0 -0
  1162. data/spec/unit/info_service_spec.rb +298 -0
  1163. data/spec/unit/interface/action_builder_spec.rb +0 -0
  1164. data/spec/unit/interface/action_manager_spec.rb +0 -0
  1165. data/spec/unit/interface/action_spec.rb +0 -0
  1166. data/spec/unit/interface/documentation_spec.rb +0 -0
  1167. data/spec/unit/interface/face_collection_spec.rb +0 -0
  1168. data/spec/unit/interface/option_builder_spec.rb +0 -0
  1169. data/spec/unit/interface/option_spec.rb +0 -0
  1170. data/spec/unit/interface_spec.rb +27 -0
  1171. data/spec/unit/man_spec.rb +1 -1
  1172. data/spec/unit/module_spec.rb +118 -74
  1173. data/spec/unit/module_tool/application_spec.rb +1 -1
  1174. data/spec/unit/module_tool/applications/builder_spec.rb +44 -9
  1175. data/spec/unit/module_tool/applications/installer_spec.rb +11 -2
  1176. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  1177. data/spec/unit/module_tool/applications/upgrader_spec.rb +9 -1
  1178. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  1179. data/spec/unit/module_tool/metadata_spec.rb +31 -2
  1180. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  1181. data/spec/unit/module_tool_spec.rb +3 -3
  1182. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  1183. data/spec/unit/network/authconfig_spec.rb +62 -32
  1184. data/spec/unit/network/authorization_spec.rb +30 -2
  1185. data/spec/unit/network/authstore_spec.rb +2 -2
  1186. data/spec/unit/network/format_handler_spec.rb +0 -0
  1187. data/spec/unit/network/format_spec.rb +0 -0
  1188. data/spec/unit/network/formats_spec.rb +0 -0
  1189. data/spec/unit/network/http/api/indirected_routes_spec.rb +70 -71
  1190. data/spec/unit/network/http/api/master/v3/environment_spec.rb +60 -0
  1191. data/spec/unit/network/http/api/master/v3_spec.rb +22 -4
  1192. data/spec/unit/network/http/compression_spec.rb +40 -9
  1193. data/spec/unit/network/http/connection_spec.rb +25 -19
  1194. data/spec/unit/network/http/error_spec.rb +2 -1
  1195. data/spec/unit/network/http/factory_spec.rb +18 -0
  1196. data/spec/unit/network/http/handler_spec.rb +11 -8
  1197. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  1198. data/spec/unit/network/http/pool_spec.rb +30 -0
  1199. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  1200. data/spec/unit/network/http/rack_spec.rb +0 -0
  1201. data/spec/unit/network/http/session_spec.rb +0 -0
  1202. data/spec/unit/network/http/site_spec.rb +0 -0
  1203. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  1204. data/spec/unit/network/http/webrick_spec.rb +1 -1
  1205. data/spec/unit/network/http_pool_spec.rb +0 -0
  1206. data/spec/unit/network/http_spec.rb +0 -0
  1207. data/spec/unit/network/resolver_spec.rb +0 -0
  1208. data/spec/unit/network/rights_spec.rb +4 -4
  1209. data/spec/unit/network/server_spec.rb +0 -0
  1210. data/spec/unit/node/environment_spec.rb +10 -0
  1211. data/spec/unit/node/facts_spec.rb +0 -0
  1212. data/spec/unit/node_spec.rb +35 -0
  1213. data/spec/unit/other/selinux_spec.rb +0 -0
  1214. data/spec/unit/parameter/path_spec.rb +0 -0
  1215. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  1216. data/spec/unit/parameter/value_spec.rb +0 -0
  1217. data/spec/unit/parameter_spec.rb +11 -0
  1218. data/spec/unit/parser/ast/leaf_spec.rb +1 -1
  1219. data/spec/unit/parser/compiler_spec.rb +134 -33
  1220. data/spec/unit/parser/environment_compiler_spec.rb +688 -0
  1221. data/spec/unit/parser/files_spec.rb +0 -0
  1222. data/spec/unit/parser/functions/create_resources_spec.rb +86 -5
  1223. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  1224. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  1225. data/spec/unit/parser/functions/file_spec.rb +0 -0
  1226. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -2
  1227. data/spec/unit/parser/functions/generate_spec.rb +3 -12
  1228. data/spec/unit/parser/functions/hiera_array_spec.rb +1 -1
  1229. data/spec/unit/parser/functions/hiera_hash_spec.rb +1 -1
  1230. data/spec/unit/parser/functions/hiera_include_spec.rb +1 -1
  1231. data/spec/unit/parser/functions/hiera_spec.rb +1 -1
  1232. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  1233. data/spec/unit/parser/functions/lookup_spec.rb +1 -1
  1234. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  1235. data/spec/unit/parser/functions/regsubst_spec.rb +1 -1
  1236. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  1237. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  1238. data/spec/unit/parser/functions/split_spec.rb +1 -1
  1239. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  1240. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  1241. data/spec/unit/parser/functions/template_spec.rb +0 -0
  1242. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  1243. data/spec/unit/parser/functions_spec.rb +0 -0
  1244. data/spec/unit/parser/relationship_spec.rb +0 -0
  1245. data/spec/unit/parser/resource/param_spec.rb +0 -0
  1246. data/spec/unit/parser/resource_spec.rb +31 -32
  1247. data/spec/unit/parser/scope_spec.rb +83 -16
  1248. data/spec/unit/parser/templatewrapper_spec.rb +0 -0
  1249. data/spec/unit/parser/type_loader_spec.rb +0 -0
  1250. data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
  1251. data/spec/unit/pops/binder/injector_spec.rb +3 -3
  1252. data/spec/unit/pops/evaluator/access_ops_spec.rb +115 -19
  1253. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +170 -0
  1254. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
  1255. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  1256. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +76 -23
  1257. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +29 -25
  1258. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  1259. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
  1260. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +133 -0
  1261. data/spec/unit/pops/evaluator/variables_spec.rb +1 -1
  1262. data/spec/unit/pops/label_provider_spec.rb +5 -1
  1263. data/spec/unit/pops/loaders/dependency_loader_spec.rb +66 -1
  1264. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  1265. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  1266. data/spec/unit/pops/loaders/loaders_spec.rb +323 -27
  1267. data/spec/unit/pops/loaders/module_loaders_spec.rb +63 -2
  1268. data/spec/unit/pops/loaders/static_loader_spec.rb +83 -18
  1269. data/spec/unit/pops/lookup/context_spec.rb +334 -0
  1270. data/spec/unit/pops/lookup/interpolation_spec.rb +333 -0
  1271. data/spec/unit/pops/lookup/lookup_spec.rb +262 -0
  1272. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  1273. data/spec/unit/pops/parser/lexer2_spec.rb +236 -10
  1274. data/spec/unit/pops/parser/parse_application_spec.rb +35 -0
  1275. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +31 -0
  1276. data/spec/unit/pops/parser/parse_calls_spec.rb +25 -0
  1277. data/spec/unit/pops/parser/parse_capabilities_spec.rb +40 -0
  1278. data/spec/unit/pops/parser/parse_functions_spec.rb +19 -0
  1279. data/spec/unit/pops/parser/parse_lambda_spec.rb +19 -0
  1280. data/spec/unit/pops/parser/parse_site_spec.rb +51 -0
  1281. data/spec/unit/pops/parser/parser_rspec_helper.rb +6 -0
  1282. data/spec/unit/pops/parser/parser_spec.rb +28 -0
  1283. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  1284. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  1285. data/spec/unit/pops/resource/resource_type_impl_spec.rb +111 -0
  1286. data/spec/unit/pops/serialization/packer_spec.rb +154 -0
  1287. data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
  1288. data/spec/unit/pops/serialization/serialization_spec.rb +314 -0
  1289. data/spec/unit/pops/time/timespan_spec.rb +121 -0
  1290. data/spec/unit/pops/types/enumeration_spec.rb +13 -12
  1291. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  1292. data/spec/unit/pops/types/p_binary_type_spec.rb +243 -0
  1293. data/spec/unit/pops/types/p_object_type_spec.rb +1167 -0
  1294. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +327 -0
  1295. data/spec/unit/pops/types/p_sensitive_type_spec.rb +169 -0
  1296. data/spec/unit/pops/types/p_timespan_type_spec.rb +273 -0
  1297. data/spec/unit/pops/types/p_timestamp_type_spec.rb +311 -0
  1298. data/spec/unit/pops/types/p_type_set_type_spec.rb +453 -0
  1299. data/spec/unit/pops/types/recursion_guard_spec.rb +93 -0
  1300. data/spec/unit/pops/types/ruby_generator_spec.rb +625 -0
  1301. data/spec/unit/pops/types/string_converter_spec.rb +1029 -0
  1302. data/spec/unit/pops/types/type_acceptor_spec.rb +106 -0
  1303. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  1304. data/spec/unit/pops/types/type_calculator_spec.rb +965 -934
  1305. data/spec/unit/pops/types/type_factory_spec.rb +132 -91
  1306. data/spec/unit/pops/types/type_formatter_spec.rb +396 -0
  1307. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +228 -0
  1308. data/spec/unit/pops/types/type_parser_spec.rb +203 -36
  1309. data/spec/unit/pops/types/types_spec.rb +599 -0
  1310. data/spec/unit/pops/validator/validator_spec.rb +400 -18
  1311. data/spec/unit/property/ensure_spec.rb +0 -0
  1312. data/spec/unit/property/keyvalue_spec.rb +0 -0
  1313. data/spec/unit/property/list_spec.rb +0 -0
  1314. data/spec/unit/property/ordered_list_spec.rb +0 -0
  1315. data/spec/unit/property_spec.rb +49 -12
  1316. data/spec/unit/provider/augeas/augeas_spec.rb +59 -0
  1317. data/spec/unit/provider/cisco_spec.rb +0 -0
  1318. data/spec/unit/provider/command_spec.rb +0 -0
  1319. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  1320. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  1321. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  1322. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  1323. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  1324. data/spec/unit/provider/exec_spec.rb +0 -0
  1325. data/spec/unit/provider/file/posix_spec.rb +0 -0
  1326. data/spec/unit/provider/file/windows_spec.rb +0 -0
  1327. data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
  1328. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  1329. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  1330. data/spec/unit/provider/group/pw_spec.rb +0 -0
  1331. data/spec/unit/provider/group/windows_adsi_spec.rb +31 -9
  1332. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  1333. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  1334. data/spec/unit/provider/ldap_spec.rb +0 -0
  1335. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  1336. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  1337. data/spec/unit/provider/mount/parsed_spec.rb +0 -0
  1338. data/spec/unit/provider/mount_spec.rb +0 -0
  1339. data/spec/unit/provider/naginator_spec.rb +0 -0
  1340. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  1341. data/spec/unit/provider/nameservice_spec.rb +54 -12
  1342. data/spec/unit/provider/network_device_spec.rb +0 -0
  1343. data/spec/unit/provider/package/aix_spec.rb +0 -0
  1344. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  1345. data/spec/unit/provider/package/apt_spec.rb +0 -0
  1346. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  1347. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1348. data/spec/unit/provider/package/base_spec.rb +18 -0
  1349. data/spec/unit/provider/package/dnf_spec.rb +30 -0
  1350. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1351. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  1352. data/spec/unit/provider/package/gem_spec.rb +77 -0
  1353. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  1354. data/spec/unit/provider/package/macports_spec.rb +0 -0
  1355. data/spec/unit/provider/package/nim_spec.rb +6 -6
  1356. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  1357. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  1358. data/spec/unit/provider/package/pacman_spec.rb +55 -0
  1359. data/spec/unit/provider/package/pip3_spec.rb +22 -0
  1360. data/spec/unit/provider/package/pip_spec.rb +164 -46
  1361. data/spec/unit/provider/package/pkg_spec.rb +139 -99
  1362. data/spec/unit/provider/package/pkgdmg_spec.rb +32 -8
  1363. data/spec/unit/provider/package/pkgin_spec.rb +23 -13
  1364. data/spec/unit/provider/package/pkgng_spec.rb +16 -2
  1365. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  1366. data/spec/unit/provider/package/portage_spec.rb +64 -8
  1367. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  1368. data/spec/unit/provider/package/rpm_spec.rb +170 -12
  1369. data/spec/unit/provider/package/sun_spec.rb +0 -0
  1370. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  1371. data/spec/unit/provider/package/windows/package_spec.rb +45 -1
  1372. data/spec/unit/provider/package/windows_spec.rb +8 -2
  1373. data/spec/unit/provider/package/yum_spec.rb +29 -466
  1374. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  1375. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  1376. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +211 -0
  1377. data/spec/unit/provider/selboolean_spec.rb +0 -0
  1378. data/spec/unit/provider/selmodule_spec.rb +0 -0
  1379. data/spec/unit/provider/service/base_spec.rb +6 -0
  1380. data/spec/unit/provider/service/bsd_spec.rb +130 -0
  1381. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  1382. data/spec/unit/provider/service/debian_spec.rb +34 -4
  1383. data/spec/unit/provider/service/freebsd_spec.rb +16 -0
  1384. data/spec/unit/provider/service/gentoo_spec.rb +7 -0
  1385. data/spec/unit/provider/service/init_spec.rb +24 -1
  1386. data/spec/unit/provider/service/launchd_spec.rb +124 -25
  1387. data/spec/unit/provider/service/openbsd_spec.rb +0 -0
  1388. data/spec/unit/provider/service/openrc_spec.rb +7 -0
  1389. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  1390. data/spec/unit/provider/service/rcng_spec.rb +41 -0
  1391. data/spec/unit/provider/service/redhat_spec.rb +8 -1
  1392. data/spec/unit/provider/service/runit_spec.rb +0 -0
  1393. data/spec/unit/provider/service/smf_spec.rb +77 -13
  1394. data/spec/unit/provider/service/src_spec.rb +31 -4
  1395. data/spec/unit/provider/service/systemd_spec.rb +228 -39
  1396. data/spec/unit/provider/service/upstart_spec.rb +64 -0
  1397. data/spec/unit/provider/service/windows_spec.rb +0 -0
  1398. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -1
  1399. data/spec/unit/provider/sshkey/parsed_spec.rb +42 -18
  1400. data/spec/unit/provider/user/aix_spec.rb +7 -0
  1401. data/spec/unit/provider/user/directoryservice_spec.rb +164 -83
  1402. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  1403. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  1404. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  1405. data/spec/unit/provider/user/pw_spec.rb +0 -0
  1406. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  1407. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  1408. data/spec/unit/provider/user/windows_adsi_spec.rb +30 -6
  1409. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  1410. data/spec/unit/provider/yumrepo/inifile_spec.rb +16 -0
  1411. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  1412. data/spec/unit/provider/zone/solaris_spec.rb +64 -12
  1413. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  1414. data/spec/unit/provider_spec.rb +0 -0
  1415. data/spec/unit/puppet_spec.rb +15 -1
  1416. data/spec/unit/relationship_spec.rb +0 -0
  1417. data/spec/unit/reports/http_spec.rb +0 -0
  1418. data/spec/unit/reports/store_spec.rb +0 -0
  1419. data/spec/unit/reports_spec.rb +10 -0
  1420. data/spec/unit/resource/capability_finder_spec.rb +147 -0
  1421. data/spec/unit/resource/catalog_spec.rb +235 -10
  1422. data/spec/unit/resource/status_spec.rb +0 -0
  1423. data/spec/unit/resource/type_collection_spec.rb +23 -2
  1424. data/spec/unit/resource/type_spec.rb +169 -12
  1425. data/spec/unit/resource_spec.rb +137 -48
  1426. data/spec/unit/semver_spec.rb +241 -0
  1427. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  1428. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  1429. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  1430. data/spec/unit/settings/file_setting_spec.rb +37 -0
  1431. data/spec/unit/settings/ini_file_spec.rb +58 -1
  1432. data/spec/unit/settings/path_setting_spec.rb +0 -0
  1433. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  1434. data/spec/unit/settings_spec.rb +105 -3
  1435. data/spec/unit/ssl/base_spec.rb +9 -0
  1436. data/spec/unit/ssl/certificate_authority/interface_spec.rb +180 -13
  1437. data/spec/unit/ssl/certificate_authority_spec.rb +82 -28
  1438. data/spec/unit/ssl/certificate_factory_spec.rb +2 -2
  1439. data/spec/unit/ssl/certificate_request_attributes_spec.rb +6 -0
  1440. data/spec/unit/ssl/certificate_request_spec.rb +4 -5
  1441. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  1442. data/spec/unit/ssl/certificate_spec.rb +1 -1
  1443. data/spec/unit/ssl/configuration_spec.rb +11 -2
  1444. data/spec/unit/ssl/host_spec.rb +3 -3
  1445. data/spec/unit/ssl/inventory_spec.rb +27 -3
  1446. data/spec/unit/ssl/key_spec.rb +7 -7
  1447. data/spec/unit/ssl/oids_spec.rb +24 -13
  1448. data/spec/unit/status_spec.rb +0 -0
  1449. data/spec/unit/transaction/additional_resource_generator_spec.rb +160 -31
  1450. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  1451. data/spec/unit/transaction/event_spec.rb +3 -1
  1452. data/spec/unit/transaction/persistence_spec.rb +178 -0
  1453. data/spec/unit/transaction/report_spec.rb +138 -2
  1454. data/spec/unit/transaction/resource_harness_spec.rb +81 -37
  1455. data/spec/unit/transaction_spec.rb +50 -0
  1456. data/spec/unit/type/augeas_spec.rb +0 -0
  1457. data/spec/unit/type/component_spec.rb +0 -0
  1458. data/spec/unit/type/computer_spec.rb +0 -0
  1459. data/spec/unit/type/cron_spec.rb +0 -0
  1460. data/spec/unit/type/exec_spec.rb +57 -12
  1461. data/spec/unit/type/file/checksum_spec.rb +6 -0
  1462. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  1463. data/spec/unit/type/file/content_spec.rb +59 -208
  1464. data/spec/unit/type/file/ctime_spec.rb +0 -0
  1465. data/spec/unit/type/file/ensure_spec.rb +0 -0
  1466. data/spec/unit/type/file/group_spec.rb +0 -0
  1467. data/spec/unit/type/file/mode_spec.rb +0 -0
  1468. data/spec/unit/type/file/mtime_spec.rb +0 -0
  1469. data/spec/unit/type/file/owner_spec.rb +0 -0
  1470. data/spec/unit/type/file/selinux_spec.rb +0 -0
  1471. data/spec/unit/type/file/source_spec.rb +211 -119
  1472. data/spec/unit/type/file/type_spec.rb +0 -0
  1473. data/spec/unit/type/file_spec.rb +165 -35
  1474. data/spec/unit/type/filebucket_spec.rb +0 -0
  1475. data/spec/unit/type/group_spec.rb +0 -0
  1476. data/spec/unit/type/host_spec.rb +4 -4
  1477. data/spec/unit/type/interface_spec.rb +32 -0
  1478. data/spec/unit/type/k5login_spec.rb +0 -0
  1479. data/spec/unit/type/macauthorization_spec.rb +4 -1
  1480. data/spec/unit/type/mailalias_spec.rb +0 -0
  1481. data/spec/unit/type/maillist_spec.rb +0 -0
  1482. data/spec/unit/type/mcx_spec.rb +0 -0
  1483. data/spec/unit/type/mount_spec.rb +50 -8
  1484. data/spec/unit/type/nagios_spec.rb +0 -0
  1485. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  1486. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  1487. data/spec/unit/type/package_spec.rb +1 -0
  1488. data/spec/unit/type/resources_spec.rb +0 -0
  1489. data/spec/unit/type/schedule_spec.rb +0 -0
  1490. data/spec/unit/type/selboolean_spec.rb +0 -0
  1491. data/spec/unit/type/selmodule_spec.rb +0 -0
  1492. data/spec/unit/type/service_spec.rb +21 -0
  1493. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
  1494. data/spec/unit/type/sshkey_spec.rb +0 -0
  1495. data/spec/unit/type/stage_spec.rb +0 -0
  1496. data/spec/unit/type/tidy_spec.rb +4 -4
  1497. data/spec/unit/type/user_spec.rb +40 -7
  1498. data/spec/unit/type/vlan_spec.rb +1 -1
  1499. data/spec/unit/type/whit_spec.rb +0 -0
  1500. data/spec/unit/type/yumrepo_spec.rb +3 -7
  1501. data/spec/unit/type/zfs_spec.rb +0 -0
  1502. data/spec/unit/type/zone_spec.rb +0 -0
  1503. data/spec/unit/type/zpool_spec.rb +0 -0
  1504. data/spec/unit/type_spec.rb +119 -1
  1505. data/spec/unit/util/autoload_spec.rb +0 -0
  1506. data/spec/unit/util/backups_spec.rb +0 -0
  1507. data/spec/unit/util/character_encoding_spec.rb +88 -0
  1508. data/spec/unit/util/checksums_spec.rb +0 -0
  1509. data/spec/unit/util/colors_spec.rb +0 -0
  1510. data/spec/unit/util/command_line_spec.rb +11 -0
  1511. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  1512. data/spec/unit/util/diff_spec.rb +0 -0
  1513. data/spec/unit/util/errors_spec.rb +0 -0
  1514. data/spec/unit/util/execution_spec.rb +13 -1
  1515. data/spec/unit/util/execution_stub_spec.rb +0 -0
  1516. data/spec/unit/util/feature_spec.rb +1 -1
  1517. data/spec/unit/util/filetype_spec.rb +4 -4
  1518. data/spec/unit/util/http_proxy_spec.rb +91 -0
  1519. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  1520. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  1521. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  1522. data/spec/unit/util/log/destinations_spec.rb +0 -2
  1523. data/spec/unit/util/log_spec.rb +12 -1
  1524. data/spec/unit/util/logging_spec.rb +69 -0
  1525. data/spec/unit/util/metric_spec.rb +0 -0
  1526. data/spec/unit/util/monkey_patches_spec.rb +95 -3
  1527. data/spec/unit/util/multi_match_spec.rb +39 -0
  1528. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  1529. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  1530. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  1531. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1532. data/spec/unit/util/network_device/config_spec.rb +0 -0
  1533. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  1534. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  1535. data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
  1536. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  1537. data/spec/unit/util/network_device_spec.rb +1 -1
  1538. data/spec/unit/util/package_spec.rb +0 -0
  1539. data/spec/unit/util/plist_spec.rb +135 -0
  1540. data/spec/unit/util/posix_spec.rb +0 -0
  1541. data/spec/unit/util/rdoc_spec.rb +0 -0
  1542. data/spec/unit/util/resource_template_spec.rb +2 -2
  1543. data/spec/unit/util/retry_action_spec.rb +0 -0
  1544. data/spec/unit/util/run_mode_spec.rb +27 -3
  1545. data/spec/unit/util/selinux_spec.rb +0 -0
  1546. data/spec/unit/util/splayer_spec.rb +45 -0
  1547. data/spec/unit/util/storage_spec.rb +8 -1
  1548. data/spec/unit/util/suidmanager_spec.rb +0 -0
  1549. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  1550. data/spec/unit/util/tagging_spec.rb +4 -0
  1551. data/spec/unit/util/user_attr_spec.rb +0 -0
  1552. data/spec/unit/util/warnings_spec.rb +0 -0
  1553. data/spec/unit/util/windows/adsi_spec.rb +82 -40
  1554. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  1555. data/spec/unit/util/windows/file_spec.rb +89 -0
  1556. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  1557. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  1558. data/spec/unit/util/windows/sid_spec.rb +76 -14
  1559. data/spec/unit/util/yaml_spec.rb +13 -1
  1560. data/spec/unit/util_spec.rb +219 -15
  1561. data/spec/unit/version_spec.rb +19 -0
  1562. data/spec/watchr.rb +0 -0
  1563. data/tasks/cfpropertylist.rake +15 -0
  1564. metadata +724 -115
  1565. data/ext/puppet-nm-dispatcher +0 -13
  1566. data/ext/puppetlisten/puppetlisten.rb +0 -77
  1567. data/ext/puppetlisten/puppetrun.rb +0 -38
  1568. data/ext/systemd/puppetmaster.service +0 -11
  1569. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
  1570. data/lib/puppet/pops/types/types_meta.rb +0 -234
  1571. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  1572. data/lib/puppet/vendor/load_plist.rb +0 -1
  1573. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  1574. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  1575. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  1576. data/lib/puppet/vendor/plist/README +0 -36
  1577. data/lib/puppet/vendor/plist/Rakefile +0 -144
  1578. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  1579. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  1580. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  1581. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  1582. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  1583. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  1584. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  1585. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  1586. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  1587. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  1588. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  1589. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  1590. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  1591. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  1592. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  1593. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  1594. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  1595. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
  1596. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  1597. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  1598. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  1599. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  1600. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  1601. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  1602. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  1603. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  1604. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  1605. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  1606. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  1607. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  1608. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
  1609. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -3
  1610. data/spec/integration/data_binding.rb +0 -104
  1611. data/spec/integration/parser/functions/require_spec.rb +0 -43
  1612. data/spec/integration/provider/package_spec.rb +0 -33
  1613. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  1614. data/spec/unit/parser/functions/include_spec.rb +0 -55
  1615. data/spec/unit/parser/functions/require_spec.rb +0 -68
  1616. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
  1617. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  1618. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  1619. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  1620. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  1621. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  1622. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  1623. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  1624. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  1625. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  1626. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  1627. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{usee → modules/usee}/lib/puppet/functions/usee/callee.rb +0 -0
  1628. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/lib/puppet/functions/user/caller.rb +0 -0
@@ -11,15 +11,25 @@ Puppet::Type.newtype(:yumrepo) do
11
11
 
12
12
  Continuation lines that yum supports (for the `baseurl`, for example)
13
13
  are not supported. This type does not attempt to read or verify the
14
- exinstence of files listed in the `include` attribute."
14
+ existence of files listed in the `include` attribute."
15
15
 
16
16
  # Ensure yumrepos can be removed too.
17
17
  ensurable
18
18
  # Doc string for properties that can be made 'absent'
19
19
  ABSENT_DOC="Set this to `absent` to remove it from the file completely."
20
20
  # False can be false/0/no and True can be true/1/yes in yum.
21
- YUM_BOOLEAN=/^(True|False|0|1|No|Yes)$/i
22
- YUM_BOOLEAN_DOC="Valid values are: False/0/No or True/1/Yes."
21
+ YUM_BOOLEAN=/^(true|false|0|1|no|yes)$/
22
+ YUM_BOOLEAN_DOC="Valid values are: false/0/no or true/1/yes."
23
+
24
+ # Common munge logic for YUM_BOOLEAN values. Munges for two requirements:
25
+ # 1) Because of how regex validation works in Puppet::Parameter::Value,
26
+ # Boolean false and lowercase false will not be considered invalid. However,
27
+ # if the user specified false (or true), they meant False (or True).
28
+ # 2) In order for parameter removal to work correctly, when absent is passed
29
+ # as a string it needs to be munged back to a symbol.
30
+ munge_yum_bool = Proc.new do |val|
31
+ val.to_s == 'absent' ? :absent : val.to_s.capitalize
32
+ end
23
33
 
24
34
  VALID_SCHEMES = %w[file http https ftp]
25
35
 
@@ -81,6 +91,7 @@ Puppet::Type.newtype(:yumrepo) do
81
91
  #{ABSENT_DOC}"
82
92
 
83
93
  newvalues(YUM_BOOLEAN, :absent)
94
+ munge(&munge_yum_bool)
84
95
  end
85
96
 
86
97
  newproperty(:gpgcheck) do
@@ -90,6 +101,7 @@ Puppet::Type.newtype(:yumrepo) do
90
101
  #{ABSENT_DOC}"
91
102
 
92
103
  newvalues(YUM_BOOLEAN, :absent)
104
+ munge(&munge_yum_bool)
93
105
  end
94
106
 
95
107
  newproperty(:repo_gpgcheck) do
@@ -98,6 +110,7 @@ Puppet::Type.newtype(:yumrepo) do
98
110
  #{ABSENT_DOC}"
99
111
 
100
112
  newvalues(YUM_BOOLEAN, :absent)
113
+ munge(&munge_yum_bool)
101
114
  end
102
115
 
103
116
  newproperty(:gpgkey) do
@@ -179,6 +192,7 @@ Puppet::Type.newtype(:yumrepo) do
179
192
  #{ABSENT_DOC}"
180
193
 
181
194
  newvalues(YUM_BOOLEAN, :absent)
195
+ munge(&munge_yum_bool)
182
196
  end
183
197
 
184
198
  newproperty(:failovermethod) do
@@ -194,6 +208,7 @@ Puppet::Type.newtype(:yumrepo) do
194
208
  #{ABSENT_DOC}"
195
209
 
196
210
  newvalues(YUM_BOOLEAN, :absent)
211
+ munge(&munge_yum_bool)
197
212
  end
198
213
 
199
214
  newproperty(:retries) do
@@ -231,6 +246,7 @@ Puppet::Type.newtype(:yumrepo) do
231
246
  #{ABSENT_DOC}"
232
247
 
233
248
  newvalues(YUM_BOOLEAN, :absent)
249
+ munge(&munge_yum_bool)
234
250
  end
235
251
 
236
252
  newproperty(:priority) do
@@ -307,6 +323,7 @@ Puppet::Type.newtype(:yumrepo) do
307
323
  #{ABSENT_DOC}"
308
324
 
309
325
  newvalues(YUM_BOOLEAN, :absent)
326
+ munge(&munge_yum_bool)
310
327
  end
311
328
 
312
329
  newproperty(:sslcacert) do
@@ -323,6 +340,7 @@ Puppet::Type.newtype(:yumrepo) do
323
340
  #{ABSENT_DOC}"
324
341
 
325
342
  newvalues(YUM_BOOLEAN, :absent)
343
+ munge(&munge_yum_bool)
326
344
  end
327
345
 
328
346
  newproperty(:sslclientcert) do
@@ -359,6 +377,7 @@ Puppet::Type.newtype(:yumrepo) do
359
377
  #{ABSENT_DOC}"
360
378
 
361
379
  newvalues(YUM_BOOLEAN, :absent)
380
+ munge(&munge_yum_bool)
362
381
  end
363
382
 
364
383
  newproperty(:assumeyes) do
@@ -367,6 +386,7 @@ Puppet::Type.newtype(:yumrepo) do
367
386
  #{ABSENT_DOC}"
368
387
 
369
388
  newvalues(YUM_BOOLEAN, :absent)
389
+ munge(&munge_yum_bool)
370
390
  end
371
391
 
372
392
  newproperty(:deltarpm_percentage) do
@@ -282,11 +282,11 @@ end
282
282
 
283
283
  And then call that:
284
284
 
285
- zone { myzone:
286
- ip => "bge0:192.168.0.23",
287
- sysidcfg => template("site/sysidcfg.erb"),
288
- path => "/opt/zones/myzone",
289
- realhostname => "fully.qualified.domain.name"
285
+ zone { 'myzone':
286
+ ip => 'bge0:192.168.0.23',
287
+ sysidcfg => template('site/sysidcfg.erb'),
288
+ path => '/opt/zones/myzone',
289
+ realhostname => 'fully.qualified.domain.name',
290
290
  }
291
291
 
292
292
  The `sysidcfg` only matters on the first booting of the zone,
@@ -343,7 +343,7 @@ end
343
343
 
344
344
  validate do
345
345
  return unless self[:ip]
346
- # self[:ip] reflects the type passed from proeprty:ip.should. If we
346
+ # self[:ip] reflects the type passed from property:ip.should. If we
347
347
  # override it and pass @should, then we get an array here back.
348
348
  self[:ip].each do |ip|
349
349
  interface, address, router = ip.split(':')
data/lib/puppet/type.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'puppet'
2
3
  require 'puppet/util/log'
3
4
  require 'puppet/util/metric'
@@ -74,6 +75,7 @@ module Puppet
74
75
  #
75
76
  #
76
77
  class Type
78
+ extend Puppet::CompilableResourceType
77
79
  include Puppet::Util
78
80
  include Puppet::Util::Errors
79
81
  include Puppet::Util::Logging
@@ -89,9 +91,9 @@ class Type
89
91
  # @see Comparable
90
92
  #
91
93
  def <=>(other)
92
- # We only order against other types, not arbitrary objects.
93
- return nil unless other.is_a? Puppet::Type
94
- # Our natural order is based on the reference name we use when comparing
94
+ # Order is only maintained against other types, not arbitrary objects.
95
+ # The natural order is based on the reference name used when comparing
96
+ return nil unless other.is_a?(Puppet::CompilableResourceType) || other.class.is_a?(Puppet::CompilableResourceType)
95
97
  # against other type instances.
96
98
  self.ref <=> other.ref
97
99
  end
@@ -106,6 +108,25 @@ class Type
106
108
  attr_reader :properties
107
109
  end
108
110
 
111
+ # Allow declaring that a type is actually a capability
112
+ class << self
113
+ attr_accessor :is_capability
114
+
115
+ def is_capability?
116
+ c = is_capability
117
+ c.nil? ? false : c
118
+ end
119
+ end
120
+
121
+ # Returns whether this type represents an application instance; since
122
+ # only defined types, i.e., instances of Puppet::Resource::Type can
123
+ # represent application instances, this implementation always returns
124
+ # +false+. Having this method though makes code checking whether a
125
+ # resource is an application instance simpler
126
+ def self.application?
127
+ false
128
+ end
129
+
109
130
  # Returns all the attribute names of the type in the appropriate order.
110
131
  # The {key_attributes} come first, then the {provider}, then the {properties}, and finally
111
132
  # the {parameters} and {metaparams},
@@ -581,7 +602,7 @@ class Type
581
602
  validattr?(name)
582
603
  end
583
604
 
584
- # @return [Boolean] Returns true if the wanted state of the resoure is that it should be absent (i.e. to be deleted).
605
+ # @return [Boolean] Returns true if the wanted state of the resource is that it should be absent (i.e. to be deleted).
585
606
  def deleting?
586
607
  obj = @parameters[:ensure] and obj.should == :absent
587
608
  end
@@ -639,7 +660,7 @@ class Type
639
660
  def []=(name,value)
640
661
  name = name.intern
641
662
 
642
- fail("Invalid parameter #{name}") unless self.class.validattr?(name)
663
+ fail("no parameter named '#{name}'") unless self.class.validattr?(name)
643
664
 
644
665
  if name == :name && nv = name_var
645
666
  name = nv
@@ -722,7 +743,7 @@ class Type
722
743
  (prop = @parameters[name] and prop.is_a?(Puppet::Property)) ? prop.should : nil
723
744
  end
724
745
 
725
- # Registers an attribute to this resource type insance.
746
+ # Registers an attribute to this resource type instance.
726
747
  # Requires either the attribute name or class as its argument.
727
748
  # This is a noop if the named property/parameter is not supported
728
749
  # by this resource. Otherwise, an attribute instance is created
@@ -842,7 +863,7 @@ class Type
842
863
  self.class.name
843
864
  end
844
865
 
845
- # @todo Comment says "Return a specific value for an attribute.", as opposed to what "An upspecific value"???
866
+ # @todo Comment says "Return a specific value for an attribute.", as opposed to what "An unspecific value"???
846
867
  # @todo is this the 'is' or the 'should' value?
847
868
  # @todo why is the return restricted to things that respond to :value? (Only non structural basic data types
848
869
  # supported?
@@ -875,7 +896,7 @@ class Type
875
896
  # See the overview of this class for a longer explanation of the concept _isomorphism_.
876
897
  # Defaults to true.
877
898
  #
878
- # @return [Boolan] true, if this type's name is isomorphic with the object
899
+ # @return [Boolean] true, if this type's name is isomorphic with the object
879
900
  def self.isomorphic?
880
901
  if defined?(@isomorphic)
881
902
  return @isomorphic
@@ -1025,9 +1046,15 @@ class Type
1025
1046
  insync
1026
1047
  end
1027
1048
 
1049
+ # Says if the ensure property should be retrieved if the resource is ensurable
1050
+ # Defaults to true. Some resource type classes can override it
1051
+ def self.needs_ensure_retrieved
1052
+ true
1053
+ end
1054
+
1028
1055
  # Retrieves the current value of all contained properties.
1029
1056
  # Parameters and meta-parameters are not included in the result.
1030
- # @todo As oposed to all non contained properties? How is this different than any of the other
1057
+ # @todo As opposed to all non contained properties? How is this different than any of the other
1031
1058
  # methods that also "gets" properties/parameters/etc. ?
1032
1059
  # @return [Puppet::Resource] array of all property values (mix of types)
1033
1060
  # @raise [fail???] if there is a provider and it is not suitable for the host this is evaluated for.
@@ -1039,7 +1066,7 @@ class Type
1039
1066
  # Provide the name, so we know we'll always refer to a real thing
1040
1067
  result[:name] = self[:name] unless self[:name] == title
1041
1068
 
1042
- if ensure_prop = property(:ensure) or (self.class.validattr?(:ensure) and ensure_prop = newattr(:ensure))
1069
+ if ensure_prop = property(:ensure) or (self.class.needs_ensure_retrieved and self.class.validattr?(:ensure) and ensure_prop = newattr(:ensure))
1043
1070
  result[:ensure] = ensure_state = ensure_prop.retrieve
1044
1071
  else
1045
1072
  ensure_state = nil
@@ -1127,7 +1154,7 @@ class Type
1127
1154
  # Retrieves all known instances.
1128
1155
  # @todo Retrieves them from where? Known to whom?
1129
1156
  # Either requires providers or must be overridden.
1130
- # @raise [Puppet::DevError] when there are no providers and the implementation has not overridded this method.
1157
+ # @raise [Puppet::DevError] when there are no providers and the implementation has not overridden this method.
1131
1158
  def self.instances
1132
1159
  raise Puppet::DevError, "#{self.name} has no providers and has not overridden 'instances'" if provider_hash.empty?
1133
1160
 
@@ -1191,6 +1218,10 @@ class Type
1191
1218
  resource = Puppet::Resource.new(self, title)
1192
1219
  resource.catalog = hash.delete(:catalog)
1193
1220
 
1221
+ if sensitive = hash.delete(:sensitive_parameters)
1222
+ resource.sensitive_parameters = sensitive
1223
+ end
1224
+
1194
1225
  hash.each do |param, value|
1195
1226
  resource[param] = value
1196
1227
  end
@@ -1198,7 +1229,7 @@ class Type
1198
1229
  end
1199
1230
 
1200
1231
 
1201
- # Returns an array of strings representing the containment heirarchy
1232
+ # Returns an array of strings representing the containment hierarchy
1202
1233
  # (types/classes) that make up the path to the resource from the root
1203
1234
  # of the catalog. This is mostly used for logging purposes.
1204
1235
  #
@@ -1227,7 +1258,7 @@ class Type
1227
1258
  event _would_ have been sent.
1228
1259
 
1229
1260
  **Important note:**
1230
- [The `noop` setting](http://docs.puppetlabs.com/references/latest/configuration.html#noop)
1261
+ [The `noop` setting](https://docs.puppetlabs.com/puppet/latest/reference/configuration.html#noop)
1231
1262
  allows you to globally enable or disable noop mode, but it will _not_ override
1232
1263
  the `noop` metaparameter on individual resources. That is, the value of the
1233
1264
  global `noop` setting will _only_ affect resources that do not have an explicit
@@ -1247,7 +1278,7 @@ class Type
1247
1278
  The value of this metaparameter must be the `name` of a `schedule`
1248
1279
  resource. This means you must declare a schedule resource, then
1249
1280
  refer to it by name; see
1250
- [the docs for the `schedule` type](http://docs.puppetlabs.com/references/latest/type.html#schedule)
1281
+ [the docs for the `schedule` type](https://docs.puppetlabs.com/puppet/latest/reference/type.html#schedule)
1251
1282
  for more info.
1252
1283
 
1253
1284
  schedule { 'everyday':
@@ -1264,7 +1295,9 @@ class Type
1264
1295
  end
1265
1296
 
1266
1297
  newmetaparam(:audit) do
1267
- desc "Marks a subset of this resource's unmanaged attributes for auditing. Accepts an
1298
+ desc "(This metaparameter is deprecated and will be ignored in a future release.)
1299
+
1300
+ Marks a subset of this resource's unmanaged attributes for auditing. Accepts an
1268
1301
  attribute name, an array of attribute names, or `all`.
1269
1302
 
1270
1303
  Auditing a resource attribute has two effects: First, whenever a catalog
@@ -1285,6 +1318,12 @@ class Type
1285
1318
  and the second run will log the edit made by Puppet.)"
1286
1319
 
1287
1320
  validate do |list|
1321
+ if Puppet.settings[:strict] != :off
1322
+ # Only warn if `audit` metaparam came from a manifest
1323
+ if file && line
1324
+ puppet_deprecation_warning(_("The `audit` metaparameter is deprecated and will be ignored in a future release."), { :line => line, :file => file })
1325
+ end
1326
+ end
1288
1327
  list = Array(list).collect {|p| p.to_sym}
1289
1328
  unless list == [:all]
1290
1329
  list.each do |param|
@@ -1422,7 +1461,7 @@ class Type
1422
1461
  }
1423
1462
 
1424
1463
  Tags are useful for things like applying a subset of a host's configuration
1425
- with [the `tags` setting](/references/latest/configuration.html#tags)
1464
+ with [the `tags` setting](/puppet/latest/reference/configuration.html#tags)
1426
1465
  (e.g. `puppet agent --test --tags bootstrap`)."
1427
1466
 
1428
1467
  munge do |tags|
@@ -1498,7 +1537,7 @@ class Type
1498
1537
  end
1499
1538
 
1500
1539
  # Are we requiring them, or vice versa? See the method docs
1501
- # for futher info on this.
1540
+ # for further info on this.
1502
1541
  if self.class.direction == :in
1503
1542
  source = related_resource
1504
1543
  target = @resource
@@ -1512,12 +1551,12 @@ class Type
1512
1551
  :event => self.class.events,
1513
1552
  :callback => method
1514
1553
  }
1515
- self.debug("subscribes to #{related_resource.ref}")
1554
+ self.debug { "subscribes to #{related_resource.ref}" }
1516
1555
  else
1517
1556
  # If there's no callback, there's no point in even adding
1518
1557
  # a label.
1519
1558
  subargs = nil
1520
- self.debug("requires #{related_resource.ref}")
1559
+ self.debug { "subscribes to #{related_resource.ref}" }
1521
1560
  end
1522
1561
 
1523
1562
  Puppet::Relationship.new(source, target, subargs)
@@ -1525,7 +1564,7 @@ class Type
1525
1564
  end
1526
1565
  end
1527
1566
 
1528
- # @todo document this, have no clue what this does... it retuns "RelationshipMetaparam.subclasses"
1567
+ # @todo document this, have no clue what this does... it returns "RelationshipMetaparam.subclasses"
1529
1568
  #
1530
1569
  def self.relationship_params
1531
1570
  RelationshipMetaparam.subclasses
@@ -1533,13 +1572,13 @@ class Type
1533
1572
 
1534
1573
 
1535
1574
  # Note that the order in which the relationships params is defined
1536
- # matters. The labelled params (notify and subcribe) must be later,
1575
+ # matters. The labeled params (notify and subscribe) must be later,
1537
1576
  # so that if both params are used, those ones win. It's a hackish
1538
1577
  # solution, but it works.
1539
1578
 
1540
1579
  newmetaparam(:require, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
1541
1580
  desc "One or more resources that this resource depends on, expressed as
1542
- [resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#resource-references).
1581
+ [resource references](https://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
1543
1582
  Multiple resources can be specified as an array of references. When this
1544
1583
  attribute is present:
1545
1584
 
@@ -1548,12 +1587,12 @@ class Type
1548
1587
  This is one of the four relationship metaparameters, along with
1549
1588
  `before`, `notify`, and `subscribe`. For more context, including the
1550
1589
  alternate chaining arrow (`->` and `~>`) syntax, see
1551
- [the language page on relationships](http://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1590
+ [the language page on relationships](https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1552
1591
  end
1553
1592
 
1554
1593
  newmetaparam(:subscribe, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :ALL_EVENTS, :callback => :refresh}) do
1555
1594
  desc "One or more resources that this resource depends on, expressed as
1556
- [resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#resource-references).
1595
+ [resource references](https://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
1557
1596
  Multiple resources can be specified as an array of references. When this
1558
1597
  attribute is present:
1559
1598
 
@@ -1566,12 +1605,12 @@ class Type
1566
1605
  This is one of the four relationship metaparameters, along with
1567
1606
  `before`, `require`, and `notify`. For more context, including the
1568
1607
  alternate chaining arrow (`->` and `~>`) syntax, see
1569
- [the language page on relationships](http://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1608
+ [the language page on relationships](https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1570
1609
  end
1571
1610
 
1572
1611
  newmetaparam(:before, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
1573
1612
  desc "One or more resources that depend on this resource, expressed as
1574
- [resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#resource-references).
1613
+ [resource references](https://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
1575
1614
  Multiple resources can be specified as an array of references. When this
1576
1615
  attribute is present:
1577
1616
 
@@ -1580,12 +1619,12 @@ class Type
1580
1619
  This is one of the four relationship metaparameters, along with
1581
1620
  `require`, `notify`, and `subscribe`. For more context, including the
1582
1621
  alternate chaining arrow (`->` and `~>`) syntax, see
1583
- [the language page on relationships](http://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1622
+ [the language page on relationships](https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1584
1623
  end
1585
1624
 
1586
1625
  newmetaparam(:notify, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :ALL_EVENTS, :callback => :refresh}) do
1587
1626
  desc "One or more resources that depend on this resource, expressed as
1588
- [resource references](http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#resource-references).
1627
+ [resource references](https://docs.puppetlabs.com/puppet/latest/reference/lang_data_resource_reference.html).
1589
1628
  Multiple resources can be specified as an array of references. When this
1590
1629
  attribute is present:
1591
1630
 
@@ -1598,7 +1637,7 @@ class Type
1598
1637
  This is one of the four relationship metaparameters, along with
1599
1638
  `before`, `require`, and `subscribe`. For more context, including the
1600
1639
  alternate chaining arrow (`->` and `~>`) syntax, see
1601
- [the language page on relationships](http://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1640
+ [the language page on relationships](https://docs.puppetlabs.com/puppet/latest/reference/lang_relationships.html)."
1602
1641
  end
1603
1642
 
1604
1643
  newmetaparam(:stage) do
@@ -1611,7 +1650,7 @@ class Type
1611
1650
  By default, all classes are declared in the `main` stage. To assign a class
1612
1651
  to a different stage, you must:
1613
1652
 
1614
- * Declare the new stage as a [`stage` resource](http://docs.puppetlabs.com/references/latest/type.html#stage).
1653
+ * Declare the new stage as a [`stage` resource](https://docs.puppetlabs.com/puppet/latest/reference/type.html#stage).
1615
1654
  * Declare an order relationship between the new stage and the `main` stage.
1616
1655
  * Use the resource-like syntax to declare the class, and set the `stage`
1617
1656
  metaparameter to the name of the desired stage.
@@ -1628,6 +1667,57 @@ class Type
1628
1667
  }
1629
1668
  end
1630
1669
 
1670
+ newmetaparam(:export, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
1671
+ desc <<EOS
1672
+ Export a capability resource.
1673
+
1674
+ The value of this parameter must be a reference to a capability resource,
1675
+ or an array of such references. Each capability resource referenced here
1676
+ will be instantiated in the node catalog and exported to consumers of this
1677
+ resource. The title of the capability resource will be the title given in
1678
+ the reference, and all other attributes of the resource will be filled
1679
+ according to the corresponding produces statement.
1680
+
1681
+ It is an error if this metaparameter references resources whose type is not
1682
+ a capability type, or of there is no produces clause for the type of the
1683
+ current resource and the capability resource mentioned in this parameter.
1684
+
1685
+ For example:
1686
+
1687
+ define web(..) { .. }
1688
+ Web produces Http { .. }
1689
+ web { server:
1690
+ export => Http[main_server]
1691
+ }
1692
+ EOS
1693
+ end
1694
+
1695
+ newmetaparam(:consume, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
1696
+ desc <<EOS
1697
+ Consume a capability resource.
1698
+
1699
+ The value of this parameter must be a reference to a capability resource,
1700
+ or an array of such references. Each capability resource referenced here
1701
+ must have been exported by another resource in the same environment.
1702
+
1703
+ The referenced capability resource(s) will be looked up, added to the
1704
+ current node catalog, and processed following the underlying consumes
1705
+ clause.
1706
+
1707
+ It is an error if this metaparameter references resources whose type is not
1708
+ a capability type, or of there is no consumes clause for the type of the
1709
+ current resource and the capability resource mentioned in this parameter.
1710
+
1711
+ For example:
1712
+
1713
+ define web(..) { .. }
1714
+ Web consumes Sql { .. }
1715
+ web { server:
1716
+ consume => Sql[my_db]
1717
+ }
1718
+ EOS
1719
+ end
1720
+
1631
1721
  ###############################
1632
1722
  # All of the provider plumbing for the resource types.
1633
1723
  require 'puppet/provider'
@@ -1795,7 +1885,7 @@ class Type
1795
1885
  def self.providify
1796
1886
  return if @paramhash.has_key? :provider
1797
1887
 
1798
- newparam(:provider) do
1888
+ param = newparam(:provider) do
1799
1889
  # We're using a hacky way to get the name of our type, since there doesn't
1800
1890
  # seem to be a correct way to introspect this at the time this code is run.
1801
1891
  # We expect that the class in which this code is executed will be something
@@ -1855,7 +1945,8 @@ class Type
1855
1945
  provider
1856
1946
  end
1857
1947
  end
1858
- end.parenttype = self
1948
+ end
1949
+ param.parenttype = self
1859
1950
  end
1860
1951
 
1861
1952
  # @todo this needs a better explanation
@@ -1982,7 +2073,7 @@ class Type
1982
2073
  end
1983
2074
 
1984
2075
  # Provides iteration over added auto-requirements (see {autorequire}).
1985
- # @yieldparam type [String] the name of the type to autoriquire an instance of
2076
+ # @yieldparam type [String] the name of the type to autorequire an instance of
1986
2077
  # @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autorequire}).
1987
2078
  # @yieldreturn [void]
1988
2079
  # @return [void]
@@ -1994,7 +2085,7 @@ class Type
1994
2085
  end
1995
2086
 
1996
2087
  # Provides iteration over added auto-requirements (see {autobefore}).
1997
- # @yieldparam type [String] the name of the type to autoriquire an instance of
2088
+ # @yieldparam type [String] the name of the type to autorequire an instance of
1998
2089
  # @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autobefore}).
1999
2090
  # @yieldreturn [void]
2000
2091
  # @return [void]
@@ -2006,7 +2097,7 @@ class Type
2006
2097
  end
2007
2098
 
2008
2099
  # Provides iteration over added auto-requirements (see {autosubscribe}).
2009
- # @yieldparam type [String] the name of the type to autoriquire an instance of
2100
+ # @yieldparam type [String] the name of the type to autorequire an instance of
2010
2101
  # @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autosubscribe}).
2011
2102
  # @yieldreturn [void]
2012
2103
  # @return [void]
@@ -2018,7 +2109,7 @@ class Type
2018
2109
  end
2019
2110
 
2020
2111
  # Provides iteration over added auto-requirements (see {autonotify}).
2021
- # @yieldparam type [String] the name of the type to autoriquire an instance of
2112
+ # @yieldparam type [String] the name of the type to autorequire an instance of
2022
2113
  # @yieldparam block [Proc] a block producing one or several dependencies to auto require (see {autonotify}).
2023
2114
  # @yieldreturn [void]
2024
2115
  # @return [void]
@@ -2055,8 +2146,10 @@ class Type
2055
2146
 
2056
2147
  # Collect the current prereqs
2057
2148
  list.each { |dep|
2149
+ next if dep.nil?
2150
+
2058
2151
  # Support them passing objects directly, to save some effort.
2059
- unless dep.is_a? Puppet::Type
2152
+ unless dep.is_a?(Puppet::Type)
2060
2153
  # Skip autorelation that we aren't managing
2061
2154
  unless dep = rel_catalog.resource(type, dep)
2062
2155
  next
@@ -2113,7 +2206,7 @@ class Type
2113
2206
  # @comment - these two comments were floating around here, and turned up as documentation
2114
2207
  # for the attribute "title", much to my surprise and amusement. Clearly these comments
2115
2208
  # are orphaned ... I think they can just be removed as what they say should be covered
2116
- # by the now added yardoc. <irony>(Yo! to quote some of the other actual awsome specific comments applicable
2209
+ # by the now added yardoc. <irony>(Yo! to quote some of the other actual awesome specific comments applicable
2117
2210
  # to objects called from elsewhere, or not. ;-)</irony>
2118
2211
  #
2119
2212
  # @comment Types (which map to resources in the languages) are entirely composed of
@@ -2192,7 +2285,7 @@ class Type
2192
2285
  # Returns the name of this type (if specified) or the parent type #to_s.
2193
2286
  # The returned name is on the form "Puppet::Type::<name>", where the first letter of name is
2194
2287
  # capitalized.
2195
- # @return [String] the fully qualified name Puppet::Type::<name> where the first letter of name is captialized
2288
+ # @return [String] the fully qualified name Puppet::Type::<name> where the first letter of name is capitalized
2196
2289
  #
2197
2290
  def self.to_s
2198
2291
  if defined?(@name)
@@ -2314,6 +2407,47 @@ class Type
2314
2407
  adderrorcontext(error, detail)
2315
2408
  raise error
2316
2409
  end
2410
+
2411
+ set_sensitive_parameters(resource.sensitive_parameters)
2412
+ end
2413
+
2414
+ protected
2415
+
2416
+ # Mark parameters associated with this type as sensitive, based on the associated resource.
2417
+ #
2418
+ # Currently, only instances of `Puppet::Property` can be easily marked for sensitive data handling
2419
+ # and information redaction is limited to redacting events generated while synchronizing
2420
+ # properties. While support for redaction will be broadened in the future we can't automatically
2421
+ # deduce how to redact arbitrary parameters, so if a parameter is marked for redaction the best
2422
+ # we can do is warn that we can't handle treating that parameter as sensitive and move on.
2423
+ #
2424
+ # In some unusual cases a given parameter will be marked as sensitive but that sensitive context
2425
+ # needs to be transferred to another parameter. In this case resource types may need to override
2426
+ # this method in order to copy the sensitive context from one parameter to another (and in the
2427
+ # process force the early generation of a parameter that might otherwise be lazily generated.)
2428
+ # See `Puppet::Type.type(:file)#set_sensitive_parameters` for an example of this.
2429
+ #
2430
+ # @note This method visibility is protected since it should only be called by #initialize, but is
2431
+ # marked as public as subclasses may need to override this method.
2432
+ #
2433
+ # @api public
2434
+ #
2435
+ # @param sensitive_parameters [Array<Symbol>] A list of parameters to mark as sensitive.
2436
+ #
2437
+ # @return [void]
2438
+ def set_sensitive_parameters(sensitive_parameters)
2439
+ sensitive_parameters.each do |name|
2440
+ p = parameter(name)
2441
+ if p.is_a?(Puppet::Property)
2442
+ p.sensitive = true
2443
+ elsif p.is_a?(Puppet::Parameter)
2444
+ warning("Unable to mark '#{name}' as sensitive: #{name} is a parameter and not a property, and cannot be automatically redacted.")
2445
+ elsif self.class.attrclass(name)
2446
+ warning("Unable to mark '#{name}' as sensitive: the property itself was not assigned a value.")
2447
+ else
2448
+ err("Unable to mark '#{name}' as sensitive: the property itself is not defined on #{type}.")
2449
+ end
2450
+ end
2317
2451
  end
2318
2452
 
2319
2453
  private
@@ -2464,14 +2598,14 @@ class Type
2464
2598
  end
2465
2599
  end
2466
2600
 
2467
- # Returns the title of this object, or its name if title was not explicetly set.
2601
+ # Returns the title of this object, or its name if title was not explicitly set.
2468
2602
  # If the title is not already set, it will be computed by looking up the {#name_var} and using
2469
2603
  # that value as the title.
2470
2604
  # @todo it is somewhat confusing that if the name_var is a valid parameter, it is assumed to
2471
2605
  # be the name_var called :name, but if it is a property, it uses the name_var.
2472
2606
  # It is further confusing as Type in some respects supports multiple namevars.
2473
2607
  #
2474
- # @return [String] Returns the title of this object, or its name if title was not explicetly set.
2608
+ # @return [String] Returns the title of this object, or its name if title was not explicitly set.
2475
2609
  # @raise [??? devfail] if title is not set, and name_var can not be found.
2476
2610
  def title
2477
2611
  unless @title