puppet 4.10.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1031) hide show
  1. data/CONTRIBUTING.md +17 -0
  2. data/Gemfile +6 -10
  3. data/MAINTAINERS +0 -5
  4. data/Rakefile +2 -1
  5. data/conf/auth.conf +21 -0
  6. data/conf/fileserver.conf +7 -12
  7. data/conf/hiera.yaml +11 -0
  8. data/ext/debian/puppet-common.install +0 -1
  9. data/ext/debian/puppet-common.manpages +0 -2
  10. data/ext/hiera/hiera.yaml +15 -0
  11. data/ext/logcheck/puppet +1 -1
  12. data/ext/project_data.yaml +3 -6
  13. data/ext/puppet-test +0 -24
  14. data/ext/rack/config.ru +2 -2
  15. data/ext/redhat/puppet.spec.erb +0 -3
  16. data/ext/windows/service/daemon.rb +8 -14
  17. data/install.rb +1 -1
  18. data/lib/hiera/puppet_function.rb +1 -1
  19. data/lib/puppet/agent/disabler.rb +3 -3
  20. data/lib/puppet/agent/locker.rb +3 -3
  21. data/lib/puppet/agent.rb +27 -16
  22. data/lib/puppet/application/agent.rb +16 -9
  23. data/lib/puppet/application/apply.rb +19 -17
  24. data/lib/puppet/application/cert.rb +2 -2
  25. data/lib/puppet/application/describe.rb +2 -2
  26. data/lib/puppet/application/device.rb +71 -46
  27. data/lib/puppet/application/doc.rb +9 -9
  28. data/lib/puppet/application/face_base.rb +8 -13
  29. data/lib/puppet/application/filebucket.rb +8 -8
  30. data/lib/puppet/application/lookup.rb +101 -88
  31. data/lib/puppet/application/master.rb +15 -23
  32. data/lib/puppet/application/resource.rb +20 -17
  33. data/lib/puppet/application.rb +11 -11
  34. data/lib/puppet/configurer/downloader.rb +2 -2
  35. data/lib/puppet/configurer/fact_handler.rb +13 -4
  36. data/lib/puppet/configurer.rb +29 -28
  37. data/lib/puppet/context/trusted_information.rb +1 -1
  38. data/lib/puppet/context.rb +5 -5
  39. data/lib/puppet/defaults.rb +58 -104
  40. data/lib/puppet/error.rb +1 -1
  41. data/lib/puppet/etc.rb +75 -39
  42. data/lib/puppet/external/pson/common.rb +4 -0
  43. data/lib/puppet/face/ca.rb +50 -43
  44. data/lib/puppet/face/catalog/select.rb +4 -4
  45. data/lib/puppet/face/catalog.rb +2 -2
  46. data/lib/puppet/face/certificate.rb +21 -21
  47. data/lib/puppet/face/certificate_request.rb +1 -1
  48. data/lib/puppet/face/certificate_revocation_list.rb +1 -1
  49. data/lib/puppet/face/config.rb +10 -10
  50. data/lib/puppet/face/epp.rb +38 -38
  51. data/lib/puppet/face/facts.rb +5 -5
  52. data/lib/puppet/face/generate.rb +8 -8
  53. data/lib/puppet/face/help.rb +8 -8
  54. data/lib/puppet/face/key.rb +3 -3
  55. data/lib/puppet/face/man.rb +7 -7
  56. data/lib/puppet/face/module/build.rb +7 -7
  57. data/lib/puppet/face/module/changes.rb +6 -6
  58. data/lib/puppet/face/module/generate.rb +24 -24
  59. data/lib/puppet/face/module/install.rb +13 -9
  60. data/lib/puppet/face/module/list.rb +16 -12
  61. data/lib/puppet/face/module/search.rb +4 -4
  62. data/lib/puppet/face/module/uninstall.rb +13 -10
  63. data/lib/puppet/face/module/upgrade.rb +11 -7
  64. data/lib/puppet/face/module.rb +3 -3
  65. data/lib/puppet/face/node/clean.rb +8 -8
  66. data/lib/puppet/face/node.rb +6 -6
  67. data/lib/puppet/face/parser.rb +17 -17
  68. data/lib/puppet/face/plugin.rb +7 -7
  69. data/lib/puppet/face/report.rb +10 -10
  70. data/lib/puppet/face/resource.rb +13 -13
  71. data/lib/puppet/face/status.rb +5 -5
  72. data/lib/puppet/feature/base.rb +4 -3
  73. data/lib/puppet/feature/eventlog.rb +1 -1
  74. data/lib/puppet/file_bucket/dipper.rb +9 -9
  75. data/lib/puppet/file_bucket/file.rb +4 -17
  76. data/lib/puppet/file_serving/base.rb +3 -3
  77. data/lib/puppet/file_serving/configuration/parser.rb +12 -12
  78. data/lib/puppet/file_serving/configuration.rb +3 -3
  79. data/lib/puppet/file_serving/content.rb +1 -1
  80. data/lib/puppet/file_serving/fileset.rb +7 -5
  81. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  82. data/lib/puppet/file_serving/metadata.rb +9 -9
  83. data/lib/puppet/file_serving/mount/file.rb +6 -6
  84. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  85. data/lib/puppet/file_serving/mount.rb +1 -1
  86. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  87. data/lib/puppet/file_system/file_impl.rb +2 -2
  88. data/lib/puppet/file_system/memory_impl.rb +1 -1
  89. data/lib/puppet/file_system/path_pattern.rb +6 -6
  90. data/lib/puppet/file_system/uniquefile.rb +2 -2
  91. data/lib/puppet/file_system/windows.rb +3 -3
  92. data/lib/puppet/forge/cache.rb +1 -0
  93. data/lib/puppet/forge/errors.rb +12 -12
  94. data/lib/puppet/forge/repository.rb +2 -1
  95. data/lib/puppet/forge.rb +10 -8
  96. data/lib/puppet/functions/annotate.rb +108 -0
  97. data/lib/puppet/functions/binary_file.rb +1 -1
  98. data/lib/puppet/functions/call.rb +42 -0
  99. data/lib/puppet/functions/defined.rb +4 -4
  100. data/lib/puppet/functions/dig.rb +1 -1
  101. data/lib/puppet/functions/eyaml_lookup_key.rb +16 -12
  102. data/lib/puppet/functions/hiera.rb +9 -2
  103. data/lib/puppet/functions/hiera_array.rb +9 -2
  104. data/lib/puppet/functions/hiera_hash.rb +10 -2
  105. data/lib/puppet/functions/hiera_include.rb +18 -4
  106. data/lib/puppet/functions/hocon_data.rb +8 -2
  107. data/lib/puppet/functions/json_data.rb +5 -1
  108. data/lib/puppet/functions/match.rb +2 -2
  109. data/lib/puppet/functions/reduce.rb +14 -2
  110. data/lib/puppet/functions/require.rb +1 -1
  111. data/lib/puppet/functions/slice.rb +3 -3
  112. data/lib/puppet/functions/strftime.rb +10 -2
  113. data/lib/puppet/functions/unique.rb +132 -0
  114. data/lib/puppet/functions/yaml_data.rb +4 -0
  115. data/lib/puppet/functions.rb +17 -45
  116. data/lib/puppet/generate/models/type/type.rb +6 -5
  117. data/lib/puppet/generate/templates/type/pcore.erb +1 -1
  118. data/lib/puppet/generate/type.rb +12 -12
  119. data/lib/puppet/graph/relationship_graph.rb +4 -1
  120. data/lib/puppet/graph/simple_graph.rb +45 -66
  121. data/lib/puppet/indirector/catalog/compiler.rb +61 -44
  122. data/lib/puppet/indirector/catalog/json.rb +18 -0
  123. data/lib/puppet/indirector/certificate/disabled_ca.rb +1 -1
  124. data/lib/puppet/indirector/certificate_request/ca.rb +3 -3
  125. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +1 -1
  126. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +1 -1
  127. data/lib/puppet/indirector/certificate_status/file.rb +6 -6
  128. data/lib/puppet/indirector/exec.rb +2 -2
  129. data/lib/puppet/indirector/face.rb +18 -18
  130. data/lib/puppet/indirector/file_bucket_file/file.rb +9 -8
  131. data/lib/puppet/indirector/file_metadata/http.rb +1 -1
  132. data/lib/puppet/indirector/file_server.rb +10 -2
  133. data/lib/puppet/indirector/hiera.rb +5 -3
  134. data/lib/puppet/indirector/indirection.rb +13 -15
  135. data/lib/puppet/indirector/json.rb +11 -12
  136. data/lib/puppet/indirector/key/disabled_ca.rb +1 -1
  137. data/lib/puppet/indirector/key/file.rb +2 -2
  138. data/lib/puppet/indirector/ldap.rb +6 -5
  139. data/lib/puppet/indirector/memory.rb +1 -1
  140. data/lib/puppet/indirector/msgpack.rb +8 -7
  141. data/lib/puppet/indirector/node/exec.rb +8 -6
  142. data/lib/puppet/indirector/node/ldap.rb +9 -7
  143. data/lib/puppet/indirector/node/plain.rb +2 -1
  144. data/lib/puppet/indirector/node/write_only_yaml.rb +6 -1
  145. data/lib/puppet/indirector/node/yaml.rb +0 -9
  146. data/lib/puppet/indirector/report/processor.rb +2 -2
  147. data/lib/puppet/indirector/report/rest.rb +13 -0
  148. data/lib/puppet/indirector/request.rb +9 -16
  149. data/lib/puppet/indirector/resource/ral.rb +1 -1
  150. data/lib/puppet/indirector/resource/validator.rb +1 -1
  151. data/lib/puppet/indirector/rest.rb +28 -10
  152. data/lib/puppet/indirector/ssl_file.rb +9 -9
  153. data/lib/puppet/indirector/terminus.rb +3 -3
  154. data/lib/puppet/indirector/yaml.rb +5 -5
  155. data/lib/puppet/indirector.rb +2 -2
  156. data/lib/puppet/info_service/class_information_service.rb +4 -5
  157. data/lib/puppet/interface/face_collection.rb +6 -1
  158. data/lib/puppet/interface.rb +2 -6
  159. data/lib/puppet/module.rb +12 -7
  160. data/lib/puppet/module_tool/applications/application.rb +8 -9
  161. data/lib/puppet/module_tool/applications/builder.rb +5 -6
  162. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  163. data/lib/puppet/module_tool/applications/installer.rb +11 -10
  164. data/lib/puppet/module_tool/applications/searcher.rb +1 -1
  165. data/lib/puppet/module_tool/applications/uninstaller.rb +2 -1
  166. data/lib/puppet/module_tool/applications/unpacker.rb +3 -3
  167. data/lib/puppet/module_tool/applications/upgrader.rb +10 -9
  168. data/lib/puppet/module_tool/contents_description.rb +1 -1
  169. data/lib/puppet/module_tool/dependency.rb +0 -1
  170. data/lib/puppet/module_tool/errors/installer.rb +22 -22
  171. data/lib/puppet/module_tool/errors/shared.rb +44 -42
  172. data/lib/puppet/module_tool/errors/uninstaller.rb +13 -9
  173. data/lib/puppet/module_tool/errors/upgrader.rb +11 -11
  174. data/lib/puppet/module_tool/install_directory.rb +1 -1
  175. data/lib/puppet/module_tool/installed_modules.rb +3 -3
  176. data/lib/puppet/module_tool/local_tarball.rb +4 -4
  177. data/lib/puppet/module_tool/metadata.rb +16 -13
  178. data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
  179. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +1 -1
  180. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +10 -4
  181. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +2 -2
  182. data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +1 -1
  183. data/lib/puppet/module_tool/tar.rb +5 -4
  184. data/lib/puppet/module_tool.rb +7 -3
  185. data/lib/puppet/network/auth_config_parser.rb +12 -11
  186. data/lib/puppet/network/authconfig.rb +2 -2
  187. data/lib/puppet/network/authstore.rb +2 -2
  188. data/lib/puppet/network/format.rb +7 -7
  189. data/lib/puppet/network/format_handler.rb +12 -9
  190. data/lib/puppet/network/format_support.rb +11 -5
  191. data/lib/puppet/network/formats.rb +38 -27
  192. data/lib/puppet/network/http/api/indirected_routes.rb +72 -33
  193. data/lib/puppet/network/http/api/master/v3/environment.rb +33 -14
  194. data/lib/puppet/network/http/compression.rb +10 -7
  195. data/lib/puppet/network/http/connection.rb +19 -15
  196. data/lib/puppet/network/http/error.rb +14 -10
  197. data/lib/puppet/network/http/handler.rb +8 -4
  198. data/lib/puppet/network/http/issues.rb +1 -0
  199. data/lib/puppet/network/http/pool.rb +1 -1
  200. data/lib/puppet/network/http/rack/rest.rb +3 -2
  201. data/lib/puppet/network/http/rack.rb +2 -2
  202. data/lib/puppet/network/http/request.rb +34 -20
  203. data/lib/puppet/network/http/response.rb +13 -1
  204. data/lib/puppet/network/http/webrick/rest.rb +2 -2
  205. data/lib/puppet/network/http/webrick.rb +5 -5
  206. data/lib/puppet/network/rights.rb +6 -6
  207. data/lib/puppet/network/server.rb +2 -2
  208. data/lib/puppet/node/environment.rb +21 -4
  209. data/lib/puppet/node/facts.rb +0 -5
  210. data/lib/puppet/node.rb +25 -13
  211. data/lib/puppet/parameter/package_options.rb +1 -1
  212. data/lib/puppet/parameter/path.rb +3 -3
  213. data/lib/puppet/parameter/value_collection.rb +4 -4
  214. data/lib/puppet/parameter.rb +3 -28
  215. data/lib/puppet/parser/ast/node.rb +1 -1
  216. data/lib/puppet/parser/ast/pops_bridge.rb +3 -3
  217. data/lib/puppet/parser/ast/resource.rb +1 -1
  218. data/lib/puppet/parser/ast/resource_instance.rb +1 -1
  219. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  220. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -2
  221. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +6 -9
  222. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +1 -1
  223. data/lib/puppet/parser/compiler.rb +44 -113
  224. data/lib/puppet/parser/e4_parser_adapter.rb +1 -2
  225. data/lib/puppet/parser/environment_compiler.rb +13 -15
  226. data/lib/puppet/parser/functions/contain.rb +1 -1
  227. data/lib/puppet/parser/functions/create_resources.rb +11 -3
  228. data/lib/puppet/parser/functions/file.rb +1 -1
  229. data/lib/puppet/parser/functions/generate.rb +5 -4
  230. data/lib/puppet/parser/functions/hiera_include.rb +1 -1
  231. data/lib/puppet/parser/functions/include.rb +2 -1
  232. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  233. data/lib/puppet/parser/functions/new.rb +14 -1
  234. data/lib/puppet/parser/functions/require.rb +1 -1
  235. data/lib/puppet/parser/functions.rb +6 -6
  236. data/lib/puppet/parser/parser_factory.rb +0 -30
  237. data/lib/puppet/parser/relationship.rb +49 -20
  238. data/lib/puppet/parser/resource/param.rb +0 -3
  239. data/lib/puppet/parser/resource.rb +31 -30
  240. data/lib/puppet/parser/scope.rb +124 -170
  241. data/lib/puppet/parser/templatewrapper.rb +2 -2
  242. data/lib/puppet/parser/type_loader.rb +1 -1
  243. data/lib/puppet/plugins/configuration.rb +15 -67
  244. data/lib/puppet/plugins/syntax_checkers.rb +6 -11
  245. data/lib/puppet/pops/adaptable.rb +8 -3
  246. data/lib/puppet/pops/adapters.rb +33 -87
  247. data/lib/puppet/pops/evaluator/access_operator.rb +10 -39
  248. data/lib/puppet/pops/evaluator/collector_transformer.rb +9 -14
  249. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
  250. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +3 -3
  251. data/lib/puppet/pops/evaluator/compare_operator.rb +7 -7
  252. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
  253. data/lib/puppet/pops/evaluator/evaluator_impl.rb +45 -37
  254. data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -9
  255. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -2
  256. data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -1
  257. data/lib/puppet/pops/evaluator/relationship_operator.rb +26 -9
  258. data/lib/puppet/pops/evaluator/runtime3_converter.rb +17 -1
  259. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -2
  260. data/lib/puppet/pops/evaluator/runtime3_support.rb +44 -30
  261. data/lib/puppet/pops/functions/dispatch.rb +1 -6
  262. data/lib/puppet/pops/issues.rb +189 -161
  263. data/lib/puppet/pops/loader/base_loader.rb +2 -2
  264. data/lib/puppet/pops/loader/gem_support.rb +2 -2
  265. data/lib/puppet/pops/loader/loader.rb +4 -0
  266. data/lib/puppet/pops/loader/module_loaders.rb +59 -10
  267. data/lib/puppet/pops/loader/predefined_loader.rb +1 -6
  268. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +8 -8
  269. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -10
  270. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +3 -3
  271. data/lib/puppet/pops/loader/static_loader.rb +32 -63
  272. data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -8
  273. data/lib/puppet/pops/loader/typed_name.rb +6 -0
  274. data/lib/puppet/pops/loaders.rb +22 -20
  275. data/lib/puppet/pops/lookup/context.rb +1 -1
  276. data/lib/puppet/pops/lookup/data_provider.rb +3 -18
  277. data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -1
  278. data/lib/puppet/pops/lookup/global_data_provider.rb +7 -10
  279. data/lib/puppet/pops/lookup/hiera_config.rb +13 -34
  280. data/lib/puppet/pops/lookup/interpolation.rb +9 -8
  281. data/lib/puppet/pops/lookup/invocation.rb +13 -3
  282. data/lib/puppet/pops/lookup/lookup_adapter.rb +30 -69
  283. data/lib/puppet/pops/lookup/lookup_key.rb +2 -2
  284. data/lib/puppet/pops/lookup/module_data_provider.rb +11 -3
  285. data/lib/puppet/pops/lookup/sub_lookup.rb +12 -10
  286. data/lib/puppet/pops/lookup.rb +7 -5
  287. data/lib/puppet/pops/merge_strategy.rb +16 -1
  288. data/lib/puppet/pops/model/ast.pp +692 -0
  289. data/lib/puppet/pops/model/ast.rb +4833 -0
  290. data/lib/puppet/pops/model/ast_transformer.rb +9 -10
  291. data/lib/puppet/pops/model/factory.rb +454 -527
  292. data/lib/puppet/pops/model/model_label_provider.rb +3 -2
  293. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -7
  294. data/lib/puppet/pops/parser/egrammar.ra +66 -60
  295. data/lib/puppet/pops/parser/eparser.rb +1483 -1578
  296. data/lib/puppet/pops/parser/evaluating_parser.rb +5 -5
  297. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  298. data/lib/puppet/pops/parser/lexer2.rb +27 -36
  299. data/lib/puppet/pops/parser/locator.rb +39 -16
  300. data/lib/puppet/pops/parser/parser_support.rb +25 -29
  301. data/lib/puppet/pops/pcore.rb +28 -21
  302. data/lib/puppet/pops/resource/param.rb +1 -1
  303. data/lib/puppet/pops/resource/resource_type_impl.rb +3 -3
  304. data/lib/puppet/pops/semantic_error.rb +12 -0
  305. data/lib/puppet/pops/serialization/abstract_writer.rb +9 -1
  306. data/lib/puppet/pops/serialization/deserializer.rb +8 -5
  307. data/lib/puppet/pops/serialization/from_data_converter.rb +181 -0
  308. data/lib/puppet/pops/serialization/json.rb +4 -4
  309. data/lib/puppet/pops/serialization/json_path.rb +126 -0
  310. data/lib/puppet/pops/serialization/object.rb +6 -6
  311. data/lib/puppet/pops/serialization/serializer.rb +32 -11
  312. data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
  313. data/lib/puppet/pops/serialization.rb +25 -1
  314. data/lib/puppet/pops/time/timespan.rb +11 -11
  315. data/lib/puppet/pops/time/timestamp.rb +8 -8
  316. data/lib/puppet/pops/types/annotatable.rb +7 -7
  317. data/lib/puppet/pops/types/annotation.rb +71 -0
  318. data/lib/puppet/pops/types/class_loader.rb +4 -6
  319. data/lib/puppet/pops/types/enumeration.rb +2 -2
  320. data/lib/puppet/pops/types/iterable.rb +2 -2
  321. data/lib/puppet/pops/types/p_binary_type.rb +7 -1
  322. data/lib/puppet/pops/types/p_meta_type.rb +16 -12
  323. data/lib/puppet/pops/types/p_object_type.rb +135 -96
  324. data/lib/puppet/pops/types/p_runtime_type.rb +1 -1
  325. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +6 -2
  326. data/lib/puppet/pops/types/p_timespan_type.rb +55 -4
  327. data/lib/puppet/pops/types/p_type_set_type.rb +44 -36
  328. data/lib/puppet/pops/types/puppet_object.rb +13 -3
  329. data/lib/puppet/pops/types/ruby_generator.rb +291 -127
  330. data/lib/puppet/pops/types/ruby_method.rb +31 -0
  331. data/lib/puppet/pops/types/string_converter.rb +125 -59
  332. data/lib/puppet/pops/types/type_calculator.rb +55 -93
  333. data/lib/puppet/pops/types/type_factory.rb +34 -6
  334. data/lib/puppet/pops/types/type_formatter.rb +63 -15
  335. data/lib/puppet/pops/types/type_mismatch_describer.rb +8 -7
  336. data/lib/puppet/pops/types/type_parser.rb +28 -13
  337. data/lib/puppet/pops/types/type_set_reference.rb +7 -7
  338. data/lib/puppet/pops/types/types.rb +186 -186
  339. data/lib/puppet/pops/utils.rb +0 -24
  340. data/lib/puppet/pops/validation/checker4_0.rb +89 -75
  341. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  342. data/lib/puppet/pops/validation.rb +3 -9
  343. data/lib/puppet/pops/visitor.rb +21 -0
  344. data/lib/puppet/pops.rb +7 -37
  345. data/lib/puppet/property/ensure.rb +3 -3
  346. data/lib/puppet/property/list.rb +1 -10
  347. data/lib/puppet/property.rb +17 -14
  348. data/lib/puppet/provider/aixobject.rb +7 -7
  349. data/lib/puppet/provider/augeas/augeas.rb +37 -37
  350. data/lib/puppet/provider/command.rb +1 -1
  351. data/lib/puppet/provider/cron/crontab.rb +2 -2
  352. data/lib/puppet/provider/exec/posix.rb +4 -4
  353. data/lib/puppet/provider/exec/windows.rb +3 -3
  354. data/lib/puppet/provider/exec.rb +4 -4
  355. data/lib/puppet/provider/file/posix.rb +5 -5
  356. data/lib/puppet/provider/file/windows.rb +4 -4
  357. data/lib/puppet/provider/group/aix.rb +2 -2
  358. data/lib/puppet/provider/group/groupadd.rb +2 -2
  359. data/lib/puppet/provider/group/pw.rb +1 -1
  360. data/lib/puppet/provider/host/parsed.rb +1 -1
  361. data/lib/puppet/provider/macauthorization/macauthorization.rb +9 -9
  362. data/lib/puppet/provider/maillist/mailman.rb +2 -2
  363. data/lib/puppet/provider/mcx/mcxcontent.rb +3 -3
  364. data/lib/puppet/provider/mount/parsed.rb +10 -8
  365. data/lib/puppet/provider/mount.rb +2 -1
  366. data/lib/puppet/provider/naginator.rb +1 -1
  367. data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
  368. data/lib/puppet/provider/nameservice.rb +18 -10
  369. data/lib/puppet/provider/network_device.rb +2 -1
  370. data/lib/puppet/provider/package/aix.rb +5 -5
  371. data/lib/puppet/provider/package/appdmg.rb +2 -2
  372. data/lib/puppet/provider/package/apple.rb +1 -1
  373. data/lib/puppet/provider/package/apt.rb +4 -4
  374. data/lib/puppet/provider/package/aptitude.rb +1 -1
  375. data/lib/puppet/provider/package/aptrpm.rb +2 -2
  376. data/lib/puppet/provider/package/blastwave.rb +4 -4
  377. data/lib/puppet/provider/package/dpkg.rb +3 -3
  378. data/lib/puppet/provider/package/fink.rb +3 -3
  379. data/lib/puppet/provider/package/freebsd.rb +1 -1
  380. data/lib/puppet/provider/package/gem.rb +6 -6
  381. data/lib/puppet/provider/package/hpux.rb +1 -1
  382. data/lib/puppet/provider/package/nim.rb +15 -12
  383. data/lib/puppet/provider/package/openbsd.rb +4 -4
  384. data/lib/puppet/provider/package/opkg.rb +1 -1
  385. data/lib/puppet/provider/package/pacman.rb +9 -9
  386. data/lib/puppet/provider/package/pkg.rb +9 -9
  387. data/lib/puppet/provider/package/pkgdmg.rb +4 -4
  388. data/lib/puppet/provider/package/pkgin.rb +3 -3
  389. data/lib/puppet/provider/package/pkgng.rb +1 -1
  390. data/lib/puppet/provider/package/pkgutil.rb +6 -6
  391. data/lib/puppet/provider/package/portage.rb +167 -59
  392. data/lib/puppet/provider/package/ports.rb +3 -3
  393. data/lib/puppet/provider/package/portupgrade.rb +4 -4
  394. data/lib/puppet/provider/package/rpm.rb +7 -4
  395. data/lib/puppet/provider/package/rug.rb +1 -1
  396. data/lib/puppet/provider/package/sun.rb +3 -2
  397. data/lib/puppet/provider/package/up2date.rb +1 -1
  398. data/lib/puppet/provider/package/urpmi.rb +1 -1
  399. data/lib/puppet/provider/package/windows/package.rb +3 -3
  400. data/lib/puppet/provider/package/windows.rb +4 -4
  401. data/lib/puppet/provider/package/yum.rb +13 -13
  402. data/lib/puppet/provider/package/zypper.rb +1 -1
  403. data/lib/puppet/provider/parsedfile.rb +1 -1
  404. data/lib/puppet/provider/service/upstart.rb +0 -2
  405. data/lib/puppet/provider/user/aix.rb +1 -1
  406. data/lib/puppet/provider/user/ldap.rb +1 -1
  407. data/lib/puppet/provider/user/useradd.rb +1 -1
  408. data/lib/puppet/provider/yumrepo/inifile.rb +3 -3
  409. data/lib/puppet/provider.rb +2 -0
  410. data/lib/puppet/reference/configuration.rb +1 -1
  411. data/lib/puppet/reference/indirection.rb +1 -1
  412. data/lib/puppet/reference/metaparameter.rb +1 -1
  413. data/lib/puppet/reference/providers.rb +6 -6
  414. data/lib/puppet/reference/type.rb +2 -2
  415. data/lib/puppet/relationship.rb +7 -9
  416. data/lib/puppet/reports/http.rb +6 -2
  417. data/lib/puppet/resource/capability_finder.rb +2 -2
  418. data/lib/puppet/resource/catalog.rb +26 -41
  419. data/lib/puppet/resource/status.rb +13 -24
  420. data/lib/puppet/resource/type.rb +13 -61
  421. data/lib/puppet/resource/type_collection.rb +30 -23
  422. data/lib/puppet/resource.rb +85 -108
  423. data/lib/puppet/settings/array_setting.rb +1 -1
  424. data/lib/puppet/settings/autosign_setting.rb +1 -1
  425. data/lib/puppet/settings/boolean_setting.rb +1 -1
  426. data/lib/puppet/settings/config_file.rb +2 -2
  427. data/lib/puppet/settings/duration_setting.rb +1 -1
  428. data/lib/puppet/settings/enum_setting.rb +1 -1
  429. data/lib/puppet/settings/environment_conf.rb +2 -2
  430. data/lib/puppet/settings/file_setting.rb +2 -2
  431. data/lib/puppet/settings/priority_setting.rb +1 -1
  432. data/lib/puppet/settings/server_list_setting.rb +1 -1
  433. data/lib/puppet/settings/symbolic_enum_setting.rb +1 -1
  434. data/lib/puppet/settings/terminus_setting.rb +1 -1
  435. data/lib/puppet/settings/ttl_setting.rb +2 -2
  436. data/lib/puppet/settings.rb +1 -1
  437. data/lib/puppet/ssl/base.rb +2 -2
  438. data/lib/puppet/ssl/certificate_authority/interface.rb +13 -13
  439. data/lib/puppet/ssl/certificate_authority.rb +21 -21
  440. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  441. data/lib/puppet/ssl/certificate_request.rb +14 -14
  442. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  443. data/lib/puppet/ssl/certificate_revocation_list.rb +3 -3
  444. data/lib/puppet/ssl/host.rb +29 -29
  445. data/lib/puppet/ssl/inventory.rb +1 -1
  446. data/lib/puppet/ssl/key.rb +1 -1
  447. data/lib/puppet/ssl/oids.rb +5 -5
  448. data/lib/puppet/ssl/validator/default_validator.rb +3 -4
  449. data/lib/puppet/syntax_checkers/base64.rb +7 -7
  450. data/lib/puppet/syntax_checkers/json.rb +5 -5
  451. data/lib/puppet/test/test_helper.rb +0 -4
  452. data/lib/puppet/transaction/additional_resource_generator.rb +4 -3
  453. data/lib/puppet/transaction/event.rb +19 -8
  454. data/lib/puppet/transaction/event_manager.rb +6 -6
  455. data/lib/puppet/transaction/persistence.rb +6 -6
  456. data/lib/puppet/transaction/report.rb +35 -41
  457. data/lib/puppet/transaction/resource_harness.rb +14 -12
  458. data/lib/puppet/transaction.rb +38 -20
  459. data/lib/puppet/type/augeas.rb +2 -2
  460. data/lib/puppet/type/cron.rb +14 -31
  461. data/lib/puppet/type/exec.rb +48 -42
  462. data/lib/puppet/type/file/content.rb +1 -1
  463. data/lib/puppet/type/file/group.rb +3 -3
  464. data/lib/puppet/type/file/mode.rb +10 -6
  465. data/lib/puppet/type/file/owner.rb +3 -3
  466. data/lib/puppet/type/file/selcontext.rb +18 -1
  467. data/lib/puppet/type/file/source.rb +14 -4
  468. data/lib/puppet/type/file.rb +21 -22
  469. data/lib/puppet/type/filebucket.rb +3 -8
  470. data/lib/puppet/type/group.rb +2 -2
  471. data/lib/puppet/type/host.rb +6 -6
  472. data/lib/puppet/type/interface.rb +1 -1
  473. data/lib/puppet/type/k5login.rb +1 -1
  474. data/lib/puppet/type/macauthorization.rb +1 -1
  475. data/lib/puppet/type/mailalias.rb +2 -18
  476. data/lib/puppet/type/maillist.rb +1 -1
  477. data/lib/puppet/type/mount.rb +8 -8
  478. data/lib/puppet/type/notify.rb +2 -0
  479. data/lib/puppet/type/package.rb +5 -5
  480. data/lib/puppet/type/resources.rb +6 -6
  481. data/lib/puppet/type/schedule.rb +9 -9
  482. data/lib/puppet/type/scheduled_task.rb +4 -4
  483. data/lib/puppet/type/service.rb +1 -1
  484. data/lib/puppet/type/ssh_authorized_key.rb +3 -19
  485. data/lib/puppet/type/sshkey.rb +4 -4
  486. data/lib/puppet/type/tidy.rb +15 -11
  487. data/lib/puppet/type/user.rb +29 -27
  488. data/lib/puppet/type/yumrepo.rb +8 -8
  489. data/lib/puppet/type/zone.rb +7 -7
  490. data/lib/puppet/type/zpool.rb +3 -3
  491. data/lib/puppet/type.rb +0 -6
  492. data/lib/puppet/util/at_fork/noop.rb +18 -0
  493. data/lib/puppet/util/at_fork/solaris.rb +158 -0
  494. data/lib/puppet/util/at_fork.rb +35 -0
  495. data/lib/puppet/util/autoload.rb +2 -2
  496. data/lib/puppet/util/backups.rb +6 -6
  497. data/lib/puppet/util/character_encoding.rb +77 -74
  498. data/lib/puppet/util/classgen.rb +4 -4
  499. data/lib/puppet/util/command_line/puppet_option_parser.rb +3 -3
  500. data/lib/puppet/util/command_line/trollop.rb +31 -31
  501. data/lib/puppet/util/command_line.rb +4 -4
  502. data/lib/puppet/util/diff.rb +1 -1
  503. data/lib/puppet/util/errors.rb +4 -4
  504. data/lib/puppet/util/execution.rb +8 -8
  505. data/lib/puppet/util/feature.rb +5 -5
  506. data/lib/puppet/util/fileparsing.rb +8 -8
  507. data/lib/puppet/util/filetype.rb +15 -15
  508. data/lib/puppet/util/http_proxy.rb +1 -1
  509. data/lib/puppet/util/inifile.rb +4 -4
  510. data/lib/puppet/util/instance_loader.rb +1 -1
  511. data/lib/puppet/util/json_lockfile.rb +4 -4
  512. data/lib/puppet/util/ldap/connection.rb +2 -2
  513. data/lib/puppet/util/ldap/manager.rb +2 -2
  514. data/lib/puppet/util/limits.rb +1 -1
  515. data/lib/puppet/util/log/destinations.rb +10 -16
  516. data/lib/puppet/util/log.rb +23 -16
  517. data/lib/puppet/util/logging.rb +11 -8
  518. data/lib/puppet/util/metric.rb +9 -6
  519. data/lib/puppet/util/monkey_patches.rb +30 -67
  520. data/lib/puppet/util/network_device/cisco/device.rb +7 -7
  521. data/lib/puppet/util/network_device/cisco/interface.rb +1 -1
  522. data/lib/puppet/util/network_device/config.rb +6 -6
  523. data/lib/puppet/util/network_device/transport/ssh.rb +6 -6
  524. data/lib/puppet/util/network_device.rb +1 -1
  525. data/lib/puppet/util/plist.rb +4 -2
  526. data/lib/puppet/util/posix.rb +5 -5
  527. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  528. data/lib/puppet/util/provider_features.rb +1 -1
  529. data/lib/puppet/util/psych_support.rb +3 -11
  530. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
  531. data/lib/puppet/util/rdoc.rb +4 -4
  532. data/lib/puppet/util/reference.rb +5 -5
  533. data/lib/puppet/util/resource_template.rb +1 -1
  534. data/lib/puppet/util/retry_action.rb +2 -2
  535. data/lib/puppet/util/selinux.rb +54 -12
  536. data/lib/puppet/util/splayer.rb +1 -1
  537. data/lib/puppet/util/storage.rb +5 -5
  538. data/lib/puppet/util/suidmanager.rb +4 -4
  539. data/lib/puppet/util/symbolic_file_mode.rb +9 -9
  540. data/lib/puppet/util/tag_set.rb +1 -4
  541. data/lib/puppet/util/tagging.rb +2 -2
  542. data/lib/puppet/util/windows/adsi.rb +14 -14
  543. data/lib/puppet/util/windows/api_types.rb +5 -2
  544. data/lib/puppet/util/windows/com.rb +4 -4
  545. data/lib/puppet/util/windows/error.rb +2 -2
  546. data/lib/puppet/util/windows/eventlog.rb +192 -0
  547. data/lib/puppet/util/windows/file.rb +4 -4
  548. data/lib/puppet/util/windows/principal.rb +6 -5
  549. data/lib/puppet/util/windows/process.rb +5 -5
  550. data/lib/puppet/util/windows/registry.rb +11 -11
  551. data/lib/puppet/util/windows/root_certs.rb +1 -1
  552. data/lib/puppet/util/windows/security.rb +14 -14
  553. data/lib/puppet/util/windows/sid.rb +6 -6
  554. data/lib/puppet/util/windows/taskscheduler.rb +62 -62
  555. data/lib/puppet/util/windows/user.rb +6 -6
  556. data/lib/puppet/util/windows.rb +2 -0
  557. data/lib/puppet/util.rb +138 -14
  558. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +1 -1
  559. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +122 -114
  560. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +678 -342
  561. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +2 -10
  562. data/lib/puppet/version.rb +1 -1
  563. data/lib/puppet.rb +47 -33
  564. data/locales/config.yaml +1 -1
  565. data/locales/puppet.pot +7931 -29
  566. data/man/man5/puppet.conf.5 +0 -22
  567. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +9 -0
  568. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +9 -0
  569. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +9 -0
  570. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +9 -0
  571. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +9 -0
  572. data/spec/integration/application/apply_spec.rb +29 -22
  573. data/spec/integration/configurer_spec.rb +1 -1
  574. data/spec/integration/defaults_spec.rb +2 -2
  575. data/spec/integration/faces/documentation_spec.rb +2 -2
  576. data/spec/integration/indirector/file_content/file_server_spec.rb +1 -0
  577. data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -0
  578. data/spec/integration/parser/catalog_spec.rb +1 -1
  579. data/spec/integration/parser/class_spec.rb +6 -6
  580. data/spec/integration/parser/compiler_spec.rb +184 -142
  581. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -1
  582. data/spec/integration/parser/pcore_resource_spec.rb +15 -0
  583. data/spec/integration/parser/scope_spec.rb +53 -4
  584. data/spec/integration/resource/catalog_spec.rb +0 -4
  585. data/spec/integration/resource/type_collection_spec.rb +6 -0
  586. data/spec/integration/transaction/report_spec.rb +2 -2
  587. data/spec/integration/transaction_spec.rb +2 -2
  588. data/spec/integration/type/file_spec.rb +29 -0
  589. data/spec/integration/type/package_spec.rb +7 -1
  590. data/spec/lib/matchers/json.rb +3 -3
  591. data/spec/lib/puppet/face/1.0.0/huzzah.rb +1 -1
  592. data/spec/lib/puppet/face/basetest.rb +1 -1
  593. data/spec/lib/puppet/face/huzzah.rb +1 -1
  594. data/spec/lib/puppet/face/version_matching.rb +1 -1
  595. data/spec/lib/puppet/indirector_testing.rb +4 -0
  596. data/spec/lib/puppet_spec/character_encoding.rb +12 -0
  597. data/spec/lib/puppet_spec/compiler.rb +8 -1
  598. data/spec/lib/puppet_spec/modules.rb +2 -2
  599. data/spec/lib/puppet_spec/network.rb +10 -6
  600. data/spec/shared_contexts/types_setup.rb +52 -15
  601. data/spec/shared_examples/rhel_package_provider.rb +10 -11
  602. data/spec/spec_helper.rb +0 -11
  603. data/spec/unit/agent_spec.rb +12 -1
  604. data/spec/unit/application/agent_spec.rb +7 -0
  605. data/spec/unit/application/apply_spec.rb +28 -13
  606. data/spec/unit/application/describe_spec.rb +19 -0
  607. data/spec/unit/application/device_spec.rb +41 -2
  608. data/spec/unit/application/face_base_spec.rb +6 -6
  609. data/spec/unit/application/master_spec.rb +22 -6
  610. data/spec/unit/application/resource_spec.rb +39 -1
  611. data/spec/unit/application_spec.rb +0 -6
  612. data/spec/unit/capability_spec.rb +2 -6
  613. data/spec/unit/configurer/fact_handler_spec.rb +76 -20
  614. data/spec/unit/configurer/plugin_handler_spec.rb +13 -19
  615. data/spec/unit/configurer_spec.rb +36 -19
  616. data/spec/unit/defaults_spec.rb +0 -30
  617. data/spec/unit/etc_spec.rb +361 -153
  618. data/spec/unit/face/module/list_spec.rb +60 -0
  619. data/spec/unit/file_bucket/file_spec.rb +3 -3
  620. data/spec/unit/file_serving/http_metadata_spec.rb +1 -1
  621. data/spec/unit/file_serving/metadata_spec.rb +35 -9
  622. data/spec/unit/forge/forge_spec.rb +112 -0
  623. data/spec/unit/forge/repository_spec.rb +4 -4
  624. data/spec/unit/functions/annotate_spec.rb +175 -0
  625. data/spec/unit/functions/break_spec.rb +29 -1
  626. data/spec/unit/functions/call_spec.rb +77 -0
  627. data/spec/unit/functions/contain_spec.rb +1 -1
  628. data/spec/unit/functions/lookup_fixture_spec.rb +1 -6
  629. data/spec/unit/functions/lookup_spec.rb +208 -3
  630. data/spec/unit/functions/new_spec.rb +1 -1
  631. data/spec/unit/functions/unique_spec.rb +111 -0
  632. data/spec/unit/functions4_spec.rb +2 -43
  633. data/spec/unit/graph/simple_graph_spec.rb +58 -55
  634. data/spec/unit/indirector/catalog/compiler_spec.rb +213 -153
  635. data/spec/unit/indirector/catalog/json_spec.rb +50 -1
  636. data/spec/unit/indirector/facts/facter_spec.rb +1 -2
  637. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  638. data/spec/unit/indirector/file_server_spec.rb +17 -2
  639. data/spec/unit/indirector/indirection_spec.rb +1 -36
  640. data/spec/unit/indirector/json_spec.rb +27 -6
  641. data/spec/unit/indirector/node/exec_spec.rb +12 -12
  642. data/spec/unit/indirector/node/ldap_spec.rb +29 -8
  643. data/spec/unit/indirector/node/plain_spec.rb +16 -6
  644. data/spec/unit/indirector/node/write_only_yaml_spec.rb +12 -0
  645. data/spec/unit/indirector/report/processor_spec.rb +2 -2
  646. data/spec/unit/indirector/report/rest_spec.rb +29 -3
  647. data/spec/unit/indirector/request_spec.rb +15 -4
  648. data/spec/unit/indirector/rest_spec.rb +57 -15
  649. data/spec/unit/interface/face_collection_spec.rb +7 -7
  650. data/spec/unit/module_spec.rb +10 -2
  651. data/spec/unit/module_tool/applications/installer_spec.rb +0 -1
  652. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -1
  653. data/spec/unit/module_tool/tar_spec.rb +16 -10
  654. data/spec/unit/network/format_handler_spec.rb +11 -11
  655. data/spec/unit/network/format_spec.rb +9 -0
  656. data/spec/unit/network/formats_spec.rb +322 -138
  657. data/spec/unit/network/http/api/indirected_routes_spec.rb +65 -55
  658. data/spec/unit/network/http/api/master/v3/environment_spec.rb +128 -2
  659. data/spec/unit/network/http/api/master/v3_spec.rb +1 -1
  660. data/spec/unit/network/http/api_spec.rb +1 -1
  661. data/spec/unit/network/http/compression_spec.rb +105 -88
  662. data/spec/unit/network/http/error_spec.rb +1 -2
  663. data/spec/unit/network/http/handler_spec.rb +8 -12
  664. data/spec/unit/network/http/rack/rest_spec.rb +3 -3
  665. data/spec/unit/network/http/request_spec.rb +110 -0
  666. data/spec/unit/network/http/response_spec.rb +108 -0
  667. data/spec/unit/node/facts_spec.rb +13 -13
  668. data/spec/unit/node_spec.rb +33 -10
  669. data/spec/unit/parameter_spec.rb +73 -5
  670. data/spec/unit/parser/compiler_spec.rb +1 -1
  671. data/spec/unit/parser/environment_compiler_spec.rb +0 -2
  672. data/spec/unit/parser/functions/create_resources_spec.rb +47 -6
  673. data/spec/unit/parser/resource_spec.rb +86 -24
  674. data/spec/unit/parser/scope_spec.rb +10 -79
  675. data/spec/unit/pops/benchmark_spec.rb +8 -26
  676. data/spec/unit/pops/containment_spec.rb +0 -26
  677. data/spec/unit/pops/evaluator/access_ops_spec.rb +103 -103
  678. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +59 -6
  679. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +5 -5
  680. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +26 -26
  681. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +59 -7
  682. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +7 -7
  683. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +36 -1
  684. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +10 -10
  685. data/spec/unit/pops/evaluator/variables_spec.rb +1 -1
  686. data/spec/unit/pops/factory_rspec_helper.rb +0 -4
  687. data/spec/unit/pops/factory_spec.rb +83 -83
  688. data/spec/unit/pops/loaders/loaders_spec.rb +209 -79
  689. data/spec/unit/pops/loaders/static_loader_spec.rb +2 -6
  690. data/spec/unit/pops/lookup/interpolation_spec.rb +50 -10
  691. data/spec/unit/pops/lookup/lookup_spec.rb +32 -0
  692. data/spec/unit/pops/model/model_spec.rb +10 -10
  693. data/spec/unit/pops/parser/epp_parser_spec.rb +1 -1
  694. data/spec/unit/pops/parser/lexer2_spec.rb +32 -29
  695. data/spec/unit/pops/parser/{source_pos_adapter_spec.rb → locator_spec.rb} +9 -11
  696. data/spec/unit/pops/parser/parse_application_spec.rb +0 -3
  697. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -4
  698. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -3
  699. data/spec/unit/pops/parser/parse_containers_spec.rb +17 -19
  700. data/spec/unit/pops/parser/parse_site_spec.rb +0 -3
  701. data/spec/unit/pops/parser/parser_spec.rb +8 -10
  702. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -3
  703. data/spec/unit/pops/serialization/serialization_spec.rb +117 -5
  704. data/spec/unit/pops/serialization/to_from_hr_spec.rb +494 -0
  705. data/spec/unit/pops/time/timestamp_spec.rb +13 -0
  706. data/spec/unit/pops/types/iterable_spec.rb +1 -1
  707. data/spec/unit/pops/types/p_object_type_spec.rb +100 -14
  708. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +12 -17
  709. data/spec/unit/pops/types/p_timestamp_type_spec.rb +8 -8
  710. data/spec/unit/pops/types/p_type_set_type_spec.rb +4 -12
  711. data/spec/unit/pops/types/ruby_generator_spec.rb +57 -20
  712. data/spec/unit/pops/types/string_converter_spec.rb +119 -16
  713. data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
  714. data/spec/unit/pops/types/type_calculator_spec.rb +211 -87
  715. data/spec/unit/pops/types/type_factory_spec.rb +9 -9
  716. data/spec/unit/pops/types/type_formatter_spec.rb +32 -19
  717. data/spec/unit/pops/types/type_parser_spec.rb +6 -6
  718. data/spec/unit/pops/types/types_spec.rb +53 -2
  719. data/spec/unit/pops/validator/validator_spec.rb +53 -61
  720. data/spec/unit/pops/visitor_spec.rb +1 -1
  721. data/spec/unit/property/list_spec.rb +2 -2
  722. data/spec/unit/provider/augeas/augeas_spec.rb +1 -1
  723. data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -0
  724. data/spec/unit/provider/nameservice_spec.rb +113 -3
  725. data/spec/unit/provider/package/portage_spec.rb +103 -17
  726. data/spec/unit/provider/package/rpm_spec.rb +14 -1
  727. data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
  728. data/spec/unit/provider/user/useradd_spec.rb +13 -0
  729. data/spec/unit/puppet_spec.rb +2 -3
  730. data/spec/unit/relationship_spec.rb +15 -36
  731. data/spec/unit/reports/http_spec.rb +11 -8
  732. data/spec/unit/resource/catalog_spec.rb +81 -53
  733. data/spec/unit/resource/status_spec.rb +114 -103
  734. data/spec/unit/resource/type_collection_spec.rb +5 -5
  735. data/spec/unit/resource/type_spec.rb +4 -71
  736. data/spec/unit/resource_spec.rb +30 -34
  737. data/spec/unit/settings_spec.rb +4 -2
  738. data/spec/unit/ssl/host_spec.rb +34 -34
  739. data/spec/unit/status_spec.rb +7 -7
  740. data/spec/unit/transaction/event_spec.rb +18 -15
  741. data/spec/unit/transaction/report_spec.rb +100 -62
  742. data/spec/unit/transaction/resource_harness_spec.rb +3 -3
  743. data/spec/unit/transaction_spec.rb +53 -8
  744. data/spec/unit/type/file/group_spec.rb +2 -2
  745. data/spec/unit/type/file/mode_spec.rb +9 -9
  746. data/spec/unit/type/file/owner_spec.rb +2 -2
  747. data/spec/unit/type/file/selinux_spec.rb +2 -0
  748. data/spec/unit/type/file/source_spec.rb +13 -0
  749. data/spec/unit/type/file_spec.rb +46 -0
  750. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
  751. data/spec/unit/type/user_spec.rb +2 -4
  752. data/spec/unit/util/at_fork_spec.rb +150 -0
  753. data/spec/unit/util/character_encoding_spec.rb +193 -52
  754. data/spec/unit/util/execution_spec.rb +31 -2
  755. data/spec/unit/util/log/destinations_spec.rb +5 -6
  756. data/spec/unit/util/log_spec.rb +62 -17
  757. data/spec/unit/util/metric_spec.rb +9 -2
  758. data/spec/unit/util/monkey_patches_spec.rb +6 -188
  759. data/spec/unit/util/run_mode_spec.rb +17 -10
  760. data/spec/unit/util/tag_set_spec.rb +2 -2
  761. data/spec/unit/util/tagging_spec.rb +55 -0
  762. data/spec/unit/util/windows/eventlog_spec.rb +123 -0
  763. data/spec/unit/util_spec.rb +237 -2
  764. data/tasks/benchmark.rake +3 -3
  765. data/tasks/cfpropertylist.rake +1 -1
  766. data/tasks/generate_ast_model.rake +78 -0
  767. metadata +3386 -3635
  768. checksums.yaml +0 -7
  769. data/bin/extlookup2hiera +0 -56
  770. data/ext/emacs/puppet-mode-init.el +0 -6
  771. data/ext/emacs/puppet-mode.el +0 -433
  772. data/ext/vim/README +0 -3
  773. data/ext/vim/ftdetect/puppet.vim +0 -2
  774. data/ext/vim/ftplugin/puppet.vim +0 -94
  775. data/ext/vim/indent/puppet.vim +0 -76
  776. data/ext/vim/syntax/puppet.vim +0 -115
  777. data/lib/puppet/application/file.rb +0 -4
  778. data/lib/puppet/application/inspect.rb +0 -182
  779. data/lib/puppet/application/resource_type.rb +0 -7
  780. data/lib/puppet/data_providers/data_adapter.rb +0 -37
  781. data/lib/puppet/data_providers/data_function_support.rb +0 -32
  782. data/lib/puppet/data_providers/function_env_data_provider.rb +0 -26
  783. data/lib/puppet/data_providers/function_module_data_provider.rb +0 -24
  784. data/lib/puppet/data_providers/hiera_config.rb +0 -151
  785. data/lib/puppet/data_providers/hiera_env_data_provider.rb +0 -25
  786. data/lib/puppet/data_providers/hiera_interpolate.rb +0 -21
  787. data/lib/puppet/data_providers/hiera_module_data_provider.rb +0 -30
  788. data/lib/puppet/data_providers/hiera_support.rb +0 -42
  789. data/lib/puppet/data_providers/json_data_provider_factory.rb +0 -38
  790. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +0 -40
  791. data/lib/puppet/data_providers.rb +0 -34
  792. data/lib/puppet/face/file/download.rb +0 -56
  793. data/lib/puppet/face/file/store.rb +0 -21
  794. data/lib/puppet/face/file.rb +0 -50
  795. data/lib/puppet/face/resource_type.rb +0 -84
  796. data/lib/puppet/feature/cfacter.rb +0 -15
  797. data/lib/puppet/feature/external_facts.rb +0 -5
  798. data/lib/puppet/indirector/catalog/static_compiler.rb +0 -232
  799. data/lib/puppet/indirector/resource_type/parser.rb +0 -108
  800. data/lib/puppet/indirector/resource_type/rest.rb +0 -7
  801. data/lib/puppet/indirector/resource_type.rb +0 -5
  802. data/lib/puppet/parser/yaml_trimmer.rb +0 -7
  803. data/lib/puppet/plugins/binding_schemes.rb +0 -140
  804. data/lib/puppet/plugins/data_providers/data_provider.rb +0 -406
  805. data/lib/puppet/plugins/data_providers/registry.rb +0 -51
  806. data/lib/puppet/plugins/data_providers.rb +0 -45
  807. data/lib/puppet/pops/binder/binder.rb +0 -398
  808. data/lib/puppet/pops/binder/binder_issues.rb +0 -124
  809. data/lib/puppet/pops/binder/bindings_checker.rb +0 -201
  810. data/lib/puppet/pops/binder/bindings_composer.rb +0 -181
  811. data/lib/puppet/pops/binder/bindings_factory.rb +0 -813
  812. data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -45
  813. data/lib/puppet/pops/binder/bindings_loader.rb +0 -87
  814. data/lib/puppet/pops/binder/bindings_model.rb +0 -70
  815. data/lib/puppet/pops/binder/bindings_model_dumper.rb +0 -215
  816. data/lib/puppet/pops/binder/bindings_model_meta.rb +0 -215
  817. data/lib/puppet/pops/binder/bindings_validator_factory.rb +0 -28
  818. data/lib/puppet/pops/binder/config/binder_config.rb +0 -107
  819. data/lib/puppet/pops/binder/config/binder_config_checker.rb +0 -142
  820. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +0 -36
  821. data/lib/puppet/pops/binder/config/issues.rb +0 -90
  822. data/lib/puppet/pops/binder/injector.rb +0 -771
  823. data/lib/puppet/pops/binder/injector_entry.rb +0 -57
  824. data/lib/puppet/pops/binder/key_factory.rb +0 -65
  825. data/lib/puppet/pops/binder/producers.rb +0 -831
  826. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +0 -34
  827. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +0 -143
  828. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +0 -53
  829. data/lib/puppet/pops/binder/system_bindings.rb +0 -60
  830. data/lib/puppet/pops/containment.rb +0 -104
  831. data/lib/puppet/pops/model/model.rb +0 -131
  832. data/lib/puppet/pops/model/model_meta.rb +0 -629
  833. data/lib/puppet/pops/serialization/rgen.rb +0 -152
  834. data/lib/puppet/vendor/load_rgen.rb +0 -2
  835. data/lib/puppet/vendor/rgen/CHANGELOG +0 -197
  836. data/lib/puppet/vendor/rgen/MIT-LICENSE +0 -20
  837. data/lib/puppet/vendor/rgen/PUPPET_README.md +0 -6
  838. data/lib/puppet/vendor/rgen/README.rdoc +0 -78
  839. data/lib/puppet/vendor/rgen/Rakefile +0 -41
  840. data/lib/puppet/vendor/rgen/TODO +0 -41
  841. data/lib/puppet/vendor/rgen/anounce.txt +0 -61
  842. data/lib/puppet/vendor/rgen/design_rationale.txt +0 -71
  843. data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +0 -54
  844. data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +0 -32
  845. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +0 -562
  846. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +0 -45
  847. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +0 -43
  848. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +0 -103
  849. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +0 -89
  850. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +0 -559
  851. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +0 -26
  852. data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +0 -20
  853. data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +0 -91
  854. data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +0 -28
  855. data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +0 -37
  856. data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +0 -172
  857. data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +0 -45
  858. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +0 -218
  859. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +0 -81
  860. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +0 -69
  861. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +0 -47
  862. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +0 -167
  863. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +0 -91
  864. data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +0 -129
  865. data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +0 -63
  866. data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +0 -140
  867. data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +0 -289
  868. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +0 -66
  869. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +0 -66
  870. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +0 -117
  871. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +0 -169
  872. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +0 -126
  873. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +0 -331
  874. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +0 -94
  875. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +0 -137
  876. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +0 -97
  877. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +0 -128
  878. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +0 -47
  879. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +0 -168
  880. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +0 -556
  881. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +0 -174
  882. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +0 -89
  883. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +0 -77
  884. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +0 -30
  885. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +0 -168
  886. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +0 -23
  887. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +0 -42
  888. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +0 -224
  889. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +0 -334
  890. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +0 -225
  891. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +0 -156
  892. data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +0 -32
  893. data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +0 -121
  894. data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +0 -18
  895. data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +0 -47
  896. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +0 -116
  897. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +0 -71
  898. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +0 -98
  899. data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +0 -83
  900. data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +0 -87
  901. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +0 -234
  902. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +0 -26
  903. data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +0 -297
  904. data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +0 -475
  905. data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +0 -61
  906. data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +0 -67
  907. data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +0 -124
  908. data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +0 -84
  909. data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +0 -114
  910. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +0 -68
  911. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +0 -142
  912. data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +0 -29
  913. data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +0 -42
  914. data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +0 -329
  915. data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +0 -79
  916. data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +0 -127
  917. data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +0 -64
  918. data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +0 -35
  919. data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +0 -23
  920. data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +0 -54
  921. data/lib/puppet/vendor/rgen/test/environment_test.rb +0 -90
  922. data/lib/puppet/vendor/rgen/test/json_test.rb +0 -171
  923. data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +0 -1482
  924. data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +0 -57
  925. data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +0 -131
  926. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +0 -70
  927. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +0 -42
  928. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +0 -44
  929. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +0 -9
  930. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +0 -98
  931. data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +0 -178
  932. data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +0 -59
  933. data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +0 -242
  934. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +0 -163
  935. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +0 -163
  936. data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +0 -156
  937. data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +0 -94
  938. data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +0 -42
  939. data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +0 -23
  940. data/lib/puppet/vendor/rgen/test/model_builder_test.rb +0 -6
  941. data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +0 -30
  942. data/lib/puppet/vendor/rgen/test/output_handler_test.rb +0 -58
  943. data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +0 -48
  944. data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +0 -102
  945. data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +0 -117
  946. data/lib/puppet/vendor/rgen/test/rgen_test.rb +0 -26
  947. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +0 -29
  948. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +0 -9
  949. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +0 -4
  950. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +0 -1
  951. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +0 -1
  952. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +0 -12
  953. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +0 -5
  954. data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +0 -11
  955. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +0 -7
  956. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +0 -5
  957. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +0 -8
  958. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +0 -8
  959. data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +0 -7
  960. data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +0 -12
  961. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +0 -1
  962. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +0 -3
  963. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +0 -5
  964. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +0 -3
  965. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +0 -3
  966. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +0 -24
  967. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +0 -13
  968. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +0 -10
  969. data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +0 -17
  970. data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +0 -31
  971. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +0 -3
  972. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +0 -9
  973. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +0 -4
  974. data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
  975. data/lib/puppet/vendor/rgen/test/template_language_test.rb +0 -163
  976. data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +0 -119
  977. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
  978. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +0 -1029
  979. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +0 -317
  980. data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +0 -101
  981. data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +0 -22
  982. data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +0 -67
  983. data/lib/puppet/vendor/rgen/test/transformer_test.rb +0 -254
  984. data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +0 -99
  985. data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +0 -97
  986. data/lib/puppet/vendor/rgen/test/util_test.rb +0 -5
  987. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +0 -94
  988. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +0 -53
  989. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +0 -49
  990. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +0 -75
  991. data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +0 -160
  992. data/lib/puppet/vendor/rgen_patch.rb +0 -132
  993. data/lib/semver.rb +0 -146
  994. data/man/man8/extlookup2hiera.8 +0 -10
  995. data/man/man8/puppet-file.8 +0 -189
  996. data/man/man8/puppet-resource_type.8 +0 -188
  997. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  998. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +0 -9
  999. data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +0 -2
  1000. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +0 -5
  1001. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +0 -9
  1002. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +0 -23
  1003. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +0 -5
  1004. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +0 -9
  1005. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +0 -54
  1006. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +0 -33
  1007. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +0 -33
  1008. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +0 -5
  1009. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  1010. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -9
  1011. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -9
  1012. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -10
  1013. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -23
  1014. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +0 -3
  1015. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +0 -9
  1016. data/spec/unit/application/inspect_spec.rb +0 -305
  1017. data/spec/unit/data_providers/custom_data_provider_spec.rb +0 -50
  1018. data/spec/unit/face/file_spec.rb +0 -14
  1019. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -255
  1020. data/spec/unit/indirector/resource_type/parser_spec.rb +0 -259
  1021. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -14
  1022. data/spec/unit/pops/binder/binder_spec.rb +0 -43
  1023. data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -155
  1024. data/spec/unit/pops/binder/bindings_composer_spec.rb +0 -64
  1025. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +0 -18
  1026. data/spec/unit/pops/binder/config/binder_config_spec.rb +0 -42
  1027. data/spec/unit/pops/binder/injector_spec.rb +0 -768
  1028. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +0 -23
  1029. data/spec/unit/pops/serialization/rgen_spec.rb +0 -88
  1030. data/spec/unit/semver_spec.rb +0 -546
  1031. /data/lib/puppet/vendor/semantic_puppet/{lib/semantic_puppet/locales → locales}/config.yaml +0 -0
