puppet_metadata 3.4.0 → 3.6.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/README.md +35 -0
- data/lib/puppet_metadata/aio.rb +1 -0
- data/lib/puppet_metadata/beaker.rb +3 -0
- data/lib/puppet_metadata/github_actions.rb +3 -1
- data/lib/puppet_metadata/operatingsystem.rb +28 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5aafd856a39efeb605c0a8569b500301c0c7205716e2fe66f0baba72625b7247
|
4
|
+
data.tar.gz: 6808ed021bb4f5dc80fb2bdb8a31de09824c06e4fccb9ca8b697d25144cbdc8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1b43e47df906018f2712fc079c294ab69fa2e83be38d135ab54dd638345c111d5a60c17493fb4f76649b7da1502d3af992f39b33ed029ce9d47ae6e8ef60918
|
7
|
+
data.tar.gz: 16665d3837d3655898fcd475095cec53b69fe84488fa3c2601fd23d0319ce5f996bfed8670dcd47e3974a2b1aaadfdbadc65625c263632312885492e5481f27e
|
data/README.md
CHANGED
@@ -105,6 +105,41 @@ This results in the following JSON data
|
|
105
105
|
|
106
106
|
It is also possible to specify a comma separated list of operating systems as used in `metadata.json` (`CentOS,Ubuntu`).
|
107
107
|
|
108
|
+
## Work with the API
|
109
|
+
|
110
|
+
The API can be initialised like this:
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
require 'puppet_metadata'
|
114
|
+
metadata = PuppetMetadata.read('/path/to/a/metadata.json')
|
115
|
+
```
|
116
|
+
|
117
|
+
The metadata object has several different methods that we can call
|
118
|
+
|
119
|
+
### List all supported operating systems
|
120
|
+
|
121
|
+
```
|
122
|
+
[9] pry(main)> metadata.operatingsystems
|
123
|
+
=> {"Archlinux"=>nil, "Gentoo"=>nil, "Fedora"=>["32", "33"], "CentOS"=>["7", "8"], "RedHat"=>["7", "8"], "Ubuntu"=>["18.04"], "Debian"=>["9", "10"], "VirtuozzoLinux"=>["7"]}
|
124
|
+
[10] pry(main)>
|
125
|
+
```
|
126
|
+
|
127
|
+
### List supported major puppet versions
|
128
|
+
|
129
|
+
```
|
130
|
+
[10] pry(main)> metadata.puppet_major_versions
|
131
|
+
=> [6, 7]
|
132
|
+
[11] pry(main)>
|
133
|
+
```
|
134
|
+
|
135
|
+
### Check if an operating systems is supported
|
136
|
+
|
137
|
+
```
|
138
|
+
[6] pry(main)> metadata.os_release_supported?('Archlinux', nil)
|
139
|
+
=> true
|
140
|
+
[7] pry(main)>
|
141
|
+
```
|
142
|
+
|
108
143
|
## Transfer Notice
|
109
144
|
|
110
145
|
This plugin was originally authored by [Ewoud Kohl van Wijngaarden](https://github.com/ekohl).
|
data/lib/puppet_metadata/aio.rb
CHANGED
@@ -19,6 +19,9 @@ module PuppetMetadata
|
|
19
19
|
# unit files
|
20
20
|
PIDFILE_INCOMPATIBLE = {
|
21
21
|
'CentOS' => ['8'],
|
22
|
+
'AlmaLinux' => ['8'],
|
23
|
+
'OracleLinux' => ['7', '8'],
|
24
|
+
'Rocky' => ['8'],
|
22
25
|
}.freeze
|
23
26
|
class << self
|
24
27
|
# modifies the operating system name to suit beaker-hostgenerator
|
@@ -63,8 +63,10 @@ module PuppetMetadata
|
|
63
63
|
else
|
64
64
|
releases&.each do |release|
|
65
65
|
majors.each do |puppet_version|
|
66
|
-
if AIO.has_aio_build?(os, release, puppet_version[:value])
|
66
|
+
if AIO.has_aio_build?(os, release, puppet_version[:value])
|
67
67
|
yield [os, release, puppet_version]
|
68
|
+
elsif PuppetMetadata::OperatingSystem.os_release_puppet_version(os, release) == puppet_version[:value]
|
69
|
+
yield [os, release, distro_puppet_version.merge(value: puppet_version[:value])]
|
68
70
|
end
|
69
71
|
end
|
70
72
|
end
|
@@ -32,6 +32,7 @@ module PuppetMetadata
|
|
32
32
|
# https://wiki.debian.org/DebianReleases
|
33
33
|
'Debian' => {
|
34
34
|
# TODO: EOL is standard support, not the extended life cycle
|
35
|
+
'12' => nil, # '~2026',
|
35
36
|
'11' => nil, # '~2024',
|
36
37
|
'10' => nil, # '~2022',
|
37
38
|
'9' => '2020-07-06',
|
@@ -206,6 +207,33 @@ module PuppetMetadata
|
|
206
207
|
releases.select { |_release, eol_date| !eol_date || Date.parse(eol_date) > today }.keys
|
207
208
|
.sort_by { |release| Gem::Version.new(release) }
|
208
209
|
end
|
210
|
+
|
211
|
+
# Return the Puppet major version in an OS release, if any
|
212
|
+
#
|
213
|
+
# Only tracks releases without an AIO build, since that's preferred.
|
214
|
+
#
|
215
|
+
# @param [String] operatingsystem
|
216
|
+
# The operating system name
|
217
|
+
# @param [String] release
|
218
|
+
# The operating system release version
|
219
|
+
#
|
220
|
+
# @return [Optional[Integer]] The Puppet major version, if any
|
221
|
+
def os_release_puppet_version(operatingsystem, release)
|
222
|
+
case operatingsystem
|
223
|
+
when 'Debian'
|
224
|
+
case release
|
225
|
+
when '12'
|
226
|
+
7
|
227
|
+
end
|
228
|
+
when 'Fedora'
|
229
|
+
case release
|
230
|
+
when '39', '40'
|
231
|
+
8
|
232
|
+
when '37', '38'
|
233
|
+
7
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
209
237
|
end
|
210
238
|
end
|
211
239
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-03-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: metadata-json-lint
|
@@ -107,14 +107,14 @@ dependencies:
|
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
110
|
+
version: 2.5.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
117
|
+
version: 2.5.0
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
119
|
name: yard
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|