puppet 6.29.0 → 7.0.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 (811) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +5 -7
  5. data/Gemfile.lock +52 -143
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +2 -16
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/agent.rb +11 -47
  104. data/lib/puppet/application/agent.rb +16 -18
  105. data/lib/puppet/application/apply.rb +4 -24
  106. data/lib/puppet/application/device.rb +100 -106
  107. data/lib/puppet/application/filebucket.rb +13 -10
  108. data/lib/puppet/application/lookup.rb +24 -74
  109. data/lib/puppet/application/resource.rb +16 -32
  110. data/lib/puppet/application/script.rb +0 -2
  111. data/lib/puppet/application/ssl.rb +1 -13
  112. data/lib/puppet/application.rb +178 -108
  113. data/lib/puppet/application_support.rb +0 -7
  114. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  115. data/lib/puppet/configurer/downloader.rb +1 -2
  116. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  117. data/lib/puppet/configurer.rb +86 -183
  118. data/lib/puppet/confine/variable.rb +1 -1
  119. data/lib/puppet/defaults.rb +130 -244
  120. data/lib/puppet/environments.rb +82 -146
  121. data/lib/puppet/face/facts.rb +5 -103
  122. data/lib/puppet/face/generate.rb +0 -2
  123. data/lib/puppet/face/help/action.erb +0 -1
  124. data/lib/puppet/face/help/face.erb +0 -1
  125. data/lib/puppet/face/help.rb +1 -1
  126. data/lib/puppet/face/node/clean.rb +0 -11
  127. data/lib/puppet/face/plugin.rb +5 -8
  128. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  129. data/lib/puppet/ffi/windows/constants.rb +404 -0
  130. data/lib/puppet/ffi/windows/functions.rb +628 -0
  131. data/lib/puppet/ffi/windows/structs.rb +338 -0
  132. data/lib/puppet/ffi/windows.rb +12 -0
  133. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  134. data/lib/puppet/file_serving/configuration.rb +0 -8
  135. data/lib/puppet/file_serving/fileset.rb +2 -14
  136. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  137. data/lib/puppet/file_serving/metadata.rb +0 -3
  138. data/lib/puppet/file_serving/mount/file.rb +4 -4
  139. data/lib/puppet/file_serving/mount.rb +1 -2
  140. data/lib/puppet/file_system/file_impl.rb +8 -10
  141. data/lib/puppet/file_system/jruby.rb +1 -1
  142. data/lib/puppet/file_system/memory_file.rb +1 -8
  143. data/lib/puppet/file_system/windows.rb +6 -8
  144. data/lib/puppet/file_system.rb +1 -1
  145. data/lib/puppet/forge/repository.rb +0 -1
  146. data/lib/puppet/forge.rb +4 -4
  147. data/lib/puppet/functions/all.rb +1 -1
  148. data/lib/puppet/functions/camelcase.rb +1 -1
  149. data/lib/puppet/functions/capitalize.rb +2 -2
  150. data/lib/puppet/functions/downcase.rb +2 -2
  151. data/lib/puppet/functions/empty.rb +0 -8
  152. data/lib/puppet/functions/find_template.rb +2 -2
  153. data/lib/puppet/functions/get.rb +5 -5
  154. data/lib/puppet/functions/group_by.rb +5 -13
  155. data/lib/puppet/functions/lest.rb +1 -1
  156. data/lib/puppet/functions/new.rb +100 -100
  157. data/lib/puppet/functions/next.rb +1 -18
  158. data/lib/puppet/functions/partition.rb +4 -12
  159. data/lib/puppet/functions/require.rb +5 -5
  160. data/lib/puppet/functions/sort.rb +3 -3
  161. data/lib/puppet/functions/strftime.rb +0 -1
  162. data/lib/puppet/functions/tree_each.rb +10 -7
  163. data/lib/puppet/functions/type.rb +4 -4
  164. data/lib/puppet/functions/unwrap.rb +2 -17
  165. data/lib/puppet/functions/upcase.rb +2 -2
  166. data/lib/puppet/functions/versioncmp.rb +2 -6
  167. data/lib/puppet/generate/models/type/type.rb +4 -1
  168. data/lib/puppet/generate/type.rb +0 -9
  169. data/lib/puppet/http/client.rb +167 -137
  170. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  171. data/lib/puppet/http/errors.rb +16 -0
  172. data/lib/puppet/http/external_client.rb +5 -7
  173. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  174. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  175. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  176. data/lib/puppet/http/proxy.rb +137 -0
  177. data/lib/puppet/http/redirector.rb +4 -17
  178. data/lib/puppet/http/resolver/server_list.rb +10 -25
  179. data/lib/puppet/http/resolver/settings.rb +4 -7
  180. data/lib/puppet/http/resolver/srv.rb +7 -11
  181. data/lib/puppet/http/resolver.rb +5 -15
  182. data/lib/puppet/http/response.rb +36 -54
  183. data/lib/puppet/http/response_converter.rb +24 -0
  184. data/lib/puppet/http/response_net_http.rb +42 -0
  185. data/lib/puppet/http/retry_after_handler.rb +4 -13
  186. data/lib/puppet/http/service/ca.rb +11 -22
  187. data/lib/puppet/http/service/compiler.rb +23 -144
  188. data/lib/puppet/http/service/file_server.rb +19 -29
  189. data/lib/puppet/http/service/puppetserver.rb +26 -12
  190. data/lib/puppet/http/service/report.rb +8 -10
  191. data/lib/puppet/http/service.rb +12 -26
  192. data/lib/puppet/http/session.rb +11 -20
  193. data/lib/puppet/{network/http → http}/site.rb +1 -2
  194. data/lib/puppet/http.rb +22 -13
  195. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  196. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  197. data/lib/puppet/indirector/facts/facter.rb +6 -6
  198. data/lib/puppet/indirector/facts/rest.rb +3 -22
  199. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  200. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  201. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  202. data/lib/puppet/indirector/file_server.rb +1 -8
  203. data/lib/puppet/indirector/generic_http.rb +0 -11
  204. data/lib/puppet/indirector/indirection.rb +1 -1
  205. data/lib/puppet/indirector/node/rest.rb +2 -4
  206. data/lib/puppet/indirector/report/rest.rb +3 -8
  207. data/lib/puppet/indirector/request.rb +0 -101
  208. data/lib/puppet/indirector/resource/ral.rb +1 -6
  209. data/lib/puppet/indirector/rest.rb +12 -263
  210. data/lib/puppet/indirector/terminus.rb +0 -4
  211. data/lib/puppet/interface/documentation.rb +0 -1
  212. data/lib/puppet/module/plan.rb +1 -0
  213. data/lib/puppet/module/task.rb +1 -1
  214. data/lib/puppet/module.rb +0 -1
  215. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  216. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  217. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  218. data/lib/puppet/module_tool/applications.rb +0 -1
  219. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  220. data/lib/puppet/network/authconfig.rb +2 -96
  221. data/lib/puppet/network/authorization.rb +13 -35
  222. data/lib/puppet/network/formats.rb +0 -67
  223. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  224. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  225. data/lib/puppet/network/http/connection.rb +247 -316
  226. data/lib/puppet/network/http/handler.rb +0 -1
  227. data/lib/puppet/network/http.rb +3 -3
  228. data/lib/puppet/network/http_pool.rb +16 -34
  229. data/lib/puppet/node/environment.rb +11 -10
  230. data/lib/puppet/node.rb +2 -31
  231. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  232. data/lib/puppet/pal/pal_impl.rb +4 -2
  233. data/lib/puppet/parser/ast/leaf.rb +2 -3
  234. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  235. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  236. data/lib/puppet/parser/compiler.rb +0 -198
  237. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  238. data/lib/puppet/parser/resource.rb +1 -70
  239. data/lib/puppet/parser/scope.rb +0 -1
  240. data/lib/puppet/parser/templatewrapper.rb +1 -2
  241. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  242. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  243. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  244. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  245. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  246. data/lib/puppet/pops/issues.rb +0 -5
  247. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  248. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  249. data/lib/puppet/pops/model/ast.pp +0 -42
  250. data/lib/puppet/pops/model/ast.rb +0 -291
  251. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  252. data/lib/puppet/pops/model/factory.rb +1 -47
  253. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  254. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  255. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  256. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  257. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  258. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  259. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  260. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  261. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  262. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  263. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  264. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  265. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  266. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  267. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  268. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  269. data/lib/puppet/pops/types/type_parser.rb +0 -4
  270. data/lib/puppet/pops/types/types.rb +1 -2
  271. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  272. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  273. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  274. data/lib/puppet/property/list.rb +1 -1
  275. data/lib/puppet/provider/aix_object.rb +1 -1
  276. data/lib/puppet/provider/exec/posix.rb +4 -16
  277. data/lib/puppet/provider/group/groupadd.rb +10 -18
  278. data/lib/puppet/provider/nameservice.rb +0 -18
  279. data/lib/puppet/provider/package/apt.rb +2 -34
  280. data/lib/puppet/provider/package/aptitude.rb +0 -6
  281. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  282. data/lib/puppet/provider/package/dpkg.rb +0 -10
  283. data/lib/puppet/provider/package/gem.rb +23 -3
  284. data/lib/puppet/provider/package/nim.rb +6 -11
  285. data/lib/puppet/provider/package/pip.rb +3 -16
  286. data/lib/puppet/provider/package/pkg.rb +2 -23
  287. data/lib/puppet/provider/package/portage.rb +1 -1
  288. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  289. data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
  290. data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
  291. data/lib/puppet/provider/package/windows/package.rb +1 -2
  292. data/lib/puppet/provider/package/windows.rb +1 -14
  293. data/lib/puppet/provider/package/yum.rb +1 -1
  294. data/lib/puppet/provider/parsedfile.rb +0 -3
  295. data/lib/puppet/provider/service/base.rb +1 -1
  296. data/lib/puppet/provider/service/debian.rb +0 -2
  297. data/lib/puppet/provider/service/init.rb +9 -10
  298. data/lib/puppet/provider/service/launchd.rb +2 -2
  299. data/lib/puppet/provider/service/redhat.rb +1 -1
  300. data/lib/puppet/provider/service/smf.rb +194 -76
  301. data/lib/puppet/provider/service/systemd.rb +6 -16
  302. data/lib/puppet/provider/service/upstart.rb +5 -5
  303. data/lib/puppet/provider/service/windows.rb +0 -38
  304. data/lib/puppet/provider/user/aix.rb +3 -46
  305. data/lib/puppet/provider/user/directoryservice.rb +11 -39
  306. data/lib/puppet/provider/user/useradd.rb +24 -134
  307. data/lib/puppet/provider.rb +1 -14
  308. data/lib/puppet/reference/configuration.rb +8 -7
  309. data/lib/puppet/reference/indirection.rb +1 -1
  310. data/lib/puppet/reference/providers.rb +2 -2
  311. data/lib/puppet/resource/catalog.rb +2 -15
  312. data/lib/puppet/resource/type.rb +3 -119
  313. data/lib/puppet/resource/type_collection.rb +3 -49
  314. data/lib/puppet/resource.rb +6 -127
  315. data/lib/puppet/runtime.rb +2 -13
  316. data/lib/puppet/settings/environment_conf.rb +0 -1
  317. data/lib/puppet/settings/integer_setting.rb +17 -0
  318. data/lib/puppet/settings/port_setting.rb +15 -0
  319. data/lib/puppet/settings/priority_setting.rb +5 -4
  320. data/lib/puppet/settings.rb +82 -98
  321. data/lib/puppet/ssl/base.rb +3 -5
  322. data/lib/puppet/ssl/certificate.rb +0 -6
  323. data/lib/puppet/ssl/certificate_request.rb +1 -12
  324. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  325. data/lib/puppet/ssl/oids.rb +3 -1
  326. data/lib/puppet/ssl/ssl_provider.rb +36 -75
  327. data/lib/puppet/ssl/state_machine.rb +20 -14
  328. data/lib/puppet/ssl/verifier.rb +2 -6
  329. data/lib/puppet/ssl.rb +10 -6
  330. data/lib/puppet/test/test_helper.rb +2 -7
  331. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  332. data/lib/puppet/transaction/persistence.rb +1 -21
  333. data/lib/puppet/transaction/report.rb +3 -19
  334. data/lib/puppet/transaction.rb +1 -7
  335. data/lib/puppet/type/exec.rb +6 -36
  336. data/lib/puppet/type/file/checksum.rb +1 -1
  337. data/lib/puppet/type/file/data_sync.rb +1 -1
  338. data/lib/puppet/type/file/mode.rb +0 -6
  339. data/lib/puppet/type/file/selcontext.rb +1 -1
  340. data/lib/puppet/type/file/source.rb +1 -1
  341. data/lib/puppet/type/file.rb +12 -32
  342. data/lib/puppet/type/filebucket.rb +4 -4
  343. data/lib/puppet/type/group.rb +1 -0
  344. data/lib/puppet/type/package.rb +8 -16
  345. data/lib/puppet/type/resources.rb +1 -1
  346. data/lib/puppet/type/service.rb +41 -26
  347. data/lib/puppet/type/tidy.rb +3 -22
  348. data/lib/puppet/type/user.rb +13 -35
  349. data/lib/puppet/type.rb +1 -77
  350. data/lib/puppet/util/autoload.rb +8 -1
  351. data/lib/puppet/util/command_line.rb +1 -1
  352. data/lib/puppet/util/execution.rb +0 -11
  353. data/lib/puppet/util/filetype.rb +2 -2
  354. data/lib/puppet/util/http_proxy.rb +2 -215
  355. data/lib/puppet/util/json.rb +0 -20
  356. data/lib/puppet/util/log.rb +4 -8
  357. data/lib/puppet/util/logging.rb +25 -1
  358. data/lib/puppet/util/monkey_patches.rb +2 -59
  359. data/lib/puppet/util/package.rb +16 -25
  360. data/lib/puppet/util/pidlock.rb +1 -1
  361. data/lib/puppet/util/posix.rb +5 -54
  362. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  363. data/lib/puppet/util/rdoc.rb +0 -7
  364. data/lib/puppet/util/retry_action.rb +1 -1
  365. data/lib/puppet/util/run_mode.rb +9 -1
  366. data/lib/puppet/util/selinux.rb +4 -30
  367. data/lib/puppet/util/suidmanager.rb +2 -1
  368. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  369. data/lib/puppet/util/tagging.rb +0 -1
  370. data/lib/puppet/util/windows/adsi.rb +0 -46
  371. data/lib/puppet/util/windows/daemon.rb +360 -0
  372. data/lib/puppet/util/windows/error.rb +1 -0
  373. data/lib/puppet/util/windows/eventlog.rb +4 -9
  374. data/lib/puppet/util/windows/file.rb +8 -242
  375. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  376. data/lib/puppet/util/windows/principal.rb +2 -9
  377. data/lib/puppet/util/windows/process.rb +4 -226
  378. data/lib/puppet/util/windows/service.rb +11 -457
  379. data/lib/puppet/util/windows/sid.rb +2 -6
  380. data/lib/puppet/util/windows/string.rb +12 -13
  381. data/lib/puppet/util/windows/user.rb +2 -0
  382. data/lib/puppet/util/windows.rb +3 -11
  383. data/lib/puppet/util/yaml.rb +1 -42
  384. data/lib/puppet/util.rb +5 -5
  385. data/lib/puppet/vendor/require_vendored.rb +0 -1
  386. data/lib/puppet/version.rb +1 -1
  387. data/lib/puppet/x509/cert_provider.rb +29 -1
  388. data/lib/puppet/x509.rb +5 -1
  389. data/lib/puppet.rb +34 -27
  390. data/locales/puppet.pot +9633 -5
  391. data/man/man5/puppet.conf.5 +286 -401
  392. data/man/man8/puppet-agent.8 +2 -5
  393. data/man/man8/puppet-apply.8 +2 -2
  394. data/man/man8/puppet-catalog.8 +9 -9
  395. data/man/man8/puppet-config.8 +1 -1
  396. data/man/man8/puppet-describe.8 +1 -1
  397. data/man/man8/puppet-device.8 +2 -2
  398. data/man/man8/puppet-doc.8 +1 -1
  399. data/man/man8/puppet-epp.8 +1 -1
  400. data/man/man8/puppet-facts.8 +8 -51
  401. data/man/man8/puppet-filebucket.8 +4 -4
  402. data/man/man8/puppet-generate.8 +1 -1
  403. data/man/man8/puppet-help.8 +1 -1
  404. data/man/man8/puppet-lookup.8 +6 -9
  405. data/man/man8/puppet-module.8 +3 -60
  406. data/man/man8/puppet-node.8 +5 -5
  407. data/man/man8/puppet-parser.8 +1 -1
  408. data/man/man8/puppet-plugin.8 +1 -1
  409. data/man/man8/puppet-report.8 +5 -5
  410. data/man/man8/puppet-resource.8 +1 -1
  411. data/man/man8/puppet-script.8 +2 -2
  412. data/man/man8/puppet-ssl.8 +1 -5
  413. data/man/man8/puppet.8 +2 -2
  414. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  415. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  416. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  417. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  418. data/spec/fixtures/ssl/ca.pem +35 -57
  419. data/spec/fixtures/ssl/crl.pem +18 -28
  420. data/spec/fixtures/ssl/ec-key.pem +11 -11
  421. data/spec/fixtures/ssl/ec.pem +24 -33
  422. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  423. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  424. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  425. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  426. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  427. data/spec/fixtures/ssl/intermediate.pem +36 -57
  428. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  429. data/spec/fixtures/ssl/pluto.pem +30 -52
  430. data/spec/fixtures/ssl/request-key.pem +57 -107
  431. data/spec/fixtures/ssl/request.pem +26 -47
  432. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  433. data/spec/fixtures/ssl/revoked.pem +30 -52
  434. data/spec/fixtures/ssl/signed-key.pem +57 -107
  435. data/spec/fixtures/ssl/signed.pem +30 -52
  436. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  437. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  438. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  439. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  440. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  441. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  442. data/spec/fixtures/unit/forge/bacula.json +1 -1
  443. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  444. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  445. data/spec/integration/application/agent_spec.rb +50 -406
  446. data/spec/integration/application/apply_spec.rb +1 -20
  447. data/spec/integration/application/filebucket_spec.rb +16 -32
  448. data/spec/integration/application/help_spec.rb +2 -0
  449. data/spec/integration/application/lookup_spec.rb +50 -81
  450. data/spec/integration/application/module_spec.rb +0 -21
  451. data/spec/integration/application/plugin_spec.rb +24 -2
  452. data/spec/integration/configurer_spec.rb +2 -18
  453. data/spec/integration/defaults_spec.rb +14 -3
  454. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  455. data/spec/integration/http/client_spec.rb +4 -63
  456. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  457. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  458. data/spec/integration/network/http_pool_spec.rb +3 -21
  459. data/spec/integration/parser/catalog_spec.rb +0 -38
  460. data/spec/integration/parser/node_spec.rb +0 -9
  461. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  462. data/spec/integration/resource/type_collection_spec.rb +6 -2
  463. data/spec/integration/transaction/report_spec.rb +1 -1
  464. data/spec/integration/transaction_spec.rb +9 -4
  465. data/spec/integration/type/exec_spec.rb +45 -70
  466. data/spec/integration/type/file_spec.rb +7 -6
  467. data/spec/integration/type/package_spec.rb +6 -6
  468. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  469. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  470. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  471. data/spec/integration/util/windows/principal_spec.rb +0 -21
  472. data/spec/integration/util/windows/process_spec.rb +9 -1
  473. data/spec/integration/util/windows/registry_spec.rb +10 -6
  474. data/spec/integration/util/windows/security_spec.rb +1 -1
  475. data/spec/lib/matchers/include.rb +27 -0
  476. data/spec/lib/matchers/include_spec.rb +32 -0
  477. data/spec/lib/puppet/test_ca.rb +2 -7
  478. data/spec/lib/puppet_spec/https.rb +1 -1
  479. data/spec/lib/puppet_spec/modules.rb +2 -13
  480. data/spec/lib/puppet_spec/puppetserver.rb +3 -55
  481. data/spec/lib/puppet_spec/settings.rb +1 -1
  482. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  483. data/spec/spec_helper.rb +17 -13
  484. data/spec/unit/agent_spec.rb +8 -38
  485. data/spec/unit/application/agent_spec.rb +19 -33
  486. data/spec/unit/application/apply_spec.rb +56 -76
  487. data/spec/unit/application/facts_spec.rb +12 -456
  488. data/spec/unit/application/filebucket_spec.rb +43 -39
  489. data/spec/unit/application/lookup_spec.rb +10 -131
  490. data/spec/unit/application/resource_spec.rb +0 -29
  491. data/spec/unit/application/ssl_spec.rb +2 -25
  492. data/spec/unit/application_spec.rb +9 -51
  493. data/spec/unit/certificate_factory_spec.rb +1 -1
  494. data/spec/unit/configurer/downloader_spec.rb +6 -8
  495. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  496. data/spec/unit/configurer_spec.rb +68 -327
  497. data/spec/unit/confine/feature_spec.rb +1 -1
  498. data/spec/unit/confine_spec.rb +2 -8
  499. data/spec/unit/context/trusted_information_spec.rb +2 -6
  500. data/spec/unit/daemon_spec.rb +11 -2
  501. data/spec/unit/defaults_spec.rb +68 -55
  502. data/spec/unit/environments_spec.rb +68 -408
  503. data/spec/unit/face/generate_spec.rb +0 -64
  504. data/spec/unit/face/node_spec.rb +11 -0
  505. data/spec/unit/face/plugin_spec.rb +73 -33
  506. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  507. data/spec/unit/file_bucket/file_spec.rb +1 -1
  508. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  509. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  510. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  511. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  512. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  513. data/spec/unit/file_system_spec.rb +4 -56
  514. data/spec/unit/forge/module_release_spec.rb +10 -5
  515. data/spec/unit/functions/assert_type_spec.rb +1 -1
  516. data/spec/unit/functions/camelcase_spec.rb +1 -1
  517. data/spec/unit/functions/capitalize_spec.rb +1 -1
  518. data/spec/unit/functions/downcase_spec.rb +1 -1
  519. data/spec/unit/functions/empty_spec.rb +0 -10
  520. data/spec/unit/functions/logging_spec.rb +0 -1
  521. data/spec/unit/functions/lookup_spec.rb +0 -64
  522. data/spec/unit/functions/unwrap_spec.rb +0 -8
  523. data/spec/unit/functions/upcase_spec.rb +1 -1
  524. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  525. data/spec/unit/functions4_spec.rb +2 -2
  526. data/spec/unit/gettext/config_spec.rb +0 -12
  527. data/spec/unit/http/client_spec.rb +8 -84
  528. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  529. data/spec/unit/http/external_client_spec.rb +4 -4
  530. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  531. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  532. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  533. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  534. data/spec/unit/http/resolver_spec.rb +13 -13
  535. data/spec/unit/http/service/compiler_spec.rb +0 -193
  536. data/spec/unit/http/service/file_server_spec.rb +3 -3
  537. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  538. data/spec/unit/http/service_spec.rb +0 -1
  539. data/spec/unit/http/session_spec.rb +16 -14
  540. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  541. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  542. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  543. data/spec/unit/indirector/face_spec.rb +1 -0
  544. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  545. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  546. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  547. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  548. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  549. data/spec/unit/indirector/file_server_spec.rb +1 -15
  550. data/spec/unit/indirector/indirection_spec.rb +15 -18
  551. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  552. data/spec/unit/indirector/request_spec.rb +0 -264
  553. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  554. data/spec/unit/indirector/rest_spec.rb +98 -752
  555. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  556. data/spec/unit/indirector_spec.rb +2 -2
  557. data/spec/unit/interface/action_spec.rb +9 -0
  558. data/spec/unit/module_spec.rb +1 -15
  559. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  560. data/spec/unit/network/authconfig_spec.rb +2 -129
  561. data/spec/unit/network/authorization_spec.rb +2 -55
  562. data/spec/unit/network/formats_spec.rb +4 -51
  563. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  564. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  565. data/spec/unit/network/http/api_spec.rb +10 -0
  566. data/spec/unit/network/http/connection_spec.rb +19 -41
  567. data/spec/unit/network/http/handler_spec.rb +0 -1
  568. data/spec/unit/network/http_pool_spec.rb +0 -4
  569. data/spec/unit/node/environment_spec.rb +33 -21
  570. data/spec/unit/node_spec.rb +2 -60
  571. data/spec/unit/parser/compiler_spec.rb +19 -3
  572. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  573. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  574. data/spec/unit/parser/resource_spec.rb +8 -14
  575. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  576. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  577. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  578. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  579. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  580. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  581. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  582. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  583. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  584. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  585. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  586. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  587. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  588. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  589. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  590. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  591. data/spec/unit/pops/visitor_spec.rb +1 -1
  592. data/spec/unit/property_spec.rb +0 -1
  593. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  594. data/spec/unit/provider/nameservice_spec.rb +64 -122
  595. data/spec/unit/provider/package/apt_spec.rb +23 -28
  596. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  597. data/spec/unit/provider/package/base_spec.rb +5 -6
  598. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  599. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  600. data/spec/unit/provider/package/gem_spec.rb +33 -1
  601. data/spec/unit/provider/package/nim_spec.rb +0 -42
  602. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  603. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  604. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  605. data/spec/unit/provider/package/pip_spec.rb +12 -44
  606. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  607. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  608. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  609. data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
  610. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
  611. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  612. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  613. data/spec/unit/provider/service/init_spec.rb +9 -16
  614. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  615. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  616. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  617. data/spec/unit/provider/service/smf_spec.rb +401 -165
  618. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  619. data/spec/unit/provider/service/windows_spec.rb +0 -203
  620. data/spec/unit/provider/user/aix_spec.rb +0 -105
  621. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  622. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  623. data/spec/unit/provider/user/pw_spec.rb +0 -2
  624. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  625. data/spec/unit/provider_spec.rb +12 -22
  626. data/spec/unit/puppet_spec.rb +4 -12
  627. data/spec/unit/resource/catalog_spec.rb +2 -15
  628. data/spec/unit/resource/type_collection_spec.rb +2 -22
  629. data/spec/unit/resource/type_spec.rb +1 -1
  630. data/spec/unit/resource_spec.rb +12 -125
  631. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  632. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  633. data/spec/unit/settings/port_setting_spec.rb +31 -0
  634. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  635. data/spec/unit/settings_spec.rb +79 -110
  636. data/spec/unit/ssl/base_spec.rb +37 -3
  637. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  638. data/spec/unit/ssl/certificate_spec.rb +2 -11
  639. data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
  640. data/spec/unit/ssl/state_machine_spec.rb +5 -21
  641. data/spec/unit/ssl/verifier_spec.rb +0 -21
  642. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  643. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  644. data/spec/unit/transaction/persistence_spec.rb +0 -51
  645. data/spec/unit/transaction/report_spec.rb +0 -2
  646. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  647. data/spec/unit/transaction_spec.rb +55 -96
  648. data/spec/unit/type/exec_spec.rb +29 -76
  649. data/spec/unit/type/file/checksum_spec.rb +6 -6
  650. data/spec/unit/type/file/content_spec.rb +2 -1
  651. data/spec/unit/type/file/ensure_spec.rb +1 -1
  652. data/spec/unit/type/file/mode_spec.rb +1 -1
  653. data/spec/unit/type/file/selinux_spec.rb +5 -3
  654. data/spec/unit/type/file/source_spec.rb +4 -5
  655. data/spec/unit/type/file_spec.rb +18 -6
  656. data/spec/unit/type/group_spec.rb +6 -13
  657. data/spec/unit/type/package_spec.rb +1 -1
  658. data/spec/unit/type/resources_spec.rb +7 -7
  659. data/spec/unit/type/service_spec.rb +189 -87
  660. data/spec/unit/type/tidy_spec.rb +8 -24
  661. data/spec/unit/type_spec.rb +24 -4
  662. data/spec/unit/util/at_fork_spec.rb +2 -2
  663. data/spec/unit/util/autoload_spec.rb +1 -5
  664. data/spec/unit/util/backups_spec.rb +2 -3
  665. data/spec/unit/util/execution_spec.rb +11 -44
  666. data/spec/unit/util/inifile_spec.rb +14 -6
  667. data/spec/unit/util/log_spec.rb +7 -8
  668. data/spec/unit/util/logging_spec.rb +3 -5
  669. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  670. data/spec/unit/util/posix_spec.rb +15 -363
  671. data/spec/unit/util/run_mode_spec.rb +21 -121
  672. data/spec/unit/util/selinux_spec.rb +68 -163
  673. data/spec/unit/util/storage_spec.rb +1 -3
  674. data/spec/unit/util/suidmanager_spec.rb +41 -44
  675. data/spec/unit/util/windows/sid_spec.rb +0 -41
  676. data/spec/unit/util/windows/string_spec.rb +1 -3
  677. data/spec/unit/util/yaml_spec.rb +13 -92
  678. data/spec/unit/util_spec.rb +6 -31
  679. data/tasks/generate_cert_fixtures.rake +7 -17
  680. data/tasks/parallel.rake +3 -3
  681. metadata +138 -239
  682. data/conf/auth.conf +0 -150
  683. data/ext/README.md +0 -13
  684. data/lib/puppet/application/cert.rb +0 -76
  685. data/lib/puppet/application/key.rb +0 -4
  686. data/lib/puppet/application/man.rb +0 -4
  687. data/lib/puppet/application/status.rb +0 -4
  688. data/lib/puppet/face/key.rb +0 -16
  689. data/lib/puppet/face/man.rb +0 -145
  690. data/lib/puppet/face/module/build.rb +0 -14
  691. data/lib/puppet/face/module/generate.rb +0 -14
  692. data/lib/puppet/face/module/search.rb +0 -103
  693. data/lib/puppet/face/status.rb +0 -51
  694. data/lib/puppet/facter_impl.rb +0 -96
  695. data/lib/puppet/ffi/posix/constants.rb +0 -14
  696. data/lib/puppet/ffi/posix/functions.rb +0 -24
  697. data/lib/puppet/ffi/posix.rb +0 -10
  698. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  699. data/lib/puppet/indirector/certificate/file.rb +0 -9
  700. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  701. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  702. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  703. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  704. data/lib/puppet/indirector/file_content/http.rb +0 -22
  705. data/lib/puppet/indirector/key/file.rb +0 -46
  706. data/lib/puppet/indirector/key/memory.rb +0 -7
  707. data/lib/puppet/indirector/ssl_file.rb +0 -162
  708. data/lib/puppet/indirector/status/local.rb +0 -12
  709. data/lib/puppet/indirector/status/rest.rb +0 -27
  710. data/lib/puppet/indirector/status.rb +0 -3
  711. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  712. data/lib/puppet/network/auth_config_parser.rb +0 -90
  713. data/lib/puppet/network/authstore.rb +0 -283
  714. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  715. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  716. data/lib/puppet/network/http/base_pool.rb +0 -36
  717. data/lib/puppet/network/http/compression.rb +0 -127
  718. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  719. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  720. data/lib/puppet/network/rest_controller.rb +0 -2
  721. data/lib/puppet/network/rights.rb +0 -210
  722. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  723. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  724. data/lib/puppet/parser/environment_compiler.rb +0 -202
  725. data/lib/puppet/pops/types/enumeration.rb +0 -16
  726. data/lib/puppet/resource/capability_finder.rb +0 -154
  727. data/lib/puppet/rest/errors.rb +0 -15
  728. data/lib/puppet/rest/response.rb +0 -35
  729. data/lib/puppet/rest/route.rb +0 -85
  730. data/lib/puppet/rest/routes.rb +0 -135
  731. data/lib/puppet/settings/alias_setting.rb +0 -37
  732. data/lib/puppet/ssl/host.rb +0 -505
  733. data/lib/puppet/ssl/key.rb +0 -61
  734. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  735. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  736. data/lib/puppet/ssl/validator.rb +0 -61
  737. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  738. data/lib/puppet/status.rb +0 -40
  739. data/lib/puppet/util/connection.rb +0 -88
  740. data/lib/puppet/util/fact_dif.rb +0 -81
  741. data/lib/puppet/util/ssl.rb +0 -83
  742. data/lib/puppet/util/windows/api_types.rb +0 -309
  743. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  744. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  745. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  746. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  747. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  748. data/lib/puppet/vendor/pathspec/README.md +0 -53
  749. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  750. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  751. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  752. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  753. data/man/man8/puppet-key.8 +0 -126
  754. data/man/man8/puppet-man.8 +0 -76
  755. data/man/man8/puppet-status.8 +0 -108
  756. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  757. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  758. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  759. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  760. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  761. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  762. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  763. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  764. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  765. data/spec/fixtures/ssl/oid-key.pem +0 -117
  766. data/spec/fixtures/ssl/oid.pem +0 -69
  767. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  768. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  769. data/spec/integration/application/resource_spec.rb +0 -68
  770. data/spec/integration/application/ssl_spec.rb +0 -20
  771. data/spec/integration/l10n/compiler_spec.rb +0 -37
  772. data/spec/integration/network/authconfig_spec.rb +0 -256
  773. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  774. data/spec/shared_contexts/l10n.rb +0 -32
  775. data/spec/unit/application/man_spec.rb +0 -52
  776. data/spec/unit/capability_spec.rb +0 -414
  777. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  778. data/spec/unit/face/key_spec.rb +0 -9
  779. data/spec/unit/face/module/search_spec.rb +0 -231
  780. data/spec/unit/face/status_spec.rb +0 -9
  781. data/spec/unit/facter_impl_spec.rb +0 -31
  782. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  783. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  784. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  785. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  786. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  787. data/spec/unit/indirector/key/file_spec.rb +0 -78
  788. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  789. data/spec/unit/indirector/status/local_spec.rb +0 -10
  790. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  791. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  792. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  793. data/spec/unit/network/authstore_spec.rb +0 -407
  794. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  795. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  796. data/spec/unit/network/http/compression_spec.rb +0 -240
  797. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  798. data/spec/unit/network/http_spec.rb +0 -9
  799. data/spec/unit/network/rights_spec.rb +0 -439
  800. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  801. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  802. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  803. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  804. data/spec/unit/rest/route_spec.rb +0 -132
  805. data/spec/unit/ssl/host_spec.rb +0 -645
  806. data/spec/unit/ssl/key_spec.rb +0 -173
  807. data/spec/unit/ssl/validator_spec.rb +0 -278
  808. data/spec/unit/status_spec.rb +0 -45
  809. data/spec/unit/util/json_spec.rb +0 -126
  810. data/spec/unit/util/ssl_spec.rb +0 -91
  811. data/spec/unit/util/windows_spec.rb +0 -23
