puppet 8.2.0 → 8.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +25 -31
  4. data/ext/project_data.yaml +2 -2
  5. data/lib/puppet/application/doc.rb +1 -1
  6. data/lib/puppet/application/ssl.rb +42 -7
  7. data/lib/puppet/application.rb +5 -1
  8. data/lib/puppet/defaults.rb +5 -5
  9. data/lib/puppet/face/config.rb +1 -1
  10. data/lib/puppet/face/epp.rb +2 -2
  11. data/lib/puppet/face/module/list.rb +2 -2
  12. data/lib/puppet/face/parser.rb +1 -1
  13. data/lib/puppet/functions/split.rb +28 -1
  14. data/lib/puppet/indirector/facts/facter.rb +1 -1
  15. data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
  16. data/lib/puppet/indirector/indirection.rb +1 -1
  17. data/lib/puppet/info_service/task_information_service.rb +1 -1
  18. data/lib/puppet/module_tool.rb +1 -1
  19. data/lib/puppet/network/formats.rb +3 -3
  20. data/lib/puppet/network/http/memory_response.rb +1 -1
  21. data/lib/puppet/parameter/value_collection.rb +1 -1
  22. data/lib/puppet/parser/files.rb +4 -3
  23. data/lib/puppet/parser/functions.rb +1 -1
  24. data/lib/puppet/pops/loader/loader_paths.rb +4 -4
  25. data/lib/puppet/pops/lookup/explainer.rb +1 -1
  26. data/lib/puppet/pops/lookup/hiera_config.rb +1 -1
  27. data/lib/puppet/pops/model/factory.rb +1 -1
  28. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  29. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  30. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  31. data/lib/puppet/pops/parser/pn_parser.rb +1 -1
  32. data/lib/puppet/pops/pn.rb +1 -1
  33. data/lib/puppet/pops/serialization/json_path.rb +1 -1
  34. data/lib/puppet/pops/time/timespan.rb +4 -4
  35. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  36. data/lib/puppet/pops/types/string_converter.rb +6 -6
  37. data/lib/puppet/pops/types/type_formatter.rb +2 -2
  38. data/lib/puppet/pops/types/types.rb +1 -1
  39. data/lib/puppet/provider/nameservice/directoryservice.rb +2 -2
  40. data/lib/puppet/provider/package/apt.rb +1 -1
  41. data/lib/puppet/provider/package/dnf.rb +1 -1
  42. data/lib/puppet/provider/package/yum.rb +1 -1
  43. data/lib/puppet/provider/user/directoryservice.rb +1 -1
  44. data/lib/puppet/reference/configuration.rb +1 -1
  45. data/lib/puppet/reference/indirection.rb +1 -1
  46. data/lib/puppet/reports.rb +1 -1
  47. data/lib/puppet/transaction/report.rb +1 -1
  48. data/lib/puppet/type/filebucket.rb +1 -1
  49. data/lib/puppet/util/diff.rb +1 -1
  50. data/lib/puppet/util/execution.rb +9 -4
  51. data/lib/puppet/util/inifile.rb +2 -2
  52. data/lib/puppet/util/monkey_patches.rb +18 -0
  53. data/lib/puppet/util/package/version/rpm.rb +1 -1
  54. data/lib/puppet/util/provider_features.rb +1 -1
  55. data/lib/puppet/util/selinux.rb +1 -1
  56. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  57. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  58. data/lib/puppet/util/windows/adsi.rb +9 -2
  59. data/lib/puppet/util/windows/error.rb +1 -1
  60. data/lib/puppet/util/windows/file.rb +2 -2
  61. data/lib/puppet/util/windows/process.rb +1 -1
  62. data/lib/puppet/util/windows/sid.rb +4 -2
  63. data/lib/puppet/util.rb +2 -3
  64. data/lib/puppet/version.rb +1 -1
  65. data/lib/puppet/x509/cert_provider.rb +6 -2
  66. data/locales/puppet.pot +40 -32
  67. data/man/man5/puppet.conf.5 +3 -3
  68. data/man/man8/puppet-agent.8 +1 -1
  69. data/man/man8/puppet-apply.8 +1 -1
  70. data/man/man8/puppet-catalog.8 +1 -1
  71. data/man/man8/puppet-config.8 +1 -1
  72. data/man/man8/puppet-describe.8 +1 -1
  73. data/man/man8/puppet-device.8 +1 -1
  74. data/man/man8/puppet-doc.8 +1 -1
  75. data/man/man8/puppet-epp.8 +1 -1
  76. data/man/man8/puppet-facts.8 +1 -1
  77. data/man/man8/puppet-filebucket.8 +1 -1
  78. data/man/man8/puppet-generate.8 +1 -1
  79. data/man/man8/puppet-help.8 +1 -1
  80. data/man/man8/puppet-lookup.8 +1 -1
  81. data/man/man8/puppet-module.8 +1 -1
  82. data/man/man8/puppet-node.8 +1 -1
  83. data/man/man8/puppet-parser.8 +1 -1
  84. data/man/man8/puppet-plugin.8 +1 -1
  85. data/man/man8/puppet-report.8 +1 -1
  86. data/man/man8/puppet-resource.8 +1 -1
  87. data/man/man8/puppet-script.8 +1 -1
  88. data/man/man8/puppet-ssl.8 +5 -1
  89. data/man/man8/puppet.8 +2 -2
  90. data/spec/integration/type/exec_spec.rb +13 -0
  91. data/spec/lib/puppet_spec/verbose.rb +10 -1
  92. data/spec/unit/agent_spec.rb +2 -9
  93. data/spec/unit/application/ssl_spec.rb +49 -0
  94. data/spec/unit/functions/split_spec.rb +6 -0
  95. data/spec/unit/info_service_spec.rb +1 -1
  96. data/spec/unit/ssl/certificate_signer_spec.rb +17 -0
  97. data/spec/unit/ssl/ssl_provider_spec.rb +1 -1
  98. data/spec/unit/util/execution_spec.rb +1 -0
  99. data/spec/unit/util/monkey_patches_spec.rb +42 -0
  100. data/spec/unit/util/windows/adsi_spec.rb +25 -0
  101. metadata +5 -3
