puppet 4.0.0 → 5.0.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 (2045) hide show
  1. data/COMMITTERS.md +2 -2
  2. data/CONTRIBUTING.md +51 -10
  3. data/Gemfile +27 -14
  4. data/LICENSE +3 -3
  5. data/MAINTAINERS +66 -0
  6. data/README.md +9 -11
  7. data/Rakefile +36 -0
  8. data/conf/auth.conf +23 -2
  9. data/conf/fileserver.conf +7 -12
  10. data/conf/hiera.yaml +11 -0
  11. data/conf/puppet.conf +1 -1
  12. data/ext/README.environment +1 -1
  13. data/ext/build_defaults.yaml +10 -37
  14. data/ext/debian/README.source +1 -1
  15. data/ext/debian/control +3 -5
  16. data/ext/debian/copyright +4 -4
  17. data/ext/debian/puppet-common.install +0 -1
  18. data/ext/debian/puppet-common.manpages +0 -2
  19. data/ext/debian/puppet.default +0 -5
  20. data/ext/debian/puppet.init +1 -16
  21. data/ext/debian/puppet.logrotate +14 -5
  22. data/ext/debian/puppetmaster.README.debian +11 -9
  23. data/ext/envpuppet +2 -2
  24. data/ext/hiera/hiera.yaml +15 -0
  25. data/ext/ips/puppetagent.xml +1 -1
  26. data/ext/ips/puppetmaster.xml +1 -1
  27. data/ext/logcheck/puppet +1 -1
  28. data/ext/osx/puppet.plist +30 -0
  29. data/ext/project_data.yaml +29 -16
  30. data/ext/puppet-test +3 -27
  31. data/ext/rack/config.ru +2 -2
  32. data/ext/rack/example-passenger-vhost.conf +1 -1
  33. data/ext/redhat/client.init +67 -17
  34. data/ext/redhat/client.sysconfig +1 -10
  35. data/ext/redhat/logrotate +15 -3
  36. data/ext/redhat/puppet.spec.erb +6 -14
  37. data/ext/redhat/server.init +1 -1
  38. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  39. data/ext/solaris/pkginfo +1 -1
  40. data/ext/solaris/smf/puppet +44 -0
  41. data/ext/solaris/smf/puppet.xml +44 -0
  42. data/ext/suse/client.init +30 -33
  43. data/ext/suse/puppet.spec +2 -2
  44. data/ext/suse/server.init +2 -2
  45. data/ext/systemd/puppet.service +13 -1
  46. data/ext/upload_facts.rb +1 -1
  47. data/ext/windows/puppet_interactive.bat +6 -0
  48. data/ext/windows/puppet_shell.bat +9 -0
  49. data/ext/windows/run_puppet_interactive.bat +9 -0
  50. data/ext/windows/service/daemon.rb +10 -15
  51. data/ext/yaml_nodes.rb +1 -1
  52. data/install.rb +99 -66
  53. data/lib/hiera/puppet_function.rb +28 -18
  54. data/lib/hiera/scope.rb +12 -14
  55. data/lib/hiera_puppet.rb +6 -14
  56. data/lib/puppet/agent/disabler.rb +3 -3
  57. data/lib/puppet/agent/locker.rb +12 -3
  58. data/lib/puppet/agent.rb +35 -39
  59. data/lib/puppet/application/agent.rb +53 -25
  60. data/lib/puppet/application/apply.rb +83 -28
  61. data/lib/puppet/application/ca.rb +1 -0
  62. data/lib/puppet/application/cert.rb +54 -5
  63. data/lib/puppet/application/describe.rb +2 -2
  64. data/lib/puppet/application/device.rb +80 -50
  65. data/lib/puppet/application/doc.rb +9 -9
  66. data/lib/puppet/application/face_base.rb +11 -12
  67. data/lib/puppet/application/filebucket.rb +84 -10
  68. data/lib/puppet/application/generate.rb +5 -0
  69. data/lib/puppet/application/lookup.rb +357 -0
  70. data/lib/puppet/application/master.rb +33 -26
  71. data/lib/puppet/application/resource.rb +22 -23
  72. data/lib/puppet/application.rb +31 -15
  73. data/lib/puppet/application_support.rb +1 -1
  74. data/lib/puppet/compilable_resource_type.rb +15 -0
  75. data/lib/puppet/configurer/downloader.rb +2 -2
  76. data/lib/puppet/configurer/fact_handler.rb +13 -4
  77. data/lib/puppet/configurer/plugin_handler.rb +7 -5
  78. data/lib/puppet/configurer.rb +198 -55
  79. data/lib/puppet/context/trusted_information.rb +22 -2
  80. data/lib/puppet/context.rb +20 -5
  81. data/lib/puppet/daemon.rb +17 -13
  82. data/lib/puppet/data_binding.rb +4 -2
  83. data/lib/puppet/defaults.rb +309 -123
  84. data/lib/puppet/environments.rb +105 -10
  85. data/lib/puppet/error.rb +32 -2
  86. data/lib/puppet/etc.rb +161 -0
  87. data/lib/puppet/external/dot.rb +1 -1
  88. data/lib/puppet/external/pson/common.rb +4 -0
  89. data/lib/puppet/face/ca.rb +56 -44
  90. data/lib/puppet/face/catalog/select.rb +4 -4
  91. data/lib/puppet/face/catalog.rb +3 -3
  92. data/lib/puppet/face/certificate.rb +28 -22
  93. data/lib/puppet/face/certificate_request.rb +3 -1
  94. data/lib/puppet/face/certificate_revocation_list.rb +3 -1
  95. data/lib/puppet/face/config.rb +12 -12
  96. data/lib/puppet/face/epp.rb +96 -50
  97. data/lib/puppet/face/facts.rb +5 -5
  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 +37 -29
  102. data/lib/puppet/face/key.rb +4 -3
  103. data/lib/puppet/face/man.rb +12 -10
  104. data/lib/puppet/face/module/build.rb +7 -7
  105. data/lib/puppet/face/module/changes.rb +8 -7
  106. data/lib/puppet/face/module/generate.rb +25 -25
  107. data/lib/puppet/face/module/install.rb +19 -15
  108. data/lib/puppet/face/module/list.rb +16 -12
  109. data/lib/puppet/face/module/search.rb +4 -4
  110. data/lib/puppet/face/module/uninstall.rb +13 -10
  111. data/lib/puppet/face/module/upgrade.rb +11 -7
  112. data/lib/puppet/face/module.rb +3 -3
  113. data/lib/puppet/face/node/clean.rb +8 -8
  114. data/lib/puppet/face/node.rb +6 -6
  115. data/lib/puppet/face/parser.rb +28 -25
  116. data/lib/puppet/face/plugin.rb +14 -21
  117. data/lib/puppet/face/report.rb +10 -10
  118. data/lib/puppet/face/resource.rb +13 -13
  119. data/lib/puppet/face/status.rb +9 -6
  120. data/lib/puppet/feature/base.rb +13 -5
  121. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  122. data/lib/puppet/feature/eventlog.rb +1 -1
  123. data/lib/puppet/feature/hiera_eyaml.rb +3 -0
  124. data/lib/puppet/feature/hocon.rb +3 -0
  125. data/lib/puppet/feature/telnet.rb +9 -0
  126. data/lib/puppet/file_bucket/dipper.rb +62 -6
  127. data/lib/puppet/file_bucket/file.rb +4 -17
  128. data/lib/puppet/file_serving/base.rb +3 -3
  129. data/lib/puppet/file_serving/configuration/parser.rb +12 -12
  130. data/lib/puppet/file_serving/configuration.rb +3 -3
  131. data/lib/puppet/file_serving/content.rb +1 -1
  132. data/lib/puppet/file_serving/fileset.rb +7 -5
  133. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  134. data/lib/puppet/file_serving/metadata.rb +33 -12
  135. data/lib/puppet/file_serving/mount/file.rb +6 -6
  136. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  137. data/lib/puppet/file_serving/mount.rb +1 -1
  138. data/lib/puppet/file_serving/terminus_helper.rb +7 -8
  139. data/lib/puppet/file_serving/terminus_selector.rb +3 -1
  140. data/lib/puppet/file_system/file_impl.rb +13 -4
  141. data/lib/puppet/file_system/memory_impl.rb +10 -2
  142. data/lib/puppet/file_system/path_pattern.rb +7 -6
  143. data/lib/puppet/file_system/uniquefile.rb +5 -5
  144. data/lib/puppet/file_system/windows.rb +39 -16
  145. data/lib/puppet/file_system.rb +46 -5
  146. data/lib/puppet/forge/cache.rb +1 -0
  147. data/lib/puppet/forge/errors.rb +12 -12
  148. data/lib/puppet/forge/repository.rb +5 -36
  149. data/lib/puppet/forge.rb +17 -15
  150. data/lib/puppet/functions/alert.rb +14 -0
  151. data/lib/puppet/functions/annotate.rb +108 -0
  152. data/lib/puppet/functions/assert_type.rb +53 -19
  153. data/lib/puppet/functions/binary_file.rb +19 -0
  154. data/lib/puppet/functions/break.rb +22 -0
  155. data/lib/puppet/functions/call.rb +42 -0
  156. data/lib/puppet/functions/contain.rb +33 -0
  157. data/lib/puppet/functions/crit.rb +14 -0
  158. data/lib/puppet/functions/debug.rb +14 -0
  159. data/lib/puppet/functions/defined.rb +160 -0
  160. data/lib/puppet/functions/dig.rb +23 -0
  161. data/lib/puppet/functions/each.rb +89 -39
  162. data/lib/puppet/functions/emerg.rb +14 -0
  163. data/lib/puppet/functions/epp.rb +29 -37
  164. data/lib/puppet/functions/err.rb +14 -0
  165. data/lib/puppet/functions/eyaml_lookup_key.rb +94 -0
  166. data/lib/puppet/functions/filter.rb +64 -38
  167. data/lib/puppet/functions/find_file.rb +31 -0
  168. data/lib/puppet/functions/hiera.rb +83 -3
  169. data/lib/puppet/functions/hiera_array.rb +73 -4
  170. data/lib/puppet/functions/hiera_hash.rb +82 -2
  171. data/lib/puppet/functions/hiera_include.rb +93 -6
  172. data/lib/puppet/functions/hocon_data.rb +41 -0
  173. data/lib/puppet/functions/include.rb +21 -0
  174. data/lib/puppet/functions/info.rb +14 -0
  175. data/lib/puppet/functions/inline_epp.rb +44 -71
  176. data/lib/puppet/functions/json_data.rb +33 -0
  177. data/lib/puppet/functions/lest.rb +17 -0
  178. data/lib/puppet/functions/lookup.rb +172 -184
  179. data/lib/puppet/functions/map.rb +60 -33
  180. data/lib/puppet/functions/match.rb +32 -14
  181. data/lib/puppet/functions/new.rb +31 -0
  182. data/lib/puppet/functions/next.rb +23 -0
  183. data/lib/puppet/functions/notice.rb +14 -0
  184. data/lib/puppet/functions/reduce.rb +112 -71
  185. data/lib/puppet/functions/regsubst.rb +23 -26
  186. data/lib/puppet/functions/require.rb +37 -0
  187. data/lib/puppet/functions/return.rb +22 -0
  188. data/lib/puppet/functions/reverse_each.rb +25 -0
  189. data/lib/puppet/functions/scanf.rb +15 -18
  190. data/lib/puppet/functions/slice.rb +25 -39
  191. data/lib/puppet/functions/split.rb +3 -3
  192. data/lib/puppet/functions/step.rb +26 -0
  193. data/lib/puppet/functions/strftime.rb +43 -0
  194. data/lib/puppet/functions/then.rb +14 -0
  195. data/lib/puppet/functions/type.rb +31 -0
  196. data/lib/puppet/functions/unique.rb +132 -0
  197. data/lib/puppet/functions/unwrap.rb +40 -0
  198. data/lib/puppet/functions/versioncmp.rb +36 -0
  199. data/lib/puppet/functions/warning.rb +14 -0
  200. data/lib/puppet/functions/with.rb +15 -7
  201. data/lib/puppet/functions/yaml_data.rb +42 -0
  202. data/lib/puppet/functions.rb +226 -76
  203. data/lib/puppet/generate/models/type/property.rb +70 -0
  204. data/lib/puppet/generate/models/type/type.rb +62 -0
  205. data/lib/puppet/generate/templates/type/pcore.erb +42 -0
  206. data/lib/puppet/generate/type.rb +239 -0
  207. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  208. data/lib/puppet/graph/relationship_graph.rb +4 -1
  209. data/lib/puppet/graph/simple_graph.rb +51 -74
  210. data/lib/puppet/indirector/catalog/compiler.rb +242 -38
  211. data/lib/puppet/indirector/catalog/json.rb +18 -0
  212. data/lib/puppet/indirector/certificate/disabled_ca.rb +1 -1
  213. data/lib/puppet/indirector/certificate_request/ca.rb +3 -3
  214. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +1 -1
  215. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +1 -1
  216. data/lib/puppet/indirector/certificate_status/file.rb +6 -6
  217. data/lib/puppet/indirector/data_binding/none.rb +4 -1
  218. data/lib/puppet/indirector/exec.rb +2 -2
  219. data/lib/puppet/indirector/face.rb +24 -19
  220. data/lib/puppet/indirector/facts/facter.rb +9 -1
  221. data/lib/puppet/indirector/file_bucket_file/file.rb +142 -29
  222. data/lib/puppet/indirector/file_content/http.rb +15 -0
  223. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  224. data/lib/puppet/indirector/file_server.rb +10 -2
  225. data/lib/puppet/indirector/generic_http.rb +16 -0
  226. data/lib/puppet/indirector/hiera.rb +12 -4
  227. data/lib/puppet/indirector/indirection.rb +25 -18
  228. data/lib/puppet/indirector/json.rb +11 -12
  229. data/lib/puppet/indirector/key/ca.rb +2 -2
  230. data/lib/puppet/indirector/key/disabled_ca.rb +1 -1
  231. data/lib/puppet/indirector/key/file.rb +4 -3
  232. data/lib/puppet/indirector/ldap.rb +6 -5
  233. data/lib/puppet/indirector/memory.rb +1 -1
  234. data/lib/puppet/indirector/msgpack.rb +9 -8
  235. data/lib/puppet/indirector/node/exec.rb +9 -7
  236. data/lib/puppet/indirector/node/ldap.rb +10 -8
  237. data/lib/puppet/indirector/node/plain.rb +2 -1
  238. data/lib/puppet/indirector/node/write_only_yaml.rb +6 -1
  239. data/lib/puppet/indirector/node/yaml.rb +0 -9
  240. data/lib/puppet/indirector/report/processor.rb +2 -2
  241. data/lib/puppet/indirector/report/rest.rb +13 -0
  242. data/lib/puppet/indirector/request.rb +40 -23
  243. data/lib/puppet/indirector/resource/ral.rb +1 -1
  244. data/lib/puppet/indirector/resource/validator.rb +1 -1
  245. data/lib/puppet/indirector/rest.rb +103 -10
  246. data/lib/puppet/indirector/ssl_file.rb +33 -12
  247. data/lib/puppet/indirector/terminus.rb +7 -7
  248. data/lib/puppet/indirector/yaml.rb +5 -5
  249. data/lib/puppet/indirector.rb +2 -2
  250. data/lib/puppet/info_service/class_information_service.rb +110 -0
  251. data/lib/puppet/info_service.rb +7 -0
  252. data/lib/puppet/interface/documentation.rb +1 -1
  253. data/lib/puppet/interface/face_collection.rb +7 -2
  254. data/lib/puppet/interface.rb +12 -4
  255. data/lib/puppet/loaders.rb +6 -0
  256. data/lib/puppet/metatype/manager.rb +25 -8
  257. data/lib/puppet/module.rb +73 -34
  258. data/lib/puppet/module_tool/applications/application.rb +8 -9
  259. data/lib/puppet/module_tool/applications/builder.rb +9 -9
  260. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  261. data/lib/puppet/module_tool/applications/installer.rb +21 -20
  262. data/lib/puppet/module_tool/applications/searcher.rb +1 -1
  263. data/lib/puppet/module_tool/applications/uninstaller.rb +2 -1
  264. data/lib/puppet/module_tool/applications/unpacker.rb +4 -4
  265. data/lib/puppet/module_tool/applications/upgrader.rb +19 -18
  266. data/lib/puppet/module_tool/checksums.rb +1 -1
  267. data/lib/puppet/module_tool/contents_description.rb +1 -1
  268. data/lib/puppet/module_tool/dependency.rb +0 -1
  269. data/lib/puppet/module_tool/errors/installer.rb +23 -23
  270. data/lib/puppet/module_tool/errors/shared.rb +44 -42
  271. data/lib/puppet/module_tool/errors/uninstaller.rb +13 -9
  272. data/lib/puppet/module_tool/errors/upgrader.rb +11 -11
  273. data/lib/puppet/module_tool/install_directory.rb +1 -1
  274. data/lib/puppet/module_tool/installed_modules.rb +10 -10
  275. data/lib/puppet/module_tool/local_tarball.rb +7 -7
  276. data/lib/puppet/module_tool/metadata.rb +47 -21
  277. data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
  278. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +14 -3
  279. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +48 -38
  280. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +19 -4
  281. data/lib/puppet/module_tool/skeleton/templates/generator/{tests → examples}/init.pp.erb +3 -3
  282. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
  283. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -2
  284. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  285. data/lib/puppet/module_tool/tar.rb +5 -4
  286. data/lib/puppet/module_tool.rb +11 -7
  287. data/lib/puppet/network/auth_config_parser.rb +13 -12
  288. data/lib/puppet/network/authconfig.rb +23 -3
  289. data/lib/puppet/network/authorization.rb +8 -1
  290. data/lib/puppet/network/authstore.rb +2 -2
  291. data/lib/puppet/network/format.rb +7 -7
  292. data/lib/puppet/network/format_handler.rb +12 -9
  293. data/lib/puppet/network/format_support.rb +11 -5
  294. data/lib/puppet/network/formats.rb +38 -27
  295. data/lib/puppet/network/http/api/indirected_routes.rb +86 -58
  296. data/lib/puppet/network/http/api/master/v3/environment.rb +82 -0
  297. data/lib/puppet/network/http/api/master/v3.rb +7 -1
  298. data/lib/puppet/network/http/compression.rb +12 -8
  299. data/lib/puppet/network/http/connection.rb +21 -15
  300. data/lib/puppet/network/http/error.rb +14 -10
  301. data/lib/puppet/network/http/factory.rb +8 -4
  302. data/lib/puppet/network/http/handler.rb +11 -6
  303. data/lib/puppet/network/http/issues.rb +1 -0
  304. data/lib/puppet/network/http/pool.rb +10 -1
  305. data/lib/puppet/network/http/rack/rest.rb +27 -3
  306. data/lib/puppet/network/http/rack.rb +2 -2
  307. data/lib/puppet/network/http/request.rb +34 -20
  308. data/lib/puppet/network/http/response.rb +13 -1
  309. data/lib/puppet/network/http/webrick/rest.rb +2 -2
  310. data/lib/puppet/network/http/webrick.rb +7 -6
  311. data/lib/puppet/network/rights.rb +7 -17
  312. data/lib/puppet/network/server.rb +2 -2
  313. data/lib/puppet/node/environment.rb +73 -17
  314. data/lib/puppet/node/facts.rb +1 -6
  315. data/lib/puppet/node.rb +61 -18
  316. data/lib/puppet/parameter/boolean.rb +1 -1
  317. data/lib/puppet/parameter/package_options.rb +1 -1
  318. data/lib/puppet/parameter/path.rb +3 -3
  319. data/lib/puppet/parameter/value.rb +1 -1
  320. data/lib/puppet/parameter/value_collection.rb +4 -4
  321. data/lib/puppet/parameter.rb +24 -29
  322. data/lib/puppet/parser/ast/node.rb +1 -1
  323. data/lib/puppet/parser/ast/pops_bridge.rb +103 -29
  324. data/lib/puppet/parser/ast/resource.rb +5 -0
  325. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  326. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  327. data/lib/puppet/parser/ast.rb +5 -0
  328. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  329. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +57 -0
  330. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  331. data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  332. data/lib/puppet/parser/compiler.rb +351 -128
  333. data/lib/puppet/parser/e4_parser_adapter.rb +14 -14
  334. data/lib/puppet/parser/environment_compiler.rb +199 -0
  335. data/lib/puppet/parser/functions/assert_type.rb +47 -17
  336. data/lib/puppet/parser/functions/binary_file.rb +24 -0
  337. data/lib/puppet/parser/functions/break.rb +39 -0
  338. data/lib/puppet/parser/functions/contain.rb +7 -15
  339. data/lib/puppet/parser/functions/create_resources.rb +49 -25
  340. data/lib/puppet/parser/functions/defined.rb +106 -69
  341. data/lib/puppet/parser/functions/dig.rb +29 -0
  342. data/lib/puppet/parser/functions/each.rb +86 -28
  343. data/lib/puppet/parser/functions/epp.rb +30 -38
  344. data/lib/puppet/parser/functions/file.rb +4 -2
  345. data/lib/puppet/parser/functions/filter.rb +60 -24
  346. data/lib/puppet/parser/functions/find_file.rb +28 -0
  347. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  348. data/lib/puppet/parser/functions/generate.rb +5 -4
  349. data/lib/puppet/parser/functions/hiera.rb +98 -28
  350. data/lib/puppet/parser/functions/hiera_array.rb +86 -29
  351. data/lib/puppet/parser/functions/hiera_hash.rb +96 -31
  352. data/lib/puppet/parser/functions/hiera_include.rb +96 -41
  353. data/lib/puppet/parser/functions/include.rb +5 -8
  354. data/lib/puppet/parser/functions/inline_epp.rb +36 -61
  355. data/lib/puppet/parser/functions/inline_template.rb +3 -3
  356. data/lib/puppet/parser/functions/lest.rb +49 -0
  357. data/lib/puppet/parser/functions/lookup.rb +129 -151
  358. data/lib/puppet/parser/functions/map.rb +56 -21
  359. data/lib/puppet/parser/functions/match.rb +29 -13
  360. data/lib/puppet/parser/functions/new.rb +939 -0
  361. data/lib/puppet/parser/functions/next.rb +38 -0
  362. data/lib/puppet/parser/functions/reduce.rb +98 -61
  363. data/lib/puppet/parser/functions/regsubst.rb +4 -2
  364. data/lib/puppet/parser/functions/require.rb +4 -27
  365. data/lib/puppet/parser/functions/return.rb +71 -0
  366. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  367. data/lib/puppet/parser/functions/scanf.rb +25 -31
  368. data/lib/puppet/parser/functions/slice.rb +18 -25
  369. data/lib/puppet/parser/functions/split.rb +2 -2
  370. data/lib/puppet/parser/functions/step.rb +84 -0
  371. data/lib/puppet/parser/functions/strftime.rb +185 -0
  372. data/lib/puppet/parser/functions/then.rb +73 -0
  373. data/lib/puppet/parser/functions/type.rb +53 -0
  374. data/lib/puppet/parser/functions/with.rb +17 -9
  375. data/lib/puppet/parser/functions.rb +39 -21
  376. data/lib/puppet/parser/parser_factory.rb +0 -30
  377. data/lib/puppet/parser/relationship.rb +49 -20
  378. data/lib/puppet/parser/resource/param.rb +0 -3
  379. data/lib/puppet/parser/resource.rb +165 -50
  380. data/lib/puppet/parser/scope.rb +419 -200
  381. data/lib/puppet/parser/templatewrapper.rb +4 -3
  382. data/lib/puppet/parser/type_loader.rb +2 -2
  383. data/lib/puppet/parser.rb +3 -1
  384. data/lib/puppet/plugins/configuration.rb +15 -58
  385. data/lib/puppet/plugins/syntax_checkers.rb +6 -11
  386. data/lib/puppet/pops/adaptable.rb +12 -7
  387. data/lib/puppet/pops/adapters.rb +102 -73
  388. data/lib/puppet/pops/evaluator/access_operator.rb +248 -158
  389. data/lib/puppet/pops/evaluator/callable_signature.rb +7 -0
  390. data/lib/puppet/pops/evaluator/closure.rb +251 -109
  391. data/lib/puppet/pops/evaluator/collector_transformer.rb +51 -37
  392. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  393. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +6 -2
  394. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +8 -5
  395. data/lib/puppet/pops/evaluator/compare_operator.rb +113 -13
  396. data/lib/puppet/pops/evaluator/epp_evaluator.rb +17 -11
  397. data/lib/puppet/pops/evaluator/evaluator_impl.rb +281 -151
  398. data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -9
  399. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +82 -0
  400. data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  401. data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -1
  402. data/lib/puppet/pops/evaluator/relationship_operator.rb +44 -20
  403. data/lib/puppet/pops/evaluator/runtime3_converter.rb +74 -49
  404. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +117 -0
  405. data/lib/puppet/pops/evaluator/runtime3_support.rb +142 -91
  406. data/lib/puppet/pops/functions/dispatch.rb +34 -14
  407. data/lib/puppet/pops/functions/dispatcher.rb +17 -16
  408. data/lib/puppet/pops/functions/function.rb +30 -4
  409. data/lib/puppet/pops/issue_reporter.rb +49 -21
  410. data/lib/puppet/pops/issues.rb +404 -102
  411. data/lib/puppet/pops/label_provider.rb +18 -4
  412. data/lib/puppet/pops/loader/base_loader.rb +74 -20
  413. data/lib/puppet/pops/loader/dependency_loader.rb +27 -2
  414. data/lib/puppet/pops/loader/gem_support.rb +2 -2
  415. data/lib/puppet/pops/loader/loader.rb +57 -48
  416. data/lib/puppet/pops/loader/loader_paths.rb +113 -6
  417. data/lib/puppet/pops/loader/module_loaders.rb +128 -35
  418. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  419. data/lib/puppet/pops/loader/predefined_loader.rb +24 -0
  420. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
  421. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +79 -0
  422. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +19 -7
  423. data/lib/puppet/pops/loader/runtime3_type_loader.rb +96 -0
  424. data/lib/puppet/pops/loader/static_loader.rb +111 -41
  425. data/lib/puppet/pops/loader/type_definition_instantiator.rb +93 -0
  426. data/lib/puppet/pops/loader/typed_name.rb +54 -0
  427. data/lib/puppet/pops/loaders.rb +213 -31
  428. data/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
  429. data/lib/puppet/pops/lookup/context.rb +200 -0
  430. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  431. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
  432. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
  433. data/lib/puppet/pops/lookup/data_provider.rb +92 -0
  434. data/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
  435. data/lib/puppet/pops/lookup/explainer.rb +594 -0
  436. data/lib/puppet/pops/lookup/function_provider.rb +110 -0
  437. data/lib/puppet/pops/lookup/global_data_provider.rb +75 -0
  438. data/lib/puppet/pops/lookup/hiera_config.rb +761 -0
  439. data/lib/puppet/pops/lookup/interpolation.rb +154 -0
  440. data/lib/puppet/pops/lookup/invocation.rb +261 -0
  441. data/lib/puppet/pops/lookup/location_resolver.rb +99 -0
  442. data/lib/puppet/pops/lookup/lookup_adapter.rb +471 -0
  443. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  444. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
  445. data/lib/puppet/pops/lookup/module_data_provider.rb +89 -0
  446. data/lib/puppet/pops/lookup/sub_lookup.rb +92 -0
  447. data/lib/puppet/pops/lookup.rb +49 -49
  448. data/lib/puppet/pops/merge_strategy.rb +197 -46
  449. data/lib/puppet/pops/migration/migration_checker.rb +58 -0
  450. data/lib/puppet/pops/model/ast.pp +692 -0
  451. data/lib/puppet/pops/model/ast.rb +4833 -0
  452. data/lib/puppet/pops/model/ast_transformer.rb +15 -9
  453. data/lib/puppet/pops/model/factory.rb +550 -527
  454. data/lib/puppet/pops/model/model_label_provider.rb +33 -8
  455. data/lib/puppet/pops/model/model_tree_dumper.rb +52 -7
  456. data/lib/puppet/pops/parser/code_merger.rb +13 -1
  457. data/lib/puppet/pops/parser/egrammar.ra +190 -67
  458. data/lib/puppet/pops/parser/eparser.rb +1823 -1338
  459. data/lib/puppet/pops/parser/epp_support.rb +27 -12
  460. data/lib/puppet/pops/parser/evaluating_parser.rb +31 -17
  461. data/lib/puppet/pops/parser/heredoc_support.rb +20 -16
  462. data/lib/puppet/pops/parser/interpolation_support.rb +18 -5
  463. data/lib/puppet/pops/parser/lexer2.rb +460 -383
  464. data/lib/puppet/pops/parser/lexer_support.rb +132 -25
  465. data/lib/puppet/pops/parser/locator.rb +86 -9
  466. data/lib/puppet/pops/parser/parser_support.rb +59 -54
  467. data/lib/puppet/pops/parser/slurp_support.rb +37 -12
  468. data/lib/puppet/pops/patterns.rb +16 -1
  469. data/lib/puppet/pops/pcore.rb +103 -0
  470. data/lib/puppet/pops/puppet_stack.rb +43 -0
  471. data/lib/puppet/pops/resource/param.rb +55 -0
  472. data/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
  473. data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
  474. data/lib/puppet/pops/semantic_error.rb +12 -0
  475. data/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
  476. data/lib/puppet/pops/serialization/abstract_writer.rb +215 -0
  477. data/lib/puppet/pops/serialization/deserializer.rb +80 -0
  478. data/lib/puppet/pops/serialization/extension.rb +157 -0
  479. data/lib/puppet/pops/serialization/from_data_converter.rb +181 -0
  480. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  481. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  482. data/lib/puppet/pops/serialization/json.rb +297 -0
  483. data/lib/puppet/pops/serialization/json_path.rb +126 -0
  484. data/lib/puppet/pops/serialization/object.rb +71 -0
  485. data/lib/puppet/pops/serialization/serializer.rb +139 -0
  486. data/lib/puppet/pops/serialization/time_factory.rb +67 -0
  487. data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
  488. data/lib/puppet/pops/serialization.rb +41 -0
  489. data/lib/puppet/pops/time/timespan.rb +718 -0
  490. data/lib/puppet/pops/time/timestamp.rb +148 -0
  491. data/lib/puppet/pops/types/annotatable.rb +36 -0
  492. data/lib/puppet/pops/types/annotation.rb +71 -0
  493. data/lib/puppet/pops/types/class_loader.rb +29 -29
  494. data/lib/puppet/pops/types/enumeration.rb +9 -27
  495. data/lib/puppet/pops/types/implementation_registry.rb +141 -0
  496. data/lib/puppet/pops/types/iterable.rb +308 -0
  497. data/lib/puppet/pops/types/p_binary_type.rb +226 -0
  498. data/lib/puppet/pops/types/p_meta_type.rb +87 -0
  499. data/lib/puppet/pops/types/p_object_type.rb +925 -0
  500. data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
  501. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +191 -0
  502. data/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
  503. data/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
  504. data/lib/puppet/pops/types/p_timespan_type.rb +192 -0
  505. data/lib/puppet/pops/types/p_timestamp_type.rb +69 -0
  506. data/lib/puppet/pops/types/p_type_set_type.rb +360 -0
  507. data/lib/puppet/pops/types/puppet_object.rb +26 -0
  508. data/lib/puppet/pops/types/recursion_guard.rb +136 -0
  509. data/lib/puppet/pops/types/ruby_generator.rb +439 -0
  510. data/lib/puppet/pops/types/ruby_method.rb +31 -0
  511. data/lib/puppet/pops/types/string_converter.rb +1099 -0
  512. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  513. data/lib/puppet/pops/types/type_asserter.rb +21 -19
  514. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  515. data/lib/puppet/pops/types/type_calculator.rb +252 -1232
  516. data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
  517. data/lib/puppet/pops/types/type_factory.rb +300 -166
  518. data/lib/puppet/pops/types/type_formatter.rb +734 -0
  519. data/lib/puppet/pops/types/type_mismatch_describer.rb +1106 -0
  520. data/lib/puppet/pops/types/type_parser.rb +382 -275
  521. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  522. data/lib/puppet/pops/types/types.rb +3287 -289
  523. data/lib/puppet/pops/utils.rb +7 -30
  524. data/lib/puppet/pops/validation/checker4_0.rb +353 -125
  525. data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -5
  526. data/lib/puppet/pops/validation.rb +50 -18
  527. data/lib/puppet/pops/visitor.rb +30 -6
  528. data/lib/puppet/pops.rb +46 -57
  529. data/lib/puppet/property/ensure.rb +4 -4
  530. data/lib/puppet/property/list.rb +1 -10
  531. data/lib/puppet/property.rb +84 -21
  532. data/lib/puppet/provider/aixobject.rb +11 -11
  533. data/lib/puppet/provider/augeas/augeas.rb +89 -34
  534. data/lib/puppet/provider/command.rb +1 -1
  535. data/lib/puppet/provider/cron/crontab.rb +3 -3
  536. data/lib/puppet/provider/exec/posix.rb +4 -4
  537. data/lib/puppet/provider/exec/windows.rb +4 -4
  538. data/lib/puppet/provider/exec.rb +14 -7
  539. data/lib/puppet/provider/file/posix.rb +5 -5
  540. data/lib/puppet/provider/file/windows.rb +4 -4
  541. data/lib/puppet/provider/group/aix.rb +6 -6
  542. data/lib/puppet/provider/group/directoryservice.rb +10 -0
  543. data/lib/puppet/provider/group/groupadd.rb +2 -2
  544. data/lib/puppet/provider/group/pw.rb +2 -1
  545. data/lib/puppet/provider/group/windows_adsi.rb +23 -7
  546. data/lib/puppet/provider/host/parsed.rb +1 -1
  547. data/lib/puppet/provider/macauthorization/macauthorization.rb +20 -19
  548. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  549. data/lib/puppet/provider/maillist/mailman.rb +2 -2
  550. data/lib/puppet/provider/mcx/mcxcontent.rb +6 -5
  551. data/lib/puppet/provider/mount/parsed.rb +162 -3
  552. data/lib/puppet/provider/mount.rb +2 -1
  553. data/lib/puppet/provider/naginator.rb +1 -1
  554. data/lib/puppet/provider/nameservice/directoryservice.rb +65 -72
  555. data/lib/puppet/provider/nameservice.rb +40 -17
  556. data/lib/puppet/provider/network_device.rb +2 -1
  557. data/lib/puppet/provider/package/aix.rb +5 -5
  558. data/lib/puppet/provider/package/appdmg.rb +7 -6
  559. data/lib/puppet/provider/package/apple.rb +2 -2
  560. data/lib/puppet/provider/package/apt.rb +5 -5
  561. data/lib/puppet/provider/package/aptitude.rb +1 -1
  562. data/lib/puppet/provider/package/aptrpm.rb +2 -2
  563. data/lib/puppet/provider/package/blastwave.rb +4 -4
  564. data/lib/puppet/provider/package/dnf.rb +46 -0
  565. data/lib/puppet/provider/package/dpkg.rb +3 -3
  566. data/lib/puppet/provider/package/fink.rb +3 -3
  567. data/lib/puppet/provider/package/freebsd.rb +1 -1
  568. data/lib/puppet/provider/package/gem.rb +35 -9
  569. data/lib/puppet/provider/package/hpux.rb +1 -1
  570. data/lib/puppet/provider/package/nim.rb +17 -14
  571. data/lib/puppet/provider/package/openbsd.rb +11 -11
  572. data/lib/puppet/provider/package/opkg.rb +1 -1
  573. data/lib/puppet/provider/package/pacman.rb +20 -19
  574. data/lib/puppet/provider/package/pip.rb +83 -22
  575. data/lib/puppet/provider/package/pip3.rb +20 -0
  576. data/lib/puppet/provider/package/pkg.rb +21 -17
  577. data/lib/puppet/provider/package/pkgdmg.rb +12 -9
  578. data/lib/puppet/provider/package/pkgin.rb +6 -6
  579. data/lib/puppet/provider/package/pkgng.rb +143 -0
  580. data/lib/puppet/provider/package/pkgutil.rb +7 -7
  581. data/lib/puppet/provider/package/portage.rb +183 -35
  582. data/lib/puppet/provider/package/ports.rb +3 -6
  583. data/lib/puppet/provider/package/portupgrade.rb +4 -4
  584. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  585. data/lib/puppet/provider/package/rpm.rb +130 -21
  586. data/lib/puppet/provider/package/rug.rb +1 -1
  587. data/lib/puppet/provider/package/sun.rb +4 -3
  588. data/lib/puppet/provider/package/tdnf.rb +28 -0
  589. data/lib/puppet/provider/package/up2date.rb +1 -1
  590. data/lib/puppet/provider/package/urpmi.rb +1 -1
  591. data/lib/puppet/provider/package/windows/exe_package.rb +10 -9
  592. data/lib/puppet/provider/package/windows/msi_package.rb +4 -4
  593. data/lib/puppet/provider/package/windows/package.rb +12 -4
  594. data/lib/puppet/provider/package/windows.rb +5 -5
  595. data/lib/puppet/provider/package/yum.rb +73 -94
  596. data/lib/puppet/provider/package/zypper.rb +70 -16
  597. data/lib/puppet/provider/package.rb +6 -2
  598. data/lib/puppet/provider/parsedfile.rb +3 -3
  599. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +39 -7
  600. data/lib/puppet/provider/selmodule/semodule.rb +20 -16
  601. data/lib/puppet/provider/service/base.rb +4 -3
  602. data/lib/puppet/provider/service/bsd.rb +9 -9
  603. data/lib/puppet/provider/service/daemontools.rb +5 -5
  604. data/lib/puppet/provider/service/debian.rb +14 -5
  605. data/lib/puppet/provider/service/freebsd.rb +1 -1
  606. data/lib/puppet/provider/service/init.rb +27 -3
  607. data/lib/puppet/provider/service/launchd.rb +57 -19
  608. data/lib/puppet/provider/service/rcng.rb +51 -0
  609. data/lib/puppet/provider/service/redhat.rb +2 -1
  610. data/lib/puppet/provider/service/runit.rb +4 -4
  611. data/lib/puppet/provider/service/smf.rb +59 -8
  612. data/lib/puppet/provider/service/src.rb +66 -39
  613. data/lib/puppet/provider/service/systemd.rb +141 -22
  614. data/lib/puppet/provider/service/upstart.rb +1 -3
  615. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  616. data/lib/puppet/provider/sshkey/parsed.rb +20 -10
  617. data/lib/puppet/provider/user/aix.rb +12 -6
  618. data/lib/puppet/provider/user/directoryservice.rb +43 -66
  619. data/lib/puppet/provider/user/hpux.rb +1 -1
  620. data/lib/puppet/provider/user/ldap.rb +1 -1
  621. data/lib/puppet/provider/user/openbsd.rb +1 -0
  622. data/lib/puppet/provider/user/pw.rb +1 -0
  623. data/lib/puppet/provider/user/user_role_add.rb +19 -2
  624. data/lib/puppet/provider/user/useradd.rb +1 -1
  625. data/lib/puppet/provider/user/windows_adsi.rb +51 -2
  626. data/lib/puppet/provider/yumrepo/inifile.rb +12 -9
  627. data/lib/puppet/provider/zfs/zfs.rb +2 -2
  628. data/lib/puppet/provider/zone/solaris.rb +6 -3
  629. data/lib/puppet/provider/zpool/zpool.rb +2 -2
  630. data/lib/puppet/provider.rb +11 -7
  631. data/lib/puppet/reference/configuration.rb +13 -5
  632. data/lib/puppet/reference/indirection.rb +3 -3
  633. data/lib/puppet/reference/metaparameter.rb +1 -1
  634. data/lib/puppet/reference/providers.rb +8 -9
  635. data/lib/puppet/reference/report.rb +9 -12
  636. data/lib/puppet/reference/type.rb +3 -3
  637. data/lib/puppet/relationship.rb +7 -9
  638. data/lib/puppet/reports/http.rb +6 -2
  639. data/lib/puppet/reports.rb +5 -1
  640. data/lib/puppet/resource/capability_finder.rb +128 -0
  641. data/lib/puppet/resource/catalog.rb +163 -51
  642. data/lib/puppet/resource/status.rb +34 -20
  643. data/lib/puppet/resource/type.rb +246 -97
  644. data/lib/puppet/resource/type_collection.rb +97 -17
  645. data/lib/puppet/resource.rb +242 -199
  646. data/lib/puppet/settings/array_setting.rb +1 -1
  647. data/lib/puppet/settings/autosign_setting.rb +1 -1
  648. data/lib/puppet/settings/base_setting.rb +9 -3
  649. data/lib/puppet/settings/boolean_setting.rb +1 -1
  650. data/lib/puppet/settings/config_file.rb +4 -3
  651. data/lib/puppet/settings/directory_setting.rb +6 -0
  652. data/lib/puppet/settings/duration_setting.rb +1 -1
  653. data/lib/puppet/settings/enum_setting.rb +1 -1
  654. data/lib/puppet/settings/environment_conf.rb +28 -8
  655. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  656. data/lib/puppet/settings/file_setting.rb +22 -11
  657. data/lib/puppet/settings/ini_file.rb +2 -2
  658. data/lib/puppet/settings/priority_setting.rb +1 -1
  659. data/lib/puppet/settings/server_list_setting.rb +20 -0
  660. data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
  661. data/lib/puppet/settings/terminus_setting.rb +1 -1
  662. data/lib/puppet/settings/ttl_setting.rb +2 -2
  663. data/lib/puppet/settings.rb +118 -46
  664. data/lib/puppet/ssl/base.rb +16 -3
  665. data/lib/puppet/ssl/certificate.rb +1 -1
  666. data/lib/puppet/ssl/certificate_authority/interface.rb +172 -32
  667. data/lib/puppet/ssl/certificate_authority.rb +67 -31
  668. data/lib/puppet/ssl/certificate_factory.rb +5 -5
  669. data/lib/puppet/ssl/certificate_request.rb +19 -19
  670. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  671. data/lib/puppet/ssl/certificate_revocation_list.rb +3 -3
  672. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  673. data/lib/puppet/ssl/configuration.rb +4 -1
  674. data/lib/puppet/ssl/host.rb +47 -25
  675. data/lib/puppet/ssl/inventory.rb +11 -4
  676. data/lib/puppet/ssl/key.rb +8 -4
  677. data/lib/puppet/ssl/oids.rb +48 -8
  678. data/lib/puppet/ssl/validator/default_validator.rb +6 -7
  679. data/lib/puppet/syntax_checkers/base64.rb +41 -0
  680. data/lib/puppet/syntax_checkers/json.rb +5 -7
  681. data/lib/puppet/test/test_helper.rb +21 -11
  682. data/lib/puppet/transaction/additional_resource_generator.rb +105 -11
  683. data/lib/puppet/transaction/event.rb +45 -7
  684. data/lib/puppet/transaction/event_manager.rb +7 -7
  685. data/lib/puppet/transaction/persistence.rb +84 -0
  686. data/lib/puppet/transaction/report.rb +113 -37
  687. data/lib/puppet/transaction/resource_harness.rb +99 -37
  688. data/lib/puppet/transaction.rb +100 -54
  689. data/lib/puppet/type/augeas.rb +15 -6
  690. data/lib/puppet/type/component.rb +11 -0
  691. data/lib/puppet/type/cron.rb +27 -44
  692. data/lib/puppet/type/exec.rb +82 -52
  693. data/lib/puppet/type/file/checksum.rb +1 -0
  694. data/lib/puppet/type/file/checksum_value.rb +53 -0
  695. data/lib/puppet/type/file/content.rb +37 -122
  696. data/lib/puppet/type/file/data_sync.rb +92 -0
  697. data/lib/puppet/type/file/ensure.rb +22 -19
  698. data/lib/puppet/type/file/group.rb +3 -3
  699. data/lib/puppet/type/file/mode.rb +10 -6
  700. data/lib/puppet/type/file/owner.rb +3 -3
  701. data/lib/puppet/type/file/selcontext.rb +19 -2
  702. data/lib/puppet/type/file/source.rb +134 -37
  703. data/lib/puppet/type/file/target.rb +2 -2
  704. data/lib/puppet/type/file.rb +160 -61
  705. data/lib/puppet/type/filebucket.rb +3 -8
  706. data/lib/puppet/type/group.rb +28 -10
  707. data/lib/puppet/type/host.rb +7 -7
  708. data/lib/puppet/type/interface.rb +9 -4
  709. data/lib/puppet/type/k5login.rb +1 -1
  710. data/lib/puppet/type/macauthorization.rb +2 -2
  711. data/lib/puppet/type/mailalias.rb +2 -18
  712. data/lib/puppet/type/maillist.rb +1 -1
  713. data/lib/puppet/type/mount.rb +31 -8
  714. data/lib/puppet/type/notify.rb +3 -1
  715. data/lib/puppet/type/package.rb +37 -17
  716. data/lib/puppet/type/resources.rb +7 -7
  717. data/lib/puppet/type/schedule.rb +14 -14
  718. data/lib/puppet/type/scheduled_task.rb +18 -5
  719. data/lib/puppet/type/service.rb +25 -1
  720. data/lib/puppet/type/ssh_authorized_key.rb +20 -30
  721. data/lib/puppet/type/sshkey.rb +9 -7
  722. data/lib/puppet/type/stage.rb +1 -1
  723. data/lib/puppet/type/tidy.rb +24 -15
  724. data/lib/puppet/type/user.rb +112 -53
  725. data/lib/puppet/type/yumrepo.rb +36 -16
  726. data/lib/puppet/type/zone.rb +13 -13
  727. data/lib/puppet/type/zpool.rb +3 -3
  728. data/lib/puppet/type.rb +175 -47
  729. data/lib/puppet/util/at_fork/noop.rb +18 -0
  730. data/lib/puppet/util/at_fork/solaris.rb +158 -0
  731. data/lib/puppet/util/at_fork.rb +35 -0
  732. data/lib/puppet/util/autoload.rb +18 -13
  733. data/lib/puppet/util/backups.rb +6 -6
  734. data/lib/puppet/util/character_encoding.rb +98 -0
  735. data/lib/puppet/util/checksums.rb +74 -31
  736. data/lib/puppet/util/classgen.rb +5 -5
  737. data/lib/puppet/util/command_line/puppet_option_parser.rb +3 -3
  738. data/lib/puppet/util/command_line/trollop.rb +32 -32
  739. data/lib/puppet/util/command_line.rb +14 -6
  740. data/lib/puppet/util/diff.rb +1 -1
  741. data/lib/puppet/util/errors.rb +4 -4
  742. data/lib/puppet/util/execution.rb +42 -23
  743. data/lib/puppet/util/feature.rb +5 -5
  744. data/lib/puppet/util/fileparsing.rb +8 -8
  745. data/lib/puppet/util/filetype.rb +26 -20
  746. data/lib/puppet/util/http_proxy.rb +132 -0
  747. data/lib/puppet/util/inifile.rb +5 -5
  748. data/lib/puppet/util/instance_loader.rb +2 -2
  749. data/lib/puppet/util/json_lockfile.rb +4 -4
  750. data/lib/puppet/util/ldap/connection.rb +2 -2
  751. data/lib/puppet/util/ldap/manager.rb +2 -2
  752. data/lib/puppet/util/limits.rb +1 -1
  753. data/lib/puppet/util/log/destinations.rb +33 -18
  754. data/lib/puppet/util/log.rb +92 -16
  755. data/lib/puppet/util/logging.rb +88 -6
  756. data/lib/puppet/util/metric.rb +9 -6
  757. data/lib/puppet/util/monkey_patches.rb +41 -65
  758. data/lib/puppet/util/multi_match.rb +51 -0
  759. data/lib/puppet/util/network_device/cisco/device.rb +29 -11
  760. data/lib/puppet/util/network_device/cisco/interface.rb +21 -9
  761. data/lib/puppet/util/network_device/config.rb +7 -7
  762. data/lib/puppet/util/network_device/transport/ssh.rb +13 -9
  763. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  764. data/lib/puppet/util/network_device.rb +1 -1
  765. data/lib/puppet/util/plist.rb +153 -0
  766. data/lib/puppet/util/posix.rb +5 -5
  767. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  768. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  769. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  770. data/lib/puppet/util/profiler.rb +1 -1
  771. data/lib/puppet/util/provider_features.rb +1 -1
  772. data/lib/puppet/util/psych_support.rb +4 -12
  773. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +3 -3
  774. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  775. data/lib/puppet/util/rdoc.rb +6 -6
  776. data/lib/puppet/util/reference.rb +9 -7
  777. data/lib/puppet/util/resource_template.rb +2 -2
  778. data/lib/puppet/util/retry_action.rb +2 -2
  779. data/lib/puppet/util/rubygems.rb +1 -1
  780. data/lib/puppet/util/run_mode.rb +3 -16
  781. data/lib/puppet/util/selinux.rb +54 -12
  782. data/lib/puppet/util/skip_tags.rb +9 -0
  783. data/lib/puppet/util/splayer.rb +18 -0
  784. data/lib/puppet/util/storage.rb +5 -5
  785. data/lib/puppet/util/suidmanager.rb +4 -4
  786. data/lib/puppet/util/symbolic_file_mode.rb +9 -9
  787. data/lib/puppet/util/tag_set.rb +1 -4
  788. data/lib/puppet/util/tagging.rb +9 -3
  789. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  790. data/lib/puppet/util/windows/access_control_entry.rb +2 -2
  791. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  792. data/lib/puppet/util/windows/adsi.rb +222 -85
  793. data/lib/puppet/util/windows/api_types.rb +28 -19
  794. data/lib/puppet/util/windows/com.rb +7 -7
  795. data/lib/puppet/util/windows/error.rb +3 -3
  796. data/lib/puppet/util/windows/eventlog.rb +192 -0
  797. data/lib/puppet/util/windows/file.rb +115 -22
  798. data/lib/puppet/util/windows/principal.rb +191 -0
  799. data/lib/puppet/util/windows/process.rb +90 -13
  800. data/lib/puppet/util/windows/registry.rb +31 -25
  801. data/lib/puppet/util/windows/root_certs.rb +6 -6
  802. data/lib/puppet/util/windows/security.rb +52 -51
  803. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  804. data/lib/puppet/util/windows/sid.rb +89 -20
  805. data/lib/puppet/util/windows/taskscheduler.rb +154 -98
  806. data/lib/puppet/util/windows/user.rb +38 -20
  807. data/lib/puppet/util/windows.rb +7 -0
  808. data/lib/puppet/util/yaml.rb +15 -3
  809. data/lib/puppet/util.rb +259 -33
  810. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  811. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  812. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  813. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  814. data/lib/puppet/vendor/pathspec/README.md +1 -1
  815. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  816. data/lib/puppet/vendor/require_vendored.rb +0 -1
  817. data/lib/puppet/vendor/semantic/lib/semantic.rb +4 -6
  818. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  819. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  820. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/module_release.rb +17 -5
  821. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  822. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  823. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  824. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  825. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +203 -0
  826. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +758 -0
  827. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +9 -0
  828. data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +21 -0
  829. data/lib/puppet/version.rb +7 -3
  830. data/lib/puppet.rb +104 -6
  831. data/lib/puppet_x.rb +7 -1
  832. data/locales/config.yaml +29 -0
  833. data/locales/puppet.pot +7995 -0
  834. data/man/man5/puppet.conf.5 +61 -41
  835. data/man/man8/puppet-agent.8 +6 -3
  836. data/man/man8/puppet-apply.8 +6 -3
  837. data/man/man8/puppet-ca.8 +3 -3
  838. data/man/man8/puppet-catalog.8 +3 -3
  839. data/man/man8/puppet-cert.8 +3 -3
  840. data/man/man8/puppet-certificate.8 +3 -3
  841. data/man/man8/puppet-certificate_request.8 +3 -3
  842. data/man/man8/puppet-certificate_revocation_list.8 +3 -3
  843. data/man/man8/puppet-config.8 +4 -4
  844. data/man/man8/puppet-describe.8 +2 -2
  845. data/man/man8/puppet-device.8 +7 -4
  846. data/man/man8/puppet-doc.8 +2 -2
  847. data/man/man8/puppet-epp.8 +3 -3
  848. data/man/man8/puppet-facts.8 +3 -3
  849. data/man/man8/puppet-filebucket.8 +3 -3
  850. data/man/man8/puppet-help.8 +3 -3
  851. data/man/man8/puppet-inspect.8 +3 -3
  852. data/man/man8/puppet-key.8 +3 -3
  853. data/man/man8/puppet-man.8 +3 -3
  854. data/man/man8/puppet-master.8 +6 -3
  855. data/man/man8/puppet-module.8 +10 -10
  856. data/man/man8/puppet-node.8 +3 -3
  857. data/man/man8/puppet-parser.8 +3 -3
  858. data/man/man8/puppet-plugin.8 +3 -3
  859. data/man/man8/puppet-report.8 +3 -3
  860. data/man/man8/puppet-resource.8 +3 -3
  861. data/man/man8/puppet-status.8 +4 -4
  862. data/man/man8/puppet.8 +2 -2
  863. data/spec/fixtures/module.tar.gz +0 -0
  864. data/spec/fixtures/unit/application/environments/production/data/common.yaml +22 -0
  865. data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
  866. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +1 -0
  867. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +1 -0
  868. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +10 -0
  869. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +1 -0
  870. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
  871. data/spec/fixtures/unit/data_providers/environments/{sample → hiera_bad_syntax_json}/environment.conf +1 -1
  872. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
  873. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
  874. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
  875. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
  876. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
  877. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
  878. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
  879. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
  880. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
  881. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
  882. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
  883. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
  884. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
  885. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
  886. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
  887. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
  888. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  889. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  890. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
  891. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
  892. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +22 -0
  893. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
  894. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +48 -0
  895. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
  896. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
  897. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
  898. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
  899. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
  900. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +4 -0
  901. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +4 -0
  902. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
  903. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +7 -0
  904. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
  905. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
  906. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +2 -0
  907. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
  908. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +1 -0
  909. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +1 -0
  910. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
  911. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
  912. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +20 -0
  913. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
  914. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
  915. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +4 -0
  916. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +4 -0
  917. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +2 -0
  918. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +7 -0
  919. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +1 -0
  920. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +6 -0
  921. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +5 -0
  922. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +2 -0
  923. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +9 -0
  924. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +4 -0
  925. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +5 -0
  926. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +3 -0
  927. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +9 -0
  928. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +3 -1
  929. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +2 -1
  930. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +2 -1
  931. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +9 -0
  932. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +6 -0
  933. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +9 -0
  934. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +9 -0
  935. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  936. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  937. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +9 -0
  938. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  939. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +2 -0
  940. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +9 -0
  941. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +9 -0
  942. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  943. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +5 -0
  944. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +2 -0
  945. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +9 -0
  946. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +1 -0
  947. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +5 -0
  948. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +2 -0
  949. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +9 -0
  950. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +1 -0
  951. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +5 -0
  952. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +2 -0
  953. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +9 -0
  954. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +2 -0
  955. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  956. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  957. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +9 -0
  958. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +4 -0
  959. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +8 -0
  960. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
  961. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +9 -0
  962. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
  963. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +3 -0
  964. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +9 -0
  965. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  966. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  967. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +3 -0
  968. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +6 -0
  969. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +5 -0
  970. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +8 -0
  971. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  972. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +5 -0
  973. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +5 -0
  974. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +5 -0
  975. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +5 -0
  976. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +5 -0
  977. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +5 -0
  978. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +5 -0
  979. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +5 -0
  980. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +87 -0
  981. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/metadata.json +2 -1
  982. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  983. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  984. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +3 -0
  985. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +3 -0
  986. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +3 -0
  987. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +5 -0
  988. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +3 -0
  989. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +3 -0
  990. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +10 -0
  991. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  992. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +3 -0
  993. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +3 -0
  994. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +1 -10
  995. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  996. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +93 -85
  997. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +11 -7
  998. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +8 -0
  999. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +1 -0
  1000. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +1 -0
  1001. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +3 -0
  1002. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  1003. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +195 -0
  1004. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
  1005. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +3 -0
  1006. data/spec/fixtures/unit/provider/service/smf/svcs.out +4 -3
  1007. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  1008. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
  1009. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
  1010. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
  1011. 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
  1012. 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
  1013. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  1014. 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
  1015. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  1016. 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
  1017. 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
  1018. data/spec/integration/agent/logging_spec.rb +15 -14
  1019. data/spec/integration/application/apply_spec.rb +442 -32
  1020. data/spec/integration/application/doc_spec.rb +0 -0
  1021. data/spec/integration/application/lookup_spec.rb +155 -0
  1022. data/spec/integration/configurer_spec.rb +1 -1
  1023. data/spec/integration/data_binding_spec.rb +195 -0
  1024. data/spec/integration/defaults_spec.rb +29 -4
  1025. data/spec/integration/directory_environments_spec.rb +16 -0
  1026. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  1027. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  1028. data/spec/integration/environments/settings_spec.rb +32 -4
  1029. data/spec/integration/faces/ca_spec.rb +0 -0
  1030. data/spec/integration/faces/config_spec.rb +80 -0
  1031. data/spec/integration/faces/documentation_spec.rb +2 -2
  1032. data/spec/integration/faces/plugin_spec.rb +0 -4
  1033. data/spec/integration/file_bucket/file_spec.rb +2 -2
  1034. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  1035. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  1036. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  1037. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  1038. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  1039. data/spec/integration/indirector/facts/facter_spec.rb +97 -0
  1040. data/spec/integration/indirector/file_content/file_server_spec.rb +1 -0
  1041. data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -0
  1042. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  1043. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  1044. data/spec/integration/network/formats_spec.rb +0 -0
  1045. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  1046. data/spec/integration/node/environment_spec.rb +34 -0
  1047. data/spec/integration/node/facts_spec.rb +0 -0
  1048. data/spec/integration/node_spec.rb +0 -0
  1049. data/spec/integration/parser/catalog_spec.rb +15 -3
  1050. data/spec/integration/parser/class_spec.rb +6 -6
  1051. data/spec/integration/parser/collection_spec.rb +18 -0
  1052. data/spec/integration/parser/compiler_spec.rb +911 -658
  1053. data/spec/integration/parser/dynamic_scoping_spec.rb +66 -0
  1054. data/spec/integration/parser/parameter_defaults_spec.rb +358 -0
  1055. data/spec/integration/parser/pcore_resource_spec.rb +260 -0
  1056. data/spec/integration/parser/resource_expressions_spec.rb +10 -5
  1057. data/spec/integration/parser/scope_spec.rb +99 -11
  1058. data/spec/integration/parser/undef_param_spec.rb +9 -1
  1059. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  1060. data/spec/integration/provider/mount_spec.rb +23 -36
  1061. data/spec/integration/provider/service/init_spec.rb +0 -0
  1062. data/spec/integration/provider/service/windows_spec.rb +3 -2
  1063. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  1064. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  1065. data/spec/integration/reference/providers_spec.rb +0 -0
  1066. data/spec/integration/reports_spec.rb +0 -0
  1067. data/spec/integration/resource/catalog_spec.rb +1 -5
  1068. data/spec/integration/resource/type_collection_spec.rb +14 -0
  1069. data/spec/integration/ssl/autosign_spec.rb +18 -3
  1070. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  1071. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  1072. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  1073. data/spec/integration/ssl/host_spec.rb +0 -1
  1074. data/spec/integration/ssl/key_spec.rb +104 -0
  1075. data/spec/integration/test/test_helper_spec.rb +32 -0
  1076. data/spec/integration/transaction/report_spec.rb +683 -1
  1077. data/spec/integration/transaction_spec.rb +128 -4
  1078. data/spec/integration/type/exec_spec.rb +0 -0
  1079. data/spec/integration/type/file_spec.rb +582 -51
  1080. data/spec/integration/type/package_spec.rb +79 -2
  1081. data/spec/integration/type/tidy_spec.rb +21 -9
  1082. data/spec/integration/type/user_spec.rb +13 -6
  1083. data/spec/integration/type_spec.rb +0 -0
  1084. data/spec/integration/util/autoload_spec.rb +0 -0
  1085. data/spec/integration/util/execution_spec.rb +30 -0
  1086. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  1087. data/spec/integration/util/settings_spec.rb +26 -0
  1088. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  1089. data/spec/integration/util/windows/principal_spec.rb +250 -0
  1090. data/spec/integration/util/windows/process_spec.rb +35 -2
  1091. data/spec/{unit → integration}/util/windows/registry_spec.rb +92 -2
  1092. data/spec/integration/util/windows/security_spec.rb +75 -21
  1093. data/spec/integration/util/windows/user_spec.rb +27 -5
  1094. data/spec/integration/util_spec.rb +49 -27
  1095. data/spec/lib/matchers/include_in_order.rb +2 -3
  1096. data/spec/lib/matchers/json.rb +3 -3
  1097. data/spec/lib/matchers/resource.rb +22 -1
  1098. data/spec/lib/puppet/face/1.0.0/huzzah.rb +1 -1
  1099. data/spec/lib/puppet/face/basetest.rb +1 -1
  1100. data/spec/lib/puppet/face/huzzah.rb +1 -1
  1101. data/spec/lib/puppet/face/version_matching.rb +1 -1
  1102. data/spec/lib/puppet/indirector_testing.rb +4 -0
  1103. data/spec/lib/puppet_spec/character_encoding.rb +12 -0
  1104. data/spec/lib/puppet_spec/compiler.rb +40 -4
  1105. data/spec/lib/puppet_spec/files.rb +16 -2
  1106. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  1107. data/spec/lib/puppet_spec/language.rb +3 -1
  1108. data/spec/lib/puppet_spec/matchers.rb +6 -4
  1109. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  1110. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  1111. data/spec/lib/puppet_spec/modules.rb +2 -2
  1112. data/spec/lib/puppet_spec/network.rb +22 -14
  1113. data/spec/lib/puppet_spec/pops.rb +13 -0
  1114. data/spec/lib/puppet_spec/unindent.rb +5 -0
  1115. data/spec/lib/puppet_spec/verbose.rb +0 -0
  1116. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  1117. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  1118. data/spec/shared_behaviours/file_serving.rb +0 -0
  1119. data/spec/shared_behaviours/iterative_functions.rb +9 -9
  1120. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  1121. data/spec/shared_behaviours/path_parameters.rb +0 -0
  1122. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  1123. data/spec/shared_contexts/types_setup.rb +143 -0
  1124. data/spec/shared_examples/rhel_package_provider.rb +356 -0
  1125. data/spec/spec_helper.rb +23 -13
  1126. data/spec/unit/agent/locker_spec.rb +4 -4
  1127. data/spec/unit/agent_spec.rb +23 -46
  1128. data/spec/unit/application/agent_spec.rb +22 -0
  1129. data/spec/unit/application/apply_spec.rb +59 -14
  1130. data/spec/unit/application/cert_spec.rb +20 -0
  1131. data/spec/unit/application/certificate_spec.rb +0 -0
  1132. data/spec/unit/application/config_spec.rb +0 -0
  1133. data/spec/unit/application/describe_spec.rb +19 -0
  1134. data/spec/unit/application/device_spec.rb +41 -2
  1135. data/spec/unit/application/doc_spec.rb +0 -0
  1136. data/spec/unit/application/face_base_spec.rb +22 -6
  1137. data/spec/unit/application/facts_spec.rb +0 -0
  1138. data/spec/unit/application/filebucket_spec.rb +88 -2
  1139. data/spec/unit/application/indirection_base_spec.rb +0 -0
  1140. data/spec/unit/application/lookup_spec.rb +532 -0
  1141. data/spec/unit/application/master_spec.rb +53 -11
  1142. data/spec/unit/application/resource_spec.rb +39 -1
  1143. data/spec/unit/application_spec.rb +3 -9
  1144. data/spec/unit/capability_spec.rb +412 -0
  1145. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  1146. data/spec/unit/configurer/downloader_spec.rb +5 -5
  1147. data/spec/unit/configurer/fact_handler_spec.rb +76 -20
  1148. data/spec/unit/configurer/plugin_handler_spec.rb +5 -8
  1149. data/spec/unit/configurer_spec.rb +372 -58
  1150. data/spec/unit/confine/exists_spec.rb +0 -0
  1151. data/spec/unit/confine/false_spec.rb +0 -0
  1152. data/spec/unit/confine/feature_spec.rb +0 -0
  1153. data/spec/unit/confine/true_spec.rb +0 -0
  1154. data/spec/unit/confine/variable_spec.rb +0 -0
  1155. data/spec/unit/confine_collection_spec.rb +0 -0
  1156. data/spec/unit/confine_spec.rb +0 -0
  1157. data/spec/unit/confiner_spec.rb +0 -0
  1158. data/spec/unit/context/trusted_information_spec.rb +24 -1
  1159. data/spec/unit/daemon_spec.rb +18 -8
  1160. data/spec/unit/data_providers/function_data_provider_spec.rb +30 -3
  1161. data/spec/unit/data_providers/hiera_data_provider_spec.rb +361 -0
  1162. data/spec/unit/defaults_spec.rb +34 -17
  1163. data/spec/unit/environments_spec.rb +26 -4
  1164. data/spec/unit/etc_spec.rb +442 -0
  1165. data/spec/unit/external/pson_spec.rb +0 -0
  1166. data/spec/unit/face/ca_spec.rb +10 -0
  1167. data/spec/unit/face/catalog_spec.rb +0 -0
  1168. data/spec/unit/face/certificate_request_spec.rb +10 -0
  1169. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  1170. data/spec/unit/face/certificate_spec.rb +10 -2
  1171. data/spec/unit/face/config_spec.rb +47 -0
  1172. data/spec/unit/face/epp_face_spec.rb +24 -5
  1173. data/spec/unit/face/facts_spec.rb +0 -0
  1174. data/spec/unit/face/generate_spec.rb +230 -0
  1175. data/spec/unit/face/help_spec.rb +70 -0
  1176. data/spec/unit/face/key_spec.rb +10 -0
  1177. data/spec/unit/face/module/list_spec.rb +60 -0
  1178. data/spec/unit/face/module/search_spec.rb +1 -1
  1179. data/spec/unit/face/node_spec.rb +1 -1
  1180. data/spec/unit/face/parser_spec.rb +49 -2
  1181. data/spec/unit/face/plugin_spec.rb +29 -4
  1182. data/spec/unit/face/status_spec.rb +10 -0
  1183. data/spec/unit/face_spec.rb +0 -0
  1184. data/spec/unit/file_bucket/dipper_spec.rb +210 -1
  1185. data/spec/unit/file_bucket/file_spec.rb +3 -3
  1186. data/spec/unit/file_serving/base_spec.rb +0 -0
  1187. data/spec/unit/file_serving/configuration/parser_spec.rb +25 -30
  1188. data/spec/unit/file_serving/configuration_spec.rb +1 -1
  1189. data/spec/unit/file_serving/content_spec.rb +0 -0
  1190. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  1191. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  1192. data/spec/unit/file_serving/metadata_spec.rb +85 -9
  1193. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  1194. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  1195. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  1196. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  1197. data/spec/unit/file_serving/mount_spec.rb +0 -0
  1198. data/spec/unit/file_serving/terminus_helper_spec.rb +2 -3
  1199. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  1200. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  1201. data/spec/unit/file_system_spec.rb +373 -6
  1202. data/spec/unit/forge/forge_spec.rb +112 -0
  1203. data/spec/unit/forge/repository_spec.rb +31 -4
  1204. data/spec/unit/functions/annotate_spec.rb +175 -0
  1205. data/spec/unit/functions/assert_type_spec.rb +48 -8
  1206. data/spec/unit/functions/binary_file_spec.rb +46 -0
  1207. data/spec/unit/functions/break_spec.rb +117 -0
  1208. data/spec/unit/functions/call_spec.rb +77 -0
  1209. data/spec/unit/{parser/functions → functions}/contain_spec.rb +69 -4
  1210. data/spec/unit/functions/defined_spec.rb +289 -0
  1211. data/spec/unit/functions/dig_spec.rb +58 -0
  1212. data/spec/unit/functions/epp_spec.rb +17 -9
  1213. data/spec/unit/functions/filter_spec.rb +18 -0
  1214. data/spec/unit/functions/find_file_spec.rb +69 -0
  1215. data/spec/unit/functions/hiera_spec.rb +451 -49
  1216. data/spec/unit/functions/include_spec.rb +175 -0
  1217. data/spec/unit/functions/inline_epp_spec.rb +4 -4
  1218. data/spec/unit/functions/lest_spec.rb +34 -0
  1219. data/spec/unit/functions/logging_spec.rb +54 -0
  1220. data/spec/unit/functions/lookup_fixture_spec.rb +688 -0
  1221. data/spec/unit/functions/lookup_spec.rb +3108 -264
  1222. data/spec/unit/functions/match_spec.rb +2 -2
  1223. data/spec/unit/functions/new_spec.rb +694 -0
  1224. data/spec/unit/functions/next_spec.rb +93 -0
  1225. data/spec/unit/functions/regsubst_spec.rb +30 -9
  1226. data/spec/unit/functions/require_spec.rb +83 -0
  1227. data/spec/unit/functions/return_spec.rb +105 -0
  1228. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  1229. data/spec/unit/functions/scanf_spec.rb +1 -1
  1230. data/spec/unit/{parser/functions → functions}/shared.rb +15 -12
  1231. data/spec/unit/functions/split_spec.rb +11 -3
  1232. data/spec/unit/functions/step_spec.rb +113 -0
  1233. data/spec/unit/functions/strftime_spec.rb +152 -0
  1234. data/spec/unit/functions/then_spec.rb +40 -0
  1235. data/spec/unit/functions/type_spec.rb +35 -0
  1236. data/spec/unit/functions/unique_spec.rb +111 -0
  1237. data/spec/unit/functions/unwrap_spec.rb +29 -0
  1238. data/spec/unit/functions/versioncmp_spec.rb +36 -0
  1239. data/spec/unit/functions4_spec.rb +352 -107
  1240. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  1241. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  1242. data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
  1243. data/spec/unit/graph/simple_graph_spec.rb +59 -56
  1244. data/spec/unit/hiera/scope_spec.rb +6 -3
  1245. data/spec/unit/hiera_puppet_spec.rb +49 -8
  1246. data/spec/unit/indirector/catalog/compiler_spec.rb +887 -83
  1247. data/spec/unit/indirector/catalog/json_spec.rb +50 -1
  1248. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  1249. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  1250. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  1251. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  1252. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  1253. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  1254. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  1255. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  1256. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  1257. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  1258. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  1259. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  1260. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  1261. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  1262. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  1263. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  1264. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  1265. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  1266. data/spec/unit/indirector/code_spec.rb +0 -0
  1267. data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
  1268. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  1269. data/spec/unit/indirector/envelope_spec.rb +0 -0
  1270. data/spec/unit/indirector/exec_spec.rb +0 -0
  1271. data/spec/unit/indirector/face_spec.rb +10 -2
  1272. data/spec/unit/indirector/facts/facter_spec.rb +6 -7
  1273. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  1274. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  1275. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  1276. data/spec/unit/indirector/file_bucket_file/file_spec.rb +86 -4
  1277. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  1278. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  1279. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  1280. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  1281. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  1282. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  1283. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  1284. data/spec/unit/indirector/file_server_spec.rb +17 -2
  1285. data/spec/unit/indirector/indirection_spec.rb +14 -38
  1286. data/spec/unit/indirector/json_spec.rb +27 -6
  1287. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  1288. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  1289. data/spec/unit/indirector/key/file_spec.rb +1 -1
  1290. data/spec/unit/indirector/ldap_spec.rb +0 -0
  1291. data/spec/unit/indirector/memory_spec.rb +0 -0
  1292. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  1293. data/spec/unit/indirector/node/exec_spec.rb +12 -12
  1294. data/spec/unit/indirector/node/ldap_spec.rb +29 -8
  1295. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  1296. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  1297. data/spec/unit/indirector/node/plain_spec.rb +16 -6
  1298. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  1299. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  1300. data/spec/unit/indirector/node/write_only_yaml_spec.rb +12 -0
  1301. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  1302. data/spec/unit/indirector/plain_spec.rb +0 -0
  1303. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  1304. data/spec/unit/indirector/report/processor_spec.rb +2 -2
  1305. data/spec/unit/indirector/report/rest_spec.rb +29 -3
  1306. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  1307. data/spec/unit/indirector/request_spec.rb +32 -12
  1308. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  1309. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  1310. data/spec/unit/indirector/rest_spec.rb +158 -18
  1311. data/spec/unit/indirector/ssl_file_spec.rb +4 -4
  1312. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  1313. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  1314. data/spec/unit/indirector/terminus_spec.rb +0 -0
  1315. data/spec/unit/indirector/yaml_spec.rb +1 -1
  1316. data/spec/unit/indirector_spec.rb +0 -0
  1317. data/spec/unit/info_service_spec.rb +298 -0
  1318. data/spec/unit/interface/action_builder_spec.rb +0 -0
  1319. data/spec/unit/interface/action_manager_spec.rb +0 -0
  1320. data/spec/unit/interface/action_spec.rb +0 -0
  1321. data/spec/unit/interface/documentation_spec.rb +0 -0
  1322. data/spec/unit/interface/face_collection_spec.rb +7 -7
  1323. data/spec/unit/interface/option_builder_spec.rb +0 -0
  1324. data/spec/unit/interface/option_spec.rb +0 -0
  1325. data/spec/unit/interface_spec.rb +27 -0
  1326. data/spec/unit/man_spec.rb +1 -1
  1327. data/spec/unit/module_spec.rb +126 -74
  1328. data/spec/unit/module_tool/application_spec.rb +1 -1
  1329. data/spec/unit/module_tool/applications/builder_spec.rb +44 -9
  1330. data/spec/unit/module_tool/applications/installer_spec.rb +11 -3
  1331. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  1332. data/spec/unit/module_tool/applications/upgrader_spec.rb +9 -2
  1333. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  1334. data/spec/unit/module_tool/metadata_spec.rb +31 -2
  1335. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  1336. data/spec/unit/module_tool/tar_spec.rb +16 -10
  1337. data/spec/unit/module_tool_spec.rb +3 -3
  1338. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  1339. data/spec/unit/network/authconfig_spec.rb +62 -32
  1340. data/spec/unit/network/authorization_spec.rb +30 -2
  1341. data/spec/unit/network/authstore_spec.rb +2 -2
  1342. data/spec/unit/network/format_handler_spec.rb +11 -11
  1343. data/spec/unit/network/format_spec.rb +9 -0
  1344. data/spec/unit/network/formats_spec.rb +322 -138
  1345. data/spec/unit/network/http/api/indirected_routes_spec.rb +125 -116
  1346. data/spec/unit/network/http/api/master/v3/environment_spec.rb +186 -0
  1347. data/spec/unit/network/http/api/master/v3_spec.rb +23 -5
  1348. data/spec/unit/network/http/api_spec.rb +1 -1
  1349. data/spec/unit/network/http/compression_spec.rb +132 -84
  1350. data/spec/unit/network/http/connection_spec.rb +25 -19
  1351. data/spec/unit/network/http/error_spec.rb +1 -1
  1352. data/spec/unit/network/http/factory_spec.rb +18 -0
  1353. data/spec/unit/network/http/handler_spec.rb +17 -18
  1354. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  1355. data/spec/unit/network/http/pool_spec.rb +30 -0
  1356. data/spec/unit/network/http/rack/rest_spec.rb +9 -2
  1357. data/spec/unit/network/http/rack_spec.rb +0 -0
  1358. data/spec/unit/network/http/request_spec.rb +110 -0
  1359. data/spec/unit/network/http/response_spec.rb +108 -0
  1360. data/spec/unit/network/http/session_spec.rb +0 -0
  1361. data/spec/unit/network/http/site_spec.rb +0 -0
  1362. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  1363. data/spec/unit/network/http/webrick_spec.rb +1 -1
  1364. data/spec/unit/network/http_pool_spec.rb +0 -0
  1365. data/spec/unit/network/http_spec.rb +0 -0
  1366. data/spec/unit/network/resolver_spec.rb +0 -0
  1367. data/spec/unit/network/rights_spec.rb +4 -4
  1368. data/spec/unit/network/server_spec.rb +0 -0
  1369. data/spec/unit/node/environment_spec.rb +10 -0
  1370. data/spec/unit/node/facts_spec.rb +13 -13
  1371. data/spec/unit/node_spec.rb +74 -10
  1372. data/spec/unit/other/selinux_spec.rb +0 -0
  1373. data/spec/unit/parameter/path_spec.rb +0 -0
  1374. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  1375. data/spec/unit/parameter/value_spec.rb +0 -0
  1376. data/spec/unit/parameter_spec.rb +84 -5
  1377. data/spec/unit/parser/ast/leaf_spec.rb +1 -1
  1378. data/spec/unit/parser/compiler_spec.rb +135 -34
  1379. data/spec/unit/parser/environment_compiler_spec.rb +686 -0
  1380. data/spec/unit/parser/files_spec.rb +0 -0
  1381. data/spec/unit/parser/functions/create_resources_spec.rb +132 -10
  1382. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  1383. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  1384. data/spec/unit/parser/functions/file_spec.rb +7 -1
  1385. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -2
  1386. data/spec/unit/parser/functions/generate_spec.rb +3 -12
  1387. data/spec/unit/parser/functions/hiera_array_spec.rb +1 -1
  1388. data/spec/unit/parser/functions/hiera_hash_spec.rb +1 -1
  1389. data/spec/unit/parser/functions/hiera_include_spec.rb +1 -1
  1390. data/spec/unit/parser/functions/hiera_spec.rb +1 -1
  1391. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  1392. data/spec/unit/parser/functions/lookup_spec.rb +1 -1
  1393. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  1394. data/spec/unit/parser/functions/regsubst_spec.rb +1 -1
  1395. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  1396. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  1397. data/spec/unit/parser/functions/split_spec.rb +1 -1
  1398. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  1399. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  1400. data/spec/unit/parser/functions/template_spec.rb +1 -1
  1401. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  1402. data/spec/unit/parser/functions_spec.rb +0 -0
  1403. data/spec/unit/parser/relationship_spec.rb +0 -0
  1404. data/spec/unit/parser/resource/param_spec.rb +0 -0
  1405. data/spec/unit/parser/resource_spec.rb +115 -54
  1406. data/spec/unit/parser/scope_spec.rb +84 -86
  1407. data/spec/unit/parser/templatewrapper_spec.rb +1 -1
  1408. data/spec/unit/parser/type_loader_spec.rb +0 -0
  1409. data/spec/unit/pops/benchmark_spec.rb +8 -26
  1410. data/spec/unit/pops/containment_spec.rb +0 -26
  1411. data/spec/unit/pops/evaluator/access_ops_spec.rb +214 -99
  1412. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +223 -0
  1413. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +5 -6
  1414. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +29 -26
  1415. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +218 -47
  1416. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +29 -25
  1417. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  1418. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
  1419. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +168 -0
  1420. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +10 -10
  1421. data/spec/unit/pops/evaluator/variables_spec.rb +2 -2
  1422. data/spec/unit/pops/factory_rspec_helper.rb +0 -4
  1423. data/spec/unit/pops/factory_spec.rb +83 -83
  1424. data/spec/unit/pops/issues_spec.rb +16 -16
  1425. data/spec/unit/pops/label_provider_spec.rb +5 -1
  1426. data/spec/unit/pops/loaders/dependency_loader_spec.rb +66 -1
  1427. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  1428. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  1429. data/spec/unit/pops/loaders/loaders_spec.rb +541 -57
  1430. data/spec/unit/pops/loaders/module_loaders_spec.rb +63 -2
  1431. data/spec/unit/pops/loaders/static_loader_spec.rb +80 -19
  1432. data/spec/unit/pops/lookup/context_spec.rb +334 -0
  1433. data/spec/unit/pops/lookup/interpolation_spec.rb +373 -0
  1434. data/spec/unit/pops/lookup/lookup_spec.rb +294 -0
  1435. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  1436. data/spec/unit/pops/migration_spec.rb +53 -0
  1437. data/spec/unit/pops/model/model_spec.rb +10 -10
  1438. data/spec/unit/pops/parser/epp_parser_spec.rb +1 -1
  1439. data/spec/unit/pops/parser/lexer2_spec.rb +380 -10
  1440. data/spec/unit/pops/parser/locator_spec.rb +24 -0
  1441. data/spec/unit/pops/parser/parse_application_spec.rb +32 -0
  1442. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +35 -4
  1443. data/spec/unit/pops/parser/parse_calls_spec.rb +25 -0
  1444. data/spec/unit/pops/parser/parse_capabilities_spec.rb +37 -0
  1445. data/spec/unit/pops/parser/parse_containers_spec.rb +17 -19
  1446. data/spec/unit/pops/parser/parse_functions_spec.rb +19 -0
  1447. data/spec/unit/pops/parser/parse_heredoc_spec.rb +26 -0
  1448. data/spec/unit/pops/parser/parse_lambda_spec.rb +19 -0
  1449. data/spec/unit/pops/parser/parse_site_spec.rb +48 -0
  1450. data/spec/unit/pops/parser/parser_rspec_helper.rb +6 -0
  1451. data/spec/unit/pops/parser/parser_spec.rb +32 -6
  1452. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  1453. data/spec/unit/pops/resource/resource_type_impl_spec.rb +109 -0
  1454. data/spec/unit/pops/serialization/packer_spec.rb +154 -0
  1455. data/spec/unit/pops/serialization/serialization_spec.rb +426 -0
  1456. data/spec/unit/pops/serialization/to_from_hr_spec.rb +494 -0
  1457. data/spec/unit/pops/time/timespan_spec.rb +121 -0
  1458. data/spec/unit/pops/time/timestamp_spec.rb +13 -0
  1459. data/spec/unit/pops/types/enumeration_spec.rb +13 -12
  1460. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  1461. data/spec/unit/pops/types/p_binary_type_spec.rb +243 -0
  1462. data/spec/unit/pops/types/p_object_type_spec.rb +1253 -0
  1463. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +322 -0
  1464. data/spec/unit/pops/types/p_sensitive_type_spec.rb +169 -0
  1465. data/spec/unit/pops/types/p_timespan_type_spec.rb +273 -0
  1466. data/spec/unit/pops/types/p_timestamp_type_spec.rb +311 -0
  1467. data/spec/unit/pops/types/p_type_set_type_spec.rb +445 -0
  1468. data/spec/unit/pops/types/recursion_guard_spec.rb +93 -0
  1469. data/spec/unit/pops/types/ruby_generator_spec.rb +662 -0
  1470. data/spec/unit/pops/types/string_converter_spec.rb +1132 -0
  1471. data/spec/unit/pops/types/type_acceptor_spec.rb +106 -0
  1472. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  1473. data/spec/unit/pops/types/type_calculator_spec.rb +1249 -901
  1474. data/spec/unit/pops/types/type_factory_spec.rb +137 -96
  1475. data/spec/unit/pops/types/type_formatter_spec.rb +409 -0
  1476. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +228 -0
  1477. data/spec/unit/pops/types/type_parser_spec.rb +207 -40
  1478. data/spec/unit/pops/types/types_spec.rb +650 -0
  1479. data/spec/unit/pops/validation_spec.rb +66 -0
  1480. data/spec/unit/pops/validator/validator_spec.rb +395 -21
  1481. data/spec/unit/pops/visitor_spec.rb +1 -1
  1482. data/spec/unit/property/ensure_spec.rb +0 -0
  1483. data/spec/unit/property/keyvalue_spec.rb +0 -0
  1484. data/spec/unit/property/list_spec.rb +2 -2
  1485. data/spec/unit/property/ordered_list_spec.rb +0 -0
  1486. data/spec/unit/property_spec.rb +49 -12
  1487. data/spec/unit/provider/augeas/augeas_spec.rb +60 -1
  1488. data/spec/unit/provider/cisco_spec.rb +0 -0
  1489. data/spec/unit/provider/command_spec.rb +0 -0
  1490. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  1491. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  1492. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  1493. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  1494. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  1495. data/spec/unit/provider/exec_spec.rb +0 -0
  1496. data/spec/unit/provider/file/posix_spec.rb +0 -0
  1497. data/spec/unit/provider/file/windows_spec.rb +0 -0
  1498. data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
  1499. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  1500. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  1501. data/spec/unit/provider/group/pw_spec.rb +0 -0
  1502. data/spec/unit/provider/group/windows_adsi_spec.rb +88 -18
  1503. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  1504. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  1505. data/spec/unit/provider/ldap_spec.rb +0 -0
  1506. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  1507. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  1508. data/spec/unit/provider/mount/parsed_spec.rb +31 -5
  1509. data/spec/unit/provider/mount_spec.rb +0 -0
  1510. data/spec/unit/provider/naginator_spec.rb +0 -0
  1511. data/spec/unit/provider/nameservice/directoryservice_spec.rb +16 -19
  1512. data/spec/unit/provider/nameservice_spec.rb +167 -15
  1513. data/spec/unit/provider/network_device_spec.rb +0 -0
  1514. data/spec/unit/provider/package/aix_spec.rb +0 -0
  1515. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  1516. data/spec/unit/provider/package/apt_spec.rb +5 -0
  1517. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  1518. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1519. data/spec/unit/provider/package/base_spec.rb +18 -0
  1520. data/spec/unit/provider/package/dnf_spec.rb +30 -0
  1521. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1522. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  1523. data/spec/unit/provider/package/gem_spec.rb +77 -0
  1524. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  1525. data/spec/unit/provider/package/macports_spec.rb +0 -0
  1526. data/spec/unit/provider/package/nim_spec.rb +6 -6
  1527. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  1528. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  1529. data/spec/unit/provider/package/pacman_spec.rb +55 -0
  1530. data/spec/unit/provider/package/pip3_spec.rb +22 -0
  1531. data/spec/unit/provider/package/pip_spec.rb +173 -46
  1532. data/spec/unit/provider/package/pkg_spec.rb +139 -99
  1533. data/spec/unit/provider/package/pkgdmg_spec.rb +32 -8
  1534. data/spec/unit/provider/package/pkgin_spec.rb +23 -13
  1535. data/spec/unit/provider/package/pkgng_spec.rb +186 -0
  1536. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  1537. data/spec/unit/provider/package/portage_spec.rb +150 -8
  1538. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  1539. data/spec/unit/provider/package/rpm_spec.rb +183 -12
  1540. data/spec/unit/provider/package/sun_spec.rb +0 -0
  1541. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  1542. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -1
  1543. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -1
  1544. data/spec/unit/provider/package/windows/package_spec.rb +45 -1
  1545. data/spec/unit/provider/package/windows_spec.rb +8 -2
  1546. data/spec/unit/provider/package/yum_spec.rb +29 -466
  1547. data/spec/unit/provider/package/zypper_spec.rb +64 -19
  1548. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  1549. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +523 -70
  1550. data/spec/unit/provider/selboolean_spec.rb +0 -0
  1551. data/spec/unit/provider/selmodule_spec.rb +0 -0
  1552. data/spec/unit/provider/service/base_spec.rb +44 -27
  1553. data/spec/unit/provider/service/bsd_spec.rb +130 -0
  1554. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  1555. data/spec/unit/provider/service/debian_spec.rb +38 -0
  1556. data/spec/unit/provider/service/freebsd_spec.rb +17 -0
  1557. data/spec/unit/provider/service/gentoo_spec.rb +8 -0
  1558. data/spec/unit/provider/service/init_spec.rb +42 -1
  1559. data/spec/unit/provider/service/launchd_spec.rb +124 -25
  1560. data/spec/unit/provider/service/openbsd_spec.rb +1 -0
  1561. data/spec/unit/provider/service/openrc_spec.rb +7 -0
  1562. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  1563. data/spec/unit/provider/service/rcng_spec.rb +41 -0
  1564. data/spec/unit/provider/service/redhat_spec.rb +9 -1
  1565. data/spec/unit/provider/service/runit_spec.rb +0 -0
  1566. data/spec/unit/provider/service/smf_spec.rb +77 -13
  1567. data/spec/unit/provider/service/src_spec.rb +31 -4
  1568. data/spec/unit/provider/service/systemd_spec.rb +228 -39
  1569. data/spec/unit/provider/service/upstart_spec.rb +64 -0
  1570. data/spec/unit/provider/service/windows_spec.rb +0 -0
  1571. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -1
  1572. data/spec/unit/provider/sshkey/parsed_spec.rb +42 -18
  1573. data/spec/unit/provider/user/aix_spec.rb +7 -0
  1574. data/spec/unit/provider/user/directoryservice_spec.rb +171 -90
  1575. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  1576. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  1577. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  1578. data/spec/unit/provider/user/pw_spec.rb +0 -0
  1579. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  1580. data/spec/unit/provider/user/useradd_spec.rb +14 -0
  1581. data/spec/unit/provider/user/windows_adsi_spec.rb +160 -7
  1582. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  1583. data/spec/unit/provider/yumrepo/inifile_spec.rb +16 -0
  1584. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  1585. data/spec/unit/provider/zone/solaris_spec.rb +64 -12
  1586. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  1587. data/spec/unit/provider_spec.rb +0 -0
  1588. data/spec/unit/puppet_spec.rb +16 -3
  1589. data/spec/unit/relationship_spec.rb +15 -36
  1590. data/spec/unit/reports/http_spec.rb +11 -8
  1591. data/spec/unit/reports/store_spec.rb +0 -0
  1592. data/spec/unit/reports_spec.rb +10 -0
  1593. data/spec/unit/resource/capability_finder_spec.rb +147 -0
  1594. data/spec/unit/resource/catalog_spec.rb +294 -41
  1595. data/spec/unit/resource/status_spec.rb +114 -103
  1596. data/spec/unit/resource/type_collection_spec.rb +28 -7
  1597. data/spec/unit/resource/type_spec.rb +172 -82
  1598. data/spec/unit/resource_spec.rb +161 -76
  1599. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  1600. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  1601. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  1602. data/spec/unit/settings/file_setting_spec.rb +37 -0
  1603. data/spec/unit/settings/ini_file_spec.rb +58 -1
  1604. data/spec/unit/settings/path_setting_spec.rb +0 -0
  1605. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  1606. data/spec/unit/settings_spec.rb +120 -5
  1607. data/spec/unit/ssl/base_spec.rb +9 -0
  1608. data/spec/unit/ssl/certificate_authority/interface_spec.rb +180 -13
  1609. data/spec/unit/ssl/certificate_authority_spec.rb +82 -28
  1610. data/spec/unit/ssl/certificate_factory_spec.rb +2 -2
  1611. data/spec/unit/ssl/certificate_request_attributes_spec.rb +6 -0
  1612. data/spec/unit/ssl/certificate_request_spec.rb +4 -5
  1613. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  1614. data/spec/unit/ssl/certificate_spec.rb +1 -1
  1615. data/spec/unit/ssl/configuration_spec.rb +11 -2
  1616. data/spec/unit/ssl/host_spec.rb +37 -37
  1617. data/spec/unit/ssl/inventory_spec.rb +27 -3
  1618. data/spec/unit/ssl/key_spec.rb +7 -7
  1619. data/spec/unit/ssl/oids_spec.rb +24 -13
  1620. data/spec/unit/status_spec.rb +7 -7
  1621. data/spec/unit/transaction/additional_resource_generator_spec.rb +160 -31
  1622. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  1623. data/spec/unit/transaction/event_spec.rb +18 -13
  1624. data/spec/unit/transaction/persistence_spec.rb +178 -0
  1625. data/spec/unit/transaction/report_spec.rb +214 -40
  1626. data/spec/unit/transaction/resource_harness_spec.rb +84 -40
  1627. data/spec/unit/transaction_spec.rb +102 -7
  1628. data/spec/unit/type/augeas_spec.rb +0 -0
  1629. data/spec/unit/type/component_spec.rb +0 -0
  1630. data/spec/unit/type/computer_spec.rb +0 -0
  1631. data/spec/unit/type/cron_spec.rb +0 -0
  1632. data/spec/unit/type/exec_spec.rb +57 -12
  1633. data/spec/unit/type/file/checksum_spec.rb +6 -0
  1634. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  1635. data/spec/unit/type/file/content_spec.rb +59 -208
  1636. data/spec/unit/type/file/ctime_spec.rb +0 -0
  1637. data/spec/unit/type/file/ensure_spec.rb +0 -0
  1638. data/spec/unit/type/file/group_spec.rb +2 -2
  1639. data/spec/unit/type/file/mode_spec.rb +9 -9
  1640. data/spec/unit/type/file/mtime_spec.rb +0 -0
  1641. data/spec/unit/type/file/owner_spec.rb +2 -2
  1642. data/spec/unit/type/file/selinux_spec.rb +2 -0
  1643. data/spec/unit/type/file/source_spec.rb +224 -119
  1644. data/spec/unit/type/file/type_spec.rb +0 -0
  1645. data/spec/unit/type/file_spec.rb +211 -35
  1646. data/spec/unit/type/filebucket_spec.rb +0 -0
  1647. data/spec/unit/type/group_spec.rb +0 -0
  1648. data/spec/unit/type/host_spec.rb +4 -4
  1649. data/spec/unit/type/interface_spec.rb +32 -0
  1650. data/spec/unit/type/k5login_spec.rb +0 -0
  1651. data/spec/unit/type/macauthorization_spec.rb +4 -1
  1652. data/spec/unit/type/mailalias_spec.rb +0 -0
  1653. data/spec/unit/type/maillist_spec.rb +0 -0
  1654. data/spec/unit/type/mcx_spec.rb +0 -0
  1655. data/spec/unit/type/mount_spec.rb +50 -8
  1656. data/spec/unit/type/nagios_spec.rb +0 -0
  1657. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  1658. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  1659. data/spec/unit/type/package_spec.rb +1 -0
  1660. data/spec/unit/type/resources_spec.rb +0 -0
  1661. data/spec/unit/type/schedule_spec.rb +0 -0
  1662. data/spec/unit/type/selboolean_spec.rb +0 -0
  1663. data/spec/unit/type/selmodule_spec.rb +0 -0
  1664. data/spec/unit/type/service_spec.rb +21 -0
  1665. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
  1666. data/spec/unit/type/sshkey_spec.rb +0 -0
  1667. data/spec/unit/type/stage_spec.rb +0 -0
  1668. data/spec/unit/type/tidy_spec.rb +4 -4
  1669. data/spec/unit/type/user_spec.rb +38 -7
  1670. data/spec/unit/type/vlan_spec.rb +1 -1
  1671. data/spec/unit/type/whit_spec.rb +0 -0
  1672. data/spec/unit/type/yumrepo_spec.rb +3 -7
  1673. data/spec/unit/type/zfs_spec.rb +0 -0
  1674. data/spec/unit/type/zone_spec.rb +0 -0
  1675. data/spec/unit/type/zpool_spec.rb +0 -0
  1676. data/spec/unit/type_spec.rb +119 -1
  1677. data/spec/unit/util/at_fork_spec.rb +150 -0
  1678. data/spec/unit/util/autoload_spec.rb +0 -0
  1679. data/spec/unit/util/backups_spec.rb +0 -0
  1680. data/spec/unit/util/character_encoding_spec.rb +229 -0
  1681. data/spec/unit/util/checksums_spec.rb +0 -0
  1682. data/spec/unit/util/colors_spec.rb +0 -0
  1683. data/spec/unit/util/command_line_spec.rb +11 -0
  1684. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  1685. data/spec/unit/util/diff_spec.rb +0 -0
  1686. data/spec/unit/util/errors_spec.rb +0 -0
  1687. data/spec/unit/util/execution_spec.rb +44 -3
  1688. data/spec/unit/util/execution_stub_spec.rb +0 -0
  1689. data/spec/unit/util/feature_spec.rb +1 -1
  1690. data/spec/unit/util/filetype_spec.rb +4 -4
  1691. data/spec/unit/util/http_proxy_spec.rb +91 -0
  1692. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  1693. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  1694. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  1695. data/spec/unit/util/log/destinations_spec.rb +5 -8
  1696. data/spec/unit/util/log_spec.rb +187 -18
  1697. data/spec/unit/util/logging_spec.rb +69 -0
  1698. data/spec/unit/util/metric_spec.rb +9 -2
  1699. data/spec/unit/util/monkey_patches_spec.rb +37 -127
  1700. data/spec/unit/util/multi_match_spec.rb +39 -0
  1701. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  1702. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  1703. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  1704. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1705. data/spec/unit/util/network_device/config_spec.rb +0 -0
  1706. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  1707. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  1708. data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
  1709. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  1710. data/spec/unit/util/network_device_spec.rb +1 -1
  1711. data/spec/unit/util/package_spec.rb +0 -0
  1712. data/spec/unit/util/plist_spec.rb +135 -0
  1713. data/spec/unit/util/posix_spec.rb +0 -0
  1714. data/spec/unit/util/rdoc_spec.rb +0 -0
  1715. data/spec/unit/util/resource_template_spec.rb +2 -2
  1716. data/spec/unit/util/retry_action_spec.rb +0 -0
  1717. data/spec/unit/util/run_mode_spec.rb +44 -13
  1718. data/spec/unit/util/selinux_spec.rb +0 -0
  1719. data/spec/unit/util/splayer_spec.rb +45 -0
  1720. data/spec/unit/util/storage_spec.rb +8 -1
  1721. data/spec/unit/util/suidmanager_spec.rb +0 -0
  1722. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  1723. data/spec/unit/util/tag_set_spec.rb +2 -2
  1724. data/spec/unit/util/tagging_spec.rb +59 -0
  1725. data/spec/unit/util/user_attr_spec.rb +0 -0
  1726. data/spec/unit/util/warnings_spec.rb +0 -0
  1727. data/spec/unit/util/windows/adsi_spec.rb +196 -60
  1728. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  1729. data/spec/unit/util/windows/eventlog_spec.rb +123 -0
  1730. data/spec/unit/util/windows/file_spec.rb +89 -0
  1731. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  1732. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  1733. data/spec/unit/util/windows/sid_spec.rb +76 -24
  1734. data/spec/unit/util/yaml_spec.rb +13 -1
  1735. data/spec/unit/util_spec.rb +456 -17
  1736. data/spec/unit/version_spec.rb +19 -0
  1737. data/spec/watchr.rb +0 -0
  1738. data/tasks/benchmark.rake +3 -3
  1739. data/tasks/cfpropertylist.rake +15 -0
  1740. data/tasks/generate_ast_model.rake +78 -0
  1741. metadata +3474 -3068
  1742. checksums.yaml +0 -7
  1743. data/bin/extlookup2hiera +0 -56
  1744. data/ext/emacs/puppet-mode-init.el +0 -6
  1745. data/ext/emacs/puppet-mode.el +0 -433
  1746. data/ext/puppet-nm-dispatcher +0 -13
  1747. data/ext/puppetlisten/puppetlisten.rb +0 -77
  1748. data/ext/puppetlisten/puppetrun.rb +0 -38
  1749. data/ext/systemd/puppetmaster.service +0 -11
  1750. data/ext/vim/README +0 -3
  1751. data/ext/vim/ftdetect/puppet.vim +0 -2
  1752. data/ext/vim/ftplugin/puppet.vim +0 -94
  1753. data/ext/vim/indent/puppet.vim +0 -76
  1754. data/ext/vim/syntax/puppet.vim +0 -115
  1755. data/lib/puppet/application/file.rb +0 -4
  1756. data/lib/puppet/application/inspect.rb +0 -179
  1757. data/lib/puppet/application/resource_type.rb +0 -7
  1758. data/lib/puppet/data_providers/data_adapter.rb +0 -91
  1759. data/lib/puppet/data_providers/data_function_support.rb +0 -45
  1760. data/lib/puppet/data_providers/function_env_data_provider.rb +0 -28
  1761. data/lib/puppet/data_providers/function_module_data_provider.rb +0 -39
  1762. data/lib/puppet/data_providers.rb +0 -31
  1763. data/lib/puppet/face/file/download.rb +0 -56
  1764. data/lib/puppet/face/file/store.rb +0 -21
  1765. data/lib/puppet/face/file.rb +0 -47
  1766. data/lib/puppet/face/resource_type.rb +0 -84
  1767. data/lib/puppet/feature/cfacter.rb +0 -14
  1768. data/lib/puppet/feature/external_facts.rb +0 -5
  1769. data/lib/puppet/indirector/catalog/static_compiler.rb +0 -213
  1770. data/lib/puppet/indirector/resource_type/parser.rb +0 -101
  1771. data/lib/puppet/indirector/resource_type/rest.rb +0 -7
  1772. data/lib/puppet/indirector/resource_type.rb +0 -5
  1773. data/lib/puppet/parser/yaml_trimmer.rb +0 -7
  1774. data/lib/puppet/plugins/binding_schemes.rb +0 -140
  1775. data/lib/puppet/plugins/data_providers.rb +0 -90
  1776. data/lib/puppet/pops/binder/binder.rb +0 -394
  1777. data/lib/puppet/pops/binder/binder_issues.rb +0 -122
  1778. data/lib/puppet/pops/binder/bindings_checker.rb +0 -197
  1779. data/lib/puppet/pops/binder/bindings_composer.rb +0 -177
  1780. data/lib/puppet/pops/binder/bindings_factory.rb +0 -809
  1781. data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -43
  1782. data/lib/puppet/pops/binder/bindings_loader.rb +0 -83
  1783. data/lib/puppet/pops/binder/bindings_model.rb +0 -68
  1784. data/lib/puppet/pops/binder/bindings_model_dumper.rb +0 -215
  1785. data/lib/puppet/pops/binder/bindings_model_meta.rb +0 -215
  1786. data/lib/puppet/pops/binder/bindings_validator_factory.rb +0 -28
  1787. data/lib/puppet/pops/binder/config/binder_config.rb +0 -107
  1788. data/lib/puppet/pops/binder/config/binder_config_checker.rb +0 -142
  1789. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +0 -32
  1790. data/lib/puppet/pops/binder/config/issues.rb +0 -90
  1791. data/lib/puppet/pops/binder/injector.rb +0 -766
  1792. data/lib/puppet/pops/binder/injector_entry.rb +0 -57
  1793. data/lib/puppet/pops/binder/key_factory.rb +0 -67
  1794. data/lib/puppet/pops/binder/producers.rb +0 -826
  1795. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +0 -34
  1796. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +0 -84
  1797. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +0 -53
  1798. data/lib/puppet/pops/binder/system_bindings.rb +0 -60
  1799. data/lib/puppet/pops/containment.rb +0 -104
  1800. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
  1801. data/lib/puppet/pops/model/model.rb +0 -114
  1802. data/lib/puppet/pops/model/model_meta.rb +0 -582
  1803. data/lib/puppet/pops/types/types_meta.rb +0 -223
  1804. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  1805. data/lib/puppet/vendor/load_plist.rb +0 -1
  1806. data/lib/puppet/vendor/load_rgen.rb +0 -2
  1807. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  1808. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  1809. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  1810. data/lib/puppet/vendor/plist/README +0 -36
  1811. data/lib/puppet/vendor/plist/Rakefile +0 -144
  1812. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  1813. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  1814. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  1815. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  1816. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  1817. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  1818. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  1819. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  1820. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  1821. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  1822. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  1823. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  1824. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  1825. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  1826. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  1827. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  1828. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  1829. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
  1830. data/lib/puppet/vendor/rgen/CHANGELOG +0 -197
  1831. data/lib/puppet/vendor/rgen/MIT-LICENSE +0 -20
  1832. data/lib/puppet/vendor/rgen/PUPPET_README.md +0 -6
  1833. data/lib/puppet/vendor/rgen/README.rdoc +0 -78
  1834. data/lib/puppet/vendor/rgen/Rakefile +0 -41
  1835. data/lib/puppet/vendor/rgen/TODO +0 -41
  1836. data/lib/puppet/vendor/rgen/anounce.txt +0 -61
  1837. data/lib/puppet/vendor/rgen/design_rationale.txt +0 -71
  1838. data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +0 -54
  1839. data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +0 -32
  1840. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +0 -562
  1841. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +0 -45
  1842. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +0 -43
  1843. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +0 -103
  1844. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +0 -89
  1845. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +0 -559
  1846. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +0 -26
  1847. data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +0 -20
  1848. data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +0 -91
  1849. data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +0 -28
  1850. data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +0 -37
  1851. data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +0 -172
  1852. data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +0 -45
  1853. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +0 -218
  1854. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +0 -81
  1855. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +0 -69
  1856. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +0 -47
  1857. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +0 -167
  1858. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +0 -91
  1859. data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +0 -129
  1860. data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +0 -63
  1861. data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +0 -140
  1862. data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +0 -289
  1863. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +0 -66
  1864. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +0 -66
  1865. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +0 -117
  1866. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +0 -169
  1867. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +0 -126
  1868. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +0 -331
  1869. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +0 -94
  1870. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +0 -137
  1871. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +0 -97
  1872. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +0 -128
  1873. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +0 -47
  1874. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +0 -168
  1875. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +0 -556
  1876. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +0 -174
  1877. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +0 -89
  1878. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +0 -77
  1879. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +0 -30
  1880. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +0 -168
  1881. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +0 -23
  1882. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +0 -42
  1883. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +0 -224
  1884. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +0 -334
  1885. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +0 -225
  1886. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +0 -156
  1887. data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +0 -32
  1888. data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +0 -121
  1889. data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +0 -18
  1890. data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +0 -47
  1891. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +0 -116
  1892. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +0 -71
  1893. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +0 -98
  1894. data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +0 -83
  1895. data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +0 -87
  1896. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +0 -234
  1897. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +0 -26
  1898. data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +0 -297
  1899. data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +0 -475
  1900. data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +0 -61
  1901. data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +0 -67
  1902. data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +0 -124
  1903. data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +0 -84
  1904. data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +0 -114
  1905. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +0 -68
  1906. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +0 -142
  1907. data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +0 -29
  1908. data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +0 -42
  1909. data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +0 -329
  1910. data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +0 -79
  1911. data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +0 -127
  1912. data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +0 -64
  1913. data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +0 -35
  1914. data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +0 -23
  1915. data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +0 -54
  1916. data/lib/puppet/vendor/rgen/test/environment_test.rb +0 -90
  1917. data/lib/puppet/vendor/rgen/test/json_test.rb +0 -171
  1918. data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +0 -1482
  1919. data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +0 -57
  1920. data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +0 -131
  1921. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +0 -70
  1922. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +0 -42
  1923. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +0 -44
  1924. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +0 -9
  1925. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +0 -98
  1926. data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +0 -178
  1927. data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +0 -59
  1928. data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +0 -242
  1929. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +0 -163
  1930. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +0 -163
  1931. data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +0 -156
  1932. data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +0 -94
  1933. data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +0 -42
  1934. data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +0 -23
  1935. data/lib/puppet/vendor/rgen/test/model_builder_test.rb +0 -6
  1936. data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +0 -30
  1937. data/lib/puppet/vendor/rgen/test/output_handler_test.rb +0 -58
  1938. data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +0 -48
  1939. data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +0 -102
  1940. data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +0 -117
  1941. data/lib/puppet/vendor/rgen/test/rgen_test.rb +0 -26
  1942. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +0 -29
  1943. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +0 -9
  1944. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +0 -4
  1945. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +0 -1
  1946. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +0 -1
  1947. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +0 -12
  1948. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +0 -5
  1949. data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +0 -11
  1950. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +0 -7
  1951. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +0 -5
  1952. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +0 -8
  1953. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +0 -8
  1954. data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +0 -7
  1955. data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +0 -12
  1956. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +0 -1
  1957. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +0 -3
  1958. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +0 -5
  1959. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +0 -3
  1960. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +0 -3
  1961. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +0 -24
  1962. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +0 -13
  1963. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +0 -10
  1964. data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +0 -17
  1965. data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +0 -31
  1966. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +0 -3
  1967. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +0 -9
  1968. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +0 -4
  1969. data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
  1970. data/lib/puppet/vendor/rgen/test/template_language_test.rb +0 -163
  1971. data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +0 -119
  1972. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
  1973. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +0 -1029
  1974. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +0 -317
  1975. data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +0 -101
  1976. data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +0 -22
  1977. data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +0 -67
  1978. data/lib/puppet/vendor/rgen/test/transformer_test.rb +0 -254
  1979. data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +0 -99
  1980. data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +0 -97
  1981. data/lib/puppet/vendor/rgen/test/util_test.rb +0 -5
  1982. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +0 -94
  1983. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +0 -53
  1984. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +0 -49
  1985. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +0 -75
  1986. data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +0 -160
  1987. data/lib/puppet/vendor/rgen_patch.rb +0 -132
  1988. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  1989. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  1990. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  1991. data/lib/puppet/vendor/semantic/lib/semantic/version.rb +0 -168
  1992. data/lib/puppet/vendor/semantic/lib/semantic/version_range.rb +0 -424
  1993. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  1994. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  1995. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  1996. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  1997. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  1998. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  1999. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  2000. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  2001. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  2002. data/lib/semver.rb +0 -123
  2003. data/man/man8/extlookup2hiera.8 +0 -10
  2004. data/man/man8/puppet-file.8 +0 -189
  2005. data/man/man8/puppet-resource_type.8 +0 -188
  2006. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  2007. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
  2008. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +0 -54
  2009. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +0 -31
  2010. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +0 -32
  2011. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +0 -5
  2012. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  2013. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -9
  2014. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -3
  2015. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -9
  2016. data/spec/integration/data_binding.rb +0 -104
  2017. data/spec/integration/parser/functions/require_spec.rb +0 -43
  2018. data/spec/integration/provider/package_spec.rb +0 -33
  2019. data/spec/unit/application/inspect_spec.rb +0 -287
  2020. data/spec/unit/data_providers/sample_data_provider_spec.rb +0 -52
  2021. data/spec/unit/face/file_spec.rb +0 -10
  2022. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -237
  2023. data/spec/unit/indirector/resource_type/parser_spec.rb +0 -254
  2024. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -14
  2025. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  2026. data/spec/unit/parser/functions/include_spec.rb +0 -55
  2027. data/spec/unit/parser/functions/require_spec.rb +0 -68
  2028. data/spec/unit/pops/binder/binder_spec.rb +0 -43
  2029. data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -155
  2030. data/spec/unit/pops/binder/bindings_composer_spec.rb +0 -64
  2031. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +0 -18
  2032. data/spec/unit/pops/binder/config/binder_config_spec.rb +0 -42
  2033. data/spec/unit/pops/binder/injector_spec.rb +0 -768
  2034. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +0 -23
  2035. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
  2036. data/spec/unit/semver_spec.rb +0 -305
  2037. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  2038. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  2039. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  2040. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  2041. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  2042. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  2043. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  2044. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{usee → modules/usee}/lib/puppet/functions/usee/callee.rb +0 -0
  2045. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/lib/puppet/functions/user/caller.rb +0 -0