@@ -6,6 +6,10 @@ require 'matchers/resource'
6
6
  require 'puppet/indirector/catalog/compiler'
7
7
 
8
8
  describe Puppet::Resource::Catalog::Compiler do
9
+ let(:compiler) { described_class.new }
10
+ let(:node_name) { "foo" }
11
+ let(:node) { Puppet::Node.new(node_name)}
12
+
9
13
  before do
10
14
  Facter.stubs(:to_hash).returns({})
11
15
  end
@@ -26,7 +30,6 @@ describe Puppet::Resource::Catalog::Compiler do
26
30
  Puppet::Node.indirection.save(Puppet::Node.new("node1"))
27
31
  Puppet::Node.indirection.save(Puppet::Node.new("node2"))
28
32
 
29
- compiler = Puppet::Resource::Catalog::Compiler.new
30
33
  compiler.stubs(:compile)
31
34
 
32
35
  compiler.find(Puppet::Indirector::Request.new(:catalog, :find, 'node1', nil, :node => 'node1'))
@@ -38,81 +41,78 @@ describe Puppet::Resource::Catalog::Compiler do
38
41
  before do
39
42
  Facter.stubs(:value).returns("whatever")
40
43
 
41
- @compiler = Puppet::Resource::Catalog::Compiler.new
42
- @name = "me"
43
- @node = Puppet::Node.new @name
44
- @node.stubs(:merge)
45
- Puppet::Node.indirection.stubs(:find).returns @node
46
- @request = Puppet::Indirector::Request.new(:catalog, :find, @name, nil, :node => @name)
44
+ node.stubs(:merge)
45
+ Puppet::Node.indirection.stubs(:find).returns(node)
46
+ @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil, :node => node_name)
47
47
  end
