puppet 4.10.12-x64-mingw32 → 5.0.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

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