openvox 8.28.0 → 8.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +67 -0
- data/Gemfile +3 -3
- data/ext/redhat/client.sysconfig +1 -0
- data/lib/puppet/application/ssl.rb +7 -6
- data/lib/puppet/functions/tree_each.rb +1 -1
- data/lib/puppet/generate/type.rb +6 -2
- data/lib/puppet/pops/serialization/to_data_converter.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +1 -1
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/ssl/state_machine.rb +6 -0
- data/lib/puppet/type/file/ensure.rb +14 -5
- data/lib/puppet/util/rdoc.rb +6 -3
- data/lib/puppet/util/selinux.rb +16 -1
- data/lib/puppet/version.rb +1 -1
- metadata +10 -6
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +0 -902
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +0 -1068
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 86d05e7a3a189241096c6be834d26a8674a70cadfac8c90acce427992d619ad2
|
|
4
|
+
data.tar.gz: 430fe316be1706073496df35c7c5316d6402366f51b1f8a099a248769fe02960
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 914e4b11f6727fd2ab33dcdd76cfa3ef69626ed2b8217be0176bf58fafd6e89504096947715a1345f4c657986313f04918c27a1c639d553f63e6f8cb24c4b0cf
|
|
7
|
+
data.tar.gz: ac56bb6bd94bc23edc49986eaa92e8db16376865ae60b6833f86ad5615cab95857b0d08fbce52895517821d77aa5e954f4cdffe702ba2979514c08688bd98d9f
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,73 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [8.29.0](https://github.com/openvoxproject/openvox/tree/8.29.0) (2026-09-04)
|
|
6
|
+
|
|
7
|
+
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.1...8.29.0)
|
|
8
|
+
|
|
9
|
+
**Implemented enhancements:**
|
|
10
|
+
|
|
11
|
+
- openfact: Allow 6.x [\#578](https://github.com/OpenVoxProject/openvox/pull/578) ([bastelfreak](https://github.com/bastelfreak))
|
|
12
|
+
|
|
13
|
+
**Fixed bugs:**
|
|
14
|
+
|
|
15
|
+
- \[Bug\]: Sometimes Error "This 'if' statement has no effect", sometimes not [\#542](https://github.com/OpenVoxProject/openvox/issues/542)
|
|
16
|
+
- \[Bug\]: Centralized filebucket not working properly [\#367](https://github.com/OpenVoxProject/openvox/issues/367)
|
|
17
|
+
- \[Bug\]: lines in file resource content looking like a checksum throws an error [\#169](https://github.com/OpenVoxProject/openvox/issues/169)
|
|
18
|
+
- \[Backport 8.x\] Fix excessive reads of /proc/mounts [\#621](https://github.com/OpenVoxProject/openvox/pull/621) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
19
|
+
- \[Backport 8.x\] Report errors when renewing a certificate fails [\#611](https://github.com/OpenVoxProject/openvox/pull/611) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
20
|
+
- \[Backport 8.x\] fix: Pacman provider uses unrecognized option '--update' [\#565](https://github.com/OpenVoxProject/openvox/pull/565) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
21
|
+
|
|
22
|
+
**Security fixes:**
|
|
23
|
+
|
|
24
|
+
- Promote puppet-runtime 2026.09.02.1 into 8.x [\#629](https://github.com/OpenVoxProject/openvox/pull/629) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
25
|
+
|
|
26
|
+
**Closed issues:**
|
|
27
|
+
|
|
28
|
+
- \[Deprecation\] Replace `puppet master` Terminology in User-Facing Docs/Help [\#347](https://github.com/OpenVoxProject/openvox/issues/347)
|
|
29
|
+
- \[Deprecation\] Fine-Grained `filetimeout` Control [\#345](https://github.com/OpenVoxProject/openvox/issues/345)
|
|
30
|
+
- \[Deprecation\] Data-Binding Settings [\#338](https://github.com/OpenVoxProject/openvox/issues/338)
|
|
31
|
+
- \[Deprecation\] `file { content => <checksum> }` Filebucket Retrieval Behavior [\#335](https://github.com/OpenVoxProject/openvox/issues/335)
|
|
32
|
+
- \[Deprecation\] `Puppet::Indirector::Hiera` Terminus [\#332](https://github.com/OpenVoxProject/openvox/issues/332)
|
|
33
|
+
|
|
34
|
+
**Merged pull requests:**
|
|
35
|
+
|
|
36
|
+
- \[Backport 8.x\] puppet generate: print module directory when types are missing [\#618](https://github.com/OpenVoxProject/openvox/pull/618) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
37
|
+
- \[Backport 8.x\] Fix a small typo in the markdown docs \(redux\) [\#606](https://github.com/OpenVoxProject/openvox/pull/606) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
38
|
+
- Remove unloadable CC-BY-1.0 RDoc template and generator [\#588](https://github.com/OpenVoxProject/openvox/pull/588) ([silug](https://github.com/silug))
|
|
39
|
+
- \[Backport 8.x\] Set `PUPPET_EXTRA_OPTS` variable to empty [\#561](https://github.com/OpenVoxProject/openvox/pull/561) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
40
|
+
|
|
41
|
+
## [8.28.1](https://github.com/openvoxproject/openvox/tree/8.28.1) (2026-07-07)
|
|
42
|
+
|
|
43
|
+
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.28.0...8.28.1)
|
|
44
|
+
|
|
45
|
+
**Fixed bugs:**
|
|
46
|
+
|
|
47
|
+
- \[Bug\]: ca\_refresh\_interval is not respected — agent refreshes CA on every run when server responds 304 [\#435](https://github.com/OpenVoxProject/openvox/issues/435)
|
|
48
|
+
- \[Bug\]: Puppet 8 introduced a regex node definition regression [\#14](https://github.com/OpenVoxProject/openvox/issues/14)
|
|
49
|
+
- \[Backport 8.x\] Update ca\_last\_update/crl\_last\_update on HTTP 304 [\#526](https://github.com/OpenVoxProject/openvox/pull/526) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
50
|
+
- \[Backport 8.x\] Copy input mtime to files generated by puppet generate types [\#523](https://github.com/OpenVoxProject/openvox/pull/523) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
51
|
+
- \[Backport 8.x\] Fix regex node lookup regression from PUP-11515 [\#515](https://github.com/OpenVoxProject/openvox/pull/515) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
52
|
+
- \[Backport 8.x\] Tolerate concurrent creation of directories [\#507](https://github.com/OpenVoxProject/openvox/pull/507) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
53
|
+
|
|
54
|
+
**Closed issues:**
|
|
55
|
+
|
|
56
|
+
- \[Deprecation\] `Puppet::SSL::Certificate` Class [\#344](https://github.com/OpenVoxProject/openvox/issues/344)
|
|
57
|
+
- \[Deprecation\] PAL Script Evaluation APIs [\#343](https://github.com/OpenVoxProject/openvox/issues/343)
|
|
58
|
+
- \[Deprecation\] `source_permissions` File Parameter [\#340](https://github.com/OpenVoxProject/openvox/issues/340)
|
|
59
|
+
- \[Deprecation\] `pluginsync` Setting [\#339](https://github.com/OpenVoxProject/openvox/issues/339)
|
|
60
|
+
- \[Deprecation\] `configprint` Setting [\#337](https://github.com/OpenVoxProject/openvox/issues/337)
|
|
61
|
+
- \[Deprecation\] `regsubst()` Encoding Argument [\#336](https://github.com/OpenVoxProject/openvox/issues/336)
|
|
62
|
+
|
|
63
|
+
**Merged pull requests:**
|
|
64
|
+
|
|
65
|
+
- Promote puppet-resource\_api 1.9.2 into 8.x [\#527](https://github.com/OpenVoxProject/openvox/pull/527) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
66
|
+
- Promote puppet-resource\_api 1.9.1 into 8.x [\#518](https://github.com/OpenVoxProject/openvox/pull/518) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
67
|
+
- \[Backport 8.x\] Fix handling of Puppet::Pops serialization issues [\#514](https://github.com/OpenVoxProject/openvox/pull/514) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
68
|
+
- Promote puppet-runtime 2026.06.24.1 into 8.x [\#501](https://github.com/OpenVoxProject/openvox/pull/501) ([OpenVoxProjectBot](https://github.com/OpenVoxProjectBot))
|
|
69
|
+
- Add arm64 support to acceptance 8.x [\#499](https://github.com/OpenVoxProject/openvox/pull/499) ([jpartlow](https://github.com/jpartlow))
|
|
70
|
+
- Add jruby 9.4.15 to CI [\#487](https://github.com/OpenVoxProject/openvox/pull/487) ([bastelfreak](https://github.com/bastelfreak))
|
|
71
|
+
|
|
5
72
|
## [8.28.0](https://github.com/openvoxproject/openvox/tree/8.28.0) (2026-06-10)
|
|
6
73
|
|
|
7
74
|
[Full Changelog](https://github.com/openvoxproject/openvox/compare/8.27.0...8.28.0)
|
data/Gemfile
CHANGED
|
@@ -16,7 +16,7 @@ end
|
|
|
16
16
|
# the runtime_dependencies in openvox.gemspec match the runtime dependencies here
|
|
17
17
|
# (like openfact, semantic_puppet, and puppet-resource_api)
|
|
18
18
|
|
|
19
|
-
gem "openfact", *location_for(ENV['OPENFACT_LOCATION'] || ["
|
|
19
|
+
gem "openfact", *location_for(ENV['OPENFACT_LOCATION'] || [">= 5.0", "< 7"])
|
|
20
20
|
gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
|
|
21
21
|
gem "puppet-resource_api", *location_for(ENV['RESOURCE_API_LOCATION'] || ["~> 2.0"])
|
|
22
22
|
# Need to update the openssl gem on MacOS to avoid SSL errors.
|
|
@@ -45,11 +45,11 @@ end
|
|
|
45
45
|
group(:test) do
|
|
46
46
|
# 1.16.0 - 1.16.2 are broken on Windows
|
|
47
47
|
gem 'ffi', '>= 1.15.5', '< 2', '!= 1.16.0', '!= 1.16.1', '!= 1.16.2', require: false
|
|
48
|
-
gem "json-schema", '>= 2', '<
|
|
48
|
+
gem "json-schema", '>= 2', '< 7', require: false
|
|
49
49
|
gem "rake", *location_for(ENV['RAKE_LOCATION'] || '~> 13.0')
|
|
50
50
|
gem "rspec", "~> 3.1", require: false
|
|
51
51
|
gem "rspec-expectations", ["~> 3.9", "!= 3.9.3"]
|
|
52
|
-
gem "rspec-its", "~>
|
|
52
|
+
gem "rspec-its", "~> 2.0", require: false
|
|
53
53
|
gem 'rspec-mocks', '< 3.13.3', require: false # breaking change afterwards: https://github.com/rspec/rspec-mocks/pull/1596
|
|
54
54
|
gem 'vcr', '~> 6.1', require: false
|
|
55
55
|
gem 'webmock', '~> 3.0', require: false
|
data/ext/redhat/client.sysconfig
CHANGED
|
@@ -304,13 +304,14 @@ class Puppet::Application::Ssl < Puppet::Application
|
|
|
304
304
|
@cert_provider.delete_request(certname)
|
|
305
305
|
cert
|
|
306
306
|
rescue Puppet::HTTP::ResponseError => e
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
307
|
+
body = e.response.body.to_s.strip
|
|
308
|
+
raise Puppet::Error.new(_("Failed to renew certificate: %{code} %{reason}%{body}") % {
|
|
309
|
+
code: e.response.code,
|
|
310
|
+
reason: e.response.reason,
|
|
311
|
+
body: body.empty? ? '' : ": #{body}"
|
|
312
|
+
}, e)
|
|
312
313
|
rescue => e
|
|
313
|
-
raise Puppet::Error.new(_("Failed to
|
|
314
|
+
raise Puppet::Error.new(_("Failed to renew certificate: %{message}") % { message: e.message }, e)
|
|
314
315
|
end
|
|
315
316
|
|
|
316
317
|
def verify(certname)
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
# `tree_each($data) |$value| { <PUPPET CODE BLOCK> }`
|
|
31
31
|
#
|
|
32
32
|
# The parameter `$path` is always given as an `Array` containing the path that when applied to
|
|
33
|
-
# the tree as `$data.dig(*$path) yields the `$value`.
|
|
33
|
+
# the tree as `$data.dig(*$path)` yields the `$value`.
|
|
34
34
|
# The `$value` is the value at that path.
|
|
35
35
|
#
|
|
36
36
|
# For `Array` values, the path will contain `Integer` entries with the array index,
|
data/lib/puppet/generate/type.rb
CHANGED
|
@@ -45,11 +45,14 @@ module Puppet
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
# Determines if the output file is up-to-date with respect to the input file.
|
|
48
|
+
# Generated files are stamped with their input's mtime, so the output is
|
|
49
|
+
# up-to-date only on an exact match; an input with older timestamps (e.g.
|
|
50
|
+
# a module downgrade) also triggers regeneration.
|
|
48
51
|
# @param [String, nil] The path to output to, or nil if determined by input
|
|
49
52
|
# @return [Boolean] Returns true if the output is up-to-date or false if not.
|
|
50
53
|
def up_to_date?(outputdir)
|
|
51
54
|
f = effective_output_path(outputdir)
|
|
52
|
-
Puppet::FileSystem.exist?(f) && (Puppet::FileSystem.stat(@path) <=> Puppet::FileSystem.stat(f))
|
|
55
|
+
Puppet::FileSystem.exist?(f) && (Puppet::FileSystem.stat(@path) <=> Puppet::FileSystem.stat(f)) == 0
|
|
53
56
|
end
|
|
54
57
|
|
|
55
58
|
# Gets the filename of the output file.
|
|
@@ -121,7 +124,7 @@ module Puppet
|
|
|
121
124
|
environment.modules.each do |mod|
|
|
122
125
|
directory = File.join(Puppet::Util::Autoload.cleanpath(mod.plugin_directory), 'puppet', 'type')
|
|
123
126
|
unless Puppet::FileSystem.exist?(directory)
|
|
124
|
-
Puppet.debug "Skipping '#{mod.name}' module because
|
|
127
|
+
Puppet.debug "Skipping '#{mod.name}' module because there is no readable puppet/type/ directory under: #{directory}"
|
|
125
128
|
next
|
|
126
129
|
end
|
|
127
130
|
|
|
@@ -240,6 +243,7 @@ module Puppet
|
|
|
240
243
|
Puppet::FileSystem.open(effective_output_path, nil, 'w:UTF-8') do |file|
|
|
241
244
|
file.write(result)
|
|
242
245
|
end
|
|
246
|
+
Puppet::FileSystem.touch(effective_output_path, mtime: Puppet::FileSystem.stat(input.path).mtime)
|
|
243
247
|
rescue Exception => e
|
|
244
248
|
@bad_input = true
|
|
245
249
|
Puppet.log_exception(e, _("Failed to generate '%{effective_output_path}': %{message}") % { effective_output_path: effective_output_path, message: e.message })
|
|
@@ -305,7 +305,7 @@ module Serialization
|
|
|
305
305
|
if tos.empty?
|
|
306
306
|
semantic = Puppet::Pops::SemanticError.new(issue, nil, EMPTY_HASH)
|
|
307
307
|
else
|
|
308
|
-
file, line = stacktrace
|
|
308
|
+
file, line = Puppet::Pops::PuppetStack.stacktrace
|
|
309
309
|
semantic = Puppet::Pops::SemanticError.new(issue, nil, { :file => file, :line => line })
|
|
310
310
|
end
|
|
311
311
|
end
|
|
@@ -248,7 +248,7 @@ Puppet::Type.type(:package).provide :pacman, :parent => Puppet::Provider::Packag
|
|
|
248
248
|
else
|
|
249
249
|
fail _("Source %{source} is not supported by pacman") % { source: source }
|
|
250
250
|
end
|
|
251
|
-
pacman "--noconfirm", "--noprogressbar", "--
|
|
251
|
+
pacman "--noconfirm", "--noprogressbar", "--upgrade", source
|
|
252
252
|
end
|
|
253
253
|
|
|
254
254
|
def install_from_repo
|
data/lib/puppet/resource/type.rb
CHANGED
|
@@ -34,13 +34,13 @@ class Puppet::Resource::Type
|
|
|
34
34
|
EMPTY_ARRAY = [].freeze
|
|
35
35
|
|
|
36
36
|
LOOKAROUND_OPERATORS = {
|
|
37
|
-
"(" => '
|
|
38
|
-
"?" => "
|
|
39
|
-
"<" => "
|
|
40
|
-
">" => "
|
|
41
|
-
"!" => "
|
|
42
|
-
"=" => "
|
|
43
|
-
")" => '
|
|
37
|
+
"(" => 'lp',
|
|
38
|
+
"?" => "qu",
|
|
39
|
+
"<" => "lt",
|
|
40
|
+
">" => "gt",
|
|
41
|
+
"!" => "ex",
|
|
42
|
+
"=" => "eq",
|
|
43
|
+
")" => 'rp'
|
|
44
44
|
}.freeze
|
|
45
45
|
|
|
46
46
|
attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
|
|
@@ -206,7 +206,7 @@ class Puppet::Resource::Type
|
|
|
206
206
|
|
|
207
207
|
def name
|
|
208
208
|
if type == :node && name_is_regex?
|
|
209
|
-
# Normalize
|
|
209
|
+
# Normalize lookaround regex pattern to a unique, lookup-safe lowercase string.
|
|
210
210
|
internal_name = @name.source.downcase.gsub(/\(\?[^)]*\)/) do |str|
|
|
211
211
|
str.gsub(/./) { |ch| LOOKAROUND_OPERATORS[ch] || ch }
|
|
212
212
|
end
|
|
@@ -121,6 +121,10 @@ class Puppet::SSL::StateMachine
|
|
|
121
121
|
rescue Puppet::HTTP::ResponseError => e
|
|
122
122
|
if e.response.code == 304
|
|
123
123
|
Puppet.info(_("CA certificate is unmodified, using existing CA certificate"))
|
|
124
|
+
# 304 confirms the local CA is current, so reset the TTL.
|
|
125
|
+
# Otherwise ca_last_update (backed by ca.pem mtime) never advances
|
|
126
|
+
# past the initial download and needs_refresh? triggers on every run.
|
|
127
|
+
@cert_provider.ca_last_update = Time.now
|
|
124
128
|
else
|
|
125
129
|
Puppet.info(_("Failed to refresh CA certificate, using existing CA certificate: %{message}") % { message: e.message })
|
|
126
130
|
end
|
|
@@ -219,6 +223,8 @@ class Puppet::SSL::StateMachine
|
|
|
219
223
|
rescue Puppet::HTTP::ResponseError => e
|
|
220
224
|
if e.response.code == 304
|
|
221
225
|
Puppet.info(_("CRL is unmodified, using existing CRL"))
|
|
226
|
+
# 304 confirms the local CRL is current, so reset the TTL.
|
|
227
|
+
@cert_provider.crl_last_update = Time.now
|
|
222
228
|
else
|
|
223
229
|
Puppet.info(_("Failed to refresh CRL, using existing CRL: %{message}") % { message: e.message })
|
|
224
230
|
end
|
|
@@ -86,12 +86,21 @@ module Puppet
|
|
|
86
86
|
raise Puppet::Error,
|
|
87
87
|
"Cannot create #{@resource[:path]}; parent directory #{parent} does not exist"
|
|
88
88
|
end
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
begin
|
|
90
|
+
if mode
|
|
91
|
+
Puppet::Util.withumask(0o00) do
|
|
92
|
+
Dir.mkdir(@resource[:path], symbolic_mode_to_int(mode, 0o755, true))
|
|
93
|
+
end
|
|
94
|
+
else
|
|
95
|
+
Dir.mkdir(@resource[:path])
|
|
92
96
|
end
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
rescue Errno::EEXIST
|
|
98
|
+
# Another process may have created the directory concurrently. If it
|
|
99
|
+
# really is a directory now, treat that as success.
|
|
100
|
+
#
|
|
101
|
+
# Directory mode, and other properties, will be checked and enforced by
|
|
102
|
+
# the call to `property_fix`.
|
|
103
|
+
raise unless Puppet::FileSystem.directory?(@resource[:path])
|
|
95
104
|
end
|
|
96
105
|
@resource.send(:property_fix)
|
|
97
106
|
return :directory_created
|
data/lib/puppet/util/rdoc.rb
CHANGED
|
@@ -16,9 +16,12 @@ module Puppet::Util::RDoc
|
|
|
16
16
|
|
|
17
17
|
r = RDoc::RDoc.new
|
|
18
18
|
|
|
19
|
-
#
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
# Documentation is rendered by RDoc's default generator using our custom
|
|
20
|
+
# parser. The historical custom "puppet" generator and its HTML template
|
|
21
|
+
# targeted RDoc 1.x and could not be loaded under any supported RDoc; the
|
|
22
|
+
# template also carried a CC-BY-1.0 license, which is incompatible with
|
|
23
|
+
# the Debian Free Software Guidelines. Both were removed.
|
|
24
|
+
options = ["--quiet",
|
|
22
25
|
"--exclude", "/modules/[^/]*/spec/.*$",
|
|
23
26
|
"--exclude", "/modules/[^/]*/files/.*$",
|
|
24
27
|
"--exclude", "/modules/[^/]*/tests/.*$",
|
data/lib/puppet/util/selinux.rb
CHANGED
|
@@ -18,6 +18,9 @@ module Puppet::Util::SELinux
|
|
|
18
18
|
S_IFDIR = 0o040000
|
|
19
19
|
S_IFLNK = 0o120000
|
|
20
20
|
|
|
21
|
+
@@mounts_cache = nil
|
|
22
|
+
@@mounts_mtime = nil
|
|
23
|
+
|
|
21
24
|
def self.selinux_support?
|
|
22
25
|
return false unless defined?(Selinux)
|
|
23
26
|
if Selinux.is_selinux_enabled == 1
|
|
@@ -259,6 +262,16 @@ module Puppet::Util::SELinux
|
|
|
259
262
|
|
|
260
263
|
# Internal helper function to read and parse /proc/mounts
|
|
261
264
|
def read_mounts
|
|
265
|
+
current_mtime = begin
|
|
266
|
+
File.mtime('/proc/mounts')
|
|
267
|
+
rescue Errno::ENOENT, Errno::ENOTDIR
|
|
268
|
+
nil
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
if @@mounts_cache && current_mtime && @@mounts_mtime == current_mtime
|
|
272
|
+
return @@mounts_cache
|
|
273
|
+
end
|
|
274
|
+
|
|
262
275
|
mounts = ''.dup
|
|
263
276
|
begin
|
|
264
277
|
if File.method_defined? "read_nonblock"
|
|
@@ -292,7 +305,9 @@ module Puppet::Util::SELinux
|
|
|
292
305
|
|
|
293
306
|
mntpoint[params[1]] = params[2]
|
|
294
307
|
end
|
|
295
|
-
|
|
308
|
+
|
|
309
|
+
@@mounts_mtime = current_mtime
|
|
310
|
+
@@mounts_cache = mntpoint
|
|
296
311
|
end
|
|
297
312
|
|
|
298
313
|
# Internal helper function to return which type of filesystem a given file
|
data/lib/puppet/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openvox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.
|
|
4
|
+
version: 8.29.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenVox Project
|
|
@@ -143,16 +143,22 @@ dependencies:
|
|
|
143
143
|
name: openfact
|
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
|
145
145
|
requirements:
|
|
146
|
-
- - "
|
|
146
|
+
- - ">="
|
|
147
147
|
- !ruby/object:Gem::Version
|
|
148
148
|
version: '5.0'
|
|
149
|
+
- - "<"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '7'
|
|
149
152
|
type: :runtime
|
|
150
153
|
prerelease: false
|
|
151
154
|
version_requirements: !ruby/object:Gem::Requirement
|
|
152
155
|
requirements:
|
|
153
|
-
- - "
|
|
156
|
+
- - ">="
|
|
154
157
|
- !ruby/object:Gem::Version
|
|
155
158
|
version: '5.0'
|
|
159
|
+
- - "<"
|
|
160
|
+
- !ruby/object:Gem::Version
|
|
161
|
+
version: '7'
|
|
156
162
|
- !ruby/object:Gem::Dependency
|
|
157
163
|
name: ostruct
|
|
158
164
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1257,8 +1263,6 @@ files:
|
|
|
1257
1263
|
- lib/puppet/util/psych_support.rb
|
|
1258
1264
|
- lib/puppet/util/rdoc.rb
|
|
1259
1265
|
- lib/puppet/util/rdoc/code_objects.rb
|
|
1260
|
-
- lib/puppet/util/rdoc/generators/puppet_generator.rb
|
|
1261
|
-
- lib/puppet/util/rdoc/generators/template/puppet/puppet.rb
|
|
1262
1266
|
- lib/puppet/util/rdoc/parser.rb
|
|
1263
1267
|
- lib/puppet/util/rdoc/parser/puppet_parser_core.rb
|
|
1264
1268
|
- lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb
|
|
@@ -1366,7 +1370,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1366
1370
|
- !ruby/object:Gem::Version
|
|
1367
1371
|
version: 1.3.1
|
|
1368
1372
|
requirements: []
|
|
1369
|
-
rubygems_version: 4.0.
|
|
1373
|
+
rubygems_version: 4.0.16
|
|
1370
1374
|
specification_version: 4
|
|
1371
1375
|
summary: OpenVox, a community implementation of Puppet -- an automated configuration
|
|
1372
1376
|
management tool
|