@@ -1,7 +1,6 @@
1
1
  require 'puppet/ssl/openssl_loader'
2
2
  require 'digest/sha1'
3
3
  require 'uri'
4
- require 'puppet/util/http_proxy'
5
4
  require 'puppet/forge'
6
5
  require 'puppet/forge/errors'
7
6
  require 'puppet/network/http'
data/lib/puppet/forge.rb CHANGED
@@ -70,7 +70,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
70
70
  uri = decode_uri(result['pagination']['next'])
71
71
  matches.concat result['results']
72
72
  else
73
- raise ResponseError.new(:uri => response.url, :response => response)
73
+ raise ResponseError.new(:uri => URI.parse(@host).merge(uri), :response => response)
74
74
  end
75
75
  end
76
76
 
@@ -105,7 +105,7 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
105
105
  if response.code == 200
106
106
  response = Puppet::Util::Json.load(response.body)
107
107
  else
108
- raise ResponseError.new(:uri => response.url, :response => response)
108
+ raise ResponseError.new(:uri => URI.parse(@host).merge(uri), :response => response)
109
109
  end
110
110
 
111
111
  releases.concat(process(response['results']))
@@ -208,12 +208,12 @@ class Puppet::Forge < SemanticPuppet::Dependency::Source
208
208
  response = @source.make_http_request(uri, destination)
