puppet 4.5.3 → 4.6.1

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 +89 -32
  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
@@ -47,6 +47,18 @@ describe Puppet::Util::Yaml do
47
47
  end
48
48
  end
49
49
 
50
+ it "should allow one to strip ruby tags that would otherwise not parse" do
51
+ write_file(filename, "---\nweirddata: !ruby/hash:Not::A::Valid::Class {}")
52
+
53
+ expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => {}})
54
+ end
55
+
56
+ it "should not strip non-ruby tags" do
57
+ write_file(filename, "---\nweirddata: !binary |-\n e21kNX04MTE4ZGY2NmM5MTc3OTg4ZWE4Y2JiOWEzMjMyNzFkYg==")
58
+
59
+ expect(Puppet::Util::Yaml.load_file(filename, {}, true)).to eq({"weirddata" => "{md5}8118df66c9177988ea8cbb9a323271db"})
60
+ end
61
+
50
62
  def write_file(name, contents)
51
63
  File.open(name, "w") do |fh|
52
64
  fh.write(contents)
@@ -117,37 +117,104 @@ describe Puppet::Util do
117
117
  end
118
118
  end
119
119
 
120
- it "works around Ruby bug 8822 (which fails to preserve UTF-8 properly when accessing ENV)" do
120
+
121
+ def withenv_utf8(&block)
121
122
  env_var_name = SecureRandom.uuid
122
123
  utf_8_bytes = [225, 154, 160] # rune ᚠ
123
- utf_8_str = env_var_name + utf_8_bytes.pack('c*').force_encoding(Encoding::UTF_8)
124
124
 
125
- Puppet::Util.withenv({utf_8_str => utf_8_str}, :windows) do
126
- # the true Windows environemnt APIs see the variables correctly
127
- expect(process.get_environment_strings[utf_8_str]).to eq(utf_8_str)
125
+ utf_8_key = env_var_name + utf_8_bytes.pack('c*').force_encoding(Encoding::UTF_8)
126
+ utf_8_value = utf_8_key + 'value'
127
+ codepage_key = utf_8_key.dup.force_encoding(Encoding.default_external)
128
+
129
+ Puppet::Util.withenv({utf_8_key => utf_8_value}, :windows) do
130
+ # the true Windows environment APIs see the variables correctly
131
+ expect(process.get_environment_strings[utf_8_key]).to eq(utf_8_value)
132
+
133
+ # the string contain the same bytes, but have different Ruby metadata
134
+ expect(utf_8_key.bytes.to_a).to eq(codepage_key.bytes.to_a)
135
+
136
+ yield utf_8_key, utf_8_value, codepage_key
137
+ end
138
+
139
+ # real environment shouldn't have env var anymore
140
+ expect(process.get_environment_strings[utf_8_key]).to eq(nil)
141
+ end
142
+
143
+ # document buggy Ruby behavior here for https://bugs.ruby-lang.org/issues/8822
144
+ # Ruby retrieves / stores ENV names in the current codepage
145
+ # when these tests no longer pass, Ruby has fixed its bugs and workarounds can be removed
146
+
128
147
 
129
- # document buggy Ruby behavior here for https://bugs.ruby-lang.org/issues/8822
130
- # Ruby retrieves / stores ENV names in the current codepage
131
- # when these tests no longer pass, Ruby has fixed its bugs and workarounds can be removed
132
- # interestingly we would expect some of these tests to fail when codepage is 65001
133
- # but instead the env values are in Encoding::ASCII_8BIT!
148
+ # interestingly we would expect some of these tests to fail when codepage is 65001
149
+ # but instead the env values are in Encoding::ASCII_8BIT!
150
+ it "works around Ruby bug 8822 (which fails to preserve UTF-8 properly when accessing ENV) (Ruby <= 2.1) ",
151
+ :if => ((RUBY_VERSION =~ /^(1\.|2\.0\.|2\.1\.)/) && Puppet.features.microsoft_windows?) do
134
152
 
153
+ withenv_utf8 do |utf_8_key, utf_8_value, codepage_key|
135
154
  # both a string in UTF-8 and current codepage are deemed valid keys to the hash
136
- # which in a sane world shouldn't be true
137
- codepage_key = utf_8_str.dup.force_encoding(Encoding.default_external)
155
+ # which is because Ruby compares the BINARY versions of the string, but ignores encoding
138
156
  expect(ENV.key?(codepage_key)).to eq(true)
