puppet 5.4.0 → 5.5.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 (441) hide show
  1. data/Gemfile +3 -3
  2. data/MAINTAINERS +0 -19
  3. data/README.md +5 -5
  4. data/Rakefile +26 -0
  5. data/conf/auth.conf +5 -0
  6. data/ext/project_data.yaml +1 -0
  7. data/ext/regexp_nodes/regexp_nodes.rb +3 -4
  8. data/lib/puppet/application/apply.rb +1 -1
  9. data/lib/puppet/application/cert.rb +3 -1
  10. data/lib/puppet/application/device.rb +100 -13
  11. data/lib/puppet/application/facts.rb +5 -0
  12. data/lib/puppet/application/lookup.rb +12 -2
  13. data/lib/puppet/configurer.rb +37 -17
  14. data/lib/puppet/confine.rb +4 -1
  15. data/lib/puppet/datatypes.rb +1 -1
  16. data/lib/puppet/environments.rb +1 -1
  17. data/lib/puppet/error.rb +6 -3
  18. data/lib/puppet/external/dot.rb +0 -7
  19. data/lib/puppet/external/nagios/parser.rb +1 -1
  20. data/lib/puppet/face/config.rb +92 -10
  21. data/lib/puppet/face/epp.rb +31 -6
  22. data/lib/puppet/face/facts.rb +49 -0
  23. data/lib/puppet/face/help.rb +33 -35
  24. data/lib/puppet/face/help/action.erb +1 -1
  25. data/lib/puppet/face/help/face.erb +1 -1
  26. data/lib/puppet/face/man.rb +55 -12
  27. data/lib/puppet/face/parser.rb +30 -3
  28. data/lib/puppet/file_bucket/file.rb +0 -2
  29. data/lib/puppet/file_serving/base.rb +10 -10
  30. data/lib/puppet/forge.rb +3 -3
  31. data/lib/puppet/forge/errors.rb +3 -3
  32. data/lib/puppet/functions.rb +1 -3
  33. data/lib/puppet/functions/alert.rb +1 -1
  34. data/lib/puppet/functions/all.rb +6 -6
  35. data/lib/puppet/functions/annotate.rb +10 -10
  36. data/lib/puppet/functions/any.rb +6 -6
  37. data/lib/puppet/functions/assert_type.rb +4 -4
  38. data/lib/puppet/functions/binary_file.rb +14 -2
  39. data/lib/puppet/functions/break.rb +31 -2
  40. data/lib/puppet/functions/call.rb +4 -4
  41. data/lib/puppet/functions/contain.rb +19 -3
  42. data/lib/puppet/functions/convert_to.rb +6 -5
  43. data/lib/puppet/functions/crit.rb +1 -1
  44. data/lib/puppet/functions/debug.rb +1 -1
  45. data/lib/puppet/functions/defined.rb +11 -9
  46. data/lib/puppet/functions/dig.rb +26 -2
  47. data/lib/puppet/functions/each.rb +8 -8
  48. data/lib/puppet/functions/emerg.rb +1 -1
  49. data/lib/puppet/functions/empty.rb +79 -0
  50. data/lib/puppet/functions/err.rb +1 -1
  51. data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
  52. data/lib/puppet/functions/filter.rb +7 -7
  53. data/lib/puppet/functions/find_file.rb +15 -1
  54. data/lib/puppet/functions/flatten.rb +64 -0
  55. data/lib/puppet/functions/hiera.rb +6 -6
  56. data/lib/puppet/functions/hiera_array.rb +6 -6
  57. data/lib/puppet/functions/hiera_hash.rb +6 -6
  58. data/lib/puppet/functions/hiera_include.rb +8 -8
  59. data/lib/puppet/functions/include.rb +28 -2
  60. data/lib/puppet/functions/info.rb +1 -1
  61. data/lib/puppet/functions/inline_epp.rb +2 -2
  62. data/lib/puppet/functions/join.rb +56 -0
  63. data/lib/puppet/functions/json_data.rb +2 -2
  64. data/lib/puppet/functions/keys.rb +25 -0
  65. data/lib/puppet/functions/length.rb +44 -0
  66. data/lib/puppet/functions/lest.rb +39 -1
  67. data/lib/puppet/functions/lookup.rb +2 -1
  68. data/lib/puppet/functions/map.rb +10 -9
  69. data/lib/puppet/functions/match.rb +6 -6
  70. data/lib/puppet/functions/new.rb +995 -2
  71. data/lib/puppet/functions/next.rb +1 -1
  72. data/lib/puppet/functions/notice.rb +1 -1
  73. data/lib/puppet/functions/reduce.rb +6 -6
  74. data/lib/puppet/functions/regsubst.rb +9 -3
  75. data/lib/puppet/functions/require.rb +36 -2
  76. data/lib/puppet/functions/return.rb +1 -1
  77. data/lib/puppet/functions/reverse_each.rb +71 -2
  78. data/lib/puppet/functions/slice.rb +23 -9
  79. data/lib/puppet/functions/split.rb +12 -10
  80. data/lib/puppet/functions/step.rb +73 -1
  81. data/lib/puppet/functions/strftime.rb +176 -2
  82. data/lib/puppet/functions/then.rb +65 -2
  83. data/lib/puppet/functions/tree_each.rb +19 -19
  84. data/lib/puppet/functions/type.rb +42 -1
  85. data/lib/puppet/functions/unique.rb +13 -13
  86. data/lib/puppet/functions/unwrap.rb +8 -4
  87. data/lib/puppet/functions/values.rb +25 -0
  88. data/lib/puppet/functions/versioncmp.rb +1 -1
  89. data/lib/puppet/functions/warning.rb +1 -1
  90. data/lib/puppet/functions/with.rb +6 -4
  91. data/lib/puppet/functions/yaml_data.rb +3 -1
  92. data/lib/puppet/indirector/certificate_status/file.rb +1 -1
  93. data/lib/puppet/indirector/facts/facter.rb +1 -3
  94. data/lib/puppet/indirector/facts/rest.rb +21 -0
  95. data/lib/puppet/indirector/facts/yaml.rb +0 -4
  96. data/lib/puppet/indirector/rest.rb +2 -2
  97. data/lib/puppet/module.rb +3 -3
  98. data/lib/puppet/module/task.rb +2 -3
  99. data/lib/puppet/module_tool/applications/application.rb +4 -4
  100. data/lib/puppet/module_tool/applications/builder.rb +2 -2
  101. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  102. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  103. data/lib/puppet/module_tool/metadata.rb +3 -3
  104. data/lib/puppet/network/authconfig.rb +1 -1
  105. data/lib/puppet/network/format_support.rb +1 -1
  106. data/lib/puppet/network/formats.rb +5 -7
  107. data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
  108. data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
  109. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  110. data/lib/puppet/network/http/error.rb +3 -3
  111. data/lib/puppet/network/resolver.rb +1 -2
  112. data/lib/puppet/parser/compiler.rb +12 -5
  113. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
  114. data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
  115. data/lib/puppet/parser/functions/new.rb +31 -46
  116. data/lib/puppet/parser/parser_factory.rb +1 -1
  117. data/lib/puppet/parser/resource.rb +1 -1
  118. data/lib/puppet/parser/type_loader.rb +11 -11
  119. data/lib/puppet/pops/evaluator/closure.rb +1 -1
  120. data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
  121. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  122. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
  123. data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
  124. data/lib/puppet/pops/functions/dispatch.rb +1 -1
  125. data/lib/puppet/pops/issue_reporter.rb +18 -1
  126. data/lib/puppet/pops/issues.rb +6 -3
  127. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
  128. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
  129. data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
  130. data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
  131. data/lib/puppet/pops/loaders.rb +18 -7
  132. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  133. data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
  134. data/lib/puppet/pops/model/factory.rb +6 -3
  135. data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
  136. data/lib/puppet/pops/model/pn_transformer.rb +400 -0
  137. data/lib/puppet/pops/parser/egrammar.ra +1 -1
  138. data/lib/puppet/pops/parser/eparser.rb +1 -1
  139. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  140. data/lib/puppet/pops/parser/lexer_support.rb +3 -2
  141. data/lib/puppet/pops/parser/locator.rb +0 -2
  142. data/lib/puppet/pops/parser/pn_parser.rb +316 -0
  143. data/lib/puppet/pops/pcore.rb +17 -17
  144. data/lib/puppet/pops/pn.rb +236 -0
  145. data/lib/puppet/pops/serialization/json.rb +7 -7
  146. data/lib/puppet/pops/types/class_loader.rb +6 -3
  147. data/lib/puppet/pops/types/implementation_registry.rb +28 -35
  148. data/lib/puppet/pops/types/p_object_type.rb +3 -3
  149. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  150. data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
  151. data/lib/puppet/pops/types/ruby_generator.rb +3 -4
  152. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  153. data/lib/puppet/pops/types/type_factory.rb +0 -4
  154. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  155. data/lib/puppet/pops/types/type_parser.rb +14 -7
  156. data/lib/puppet/pops/types/types.rb +1 -1
  157. data/lib/puppet/pops/utils.rb +2 -2
  158. data/lib/puppet/pops/validation/checker4_0.rb +6 -2
  159. data/lib/puppet/provider/group/groupadd.rb +3 -1
  160. data/lib/puppet/provider/group/windows_adsi.rb +4 -7
  161. data/lib/puppet/provider/nameservice.rb +3 -3
  162. data/lib/puppet/provider/package/pacman.rb +4 -4
  163. data/lib/puppet/provider/package/pip.rb +3 -3
  164. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  165. data/lib/puppet/provider/package/pkgutil.rb +2 -2
  166. data/lib/puppet/provider/package/portage.rb +9 -9
  167. data/lib/puppet/provider/package/zypper.rb +2 -2
  168. data/lib/puppet/provider/service/base.rb +1 -1
  169. data/lib/puppet/provider/service/smf.rb +3 -2
  170. data/lib/puppet/provider/service/systemd.rb +1 -1
  171. data/lib/puppet/provider/user/useradd.rb +6 -2
  172. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  173. data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
  174. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  175. data/lib/puppet/reference/configuration.rb +2 -0
  176. data/lib/puppet/reference/type.rb +11 -11
  177. data/lib/puppet/resource.rb +1 -1
  178. data/lib/puppet/resource/capability_finder.rb +5 -5
  179. data/lib/puppet/resource/catalog.rb +6 -3
  180. data/lib/puppet/resource/status.rb +9 -2
  181. data/lib/puppet/resource/type.rb +1 -1
  182. data/lib/puppet/settings.rb +31 -19
  183. data/lib/puppet/settings/base_setting.rb +5 -0
  184. data/lib/puppet/settings/config_file.rb +1 -1
  185. data/lib/puppet/settings/ttl_setting.rb +5 -0
  186. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  187. data/lib/puppet/ssl/certificate_request.rb +0 -2
  188. data/lib/puppet/syntax_checkers/json.rb +1 -1
  189. data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
  190. data/lib/puppet/transaction/event.rb +1 -1
  191. data/lib/puppet/transaction/report.rb +18 -12
  192. data/lib/puppet/type.rb +9 -13
  193. data/lib/puppet/type/augeas.rb +2 -2
  194. data/lib/puppet/type/cron.rb +11 -6
  195. data/lib/puppet/type/exec.rb +1 -1
  196. data/lib/puppet/type/file.rb +4 -5
  197. data/lib/puppet/type/host.rb +1 -1
  198. data/lib/puppet/type/k5login.rb +30 -54
  199. data/lib/puppet/type/package.rb +3 -3
  200. data/lib/puppet/type/schedule.rb +12 -12
  201. data/lib/puppet/type/scheduled_task.rb +2 -2
  202. data/lib/puppet/type/ssh_authorized_key.rb +5 -5
  203. data/lib/puppet/type/sshkey.rb +2 -2
  204. data/lib/puppet/type/tidy.rb +1 -1
  205. data/lib/puppet/type/user.rb +1 -1
  206. data/lib/puppet/type/yumrepo.rb +26 -5
  207. data/lib/puppet/util.rb +0 -4
  208. data/lib/puppet/util/backups.rb +1 -1
  209. data/lib/puppet/util/inifile.rb +3 -4
  210. data/lib/puppet/util/json.rb +68 -0
  211. data/lib/puppet/util/json_lockfile.rb +3 -3
  212. data/lib/puppet/util/log.rb +2 -5
  213. data/lib/puppet/util/log/destinations.rb +2 -2
  214. data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
  215. data/lib/puppet/util/plist.rb +1 -1
  216. data/lib/puppet/util/reference.rb +1 -8
  217. data/lib/puppet/util/tagging.rb +1 -1
  218. data/lib/puppet/util/warnings.rb +0 -2
  219. data/lib/puppet/util/windows/adsi.rb +15 -18
  220. data/lib/puppet/util/windows/com.rb +2 -1
  221. data/lib/puppet/util/windows/file.rb +2 -2
  222. data/lib/puppet/util/windows/principal.rb +7 -6
  223. data/lib/puppet/util/windows/sid.rb +60 -7
  224. data/lib/puppet/util/windows/taskscheduler.rb +0 -9
  225. data/lib/puppet/version.rb +1 -1
  226. data/lib/puppet_pal.rb +53 -48
  227. data/locales/ja/puppet.po +1357 -912
  228. data/locales/puppet.pot +549 -466
  229. data/man/man5/puppet.conf.5 +103 -20
  230. data/man/man8/puppet-agent.8 +6 -2
  231. data/man/man8/puppet-apply.8 +2 -2
  232. data/man/man8/puppet-ca.8 +1 -1
  233. data/man/man8/puppet-catalog.8 +1 -1
  234. data/man/man8/puppet-cert.8 +1 -1
  235. data/man/man8/puppet-certificate.8 +1 -1
  236. data/man/man8/puppet-certificate_request.8 +1 -1
  237. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  238. data/man/man8/puppet-config.8 +35 -1
  239. data/man/man8/puppet-describe.8 +1 -1
  240. data/man/man8/puppet-device.8 +33 -11
  241. data/man/man8/puppet-doc.8 +1 -1
  242. data/man/man8/puppet-epp.8 +34 -12
  243. data/man/man8/puppet-facts.8 +50 -1
  244. data/man/man8/puppet-filebucket.8 +38 -11
  245. data/man/man8/puppet-generate.8 +1 -1
  246. data/man/man8/puppet-help.8 +1 -1
  247. data/man/man8/puppet-key.8 +1 -1
  248. data/man/man8/puppet-lookup.8 +1 -1
  249. data/man/man8/puppet-man.8 +10 -4
  250. data/man/man8/puppet-master.8 +1 -1
  251. data/man/man8/puppet-module.8 +15 -6
  252. data/man/man8/puppet-node.8 +1 -1
  253. data/man/man8/puppet-parser.8 +31 -8
  254. data/man/man8/puppet-plugin.8 +1 -1
  255. data/man/man8/puppet-report.8 +1 -1
  256. data/man/man8/puppet-resource.8 +1 -1
  257. data/man/man8/puppet-script.8 +67 -0
  258. data/man/man8/puppet-status.8 +1 -1
  259. data/man/man8/puppet.8 +3 -3
  260. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
  261. data/spec/integration/application/apply_spec.rb +15 -15
  262. data/spec/integration/application/lookup_spec.rb +21 -0
  263. data/spec/integration/faces/config_spec.rb +16 -4
  264. data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
  265. data/spec/integration/parser/catalog_spec.rb +1 -1
  266. data/spec/integration/parser/collection_spec.rb +2 -2
  267. data/spec/integration/parser/compiler_spec.rb +17 -18
  268. data/spec/integration/parser/pcore_resource_spec.rb +2 -2
  269. data/spec/integration/parser/scope_spec.rb +2 -2
  270. data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
  271. data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
  272. data/spec/integration/ssl/key_spec.rb +1 -1
  273. data/spec/integration/transaction/report_spec.rb +3 -3
  274. data/spec/integration/transaction_spec.rb +0 -1
  275. data/spec/integration/type/file_spec.rb +10 -11
  276. data/spec/integration/type_spec.rb +1 -2
  277. data/spec/integration/util/windows/adsi_spec.rb +86 -1
  278. data/spec/integration/util/windows/principal_spec.rb +11 -2
  279. data/spec/integration/util/windows/security_spec.rb +2 -2
  280. data/spec/lib/matchers/json.rb +4 -4
  281. data/spec/lib/puppet_spec/language.rb +34 -35
  282. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  283. data/spec/shared_behaviours/file_server_terminus.rb +0 -2
  284. data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
  285. data/spec/spec_helper.rb +1 -1
  286. data/spec/unit/application/cert_spec.rb +21 -9
  287. data/spec/unit/application/device_spec.rb +96 -2
  288. data/spec/unit/application/face_base_spec.rb +2 -2
  289. data/spec/unit/application/lookup_spec.rb +0 -1
  290. data/spec/unit/configurer_spec.rb +14 -0
  291. data/spec/unit/confine_spec.rb +16 -0
  292. data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
  293. data/spec/unit/datatypes_spec.rb +49 -0
  294. data/spec/unit/environments_spec.rb +7 -0
  295. data/spec/unit/face/config_spec.rb +116 -12
  296. data/spec/unit/face/epp_face_spec.rb +53 -2
  297. data/spec/unit/face/facts_spec.rb +53 -0
  298. data/spec/unit/face/help_spec.rb +62 -69
  299. data/spec/unit/face/man_spec.rb +26 -0
  300. data/spec/unit/face/module/list_spec.rb +0 -1
  301. data/spec/unit/face/parser_spec.rb +78 -0
  302. data/spec/unit/file_bucket/dipper_spec.rb +0 -4
  303. data/spec/unit/file_serving/content_spec.rb +0 -1
  304. data/spec/unit/file_serving/fileset_spec.rb +0 -1
  305. data/spec/unit/file_serving/metadata_spec.rb +0 -1
  306. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
  307. data/spec/unit/forge_spec.rb +1 -2
  308. data/spec/unit/functions/assert_type_spec.rb +1 -1
  309. data/spec/unit/functions/empty_spec.rb +77 -0
  310. data/spec/unit/functions/epp_spec.rb +1 -1
  311. data/spec/unit/functions/flatten_spec.rb +31 -0
  312. data/spec/unit/functions/include_spec.rb +2 -2
  313. data/spec/unit/functions/inline_epp_spec.rb +1 -1
  314. data/spec/unit/functions/join_spec.rb +33 -0
  315. data/spec/unit/functions/keys_spec.rb +31 -0
  316. data/spec/unit/functions/length_spec.rb +50 -0
  317. data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
  318. data/spec/unit/functions/lookup_spec.rb +52 -0
  319. data/spec/unit/functions/shared.rb +1 -1
  320. data/spec/unit/functions/values_spec.rb +30 -0
  321. data/spec/unit/functions/versioncmp_spec.rb +1 -1
  322. data/spec/unit/functions4_spec.rb +30 -32
  323. data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
  324. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
  325. data/spec/unit/indirector/facts/rest_spec.rb +45 -0
  326. data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
  327. data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
  328. data/spec/unit/indirector/indirection_spec.rb +1 -1
  329. data/spec/unit/indirector/node/ldap_spec.rb +2 -2
  330. data/spec/unit/indirector/request_spec.rb +0 -2
  331. data/spec/unit/indirector/rest_spec.rb +2 -2
  332. data/spec/unit/indirector_spec.rb +0 -1
  333. data/spec/unit/info_service_spec.rb +1 -1
  334. data/spec/unit/interface/action_manager_spec.rb +1 -1
  335. data/spec/unit/interface/action_spec.rb +1 -1
  336. data/spec/unit/module_spec.rb +0 -5
  337. data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
  338. data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
  339. data/spec/unit/network/formats_spec.rb +5 -13
  340. data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
  341. data/spec/unit/network/http/connection_spec.rb +1 -1
  342. data/spec/unit/network/http/handler_spec.rb +3 -2
  343. data/spec/unit/node/environment_spec.rb +1 -1
  344. data/spec/unit/node_spec.rb +3 -3
  345. data/spec/unit/parser/compiler_spec.rb +9 -2
  346. data/spec/unit/parser/environment_compiler_spec.rb +8 -8
  347. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  348. data/spec/unit/parser/functions/fail_spec.rb +1 -1
  349. data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
  350. data/spec/unit/parser/functions/realize_spec.rb +1 -1
  351. data/spec/unit/parser/resource_spec.rb +0 -1
  352. data/spec/unit/parser/scope_spec.rb +3 -3
  353. data/spec/unit/parser/type_loader_spec.rb +1 -1
  354. data/spec/unit/pops/adaptable_spec.rb +0 -1
  355. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
  356. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
  357. data/spec/unit/pops/factory_rspec_helper.rb +1 -1
  358. data/spec/unit/pops/factory_spec.rb +5 -5
  359. data/spec/unit/pops/issues_spec.rb +23 -8
  360. data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
  361. data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
  362. data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
  363. data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
  364. data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
  365. data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
  366. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
  367. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
  368. data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
  369. data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
  370. data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
  371. data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
  372. data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
  373. data/spec/unit/pops/pn_spec.rb +148 -0
  374. data/spec/unit/pops/types/iterable_spec.rb +1 -1
  375. data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
  376. data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
  377. data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
  378. data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
  379. data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
  380. data/spec/unit/pops/types/string_converter_spec.rb +3 -3
  381. data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
  382. data/spec/unit/pops/validator/validator_spec.rb +3 -1
  383. data/spec/unit/property_spec.rb +2 -2
  384. data/spec/unit/provider/aixobject_spec.rb +1 -1
  385. data/spec/unit/provider/cron/crontab_spec.rb +3 -3
  386. data/spec/unit/provider/exec/posix_spec.rb +6 -6
  387. data/spec/unit/provider/group/groupadd_spec.rb +4 -4
  388. data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
  389. data/spec/unit/provider/ldap_spec.rb +0 -1
  390. data/spec/unit/provider/nameservice_spec.rb +5 -5
  391. data/spec/unit/provider/package/rpm_spec.rb +3 -4
  392. data/spec/unit/provider/package/yum_spec.rb +6 -2
  393. data/spec/unit/provider/parsedfile_spec.rb +1 -1
  394. data/spec/unit/provider/service/base_spec.rb +2 -4
  395. data/spec/unit/provider/service/init_spec.rb +2 -2
  396. data/spec/unit/provider/service/openrc_spec.rb +2 -2
  397. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  398. data/spec/unit/provider/service/smf_spec.rb +2 -0
  399. data/spec/unit/provider/service/systemd_spec.rb +3 -3
  400. data/spec/unit/provider/service/upstart_spec.rb +7 -7
  401. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
  402. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
  403. data/spec/unit/provider/user/useradd_spec.rb +15 -9
  404. data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
  405. data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
  406. data/spec/unit/puppet_pal_2pec.rb +4 -5
  407. data/spec/unit/resource/catalog_spec.rb +8 -3
  408. data/spec/unit/resource/status_spec.rb +15 -4
  409. data/spec/unit/resource/type_spec.rb +2 -3
  410. data/spec/unit/settings_spec.rb +9 -4
  411. data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
  412. data/spec/unit/ssl/certificate_request_spec.rb +1 -2
  413. data/spec/unit/transaction/report_spec.rb +41 -0
  414. data/spec/unit/transaction_spec.rb +1 -1
  415. data/spec/unit/type/exec_spec.rb +7 -9
  416. data/spec/unit/type/file/selinux_spec.rb +0 -1
  417. data/spec/unit/type/file_spec.rb +4 -3
  418. data/spec/unit/type/k5login_spec.rb +79 -10
  419. data/spec/unit/type/mount_spec.rb +1 -1
  420. data/spec/unit/type/nagios_spec.rb +6 -6
  421. data/spec/unit/type/user_spec.rb +1 -1
  422. data/spec/unit/type/yumrepo_spec.rb +18 -0
  423. data/spec/unit/type/zfs_spec.rb +1 -1
  424. data/spec/unit/type_spec.rb +14 -15
  425. data/spec/unit/util/docs_spec.rb +1 -1
  426. data/spec/unit/util/execution_spec.rb +0 -1
  427. data/spec/unit/util/inifile_spec.rb +35 -4
  428. data/spec/unit/util/log/destinations_spec.rb +2 -2
  429. data/spec/unit/util/log_spec.rb +6 -5
  430. data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
  431. data/spec/unit/util/plist_spec.rb +3 -3
  432. data/spec/unit/util/selinux_spec.rb +2 -2
  433. data/spec/unit/util/tagging_spec.rb +1 -7
  434. data/spec/unit/util/windows/adsi_spec.rb +31 -27
  435. data/spec/unit/util/windows/sid_spec.rb +86 -15
  436. data/spec/unit/util_spec.rb +2 -2
  437. data/spec/watchr.rb +0 -1
  438. data/tasks/benchmark.rake +37 -0
  439. data/tasks/manpages.rake +1 -1
  440. metadata +71 -11
  441. checksums.yaml +0 -7
