puppet 4.5.3-x86-mingw32 → 4.6.1-x86-mingw32

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

Potentially problematic release.


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

Files changed (422) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -1
  3. data/ext/debian/control +2 -4
  4. data/ext/project_data.yaml +4 -4
  5. data/install.rb +6 -2
  6. data/lib/puppet.rb +3 -1
  7. data/lib/puppet/agent/locker.rb +1 -1
  8. data/lib/puppet/application.rb +6 -4
  9. data/lib/puppet/application/agent.rb +2 -1
  10. data/lib/puppet/application/cert.rb +35 -2
  11. data/lib/puppet/application/device.rb +1 -1
  12. data/lib/puppet/application/generate.rb +5 -0
  13. data/lib/puppet/application/lookup.rb +3 -3
  14. data/lib/puppet/application_support.rb +1 -1
  15. data/lib/puppet/compilable_resource_type.rb +15 -0
  16. data/lib/puppet/configurer.rb +67 -10
  17. data/lib/puppet/configurer/plugin_handler.rb +2 -4
  18. data/lib/puppet/data_providers/hiera_config.rb +1 -1
  19. data/lib/puppet/defaults.rb +34 -7
  20. data/lib/puppet/environments.rb +4 -2
  21. data/lib/puppet/error.rb +1 -1
  22. data/lib/puppet/external/dot.rb +1 -1
  23. data/lib/puppet/face/ca.rb +4 -1
  24. data/lib/puppet/face/certificate.rb +7 -1
  25. data/lib/puppet/face/epp.rb +5 -5
  26. data/lib/puppet/face/generate.rb +64 -0
  27. data/lib/puppet/face/help.rb +19 -13
  28. data/lib/puppet/face/man.rb +1 -1
  29. data/lib/puppet/feature/external_facts.rb +1 -1
  30. data/lib/puppet/file_system.rb +16 -0
  31. data/lib/puppet/file_system/file_impl.rb +5 -0
  32. data/lib/puppet/file_system/memory_impl.rb +4 -0
  33. data/lib/puppet/file_system/path_pattern.rb +1 -0
  34. data/lib/puppet/file_system/windows.rb +19 -0
  35. data/lib/puppet/functions.rb +3 -5
  36. data/lib/puppet/functions/assert_type.rb +1 -1
  37. data/lib/puppet/functions/defined.rb +7 -5
  38. data/lib/puppet/functions/dig.rb +2 -18
  39. data/lib/puppet/functions/hiera.rb +1 -1
  40. data/lib/puppet/functions/lest.rb +1 -37
  41. data/lib/puppet/functions/new.rb +2 -473
  42. data/lib/puppet/functions/reverse_each.rb +2 -59
  43. data/lib/puppet/functions/scanf.rb +4 -4
  44. data/lib/puppet/functions/step.rb +1 -63
  45. data/lib/puppet/functions/then.rb +1 -61
  46. data/lib/puppet/functions/type.rb +1 -40
  47. data/lib/puppet/functions/unwrap.rb +40 -0
  48. data/lib/puppet/generate/models/type/property.rb +70 -0
  49. data/lib/puppet/generate/models/type/type.rb +57 -0
  50. data/lib/puppet/generate/templates/type/pcore.erb +41 -0
  51. data/lib/puppet/generate/type.rb +239 -0
  52. data/lib/puppet/graph/simple_graph.rb +2 -6
  53. data/lib/puppet/indirector/catalog/static_compiler.rb +5 -2
  54. data/lib/puppet/indirector/facts/facter.rb +1 -1
  55. data/lib/puppet/indirector/key/ca.rb +2 -2
  56. data/lib/puppet/indirector/request.rb +25 -4
  57. data/lib/puppet/indirector/rest.rb +73 -3
  58. data/lib/puppet/info_service/class_information_service.rb +1 -2
  59. data/lib/puppet/interface/documentation.rb +1 -1
  60. data/lib/puppet/loaders.rb +2 -0
  61. data/lib/puppet/metatype/manager.rb +6 -6
  62. data/lib/puppet/module.rb +8 -1
  63. data/lib/puppet/module_tool.rb +2 -2
  64. data/lib/puppet/module_tool/checksums.rb +1 -1
  65. data/lib/puppet/module_tool/errors/installer.rb +2 -2
  66. data/lib/puppet/module_tool/metadata.rb +1 -1
  67. data/lib/puppet/network/http/api/indirected_routes.rb +23 -32
  68. data/lib/puppet/network/http/rack/rest.rb +15 -1
  69. data/lib/puppet/network/rights.rb +1 -11
  70. data/lib/puppet/node/environment.rb +7 -3
  71. data/lib/puppet/node/facts.rb +1 -1
  72. data/lib/puppet/parameter.rb +23 -3
  73. data/lib/puppet/parameter/boolean.rb +1 -1
  74. data/lib/puppet/parameter/value.rb +1 -1
  75. data/lib/puppet/parser.rb +0 -1
  76. data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
  77. data/lib/puppet/parser/ast/resource.rb +5 -0
  78. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  79. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  80. data/lib/puppet/parser/compiler.rb +14 -17
  81. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -1
  82. data/lib/puppet/parser/environment_compiler.rb +10 -0
  83. data/lib/puppet/parser/functions/create_resources.rb +39 -24
  84. data/lib/puppet/parser/functions/defined.rb +2 -26
  85. data/lib/puppet/parser/functions/dig.rb +29 -0
  86. data/lib/puppet/parser/functions/lest.rb +49 -0
  87. data/lib/puppet/parser/functions/new.rb +530 -0
  88. data/lib/puppet/parser/functions/require.rb +1 -1
  89. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  90. data/lib/puppet/parser/functions/scanf.rb +4 -4
  91. data/lib/puppet/parser/functions/step.rb +84 -0
  92. data/lib/puppet/parser/functions/then.rb +73 -0
  93. data/lib/puppet/parser/functions/type.rb +53 -0
  94. data/lib/puppet/parser/resource.rb +16 -7
  95. data/lib/puppet/parser/scope.rb +36 -28
  96. data/lib/puppet/parser/type_loader.rb +1 -1
  97. data/lib/puppet/plugins/data_providers/data_provider.rb +1 -1
  98. data/lib/puppet/pops.rb +13 -0
  99. data/lib/puppet/pops/adapters.rb +49 -49
  100. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
  101. data/lib/puppet/pops/evaluator/access_operator.rb +39 -2
  102. data/lib/puppet/pops/evaluator/closure.rb +39 -13
  103. data/lib/puppet/pops/evaluator/collector_transformer.rb +10 -1
  104. data/lib/puppet/pops/evaluator/evaluator_impl.rb +16 -11
  105. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  106. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -1
  107. data/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -1
  108. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -2
  109. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
  110. data/lib/puppet/pops/evaluator/runtime3_support.rb +19 -45
  111. data/lib/puppet/pops/functions/function.rb +5 -0
  112. data/lib/puppet/pops/issues.rb +1 -1
  113. data/lib/puppet/pops/label_provider.rb +2 -2
  114. data/lib/puppet/pops/loader/base_loader.rb +12 -15
  115. data/lib/puppet/pops/loader/loader.rb +15 -50
  116. data/lib/puppet/pops/loader/loader_paths.rb +28 -2
  117. data/lib/puppet/pops/loader/module_loaders.rb +16 -1
  118. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  119. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +12 -11
  120. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
  121. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -3
  122. data/lib/puppet/pops/loader/runtime3_type_loader.rb +52 -13
  123. data/lib/puppet/pops/loader/static_loader.rb +55 -0
  124. data/lib/puppet/pops/loader/type_definition_instantiator.rb +30 -14
  125. data/lib/puppet/pops/loader/typed_name.rb +50 -0
  126. data/lib/puppet/pops/loaders.rb +64 -19
  127. data/lib/puppet/pops/merge_strategy.rb +7 -7
  128. data/lib/puppet/pops/migration/migration_checker.rb +4 -0
  129. data/lib/puppet/pops/model/model_label_provider.rb +2 -0
  130. data/lib/puppet/pops/parser/egrammar.ra +8 -5
  131. data/lib/puppet/pops/parser/eparser.rb +1550 -1498
  132. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  133. data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
  134. data/lib/puppet/pops/parser/lexer2.rb +14 -1
  135. data/lib/puppet/pops/parser/locator.rb +30 -1
  136. data/lib/puppet/pops/parser/parser_support.rb +0 -3
  137. data/lib/puppet/pops/parser/slurp_support.rb +3 -3
  138. data/lib/puppet/pops/patterns.rb +9 -1
  139. data/lib/puppet/pops/pcore.rb +67 -11
  140. data/lib/puppet/pops/puppet_stack.rb +43 -0
  141. data/lib/puppet/pops/resource/param.rb +51 -0
  142. data/lib/puppet/pops/resource/resource_type_impl.rb +301 -0
  143. data/lib/puppet/pops/resource/resource_type_set.pcore +21 -0
  144. data/lib/puppet/pops/serialization.rb +17 -0
  145. data/lib/puppet/pops/serialization/abstract_reader.rb +149 -0
  146. data/lib/puppet/pops/serialization/abstract_writer.rb +179 -0
  147. data/lib/puppet/pops/serialization/deserializer.rb +60 -0
  148. data/lib/puppet/pops/serialization/extension.rb +126 -0
  149. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  150. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  151. data/lib/puppet/pops/serialization/json.rb +247 -0
  152. data/lib/puppet/pops/serialization/object.rb +63 -0
  153. data/lib/puppet/pops/serialization/rgen.rb +151 -0
  154. data/lib/puppet/pops/serialization/serializer.rb +91 -0
  155. data/lib/puppet/pops/serialization/time_factory.rb +66 -0
  156. data/lib/puppet/pops/types/annotatable.rb +36 -0
  157. data/lib/puppet/pops/types/implementation_registry.rb +3 -8
  158. data/lib/puppet/pops/types/p_meta_type.rb +83 -0
  159. data/lib/puppet/pops/types/p_object_type.rb +110 -117
  160. data/lib/puppet/pops/types/p_runtime_type.rb +13 -0
  161. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +23 -0
  162. data/lib/puppet/pops/types/p_sem_ver_type.rb +30 -2
  163. data/lib/puppet/pops/types/p_sensitive_type.rb +69 -0
  164. data/lib/puppet/pops/types/p_type_set_type.rb +361 -0
  165. data/lib/puppet/pops/types/puppet_object.rb +0 -5
  166. data/lib/puppet/pops/types/ruby_generator.rb +9 -2
  167. data/lib/puppet/pops/types/type_calculator.rb +6 -1
  168. data/lib/puppet/pops/types/type_factory.rb +14 -12
  169. data/lib/puppet/pops/types/type_formatter.rb +78 -33
  170. data/lib/puppet/pops/types/type_mismatch_describer.rb +0 -2
  171. data/lib/puppet/pops/types/type_parser.rb +27 -2
  172. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  173. data/lib/puppet/pops/types/types.rb +366 -13
  174. data/lib/puppet/pops/validation.rb +4 -4
  175. data/lib/puppet/pops/validation/checker4_0.rb +5 -2
  176. data/lib/puppet/pops/visitor.rb +2 -2
  177. data/lib/puppet/property.rb +64 -5
  178. data/lib/puppet/provider.rb +1 -1
  179. data/lib/puppet/provider/aixobject.rb +3 -3
  180. data/lib/puppet/provider/group/aix.rb +4 -4
  181. data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
  182. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  183. data/lib/puppet/provider/mcx/mcxcontent.rb +2 -2
  184. data/lib/puppet/provider/mount/parsed.rb +1 -1
  185. data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
  186. data/lib/puppet/provider/package/appdmg.rb +3 -3
  187. data/lib/puppet/provider/package/apple.rb +1 -1
  188. data/lib/puppet/provider/package/dnf.rb +5 -0
  189. data/lib/puppet/provider/package/nim.rb +1 -1
  190. data/lib/puppet/provider/package/pacman.rb +2 -2
  191. data/lib/puppet/provider/package/pip.rb +5 -3
  192. data/lib/puppet/provider/package/pip3.rb +1 -1
  193. data/lib/puppet/provider/package/pkg.rb +5 -5
  194. data/lib/puppet/provider/package/pkgdmg.rb +4 -4
  195. data/lib/puppet/provider/package/pkgin.rb +1 -1
  196. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  197. data/lib/puppet/provider/package/portage.rb +48 -8
  198. data/lib/puppet/provider/package/sun.rb +1 -1
  199. data/lib/puppet/provider/package/tdnf.rb +28 -0
  200. data/lib/puppet/provider/package/yum.rb +22 -4
  201. data/lib/puppet/provider/parsedfile.rb +2 -2
  202. data/lib/puppet/provider/service/base.rb +1 -1
  203. data/lib/puppet/provider/service/bsd.rb +1 -1
  204. data/lib/puppet/provider/service/daemontools.rb +2 -2
  205. data/lib/puppet/provider/service/debian.rb +3 -3
  206. data/lib/puppet/provider/service/init.rb +5 -3
  207. data/lib/puppet/provider/service/launchd.rb +16 -2
  208. data/lib/puppet/provider/service/runit.rb +1 -1
  209. data/lib/puppet/provider/service/smf.rb +8 -1
  210. data/lib/puppet/provider/service/systemd.rb +39 -6
  211. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  212. data/lib/puppet/provider/user/aix.rb +3 -2
  213. data/lib/puppet/provider/user/directoryservice.rb +4 -3
  214. data/lib/puppet/provider/user/hpux.rb +1 -1
  215. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  216. data/lib/puppet/provider/user/windows_adsi.rb +3 -0
  217. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  218. data/lib/puppet/reference/type.rb +1 -1
  219. data/lib/puppet/resource.rb +33 -7
  220. data/lib/puppet/resource/capability_finder.rb +74 -54
  221. data/lib/puppet/resource/status.rb +11 -2
  222. data/lib/puppet/settings.rb +17 -6
  223. data/lib/puppet/settings/environment_conf.rb +1 -1
  224. data/lib/puppet/settings/server_list_setting.rb +20 -0
  225. data/lib/puppet/ssl/certificate_authority.rb +32 -9
  226. data/lib/puppet/ssl/certificate_authority/interface.rb +164 -24
  227. data/lib/puppet/ssl/host.rb +3 -3
  228. data/lib/puppet/ssl/oids.rb +10 -0
  229. data/lib/puppet/ssl/validator/default_validator.rb +2 -2
  230. data/lib/puppet/test/test_helper.rb +2 -2
  231. data/lib/puppet/transaction.rb +12 -0
  232. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  233. data/lib/puppet/transaction/event.rb +29 -2
  234. data/lib/puppet/transaction/event_manager.rb +1 -1
  235. data/lib/puppet/transaction/persistence.rb +84 -0
  236. data/lib/puppet/transaction/report.rb +49 -2
  237. data/lib/puppet/transaction/resource_harness.rb +98 -18
  238. data/lib/puppet/type.rb +63 -21
  239. data/lib/puppet/type/augeas.rb +3 -3
  240. data/lib/puppet/type/cron.rb +1 -1
  241. data/lib/puppet/type/file.rb +39 -2
  242. data/lib/puppet/type/file/data_sync.rb +13 -5
  243. data/lib/puppet/type/host.rb +1 -1
  244. data/lib/puppet/type/mount.rb +2 -6
  245. data/lib/puppet/type/notify.rb +1 -1
  246. data/lib/puppet/type/package.rb +1 -1
  247. data/lib/puppet/type/resources.rb +1 -1
  248. data/lib/puppet/type/scheduled_task.rb +1 -1
  249. data/lib/puppet/type/ssh_authorized_key.rb +2 -2
  250. data/lib/puppet/type/tidy.rb +1 -1
  251. data/lib/puppet/type/yumrepo.rb +3 -3
  252. data/lib/puppet/type/zone.rb +1 -1
  253. data/lib/puppet/util.rb +2 -2
  254. data/lib/puppet/util/classgen.rb +1 -1
  255. data/lib/puppet/util/command_line.rb +6 -2
  256. data/lib/puppet/util/command_line/trollop.rb +1 -1
  257. data/lib/puppet/util/execution.rb +2 -2
  258. data/lib/puppet/util/http_proxy.rb +1 -1
  259. data/lib/puppet/util/inifile.rb +1 -1
  260. data/lib/puppet/util/instance_loader.rb +1 -1
  261. data/lib/puppet/util/logging.rb +1 -1
  262. data/lib/puppet/util/multi_match.rb +1 -1
  263. data/lib/puppet/util/plist.rb +15 -5
  264. data/lib/puppet/util/profiler.rb +1 -1
  265. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  266. data/lib/puppet/util/psych_support.rb +1 -1
  267. data/lib/puppet/util/rdoc.rb +2 -2
  268. data/lib/puppet/util/rubygems.rb +1 -1
  269. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  270. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  271. data/lib/puppet/util/windows/adsi.rb +30 -8
  272. data/lib/puppet/util/windows/api_types.rb +1 -1
  273. data/lib/puppet/util/windows/file.rb +59 -0
  274. data/lib/puppet/util/windows/process.rb +10 -0
  275. data/lib/puppet/util/windows/security.rb +1 -1
  276. data/lib/puppet/util/windows/user.rb +22 -4
  277. data/lib/puppet/util/yaml.rb +15 -3
  278. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  279. data/lib/puppet/vendor/rgen_patch.rb +1 -1
  280. data/lib/puppet/version.rb +2 -2
  281. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  282. data/spec/integration/agent/logging_spec.rb +15 -14
  283. data/spec/integration/application/apply_spec.rb +1 -0
  284. data/spec/integration/directory_environments_spec.rb +16 -0
  285. data/spec/integration/environments/settings_spec.rb +32 -4
  286. data/spec/integration/faces/documentation_spec.rb +1 -1
  287. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  288. data/spec/integration/node/environment_spec.rb +21 -0
  289. data/spec/integration/parser/collection_spec.rb +10 -0
  290. data/spec/integration/parser/compiler_spec.rb +76 -840
  291. data/spec/integration/parser/functions/require_spec.rb +3 -3
  292. data/spec/integration/parser/parameter_defaults_spec.rb +6 -2
  293. data/spec/integration/parser/pcore_resource_spec.rb +208 -0
  294. data/spec/integration/parser/resource_expressions_spec.rb +4 -2
  295. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  296. data/spec/integration/transaction/report_spec.rb +666 -0
  297. data/spec/integration/type/file_spec.rb +11 -12
  298. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  299. data/spec/integration/util/windows/principal_spec.rb +109 -60
  300. data/spec/integration/util/windows/process_spec.rb +4 -2
  301. data/spec/integration/util/windows/security_spec.rb +34 -8
  302. data/spec/integration/util/windows/user_spec.rb +26 -4
  303. data/spec/lib/puppet_spec/files.rb +2 -2
  304. data/spec/lib/puppet_spec/network.rb +12 -8
  305. data/spec/shared_examples/rhel_package_provider.rb +341 -0
  306. data/spec/spec_helper.rb +8 -2
  307. data/spec/unit/application/cert_spec.rb +20 -0
  308. data/spec/unit/configurer/plugin_handler_spec.rb +0 -26
  309. data/spec/unit/configurer_spec.rb +46 -0
  310. data/spec/unit/defaults_spec.rb +14 -0
  311. data/spec/unit/face/generate_spec.rb +230 -0
  312. data/spec/unit/face/help_spec.rb +53 -0
  313. data/spec/unit/face/parser_spec.rb +6 -0
  314. data/spec/unit/face/plugin_spec.rb +0 -4
  315. data/spec/unit/file_system_spec.rb +85 -0
  316. data/spec/unit/functions/lookup_spec.rb +4 -4
  317. data/spec/unit/functions/match_spec.rb +2 -2
  318. data/spec/unit/functions/regsubst_spec.rb +1 -1
  319. data/spec/unit/functions/split_spec.rb +1 -1
  320. data/spec/unit/functions/unwrap_spec.rb +29 -0
  321. data/spec/unit/functions/versioncmp_spec.rb +1 -1
  322. data/spec/unit/functions4_spec.rb +8 -8
  323. data/spec/unit/indirector/facts/facter_spec.rb +1 -9
  324. data/spec/unit/indirector/rest_spec.rb +95 -9
  325. data/spec/unit/module_spec.rb +43 -7
  326. data/spec/unit/module_tool/applications/installer_spec.rb +10 -1
  327. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  328. data/spec/unit/module_tool/applications/upgrader_spec.rb +8 -0
  329. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  330. data/spec/unit/network/http/api/indirected_routes_spec.rb +49 -58
  331. data/spec/unit/network/http/api/master/v3_spec.rb +7 -4
  332. data/spec/unit/network/rights_spec.rb +1 -1
  333. data/spec/unit/parameter_spec.rb +11 -0
  334. data/spec/unit/parser/compiler_spec.rb +19 -33
  335. data/spec/unit/{appmgmt_spec.rb → parser/environment_compiler_spec.rb} +12 -1
  336. data/spec/unit/parser/functions/create_resources_spec.rb +76 -4
  337. data/spec/unit/parser/functions/require_spec.rb +2 -2
  338. data/spec/unit/parser/resource_spec.rb +21 -11
  339. data/spec/unit/parser/scope_spec.rb +1 -5
  340. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1 -1
  341. data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
  342. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  343. data/spec/unit/pops/loaders/loaders_spec.rb +63 -5
  344. data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
  345. data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
  346. data/spec/unit/pops/parser/lexer2_spec.rb +27 -3
  347. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +8 -0
  348. data/spec/unit/pops/parser/parse_calls_spec.rb +9 -0
  349. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  350. data/spec/unit/pops/resource/resource_type_impl_spec.rb +37 -0
  351. data/spec/unit/pops/serialization/packer_spec.rb +153 -0
  352. data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
  353. data/spec/unit/pops/serialization/serialization_spec.rb +228 -0
  354. data/spec/unit/pops/types/p_object_type_spec.rb +44 -2
  355. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +42 -0
  356. data/spec/unit/pops/types/p_sensitive_type_spec.rb +139 -0
  357. data/spec/unit/pops/types/p_type_set_type_spec.rb +424 -0
  358. data/spec/unit/pops/types/ruby_generator_spec.rb +497 -181
  359. data/spec/unit/pops/types/type_calculator_spec.rb +10 -4
  360. data/spec/unit/pops/types/type_formatter_spec.rb +1 -1
  361. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +2 -2
  362. data/spec/unit/pops/types/type_parser_spec.rb +1 -1
  363. data/spec/unit/pops/types/types_spec.rb +1 -1
  364. data/spec/unit/pops/validator/validator_spec.rb +18 -1
  365. data/spec/unit/property_spec.rb +48 -11
  366. data/spec/unit/provider/group/windows_adsi_spec.rb +11 -1
  367. data/spec/unit/provider/package/dnf_spec.rb +1 -99
  368. data/spec/unit/provider/package/pacman_spec.rb +4 -4
  369. data/spec/unit/provider/package/pip_spec.rb +14 -0
  370. data/spec/unit/provider/package/pkg_spec.rb +6 -0
  371. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -3
  372. data/spec/unit/provider/package/portage_spec.rb +64 -8
  373. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  374. data/spec/unit/provider/package/windows/package_spec.rb +4 -1
  375. data/spec/unit/provider/package/windows_spec.rb +8 -2
  376. data/spec/unit/provider/package/yum_spec.rb +6 -377
  377. data/spec/unit/provider/service/base_spec.rb +6 -0
  378. data/spec/unit/provider/service/debian_spec.rb +16 -7
  379. data/spec/unit/provider/service/gentoo_spec.rb +6 -0
  380. data/spec/unit/provider/service/init_spec.rb +7 -0
  381. data/spec/unit/provider/service/launchd_spec.rb +35 -4
  382. data/spec/unit/provider/service/openrc_spec.rb +6 -0
  383. data/spec/unit/provider/service/smf_spec.rb +31 -6
  384. data/spec/unit/provider/service/src_spec.rb +6 -0
  385. data/spec/unit/provider/service/systemd_spec.rb +70 -20
  386. data/spec/unit/provider/service/upstart_spec.rb +6 -0
  387. data/spec/unit/provider/user/aix_spec.rb +7 -0
  388. data/spec/unit/provider/user/directoryservice_spec.rb +30 -1
  389. data/spec/unit/provider/user/windows_adsi_spec.rb +19 -0
  390. data/spec/unit/resource/capability_finder_spec.rb +51 -3
  391. data/spec/unit/resource/catalog_spec.rb +5 -0
  392. data/spec/unit/resource/type_spec.rb +2 -2
  393. data/spec/unit/resource_spec.rb +19 -0
  394. data/spec/unit/settings_spec.rb +13 -0
  395. data/spec/unit/ssl/certificate_authority/interface_spec.rb +176 -10
  396. data/spec/unit/ssl/certificate_authority_spec.rb +63 -22
  397. data/spec/unit/ssl/host_spec.rb +1 -1
  398. data/spec/unit/ssl/oids_spec.rb +24 -21
  399. data/spec/unit/transaction/event_spec.rb +3 -1
  400. data/spec/unit/transaction/persistence_spec.rb +173 -0
  401. data/spec/unit/transaction/report_spec.rb +64 -1
  402. data/spec/unit/transaction/resource_harness_spec.rb +91 -0
  403. data/spec/unit/type/file/content_spec.rb +47 -15
  404. data/spec/unit/type/file_spec.rb +28 -0
  405. data/spec/unit/type/mount_spec.rb +5 -12
  406. data/spec/unit/type/yumrepo_spec.rb +1 -5
  407. data/spec/unit/type_spec.rb +32 -0
  408. data/spec/unit/util/command_line_spec.rb +11 -0
  409. data/spec/unit/util/execution_spec.rb +1 -1
  410. data/spec/unit/util/plist_spec.rb +16 -3
  411. data/spec/unit/util/storage_spec.rb +4 -1
  412. data/spec/unit/util/windows/adsi_spec.rb +23 -2
  413. data/spec/unit/util/windows/file_spec.rb +56 -1
  414. data/spec/unit/util/windows/sid_spec.rb +31 -7
  415. data/spec/unit/util/yaml_spec.rb +12 -0
  416. data/spec/unit/util_spec.rb +87 -20
  417. metadata +91 -48
  418. data/ext/puppetlisten/puppetlisten.rb +0 -77
  419. data/ext/puppetlisten/puppetrun.rb +0 -38
  420. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  421. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  422. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
