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