209
209
  destination.flush and destination.close
210
210
  unless response.code == 200
211
- raise Puppet::Forge::Errors::ResponseError.new(:uri => response.url, :response => response)
211
+ raise Puppet::Forge::Errors::ResponseError.new(:uri => uri, :response => response)
212
212
  end
213
213
  end
214
214
 
215
215
  def validate_checksum(file, checksum, digest_class)
216
- if Puppet.runtime[:facter].value(:fips_enabled) && digest_class == Digest::MD5
216
+ if Facter.value(:fips_enabled) && digest_class == Digest::MD5
217
217
  raise _("Module install using MD5 is prohibited in FIPS mode.")
218
218
  end
219
219
 
@@ -51,7 +51,7 @@
51
51
  # notice $data.all |$key, $value| { $value % 10 == 0 and $key =~ /^abc/ }
52
52
  # ```
53
53
  #
54
- # Would notice `true`.
54
+ # Would notice true.
55
55
  #
56
56
  # For an general examples that demonstrates iteration, see the Puppet
57
57
  # [iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
@@ -3,7 +3,7 @@
3
3
  # This function is compatible with the stdlib function with the same name.
4
4
  #
5
5
  # The function does the following:
6
- # * For a `String` the conversion replaces all combinations of `*_<char>*` with an upcased version of the
6
+ # * For a `String` the conversion replaces all combinations of *_<char>* with an upcased version of the
7
7
  # character following the _. This is done using Ruby system locale which handles some, but not all
