puppet 6.25.1 → 6.28.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/CODEOWNERS +1 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +101 -34
- data/lib/puppet/agent.rb +47 -11
- data/lib/puppet/application/agent.rb +2 -12
- data/lib/puppet/application/lookup.rb +74 -24
- data/lib/puppet/concurrent/thread_local_singleton.rb +5 -3
- data/lib/puppet/configurer.rb +8 -14
- data/lib/puppet/defaults.rb +13 -3
- data/lib/puppet/face/generate.rb +2 -0
- 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/windows.rb +4 -4
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/functions/next.rb +18 -1
- data/lib/puppet/functions/tree_each.rb +0 -1
- data/lib/puppet/functions/versioncmp.rb +6 -2
- data/lib/puppet/generate/type.rb +9 -0
- data/lib/puppet/http/client.rb +22 -2
- data/lib/puppet/node.rb +1 -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 +813 -794
- data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
- data/lib/puppet/provider/package/puppetserver_gem.rb +7 -16
- data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
- data/lib/puppet/provider/package/windows/package.rb +2 -1
- data/lib/puppet/provider/package/windows.rb +14 -1
- data/lib/puppet/provider/service/init.rb +5 -4
- data/lib/puppet/provider/user/directoryservice.rb +5 -0
- data/lib/puppet/ssl/ssl_provider.rb +75 -19
- data/lib/puppet/ssl/state_machine.rb +13 -17
- data/lib/puppet/ssl/verifier.rb +6 -0
- data/lib/puppet/transaction/persistence.rb +22 -12
- data/lib/puppet/type/exec.rb +1 -1
- data/lib/puppet/type/file/data_sync.rb +1 -1
- data/lib/puppet/type/user.rb +43 -38
- data/lib/puppet/util/json.rb +17 -0
- data/lib/puppet/util/log.rb +7 -2
- data/lib/puppet/util/monkey_patches.rb +6 -2
- data/lib/puppet/util/package.rb +25 -16
- data/lib/puppet/util/yaml.rb +21 -2
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +2 -14
- data/locales/puppet.pot +5 -10454
- data/man/man5/puppet.conf.5 +21 -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-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +9 -6
- data/man/man8/puppet-man.8 +1 -1
- 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-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/unit/forge/bacula.json +1 -1
- data/spec/integration/application/agent_spec.rb +108 -0
- data/spec/integration/application/lookup_spec.rb +81 -50
- data/spec/integration/application/resource_spec.rb +6 -2
- data/spec/integration/http/client_spec.rb +51 -4
- data/spec/lib/puppet_spec/https.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +39 -2
- data/spec/shared_contexts/l10n.rb +5 -0
- data/spec/unit/agent_spec.rb +28 -2
- data/spec/unit/application/agent_spec.rb +26 -16
- data/spec/unit/application/lookup_spec.rb +131 -10
- data/spec/unit/concurrent/thread_local_singleton_spec.rb +39 -0
- data/spec/unit/configurer_spec.rb +124 -61
- data/spec/unit/daemon_spec.rb +2 -11
- data/spec/unit/face/generate_spec.rb +64 -0
- 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/http/client_spec.rb +18 -0
- data/spec/unit/node_spec.rb +6 -0
- 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/package/puppetserver_gem_spec.rb +2 -2
- data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -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/ssl/ssl_provider_spec.rb +75 -1
- data/spec/unit/ssl/state_machine_spec.rb +1 -0
- data/spec/unit/transaction/persistence_spec.rb +51 -0
- data/spec/unit/type/user_spec.rb +0 -45
- data/spec/unit/util/json_spec.rb +126 -0
- data/spec/unit/util/windows_spec.rb +23 -0
- data/spec/unit/util/yaml_spec.rb +54 -29
- data/tasks/generate_cert_fixtures.rake +5 -4
- metadata +9 -3
data/spec/unit/type/user_spec.rb
CHANGED
@@ -174,51 +174,6 @@ describe Puppet::Type.type(:user) do
|
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
-
describe "when managing the purge_ssh_keys property" do
|
178
|
-
context "with valid input" do
|
179
|
-
it "should support a :true value" do
|
180
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => :true) }.to_not raise_error
|
181
|
-
end
|
182
|
-
|
183
|
-
it "should support a :false value" do
|
184
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => :false) }.to_not raise_error
|
185
|
-
end
|
186
|
-
|
187
|
-
it "should support a String value" do
|
188
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => File.expand_path('home/foo/.ssh/authorized_keys')) }.to_not raise_error
|
189
|
-
end
|
190
|
-
|
191
|
-
it "should support an Array value" do
|
192
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => [File.expand_path('home/foo/.ssh/authorized_keys'),
|
193
|
-
File.expand_path('custom/authorized_keys')]) }.to_not raise_error
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
context "with faulty input" do
|
198
|
-
it "should raise error for relative path" do
|
199
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => 'home/foo/.ssh/authorized_keys') }.to raise_error(Puppet::ResourceError,
|
200
|
-
/Paths to keyfiles must be absolute/ )
|
201
|
-
end
|
202
|
-
|
203
|
-
it "should raise error for invalid type" do
|
204
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => :invalid) }.to raise_error(Puppet::ResourceError,
|
205
|
-
/purge_ssh_keys must be true, false, or an array of file names/ )
|
206
|
-
end
|
207
|
-
|
208
|
-
it "should raise error for array with relative path" do
|
209
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => ['home/foo/.ssh/authorized_keys',
|
210
|
-
File.expand_path('custom/authorized_keys')]) }.to raise_error(Puppet::ResourceError,
|
211
|
-
/Paths to keyfiles must be absolute/ )
|
212
|
-
end
|
213
|
-
|
214
|
-
it "should raise error for array with invalid type" do
|
215
|
-
expect { described_class.new(:name => 'foo', :purge_ssh_keys => [:invalid,
|
216
|
-
File.expand_path('custom/authorized_keys')]) }.to raise_error(Puppet::ResourceError,
|
217
|
-
/Each entry for purge_ssh_keys must be a string/ )
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
177
|
describe "when managing the uid property" do
|
223
178
|
it "should convert number-looking strings into actual numbers" do
|
224
179
|
expect(described_class.new(:name => 'foo', :uid => '50')[:uid]).to eq(50)
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'puppet/util/json'
|
4
|
+
|
5
|
+
describe Puppet::Util::Json do
|
6
|
+
include PuppetSpec::Files
|
7
|
+
|
8
|
+
shared_examples_for 'json file loader' do |load_method|
|
9
|
+
it 'reads a JSON file from disk' do
|
10
|
+
file_path = file_containing('input', JSON.dump({ "my" => "data" }))
|
11
|
+
|
12
|
+
expect(load_method.call(file_path)).to eq({ "my" => "data" })
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'reads JSON as UTF-8' do
|
16
|
+
file_path = file_containing('input', JSON.dump({ "my" => "𠜎" }))
|
17
|
+
|
18
|
+
expect(load_method.call(file_path)).to eq({ "my" => "𠜎" })
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#load" do
|
23
|
+
it 'raises an error if JSON is invalid' do
|
24
|
+
expect {
|
25
|
+
Puppet::Util::Json.load('{ invalid')
|
26
|
+
}.to raise_error(Puppet::Util::Json::ParseError, /unexpected token at '{ invalid'/)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'raises an error if the content is empty' do
|
30
|
+
expect {
|
31
|
+
Puppet::Util::Json.load('')
|
32
|
+
}.to raise_error(Puppet::Util::Json::ParseError)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'loads true' do
|
36
|
+
expect(Puppet::Util::Json.load('true')).to eq(true)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'loads false' do
|
40
|
+
expect(Puppet::Util::Json.load('false')).to eq(false)
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'loads a numeric' do
|
44
|
+
expect(Puppet::Util::Json.load('42')).to eq(42)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'loads a string' do
|
48
|
+
expect(Puppet::Util::Json.load('"puppet"')).to eq('puppet')
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'loads an array' do
|
52
|
+
expect(Puppet::Util::Json.load(<<~JSON)).to eq([1, 2])
|
53
|
+
[1, 2]
|
54
|
+
JSON
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'loads a hash' do
|
58
|
+
expect(Puppet::Util::Json.load(<<~JSON)).to eq('a' => 1, 'b' => 2)
|
59
|
+
{
|
60
|
+
"a": 1,
|
61
|
+
"b": 2
|
62
|
+
}
|
63
|
+
JSON
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "load_file_if_valid" do
|
68
|
+
before do
|
69
|
+
Puppet[:log_level] = 'debug'
|
70
|
+
end
|
71
|
+
|
72
|
+
it_should_behave_like 'json file loader', Puppet::Util::Json.method(:load_file_if_valid)
|
73
|
+
|
74
|
+
it 'returns nil when the file is invalid JSON and debug logs about it' do
|
75
|
+
file_path = file_containing('input', '{ invalid')
|
76
|
+
expect(Puppet).to receive(:debug)
|
77
|
+
.with(/Could not retrieve JSON content .+: unexpected token at '{ invalid'/).and_call_original
|
78
|
+
|
79
|
+
expect(Puppet::Util::Json.load_file_if_valid(file_path)).to eql(nil)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'returns nil when the filename is illegal and debug logs about it' do
|
83
|
+
expect(Puppet).to receive(:debug)
|
84
|
+
.with(/Could not retrieve JSON content .+: pathname contains null byte/).and_call_original
|
85
|
+
|
86
|
+
expect(Puppet::Util::Json.load_file_if_valid("not\0allowed")).to eql(nil)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'returns nil when the file does not exist and debug logs about it' do
|
90
|
+
expect(Puppet).to receive(:debug)
|
91
|
+
.with(/Could not retrieve JSON content .+: No such file or directory/).and_call_original
|
92
|
+
|
93
|
+
expect(Puppet::Util::Json.load_file_if_valid('does/not/exist.json')).to eql(nil)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context '#load_file' do
|
98
|
+
it_should_behave_like 'json file loader', Puppet::Util::Json.method(:load_file)
|
99
|
+
|
100
|
+
it 'raises an error when the file is invalid JSON' do
|
101
|
+
file_path = file_containing('input', '{ invalid')
|
102
|
+
|
103
|
+
expect {
|
104
|
+
Puppet::Util::Json.load_file(file_path)
|
105
|
+
}.to raise_error(Puppet::Util::Json::ParseError, /unexpected token at '{ invalid'/)
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'raises an error when the filename is illegal' do
|
109
|
+
expect {
|
110
|
+
Puppet::Util::Json.load_file("not\0allowed")
|
111
|
+
}.to raise_error(ArgumentError, /null byte/)
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'raises an error when the file does not exist' do
|
115
|
+
expect {
|
116
|
+
Puppet::Util::Json.load_file('does/not/exist.json')
|
117
|
+
}.to raise_error(Errno::ENOENT, /No such file or directory/)
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'writes data formatted as JSON to disk' do
|
121
|
+
file_path = file_containing('input', Puppet::Util::Json.dump({ "my" => "data" }))
|
122
|
+
|
123
|
+
expect(Puppet::Util::Json.load_file(file_path)).to eq({ "my" => "data" })
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Util::Windows do
|
6
|
+
%w[
|
7
|
+
ADSI
|
8
|
+
ADSI::ADSIObject
|
9
|
+
ADSI::User
|
10
|
+
ADSI::UserProfile
|
11
|
+
ADSI::Group
|
12
|
+
EventLog
|
13
|
+
File
|
14
|
+
Process
|
15
|
+
Registry
|
16
|
+
Service
|
17
|
+
SID
|
18
|
+
].each do |name|
|
19
|
+
it "defines Puppet::Util::Windows::#{name}" do
|
20
|
+
expect(described_class.const_get(name)).to be
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
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,15 +138,46 @@ FACTS
|
|
139
138
|
end
|
140
139
|
end
|
141
140
|
|
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)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
142
172
|
context '#load_file' do
|
143
173
|
it_should_behave_like 'yaml file loader', Puppet::Util::Yaml.method(:load_file)
|
144
174
|
|
145
175
|
it 'raises an error when the file is invalid YAML' do
|
146
|
-
|
176
|
+
file_path = file_containing('input', '{ invalid')
|
147
177
|
|
148
178
|
expect {
|
149
|
-
Puppet::Util::Yaml.load_file(
|
150
|
-
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r{\(#{
|
179
|
+
Puppet::Util::Yaml.load_file(file_path)
|
180
|
+
}.to raise_error(Puppet::Util::Yaml::YamlLoadError, %r{\(#{file_path}\): .* at line \d+ column \d+})
|
151
181
|
end
|
152
182
|
|
153
183
|
it 'raises an error when the filename is illegal' do
|
@@ -163,39 +193,34 @@ FACTS
|
|
163
193
|
end
|
164
194
|
|
165
195
|
it 'allows return value to be overridden' do
|
166
|
-
|
196
|
+
file_path = file_containing('input', '')
|
167
197
|
|
168
|
-
expect(Puppet::Util::Yaml.load_file(
|
198
|
+
expect(Puppet::Util::Yaml.load_file(file_path, {})).to eq({})
|
169
199
|
end
|
170
200
|
|
171
201
|
it 'loads arbitrary objects' do
|
172
|
-
|
202
|
+
file_path = file_containing('input', "--- !ruby/object {}\n")
|
173
203
|
|
174
|
-
expect(Puppet::Util::Yaml.load_file(
|
204
|
+
expect(Puppet::Util::Yaml.load_file(file_path, {})).to be_instance_of(Object)
|
175
205
|
end
|
176
206
|
|
177
207
|
it 'should allow one to strip ruby tags that would otherwise not parse' do
|
178
|
-
|
208
|
+
file_path = file_containing('input', "---\nweirddata: !ruby/hash:Not::A::Valid::Class {}")
|
179
209
|
|
180
|
-
expect(Puppet::Util::Yaml.load_file(
|
210
|
+
expect(Puppet::Util::Yaml.load_file(file_path, {}, true)).to eq({"weirddata" => {}})
|
181
211
|
end
|
182
212
|
|
183
213
|
it 'should not strip non-ruby tags' do
|
184
|
-
|
214
|
+
file_path = file_containing('input', "---\nweirddata: !binary |-\n e21kNX04MTE4ZGY2NmM5MTc3OTg4ZWE4Y2JiOWEzMjMyNzFkYg==")
|
185
215
|
|
186
|
-
expect(Puppet::Util::Yaml.load_file(
|
216
|
+
expect(Puppet::Util::Yaml.load_file(file_path, {}, true)).to eq({"weirddata" => "{md5}8118df66c9177988ea8cbb9a323271db"})
|
187
217
|
end
|
188
218
|
|
189
219
|
it 'writes data formatted as YAML to disk' do
|
190
|
-
|
191
|
-
|
192
|
-
expect(Puppet::Util::Yaml.load_file(filename)).to eq({ "my" => "data" })
|
193
|
-
end
|
194
|
-
end
|
220
|
+
file_path = file_containing('input', '')
|
221
|
+
Puppet::Util::Yaml.dump({ "my" => "data" }, file_path)
|
195
222
|
|
196
|
-
|
197
|
-
File.open(name, "w:UTF-8") do |fh|
|
198
|
-
fh.write(contents)
|
223
|
+
expect(Puppet::Util::Yaml.load_file(file_path)).to eq({ "my" => "data" })
|
199
224
|
end
|
200
225
|
end
|
201
226
|
end
|
@@ -37,14 +37,15 @@ task(:gen_cert_fixtures) do
|
|
37
37
|
# | |
|
38
38
|
# signed.pem | +- /CN=signed
|
39
39
|
# revoked.pem | +- /CN=revoked
|
40
|
-
# 127.0.0.1.pem | +- /CN=127.0.0.1 (with dns alt names)
|
41
40
|
# tampered-cert.pem | +- /CN=signed (with different public key)
|
42
41
|
# ec.pem | +- /CN=ec (with EC private key)
|
43
42
|
# oid.pem | +- /CN=oid (with custom oid)
|
44
43
|
# |
|
45
|
-
#
|
46
|
-
# |
|
47
|
-
#
|
44
|
+
# 127.0.0.1.pem +- /CN=127.0.0.1 (with dns alt names)
|
45
|
+
# |
|
46
|
+
# intermediate-agent.pem +- /CN=Test CA Agent Subauthority
|
47
|
+
# | |
|
48
|
+
# pluto.pem | +- /CN=pluto
|
48
49
|
# |
|
49
50
|
# bad-int-basic-constraints.pem +- /CN=Test CA Subauthority (bad isCA constraint)
|
50
51
|
#
|
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: 6.
|
4
|
+
version: 6.28.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -1887,6 +1887,7 @@ files:
|
|
1887
1887
|
- spec/unit/capability_spec.rb
|
1888
1888
|
- spec/unit/certificate_factory_spec.rb
|
1889
1889
|
- spec/unit/concurrent/lock_spec.rb
|
1890
|
+
- spec/unit/concurrent/thread_local_singleton_spec.rb
|
1890
1891
|
- spec/unit/configurer/downloader_spec.rb
|
1891
1892
|
- spec/unit/configurer/fact_handler_spec.rb
|
1892
1893
|
- spec/unit/configurer/plugin_handler_spec.rb
|
@@ -2511,6 +2512,7 @@ files:
|
|
2511
2512
|
- spec/unit/util/http_proxy_spec.rb
|
2512
2513
|
- spec/unit/util/inifile_spec.rb
|
2513
2514
|
- spec/unit/util/json_lockfile_spec.rb
|
2515
|
+
- spec/unit/util/json_spec.rb
|
2514
2516
|
- spec/unit/util/ldap/connection_spec.rb
|
2515
2517
|
- spec/unit/util/ldap/generator_spec.rb
|
2516
2518
|
- spec/unit/util/ldap/manager_spec.rb
|
@@ -2571,6 +2573,7 @@ files:
|
|
2571
2573
|
- spec/unit/util/windows/service_spec.rb
|
2572
2574
|
- spec/unit/util/windows/sid_spec.rb
|
2573
2575
|
- spec/unit/util/windows/string_spec.rb
|
2576
|
+
- spec/unit/util/windows_spec.rb
|
2574
2577
|
- spec/unit/util/yaml_spec.rb
|
2575
2578
|
- spec/unit/util_spec.rb
|
2576
2579
|
- spec/unit/version_spec.rb
|
@@ -2610,7 +2613,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2610
2613
|
- !ruby/object:Gem::Version
|
2611
2614
|
version: 1.3.1
|
2612
2615
|
requirements: []
|
2613
|
-
rubygems_version: 3.
|
2616
|
+
rubygems_version: 3.1.6
|
2614
2617
|
signing_key:
|
2615
2618
|
specification_version: 4
|
2616
2619
|
summary: Puppet, an automated configuration management tool
|
@@ -3173,6 +3176,7 @@ test_files:
|
|
3173
3176
|
- spec/unit/capability_spec.rb
|
3174
3177
|
- spec/unit/certificate_factory_spec.rb
|
3175
3178
|
- spec/unit/concurrent/lock_spec.rb
|
3179
|
+
- spec/unit/concurrent/thread_local_singleton_spec.rb
|
3176
3180
|
- spec/unit/configurer/downloader_spec.rb
|
3177
3181
|
- spec/unit/configurer/fact_handler_spec.rb
|
3178
3182
|
- spec/unit/configurer/plugin_handler_spec.rb
|
@@ -3797,6 +3801,7 @@ test_files:
|
|
3797
3801
|
- spec/unit/util/http_proxy_spec.rb
|
3798
3802
|
- spec/unit/util/inifile_spec.rb
|
3799
3803
|
- spec/unit/util/json_lockfile_spec.rb
|
3804
|
+
- spec/unit/util/json_spec.rb
|
3800
3805
|
- spec/unit/util/ldap/connection_spec.rb
|
3801
3806
|
- spec/unit/util/ldap/generator_spec.rb
|
3802
3807
|
- spec/unit/util/ldap/manager_spec.rb
|
@@ -3857,6 +3862,7 @@ test_files:
|
|
3857
3862
|
- spec/unit/util/windows/service_spec.rb
|
3858
3863
|
- spec/unit/util/windows/sid_spec.rb
|
3859
3864
|
- spec/unit/util/windows/string_spec.rb
|
3865
|
+
- spec/unit/util/windows_spec.rb
|
3860
3866
|
- spec/unit/util/yaml_spec.rb
|
3861
3867
|
- spec/unit/util_spec.rb
|
3862
3868
|
- spec/unit/version_spec.rb
|