data/locales/puppet.pot CHANGED
@@ -6,11 +6,11 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: Puppet automation framework 8.1.0-43-g2052c18a7f\n"
9
+ "Project-Id-Version: Puppet automation framework 8.2.0-29-g809d465a09\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
12
- "POT-Creation-Date: 2023-07-06 21:09+0000\n"
13
- "PO-Revision-Date: 2023-07-06 21:09+0000\n"
12
+ "POT-Creation-Date: 2023-09-21 23:07+0000\n"
13
+ "PO-Revision-Date: 2023-09-21 23:07+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -442,62 +442,70 @@ msgstr ""
442
442
  msgid "Manage SSL keys and certificates for puppet SSL clients"
443
443
  msgstr ""
444
444
 
445
- #: ../lib/puppet/application/ssl.rb:107
445
+ #: ../lib/puppet/application/ssl.rb:112
446
446
  msgid "An action must be specified."
447
447
  msgstr ""
448
448
 
449
- #: ../lib/puppet/application/ssl.rb:131 ../lib/puppet/application/ssl.rb:138
449
+ #: ../lib/puppet/application/ssl.rb:136 ../lib/puppet/application/ssl.rb:143
450
450
  msgid "The certificate for '%{name}' has not yet been signed"
451
451
  msgstr ""
452
452
 
453
- #: ../lib/puppet/application/ssl.rb:149
453
+ #: ../lib/puppet/application/ssl.rb:156
454
454
  msgid "Completed SSL initialization"
455
455
  msgstr ""
456
456
 
457
- #: ../lib/puppet/application/ssl.rb:153
457
+ #: ../lib/puppet/application/ssl.rb:160
458
458
  msgid "Unknown action '%{action}'"
459
459
  msgstr ""
460
460
 
461
- #: ../lib/puppet/application/ssl.rb:167 ../lib/puppet/ssl/state_machine.rb:273
462
- msgid "Creating a new EC SSL key for %{name} using curve %{curve}"
461
+ #: ../lib/puppet/application/ssl.rb:181
462
+ msgid "Submitted certificate request for '%{name}' to %{url}"
463
463
  msgstr ""
464
464
 
465
- #: ../lib/puppet/application/ssl.rb:170
466
- msgid "Creating a new SSL key for %{name}"
465
+ #: ../lib/puppet/application/ssl.rb:184
466
+ msgid "Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server"
467
467
  msgstr ""