139
- expect(ENV.key?(utf_8_str)).to eq(true)
140
- # similarly the value stored at the key is in current codepage and won't match UTF-8 value
141
- env_value = ENV[utf_8_str]
142
- expect(env_value).to_not eq(utf_8_str)
157
+ expect(ENV.key?(utf_8_key)).to eq(true)
158
+
159
+ # Ruby's ENV.keys has slightly different behavior than ENV.key?(key)
160
+ # the keys collection in 2.1 has a string with the correct bytes
161
+ # (codepage_key / utf_8_key have same bytes for the sake of searching)
162
+ found = ENV.keys.find { |k| k.bytes == codepage_key.bytes }
163
+ # but the string is actually a binary string
164
+ expect(found.encoding).to eq(Encoding::BINARY)
165
+ # meaning we can't use include? to find it in either UTF-8 or codepage encoding
166
+ expect(ENV.keys.include?(codepage_key)).to eq(false)
167
+ expect(ENV.keys.include?(utf_8_key)).to eq(false)
168
+
169
+ # and can only search with a BINARY encoded string
170
+ expect(ENV.keys.include?(utf_8_key.dup.force_encoding(Encoding::BINARY))).to eq(true)
171
+
172
+ # similarly the value stored at the real key is in current codepage
173
+ # but won't match real UTF-8 value
174
+ env_value = ENV[utf_8_key]
175
+ expect(env_value).to_not eq(utf_8_value)
143
176
  expect(env_value.encoding).to_not eq(Encoding::UTF_8)
177
+
144
178
  # but it can be forced back to UTF-8 to make it match.. ugh
145
- converted_value = ENV[utf_8_str].dup.force_encoding(Encoding::UTF_8)
146
- expect(converted_value).to eq(utf_8_str)
179
+ converted_value = ENV[utf_8_key].dup.force_encoding(Encoding::UTF_8)
180
+ expect(converted_value).to eq(utf_8_value)
147
181
  end
182
+ end
148
183
 
149
- # real environment shouldn't have env var anymore
150
- expect(process.get_environment_strings[utf_8_str]).to eq(nil)
184
+ # but in 2.3, the behavior is correct when external codepage is 65001 / UTF-8
185
+ it "works around Ruby bug 8822 (which fails to preserve UTF-8 properly when accessing ENV) (Ruby >= 2.3.x) ",
186
+ :if => ((match = RUBY_VERSION.match(/^2\.(\d+)\./)) && match.captures[0].to_i >= 3 && Puppet.features.microsoft_windows?) do
187
+
188
+ withenv_utf8 do |utf_8_key, utf_8_value, codepage_key|
189
+ # Ruby 2.3 fixes access by the original UTF-8 key, and behaves differently than 2.1
190
+ # keying by local codepage will work only when the UTF-8 can be converted to local codepage
191
+ # the key selected for this test contains characters unavailable to a local codepage, hence doesn't work
192
+ expect(ENV.key?(codepage_key)).to eq(false)
193
+ expect(ENV.key?(utf_8_key)).to eq(true)
194
+
195
+ # Ruby's ENV.keys has slightly different behavior than ENV.key?(key), and 2.3 differs from 2.1
196
+ # (codepage_key / utf_8_key have same bytes for the sake of searching)
197
+ found = ENV.keys.find { |k| k.bytes == codepage_key.bytes }
198
+
199
+ # the keys collection in 2.3 does not have a string with the correct bytes!
200
+ # a corrupt version of the key exists with the bytes [225, 154, 160] replaced with [63]!
201
+ expect(found).to be_nil
202
+
203
+ # given the key is corrupted, include? cannot be used to find it in either UTF-8 or codepage encoding
204
+ expect(ENV.keys.include?(codepage_key)).to eq(false)
205
+ expect(ENV.keys.include?(utf_8_key)).to eq(false)
206
+
207
+ # The value stored at the UTF-8 key is a corrupted current codepage string and won't match UTF-8 value
208
+ # again the bytes [225, 154, 160] have irreversibly been changed to [63]!
209
+ env_value = ENV[utf_8_key]
210
+ expect(env_value).to_not eq(utf_8_value)
211
+ expect(env_value.encoding).to_not eq(Encoding::UTF_8)
212
+
213
+ # the ENV value returned will be in the local codepage which may or may not be able to be
214
+ # encoded to UTF8. Our test UTF8 data is not convertible to non-Unicode codepages
215
+ converted_value = ENV[utf_8_key].dup.force_encoding(Encoding::UTF_8)
216
+ expect(converted_value).to_not eq(utf_8_value)
217
+ end
151
218
  end
152
219
 
153
220
  it "should preseve existing environment and should not corrupt UTF-8 environment variables" do
metadata CHANGED
@@ -1,22 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.3
5
- prerelease:
4
+ version: 4.6.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Puppet Labs
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-07-20 00:00:00.000000000 Z
11
+ date: 2016-08-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: facter
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>'
17
+ - - '>'
20
18
  - !ruby/object:Gem::Version
21
19
  version: '2.0'
22
20
  - - <
@@ -25,9 +23,8 @@ dependencies:
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>'
27
+ - - '>'
31
28
  - !ruby/object:Gem::Version