48
48
 
49
49
  it "should directly use provided nodes for a local request" do
50
50
  Puppet::Node.indirection.expects(:find).never
51
- @compiler.expects(:compile).with(@node, anything)
52
- @request.stubs(:options).returns(:use_node => @node)
51
+ compiler.expects(:compile).with(node, anything)
52
+ @request.stubs(:options).returns(:use_node => node)
53
53
  @request.stubs(:remote?).returns(false)
54
- @compiler.find(@request)
54
+ compiler.find(@request)
55
55
  end
56
56
 
57
57
  it "rejects a provided node if the request is remote" do
58
- @request.stubs(:options).returns(:use_node => @node)
58
+ @request.stubs(:options).returns(:use_node => node)
59
59
  @request.stubs(:remote?).returns(true)
60
60
  expect {
61
- @compiler.find(@request)
61
+ compiler.find(@request)
62
62
  }.to raise_error Puppet::Error, /invalid option use_node/i
63
63
  end
64
64
 
65
65
  it "should use the authenticated node name if no request key is provided" do
66
66
  @request.stubs(:key).returns(nil)
67
- Puppet::Node.indirection.expects(:find).with(@name, anything).returns(@node)
68
- @compiler.expects(:compile).with(@node, anything)
69
- @compiler.find(@request)
67
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
68
+ compiler.expects(:compile).with(node, anything)
69
+ compiler.find(@request)
70
70
  end
