Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -572,9 +572,15 @@ When no facts are available for the specific facter/operating system combination
## Maintenance

This gem uses information about puppet AIO component versions to build/test.
They are stored at `ext/puppet_agent_facter_versions.json`. If they are outdated,
the `puppet_versions:test` rake task will fail and they need to be updated.
This is as easy as running: `bundle exec rake puppet_versions:update`
They are stored at `ext/puppet_agent_facter_versions.json`.

In the past we used `bundle exec rake puppet_versions:update` to update the file and `puppet_versions:test` to validate it.
This relied on information from the puppet forge.
With the 6.0.0 release we're switching to openvox.
The file is currently maintained by hand, because openvox doesn't offer an API yet to map agent releases to openfact releases.
It got also renamed from `ext/puppet_agent_facter_versions.json` -> `ext/openvox_agent_facter_versions.json`.

**`ext/openvox_agent_facter_versions.json`now lists a mapping of openvox releases to openfact releases**

## License

Expand Down
33 changes: 4 additions & 29 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,39 +21,14 @@ end
namespace :puppet_versions do
desc 'updates the vendored list of puppet versions & components'
task :update do
require 'net/http'
require 'net/https'
require 'uri'
require 'json'

uri = URI.parse('https://forgeapi.puppet.com/private/versions/puppet-agent')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'

request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
raise unless response.is_a?(Net::HTTPSuccess)

data = JSON.parse(response.body).filter_map do |_, versions|
if !versions['puppet'].nil? && !versions['facter'].nil?
[versions['puppet'], versions['facter']]
end
end
data.sort_by! { |puppet, _facter| Gem::Version.new(puppet) }.reverse!

File.write(PUPPET_VERSIONS_PATH, "#{JSON.pretty_generate(data.to_h)}\n")
warn 'The rake task is disabled since the 6.0.0 Release. Please see the README.md'
exit 1
end

desc 'runs all tests and verifies vendored component list'
task :test do
Rake::Task['puppet_versions:update'].invoke

output = `git status --porcelain #{PUPPET_VERSIONS_PATH}`
unless output.strip.empty?
warn "#{PUPPET_VERSIONS_PATH} is out of date."
warn 'Run the puppet_versions:update task to update it and commit the changes.'
raise
end
warn 'The rake task is disabled since the 6.0.0 Release. Please see the README.md'
exit 1
end
end

Expand Down
13 changes: 13 additions & 0 deletions ext/puppet_agent_facter_versions.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
{
"8.23.1": "5.1.0",
"8.23.0": "5.1.0",
"8.22.1": "5.0.0",
"8.19.2": "4.11.0",
"8.19.1": "4.11.0",
"8.19.0": "4.11.0",
"8.18.1": "4.11.0",
"8.17.0": "4.11.0",
"8.16.0": "4.11.0",
"8.15.0": "4.11.0",
"8.14.0": "4.11.0",
"8.13.0": "4.11.0",
"8.12.1": "4.11.0",
"8.12.0": "4.12.0",
"8.11.0": "4.11.0",
"8.10.0": "4.10.0",
Expand Down