puppet 5.3.7 → 5.4.0

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 (454) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +42 -29
  3. data/README.md +8 -6
  4. data/ext/cert_inspector +2 -2
  5. data/ext/envpuppet +1 -1
  6. data/ext/gentoo/init.d/puppetmaster +4 -4
  7. data/ext/ips/puppet-agent +11 -11
  8. data/ext/ips/puppet-master +11 -11
  9. data/ext/puppet-test +1 -2
  10. data/ext/redhat/client.init +2 -2
  11. data/ext/redhat/logrotate +1 -1
  12. data/ext/solaris/smf/puppet +11 -11
  13. data/ext/solaris/smf/svc-puppetd +5 -5
  14. data/ext/solaris/smf/svc-puppetmasterd +5 -5
  15. data/ext/windows/service/daemon.rb +1 -1
  16. data/install.rb +2 -3
  17. data/lib/puppet/agent.rb +1 -1
  18. data/lib/puppet/application/cert.rb +1 -3
  19. data/lib/puppet/application/describe.rb +0 -1
  20. data/lib/puppet/application/device.rb +12 -99
  21. data/lib/puppet/application/filebucket.rb +32 -11
  22. data/lib/puppet/application/lookup.rb +1 -11
  23. data/lib/puppet/application/script.rb +261 -0
  24. data/lib/puppet/configurer.rb +3 -4
  25. data/lib/puppet/configurer/plugin_handler.rb +26 -9
  26. data/lib/puppet/context.rb +1 -1
  27. data/lib/puppet/datatypes.rb +213 -0
  28. data/lib/puppet/datatypes/error.rb +21 -0
  29. data/lib/puppet/datatypes/impl/error.rb +40 -0
  30. data/lib/puppet/defaults.rb +51 -20
  31. data/lib/puppet/environments.rb +17 -0
  32. data/lib/puppet/error.rb +17 -0
  33. data/lib/puppet/etc.rb +2 -2
  34. data/lib/puppet/external/pson/pure/generator.rb +1 -1
  35. data/lib/puppet/external/pson/pure/parser.rb +1 -1
  36. data/lib/puppet/face/config.rb +45 -0
  37. data/lib/puppet/face/epp.rb +3 -3
  38. data/lib/puppet/face/help/action.erb +3 -0
  39. data/lib/puppet/face/module/build.rb +1 -0
  40. data/lib/puppet/face/module/generate.rb +5 -0
  41. data/lib/puppet/face/module/install.rb +1 -0
  42. data/lib/puppet/face/module/search.rb +6 -2
  43. data/lib/puppet/face/module/uninstall.rb +1 -0
  44. data/lib/puppet/face/module/upgrade.rb +1 -0
  45. data/lib/puppet/face/parser.rb +0 -1
  46. data/lib/puppet/face/plugin.rb +1 -3
  47. data/lib/puppet/feature/base.rb +1 -1
  48. data/lib/puppet/feature/bolt.rb +3 -0
  49. data/lib/puppet/file_bucket/dipper.rb +1 -2
  50. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  51. data/lib/puppet/file_system/uniquefile.rb +2 -2
  52. data/lib/puppet/forge.rb +6 -0
  53. data/lib/puppet/functions.rb +70 -88
  54. data/lib/puppet/functions/all.rb +6 -2
  55. data/lib/puppet/functions/annotate.rb +1 -1
  56. data/lib/puppet/functions/any.rb +7 -3
  57. data/lib/puppet/functions/contain.rb +6 -0
  58. data/lib/puppet/functions/convert_to.rb +32 -0
  59. data/lib/puppet/functions/defined.rb +0 -3
  60. data/lib/puppet/functions/each.rb +10 -6
  61. data/lib/puppet/functions/filter.rb +16 -10
  62. data/lib/puppet/functions/find_file.rb +0 -1
  63. data/lib/puppet/functions/include.rb +6 -0
  64. data/lib/puppet/functions/map.rb +12 -9
  65. data/lib/puppet/functions/module_directory.rb +41 -0
  66. data/lib/puppet/functions/new.rb +1 -4
  67. data/lib/puppet/functions/regsubst.rb +1 -1
  68. data/lib/puppet/functions/require.rb +6 -0
  69. data/lib/puppet/generate/type.rb +1 -1
  70. data/lib/puppet/gettext/config.rb +2 -2
  71. data/lib/puppet/gettext/stubs.rb +1 -1
  72. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  73. data/lib/puppet/indirector/file_bucket_file/file.rb +6 -2
  74. data/lib/puppet/indirector/file_server.rb +1 -1
  75. data/lib/puppet/indirector/node/ldap.rb +19 -3
  76. data/lib/puppet/indirector/request.rb +10 -6
  77. data/lib/puppet/indirector/rest.rb +11 -12
  78. data/lib/puppet/info_service/class_information_service.rb +1 -1
  79. data/lib/puppet/interface/action.rb +11 -0
  80. data/lib/puppet/interface/action_builder.rb +8 -0
  81. data/lib/puppet/interface/option_manager.rb +1 -1
  82. data/lib/puppet/loaders.rb +2 -0
  83. data/lib/puppet/module.rb +6 -2
  84. data/lib/puppet/module_tool/applications/builder.rb +4 -0
  85. data/lib/puppet/module_tool/applications/installer.rb +3 -0
  86. data/lib/puppet/module_tool/applications/uninstaller.rb +3 -0
  87. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  88. data/lib/puppet/module_tool/applications/upgrader.rb +3 -0
  89. data/lib/puppet/module_tool/installed_modules.rb +1 -1
  90. data/lib/puppet/module_tool/metadata.rb +0 -1
  91. data/lib/puppet/network/authstore.rb +1 -1
  92. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  93. data/lib/puppet/network/http/connection.rb +1 -9
  94. data/lib/puppet/network/http/factory.rb +0 -3
  95. data/lib/puppet/network/http/webrick.rb +1 -0
  96. data/lib/puppet/network/rights.rb +1 -1
  97. data/lib/puppet/node.rb +53 -0
  98. data/lib/puppet/node/environment.rb +1 -1
  99. data/lib/puppet/parameter/boolean.rb +1 -1
  100. data/lib/puppet/parser.rb +1 -0
  101. data/lib/puppet/parser/abstract_compiler.rb +36 -0
  102. data/lib/puppet/parser/ast/branch.rb +1 -1
  103. data/lib/puppet/parser/ast/pops_bridge.rb +8 -52
  104. data/lib/puppet/parser/compiler.rb +4 -54
  105. data/lib/puppet/parser/functions.rb +0 -1
  106. data/lib/puppet/parser/functions/create_resources.rb +6 -0
  107. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -2
  108. data/lib/puppet/parser/functions/inline_template.rb +6 -0
  109. data/lib/puppet/parser/functions/new.rb +47 -32
  110. data/lib/puppet/parser/functions/realize.rb +6 -0
  111. data/lib/puppet/parser/functions/return.rb +1 -22
  112. data/lib/puppet/parser/functions/reverse_each.rb +1 -1
  113. data/lib/puppet/parser/functions/scanf.rb +1 -1
  114. data/lib/puppet/parser/functions/sha256.rb +5 -0
  115. data/lib/puppet/parser/functions/tag.rb +6 -0
  116. data/lib/puppet/parser/functions/tagged.rb +6 -0
  117. data/lib/puppet/parser/functions/template.rb +5 -0
  118. data/lib/puppet/parser/scope.rb +28 -4
  119. data/lib/puppet/parser/script_compiler.rb +118 -0
  120. data/lib/puppet/parser/type_loader.rb +1 -1
  121. data/lib/puppet/pops.rb +1 -1
  122. data/lib/puppet/pops/evaluator/access_operator.rb +38 -4
  123. data/lib/puppet/pops/evaluator/closure.rb +12 -4
  124. data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
  125. data/lib/puppet/pops/evaluator/epp_evaluator.rb +13 -0
  126. data/lib/puppet/pops/evaluator/evaluator_impl.rb +38 -10
  127. data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
  128. data/lib/puppet/pops/evaluator/runtime3_converter.rb +1 -1
  129. data/lib/puppet/pops/evaluator/runtime3_support.rb +2 -3
  130. data/lib/puppet/pops/functions/dispatch.rb +6 -5
  131. data/lib/puppet/pops/functions/function.rb +2 -2
  132. data/lib/puppet/pops/issues.rb +34 -2
  133. data/lib/puppet/pops/loader/base_loader.rb +10 -0
  134. data/lib/puppet/pops/loader/dependency_loader.rb +7 -0
  135. data/lib/puppet/pops/loader/loader.rb +21 -2
  136. data/lib/puppet/pops/loader/loader_paths.rb +180 -30
  137. data/lib/puppet/pops/loader/module_loaders.rb +202 -33
  138. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +84 -0
  139. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -9
  140. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +40 -0
  141. data/lib/puppet/pops/loader/runtime3_type_loader.rb +6 -1
  142. data/lib/puppet/pops/loader/static_loader.rb +23 -8
  143. data/lib/puppet/pops/loader/task_instantiator.rb +69 -0
  144. data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -0
  145. data/lib/puppet/pops/loaders.rb +122 -11
  146. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  147. data/lib/puppet/pops/lookup/interpolation.rb +1 -1
  148. data/lib/puppet/pops/lookup/lookup_adapter.rb +0 -1
  149. data/lib/puppet/pops/model/ast.pp +3 -0
  150. data/lib/puppet/pops/model/ast.rb +34 -1
  151. data/lib/puppet/pops/model/factory.rb +30 -3
  152. data/lib/puppet/pops/model/model_label_provider.rb +1 -0
  153. data/lib/puppet/pops/model/model_tree_dumper.rb +12 -1
  154. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  155. data/lib/puppet/pops/parser/code_merger.rb +2 -2
  156. data/lib/puppet/pops/parser/egrammar.ra +44 -15
  157. data/lib/puppet/pops/parser/eparser.rb +1687 -1571
  158. data/lib/puppet/pops/parser/epp_support.rb +1 -3
  159. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  160. data/lib/puppet/pops/parser/interpolation_support.rb +2 -2
  161. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  162. data/lib/puppet/pops/parser/lexer_support.rb +2 -2
  163. data/lib/puppet/pops/parser/locatable.rb +1 -1
  164. data/lib/puppet/pops/parser/locator.rb +7 -13
  165. data/lib/puppet/pops/parser/parser_support.rb +3 -3
  166. data/lib/puppet/pops/parser/slurp_support.rb +0 -3
  167. data/lib/puppet/pops/pcore.rb +45 -0
  168. data/lib/puppet/pops/resource/param.rb +1 -1
  169. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  170. data/lib/puppet/pops/serialization/abstract_reader.rb +4 -0
  171. data/lib/puppet/pops/serialization/abstract_writer.rb +6 -0
  172. data/lib/puppet/pops/serialization/extension.rb +1 -0
  173. data/lib/puppet/pops/serialization/from_data_converter.rb +64 -10
  174. data/lib/puppet/pops/serialization/json_path.rb +2 -1
  175. data/lib/puppet/pops/serialization/object.rb +3 -4
  176. data/lib/puppet/pops/serialization/serializer.rb +2 -1
  177. data/lib/puppet/pops/serialization/to_data_converter.rb +7 -3
  178. data/lib/puppet/pops/time/timespan.rb +1 -1
  179. data/lib/puppet/pops/types/iterable.rb +38 -9
  180. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  181. data/lib/puppet/pops/types/p_meta_type.rb +4 -0
  182. data/lib/puppet/pops/types/p_object_type.rb +146 -14
  183. data/lib/puppet/pops/types/p_object_type_extension.rb +218 -0
  184. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +0 -1
  185. data/lib/puppet/pops/types/p_sem_ver_type.rb +10 -2
  186. data/lib/puppet/pops/types/p_type_set_type.rb +0 -1
  187. data/lib/puppet/pops/types/p_uri_type.rb +190 -0
  188. data/lib/puppet/pops/types/puppet_object.rb +15 -1
  189. data/lib/puppet/pops/types/ruby_generator.rb +46 -54
  190. data/lib/puppet/pops/types/string_converter.rb +22 -1
  191. data/lib/puppet/pops/types/type_acceptor.rb +1 -1
  192. data/lib/puppet/pops/types/type_calculator.rb +13 -4
  193. data/lib/puppet/pops/types/type_factory.rb +29 -5
  194. data/lib/puppet/pops/types/type_formatter.rb +67 -4
  195. data/lib/puppet/pops/types/type_parser.rb +92 -4
  196. data/lib/puppet/pops/types/type_with_members.rb +43 -0
  197. data/lib/puppet/pops/types/types.rb +212 -80
  198. data/lib/puppet/pops/validation/checker4_0.rb +10 -6
  199. data/lib/puppet/pops/validation/tasks_checker.rb +60 -0
  200. data/lib/puppet/pops/validation/validator_factory_4_0.rb +6 -1
  201. data/lib/puppet/property.rb +1 -1
  202. data/lib/puppet/provider.rb +18 -8
  203. data/lib/puppet/provider/augeas/augeas.rb +3 -4
  204. data/lib/puppet/provider/exec.rb +0 -2
  205. data/lib/puppet/provider/group/groupadd.rb +25 -1
  206. data/lib/puppet/provider/group/windows_adsi.rb +7 -4
  207. data/lib/puppet/provider/mount.rb +25 -8
  208. data/lib/puppet/provider/nameservice.rb +9 -4
  209. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  210. data/lib/puppet/provider/nameservice/objectadd.rb +13 -24
  211. data/lib/puppet/provider/nameservice/pw.rb +14 -14
  212. data/lib/puppet/provider/package/appdmg.rb +0 -1
  213. data/lib/puppet/provider/package/apple.rb +0 -1
  214. data/lib/puppet/provider/package/gem.rb +2 -2
  215. data/lib/puppet/provider/package/macports.rb +2 -2
  216. data/lib/puppet/provider/package/pkg.rb +3 -0
  217. data/lib/puppet/provider/package/pkgdmg.rb +0 -1
  218. data/lib/puppet/provider/package/portage.rb +0 -1
  219. data/lib/puppet/provider/package/yum.rb +23 -8
  220. data/lib/puppet/provider/package/zypper.rb +2 -2
  221. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +2 -2
  222. data/lib/puppet/provider/service/init.rb +1 -0
  223. data/lib/puppet/provider/service/launchd.rb +6 -7
  224. data/lib/puppet/provider/service/redhat.rb +3 -2
  225. data/lib/puppet/provider/service/systemd.rb +2 -2
  226. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  227. data/lib/puppet/provider/user/aix.rb +3 -2
  228. data/lib/puppet/provider/user/openbsd.rb +1 -1
  229. data/lib/puppet/provider/user/pw.rb +1 -1
  230. data/lib/puppet/provider/user/user_role_add.rb +7 -1
  231. data/lib/puppet/provider/user/useradd.rb +36 -6
  232. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  233. data/lib/puppet/provider/yumrepo/inifile.rb +2 -4
  234. data/lib/puppet/provider/zfs/zfs.rb +23 -3
  235. data/lib/puppet/provider/zpool/zpool.rb +1 -1
  236. data/lib/puppet/reference/configuration.rb +0 -2
  237. data/lib/puppet/reference/type.rb +0 -1
  238. data/lib/puppet/resource.rb +1 -2
  239. data/lib/puppet/resource/catalog.rb +1 -1
  240. data/lib/puppet/resource/status.rb +0 -1
  241. data/lib/puppet/resource/type.rb +4 -4
  242. data/lib/puppet/resource/type_collection.rb +1 -1
  243. data/lib/puppet/settings/base_setting.rb +1 -1
  244. data/lib/puppet/settings/environment_conf.rb +0 -1
  245. data/lib/puppet/settings/ini_file.rb +66 -12
  246. data/lib/puppet/ssl/certificate_authority.rb +1 -1
  247. data/lib/puppet/ssl/certificate_request.rb +2 -2
  248. data/lib/puppet/ssl/certificate_revocation_list.rb +2 -1
  249. data/lib/puppet/ssl/certificate_signer.rb +11 -0
  250. data/lib/puppet/ssl/host.rb +2 -2
  251. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  252. data/lib/puppet/transaction.rb +37 -14
  253. data/lib/puppet/transaction/report.rb +3 -1
  254. data/lib/puppet/type.rb +17 -4
  255. data/lib/puppet/type/cron.rb +1 -1
  256. data/lib/puppet/type/exec.rb +5 -4
  257. data/lib/puppet/type/file.rb +3 -3
  258. data/lib/puppet/type/file/checksum.rb +7 -1
  259. data/lib/puppet/type/file/checksum_value.rb +4 -3
  260. data/lib/puppet/type/group.rb +3 -0
  261. data/lib/puppet/type/k5login.rb +101 -0
  262. data/lib/puppet/type/macauthorization.rb +1 -1
  263. data/lib/puppet/type/mount.rb +6 -2
  264. data/lib/puppet/type/tidy.rb +6 -4
  265. data/lib/puppet/type/user.rb +26 -39
  266. data/lib/puppet/type/yumrepo.rb +9 -0
  267. data/lib/puppet/type/zfs.rb +4 -0
  268. data/lib/puppet/util.rb +8 -15
  269. data/lib/puppet/util/character_encoding.rb +2 -2
  270. data/lib/puppet/util/checksums.rb +82 -1
  271. data/lib/puppet/util/errors.rb +0 -2
  272. data/lib/puppet/util/filetype.rb +2 -2
  273. data/lib/puppet/util/json_lockfile.rb +1 -1
  274. data/lib/puppet/util/log.rb +1 -1
  275. data/lib/puppet/util/log/destinations.rb +10 -1
  276. data/lib/puppet/util/monkey_patches.rb +1 -1
  277. data/lib/puppet/util/network_device/cisco/device.rb +5 -5
  278. data/lib/puppet/util/network_device/config.rb +2 -3
  279. data/lib/puppet/util/platform.rb +13 -0
  280. data/lib/puppet/util/plist.rb +4 -4
  281. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  282. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  283. data/lib/puppet/util/reference.rb +8 -1
  284. data/lib/puppet/util/windows/adsi.rb +18 -15
  285. data/lib/puppet/util/windows/principal.rb +6 -7
  286. data/lib/puppet/util/windows/process.rb +1 -1
  287. data/lib/puppet/util/windows/registry.rb +2 -2
  288. data/lib/puppet/util/windows/sid.rb +7 -62
  289. data/lib/puppet/vendor/deep_merge/README.md +2 -2
  290. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +18 -18
  291. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +2 -2
  292. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +5 -5
  293. data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +1 -1
  294. data/lib/puppet/version.rb +1 -1
  295. data/lib/puppet_pal.rb +874 -0
  296. data/locales/ja/puppet.po +140 -163
  297. data/locales/puppet.pot +940 -597
  298. data/man/man5/puppet.conf.5 +16 -91
  299. data/man/man8/puppet-agent.8 +2 -6
  300. data/man/man8/puppet-apply.8 +2 -2
  301. data/man/man8/puppet-ca.8 +1 -1
  302. data/man/man8/puppet-catalog.8 +1 -1
  303. data/man/man8/puppet-cert.8 +1 -1
  304. data/man/man8/puppet-certificate.8 +1 -1
  305. data/man/man8/puppet-certificate_request.8 +1 -1
  306. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  307. data/man/man8/puppet-config.8 +1 -1
  308. data/man/man8/puppet-describe.8 +1 -1
  309. data/man/man8/puppet-device.8 +11 -33
  310. data/man/man8/puppet-doc.8 +1 -1
  311. data/man/man8/puppet-epp.8 +1 -1
  312. data/man/man8/puppet-facts.8 +1 -1
  313. data/man/man8/puppet-filebucket.8 +4 -22
  314. data/man/man8/puppet-generate.8 +1 -1
  315. data/man/man8/puppet-help.8 +1 -1
  316. data/man/man8/puppet-key.8 +1 -1
  317. data/man/man8/puppet-lookup.8 +1 -1
  318. data/man/man8/puppet-man.8 +1 -1
  319. data/man/man8/puppet-master.8 +1 -1
  320. data/man/man8/puppet-module.8 +2 -11
  321. data/man/man8/puppet-node.8 +1 -1
  322. data/man/man8/puppet-parser.8 +1 -1
  323. data/man/man8/puppet-plugin.8 +1 -1
  324. data/man/man8/puppet-report.8 +1 -1
  325. data/man/man8/puppet-resource.8 +1 -1
  326. data/man/man8/puppet-status.8 +1 -1
  327. data/man/man8/puppet.8 +2 -2
  328. data/spec/integration/application/lookup_spec.rb +0 -21
  329. data/spec/integration/parser/compiler_spec.rb +18 -0
  330. data/spec/integration/parser/script_compiler_spec.rb +113 -0
  331. data/spec/integration/provider/mount_spec.rb +2 -0
  332. data/spec/integration/type/file_spec.rb +11 -3
  333. data/spec/integration/util/windows/adsi_spec.rb +1 -86
  334. data/spec/integration/util/windows/principal_spec.rb +1 -10
  335. data/spec/shared_contexts/checksum.rb +4 -1
  336. data/spec/shared_contexts/digests.rb +46 -1
  337. data/spec/shared_contexts/types_setup.rb +8 -3
  338. data/spec/unit/agent_spec.rb +2 -2
  339. data/spec/unit/application/cert_spec.rb +5 -17
  340. data/spec/unit/application/device_spec.rb +2 -96
  341. data/spec/unit/application/filebucket_spec.rb +18 -4
  342. data/spec/unit/configurer/plugin_handler_spec.rb +5 -32
  343. data/spec/unit/configurer_spec.rb +3 -3
  344. data/spec/unit/datatypes_spec.rb +304 -0
  345. data/spec/unit/defaults_spec.rb +41 -20
  346. data/spec/unit/face/config_spec.rb +46 -1
  347. data/spec/unit/face/epp_face_spec.rb +7 -3
  348. data/spec/unit/face/module/search_spec.rb +11 -0
  349. data/spec/unit/face/parser_spec.rb +2 -2
  350. data/spec/unit/file_bucket/dipper_spec.rb +12 -1
  351. data/spec/unit/forge/module_release_spec.rb +70 -0
  352. data/spec/unit/functions/break_spec.rb +34 -2
  353. data/spec/unit/functions/contain_spec.rb +1 -0
  354. data/spec/unit/functions/convert_to_spec.rb +22 -0
  355. data/spec/unit/functions/epp_spec.rb +5 -0
  356. data/spec/unit/functions/include_spec.rb +15 -0
  357. data/spec/unit/functions/module_directory_spec.rb +43 -0
  358. data/spec/unit/functions/new_spec.rb +14 -14
  359. data/spec/unit/functions/require_spec.rb +2 -0
  360. data/spec/unit/functions/shared.rb +12 -0
  361. data/spec/unit/functions/step_spec.rb +1 -1
  362. data/spec/unit/functions4_spec.rb +49 -4
  363. data/spec/unit/indirector/catalog/compiler_spec.rb +3 -3
  364. data/spec/unit/indirector/file_bucket_file/file_spec.rb +148 -94
  365. data/spec/unit/indirector/node/ldap_spec.rb +15 -12
  366. data/spec/unit/indirector/rest_spec.rb +0 -43
  367. data/spec/unit/interface/action_spec.rb +33 -0
  368. data/spec/unit/module_tool/applications/builder_spec.rb +7 -0
  369. data/spec/unit/module_tool/applications/installer_spec.rb +8 -0
  370. data/spec/unit/module_tool/applications/uninstaller_spec.rb +8 -0
  371. data/spec/unit/module_tool/applications/upgrader_spec.rb +6 -0
  372. data/spec/unit/network/http/connection_spec.rb +1 -1
  373. data/spec/unit/network/http/factory_spec.rb +28 -35
  374. data/spec/unit/parser/compiler_spec.rb +0 -8
  375. data/spec/unit/parser/environment_compiler_spec.rb +36 -0
  376. data/spec/unit/parser/functions/create_resources_spec.rb +9 -0
  377. data/spec/unit/parser/functions/inline_template_spec.rb +7 -0
  378. data/spec/unit/parser/functions/realize_spec.rb +9 -0
  379. data/spec/unit/parser/functions/tag_spec.rb +7 -0
  380. data/spec/unit/parser/functions/tagged_spec.rb +25 -0
  381. data/spec/unit/parser/functions/template_spec.rb +8 -0
  382. data/spec/unit/parser/scope_spec.rb +19 -0
  383. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -1
  384. data/spec/unit/pops/loaders/loader_spec.rb +516 -0
  385. data/spec/unit/pops/loaders/loaders_spec.rb +11 -0
  386. data/spec/unit/pops/loaders/module_loaders_spec.rb +43 -0
  387. data/spec/unit/pops/loaders/static_loader_spec.rb +15 -7
  388. data/spec/unit/pops/model/model_spec.rb +5 -0
  389. data/spec/unit/pops/parser/lexer2_spec.rb +15 -0
  390. data/spec/unit/pops/parser/locator_spec.rb +20 -0
  391. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +33 -0
  392. data/spec/unit/pops/parser/parse_calls_spec.rb +28 -0
  393. data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -0
  394. data/spec/unit/pops/parser/parse_plan_spec.rb +48 -0
  395. data/spec/unit/pops/serialization/packer_spec.rb +8 -0
  396. data/spec/unit/pops/serialization/serialization_spec.rb +30 -0
  397. data/spec/unit/pops/serialization/to_from_hr_spec.rb +31 -0
  398. data/spec/unit/pops/types/error_spec.rb +207 -0
  399. data/spec/unit/pops/types/p_init_type_spec.rb +98 -0
  400. data/spec/unit/pops/types/p_object_type_spec.rb +275 -10
  401. data/spec/unit/pops/types/p_uri_type_spec.rb +191 -0
  402. data/spec/unit/pops/types/ruby_generator_spec.rb +82 -44
  403. data/spec/unit/pops/types/task_spec.rb +353 -0
  404. data/spec/unit/pops/types/type_calculator_spec.rb +76 -5
  405. data/spec/unit/pops/types/type_formatter_spec.rb +31 -13
  406. data/spec/unit/pops/types/type_parser_spec.rb +13 -1
  407. data/spec/unit/pops/types/types_spec.rb +60 -0
  408. data/spec/unit/pops/validator/validator_spec.rb +76 -0
  409. data/spec/unit/provider/group/groupadd_spec.rb +77 -1
  410. data/spec/unit/provider/group/pw_spec.rb +4 -4
  411. data/spec/unit/provider/group/windows_adsi_spec.rb +22 -79
  412. data/spec/unit/provider/mount_spec.rb +18 -5
  413. data/spec/unit/provider/nameservice_spec.rb +5 -5
  414. data/spec/unit/provider/package/dnf_spec.rb +2 -2
  415. data/spec/unit/provider/package/gem_spec.rb +1 -1
  416. data/spec/unit/provider/package/pkg_spec.rb +3 -0
  417. data/spec/unit/provider/package/yum_spec.rb +40 -0
  418. data/spec/unit/provider/service/launchd_spec.rb +2 -1
  419. data/spec/unit/provider/service/redhat_spec.rb +5 -0
  420. data/spec/unit/provider/service/systemd_spec.rb +1 -1
  421. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  422. data/spec/unit/provider/user/openbsd_spec.rb +2 -2
  423. data/spec/unit/provider/user/pw_spec.rb +14 -14
  424. data/spec/unit/provider/user/user_role_add_spec.rb +19 -2
  425. data/spec/unit/provider/user/useradd_spec.rb +188 -22
  426. data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
  427. data/spec/unit/provider/zfs/zfs_spec.rb +55 -1
  428. data/spec/unit/provider_spec.rb +48 -0
  429. data/spec/unit/puppet_pal_2pec.rb +1005 -0
  430. data/spec/unit/puppet_pal_spec.rb +11 -0
  431. data/spec/unit/settings/ini_file_spec.rb +313 -2
  432. data/spec/unit/ssl/certificate_request_spec.rb +42 -1
  433. data/spec/unit/ssl/certificate_revocation_list_spec.rb +2 -1
  434. data/spec/unit/transaction/report_spec.rb +1 -0
  435. data/spec/unit/transaction_spec.rb +112 -21
  436. data/spec/unit/type/file/checksum_spec.rb +20 -0
  437. data/spec/unit/type/file_spec.rb +8 -0
  438. data/spec/unit/type/group_spec.rb +8 -0
  439. data/spec/unit/type/k5login_spec.rb +22 -1
  440. data/spec/unit/type/scheduled_task_spec.rb +15 -0
  441. data/spec/unit/type/user_spec.rb +11 -1
  442. data/spec/unit/type/yumrepo_spec.rb +5 -0
  443. data/spec/unit/util/checksums_spec.rb +3 -3
  444. data/spec/unit/util/log/destinations_spec.rb +14 -0
  445. data/spec/unit/util/network_device/cisco/device_spec.rb +1 -1
  446. data/spec/unit/util/plist_spec.rb +3 -3
  447. data/spec/unit/util/windows/adsi_spec.rb +27 -31
  448. data/spec/unit/util/windows/sid_spec.rb +15 -86
  449. data/spec/unit/util_spec.rb +17 -3
  450. data/tasks/manpages.rake +1 -1
  451. metadata +216 -178
  452. data/lib/puppet/bindings.rb +0 -148
  453. data/lib/puppet/configurer/downloader_factory.rb +0 -44
  454. data/spec/unit/configurer/downloader_factory_spec.rb +0 -129