8
8
  # special international up-casing rules (for example German double-s ß is upcased to "Ss").
9
9
  # * For an `Iterable[Variant[String, Numeric]]` (for example an `Array`) each value is capitalized and the conversion is not recursive.
@@ -18,14 +18,14 @@
18
18
  # 'hello'.capitalize()
19
19
  # upcase('hello')
20
20
  # ```
21
- # Would both result in `"Hello"`
21
+ # Would both result in "Hello"
22
22
  #
23
23
  # @example Capitalizing strings in an Array
24
24
  # ```puppet
25
25
  # ['abc', 'bcd'].capitalize()
26
26
  # capitalize(['abc', 'bcd'])
27
27
  # ```
28
- # Would both result in `['Abc', 'Bcd']`
28
+ # Would both result in ['Abc', 'Bcd']
29
29
  #
30
30
  Puppet::Functions.create_function(:capitalize) do
31
31
 
@@ -22,14 +22,14 @@
22
22
  # 'HELLO'.downcase()
23
23
  # downcase('HEllO')
24
24
  # ```
25
- # Would both result in `"hello"`
25
+ # Would both result in "hello"
26
26
  #
27
27
  # @example Converting an Array to lower case
28
28
  # ```puppet
29
29
  # ['A', 'B'].downcase()
