Skip to content

Commit 0f062c4

Browse files
Merge pull request #414 from puppetlabs/CAT-2374-Puppetcore_update
(CAT-2374) Puppetcore update
2 parents 7af66ea + 9c945ce commit 0f062c4

File tree

20 files changed

+150
-113
lines changed

20 files changed

+150
-113
lines changed

.fixtures.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ fixtures:
55
repositories:
66
stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
77
facts: 'https://github.com/puppetlabs/puppetlabs-facts.git'
8-
puppet_agent:
9-
repo: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git'
10-
ref: v4.13.0
8+
puppet_agent: 'https://github.com/puppetlabs/puppetlabs-puppet_agent.git'
119
provision: 'https://github.com/puppetlabs/provision.git'
1210
symlinks:
1311
iis: "#{source_dir}"

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ jobs:
1414
Acceptance:
1515
needs: Spec
1616
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
17+
with:
18+
flags: "--nightly"
1719
secrets: "inherit"

.github/workflows/nightly.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@ jobs:
1313
Acceptance:
1414
needs: Spec
1515
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
16+
with:
17+
flags: "--nightly"
1618
secrets: "inherit"
1719

.puppet-lint.rc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
1+
--fail-on-warnings
12
--relative
3+
--no-80chars-check
4+
--no-140chars-check
5+
--no-class_inherits_from_params_class-check
6+
--no-autoloader_layout-check
7+
--no-documentation-check
8+
--no-single_quote_string_with_variables-check
9+
--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp

.rubocop.yml

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
---
2-
require:
2+
plugins:
33
- rubocop-performance
44
- rubocop-rspec
5+
- rubocop-rspec_rails
6+
- rubocop-factory_bot
7+
- rubocop-capybara
58
AllCops:
69
NewCops: enable
710
DisplayCopNames: true
8-
TargetRubyVersion: '2.6'
11+
TargetRubyVersion: 3.1
912
Include:
1013
- "**/*.rb"
1114
Exclude:
@@ -121,6 +124,12 @@ Capybara/CurrentPathExpectation:
121124
Enabled: false
122125
Capybara/VisibilityMatcher:
123126
Enabled: false
127+
FactoryBot/AttributeDefinedStatically:
128+
Enabled: false
129+
FactoryBot/CreateList:
130+
Enabled: false
131+
FactoryBot/FactoryClassName:
132+
Enabled: false
124133
Gemspec/DuplicatedAssignment:
125134
Enabled: false
126135
Gemspec/OrderedDependencies:
@@ -295,8 +304,6 @@ Performance/UriDefaultParser:
295304
Enabled: false
296305
RSpec/Be:
297306
Enabled: false
298-
RSpec/Capybara/FeatureMethods:
299-
Enabled: false
300307
RSpec/ContainExactly:
301308
Enabled: false
302309
RSpec/ContextMethod:
@@ -305,6 +312,8 @@ RSpec/ContextWording:
305312
Enabled: false
306313
RSpec/DescribeClass:
307314
Enabled: false
315+
RSpec/Dialect:
316+
Enabled: false
308317
RSpec/EmptyHook:
309318
Enabled: false
310319
RSpec/EmptyLineAfterExample:
@@ -321,12 +330,6 @@ RSpec/ExpectChange:
321330
Enabled: false
322331
RSpec/ExpectInHook:
323332
Enabled: false
324-
RSpec/FactoryBot/AttributeDefinedStatically:
325-
Enabled: false
326-
RSpec/FactoryBot/CreateList:
327-
Enabled: false
328-
RSpec/FactoryBot/FactoryClassName:
329-
Enabled: false
330333
RSpec/HooksBeforeExamples:
331334
Enabled: false
332335
RSpec/ImplicitBlockExpectation:
@@ -501,6 +504,12 @@ Capybara/SpecificFinders:
501504
Enabled: false
502505
Capybara/SpecificMatcher:
503506
Enabled: false
507+
FactoryBot/ConsistentParenthesesStyle:
508+
Enabled: false
509+
FactoryBot/FactoryNameStyle:
510+
Enabled: false
511+
FactoryBot/SyntaxMethods:
512+
Enabled: false
504513
Gemspec/DeprecatedAttributeAssignment:
505514
Enabled: false
506515
Gemspec/DevelopmentDependencies:
@@ -601,28 +610,12 @@ RSpec/DuplicatedMetadata:
601610
Enabled: false
602611
RSpec/ExcessiveDocstringSpacing:
603612
Enabled: false
604-
RSpec/FactoryBot/ConsistentParenthesesStyle:
605-
Enabled: false
606-
RSpec/FactoryBot/FactoryNameStyle:
607-
Enabled: false
608-
RSpec/FactoryBot/SyntaxMethods:
609-
Enabled: false
610613
RSpec/IdenticalEqualityAssertion:
611614
Enabled: false
612615
RSpec/NoExpectationExample:
613616
Enabled: false
614617
RSpec/PendingWithoutReason:
615618
Enabled: false
616-
RSpec/Rails/AvoidSetupHook:
617-
Enabled: false
618-
RSpec/Rails/HaveHttpStatus:
619-
Enabled: false
620-
RSpec/Rails/InferredSpecType:
621-
Enabled: false
622-
RSpec/Rails/MinitestAssertions:
623-
Enabled: false
624-
RSpec/Rails/TravelAround:
625-
Enabled: false
626619
RSpec/RedundantAround:
627620
Enabled: false
628621
RSpec/SkipBlockInsideExample:
@@ -633,6 +626,16 @@ RSpec/SubjectDeclaration:
633626
Enabled: false
634627
RSpec/VerifiedDoubleReference:
635628
Enabled: false
629+
RSpecRails/AvoidSetupHook:
630+
Enabled: false
631+
RSpecRails/HaveHttpStatus:
632+
Enabled: false
633+
RSpecRails/InferredSpecType:
634+
Enabled: false
635+
RSpecRails/MinitestAssertions:
636+
Enabled: false
637+
RSpecRails/TravelAround:
638+
Enabled: false
636639
Security/CompoundHash:
637640
Enabled: false
638641
Security/IoMethods:

.rubocop_todo.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This configuration was generated by
22
# `rubocop --auto-gen-config`
3-
# on 2023-11-29 05:16:15 UTC using RuboCop version 1.48.1.
3+
# on 2025-10-22 09:07:39 UTC using RuboCop version 1.73.2.
44
# The point is for the user to remove these configuration records
55
# one by one as the offenses are removed from the code base.
66
# Note that changes in the inspected code, or installation of new
@@ -19,6 +19,7 @@ RSpec/AnyInstance:
1919

2020
# Offense count: 16
2121
# This cop supports unsafe autocorrection (--autocorrect-all).
22+
# Configuration parameters: AutoCorrect.
2223
RSpec/EmptyExampleGroup:
2324
Exclude:
2425
- 'spec/acceptance/iis_application_spec.rb'
@@ -33,13 +34,18 @@ RSpec/InstanceVariable:
3334
Exclude:
3435
- 'spec/acceptance/iis_application_spec.rb'
3536

36-
# Offense count: 12
37+
# Offense count: 1
38+
# This cop supports unsafe autocorrection (--autocorrect-all).
39+
Style/BitwisePredicate:
40+
Exclude:
41+
- 'lib/puppet_x/puppetlabs/iis/property/authenticationinfo.rb'
42+
43+
# Offense count: 11
3744
# This cop supports unsafe autocorrection (--autocorrect-all).
3845
# Configuration parameters: EnforcedStyle.
3946
# SupportedStyles: nested, compact
4047
Style/ClassAndModuleChildren:
4148
Exclude:
42-
- 'lib/puppet_x/puppetlabs/iis/bindings.rb'
4349
- 'lib/puppet_x/puppetlabs/iis/iis_features.rb'
4450
- 'lib/puppet_x/puppetlabs/iis/iis_version.rb'
4551
- 'lib/puppet_x/puppetlabs/iis/property/hash.rb'

Gemfile

Lines changed: 64 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,107 @@
1-
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
1+
# frozen_string_literal: true
22