32
29
  version: '2.0'
33
30
  - - <
@@ -36,9 +33,8 @@ dependencies:
36
33
  - !ruby/object:Gem::Dependency
37
34
  name: hiera
38
35
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
36
  requirements:
41
- - - ! '>='
37
+ - - '>='
42
38
  - !ruby/object:Gem::Version
43
39
  version: '2.0'
44
40
  - - <
@@ -47,9 +43,8 @@ dependencies:
47
43
  type: :runtime
48
44
  prerelease: false
49
45
  version_requirements: !ruby/object:Gem::Requirement
50
- none: false
51
46
  requirements:
52
- - - ! '>='
47
+ - - '>='
53
48
  - !ruby/object:Gem::Version
54
49
  version: '2.0'
55
50
  - - <
@@ -58,19 +53,17 @@ dependencies:
58
53
  - !ruby/object:Gem::Dependency
59
54
  name: json_pure
60
55
  requirement: !ruby/object:Gem::Requirement
61
- none: false
62
56
  requirements:
63
- - - ! '>='
57
+ - - ~>
64
58
  - !ruby/object:Gem::Version
65
- version: '0'
59
+ version: '1.8'
66
60
  type: :runtime
67
61
  prerelease: false
68
62
  version_requirements: !ruby/object:Gem::Requirement
69
- none: false
70
63
  requirements:
71
- - - ! '>='
64
+ - - ~>
72
65
  - !ruby/object:Gem::Version
73
- version: '0'
66
+ version: '1.8'
74
67
  description: Puppet, an automated configuration management tool
75
68
  email: info@puppetlabs.com
76
69
  executables:
@@ -112,6 +105,7 @@ files:
112
105
  - lib/puppet/application/facts.rb
113
106
  - lib/puppet/application/file.rb
114
107
  - lib/puppet/application/filebucket.rb
108
+ - lib/puppet/application/generate.rb
115
109
  - lib/puppet/application/help.rb
116
110
  - lib/puppet/application/indirection_base.rb
117
111
  - lib/puppet/application/inspect.rb
@@ -130,6 +124,7 @@ files:
130
124
  - lib/puppet/application_support.rb
131
125
  - lib/puppet/bindings.rb
132
126
  - lib/puppet/coercion.rb
127
+ - lib/puppet/compilable_resource_type.rb
133
128
  - lib/puppet/configurer.rb
134
129
  - lib/puppet/configurer/downloader.rb
135
130
  - lib/puppet/configurer/downloader_factory.rb
@@ -188,6 +183,7 @@ files:
188
183
  - lib/puppet/face/file.rb
189
184
  - lib/puppet/face/file/download.rb
190
185
  - lib/puppet/face/file/store.rb
186
+ - lib/puppet/face/generate.rb
191
187
  - lib/puppet/face/help.rb
192
188
  - lib/puppet/face/help/action.erb
193
189
  - lib/puppet/face/help/face.erb
@@ -282,8 +278,13 @@ files:
282
278
  - lib/puppet/functions/step.rb
283
279
  - lib/puppet/functions/then.rb
284
280
  - lib/puppet/functions/type.rb
281
+ - lib/puppet/functions/unwrap.rb
285
282
  - lib/puppet/functions/versioncmp.rb
286
283
  - lib/puppet/functions/with.rb
284
+ - lib/puppet/generate/models/type/property.rb
285
+ - lib/puppet/generate/models/type/type.rb
286
+ - lib/puppet/generate/templates/type/pcore.erb
287
+ - lib/puppet/generate/type.rb
287
288
  - lib/puppet/graph.rb
288
289
  - lib/puppet/graph/key.rb
289
290
  - lib/puppet/graph/prioritizer.rb
@@ -514,6 +515,7 @@ files:
514
515
  - lib/puppet/parser/functions/contain.rb
515
516
  - lib/puppet/parser/functions/create_resources.rb
516
517
  - lib/puppet/parser/functions/defined.rb
518
+ - lib/puppet/parser/functions/dig.rb
517
519
  - lib/puppet/parser/functions/digest.rb
518
520
  - lib/puppet/parser/functions/each.rb
519
521
  - lib/puppet/parser/functions/epp.rb
@@ -529,23 +531,29 @@ files:
529
531
  - lib/puppet/parser/functions/include.rb
530
532
  - lib/puppet/parser/functions/inline_epp.rb
531
533
  - lib/puppet/parser/functions/inline_template.rb
534
+ - lib/puppet/parser/functions/lest.rb
532
535
  - lib/puppet/parser/functions/lookup.rb
533
536
  - lib/puppet/parser/functions/map.rb
534
537
  - lib/puppet/parser/functions/match.rb
535
538
  - lib/puppet/parser/functions/md5.rb
539
+ - lib/puppet/parser/functions/new.rb
536
540
  - lib/puppet/parser/functions/realize.rb