@@ -150,13 +150,13 @@ Puppet::Type.newtype(:augeas) do
150
150
  end
151
151
 
152
152
  newparam(:lens) do
153
- desc "Use a specific lens, e.g. `Hosts.lns`. When this parameter is set, you
153
+ desc "Use a specific lens, such as `Hosts.lns`. When this parameter is set, you
154
154
  must also set the `incl` parameter to indicate which file to load.
155
155
  The Augeas documentation includes [a list of available lenses](http://augeas.net/stock_lenses.html)."
156
156
  end
157
157
 
158
158
  newparam(:incl) do
159
- desc "Load only a specific file, e.g. `/etc/hosts`. This can greatly speed
159
+ desc "Load only a specific file, such as `/etc/hosts`. This can greatly speed
160
160
  up the execution the resource. When this parameter is set, you must also
161
161
  set the `lens` parameter to indicate which lens to use."
162
162
  end
@@ -278,9 +278,11 @@ Puppet::Type.newtype(:cron) do
278
278
  %w{sunday monday tuesday wednesday thursday friday saturday}
279
279
  end
280
280
  self.boundaries = [0, 7]
281
- desc "The weekday on which to run the command.
282
- Optional; if specified, must be between 0 and 7, inclusive, with
283
- 0 (or 7) being Sunday, or must be the name of the day (e.g., Tuesday)."
281
+ desc "The weekday on which to run the command. Optional; if specified,
282
+ must be either:
283
+
284
+ - A number between 0 and 7, inclusive, with 0 or 7 being Sunday
285
+ - The name of the day, such as 'Tuesday'."
284
286
  end
285
287
 
286
288
  newproperty(:month, :parent => CronParam) do
@@ -293,8 +295,11 @@ Puppet::Type.newtype(:cron) do
293
295
  august september october november december}