@@ -34,7 +34,6 @@ class EvaluatorImpl
34
34
  include Runtime3Support
35
35
  include ExternalSyntaxSupport
36
36
 
37
- EMPTY_STRING = ''.freeze
38
37
  COMMA_SEPARATOR = ', '.freeze
39
38
 
40
39
  # Reference to Issues name space makes it easier to refer to issues
@@ -43,20 +42,26 @@ class EvaluatorImpl
43
42
  Issues = Issues
44
43
 
45
44
  def initialize
45
+ @@initialized ||= static_initialize
46
+
47
+ # Use null migration checker unless given in context
48
+ @migration_checker = Puppet.lookup(:migration_checker) { Migration::MigrationChecker.singleton }
49
+ end
50
+
51
+ # @api private
52
+ def static_initialize
46
53
  @@eval_visitor ||= Visitor.new(self, "eval", 1, 1)
47
54
  @@lvalue_visitor ||= Visitor.new(self, "lvalue", 1, 1)
48
55
  @@assign_visitor ||= Visitor.new(self, "assign", 3, 3)
49
56
  @@string_visitor ||= Visitor.new(self, "string", 1, 1)
50
57
 
51
- @@type_calculator ||= Types::TypeCalculator.new()
52
- @@type_parser ||= Types::TypeParser.new()
53
-
54
- @@compare_operator ||= CompareOperator.new()
55
- @@relationship_operator ||= RelationshipOperator.new()
58
+ @@type_calculator ||= Types::TypeCalculator.singleton
56
59
 