@@ -218,7 +218,7 @@ class Puppet::Transaction::Report
218
218
  @external_times ||= {}
219
219
  @host = Puppet[:node_name_value]
220
220
  @time = Time.now
221
- @report_format = 7
221
+ @report_format = 8
222
222
  @puppet_version = Puppet.version
223
223
  @configuration_version = configuration_version
224
224
  @transaction_uuid = transaction_uuid
@@ -243,6 +243,7 @@ class Puppet::Transaction::Report
243
243
  @transaction_uuid = data['transaction_uuid']
244
244
  @environment = data['environment']
245
245
  @status = data['status']
246
+ @transaction_completed = data['transaction_completed']
246
247
  @noop = data['noop']
247
248
  @noop_pending = data['noop_pending']
248
249
  @host = data['host']
@@ -304,6 +305,7 @@ class Puppet::Transaction::Report
304
305
  'report_format' => @report_format,
305
306
  'puppet_version' => @puppet_version,
306
307
  'status' => @status,
308
+ 'transaction_completed' => @transaction_completed,
307
309
  'noop' => @noop,
308
310
  'noop_pending' => @noop_pending,
309
311
  'environment' => @environment,
@@ -1336,9 +1336,9 @@ class Type
1336
1336
 
1337
1337
  def properties_to_audit(list)