294
296
  end
295
297
  self.boundaries = [1, 12]
296
- desc "The month of the year. Optional; if specified
297
- must be between 1 and 12 or the month name (e.g., December)."
298
+ desc "The month of the year. Optional; if specified,
299
+ must be either:
300
+
301
+ - A number between 1 and 12, inclusive, with 1 being January
302
+ - The name of the month, such as 'December'."
298
303
  end
299
304
 
300
305
  newproperty(:monthday, :parent => CronParam) do
@@ -317,7 +322,7 @@ Puppet::Type.newtype(:cron) do
317
322
  but will not associate them with a specific job.
318
323
 
319
324
  Settings should be specified exactly as they should appear in
320
- the crontab, e.g., `PATH=/bin:/usr/bin:/usr/sbin`."
325
+ the crontab, like `PATH=/bin:/usr/bin:/usr/sbin`."
321
326
 
322
327
  validate do |value|
323
328
  unless value =~ /^\s*(\w+)\s*=\s*(.*)\s*$/ or value == :absent or value == "absent"
@@ -257,7 +257,7 @@ module Puppet
257
257
 
258
258
  newparam(:environment) do
259
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']`
260
+ command, such as `[ 'HOME=/root', 'MAIL=root@example.com']`.
261
261
  Note that if you use this to set PATH, it will override the `path`
