puppet 4.0.0 → 4.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1644) hide show
  1. data/COMMITTERS.md +2 -2
  2. data/CONTRIBUTING.md +34 -10
  3. data/Gemfile +25 -9
  4. data/LICENSE +3 -3
  5. data/MAINTAINERS +71 -0
  6. data/README.md +9 -11
  7. data/Rakefile +29 -0
  8. data/conf/auth.conf +2 -2
  9. data/conf/puppet.conf +1 -1
  10. data/ext/README.environment +1 -1
  11. data/ext/build_defaults.yaml +10 -37
  12. data/ext/debian/README.source +1 -1
  13. data/ext/debian/control +3 -5
  14. data/ext/debian/copyright +4 -4
  15. data/ext/debian/puppet.default +0 -5
  16. data/ext/debian/puppet.init +1 -16
  17. data/ext/debian/puppet.logrotate +14 -5
  18. data/ext/debian/puppetmaster.README.debian +11 -9
  19. data/ext/emacs/puppet-mode.el +1 -1
  20. data/ext/envpuppet +2 -2
  21. data/ext/ips/puppetagent.xml +1 -1
  22. data/ext/ips/puppetmaster.xml +1 -1
  23. data/ext/osx/puppet.plist +30 -0
  24. data/ext/project_data.yaml +29 -13
  25. data/ext/puppet-test +3 -3
  26. data/ext/rack/example-passenger-vhost.conf +1 -1
  27. data/ext/redhat/client.init +67 -17
  28. data/ext/redhat/client.sysconfig +1 -10
  29. data/ext/redhat/logrotate +15 -3
  30. data/ext/redhat/puppet.spec.erb +6 -11
  31. data/ext/redhat/server.init +1 -1
  32. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  33. data/ext/solaris/pkginfo +1 -1
  34. data/ext/solaris/smf/puppet +44 -0
  35. data/ext/solaris/smf/puppet.xml +44 -0
  36. data/ext/suse/client.init +30 -33
  37. data/ext/suse/puppet.spec +2 -2
  38. data/ext/suse/server.init +2 -2
  39. data/ext/systemd/puppet.service +13 -1
  40. data/ext/upload_facts.rb +1 -1
  41. data/ext/windows/puppet_interactive.bat +6 -0
  42. data/ext/windows/puppet_shell.bat +9 -0
  43. data/ext/windows/run_puppet_interactive.bat +9 -0
  44. data/ext/windows/service/daemon.rb +2 -1
  45. data/ext/yaml_nodes.rb +1 -1
  46. data/install.rb +98 -65
  47. data/lib/hiera/puppet_function.rb +27 -18
  48. data/lib/hiera/scope.rb +12 -14
  49. data/lib/hiera_puppet.rb +6 -14
  50. data/lib/puppet/agent/locker.rb +11 -2
  51. data/lib/puppet/agent.rb +12 -27
  52. data/lib/puppet/application/agent.rb +40 -19
  53. data/lib/puppet/application/apply.rb +69 -16
  54. data/lib/puppet/application/ca.rb +1 -0
  55. data/lib/puppet/application/cert.rb +52 -3
  56. data/lib/puppet/application/device.rb +10 -5
  57. data/lib/puppet/application/face_base.rb +4 -0
  58. data/lib/puppet/application/filebucket.rb +79 -5
  59. data/lib/puppet/application/generate.rb +5 -0
  60. data/lib/puppet/application/inspect.rb +2 -2
  61. data/lib/puppet/application/lookup.rb +344 -0
  62. data/lib/puppet/application/master.rb +22 -7
  63. data/lib/puppet/application/resource.rb +2 -6
  64. data/lib/puppet/application.rb +6 -4
  65. data/lib/puppet/application_support.rb +1 -1
  66. data/lib/puppet/compilable_resource_type.rb +15 -0
  67. data/lib/puppet/configurer/plugin_handler.rb +7 -5
  68. data/lib/puppet/configurer.rb +184 -42
  69. data/lib/puppet/context/trusted_information.rb +21 -1
  70. data/lib/puppet/context.rb +16 -1
  71. data/lib/puppet/daemon.rb +17 -13
  72. data/lib/puppet/data_binding.rb +4 -2
  73. data/lib/puppet/data_providers/data_adapter.rb +14 -68
  74. data/lib/puppet/data_providers/data_function_support.rb +13 -26
  75. data/lib/puppet/data_providers/function_env_data_provider.rb +7 -9
  76. data/lib/puppet/data_providers/function_module_data_provider.rb +7 -22
  77. data/lib/puppet/data_providers/hiera_config.rb +151 -0
  78. data/lib/puppet/data_providers/hiera_env_data_provider.rb +25 -0
  79. data/lib/puppet/data_providers/hiera_interpolate.rb +21 -0
  80. data/lib/puppet/data_providers/hiera_module_data_provider.rb +30 -0
  81. data/lib/puppet/data_providers/hiera_support.rb +42 -0
  82. data/lib/puppet/data_providers/json_data_provider_factory.rb +38 -0
  83. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +40 -0
  84. data/lib/puppet/data_providers.rb +17 -14
  85. data/lib/puppet/defaults.rb +279 -57
  86. data/lib/puppet/environments.rb +105 -10
  87. data/lib/puppet/error.rb +31 -1
  88. data/lib/puppet/external/dot.rb +1 -1
  89. data/lib/puppet/face/ca.rb +6 -1
  90. data/lib/puppet/face/catalog.rb +1 -1
  91. data/lib/puppet/face/certificate.rb +7 -1
  92. data/lib/puppet/face/certificate_request.rb +2 -0
  93. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  94. data/lib/puppet/face/config.rb +2 -2
  95. data/lib/puppet/face/epp.rb +63 -17
  96. data/lib/puppet/face/file.rb +3 -0
  97. data/lib/puppet/face/generate.rb +64 -0
  98. data/lib/puppet/face/help/face.erb +3 -0
  99. data/lib/puppet/face/help/man.erb +1 -1
  100. data/lib/puppet/face/help.rb +35 -27
  101. data/lib/puppet/face/key.rb +1 -0
  102. data/lib/puppet/face/man.rb +5 -3
  103. data/lib/puppet/face/module/changes.rb +2 -1
  104. data/lib/puppet/face/module/generate.rb +1 -1
  105. data/lib/puppet/face/module/install.rb +6 -6
  106. data/lib/puppet/face/parser.rb +12 -9
  107. data/lib/puppet/face/plugin.rb +7 -14
  108. data/lib/puppet/face/status.rb +4 -1
  109. data/lib/puppet/feature/base.rb +9 -2
  110. data/lib/puppet/feature/cfacter.rb +1 -0
  111. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  112. data/lib/puppet/feature/external_facts.rb +1 -1
  113. data/lib/puppet/feature/hocon.rb +3 -0
  114. data/lib/puppet/feature/telnet.rb +9 -0
  115. data/lib/puppet/file_bucket/dipper.rb +58 -2
  116. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  117. data/lib/puppet/file_serving/metadata.rb +30 -9
  118. data/lib/puppet/file_serving/terminus_helper.rb +7 -8
  119. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  120. data/lib/puppet/file_system/file_impl.rb +11 -2
  121. data/lib/puppet/file_system/memory_impl.rb +9 -1
  122. data/lib/puppet/file_system/path_pattern.rb +1 -0
  123. data/lib/puppet/file_system/uniquefile.rb +3 -3
  124. data/lib/puppet/file_system/windows.rb +36 -13
  125. data/lib/puppet/file_system.rb +46 -5
  126. data/lib/puppet/forge/repository.rb +2 -34
  127. data/lib/puppet/forge.rb +7 -7
  128. data/lib/puppet/functions/alert.rb +14 -0
  129. data/lib/puppet/functions/assert_type.rb +57 -21
  130. data/lib/puppet/functions/binary_file.rb +19 -0
  131. data/lib/puppet/functions/break.rb +22 -0
  132. data/lib/puppet/functions/contain.rb +33 -0
  133. data/lib/puppet/functions/crit.rb +14 -0
  134. data/lib/puppet/functions/debug.rb +14 -0
  135. data/lib/puppet/functions/defined.rb +160 -0
  136. data/lib/puppet/functions/dig.rb +23 -0
  137. data/lib/puppet/functions/each.rb +89 -39
  138. data/lib/puppet/functions/emerg.rb +14 -0
  139. data/lib/puppet/functions/epp.rb +29 -37
  140. data/lib/puppet/functions/err.rb +14 -0
  141. data/lib/puppet/functions/filter.rb +64 -38
  142. data/lib/puppet/functions/find_file.rb +31 -0
  143. data/lib/puppet/functions/hiera.rb +76 -3
  144. data/lib/puppet/functions/hiera_array.rb +66 -4
  145. data/lib/puppet/functions/hiera_hash.rb +74 -2
  146. data/lib/puppet/functions/hiera_include.rb +78 -5
  147. data/lib/puppet/functions/hocon_data.rb +24 -0
  148. data/lib/puppet/functions/include.rb +21 -0
  149. data/lib/puppet/functions/info.rb +14 -0
  150. data/lib/puppet/functions/inline_epp.rb +44 -71
  151. data/lib/puppet/functions/json_data.rb +18 -0
  152. data/lib/puppet/functions/lest.rb +17 -0
  153. data/lib/puppet/functions/lookup.rb +172 -184
  154. data/lib/puppet/functions/map.rb +60 -33
  155. data/lib/puppet/functions/match.rb +30 -12
  156. data/lib/puppet/functions/new.rb +31 -0
  157. data/lib/puppet/functions/next.rb +23 -0
  158. data/lib/puppet/functions/notice.rb +14 -0
  159. data/lib/puppet/functions/reduce.rb +99 -70
  160. data/lib/puppet/functions/regsubst.rb +23 -26
  161. data/lib/puppet/functions/require.rb +37 -0
  162. data/lib/puppet/functions/return.rb +22 -0
  163. data/lib/puppet/functions/reverse_each.rb +25 -0
  164. data/lib/puppet/functions/scanf.rb +15 -18
  165. data/lib/puppet/functions/slice.rb +22 -36
  166. data/lib/puppet/functions/split.rb +3 -3
  167. data/lib/puppet/functions/step.rb +26 -0
  168. data/lib/puppet/functions/strftime.rb +35 -0
  169. data/lib/puppet/functions/then.rb +14 -0
  170. data/lib/puppet/functions/type.rb +31 -0
  171. data/lib/puppet/functions/unwrap.rb +40 -0
  172. data/lib/puppet/functions/versioncmp.rb +36 -0
  173. data/lib/puppet/functions/warning.rb +14 -0
  174. data/lib/puppet/functions/with.rb +15 -7
  175. data/lib/puppet/functions/yaml_data.rb +21 -0
  176. data/lib/puppet/functions.rb +164 -31
  177. data/lib/puppet/generate/models/type/property.rb +70 -0
  178. data/lib/puppet/generate/models/type/type.rb +61 -0
  179. data/lib/puppet/generate/templates/type/pcore.erb +42 -0
  180. data/lib/puppet/generate/type.rb +239 -0
  181. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  182. data/lib/puppet/graph/simple_graph.rb +6 -8
  183. data/lib/puppet/indirector/catalog/compiler.rb +196 -9
  184. data/lib/puppet/indirector/catalog/static_compiler.rb +50 -31
  185. data/lib/puppet/indirector/data_binding/none.rb +4 -1
  186. data/lib/puppet/indirector/face.rb +6 -1
  187. data/lib/puppet/indirector/facts/facter.rb +9 -1
  188. data/lib/puppet/indirector/file_bucket_file/file.rb +68 -3
  189. data/lib/puppet/indirector/file_content/http.rb +15 -0
  190. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  191. data/lib/puppet/indirector/generic_http.rb +16 -0
  192. data/lib/puppet/indirector/hiera.rb +7 -1
  193. data/lib/puppet/indirector/indirection.rb +12 -3
  194. data/lib/puppet/indirector/json.rb +3 -3
  195. data/lib/puppet/indirector/key/ca.rb +2 -2
  196. data/lib/puppet/indirector/msgpack.rb +2 -2
  197. data/lib/puppet/indirector/node/exec.rb +1 -1
  198. data/lib/puppet/indirector/node/ldap.rb +1 -1
  199. data/lib/puppet/indirector/request.rb +36 -12
  200. data/lib/puppet/indirector/resource_type/parser.rb +10 -3
  201. data/lib/puppet/indirector/rest.rb +80 -5
  202. data/lib/puppet/indirector/terminus.rb +4 -4
  203. data/lib/puppet/info_service/class_information_service.rb +111 -0
  204. data/lib/puppet/info_service.rb +7 -0
  205. data/lib/puppet/interface/documentation.rb +1 -1
  206. data/lib/puppet/interface/face_collection.rb +1 -1
  207. data/lib/puppet/interface.rb +14 -2
  208. data/lib/puppet/loaders.rb +6 -0
  209. data/lib/puppet/metatype/manager.rb +25 -8
  210. data/lib/puppet/module.rb +48 -20
  211. data/lib/puppet/module_tool/applications/application.rb +1 -1
  212. data/lib/puppet/module_tool/applications/builder.rb +5 -4
  213. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  214. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  215. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  216. data/lib/puppet/module_tool/checksums.rb +1 -1
  217. data/lib/puppet/module_tool/errors/installer.rb +2 -2
  218. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  219. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  220. data/lib/puppet/module_tool/metadata.rb +34 -11
  221. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +14 -3
  222. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
  223. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +19 -4
  224. data/lib/puppet/module_tool/skeleton/templates/generator/{tests → examples}/init.pp.erb +2 -2
  225. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +25 -18
  226. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -2
  227. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  228. data/lib/puppet/module_tool.rb +5 -5
  229. data/lib/puppet/network/auth_config_parser.rb +1 -1
  230. data/lib/puppet/network/authconfig.rb +21 -1
  231. data/lib/puppet/network/authorization.rb +8 -1
  232. data/lib/puppet/network/http/api/indirected_routes.rb +23 -34
  233. data/lib/puppet/network/http/api/master/v3/environment.rb +63 -0
  234. data/lib/puppet/network/http/api/master/v3.rb +7 -1
  235. data/lib/puppet/network/http/connection.rb +2 -0
  236. data/lib/puppet/network/http/error.rb +1 -1
  237. data/lib/puppet/network/http/factory.rb +8 -4
  238. data/lib/puppet/network/http/handler.rb +3 -2
  239. data/lib/puppet/network/http/pool.rb +9 -0
  240. data/lib/puppet/network/http/rack/rest.rb +25 -2
  241. data/lib/puppet/network/http/webrick.rb +2 -1
  242. data/lib/puppet/network/rights.rb +1 -11
  243. data/lib/puppet/node/environment.rb +53 -14
  244. data/lib/puppet/node/facts.rb +1 -1
  245. data/lib/puppet/node.rb +39 -8
  246. data/lib/puppet/parameter/boolean.rb +1 -1
  247. data/lib/puppet/parameter/value.rb +1 -1
  248. data/lib/puppet/parameter.rb +23 -3
  249. data/lib/puppet/parser/ast/pops_bridge.rb +101 -27
  250. data/lib/puppet/parser/ast/resource.rb +5 -0
  251. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  252. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  253. data/lib/puppet/parser/ast.rb +5 -0
  254. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  255. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +60 -0
  256. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  257. data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  258. data/lib/puppet/parser/compiler.rb +343 -28
  259. data/lib/puppet/parser/e4_parser_adapter.rb +13 -12
  260. data/lib/puppet/parser/environment_compiler.rb +201 -0
  261. data/lib/puppet/parser/functions/assert_type.rb +47 -17
  262. data/lib/puppet/parser/functions/binary_file.rb +24 -0
  263. data/lib/puppet/parser/functions/break.rb +39 -0
  264. data/lib/puppet/parser/functions/contain.rb +7 -15
  265. data/lib/puppet/parser/functions/create_resources.rb +39 -23
  266. data/lib/puppet/parser/functions/defined.rb +106 -69
  267. data/lib/puppet/parser/functions/dig.rb +29 -0
  268. data/lib/puppet/parser/functions/each.rb +86 -28
  269. data/lib/puppet/parser/functions/epp.rb +30 -38
  270. data/lib/puppet/parser/functions/file.rb +3 -1
  271. data/lib/puppet/parser/functions/filter.rb +60 -24
  272. data/lib/puppet/parser/functions/find_file.rb +28 -0
  273. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  274. data/lib/puppet/parser/functions/hiera.rb +98 -28
  275. data/lib/puppet/parser/functions/hiera_array.rb +86 -29
  276. data/lib/puppet/parser/functions/hiera_hash.rb +96 -31
  277. data/lib/puppet/parser/functions/hiera_include.rb +96 -41
  278. data/lib/puppet/parser/functions/include.rb +4 -8
  279. data/lib/puppet/parser/functions/inline_epp.rb +36 -61
  280. data/lib/puppet/parser/functions/inline_template.rb +2 -2
  281. data/lib/puppet/parser/functions/lest.rb +49 -0
  282. data/lib/puppet/parser/functions/lookup.rb +129 -151
  283. data/lib/puppet/parser/functions/map.rb +56 -21
  284. data/lib/puppet/parser/functions/match.rb +29 -13
  285. data/lib/puppet/parser/functions/new.rb +926 -0
  286. data/lib/puppet/parser/functions/next.rb +38 -0
  287. data/lib/puppet/parser/functions/reduce.rb +98 -61
  288. data/lib/puppet/parser/functions/regsubst.rb +4 -2
  289. data/lib/puppet/parser/functions/require.rb +4 -27
  290. data/lib/puppet/parser/functions/return.rb +71 -0
  291. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  292. data/lib/puppet/parser/functions/scanf.rb +25 -31
  293. data/lib/puppet/parser/functions/slice.rb +18 -25
  294. data/lib/puppet/parser/functions/split.rb +2 -2
  295. data/lib/puppet/parser/functions/step.rb +84 -0
  296. data/lib/puppet/parser/functions/strftime.rb +185 -0
  297. data/lib/puppet/parser/functions/then.rb +73 -0
  298. data/lib/puppet/parser/functions/type.rb +53 -0
  299. data/lib/puppet/parser/functions/with.rb +17 -9
  300. data/lib/puppet/parser/functions.rb +34 -16
  301. data/lib/puppet/parser/resource.rb +149 -35
  302. data/lib/puppet/parser/scope.rb +296 -73
  303. data/lib/puppet/parser/templatewrapper.rb +2 -1
  304. data/lib/puppet/parser/type_loader.rb +1 -1
  305. data/lib/puppet/parser.rb +3 -1
  306. data/lib/puppet/plugins/configuration.rb +11 -2
  307. data/lib/puppet/plugins/data_providers/data_provider.rb +406 -0
  308. data/lib/puppet/plugins/data_providers/registry.rb +51 -0
  309. data/lib/puppet/plugins/data_providers.rb +15 -60
  310. data/lib/puppet/pops/adaptable.rb +4 -4
  311. data/lib/puppet/pops/adapters.rb +115 -31
  312. data/lib/puppet/pops/binder/binder.rb +21 -17
  313. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  314. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  315. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  316. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  317. data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
  318. data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
  319. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  320. data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
  321. data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
  322. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  323. data/lib/puppet/pops/binder/injector.rb +55 -50
  324. data/lib/puppet/pops/binder/key_factory.rb +10 -12
  325. data/lib/puppet/pops/binder/producers.rb +70 -65
  326. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
  327. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
  328. data/lib/puppet/pops/evaluator/access_operator.rb +261 -142
  329. data/lib/puppet/pops/evaluator/closure.rb +251 -109
  330. data/lib/puppet/pops/evaluator/collector_transformer.rb +45 -26
  331. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  332. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -0
  333. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +5 -2
  334. data/lib/puppet/pops/evaluator/compare_operator.rb +110 -10
  335. data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -10
  336. data/lib/puppet/pops/evaluator/evaluator_impl.rb +239 -117
  337. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  338. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +84 -0
  339. data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  340. data/lib/puppet/pops/evaluator/relationship_operator.rb +18 -11
  341. data/lib/puppet/pops/evaluator/runtime3_converter.rb +60 -51
  342. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
  343. data/lib/puppet/pops/evaluator/runtime3_support.rb +119 -82
  344. data/lib/puppet/pops/functions/dispatch.rb +15 -3
  345. data/lib/puppet/pops/functions/dispatcher.rb +13 -5
  346. data/lib/puppet/pops/functions/function.rb +30 -4
  347. data/lib/puppet/pops/issue_reporter.rb +48 -20
  348. data/lib/puppet/pops/issues.rb +208 -18
  349. data/lib/puppet/pops/label_provider.rb +18 -4
  350. data/lib/puppet/pops/loader/base_loader.rb +64 -18
  351. data/lib/puppet/pops/loader/dependency_loader.rb +27 -2
  352. data/lib/puppet/pops/loader/loader.rb +53 -48
  353. data/lib/puppet/pops/loader/loader_paths.rb +110 -6
  354. data/lib/puppet/pops/loader/module_loaders.rb +72 -28
  355. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  356. data/lib/puppet/pops/loader/predefined_loader.rb +29 -0
  357. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
  358. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
  359. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -4
  360. data/lib/puppet/pops/loader/runtime3_type_loader.rb +96 -0
  361. data/lib/puppet/pops/loader/static_loader.rb +139 -38
  362. data/lib/puppet/pops/loader/type_definition_instantiator.rb +93 -0
  363. data/lib/puppet/pops/loader/typed_name.rb +48 -0
  364. data/lib/puppet/pops/loaders.rb +207 -29
  365. data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
  366. data/lib/puppet/pops/lookup/context.rb +136 -0
  367. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  368. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
  369. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
  370. data/lib/puppet/pops/lookup/data_provider.rb +102 -0
  371. data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
  372. data/lib/puppet/pops/lookup/explainer.rb +593 -0
  373. data/lib/puppet/pops/lookup/function_provider.rb +82 -0
  374. data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
  375. data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
  376. data/lib/puppet/pops/lookup/interpolation.rb +136 -0
  377. data/lib/puppet/pops/lookup/invocation.rb +212 -0
  378. data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
  379. data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
  380. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  381. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
  382. data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
  383. data/lib/puppet/pops/lookup/sub_lookup.rb +90 -0
  384. data/lib/puppet/pops/lookup.rb +45 -49
  385. data/lib/puppet/pops/merge_strategy.rb +183 -47
  386. data/lib/puppet/pops/migration/migration_checker.rb +58 -0
  387. data/lib/puppet/pops/model/ast_transformer.rb +8 -1
  388. data/lib/puppet/pops/model/factory.rb +257 -161
  389. data/lib/puppet/pops/model/model.rb +25 -8
  390. data/lib/puppet/pops/model/model_label_provider.rb +30 -6
  391. data/lib/puppet/pops/model/model_meta.rb +50 -3
  392. data/lib/puppet/pops/model/model_tree_dumper.rb +44 -0
  393. data/lib/puppet/pops/parser/code_merger.rb +13 -1
  394. data/lib/puppet/pops/parser/egrammar.ra +155 -38
  395. data/lib/puppet/pops/parser/eparser.rb +1894 -1314
  396. data/lib/puppet/pops/parser/epp_support.rb +27 -12
  397. data/lib/puppet/pops/parser/evaluating_parser.rb +27 -13
  398. data/lib/puppet/pops/parser/heredoc_support.rb +20 -16
  399. data/lib/puppet/pops/parser/interpolation_support.rb +14 -1
  400. data/lib/puppet/pops/parser/lexer2.rb +465 -379
  401. data/lib/puppet/pops/parser/lexer_support.rb +132 -25
  402. data/lib/puppet/pops/parser/locator.rb +63 -9
  403. data/lib/puppet/pops/parser/parser_support.rb +49 -40
  404. data/lib/puppet/pops/parser/slurp_support.rb +37 -12
  405. data/lib/puppet/pops/patterns.rb +16 -1
  406. data/lib/puppet/pops/pcore.rb +96 -0
  407. data/lib/puppet/pops/puppet_stack.rb +43 -0
  408. data/lib/puppet/pops/resource/param.rb +55 -0
  409. data/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
  410. data/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
  411. data/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
  412. data/lib/puppet/pops/serialization/abstract_writer.rb +207 -0
  413. data/lib/puppet/pops/serialization/deserializer.rb +77 -0
  414. data/lib/puppet/pops/serialization/extension.rb +157 -0
  415. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  416. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  417. data/lib/puppet/pops/serialization/json.rb +297 -0
  418. data/lib/puppet/pops/serialization/object.rb +71 -0
  419. data/lib/puppet/pops/serialization/rgen.rb +152 -0
  420. data/lib/puppet/pops/serialization/serializer.rb +118 -0
  421. data/lib/puppet/pops/serialization/time_factory.rb +67 -0
  422. data/lib/puppet/pops/serialization.rb +17 -0
  423. data/lib/puppet/pops/time/timespan.rb +718 -0
  424. data/lib/puppet/pops/time/timestamp.rb +148 -0
  425. data/lib/puppet/pops/types/annotatable.rb +36 -0
  426. data/lib/puppet/pops/types/class_loader.rb +25 -23
  427. data/lib/puppet/pops/types/enumeration.rb +9 -27
  428. data/lib/puppet/pops/types/implementation_registry.rb +141 -0
  429. data/lib/puppet/pops/types/iterable.rb +308 -0
  430. data/lib/puppet/pops/types/p_binary_type.rb +220 -0
  431. data/lib/puppet/pops/types/p_meta_type.rb +83 -0
  432. data/lib/puppet/pops/types/p_object_type.rb +888 -0
  433. data/lib/puppet/pops/types/p_runtime_type.rb +115 -0
  434. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +187 -0
  435. data/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
  436. data/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
  437. data/lib/puppet/pops/types/p_timespan_type.rb +141 -0
  438. data/lib/puppet/pops/types/p_timestamp_type.rb +69 -0
  439. data/lib/puppet/pops/types/p_type_set_type.rb +352 -0
  440. data/lib/puppet/pops/types/puppet_object.rb +16 -0
  441. data/lib/puppet/pops/types/recursion_guard.rb +136 -0
  442. data/lib/puppet/pops/types/ruby_generator.rb +275 -0
  443. data/lib/puppet/pops/types/string_converter.rb +1033 -0
  444. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  445. data/lib/puppet/pops/types/type_asserter.rb +21 -19
  446. data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
  447. data/lib/puppet/pops/types/type_calculator.rb +244 -1186
  448. data/lib/puppet/pops/types/type_conversion_error.rb +15 -0
  449. data/lib/puppet/pops/types/type_factory.rb +270 -164
  450. data/lib/puppet/pops/types/type_formatter.rb +686 -0
  451. data/lib/puppet/pops/types/type_mismatch_describer.rb +1087 -0
  452. data/lib/puppet/pops/types/type_parser.rb +376 -278
  453. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  454. data/lib/puppet/pops/types/types.rb +3247 -287
  455. data/lib/puppet/pops/utils.rb +11 -10
  456. data/lib/puppet/pops/validation/checker4_0.rb +289 -75
  457. data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -5
  458. data/lib/puppet/pops/validation.rb +56 -18
  459. data/lib/puppet/pops/visitor.rb +9 -6
  460. data/lib/puppet/pops.rb +44 -25
  461. data/lib/puppet/property/ensure.rb +1 -1
  462. data/lib/puppet/property.rb +67 -7
  463. data/lib/puppet/provider/aixobject.rb +4 -4
  464. data/lib/puppet/provider/augeas/augeas.rb +57 -2
  465. data/lib/puppet/provider/cron/crontab.rb +1 -1
  466. data/lib/puppet/provider/exec/windows.rb +1 -1
  467. data/lib/puppet/provider/exec.rb +6 -1
  468. data/lib/puppet/provider/group/aix.rb +4 -4
  469. data/lib/puppet/provider/group/directoryservice.rb +10 -0
  470. data/lib/puppet/provider/group/pw.rb +1 -0
  471. data/lib/puppet/provider/group/windows_adsi.rb +23 -7
  472. data/lib/puppet/provider/macauthorization/macauthorization.rb +11 -10
  473. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  474. data/lib/puppet/provider/mcx/mcxcontent.rb +5 -4
  475. data/lib/puppet/provider/mount/parsed.rb +159 -2
  476. data/lib/puppet/provider/nameservice/directoryservice.rb +55 -62
  477. data/lib/puppet/provider/nameservice.rb +15 -0
  478. data/lib/puppet/provider/package/appdmg.rb +7 -6
  479. data/lib/puppet/provider/package/apple.rb +1 -1
  480. data/lib/puppet/provider/package/apt.rb +1 -1
  481. data/lib/puppet/provider/package/dnf.rb +46 -0
  482. data/lib/puppet/provider/package/gem.rb +29 -3
  483. data/lib/puppet/provider/package/nim.rb +2 -2
  484. data/lib/puppet/provider/package/openbsd.rb +7 -7
  485. data/lib/puppet/provider/package/pacman.rb +11 -10
  486. data/lib/puppet/provider/package/pip.rb +83 -22
  487. data/lib/puppet/provider/package/pip3.rb +20 -0
  488. data/lib/puppet/provider/package/pkg.rb +12 -8
  489. data/lib/puppet/provider/package/pkgdmg.rb +11 -8
  490. data/lib/puppet/provider/package/pkgin.rb +4 -4
  491. data/lib/puppet/provider/package/pkgng.rb +143 -0
  492. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  493. data/lib/puppet/provider/package/portage.rb +48 -8
  494. data/lib/puppet/provider/package/ports.rb +0 -3
  495. data/lib/puppet/provider/package/puppet_gem.rb +0 -0
  496. data/lib/puppet/provider/package/rpm.rb +122 -16
  497. data/lib/puppet/provider/package/sun.rb +1 -1
  498. data/lib/puppet/provider/package/tdnf.rb +28 -0
  499. data/lib/puppet/provider/package/windows/exe_package.rb +10 -9
  500. data/lib/puppet/provider/package/windows/msi_package.rb +4 -4
  501. data/lib/puppet/provider/package/windows/package.rb +9 -1
  502. data/lib/puppet/provider/package/windows.rb +1 -1
  503. data/lib/puppet/provider/package/yum.rb +62 -83
  504. data/lib/puppet/provider/package/zypper.rb +69 -15
  505. data/lib/puppet/provider/package.rb +6 -2
  506. data/lib/puppet/provider/parsedfile.rb +2 -2
  507. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +39 -7
  508. data/lib/puppet/provider/service/base.rb +4 -3
  509. data/lib/puppet/provider/service/bsd.rb +9 -9
  510. data/lib/puppet/provider/service/daemontools.rb +5 -5
  511. data/lib/puppet/provider/service/debian.rb +14 -5
  512. data/lib/puppet/provider/service/freebsd.rb +1 -1
  513. data/lib/puppet/provider/service/init.rb +27 -3
  514. data/lib/puppet/provider/service/launchd.rb +57 -19
  515. data/lib/puppet/provider/service/rcng.rb +51 -0
  516. data/lib/puppet/provider/service/redhat.rb +2 -1
  517. data/lib/puppet/provider/service/runit.rb +4 -4
  518. data/lib/puppet/provider/service/smf.rb +59 -8
  519. data/lib/puppet/provider/service/src.rb +27 -0
  520. data/lib/puppet/provider/service/systemd.rb +141 -22
  521. data/lib/puppet/provider/service/upstart.rb +1 -1
  522. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  523. data/lib/puppet/provider/sshkey/parsed.rb +20 -10
  524. data/lib/puppet/provider/user/aix.rb +4 -3
  525. data/lib/puppet/provider/user/directoryservice.rb +43 -66
  526. data/lib/puppet/provider/user/hpux.rb +1 -1
  527. data/lib/puppet/provider/user/openbsd.rb +1 -0
  528. data/lib/puppet/provider/user/pw.rb +1 -0
  529. data/lib/puppet/provider/user/user_role_add.rb +19 -2
  530. data/lib/puppet/provider/user/windows_adsi.rb +51 -2
  531. data/lib/puppet/provider/yumrepo/inifile.rb +9 -6
  532. data/lib/puppet/provider/zfs/zfs.rb +2 -2
  533. data/lib/puppet/provider/zone/solaris.rb +6 -3
  534. data/lib/puppet/provider/zpool/zpool.rb +2 -2
  535. data/lib/puppet/provider.rb +9 -7
  536. data/lib/puppet/reference/configuration.rb +13 -5
  537. data/lib/puppet/reference/indirection.rb +2 -2
  538. data/lib/puppet/reference/providers.rb +2 -3
  539. data/lib/puppet/reference/report.rb +9 -12
  540. data/lib/puppet/reference/type.rb +1 -1
  541. data/lib/puppet/reports.rb +5 -1
  542. data/lib/puppet/resource/capability_finder.rb +128 -0
  543. data/lib/puppet/resource/catalog.rb +167 -40
  544. data/lib/puppet/resource/status.rb +30 -5
  545. data/lib/puppet/resource/type.rb +247 -50
  546. data/lib/puppet/resource/type_collection.rb +83 -10
  547. data/lib/puppet/resource.rb +212 -146
  548. data/lib/puppet/settings/base_setting.rb +9 -3
  549. data/lib/puppet/settings/config_file.rb +3 -2
  550. data/lib/puppet/settings/directory_setting.rb +6 -0
  551. data/lib/puppet/settings/environment_conf.rb +26 -6
  552. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  553. data/lib/puppet/settings/file_setting.rb +20 -9
  554. data/lib/puppet/settings/ini_file.rb +2 -2
  555. data/lib/puppet/settings/server_list_setting.rb +20 -0
  556. data/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
  557. data/lib/puppet/settings.rb +87 -28
  558. data/lib/puppet/ssl/certificate_authority/interface.rb +166 -26
  559. data/lib/puppet/ssl/certificate_authority.rb +45 -11
  560. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  561. data/lib/puppet/ssl/certificate_request.rb +4 -4
  562. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  563. data/lib/puppet/ssl/host.rb +26 -4
  564. data/lib/puppet/ssl/oids.rb +43 -3
  565. data/lib/puppet/ssl/validator/default_validator.rb +3 -3
  566. data/lib/puppet/syntax_checkers/base64.rb +41 -0
  567. data/lib/puppet/syntax_checkers/json.rb +0 -2
  568. data/lib/puppet/test/test_helper.rb +18 -7
  569. data/lib/puppet/transaction/additional_resource_generator.rb +101 -8
  570. data/lib/puppet/transaction/event.rb +29 -2
  571. data/lib/puppet/transaction/event_manager.rb +1 -1
  572. data/lib/puppet/transaction/persistence.rb +84 -0
  573. data/lib/puppet/transaction/report.rb +86 -4
  574. data/lib/puppet/transaction/resource_harness.rb +95 -35
  575. data/lib/puppet/transaction.rb +64 -36
  576. data/lib/puppet/type/augeas.rb +13 -4
  577. data/lib/puppet/type/component.rb +11 -0
  578. data/lib/puppet/type/cron.rb +13 -13
  579. data/lib/puppet/type/exec.rb +27 -18
  580. data/lib/puppet/type/file/checksum.rb +1 -0
  581. data/lib/puppet/type/file/checksum_value.rb +53 -0
  582. data/lib/puppet/type/file/content.rb +36 -121
  583. data/lib/puppet/type/file/data_sync.rb +92 -0
  584. data/lib/puppet/type/file/ensure.rb +22 -19
  585. data/lib/puppet/type/file/selcontext.rb +1 -1
  586. data/lib/puppet/type/file/source.rb +121 -34
  587. data/lib/puppet/type/file/target.rb +2 -2
  588. data/lib/puppet/type/file.rb +146 -46
  589. data/lib/puppet/type/filebucket.rb +1 -1
  590. data/lib/puppet/type/group.rb +15 -3
  591. data/lib/puppet/type/host.rb +1 -1
  592. data/lib/puppet/type/interface.rb +8 -3
  593. data/lib/puppet/type/macauthorization.rb +1 -1
  594. data/lib/puppet/type/mount.rb +25 -2
  595. data/lib/puppet/type/notify.rb +1 -1
  596. data/lib/puppet/type/package.rb +32 -12
  597. data/lib/puppet/type/resources.rb +1 -1
  598. data/lib/puppet/type/schedule.rb +5 -5
  599. data/lib/puppet/type/scheduled_task.rb +14 -1
  600. data/lib/puppet/type/service.rb +24 -0
  601. data/lib/puppet/type/ssh_authorized_key.rb +17 -11
  602. data/lib/puppet/type/sshkey.rb +5 -3
  603. data/lib/puppet/type/stage.rb +1 -1
  604. data/lib/puppet/type/tidy.rb +10 -5
  605. data/lib/puppet/type/user.rb +80 -25
  606. data/lib/puppet/type/yumrepo.rb +28 -8
  607. data/lib/puppet/type/zone.rb +6 -6
  608. data/lib/puppet/type.rb +162 -40
  609. data/lib/puppet/util/autoload.rb +16 -11
  610. data/lib/puppet/util/checksums.rb +74 -31
  611. data/lib/puppet/util/classgen.rb +1 -1
  612. data/lib/puppet/util/command_line/trollop.rb +1 -1
  613. data/lib/puppet/util/command_line.rb +10 -2
  614. data/lib/puppet/util/execution.rb +26 -10
  615. data/lib/puppet/util/feature.rb +1 -1
  616. data/lib/puppet/util/filetype.rb +11 -5
  617. data/lib/puppet/util/http_proxy.rb +132 -0
  618. data/lib/puppet/util/inifile.rb +1 -1
  619. data/lib/puppet/util/instance_loader.rb +1 -1
  620. data/lib/puppet/util/log/destinations.rb +23 -2
  621. data/lib/puppet/util/log.rb +78 -9
  622. data/lib/puppet/util/logging.rb +82 -3
  623. data/lib/puppet/util/monkey_patches.rb +20 -7
  624. data/lib/puppet/util/multi_match.rb +51 -0
  625. data/lib/puppet/util/network_device/cisco/device.rb +24 -6
  626. data/lib/puppet/util/network_device/cisco/interface.rb +21 -9
  627. data/lib/puppet/util/network_device/config.rb +1 -1
  628. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  629. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  630. data/lib/puppet/util/plist.rb +151 -0
  631. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  632. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  633. data/lib/puppet/util/profiler.rb +1 -1
  634. data/lib/puppet/util/psych_support.rb +1 -1
  635. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  636. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  637. data/lib/puppet/util/rdoc.rb +2 -2
  638. data/lib/puppet/util/resource_template.rb +1 -1
  639. data/lib/puppet/util/rubygems.rb +1 -1
  640. data/lib/puppet/util/run_mode.rb +3 -16
  641. data/lib/puppet/util/skip_tags.rb +9 -0
  642. data/lib/puppet/util/splayer.rb +18 -0
  643. data/lib/puppet/util/tagging.rb +8 -2
  644. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  645. data/lib/puppet/util/windows/access_control_entry.rb +2 -2
  646. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  647. data/lib/puppet/util/windows/adsi.rb +212 -75
  648. data/lib/puppet/util/windows/api_types.rb +24 -18
  649. data/lib/puppet/util/windows/com.rb +3 -3
  650. data/lib/puppet/util/windows/error.rb +1 -1
  651. data/lib/puppet/util/windows/file.rb +107 -18
  652. data/lib/puppet/util/windows/principal.rb +190 -0
  653. data/lib/puppet/util/windows/process.rb +88 -11
  654. data/lib/puppet/util/windows/registry.rb +22 -16
  655. data/lib/puppet/util/windows/root_certs.rb +5 -5
  656. data/lib/puppet/util/windows/security.rb +38 -37
  657. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  658. data/lib/puppet/util/windows/sid.rb +84 -15
  659. data/lib/puppet/util/windows/taskscheduler.rb +99 -43
  660. data/lib/puppet/util/windows/user.rb +32 -14
  661. data/lib/puppet/util/windows.rb +5 -0
  662. data/lib/puppet/util/yaml.rb +15 -3
  663. data/lib/puppet/util.rb +124 -23
  664. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  665. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  666. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  667. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  668. data/lib/puppet/vendor/pathspec/README.md +1 -1
  669. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  670. data/lib/puppet/vendor/require_vendored.rb +0 -1
  671. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  672. data/lib/puppet/vendor/rgen_patch.rb +1 -1
  673. data/lib/puppet/vendor/semantic/lib/semantic.rb +4 -6
  674. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  675. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  676. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/module_release.rb +17 -5
  677. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  678. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  679. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  680. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  681. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  682. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  683. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  684. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  685. data/lib/puppet/version.rb +2 -2
  686. data/lib/puppet.rb +85 -2
  687. data/lib/puppet_x.rb +7 -1
  688. data/lib/semver.rb +36 -13
  689. data/locales/config.yaml +29 -0
  690. data/locales/puppet.pot +79 -0
  691. data/man/man5/puppet.conf.5 +61 -19
  692. data/man/man8/extlookup2hiera.8 +2 -2
  693. data/man/man8/puppet-agent.8 +6 -3
  694. data/man/man8/puppet-apply.8 +6 -3
  695. data/man/man8/puppet-ca.8 +3 -3
  696. data/man/man8/puppet-catalog.8 +3 -3
  697. data/man/man8/puppet-cert.8 +3 -3
  698. data/man/man8/puppet-certificate.8 +3 -3
  699. data/man/man8/puppet-certificate_request.8 +3 -3
  700. data/man/man8/puppet-certificate_revocation_list.8 +3 -3
  701. data/man/man8/puppet-config.8 +4 -4
  702. data/man/man8/puppet-describe.8 +2 -2
  703. data/man/man8/puppet-device.8 +7 -4
  704. data/man/man8/puppet-doc.8 +2 -2
  705. data/man/man8/puppet-epp.8 +3 -3
  706. data/man/man8/puppet-facts.8 +3 -3
  707. data/man/man8/puppet-file.8 +3 -3
  708. data/man/man8/puppet-filebucket.8 +3 -3
  709. data/man/man8/puppet-help.8 +3 -3
  710. data/man/man8/puppet-inspect.8 +3 -3
  711. data/man/man8/puppet-key.8 +3 -3
  712. data/man/man8/puppet-man.8 +3 -3
  713. data/man/man8/puppet-master.8 +6 -3
  714. data/man/man8/puppet-module.8 +10 -10
  715. data/man/man8/puppet-node.8 +3 -3
  716. data/man/man8/puppet-parser.8 +3 -3
  717. data/man/man8/puppet-plugin.8 +3 -3
  718. data/man/man8/puppet-report.8 +3 -3
  719. data/man/man8/puppet-resource.8 +3 -3
  720. data/man/man8/puppet-resource_type.8 +3 -3
  721. data/man/man8/puppet-status.8 +4 -4
  722. data/man/man8/puppet.8 +2 -2
  723. data/spec/fixtures/module.tar.gz +0 -0
  724. data/spec/fixtures/unit/application/environments/production/data/common.yaml +22 -0
  725. data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
  726. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +1 -0
  727. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +1 -0
  728. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +10 -0
  729. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +1 -0
  730. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
  731. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
  732. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
  733. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
  734. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
  735. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
  736. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
  737. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
  738. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
  739. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
  740. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
  741. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
  742. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
  743. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
  744. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
  745. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
  746. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
  747. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
  748. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +3 -0
  749. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +3 -0
  750. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
  751. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
  752. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +22 -0
  753. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
  754. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +48 -0
  755. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
  756. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
  757. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
  758. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
  759. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
  760. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +4 -0
  761. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +4 -0
  762. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
  763. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +7 -0
  764. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
  765. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
  766. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +2 -0
  767. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
  768. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +1 -0
  769. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +1 -0
  770. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
  771. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
  772. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +20 -0
  773. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
  774. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
  775. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +4 -0
  776. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +4 -0
  777. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +2 -0
  778. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +7 -0
  779. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +1 -0
  780. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +6 -0
  781. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +5 -0
  782. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +2 -0
  783. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +9 -0
  784. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +4 -0
  785. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +5 -0
  786. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +3 -0
  787. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +9 -0
  788. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +3 -1
  789. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +2 -1
  790. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +2 -1
  791. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +6 -0
  792. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +9 -0
  793. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +9 -0
  794. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  795. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  796. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  797. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  798. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  799. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +2 -0
  800. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
  801. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  802. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  803. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  804. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  805. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +2 -0
  806. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  807. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +5 -0
  808. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +2 -0
  809. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +9 -0
  810. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +1 -0
  811. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +5 -0
  812. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +2 -0
  813. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +9 -0
  814. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +1 -0
  815. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +5 -0
  816. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +2 -0
  817. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +9 -0
  818. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +2 -0
  819. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  820. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  821. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +9 -0
  822. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +4 -0
  823. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +8 -0
  824. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
  825. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +9 -0
  826. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
  827. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +3 -0
  828. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +9 -0
  829. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
  830. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
  831. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +3 -0
  832. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +9 -0
  833. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  834. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  835. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +3 -0
  836. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +6 -0
  837. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +5 -0
  838. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +8 -0
  839. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  840. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +5 -0
  841. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +5 -0
  842. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +5 -0
  843. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +5 -0
  844. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +5 -0
  845. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +5 -0
  846. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +5 -0
  847. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +5 -0
  848. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +87 -0
  849. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/metadata.json +2 -1
  850. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  851. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  852. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +3 -0
  853. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +3 -0
  854. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +3 -0
  855. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +5 -0
  856. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +3 -0
  857. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +3 -0
  858. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +10 -0
  859. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  860. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +3 -0
  861. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +3 -0
  862. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +1 -10
  863. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  864. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +93 -85
  865. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +11 -7
  866. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +8 -0
  867. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +1 -0
  868. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +1 -0
  869. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +3 -0
  870. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  871. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +195 -0
  872. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
  873. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +3 -0
  874. data/spec/fixtures/unit/provider/service/smf/svcs.out +4 -3
  875. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  876. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
  877. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
  878. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
  879. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
  880. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
  881. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  882. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
  883. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  884. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
  885. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
  886. data/spec/integration/agent/logging_spec.rb +15 -14
  887. data/spec/integration/application/apply_spec.rb +432 -29
  888. data/spec/integration/application/doc_spec.rb +0 -0
  889. data/spec/integration/application/lookup_spec.rb +155 -0
  890. data/spec/integration/configurer_spec.rb +0 -0
  891. data/spec/integration/data_binding_spec.rb +195 -0
  892. data/spec/integration/defaults_spec.rb +27 -2
  893. data/spec/integration/directory_environments_spec.rb +16 -0
  894. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  895. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  896. data/spec/integration/environments/settings_spec.rb +32 -4
  897. data/spec/integration/faces/ca_spec.rb +0 -0
  898. data/spec/integration/faces/config_spec.rb +80 -0
  899. data/spec/integration/faces/documentation_spec.rb +1 -1
  900. data/spec/integration/faces/plugin_spec.rb +0 -4
  901. data/spec/integration/file_bucket/file_spec.rb +2 -2
  902. data/spec/integration/file_serving/fileset_spec.rb +0 -0
  903. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -0
  904. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  905. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -0
  906. data/spec/integration/indirector/direct_file_server_spec.rb +0 -0
  907. data/spec/integration/indirector/facts/facter_spec.rb +97 -0
  908. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -0
  909. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -0
  910. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  911. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  912. data/spec/integration/network/formats_spec.rb +0 -0
  913. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  914. data/spec/integration/node/environment_spec.rb +34 -0
  915. data/spec/integration/node/facts_spec.rb +0 -0
  916. data/spec/integration/node_spec.rb +0 -0
  917. data/spec/integration/parser/catalog_spec.rb +14 -2
  918. data/spec/integration/parser/collection_spec.rb +18 -0
  919. data/spec/integration/parser/compiler_spec.rb +877 -666
  920. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  921. data/spec/integration/parser/parameter_defaults_spec.rb +358 -0
  922. data/spec/integration/parser/pcore_resource_spec.rb +245 -0
  923. data/spec/integration/parser/resource_expressions_spec.rb +10 -5
  924. data/spec/integration/parser/scope_spec.rb +46 -7
  925. data/spec/integration/parser/undef_param_spec.rb +9 -1
  926. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  927. data/spec/integration/provider/mount_spec.rb +23 -36
  928. data/spec/integration/provider/service/init_spec.rb +0 -0
  929. data/spec/integration/provider/service/windows_spec.rb +3 -2
  930. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -0
  931. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  932. data/spec/integration/reference/providers_spec.rb +0 -0
  933. data/spec/integration/reports_spec.rb +0 -0
  934. data/spec/integration/resource/catalog_spec.rb +1 -1
  935. data/spec/integration/resource/type_collection_spec.rb +8 -0
  936. data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
  937. data/spec/integration/ssl/certificate_request_spec.rb +0 -1
  938. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
  939. data/spec/integration/ssl/host_spec.rb +0 -1
  940. data/spec/integration/test/test_helper_spec.rb +32 -0
  941. data/spec/integration/transaction/report_spec.rb +682 -0
  942. data/spec/integration/transaction_spec.rb +126 -2
  943. data/spec/integration/type/exec_spec.rb +0 -0
  944. data/spec/integration/type/file_spec.rb +553 -51
  945. data/spec/integration/type/package_spec.rb +72 -1
  946. data/spec/integration/type/tidy_spec.rb +21 -9
  947. data/spec/integration/type_spec.rb +0 -0
  948. data/spec/integration/util/autoload_spec.rb +0 -0
  949. data/spec/integration/util/execution_spec.rb +30 -0
  950. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  951. data/spec/integration/util/settings_spec.rb +26 -0
  952. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  953. data/spec/integration/util/windows/principal_spec.rb +250 -0
  954. data/spec/integration/util/windows/process_spec.rb +35 -2
  955. data/spec/{unit → integration}/util/windows/registry_spec.rb +92 -2
  956. data/spec/integration/util/windows/security_spec.rb +75 -21
  957. data/spec/integration/util/windows/user_spec.rb +27 -5
  958. data/spec/integration/util_spec.rb +49 -27
  959. data/spec/lib/matchers/include_in_order.rb +2 -3
  960. data/spec/lib/matchers/resource.rb +22 -1
  961. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -0
  962. data/spec/lib/puppet/face/basetest.rb +0 -0
  963. data/spec/lib/puppet/face/huzzah.rb +0 -0
  964. data/spec/lib/puppet_spec/compiler.rb +32 -3
  965. data/spec/lib/puppet_spec/files.rb +16 -2
  966. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  967. data/spec/lib/puppet_spec/matchers.rb +6 -4
  968. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  969. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  970. data/spec/lib/puppet_spec/network.rb +12 -8
  971. data/spec/lib/puppet_spec/pops.rb +13 -0
  972. data/spec/lib/puppet_spec/unindent.rb +5 -0
  973. data/spec/lib/puppet_spec/verbose.rb +0 -0
  974. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -0
  975. data/spec/shared_behaviours/file_server_terminus.rb +0 -0
  976. data/spec/shared_behaviours/file_serving.rb +0 -0
  977. data/spec/shared_behaviours/iterative_functions.rb +9 -9
  978. data/spec/shared_behaviours/memory_terminus.rb +0 -0
  979. data/spec/shared_behaviours/path_parameters.rb +0 -0
  980. data/spec/shared_behaviours/things_that_declare_options.rb +0 -0
  981. data/spec/shared_contexts/types_setup.rb +106 -0
  982. data/spec/shared_examples/rhel_package_provider.rb +357 -0
  983. data/spec/spec_helper.rb +16 -2
  984. data/spec/unit/agent/locker_spec.rb +4 -4
  985. data/spec/unit/agent_spec.rb +12 -46
  986. data/spec/unit/application/agent_spec.rb +15 -0
  987. data/spec/unit/application/apply_spec.rb +31 -1
  988. data/spec/unit/application/cert_spec.rb +20 -0
  989. data/spec/unit/application/certificate_spec.rb +0 -0
  990. data/spec/unit/application/config_spec.rb +0 -0
  991. data/spec/unit/application/describe_spec.rb +0 -0
  992. data/spec/unit/application/device_spec.rb +0 -0
  993. data/spec/unit/application/doc_spec.rb +0 -0
  994. data/spec/unit/application/face_base_spec.rb +16 -0
  995. data/spec/unit/application/facts_spec.rb +0 -0
  996. data/spec/unit/application/filebucket_spec.rb +88 -2
  997. data/spec/unit/application/indirection_base_spec.rb +0 -0
  998. data/spec/unit/application/inspect_spec.rb +19 -8
  999. data/spec/unit/application/lookup_spec.rb +532 -0
  1000. data/spec/unit/application/master_spec.rb +33 -7
  1001. data/spec/unit/application/resource_spec.rb +0 -0
  1002. data/spec/unit/application_spec.rb +3 -3
  1003. data/spec/unit/capability_spec.rb +416 -0
  1004. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  1005. data/spec/unit/configurer/downloader_spec.rb +5 -5
  1006. data/spec/unit/configurer/fact_handler_spec.rb +0 -0
  1007. data/spec/unit/configurer/plugin_handler_spec.rb +18 -15
  1008. data/spec/unit/configurer_spec.rb +336 -39
  1009. data/spec/unit/confine/exists_spec.rb +0 -0
  1010. data/spec/unit/confine/false_spec.rb +0 -0
  1011. data/spec/unit/confine/feature_spec.rb +0 -0
  1012. data/spec/unit/confine/true_spec.rb +0 -0
  1013. data/spec/unit/confine/variable_spec.rb +0 -0
  1014. data/spec/unit/confine_collection_spec.rb +0 -0
  1015. data/spec/unit/confine_spec.rb +0 -0
  1016. data/spec/unit/confiner_spec.rb +0 -0
  1017. data/spec/unit/context/trusted_information_spec.rb +24 -1
  1018. data/spec/unit/daemon_spec.rb +18 -8
  1019. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  1020. data/spec/unit/data_providers/function_data_provider_spec.rb +30 -3
  1021. data/spec/unit/data_providers/hiera_data_provider_spec.rb +361 -0
  1022. data/spec/unit/defaults_spec.rb +47 -0
  1023. data/spec/unit/environments_spec.rb +26 -4
  1024. data/spec/unit/external/pson_spec.rb +0 -0
  1025. data/spec/unit/face/ca_spec.rb +10 -0
  1026. data/spec/unit/face/catalog_spec.rb +0 -0
  1027. data/spec/unit/face/certificate_request_spec.rb +10 -0
  1028. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  1029. data/spec/unit/face/certificate_spec.rb +0 -0
  1030. data/spec/unit/face/config_spec.rb +47 -0
  1031. data/spec/unit/face/epp_face_spec.rb +24 -5
  1032. data/spec/unit/face/facts_spec.rb +0 -0
  1033. data/spec/unit/face/file_spec.rb +4 -0
  1034. data/spec/unit/face/generate_spec.rb +230 -0
  1035. data/spec/unit/face/help_spec.rb +70 -0
  1036. data/spec/unit/face/key_spec.rb +10 -0
  1037. data/spec/unit/face/node_spec.rb +1 -1
  1038. data/spec/unit/face/parser_spec.rb +49 -2
  1039. data/spec/unit/face/plugin_spec.rb +29 -4
  1040. data/spec/unit/face/status_spec.rb +10 -0
  1041. data/spec/unit/face_spec.rb +0 -0
  1042. data/spec/unit/file_bucket/dipper_spec.rb +210 -1
  1043. data/spec/unit/file_bucket/file_spec.rb +0 -0
  1044. data/spec/unit/file_serving/base_spec.rb +0 -0
  1045. data/spec/unit/file_serving/configuration/parser_spec.rb +25 -30
  1046. data/spec/unit/file_serving/configuration_spec.rb +1 -1
  1047. data/spec/unit/file_serving/content_spec.rb +0 -0
  1048. data/spec/unit/file_serving/fileset_spec.rb +0 -0
  1049. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  1050. data/spec/unit/file_serving/metadata_spec.rb +51 -1
  1051. data/spec/unit/file_serving/mount/file_spec.rb +0 -0
  1052. data/spec/unit/file_serving/mount/modules_spec.rb +0 -0
  1053. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -0
  1054. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -0
  1055. data/spec/unit/file_serving/mount_spec.rb +0 -0
  1056. data/spec/unit/file_serving/terminus_helper_spec.rb +2 -3
  1057. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  1058. data/spec/unit/file_system/uniquefile_spec.rb +20 -0
  1059. data/spec/unit/file_system_spec.rb +373 -6
  1060. data/spec/unit/functions/assert_type_spec.rb +48 -8
  1061. data/spec/unit/functions/binary_file_spec.rb +46 -0
  1062. data/spec/unit/functions/break_spec.rb +89 -0
  1063. data/spec/unit/{parser/functions → functions}/contain_spec.rb +68 -3
  1064. data/spec/unit/functions/defined_spec.rb +289 -0
  1065. data/spec/unit/functions/dig_spec.rb +58 -0
  1066. data/spec/unit/functions/epp_spec.rb +17 -9
  1067. data/spec/unit/functions/filter_spec.rb +18 -0
  1068. data/spec/unit/functions/find_file_spec.rb +69 -0
  1069. data/spec/unit/functions/hiera_spec.rb +261 -49
  1070. data/spec/unit/functions/include_spec.rb +175 -0
  1071. data/spec/unit/functions/inline_epp_spec.rb +4 -4
  1072. data/spec/unit/functions/lest_spec.rb +34 -0
  1073. data/spec/unit/functions/logging_spec.rb +54 -0
  1074. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  1075. data/spec/unit/functions/lookup_spec.rb +1352 -272
  1076. data/spec/unit/functions/match_spec.rb +2 -2
  1077. data/spec/unit/functions/new_spec.rb +694 -0
  1078. data/spec/unit/functions/next_spec.rb +93 -0
  1079. data/spec/unit/functions/regsubst_spec.rb +30 -9
  1080. data/spec/unit/functions/require_spec.rb +83 -0
  1081. data/spec/unit/functions/return_spec.rb +105 -0
  1082. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  1083. data/spec/unit/functions/scanf_spec.rb +1 -1
  1084. data/spec/unit/{parser/functions → functions}/shared.rb +15 -12
  1085. data/spec/unit/functions/split_spec.rb +11 -3
  1086. data/spec/unit/functions/step_spec.rb +113 -0
  1087. data/spec/unit/functions/strftime_spec.rb +152 -0
  1088. data/spec/unit/functions/then_spec.rb +40 -0
  1089. data/spec/unit/functions/type_spec.rb +35 -0
  1090. data/spec/unit/functions/unwrap_spec.rb +29 -0
  1091. data/spec/unit/functions/versioncmp_spec.rb +36 -0
  1092. data/spec/unit/functions4_spec.rb +321 -71
  1093. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  1094. data/spec/unit/graph/relationship_graph_spec.rb +0 -0
  1095. data/spec/unit/graph/sequential_prioritizer_spec.rb +1 -1
  1096. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  1097. data/spec/unit/hiera/scope_spec.rb +6 -3
  1098. data/spec/unit/hiera_puppet_spec.rb +49 -8
  1099. data/spec/unit/indirector/catalog/compiler_spec.rb +752 -8
  1100. data/spec/unit/indirector/catalog/json_spec.rb +0 -0
  1101. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -0
  1102. data/spec/unit/indirector/catalog/rest_spec.rb +0 -0
  1103. data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
  1104. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  1105. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -0
  1106. data/spec/unit/indirector/certificate/ca_spec.rb +0 -0
  1107. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  1108. data/spec/unit/indirector/certificate/file_spec.rb +0 -0
  1109. data/spec/unit/indirector/certificate/rest_spec.rb +0 -0
  1110. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -0
  1111. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  1112. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -0
  1113. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -0
  1114. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -0
  1115. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  1116. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -0
  1117. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -0
  1118. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -0
  1119. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -0
  1120. data/spec/unit/indirector/code_spec.rb +0 -0
  1121. data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
  1122. data/spec/unit/indirector/direct_file_server_spec.rb +0 -0
  1123. data/spec/unit/indirector/envelope_spec.rb +0 -0
  1124. data/spec/unit/indirector/exec_spec.rb +0 -0
  1125. data/spec/unit/indirector/face_spec.rb +10 -2
  1126. data/spec/unit/indirector/facts/facter_spec.rb +7 -7
  1127. data/spec/unit/indirector/facts/network_device_spec.rb +0 -0
  1128. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  1129. data/spec/unit/indirector/facts/yaml_spec.rb +0 -0
  1130. data/spec/unit/indirector/file_bucket_file/file_spec.rb +53 -2
  1131. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -0
  1132. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -0
  1133. data/spec/unit/indirector/file_content/file_spec.rb +0 -0
  1134. data/spec/unit/indirector/file_content/rest_spec.rb +0 -0
  1135. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -0
  1136. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -0
  1137. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -0
  1138. data/spec/unit/indirector/file_server_spec.rb +0 -0
  1139. data/spec/unit/indirector/indirection_spec.rb +13 -2
  1140. data/spec/unit/indirector/json_spec.rb +1 -1
  1141. data/spec/unit/indirector/key/ca_spec.rb +0 -0
  1142. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  1143. data/spec/unit/indirector/key/file_spec.rb +0 -0
  1144. data/spec/unit/indirector/ldap_spec.rb +0 -0
  1145. data/spec/unit/indirector/memory_spec.rb +0 -0
  1146. data/spec/unit/indirector/msgpack_spec.rb +11 -1
  1147. data/spec/unit/indirector/node/exec_spec.rb +0 -0
  1148. data/spec/unit/indirector/node/ldap_spec.rb +0 -0
  1149. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  1150. data/spec/unit/indirector/node/msgpack_spec.rb +0 -0
  1151. data/spec/unit/indirector/node/plain_spec.rb +0 -0
  1152. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  1153. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  1154. data/spec/unit/indirector/node/yaml_spec.rb +0 -0
  1155. data/spec/unit/indirector/plain_spec.rb +0 -0
  1156. data/spec/unit/indirector/report/msgpack_spec.rb +0 -0
  1157. data/spec/unit/indirector/report/processor_spec.rb +0 -0
  1158. data/spec/unit/indirector/report/rest_spec.rb +0 -0
  1159. data/spec/unit/indirector/report/yaml_spec.rb +0 -0
  1160. data/spec/unit/indirector/request_spec.rb +17 -8
  1161. data/spec/unit/indirector/resource/ral_spec.rb +0 -0
  1162. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -0
  1163. data/spec/unit/indirector/resource_type/parser_spec.rb +5 -0
  1164. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -0
  1165. data/spec/unit/indirector/rest_spec.rb +107 -9
  1166. data/spec/unit/indirector/ssl_file_spec.rb +1 -1
  1167. data/spec/unit/indirector/status/rest_spec.rb +0 -0
  1168. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  1169. data/spec/unit/indirector/terminus_spec.rb +0 -0
  1170. data/spec/unit/indirector/yaml_spec.rb +1 -1
  1171. data/spec/unit/indirector_spec.rb +0 -0
  1172. data/spec/unit/info_service_spec.rb +298 -0
  1173. data/spec/unit/interface/action_builder_spec.rb +0 -0
  1174. data/spec/unit/interface/action_manager_spec.rb +0 -0
  1175. data/spec/unit/interface/action_spec.rb +0 -0
  1176. data/spec/unit/interface/documentation_spec.rb +0 -0
  1177. data/spec/unit/interface/face_collection_spec.rb +0 -0
  1178. data/spec/unit/interface/option_builder_spec.rb +0 -0
  1179. data/spec/unit/interface/option_spec.rb +0 -0
  1180. data/spec/unit/interface_spec.rb +27 -0
  1181. data/spec/unit/man_spec.rb +1 -1
  1182. data/spec/unit/module_spec.rb +84 -33
  1183. data/spec/unit/module_tool/application_spec.rb +1 -1
  1184. data/spec/unit/module_tool/applications/builder_spec.rb +44 -9
  1185. data/spec/unit/module_tool/applications/installer_spec.rb +11 -2
  1186. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  1187. data/spec/unit/module_tool/applications/upgrader_spec.rb +9 -1
  1188. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  1189. data/spec/unit/module_tool/metadata_spec.rb +31 -2
  1190. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  1191. data/spec/unit/module_tool_spec.rb +3 -3
  1192. data/spec/unit/network/auth_config_parser_spec.rb +16 -0
  1193. data/spec/unit/network/authconfig_spec.rb +62 -32
  1194. data/spec/unit/network/authorization_spec.rb +30 -2
  1195. data/spec/unit/network/authstore_spec.rb +2 -2
  1196. data/spec/unit/network/format_handler_spec.rb +0 -0
  1197. data/spec/unit/network/format_spec.rb +0 -0
  1198. data/spec/unit/network/formats_spec.rb +0 -0
  1199. data/spec/unit/network/http/api/indirected_routes_spec.rb +70 -71
  1200. data/spec/unit/network/http/api/master/v3/environment_spec.rb +60 -0
  1201. data/spec/unit/network/http/api/master/v3_spec.rb +22 -4
  1202. data/spec/unit/network/http/compression_spec.rb +1 -1
  1203. data/spec/unit/network/http/connection_spec.rb +25 -19
  1204. data/spec/unit/network/http/error_spec.rb +2 -1
  1205. data/spec/unit/network/http/factory_spec.rb +14 -0
  1206. data/spec/unit/network/http/handler_spec.rb +11 -8
  1207. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  1208. data/spec/unit/network/http/pool_spec.rb +30 -0
  1209. data/spec/unit/network/http/rack/rest_spec.rb +7 -0
  1210. data/spec/unit/network/http/rack_spec.rb +0 -0
  1211. data/spec/unit/network/http/session_spec.rb +0 -0
  1212. data/spec/unit/network/http/site_spec.rb +0 -0
  1213. data/spec/unit/network/http/webrick/rest_spec.rb +0 -0
  1214. data/spec/unit/network/http/webrick_spec.rb +1 -1
  1215. data/spec/unit/network/http_pool_spec.rb +0 -0
  1216. data/spec/unit/network/http_spec.rb +0 -0
  1217. data/spec/unit/network/resolver_spec.rb +0 -0
  1218. data/spec/unit/network/rights_spec.rb +4 -4
  1219. data/spec/unit/network/server_spec.rb +0 -0
  1220. data/spec/unit/node/environment_spec.rb +10 -0
  1221. data/spec/unit/node/facts_spec.rb +0 -0
  1222. data/spec/unit/node_spec.rb +41 -0
  1223. data/spec/unit/other/selinux_spec.rb +0 -0
  1224. data/spec/unit/parameter/path_spec.rb +0 -0
  1225. data/spec/unit/parameter/value_collection_spec.rb +0 -0
  1226. data/spec/unit/parameter/value_spec.rb +0 -0
  1227. data/spec/unit/parameter_spec.rb +11 -0
  1228. data/spec/unit/parser/ast/leaf_spec.rb +1 -1
  1229. data/spec/unit/parser/compiler_spec.rb +120 -33
  1230. data/spec/unit/parser/environment_compiler_spec.rb +688 -0
  1231. data/spec/unit/parser/files_spec.rb +0 -0
  1232. data/spec/unit/parser/functions/create_resources_spec.rb +86 -5
  1233. data/spec/unit/parser/functions/digest_spec.rb +0 -0
  1234. data/spec/unit/parser/functions/fail_spec.rb +0 -0
  1235. data/spec/unit/parser/functions/file_spec.rb +7 -1
  1236. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -2
  1237. data/spec/unit/parser/functions/generate_spec.rb +3 -12
  1238. data/spec/unit/parser/functions/hiera_array_spec.rb +1 -1
  1239. data/spec/unit/parser/functions/hiera_hash_spec.rb +1 -1
  1240. data/spec/unit/parser/functions/hiera_include_spec.rb +1 -1
  1241. data/spec/unit/parser/functions/hiera_spec.rb +1 -1
  1242. data/spec/unit/parser/functions/inline_template_spec.rb +0 -0
  1243. data/spec/unit/parser/functions/lookup_spec.rb +1 -1
  1244. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  1245. data/spec/unit/parser/functions/regsubst_spec.rb +1 -1
  1246. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  1247. data/spec/unit/parser/functions/shellquote_spec.rb +0 -0
  1248. data/spec/unit/parser/functions/split_spec.rb +1 -1
  1249. data/spec/unit/parser/functions/sprintf_spec.rb +0 -0
  1250. data/spec/unit/parser/functions/tag_spec.rb +0 -0
  1251. data/spec/unit/parser/functions/template_spec.rb +1 -1
  1252. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -0
  1253. data/spec/unit/parser/functions_spec.rb +0 -0
  1254. data/spec/unit/parser/relationship_spec.rb +0 -0
  1255. data/spec/unit/parser/resource/param_spec.rb +0 -0
  1256. data/spec/unit/parser/resource_spec.rb +31 -32
  1257. data/spec/unit/parser/scope_spec.rb +85 -18
  1258. data/spec/unit/parser/templatewrapper_spec.rb +1 -1
  1259. data/spec/unit/parser/type_loader_spec.rb +0 -0
  1260. data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
  1261. data/spec/unit/pops/binder/injector_spec.rb +3 -3
  1262. data/spec/unit/pops/evaluator/access_ops_spec.rb +133 -18
  1263. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +170 -0
  1264. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
  1265. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  1266. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +155 -41
  1267. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  1268. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  1269. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
  1270. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +133 -0
  1271. data/spec/unit/pops/evaluator/variables_spec.rb +2 -2
  1272. data/spec/unit/pops/issues_spec.rb +16 -16
  1273. data/spec/unit/pops/label_provider_spec.rb +5 -1
  1274. data/spec/unit/pops/loaders/dependency_loader_spec.rb +66 -1
  1275. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  1276. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  1277. data/spec/unit/pops/loaders/loaders_spec.rb +292 -51
  1278. data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
  1279. data/spec/unit/pops/loaders/static_loader_spec.rb +83 -18
  1280. data/spec/unit/pops/lookup/context_spec.rb +178 -0
  1281. data/spec/unit/pops/lookup/interpolation_spec.rb +333 -0
  1282. data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
  1283. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  1284. data/spec/unit/pops/migration_spec.rb +53 -0
  1285. data/spec/unit/pops/parser/lexer2_spec.rb +369 -10
  1286. data/spec/unit/pops/parser/parse_application_spec.rb +35 -0
  1287. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +31 -0
  1288. data/spec/unit/pops/parser/parse_calls_spec.rb +25 -0
  1289. data/spec/unit/pops/parser/parse_capabilities_spec.rb +40 -0
  1290. data/spec/unit/pops/parser/parse_functions_spec.rb +19 -0
  1291. data/spec/unit/pops/parser/parse_heredoc_spec.rb +26 -0
  1292. data/spec/unit/pops/parser/parse_lambda_spec.rb +19 -0
  1293. data/spec/unit/pops/parser/parse_site_spec.rb +51 -0
  1294. data/spec/unit/pops/parser/parser_rspec_helper.rb +6 -0
  1295. data/spec/unit/pops/parser/parser_spec.rb +28 -0
  1296. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  1297. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  1298. data/spec/unit/pops/resource/resource_type_impl_spec.rb +111 -0
  1299. data/spec/unit/pops/serialization/packer_spec.rb +154 -0
  1300. data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
  1301. data/spec/unit/pops/serialization/serialization_spec.rb +314 -0
  1302. data/spec/unit/pops/time/timespan_spec.rb +121 -0
  1303. data/spec/unit/pops/types/enumeration_spec.rb +13 -12
  1304. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  1305. data/spec/unit/pops/types/p_binary_type_spec.rb +243 -0
  1306. data/spec/unit/pops/types/p_object_type_spec.rb +1167 -0
  1307. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +327 -0
  1308. data/spec/unit/pops/types/p_sensitive_type_spec.rb +169 -0
  1309. data/spec/unit/pops/types/p_timespan_type_spec.rb +273 -0
  1310. data/spec/unit/pops/types/p_timestamp_type_spec.rb +311 -0
  1311. data/spec/unit/pops/types/p_type_set_type_spec.rb +453 -0
  1312. data/spec/unit/pops/types/recursion_guard_spec.rb +93 -0
  1313. data/spec/unit/pops/types/ruby_generator_spec.rb +577 -0
  1314. data/spec/unit/pops/types/string_converter_spec.rb +1029 -0
  1315. data/spec/unit/pops/types/type_acceptor_spec.rb +106 -0
  1316. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  1317. data/spec/unit/pops/types/type_calculator_spec.rb +1107 -871
  1318. data/spec/unit/pops/types/type_factory_spec.rb +132 -91
  1319. data/spec/unit/pops/types/type_formatter_spec.rb +396 -0
  1320. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +219 -0
  1321. data/spec/unit/pops/types/type_parser_spec.rb +206 -36
  1322. data/spec/unit/pops/types/types_spec.rb +600 -0
  1323. data/spec/unit/pops/validation_spec.rb +66 -0
  1324. data/spec/unit/pops/validator/validator_spec.rb +400 -18
  1325. data/spec/unit/property/ensure_spec.rb +0 -0
  1326. data/spec/unit/property/keyvalue_spec.rb +0 -0
  1327. data/spec/unit/property/list_spec.rb +0 -0
  1328. data/spec/unit/property/ordered_list_spec.rb +0 -0
  1329. data/spec/unit/property_spec.rb +49 -12
  1330. data/spec/unit/provider/augeas/augeas_spec.rb +59 -0
  1331. data/spec/unit/provider/cisco_spec.rb +0 -0
  1332. data/spec/unit/provider/command_spec.rb +0 -0
  1333. data/spec/unit/provider/cron/crontab_spec.rb +0 -0
  1334. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  1335. data/spec/unit/provider/exec/posix_spec.rb +0 -0
  1336. data/spec/unit/provider/exec/shell_spec.rb +0 -0
  1337. data/spec/unit/provider/exec/windows_spec.rb +0 -0
  1338. data/spec/unit/provider/exec_spec.rb +0 -0
  1339. data/spec/unit/provider/file/posix_spec.rb +0 -0
  1340. data/spec/unit/provider/file/windows_spec.rb +0 -0
  1341. data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
  1342. data/spec/unit/provider/group/groupadd_spec.rb +0 -0
  1343. data/spec/unit/provider/group/ldap_spec.rb +0 -0
  1344. data/spec/unit/provider/group/pw_spec.rb +0 -0
  1345. data/spec/unit/provider/group/windows_adsi_spec.rb +88 -18
  1346. data/spec/unit/provider/host/parsed_spec.rb +0 -0
  1347. data/spec/unit/provider/interface/cisco_spec.rb +0 -0
  1348. data/spec/unit/provider/ldap_spec.rb +0 -0
  1349. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  1350. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -0
  1351. data/spec/unit/provider/mount/parsed_spec.rb +31 -5
  1352. data/spec/unit/provider/mount_spec.rb +0 -0
  1353. data/spec/unit/provider/naginator_spec.rb +0 -0
  1354. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  1355. data/spec/unit/provider/nameservice_spec.rb +42 -0
  1356. data/spec/unit/provider/network_device_spec.rb +0 -0
  1357. data/spec/unit/provider/package/aix_spec.rb +0 -0
  1358. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  1359. data/spec/unit/provider/package/apt_spec.rb +5 -0
  1360. data/spec/unit/provider/package/aptitude_spec.rb +0 -0
  1361. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1362. data/spec/unit/provider/package/base_spec.rb +18 -0
  1363. data/spec/unit/provider/package/dnf_spec.rb +30 -0
  1364. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1365. data/spec/unit/provider/package/freebsd_spec.rb +0 -0
  1366. data/spec/unit/provider/package/gem_spec.rb +77 -0
  1367. data/spec/unit/provider/package/hpux_spec.rb +0 -0
  1368. data/spec/unit/provider/package/macports_spec.rb +0 -0
  1369. data/spec/unit/provider/package/nim_spec.rb +6 -6
  1370. data/spec/unit/provider/package/openbsd_spec.rb +0 -0
  1371. data/spec/unit/provider/package/opkg_spec.rb +0 -0
  1372. data/spec/unit/provider/package/pacman_spec.rb +55 -0
  1373. data/spec/unit/provider/package/pip3_spec.rb +22 -0
  1374. data/spec/unit/provider/package/pip_spec.rb +173 -46
  1375. data/spec/unit/provider/package/pkg_spec.rb +137 -99
  1376. data/spec/unit/provider/package/pkgdmg_spec.rb +32 -8
  1377. data/spec/unit/provider/package/pkgin_spec.rb +23 -13
  1378. data/spec/unit/provider/package/pkgng_spec.rb +186 -0
  1379. data/spec/unit/provider/package/pkgutil_spec.rb +0 -0
  1380. data/spec/unit/provider/package/portage_spec.rb +64 -8
  1381. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -0
  1382. data/spec/unit/provider/package/rpm_spec.rb +168 -11
  1383. data/spec/unit/provider/package/sun_spec.rb +0 -0
  1384. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  1385. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -1
  1386. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -1
  1387. data/spec/unit/provider/package/windows/package_spec.rb +45 -1
  1388. data/spec/unit/provider/package/windows_spec.rb +8 -2
  1389. data/spec/unit/provider/package/yum_spec.rb +29 -466
  1390. data/spec/unit/provider/package/zypper_spec.rb +64 -19
  1391. data/spec/unit/provider/parsedfile_spec.rb +0 -0
  1392. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +523 -70
  1393. data/spec/unit/provider/selboolean_spec.rb +0 -0
  1394. data/spec/unit/provider/selmodule_spec.rb +0 -0
  1395. data/spec/unit/provider/service/base_spec.rb +44 -27
  1396. data/spec/unit/provider/service/bsd_spec.rb +130 -0
  1397. data/spec/unit/provider/service/daemontools_spec.rb +0 -0
  1398. data/spec/unit/provider/service/debian_spec.rb +38 -0
  1399. data/spec/unit/provider/service/freebsd_spec.rb +17 -0
  1400. data/spec/unit/provider/service/gentoo_spec.rb +8 -0
  1401. data/spec/unit/provider/service/init_spec.rb +42 -1
  1402. data/spec/unit/provider/service/launchd_spec.rb +124 -25
  1403. data/spec/unit/provider/service/openbsd_spec.rb +1 -0
  1404. data/spec/unit/provider/service/openrc_spec.rb +7 -0
  1405. data/spec/unit/provider/service/openwrt_spec.rb +0 -0
  1406. data/spec/unit/provider/service/rcng_spec.rb +41 -0
  1407. data/spec/unit/provider/service/redhat_spec.rb +9 -1
  1408. data/spec/unit/provider/service/runit_spec.rb +0 -0
  1409. data/spec/unit/provider/service/smf_spec.rb +77 -13
  1410. data/spec/unit/provider/service/src_spec.rb +26 -4
  1411. data/spec/unit/provider/service/systemd_spec.rb +228 -39
  1412. data/spec/unit/provider/service/upstart_spec.rb +64 -0
  1413. data/spec/unit/provider/service/windows_spec.rb +0 -0
  1414. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +2 -1
  1415. data/spec/unit/provider/sshkey/parsed_spec.rb +42 -18
  1416. data/spec/unit/provider/user/aix_spec.rb +7 -0
  1417. data/spec/unit/provider/user/directoryservice_spec.rb +164 -83
  1418. data/spec/unit/provider/user/hpux_spec.rb +0 -0
  1419. data/spec/unit/provider/user/ldap_spec.rb +0 -0
  1420. data/spec/unit/provider/user/openbsd_spec.rb +0 -0
  1421. data/spec/unit/provider/user/pw_spec.rb +0 -0
  1422. data/spec/unit/provider/user/user_role_add_spec.rb +0 -0
  1423. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  1424. data/spec/unit/provider/user/windows_adsi_spec.rb +160 -7
  1425. data/spec/unit/provider/vlan/cisco_spec.rb +0 -0
  1426. data/spec/unit/provider/yumrepo/inifile_spec.rb +16 -0
  1427. data/spec/unit/provider/zfs/zfs_spec.rb +0 -0
  1428. data/spec/unit/provider/zone/solaris_spec.rb +64 -12
  1429. data/spec/unit/provider/zpool/zpool_spec.rb +0 -0
  1430. data/spec/unit/provider_spec.rb +0 -0
  1431. data/spec/unit/puppet_spec.rb +15 -1
  1432. data/spec/unit/relationship_spec.rb +0 -0
  1433. data/spec/unit/reports/http_spec.rb +0 -0
  1434. data/spec/unit/reports/store_spec.rb +0 -0
  1435. data/spec/unit/reports_spec.rb +10 -0
  1436. data/spec/unit/resource/capability_finder_spec.rb +147 -0
  1437. data/spec/unit/resource/catalog_spec.rb +235 -10
  1438. data/spec/unit/resource/status_spec.rb +0 -0
  1439. data/spec/unit/resource/type_collection_spec.rb +23 -2
  1440. data/spec/unit/resource/type_spec.rb +161 -10
  1441. data/spec/unit/resource_spec.rb +137 -48
  1442. data/spec/unit/semver_spec.rb +14 -0
  1443. data/spec/unit/settings/directory_setting_spec.rb +0 -0
  1444. data/spec/unit/settings/duration_setting_spec.rb +0 -0
  1445. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  1446. data/spec/unit/settings/file_setting_spec.rb +37 -0
  1447. data/spec/unit/settings/ini_file_spec.rb +58 -1
  1448. data/spec/unit/settings/path_setting_spec.rb +0 -0
  1449. data/spec/unit/settings/priority_setting_spec.rb +0 -0
  1450. data/spec/unit/settings_spec.rb +116 -3
  1451. data/spec/unit/ssl/base_spec.rb +0 -0
  1452. data/spec/unit/ssl/certificate_authority/interface_spec.rb +180 -13
  1453. data/spec/unit/ssl/certificate_authority_spec.rb +80 -26
  1454. data/spec/unit/ssl/certificate_factory_spec.rb +0 -0
  1455. data/spec/unit/ssl/certificate_request_spec.rb +1 -1
  1456. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  1457. data/spec/unit/ssl/certificate_spec.rb +0 -0
  1458. data/spec/unit/ssl/configuration_spec.rb +0 -0
  1459. data/spec/unit/ssl/host_spec.rb +3 -3
  1460. data/spec/unit/ssl/inventory_spec.rb +0 -0
  1461. data/spec/unit/ssl/key_spec.rb +0 -0
  1462. data/spec/unit/ssl/oids_spec.rb +24 -13
  1463. data/spec/unit/status_spec.rb +0 -0
  1464. data/spec/unit/transaction/additional_resource_generator_spec.rb +160 -31
  1465. data/spec/unit/transaction/event_manager_spec.rb +0 -0
  1466. data/spec/unit/transaction/event_spec.rb +3 -1
  1467. data/spec/unit/transaction/persistence_spec.rb +178 -0
  1468. data/spec/unit/transaction/report_spec.rb +138 -2
  1469. data/spec/unit/transaction/resource_harness_spec.rb +81 -37
  1470. data/spec/unit/transaction_spec.rb +50 -0
  1471. data/spec/unit/type/augeas_spec.rb +0 -0
  1472. data/spec/unit/type/component_spec.rb +0 -0
  1473. data/spec/unit/type/computer_spec.rb +0 -0
  1474. data/spec/unit/type/cron_spec.rb +0 -0
  1475. data/spec/unit/type/exec_spec.rb +16 -8
  1476. data/spec/unit/type/file/checksum_spec.rb +6 -0
  1477. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  1478. data/spec/unit/type/file/content_spec.rb +59 -208
  1479. data/spec/unit/type/file/ctime_spec.rb +0 -0
  1480. data/spec/unit/type/file/ensure_spec.rb +0 -0
  1481. data/spec/unit/type/file/group_spec.rb +0 -0
  1482. data/spec/unit/type/file/mode_spec.rb +0 -0
  1483. data/spec/unit/type/file/mtime_spec.rb +0 -0
  1484. data/spec/unit/type/file/owner_spec.rb +0 -0
  1485. data/spec/unit/type/file/selinux_spec.rb +0 -0
  1486. data/spec/unit/type/file/source_spec.rb +211 -119
  1487. data/spec/unit/type/file/type_spec.rb +0 -0
  1488. data/spec/unit/type/file_spec.rb +161 -34
  1489. data/spec/unit/type/filebucket_spec.rb +0 -0
  1490. data/spec/unit/type/group_spec.rb +0 -0
  1491. data/spec/unit/type/host_spec.rb +4 -4
  1492. data/spec/unit/type/interface_spec.rb +32 -0
  1493. data/spec/unit/type/k5login_spec.rb +0 -0
  1494. data/spec/unit/type/macauthorization_spec.rb +4 -1
  1495. data/spec/unit/type/mailalias_spec.rb +0 -0
  1496. data/spec/unit/type/maillist_spec.rb +0 -0
  1497. data/spec/unit/type/mcx_spec.rb +0 -0
  1498. data/spec/unit/type/mount_spec.rb +50 -8
  1499. data/spec/unit/type/nagios_spec.rb +0 -0
  1500. data/spec/unit/type/noop_metaparam_spec.rb +0 -0
  1501. data/spec/unit/type/package/package_settings_spec.rb +0 -0
  1502. data/spec/unit/type/package_spec.rb +1 -0
  1503. data/spec/unit/type/resources_spec.rb +0 -0
  1504. data/spec/unit/type/schedule_spec.rb +0 -0
  1505. data/spec/unit/type/selboolean_spec.rb +0 -0
  1506. data/spec/unit/type/selmodule_spec.rb +0 -0
  1507. data/spec/unit/type/service_spec.rb +21 -0
  1508. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -0
  1509. data/spec/unit/type/sshkey_spec.rb +0 -0
  1510. data/spec/unit/type/stage_spec.rb +0 -0
  1511. data/spec/unit/type/tidy_spec.rb +4 -4
  1512. data/spec/unit/type/user_spec.rb +40 -7
  1513. data/spec/unit/type/vlan_spec.rb +1 -1
  1514. data/spec/unit/type/whit_spec.rb +0 -0
  1515. data/spec/unit/type/yumrepo_spec.rb +3 -7
  1516. data/spec/unit/type/zfs_spec.rb +0 -0
  1517. data/spec/unit/type/zone_spec.rb +0 -0
  1518. data/spec/unit/type/zpool_spec.rb +0 -0
  1519. data/spec/unit/type_spec.rb +119 -1
  1520. data/spec/unit/util/autoload_spec.rb +0 -0
  1521. data/spec/unit/util/backups_spec.rb +0 -0
  1522. data/spec/unit/util/checksums_spec.rb +0 -0
  1523. data/spec/unit/util/colors_spec.rb +0 -0
  1524. data/spec/unit/util/command_line_spec.rb +11 -0
  1525. data/spec/unit/util/constant_inflector_spec.rb +0 -0
  1526. data/spec/unit/util/diff_spec.rb +0 -0
  1527. data/spec/unit/util/errors_spec.rb +0 -0
  1528. data/spec/unit/util/execution_spec.rb +1 -1
  1529. data/spec/unit/util/execution_stub_spec.rb +0 -0
  1530. data/spec/unit/util/feature_spec.rb +1 -1
  1531. data/spec/unit/util/filetype_spec.rb +4 -4
  1532. data/spec/unit/util/http_proxy_spec.rb +87 -0
  1533. data/spec/unit/util/ldap/connection_spec.rb +0 -0
  1534. data/spec/unit/util/ldap/generator_spec.rb +1 -1
  1535. data/spec/unit/util/ldap/manager_spec.rb +0 -0
  1536. data/spec/unit/util/log/destinations_spec.rb +0 -2
  1537. data/spec/unit/util/log_spec.rb +125 -1
  1538. data/spec/unit/util/logging_spec.rb +69 -0
  1539. data/spec/unit/util/metric_spec.rb +0 -0
  1540. data/spec/unit/util/monkey_patches_spec.rb +95 -3
  1541. data/spec/unit/util/multi_match_spec.rb +39 -0
  1542. data/spec/unit/util/nagios_maker_spec.rb +0 -0
  1543. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  1544. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -0
  1545. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1546. data/spec/unit/util/network_device/config_spec.rb +0 -0
  1547. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -0
  1548. data/spec/unit/util/network_device/transport/base_spec.rb +0 -0
  1549. data/spec/unit/util/network_device/transport/ssh_spec.rb +1 -1
  1550. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  1551. data/spec/unit/util/network_device_spec.rb +1 -1
  1552. data/spec/unit/util/package_spec.rb +0 -0
  1553. data/spec/unit/util/plist_spec.rb +135 -0
  1554. data/spec/unit/util/posix_spec.rb +0 -0
  1555. data/spec/unit/util/rdoc_spec.rb +0 -0
  1556. data/spec/unit/util/resource_template_spec.rb +2 -2
  1557. data/spec/unit/util/retry_action_spec.rb +0 -0
  1558. data/spec/unit/util/run_mode_spec.rb +27 -3
  1559. data/spec/unit/util/selinux_spec.rb +0 -0
  1560. data/spec/unit/util/splayer_spec.rb +45 -0
  1561. data/spec/unit/util/storage_spec.rb +8 -1
  1562. data/spec/unit/util/suidmanager_spec.rb +0 -0
  1563. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -0
  1564. data/spec/unit/util/tagging_spec.rb +4 -0
  1565. data/spec/unit/util/user_attr_spec.rb +0 -0
  1566. data/spec/unit/util/warnings_spec.rb +0 -0
  1567. data/spec/unit/util/windows/adsi_spec.rb +196 -60
  1568. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  1569. data/spec/unit/util/windows/file_spec.rb +89 -0
  1570. data/spec/unit/util/windows/root_certs_spec.rb +0 -0
  1571. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  1572. data/spec/unit/util/windows/sid_spec.rb +76 -24
  1573. data/spec/unit/util/yaml_spec.rb +13 -1
  1574. data/spec/unit/util_spec.rb +219 -15
  1575. data/spec/unit/version_spec.rb +15 -0
  1576. data/spec/watchr.rb +0 -0
  1577. data/tasks/cfpropertylist.rake +15 -0
  1578. data/tasks/i18n.rake +20 -0
  1579. metadata +3701 -3043
  1580. checksums.yaml +0 -7
  1581. data/ext/puppet-nm-dispatcher +0 -13
  1582. data/ext/puppetlisten/puppetlisten.rb +0 -77
  1583. data/ext/puppetlisten/puppetrun.rb +0 -38
  1584. data/ext/systemd/puppetmaster.service +0 -11
  1585. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
  1586. data/lib/puppet/pops/types/types_meta.rb +0 -223
  1587. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  1588. data/lib/puppet/vendor/load_plist.rb +0 -1
  1589. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  1590. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  1591. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  1592. data/lib/puppet/vendor/plist/README +0 -36
  1593. data/lib/puppet/vendor/plist/Rakefile +0 -144
  1594. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  1595. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  1596. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  1597. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  1598. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  1599. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  1600. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  1601. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  1602. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  1603. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  1604. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  1605. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  1606. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  1607. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  1608. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  1609. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  1610. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  1611. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
  1612. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  1613. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  1614. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  1615. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  1616. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  1617. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  1618. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  1619. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  1620. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  1621. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  1622. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  1623. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  1624. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
  1625. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -3
  1626. data/spec/integration/data_binding.rb +0 -104
  1627. data/spec/integration/parser/functions/require_spec.rb +0 -43
  1628. data/spec/integration/provider/package_spec.rb +0 -33
  1629. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  1630. data/spec/unit/parser/functions/include_spec.rb +0 -55
  1631. data/spec/unit/parser/functions/require_spec.rb +0 -68
  1632. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
  1633. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  1634. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  1635. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  1636. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  1637. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  1638. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  1639. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  1640. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  1641. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  1642. /data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  1643. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{usee → modules/usee}/lib/puppet/functions/usee/callee.rb +0 -0
  1644. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/lib/puppet/functions/user/caller.rb +0 -0