57
- # Use null migration checker unless given in context
58
- @migration_checker = (Puppet.lookup(:migration_checker) { Migration::MigrationChecker.new() })
60
+ @@compare_operator ||= CompareOperator.new
61
+ @@relationship_operator ||= RelationshipOperator.new
62
+ true
59
63
  end
64
+ private :static_initialize
60
65
 
61
66
  # @api private
62
67
  def type_calculator
@@ -300,7 +305,7 @@ class EvaluatorImpl
300
305
  # A QualifiedReference (i.e. a capitalized qualified name such as Foo, or Foo::Bar) evaluates to a PType
301
306
  #
302
307
  def eval_QualifiedReference(o, scope)
303
- type = @@type_parser.interpret(o, scope)
308
+ type = Types::TypeParser.singleton.interpret(o, scope)
304
309
  fail(Issues::UNKNOWN_RESOURCE_TYPE, o, {:type_name => type.type_string }) if type.is_a?(Types::PTypeReferenceType)
305
310
  type
306
311
  end
@@ -451,7 +456,7 @@ class EvaluatorImpl
451
456
  keys = o.keys || []
452
457
  if left.is_a?(Types::PHostClassType)
453
458
  # Evaluate qualified references without errors no undefined types
454
- keys = keys.map {|key| key.is_a?(Model::QualifiedReference) ? @@type_parser.interpret(key, scope) : evaluate(key, scope) }
459
+ keys = keys.map {|key| key.is_a?(Model::QualifiedReference) ? Types::TypeParser.singleton.interpret(key, scope) : evaluate(key, scope) }
455
460
  else