1338
1338
  if !list.kind_of?(Array) && list.to_sym == :all
1339
- list = all_properties
1339
+ all_properties
1340
1340
  else
1341
- list = Array(list).collect { |p| p.to_sym }
1341
+ Array(list).collect { |p| p.to_sym }
1342
1342
  end
1343
1343
  end
1344
1344
  end
@@ -1538,12 +1538,25 @@ class Type
1538
1538
  :event => self.class.events,
1539
1539
  :callback => method
1540
1540
  }
1541
- self.debug { "subscribes to #{related_resource.ref}" }
1542
1541
  else
1543
1542
  # If there's no callback, there's no point in even adding
1544
1543
  # a label.
1545
1544
  subargs = nil
1546
- self.debug { "subscribes to #{related_resource.ref}" }
1545
+ end
1546
+
1547
+ ## Corrected syntax of debug statement to reflect the way this was called.
1548
+ # i.e. before, after, subscribe, notify
1549
+ self.debug do
1550
+ relation = case self.class.name
1551
+ when "subscribe"
1552
+ "subscribes"
1553
+ when "notify"
1554
+ "notifies"
1555
+ else
1556
+ self.class.name
1557
+ end
1558
+
1559
+ "#{relation} to #{related_resource.ref}"
1547
1560
  end