537
541
  - lib/puppet/parser/functions/reduce.rb
538
542
  - lib/puppet/parser/functions/regsubst.rb
539
543
  - lib/puppet/parser/functions/require.rb
544
+ - lib/puppet/parser/functions/reverse_each.rb
540
545
  - lib/puppet/parser/functions/scanf.rb
541
546
  - lib/puppet/parser/functions/sha1.rb
542
547
  - lib/puppet/parser/functions/shellquote.rb
543
548
  - lib/puppet/parser/functions/slice.rb
544
549
  - lib/puppet/parser/functions/split.rb
545
550
  - lib/puppet/parser/functions/sprintf.rb
551
+ - lib/puppet/parser/functions/step.rb
546
552
  - lib/puppet/parser/functions/tag.rb
547
553
  - lib/puppet/parser/functions/tagged.rb
548
554
  - lib/puppet/parser/functions/template.rb
555
+ - lib/puppet/parser/functions/then.rb
556
+ - lib/puppet/parser/functions/type.rb
549
557
  - lib/puppet/parser/functions/versioncmp.rb
550
558
  - lib/puppet/parser/functions/with.rb
551
559
  - lib/puppet/parser/parser_factory.rb
@@ -607,6 +615,7 @@ files:
607
615
  - lib/puppet/pops/evaluator/puppet_proc.rb
608
616
  - lib/puppet/pops/evaluator/relationship_operator.rb
609
617
  - lib/puppet/pops/evaluator/runtime3_converter.rb
618
+ - lib/puppet/pops/evaluator/runtime3_resource_support.rb
610
619
  - lib/puppet/pops/evaluator/runtime3_support.rb
611
620
  - lib/puppet/pops/functions/dispatch.rb
612
621
  - lib/puppet/pops/functions/dispatcher.rb
@@ -623,11 +632,13 @@ files:
623
632
  - lib/puppet/pops/loader/null_loader.rb
624
633
  - lib/puppet/pops/loader/predefined_loader.rb
625
634
  - lib/puppet/pops/loader/puppet_function_instantiator.rb
635
+ - lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb
626
636
  - lib/puppet/pops/loader/ruby_function_instantiator.rb
627
637
  - lib/puppet/pops/loader/runtime3_type_loader.rb
628
638
  - lib/puppet/pops/loader/simple_environment_loader.rb
629
639
  - lib/puppet/pops/loader/static_loader.rb
630
640
  - lib/puppet/pops/loader/type_definition_instantiator.rb
641
+ - lib/puppet/pops/loader/typed_name.rb
631
642
  - lib/puppet/pops/loader/uri_helper.rb
632
643
  - lib/puppet/pops/loaders.rb
633
644
  - lib/puppet/pops/lookup.rb
@@ -660,15 +671,35 @@ files:
660
671
  - lib/puppet/pops/parser/slurp_support.rb
661
672
  - lib/puppet/pops/patterns.rb
662
673
  - lib/puppet/pops/pcore.rb
674
+ - lib/puppet/pops/puppet_stack.rb
675
+ - lib/puppet/pops/resource/param.rb
676
+ - lib/puppet/pops/resource/resource_type_impl.rb
677
+ - lib/puppet/pops/resource/resource_type_set.pcore
663
678
  - lib/puppet/pops/semantic_error.rb
679
+ - lib/puppet/pops/serialization.rb
680
+ - lib/puppet/pops/serialization/abstract_reader.rb
681
+ - lib/puppet/pops/serialization/abstract_writer.rb
682
+ - lib/puppet/pops/serialization/deserializer.rb
683
+ - lib/puppet/pops/serialization/extension.rb
684
+ - lib/puppet/pops/serialization/instance_reader.rb
685
+ - lib/puppet/pops/serialization/instance_writer.rb
686
+ - lib/puppet/pops/serialization/json.rb
687
+ - lib/puppet/pops/serialization/object.rb
688
+ - lib/puppet/pops/serialization/rgen.rb
689
+ - lib/puppet/pops/serialization/serializer.rb
690
+ - lib/puppet/pops/serialization/time_factory.rb
691
+ - lib/puppet/pops/types/annotatable.rb
664
692
  - lib/puppet/pops/types/class_loader.rb
665
693
  - lib/puppet/pops/types/enumeration.rb
666
694
  - lib/puppet/pops/types/implementation_registry.rb
667
695
  - lib/puppet/pops/types/iterable.rb
696
+ - lib/puppet/pops/types/p_meta_type.rb
668
697
  - lib/puppet/pops/types/p_object_type.rb
669
698
  - lib/puppet/pops/types/p_runtime_type.rb
670
699
  - lib/puppet/pops/types/p_sem_ver_range_type.rb
671
700
  - lib/puppet/pops/types/p_sem_ver_type.rb
