diff --git a/.puppet-lint.rc b/.puppet-lint.rc
index cc96ece..9e15c6e 100644
--- a/.puppet-lint.rc
+++ b/.puppet-lint.rc
@@ -1 +1,9 @@
+--fail-on-warnings
--relative
+--no-80chars-check
+--no-140chars-check
+--no-class_inherits_from_params_class-check
+--no-autoloader_layout-check
+--no-documentation-check
+--no-single_quote_string_with_variables-check
+--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp
diff --git a/.sync.yml b/.sync.yml
index f2884e6..3e5a628 100644
--- a/.sync.yml
+++ b/.sync.yml
@@ -6,12 +6,3 @@ spec/spec_helper.rb:
hiera_config: 'spec/fixtures/hiera.yaml'
coverage_report: true
mock_with: ':rspec'
-
-Gemfile:
- required:
- ':development':
- - gem: 'puppet-blacksmith'
- - gem: 'github_changelog_generator'
-# - gem: 'rexml'
-# version: '~> 3.2'
-# condition: "Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3')"
diff --git a/Gemfile b/Gemfile
index dddd5a4..1b5b9ed 100644
--- a/Gemfile
+++ b/Gemfile
@@ -22,9 +22,12 @@ group :development do
gem "racc", '~> 1.4.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "deep_merge", '~> 1.2.2', require: false
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
- gem "facterdb", '~> 2.1', require: false
+ gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+ gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "metadata-json-lint", '~> 4.0', require: false
- gem "rspec-puppet-facts", '~> 4.0', require: false
+ gem "json-schema", '< 5.1.1', require: false
+ gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+ gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "dependency_checker", '~> 1.0.0', require: false
gem "parallel_tests", '= 3.12.1', require: false
gem "pry", '~> 0.10', require: false
@@ -34,13 +37,11 @@ group :development do
gem "rubocop-performance", '= 1.16.0', require: false
gem "rubocop-rspec", '= 2.19.0', require: false
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
- gem "rexml", '>= 3.0.0', '< 3.2.7', require: false
- gem "puppet-blacksmith", require: false
- gem "github_changelog_generator", require: false
end
group :development, :release_prep do
gem "puppet-strings", '~> 4.0', require: false
- gem "puppetlabs_spec_helper", '~> 7.0', require: false
+ gem "puppetlabs_spec_helper", '~> 8.0', require: false
+ gem "puppet-blacksmith", '~> 7.0', require: false
end
group :system_tests do
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw]
@@ -48,18 +49,21 @@ group :system_tests do
gem "serverspec", '~> 2.41', require: false
end
-puppet_version = ENV['PUPPET_GEM_VERSION']
-facter_version = ENV['FACTER_GEM_VERSION']
-hiera_version = ENV['HIERA_GEM_VERSION']
-
gems = {}
+puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
+facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
+hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
-gems['puppet'] = location_for(puppet_version)
-
-# If facter or hiera versions have been specified via the environment
-# variables
+# If PUPPET_FORGE_TOKEN is set then use authenticated source for both puppet and facter, since facter is a transitive dependency of puppet
+# Otherwise, do as before and use location_for to fetch gems from the default source
+if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
+ gems['puppet'] = ['~> 8.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
+ gems['facter'] = ['~> 4.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
+else
+ gems['puppet'] = location_for(puppet_version)
+ gems['facter'] = location_for(facter_version) if facter_version
+end
-gems['facter'] = location_for(facter_version) if facter_version
gems['hiera'] = location_for(hiera_version) if hiera_version
gems.each do |gem_name, gem_params|
diff --git a/Rakefile b/Rakefile
index caa4e30..31b5930 100644
--- a/Rakefile
+++ b/Rakefile
@@ -7,4 +7,12 @@ require 'puppet-syntax/tasks/puppet-syntax'
require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
PuppetLint.configuration.send('disable_relative')
+PuppetLint.configuration.send('disable_80chars')
+PuppetLint.configuration.send('disable_140chars')
+PuppetLint.configuration.send('disable_class_inherits_from_params_class')
+PuppetLint.configuration.send('disable_autoloader_layout')
+PuppetLint.configuration.send('disable_documentation')
+PuppetLint.configuration.send('disable_single_quote_string_with_variables')
+PuppetLint.configuration.fail_on_warnings = true
+PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
diff --git a/lib/puppet/provider/libvirt_network/virsh.rb b/lib/puppet/provider/libvirt_network/virsh.rb
index e4c0e81..957865a 100644
--- a/lib/puppet/provider/libvirt_network/virsh.rb
+++ b/lib/puppet/provider/libvirt_network/virsh.rb
@@ -99,16 +99,7 @@ def content
formatter = REXML::Formatters::Pretty.new(2)
formatter.compact = true
output = ''.dup
-
- xml = recursive_sort(xml.root)
- sorted_portgroups = xml.root.get_elements('//portgroup').sort_by { |obj| obj.attributes['name'] }
-
- REXML::XPath.match(xml, '//portgroup').each(&:remove)
- sorted_portgroups.each do |pg|
- xml.root.add_element pg
- end
-
- formatter.write(xml.root, output)
+ formatter.write(recursive_sort(xml.root), output)
output
end
diff --git a/lib/puppet/type/libvirt_network.rb b/lib/puppet/type/libvirt_network.rb
index 57a0c99..14f264e 100644
--- a/lib/puppet/type/libvirt_network.rb
+++ b/lib/puppet/type/libvirt_network.rb
@@ -61,21 +61,5 @@ def change_to_s(current, desire)
'{md5}' + Digest::MD5.hexdigest(current.to_s) + ' to: ' + '{md5}' + Digest::MD5.hexdigest(desire.to_s)
end
end
-
- def should_to_s(value)
- if @resource[:show_diff]
- ":\n" + value + "\n"
- else
- '{md5}' + Digest::MD5.hexdigest(value.to_s)
- end
- end
-
- def is_to_s(value) # rubocop:disable Naming/PredicateName
- if @resource[:show_diff]
- ":\n" + value + "\n"
- else
- '{md5}' + Digest::MD5.hexdigest(value.to_s)
- end
- end
end
end
diff --git a/manifests/nwfilter.pp b/manifests/nwfilter.pp
index 9f6d8f9..08cbb13 100644
--- a/manifests/nwfilter.pp
+++ b/manifests/nwfilter.pp
@@ -76,7 +76,7 @@
if $ensure == 'absent' {
libvirt_nwfilter { $title:
- ensure => 'absent',
+ ensure => 'absent',
}
} else {
if $template == 'simple' {
diff --git a/metadata.json b/metadata.json
index 848df42..a24d8f2 100644
--- a/metadata.json
+++ b/metadata.json
@@ -70,7 +70,7 @@
"drbd",
"virtualization"
],
- "pdk-version": "3.3.0",
- "template-url": "pdk-default#3.3.0",
- "template-ref": "tags/3.3.0-0-g5d17ec1"
+ "pdk-version": "3.4.0",
+ "template-url": "https://github.com/puppetlabs/pdk-templates#main",
+ "template-ref": "heads/main-0-g1a55f8d"
}
diff --git a/templates/network/generic.xml.epp b/templates/network/generic.xml.epp
index 6583148..792b0dd 100644
--- a/templates/network/generic.xml.epp
+++ b/templates/network/generic.xml.epp
@@ -35,8 +35,8 @@
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'bandwith', 'attrs' => $bandwith, 'tree' => $tree['bandwith'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'vlan', 'attrs' => $vlan, 'tree' => $tree['vlan'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'port', 'attrs' => $port, 'tree' => $tree['port'] }) -%>
- <%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'virtualport', 'attrs' => $virtualport, 'tree' => $tree['virtualport'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'portgroup', 'attrs' => $portgroups, 'tree' => $tree['portgroup'] }) -%>
+ <%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'virtualport', 'attrs' => $virtualport, 'tree' => $tree['virtualport'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'ip', 'attrs' => $ips, 'tree' => $tree['ip'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'route', 'attrs' => $routes, 'tree' => $tree['route'] }) -%>
<%- %><%= epp('libvirt/network/sub-element.xml.epp', { 'name' => 'dns', 'attrs' => $dns, 'tree' => $tree['dns'] }) -%>
diff --git a/templates/network/simple.xml.erb b/templates/network/simple.xml.erb
index 5d6b340..384f307 100644
--- a/templates/network/simple.xml.erb
+++ b/templates/network/simple.xml.erb
@@ -27,9 +27,6 @@
<%- if @dns_enable -%>
<%- end -%>
- <%- if @virtualport_type -%>
-
- <%- end -%>
<%- @portgroups.each do |pg| -%>
'>
<%- if pg['trunk'] -%>
@@ -45,4 +42,7 @@
<%- end -%>
<%- end -%>
+ <%- if @virtualport_type -%>
+
+ <%- end -%>