@@ -118,14 +118,14 @@ go into the background, attempt to get a signed certificate, and retrieve
118
118
  and apply its configuration every 30 minutes.
119
119
 
120
120
  Some flags are meant specifically for interactive use -- in particular,
121
- 'test', 'tags' or 'fingerprint' are useful. 'test' enables verbose
122
- logging, causes the daemon to stay in the foreground, exits if the
123
- server's configuration is invalid (this happens if, for instance, you've
124
- left a syntax error on the server), and exits after running the
125
- configuration once (rather than hanging around as a long-running
126
- process).
127
-
128
- 'tags' allows you to specify what portions of a configuration you want
121
+ 'test', 'tags' and 'fingerprint' are useful.
122
+
123
+ '--test' does a single run in the foreground with verbose logging, then exits.
124
+ It will also exit if it can't get a valid catalog. The exit code after running
125
+ with '--test' is 0 if the catalog was successfully applied, and 1 if the run
126
+ either failed or wasn't attempted (due to another run already in progress).
127
+
128
+ '--tags' allows you to specify what portions of a configuration you want
129
129
  to apply. Puppet elements are tagged with all of the class or definition
130
130
  names that contain them, and you can use the 'tags' flag to specify one
131
131
  of these names, causing only configuration elements contained within
@@ -136,7 +136,7 @@ class, and call puppet with '--tags ntpd', which would only apply that
136
136
  small portion of the configuration during your testing, rather than