3-
def location_for(place_or_version, fake_version = nil)
4-
git_url_regex = %r{\A(?<url>(https?|git)[:@][^#]*)(#(?<branch>.*))?}
5-
file_url_regex = %r{\Afile:\/\/(?<path>.*)}
3+
# For puppetcore, set GEM_SOURCE_PUPPETCORE = 'https://rubygems-puppetcore.puppet.com'
4+
gemsource_default = ENV['GEM_SOURCE'] || 'https://rubygems.org'
5+
gemsource_puppetcore = if ENV['PUPPET_FORGE_TOKEN']
6+
'https://rubygems-puppetcore.puppet.com'
7+
else
8+
ENV['GEM_SOURCE_PUPPETCORE'] || gemsource_default
9+
end
10+
source gemsource_default
11+
12+
def location_for(place_or_constraint, fake_constraint = nil, opts = {})
13+
git_url_regex = /\A(?<url>(?:https?|git)[:@][^#]*)(?:#(?<branch>.*))?/
14+
file_url_regex = %r{\Afile://(?<path>.*)}
15+
16+
if place_or_constraint && (git_url = place_or_constraint.match(git_url_regex))
17+
# Git source → ignore :source, keep fake_constraint
18+
[fake_constraint, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
19+
20+
elsif place_or_constraint && (file_url = place_or_constraint.match(file_url_regex))
21+
# File source → ignore :source, keep fake_constraint or default >= 0
22+
[fake_constraint || '>= 0', { path: File.expand_path(file_url[:path]), require: false }]
623

7-
if place_or_version && (git_url = place_or_version.match(git_url_regex))
8-
[fake_version, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
9-
elsif place_or_version && (file_url = place_or_version.match(file_url_regex))
10-
['>= 0', { path: File.expand_path(file_url[:path]), require: false }]
1124
else
12-
[place_or_version, { require: false }]
25+
# Plain version constraint → merge opts (including :source if provided)
26+
[place_or_constraint, { require: false }.merge(opts)]
27+
end
28+
end
29+
30+
# Print debug information if DEBUG_GEMS or VERBOSE is set
31+
def print_gem_statement_for(gems)
32+
puts 'DEBUG: Gem definitions that will be generated:'
33+
gems.each do |gem_name, gem_params|
34+
puts "DEBUG: gem #{([gem_name.inspect] + gem_params.map(&:inspect)).join(', ')}"
1335
end
1436
end
1537

1638
group :development do
17-
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))
18-
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))
19-
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))
2039
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))
2140
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))
2241
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))
2342
gem "deep_merge", '~> 1.2.2', require: false
2443
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
25-
gem "facterdb", '~> 2.1', require: false
44+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
45+
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2646
gem "metadata-json-lint", '~> 4.0', require: false
27-
gem "rspec-puppet-facts", '~> 4.0', require: false
47+
gem "json-schema", '< 5.1.1', require: false
48+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
49+
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2850
gem "dependency_checker", '~> 1.0.0', require: false
2951
gem "parallel_tests", '= 3.12.1', require: false
3052
gem "pry", '~> 0.10', require: false
3153
gem "simplecov-console", '~> 0.9', require: false
32-
gem "puppet-debugger", '~> 1.0', require: false
33-
gem "rubocop", '~> 1.50.0', require: false
34-
gem "rubocop-performance", '= 1.16.0', require: false
35-
gem "rubocop-rspec", '= 2.19.0', require: false
54+
gem "puppet-debugger", '~> 1.6', require: false
55+
gem "rubocop", '~> 1.73.0', require: false
56+
gem "rubocop-performance", '~> 1.24.0', require: false
57+
gem "rubocop-rspec", '~> 3.5.0', require: false
58+
gem "rubocop-rspec_rails", '~> 2.31.0', require: false
59+
gem "rubocop-factory_bot", '~> 2.27.0', require: false
60+
gem "rubocop-capybara", '~> 2.22.0', require: false
3661
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
37-
gem "rexml", '>= 3.3.9', require: false
62+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
3863
gem "ruby-pwsh", require: false
3964
end
4065
group :development, :release_prep do
4166
gem "puppet-strings", '~> 4.0', require: false
42-
gem "puppetlabs_spec_helper", '~> 7.0', require: false
67+
gem "puppetlabs_spec_helper", '~> 8.0', require: false
68+
gem "puppet-blacksmith", '~> 7.0', require: false
4369
end
4470
group :system_tests do
45-
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw]
71+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
72+
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
4673
gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw]
4774
gem "serverspec", '~> 2.41', require: false
4875
end
4976

