diff --git a/.fixtures.yml b/.fixtures.yml index ff7c5561..e93ae85f 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -5,9 +5,7 @@ fixtures: repositories: stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib.git' facts: 'https://github.com/puppetlabs/puppetlabs-facts.git' - puppet_agent: - repo: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git' - ref: v4.13.0 + puppet_agent: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git' provision: 'https://github.com/puppetlabs/provision.git' symlinks: iis: "#{source_dir}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5738adb..2cdfc30f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,4 +14,6 @@ jobs: Acceptance: needs: Spec uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main" + with: + flags: "--nightly" secrets: "inherit" diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a28cd2db..f1807fe9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -13,5 +13,7 @@ jobs: Acceptance: needs: Spec uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main" + with: + flags: "--nightly" secrets: "inherit" diff --git a/.puppet-lint.rc b/.puppet-lint.rc index cc96ece0..9e15c6e0 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/.rubocop.yml b/.rubocop.yml index 439ea84e..4899d2ea 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,11 +1,14 @@ --- -require: +plugins: - rubocop-performance - rubocop-rspec +- rubocop-rspec_rails +- rubocop-factory_bot +- rubocop-capybara AllCops: NewCops: enable DisplayCopNames: true - TargetRubyVersion: '2.6' + TargetRubyVersion: 3.1 Include: - "**/*.rb" Exclude: @@ -121,6 +124,12 @@ Capybara/CurrentPathExpectation: Enabled: false Capybara/VisibilityMatcher: Enabled: false +FactoryBot/AttributeDefinedStatically: + Enabled: false +FactoryBot/CreateList: + Enabled: false +FactoryBot/FactoryClassName: + Enabled: false Gemspec/DuplicatedAssignment: Enabled: false Gemspec/OrderedDependencies: @@ -295,8 +304,6 @@ Performance/UriDefaultParser: Enabled: false RSpec/Be: Enabled: false -RSpec/Capybara/FeatureMethods: - Enabled: false RSpec/ContainExactly: Enabled: false RSpec/ContextMethod: @@ -305,6 +312,8 @@ RSpec/ContextWording: Enabled: false RSpec/DescribeClass: Enabled: false +RSpec/Dialect: + Enabled: false RSpec/EmptyHook: Enabled: false RSpec/EmptyLineAfterExample: @@ -321,12 +330,6 @@ RSpec/ExpectChange: Enabled: false RSpec/ExpectInHook: Enabled: false -RSpec/FactoryBot/AttributeDefinedStatically: - Enabled: false -RSpec/FactoryBot/CreateList: - Enabled: false -RSpec/FactoryBot/FactoryClassName: - Enabled: false RSpec/HooksBeforeExamples: Enabled: false RSpec/ImplicitBlockExpectation: @@ -501,6 +504,12 @@ Capybara/SpecificFinders: Enabled: false Capybara/SpecificMatcher: Enabled: false +FactoryBot/ConsistentParenthesesStyle: + Enabled: false +FactoryBot/FactoryNameStyle: + Enabled: false +FactoryBot/SyntaxMethods: + Enabled: false Gemspec/DeprecatedAttributeAssignment: Enabled: false Gemspec/DevelopmentDependencies: @@ -601,28 +610,12 @@ RSpec/DuplicatedMetadata: Enabled: false RSpec/ExcessiveDocstringSpacing: Enabled: false -RSpec/FactoryBot/ConsistentParenthesesStyle: - Enabled: false -RSpec/FactoryBot/FactoryNameStyle: - Enabled: false -RSpec/FactoryBot/SyntaxMethods: - Enabled: false RSpec/IdenticalEqualityAssertion: Enabled: false RSpec/NoExpectationExample: Enabled: false RSpec/PendingWithoutReason: Enabled: false -RSpec/Rails/AvoidSetupHook: - Enabled: false -RSpec/Rails/HaveHttpStatus: - Enabled: false -RSpec/Rails/InferredSpecType: - Enabled: false -RSpec/Rails/MinitestAssertions: - Enabled: false -RSpec/Rails/TravelAround: - Enabled: false RSpec/RedundantAround: Enabled: false RSpec/SkipBlockInsideExample: @@ -633,6 +626,16 @@ RSpec/SubjectDeclaration: Enabled: false RSpec/VerifiedDoubleReference: Enabled: false +RSpecRails/AvoidSetupHook: + Enabled: false +RSpecRails/HaveHttpStatus: + Enabled: false +RSpecRails/InferredSpecType: + Enabled: false +RSpecRails/MinitestAssertions: + Enabled: false +RSpecRails/TravelAround: + Enabled: false Security/CompoundHash: Enabled: false Security/IoMethods: diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 8ce0a0ec..536155d1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2023-11-29 05:16:15 UTC using RuboCop version 1.48.1. +# on 2025-10-22 09:07:39 UTC using RuboCop version 1.73.2. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -19,6 +19,7 @@ RSpec/AnyInstance: # Offense count: 16 # This cop supports unsafe autocorrection (--autocorrect-all). +# Configuration parameters: AutoCorrect. RSpec/EmptyExampleGroup: Exclude: - 'spec/acceptance/iis_application_spec.rb' @@ -33,13 +34,18 @@ RSpec/InstanceVariable: Exclude: - 'spec/acceptance/iis_application_spec.rb' -# Offense count: 12 +# Offense count: 1 +# This cop supports unsafe autocorrection (--autocorrect-all). +Style/BitwisePredicate: + Exclude: + - 'lib/puppet_x/puppetlabs/iis/property/authenticationinfo.rb' + +# Offense count: 11 # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: nested, compact Style/ClassAndModuleChildren: Exclude: - - 'lib/puppet_x/puppetlabs/iis/bindings.rb' - 'lib/puppet_x/puppetlabs/iis/iis_features.rb' - 'lib/puppet_x/puppetlabs/iis/iis_version.rb' - 'lib/puppet_x/puppetlabs/iis/property/hash.rb' diff --git a/Gemfile b/Gemfile index 2c483db9..77579a80 100644 --- a/Gemfile +++ b/Gemfile @@ -1,66 +1,92 @@ -source ENV['GEM_SOURCE'] || 'https://rubygems.org' +# frozen_string_literal: true -def location_for(place_or_version, fake_version = nil) - git_url_regex = %r{\A(?(https?|git)[:@][^#]*)(#(?.*))?} - file_url_regex = %r{\Afile:\/\/(?.*)} +# For puppetcore, set GEM_SOURCE_PUPPETCORE = 'https://rubygems-puppetcore.puppet.com' +gemsource_default = ENV['GEM_SOURCE'] || 'https://rubygems.org' +gemsource_puppetcore = if ENV['PUPPET_FORGE_TOKEN'] + 'https://rubygems-puppetcore.puppet.com' +else + ENV['GEM_SOURCE_PUPPETCORE'] || gemsource_default +end +source gemsource_default + +def location_for(place_or_constraint, fake_constraint = nil, opts = {}) + git_url_regex = /\A(?(?:https?|git)[:@][^#]*)(?:#(?.*))?/ + file_url_regex = %r{\Afile://(?.*)} + + if place_or_constraint && (git_url = place_or_constraint.match(git_url_regex)) + # Git source → ignore :source, keep fake_constraint + [fake_constraint, { git: git_url[:url], branch: git_url[:branch], require: false }].compact + + elsif place_or_constraint && (file_url = place_or_constraint.match(file_url_regex)) + # File source → ignore :source, keep fake_constraint or default >= 0 + [fake_constraint || '>= 0', { path: File.expand_path(file_url[:path]), require: false }] - if place_or_version && (git_url = place_or_version.match(git_url_regex)) - [fake_version, { git: git_url[:url], branch: git_url[:branch], require: false }].compact - elsif place_or_version && (file_url = place_or_version.match(file_url_regex)) - ['>= 0', { path: File.expand_path(file_url[:path]), require: false }] else - [place_or_version, { require: false }] + # Plain version constraint → merge opts (including :source if provided) + [place_or_constraint, { require: false }.merge(opts)] + end +end + +# Print debug information if DEBUG_GEMS or VERBOSE is set +def print_gem_statement_for(gems) + puts 'DEBUG: Gem definitions that will be generated:' + gems.each do |gem_name, gem_params| + puts "DEBUG: gem #{([gem_name.inspect] + gem_params.map(&:inspect)).join(', ')}" end end group :development do - gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "json", '= 2.5.1', require: false if Gem::Requirement.create(['>= 3.0.0', '< 3.0.5']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.6.1', require: false if Gem::Requirement.create(['>= 3.1.0', '< 3.1.3']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.6.3', require: false if Gem::Requirement.create(['>= 3.2.0', '< 4.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) 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 gem "simplecov-console", '~> 0.9', require: false - gem "puppet-debugger", '~> 1.0', require: false - gem "rubocop", '~> 1.50.0', require: false - gem "rubocop-performance", '= 1.16.0', require: false - gem "rubocop-rspec", '= 2.19.0', require: false + gem "puppet-debugger", '~> 1.6', require: false + gem "rubocop", '~> 1.73.0', require: false + gem "rubocop-performance", '~> 1.24.0', require: false + gem "rubocop-rspec", '~> 3.5.0', require: false + gem "rubocop-rspec_rails", '~> 2.31.0', require: false + gem "rubocop-factory_bot", '~> 2.27.0', require: false + gem "rubocop-capybara", '~> 2.22.0', require: false gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "rexml", '>= 3.3.9', require: false + gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "ruby-pwsh", 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] + gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty? + gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty? gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw] 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 = {} +bolt_version = ENV.fetch('BOLT_GEM_VERSION', nil) +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 - -gems['facter'] = location_for(facter_version) if facter_version -gems['hiera'] = location_for(hiera_version) if hiera_version +gems['bolt'] = location_for(bolt_version, nil, { source: gemsource_puppetcore }) +gems['puppet'] = location_for(puppet_version, nil, { source: gemsource_puppetcore }) +gems['facter'] = location_for(facter_version, nil, { source: gemsource_puppetcore }) +gems['hiera'] = location_for(hiera_version, nil, {}) if hiera_version +# Generate the gem definitions +print_gem_statement_for(gems) if ENV['DEBUG'] gems.each do |gem_name, gem_params| gem gem_name, *gem_params end @@ -68,12 +94,14 @@ end # Evaluate Gemfile.local and ~/.gemfile if they exist extra_gemfiles = [ "#{__FILE__}.local", - File.join(Dir.home, '.gemfile'), + File.join(Dir.home, '.gemfile') ] extra_gemfiles.each do |gemfile| - if File.file?(gemfile) && File.readable?(gemfile) - eval(File.read(gemfile), binding) - end + next unless File.file?(gemfile) && File.readable?(gemfile) + + # rubocop:disable Security/Eval + eval(File.read(gemfile), binding) + # rubocop:enable Security/Eval end # vim: syntax=ruby diff --git a/lib/puppet/provider/iis_application/webadministration.rb b/lib/puppet/provider/iis_application/webadministration.rb index 05ec21c8..fc3517b9 100644 --- a/lib/puppet/provider/iis_application/webadministration.rb +++ b/lib/puppet/provider/iis_application/webadministration.rb @@ -22,7 +22,7 @@ def self.powershell_path mk_resource_methods def initialize(value = {}) - super(value) + super @property_flush = {} end @@ -54,14 +54,14 @@ def create check_paths if @resource[:virtual_directory] args = [] - args << (@resource[:virtual_directory]).to_s + args << @resource[:virtual_directory].to_s args << "-ApplicationPool #{@resource[:applicationpool].inspect}" if @resource[:applicationpool] inst_cmd = "ConvertTo-WebApplication #{args.join(' ')} -Force -ErrorAction Stop" else inst_cmd = self.class.ps_script_content('newapplication', @resource) end result = self.class.run(inst_cmd) - raise "Error creating application: #{result[:errormessage]}" unless (result[:exitcode]).zero? + raise "Error creating application: #{result[:errormessage]}" unless result[:exitcode].zero? raise "Error creating application: #{result[:errormessage]}" unless result[:errormessage].nil? @property_hash[:ensure] = :present @@ -71,7 +71,7 @@ def destroy inst_cmd = "Remove-WebApplication -Site \"#{self.class.find_sitename(resource)}\" -Name \"#{app_name}\" -ErrorAction Stop" result = self.class.run(inst_cmd) @property_hash.clear - raise "Error destroying application: #{result[:errormessage]}" unless (result[:exitcode]).zero? + raise "Error destroying application: #{result[:errormessage]}" unless result[:exitcode].zero? raise "Error destroying application: #{result[:errormessage]}" unless result[:errormessage].nil? end @@ -118,7 +118,7 @@ def update inst_cmd = inst_cmd.join("\n") result = self.class.run(inst_cmd) - raise "Error updating application: #{result[:errormessage]}" unless (result[:exitcode]).zero? + raise "Error updating application: #{result[:errormessage]}" unless result[:exitcode].zero? raise "Error updating application: #{result[:errormessage]}" unless result[:errormessage].nil? end diff --git a/lib/puppet/provider/iis_application_pool/webadministration.rb b/lib/puppet/provider/iis_application_pool/webadministration.rb index f561e062..101dcc6a 100644 --- a/lib/puppet/provider/iis_application_pool/webadministration.rb +++ b/lib/puppet/provider/iis_application_pool/webadministration.rb @@ -29,7 +29,7 @@ def create Puppet.debug "Creating #{@resource[:name]}" inst_cmd = "New-WebAppPool -Name \"#{@resource[:name]}\" -ErrorAction Stop" result = self.class.run(inst_cmd) - Puppet.err "Error creating apppool: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error creating apppool: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error creating apppool: #{result[:errormessage]}" unless result[:errormessage].nil? @resource[:ensure] = :present end @@ -63,7 +63,7 @@ def update cmd = cmd.join("\n") result = self.class.run(cmd) - Puppet.err "Error updating apppool: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error updating apppool: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error updating apppool: #{result[:errormessage]}" unless result[:errormessage].nil? end @@ -71,14 +71,14 @@ def destroy Puppet.debug "Creating #{@resource[:name]}" inst_cmd = "Remove-WebAppPool -Name \"#{@resource[:name]}\" -ErrorAction Stop" result = self.class.run(inst_cmd) - Puppet.err "Error destroying apppool: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error destroying apppool: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error destroying apppool: #{result[:errormessage]}" unless result[:errormessage].nil? @resource[:ensure] = :absent end def initialize(value = {}) - super(value) + super @property_flush = {} end diff --git a/lib/puppet/provider/iis_powershell.rb b/lib/puppet/provider/iis_powershell.rb index 39716da9..1bc9542e 100644 --- a/lib/puppet/provider/iis_powershell.rb +++ b/lib/puppet/provider/iis_powershell.rb @@ -6,7 +6,7 @@ # This is the base class on which other providers are based. class Puppet::Provider::IIS_PowerShell < Puppet::Provider # rubocop:disable all def initialize(value = {}) - super(value) + super @original_values = if value.is_a? Hash value.clone else diff --git a/lib/puppet/provider/iis_site/iisadministration.rb b/lib/puppet/provider/iis_site/iisadministration.rb index 058c1baf..f87d097a 100644 --- a/lib/puppet/provider/iis_site/iisadministration.rb +++ b/lib/puppet/provider/iis_site/iisadministration.rb @@ -23,7 +23,7 @@ def self.powershell_path mk_resource_methods def initialize(value = {}) - super(value) + super @property_flush = {} end end diff --git a/lib/puppet/provider/iis_site/webadministration.rb b/lib/puppet/provider/iis_site/webadministration.rb index b174d072..d1aa6050 100644 --- a/lib/puppet/provider/iis_site/webadministration.rb +++ b/lib/puppet/provider/iis_site/webadministration.rb @@ -39,7 +39,7 @@ def create result = self.class.run(inst_cmd) - Puppet.err "Error creating website: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error creating website: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error creating website: #{result[:errormessage]}" unless result[:errormessage].nil? exists? @@ -92,7 +92,7 @@ def update result = self.class.run(inst_cmd) - Puppet.err "Error updating website: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error updating website: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error updating website: #{result[:errormessage]}" unless result[:errormessage].nil? exists? @@ -101,7 +101,7 @@ def update def destroy inst_cmd = "Remove-Website -Name \"#{@resource[:name]}\" -ErrorAction Stop" result = self.class.run(inst_cmd) - Puppet.err "Error destroying website: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error destroying website: #{result[:errormessage]}" unless result[:exitcode].zero? Puppet.err "Error destroying website: #{result[:errormessage]}" unless result[:errormessage].nil? exists? end @@ -111,7 +111,7 @@ def exists? result = self.class.run(inst_cmd) - (result[:exitcode]).zero? + result[:exitcode].zero? end def start @@ -120,7 +120,7 @@ def start inst_cmd = "Start-Website -Name \"#{@resource[:name]}\" -ErrorVariable errvar;if($errvar){ throw \"$($errvar). Perhaps there is another website with this port or configuration setting\" }" result = self.class.run(inst_cmd) - raise "Error starting website: #{result[:errormessage]}" unless result[:errormessage].nil? || (result[:exitcode]).zero? + raise "Error starting website: #{result[:errormessage]}" unless result[:errormessage].nil? || result[:exitcode].zero? true end @@ -131,13 +131,13 @@ def stop inst_cmd = "Stop-Website -Name \"#{@resource[:name]}\" -ErrorVariable errvar;if($errvar){ throw \"$($errvar).\" }" result = self.class.run(inst_cmd) - raise "Error stopping website: #{result[:errormessage]}" unless result[:errormessage].nil? || (result[:exitcode]).zero? + raise "Error stopping website: #{result[:errormessage]}" unless result[:errormessage].nil? || result[:exitcode].zero? true end def initialize(value = {}) - super(value) + super @property_flush = {} end diff --git a/lib/puppet/provider/iis_virtual_directory/webadministration.rb b/lib/puppet/provider/iis_virtual_directory/webadministration.rb index 96508559..8a5f70e4 100644 --- a/lib/puppet/provider/iis_virtual_directory/webadministration.rb +++ b/lib/puppet/provider/iis_virtual_directory/webadministration.rb @@ -57,7 +57,7 @@ def create cmd = cmd.join result = self.class.run(cmd) - Puppet.err "Error creating virtual directory: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error creating virtual directory: #{result[:errormessage]}" unless result[:exitcode].zero? @resource[:ensure] = :present end @@ -75,7 +75,7 @@ def update cmd = cmd.join result = self.class.run(cmd) - Puppet.err "Error updating virtual directory: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error updating virtual directory: #{result[:errormessage]}" unless result[:exitcode].zero? end def destroy @@ -90,13 +90,13 @@ def destroy cmd = cmd.join result = self.class.run(cmd) - Puppet.err "Error destroying virtual directory: #{result[:errormessage]}" unless (result[:exitcode]).zero? + Puppet.err "Error destroying virtual directory: #{result[:errormessage]}" unless result[:exitcode].zero? end @property_hash[:ensure] = :absent end def initialize(value = {}) - super(value) + super @property_flush = {} end diff --git a/lib/puppet/type/iis_application.rb b/lib/puppet/type/iis_application.rb index b3035070..8347e3a0 100644 --- a/lib/puppet/type/iis_application.rb +++ b/lib/puppet/type/iis_application.rb @@ -57,7 +57,7 @@ validate do |value| raise ArgumentError, 'A non-empty applicationpool name must be specified.' if value.nil? || value.empty? - super value + super(value) end end diff --git a/lib/puppet/type/iis_application_pool.rb b/lib/puppet/type/iis_application_pool.rb index a4885fd5..fee68e32 100644 --- a/lib/puppet/type/iis_application_pool.rb +++ b/lib/puppet/type/iis_application_pool.rb @@ -34,7 +34,7 @@ raise ArgumentError, "A non-empty #{name} must be specified." if value.nil? || value.empty? raise("#{name} should be less than 64 characters") unless value.length < 64 - super value + super(value) end end @@ -134,7 +134,7 @@ module uses the token to impersonate the built-in account. When Pool](https://www.iis.net/configreference/system.applicationhost/applicationPools/add/failure). Valid options 11 to 65535." validate do |value| - super value + super(value) raise "#{name} should be greater than 10" unless value.to_i > 10 raise "#{name} should be less than or equal to 65535" unless value.to_i <= 65_535 end @@ -155,7 +155,7 @@ module uses the token to impersonate the built-in account. When optional set of events can be triggered. These optional events are determined by the `cpu_action` property." validate do |value| - super value + super(value) raise "#{name} should be less than or equal to 100000" unless value.to_i <= 100_000 end end @@ -316,7 +316,7 @@ module uses the token to impersonate the built-in account. When for that application pool. In this example, setting `max_processes` to a value of 0 or 4 would have the same result." validate do |value| - super value + super(value) raise "#{name} should be less than or equal to 2147483647" unless value.to_i <= 2_147_483_647 end end @@ -444,7 +444,7 @@ def is_to_s(_value) # rubocop:disable Naming/PredicateName desc "Specifies the maximum number of failures allowed within the number of minutes specified by the `rapid_fail_protection_interval` property." validate do |value| - super value + super(value) raise "#{name} should be less than or equal to 2147483647" unless value.to_i <= 2_147_483_647 end end diff --git a/lib/puppet/type/iis_site.rb b/lib/puppet/type/iis_site.rb index f21fe197..95202edb 100644 --- a/lib/puppet/type/iis_site.rb +++ b/lib/puppet/type/iis_site.rb @@ -50,7 +50,7 @@ def insync?(is) validate do |value| raise ArgumentError, 'A non-empty name must be specified.' if value.nil? || value.empty? - super value + super(value) end end @@ -72,7 +72,7 @@ def insync?(is) validate do |value| raise ArgumentError, 'A non-empty applicationpool name must be specified.' if value.nil? || value.empty? - super value + super(value) end end diff --git a/lib/puppet/type/iis_virtual_directory.rb b/lib/puppet/type/iis_virtual_directory.rb index 8620173c..56506b96 100644 --- a/lib/puppet/type/iis_virtual_directory.rb +++ b/lib/puppet/type/iis_virtual_directory.rb @@ -42,7 +42,7 @@ validate do |value| raise ArgumentError, 'A non-empty physicalpath must be specified.' if value.nil? || value.empty? - super value + super(value) end end diff --git a/metadata.json b/metadata.json index f5a0e78b..79435538 100644 --- a/metadata.json +++ b/metadata.json @@ -28,10 +28,10 @@ "requirements": [ { "name": "puppet", - "version_requirement": ">= 7.0.0 < 9.0.0" + "version_requirement": ">= 8.0.0 < 9.0.0" } ], - "pdk-version": "3.2.0", + "pdk-version": "3.5.0", "template-url": "https://github.com/puppetlabs/pdk-templates.git#main", - "template-ref": "tags/3.2.0.4-0-g5d17ec1" + "template-ref": "heads/main-0-gfa96b82" } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ae7c1f68..2f7fdae3 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -26,7 +26,7 @@ begin require 'deep_merge' - default_facts.deep_merge!(YAML.safe_load(File.read(f), permitted_classes: [], permitted_symbols: [], aliases: true)) + default_facts.deep_merge!(YAML.safe_load_file(f, permitted_classes: [], permitted_symbols: [], aliases: true)) rescue StandardError => e RSpec.configuration.reporter.message "WARNING: Unable to load #{f}: #{e}" end diff --git a/spec/unit/puppet/type/iis_application_pool_spec.rb b/spec/unit/puppet/type/iis_application_pool_spec.rb index d08297bd..5599547c 100644 --- a/spec/unit/puppet/type/iis_application_pool_spec.rb +++ b/spec/unit/puppet/type/iis_application_pool_spec.rb @@ -99,16 +99,6 @@ expect(params + [:provider]).to include(*type_class.parameters) end - [:state, - :managed_pipeline_mode, - :managed_runtime_version, - :start_mode, - :cpu_action, - :idle_timeout_action, - :logon_type, - :load_balancer_capabilities, - :identity_type].freeze - [:name, :clr_config_file, :managed_runtime_loader,