456
461
  keys = keys.map {|key| evaluate(key, scope) }
457
462
  # Resource[File] becomes File
@@ -917,7 +922,7 @@ class EvaluatorImpl
917
922
  private :call_function_with_block
918
923
 
919
924
  def proc_from_lambda(lambda, scope)
920
- closure = Closure.new(self, lambda, scope)
925
+ closure = Closure::Dynamic.new(self, lambda, scope)
921
926
  PuppetProc.new(closure) { |*args| closure.call(*args) }
922
927
  end
923
928
  private :proc_from_lambda
@@ -20,7 +20,7 @@ module Puppet::Pops::Evaluator::ExternalSyntaxSupport
20
20
  # Call checker and give it the location information from the expression
21
21
  # (as opposed to where the heredoc tag is (somewhere on the line above)).
22
22
  acceptor = Puppet::Pops::Validation::Acceptor.new()
23
- source_pos = find_closest_positioned(reference_expr)
23
+ source_pos = Puppet::Pops::Utils.find_closest_positioned(reference_expr)
24
24
  checker.check(result, syntax, acceptor, source_pos)
25
25
 
26
26
  if acceptor.error_count > 0
@@ -21,7 +21,6 @@ require 'rgen/ecore/ecore'
21
21
  class Puppet::Pops::Evaluator::JsonStrictLiteralEvaluator