262
262
  attribute. Multiple environment variables should be specified as an
263
263
  array."
@@ -74,7 +74,7 @@ Puppet::Type.newtype(:file) do
74
74
  (`File { backup => main }`), so it can affect all file resources.
75
75
 
76
76
  * If set to `false`, file content won't be backed up.
77
- * If set to a string beginning with `.` (e.g., `.puppet-bak`), Puppet will
77
+ * If set to a string beginning with `.`, such as `.puppet-bak`, Puppet will
78
78
  use copy the file in the same directory with that value as the extension
79
79
  of the backup. (A value of `true` is a synonym for `.puppet-bak`.)
80
80
  * If set to any other string, Puppet will try to back up to a filebucket
@@ -187,8 +187,7 @@ Puppet::Type.newtype(:file) do
187
187
  Setting `recurselimit => 2` will manage the direct contents of the
188
188
  directory, as well as the contents of the _first_ level of subdirectories.
189
189
 
190
- And so on --- 3 will manage the contents of the second level of
191
- subdirectories, etc."
190
+ This pattern continues for each incremental value of `recurselimit`."
192
191
 
193
192
  newvalues(/^[0-9]+$/)
194
193
 
@@ -225,9 +224,9 @@ Puppet::Type.newtype(:file) do
225
224
  newparam(:ignore) do