468
468
 
469
- #: ../lib/puppet/application/ssl.rb:180
470
- msgid "Submitted certificate request for '%{name}' to %{url}"
469
+ #: ../lib/puppet/application/ssl.rb:186 ../lib/puppet/application/ssl.rb:189
470
+ msgid "Failed to submit certificate request: %{message}"
471
471
  msgstr ""
472
472
 
473
- #: ../lib/puppet/application/ssl.rb:183
474
- msgid "Could not submit certificate request for '%{name}' to %{url} due to a conflict on the server"
473
+ #: ../lib/puppet/application/ssl.rb:201
474
+ msgid "Generated certificate request in '%{path}'"
475
475
  msgstr ""
476
476
 
477
- #: ../lib/puppet/application/ssl.rb:185 ../lib/puppet/application/ssl.rb:188
478
- msgid "Failed to submit certificate request: %{message}"
477
+ #: ../lib/puppet/application/ssl.rb:203
478
+ msgid "Failed to generate certificate request: %{message}"
479
479
  msgstr ""
480
480
 
481
- #: ../lib/puppet/application/ssl.rb:196
481
+ #: ../lib/puppet/application/ssl.rb:211
482
482
  msgid "Downloading certificate '%{name}' from %{url}"
483
483
  msgstr ""
484
484
 
485
- #: ../lib/puppet/application/ssl.rb:200
485
+ #: ../lib/puppet/application/ssl.rb:215
486
486
  msgid "Downloaded certificate '%{name}' with fingerprint %{fingerprint}"
487
487
  msgstr ""
488
488
 
489
- #: ../lib/puppet/application/ssl.rb:213 ../lib/puppet/application/ssl.rb:216
489
+ #: ../lib/puppet/application/ssl.rb:228 ../lib/puppet/application/ssl.rb:231
490
490
  msgid "Failed to download certificate: %{message}"
491
491
  msgstr ""
492
492
 
493
- #: ../lib/puppet/application/ssl.rb:245 ../lib/puppet/application/ssl.rb:248
493
+ #: ../lib/puppet/application/ssl.rb:260 ../lib/puppet/application/ssl.rb:263
494
494
  msgid "Failed to connect to the CA to determine if certificate %{certname} has been cleaned"
495
495
  msgstr ""
496
496
 
497
- #: ../lib/puppet/application/ssl.rb:275
497
+ #: ../lib/puppet/application/ssl.rb:290
498
498
  msgid "Removed %{label} %{path}"
499
499
  msgstr ""
500
500
 
501
+ #: ../lib/puppet/application/ssl.rb:307 ../lib/puppet/ssl/state_machine.rb:273
502
+ msgid "Creating a new EC SSL key for %{name} using curve %{curve}"
503
+ msgstr ""
504
+
505
+ #: ../lib/puppet/application/ssl.rb:310
506
+ msgid "Creating a new SSL key for %{name}"
507
+ msgstr ""
508
+
501
509
  #: ../lib/puppet/configurer.rb:22
502
510
  msgid "Puppet configuration client"
503
511
  msgstr ""
@@ -1752,7 +1760,7 @@ msgstr ""
1752
1760
  msgid "Timeout waiting for exclusive lock on %{path}"
1753
1761
  msgstr ""
1754
1762
 
1755
- #: ../lib/puppet/file_system/jruby.rb:19 ../lib/puppet/file_system/windows.rb:128 ../lib/puppet/util.rb:672
1763
+ #: ../lib/puppet/file_system/jruby.rb:19 ../lib/puppet/file_system/windows.rb:128 ../lib/puppet/util.rb:671
1756
1764
  msgid "Is a directory: %{directory}"
1757
1765
  msgstr ""
1758
1766
 
@@ -2226,11 +2234,11 @@ msgstr ""
2226
2234
  msgid "Run `puppet agent -t`"
2227
2235
  msgstr ""
2228
2236
 
2229
- #: ../lib/puppet/http/client.rb:388
2237
+ #: ../lib/puppet/http/client.rb:390
2230
2238
  msgid "Sleeping for %{interval} seconds before retrying the request"
2231
2239
  msgstr ""
2232
2240
 
