puppet 7.12.1 → 7.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +13 -8
- data/ext/project_data.yaml +1 -1
- data/lib/puppet/application/lookup.rb +72 -24
- data/lib/puppet/concurrent/thread_local_singleton.rb +5 -3
- data/lib/puppet/defaults.rb +3 -1
- data/lib/puppet/file_serving/metadata.rb +3 -0
- data/lib/puppet/file_system/file_impl.rb +7 -7
- data/lib/puppet/file_system/jruby.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +10 -15
- data/lib/puppet/file_system/uniquefile.rb +1 -1
- data/lib/puppet/file_system/windows.rb +4 -4
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/functions/versioncmp.rb +6 -2
- data/lib/puppet/graph/simple_graph.rb +2 -1
- data/lib/puppet/pops/parser/code_merger.rb +4 -4
- data/lib/puppet/pops/parser/egrammar.ra +2 -0
- data/lib/puppet/pops/parser/eparser.rb +574 -558
- data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
- data/lib/puppet/pops/validation/checker4_0.rb +7 -2
- data/lib/puppet/provider/service/init.rb +5 -4
- data/lib/puppet/ssl/verifier.rb +3 -1
- data/lib/puppet/transaction/persistence.rb +22 -12
- data/lib/puppet/type/file/data_sync.rb +1 -1
- data/lib/puppet/type/file/group.rb +8 -1
- data/lib/puppet/type/file/owner.rb +8 -1
- data/lib/puppet/type/user.rb +40 -38
- data/lib/puppet/util/json.rb +17 -0
- data/lib/puppet/util/log.rb +7 -2
- data/lib/puppet/util/monkey_patches.rb +26 -2
- data/lib/puppet/util/package.rb +25 -16
- data/lib/puppet/util/yaml.rb +11 -0
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +1 -0
- data/locales/puppet.pot +115 -93
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -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 +9 -6
- data/man/man8/puppet-module.8 +1 -1
- 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/unit/forge/bacula.json +1 -1
- data/spec/integration/application/lookup_spec.rb +29 -6
- data/spec/integration/parser/pcore_resource_spec.rb +10 -0
- data/spec/shared_contexts/l10n.rb +5 -0
- data/spec/unit/application/lookup_spec.rb +131 -10
- data/spec/unit/concurrent/thread_local_singleton_spec.rb +39 -0
- data/spec/unit/file_system/uniquefile_spec.rb +7 -1
- data/spec/unit/file_system_spec.rb +34 -4
- data/spec/unit/forge/module_release_spec.rb +3 -3
- data/spec/unit/functions/versioncmp_spec.rb +40 -4
- data/spec/unit/pops/parser/parse_containers_spec.rb +2 -2
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +0 -58
- data/spec/unit/pops/validator/validator_spec.rb +5 -0
- data/spec/unit/provider/service/gentoo_spec.rb +6 -5
- data/spec/unit/provider/service/init_spec.rb +15 -9
- data/spec/unit/provider/service/openwrt_spec.rb +21 -29
- data/spec/unit/provider/service/redhat_spec.rb +3 -2
- data/spec/unit/transaction/persistence_spec.rb +51 -0
- data/spec/unit/type/file/group_spec.rb +7 -0
- data/spec/unit/type/file/owner_spec.rb +7 -0
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/util/json_spec.rb +126 -0
- data/spec/unit/util/yaml_spec.rb +37 -13
- metadata +14 -4
data/spec/unit/util/yaml_spec.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'spec_helper'
|
3
|
-
|
4
3
|
require 'puppet/util/yaml'
|
5
4
|
|
6
5
|
describe Puppet::Util::Yaml do
|
@@ -10,21 +9,21 @@ describe Puppet::Util::Yaml do
|
|
10
9
|
|
11
10
|
shared_examples_for 'yaml file loader' do |load_method|
|
12
11
|
it 'returns false when the file is empty' do
|
13
|
-
|
12
|
+
file_path = file_containing('input', '')
|
14
13
|
|
15
|
-
expect(load_method.call(
|
14
|
+
expect(load_method.call(file_path)).to eq(false)
|
16
15
|
end
|
17
16
|
|
18
17
|
it 'reads a YAML file from disk' do
|
19
|
-
|
18
|
+
file_path = file_containing('input', YAML.dump({ "my" => "data" }))
|
20
19
|
|
21
|
-
expect(load_method.call(
|
20
|
+
expect(load_method.call(file_path)).to eq({ "my" => "data" })
|
22
21
|
end
|
23
22
|
|
24
23
|
it 'reads YAML as UTF-8' do
|
25
|
-
|
24
|
+
file_path = file_containing('input', YAML.dump({ "my" => "𠜎" }))
|
26
25
|
|
27
|
-
expect(load_method.call(
|
26
|
+
expect(load_method.call(file_path)).to eq({ "my" => "𠜎" })
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
@@ -119,11 +118,11 @@ FACTS
|
|
119
118
|
it_should_behave_like 'yaml file loader', Puppet::Util::Yaml.method(:safe_load_file)
|
120
119
|
|
121
120
|
it 'raises an error when the file is invalid YAML' do
|
122
|
-
|
121
|
+
file_path = file_containing('input', '{ invalid')
|
123
122
|
|
124
123
|
expect {
|
125
|
-
Puppet::Util::Yaml.safe_load_file(
|
126
|
-
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r[\(#{
|
124
|
+
Puppet::Util::Yaml.safe_load_file(file_path)
|
125
|
+
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r[\(#{file_path}\): .* at line \d+ column \d+])
|
127
126
|
end
|
128
127
|
|
129
128
|
it 'raises an error when the filename is illegal' do
|
@@ -139,9 +138,34 @@ FACTS
|
|
139
138
|
end
|
140
139
|
end
|
141
140
|
|
142
|
-
|
143
|
-
|
144
|
-
|
141
|
+
context "#safe_load_file_if_valid" do
|
142
|
+
before do
|
143
|
+
Puppet[:log_level] = 'debug'
|
144
|
+
end
|
145
|
+
|
146
|
+
it_should_behave_like 'yaml file loader', Puppet::Util::Yaml.method(:safe_load_file_if_valid)
|
147
|
+
|
148
|
+
it 'returns nil when the file is invalid YAML and debug logs about it' do
|
149
|
+
file_path = file_containing('input', '{ invalid')
|
150
|
+
|
151
|
+
expect(Puppet).to receive(:debug)
|
152
|
+
.with(/Could not retrieve YAML content .+ expected ',' or '}'/).and_call_original
|
153
|
+
|
154
|
+
expect(Puppet::Util::Yaml.safe_load_file_if_valid(file_path)).to eql(nil)
|
155
|
+
end
|
156
|
+
|
157
|
+
it 'returns nil when the filename is illegal and debug logs about it' do
|
158
|
+
expect(Puppet).to receive(:debug)
|
159
|
+
.with(/Could not retrieve YAML content .+: pathname contains null byte/).and_call_original
|
160
|
+
|
161
|
+
expect(Puppet::Util::Yaml.safe_load_file_if_valid("not\0allowed")).to eql(nil)
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'returns nil when the file does not exist and debug logs about it' do
|
165
|
+
expect(Puppet).to receive(:debug)
|
166
|
+
.with(/Could not retrieve YAML content .+: No such file or directory/).and_call_original
|
167
|
+
|
168
|
+
expect(Puppet::Util::Yaml.safe_load_file_if_valid('does/not/exist.yaml')).to eql(nil)
|
145
169
|
end
|
146
170
|
end
|
147
171
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -68,16 +68,22 @@ dependencies:
|
|
68
68
|
name: fast_gettext
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - "
|
71
|
+
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '1.1'
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3'
|
74
77
|
type: :runtime
|
75
78
|
prerelease: false
|
76
79
|
version_requirements: !ruby/object:Gem::Requirement
|
77
80
|
requirements:
|
78
|
-
- - "
|
81
|
+
- - ">="
|
79
82
|
- !ruby/object:Gem::Version
|
80
83
|
version: '1.1'
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '3'
|
81
87
|
- !ruby/object:Gem::Dependency
|
82
88
|
name: locale
|
83
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1835,6 +1841,7 @@ files:
|
|
1835
1841
|
- spec/unit/application_spec.rb
|
1836
1842
|
- spec/unit/certificate_factory_spec.rb
|
1837
1843
|
- spec/unit/concurrent/lock_spec.rb
|
1844
|
+
- spec/unit/concurrent/thread_local_singleton_spec.rb
|
1838
1845
|
- spec/unit/configurer/downloader_spec.rb
|
1839
1846
|
- spec/unit/configurer/fact_handler_spec.rb
|
1840
1847
|
- spec/unit/configurer/plugin_handler_spec.rb
|
@@ -2431,6 +2438,7 @@ files:
|
|
2431
2438
|
- spec/unit/util/filetype_spec.rb
|
2432
2439
|
- spec/unit/util/inifile_spec.rb
|
2433
2440
|
- spec/unit/util/json_lockfile_spec.rb
|
2441
|
+
- spec/unit/util/json_spec.rb
|
2434
2442
|
- spec/unit/util/ldap/connection_spec.rb
|
2435
2443
|
- spec/unit/util/ldap/generator_spec.rb
|
2436
2444
|
- spec/unit/util/ldap/manager_spec.rb
|
@@ -3092,6 +3100,7 @@ test_files:
|
|
3092
3100
|
- spec/unit/application_spec.rb
|
3093
3101
|
- spec/unit/certificate_factory_spec.rb
|
3094
3102
|
- spec/unit/concurrent/lock_spec.rb
|
3103
|
+
- spec/unit/concurrent/thread_local_singleton_spec.rb
|
3095
3104
|
- spec/unit/configurer/downloader_spec.rb
|
3096
3105
|
- spec/unit/configurer/fact_handler_spec.rb
|
3097
3106
|
- spec/unit/configurer/plugin_handler_spec.rb
|
@@ -3688,6 +3697,7 @@ test_files:
|
|
3688
3697
|
- spec/unit/util/filetype_spec.rb
|
3689
3698
|
- spec/unit/util/inifile_spec.rb
|
3690
3699
|
- spec/unit/util/json_lockfile_spec.rb
|
3700
|
+
- spec/unit/util/json_spec.rb
|
3691
3701
|
- spec/unit/util/ldap/connection_spec.rb
|
3692
3702
|
- spec/unit/util/ldap/generator_spec.rb
|
3693
3703
|
- spec/unit/util/ldap/manager_spec.rb
|