226
225
  desc "A parameter which omits action on files matching
227
226
  specified patterns during recursion. Uses Ruby's builtin globbing
228
- engine, so shell metacharacters are fully supported, e.g. `[a-z]*`.
227
+ engine, so shell metacharacters such as `[a-z]*` are fully supported.
229
228
  Matches that would descend into the directory structure are ignored,
230
- e.g., `*/*`."
229
+ such as `*/*`."
231
230
 
232
231
  validate do |value|
233
232
  unless value.is_a?(Array) or value.is_a?(String) or value == false
@@ -80,7 +80,7 @@ module Puppet
80
80
 
81
81
  validate do |value|
82
82
  value.split('.').each do |hostpart|
83
- unless hostpart =~ /^([\d\w]+|[\d\w][\d\w\-]+[\d\w])$/
83
+ unless hostpart =~ /^([\w]+|[\w][\w\-]+[\w])$/
84
84
  raise Puppet::Error, _("Invalid host name")
85
85
  end
86
86
  end
@@ -1,6 +1,7 @@
1
1
  # Plug-in type for handling k5login files
2
2
  require 'puppet/util'
3
3
  require 'puppet/util/selinux'
4
+ require 'puppet/type/file/selcontext'
4
5
 
5
6
  Puppet::Type.newtype(:k5login) do