701
+ - lib/puppet/pops/types/p_sensitive_type.rb
702
+ - lib/puppet/pops/types/p_type_set_type.rb
672
703
  - lib/puppet/pops/types/puppet_object.rb
673
704
  - lib/puppet/pops/types/recursion_guard.rb
674
705
  - lib/puppet/pops/types/ruby_generator.rb
@@ -682,6 +713,7 @@ files:
682
713
  - lib/puppet/pops/types/type_formatter.rb
683
714
  - lib/puppet/pops/types/type_mismatch_describer.rb
684
715
  - lib/puppet/pops/types/type_parser.rb
716
+ - lib/puppet/pops/types/type_set_reference.rb
685
717
  - lib/puppet/pops/types/types.rb
686
718
  - lib/puppet/pops/utils.rb
687
719
  - lib/puppet/pops/validation.rb
@@ -764,6 +796,7 @@ files:
764
796
  - lib/puppet/provider/package/rug.rb
765
797
  - lib/puppet/provider/package/sun.rb
766
798
  - lib/puppet/provider/package/sunfreeware.rb
799
+ - lib/puppet/provider/package/tdnf.rb
767
800
  - lib/puppet/provider/package/up2date.rb
768
801
  - lib/puppet/provider/package/urpmi.rb
769
802
  - lib/puppet/provider/package/windows.rb
@@ -830,7 +863,6 @@ files:
830
863
  - lib/puppet/resource/status.rb
831
864
  - lib/puppet/resource/type.rb
832
865
  - lib/puppet/resource/type_collection.rb
833
- - lib/puppet/resource/type_collection_helper.rb
834
866
  - lib/puppet/scheduler.rb
835
867
  - lib/puppet/scheduler/job.rb
836
868
  - lib/puppet/scheduler/scheduler.rb
@@ -852,6 +884,7 @@ files:
852
884
  - lib/puppet/settings/ini_file.rb
853
885
  - lib/puppet/settings/path_setting.rb
854
886
  - lib/puppet/settings/priority_setting.rb
887
+ - lib/puppet/settings/server_list_setting.rb
855
888
  - lib/puppet/settings/string_setting.rb
856
889
  - lib/puppet/settings/symbolic_enum_setting.rb
857
890
  - lib/puppet/settings/terminus_setting.rb
@@ -885,6 +918,7 @@ files:
885
918
  - lib/puppet/transaction/additional_resource_generator.rb
886
919
  - lib/puppet/transaction/event.rb
887
920
  - lib/puppet/transaction/event_manager.rb
921
+ - lib/puppet/transaction/persistence.rb
888
922
  - lib/puppet/transaction/report.rb
889
923
  - lib/puppet/transaction/resource_harness.rb
890
924
  - lib/puppet/type.rb
@@ -1408,8 +1442,6 @@ files:
1408
1442
  - ext/osx/puppet.plist
1409
1443
  - ext/project_data.yaml
1410
1444
  - ext/puppet-test
1411
- - ext/puppetlisten/puppetlisten.rb
1412
- - ext/puppetlisten/puppetrun.rb
1413
1445
  - ext/pure_ruby_dsl/dsl_test.rb
1414
1446
  - ext/rack/config.ru
1415
1447
  - ext/rack/example-passenger-vhost.conf
@@ -1714,6 +1746,7 @@ files:
1714
1746
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp
1715
1747
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp
1716
1748
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json
1749
+ - spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp
1717
1750
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp
1718
1751
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp
1719
1752
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb
@@ -1899,6 +1932,7 @@ files:
1899
1932
  - spec/integration/parser/functions/require_spec.rb
1900
1933
  - spec/integration/parser/node_spec.rb
1901
1934
  - spec/integration/parser/parameter_defaults_spec.rb
1935
+ - spec/integration/parser/pcore_resource_spec.rb
1902
1936
  - spec/integration/parser/resource_expressions_spec.rb
1903
1937
  - spec/integration/parser/scope_spec.rb
1904
1938
  - spec/integration/parser/undef_param_spec.rb
@@ -1934,6 +1968,7 @@ files:
1934
1968
  - spec/integration/util/execution_spec.rb
1935
1969
  - spec/integration/util/rdoc/parser_spec.rb
1936
1970
  - spec/integration/util/settings_spec.rb
1971
+ - spec/integration/util/windows/adsi_spec.rb
1937
1972
  - spec/integration/util/windows/principal_spec.rb
1938
1973
  - spec/integration/util/windows/process_spec.rb
1939
1974
  - spec/integration/util/windows/registry_spec.rb
@@ -1988,6 +2023,7 @@ files:
1988
2023
  - spec/shared_contexts/checksum.rb
1989
2024
  - spec/shared_contexts/digests.rb
1990
2025
  - spec/shared_contexts/types_setup.rb