30
30
  # downcase(['A', 'B'])
31
31
  # ```
32
- # Would both result in `['a', 'b']`
32
+ # Would both result in ['a', 'b']
33
33
  #
34
34
  # @example Converting a Hash to lower case
35
35
  # ```puppet
@@ -26,10 +26,6 @@ Puppet::Functions.create_function(:empty) do
26
26
  param 'Collection', :coll
27
27
  end
28
28
 
29
- dispatch :sensitive_string_empty do
30
- param 'Sensitive[String]', :str
31
- end
32
-
33
29
  dispatch :string_empty do
34
30
  param 'String', :str
35
31
  end
@@ -50,10 +46,6 @@ Puppet::Functions.create_function(:empty) do
50
46
  coll.empty?
51
47
  end
52
48
 
53
- def sensitive_string_empty(str)
54
- str.unwrap.empty?
55
- end
56
-
57
49
  def string_empty(str)
58
50
  str.empty?
59
51
  end
@@ -2,11 +2,11 @@
2
2
  #
3
3
  # This function accepts an argument that is a String as a `<MODULE NAME>/<TEMPLATE>`
4
4
  # reference, which searches for `<TEMPLATE>` relative to a module's `templates`
5
- # directory on the primary server. (For example, the reference `mymod/secret.conf.epp`
5
+ # directory on the master. (For example, the reference `mymod/secret.conf.epp`
6
6
  # will search for the file `<MODULES DIRECTORY>/mymod/templates/secret.conf.epp`.)
7
7
  #
8
8
  # The primary use case is for agent-side template rendering with late-bound variables
9
- # resolved, such as from secret stores inaccessible to the primary server, such as
9
+ # resolved, such as from secret stores inaccessible to the master, such as
10
10
  #
11
11
  # ```
12
12
  # $variables = {
@@ -23,20 +23,20 @@
23
23
  # #get($facts, 'os.family')
24
24
  # $facts.get('os.family')
25
25
  # ```
26
- # Would both result in the value of `$facts['os']['family']`
26
+ # Would both result in the value of $facts['os']['family']
27
27
  #
28
28
  # @example Getting the value from an expression
29
29
  # ```puppet
30
30
  # get([1,2,[{'name' =>'waldo'}]], '2.0.name')
31
31
  # ```
32
- # Would result in `'waldo'`
32
+ # Would result in 'waldo'
33
33
  #
34
34
  # @example Using a default value
35
35
  # ```puppet
36
36
  # get([1,2,[{'name' =>'waldo'}]], '2.1.name', 'not waldo')
37
37
  #
38
38
  # ```
39
- # Would result in `'not waldo'`
39
+ # Would result in 'not waldo'
40
40
  #
41
41
  # @example Quoting a key with period
42
42
  # ```puppet
@@ -128,8 +128,8 @@ Puppet::Functions.create_function(:get, Puppet::Functions::InternalFunction) do
128
128
 
129
129
  # Note: split_key always processes the initial segment as a string even if it could be an integer.
130
130
  # This since it is designed for lookup keys. For a numeric first segment
131
- # like '0.1' the wanted result is `[0,1]`, not `["0", 1]`. The workaround here is to
132
- # prefix the navigation with `"x."` thus giving split_key a first segment that is a string.
131
+ # like '0.1' the wanted result is [0,1], not ["0", 1]. The workaround here is to
132
+ # prefix the navigation with "x." thus giving split_key a first segment that is a string.
133
133
  # The fake segment is then dropped.
134
134
  segments = split_key("x." + navigation) {|err| _("Syntax error in dotted-navigation string")}
135
135
  segments.shift
@@ -4,22 +4,14 @@
4
4
  # and the values are arrays of elements in the collection that correspond to the key.
5
5
  Puppet::Functions.create_function(:group_by) do
6
6
  # @param collection A collection of things to group.
7
- # @example Group array of strings by length, results in e.g. `{ 1 => [a, b], 2 => [ab] }`
8
- # ```puppet
7
+ # @example Group array of strings by length, results in e.g. { 1 => [a, b], 2 => [ab] }
9
8
  # [a, b, ab].group_by |$s| { $s.length }