1548
1561
 
1549
1562
  Puppet::Relationship.new(source, target, subargs)
@@ -12,7 +12,7 @@ Puppet::Type.newtype(:cron) do
12
12
  by Puppet with cron resources.
13
13
 
14
14
  If an existing crontab entry happens to match the scheduling and command of a
15
- cron resource that has never been synched, Puppet will defer to the existing
15
+ cron resource that has never been synced, Puppet will defer to the existing
16
16
  crontab entry and will not create a new entry tagged with the `# Puppet Name: `
17
17
  comment.
18
18
 
@@ -256,10 +256,11 @@ module Puppet
256
256
  end
257
257
 
258
258
  newparam(:environment) do
259
- desc "Any additional environment variables you want to set for a
260
- command. Note that if you use this to set PATH, it will override
261
- the `path` attribute. Multiple environment variables should be
262
- specified as an array."
259
+ desc "An array of any additional environment variables you want to set for a
260
+ command. e.g.: `[ 'HOME=/root', 'MAIL=root@example.com']`
261
+ Note that if you use this to set PATH, it will override the `path`
262
+ attribute. Multiple environment variables should be specified as an
263
+ array."
263
264
 
264
265
  validate do |values|
265
266
  values = [values] unless values.is_a? Array
@@ -829,11 +829,11 @@ Puppet::Type.newtype(:file) do
829
829
 
