puppet 4.10.0 → 5.0.0

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