puppet 6.18.0-x86-mingw32 → 6.21.1-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.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -16
- data/Gemfile +2 -0
- data/Gemfile.lock +37 -34
- data/README.md +1 -2
- data/Rakefile +4 -12
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +9 -3
- data/lib/puppet/application/apply.rb +3 -2
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +50 -8
- data/lib/puppet/defaults.rb +67 -35
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +70 -17
- data/lib/puppet/parser/ast/leaf.rb +3 -2
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/model/ast_transformer.rb +1 -1
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/property/list.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +13 -8
- data/lib/puppet/provider/package/apt.rb +34 -2
- data/lib/puppet/provider/package/aptitude.rb +6 -0
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +1 -0
- data/lib/puppet/provider/service/debian.rb +2 -0
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/useradd.rb +62 -8
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/resource/type.rb +2 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/settings.rb +62 -20
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/transaction/report.rb +11 -7
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/util/autoload.rb +1 -8
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/fact_dif.rb +62 -0
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows/service.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +289 -268
- data/man/man5/puppet.conf.5 +33 -17
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +183 -22
- data/spec/integration/application/apply_spec.rb +19 -0
- data/spec/integration/application/filebucket_spec.rb +7 -7
- data/spec/integration/application/plugin_spec.rb +3 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/defaults_spec.rb +19 -1
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/registry_spec.rb +0 -10
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +0 -1
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/facts_spec.rb +3 -1
- data/spec/unit/application/filebucket_spec.rb +0 -2
- data/spec/unit/application_spec.rb +60 -13
- data/spec/unit/configurer_spec.rb +39 -6
- data/spec/unit/confine/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +8 -2
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +62 -11
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/resolver_spec.rb +24 -4
- data/spec/unit/http/service/ca_spec.rb +2 -2
- data/spec/unit/http/service/compiler_spec.rb +51 -2
- data/spec/unit/http/service/file_server_spec.rb +2 -2
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -2
- data/spec/unit/http/service_spec.rb +1 -1
- data/spec/unit/http/session_spec.rb +8 -20
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +4 -4
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -9
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- data/spec/unit/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/group/groupadd_spec.rb +5 -2
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +28 -23
- data/spec/unit/provider/package/aptitude_spec.rb +1 -1
- data/spec/unit/provider/package/base_spec.rb +6 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +31 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +4 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +3 -1
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/user/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +56 -3
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +11 -10
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/report_spec.rb +2 -0
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +1 -1
- data/spec/unit/type/file_spec.rb +0 -6
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +1 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- data/spec/unit/util/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- data/spec/unit/util_spec.rb +13 -6
- metadata +32 -10
- data/spec/integration/application/config_spec.rb +0 -74
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/module_spec.rb +0 -3
data/man/man8/puppet-node.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\-NODE" "8" "
|
4
|
+
.TH "PUPPET\-NODE" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-node\fR \- View and manage node definitions\.
|
@@ -119,13 +119,13 @@ Retrieve an "empty" (no classes, no ENC\-imposed parameters, and an environment
|
|
119
119
|
$ puppet node find somenode\.puppetlabs\.lan \-\-terminus plain \-\-render\-as yaml
|
120
120
|
.
|
121
121
|
.P
|
122
|
-
Retrieve a node using the
|
122
|
+
Retrieve a node using the Puppet Server\'s configured ENC:
|
123
123
|
.
|
124
124
|
.P
|
125
|
-
$ puppet node find somenode\.puppetlabs\.lan \-\-terminus exec \-\-run_mode
|
125
|
+
$ puppet node find somenode\.puppetlabs\.lan \-\-terminus exec \-\-run_mode server \-\-render\-as yaml
|
126
126
|
.
|
127
127
|
.P
|
128
|
-
Retrieve the same node from the
|
128
|
+
Retrieve the same node from the Puppet Server:
|
129
129
|
.
|
130
130
|
.P
|
131
131
|
$ puppet node find somenode\.puppetlabs\.lan \-\-terminus rest \-\-render\-as yaml
|
@@ -137,6 +137,9 @@ This subcommand is an indirector face, which exposes \fBfind\fR, \fBsearch\fR, \
|
|
137
137
|
\fBexec\fR
|
138
138
|
.
|
139
139
|
.IP "\(bu" 4
|
140
|
+
\fBjson\fR
|
141
|
+
.
|
142
|
+
.IP "\(bu" 4
|
140
143
|
\fBmemory\fR
|
141
144
|
.
|
142
145
|
.IP "\(bu" 4
|
data/man/man8/puppet-parser.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\-PARSER" "8" "
|
4
|
+
.TH "PUPPET\-PARSER" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-parser\fR \- Interact directly with the parser\.
|
data/man/man8/puppet-plugin.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\-PLUGIN" "8" "
|
4
|
+
.TH "PUPPET\-PLUGIN" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
|
data/man/man8/puppet-report.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\-REPORT" "8" "
|
4
|
+
.TH "PUPPET\-REPORT" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-report\fR \- Create, display, and submit reports\.
|
@@ -107,6 +107,9 @@ API example:report = Puppet::Face[:catalog, \'0\.0\.1\']\.apply Puppet::Face[:re
|
|
107
107
|
This subcommand is an indirector face, which exposes \fBfind\fR, \fBsearch\fR, \fBsave\fR, and \fBdestroy\fR actions for an indirected subsystem of Puppet\. Valid termini for this face include:
|
108
108
|
.
|
109
109
|
.IP "\(bu" 4
|
110
|
+
\fBjson\fR
|
111
|
+
.
|
112
|
+
.IP "\(bu" 4
|
110
113
|
\fBmsgpack\fR
|
111
114
|
.
|
112
115
|
.IP "\(bu" 4
|
data/man/man8/puppet-resource.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\-RESOURCE" "8" "
|
4
|
+
.TH "PUPPET\-RESOURCE" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-resource\fR \- The resource abstraction layer shell
|
data/man/man8/puppet-script.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\-SCRIPT" "8" "
|
4
|
+
.TH "PUPPET\-SCRIPT" "8" "February 2021" "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
|
@@ -34,7 +34,7 @@ Print this help message
|
|
34
34
|
.
|
35
35
|
.TP
|
36
36
|
\-\-logdest
|
37
|
-
Where to send log messages\. Choose between \'syslog\' (the POSIX syslog service), \'eventlog\' (the Windows Event Log), \'console\', or the path to a log file\. Defaults to \'console\'\.
|
37
|
+
Where to send log messages\. Choose between \'syslog\' (the POSIX syslog service), \'eventlog\' (the Windows Event Log), \'console\', or the path to a log file\. Defaults to \'console\'\. Multiple destinations can be set using a comma separated list (eg: \fB/path/file1,console,/path/file2\fR)"
|
38
38
|
.
|
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\.
|
data/man/man8/puppet-ssl.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\-SSL" "8" "
|
4
|
+
.TH "PUPPET\-SSL" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-ssl\fR \- Manage SSL keys and certificates for puppet SSL clients
|
data/man/man8/puppet-status.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\-STATUS" "8" "
|
4
|
+
.TH "PUPPET\-STATUS" "8" "February 2021" "Puppet, Inc." "Puppet manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBpuppet\-status\fR \- View puppet server status\.
|
@@ -57,7 +57,7 @@ puppet status [\-\-terminus _TERMINUS] [\-\-extra HASH] [\fIkey\fR]
|
|
57
57
|
Checks whether a Puppet server is properly receiving and processing HTTP requests\. This action is only useful when used with \'\-\-terminus rest\'; when invoked with the \fBlocal\fR terminus, \fBfind\fR will always return true\.
|
58
58
|
.
|
59
59
|
.IP
|
60
|
-
Over REST, this action will query the configured puppet master by default\. To query other servers, including puppet agent nodes started with the \fI\-\-listen\fR option, you can set the global \fI\-\-server\fR and \fI\-\-
|
60
|
+
Over REST, this action will query the configured puppet master by default\. To query other servers, including puppet agent nodes started with the \fI\-\-listen\fR option, you can set the global \fI\-\-server\fR and \fI\-\-serverport\fR options on the command line; note that agent nodes listen on port 8139\.
|
61
61
|
.
|
62
62
|
.IP
|
63
63
|
\fBRETURNS\fR
|
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" "
|
4
|
+
.TH "PUPPET" "8" "February 2021" "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 v6\.
|
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\.21\.0
|
@@ -0,0 +1,91 @@
|
|
1
|
+
{
|
2
|
+
"tags": [
|
3
|
+
"settings"
|
4
|
+
],
|
5
|
+
"name": "127.0.0.1",
|
6
|
+
"version": 1607629733,
|
7
|
+
"code_id": null,
|
8
|
+
"catalog_uuid": "afc8472a-306b-4b24-b060-e956dffb79b8",
|
9
|
+
"catalog_format": 1,
|
10
|
+
"environment": "production",
|
11
|
+
"resources": [
|
12
|
+
{
|
13
|
+
"type": "Stage",
|
14
|
+
"title": "main",
|
15
|
+
"tags": [
|
16
|
+
"stage"
|
17
|
+
],
|
18
|
+
"exported": false,
|
19
|
+
"parameters": {
|
20
|
+
"name": "main"
|
21
|
+
}
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"type": "Class",
|
25
|
+
"title": "Settings",
|
26
|
+
"tags": [
|
27
|
+
"class",
|
28
|
+
"settings"
|
29
|
+
],
|
30
|
+
"exported": false
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"type": "Class",
|
34
|
+
"title": "main",
|
35
|
+
"tags": [
|
36
|
+
"class"
|
37
|
+
],
|
38
|
+
"exported": false,
|
39
|
+
"parameters": {
|
40
|
+
"name": "main"
|
41
|
+
}
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"type": "Notify",
|
45
|
+
"title": "deferred",
|
46
|
+
"tags": [
|
47
|
+
"notify",
|
48
|
+
"deferred",
|
49
|
+
"class"
|
50
|
+
],
|
51
|
+
"file": "",
|
52
|
+
"line": 1,
|
53
|
+
"exported": false,
|
54
|
+
"parameters": {
|
55
|
+
"message": {
|
56
|
+
"__ptype": "Deferred",
|
57
|
+
"name": "new",
|
58
|
+
"arguments": [
|
59
|
+
{
|
60
|
+
"__ptype": "Pcore::StringType"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"__ptype": "Deferred",
|
64
|
+
"name": "binary_file",
|
65
|
+
"arguments": [
|
66
|
+
"__SOURCE_PATH__"
|
67
|
+
]
|
68
|
+
}
|
69
|
+
]
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
],
|
74
|
+
"edges": [
|
75
|
+
{
|
76
|
+
"source": "Stage[main]",
|
77
|
+
"target": "Class[Settings]"
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"source": "Stage[main]",
|
81
|
+
"target": "Class[main]"
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"source": "Class[main]",
|
85
|
+
"target": "Notify[deferred]"
|
86
|
+
}
|
87
|
+
],
|
88
|
+
"classes": [
|
89
|
+
"settings"
|
90
|
+
]
|
91
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
concurrent-ruby (1.1.5)
|
2
|
+
|
3
|
+
deep_merge (1.0.1)
|
4
|
+
|
5
|
+
fast_gettext (1.1.2)
|
6
|
+
|
7
|
+
gettext (3.2.2)
|
8
|
+
|
9
|
+
hiera-eyaml (3.2.0)
|
10
|
+
|
11
|
+
highline (1.6.21)
|
12
|
+
|
13
|
+
hocon (1.3.1, 1.2.5)
|
14
|
+
|
15
|
+
locale (2.1.3, 2.1.2)
|
16
|
+
|
17
|
+
multi_json (1.14.1)
|
18
|
+
|
19
|
+
optimist (3.0.1)
|
20
|
+
|
21
|
+
puppet-resource_api (1.8.13)
|
22
|
+
|
23
|
+
puppetserver-ca (1.8.0)
|
24
|
+
|
25
|
+
semantic_puppet (1.0.2)
|
26
|
+
|
27
|
+
text (1.3.1)
|
28
|
+
|
29
|
+
world_airports (1.1.3)
|
30
|
+
|
@@ -15,15 +15,12 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
15
15
|
let(:formatter) { Puppet::Network::FormatHandler.format(:rich_data_json) }
|
16
16
|
|
17
17
|
context 'server_list' do
|
18
|
-
before :each do
|
19
|
-
Puppet[:log_level] = 'debug'
|
20
|
-
end
|
21
|
-
|
22
18
|
it "uses the first server in the list" do
|
23
19
|
Puppet[:server_list] = '127.0.0.1'
|
20
|
+
Puppet[:log_level] = 'debug'
|
24
21
|
|
25
22
|
server.start_server do |port|
|
26
|
-
Puppet[:
|
23
|
+
Puppet[:serverport] = port
|
27
24
|
expect {
|
28
25
|
agent.command_line.args << '--test'
|
29
26
|
agent.run
|
@@ -36,15 +33,17 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
36
33
|
Puppet[:server_list] = "puppet.example.com,#{Puppet[:server]}"
|
37
34
|
|
38
35
|
server.start_server do |port|
|
39
|
-
Puppet[:
|
36
|
+
Puppet[:serverport] = port
|
40
37
|
expect {
|
41
38
|
agent.command_line.args << '--test'
|
42
39
|
agent.run
|
43
40
|
}.to exit_with(0)
|
44
|
-
.and output(%r{
|
41
|
+
.and output(%r{Notice: Applied catalog}).to_stdout
|
42
|
+
.and output(%r{Unable to connect to server from server_list setting: Request to https://puppet.example.com:#{port}/status/v1/simple/master failed}).to_stderr
|
45
43
|
|
46
44
|
report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
|
47
45
|
expect(report.master_used).to eq("127.0.0.1:#{port}")
|
46
|
+
expect(report.server_used).to eq("127.0.0.1:#{port}")
|
48
47
|
end
|
49
48
|
end
|
50
49
|
|
@@ -55,17 +54,19 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
55
54
|
agent.command_line.args << '--test'
|
56
55
|
agent.run
|
57
56
|
}.to exit_with(1)
|
58
|
-
.and output(%r{Unable to connect to server from server_list setting
|
59
|
-
.and
|
57
|
+
.and output(a_string_matching(%r{Unable to connect to server from server_list setting})
|
58
|
+
.and matching(/Error: Could not run Puppet configuration client: Could not select a functional puppet server from server_list: 'puppet.example.com'/)).to_stderr
|
60
59
|
|
61
60
|
# I'd expect puppet to update the last run report even if the server_list was
|
62
61
|
# exhausted, but it doesn't work that way currently, see PUP-6708
|
63
62
|
expect(File).to_not be_exist(Puppet[:lastrunreport])
|
64
63
|
end
|
65
64
|
|
66
|
-
it "omits
|
65
|
+
it "omits server_used when not using server_list" do
|
66
|
+
Puppet[:log_level] = 'debug'
|
67
|
+
|
67
68
|
server.start_server do |port|
|
68
|
-
Puppet[:
|
69
|
+
Puppet[:serverport] = port
|
69
70
|
expect {
|
70
71
|
agent.command_line.args << '--test'
|
71
72
|
agent.run
|
@@ -75,10 +76,12 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
75
76
|
|
76
77
|
report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
|
77
78
|
expect(report.master_used).to be_nil
|
79
|
+
expect(report.server_used).to be_nil
|
78
80
|
end
|
79
81
|
|
80
82
|
it "server_list takes precedence over server" do
|
81
83
|
Puppet[:server] = 'notvalid.example.com'
|
84
|
+
Puppet[:log_level] = 'debug'
|
82
85
|
|
83
86
|
server.start_server do |port|
|
84
87
|
Puppet[:server_list] = "127.0.0.1:#{port}"
|
@@ -91,15 +94,16 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
91
94
|
|
92
95
|
report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
|
93
96
|
expect(report.master_used).to eq("127.0.0.1:#{port}")
|
97
|
+
expect(report.server_used).to eq("127.0.0.1:#{port}")
|
94
98
|
end
|
95
99
|
end
|
96
100
|
end
|
97
101
|
|
98
102
|
context 'rich data' do
|
99
|
-
it "
|
103
|
+
it "calls a deferred 4x function" do
|
100
104
|
catalog_handler = -> (req, res) {
|
101
105
|
catalog = compile_to_catalog(<<-MANIFEST, node)
|
102
|
-
notify { '
|
106
|
+
notify { 'deferred4x':
|
103
107
|
message => Deferred('join', [[1,2,3], ':'])
|
104
108
|
}
|
105
109
|
MANIFEST
|
@@ -109,12 +113,71 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
109
113
|
}
|
110
114
|
|
111
115
|
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
112
|
-
Puppet[:
|
116
|
+
Puppet[:serverport] = port
|
117
|
+
expect {
|
118
|
+
agent.command_line.args << '--test'
|
119
|
+
agent.run
|
120
|
+
}.to exit_with(2)
|
121
|
+
.and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred4x\]/message: defined 'message' as '1:2:3'}).to_stdout
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
it "calls a deferred 3x function" do
|
126
|
+
catalog_handler = -> (req, res) {
|
127
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
128
|
+
notify { 'deferred3x':
|
129
|
+
message => Deferred('sprintf', ['%s', 'I am deferred'])
|
130
|
+
}
|
131
|
+
MANIFEST
|
132
|
+
|
133
|
+
res.body = formatter.render(catalog)
|
134
|
+
res['Content-Type'] = formatter.mime
|
135
|
+
}
|
136
|
+
|
137
|
+
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
138
|
+
Puppet[:serverport] = port
|
113
139
|
expect {
|
114
140
|
agent.command_line.args << '--test'
|
115
141
|
agent.run
|
116
142
|
}.to exit_with(2)
|
117
|
-
.and output(%r{Notice: /Stage\[main\]/Main/Notify\[
|
143
|
+
.and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred3x\]/message: defined 'message' as 'I am deferred'}).to_stdout
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
it "re-evaluates a deferred function in a cached catalog" do
|
148
|
+
Puppet[:report] = false
|
149
|
+
Puppet[:use_cached_catalog] = true
|
150
|
+
Puppet[:usecacheonfailure] = false
|
151
|
+
|
152
|
+
catalog_dir = File.join(Puppet[:client_datadir], 'catalog')
|
153
|
+
Puppet::FileSystem.mkpath(catalog_dir)
|
154
|
+
cached_catalog_path = "#{File.join(catalog_dir, Puppet[:certname])}.json"
|
155
|
+
|
156
|
+
# our catalog contains a deferred function that calls `binary_file`
|
157
|
+
# to read `source`. The function returns a Binary object, whose
|
158
|
+
# base64 value is printed to stdout
|
159
|
+
source = tmpfile('deferred_source')
|
160
|
+
catalog = File.read(my_fixture('cached_deferred_catalog.json'))
|
161
|
+
catalog.gsub!('__SOURCE_PATH__', source)
|
162
|
+
File.write(cached_catalog_path, catalog)
|
163
|
+
|
164
|
+
# verify we get a different result each time the deferred function
|
165
|
+
# is evaluated, and reads `source`.
|
166
|
+
{
|
167
|
+
'1234' => 'MTIzNA==',
|
168
|
+
'5678' => 'NTY3OA=='
|
169
|
+
}.each_pair do |content, base64|
|
170
|
+
File.write(source, content)
|
171
|
+
|
172
|
+
expect {
|
173
|
+
agent.command_line.args << '-t'
|
174
|
+
agent.run
|
175
|
+
|
176
|
+
}.to exit_with(2)
|
177
|
+
.and output(/Notice: #{base64}/).to_stdout
|
178
|
+
|
179
|
+
# reset state so we can run again
|
180
|
+
Puppet::Application.clear!
|
118
181
|
end
|
119
182
|
end
|
120
183
|
|
@@ -131,7 +194,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
131
194
|
}
|
132
195
|
|
133
196
|
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
134
|
-
Puppet[:
|
197
|
+
Puppet[:serverport] = port
|
135
198
|
expect {
|
136
199
|
agent.command_line.args << '--test'
|
137
200
|
agent.run
|
@@ -195,7 +258,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
195
258
|
}
|
196
259
|
|
197
260
|
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
198
|
-
Puppet[:
|
261
|
+
Puppet[:serverport] = port
|
199
262
|
expect {
|
200
263
|
expect {
|
201
264
|
agent.command_line.args << '--test'
|
@@ -240,7 +303,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
240
303
|
}
|
241
304
|
|
242
305
|
server.start_server(mounts: mounts) do |port|
|
243
|
-
Puppet[:
|
306
|
+
Puppet[:serverport] = port
|
244
307
|
expect {
|
245
308
|
agent.command_line.args << '--test'
|
246
309
|
agent.run
|
@@ -288,7 +351,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
288
351
|
}
|
289
352
|
|
290
353
|
server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
|
291
|
-
Puppet[:
|
354
|
+
Puppet[:serverport] = puppetserver_port
|
292
355
|
|
293
356
|
# override path to system cacert bundle, this must be done before
|
294
357
|
# the SSLContext is created and the call to X509::Store.set_default_paths
|
@@ -340,7 +403,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
340
403
|
}
|
341
404
|
|
342
405
|
server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
|
343
|
-
Puppet[:
|
406
|
+
Puppet[:serverport] = puppetserver_port
|
344
407
|
|
345
408
|
# override path to system cacert bundle, this must be done before
|
346
409
|
# the SSLContext is created and the call to X509::Store.set_default_paths
|
@@ -391,7 +454,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
391
454
|
}
|
392
455
|
|
393
456
|
server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
|
394
|
-
Puppet[:
|
457
|
+
Puppet[:serverport] = puppetserver_port
|
395
458
|
|
396
459
|
# set path to external cacert bundle, this must be done before
|
397
460
|
# the SSLContext is created
|
@@ -431,7 +494,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
431
494
|
it "waits for other agent run to finish before starting" do
|
432
495
|
server.start_server do |port|
|
433
496
|
path = Puppet[:agent_catalog_run_lockfile]
|
434
|
-
Puppet[:
|
497
|
+
Puppet[:serverport] = port
|
435
498
|
Puppet[:waitforlock] = 1
|
436
499
|
|
437
500
|
th = Thread.new {
|
@@ -472,4 +535,102 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
|
|
472
535
|
th.kill # kill thread so we don't wait too much
|
473
536
|
end
|
474
537
|
end
|
538
|
+
|
539
|
+
context 'cached catalogs' do
|
540
|
+
it 'falls back to a cached catalog' do
|
541
|
+
catalog_handler = -> (req, res) {
|
542
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
543
|
+
notify { 'a message': }
|
544
|
+
MANIFEST
|
545
|
+
|
546
|
+
res.body = formatter.render(catalog)
|
547
|
+
res['Content-Type'] = formatter.mime
|
548
|
+
}
|
549
|
+
|
550
|
+
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
551
|
+
Puppet[:serverport] = port
|
552
|
+
expect {
|
553
|
+
agent.command_line.args << '--test'
|
554
|
+
agent.run
|
555
|
+
}.to exit_with(2)
|
556
|
+
.and output(%r{Caching catalog for #{Puppet[:certname]}}).to_stdout
|
557
|
+
end
|
558
|
+
|
559
|
+
# reset state so we can run again
|
560
|
+
Puppet::Application.clear!
|
561
|
+
|
562
|
+
# --test above turns off `usecacheonfailure` so re-enable here
|
563
|
+
Puppet[:usecacheonfailure] = true
|
564
|
+
|
565
|
+
# run agent without server
|
566
|
+
expect {
|
567
|
+
agent.command_line.args << '--no-daemonize' << '--onetime' << '--server' << '127.0.0.1'
|
568
|
+
agent.run
|
569
|
+
}.to exit_with(2)
|
570
|
+
.and output(a_string_matching(
|
571
|
+
/Using cached catalog from environment 'production'/
|
572
|
+
).and matching(
|
573
|
+
/Notify\[a message\]\/message:/
|
574
|
+
)).to_stdout
|
575
|
+
.and output(/the agent run will continue/).to_stderr
|
576
|
+
end
|
577
|
+
|
578
|
+
it 'preserves the old cached catalog if validation fails with the old one' do
|
579
|
+
catalog_handler = -> (req, res) {
|
580
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
581
|
+
exec { 'unqualified_command': }
|
582
|
+
MANIFEST
|
583
|
+
|
584
|
+
res.body = formatter.render(catalog)
|
585
|
+
res['Content-Type'] = formatter.mime
|
586
|
+
}
|
587
|
+
|
588
|
+
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
589
|
+
Puppet[:serverport] = port
|
590
|
+
expect {
|
591
|
+
agent.command_line.args << '--test'
|
592
|
+
agent.run
|
593
|
+
}.to exit_with(1)
|
594
|
+
.and output(/Using configured environment/).to_stdout
|
595
|
+
.and output(%r{Validation of Exec\[unqualified_command\] failed: 'unqualified_command' is not qualified and no path was specified}).to_stderr
|
596
|
+
end
|
597
|
+
|
598
|
+
# cached catalog should not be updated
|
599
|
+
cached_catalog = "#{File.join(Puppet[:client_datadir], 'catalog', Puppet[:certname])}.json"
|
600
|
+
expect(File).to_not be_exist(cached_catalog)
|
601
|
+
end
|
602
|
+
end
|
603
|
+
|
604
|
+
context "reporting" do
|
605
|
+
it "stores a finalized report" do
|
606
|
+
catalog_handler = -> (req, res) {
|
607
|
+
catalog = compile_to_catalog(<<-MANIFEST, node)
|
608
|
+
notify { 'foo':
|
609
|
+
require => Notify['bar']
|
610
|
+
}
|
611
|
+
|
612
|
+
notify { 'bar':
|
613
|
+
require => Notify['foo']
|
614
|
+
}
|
615
|
+
MANIFEST
|
616
|
+
|
617
|
+
res.body = formatter.render(catalog)
|
618
|
+
res['Content-Type'] = formatter.mime
|
619
|
+
}
|
620
|
+
|
621
|
+
server.start_server(mounts: {catalog: catalog_handler}) do |port|
|
622
|
+
Puppet[:serverport] = port
|
623
|
+
expect {
|
624
|
+
agent.command_line.args << '--test'
|
625
|
+
agent.run
|
626
|
+
}.to exit_with(1)
|
627
|
+
.and output(%r{Applying configuration}).to_stdout
|
628
|
+
.and output(%r{Found 1 dependency cycle}).to_stderr
|
629
|
+
|
630
|
+
report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
|
631
|
+
expect(report.status).to eq("failed")
|
632
|
+
expect(report.metrics).to_not be_empty
|
633
|
+
end
|
634
|
+
end
|
635
|
+
end
|
475
636
|
end
|