22
22
  #include Puppet::Pops::Utils
23
23
 
24
- EMPTY_STRING = ''.freeze
25
24
  COMMA_SEPARATOR = ', '.freeze
26
25
 
27
26
  def initialize
@@ -16,7 +16,6 @@ module Evaluator
16
16
  #
17
17
  class LiteralEvaluator
18
18
 
19
- EMPTY_STRING = ''.freeze
20
19
  COMMA_SEPARATOR = ', '.freeze
21
20
 
22
21
  def initialize
@@ -32,7 +32,6 @@ class RelationshipOperator
32
32
  def initialize
33
33
  @type_transformer_visitor = Visitor.new(self, "transform", 1, 1)
34
34
  @type_calculator = Types::TypeCalculator.new()
35
- @type_parser = Types::TypeParser.new()
36
35
 
37
36
  tf = Types::TypeFactory
38
37
  @catalog_type = tf.variant(tf.catalog_entry, tf.type_type(tf.catalog_entry))
@@ -57,7 +56,7 @@ class RelationshipOperator
57
56
  # A string must be a type reference in string format
58
57
  # @api private
59
58
  def transform_String(o, scope)
60
- assert_catalog_type(@type_parser.parse(o, scope), scope)
59
+ assert_catalog_type(Types::TypeParser.singleton.parse(o, scope), scope)
61
60
  end