@@ -1,76 +1,51 @@
1
1
  Puppet::Parser::Functions::newfunction(:inline_epp, :type => :rvalue, :arity => -2, :doc =>
2
- "Evaluates an Embedded Puppet Template (EPP) string and returns the rendered text result as a String.
2
+ "Evaluates an Embedded Puppet (EPP) template string and returns the rendered
3
+ text result as a String.
3
4
 
4
- EPP support the following tags:
5
+ `inline_epp('<EPP TEMPLATE STRING>', <PARAMETER HASH>)`
5
6
 
6
- * `<%= puppet expression %>` - This tag renders the value of the expression it contains.
7
- * `<% puppet expression(s) %>` - This tag will execute the expression(s) it contains, but renders nothing.
8
- * `<%# comment %>` - The tag and its content renders nothing.
9
- * `<%%` or `%%>` - Renders a literal `<%` or `%>` respectively.
10
- * `<%-` - Same as `<%` but suppresses any leading whitespace.
11
- * `-%>` - Same as `%>` but suppresses any trailing whitespace on the same line (including line break).
12
- * `<%- |parameters| -%>` - When placed as the first tag declares the template's parameters.
7
+ The first argument to this function should be a string containing an EPP
8
+ template. In most cases, the last argument is optional; if used, it should be a
9
+ [hash](/puppet/latest/reference/lang_data_hash.html) that contains parameters to
10
+ pass to the template.
13
11
 
14
- Inline EPP supports the following visibilities of variables in scope which depends on how EPP parameters
15
- are used - see further below:
12
+ - See the [template](/puppet/latest/reference/lang_template.html) documentation
13
+ for general template usage information.
14
+ - See the [EPP syntax](/puppet/latest/reference/lang_template_epp.html)
15
+ documentation for examples of EPP.
16
16
 
17
- * Global scope (i.e. top + node scopes) - global scope is always visible
18
- * Global + Enclosing scope - if the EPP template does not declare parameters, and no arguments are given
19
- * Global + all given arguments - if the EPP template does not declare parameters, and arguments are given
20
- * Global + declared parameters - if the EPP declares parameters, given argument names must match
17
+ For example, to evaluate an inline EPP template and pass it the `docroot` and
18
+ `virtual_docroot` parameters, call the `inline_epp` function like this:
21
19
 
22
- EPP supports parameters by placing an optional parameter list as the very first element in the EPP. As an example,
23
- `<%- |$x, $y, $z='unicorn'| -%>` when placed first in the EPP text declares that the parameters `x` and `y` must be
24
- given as template arguments when calling `inline_epp`, and that `z` if not given as a template argument
25
- defaults to `'unicorn'`. Template parameters are available as variables, e.g.arguments `$x`, `$y` and `$z` in the example.
26
- Note that `<%-` must be used or any leading whitespace will be interpreted as text
20
+ `inline_epp('docroot: <%= $docroot %> Virtual docroot: <%= $virtual_docroot %>',
21
+ { 'docroot' => '/var/www/html', 'virtual_docroot' => '/var/www/example' })`
27
22
 
28
- Arguments are passed to the template by calling `inline_epp` with a Hash as the last argument, where parameters
29
- are bound to values, e.g. `inline_epp('...', {'x'=>10, 'y'=>20})`. Excess arguments may be given
30
- (i.e. undeclared parameters) only if the EPP templates does not declare any parameters at all.
31
- Template parameters shadow variables in outer scopes.
23
+ Puppet produces a syntax error if you pass more parameters than are declared in
24
+ the template's parameter tag. When passing parameters to a template that
25
+ contains a parameter tag, use the same names as the tag's declared parameters.
32
26
 
33
- Note: An inline template is best stated using a single-quoted string, or a heredoc since a double-quoted string
34
- is subject to expression interpolation before the string is parsed as an EPP template. Here are examples
35
- (using heredoc to define the EPP text):
27
+ Parameters are required only if they are declared in the called template's
28
+ parameter tag without default values. Puppet produces an error if the
29
+ `inline_epp` function fails to pass any required parameter.
36
30
 
37
- # produces 'Hello local variable world!'
38
- $x ='local variable'
39
- inline_epptemplate(@(END:epp))
40
- <%- |$x| -%>
41
- Hello <%= $x %> world!
42
- END
31
+ An inline EPP template should be written as a single-quoted string or
32
+ [heredoc](/puppet/latest/reference/lang_data_string.html#heredocs).
33
+ A double-quoted string is subject to expression interpolation before the string
34
+ is parsed as an EPP template.
43
35
 
44
- # produces 'Hello given argument world!'
45
- $x ='local variable world'
46
- inline_epptemplate(@(END:epp), { x =>'given argument'})
47
- <%- |$x| -%>
48
- Hello <%= $x %> world!
49
- END
36
+ For example, to evaluate an inline EPP template using a heredoc, call the
37
+ `inline_epp` function like this:
50
38
 
51
- # produces 'Hello given argument world!'
52
- $x ='local variable world'
53
- inline_epptemplate(@(END:epp), { x =>'given argument'})
54
- <%- |$x| -%>
55
- Hello <%= $x %>!
56
- END
57
-
58
- # results in error, missing value for y
59
- $x ='local variable world'
60
- inline_epptemplate(@(END:epp), { x =>'given argument'})
61
- <%- |$x, $y| -%>
62
- Hello <%= $x %>!
63
- END
64
-
65
- # Produces 'Hello given argument planet'
66
- $x ='local variable world'
67
- inline_epptemplate(@(END:epp), { x =>'given argument'})
68
- <%- |$x, $y=planet| -%>
69
- Hello <%= $x %> <%= $y %>!
70
- END
39
+ ~~~ puppet
40
+ # Outputs 'Hello given argument planet!'
41
+ inline_epp(@(END), { x => 'given argument' })
42
+ <%- | $x, $y = planet | -%>
43
+ Hello <%= $x %> <%= $y %>!
44
+ END
45
+ ~~~
71
46
 
72
47
  - Since 3.5
73
- - Requires Future Parser") do |arguments|
48
+ - Requires [future parser](/puppet/3.8/reference/experiments_future.html) in Puppet 3.5 to 3.8") do |arguments|
74
49
 
75
- function_fail(["inline_epp() is only available when parser/evaluator future is in effect"])
50
+ Error.is4x('inline_epp')
76
51
  end
@@ -1,7 +1,7 @@
1
1
  Puppet::Parser::Functions::newfunction(:inline_template, :type => :rvalue, :arity => -2, :doc =>
2
2
  "Evaluate a template string and return its value. See
3
- [the templating docs](http://docs.puppetlabs.com/guides/templating.html) for
4
- more information. Note that if multiple template strings are specified, their
3
+ [the templating docs](https://docs.puppetlabs.com/puppet/latest/reference/lang_template.html) for
4
+ more information. Note that if multiple template strings are specified, their
5
5
  output is all concatenated and returned as the output of the function.") do |vals|
6
6
 
7
7
  require 'erb'
@@ -15,7 +15,7 @@ Puppet::Parser::Functions::newfunction(:inline_template, :type => :rvalue, :arit
15
15
  wrapper.result(string)
16
16
  rescue => detail
17
17
  raise Puppet::ParseError,
18
- "Failed to parse inline template: #{detail}", detail.backtrace
18
+ _("Failed to parse inline template: %{detail}") % { detail: detail }, detail.backtrace
19
19
  end
20
20
  end.join("")
21
21
  end
@@ -0,0 +1,49 @@
1
+ Puppet::Parser::Functions::newfunction(
2
+ :lest,
3
+ :type => :rvalue,
4
+ :arity => -2,
5
+ :doc => <<-DOC
6
+ Call a [lambda](https://docs.puppet.com/puppet/latest/reference/lang_lambdas.html)
7
+ (which should accept no arguments) if the argument given to the function is `undef`.
8
+ Returns the result of calling the lambda if the argument is `undef`, otherwise the
9
+ given argument.
10
+
11
+ The `lest` function is useful in a chain of `then` calls, or in general
12
+ as a guard against `undef` values. The function can be used to call `fail`, or to
13
+ return a default value.
14
+
15
+ These two expressions are equivalent:
16
+
17
+ ```puppet
18
+ if $x == undef { do_things() }
19
+ lest($x) || { do_things() }
20
+ ```
21
+
22
+ **Example:** Using the `lest` function
23
+
24
+ ```puppet
25
+ $data = {a => [ b, c ] }
26
+ notice $data.dig(a, b, c)
27
+ .then |$x| { $x * 2 }
28
+ .lest || { fail("no value for $data[a][b][c]" }
29
+ ```
30
+
31
+ Would fail the operation because $data[a][b][c] results in `undef`
32
+ (there is no `b` key in `a`).
33
+
34
+ In contrast - this example:
35
+
36
+ ```puppet
37
+ $data = {a => { b => { c => 10 } } }
38
+ notice $data.dig(a, b, c)
39
+ .then |$x| { $x * 2 }
40
+ .lest || { fail("no value for $data[a][b][c]" }
41
+ ```
42
+
43
+ Would notice the value `20`
44
+
45
+ * Since 4.5.0
46
+ DOC
47
+ ) do |args|
48
+ Error.is4x('lest')
49
+ end
@@ -1,154 +1,132 @@
1
- Puppet::Parser::Functions.newfunction(:lookup, :type => :rvalue, :arity => -2, :doc => <<-'ENDHEREDOC') do |args|
2
- Looks up data defined using Data Binding, and Data Providers using different strategies. The lookup searches in
3
- Data Bindings first (if configured; typically Hiera), then in the environments data provider (if any), and last in
4
- the module's data provider (if any) of the module the call to lookup originates from. Thus, the global Data Binding
5
- has higher priority than data provided in the environment, which has higher priority than data provided in a module,
6
-
7
- The lookup function can be called in one of these ways:
8
-
9
- lookup(name)
10
- lookup(name, value_type)
11
- lookup(name, value_type, merge)
12
- lookup(name, value_type, merge, default_value)
13
- lookup(options_hash)
14
- lookup(name, options_hash)
15
-
16
- The function may optionally be called with a code block / lambda with the following signature:
17
-
18
- lookup(...) |$name| { ... }
19
-
20
- The block, if present, is mutually exclusive to the `default_value` and will be called with the `name` used in the
21
- lookup when no value is found. The value produced by the block then becomes the value produced by the lookup.
22
-
23
- The meaning of the parameters or content of the options hash is:
24
-
25
- * `name` - The name or array of names to lookup (first found is returned)
26
- * `value_type` - The type to assert. Defaults to 'Data' See 'Type Specification' below.
27
- * `default_value` - The default value if there was no value found (must comply with the data type)
28
- * `override` - a hash with map from names to values that are used instead of the underlying bindings. If the name
29
- is found here it wins. Defaults to an empty hash.
30
- * `default_values_hash` - a hash with map from names to values that are used as a last resort to obtain a value.
31
- Defaults to an empty hash.
32
- * `merge` - A string of type Enum[unique, hash, merge] or a hash with the key 'strategy' set to that string. See
33
- 'Merge Strategies' below.
34
-
35
- It is not permitted to pass the `name` as both a parameter and in the options hash.
36
-
37
- The search will proceed as follows:
38
- 1. For each name given in the `name` array (or once, if it's just one name):
39
- - If a matching key is found in the `override` hash, it's value is immediately type checked and returned
40
- - Search and optionally merge Data Binding, environment data providers, and module data providers
41
- - Type check and return the value if a matching key is found
42
- 2. For each name given in the `name` array (or once, if it's just one name):
43
- - Type check and return the value if a matching key is found in the `default_values_hash`
44
- 3. Type check and return either the given `default_value` or the result of calling the code block if either exist
45
- 4. Raise an error indicating that no matching value was found
46
-
47
- *Merge Strategies*
48
-
49
- The default behavior of the lookup is to return the first value that is found for the given `name`. The optional
50
- `merge` parameter will change this so that a lookup makes an attempt to find values in all three sources (the Data
51
- Binder, the environment, and the module scope) and then merge these values according to the given strategy. This
52
- does not apply to values found in the 'override' hash. Such values are returned immediately without merging.
53
- Note that `merge` is passed on to allow the underlying provider to return a merged result
54
-
55
- The valid strategies are:
56
- - 'hash' Performs a simple hash-merge by overwriting keys of lower lookup priority. Merged values must be of Hash type
57
- - 'unique' Appends everything to an array containing no nested arrays and where all duplicates have been removed. Can
58
- append values of Scalar or Array[Scalar] type
59
- - 'deep' Performs a deep merge on values of Array and Hash type. See documentation for the DeepMerge gem's deep_merge
60
- operation for details and options.
61
-
62
- The 'deep' strategy can use additional options to control its behavior. Options can be passed as top level
63
- keys in the `merge` parameter when it is a given as a hash. Recognized options are:
64
- - 'knockout_prefix' Set to string value to signify prefix which deletes elements from existing element. Defaults is _undef_
65
- - 'sort_merged_arrays' Set to _true_ to sort all arrays that are merged together. Default is _false_
66
- - 'unpack_arrays' Set to string value used as a deliminator to join all array values and then split them again. Default is _undef_
67
- - 'merge_hash_arrays' Set to _true_ to merge hashes within arrays. Default is _false_
68
-
69
- *Type Specification*
70
-
71
- The type specification is a type in the Puppet Type System, e.g.:
72
- * `Integer`, an integral value with optional range e.g.:
73
- * `Integer[0, default]` - 0 or positive
74
- * `Integer[default, -1]` - negative,
75
- * `Integer[1,100]` - value between 1 and 100 inclusive
76
- * `String`- any string
77
- * `Float` - floating point number (same signature as for Integer for `Integer` ranges)
78
- * `Boolean` - true of false (strict)
79
- * `Array` - an array (of Data by default), or parameterized as `Array[<element_type>]`, where
80
- `<element_type>` is the expected type of elements
81
- * `Hash`, - a hash (of default `Literal` keys and `Data` values), or parameterized as
82
- `Hash[<value_type>]`, `Hash[<key_type>, <value_type>]`, where `<key_type>`, and
83
- `<value_type>` are the types of the keys and values respectively
84
- (key is `Literal` by default).
85
- * `Data` - abstract type representing any `Literal` (including _undef_), `Array[Data]`, or `Hash[Literal, Data]`
86
- * `Pattern[<p1>, <p2>, ..., <pn>]` - an enumeration of valid patterns (one or more) where
87
- a pattern is a regular expression string or regular expression,
88
- e.g. `Pattern['.com$', '.net$']`, `Pattern[/[a-z]+[0-9]+/]`
89
- * `Enum[<s1>, <s2>, ..., <sn>]`, - an enumeration of exact string values (one or more)
90
- e.g. `Enum[blue, red, green]`.
91
- * `Variant[<t1>, <t2>,...<tn>]` - matches one of the listed types (at least one must be given)
92
- e.g. `Variant[Integer[8000,8999], Integer[20000, 99999]]` to accept a value in either range
93
- * `Regexp`- a regular expression (i.e. the result is a regular expression, not a string
94
- matching a regular expression).
95
-
96
- For more options and details about types, see the Puppet Language Reference
97
-
98
- *Handling of undef*
99
-
100
- When no match is found for the given `name` when searching all sources, (including the `override`and
101
- `default_values_hash`), then the value used is either the `default_value` or the value produced by the given block.
102
- If neither is provided, then the lookup will always raise an error. Note that this only applies when there's no
103
- match for the given `name`. It does not happen when a value is found and that value happens to be _undef_.
104
-
105
- *Validation of returned value*
1
+ module Puppet::Parser::Functions
2
+ newfunction(:lookup, :type => :rvalue, :arity => -2, :doc => <<-'ENDHEREDOC') do |args|
3
+ Uses the Puppet lookup system to retrieve a value for a given key. By default,
4
+ this returns the first value found (and fails compilation if no values are
5
+ available), but you can configure it to merge multiple values into one, fail
6
+ gracefully, and more.
7
+
8
+ When looking up a key, Puppet will search up to three tiers of data, in the
9
+ following order:
10
+
11
+ 1. Hiera.
12
+ 2. The current environment's data provider.
13
+ 3. The indicated module's data provider, if the key is of the form
14
+ `<MODULE NAME>::<SOMETHING>`.
15
+
16
+ #### Arguments
17
+
18
+ You must provide the name of a key to look up, and can optionally provide other
19
+ arguments. You can combine these arguments in the following ways:
20
+
21
+ * `lookup( <NAME>, [<VALUE TYPE>], [<MERGE BEHAVIOR>], [<DEFAULT VALUE>] )`
22
+ * `lookup( [<NAME>], <OPTIONS HASH> )`
23
+ * `lookup( as above ) |$key| { # lambda returns a default value }`
24
+
25
+ Arguments in `[square brackets]` are optional.
26
+
27
+ The arguments accepted by `lookup` are as follows:
28
+
29
+ 1. `<NAME>` (string or array) --- The name of the key to look up.
30
+ * This can also be an array of keys. If Puppet doesn't find anything for the
31
+ first key, it will try again with the subsequent ones, only resorting to a
32
+ default value if none of them succeed.
33
+ 2. `<VALUE TYPE>` (data type) --- A
34
+ [data type](https://docs.puppetlabs.com/puppet/latest/reference/lang_data_type.html)
35
+ that must match the retrieved value; if not, the lookup (and catalog
36
+ compilation) will fail. Defaults to `Data` (accepts any normal value).
37
+ 3. `<MERGE BEHAVIOR>` (string or hash; see **"Merge Behaviors"** below) ---
38
+ Whether (and how) to combine multiple values. If present, this overrides any
39
+ merge behavior specified in the data sources. Defaults to no value; Puppet will
40
+ use merge behavior from the data sources if present, and will otherwise do a
41
+ first-found lookup.
42
+ 4. `<DEFAULT VALUE>` (any normal value) --- If present, `lookup` returns this
43
+ when it can't find a normal value. Default values are never merged with found
44
+ values. Like a normal value, the default must match the value type. Defaults to
45
+ no value; if Puppet can't find a normal value, the lookup (and compilation) will
46
+ fail.
47
+ 5. `<OPTIONS HASH>` (hash) --- Alternate way to set the arguments above, plus
48
+ some less-common extra options. If you pass an options hash, you can't combine
49
+ it with any regular arguments (except `<NAME>`). An options hash can have the
50
+ following keys:
51
+ * `'name'` --- Same as `<NAME>` (argument 1). You can pass this as an
52
+ argument or in the hash, but not both.
53
+ * `'value_type'` --- Same as `<VALUE TYPE>` (argument 2).
54
+ * `'merge'` --- Same as `<MERGE BEHAVIOR>` (argument 3).
55
+ * `'default_value'` --- Same as `<DEFAULT VALUE>` (argument 4).
56
+ * `'default_values_hash'` (hash) --- A hash of lookup keys and default
57
+ values. If Puppet can't find a normal value, it will check this hash for the
58
+ requested key before giving up. You can combine this with `default_value` or
59
+ a lambda, which will be used if the key isn't present in this hash. Defaults
60
+ to an empty hash.
61
+ * `'override'` (hash) --- A hash of lookup keys and override values. Puppet
62
+ will check for the requested key in the overrides hash _first;_ if found, it
63
+ returns that value as the _final_ value, ignoring merge behavior. Defaults
64
+ to an empty hash.
65
+
66
+ Finally, `lookup` can take a lambda, which must accept a single parameter.
67
+ This is yet another way to set a default value for the lookup; if no results are
68
+ found, Puppet will pass the requested key to the lambda and use its result as
69
+ the default value.
70
+
71
+ #### Merge Behaviors
72
+
73
+ Puppet lookup uses a hierarchy of data sources, and a given key might have
74
+ values in multiple sources. By default, Puppet returns the first value it finds,
75
+ but it can also continue searching and merge all the values together.
76
+
77
+ > **Note:** Data sources can use the special `lookup_options` metadata key to
78
+ request a specific merge behavior for a key. The `lookup` function will use that
79
+ requested behavior unless you explicitly specify one.
80
+
81
+ The valid merge behaviors are:
82
+
83
+ * `'first'` --- Returns the first value found, with no merging. Puppet lookup's
84
+ default behavior.
85
+ * `'unique'` (called "array merge" in classic Hiera) --- Combines any number of
86
+ arrays and scalar values to return a merged, flattened array with all duplicate
87
+ values removed. The lookup will fail if any hash values are found.
88
+ * `'hash'` --- Combines the keys and values of any number of hashes to return a
89
+ merged hash. If the same key exists in multiple source hashes, Puppet will use
90
+ the value from the highest-priority data source; it won't recursively merge the
91
+ values.
92
+ * `'deep'` --- Combines the keys and values of any number of hashes to return a
93
+ merged hash. If the same key exists in multiple source hashes, Puppet will
94
+ recursively merge hash or array values (with duplicate values removed from
95
+ arrays). For conflicting scalar values, the highest-priority value will win.
96
+ * `{'strategy' => 'first|unique|hash'}` --- Same as the string versions of these
97
+ merge behaviors.
98
+ * `{'strategy' => 'deep', <DEEP OPTION> => <VALUE>, ...}` --- Same as `'deep'`,
99
+ but can adjust the merge with additional options. The available options are:
100
+ * `'knockout_prefix'` (string or undef) --- A string prefix to indicate a
101
+ value should be _removed_ from the final result. Defaults to `undef`, which
102
+ disables this feature.
103
+ * `'sort_merged_arrays'` (boolean) --- Whether to sort all arrays that are
104
+ merged together. Defaults to `false`.
105
+ * `'merge_hash_arrays'` (boolean) --- Whether to merge hashes within arrays.
106
+ Defaults to `false`.
107
+
108
+ #### Examples
109
+
110
+ Look up a key and return the first value found:
111
+
112
+ lookup('ntp::service_name')
113
+
114
+ Do a unique merge lookup of class names, then add all of those classes to the
115
+ catalog (like `hiera_include`):
116
+
117
+ lookup('classes', Array[String], 'unique').include
118
+
119
+ Do a deep hash merge lookup of user data, but let higher priority sources
120
+ remove values by prefixing them with `--`:
121
+
122
+ lookup( { 'name' => 'users',
123
+ 'merge' => {
124
+ 'strategy' => 'deep',
125
+ 'knockout_prefix' => '--',
126
+ },
127
+ })
106
128
 
107
- The produced value is subject to type validation using the `value_type` (if given) and an error is raised unless
108
- the resulting value is of correct type.
109
-
110
- *Examples*
111
-
112
- When called with one argument; **the name**, it
113
- returns the bound value with the given name after having asserted it has the default datatype `Data`:
114
-
115
- lookup('the_name')
116
-
117
- When called with two arguments; **the name**, and **the expected type**, it
118
- returns the bound value with the given name after having asserted it has the given data
119
- type ('String' in the example):
120
-
121
- lookup('the_name', String)
122
-
123
- When called with four arguments, **the name**, the **expected type**, the **merge** strategy, and a
124
- **default value**, it returns the bound value with the given name, or the default after having asserted the value
125
- has the given data type:
126
-
127
- lookup('the_name', String, undef, 'Fred')
128
- lookup('the_name', Array[String], 'unique', [Fred])
129
-
130
- Using a lambda to provide a default value by calling a function:
131
-
132
- lookup('the_size', Integer[1,100]) |$name| {
133
- obtain_size_default()
134
- }
135
-
136
- There are two ways to make lookup return undef when no matching key was found instead of raising an error.
137
- Either call it with four arguments (the `merge` argument must be present even when using the default strategy
138
- to ensure that the four argument variant is used):
139
-
140
- $are_you_there = lookup('peekaboo', Optional[String], undef, undef)
141
-
142
- or call it using an options hash:
143
-
144
- $are_you_there = lookup('peekaboo', { 'default_value' => undef })
145
- $are_you_there = lookup({ 'name' => 'peekaboo', 'default_value' => undef })
146
-
147
- or with a block that produces an undef value:
148
-
149
- $are_you_there = lookup('peekaboo', Optional[String]) |$name| { undef }
150
-
151
- - Since 4.0.0
152
129
  ENDHEREDOC
153
- function_fail(["lookup() has been converted to 4x API"])
130
+ Error.is4x('lookup')
131
+ end
154
132
  end
@@ -3,39 +3,74 @@ Puppet::Parser::Functions::newfunction(
3
3
  :type => :rvalue,
4
4
  :arity => -3,
5
5
  :doc => <<-DOC
6
- Applies a parameterized block to each element in a sequence of entries from the first
7
- argument and returns an array with the result of each invocation of the parameterized block.
6
+ Applies a [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
7
+ to every value in a data structure and returns an array containing the results.
8
8
 
9
- This function takes two mandatory arguments: the first should be an Array, Hash, or of Enumerable type
10
- (integer, Integer range, or String), and the second a parameterized block as produced by the puppet syntax:
9
+ This function takes two mandatory arguments, in this order:
11
10
 
12
- $a.map |$x| { ... }
13
- map($a) |$x| { ... }
11
+ 1. An array or hash the function will iterate over.
12
+ 2. A lambda, which the function calls for each element in the first argument. It can
13
+ request one or two parameters.
14
14
 
15
- When the first argument `$a` is an Array or of enumerable type, the block is called with each entry in turn.
16
- When the first argument is a hash the entry is an array with `[key, value]`.
15
+ **Example**: Using the `map` function
17
16
 
18
- Example Using map with two arguments
17
+ `$transformed_data = $data.map |$parameter| { <PUPPET CODE BLOCK> }`
19
18
 
20
- # Turns hash into array of values
21
- $a.map |$x|{ $x[1] }
19
+ or
22
20
 
23
- # Turns hash into array of keys
24
- $a.map |$x| { $x[0] }
21
+ `$transformed_data = map($data) |$parameter| { <PUPPET CODE BLOCK> }`
25
22
 
26
- When using a block with 2 parameters, the element's index (starting from 0) for an array, and the key for a hash
27
- is given to the block's first parameter, and the value is given to the block's second parameter.args.
23
+ When the first argument (`$data` in the above example) is an array, Puppet passes each
24
+ value in turn to the lambda.
28
25
 
29
- Example Using map with two arguments
26
+ **Example**: Using the `map` function with an array and a one-parameter lambda
30
27
 
31
- # Turns hash into array of values
32
- $a.map |$key,$val|{ $val }
28
+ ~~~ puppet
29
+ # For the array $data, return an array containing each value multiplied by 10
30
+ $data = [1,2,3]
31
+ $transformed_data = $data.map |$items| { $items * 10 }
32
+ # $transformed_data contains [10,20,30]
33
+ ~~~
33
34
 
34
- # Turns hash into array of keys
35
- $a.map |$key,$val|{ $key }
35
+ When the first argument is a hash, Puppet passes each key and value pair to the lambda
36
+ as an array in the form `[key, value]`.
37
+
38
+ **Example**: Using the `map` function with a hash and a one-parameter lambda
39
+
40
+ ~~~ puppet
41
+ # For the hash $data, return an array containing the keys
42
+ $data = {'a'=>1,'b'=>2,'c'=>3}
43
+ $transformed_data = $data.map |$items| { $items[0] }
44
+ # $transformed_data contains ['a','b','c']
45
+ ~~~
46
+
47
+ When the first argument is an array and the lambda has two parameters, Puppet passes the
48
+ array's indexes (enumerated from 0) in the first parameter and its values in the second
49
+ parameter.
50
+
51
+ **Example**: Using the `map` function with an array and a two-parameter lambda
52
+
53
+ ~~~ puppet
54
+ # For the array $data, return an array containing the indexes
55
+ $data = [1,2,3]
56
+ $transformed_data = $data.map |$index,$value| { $index }
57
+ # $transformed_data contains [0,1,2]
58
+ ~~~
59
+
60
+ When the first argument is a hash, Puppet passes its keys to the first parameter and its
61
+ values to the second parameter.
62
+
63
+ **Example**: Using the `map` function with a hash and a two-parameter lambda
64
+
65
+ ~~~ puppet
66
+ # For the hash $data, return an array containing each value
67
+ $data = {'a'=>1,'b'=>2,'c'=>3}
68
+ $transformed_data = $data.map |$key,$value| { $value }
69
+ # $transformed_data contains [1,2,3]
70
+ ~~~
36
71
 
37
72
  - Since 4.0.0
38
73
  DOC
39
74
  ) do |args|
40
- function_fail(["map() is only available when parser/evaluator future is in effect"])
75
+ Error.is4x('map')
41
76
  end