puppet 6.1.0-x86-mingw32 → 6.2.0-x86-mingw32

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -11
  3. data/lib/puppet.rb +4 -4
  4. data/lib/puppet/application/agent.rb +3 -0
  5. data/lib/puppet/application/apply.rb +3 -0
  6. data/lib/puppet/application/device.rb +3 -0
  7. data/lib/puppet/application/script.rb +3 -0
  8. data/lib/puppet/defaults.rb +21 -11
  9. data/lib/puppet/forge.rb +4 -1
  10. data/lib/puppet/pops/issues.rb +3 -4
  11. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +60 -4
  12. data/lib/puppet/pops/model/pn_transformer.rb +5 -0
  13. data/lib/puppet/pops/parser/eparser.rb +656 -656
  14. data/lib/puppet/provider/package/pkg.rb +20 -4
  15. data/lib/puppet/provider/package/portage.rb +15 -4
  16. data/lib/puppet/rest/route.rb +1 -1
  17. data/lib/puppet/settings.rb +10 -5
  18. data/lib/puppet/transaction.rb +12 -7
  19. data/lib/puppet/util/command_line.rb +5 -1
  20. data/lib/puppet/util/log/destinations.rb +3 -0
  21. data/lib/puppet/version.rb +1 -1
  22. data/locales/puppet.pot +241 -237
  23. data/man/man5/puppet.conf.5 +14 -6
  24. data/man/man8/puppet-agent.8 +4 -1
  25. data/man/man8/puppet-apply.8 +4 -1
  26. data/man/man8/puppet-catalog.8 +1 -1
  27. data/man/man8/puppet-config.8 +1 -1
  28. data/man/man8/puppet-describe.8 +1 -1
  29. data/man/man8/puppet-device.8 +4 -1
  30. data/man/man8/puppet-doc.8 +1 -1
  31. data/man/man8/puppet-epp.8 +1 -1
  32. data/man/man8/puppet-facts.8 +1 -1
  33. data/man/man8/puppet-filebucket.8 +1 -1
  34. data/man/man8/puppet-generate.8 +1 -1
  35. data/man/man8/puppet-help.8 +1 -1
  36. data/man/man8/puppet-key.8 +1 -1
  37. data/man/man8/puppet-lookup.8 +1 -1
  38. data/man/man8/puppet-man.8 +1 -1
  39. data/man/man8/puppet-module.8 +1 -1
  40. data/man/man8/puppet-node.8 +1 -1
  41. data/man/man8/puppet-parser.8 +1 -1
  42. data/man/man8/puppet-plugin.8 +1 -1
  43. data/man/man8/puppet-report.8 +1 -1
  44. data/man/man8/puppet-resource.8 +1 -1
  45. data/man/man8/puppet-script.8 +4 -1
  46. data/man/man8/puppet-ssl.8 +1 -1
  47. data/man/man8/puppet-status.8 +1 -1
  48. data/man/man8/puppet.8 +2 -2
  49. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +11 -0
  50. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +11 -0
  51. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +11 -0
  52. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +12 -0
  53. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +9 -0
  54. data/spec/unit/forge/forge_spec.rb +4 -2
  55. data/spec/unit/pops/loaders/loaders_spec.rb +65 -3
  56. data/spec/unit/pops/model/pn_transformer_spec.rb +4 -0
  57. data/spec/unit/provider/package/pkg_spec.rb +18 -0
  58. data/spec/unit/provider/package/portage_spec.rb +16 -2
  59. data/spec/unit/provider/service/systemd_spec.rb +7 -5
  60. data/spec/unit/rest/route_spec.rb +1 -1
  61. data/spec/unit/settings_spec.rb +36 -0
  62. data/spec/unit/transaction_spec.rb +54 -0
  63. data/spec/unit/util/command_line_spec.rb +23 -2
  64. data/spec/unit/util/log/destinations_spec.rb +18 -0
  65. metadata +12 -2
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPETCONF" "5" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  \fBThis page is autogenerated; any changes will get overwritten\fR
6
6
  .
7
7
  .SH "Configuration settings"
@@ -237,16 +237,16 @@ The certificate directory\.
237
237
  Whether certificate revocation checking should be enabled, and what level of checking should be performed\.
238
238
  .
239
239
  .P
240
- When certificate revocation is enabled Puppet expects the contents of its CRL to be one or more PEM encoded CRLs concatenated together\. When using a cert bundle CRLs for all CAs in the chain of trust must be included in the crl file with the first CRL listed being for the root of the chain, the last being for the leaf CA\.
240
+ When certificate revocation is enabled, Puppet expects the contents of its CRL to be one or more PEM\-encoded CRLs concatenated together\. When using a cert bundle, CRLs for all CAs in the chain of trust must be included in the crl file\. The chain should be ordered from least to most authoritative, with the first CRL listed being for the root of the chain and the last being for the leaf CA\.
241
241
  .