2026
+ - spec/shared_examples/rhel_package_provider.rb
1991
2027
  - spec/spec_helper.rb
1992
2028
  - spec/unit/agent/disabler_spec.rb
1993
2029
  - spec/unit/agent/locker_spec.rb
@@ -2009,7 +2045,6 @@ files:
2009
2045
  - spec/unit/application/master_spec.rb
2010
2046
  - spec/unit/application/resource_spec.rb
2011
2047
  - spec/unit/application_spec.rb
2012
- - spec/unit/appmgmt_spec.rb
2013
2048
  - spec/unit/capability_spec.rb
2014
2049
  - spec/unit/configurer/downloader_factory_spec.rb
2015
2050
  - spec/unit/configurer/downloader_spec.rb
@@ -2040,6 +2075,7 @@ files:
2040
2075
  - spec/unit/face/epp_face_spec.rb
2041
2076
  - spec/unit/face/facts_spec.rb
2042
2077
  - spec/unit/face/file_spec.rb
2078
+ - spec/unit/face/generate_spec.rb
2043
2079
  - spec/unit/face/help_spec.rb
2044
2080
  - spec/unit/face/module/build_spec.rb
2045
2081
  - spec/unit/face/module/install_spec.rb
@@ -2097,6 +2133,7 @@ files:
2097
2133
  - spec/unit/functions/step_spec.rb
2098
2134
  - spec/unit/functions/then_spec.rb
2099
2135
  - spec/unit/functions/type_spec.rb
2136
+ - spec/unit/functions/unwrap_spec.rb
2100
2137
  - spec/unit/functions/versioncmp_spec.rb
2101
2138
  - spec/unit/functions/with_spec.rb
2102
2139
  - spec/unit/functions4_spec.rb
@@ -2261,10 +2298,10 @@ files:
2261
2298
  - spec/unit/parser/ast/block_expression_spec.rb
2262
2299
  - spec/unit/parser/ast/leaf_spec.rb
2263
2300
  - spec/unit/parser/compiler_spec.rb
2301
+ - spec/unit/parser/environment_compiler_spec.rb
2264
2302
  - spec/unit/parser/files_spec.rb
2265
2303
  - spec/unit/parser/functions/contain_spec.rb
2266
2304
  - spec/unit/parser/functions/create_resources_spec.rb
2267
- - spec/unit/parser/functions/defined_spec.rb
2268
2305
  - spec/unit/parser/functions/digest_spec.rb
2269
2306
  - spec/unit/parser/functions/fail_spec.rb
2270
2307
  - spec/unit/parser/functions/file_spec.rb
@@ -2347,11 +2384,18 @@ files:
2347
2384
  - spec/unit/pops/parser/parsing_typed_parameters_spec.rb
2348
2385
  - spec/unit/pops/parser/rgen_sanitycheck_spec.rb
2349
2386
  - spec/unit/pops/parser/source_pos_adapter_spec.rb
2387
+ - spec/unit/pops/puppet_stack_spec.rb
2388
+ - spec/unit/pops/resource/resource_type_impl_spec.rb
2389
+ - spec/unit/pops/serialization/packer_spec.rb
2390
+ - spec/unit/pops/serialization/rgen_spec.rb
2391
+ - spec/unit/pops/serialization/serialization_spec.rb
2350
2392
  - spec/unit/pops/types/class_loader_spec.rb
2351
2393
  - spec/unit/pops/types/enumeration_spec.rb
2352
2394
  - spec/unit/pops/types/iterable_spec.rb
2353
2395
  - spec/unit/pops/types/p_object_type_spec.rb
2354
2396
  - spec/unit/pops/types/p_sem_ver_type_spec.rb
2397
+ - spec/unit/pops/types/p_sensitive_type_spec.rb
2398
+ - spec/unit/pops/types/p_type_set_type_spec.rb
2355
2399
  - spec/unit/pops/types/recursion_guard_spec.rb
2356
2400
  - spec/unit/pops/types/ruby_generator_spec.rb
2357
2401
  - spec/unit/pops/types/string_converter_spec.rb
@@ -2429,6 +2473,7 @@ files:
2429
2473
  - spec/unit/provider/package/puppet_gem_spec.rb
2430
2474
  - spec/unit/provider/package/rpm_spec.rb
2431
2475
  - spec/unit/provider/package/sun_spec.rb
2476
+ - spec/unit/provider/package/tdnf_spec.rb
2432
2477
  - spec/unit/provider/package/up2date_spec.rb
2433
2478
  - spec/unit/provider/package/urpmi_spec.rb
2434
2479
  - spec/unit/provider/package/windows/exe_package_spec.rb
@@ -2486,7 +2531,6 @@ files:
2486
2531
  - spec/unit/resource/capability_finder_spec.rb
2487
2532
  - spec/unit/resource/catalog_spec.rb
