Fix catalog compilation failure when net/ftp is not available #491
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When net/ftp is not available, the archive module fail to load and the
PuppetServer catalog compilation fail. While this gem is generally
available because part of the Ruby standard library, some flavors of
Ruby do noth ship with it by default, e.g. FreeBSD package of Ruby 3.2
or GitHub actions of Ruby 3.2.
Because the archive module has multiple ways to download files, the
absence of net/ftp is not necessarily an issue because when curl(1) is
available, it is preferred over net/ftp. The catalog compilation error
is therefore not required.
Lazy load net/ftp when the pure-ruby download-over-FTP code is run, so
that the absence of net/ftp cause a resource evaluation error on the
agent side and the rest of the catalog still apply.
Fixes #488