71
71
 
72
72
  it "should use the provided node name by default" do
73
73
  @request.expects(:key).returns "my_node"
74
74
 
75
- Puppet::Node.indirection.expects(:find).with("my_node", anything).returns @node
76
- @compiler.expects(:compile).with(@node, anything)
77
- @compiler.find(@request)
75
+ Puppet::Node.indirection.expects(:find).with("my_node", anything).returns node
76
+ compiler.expects(:compile).with(node, anything)
77
+ compiler.find(@request)
78
78
  end
79
79
 
80
80
  it "should fail if no node is passed and none can be found" do
81
- Puppet::Node.indirection.stubs(:find).with(@name, anything).returns(nil)
82
- expect { @compiler.find(@request) }.to raise_error(ArgumentError)
81
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).returns(nil)
82
+ expect { compiler.find(@request) }.to raise_error(ArgumentError)
83
83
  end
84
84
 
85
85
  it "should fail intelligently when searching for a node raises an exception" do
86
- Puppet::Node.indirection.stubs(:find).with(@name, anything).raises "eh"
87
- expect { @compiler.find(@request) }.to raise_error(Puppet::Error)
86
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).raises "eh"
87
+ expect { compiler.find(@request) }.to raise_error(Puppet::Error)
88
88
  end
89
89
 