830
830
  @stat = begin
831
831
  Puppet::FileSystem.send(method, self[:path])
832
- rescue Errno::ENOENT => error
832
+ rescue Errno::ENOENT
833
833
  nil
834
- rescue Errno::ENOTDIR => error
834
+ rescue Errno::ENOTDIR
835
835
  nil
836
- rescue Errno::EACCES => error
836
+ rescue Errno::EACCES
837
837
  warning _("Could not stat; permission denied")
838
838
  nil
839
839
  end
@@ -9,12 +9,18 @@ Puppet::Type.type(:file).newparam(:checksum) do
9
9
 
10
10
  The default checksum type is md5."
11
11
 
12
- newvalues "md5", "md5lite", "sha256", "sha256lite", "mtime", "ctime", "none"
12
+ newvalues "md5", "md5lite", "sha224", "sha256", "sha256lite", "sha384", "sha512", "mtime", "ctime", "none"
13
13
 
14
14
  defaultto do
15
15
  Puppet[:digest_algorithm].to_sym
16
16
  end
17
17
 
18
+ validate do |value|
19
+ if Puppet::Util::Platform.fips_enabled? && (value == :md5 || value == :md5lite)
20
+ raise ArgumentError, _("MD5 is not supported in FIPS mode")
21
+ end
22
+ end
23
+
18
24
  def sum(content)