137
137
  applying the whole thing.
138
138
 
139
- 'fingerprint' is a one-time flag. In this mode 'puppet agent' will run
139
+ '--fingerprint' is a one-time flag. In this mode 'puppet agent' will run
140
140
  once and display on the console (and in the log) the current certificate
141
141
  (or certificate request) fingerprint. Providing the '--digest' option
142
142
  allows to use a different digest algorithm to generate the fingerprint.
@@ -155,7 +155,7 @@ specify '--server <servername>' as an argument. Boolean settings translate into
155
155
  '--setting' and '--no-setting' pairs.
156
156
 
157
157
  See the configuration file documentation at
158
- http://docs.puppetlabs.com/references/stable/configuration.html for the
158
+ https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
159
159
  full list of acceptable settings. A commented list of all settings can also be
160
160
  generated by running puppet agent with '--genconfig'.
161
161
 
@@ -181,10 +181,20 @@ generated by running puppet agent with '--genconfig'.
181
181
  Enable full debugging.
182
182
 
183
183
  * --detailed-exitcodes:
184
- Provide transaction information via exit codes. If this is enabled, an exit
185
- code of '2' means there were changes, an exit code of '4' means there were
186
- failures during the transaction, and an exit code of '6' means there were both
187
- changes and failures.
184
+ Provide extra information about the run via exit codes; only works if '--test'
185
+ or '--onetime' is also specified. If enabled, 'puppet agent' will use the
186
+ following exit codes:
187
+
188
+ 0: The run succeeded with no changes or failures; the system was already in
189
+ the desired state.
190
+
191
+ 1: The run failed, or wasn't attempted due to another run already in progress.
192
+
193
+ 2: The run succeeded, and some resources were changed.
194
+
195
+ 4: The run succeeded, and some resources failed.
196
+
197
+ 6: The run succeeded, and included both changes and failures.
188
198
 