2233
- #: ../lib/puppet/http/client.rb:438
2241
+ #: ../lib/puppet/http/client.rb:445
2234
2242
  msgid "HTTP REST queries cannot handle values of type '%{klass}'"
2235
2243
  msgstr ""
2236
2244
 
@@ -7335,7 +7343,7 @@ msgstr ""
7335
7343
  msgid "%{name} has not declared what class it wraps"
7336
7344
  msgstr ""
7337
7345
 
7338
- #: ../lib/puppet/ssl/base.rb:32 ../lib/puppet/x509/cert_provider.rb:382
7346
+ #: ../lib/puppet/ssl/base.rb:32 ../lib/puppet/x509/cert_provider.rb:384
7339
7347
  msgid "Certname %{name} must not contain unprintable or non-ASCII characters"
7340
7348
  msgstr ""
7341
7349
 
@@ -8468,11 +8476,11 @@ msgstr ""
8468
8476
  msgid "path may not be nil"
8469
8477
  msgstr ""
8470
8478
 
8471
- #: ../lib/puppet/util.rb:587
8479
+ #: ../lib/puppet/util.rb:586
8472
8480
  msgid "replace_file requires a block"
8473
8481
  msgstr ""
8474
8482
 
8475
- #: ../lib/puppet/util.rb:591
8483
+ #: ../lib/puppet/util.rb:590
8476
8484
  msgid "replace_file default_mode: %{default_mode} is invalid"
8477
8485
  msgstr ""
8478
8486
 
@@ -8757,19 +8765,19 @@ msgstr ""
8757
8765
  msgid "Working directory %{cwd} does not exist!"
8758
8766
  msgstr ""
8759
8767
 
8760
- #: ../lib/puppet/util/execution.rb:278
8768
+ #: ../lib/puppet/util/execution.rb:283
8761
8769
  msgid "Could not get output"
8762
8770
  msgstr ""
8763
8771
 
8764
- #: ../lib/puppet/util/execution.rb:287
8772
+ #: ../lib/puppet/util/execution.rb:292
8765
8773
  msgid "Execution of '%{str}' returned %{exit_status}: %{output}"
8766
8774
  msgstr ""
8767
8775
 
8768
- #: ../lib/puppet/util/execution.rb:364
8776
+ #: ../lib/puppet/util/execution.rb:369
8769
8777
  msgid "Could not execute posix command: %{detail}"
8770
8778
  msgstr ""
8771
8779
 
8772
- #: ../lib/puppet/util/execution.rb:412
8780
+ #: ../lib/puppet/util/execution.rb:417
8773
8781
  msgid "Waiting for output; will sleep %{time_to_sleep} seconds"
8774
8782
  msgstr ""
8775
8783
 
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPETCONF" "5" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPETCONF" "5" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  \fBThis page is autogenerated; any changes will get overwritten\fR
6
6
  .
7
7
  .SH "Configuration settings"
@@ -849,7 +849,7 @@ Where individual hosts store and look for their certificates\.
849
849
  .IP "" 0
850
850
  .
851
851
  .SS "hostcert_renewal_interval"
852
- How often the Puppet agent refreshes its client certificate\. By default the client certificate is refreshed once every 30 days\. If a different duration is specified, then the agent will refresh its client certificate whenever it next runs and the elapsed time since the client certificate was last refreshed exceeds the duration\.
852
+ When the Puppet agent refreshes its client certificate\. By default the client certificate will refresh 30 days before the certificate expires\. If a different duration is specified, then the agent will refresh its client certificate whenever it next runs and if the client certificate expires within the duration specified\.
853
853
  .
854
854
  .P
855
855
  In general, the duration should be greater than the \fBruninterval\fR\. Setting it to 0 will disable automatic renewal\.
@@ -973,7 +973,7 @@ The time to wait for data to be read from an HTTP connection\. If nothing is rea
973
973
  The HTTP User\-Agent string to send when making network requests\.
974
974
  .
975
975
  .IP "\(bu" 4
976
- \fIDefault\fR: \fBPuppet/8\.2\.0 Ruby/3\.1\.1\-p18 (x86_64\-linux)\fR
976
+ \fIDefault\fR: \fBPuppet/8\.3\.0 Ruby/3\.1\.1\-p18 (x86_64\-linux)\fR
977
977
  .