90
90
  it "should pass the found node to the compiler for compiling" do
91
- Puppet::Node.indirection.expects(:find).with(@name, anything).returns(@node)
91
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
92
92
  config = mock 'config'
93
- Puppet::Parser::Compiler.expects(:compile).with(@node, anything)
94
- @compiler.find(@request)
93
+ Puppet::Parser::Compiler.expects(:compile).with(node, anything)
94
+ compiler.find(@request)
95
95
  end
96
96
 
97
97
  it "should pass node containing percent character to the compiler" do
98
98
  node_with_percent_character = Puppet::Node.new "%6de"
99
99
  Puppet::Node.indirection.stubs(:find).returns(node_with_percent_character)
100
100
  Puppet::Parser::Compiler.expects(:compile).with(node_with_percent_character, anything)
101
- @compiler.find(@request)
101
+ compiler.find(@request)
102
102
  end
103
103
 
104
- it "should extract and save any facts from the request" do
105
- Puppet::Node.indirection.expects(:find).with(@name, anything).returns @node
106
- @compiler.expects(:extract_facts_from_request).with(@request)
104
+ it "should extract any facts from the request" do
105
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns node
106
+ compiler.expects(:extract_facts_from_request).with(@request)
107
107
  Puppet::Parser::Compiler.stubs(:compile)