189
199
  * --digest:
190
200
  Change the certificate fingerprinting digest algorithm. The default is
@@ -228,6 +238,11 @@ generated by running puppet agent with '--genconfig'.
228
238
  file. If debugging or verbosity is enabled, this defaults to 'console'.
229
239
  Otherwise, it defaults to 'syslog' on POSIX systems and 'eventlog' on Windows.
230
240
 
241
+ A path ending with '.json' will receive structured output in JSON format. The
242
+ log file will not have an ending ']' automatically written to it due to the
243
+ appending nature of logging. It must be appended manually to make the content
244
+ valid JSON.
245
+
231
246
  * --masterport:
232
247
  The port on which to contact the puppet master.
233
248
  (This is a Puppet setting, and can go in puppet.conf.)
@@ -248,8 +263,8 @@ generated by running puppet agent with '--genconfig'.
248
263
 
249
264
  * --test:
250
265
  Enable the most common options used for testing. These are 'onetime',
251
- 'verbose', 'ignorecache', 'no-daemonize', 'no-usecacheonfailure',
252
- 'detailed-exitcodes', 'no-splay', and 'show_diff'.
266
+ 'verbose', 'no-daemonize', 'no-usecacheonfailure', 'detailed-exitcodes',
267
+ 'no-splay', 'show_diff', and 'no-use_cached_catalog'.
253
268
 