62
61
 
63
62
  # A qualified name is short hand for a class with this name
@@ -0,0 +1,119 @@
1
+ module Puppet::Pops
2
+ module Evaluator
3
+
4
+ # @api private
5
+ module Runtime3ResourceSupport
6
+ CLASS_STRING = 'class'.freeze
7
+
8
+ def self.create_resources(file, line, scope, virtual, exported, type_name, resource_titles, evaluated_parameters)
9
+
10
+ env = scope.environment
11
+ # loader = Adapters::LoaderAdapter.loader_for_model_object(o, scope)
12
+
13
+ if type_name.is_a?(String) && type_name.casecmp(CLASS_STRING) == 0
14
+ # Resolve a 'class' and its titles
15
+ resource_titles = resource_titles.collect do |a_title|
16
+ hostclass = env.known_resource_types.find_hostclass(a_title)
17
+ hostclass ? hostclass.name : a_title
18
+ end
19
+ # resolved type is just the string CLASS
20
+ resolved_type = CLASS_STRING
21
+ else
22
+ # resolve a resource type - pcore based, ruby impl, user defined, or application
23
+ resolved_type = find_resource_type(scope, type_name)
24
+ end
25
+
26
+ # TODO: Unknown resource causes creation of Resource to fail with ArgumentError, should give
27
+ # a proper Issue. Now the result is "Error while evaluating a Resource Statement" with the message
28
+ # from the raised exception. (It may be good enough).
29
+ unless resolved_type
30
+ # TODO: do this the right way
31
+ raise ArgumentError, "Unknown resource type: '#{type_name}'"
32
+ end
33
+
34
+ # Build a resource for each title - use the resolved *type* as opposed to a reference
35
+ # as this makes the created resource retain the type instance.
36
+ #
37
+ resource_titles.map do |resource_title|
38
+ resource = Puppet::Parser::Resource.new(
39
+ resolved_type, resource_title,
40
+ :parameters => evaluated_parameters,
41
+ :file => file,
42
+ :line => line,
43
+ :exported => exported,
44
+ :virtual => virtual,
45
+ # WTF is this? Which source is this? The file? The name of the context ?
46
+ :source => scope.source,
47
+ :scope => scope,
48
+ :strict => true
49
+ )
50
+
51
+ # If this resource type supports inheritance (e.g. 'class') the parent chain must be walked
52
+ # This impl delegates to the resource type to figure out what is needed.
53
+ #
54
+ if resource.resource_type.is_a? Puppet::Resource::Type
55
+ resource.resource_type.instantiate_resource(scope, resource)
56
+ end
57
+
58
+ scope.compiler.add_resource(scope, resource)
59
+
60
+ # Classes are evaluated immediately
61
+ scope.compiler.evaluate_classes([resource_title], scope, false) if resolved_type == CLASS_STRING
62
+
63
+ # Turn the resource into a PType (a reference to a resource type)
64
+ # weed out nil's
65
+ resource_to_ptype(resource)
66
+ end
67
+ end
68
+
69
+ def self.find_resource_type(scope, type_name)
70
+ type_name = type_name.to_s.downcase
71
+ find_builtin_resource_type(scope, type_name) || find_defined_resource_type(scope, type_name)
72
+ end
73
+
74
+ def self.find_resource_type_or_class(scope, name)
75
+ type_name = type_name.to_s.downcase
76
+ find_builtin_resource_type(scope, name) || find_defined_resource_type(scope, name) || find_hostclass(scope, name)
77
+ end
78
+
79
+ def self.resource_to_ptype(resource)
80
+ nil if resource.nil?
81
+ # inference returns the meta type since the 3x Resource is an alternate way to describe a type
82
+ Puppet::Pops::Types::TypeCalculator.singleton().infer(resource).type
83
+ end
84
+
85
+ def self.find_main_class(scope)
86
+ # Find the main class (known as ''), it does not have to be in the catalog
87
+ scope.environment.known_resource_types.find_hostclass('')
88
+ end
89
+
90
+ def self.find_hostclass(scope, class_name)
91
+ scope.environment.known_resource_types.find_hostclass(class_name)
92
+ end
93
+
94
+ private
95
+
96
+ def self.find_builtin_resource_type(scope, type_name)
97
+ if type_name.include?(':')
98
+ # Skip the search for built in types as they are always in global namespace
99
+ # (At least for now).
100
+ return nil
101
+ end
102
+
103
+ loader = scope.compiler.loaders.private_environment_loader
104
+ if loaded = loader.load(:resource_type_pp, type_name)
105
+ return loaded
106
+ end
107
+
108
+ # horrible - should be loaded by a "last loader" in 4.x loaders instead.
109
+ Puppet::Type.type(type_name)
110
+ end
111
+
112
+ def self.find_defined_resource_type(scope, type_name)
113
+ krt = scope.environment.known_resource_types
114
+ krt.find_definition(type_name) || krt.application(type_name)
115
+ end
116
+
117
+ end
118
+ end
119
+ end
@@ -266,10 +266,12 @@ module Runtime3Support
266
266
  end