108
- @compiler.find(@request)
108
+ compiler.find(@request)
109
109
  end
110
110
 
111
111
  it "requires `facts_format` option if facts are passed in" do
112
112
  facts = Puppet::Node::Facts.new("mynode", :afact => "avalue")
113
113
  request = Puppet::Indirector::Request.new(:catalog, :find, "mynode", nil, :facts => facts)
114
114
  expect {
115
- @compiler.find(request)
115
+ compiler.find(request)
116
116
  }.to raise_error ArgumentError, /no fact format provided for mynode/
117
117
  end
118
118
 
@@ -122,198 +122,253 @@ describe Puppet::Resource::Catalog::Compiler do
122
122
  :catalog, :find, "mynode", nil, :facts => facts, :facts_format => "unused"
123
123
  )
124
124
  expect {
125
- @compiler.find(request)
125
+ compiler.find(request)
126
126
  }.to raise_error Puppet::Error, /fact definition for the wrong node/i
127
127
  end
128
128
 
129
129
  it "should return the results of compiling as the catalog" do
130
- Puppet::Node.indirection.stubs(:find).returns(@node)
131
- catalog = Puppet::Resource::Catalog.new(@node.name)
130
+ Puppet::Node.indirection.stubs(:find).returns(node)
131
+ catalog = Puppet::Resource::Catalog.new(node.name)
132
132
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
133
133
 
134
- expect(@compiler.find(@request)).to equal(catalog)
134
+ expect(compiler.find(@request)).to equal(catalog)
135
135
  end
136
136
 
137
137
  it "passes the code_id from the request to the compiler" do
138
- Puppet::Node.indirection.stubs(:find).returns(@node)
138
+ Puppet::Node.indirection.stubs(:find).returns(node)
139
139
  code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
140
140
  @request.options[:code_id] = code_id
141
141
 
142
142
  Puppet::Parser::Compiler.expects(:compile).with(anything, code_id)
143
143
 
144
- @compiler.find(@request)
144
+ compiler.find(@request)
145
145
  end
146
146
 
147
147
  it "returns a catalog with the code_id from the request" do
148
- Puppet::Node.indirection.stubs(:find).returns(@node)
148
+ Puppet::Node.indirection.stubs(:find).returns(node)
149
149
  code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
150
150
  @request.options[:code_id] = code_id
151
151
 
152
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment, code_id)
152
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment, code_id)
153
153
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
154
154
 
155
- expect(@compiler.find(@request).code_id).to eq(code_id)
155
+ expect(compiler.find(@request).code_id).to eq(code_id)
156
156
  end
157
157
 
158
158
  it "does not inline metadata when the static_catalog option is false" do
159
- Puppet::Node.indirection.stubs(:find).returns(@node)
159
+ Puppet::Node.indirection.stubs(:find).returns(node)
160
160
  @request.options[:static_catalog] = false
161
161
  @request.options[:code_id] = 'some_code_id'
162
- @node.environment.stubs(:static_catalogs?).returns true
162
+ node.environment.stubs(:static_catalogs?).returns true
163
163
 
164
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment)
164
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
165
165
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
166
166
 
167
- @compiler.expects(:inline_metadata).never
168
- @compiler.find(@request)
167
+ compiler.expects(:inline_metadata).never
168
+ compiler.find(@request)
169
169
  end
170
170
 
171
171
  it "does not inline metadata when static_catalogs are disabled" do
172
- Puppet::Node.indirection.stubs(:find).returns(@node)
172
+ Puppet::Node.indirection.stubs(:find).returns(node)
173
173
  @request.options[:static_catalog] = true
174
174
  @request.options[:checksum_type] = 'md5'
175
175
  @request.options[:code_id] = 'some_code_id'
176
- @node.environment.stubs(:static_catalogs?).returns false
176
+ node.environment.stubs(:static_catalogs?).returns false
177
177
 
178
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment)
178
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
179
179
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
180
180
 
181
- @compiler.expects(:inline_metadata).never
182
- @compiler.find(@request)
181
+ compiler.expects(:inline_metadata).never
182
+ compiler.find(@request)
183
183
  end
184
184
 
185
185
  it "does not inline metadata when code_id is not specified" do
186
- Puppet::Node.indirection.stubs(:find).returns(@node)
186
+ Puppet::Node.indirection.stubs(:find).returns(node)
187
187
  @request.options[:static_catalog] = true
188
188
  @request.options[:checksum_type] = 'md5'
189
- @node.environment.stubs(:static_catalogs?).returns true
189
+ node.environment.stubs(:static_catalogs?).returns true
190
190
 
191
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment)
191
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
192
192
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
193
193
 
194
- @compiler.expects(:inline_metadata).never
195
- expect(@compiler.find(@request)).to eq(catalog)
194
+ compiler.expects(:inline_metadata).never
195
+ expect(compiler.find(@request)).to eq(catalog)
196
196
  end
197
197
 
198
198
  it "inlines metadata when the static_catalog option is true, static_catalogs are enabled, and a code_id is provided" do
199
- Puppet::Node.indirection.stubs(:find).returns(@node)
199
+ Puppet::Node.indirection.stubs(:find).returns(node)
200
200
  @request.options[:static_catalog] = true
201
201
  @request.options[:checksum_type] = 'sha256'
202
202
  @request.options[:code_id] = 'some_code_id'
203
- @node.environment.stubs(:static_catalogs?).returns true
203
+ node.environment.stubs(:static_catalogs?).returns true
204
204
 
205
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment)
205
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
206
206
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
207
207
 
208
- @compiler.expects(:inline_metadata).with(catalog, :sha256).returns catalog
209
- @compiler.find(@request)
208
+ compiler.expects(:inline_metadata).with(catalog, :sha256).returns catalog
209
+ compiler.find(@request)
210
210
  end
211
211
 
212
212
  it "inlines metadata with the first common checksum type" do
213
- Puppet::Node.indirection.stubs(:find).returns(@node)
213
+ Puppet::Node.indirection.stubs(:find).returns(node)
214
214
  @request.options[:static_catalog] = true
215
215
  @request.options[:checksum_type] = 'atime.md5.sha256.mtime'
216
216
  @request.options[:code_id] = 'some_code_id'
217
- @node.environment.stubs(:static_catalogs?).returns true
217
+ node.environment.stubs(:static_catalogs?).returns true
218
218
 
219
- catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment)
219
+ catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
220
220
  Puppet::Parser::Compiler.stubs(:compile).returns catalog
221
221
 
222
- @compiler.expects(:inline_metadata).with(catalog, :md5).returns catalog
223
- @compiler.find(@request)
222
+ compiler.expects(:inline_metadata).with(catalog, :md5).returns catalog
223
+ compiler.find(@request)
224
224
  end
225
225
 
226
226
  it "errors if checksum_type contains no shared checksum types" do
227
- Puppet::Node.indirection.stubs(:find).returns(@node)
227
+ Puppet::Node.indirection.stubs(:find).returns(node)
228
228
  @request.options[:static_catalog] = true
229
229
  @request.options[:checksum_type] = 'atime.sha512'
230
230
  @request.options[:code_id] = 'some_code_id'
231
- @node.environment.stubs(:static_catalogs?).returns true
231
+ node.environment.stubs(:static_catalogs?).returns true
232
232
 
233
- expect { @compiler.find(@request) }.to raise_error Puppet::Error,
233
+ expect { compiler.find(@request) }.to raise_error Puppet::Error,
234
234
  "Unable to find a common checksum type between agent 'atime.sha512' and master '[:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :mtime, :ctime, :none]'."
235
235
  end
236
236
 
237
237
  it "errors if checksum_type contains no shared checksum types" do
238
- Puppet::Node.indirection.stubs(:find).returns(@node)
238
+ Puppet::Node.indirection.stubs(:find).returns(node)
239
239
  @request.options[:static_catalog] = true
240
240
  @request.options[:checksum_type] = nil
241
241
  @request.options[:code_id] = 'some_code_id'