254
269
  * --verbose:
255
270
  Turn on verbose reporting.
@@ -307,6 +322,9 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
307
322
  # waiting for certificates so that we don't block
308
323
  daemon = daemonize_process_when(Puppet[:daemonize])
309
324
 
325
+ # Setup signal traps immediately after daemonization so we clean up the daemon
326
+ daemon.set_signal_traps
327
+
310
328
  wait_for_certificates
311
329
 
312
330
  if Puppet[:onetime]
@@ -331,7 +349,6 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
331
349
  end
332
350
 
333
351
  def onetime(daemon)
334
- daemon.set_signal_traps
335
352
  begin
336
353
  exitstatus = daemon.agent.run
337
354
  rescue => detail
@@ -356,17 +373,19 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
356
373
 
357
374
  # Enable all of the most common test options.
358
375
  def setup_test
359
- Puppet.settings.handlearg("--ignorecache")
360
376
  Puppet.settings.handlearg("--no-usecacheonfailure")
361
377
  Puppet.settings.handlearg("--no-splay")
362
378
  Puppet.settings.handlearg("--show_diff")
363
379
  Puppet.settings.handlearg("--no-daemonize")
380
+ Puppet.settings.handlearg("--no-use_cached_catalog")
364
381
  options[:verbose] = true