19
25
  content = content.is_a?(Puppet::Pops::Types::PBinaryType::Binary) ? content.binary_buffer : content
20
26
  type = digest_algorithm()
@@ -6,9 +6,10 @@ module Puppet
6
6
  include Puppet::Util::Checksums
7
7
  include Puppet::DataSync
8
8
 
9
- desc "The checksum of the source contents. Only md5 and sha256 are supported when
10
- specifying this parameter. If this parameter is set, source_permissions will be
11
- assumed to be false, and ownership and permissions will not be read from source."
9
+ desc "The checksum of the source contents. Only md5, sha256, sha224, sha384 and sha512
10
+ are supported when specifying this parameter. If this parameter is set,
11
+ source_permissions will be assumed to be false, and ownership and permissions
12
+ will not be read from source."
12
13
 
13
14
  def insync?(is)
14
15
  # If checksum_value and source are specified, manage the file contents.
@@ -36,6 +36,9 @@ module Puppet
36
36
  newvalue(:absent) do
37
37
  provider.delete
38
38
  end
39
+
40
+ defaultto :present
41
+
39
42
  end
40
43
 
41
44
  newproperty(:gid) do
@@ -1,5 +1,6 @@
1
1
  # Plug-in type for handling k5login files
2
2
  require 'puppet/util'
3
+ require 'puppet/util/selinux'
3
4
 
4
5
  Puppet::Type.newtype(:k5login) do