6
7
  @doc = "Manage the `.k5login` file for a user. Specify the full path to
@@ -33,7 +34,7 @@ Puppet::Type.newtype(:k5login) do
33
34
  end
34
35
 
35
36
  # To manage the selinux user of the file
36
- newproperty(:seluser) do
37
+ newproperty(:seluser, :parent => Puppet::SELFileContext) do
37
38
  desc "What the SELinux user component of the context of the file should be.
38
39
  Any valid SELinux user component is accepted. For example `user_u`.
39
40
  If not specified it defaults to the value returned by matchpathcon for
@@ -44,7 +45,7 @@ Puppet::Type.newtype(:k5login) do
44
45
  end
45
46
 
46
47
  # To manage the selinux role of the file
47
- newproperty(:selrole) do
48
+ newproperty(:selrole, :parent => Puppet::SELFileContext) do
48
49
  desc "What the SELinux role component of the context of the file should be.
49
50
  Any valid SELinux role component is accepted. For example `role_r`.
50
51
  If not specified it defaults to the value returned by matchpathcon for
@@ -55,7 +56,7 @@ Puppet::Type.newtype(:k5login) do
55
56
  end
56
57
 
57
58
  # To manage the selinux type of the file
58
- newproperty(:seltype) do
59
+ newproperty(:seltype, :parent => Puppet::SELFileContext) do
59
60
  desc "What the SELinux type component of the context of the file should be.
60
61
  Any valid SELinux type component is accepted. For example `tmp_t`.
61
62
  If not specified it defaults to the value returned by matchpathcon for
@@ -67,7 +68,7 @@ Puppet::Type.newtype(:k5login) do
67
68
  end
68
69
 
69
70
  # To manage the selinux range of the file
70
- newproperty(:selrange) do
71
+ newproperty(:selrange, :parent => Puppet::SELFileContext) do
71
72
  desc "What the SELinux range component of the context of the file should be.
72
73
  Any valid SELinux range component is accepted. For example `s0` or
73
74
  `SystemHigh`. If not specified it defaults to the value returned by
@@ -78,6 +79,31 @@ Puppet::Type.newtype(:k5login) do
78
79
  defaultto { "s0" }
79
80
  end
80
81
 
82
+ # Stat our file.
83
+ #
84
+ # We use the initial value :needs_stat to ensure we only stat the file once,
85
+ # but can also keep track of a failed stat (@stat == nil). This also allows
86
+ # us to re-stat on demand by setting @stat = :needs_stat.
87
+ def stat
88
+ return @stat unless @stat == :needs_stat
89
+
90
+ @stat = begin
91
+ Puppet::FileSystem.stat(self[:path])
92
+ rescue Errno::ENOENT
93
+ nil
94
+ rescue Errno::ENOTDIR
95
+ nil
96
+ rescue Errno::EACCES
97
+ warning _("Could not stat; permission denied")
98
+ nil
99
+ end
100
+ end
101
+
102
+ def initialize(args)
103
+ @stat = :needs_stat
104
+ super
105
+ end
106
+
81
107
  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