978
978
  .IP "" 0
979
979
  .
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-AGENT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-AGENT" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-agent\fR \- The puppet agent daemon
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-APPLY" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-APPLY" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-apply\fR \- Apply Puppet manifests locally
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-CATALOG" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CATALOG" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-catalog\fR \- Compile, save, view, and convert catalogs\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-CONFIG" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CONFIG" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-config\fR \- Interact with Puppet\'s settings\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-DESCRIBE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DESCRIBE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-describe\fR \- Display help about resource types
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-DEVICE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DEVICE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-device\fR \- Manage remote network devices
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-DOC" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DOC" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-doc\fR \- Generate Puppet references
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-EPP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-EPP" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-epp\fR \- Interact directly with the EPP template parser/renderer\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-FACTS" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FACTS" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-facts\fR \- Retrieve and store facts\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-FILEBUCKET" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FILEBUCKET" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-filebucket\fR \- Store and retrieve files in a filebucket
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-GENERATE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-GENERATE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-generate\fR \- Generates Puppet code from Ruby definitions\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-HELP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-HELP" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-help\fR \- Display Puppet help\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-LOOKUP" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-LOOKUP" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-lookup\fR \- Interactive Hiera lookup
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-MODULE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MODULE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-module\fR \- Creates, installs and searches for modules on the Puppet Forge\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-NODE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-NODE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-node\fR \- View and manage node definitions\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PARSER" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PARSER" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-parser\fR \- Interact directly with the parser\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PLUGIN" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PLUGIN" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-REPORT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-REPORT" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-report\fR \- Create, display, and submit reports\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-RESOURCE" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-RESOURCE" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-resource\fR \- The resource abstraction layer shell
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-SCRIPT" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SCRIPT" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-script\fR \- Run a puppet manifests as a script without compiling a catalog
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-SSL" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SSL" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-ssl\fR \- Manage SSL keys and certificates for puppet SSL clients
@@ -42,6 +42,10 @@ submit_request
42
42
  Generate a certificate signing request (CSR) and submit it to the CA\. If a private and public key pair already exist, they will be used to generate the CSR\. Otherwise a new key pair will be generated\. If a CSR has already been submitted with the given \fBcertname\fR, then the operation will fail\.
43
43
  .
44
44
  .TP
45
+ generate_request
46
+ Generate a certificate signing request (CSR)\. If a private and public key pair already exist, they will be used to generate the CSR\. Otherwise a new key pair will be generated\.
47
+ .
48
+ .TP
45
49
  download_cert
46
50
  Download a certificate for this host\. If the current private key matches the downloaded certificate, then the certificate will be saved and used for subsequent requests\. If there is already an existing certificate, it will be overwritten\.
47
51
  .
data/man/man8/puppet.8 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET" "8" "August 2023" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET" "8" "October 2023" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\fR
@@ -25,4 +25,4 @@ Specialized:
25
25
  catalog Compile, save, view, and convert catalogs\. describe Display help about resource types device Manage remote network devices doc Generate Puppet references epp Interact directly with the EPP template parser/renderer\. facts Retrieve and store facts\. filebucket Store and retrieve files in a filebucket generate Generates Puppet code from Ruby definitions\. node View and manage node definitions\. parser Interact directly with the parser\. plugin Interact with the Puppet plugin system\. script Run a puppet manifests as a script without compiling a catalog ssl Manage SSL keys and certificates for puppet SSL clients
26
26
  .
27
27
  .P
28
- See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v8\.2\.0
28
+ See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v8\.3\.0
@@ -75,6 +75,19 @@ describe Puppet::Type.type(:exec), unless: Puppet::Util::Platform.jruby? do
75
75
  end
76
76
  end
77
77
 
78
+ context 'when an exec sends an EOF' do
79
+ let(:command) { ["/bin/bash", "-c", "exec /bin/sleep 1 >/dev/null 2>&1"] }
80
+
81
+ it 'should not take significant user time' do
82
+ exec = described_class.new :command => command, :path => ENV['PATH']
83
+ catalog.add_resource exec
84
+ timed_apply = Benchmark.measure { catalog.apply }
85
+ # In testing I found the user time before the patch in 4f35fd262e to be above
86
+ # 0.3, after the patch it was consistently below 0.1 seconds.
87
+ expect(timed_apply.utime).to be < 0.3
88
+ end
89
+ end
90
+
78
91
  context 'when command is a string' do