10
- # ```
11
- # @example Group array of strings by length and index, results in e.g. `{1 => ['a'], 2 => ['b', 'ab']}`
12
- # ```puppet
9
+ # @example Group array of strings by length and index, results in e.g. {1 => ['a'], 2 => ['b', 'ab']}
13
10
  # [a, b, ab].group_by |$i, $s| { $i%2 + $s.length }
14
- # ```
15
- # @example Group hash iterating by key-value pair, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
16
- # ```puppet
11
+ # @example Group hash iterating by key-value pair, results in e.g. { 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }
17
12
  # { a => [1, 2], b => [1] }.group_by |$kv| { $kv[1].length }
18
- # ```
19
- # @example Group hash iterating by key and value, results in e.g. `{ 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }`
20
- # ```puppet
21
- # { a => [1, 2], b => [1] }.group_by |$k, $v| { $v.length }
22
- # ```
13
+ # @example Group hash iterating by key and value, results in e.g. { 2 => [['a', [1, 2]]], 1 => [['b', [1]]] }
14
+ # { a => [1, 2], b => [1] }.group_by |$k, $v| { $v.length }
23
15
  dispatch :group_by_1 do
24
16
  required_param 'Collection', :collection
25
17
  block_param 'Callable[1,1]', :block
@@ -23,7 +23,7 @@
23
23
  # .lest || { fail("no value for $data[a][b][c]" }
24
24
  # ```
25
25
  #
26
- # Would fail the operation because `$data[a][b][c]` results in `undef`
26
+ # Would fail the operation because $data[a][b][c] results in `undef`
27
27
  # (there is no `b` key in `a`).
28
28
  #
29
29
  # In contrast - this example:
@@ -51,7 +51,7 @@
51
51
  # The following sections show the arguments and conversion rules
52
52
  # per data type built into the Puppet Type System.
53
53
  #
54
- # ### Conversion to `Optional[T]` and `NotUndef[T]`
54
+ # ### Conversion to Optional[T] and NotUndef[T]
55
55
  #
56
56
  # Conversion to these data types is the same as a conversion to the type argument `T`.
57
57
  # In the case of `Optional[T]` it is accepted that the argument to convert may be `undef`.
@@ -85,13 +85,13 @@
85
85
  # * `0` as radix 8.
86
86
  # * All others are decimal.
87
87
  # * Conversion from `String` accepts an optional sign in the string.
88
- # * For hexadecimal (radix 16) conversion an optional leading `"0x"`, or `"0X"` is accepted.
89
- # * For octal (radix 8) an optional leading `"0"` is accepted.
90
- # * For binary (radix 2) an optional leading `"0b"` or `"0B"` is accepted.
88
+ # * For hexadecimal (radix 16) conversion an optional leading "0x", or "0X" is accepted.
89
+ # * For octal (radix 8) an optional leading "0" is accepted.
90
+ # * For binary (radix 2) an optional leading "0b" or "0B" is accepted.
91
91
  # * When `radix` is set to `default`, the conversion is based on the leading.
92
- # characters in the string. A leading `"0"` for radix 8, a leading `"0x"`, or `"0X"` for
93
- # radix 16, and leading `"0b"` or `"0B"` for binary.
94
- # * Conversion from `Boolean` results in `0` for `false` and `1` for `true`.
92
+ # characters in the string. A leading "0" for radix 8, a leading "0x", or "0X" for
93
+ # radix 16, and leading "0b" or "0B" for binary.
94
+ # * Conversion from `Boolean` results in 0 for `false` and 1 for `true`.
95
95
  # * Conversion from `Integer`, `Float`, and `Boolean` ignores the radix.
96
96
  # * `Float` value fractions are truncated (no rounding).
97
97
  # * When `abs` is set to `true`, the result will be an absolute integer.
@@ -119,9 +119,9 @@
119
119
  # ```
120
120
  #
121
121
  # * For an integer, the floating point fraction of `.0` is added to the value.
122
- # * A `Boolean` `true` is converted to `1.0`, and a `false` to `0.0`.
122
+ # * A `Boolean` `true` is converted to 1.0, and a `false` to 0.0
123
123
  # * In `String` format, integer prefixes for hex and binary are understood (but not octal since
124
- # floating point in string format may start with a `'0'`).
124
+ # floating point in string format may start with a '0').
125
125
  # * When `abs` is set to `true`, the result will be an absolute floating point value.
126
126
  #
127
127
  # ### Conversion to Numeric
@@ -139,7 +139,7 @@
139
139
  # * If the value has a decimal period, or if given in scientific notation
140
140
  # (e/E), the result is a `Float`, otherwise the value is an `Integer`. The
141
141
  # conversion from `String` always uses a radix based on the prefix of the string.
142
- # * Conversion from `Boolean` results in `0` for `false` and `1` for `true`.
142
+ # * Conversion from `Boolean` results in 0 for `false` and 1 for `true`.
143
143
  # * When `abs` is set to `true`, the result will be an absolute `Float`or `Integer` value.
144
144
  #
145
145
  # @example Converting to Numeric in different ways
@@ -225,7 +225,7 @@
225
225
  # )
226
226
  # ```
227
227
  #
228
- # The directive consists of a percent (`%`) character, zero or more flags, optional minimum field width and
228
+ # The directive consists of a percent (%) character, zero or more flags, optional minimum field width and
229
229
  # a conversion specifier as follows:
230
230
  # ```
231
231
  # %[Flags][Width]Conversion
@@ -291,7 +291,7 @@
291
291
  # argument is omitted, an array of default formats will be used.
292
292
  #
293
293
  # A third optional timezone argument can be provided. The first argument will then be parsed as if it represents a local time in that
294
- # timezone. The timezone can be any timezone that is recognized when using the `'%z'` or `'%Z'` formats, or the word `'current'`, in which
294
+ # timezone. The timezone can be any timezone that is recognized when using the '%z' or '%Z' formats, or the word 'current', in which
295
295
  # case the current timezone of the evaluating process will be used. The timezone argument is case insensitive.
296
296
  #
297
297
  # The default timezone, when no argument is provided, or when using the keyword `default`, is 'UTC'.
@@ -336,7 +336,7 @@
336
336
  # | 0 | Use zeros for padding
337
337
  # | # | Change names to upper-case or change case of am/pm
338
338
  # | ^ | Use uppercase
339
- # | : | Use colons for `%z`
339
+ # | : | Use colons for %z
340
340
  #
341
341
  # ##### Format directives (names and padding can be altered using flags):
342
342
  #
@@ -345,48 +345,48 @@
345
345
  # | Format | Meaning |
346
346
  # | ------ | ------- |
347
347
  # | Y | Year with century, zero-padded to at least 4 digits |
348
- # | C | year / 100 (rounded down such as `20` in `2009`) |
349
- # | y | year % 100 (`00..99`) |
350
- # | m | Month of the year, zero-padded (`01..12`) |
351
- # | B | The full month name (`"January"`) |
352
- # | b | The abbreviated month name (`"Jan"`) |
353
- # | h | Equivalent to `%b` |
354
- # | d | Day of the month, zero-padded (`01..31`) |
355
- # | e | Day of the month, blank-padded (`1..31`) |
356
- # | j | Day of the year (`001..366`) |
348
+ # | C | year / 100 (rounded down such as 20 in 2009) |
349
+ # | y | year % 100 (00..99) |
350
+ # | m | Month of the year, zero-padded (01..12) |
351
+ # | B | The full month name ("January") |
352
+ # | b | The abbreviated month name ("Jan") |
353
+ # | h | Equivalent to %b |
354
+ # | d | Day of the month, zero-padded (01..31) |
355
+ # | e | Day of the month, blank-padded ( 1..31) |
356
+ # | j | Day of the year (001..366) |
357
357
  #
358
358
  # **Time (Hour, Minute, Second, Subsecond):**
359
359
  #
360
360
  # | Format | Meaning |
361
361
  # | ------ | ------- |
362
- # | H | Hour of the day, 24-hour clock, zero-padded (`00..23`) |
363
- # | k | Hour of the day, 24-hour clock, blank-padded (`0..23`) |
364
- # | I | Hour of the day, 12-hour clock, zero-padded (`01..12`) |
365
- # | l | Hour of the day, 12-hour clock, blank-padded (`1..12`) |
366
- # | P | Meridian indicator, lowercase (`"am"` or `"pm"`) |
367
- # | p | Meridian indicator, uppercase (`"AM"` or `"PM"`) |
368
- # | M | Minute of the hour (`00..59`) |
369
- # | S | Second of the minute (`00..60`) |
370
- # | L | Millisecond of the second (`000..999`). Digits under millisecond are truncated to not produce 1000 |
362
+ # | H | Hour of the day, 24-hour clock, zero-padded (00..23) |
363
+ # | k | Hour of the day, 24-hour clock, blank-padded ( 0..23) |
364
+ # | I | Hour of the day, 12-hour clock, zero-padded (01..12) |
365
+ # | l | Hour of the day, 12-hour clock, blank-padded ( 1..12) |
366
+ # | P | Meridian indicator, lowercase ("am" or "pm") |
367
+ # | p | Meridian indicator, uppercase ("AM" or "PM") |
368
+ # | M | Minute of the hour (00..59) |
369
+ # | S | Second of the minute (00..60) |
370
+ # | L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000 |
371
371
  # | N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified width are truncated to avoid carry up |