242
242
  .P
243
- When certificate_revocation is set to \'true\' or \'chain\', Puppet will ensure that each CA in the chain of trust has not been revoked by its issuing CA\.
243
+ When certificate_revocation is set to \'true\' or \'chain\', Puppet ensures that each CA in the chain of trust has not been revoked by its issuing CA\.
244
244
  .
245
245
  .P
246
- When certificate_revocation is set to \'leaf\', Puppet will verify certs against the issuing CA\'s revocation list but not verify the revocation status of the issuing CA or any CA above it within the chain of trust\.
246
+ When certificate_revocation is set to \'leaf\', Puppet verifies certs against the issuing CA\'s revocation list, but it does not verify the revocation status of the issuing CA or any CA above it within the chain of trust\.
247
247
  .
248
248
  .P
249
- When certificate_revocation is set to \'false\', Puppet will disable all certificate revocation checking and will not attempt to download the CRL\.
249
+ When certificate_revocation is set to \'false\', Puppet disables all certificate revocation checking and does not attempt to download the CRL\.
250
250
  .
251
251
  .IP "\(bu" 4
252
252
  \fIDefault\fR: chain
@@ -692,6 +692,14 @@ Freezes the \'main\' class, disallowing any code to be added to it\. This essent
692
692
  .
693
693
  .IP "" 0
694
694
  .
695
+ .SS "func3x_check"
696
+ Causes validation of loaded legacy Ruby functions (3x API) to raise errors about illegal constructs that could cause harm or that simply does not work\. This flag is on by default\. This flag is made available so that the validation can be turned off in case the method of validation is faulty \- if encountered, please file a bug report\.
697
+ .
698
+ .IP "\(bu" 4
699
+ \fIDefault\fR: true
700
+ .
701
+ .IP "" 0
702
+ .
695
703
  .SS "future_features"
696
704
  Whether or not to enable all features currently being developed for future major releases of Puppet\. Should be used with caution, as in development features are experimental and can have unexpected effects\.
697
705
  .
@@ -868,7 +876,7 @@ The time to wait for data to be read from an HTTP connection\. If nothing is rea
868
876
  The HTTP User\-Agent string to send when making network requests\.
869
877
  .
870
878
  .IP "\(bu" 4
871
- \fIDefault\fR: Puppet/6\.1\.0 Ruby/2\.4\.1\-p111 (x86_64\-linux)
879
+ \fIDefault\fR: Puppet/6\.2\.0 Ruby/2\.4\.1\-p111 (x86_64\-linux)
872
880
  .
873
881
  .IP "" 0
874
882
  .
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-AGENT" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-agent\fR \- The puppet agent daemon
@@ -120,6 +120,9 @@ Where to send log messages\. Choose between \'syslog\' (the POSIX syslog service
120
120
  .IP
121
121
  A path ending with \'\.json\' will receive structured output in JSON format\. The log file will not have an ending \']\' automatically written to it due to the appending nature of logging\. It must be appended manually to make the content valid JSON\.
122
122
  .
123
+ .IP
124
+ A path ending with \'\.jsonl\' will receive structured output in JSON Lines format\.
125
+ .
123
126
  .TP
124
127
  \-\-masterport
125
128
  The port on which to contact the puppet master\. (This is a Puppet setting, and can go in puppet\.conf\.)
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-APPLY" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-apply\fR \- Apply Puppet manifests locally
@@ -60,6 +60,9 @@ See the configuration file documentation at https://puppet\.com/docs/puppet/late
60
60
  .IP
61
61
  A path ending with \'\.json\' will receive structured output in JSON format\. The log file will not have an ending \']\' automatically written to it due to the appending nature of logging\. It must be appended manually to make the content valid JSON\.
62
62
  .
63
+ .IP
64
+ A path ending with \'\.jsonl\' will receive structured output in JSON Lines format\.
65
+ .
63
66
  .IP "\(bu" 4
64
67
  \-\-noop: Use \'noop\' mode where Puppet runs in a no\-op or dry\-run mode\. This is useful for seeing what changes Puppet will make without actually executing the changes\.
65
68
  .
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CATALOG" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-CONFIG" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DESCRIBE" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DEVICE" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-device\fR \- Manage remote network devices
@@ -77,6 +77,9 @@ This option only matters for targets that do not yet have certificates and it is
77
77
  \-\-libdir
78
78
  Override the per\-device libdir with a local directory\. Specifying a libdir also disables pluginsync\. This is useful for testing\.
79
79
  .
80
+ .IP
81
+ A path ending with \'\.jsonl\' will receive structured output in JSON Lines format\.
82
+ .
80
83
  .TP
81
84
  \-\-apply