79
92
  let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }
80
93
 
@@ -1,4 +1,4 @@
1
- # Support code for running stuff with warnings disabled.
1
+ # Support code for running stuff with warnings disabled or enabled
2
2
  module Kernel
3
3
  def with_verbose_disabled
4
4
  verbose, $VERBOSE = $VERBOSE, nil
@@ -6,4 +6,13 @@ module Kernel
6
6
  $VERBOSE = verbose
7
7
  return result
8
8
  end
9
+
10
+ def with_verbose_enabled
11
+ verbose, $VERBOSE = $VERBOSE, true
12
+ begin
13
+ yield
14
+ ensure
15
+ $VERBOSE = verbose
16
+ end
17
+ end
9
18
  end
@@ -15,19 +15,12 @@ class AgentTestClient
15
15
  end
16
16
  end
17
17
 
18
- def without_warnings
19
- flag = $VERBOSE
20
- $VERBOSE = nil
21
- yield
22
- $VERBOSE = flag
23
- end
24
-
25
18
  describe Puppet::Agent do
26
19
  before do
27
20
  @agent = Puppet::Agent.new(AgentTestClient, false)
28
21
 
29
22
  # make Puppet::Application safe for stubbing; restore in an :after block; silence warnings for this.
30
- without_warnings { Puppet::Application = Class.new(Puppet::Application) }
23
+ with_verbose_disabled { Puppet::Application = Class.new(Puppet::Application) }
31
24
  allow(Puppet::Application).to receive(:clear?).and_return(true)
32
25
  Puppet::Application.class_eval do
33
26
  class << self
@@ -44,7 +37,7 @@ describe Puppet::Agent do
44
37
 
45
38
  after do
46
39
  # restore Puppet::Application from stub-safe subclass, and silence warnings
47
- without_warnings { Puppet::Application = Puppet::Application.superclass }
40
+ with_verbose_disabled { Puppet::Application = Puppet::Application.superclass }
48
41
  end
49
42
 
50
43
  it "should set its client class at initialization" do
@@ -171,6 +171,50 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
171
171
  end
172
172
  end
173
173
 
174
+ context 'when generating a CSR' do
175
+ let(:csr_path) { Puppet[:hostcsr] }
176
+ let(:requestdir) { Puppet[:requestdir] }
177
+
178
+ before do
179
+ ssl.command_line.args << 'generate_request'
180
+ end
181
+
182
+ it 'generates an RSA private key' do
183
+ File.unlink(Puppet[:hostprivkey])
184
+
185
+ expects_command_to_pass(%r{Generated certificate request in '#{csr_path}'})
186
+ end
187
+
188
+ it 'generates an EC private key' do
189
+ Puppet[:key_type] = 'ec'
190
+ File.unlink(Puppet[:hostprivkey])
191
+
192
+ expects_command_to_pass(%r{Generated certificate request in '#{csr_path}'})
193
+ end
194
+
195
+ it 'registers OIDs' do
196
+ expect(Puppet::SSL::Oids).to receive(:register_puppet_oids)
197
+
198
+ expects_command_to_pass(%r{Generated certificate request in '#{csr_path}'})
199
+ end
200
+
201
+ it 'saves the CSR locally' do
202
+ expects_command_to_pass(%r{Generated certificate request in '#{csr_path}'})
203
+
204
+ expect(Puppet::FileSystem).to be_exist(csr_path)
205
+ end
206
+
207
+ it 'accepts dns alt names' do
208
+ Puppet[:dns_alt_names] = 'majortom'
209
+
210
+ expects_command_to_pass
211
+
212
+ csr = Puppet::SSL::CertificateRequest.new(name)
213
+ csr.read(csr_path)
214
+ expect(csr.subject_alt_names).to include('DNS:majortom')
215
+ end
216
+ end
217
+
174
218
  context 'when downloading a certificate' do
175
219
  before do
176
220
  ssl.command_line.args << 'download_cert'