82
108
 
83
109
  provide(:k5login) do
@@ -129,56 +155,6 @@ Puppet::Type.newtype(:k5login) do
129
155
  File.chmod(Integer("0#{value}"), @resource[:name])
130
156
  end
131
157
 
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
-
182
158
  private
183
159
  def write(value)
184
160
  Puppet::Util.replace_file(@resource[:name], 0644) do |f|
@@ -9,8 +9,8 @@ require 'puppet/parameter/boolean'
9
9
  module Puppet
10
10
  Type.newtype(:package) do
11
11
  @doc = "Manage packages. There is a basic dichotomy in package
12
- support right now: Some package types (e.g., yum and apt) can
13
- retrieve their own package files, while others (e.g., rpm and sun)
12
+ support right now: Some package types (such as yum and apt) can
13
+ retrieve their own package files, while others (such as rpm and sun)
14
14
  cannot. For those package formats that cannot retrieve their own files,
15
15
  you can use the `source` parameter to point to the correct file.
16
16
 
@@ -242,7 +242,7 @@ module Puppet
242
242
  name => $ssl,
243
243
  }
244
244
 
245
- . etc. .
245
+ ...
246
246
 
247
247
  $ssh = $operatingsystem ? {
248
248
  solaris => SMCossh,
@@ -18,8 +18,8 @@ module Puppet
18
18
  time within that schedule, then the resources will get applied;
19
19
  otherwise, that work may never get done.
20
20
 
21
- Thus, it is advisable to use wider scheduling (e.g., over a couple of
22
- hours) combined with periods and repetitions. For instance, if you
21
+ Thus, it is advisable to use wider scheduling (for example, over a couple
22
+ of hours) combined with periods and repetitions. For instance, if you
23
23
  wanted to restrict certain resources to only running once, between
24
24
  the hours of two and 4 AM, then you would use this schedule:
25
25
 
@@ -36,7 +36,7 @@ module Puppet
36
36
  because they will be outside the scheduled range.
37
37
 
38
38
  Puppet automatically creates a schedule for each of the valid periods
39
- with the same name as that period (e.g., hourly and daily).
39
+ with the same name as that period (such as hourly and daily).
40
40
  Additionally, a schedule named `puppet` is created and used as the
41
41
  default, with the following attributes:
42
42
 
@@ -83,7 +83,7 @@ module Puppet
83
83
  This is mostly useful for restricting certain resources to being
84
84
  applied in maintenance windows or during off-peak hours. Multiple
85
85
  ranges can be applied in array context. As a convenience when specifying
86
- ranges, you may cross midnight (e.g.: range => "22:00 - 04:00").
86
+ ranges, you can cross midnight (for example, `range => "22:00 - 04:00"`).
87
87
  EOT
88
88
 
89
89
  # This is lame; properties all use arrays as values, but parameters don't.
@@ -225,9 +225,9 @@ module Puppet
225
225
  end
226
226
 
227
227
  newparam(:periodmatch) do
228
- desc "Whether periods should be matched by number (e.g., the two times
229
- are in the same hour) or by distance (e.g., the two times are
230
- 60 minutes apart)."
228
+ desc "Whether periods should be matched by a numeric value (for instance,
229
+ whether two times are in the same hour) or by their chronological
230
+ distance apart (whether two times are 60 minutes apart)."
231
231
 
232
232
  newvalues(:number, :distance)
233
233
 
@@ -241,8 +241,8 @@ module Puppet
241
241
 
242
242
  Note that the period defines how often a given resource will get
243
243
  applied but not when; if you would like to restrict the hours
244
- that a given resource can be applied (e.g., only at night during
245
- a maintenance window), then use the `range` attribute.
244
+ that a given resource can be applied (for instance, only at night
245
+ during a maintenance window), then use the `range` attribute.
246
246
 
247
247
  If the provided periods are not sufficient, you can provide a
248
248
  value to the *repeat* attribute, which will cause Puppet to
@@ -258,9 +258,9 @@ module Puppet
258
258
 
259
259
  At the moment, Puppet cannot guarantee that level of repetition; that
260
260
  is, the resource can applied _up to_ every 10 minutes, but internal
261
- factors might prevent it from actually running that often (e.g. if a
262
- Puppet run is still in progress when the next run is scheduled to start,
263
- that next run will be suppressed).
261
+ factors might prevent it from actually running that often (for instance,
262
+ if a Puppet run is still in progress when the next run is scheduled to
263
+ start, that next run will be suppressed).
264
264
 
265
265
  See the `periodmatch` attribute for tuning whether to match
266
266
  times by their distance apart or by their specific value.
@@ -107,10 +107,10 @@ Puppet::Type.newtype(:scheduled_task) do
107
107
  minutes_interval.
108
108
  * For `daily` triggers:
109
109
  * `every` --- How often the task should run, as a number of days. Defaults
110
- to 1. ("2" means every other day, "3" means every three days, etc.)
110
+ to 1. ("2" means every other day, "3" means every three days, and so on)
111
111
  * For `weekly` triggers:
112
112
  * `every` --- How often the task should run, as a number of weeks. Defaults
113
- to 1. ("2" means every other week, "3" means every three weeks, etc.)
113
+ to 1. ("2" means every other week, "3" means every three weeks, and so on)
114
114
  * `day_of_week` --- Which days of the week the task should run, as an array.
115
115
  Defaults to all days. Each day must be one of `mon`, `tues`,