365
382
  Puppet[:onetime] = true
366
383
  options[:detailed_exitcodes] = true
367
384
  end
368
385
 
369
386
  def setup
387
+ raise ArgumentError, "The puppet agent command does not take parameters" unless command_line.args.empty?
388
+
370
389
  setup_test if options[:test]
371
390
 
372
391
  setup_logs
@@ -385,7 +404,9 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
385
404
  # we want the last report to be persisted locally
386
405
  Puppet::Transaction::Report.indirection.cache_class = :yaml
387
406
 
388
- if Puppet[:catalog_cache_terminus]
407
+ if Puppet[:noop]
408
+ Puppet::Resource::Catalog.indirection.cache_class = nil
409
+ elsif Puppet[:catalog_cache_terminus]
389
410
  Puppet::Resource::Catalog.indirection.cache_class = Puppet[:catalog_cache_terminus]
390
411
  end
391
412
 
@@ -3,6 +3,8 @@ require 'puppet/configurer'
3
3
  require 'puppet/util/profiler/aggregate'
4
4
 
5
5
  class Puppet::Application::Apply < Puppet::Application
6
+ require 'puppet/util/splayer'
7
+ include Puppet::Util::Splayer
6
8
 
7
9
  option("--debug","-d")
8
10
  option("--execute EXECUTE","-e") do |arg|