@@ -347,6 +391,11 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
347
391
  expects_command_to_fail(%r{Failed to connect to the CA to determine if certificate #{name} has been cleaned})
348
392
  end
349
393
 
394
+ it 'raises if we have extra args' do
395
+ ssl.command_line.args << 'hostname.example.biz'
396
+ expects_command_to_fail(/Extra arguments detected: hostname.example.biz/)
397
+ end
398
+
350
399
  context 'when deleting local CA' do
351
400
  before do
352
401
  ssl.command_line.args << '--localca'
@@ -50,4 +50,10 @@ describe 'the split function' do
50
50
  it 'should handle pattern in Regexp Type form with missing regular expression' do
51
51
  expect(split('ab',type_parser.parse('Regexp'))).to eql(['a', 'b'])
52
52
  end
53
+
54
+ it 'should handle sensitive String' do
55
+ expect(split(Puppet::Pops::Types::PSensitiveType::Sensitive.new('a,b'), ',')).to be_a(Puppet::Pops::Types::PSensitiveType::Sensitive)
56
+ expect(split(Puppet::Pops::Types::PSensitiveType::Sensitive.new('a,b'), /,/)).to be_a(Puppet::Pops::Types::PSensitiveType::Sensitive)
57
+ expect(split(Puppet::Pops::Types::PSensitiveType::Sensitive.new('a,b'), type_parser.parse('Regexp[/,/]'))).to be_a(Puppet::Pops::Types::PSensitiveType::Sensitive)
58
+ end
53
59
  end
@@ -47,7 +47,7 @@ describe "Puppet::InfoService" do
47
47
  :content => metadata.to_json}]]})
48
48
  File.write("#{modpath}/#{mod_name}/tasks/atask.json", "NOT JSON")
49
49
 
50
- expect(Puppet).to receive(:send_log).with(:err, 'Failed to validate task')
50
+ expect(Puppet).to receive(:send_log).with(:err, /unexpected token at 'NOT JSON'/)
51
51
 
52
52
  @tasks = Puppet::InfoService.tasks_per_environment(env_name)
53
53
  expect(@tasks.map{|t| t[:name]}).to contain_exactly('test1::btask', 'test1::ctask')
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Puppet::SSL::CertificateSigner do
4
+ include PuppetSpec::Files
5
+
6
+ let(:wrong_key) { OpenSSL::PKey::RSA.new(512) }
7
+ let(:client_cert) { cert_fixture('signed.pem') }
8
+
9
+ # jruby-openssl >= 0.13.0 (JRuby >= 9.3.5.0) raises an error when signing a
10
+ # certificate when there is a discrepancy between the certificate and key.
11
+ it 'raises if client cert signature is invalid', if: Puppet::Util::Platform.jruby? && RUBY_VERSION.to_f >= 2.6 do
12
+ expect {
13
+ client_cert.sign(wrong_key, OpenSSL::Digest::SHA256.new)
14
+ }.to raise_error(OpenSSL::X509::CertificateError,
15
+ 'invalid public key data')
16
+ end
17
+ end
@@ -338,7 +338,7 @@ describe Puppet::SSL::SSLProvider do
338
338
  end
339
339
  end
340
340
 
341
- it 'raises if intermediate CA signature is invalid' do
341
+ it 'raises if intermediate CA signature is invalid', unless: Puppet::Util::Platform.jruby? && RUBY_VERSION.to_f >= 2.6 do
342
342
  int = global_cacerts.last
343
343
  int.public_key = wrong_key.public_key if Puppet::Util::Platform.jruby?
344
344
  int.sign(wrong_key, OpenSSL::Digest::SHA256.new)
@@ -29,6 +29,7 @@ describe Puppet::Util::Execution, if: !Puppet::Util::Platform.jruby? do
29
29
  allow(FFI::WIN32).to receive(:CloseHandle).with(thread_handle)
30
30
  else
31
31
  allow(Process).to receive(:waitpid2).with(pid, Process::WNOHANG).and_return(nil, [pid, double('child_status', :exitstatus => exitstatus)])
32
+ allow(Process).to receive(:waitpid2).with(pid, 0).and_return(nil, [pid, double('child_status', :exitstatus => exitstatus)])
32
33
  allow(Process).to receive(:waitpid2).with(pid).and_return([pid, double('child_status', :exitstatus => exitstatus)])
33
34
  end
34
35
  end