82
85
  Apply a manifest against a remote target\. Target must be specified\.
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-DOC" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-EPP" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FACTS" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-FILEBUCKET" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-GENERATE" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-HELP" "8" "January 2019" "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\-KEY" "8" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-KEY" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-key\fR \- Create, save, and remove certificate keys\.
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-LOOKUP" "8" "January 2019" "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\-MAN" "8" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MAN" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-man\fR \- Display Puppet manual pages\.
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MODULE" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-NODE" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PARSER" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PLUGIN" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-REPORT" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-RESOURCE" "8" "January 2019" "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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SCRIPT" "8" "January 2019" "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
@@ -39,6 +39,9 @@ Where to send log messages\. Choose between \'syslog\' (the POSIX syslog service
39
39
  .IP
40
40
  A path ending with \'\.json\' will receive structured output in JSON format\. The log file will not have an ending \']\' automatically written to it due to the appending nature of logging\. It must be appended manually to make the content valid JSON\.
41
41
  .
42
+ .IP
43
+ A path ending with \'\.jsonl\' will receive structured output in JSON Lines format\.
44
+ .
42
45
  .TP
43
46
  \-\-noop
44
47
  Use \'noop\' mode where Puppet runs in a no\-op or dry\-run mode\. This is useful for seeing what changes Puppet will make without actually executing the changes\. Applies to tasks only\.
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SSL" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-ssl\fR \- Manage SSL keys and certificates for puppet SSL clients
@@ -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\-STATUS" "8" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-STATUS" "8" "January 2019" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-status\fR \- View puppet server status\.
@@ -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" "December 2018" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET" "8" "January 2019" "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\. 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 v6\.1\.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 v6\.2\.0
@@ -0,0 +1,11 @@
1
+ module Puppet::Parser::Functions
2
+ x = newfunction(:bad_func_load2, :type => :rvalue, :doc => <<-EOS
3
+ A function using the 3x API
4
+ EOS
5
+ ) do |arguments|
6
+ "some return value"
7
+ end
8
+ end
9
+ def illegal_method_here
10
+ end
11
+ x
@@ -0,0 +1,11 @@
1
+ module Puppet::Parser::Functions
2
+ newfunction(:bad_func_load3, :type => :rvalue, :doc => <<-EOS
3
+ A function using the 3x API
4
+ EOS
5
+ ) do |arguments|
6
+ def bad_func_load3_illegal_method
7
+ "some return value from illegal method"
8
+ end
9
+ "some return value"
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Puppet::Parser::Functions
2
+ newfunction(:bad_func_load4, :type => :rvalue, :doc => <<-EOS
3
+ A function using the 3x API
4
+ EOS
5
+ ) do |arguments|
6
+ def self.bad_func_load4_illegal_method
7
+ "some return value from illegal method"
8
+ end
9
+ "some return value"
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ x = module Puppet::Parser::Functions
2
+ newfunction(:bad_func_load5, :type => :rvalue, :doc => <<-EOS
3
+ A function using the 3x API
4
+ EOS
5
+ ) do |arguments|
6
+ "some return value"
7
+ end
8
+ end
9
+ def self.bad_func_load5_illegal_method
10
+ end
11
+ # Attempt to get around problem of not returning what newfunction returns
12
+ x
@@ -0,0 +1,9 @@
1
+ module Puppet::Parser::Functions
2
+ newfunction(:good_func_load, :type => :rvalue, :doc => <<-EOS
3
+ A function using the 3x API
4
+ EOS
5
+ ) do |arguments|
6
+ # This is not illegal
7
+ Float("3.14")
8
+ end
9
+ end
@@ -59,10 +59,11 @@ describe Puppet::Forge do
59
59
  it "includes any defined module_groups, ensuring to only encode them once in the URI" do
60
60
  Puppet[:module_groups] = 'base+pe'
61
61
  module_name = 'puppetlabs-acl'
62
+ exclusions = "readme%2Cchangelog%2Clicense%2Curi%2Cmodule%2Ctags%2Csupported%2Cfile_size%2Cdownloads%2Ccreated_at%2Cupdated_at%2Cdeleted_at"
62
63
 
63
64
  # ignores Puppet::Forge::Repository#read_response, provides response to fetch
64
65
  performs_an_http_request(ok_response) do |http|
65
- encoded_uri = "/v3/releases?module=#{module_name}&sort_by=version&module_groups=base%20pe"
66
+ encoded_uri = "/v3/releases?module=#{module_name}&sort_by=version&exclude_fields=#{exclusions}&module_groups=base%20pe"
66
67
  http.expects(:request).with(responds_with(:path, encoded_uri))
67
68
  end
68
69
 
@@ -71,10 +72,11 @@ describe Puppet::Forge do
71
72
 
72
73
  it "single encodes the module name term in the URI" do