267
267
 
268
268
  def call_function(name, args, o, scope, &block)
269
- loader = Adapters::LoaderAdapter.loader_for_model_object(o, scope)
269
+ file, line = extract_file_line(o)
270
+ loader = Adapters::LoaderAdapter.loader_for_model_object(o, scope, file)
270
271
  if loader && func = loader.load(:function, name)
271
272
  Puppet::Util::Profiler.profile(name, [:functions, name]) do
272
- return func.call(scope, *args, &block)
273
+ # Add stack frame when calling. See Puppet::Pops::PuppetStack
274
+ return Kernel.eval('func.call(scope, *args, &block)', Kernel.binding, file || '', line)
273
275
  end
274
276
  end
275
277
  # Call via 3x API if function exists there
@@ -278,7 +280,7 @@ module Runtime3Support
278
280
  # Arguments must be mapped since functions are unaware of the new and magical creatures in 4x.
279
281
  # NOTE: Passing an empty string last converts nil/:undef to empty string
280
282
  mapped_args = Runtime3Converter.map_args(args, scope, '')
281
- result = scope.send("function_#{name}", mapped_args, &block)
283
+ result = Puppet::Pops::PuppetStack.stack(file, line, scope, "function_#{name}", [mapped_args], &block)
282
284
  # Prevent non r-value functions from leaking their result (they are not written to care about this)
283
285
  Puppet::Parser::Functions.rvalue?(name) ? result : nil
284
286
  end
@@ -298,48 +300,14 @@ module Runtime3Support
298
300
  Runtime3Converter.convert(value, scope, undef_value)
299
301
  end
300
302
 
301
- CLASS_STRING = 'class'.freeze
302
-
303
303
  def create_resources(o, scope, virtual, exported, type_name, resource_titles, evaluated_parameters)
304
-
305
- # TODO: Unknown resource causes creation of Resource to fail with ArgumentError, should give
306
- # a proper Issue. Now the result is "Error while evaluating a Resource Statement" with the message
307
- # from the raised exception. (It may be good enough).
308
-
309
-
310
- # resolve in scope.
311
- fully_qualified_type, resource_titles = scope.resolve_type_and_titles(type_name, resource_titles)
312
-
313
304
  # Not 100% accurate as this is the resource expression location and each title is processed separately
314
305
  # The titles are however the result of evaluation and they have no location at this point (an array
315
306
  # of positions for the source expressions are required for this to work).
316
307
  # TODO: Revisit and possible improve the accuracy.
317
308
  #
318
309
  file, line = extract_file_line(o)
319
- # Build a resource for each title
320
- resource_titles.map do |resource_title|
321
- resource = Puppet::Parser::Resource.new(
322
- fully_qualified_type, resource_title,
323
- :parameters => evaluated_parameters,
324
- :file => file,
325
- :line => line,
326
- :exported => exported,
327
- :virtual => virtual,
328
- # WTF is this? Which source is this? The file? The name of the context ?
329
- :source => scope.source,
330
- :scope => scope,
331
- :strict => true
332
- )
333
-
334
- if resource.resource_type.is_a? Puppet::Resource::Type
335
- resource.resource_type.instantiate_resource(scope, resource)
336
- end
337
- scope.compiler.add_resource(scope, resource)
338
- scope.compiler.evaluate_classes([resource_title], scope, false) if fully_qualified_type == CLASS_STRING
339
- # Turn the resource into a PType (a reference to a resource type)
340
- # weed out nil's
341
- resource_to_ptype(resource)
342
- end
310
+ Runtime3ResourceSupport.create_resources(file, line, scope, virtual, exported, type_name, resource_titles, evaluated_parameters)
343
311
  end
344
312
 
345
313
  # Defines default parameters for a type with the given name.
@@ -465,14 +433,21 @@ module Runtime3Support
465
433
  end
466
434
 
467
435
  def extract_file_line(o)