242
- @node.environment.stubs(:static_catalogs?).returns true
242
+ node.environment.stubs(:static_catalogs?).returns true
243
243
 
244
- expect { @compiler.find(@request) }.to raise_error Puppet::Error,
244
+ expect { compiler.find(@request) }.to raise_error Puppet::Error,
245
245
  "Unable to find a common checksum type between agent '' and master '[:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :mtime, :ctime, :none]'."
246
246
  end
247
247
  end
248
248
 
249
- describe "when extracting facts from the request" do
249
+ describe "when handling a request with facts" do
250
250
  before do
251
251
  Puppet::Node::Facts.indirection.terminus_class = :memory
252
252
  Facter.stubs(:value).returns "something"
253
- @compiler = Puppet::Resource::Catalog::Compiler.new
254
253
 
255
254
  @facts = Puppet::Node::Facts.new('hostname', "fact" => "value", "architecture" => "i386")
256
255
  end
257
256
 
258
- def a_request_that_contains(facts)
257
+ def a_legacy_request_that_contains(facts, format = :pson)
259
258
  request = Puppet::Indirector::Request.new(:catalog, :find, "hostname", nil)
260
- request.options[:facts_format] = "pson"
261
- request.options[:facts] = CGI.escape(facts.render(:pson))
259
+ request.options[:facts_format] = format.to_s
260
+ request.options[:facts] = Puppet::Util.uri_query_encode(facts.render(format))
262
261
  request
263
262
  end
264
263
 
265
- it "should do nothing if no facts are provided" do
264
+ def a_request_that_contains(facts)
266
265
  request = Puppet::Indirector::Request.new(:catalog, :find, "hostname", nil)
267
- request.options[:facts] = nil
268
-
269
- expect(@compiler.extract_facts_from_request(request)).to be_nil
266
+ request.options[:facts_format] = "application/json"
267
+ request.options[:facts] = Puppet::Util.uri_query_encode(facts.render('json'))
268
+ request
270
269
  end
271
270
 
272
- it "should deserialize the facts without changing the timestamp" do
273
- time = Time.now
274
- @facts.timestamp = time
275
- request = a_request_that_contains(@facts)
276
- facts = @compiler.extract_facts_from_request(request)
277
- expect(facts.timestamp).to eq(time)
271
+ context "when extracting facts from the request" do
272
+ it "should do nothing if no facts are provided" do
273
+ request = Puppet::Indirector::Request.new(:catalog, :find, "hostname", nil)
274
+ request.options[:facts] = nil
275
+
276
+ expect(compiler.extract_facts_from_request(request)).to be_nil
277
+ end
278
+
279
+ it "should deserialize the facts without changing the timestamp" do
280
+ time = Time.now
281
+ @facts.timestamp = time
282
+ request = a_request_that_contains(@facts)
283
+ facts = compiler.extract_facts_from_request(request)
284
+ expect(facts.timestamp).to eq(time)
285
+ end
286
+
287
+ it "accepts PSON facts from older agents" do
288
+ request = a_legacy_request_that_contains(@facts)
289
+
290
+ options = {
291
+ :environment => request.environment,
292
+ :transaction_uuid => request.options[:transaction_uuid],
293
+ }
294
+ facts = compiler.extract_facts_from_request(request)
295
+ expect(facts).to eq(@facts)
296
+ end
297
+
298
+ it "rejects YAML facts" do
299
+ request = a_legacy_request_that_contains(@facts, :yaml)
300
+
301
+ options = {
302
+ :environment => request.environment,
303
+ :transaction_uuid => request.options[:transaction_uuid],
304
+ }
305
+
306
+ expect {
307
+ compiler.extract_facts_from_request(request)
308
+ }.to raise_error(ArgumentError, /Unsupported facts format/)
309
+ end
310
+
311
+ it "rejects unknown fact formats" do
312
+ request = a_request_that_contains(@facts)
313
+ request.options[:facts_format] = 'unknown-format'
314
+
315
+ options = {
316
+ :environment => request.environment,
317
+ :transaction_uuid => request.options[:transaction_uuid],
318
+ }
319
+
320
+ expect {
321
+ compiler.extract_facts_from_request(request)
322
+ }.to raise_error(ArgumentError, /Unsupported facts format/)
323
+ end
278
324
  end
279
325
 
280
- it "should convert the facts into a fact instance and save it" do
281
- request = a_request_that_contains(@facts)
326
+ context "when saving facts from the request" do
327
+ it "should save facts if they were issued by the request" do
328
+ request = a_request_that_contains(@facts)
282
329
 
283
- options = {
284
- :environment => request.environment,
285
- :transaction_uuid => request.options[:transaction_uuid],
286
- }
330
+ options = {
331
+ :environment => request.environment,
332
+ :transaction_uuid => request.options[:transaction_uuid],
333
+ }
287
334
 
288
- Puppet::Node::Facts.indirection.expects(:save).with(equals(@facts), nil, options)
335
+ Puppet::Node::Facts.indirection.expects(:save).with(equals(@facts), nil, options)
336
+ compiler.find(request)
337
+ end
338
+
339
+ it "should skip saving facts if none were supplied" do
340
+ request = Puppet::Indirector::Request.new(:catalog, :find, "hostname", nil)
289
341
 
290
- @compiler.extract_facts_from_request(request)
342
+ options = {
343
+ :environment => request.environment,
344
+ :transaction_uuid => request.options[:transaction_uuid],
345
+ }
346
+
347
+ Puppet::Node::Facts.indirection.expects(:save).with(equals(@facts), nil, options).never
348
+ compiler.find(request)
349
+ end
291
350
  end
292
351
  end
293
352
 
294
353
  describe "when finding nodes" do
295
354
  it "should look node information up via the Node class with the provided key" do
296
355
  Facter.stubs(:value).returns("whatever")
297
- node = Puppet::Node.new('node')
298
- compiler = Puppet::Resource::Catalog::Compiler.new
299
- request = Puppet::Indirector::Request.new(:catalog, :find, "me", nil)
356
+ request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
300
357
  compiler.stubs(:compile)
301
358
 
302
- Puppet::Node.indirection.expects(:find).with("me", anything).returns(node)
359
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
303
360
 
304
361
  compiler.find(request)
305
362
  end
306
363
 
307
364
  it "should pass the transaction_uuid to the node indirection" do
308
365
  uuid = '793ff10d-89f8-4527-a645-3302cbc749f3'
309
- node = Puppet::Node.new("thing")
310
- compiler = Puppet::Resource::Catalog::Compiler.new
311
366
  compiler.stubs(:compile)
312
- request = Puppet::Indirector::Request.new(:catalog, :find, "thing",
367
+ request = Puppet::Indirector::Request.new(:catalog, :find, node_name,
313
368
  nil, :transaction_uuid => uuid)
314
369
 
315
370
  Puppet::Node.indirection.expects(:find).with(
316
- "thing",
371
+ node_name,
317
372
  has_entries(:transaction_uuid => uuid)
318
373
  ).returns(node)
319
374
 
@@ -322,19 +377,31 @@ describe Puppet::Resource::Catalog::Compiler do
322
377
 
323
378
  it "should pass the configured_environment to the node indirection" do
324
379
  environment = 'foo'
325
- node = Puppet::Node.new("thing")
326
- compiler = Puppet::Resource::Catalog::Compiler.new
327
380
  compiler.stubs(:compile)
328
- request = Puppet::Indirector::Request.new(:catalog, :find, "thing",
381
+ request = Puppet::Indirector::Request.new(:catalog, :find, node_name,
329
382
  nil, :configured_environment => environment)
330
383
 
331
384
  Puppet::Node.indirection.expects(:find).with(
332
- "thing",
385
+ node_name,
333
386
  has_entries(:configured_environment => environment)
334
387
  ).returns(node)
335
388
 
336
389
  compiler.find(request)
337
390
  end
391
+
392
+ it "should pass a facts object from the original request facts to the node indirection" do
393
+ facts = Puppet::Node::Facts.new("hostname", :afact => "avalue")
394
+ compiler.expects(:extract_facts_from_request).returns(facts)
395
+ compiler.expects(:save_facts_from_request)
396
+
397
+ request = Puppet::Indirector::Request.new(:catalog, :find, "hostname",
398
+ nil, :facts_format => "application/json",
399
+ :facts => facts.render('json'))
400
+
401
+ Puppet::Node.indirection.expects(:find).with("hostname", has_entries(:facts => facts)).returns(node)
402
+
403
+ compiler.find(request)
404
+ end
338
405
  end
339
406
 
340
407
  describe "after finding nodes" do
@@ -342,60 +409,57 @@ describe Puppet::Resource::Catalog::Compiler do
342
409
  Puppet.expects(:version).returns(1)
343
410
  Facter.expects(:value).with('fqdn').returns("my.server.com")
344
411
  Facter.expects(:value).with('ipaddress').returns("my.ip.address")
345
- @compiler = Puppet::Resource::Catalog::Compiler.new
346
- @node = Puppet::Node.new("me")
347
- @request = Puppet::Indirector::Request.new(:catalog, :find, "me", nil)
348
- @compiler.stubs(:compile)
349
- Puppet::Node.indirection.stubs(:find).with("me", anything).returns(@node)
412
+ @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
413
+ compiler.stubs(:compile)
414
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).returns(node)
350
415
  end
351
416
 
352
417
  it "should add the server's Puppet version to the node's parameters as 'serverversion'" do
353
- @node.expects(:merge).with { |args| args["serverversion"] == "1" }
354
- @compiler.find(@request)
418
+ node.expects(:merge).with { |args| args["serverversion"] == "1" }
419
+ compiler.find(@request)
355
420
  end
356
421
 
357
422
  it "should add the server's fqdn to the node's parameters as 'servername'" do
358
- @node.expects(:merge).with { |args| args["servername"] == "my.server.com" }
359
- @compiler.find(@request)
423
+ node.expects(:merge).with { |args| args["servername"] == "my.server.com" }
424
+ compiler.find(@request)
360
425
  end
361
426
 
362
427
  it "should add the server's IP address to the node's parameters as 'serverip'" do
363
- @node.expects(:merge).with { |args| args["serverip"] == "my.ip.address" }
364
- @compiler.find(@request)
428
+ node.expects(:merge).with { |args| args["serverip"] == "my.ip.address" }
429
+ compiler.find(@request)
365
430
  end
366
431
  end
367
432
 
368
433
  describe "when filtering resources" do
369
434
  before :each do
370
435
  Facter.stubs(:value)
371
- @compiler = Puppet::Resource::Catalog::Compiler.new
372
436
  @catalog = stub_everything 'catalog'
373
437
  @catalog.stubs(:respond_to?).with(:filter).returns(true)
374
438
  end
375
439
 
376
440
  it "should delegate to the catalog instance filtering" do
377
441
  @catalog.expects(:filter)
378
- @compiler.filter(@catalog)
442
+ compiler.filter(@catalog)
379
443
  end
380
444
 
381
445
  it "should filter out virtual resources" do
382
446
  resource = mock 'resource', :virtual? => true
383
447
  @catalog.stubs(:filter).yields(resource)
384
448
 
385
- @compiler.filter(@catalog)
449
+ compiler.filter(@catalog)
386
450
  end
387
451
 
388
452
  it "should return the same catalog if it doesn't support filtering" do
389
453
  @catalog.stubs(:respond_to?).with(:filter).returns(false)
390
454
 
391
- expect(@compiler.filter(@catalog)).to eq(@catalog)
455
+ expect(compiler.filter(@catalog)).to eq(@catalog)
392
456
  end
393
457
 
394
458
  it "should return the filtered catalog" do
395
459
  catalog = stub 'filtered catalog'
396
460
  @catalog.stubs(:filter).returns(catalog)
397
461
 
398
- expect(@compiler.filter(@catalog)).to eq(catalog)
462
+ expect(compiler.filter(@catalog)).to eq(catalog)
399
463
  end
400
464
 
401
465
  end
@@ -409,10 +473,6 @@ describe Puppet::Resource::Catalog::Compiler do
409
473
  let(:path) { File.expand_path('/foo') }
410
474
  let(:source) { 'puppet:///modules/mymodule/config_file.txt' }
411
475
 
412
- before :each do
413
- @compiler = Puppet::Resource::Catalog::Compiler.new
414
- end
415
-
416
476
  def stubs_resource_metadata(ftype, relative_path, full_path = nil)
417
477
  full_path ||= File.join(Puppet[:environmentpath], 'production', relative_path)
418
478
 
@@ -466,7 +526,7 @@ describe Puppet::Resource::Catalog::Compiler do
466
526
  }