2488
2533
  - spec/unit/resource/status_spec.rb
2489
- - spec/unit/resource/type_collection_helper_spec.rb
2490
2534
  - spec/unit/resource/type_collection_spec.rb
2491
2535
  - spec/unit/resource/type_spec.rb
2492
2536
  - spec/unit/resource_spec.rb
@@ -2529,6 +2573,7 @@ files:
2529
2573
  - spec/unit/transaction/additional_resource_generator_spec.rb
2530
2574
  - spec/unit/transaction/event_manager_spec.rb
2531
2575
  - spec/unit/transaction/event_spec.rb
2576
+ - spec/unit/transaction/persistence_spec.rb
2532
2577
  - spec/unit/transaction/report_spec.rb
2533
2578
  - spec/unit/transaction/resource_harness_spec.rb
2534
2579
  - spec/unit/transaction_spec.rb
@@ -2665,6 +2710,7 @@ files:
2665
2710
  - spec/watchr.rb
2666
2711
  homepage: https://github.com/puppetlabs/puppet
2667
2712
  licenses: []
2713
+ metadata: {}
2668
2714
  post_install_message:
2669
2715
  rdoc_options:
2670
2716
  - --title
@@ -2675,22 +2721,20 @@ rdoc_options:
2675
2721
  require_paths:
2676
2722
  - lib
2677
2723
  required_ruby_version: !ruby/object:Gem::Requirement
2678
- none: false
2679
2724
  requirements:
2680
- - - ! '>='
2725
+ - - '>='
2681
2726
  - !ruby/object:Gem::Version
2682
2727
  version: 1.9.3
2683
2728
  required_rubygems_version: !ruby/object:Gem::Requirement
2684
- none: false
2685
2729
  requirements:
2686
- - - ! '>'
2730
+ - - '>'
2687
2731
  - !ruby/object:Gem::Version
2688
2732
  version: 1.3.1
2689
2733
  requirements: []
2690
2734
  rubyforge_project: puppet
2691
- rubygems_version: 1.8.23
2735
+ rubygems_version: 2.0.14
2692
2736
  signing_key:
2693
- specification_version: 3
2737
+ specification_version: 4
2694
2738
  summary: Puppet, an automated configuration management tool
2695
2739
  test_files:
2696
2740
  - spec/fixtures/faulty_face/puppet/face/syntax.rb
@@ -2946,6 +2990,7 @@ test_files:
2946
2990
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp
2947
2991
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp
2948
2992
  - spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json
2993
+ - spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp
2949
2994
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp
2950
2995
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp
2951
2996
  - spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb
@@ -3131,6 +3176,7 @@ test_files:
3131
3176
  - spec/integration/parser/functions/require_spec.rb
3132
3177
  - spec/integration/parser/node_spec.rb
3133
3178
  - spec/integration/parser/parameter_defaults_spec.rb
3179
+ - spec/integration/parser/pcore_resource_spec.rb
3134
3180
  - spec/integration/parser/resource_expressions_spec.rb
3135
3181
  - spec/integration/parser/scope_spec.rb
3136
3182
  - spec/integration/parser/undef_param_spec.rb
@@ -3166,6 +3212,7 @@ test_files:
3166
3212
  - spec/integration/util/execution_spec.rb
3167
3213
  - spec/integration/util/rdoc/parser_spec.rb
3168
3214
  - spec/integration/util/settings_spec.rb
3215
+ - spec/integration/util/windows/adsi_spec.rb
3169
3216
  - spec/integration/util/windows/principal_spec.rb
3170
3217
  - spec/integration/util/windows/process_spec.rb
3171
3218
  - spec/integration/util/windows/registry_spec.rb
@@ -3220,6 +3267,7 @@ test_files:
3220
3267
  - spec/shared_contexts/checksum.rb
3221
3268
  - spec/shared_contexts/digests.rb
3222
3269
  - spec/shared_contexts/types_setup.rb
3270
+ - spec/shared_examples/rhel_package_provider.rb
3223
3271
  - spec/spec_helper.rb
3224
3272
  - spec/unit/agent/disabler_spec.rb
3225
3273
  - spec/unit/agent/locker_spec.rb
@@ -3241,7 +3289,6 @@ test_files:
3241
3289
  - spec/unit/application/master_spec.rb
3242
3290
  - spec/unit/application/resource_spec.rb
3243
3291
  - spec/unit/application_spec.rb
3244
- - spec/unit/appmgmt_spec.rb
3245
3292
  - spec/unit/capability_spec.rb
3246
3293
  - spec/unit/configurer/downloader_factory_spec.rb
3247
3294
  - spec/unit/configurer/downloader_spec.rb
@@ -3272,6 +3319,7 @@ test_files:
3272
3319
  - spec/unit/face/epp_face_spec.rb
3273
3320
  - spec/unit/face/facts_spec.rb