5
6
  @doc = "Manage the `.k5login` file for a user. Specify the full path to
@@ -31,10 +32,60 @@ Puppet::Type.newtype(:k5login) do
31
32
  defaultto { "644" }
32
33
  end
33
34
 
35
+ # To manage the selinux user of the file
36
+ newproperty(:seluser) do
37
+ desc "What the SELinux user component of the context of the file should be.
38
+ Any valid SELinux user component is accepted. For example `user_u`.
39
+ If not specified it defaults to the value returned by matchpathcon for
40
+ the file, if any exists. Only valid on systems with SELinux support
41
+ enabled."
42
+
43
+ defaultto { "user_u" }
44
+ end
45
+
46
+ # To manage the selinux role of the file
47
+ newproperty(:selrole) do
48
+ desc "What the SELinux role component of the context of the file should be.
49
+ Any valid SELinux role component is accepted. For example `role_r`.
50
+ If not specified it defaults to the value returned by matchpathcon for
51
+ the file, if any exists. Only valid on systems with SELinux support
52
+ enabled."
53
+
54
+ defaultto { "object_r" }
55
+ end
56
+
57
+ # To manage the selinux type of the file
58
+ newproperty(:seltype) do
59
+ desc "What the SELinux type component of the context of the file should be.
60
+ Any valid SELinux type component is accepted. For example `tmp_t`.
61
+ If not specified it defaults to the value returned by matchpathcon for
62
+ the file, if any exists. Only valid on systems with SELinux support
63
+ enabled."
64
+
65
+ # to my knowledge, `krb5_home_t` is the only valid type for .k5login
66
+ defaultto { "krb5_home_t" }
67
+ end
68
+
69
+ # To manage the selinux range of the file
70
+ newproperty(:selrange) do
71
+ desc "What the SELinux range component of the context of the file should be.
72
+ Any valid SELinux range component is accepted. For example `s0` or
73
+ `SystemHigh`. If not specified it defaults to the value returned by
74
+ matchpathcon for the file, if any exists. Only valid on systems with
75
+ SELinux support enabled and that have support for MCS (Multi-Category
76
+ Security)."
77
+
78
+ defaultto { "s0" }
79
+ end
80
+
81
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
82
+
34
83
  provide(:k5login) do
35
84
  desc "The k5login provider is the only provider for the k5login
36
85
  type."
37
86
 
87
+ include Puppet::Util::SELinux
88
+
38
89
  # Does this file exist?
39
90
  def exists?
40
91
  Puppet::FileSystem.exist?(@resource[:name])
@@ -78,6 +129,56 @@ Puppet::Type.newtype(:k5login) do
78
129
  File.chmod(Integer("0#{value}"), @resource[:name])
79
130
  end
80
131
 
132
+ # Set the file seluser
133
+ def seluser
134
+ if selinux_support?
135
+ context = get_selinux_current_context(@resource[:name])
136
+ return parse_selinux_context(:seluser, context)
137
+ end
138
+ end
139
+
140
+ def seluser=(value)
141
+ set_selinux_context(@resource[:name], value, :seluser)
142
+ end
143
+
144
+ # Set the file selrole
145
+ def selrole
146
+ if selinux_support?
147
+ context = get_selinux_current_context(@resource[:name])
148
+ return parse_selinux_context(:selrole, context)
149
+ end
150
+ end
151
+
152
+ # Set the file seltype
153
+ def selrole=(value)
154
+ set_selinux_context(@resource[:name], value, :selrole)
155
+ end
156
+
157
+ # Set the file seltype
158
+ def seltype
159
+ if selinux_support?
160
+ context = get_selinux_current_context(@resource[:name])
161
+ return parse_selinux_context(:seltype, context)
162
+ end
163
+ end
164
+
165
+ # Set the file selrange
166
+ def seltype=(value)
167
+ set_selinux_context(@resource[:name], value, :seltype)
168
+ end
169
+
170
+ # Set the file selrange
171
+ def selrange
172
+ if selinux_support?
173
+ context = get_selinux_current_context(@resource[:name])
174
+ return parse_selinux_context(:selrange, context)
175
+ end
176
+ end
177
+
178
+ def selrange=(value)
179
+ set_selinux_context(@resource[:name], value, :selrange)
180
+ end
181
+
81
182
  private
82
183
  def write(value)
83
184
  Puppet::Util.replace_file(@resource[:name], 0644) do |f|
@@ -1,7 +1,7 @@
1
1
  Puppet::Type.newtype(:macauthorization) do
2
2
 
3
3
  @doc = "Manage the Mac OS X authorization database. See the