116
116
  `wed`, `thurs`, `fri`, `sat`, `sun`, or `all`.
@@ -66,8 +66,8 @@ module Puppet
66
66
  Make sure to omit the following in this attribute (and specify them in
67
67
  other attributes):
68
68
 
69
- * Key headers (e.g. 'ssh-rsa') --- put these in the `type` attribute.
70
- * Key identifiers / comments (e.g. 'joe@joescomputer.local') --- put these in
69
+ * Key headers, such as 'ssh-rsa' --- put these in the `type` attribute.
70
+ * Key identifiers / comments, such as 'joe@joescomputer.local' --- put these in
71
71
  the `name` attribute/resource title."
72
72
 
73
73
  validate do |value|
@@ -82,9 +82,9 @@ module Puppet
82
82
 
83
83
  newproperty(:target) do
84
84
  desc "The absolute filename in which to store the SSH key. This
85
- property is optional and should only be used in cases where keys
86
- are stored in a non-standard location (i.e.` not in
87
- `~user/.ssh/authorized_keys`)."
85
+ property is optional and should be used only in cases where keys
86
+ are stored in a non-standard location, for instance when not in
87
+ `~user/.ssh/authorized_keys`."
88
88
 
89
89
  defaultto :absent
90
90
 
@@ -25,8 +25,8 @@ module Puppet
25
25
  Make sure to omit the following in this attribute (and specify them in
26
26
  other attributes):
27
27
 
28
- * Key headers (e.g. 'ssh-rsa') --- put these in the `type` attribute.
29
- * Key identifiers / comments (e.g. 'joescomputer.local') --- put these in
28
+ * Key headers, such as 'ssh-rsa' --- put these in the `type` attribute.
29
+ * Key identifiers / comments, such as 'joescomputer.local' --- put these in
30
30
  the `name` attribute/resource title."
31
31
  end
32
32
 
@@ -105,7 +105,7 @@ Puppet::Type.newtype(:tidy) do
105
105
  desc "Tidy files whose age is equal to or greater than
106
106
  the specified time. You can choose seconds, minutes,
107
107
  hours, days, or weeks by specifying the first letter of any
108
- of those words (e.g., '1w').
108
+ of those words (for example, '1w' represents one week).
109
109
 
110
110
  Specifying 0 will remove all files."
111
111
 
@@ -411,7 +411,7 @@ module Puppet
411
411
  a zero-padded YYYY-MM-DD format -- for example, 2010-02-19."
412
412
 
413
413
  newvalues :absent
414
- newvalues /^\d{4}-\d{2}-\d{2}$/
414
+ newvalues(/^\d{4}-\d{2}-\d{2}$/)
415
415
 
416
416
  validate do |value|
417
417
  if value.intern != :absent and value !~ /^\d{4}-\d{2}-\d{2}$/
@@ -39,7 +39,7 @@ Puppet::Type.newtype(:yumrepo) do
39
39
  end
40
40
 
41
41
  newparam(:target) do
42
- desc "The filename to write the yum repository to."
42
+ desc "The target parameter will be enabled in a future release and should not be used."
43
43
 
44
44
  defaultto :absent
45
45
  end
@@ -165,7 +165,8 @@ Puppet::Type.newtype(:yumrepo) do
165
165
  end
166
166
 
167
167
  newproperty(:exclude) do
168
- desc "List of shell globs. Matching packages will never be
168
+ desc "The string of package names or shell globs separated by spaces to exclude.
169
+ Packages that match the package name given or shell globs will never be
169
170
  considered in updates or installs for this repo.
170
171
  #{ABSENT_DOC}"
171
172
 
@@ -187,9 +188,10 @@ Puppet::Type.newtype(:yumrepo) do
187
188
  end
188
189
 
189
190
  newproperty(:includepkgs) do
190
- desc "List of shell globs. If this is set, only packages
191
- matching one of the globs will be considered for
192
- update or install from this repository. #{ABSENT_DOC}"
191
+ desc "The string of package names or shell globs separated by spaces to
192
+ include. If this is set, only packages matching one of the package
193
+ names or shell globs will be considered for update or install
194
+ from this repository. #{ABSENT_DOC}"
193
195
 
194
196
  newvalues(/.*/, :absent)
195
197
  end
@@ -415,4 +417,23 @@ Puppet::Type.newtype(:yumrepo) do
415
417
 
416
418
  newvalues(/^\d+$/, :absent)
417
419
  end
420
+
421
+ newproperty(:username) do
422
+ desc "Username to use for basic authentication to a repo or really any url.
423
+ #{ABSENT_DOC}"
424
+ newvalues(/.*/, :absent)
425
+ end
426
+
427
+ newproperty(:password) do
428
+ desc "Password to use with the username for basic authentication.
429
+ #{ABSENT_DOC}"
430
+ newvalues(/.*/, :absent)
431
+ end
432
+
433
+ private
434
+
435
+ def set_sensitive_parameters(sensitive_parameters)
436
+ parameter(:password).sensitive = true if parameter(:password)
437
+ super(sensitive_parameters)
438
+ end
418
439
  end
@@ -366,12 +366,8 @@ module Util
366
366
  end
367
367
  module_function :uri_to_path
368
368
 
369
- private
370
-
371
369
  RFC_3986_URI_REGEX = /^(?<scheme>([^:\/?#]+):)?(?<authority>\/\/([^\/?#]*))?(?<path>[^?#]*)(\?(?<query>[^#]*))?(#(?<fragment>.*))?$/
372
370
 
373
- public
374
-
375
371
  # Percent-encodes a URI query parameter per RFC3986 - https://tools.ietf.org/html/rfc3986
376
372
  #
377
373
  # The output will correctly round-trip through URI.unescape