372
372
  #
373
373
  # **Time (Hour, Minute, Second, Subsecond):**
374
374
  #
375
375
  # | Format | Meaning |
376
376
  # | ------ | ------- |
377
- # | z | Time zone as hour and minute offset from UTC (e.g. `+0900`) |
378
- # | :z | hour and minute offset from UTC with a colon (e.g. `+09:00`) |
379
- # | ::z | hour, minute and second offset from UTC (e.g. `+09:00:00`) |
377
+ # | z | Time zone as hour and minute offset from UTC (e.g. +0900) |
378
+ # | :z | hour and minute offset from UTC with a colon (e.g. +09:00) |
379
+ # | ::z | hour, minute and second offset from UTC (e.g. +09:00:00) |
380
380
  # | Z | Abbreviated time zone name or similar information. (OS dependent) |
381
381
  #
382
382
  # **Weekday:**
383
383
  #
384
384
  # | Format | Meaning |
385
385
  # | ------ | ------- |
386
- # | A | The full weekday name (`"Sunday"`) |
387
- # | a | The abbreviated name (`"Sun"`) |
388
- # | u | Day of the week (Monday is `1`, `1..7`) |
389
- # | w | Day of the week (Sunday is `0`, `0..6`) |
386
+ # | A | The full weekday name ("Sunday") |
387
+ # | a | The abbreviated name ("Sun") |
388
+ # | u | Day of the week (Monday is 1, 1..7) |
389
+ # | w | Day of the week (Sunday is 0, 0..6) |
390
390
  #
391
391
  # **ISO 8601 week-based year and week number:**
392
392
  #
@@ -397,8 +397,8 @@
397
397
  # | Format | Meaning |
398
398
  # | ------ | ------- |
399
399
  # | G | The week-based year |
400
- # | g | The last 2 digits of the week-based year (`00..99`) |
401
- # | V | Week number of the week-based year (`01..53`) |
400
+ # | g | The last 2 digits of the week-based year (00..99) |
401
+ # | V | Week number of the week-based year (01..53) |
402
402
  #
403
403
  # **Week number:**
404
404
  #
@@ -407,8 +407,8 @@
407
407
  #
408
408
  # | Format | Meaning |
409
409
  # | ------ | ------- |
410
- # | U | Week number of the year. The week starts with Sunday. (`00..53`) |
411
- # | W | Week number of the year. The week starts with Monday. (`00..53`) |
410
+ # | U | Week number of the year. The week starts with Sunday. (00..53) |
411
+ # | W | Week number of the year. The week starts with Monday. (00..53) |
412
412
  #
413
413
  # **Seconds since the Epoch:**
414
414
  #
@@ -419,23 +419,23 @@
419
419
  #
420
420
  # | Format | Meaning |
421
421
  # | ------ | ------- |
422
- # | n | Newline character (`\n`) |
423
- # | t | Tab character (`\t`) |
424
- # | % | Literal `%` character |
422
+ # | n | Newline character (\n) |
423
+ # | t | Tab character (\t) |
424
+ # | % | Literal "%" character |
425
425
  #
426
426
  # **Combination:**
427
427
  #
428
428
  # | Format | Meaning |
429
429
  # | ------ | ------- |
430
- # | c | date and time (`%a %b %e %T %Y`) |
431
- # | D | Date (`%m/%d/%y`) |
432
- # | F | The ISO 8601 date format (`%Y-%m-%d`) |
433
- # | v | VMS date (`%e-%^b-%4Y`) |
434
- # | x | Same as `%D` |
435
- # | X | Same as `%T` |
436
- # | r | 12-hour time (`%I:%M:%S %p`) |
437
- # | R | 24-hour time (`%H:%M`) |
438
- # | T | 24-hour time (`%H:%M:%S`) |
430
+ # | c | date and time (%a %b %e %T %Y) |
431
+ # | D | Date (%m/%d/%y) |
432
+ # | F | The ISO 8601 date format (%Y-%m-%d) |
433
+ # | v | VMS date (%e-%^b-%4Y) |
434
+ # | x | Same as %D |
435
+ # | X | Same as %T |
436
+ # | r | 12-hour time (%I:%M:%S %p) |
437
+ # | R | 24-hour time (%H:%M) |
438
+ # | T | 24-hour time (%H:%M:%S) |
439
439
  #
440
440
  # The default array contains the following patterns:
441
441
  #
@@ -489,7 +489,7 @@
489
489
  # The mapping from data type to format is referred to as the *format map*. This map
490
490
  # allows different formatting depending on type.
491
491
  #
492
- # @example Positive Integers in Hexadecimal prefixed with `'0x'`, negative in Decimal
492
+ # @example Positive Integers in Hexadecimal prefixed with '0x', negative in Decimal
493
493
  #
494
494
  # ```puppet
495
495
  # $format_map = {
@@ -578,13 +578,13 @@
578
578
  #
579
579
  # | Format | Integer Formats
580
580
  # | ------ | ---------------
581
- # | d | Decimal, negative values produces leading `-`.
582
- # | x X | Hexadecimal in lower or upper case. Uses `..f/..F` for negative values unless `+` is also used. A `#` adds prefix `0x/0X`.
583
- # | o | Octal. Uses `..0` for negative values unless `+` is also used. A `#` adds prefix `0`.
584
- # | b B | Binary with prefix `b` or `B`. Uses `..1/..1` for negative values unless `+` is also used.
585
- # | c | Numeric value representing a Unicode value, result is a one unicode character string, quoted if alternative flag `#` is used
586
- # | s | Same as `d`, or `d` in quotes if alternative flag `#` is used.
587
- # | p | Same as `d`.
581
+ # | d | Decimal, negative values produces leading '-'.
582
+ # | x X | Hexadecimal in lower or upper case. Uses ..f/..F for negative values unless + is also used. A `#` adds prefix 0x/0X.
583
+ # | o | Octal. Uses ..0 for negative values unless `+` is also used. A `#` adds prefix 0.
584
+ # | b B | Binary with prefix 'b' or 'B'. Uses ..1/..1 for negative values unless `+` is also used.
585
+ # | c | Numeric value representing a Unicode value, result is a one unicode character string, quoted if alternative flag # is used
586
+ # | s | Same as d, or d in quotes if alternative flag # is used.
587
+ # | p | Same as d.
588
588
  # | eEfgGaA | Converts integer to float and formats using the floating point rules.
589
589
  #
590
590
  # Defaults to `d`.
@@ -594,11 +594,11 @@
594
594
  # | Format | Float formats
595
595
  # | ------ | -------------
596
596
  # | f | Floating point in non exponential notation.
597
- # | e E | Exponential notation with `e` or `E`.
598
- # | g G | Conditional exponential with `e` or `E` if exponent `< -4` or `>=` the precision.
599
- # | a A | Hexadecimal exponential form, using `x`/`X` as prefix and `p`/`P` before exponent.
600
- # | s | Converted to string using format `p`, then applying string formatting rule, alternate form `#`` quotes result.
601
- # | p | Same as `f` format with minimum significant number of fractional digits, prec has no effect.
597
+ # | e E | Exponential notation with 'e' or 'E'.
598
+ # | g G | Conditional exponential with 'e' or 'E' if exponent < -4 or >= the precision.
599
+ # | a A | Hexadecimal exponential form, using 'x'/'X' as prefix and 'p'/'P' before exponent.
600
+ # | s | Converted to string using format p, then applying string formatting rule, alternate form # quotes result.
601
+ # | p | Same as f format with minimum significant number of fractional digits, prec has no effect.
602
602
  # | dxXobBc | Converts float to integer and formats using the integer rules.
603
603
  #
604
604
  # Defaults to `p`.
@@ -621,12 +621,12 @@
621
621
  #
622
622
  # | Format | Boolean Formats
623
623
  # | ---- | -------------------