467
527
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
468
528
 
469
- @compiler.send(:inline_metadata, catalog, checksum_type)
529
+ compiler.send(:inline_metadata, catalog, checksum_type)
470
530
 
471
531
  expect(catalog.metadata[path]).to eq(metadata)
472
532
  expect(catalog.recursive_metadata).to be_empty
@@ -494,7 +554,7 @@ describe Puppet::Resource::Catalog::Compiler do
494
554
  }
495
555
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
496
556
 
497
- @compiler.send(:inline_metadata, catalog, checksum_type)
557
+ compiler.send(:inline_metadata, catalog, checksum_type)
498
558
 
499
559
  expect(catalog.metadata[path]).to eq(metadata)
500
560
  expect(catalog.recursive_metadata).to be_empty
@@ -525,7 +585,7 @@ describe Puppet::Resource::Catalog::Compiler do
525
585
 
526
586
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
527
587
 
528
- @compiler.send(:inline_metadata, catalog, checksum_type)
588
+ compiler.send(:inline_metadata, catalog, checksum_type)
529
589
  end
530
590
 
531
591
  it "inlines metadata for the first source found" do
@@ -543,7 +603,7 @@ describe Puppet::Resource::Catalog::Compiler do
543
603
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
544
604
  Puppet::FileServing::Metadata.indirection.expects(:find).with(alt_source, anything).returns(nil)
545
605
 
546
- @compiler.send(:inline_metadata, catalog, checksum_type)
606
+ compiler.send(:inline_metadata, catalog, checksum_type)
547
607
 
548
608
  expect(catalog.metadata[path]).to eq(metadata)
549
609
  expect(catalog.recursive_metadata).to be_empty
@@ -570,7 +630,7 @@ describe Puppet::Resource::Catalog::Compiler do
570
630
  }
571
631
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
572
632
 
573
- @compiler.send(:inline_metadata, catalog, checksum_type)
633
+ compiler.send(:inline_metadata, catalog, checksum_type)
574
634
 
575
635
  expect(catalog.metadata[path]).to eq(metadata)
576
636
  expect(catalog.recursive_metadata).to be_empty
@@ -595,7 +655,7 @@ describe Puppet::Resource::Catalog::Compiler do
595
655
 
596
656
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
597
657
 
598
- @compiler.send(:inline_metadata, catalog, checksum_type)
658
+ compiler.send(:inline_metadata, catalog, checksum_type)
599
659
  end
600
660
 
601
661
  it "skips absent resources" do
@@ -605,7 +665,7 @@ describe Puppet::Resource::Catalog::Compiler do
605
665
  }
606
666
  MANIFEST
607
667
 
608
- @compiler.send(:inline_metadata, catalog, checksum_type)
668
+ compiler.send(:inline_metadata, catalog, checksum_type)
609
669
  expect(catalog.metadata).to be_empty
610
670
  expect(catalog.recursive_metadata).to be_empty
611
671
  end
@@ -617,7 +677,7 @@ describe Puppet::Resource::Catalog::Compiler do
617
677
  }
618
678
  MANIFEST
619
679
 
620
- @compiler.send(:inline_metadata, catalog, checksum_type)
680
+ compiler.send(:inline_metadata, catalog, checksum_type)
621
681
  expect(catalog.metadata).to be_empty
622
682
  expect(catalog.recursive_metadata).to be_empty
623
683
  end
@@ -632,7 +692,7 @@ describe Puppet::Resource::Catalog::Compiler do
632
692
  }
633
693
  MANIFEST
634
694
 
635
- @compiler.send(:inline_metadata, catalog, checksum_type)
695
+ compiler.send(:inline_metadata, catalog, checksum_type)
636
696
  expect(catalog.metadata).to be_empty
637
697
  expect(catalog.recursive_metadata).to be_empty
638
698
  end
@@ -645,7 +705,7 @@ describe Puppet::Resource::Catalog::Compiler do
645
705
  }
646
706
  MANIFEST
647
707
 
648
- @compiler.send(:inline_metadata, catalog, checksum_type)
708
+ compiler.send(:inline_metadata, catalog, checksum_type)
649
709
  expect(catalog.metadata).to be_empty
650
710
  expect(catalog.recursive_metadata).to be_empty
651
711
  end
@@ -662,7 +722,7 @@ describe Puppet::Resource::Catalog::Compiler do
662
722
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt', full_path)
663
723
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
664
724
 
665
- @compiler.send(:inline_metadata, catalog, checksum_type)
725
+ compiler.send(:inline_metadata, catalog, checksum_type)
666
726
  expect(catalog.metadata).to be_empty
667
727
  expect(catalog.recursive_metadata).to be_empty
668
728
  end
@@ -680,7 +740,7 @@ describe Puppet::Resource::Catalog::Compiler do
680
740
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'secure/files/data.txt')
681
741
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
682
742
 
683
- @compiler.send(:inline_metadata, catalog, checksum_type)
743
+ compiler.send(:inline_metadata, catalog, checksum_type)
684
744
  expect(catalog.metadata).to be_empty
685
745
  expect(catalog.recursive_metadata).to be_empty
686
746
  end
@@ -696,7 +756,7 @@ describe Puppet::Resource::Catalog::Compiler do
696
756
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/not_in_files/config_file.txt')
697
757
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
698
758
 
699
- @compiler.send(:inline_metadata, catalog, checksum_type)
759
+ compiler.send(:inline_metadata, catalog, checksum_type)
700
760
  expect(catalog.metadata).to be_empty
701
761
  expect(catalog.recursive_metadata).to be_empty
702
762
  end
@@ -713,7 +773,7 @@ describe Puppet::Resource::Catalog::Compiler do
713
773
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules//files/config_file.txt')
714
774
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
715
775
 
716
- @compiler.send(:inline_metadata, catalog, checksum_type)
776
+ compiler.send(:inline_metadata, catalog, checksum_type)
717
777
  expect(catalog.metadata).to be_empty
718
778
  expect(catalog.recursive_metadata).to be_empty
719
779
  end
@@ -735,7 +795,7 @@ describe Puppet::Resource::Catalog::Compiler do
735
795
 
736
796
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
737
797
 
738
- @compiler.send(:inline_metadata, catalog, checksum_type)
798
+ compiler.send(:inline_metadata, catalog, checksum_type)
739
799
  expect(catalog.metadata[path]).to eq(metadata)
740
800
  expect(catalog.recursive_metadata).to be_empty
741
801
  end
@@ -757,7 +817,7 @@ describe Puppet::Resource::Catalog::Compiler do
757
817
 
758
818
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
759
819
 
760
- @compiler.send(:inline_metadata, catalog, checksum_type)
820
+ compiler.send(:inline_metadata, catalog, checksum_type)
761
821
  expect(catalog.metadata[path]).to eq(metadata)
762
822
  expect(catalog.recursive_metadata).to be_empty
763
823
  end
@@ -778,7 +838,7 @@ describe Puppet::Resource::Catalog::Compiler do
778
838
  metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/directory')
779
839
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source_dir, anything).returns(metadata)
780
840
 
781
- @compiler.send(:inline_metadata, catalog, checksum_type)
841
+ compiler.send(:inline_metadata, catalog, checksum_type)
782
842
 
783
843
  expect(catalog.metadata[path]).to eq(metadata)
784
844
  expect(catalog.recursive_metadata).to be_empty
@@ -811,7 +871,7 @@ describe Puppet::Resource::Catalog::Compiler do
811
871
  }
812
872
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, options).returns([metadata, child_metadata])
813
873
 
814
- @compiler.send(:inline_metadata, catalog, checksum_type)
874
+ compiler.send(:inline_metadata, catalog, checksum_type)
815
875
 
816
876
  expect(catalog.metadata[path]).to be_nil
817
877
  expect(catalog.recursive_metadata[path][source_dir]).to eq([metadata, child_metadata])
@@ -842,7 +902,7 @@ describe Puppet::Resource::Catalog::Compiler do
842
902
  }
843
903
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, options).returns([metadata, child_metadata])
844
904
 
845
- @compiler.send(:inline_metadata, catalog, checksum_type)
905
+ compiler.send(:inline_metadata, catalog, checksum_type)
846
906
 
847
907
  expect(catalog.metadata[path]).to be_nil
848
908
  expect(catalog.recursive_metadata[path][source_dir]).to eq([metadata, child_metadata])
@@ -862,7 +922,7 @@ describe Puppet::Resource::Catalog::Compiler do
862
922
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, anything).returns([metadata, child_metadata])
863
923
  Puppet::FileServing::Metadata.indirection.expects(:search).with(alt_source_dir, anything).returns([metadata, child_metadata])
864
924
 
865
- @compiler.send(:inline_metadata, catalog, checksum_type)
925
+ compiler.send(:inline_metadata, catalog, checksum_type)
866
926
 
867
927
  expect(catalog.metadata[path]).to be_nil
868
928
  expect(catalog.recursive_metadata[path][source_dir]).to eq([metadata, child_metadata])
@@ -882,7 +942,7 @@ describe Puppet::Resource::Catalog::Compiler do
882
942
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, anything).returns(nil)
883
943
  Puppet::FileServing::Metadata.indirection.expects(:search).with(alt_source_dir, anything).returns([metadata, child_metadata])
884
944
 
885
- @compiler.send(:inline_metadata, catalog, checksum_type)
945
+ compiler.send(:inline_metadata, catalog, checksum_type)
886
946
 
887
947
  expect(catalog.metadata[path]).to be_nil
888
948
  expect(catalog.recursive_metadata[path][source_dir]).to be_nil
@@ -905,7 +965,7 @@ describe Puppet::Resource::Catalog::Compiler do
905
965
 
906
966
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([metadata])
907
967
 
908
- @compiler.send(:inline_metadata, catalog, checksum_type)
968
+ compiler.send(:inline_metadata, catalog, checksum_type)
909
969
  expect(catalog.metadata).to be_empty
910
970
  expect(catalog.recursive_metadata).to be_empty
911
971
  end
@@ -924,7 +984,7 @@ describe Puppet::Resource::Catalog::Compiler do
924
984
  metadata = stubs_directory_metadata('modules/mymodule/not_in_files/directory')
925
985
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([metadata])
926
986
 
927
- @compiler.send(:inline_metadata, catalog, checksum_type)
987
+ compiler.send(:inline_metadata, catalog, checksum_type)
928
988
  expect(catalog.metadata).to be_empty
929
989
  expect(catalog.recursive_metadata).to be_empty
930
990
  end
@@ -950,7 +1010,7 @@ describe Puppet::Resource::Catalog::Compiler do
950
1010
 
951
1011
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([dir_metadata, child_metadata])
952
1012
 
953
- @compiler.send(:inline_metadata, catalog, checksum_type)
1013
+ compiler.send(:inline_metadata, catalog, checksum_type)
954
1014
  expect(catalog.metadata).to be_empty
955
1015
  expect(catalog.recursive_metadata[path][source]).to eq([dir_metadata, child_metadata])
956
1016
  end
@@ -974,7 +1034,7 @@ describe Puppet::Resource::Catalog::Compiler do
974
1034
 
975
1035
  Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([dir_metadata, child_metadata])
976
1036
 
977
- @compiler.send(:inline_metadata, catalog, checksum_type)
1037
+ compiler.send(:inline_metadata, catalog, checksum_type)
978
1038
 
979
1039
  expect(catalog.metadata).to be_empty
980
1040
  expect(catalog.recursive_metadata[path][source]).to eq([dir_metadata, child_metadata])
@@ -987,7 +1047,7 @@ describe Puppet::Resource::Catalog::Compiler do
987
1047
  notify { 'hi': }
988
1048
  MANIFEST
989
1049
 
990
- @compiler.send(:inline_metadata, catalog, checksum_type)
1050
+ compiler.send(:inline_metadata, catalog, checksum_type)
991
1051
  expect(catalog.metadata).to be_empty
992
1052
  expect(catalog.recursive_metadata).to be_empty
993
1053
  end
@@ -1003,7 +1063,7 @@ describe Puppet::Resource::Catalog::Compiler do
1003
1063
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt')
1004
1064
  Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
1005
1065
 
1006
- @compiler.send(:inline_metadata, catalog, checksum_type)
1066
+ compiler.send(:inline_metadata, catalog, checksum_type)
1007
1067
  expect(catalog.metadata['c:/foo']).to eq(metadata)
1008
1068
  expect(catalog.recursive_metadata).to be_empty
1009
1069
  end