@@ -72,7 +74,7 @@ valid setting, so you can specify '--tags <class>,<tag>'
72
74
  as an argument.
73
75
 
74
76
  See the configuration file documentation at
75
- http://docs.puppetlabs.com/references/stable/configuration.html for the
77
+ https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
76
78
  full list of acceptable parameters. A commented list of all
77
79
  configuration options can also be generated by running puppet with
78
80
  '--genconfig'.
@@ -81,10 +83,19 @@ configuration options can also be generated by running puppet with
81
83
  Enable full debugging.
82
84
 
83
85
  * --detailed-exitcodes:
84
- Provide transaction information via exit codes. If this is enabled, an exit
85
- code of '2' means there were changes, an exit code of '4' means there were
86
- failures during the transaction, and an exit code of '6' means there were both
87
- changes and failures.
86
+ Provide extra information about the run via exit codes. If enabled, 'puppet
87
+ apply' will use the following exit codes:
88
+
89
+ 0: The run succeeded with no changes or failures; the system was already in
90
+ the desired state.
91
+
92
+ 1: The run failed.
93
+
94
+ 2: The run succeeded, and some resources were changed.
95
+
96
+ 4: The run succeeded, and some resources failed.
97
+
98
+ 6: The run succeeded, and included both changes and failures.
88
99
 
89
100
  * --help:
90
101
  Print this help message
@@ -99,6 +110,11 @@ configuration options can also be generated by running puppet with
99
110
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
100
111
  file. Defaults to 'console'.
101
112
 
113
+ A path ending with '.json' will receive structured output in JSON format. The
114
+ log file will not have an ending ']' automatically written to it due to the
115
+ appending nature of logging. It must be appended manually to make the content
116
+ valid JSON.
117
+
102
118
  * --noop:
103
119
  Use 'noop' mode where Puppet runs in a no-op or dry-run mode. This
104
120
  is useful for seeing what changes Puppet will make without actually
@@ -159,7 +175,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
159
175
  if options[:catalog] == "-"
160
176
  text = $stdin.read
161
177
  else
162
- text = ::File.read(options[:catalog])
178
+ text = Puppet::FileSystem.read(options[:catalog], :encoding => 'utf-8')
163
179
  end
164
180
  catalog = read_catalog(text)
165
181
  apply_catalog(catalog)
@@ -175,6 +191,9 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
175
191
  Puppet.warning("Only one file can be applied per run. Skipping #{command_line.args.join(', ')}") if command_line.args.size > 0
176
192
  end
177
193
 
194
+ # splay if needed
195
+ splay
196
+
178
197
  unless Puppet[:node_name_fact].empty?
179
198
  # Collect our facts.
180
199
  unless facts = Puppet::Node::Facts.indirection.find(Puppet[:node_name_value])
@@ -185,20 +204,33 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
185
204
  facts.name = Puppet[:node_name_value]
186
205
  end
187
206
 
188
- configured_environment = Puppet.lookup(:current_environment)
207
+ # Find our Node
208
+ unless node = Puppet::Node.indirection.find(Puppet[:node_name_value])
209
+ raise "Could not find node #{Puppet[:node_name_value]}"
210
+ end
211
+
212
+ configured_environment = node.environment || Puppet.lookup(:current_environment)
213
+
189
214
  apply_environment = manifest ?
190
215
  configured_environment.override_with(:manifest => manifest) :
191
216
  configured_environment
192
217
 
193
- Puppet.override({:current_environment => apply_environment}, "For puppet apply") do
194
- # Find our Node
195
- unless node = Puppet::Node.indirection.find(Puppet[:node_name_value])
196
- raise "Could not find node #{Puppet[:node_name_value]}"
197
- end
218
+ # Modify the node descriptor to use the special apply_environment.
219
+ # It is based on the actual environment from the node, or the locally
220
+ # configured environment if the node does not specify one.
221
+ # If a manifest file is passed on the command line, it overrides
222
+ # the :manifest setting of the apply_environment.
223
+ node.environment = apply_environment
198
224
 
225
+ Puppet.override({:current_environment => apply_environment}, "For puppet apply") do
199
226
  # Merge in the facts.
200
227
  node.merge(facts.values) if facts
201
228
 
229
+ # Add server facts so $server_facts[environment] exists when doing a puppet apply
230
+ if Puppet[:trusted_server_facts]
231
+ node.add_server_facts({})
232
+ end
233
+
202
234
  # Allow users to load the classes that puppet agent creates.
203
235
  if options[:loadclasses]
204
236
  file = Puppet[:classfile]
@@ -207,14 +239,25 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
207
239
  $stderr.puts "#{file} is not readable"
208
240
  exit(63)
209
241
  end
210
- node.classes = ::File.read(file).split(/[\s\n]+/)
242
+ node.classes = Puppet::FileSystem.read(file, :encoding => 'utf-8').split(/[\s\n]+/)
211
243
  end
212
244
  end
213
245
 
214
246
  begin
215
- # Compile our catalog
247
+ # Compile the catalog
216
248
  starttime = Time.now
217
- catalog = Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
249
+
250
+ # When compiling, the compiler traps and logs certain errors
251
+ # Those that do not lead to an immediate exit are caught by the general
252
+ # rule and gets logged.
253
+ #
254
+ catalog =
255
+ begin
256
+ Puppet::Resource::Catalog.indirection.find(node.name, :use_node => node)
257
+ rescue Puppet::ParseErrorWithIssue, Puppet::Error
258
+ # already logged and handled by the compiler for these two cases
259
+ exit(1)
260
+ end
218
261
 
219
262
  # Translate it to a RAL catalog
220
263
  catalog = catalog.to_ral
@@ -252,6 +295,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
252
295
 
253
296
  # Enable all of the most common test options.
254
297
  def setup_test
298
+ Puppet.settings.handlearg("--no-splay")
255
299
  Puppet.settings.handlearg("--show_diff")
256
300
  options[:verbose] = true
257
301
  options[:detailed_exitcodes] = true
@@ -269,13 +313,22 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
269
313
  exit(1)
270
314
  end
271
315
 
316
+ Puppet.settings.use :main, :agent, :ssl
317
+
318
+
319
+ if Puppet[:noop]
320
+ Puppet::Resource::Catalog.indirection.cache_class = nil
321
+ elsif Puppet[:catalog_cache_terminus]
322
+ Puppet::Resource::Catalog.indirection.cache_class = Puppet[:catalog_cache_terminus]
323
+ end
324
+
272
325
  # we want the last report to be persisted locally
273
326
  Puppet::Transaction::Report.indirection.cache_class = :yaml