3274
3321
  - spec/unit/face/file_spec.rb
3322
+ - spec/unit/face/generate_spec.rb
3275
3323
  - spec/unit/face/help_spec.rb
3276
3324
  - spec/unit/face/module/build_spec.rb
3277
3325
  - spec/unit/face/module/install_spec.rb
@@ -3329,6 +3377,7 @@ test_files:
3329
3377
  - spec/unit/functions/step_spec.rb
3330
3378
  - spec/unit/functions/then_spec.rb
3331
3379
  - spec/unit/functions/type_spec.rb
3380
+ - spec/unit/functions/unwrap_spec.rb
3332
3381
  - spec/unit/functions/versioncmp_spec.rb
3333
3382
  - spec/unit/functions/with_spec.rb
3334
3383
  - spec/unit/functions4_spec.rb
@@ -3493,10 +3542,10 @@ test_files:
3493
3542
  - spec/unit/parser/ast/block_expression_spec.rb
3494
3543
  - spec/unit/parser/ast/leaf_spec.rb
3495
3544
  - spec/unit/parser/compiler_spec.rb
3545
+ - spec/unit/parser/environment_compiler_spec.rb
3496
3546
  - spec/unit/parser/files_spec.rb
3497
3547
  - spec/unit/parser/functions/contain_spec.rb
3498
3548
  - spec/unit/parser/functions/create_resources_spec.rb
3499
- - spec/unit/parser/functions/defined_spec.rb
3500
3549
  - spec/unit/parser/functions/digest_spec.rb
3501
3550
  - spec/unit/parser/functions/fail_spec.rb
3502
3551
  - spec/unit/parser/functions/file_spec.rb
@@ -3579,11 +3628,18 @@ test_files:
3579
3628
  - spec/unit/pops/parser/parsing_typed_parameters_spec.rb
3580
3629
  - spec/unit/pops/parser/rgen_sanitycheck_spec.rb
3581
3630
  - spec/unit/pops/parser/source_pos_adapter_spec.rb
3631
+ - spec/unit/pops/puppet_stack_spec.rb
3632
+ - spec/unit/pops/resource/resource_type_impl_spec.rb
3633
+ - spec/unit/pops/serialization/packer_spec.rb
3634
+ - spec/unit/pops/serialization/rgen_spec.rb
3635
+ - spec/unit/pops/serialization/serialization_spec.rb
3582
3636
  - spec/unit/pops/types/class_loader_spec.rb
3583
3637
  - spec/unit/pops/types/enumeration_spec.rb
3584
3638
  - spec/unit/pops/types/iterable_spec.rb
3585
3639
  - spec/unit/pops/types/p_object_type_spec.rb
3586
3640
  - spec/unit/pops/types/p_sem_ver_type_spec.rb
3641
+ - spec/unit/pops/types/p_sensitive_type_spec.rb
3642
+ - spec/unit/pops/types/p_type_set_type_spec.rb
3587
3643
  - spec/unit/pops/types/recursion_guard_spec.rb
3588
3644
  - spec/unit/pops/types/ruby_generator_spec.rb
3589
3645
  - spec/unit/pops/types/string_converter_spec.rb
@@ -3661,6 +3717,7 @@ test_files:
3661
3717
  - spec/unit/provider/package/puppet_gem_spec.rb
3662
3718
  - spec/unit/provider/package/rpm_spec.rb
3663
3719
  - spec/unit/provider/package/sun_spec.rb
3720
+ - spec/unit/provider/package/tdnf_spec.rb
3664
3721
  - spec/unit/provider/package/up2date_spec.rb
3665
3722
  - spec/unit/provider/package/urpmi_spec.rb
3666
3723
  - spec/unit/provider/package/windows/exe_package_spec.rb
@@ -3718,7 +3775,6 @@ test_files:
3718
3775
  - spec/unit/resource/capability_finder_spec.rb
3719
3776
  - spec/unit/resource/catalog_spec.rb
3720
3777
  - spec/unit/resource/status_spec.rb
3721
- - spec/unit/resource/type_collection_helper_spec.rb
3722
3778
  - spec/unit/resource/type_collection_spec.rb
3723
3779
  - spec/unit/resource/type_spec.rb
3724
3780
  - spec/unit/resource_spec.rb
@@ -3761,6 +3817,7 @@ test_files:
3761
3817
  - spec/unit/transaction/additional_resource_generator_spec.rb
3762
3818
  - spec/unit/transaction/event_manager_spec.rb
3763
3819
  - spec/unit/transaction/event_spec.rb
3820
+ - spec/unit/transaction/persistence_spec.rb
3764
3821
  - spec/unit/transaction/report_spec.rb
3765
3822
  - spec/unit/transaction/resource_harness_spec.rb
3766
3823
  - spec/unit/transaction_spec.rb