468
- source_pos = Utils.find_closest_positioned(o)
469
- return [nil, -1] unless source_pos
470
- [source_pos.locator.file, source_pos.line]
436
+ positioned = find_closest_with_offset(o)
437
+ unless positioned.nil?
438
+ locator = Adapters::SourcePosAdapter.find_locator(positioned)
439
+ return [locator.file, locator.line_for_offset(positioned.offset)] unless locator.nil?
440
+ end
441
+ [nil, -1]
471
442
  end
472
443
 
473
- def find_closest_positioned(o)
474
- return nil if o.nil? || o.is_a?(Model::Program)
475
- o.offset.nil? ? find_closest_positioned(o.eContainer) : Adapters::SourcePosAdapter.adapt(o)
444
+ def find_closest_with_offset(o)
445
+ if o.offset.nil?
446
+ c = o.eContainer
447
+ c.nil? ? nil : find_closest_with_offset(c)
448
+ else
449
+ o
450
+ end
476
451
  end
477
452
 
478
453
  # Creates a diagnostic producer
@@ -505,7 +480,6 @@ module Runtime3Support
505
480
  elsif Puppet[:strict] == :off
506
481
  p[Issues::UNKNOWN_VARIABLE] = :ignore
507
482
  else
508
- Puppet[:strict_variables]
509
483
  p[Issues::UNKNOWN_VARIABLE] = Puppet[:strict]
510
484
  end
511
485
 
@@ -57,6 +57,11 @@ class Puppet::Pops::Functions::Function
57
57
  internal_call_function(closure_scope, function_name, args, &block)
58
58
  end
59
59
 
60
+ def closure_scope
61
+ # If closure scope is explicitly set to not nil, if there is a global scope, otherwise an empty hash
62
+ @closure_scope || Puppet.lookup(:global_scope) { {} }
63
+ end
64
+
60
65
  # The dispatcher for the function
61
66
  #
62
67
  # @api private
@@ -351,7 +351,7 @@ module Issues
351
351
  "Illegal variable expression. #{label.a_an_uc(semantic)} did not produce a variable name (String or Numeric)."
352
352
  end
353
353
 
354
- # Issues when an expression is used illegaly in a query.
354
+ # Issues when an expression is used illegally in a query.
355
355
  # query only supports == and !=, and not <, > etc.
356
356
  #
357
357
  ILLEGAL_QUERY_EXPRESSION = hard_issue :ILLEGAL_QUERY_EXPRESSION do
@@ -25,12 +25,12 @@ module Puppet::Pops::LabelProvider
25
25
  "#{article(text).capitalize} #{text}"
26
26
  end
27
27
 
28
- # Produces a label for the given text with *definitie article* (the).
28
+ # Produces a label for the given text with *definite article* (the).
29
29
  def the o
30
30
  "the #{label(o)}"
31
31
  end
32
32
 
33
- # Produces a label for the given text with *definitie article* (The).
33
+ # Produces a label for the given text with *definite article* (The).
34
34
  def the_uc o
35
35
  "The #{label(o)}"
36
36
  end
@@ -1,25 +1,23 @@
1
+ module Puppet::Pops
2
+ module Loader
1
3
  # BaseLoader
2
4
  # ===
3
- # An abstract implementation of Puppet::Pops::Loader::Loader
5
+ # An abstract implementation of Loader
4
6
  #
5
7
  # A derived class should implement `find(typed_name)` and set entries, and possible handle "miss caching".
6
8
  #
7
9
  # @api private
8
10
  #
9
- class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
11
+ class BaseLoader < Loader
10
12
 
11
13
  # The parent loader
12
14
  attr_reader :parent
13
15
 
14
- # An internal name used for debugging and error message purposes
15
- attr_reader :loader_name
16
-
17
16
  def initialize(parent_loader, loader_name)
17
+ super(loader_name)
18
18
  @parent = parent_loader # the higher priority loader to consult
19
19
  @named_values = {} # hash name => NamedEntry
20
- @last_name = nil # the last name asked for (optimization)
21
20
  @last_result = nil # the value of the last name (optimization)
22
- @loader_name = loader_name # the name of the loader (not the name-space it is a loader for)
23
21
  end
24
22
 
25
23
  # @api public
@@ -30,11 +28,10 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
30
28
  # These modules are typically parented by the same
31
29
  # loader as the one initiating the search. It is inefficient to again try to search the same loader for
32
30
  # the same name.
33
- if typed_name == @last_name
34
- @last_result
35
- else
36
- @last_name = typed_name
31
+ if @last_result.nil? || typed_name != @last_result.typed_name
37
32
  @last_result = internal_load(typed_name)
33
+ else
34
+ @last_result
38
35
  end
39
36
  end
40
37
 
@@ -61,7 +58,6 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
61
58
  # @api private
62
59
  #
63
60
  def set_entry(typed_name, value, origin = nil)
64
-
65
61
  # It is never ok to redefine in the very same loader unless redefining a 'not found'
66
62
  if entry = @named_values[typed_name]
67
63
  fail_redefine(entry) unless entry.value.nil?
@@ -76,15 +72,14 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
76
72
  end
77
73
  end
78
74
 
79
- @last_result = Puppet::Pops::Loader::Loader::NamedEntry.new(typed_name, value, origin)
80
- @last_name = typed_name
75
+ @last_result = Loader::NamedEntry.new(typed_name, value, origin)
81
76
  @named_values[typed_name] = @last_result
82
77
  end
83
78
 
84
79
  # @api private
85
80
  #
86
81
  def add_entry(type, name, value, origin)
87
- set_entry(Puppet::Pops::Loader::Loader::TypedName.new(type, name), value, origin)
82
+ set_entry(TypedName.new(type, name), value, origin)
88
83
  end
89
84
 
90
85
  # Promotes an already created entry (typically from another loader) to this loader
@@ -141,3 +136,5 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
141
136
  end
142
137
 
143
138
  end
139
+ end
140
+ end