73
74
  module_name = "puppetlabs-#{mixed_utf8_query_param}"
75
+ exclusions = "readme%2Cchangelog%2Clicense%2Curi%2Cmodule%2Ctags%2Csupported%2Cfile_size%2Cdownloads%2Ccreated_at%2Cupdated_at%2Cdeleted_at"
74
76
 
75
77
  # ignores Puppet::Forge::Repository#read_response, provides response to fetch
76
78
  performs_an_http_request(ok_response) do |http|
77
- encoded_uri = "/v3/releases?module=puppetlabs-#{mixed_utf8_query_param_encoded}&sort_by=version"
79
+ encoded_uri = "/v3/releases?module=puppetlabs-#{mixed_utf8_query_param_encoded}&sort_by=version&exclude_fields=#{exclusions}"
78
80
  http.expects(:request).with(responds_with(:path, encoded_uri))
79
81
  end
80
82
 
@@ -423,7 +423,7 @@ describe 'loaders' do
423
423
 
424
424
  end
425
425
 
426
- context 'when causing a 3x load followed by a 4x load' do
426
+ context 'when a 3x load takes place' do
427
427
  let(:env) { environment_for(mix_4x_and_3x_functions) }
428
428
  let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }
429
429
  let(:scope) { compiler.topscope }
@@ -436,11 +436,73 @@ describe 'loaders' do
436
436
  Puppet.pop_context
437
437
  end
438
438
 
439
- it "a 3x function with code outside body is reported as an error" do
440
- expect { loader.load_typed(typed_name(:function, 'bad_func_load')) }.to raise_error(/Illegal legacy function definition/)
439
+ it "a function with no illegal constructs can be loaded" do
440
+ function = loader.load_typed(typed_name(:function, 'good_func_load')).value
441
+ expect(function.call(scope)).to eql(Float("3.14"))
441
442
  end
442
443
  end
443
444
 
445
+ context 'when a 3x load has illegal method added' do
446
+ let(:env) { environment_for(mix_4x_and_3x_functions) }
447
+ let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }
448
+ let(:scope) { compiler.topscope }
449
+ let(:loader) { compiler.loaders.private_loader_for_module('user') }
450
+
451
+ before(:each) do
452
+ Puppet.push_context(:current_environment => scope.environment, :global_scope => scope, :loaders => compiler.loaders)
453
+ end
454
+ after(:each) do
455
+ Puppet.pop_context
456
+ end
457
+
458
+ it "outside function body is reported as an error" do
459
+ expect { loader.load_typed(typed_name(:function, 'bad_func_load')) }.to raise_error(/Illegal method definition/)
460
+ end
461
+
462
+ it "to self outside function body is reported as an error" do
463
+ expect { loader.load_typed(typed_name(:function, 'bad_func_load5')) }.to raise_error(/Illegal method definition.*'bad_func_load5_illegal_method'/)
464
+ end
465
+
466
+ it "outside body is reported as an error even if returning the right func_info" do
467
+ expect { loader.load_typed(typed_name(:function, 'bad_func_load2'))}.to raise_error(/Illegal method definition/)
468
+ end
469
+
470
+ it "inside function body is reported as an error" do
471
+ expect {
472
+ f = loader.load_typed(typed_name(:function, 'bad_func_load3')).value
473
+ f.call(scope)
474
+ }.to raise_error(/Illegal method definition.*'bad_func_load3_illegal_method'/)
475
+ end
476
+
477
+ it "to self inside function body is reported as an error" do
478
+ expect {
479
+ f = loader.load_typed(typed_name(:function, 'bad_func_load4')).value
480
+ f.call(scope)
481
+ }.to raise_error(/Illegal method definition.*'bad_func_load4_illegal_method'/)
482
+ end
483
+ end
484
+
485
+ context 'when a 3x load has illegal construct and --func3x_check is false' do
486
+ let(:env) { environment_for(mix_4x_and_3x_functions) }
487
+ let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }
488
+ let(:scope) { compiler.topscope }
489
+ let(:loader) { compiler.loaders.private_loader_for_module('user') }
490
+
491
+ before(:each) do
492
+ Puppet.push_context(:current_environment => scope.environment, :global_scope => scope, :loaders => compiler.loaders)
493
+ Puppet[:func3x_check] = false
494
+ end
495
+ after(:each) do
496
+ Puppet.pop_context
497
+ Puppet[:func3x_check] = true
498
+ end
499
+
500
+ it "an illegal function is loaded" do
501
+ f = loader.load_typed(typed_name(:function, 'bad_func_load3')).value
502
+ expect(f.call(scope)).to eql("some return value")
503
+ end
504
+ end
505
+
444
506
  context 'when causing a 3x load followed by a 4x load' do
445
507
  let(:env) { environment_for(mix_4x_and_3x_functions) }
446
508
  let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }