puppet 7.9.0-x64-mingw32 → 7.12.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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 +236 -58
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/defaults.rb +66 -29
- data/lib/puppet/environments.rb +66 -26
- 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 +2 -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/file_system.rb +2 -1
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/functions/find_template.rb +2 -2
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/redirector.rb +5 -0
- 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_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/resource.rb +1 -1
- data/lib/puppet/parser/scope.rb +8 -7
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/pops/evaluator/closure.rb +7 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.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 +14 -13
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/eparser.rb +752 -753
- data/lib/puppet/pops/parser/lexer2.rb +69 -68
- 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 +7 -6
- 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/puppet_gem.rb +1 -1
- 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/catalog.rb +1 -1
- data/lib/puppet/resource/type_collection.rb +2 -1
- data/lib/puppet/resource.rb +38 -5
- data/lib/puppet/runtime.rb +11 -1
- data/lib/puppet/settings/file_setting.rb +3 -8
- 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 +2 -2
- 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/autoload.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/service.rb +0 -5
- data/lib/puppet/util/windows/user.rb +0 -1
- data/lib/puppet/util/windows.rb +3 -0
- data/lib/puppet/util.rb +4 -3
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +2 -6
- data/locales/puppet.pot +265 -221
- data/man/man5/puppet.conf.5 +73 -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-lookup.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.8 +2 -2
- data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +2 -1
- 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 +146 -52
- 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/parser/pcore_resource_spec.rb +10 -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 +353 -57
- 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 +12 -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/client_spec.rb +58 -1
- 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 +14 -0
- data/spec/unit/module_tool/applications/installer_spec.rb +39 -12
- 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 +34 -5
- 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/resource/catalog_spec.rb +14 -1
- data/spec/unit/resource_spec.rb +58 -2
- data/spec/unit/settings/file_setting_spec.rb +10 -7
- data/spec/unit/type/service_spec.rb +27 -0
- data/spec/unit/type_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +25 -8
- 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 -28
- 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 -841
- 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: 00af5477a8e7cde763b4b1090062556af8155198afd77e9f68bd58839d9ba929
|
4
|
+
data.tar.gz: 2f76a790ae4da3a71c52a7b39af03f73fc732a5b48dbe2330a5ea0cd441205ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b849371bb7e24d671ba2ba88cca3bf590e2f74c859b925e4aa3881415c01596b0df65f8b2eb80936a3a570d0d96b1bd931e5973406383ba77389643c6ba5577b
|
7
|
+
data.tar.gz: c6cbd56651d1d2303d29284d3add4ef97d2fa3cfeecf015222f3a9efb4f8e8629c66426edd78a463ef578a7cd7f0c49a2812c4b0914e70afbf5fbcedde689115
|
data/Gemfile
CHANGED
@@ -53,7 +53,7 @@ end
|
|
53
53
|
group(:development, optional: true) do
|
54
54
|
gem 'memory_profiler', require: false, platforms: [:mri]
|
55
55
|
gem 'pry', require: false, platforms: [:ruby]
|
56
|
-
gem "racc", "1.
|
56
|
+
gem "racc", "1.5.2", require: false, platforms: [:ruby]
|
57
57
|
if RUBY_PLATFORM != 'java'
|
58
58
|
gem 'ruby-prof', '>= 0.16.0', require: false
|
59
59
|
end
|
@@ -63,7 +63,7 @@ group(:packaging) do
|
|
63
63
|
gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.99')
|
64
64
|
end
|
65
65
|
|
66
|
-
group(:documentation) do
|
66
|
+
group(:documentation, optional: true) do
|
67
67
|
gem 'gettext-setup', '~> 0.28', require: false, platforms: [:ruby]
|
68
68
|
gem 'ronn', '~> 0.7.3', require: false, platforms: [:ruby]
|
69
69
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/puppetlabs/packaging
|
3
|
-
revision:
|
3
|
+
revision: 4c5359786cad0d12877e10e98948065bfeb3e304
|
4
4
|
branch: 1.0.x
|
5
5
|
specs:
|
6
|
-
packaging (0.
|
6
|
+
packaging (0.103.0)
|
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 (7.
|
15
|
+
puppet (7.12.1)
|
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)
|
@@ -70,7 +70,7 @@ GEM
|
|
70
70
|
multi_json (1.15.0)
|
71
71
|
mustache (1.1.1)
|
72
72
|
optimist (3.0.1)
|
73
|
-
parallel (1.
|
73
|
+
parallel (1.21.0)
|
74
74
|
parser (2.7.2.0)
|
75
75
|
ast (~> 2.4.1)
|
76
76
|
powerpack (0.1.3)
|
@@ -80,9 +80,9 @@ GEM
|
|
80
80
|
public_suffix (4.0.6)
|
81
81
|
puppet-resource_api (1.8.14)
|
82
82
|
hocon (>= 1.0)
|
83
|
-
puppetserver-ca (2.
|
83
|
+
puppetserver-ca (2.3.5)
|
84
84
|
facter (>= 2.0.1, < 5)
|
85
|
-
racc (1.
|
85
|
+
racc (1.5.2)
|
86
86
|
rainbow (2.2.2)
|
87
87
|
rake
|
88
88
|
rake (13.0.6)
|
@@ -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 (~> 2.0)
|
156
|
-
racc (= 1.
|
156
|
+
racc (= 1.5.2)
|
157
157
|
rake (~> 13.0)
|
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,14 +118,105 @@ 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
|
|
126
129
|
catalog
|
127
130
|
end
|
128
131
|
|
132
|
+
def warn_number_of_facts(size, max_number)
|
133
|
+
Puppet.warning _("The current total number of facts: %{size} exceeds the number of facts limit: %{max_size}") % { size: size, max_size: max_number }
|
134
|
+
end
|
135
|
+
|
136
|
+
def warn_fact_name_length(name, max_length)
|
137
|
+
Puppet.warning _("Fact %{name} with length: '%{length}' exceeds the length limit: %{limit}") % { name: name, length: name.to_s.bytesize, limit: max_length }
|
138
|
+
end
|
139
|
+
|
140
|
+
def warn_number_of_top_level_facts(size, max_number)
|
141
|
+
Puppet.warning _("The current number of top level facts: %{size} exceeds the top facts limit: %{max_size}") % { size: size, max_size: max_number }
|
142
|
+
end
|
143
|
+
|
144
|
+
def warn_fact_value_length(value, max_length)
|
145
|
+
Puppet.warning _("Fact value '%{value}' with the value length: '%{length}' exceeds the value length limit: %{max_length}") % { value: value, length:value.to_s.bytesize, max_length: max_length }
|
146
|
+
end
|
147
|
+
|
148
|
+
def warn_fact_payload_size(payload, max_size)
|
149
|
+
Puppet.warning _("Payload with the current size of: '%{payload}' exceeds the payload size limit: %{max_size}") % { payload: payload, max_size: max_size }
|
150
|
+
end
|
151
|
+
|
152
|
+
def check_fact_name_length(name, number_of_dots)
|
153
|
+
max_length = Puppet[:fact_name_length_soft_limit]
|
154
|
+
return if max_length.zero?
|
155
|
+
|
156
|
+
# rough byte size estimations of fact path as a postgresql btree index
|
157
|
+
size_as_btree_index = 8 + (number_of_dots * 2) + name.to_s.bytesize
|
158
|
+
warn_fact_name_length(name, max_length) if size_as_btree_index > max_length
|
159
|
+
end
|
160
|
+
|
161
|
+
def check_fact_values_length(values)
|
162
|
+
max_length = Puppet[:fact_value_length_soft_limit]
|
163
|
+
return if max_length.zero?
|
164
|
+
|
165
|
+
warn_fact_value_length(values, max_length) if values.to_s.bytesize > max_length
|
166
|
+
end
|
167
|
+
|
168
|
+
def check_top_level_number_limit(size)
|
169
|
+
max_size = Puppet[:top_level_facts_soft_limit]
|
170
|
+
return if max_size.zero?
|
171
|
+
|
172
|
+
warn_number_of_top_level_facts(size, max_size) if size > max_size
|
173
|
+
end
|
174
|
+
|
175
|
+
def check_total_number_limit(size)
|
176
|
+
max_size = Puppet[:number_of_facts_soft_limit]
|
177
|
+
return if max_size.zero?
|
178
|
+
|
179
|
+
warn_number_of_facts(size, max_size) if size > max_size
|
180
|
+
end
|
181
|
+
|
182
|
+
def check_payload_size(payload)
|
183
|
+
max_size = Puppet[:payload_soft_limit]
|
184
|
+
return if max_size.zero?
|
185
|
+
|
186
|
+
warn_fact_payload_size(payload, max_size) if payload > max_size
|
187
|
+
Puppet.debug _("The size of the payload is %{payload}") % {payload: payload}
|
188
|
+
end
|
189
|
+
|
190
|
+
def parse_fact_name_and_value_limits(object, path = [])
|
191
|
+
case object
|
192
|
+
when Hash
|
193
|
+
object.each do |key, value|
|
194
|
+
path.push(key)
|
195
|
+
parse_fact_name_and_value_limits(value, path)
|
196
|
+
path.pop
|
197
|
+
@number_of_facts += 1
|
198
|
+
end
|
199
|
+
when Array
|
200
|
+
object.each_with_index do |e, idx|
|
201
|
+
path.push(idx)
|
202
|
+
parse_fact_name_and_value_limits(e, path)
|
203
|
+
path.pop
|
204
|
+
end
|
205
|
+
else
|
206
|
+
check_fact_name_length(path.join(), path.size)
|
207
|
+
check_fact_values_length(object)
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|
211
|
+
def check_facts_limits(facts)
|
212
|
+
@number_of_facts = 0
|
213
|
+
check_top_level_number_limit(facts.size)
|
214
|
+
|
215
|
+
parse_fact_name_and_value_limits(facts)
|
216
|
+
check_total_number_limit(@number_of_facts)
|
217
|
+
Puppet.debug _("The total number of facts registered is %{number_of_facts}") % {number_of_facts: @number_of_facts}
|
218
|
+
end
|
219
|
+
|
129
220
|
def get_facts(options)
|
130
221
|
if options[:pluginsync]
|
131
222
|
plugin_sync_time = thinmark do
|
@@ -148,7 +239,9 @@ class Puppet::Configurer
|
|
148
239
|
# facts_for_uploading may set Puppet[:node_name_value] as a side effect
|
149
240
|
facter_time = thinmark do
|
150
241
|
facts = find_facts
|
242
|
+
check_facts_limits(facts.to_data_hash['values'])
|
151
243
|
facts_hash = encode_facts(facts) # encode for uploading # was: facts_for_uploading
|
244
|
+
check_payload_size(facts_hash[:facts].bytesize)
|
152
245
|
end
|
153
246
|
options[:report].add_times(:fact_generation, facter_time) if options[:report]
|
154
247
|
end
|
@@ -255,6 +348,7 @@ class Puppet::Configurer
|
|
255
348
|
|
256
349
|
def run_internal(options)
|
257
350
|
report = options[:report]
|
351
|
+
report.initial_environment = Puppet[:environment]
|
258
352
|
|
259
353
|
if options[:start_time]
|
260
354
|
startup_time = Time.now - options[:start_time]
|
@@ -294,69 +388,42 @@ class Puppet::Configurer
|
|
294
388
|
configured_environment = Puppet[:environment] if Puppet.settings.set_by_config?(:environment)
|
295
389
|
|
296
390
|
# We only need to find out the environment to run in if we don't already have a catalog
|
297
|
-
unless (cached_catalog || options[:catalog] || Puppet[:strict_environment_mode])
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
if !node.has_environment_instance? && node.environment_name
|
314
|
-
node.environment = Puppet::Node::Environment.remote(node.environment_name)
|
315
|
-
end
|
316
|
-
|
317
|
-
@node_environment = node.environment.to_s
|
318
|
-
|
319
|
-
if node.environment.to_s != @environment
|
320
|
-
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 }
|
321
|
-
@environment = node.environment.to_s
|
322
|
-
report.environment = @environment
|
323
|
-
query_options = nil
|
324
|
-
facts = nil
|
325
|
-
|
326
|
-
new_env = Puppet::Node::Environment.remote(@environment)
|
327
|
-
Puppet.push_context(
|
328
|
-
{
|
329
|
-
current_environment: new_env,
|
330
|
-
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
331
|
-
},
|
332
|
-
"Local node environment #{@environment} for configurer transaction"
|
333
|
-
)
|
334
|
-
else
|
335
|
-
Puppet.info _("Using configured environment '%{env}'") % { env: @environment }
|
336
|
-
end
|
337
|
-
end
|
338
|
-
rescue StandardError => detail
|
339
|
-
Puppet.warning(_("Unable to fetch my node definition, but the agent run will continue:"))
|
340
|
-
Puppet.warning(detail)
|
391
|
+
unless (cached_catalog || options[:catalog] || Puppet.settings.set_by_cli?(:environment) || Puppet[:strict_environment_mode])
|
392
|
+
Puppet.debug(_("Environment not passed via CLI and no catalog was given, attempting to find out the last server-specified environment"))
|
393
|
+
initial_environment, loaded_last_environment = last_server_specified_environment
|
394
|
+
|
395
|
+
unless loaded_last_environment
|
396
|
+
Puppet.debug(_("Requesting environment from the server"))
|
397
|
+
initial_environment = current_server_specified_environment(@environment, configured_environment, options)
|
398
|
+
end
|
399
|
+
|
400
|
+
if initial_environment
|
401
|
+
@environment = initial_environment
|
402
|
+
report.environment = initial_environment
|
403
|
+
|
404
|
+
push_current_environment_and_loaders
|
405
|
+
else
|
406
|
+
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."))
|
341
407
|
end
|
342
408
|
end
|
343
409
|
|
410
|
+
Puppet.info _("Using environment '%{env}'") % { env: @environment }
|
411
|
+
|
344
412
|
# This is to maintain compatibility with anyone using this class
|
345
413
|
# aside from agent, apply, device.
|
346
414
|
unless Puppet.lookup(:loaders) { nil }
|
347
|
-
|
348
|
-
Puppet.push_context(
|
349
|
-
{
|
350
|
-
current_environment: new_env,
|
351
|
-
loaders: Puppet::Pops::Loaders.new(new_env, true)
|
352
|
-
},
|
353
|
-
"Local node environment #{@environment} for configurer transaction"
|
354
|
-
)
|
415
|
+
push_current_environment_and_loaders
|
355
416
|
end
|
356
417
|
|
418
|
+
temp_value = options[:pluginsync]
|
419
|
+
|
420
|
+
# only validate server environment if pluginsync is requested
|
421
|
+
options[:pluginsync] = valid_server_environment? if options[:pluginsync] == true
|
422
|
+
|
357
423
|
query_options, facts = get_facts(options) unless query_options
|
424
|
+
options[:pluginsync] = temp_value
|
425
|
+
|
358
426
|
query_options[:configured_environment] = configured_environment
|
359
|
-
options[:convert_for_node] = node
|
360
427
|
|
361
428
|
catalog = prepare_and_retrieve_catalog(cached_catalog, facts, options, query_options)
|
362
429
|
unless catalog
|
@@ -381,6 +448,8 @@ class Puppet::Configurer
|
|
381
448
|
@environment = catalog.environment
|
382
449
|
report.environment = @environment
|
383
450
|
|
451
|
+
push_current_environment_and_loaders
|
452
|
+
|
384
453
|
query_options, facts = get_facts(options)
|
385
454
|
query_options[:configured_environment] = configured_environment
|
386
455
|
|
@@ -454,6 +523,25 @@ class Puppet::Configurer
|
|
454
523
|
end
|
455
524
|
private :run_internal
|
456
525
|
|
526
|
+
def valid_server_environment?
|
527
|
+
session = Puppet.lookup(:http_session)
|
528
|
+
begin
|
529
|
+
fs = session.route_to(:fileserver)
|
530
|
+
fs.get_file_metadatas(path: URI(Puppet[:pluginsource]).path, recurse: :false, environment: @environment)
|
531
|
+
true
|
532
|
+
rescue Puppet::HTTP::ResponseError => detail
|
533
|
+
if detail.response.code == 404
|
534
|
+
Puppet.notice(_("Environment '%{environment}' not found on server, skipping initial pluginsync.") % { environment: @environment })
|
535
|
+
else
|
536
|
+
Puppet.log_exception(detail, detail.message)
|
537
|
+
end
|
538
|
+
false
|
539
|
+
rescue => detail
|
540
|
+
Puppet.log_exception(detail, detail.message)
|
541
|
+
false
|
542
|
+
end
|
543
|
+
end
|
544
|
+
|
457
545
|
def find_functional_server
|
458
546
|
begin
|
459
547
|
session = Puppet.lookup(:http_session)
|
@@ -470,10 +558,88 @@ class Puppet::Configurer
|
|
470
558
|
end
|
471
559
|
private :find_functional_server
|
472
560
|
|
561
|
+
#
|
562
|
+
# @api private
|
563
|
+
#
|
564
|
+
# Read the last server-specified environment from the lastrunfile. The
|
565
|
+
# environment is considered to be server-specified if the values of
|
566
|
+
# `initial_environment` and `converged_environment` are different.
|
567
|
+
#
|
568
|
+
# @return [String, Boolean] An array containing a string with the environment
|
569
|
+
# read from the lastrunfile in case the server is authoritative, and a
|
570
|
+
# boolean marking whether the last environment was correctly loaded.
|
571
|
+
def last_server_specified_environment
|
572
|
+
return @last_server_specified_environment, @loaded_last_environment if @last_server_specified_environment
|
573
|
+
|
574
|
+
if Puppet::FileSystem.exist?(Puppet[:lastrunfile])
|
575
|
+
summary = Puppet::Util::Yaml.safe_load_file(Puppet[:lastrunfile])
|
576
|
+
return [nil, nil] unless summary['application']['run_mode'] == 'agent'
|
577
|
+
initial_environment = summary['application']['initial_environment']
|
578
|
+
converged_environment = summary['application']['converged_environment']
|
579
|
+
@last_server_specified_environment = converged_environment if initial_environment != converged_environment
|
580
|
+
Puppet.debug(_("Successfully loaded last environment from the lastrunfile"))
|
581
|
+
@loaded_last_environment = true
|
582
|
+
end
|
583
|
+
|
584
|
+
Puppet.debug(_("Found last server-specified environment: %{environment}") % { environment: @last_server_specified_environment }) if @last_server_specified_environment
|
585
|
+
[@last_server_specified_environment, @loaded_last_environment]
|
586
|
+
rescue => detail
|
587
|
+
Puppet.debug(_("Could not find last server-specified environment: %{detail}") % { detail: detail })
|
588
|
+
[nil, nil]
|
589
|
+
end
|
590
|
+
private :last_server_specified_environment
|
591
|
+
|
592
|
+
def current_server_specified_environment(current_environment, configured_environment, options)
|
593
|
+
return @server_specified_environment if @server_specified_environment
|
594
|
+
|
595
|
+
begin
|
596
|
+
node_retr_time = thinmark do
|
597
|
+
node = Puppet::Node.indirection.find(Puppet[:node_name_value],
|
598
|
+
:environment => Puppet::Node::Environment.remote(current_environment),
|
599
|
+
:configured_environment => configured_environment,
|
600
|
+
:ignore_cache => true,
|
601
|
+
:transaction_uuid => @transaction_uuid,
|
602
|
+
:fail_on_404 => true)
|
603
|
+
|
604
|
+
# The :rest node terminus returns a node with an environment_name, but not an
|
605
|
+
# environment instance. Attempting to get the environment instance will load
|
606
|
+
# it from disk, which will likely fail. So create a remote environment.
|
607
|
+
#
|
608
|
+
# The :plain node terminus returns a node with an environment, but not an
|
609
|
+
# environment_name.
|
610
|
+
if !node.has_environment_instance? && node.environment_name
|
611
|
+
node.environment = Puppet::Node::Environment.remote(node.environment_name)
|
612
|
+
end
|
613
|
+
|
614
|
+
@server_specified_environment = node.environment.to_s
|
615
|
+
|
616
|
+
if @server_specified_environment != @environment
|
617
|
+
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: @server_specified_environment }
|
618
|
+
end
|
619
|
+
end
|
620
|
+
|
621
|
+
options[:report].add_times(:node_retrieval, node_retr_time)
|
622
|
+
|
623
|
+
@server_specified_environment
|
624
|
+
rescue => detail
|
625
|
+
Puppet.warning(_("Unable to fetch my node definition, but the agent run will continue:"))
|
626
|
+
Puppet.warning(detail)
|
627
|
+
nil
|
628
|
+
end
|
629
|
+
end
|
630
|
+
private :current_server_specified_environment
|
631
|
+
|
473
632
|
def send_report(report)
|
474
633
|
puts report.summary if Puppet[:summarize]
|
475
634
|
save_last_run_summary(report)
|
476
|
-
|
635
|
+
if Puppet[:report]
|
636
|
+
remote = Puppet::Node::Environment.remote(@environment)
|
637
|
+
begin
|
638
|
+
Puppet::Transaction::Report.indirection.save(report, nil, ignore_cache: true, environment: remote)
|
639
|
+
ensure
|
640
|
+
Puppet::Transaction::Report.indirection.save(report, nil, ignore_terminus: true, environment: remote)
|
641
|
+
end
|
642
|
+
end
|
477
643
|
rescue => detail
|
478
644
|
Puppet.log_exception(detail, _("Could not send report: %{detail}") % { detail: detail })
|
479
645
|
end
|
@@ -496,7 +662,7 @@ class Puppet::Configurer
|
|
496
662
|
# @return [false] If an exception is raised during fact generation or
|
497
663
|
# submission.
|
498
664
|
def resubmit_facts
|
499
|
-
|
665
|
+
Puppet.runtime[:facter].clear
|
500
666
|
facts = find_facts
|
501
667
|
|
502
668
|
client = Puppet.runtime[:http]
|
@@ -531,6 +697,17 @@ class Puppet::Configurer
|
|
531
697
|
end
|
532
698
|
end
|
533
699
|
|
700
|
+
def push_current_environment_and_loaders
|
701
|
+
new_env = Puppet::Node::Environment.remote(@environment)
|
702
|
+
Puppet.push_context(
|
703
|
+
{
|
704
|
+
:current_environment => new_env,
|
705
|
+
:loaders => Puppet::Pops::Loaders.new(new_env, true)
|
706
|
+
},
|
707
|
+
"Local node environment #{@environment} for configurer transaction"
|
708
|
+
)
|
709
|
+
end
|
710
|
+
|
534
711
|
def retrieve_catalog_from_cache(query_options)
|
535
712
|
result = nil
|
536
713
|
@duration = thinmark do
|
@@ -558,6 +735,7 @@ class Puppet::Configurer
|
|
558
735
|
# don't update cache until after environment converges
|
559
736
|
:ignore_cache_save => true,
|
560
737
|
:environment => Puppet::Node::Environment.remote(@environment),
|
738
|
+
:check_environment => true,
|
561
739
|
:fail_on_404 => true,
|
562
740
|
:facts_for_catalog => facts
|
563
741
|
)
|
@@ -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)
|