50-
puppet_version = ENV['PUPPET_GEM_VERSION']
51-
facter_version = ENV['FACTER_GEM_VERSION']
52-
hiera_version = ENV['HIERA_GEM_VERSION']
53-
5477
gems = {}
78+
bolt_version = ENV.fetch('BOLT_GEM_VERSION', nil)
79+
puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
80+
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
81+
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
5582

56-
gems['puppet'] = location_for(puppet_version)
57-
58-
# If facter or hiera versions have been specified via the environment
59-
# variables
60-
61-
gems['facter'] = location_for(facter_version) if facter_version
62-
gems['hiera'] = location_for(hiera_version) if hiera_version
83+
gems['bolt'] = location_for(bolt_version, nil, { source: gemsource_puppetcore })
84+
gems['puppet'] = location_for(puppet_version, nil, { source: gemsource_puppetcore })
85+
gems['facter'] = location_for(facter_version, nil, { source: gemsource_puppetcore })
86+
gems['hiera'] = location_for(hiera_version, nil, {}) if hiera_version
6387

88+
# Generate the gem definitions
89+
print_gem_statement_for(gems) if ENV['DEBUG']
6490
gems.each do |gem_name, gem_params|
6591
gem gem_name, *gem_params
6692
end
6793

6894
# Evaluate Gemfile.local and ~/.gemfile if they exist
6995
extra_gemfiles = [
7096
"#{__FILE__}.local",
71-
File.join(Dir.home, '.gemfile'),
97+
File.join(Dir.home, '.gemfile')
7298
]
7399

74100
extra_gemfiles.each do |gemfile|
75-
if File.file?(gemfile) && File.readable?(gemfile)
76-
eval(File.read(gemfile), binding)
77-
end
101+
next unless File.file?(gemfile) && File.readable?(gemfile)
102+
103+
# rubocop:disable Security/Eval
104+
eval(File.read(gemfile), binding)
105+
# rubocop:enable Security/Eval
78106
end
79107
# vim: syntax=ruby

lib/puppet/provider/iis_application/webadministration.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def self.powershell_path
2222
mk_resource_methods
2323

2424
def initialize(value = {})
25-
super(value)
25+
super
2626
@property_flush = {}
2727
end
2828

@@ -54,14 +54,14 @@ def create
5454
check_paths
5555
if @resource[:virtual_directory]
5656
args = []
57-
args << (@resource[:virtual_directory]).to_s
57+
args << @resource[:virtual_directory].to_s
5858
args << "-ApplicationPool #{@resource[:applicationpool].inspect}" if @resource[:applicationpool]
5959
inst_cmd = "ConvertTo-WebApplication #{args.join(' ')} -Force -ErrorAction Stop"
6060
else
6161
inst_cmd = self.class.ps_script_content('newapplication', @resource)
6262
end
6363
result = self.class.run(inst_cmd)
64-
raise "Error creating application: #{result[:errormessage]}" unless (result[:exitcode]).zero?
64+
raise "Error creating application: #{result[:errormessage]}" unless result[:exitcode].zero?
6565
raise "Error creating application: #{result[:errormessage]}" unless result[:errormessage].nil?
6666

6767
@property_hash[:ensure] = :present
@@ -71,7 +71,7 @@ def destroy
7171
inst_cmd = "Remove-WebApplication -Site \"#{self.class.find_sitename(resource)}\" -Name \"#{app_name}\" -ErrorAction Stop"
7272
result = self.class.run(inst_cmd)
7373
@property_hash.clear
74-
raise "Error destroying application: #{result[:errormessage]}" unless (result[:exitcode]).zero?
74+
raise "Error destroying application: #{result[:errormessage]}" unless result[:exitcode].zero?
7575
raise "Error destroying application: #{result[:errormessage]}" unless result[:errormessage].nil?
7676
end
7777

@@ -118,7 +118,7 @@ def update
118118

119119
inst_cmd = inst_cmd.join("\n")
120120
result = self.class.run(inst_cmd)
121-
raise "Error updating application: #{result[:errormessage]}" unless (result[:exitcode]).zero?
121+
raise "Error updating application: #{result[:errormessage]}" unless result[:exitcode].zero?
122122
raise "Error updating application: #{result[:errormessage]}" unless result[:errormessage].nil?
123123
end
124124

0 commit comments

Comments
 (0)