624
- # | t T | String `'true'/'false'` or `'True'/'False'`, first char if alternate form is used (i.e. `'t'/'f'` or `'T'/'F'`).
625
- # | y Y | String `'yes'/'no'`, `'Yes'/'No'`, `'y'/'n'` or `'Y'/'N'` if alternative flag `#` is used.
626
- # | dxXobB | Numeric value `0/1` in accordance with the given format which must be valid integer format.
627
- # | eEfgGaA | Numeric value `0.0/1.0` in accordance with the given float format and flags.
628
- # | s | String `'true'` / `'false'`.
629
- # | p | String `'true'` / `'false'`.
624
+ # | t T | String 'true'/'false' or 'True'/'False', first char if alternate form is used (i.e. 't'/'f' or 'T'/'F').
625
+ # | y Y | String 'yes'/'no', 'Yes'/'No', 'y'/'n' or 'Y'/'N' if alternative flag `#` is used.
626
+ # | dxXobB | Numeric value 0/1 in accordance with the given format which must be valid integer format.
627
+ # | eEfgGaA | Numeric value 0.0/1.0 in accordance with the given float format and flags.
628
+ # | s | String 'true' / 'false'.
629
+ # | p | String 'true' / 'false'.
630
630
  #
631
631
  # **Regexp to String**
632
632
  #
@@ -640,33 +640,33 @@
640
640
  # | Format | Undef formats
641
641
  # | ------ | -------------
642
642
  # | s | Empty string, or quoted empty string if alternative flag `#` is used.
643
- # | p | String `'undef'`, or quoted `'"undef"'` if alternative flag `#` is used.
644
- # | n | String `'nil'`, or `'null'` if alternative flag `#` is used.
645
- # | dxXobB | String `'NaN'`.
646
- # | eEfgGaA | String `'NaN'`.
647
- # | v | String `'n/a'`.
648
- # | V | String `'N/A'`.
649
- # | u | String `'undef'`, or `'undefined'` if alternative `#` flag is used.
643
+ # | p | String 'undef', or quoted '"undef"' if alternative flag `#` is used.
644
+ # | n | String 'nil', or 'null' if alternative flag `#` is used.
645
+ # | dxXobB | String 'NaN'.
646
+ # | eEfgGaA | String 'NaN'.
647
+ # | v | String 'n/a'.
648
+ # | V | String 'N/A'.
649
+ # | u | String 'undef', or 'undefined' if alternative `#` flag is used.
650
650
  #
651
651
  # **Default value to String**
652
652
  #
653
653
  # | Format | Default formats
654
654
  # | ------ | ---------------
655
- # | d D | String `'default'` or `'Default'`, alternative form `#` causes value to be quoted.
656
- # | s | Same as `d`.
657
- # | p | Same as `d`.
655
+ # | d D | String 'default' or 'Default', alternative form `#` causes value to be quoted.
656
+ # | s | Same as d.
657
+ # | p | Same as d.
658
658
  #
659
659
  # **Binary value to String**
660
660
  #
661
661
  # | Format | Default formats
662
662
  # | ------ | ---------------
663
663
  # | s | binary as unquoted UTF-8 characters (errors if byte sequence is invalid UTF-8). Alternate form escapes non ascii bytes.
664
- # | p | `'Binary("<base64strict>")'`
665
- # | b | `'<base64>'` - base64 string with newlines inserted
666
- # | B | `'<base64strict>'` - base64 strict string (without newlines inserted)
667
- # | u | `'<base64urlsafe>'` - base64 urlsafe string
668
- # | t | `'Binary'` - outputs the name of the type only
669
- # | T | `'BINARY'` - output the name of the type in all caps only
664
+ # | p | 'Binary("<base64strict>")'
665
+ # | b | '<base64>' - base64 string with newlines inserted
666
+ # | B | '<base64strict>' - base64 strict string (without newlines inserted)
667
+ # | u | '<base64urlsafe>' - base64 urlsafe string
668
+ # | t | 'Binary' - outputs the name of the type only
669
+ # | T | 'BINARY' - output the name of the type in all caps only
670
670
  #
671
671
  # * The alternate form flag `#` will quote the binary or base64 text output.
672
672
  # * The format `%#s` allows invalid UTF-8 characters and outputs all non ascii bytes
@@ -678,8 +678,8 @@
678
678
  # | Format | Array/Tuple Formats
679
679
  # | ------ | -------------
680
680
  # | a | Formats with `[ ]` delimiters and `,`, alternate form `#` indents nested arrays/hashes.
681
- # | s | Same as `a`.
682
- # | p | Same as `a`.
681
+ # | s | Same as a.
682
+ # | p | Same as a.
683
683
  #
684
684
  # See "Flags" `<[({\|` for formatting of delimiters, and "Additional parameters for containers; Array and Hash" for
685
685
  # more information about options.
@@ -695,7 +695,7 @@
695
695
  # | h | Formats with `{ }` delimiters, `,` element separator and ` => ` inner element separator unless overridden by flags.
696
696
  # | s | Same as h.
697
697
  # | p | Same as h.
698
- # | a | Converts the hash to an array of `[k,v]` tuples and formats it using array rule(s).
698
+ # | a | Converts the hash to an array of [k,v] tuples and formats it using array rule(s).
699
699
  #
700
700
  # See "Flags" `<[({\|` for formatting of delimiters, and "Additional parameters for containers; Array and Hash" for
701
701
  # more information about options.
@@ -714,18 +714,18 @@
714
714
  # | Flag | Effect
715
715
  # | ------ | ------
716
716
  # | (space) | A space instead of `+` for numeric output (`-` is shown), for containers skips delimiters.
717
- # | # | Alternate format; prefix `0x/0x`, `0` (octal) and `0b/0B` for binary, Floats force decimal '.'. For g/G keep trailing `0`.
718
- # | + | Show sign `+/-` depending on value's sign, changes `x`, `X`, `o`, `b`, `B` format to not use 2's complement form.
717
+ # | # | Alternate format; prefix 0x/0x, 0 (octal) and 0b/0B for binary, Floats force decimal '.'. For g/G keep trailing 0.
718
+ # | + | Show sign +/- depending on value's sign, changes x, X, o, b, B format to not use 2's complement form.
719
719
  # | - | Left justify the value in the given width.
720
- # | 0 | Pad with `0` instead of space for widths larger than value.
721
- # | <[({\| | Defines an enclosing pair `<> [] () {} or \| \|` when used with a container type.
720
+ # | 0 | Pad with 0 instead of space for widths larger than value.
721
+ # | <[({\| | Defines an enclosing pair <> [] () {} or \| \| when used with a container type.
722
722
  #
723
723
  # ### Conversion to Boolean
724
724
  #
725
725
  # Accepts a single value as argument:
726
726
  #
727
- # * Float `0.0` is `false`, all other float values are `true`
728
- # * Integer `0` is `false`, all other integer values are `true`
727
+ # * Float 0.0 is `false`, all other float values are `true`
728
+ # * Integer 0 is `false`, all other integer values are `true`
729
729
  # * Strings
730
730
  # * `true` if 'true', 'yes', 'y' (case independent compare)
731
731
  # * `false` if 'false', 'no', 'n' (case independent compare)
@@ -840,7 +840,7 @@
840
840
  # function SemVer.new(SemVerHash $hash_args)
841
841
  # ```
842
842
  #
843
- # @example `SemVer` and `SemVerRange` usage
843
+ # @example SemVer and SemVerRange usage
844
844
  #
845
845
  # ```puppet
846
846
  # # As a type, SemVer can describe disjunct ranges which versions can be
@@ -856,7 +856,7 @@
856
856
  # notice(SemVer('3.4.5') =~ $t) # true
857
857
  # ```
858
858
  #
859
- # ### Creating a `SemVerRange`
859
+ # ### Creating a SemVerRange
860
860
  #
861
861
  # A `SemVerRange` object represents a range of `SemVer`. It can be created from
862
862
  # a `String`, or from two `SemVer` instances, where either end can be given as
@@ -1,25 +1,8 @@
1
1
  # Makes iteration continue with the next value, optionally with a given value for this iteration.
2
2
  # If a value is not given it defaults to `undef`
3
- #
4
- # @example Using the `next()` function
5
- #
6
- # ```puppet
7
- # $data = ['a','b','c']
8
- # $data.each |Integer $index, String $value| {
9
- # if $index == 1 {
10
- # next()
11
- # }
12
- # notice ("${index} = ${value}")
13
- # }
14
- # ```
15
- #
16
- # Would notice:
17
- # ```
18
- # Notice: Scope(Class[main]): 0 = a
19
- # Notice: Scope(Class[main]): 2 = c
20
- # ```
21
3
  #
22
4
  # @since 4.7.0
5
+ #
23
6
  Puppet::Functions.create_function(:next) do
24
7
  dispatch :next_impl do
25
8
  optional_param 'Any', :value