puppet 6.24.0 → 6.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Gemfile.lock +12 -12
- data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
- data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
- data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
- data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
- data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
- data/{ext → examples}/nagios/check_puppet.rb +2 -2
- data/ext/README.md +13 -0
- data/lib/puppet/application/agent.rb +4 -0
- data/lib/puppet/application/apply.rb +20 -2
- data/lib/puppet/application/resource.rb +15 -13
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/configurer.rb +85 -57
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +36 -30
- data/lib/puppet/environments.rb +66 -26
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/facter_impl.rb +96 -0
- data/lib/puppet/file_serving/configuration/parser.rb +2 -0
- data/lib/puppet/file_serving/configuration.rb +3 -0
- data/lib/puppet/file_serving/mount/file.rb +4 -4
- data/lib/puppet/file_serving/mount/scripts.rb +24 -0
- data/lib/puppet/file_system/file_impl.rb +3 -1
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/http/service/compiler.rb +6 -1
- data/lib/puppet/indirector/catalog/compiler.rb +24 -6
- data/lib/puppet/indirector/catalog/rest.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -0
- data/lib/puppet/module/plan.rb +0 -1
- data/lib/puppet/module/task.rb +1 -1
- data/lib/puppet/module.rb +1 -0
- data/lib/puppet/module_tool/applications/installer.rb +8 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/node/environment.rb +10 -11
- data/lib/puppet/pal/pal_impl.rb +1 -1
- data/lib/puppet/parser/scope.rb +1 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
- data/lib/puppet/pops/model/ast.rb +1 -0
- data/lib/puppet/pops/model/factory.rb +2 -1
- data/lib/puppet/pops/parser/eparser.rb +201 -201
- data/lib/puppet/pops/parser/lexer2.rb +92 -91
- data/lib/puppet/pops/parser/slurp_support.rb +1 -0
- data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
- data/lib/puppet/pops/types/type_formatter.rb +4 -3
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/provider/aix_object.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/package/pkg.rb +19 -2
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +1 -1
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +2 -2
- data/lib/puppet/provider/service/redhat.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +2 -2
- data/lib/puppet/provider/service/upstart.rb +5 -5
- data/lib/puppet/provider/user/aix.rb +44 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +72 -16
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/reference/providers.rb +2 -2
- data/lib/puppet/resource/type_collection.rb +1 -0
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings.rb +2 -2
- data/lib/puppet/test/test_helper.rb +4 -1
- data/lib/puppet/transaction/persistence.rb +11 -1
- data/lib/puppet/transaction/report.rb +15 -1
- data/lib/puppet/type/exec.rb +19 -2
- data/lib/puppet/type/file.rb +6 -6
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/service.rb +8 -3
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -1
- data/lib/puppet/util/filetype.rb +2 -2
- data/lib/puppet/util/json.rb +3 -0
- data/lib/puppet/util/log.rb +1 -2
- data/lib/puppet/util/logging.rb +1 -25
- data/lib/puppet/util/pidlock.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -2
- data/lib/puppet/util/tagging.rb +1 -0
- data/lib/puppet/util/windows/user.rb +0 -2
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +2 -6
- data/locales/puppet.pot +246 -230
- data/man/man5/puppet.conf.5 +33 -25
- data/man/man8/puppet-agent.8 +4 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- 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 +3 -3
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
- data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
- data/spec/integration/application/agent_spec.rb +113 -37
- data/spec/integration/application/filebucket_spec.rb +5 -0
- data/spec/integration/configurer_spec.rb +18 -2
- data/spec/integration/indirector/facts/facter_spec.rb +3 -3
- data/spec/integration/l10n/compiler_spec.rb +37 -0
- data/spec/integration/transaction/report_spec.rb +1 -1
- data/spec/integration/type/file_spec.rb +2 -2
- data/spec/integration/type/package_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/windows/process_spec.rb +1 -9
- data/spec/lib/puppet_spec/modules.rb +13 -2
- data/spec/lib/puppet_spec/puppetserver.rb +15 -0
- data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
- data/spec/shared_contexts/l10n.rb +27 -0
- data/spec/spec_helper.rb +1 -10
- data/spec/unit/application/apply_spec.rb +76 -56
- data/spec/unit/application/resource_spec.rb +29 -0
- data/spec/unit/configurer_spec.rb +171 -56
- data/spec/unit/defaults_spec.rb +1 -0
- data/spec/unit/environments_spec.rb +150 -1
- data/spec/unit/facter_impl_spec.rb +31 -0
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
- data/spec/unit/file_serving/configuration_spec.rb +14 -4
- data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
- data/spec/unit/file_system_spec.rb +7 -0
- data/spec/unit/functions/logging_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +64 -0
- data/spec/unit/http/service/compiler_spec.rb +8 -0
- data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
- data/spec/unit/indirector/indirection_spec.rb +10 -3
- data/spec/unit/interface/action_spec.rb +0 -9
- data/spec/unit/module_spec.rb +15 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +39 -12
- data/spec/unit/network/authstore_spec.rb +0 -15
- data/spec/unit/network/formats_spec.rb +6 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
- data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
- data/spec/unit/provider/package/gem_spec.rb +1 -1
- data/spec/unit/provider/package/pip2_spec.rb +1 -1
- data/spec/unit/provider/package/pip3_spec.rb +1 -1
- data/spec/unit/provider/package/pip_spec.rb +1 -1
- data/spec/unit/provider/package/pkg_spec.rb +29 -4
- data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
- data/spec/unit/provider/service/launchd_spec.rb +11 -0
- data/spec/unit/provider/service/systemd_spec.rb +1 -1
- data/spec/unit/provider/user/aix_spec.rb +100 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +1 -1
- data/spec/unit/provider/user/useradd_spec.rb +43 -2
- data/spec/unit/provider_spec.rb +4 -4
- data/spec/unit/puppet_spec.rb +12 -4
- data/spec/unit/ssl/certificate_request_spec.rb +8 -14
- data/spec/unit/type/service_spec.rb +27 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/logging_spec.rb +2 -0
- data/tasks/parallel.rake +3 -3
- metadata +37 -94
- data/ext/README.environment +0 -8
- data/ext/dbfix.sql +0 -132
- data/ext/debian/README.Debian +0 -8
- data/ext/debian/README.source +0 -2
- data/ext/debian/TODO.Debian +0 -1
- data/ext/debian/changelog.erb +0 -1122
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -144
- data/ext/debian/copyright +0 -339
- data/ext/debian/docs +0 -1
- data/ext/debian/fileserver.conf +0 -41
- data/ext/debian/puppet-common.dirs +0 -13
- data/ext/debian/puppet-common.install +0 -3
- data/ext/debian/puppet-common.lintian-overrides +0 -5
- data/ext/debian/puppet-common.manpages +0 -28
- data/ext/debian/puppet-common.postinst +0 -35
- data/ext/debian/puppet-common.postrm +0 -33
- data/ext/debian/puppet-el.dirs +0 -1
- data/ext/debian/puppet-el.emacsen-install +0 -25
- data/ext/debian/puppet-el.emacsen-remove +0 -11
- data/ext/debian/puppet-el.emacsen-startup +0 -9
- data/ext/debian/puppet-el.install +0 -1
- data/ext/debian/puppet-testsuite.install +0 -2
- data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
- data/ext/debian/puppet.lintian-overrides +0 -3
- data/ext/debian/puppet.logrotate +0 -20
- data/ext/debian/puppet.postinst +0 -20
- data/ext/debian/puppet.postrm +0 -20
- data/ext/debian/puppet.preinst +0 -20
- data/ext/debian/puppetmaster-common.install +0 -2
- data/ext/debian/puppetmaster-common.manpages +0 -2
- data/ext/debian/puppetmaster-common.postinst +0 -6
- data/ext/debian/puppetmaster-passenger.dirs +0 -4
- data/ext/debian/puppetmaster-passenger.postinst +0 -162
- data/ext/debian/puppetmaster-passenger.postrm +0 -61
- data/ext/debian/puppetmaster.README.debian +0 -17
- data/ext/debian/puppetmaster.default +0 -14
- data/ext/debian/puppetmaster.init +0 -137
- data/ext/debian/puppetmaster.lintian-overrides +0 -3
- data/ext/debian/puppetmaster.postinst +0 -20
- data/ext/debian/puppetmaster.postrm +0 -5
- data/ext/debian/puppetmaster.preinst +0 -22
- data/ext/debian/rules +0 -132
- data/ext/debian/source/format +0 -1
- data/ext/debian/source/options +0 -1
- data/ext/debian/vim-puppet.README.Debian +0 -13
- data/ext/debian/vim-puppet.dirs +0 -5
- data/ext/debian/vim-puppet.yaml +0 -7
- data/ext/debian/watch +0 -2
- data/ext/freebsd/puppetd +0 -26
- data/ext/freebsd/puppetmasterd +0 -26
- data/ext/gentoo/conf.d/puppet +0 -5
- data/ext/gentoo/conf.d/puppetmaster +0 -12
- data/ext/gentoo/init.d/puppet +0 -38
- data/ext/gentoo/init.d/puppetmaster +0 -51
- data/ext/gentoo/puppet/fileserver.conf +0 -41
- data/ext/ips/puppet-agent +0 -44
- data/ext/ips/puppet-master +0 -44
- data/ext/ips/puppet.p5m.erb +0 -12
- data/ext/ips/puppetagent.xml +0 -42
- data/ext/ips/puppetmaster.xml +0 -42
- data/ext/ips/rules +0 -19
- data/ext/ips/transforms +0 -34
- data/ext/ldap/puppet.schema +0 -24
- data/ext/logcheck/puppet +0 -23
- data/ext/osx/file_mapping.yaml +0 -33
- data/ext/osx/postflight.erb +0 -109
- data/ext/osx/preflight.erb +0 -52
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/redhat/fileserver.conf +0 -41
- data/ext/redhat/logrotate +0 -21
- data/ext/redhat/puppet.spec.erb +0 -842
- data/ext/redhat/server.init +0 -128
- data/ext/redhat/server.sysconfig +0 -13
- data/ext/solaris/pkginfo +0 -6
- data/ext/solaris/smf/puppetd.xml +0 -77
- data/ext/solaris/smf/puppetmasterd.xml +0 -77
- data/ext/solaris/smf/svc-puppetd +0 -71
- data/ext/solaris/smf/svc-puppetmasterd +0 -67
- data/ext/suse/puppet.spec +0 -310
- data/ext/suse/server.init +0 -173
- data/ext/yaml_nodes.rb +0 -105
- data/spec/unit/indirector/store_configs_spec.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20f0aaf2ac1082c2478a0c9635aa43f9a37fa77da75a724f8284d580fcab7010
|
4
|
+
data.tar.gz: c561e1428455cf0ab78eab68cb4633f5f0bdc4ff020a90dcd8672d6ee309e509
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc33aacf4281d0dd2f2da42bfebaf45c1e81716dc67f8dbb0e95eb797e24469b46f4df5d95c89afac6146775b91d388ba84c443c4c3ea6edb1474483d0ec1ed7
|
7
|
+
data.tar.gz: c22eab4267770be1607ddf4b3f30042c028e72c8585b0d215115d5f35d7c5f02fbfdad4ca3b0df2eb79f40d3f87349fb281cf85bbc02f277e93b1366cf5bb4a6
|
data/Gemfile
CHANGED
@@ -55,7 +55,7 @@ end
|
|
55
55
|
group(:development, optional: true) do
|
56
56
|
gem 'memory_profiler', require: false, platforms: [:mri]
|
57
57
|
gem 'pry', require: false, platforms: [:ruby]
|
58
|
-
gem "racc", "1.
|
58
|
+
gem "racc", "1.5.2", require: false, platforms: [:ruby]
|
59
59
|
if RUBY_PLATFORM != 'java' && RUBY_VERSION.to_f >= 2.5
|
60
60
|
gem 'ruby-prof', '>= 0.16.0', require: false
|
61
61
|
end
|
@@ -65,7 +65,7 @@ group(:packaging) do
|
|
65
65
|
gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.99')
|
66
66
|
end
|
67
67
|
|
68
|
-
group(:documentation) do
|
68
|
+
group(:documentation, optional: true) do
|
69
69
|
gem 'gettext-setup', '~> 0.28', require: false, platforms: [:ruby]
|
70
70
|
gem 'ronn', '~> 0.7.3', require: false, platforms: [:ruby]
|
71
71
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/puppetlabs/packaging
|
3
|
-
revision:
|
3
|
+
revision: 48564f11abbc1f61a159d9caa44c8236d910575a
|
4
4
|
branch: 1.0.x
|
5
5
|
specs:
|
6
|
-
packaging (0.99.
|
6
|
+
packaging (0.99.81)
|
7
7
|
artifactory (~> 2)
|
8
8
|
csv (= 3.1.5)
|
9
9
|
rake (>= 12.3)
|
@@ -12,7 +12,7 @@ GIT
|
|
12
12
|
PATH
|
13
13
|
remote: .
|
14
14
|
specs:
|
15
|
-
puppet (6.
|
15
|
+
puppet (6.25.0)
|
16
16
|
CFPropertyList (~> 2.2)
|
17
17
|
concurrent-ruby (~> 1.0)
|
18
18
|
deep_merge (~> 1.0)
|
@@ -40,11 +40,11 @@ GEM
|
|
40
40
|
deep_merge (1.2.1)
|
41
41
|
diff-lcs (1.4.4)
|
42
42
|
docopt (0.6.1)
|
43
|
-
facter (4.2.
|
43
|
+
facter (4.2.5)
|
44
44
|
hocon (~> 1.3)
|
45
45
|
thor (>= 1.0.1, < 2.0)
|
46
46
|
fast_gettext (1.1.2)
|
47
|
-
ffi (1.15.
|
47
|
+
ffi (1.15.4)
|
48
48
|
gettext (3.2.9)
|
49
49
|
locale (>= 2.0.5)
|
50
50
|
text (>= 1.3.0)
|
@@ -71,7 +71,7 @@ GEM
|
|
71
71
|
multi_json (1.15.0)
|
72
72
|
mustache (1.1.1)
|
73
73
|
optimist (3.0.1)
|
74
|
-
parallel (1.
|
74
|
+
parallel (1.21.0)
|
75
75
|
parser (2.7.2.0)
|
76
76
|
ast (~> 2.4.1)
|
77
77
|
powerpack (0.1.3)
|
@@ -81,9 +81,9 @@ GEM
|
|
81
81
|
public_suffix (4.0.6)
|
82
82
|
puppet-resource_api (1.8.14)
|
83
83
|
hocon (>= 1.0)
|
84
|
-
puppetserver-ca (1.
|
84
|
+
puppetserver-ca (1.11.6)
|
85
85
|
facter (>= 2.0.1, < 5)
|
86
|
-
racc (1.
|
86
|
+
racc (1.5.2)
|
87
87
|
rainbow (2.2.2)
|
88
88
|
rake
|
89
89
|
rake (12.3.3)
|
@@ -127,10 +127,10 @@ GEM
|
|
127
127
|
semantic_puppet (1.0.4)
|
128
128
|
text (1.3.1)
|
129
129
|
thor (1.1.0)
|
130
|
-
unicode-display_width (1.
|
130
|
+
unicode-display_width (1.8.0)
|
131
131
|
vcr (5.1.0)
|
132
|
-
webmock (3.
|
133
|
-
addressable (>= 2.
|
132
|
+
webmock (3.14.0)
|
133
|
+
addressable (>= 2.8.0)
|
134
134
|
crack (>= 0.3.2)
|
135
135
|
hashdiff (>= 0.4.0, < 2.0.0)
|
136
136
|
yard (0.9.26)
|
@@ -153,7 +153,7 @@ DEPENDENCIES
|
|
153
153
|
puppet!
|
154
154
|
puppet-resource_api (~> 1.5)
|
155
155
|
puppetserver-ca (~> 1.1)
|
156
|
-
racc (= 1.
|
156
|
+
racc (= 1.5.2)
|
157
157
|
rake (~> 12.2)
|
158
158
|
rdoc (~> 6.0)
|
159
159
|
ronn (~> 0.7.3)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/ext/README.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# `ext/` directory details
|
2
|
+
This directory contains files used internally when packaging [puppet](https://github.com/puppetlabs/puppet) and [puppet-agent](https://github.com/puppetlabs/puppet-agent)
|
3
|
+
What follows is a more detailed description of each directory/file:
|
4
|
+
* `debian/` - init scripts for puppet (used for Debian-based platforms that do not support systemd)
|
5
|
+
* `hiera/hiera.yaml` - installed to `$codedir/environments/production`as a default Hiera configuration file
|
6
|
+
* `osx/puppet.plist` - puppet launchd plist for macOS
|
7
|
+
* `redhat/` - init scripts for puppet (used for EL-based platforms that do not support systemd)
|
8
|
+
* `solaris/smf/` - service manifests for Solaris 11
|
9
|
+
* `suse/client.init` - init script for puppet (used for SUSE-based platforms that do not support systemd)
|
10
|
+
* `systemd/puppet.service` - systemd unit file for puppet
|
11
|
+
* `windows/` - the puppet daemon for Windows, and other useful `.bat` helper wrappers
|
12
|
+
* `build_defaults.yaml` - information pertaining to the puppetlabs build automation
|
13
|
+
* `project_data.yaml` - information used when packaging the puppet gem
|
@@ -334,6 +334,10 @@ generated by running puppet agent with '--genconfig'.
|
|
334
334
|
specifying a time of 0.
|
335
335
|
(This is a Puppet setting, and can go in puppet.conf.)
|
336
336
|
|
337
|
+
* --write_catalog_summary
|
338
|
+
After compiling the catalog saves the resource list and classes list to the node
|
339
|
+
in the state directory named classes.txt and resources.txt
|
340
|
+
(This is a Puppet setting, and can go in puppet.conf.)
|
337
341
|
|
338
342
|
EXAMPLE
|
339
343
|
-------
|
@@ -16,7 +16,9 @@ class Puppet::Application::Apply < Puppet::Application
|
|
16
16
|
option("--use-nodes")
|
17
17
|
option("--detailed-exitcodes")
|
18
18
|
|
19
|
-
option("--write-catalog-summary")
|
19
|
+
option("--write-catalog-summary") do |arg|
|
20
|
+
Puppet[:write_catalog_summary] = arg
|
21
|
+
end
|
20
22
|
|
21
23
|
option("--catalog catalog", "-c catalog") do |arg|
|
22
24
|
options[:catalog] = arg
|
@@ -169,6 +171,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
169
171
|
def app_defaults
|
170
172
|
super.merge({
|
171
173
|
:default_file_terminus => :file_server,
|
174
|
+
:write_catalog_summary => false
|
172
175
|
})
|
173
176
|
end
|
174
177
|
|
@@ -247,7 +250,22 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
247
250
|
|
248
251
|
catalog.retrieval_duration = Time.now - starttime
|
249
252
|
|
250
|
-
|
253
|
+
# We accept either the global option `--write_catalog_summary`
|
254
|
+
# corresponding to the new setting, or the application option
|
255
|
+
# `--write-catalog-summary`. The latter is needed to maintain backwards
|
256
|
+
# compatibility.
|
257
|
+
#
|
258
|
+
# Puppet settings parse global options using PuppetOptionParser, but it
|
259
|
+
# only recognizes underscores, not dashes.
|
260
|
+
# The base application parses app specific options using ruby's builtin
|
261
|
+
# OptionParser. As of ruby 2.4, it will accept either underscores or
|
262
|
+
# dashes, but prefer dashes.
|
263
|
+
#
|
264
|
+
# So if underscores are used, the PuppetOptionParser will parse it and
|
265
|
+
# store that in Puppet[:write_catalog_summary]. If dashes are used,
|
266
|
+
# OptionParser will parse it, and set Puppet[:write_catalog_summary]. In
|
267
|
+
# either case, settings will contain the correct value.
|
268
|
+
if Puppet[:write_catalog_summary]
|
251
269
|
catalog.write_class_file
|
252
270
|
catalog.write_resource_file
|
253
271
|
end
|
@@ -225,21 +225,23 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
|
|
225
225
|
def find_or_save_resources(type, name, params)
|
226
226
|
key = local_key(type, name)
|
227
227
|
|
228
|
-
|
229
|
-
if
|
230
|
-
|
228
|
+
Puppet.override(stringify_rich: true) do
|
229
|
+
if name
|
230
|
+
if params.empty?
|
231
|
+
[ Puppet::Resource.indirection.find( key ) ]
|
232
|
+
else
|
233
|
+
resource = Puppet::Resource.new( type, name, :parameters => params )
|
234
|
+
|
235
|
+
# save returns [resource that was saved, transaction log from applying the resource]
|
236
|
+
save_result = Puppet::Resource.indirection.save(resource, key)
|
237
|
+
[ save_result.first ]
|
238
|
+
end
|
231
239
|
else
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
[ save_result.first ]
|
237
|
-
end
|
238
|
-
else
|
239
|
-
if type == "file"
|
240
|
-
raise _("Listing all file instances is not supported. Please specify a file or directory, e.g. puppet resource file /etc")
|
240
|
+
if type == "file"
|
241
|
+
raise _("Listing all file instances is not supported. Please specify a file or directory, e.g. puppet resource file /etc")
|
242
|
+
end
|
243
|
+
Puppet::Resource.indirection.search( key, {} )
|
241
244
|
end
|
242
|
-
Puppet::Resource.indirection.search( key, {} )
|
243
245
|
end
|
244
246
|
end
|
245
247
|
end
|
data/lib/puppet/configurer.rb
CHANGED
@@ -91,7 +91,7 @@ class Puppet::Configurer
|
|
91
91
|
|
92
92
|
if result
|
93
93
|
# don't use use cached catalog if it doesn't match server specified environment
|
94
|
-
if
|
94
|
+
if result.environment != @environment
|
95
95
|
Puppet.err _("Not using cached catalog because its environment '%{catalog_env}' does not match '%{local_env}'") % { catalog_env: result.environment, local_env: @environment }
|
96
96
|
return nil
|
97
97
|
end
|
@@ -118,8 +118,11 @@ class Puppet::Configurer
|
|
118
118
|
catalog = result.to_ral
|
119
119
|
catalog.finalize
|
120
120
|
catalog.retrieval_duration = duration
|
121
|
-
|
122
|
-
|
121
|
+
|
122
|
+
if Puppet[:write_catalog_summary]
|
123
|
+
catalog.write_class_file
|
124
|
+
catalog.write_resource_file
|
125
|
+
end
|
123
126
|
end
|
124
127
|
options[:report].add_times(:convert_catalog, catalog_conversion_time) if options[:report]
|
125
128
|
|
@@ -257,6 +260,7 @@ class Puppet::Configurer
|
|
257
260
|
|
258
261
|
def run_internal(options)
|
259
262
|
report = options[:report]
|
263
|
+
report.initial_environment = Puppet[:environment]
|
260
264
|
|
261
265
|
if options[:start_time]
|
262
266
|
startup_time = Time.now - options[:start_time]
|
@@ -296,69 +300,35 @@ class Puppet::Configurer
|
|
296
300
|
configured_environment = Puppet[:environment] if Puppet.settings.set_by_config?(:environment)
|
297
301
|
|
298
302
|
# We only need to find out the environment to run in if we don't already have a catalog
|
299
|
-
unless (cached_catalog || options[:catalog] || Puppet[:strict_environment_mode])
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
:environment => Puppet::Node::Environment.remote(@environment),
|
305
|
-
:configured_environment => configured_environment,
|
306
|
-
:ignore_cache => true,
|
307
|
-
:transaction_uuid => @transaction_uuid,
|
308
|
-
:fail_on_404 => true)
|
309
|
-
end
|
310
|
-
options[:report].add_times(:node_retrieval, node_retr_time)
|
311
|
-
|
312
|
-
if node
|
313
|
-
# If we have deserialized a node from a rest call, we want to set
|
314
|
-
# an environment instance as a simple 'remote' environment reference.
|
315
|
-
if !node.has_environment_instance? && node.environment_name
|
316
|
-
node.environment = Puppet::Node::Environment.remote(node.environment_name)
|
317
|
-
end
|
303
|
+
unless (cached_catalog || options[:catalog] || Puppet.settings.set_by_cli?(:environment) || Puppet[:strict_environment_mode])
|
304
|
+
Puppet.debug(_("Environment not passed via CLI and no catalog was given, attempting to find out the last server-specified environment"))
|
305
|
+
if last_server_specified_environment
|
306
|
+
@environment = last_server_specified_environment
|
307
|
+
report.environment = last_server_specified_environment
|
318
308
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
Puppet.notice _("Local environment: '%{local_env}' doesn't match server specified node environment '%{node_env}', switching agent to '%{node_env}'.") % { local_env: @environment, node_env: node.environment }
|
323
|
-
@environment = node.environment.to_s
|
324
|
-
report.environment = @environment
|
325
|
-
query_options = nil
|
326
|
-
facts = nil
|
327
|
-
|
328
|
-
new_env = Puppet::Node::Environment.remote(@environment)
|
329
|
-
Puppet.push_context(
|
330
|
-
{
|
331
|
-
current_environment: new_env,
|
332
|
-
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
333
|
-
},
|
334
|
-
"Local node environment #{@environment} for configurer transaction"
|
335
|
-
)
|
336
|
-
else
|
337
|
-
Puppet.info _("Using configured environment '%{env}'") % { env: @environment }
|
338
|
-
end
|
339
|
-
end
|
340
|
-
rescue StandardError => detail
|
341
|
-
Puppet.warning(_("Unable to fetch my node definition, but the agent run will continue:"))
|
342
|
-
Puppet.warning(detail)
|
309
|
+
push_current_environment_and_loaders
|
310
|
+
else
|
311
|
+
Puppet.debug(_("Could not find a usable environment in the lastrunfile. Either the file does not exist, does not have the required keys, or the values of 'initial_environment' and 'converged_environment' are identical."))
|
343
312
|
end
|
344
313
|
end
|
345
314
|
|
315
|
+
Puppet.info _("Using environment '%{env}'") % { env: @environment }
|
316
|
+
|
346
317
|
# This is to maintain compatibility with anyone using this class
|
347
318
|
# aside from agent, apply, device.
|
348
319
|
unless Puppet.lookup(:loaders) { nil }
|
349
|
-
|
350
|
-
Puppet.push_context(
|
351
|
-
{
|
352
|
-
current_environment: new_env,
|
353
|
-
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
354
|
-
},
|
355
|
-
"Local node environment #{@environment} for configurer transaction"
|
356
|
-
)
|
320
|
+
push_current_environment_and_loaders
|
357
321
|
end
|
358
322
|
|
323
|
+
temp_value = options[:pluginsync]
|
324
|
+
|
325
|
+
# only validate server environment if pluginsync is requested
|
326
|
+
options[:pluginsync] = valid_server_environment? if options[:pluginsync] == true
|
327
|
+
|
359
328
|
query_options, facts = get_facts(options) unless query_options
|
329
|
+
options[:pluginsync] = temp_value
|
330
|
+
|
360
331
|
query_options[:configured_environment] = configured_environment
|
361
|
-
options[:convert_for_node] = node
|
362
332
|
|
363
333
|
catalog = prepare_and_retrieve_catalog(cached_catalog, facts, options, query_options)
|
364
334
|
unless catalog
|
@@ -383,6 +353,8 @@ class Puppet::Configurer
|
|
383
353
|
@environment = catalog.environment
|
384
354
|
report.environment = @environment
|
385
355
|
|
356
|
+
push_current_environment_and_loaders
|
357
|
+
|
386
358
|
query_options, facts = get_facts(options)
|
387
359
|
query_options[:configured_environment] = configured_environment
|
388
360
|
|
@@ -456,6 +428,25 @@ class Puppet::Configurer
|
|
456
428
|
end
|
457
429
|
private :run_internal
|
458
430
|
|
431
|
+
def valid_server_environment?
|
432
|
+
session = Puppet.lookup(:http_session)
|
433
|
+
begin
|
434
|
+
fs = session.route_to(:fileserver)
|
435
|
+
fs.get_file_metadatas(path: URI(Puppet[:pluginsource]).path, recurse: :false, environment: @environment)
|
436
|
+
true
|
437
|
+
rescue Puppet::HTTP::ResponseError => detail
|
438
|
+
if detail.response.code == 404
|
439
|
+
Puppet.notice(_("Environment '%{environment}' not found on server, skipping initial pluginsync.") % { environment: @environment })
|
440
|
+
else
|
441
|
+
Puppet.log_exception(detail, detail.message)
|
442
|
+
end
|
443
|
+
false
|
444
|
+
rescue => detail
|
445
|
+
Puppet.log_exception(detail, detail.message)
|
446
|
+
false
|
447
|
+
end
|
448
|
+
end
|
449
|
+
|
459
450
|
def find_functional_server
|
460
451
|
begin
|
461
452
|
session = Puppet.lookup(:http_session)
|
@@ -472,10 +463,35 @@ class Puppet::Configurer
|
|
472
463
|
end
|
473
464
|
private :find_functional_server
|
474
465
|
|
466
|
+
def last_server_specified_environment
|
467
|
+
return @last_server_specified_environment if @last_server_specified_environment
|
468
|
+
if Puppet::FileSystem.exist?(Puppet[:lastrunfile])
|
469
|
+
summary = Puppet::Util::Yaml.safe_load_file(Puppet[:lastrunfile])
|
470
|
+
return unless summary.dig('application', 'run_mode') == 'agent'
|
471
|
+
initial_environment = summary.dig('application', 'initial_environment')
|
472
|
+
converged_environment = summary.dig('application', 'converged_environment')
|
473
|
+
@last_server_specified_environment = converged_environment if initial_environment != converged_environment
|
474
|
+
end
|
475
|
+
|
476
|
+
Puppet.debug(_("Found last server-specified environment: %{environment}") % { environment: @last_server_specified_environment }) if @last_server_specified_environment
|
477
|
+
@last_server_specified_environment
|
478
|
+
rescue => detail
|
479
|
+
Puppet.debug(_("Could not find last server-specified environment: %{detail}") % { detail: detail })
|
480
|
+
nil
|
481
|
+
end
|
482
|
+
private :last_server_specified_environment
|
483
|
+
|
475
484
|
def send_report(report)
|
476
485
|
puts report.summary if Puppet[:summarize]
|
477
486
|
save_last_run_summary(report)
|
478
|
-
|
487
|
+
if Puppet[:report]
|
488
|
+
remote = Puppet::Node::Environment.remote(@environment)
|
489
|
+
begin
|
490
|
+
Puppet::Transaction::Report.indirection.save(report, nil, ignore_cache: true, environment: remote)
|
491
|
+
ensure
|
492
|
+
Puppet::Transaction::Report.indirection.save(report, nil, ignore_terminus: true, environment: remote)
|
493
|
+
end
|
494
|
+
end
|
479
495
|
rescue => detail
|
480
496
|
Puppet.log_exception(detail, _("Could not send report: %{detail}") % { detail: detail })
|
481
497
|
end
|
@@ -498,7 +514,7 @@ class Puppet::Configurer
|
|
498
514
|
# @return [false] If an exception is raised during fact generation or
|
499
515
|
# submission.
|
500
516
|
def resubmit_facts
|
501
|
-
|
517
|
+
Puppet.runtime[:facter].clear
|
502
518
|
facts = find_facts
|
503
519
|
|
504
520
|
client = Puppet.runtime[:http]
|
@@ -533,6 +549,17 @@ class Puppet::Configurer
|
|
533
549
|
end
|
534
550
|
end
|
535
551
|
|
552
|
+
def push_current_environment_and_loaders
|
553
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
554
|
+
Puppet.push_context(
|
555
|
+
{
|
556
|
+
:current_environment => new_env,
|
557
|
+
:loaders => Puppet::Pops::Loaders.new(new_env, true)
|
558
|
+
},
|
559
|
+
"Local node environment #{@environment} for configurer transaction"
|
560
|
+
)
|
561
|
+
end
|
562
|
+
|
536
563
|
def retrieve_catalog_from_cache(query_options)
|
537
564
|
result = nil
|
538
565
|
@duration = thinmark do
|
@@ -560,6 +587,7 @@ class Puppet::Configurer
|
|
560
587
|
# don't update cache until after environment converges
|
561
588
|
:ignore_cache_save => true,
|
562
589
|
:environment => Puppet::Node::Environment.remote(@environment),
|
590
|
+
:check_environment => true,
|
563
591
|
:fail_on_404 => true,
|
564
592
|
:facts_for_catalog => facts
|
565
593
|
)
|
@@ -18,7 +18,7 @@ class Puppet::Confine::Variable < Puppet::Confine
|
|
18
18
|
|
19
19
|
# Retrieve the value from facter
|
20
20
|
def facter_value
|
21
|
-
@facter_value ||=
|
21
|
+
@facter_value ||= Puppet.runtime[:facter].value(name).to_s.downcase
|
22
22
|
end
|
23
23
|
|
24
24
|
def initialize(values)
|