274
327
 
275
328
  set_log_level
276
329
 
277
330
  if Puppet[:profile]
278
- @profiler = Puppet::Util::Profiler.add_profiler(Puppet::Util::Profiler::Aggregate.new(Puppet.method(:debug), "apply"))
331
+ @profiler = Puppet::Util::Profiler.add_profiler(Puppet::Util::Profiler::Aggregate.new(Puppet.method(:info), "apply"))
279
332
  end
280
333
  end
281
334
 
@@ -6,5 +6,6 @@ class Puppet::Application::Ca < Puppet::Application::FaceBase
6
6
 
7
7
  def setup
8
8
  Puppet::SSL::Oids.register_puppet_oids
9
+ super
9
10
  end
10
11
  end
@@ -74,11 +74,31 @@ class Puppet::Application::Cert < Puppet::Application
74
74
  options[:allow_dns_alt_names] = value
75
75
  end
76
76
 
77
+ option("--[no-]allow-authorization-extensions") do |value|
78
+ options[:allow_authorization_extensions] = value
79
+ end
80
+
77
81
  option("--verbose", "-v") do |arg|
78
82
  options[:verbose] = true
79
83
  set_log_level
80
84
  end
81
85
 
86
+ option("--human-readable", "-H") do |arg|
87
+ options[:format] = :human
88
+ end
89
+
90
+ option("--machine-readable", "-m") do |arg|
91
+ options[:format] = :machine
92
+ end
93
+
94
+ option("--interactive", "-i") do |arg|
95
+ options[:interactive] = true
96
+ end
97
+
98
+ option("--assume-yes", "-y") do |arg|
99
+ options[:yes] = true
100
+ end
101
+
82
102
  def help
83
103
  <<-'HELP'
84
104
 
@@ -110,6 +130,8 @@ ACTIONS
110
130
  Every action except 'list' and 'generate' requires a hostname to act on,
111
131
  unless the '--all' option is set.
112
132
 
133
+ The most important actions for day-to-day use are 'list' and 'sign'.
134
+
113
135
  * clean:
114
136
  Revoke a host's certificate (if applicable) and remove all files
115
137
  related to that host from puppet cert's storage. This is useful when
@@ -130,7 +152,10 @@ unless the '--all' option is set.
130
152
  List outstanding certificate requests. If '--all' is specified, signed
131
153
  certificates are also listed, prefixed by '+', and revoked or invalid
132
154
  certificates are prefixed by '-' (the verification outcome is printed
133
- in parenthesis).
155
+ in parenthesis). If '--human-readable' or '-H' is specified,
156
+ certificates are formatted in a way to improve human scan-ability. If
157
+ '--machine-readable' or '-m' is specified, output is formatted concisely
158
+ for consumption by a script.
134
159
 
135
160
  * print:
136
161
  Print the full-text version of a host's certificate.
@@ -143,7 +168,10 @@ unless the '--all' option is set.
143
168
  needs to be restarted after revoking certificates.
144
169
 
145
170
  * sign:
146
- Sign an outstanding certificate request.
171
+ Sign an outstanding certificate request. If '--interactive' or '-i' is
172
+ supplied the user will be prompted to confirm that they are signing the
173
+ correct certificate (recommended). If '--assume-yes' or '-y' is supplied
174
+ the interactive prompt will assume the answer of 'yes'.
147
175
 
148
176
  * verify:
149
177
  Verify the named certificate against the local CA certificate.
@@ -162,7 +190,7 @@ setting, so you can specify '--ssldir <directory>' as an
162
190
  argument.
163
191
 
164
192
  See the configuration file documentation at
165
- http://docs.puppetlabs.com/references/stable/configuration.html for the
193
+ https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
166
194
  full list of acceptable parameters. A commented list of all
167
195
  configuration options can also be generated by running puppet cert with
168
196
  '--genconfig'.
@@ -171,6 +199,25 @@ configuration options can also be generated by running puppet cert with
171
199
  Operate on all items. Currently only makes sense with the 'sign',
172
200
  'list', and 'fingerprint' actions.
173
201
 
202
+ * --allow-dns-alt-names:
203
+ Sign a certificate request even if it contains one or more alternate DNS
204
+ names. If this option isn't specified, 'puppet cert sign' will ignore any
205
+ requests that contain alternate names.
206
+
207
+ In general, ONLY certs intended for a Puppet master server should include
208
+ alternate DNS names, since Puppet agent relies on those names for identifying
209
+ its rightful server.
210
+
211
+ You can make Puppet agent request a certificate with alternate names by
212
+ setting 'dns_alt_names' in puppet.conf or specifying '--dns_alt_names' on the
213
+ command line. The output of 'puppet cert list' shows any requested alt names
214
+ for pending certificate requests.
215
+
216
+ * --allow-authorization-extensions:
217
+ Enable the signing of a request with authorization extensions. Such requests
218
+ are sensitive because they can be used to write access rules in Puppet Server.
219
+ Currently, this is the only means by which such requests can be signed.
220
+
174
221
  * --digest:
175
222
  Set the digest for fingerprinting (defaults to the digest used when
176
223
  signing the cert). Valid values depends on your openssl and openssl ruby
@@ -230,6 +277,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
230
277
  exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?
231
278
 
232
279
  Puppet::SSL::Oids.register_puppet_oids
280
+ Puppet::SSL::Oids.load_custom_oid_file(Puppet[:trusted_oid_mapping_file])
233
281
 
234
282
  Puppet::Util::Log.newdestination :console
235
283
 
@@ -267,6 +315,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
267
315
  exit
268
316
  end
269
317
  end
318
+
270
319
  result
271
320
  end
272
321
 
@@ -118,15 +118,20 @@ parameter, so you can specify '--server <servername>' as an argument.
118
118
  code of '1' means at least one device had a compile failure, an exit code of
119
119
  '2' means at least one device had resource changes, and an exit code of '4'
120
120
  means at least one device had resource failures. Exit codes of '3', '5', '6',
121
- or '7' means that a bitwise combination of the preceeding exit codes happened.
121
+ or '7' means that a bitwise combination of the preceding exit codes happened.
122
122
 
123
123
  * --help:
124
124
  Print this help message
125
125
 
126
126
  * --logdest:
127
- Where to send messages. Choose between syslog, the console, and a log file.
128
- Defaults to sending messages to syslog, or the console if debugging or
129
- verbosity is enabled.
127
+ Where to send log messages. Choose between 'syslog' (the POSIX syslog
128
+ service), 'console', or the path to a log file. If debugging or verbosity is
129
+ enabled, this defaults to 'console'. Otherwise, it defaults to 'syslog'.
130
+
131
+ A path ending with '.json' will receive structured output in JSON format. The
132
+ log file will not have an ending ']' automatically written to it due to the
133
+ appending nature of logging. It must be appended manually to make the content
134
+ valid JSON.
130
135
 
131
136
  * --verbose:
132
137
  Turn on verbose reporting.
@@ -194,7 +199,7 @@ Licensed under the Apache 2.0 License
194
199
 
195
200
  require 'puppet/configurer'
196
201
  configurer = Puppet::Configurer.new
197
- configurer.run(:network_device => true, :pluginsync => Puppet[:pluginsync])
202
+ configurer.run(:network_device => true, :pluginsync => Puppet::Configurer.should_pluginsync?)
198
203
  rescue => detail
199
204
  Puppet.log_exception(detail)
200
205
  # If we rescued an error, then we return 1 as the exit code
@@ -245,6 +245,10 @@ class Puppet::Application::FaceBase < Puppet::Application
245
245
  end
246
246
  end
247
247
 
248
+ if @face.deprecated?
249
+ Puppet.deprecation_warning("'puppet #{@face.name}' is deprecated and will be removed in a future release")
250
+ end
251
+
248
252
  result = @face.send(@action.name, *arguments)
249
253
  puts render(result, arguments) unless result.nil?
250
254
  status = true
@@ -4,6 +4,8 @@ class Puppet::Application::Filebucket < Puppet::Application
4
4
 
5
5
  option("--bucket BUCKET","-b")
6
6
  option("--debug","-d")
7
+ option("--fromdate FROMDATE","-f")
8
+ option("--todate TODATE","-t")
7
9
  option("--local","-l")
8
10
  option("--remote","-r")
9
11
  option("--verbose","-v")
@@ -25,7 +27,8 @@ USAGE
25
27
  -----
26
28
  puppet filebucket <mode> [-h|--help] [-V|--version] [-d|--debug]
27
29
  [-v|--verbose] [-l|--local] [-r|--remote] [-s|--server <server>]
28
- [-b|--bucket <directory>] <file> <file> ...
30
+ [-f|--fromdate <date>] [-t|--todate <date>] [-b|--bucket <directory>]
31
+ <file> <file> ...
29
32
 
30
33
  Puppet filebucket can operate in three modes, with only one mode per call:
31
34
 
@@ -43,6 +46,13 @@ restore:
43
46
  path to this argument; you are not restricted to restoring the content
44
47
  to its original location.
45
48
 
49
+ diff:
50
+ Print a diff in unified format between two checksums in the filebucket
51
+ or between a checksum and its matching file.
52
+
53
+ list:
54
+ List all files in the current local filebucket. Listing remote
55
+ filebuckets is not allowed.
46
56
 
47
57
  DESCRIPTION
48
58
  -----------
@@ -63,7 +73,7 @@ setting, so you can specify '--ssldir <directory>' as an
63
73
  argument.
64
74
 
65
75
  See the configuration file documentation at
66
- http://docs.puppetlabs.com/references/stable/configuration.html for the
76
+ https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for the
67
77
  full list of acceptable parameters. A commented list of all
68
78
  configuration options can also be generated by running puppet with
69
79
  '--genconfig'.
@@ -71,6 +81,9 @@ configuration options can also be generated by running puppet with
71
81
  * --debug:
72
82
  Enable full debugging.
73
83
 
84
+ * --fromdate:
85
+ (list only) Select bucket files from 'fromdate'
86
+
74
87
  * --help:
75
88
  Print this help message
76
89
 
@@ -85,6 +98,9 @@ configuration options can also be generated by running puppet with
85
98
  * --server:
86
99
  The server to send the file to, instead of locally.
87
100
 
101
+ * --todate:
102
+ (list only) Select bucket files until 'todate'
103
+
88
104
  * --verbose:
89
105
  Print extra information.
90
106
 
@@ -97,7 +113,31 @@ EXAMPLE
97
113
  $ puppet filebucket backup /etc/passwd
98
114
  /etc/passwd: 429b225650b912a2ee067b0a4cf1e949
99
115
  $ puppet filebucket restore /tmp/passwd 429b225650b912a2ee067b0a4cf1e949
100
-
116
+ ## Diff between two files in the filebucket
117
+ $ puppet filebucket -l diff d43a6ecaa892a1962398ac9170ea9bf2 7ae322f5791217e031dc60188f4521ef
118
+ 1a2
119
+ > again
120
+ ## Diff between the file in the filebucket and the current one
121
+ $ puppet filebucket -l diff d43a6ecaa892a1962398ac9170ea9bf2 /tmp/testFile
122
+ 1a2
123
+ > again
124
+ $ puppet filebucket -l list
125
+ d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
126
+ $ echo again >> /tmp/TestFile
127
+ $ puppet filebucket -l backup /tmp/TestFile
128
+ /tmp/TestFile: 7ae322f5791217e031dc60188f4521ef
129
+ $ puppet filebucket -l list
130
+ d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
131
+ 7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
132
+ $ puppet filebucket -l -f 2015-01-01 -t 2015-01-11 list
133
+ <Empty Output>
134
+ $ puppet filebucket -l -f 2015-05-10 list
135
+ d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
136
+ 7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
137
+ $ puppet filebucket -l -f "2015-05-11 09:30:00" list
138
+ 7ae322f5791217e031dc60188f4521ef 2015-05-11 09:52:15 /tmp/TestFile
139
+ $ puppet filebucket -l -t "2015-05-11 09:30:00" list
140
+ d43a6ecaa892a1962398ac9170ea9bf2 2015-05-11 09:27:56 /tmp/TestFile
101
141
 
102
142
  AUTHOR
103
143
  ------
@@ -115,7 +155,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
115
155
  def run_command
116
156
  @args = command_line.args
117
157
  command = args.shift
118
- return send(command) if %w{get backup restore}.include? command
158
+ return send(command) if %w{get backup restore diff list}.include? command
119
159
  help
120
160
  end
121
161
 
@@ -142,12 +182,47 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
142
182
  end
143
183
  end
144
184
 
185
+ def list
186
+ fromdate = options[:fromdate]
187
+ todate = options[:todate]
188
+ out = @client.list(fromdate, todate)
189
+ print out
190
+ end
191
+
145
192
  def restore
146
193
  file = args.shift
147
194
  md5 = args.shift
148
195
  @client.restore(file, md5)
149
196
  end
150
197
 
198
+ def diff
199
+ raise Puppet::Error, "Need exactly two arguments: filebucket diff <file_a> <file_b>" unless args.count == 2
200
+ left = args.shift
201
+ right = args.shift
202
+ if Puppet::FileSystem.exist?(left)
203
+ # It's a file
204
+ file_a = left
205
+ checksum_a = nil
206
+ else
207
+ file_a = nil
208
+ checksum_a = left
209
+ end
210
+ if Puppet::FileSystem.exist?(right)
211
+ # It's a file
212
+ file_b = right
213
+ checksum_b = nil
214
+ else
215
+ file_b = nil
216
+ checksum_b = right
217
+ end
218
+ if (checksum_a || file_a) && (checksum_b || file_b)
219
+ Puppet.info("Comparing #{checksum_a} #{checksum_b} #{file_a} #{file_b}")
220
+ print @client.diff(checksum_a, checksum_b, file_a, file_b)
221
+ else
222
+ raise Puppet::Error, "Need exactly two arguments: filebucket diff <file_a> <file_b>"
223
+ end
224
+ end
225
+
151
226
  def setup
152
227
  Puppet::Log.newdestination(:console)
153
228
 
@@ -181,4 +256,3 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
181
256
  end
182
257
  end
183
258
  end
184
-
@@ -0,0 +1,5 @@
1
+ require 'puppet/application/face_base'
2
+
3
+ # The Generate application.
4
+ class Puppet::Application::Generate < Puppet::Application::FaceBase
5
+ end
@@ -48,7 +48,7 @@ OPTIONS
48
48
  Any configuration setting which is valid in the configuration file is
49
49
  also a valid long argument, e.g. '--server=master.domain.com'. See the
50
50
  configuration file documentation at
51
- http://docs.puppetlabs.com/references/latest/configuration.html for
51
+ https://docs.puppetlabs.com/puppet/latest/reference/configuration.html for
52
52
  the full list of acceptable settings.
53
53
 
54
54
  * --archive_files:
@@ -91,7 +91,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
91
91
  set_log_level
92
92
 
93
93
  Puppet::Transaction::Report.indirection.terminus_class = :rest
94
- Puppet::Resource::Catalog.indirection.terminus_class = :yaml
94
+ Puppet::Resource::Catalog.indirection.terminus_class = Puppet[:catalog_cache_terminus] || :json
95
95
  end
96
96
 
97
97
  def preinit