4
- [Apple developer site](https://developer.apple.com/documentation/Security/Conceptual/Security_Overview/Security_Services/chapter_4_section_5.html)
4
+ [Apple developer site](https://developer.apple.com/library/content/documentation/Security/Conceptual/Security_Overview/AuthenticationAndAuthorization/AuthenticationAndAuthorization.html)
5
5
  for more information.
6
6
 
7
7
  Note that authorization store directives with hyphens in their names have
@@ -173,8 +173,12 @@ module Puppet
173
173
 
174
174
  newproperty(:options) do
175
175
  desc "A single string containing options for the mount, as they would
176
- appear in fstab. For many platforms this is a comma delimited string.
177
- Consult the fstab(5) man page for system-specific details."
176
+ appear in fstab on Linux. For many platforms this is a comma-delimited
177
+ string. Consult the fstab(5) man page for system-specific details.
178
+ AIX options other than dev, nodename, or vfs can be defined here. If
179
+ specified, AIX options of account, boot, check, free, mount, size,
180
+ type, vol, log, and quota must be ordered alphabetically at the end of
181
+ the list."
178
182
 
179
183
  validate do |value|
180
184
  raise Puppet::Error, _("options must not contain whitespace: %{value}") % { value: value } if value =~ /\s/
@@ -267,8 +267,10 @@ Puppet::Type.newtype(:tidy) do
267
267
  end
268
268
  found_files = files.find_all { |path| tidy?(path) }.collect { |path| mkfile(path) }
269
269
  result = found_files.each { |file| debug "Tidying #{file.ref}" }.sort { |a,b| b[:path] <=> a[:path] }
270
- #TRANSLATORS "Tidy" is a program name and should not be translated
271
- notice _("Tidying %{count} files") % { count: found_files.size }
270
+ if found_files.size > 0
271
+ #TRANSLATORS "Tidy" is a program name and should not be translated
272
+ notice _("Tidying %{count} files") % { count: found_files.size }
273
+ end
272
274
 
273
275
  # No need to worry about relationships if we don't have rmdirs; there won't be
274
276
  # any directories.
@@ -331,10 +333,10 @@ Puppet::Type.newtype(:tidy) do
331
333
  def stat(path)
332
334
  begin
333
335
  Puppet::FileSystem.lstat(path)
334
- rescue Errno::ENOENT => error
336
+ rescue Errno::ENOENT
335
337
  info _("File does not exist")
336
338
  return nil
337
- rescue Errno::EACCES => error
339
+ rescue Errno::EACCES
338
340
  #TRANSLATORS "stat" is a program name and should not be translated
339
341
  warning _("Could not stat; permission denied")
340
342
  return nil
@@ -212,44 +212,13 @@ module Puppet
212
212
  * OS X 10.8 and higher use salted SHA512 PBKDF2 hashes. When managing passwords
213
213
  on these systems, the `salt` and `iterations` attributes need to be specified as
214
214
  well as the password.
215
- * Windows passwords can be managed only in cleartext, because there is no Windows
216
- API for setting the password hash.
215
+ * Windows passwords can only be managed in cleartext, as there is no Windows API
216
+ for setting the password hash.
217
217
 
218
218
  [stdlib]: https://github.com/puppetlabs/puppetlabs-stdlib/
219
219
 
220
220
  Enclose any value that includes a dollar sign ($) in single quotes (') to avoid
221
- accidental variable interpolation.
222
-
223
- To redact passwords from reports to PuppetDB, use the `Sensitive` data type. For
224
- example, this resource protects the password:
225
-
226
- ```puppet
227
- user { 'foo':
228
- ensure => present,
229
- password => Sensitive("my secret password")
230
- }
231
- ```
232
-
233
- This results in the password being redacted from the report, as in the
234
- `previous_value`, `desired_value`, and `message` fields below.
235
-
236
- ```yaml
237
- events:
238
- - !ruby/object:Puppet::Transaction::Event
239
- audited: false
240
- property: password
241
- previous_value: "[redacted]"
242
- desired_value: "[redacted]"
243
- historical_value:
244
- message: changed [redacted] to [redacted]
245
- name: :password_changed
246
- status: success
247
- time: 2017-05-17 16:06:02.934398293 -07:00
248
- redacted: true
249
- corrective_change: false
250
- corrective_change: false
251
- ```
252
- }
221
+ accidental variable interpolation.}
253
222
 
254
223
  validate do |value|
255
224
  raise ArgumentError, _("Passwords cannot include ':'") if value.is_a?(String) and value.include?(":")
@@ -310,6 +279,25 @@ module Puppet
310
279
  end
311
280
  end
312
281
 
282
+ newproperty(:password_warn_days, :required_features => :manages_password_age) do
283
+ desc "The number of days before a password is going to expire (see the maximum password age) during which the user should be warned."
284
+
285
+ munge do |value|
286
+ case value
287
+ when String
288
+ Integer(value)
289
+ else
290
+ value
291
+ end
292
+ end
293
+
294
+ validate do |value|
295
+ if value.to_s !~ /^-?\d+$/
296
+ raise ArgumentError, "Password warning days must be provided as a number."
297
+ end
298
+ end
299
+ end
300
+
313
301
  newproperty(:groups, :parent => Puppet::Property::List) do
314
302
  desc "The groups to which the user belongs. The primary group should
315
303
  not be listed, and groups should be identified by name rather than by
@@ -418,10 +406,9 @@ module Puppet
418
406
  end
419
407
 
420
408
  newproperty(:expiry, :required_features => :manages_expiry) do
421
- desc "The expiry date for this user. Must be provided in
422
- a zero-padded YYYY-MM-DD format --- e.g. 2010-02-19.
423
- If you want to ensure the user account never expires,
424
- you can pass the special value `absent`."
409
+ desc "The expiry date for this user. Provide as either the special
410
+ value `absent` to ensure that the account never expires, or as
411
+ a zero-padded YYYY-MM-DD format -- for example, 2010-02-19."
425
412
 
426
413
  newvalues :absent
427
414
  newvalues /^\d{4}-\d{2}-\d{2}$/
@@ -785,7 +772,7 @@ module Puppet
785
772
  # the name is stored in the 4th capture of the regex
786
773
  name = $4
787
774
  if name.empty?
788
- key = $3.delete("\n")
775
+ $3.delete("\n")
789
776
  # If no comment is specified for this key, generate a unique internal
790
777
  # name. This uses the same rules as
791
778
  # provider/ssh_authorized_key/parsed (PUP-3357)
@@ -104,6 +104,15 @@ Puppet::Type.newtype(:yumrepo) do
104
104
  munge(&munge_yum_bool)
105
105
  end
106
106
 
107
+ newproperty(:payload_gpgcheck) do
108
+ desc "Whether to check the GPG signature of the packages payload.
109
+ #{YUM_BOOLEAN_DOC}
110
+ #{ABSENT_DOC}"
111
+
112
+ newvalues(YUM_BOOLEAN, :absent)
113
+ munge(&munge_yum_bool)
114
+ end
115
+
107
116
  newproperty(:repo_gpgcheck) do
108
117
  desc "Whether to check the GPG signature on repodata.
109
118
  #{YUM_BOOLEAN_DOC}
@@ -20,6 +20,10 @@ parent zfs instances, the zfs resource will autorequire them."
20
20
  desc "The aclmode property. Valid values are `discard`, `groupmask`, `passthrough`."
21
21
  end
22
22
 
23
+ newproperty(:acltype) do
24
+ desc "The acltype propery. Valid values are 'noacl' and 'posixacl'. Only supported on Linux."
25
+ end
26
+
23
27
  newproperty(:atime) do
24
28
  desc "The atime property. Valid values are `on`, `off`."
25
29
  end