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
4 changes: 1 addition & 3 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
fixtures:
repositories:
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'
stdlib: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
mount_iso: 'https://github.com/puppetlabs/puppetlabs-mount_iso.git'
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:

env:
SERVICE_URL: https://facade-maint-config-windows-use-ssh-6f3kfepqcq-ew.a.run.app/v1/provision
PUPPET_FORGE_TOKEN: ${{ secrets.PUPPET_FORGE_TOKEN || secrets.PUPPET_FORGE_TOKEN_PUBLIC }}
BUNDLE_RUBYGEMS___PUPPETCORE__PUPPET__COM: "forge-key:${{ secrets.PUPPET_FORGE_TOKEN || secrets.PUPPET_FORGE_TOKEN_PUBLIC }}"

jobs:
Spec:
Expand Down Expand Up @@ -46,21 +48,22 @@ jobs:
- name: Setup Acceptance Test Matrix
id: get-matrix
run: |
bundle exec matrix_from_metadata_v2
bundle exec matrix_from_metadata_v3 --nightly

Acceptance:
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
name: "${{ matrix.platforms.label }}, ${{ matrix.collection.collection || matrix.collection }}"
needs:
- setup_matrix
if: ${{ needs.setup_matrix.outputs.matrix != '{}' }}


runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{fromJson(needs.setup_matrix.outputs.matrix)}}

env:
PUPPET_GEM_VERSION: '~> 7.24'
PUPPET_GEM_VERSION: '~> 8.9'
FACTER_GEM_VERSION: 'https://github.com/puppetlabs/facter#main'

steps:
Expand Down Expand Up @@ -92,7 +95,12 @@ jobs:

- name: Install agent
run: |
bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
if [[ "${{ matrix.collection.version }}" ]] ; then
export PUPPET_VERSION=${{ matrix.collection.version }}
bundle exec rake 'litmus:install_agent[${{ matrix.collection.collection }}]'
else
bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
fi

- name: Install module
run: |
Expand Down
13 changes: 10 additions & 3 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:

env:
SERVICE_URL: https://facade-maint-config-windows-use-ssh-6f3kfepqcq-ew.a.run.app/v1/provision
PUPPET_FORGE_TOKEN: ${{ secrets.PUPPET_FORGE_TOKEN || secrets.PUPPET_FORGE_TOKEN_PUBLIC }}
BUNDLE_RUBYGEMS___PUPPETCORE__PUPPET__COM: "forge-key:${{ secrets.PUPPET_FORGE_TOKEN || secrets.PUPPET_FORGE_TOKEN_PUBLIC }}"

jobs:
Spec:
Expand Down Expand Up @@ -44,10 +46,10 @@ jobs:
- name: Setup Acceptance Test Matrix
id: get-matrix
run: |
bundle exec matrix_from_metadata_v2
bundle exec matrix_from_metadata_v3 --nightly

Acceptance:
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
name: "${{ matrix.platforms.label }}, ${{ matrix.collection.collection || matrix.collection }}"
needs:
- setup_matrix
if: ${{ needs.setup_matrix.outputs.matrix != '{}' }}
Expand Down Expand Up @@ -90,7 +92,12 @@ jobs:

- name: Install agent
run: |
bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
if [[ "${{ matrix.collection.version }}" ]] ; then
export PUPPET_VERSION=${{ matrix.collection.version }}
bundle exec rake 'litmus:install_agent[${{ matrix.collection.collection }}]'
else
bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
fi

- name: Install module
run: |
Expand Down
9 changes: 9 additions & 0 deletions .puppet-lint.rc
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
--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
--no-anchor_resource-check
--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp
2 changes: 1 addition & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ require:
AllCops:
NewCops: enable
DisplayCopNames: true
TargetRubyVersion: '2.6'
TargetRubyVersion: 3.1
Include:
- "**/*.rb"
Exclude:
Expand Down
39 changes: 24 additions & 15 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,51 +14,60 @@ def location_for(place_or_version, fake_version = nil)
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 "puppet-debugger", '~> 1.6', 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 "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 = {}

gems['puppet'] = location_for(puppet_version)
puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)

# If facter or hiera versions have been specified via the environment
# variables

gems['facter'] = location_for(facter_version) if facter_version
# 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['hiera'] = location_for(hiera_version) if hiera_version

gems.each do |gem_name, gem_params|
Expand Down
8 changes: 8 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,11 @@ 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"]
6 changes: 3 additions & 3 deletions metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"requirements": [
{
"name": "puppet",
"version_requirement": ">=7.0.0 < 9.0.0"
"version_requirement": ">8.0.0 < 9.0.0"
}
],
"tags": [
Expand All @@ -48,7 +48,7 @@
"tsql",
"database"
],
"pdk-version": "3.2.0",
"pdk-version": "3.5.0 (ga43db72)",
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
"template-ref": "tags/3.2.0.4-0-g5d17ec1"
"template-ref": "heads/main-0-g11c0f3d"
}
2 changes: 1 addition & 1 deletion spec/acceptance/sqlserver_config_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def ensure_sqlserver_instance(inst_name, ensure_val = 'present')
hostname = Helper.instance.run_shell('hostname').stdout.upcase.strip
query = "USE #{db_name}; SELECT * from master..sysdatabases WHERE name = '#{db_name}'"

run_sql_query(query: query, server: hostname, instance: inst_name, \
run_sql_query(query:, server: hostname, instance: inst_name, \
sql_admin_user: @admin_user, sql_admin_pass: @admin_pass, expected_row_count: 1)
end

Expand Down
4 changes: 2 additions & 2 deletions spec/acceptance/sqlserver_database_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
# Return options for run_sql_query
def run_sql_query_opts(query, expected_row_count)
{
query: query,
query:,
sql_admin_user: 'sa',
sql_admin_pass: 'Pupp3t1@',
expected_row_count: expected_row_count
expected_row_count:
}
end

Expand Down
10 changes: 5 additions & 5 deletions spec/acceptance/sqlserver_instance_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ def ensure_sqlserver_instance(features, inst_name, ensure_val = 'present', sysad
# Return options for run_sql_query
def run_sql_query_opts(inst_name, query, expected_row_count)
{
query: query,
query:,
instance: inst_name,
server: '.',
sql_admin_user: 'sa',
sql_admin_pass: 'Pupp3t1@',
expected_row_count: expected_row_count
expected_row_count:
}
end

Expand Down Expand Up @@ -90,7 +90,7 @@ def sql_query_is_user_sysadmin(username)
host_computer_name = run_shell('CMD /C ECHO %COMPUTERNAME%').stdout.chomp
ensure_sqlserver_instance(features, inst_name, 'present', ["#{host_computer_name}\\#{@extra_admin_user}"])

validate_sql_install(version: version) do |r|
validate_sql_install(version:) do |r|
expect(r.stdout).to match(%r{#{Regexp.new(inst_name)}})
end
end
Expand All @@ -107,7 +107,7 @@ def sql_query_is_user_sysadmin(username)
ensure_sqlserver_instance(features, inst_name, 'absent')

# Ensure all features for this instance are removed and the defaults are left alone
validate_sql_install(version: version) do |r|
validate_sql_install(version:) do |r|
expect(r.stdout).to match(%r{MSSQLSERVER\s+Database Engine Services})
expect(r.stdout).to match(%r{MSSQLSERVER\s+SQL Server Replication})
expect(r.stdout).to match(%r{MSSQLSERVER\s+Data Quality Services})
Expand All @@ -129,7 +129,7 @@ def sql_query_is_user_sysadmin(username)
it "create #{inst_name} instance with only one RS feature", unless: version.to_i >= 2017 do
ensure_sqlserver_instance(features, inst_name)

validate_sql_install(version: version) do |r|
validate_sql_install(version:) do |r|
expect(r.stdout).to match(%r{#{inst_name}\s+Reporting Services})
end
end
Expand Down
4 changes: 2 additions & 2 deletions spec/acceptance/sqlserver_login_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
# Return options for run_sql_query
def run_sql_query_opts(user, passwd, query, expected_row_count)
{
query: query,
query:,
sql_admin_user: user,
sql_admin_pass: passwd,
expected_row_count: expected_row_count
expected_row_count:
}
end

Expand Down
22 changes: 11 additions & 11 deletions spec/acceptance/sqlserver_role_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@

# database name
db_name = "DB#{SecureRandom.hex(4)}".upcase
LOGIN1 = "Login1_#{SecureRandom.hex(2)}"
LOGIN2 = "Login2_#{SecureRandom.hex(2)}"
LOGIN3 = "Login3_#{SecureRandom.hex(2)}"
USER1 = "User1_#{SecureRandom.hex(2)}"
LOGIN1 = "Login1_#{SecureRandom.hex(2)}".freeze
LOGIN2 = "Login2_#{SecureRandom.hex(2)}".freeze
LOGIN3 = "Login3_#{SecureRandom.hex(2)}".freeze
USER1 = "User1_#{SecureRandom.hex(2)}".freeze

describe 'Test sqlserver::role' do
def ensure_sqlserver_logins_users(db_name)
Expand Down Expand Up @@ -108,7 +108,7 @@ def ensure_sqlserver_logins_users(db_name)
ON spe.grantee_principal_id = spr.principal_id
WHERE spr.name = '#{@role}';"

run_sql_query(query: query, server: hostname, expected_row_count: 2)
run_sql_query(query:, server: hostname, expected_row_count: 2)

# validate that the database-specific role '#{@role}' has correct authorization #{LOGIN1}
query = "USE #{db_name};
Expand All @@ -118,7 +118,7 @@ def ensure_sqlserver_logins_users(db_name)
ON spr.owning_principal_id = sl.principal_id
WHERE sl.name = '#{LOGIN1}';"

run_sql_query(query: query, server: hostname, expected_row_count: 1)
run_sql_query(query:, server: hostname, expected_row_count: 1)
end

it "Create database-specific role #{@role}" do
Expand Down Expand Up @@ -146,7 +146,7 @@ def ensure_sqlserver_logins_users(db_name)
ON pe.grantee_principal_id = pr.principal_id
WHERE pr.name = '#{@role}';"

run_sql_query(query: query, server: hostname, expected_row_count: 6)
run_sql_query(query:, server: hostname, expected_row_count: 6)
end

it 'Create a database-specific role with the same name on two databases' do
Expand Down Expand Up @@ -184,7 +184,7 @@ def ensure_sqlserver_logins_users(db_name)
on pr.name = dbpr.name
WHERE pr.name = '#{@role}';"

run_sql_query(query: query, server: hostname, expected_row_count: 6)
run_sql_query(query:, server: hostname, expected_row_count: 6)
end

it "Create server role #{@role} with optional members and optional members-purge" do
Expand Down Expand Up @@ -213,7 +213,7 @@ def ensure_sqlserver_logins_users(db_name)
ON spe.grantee_principal_id = spr.principal_id
WHERE spr.name = '#{@role}';"

run_sql_query(query: query, server: hostname, expected_row_count: 2)
run_sql_query(query:, server: hostname, expected_row_count: 2)

# validate that the t server role '#{@role}' has correct members (Login1, 2, 3)
query = "USE #{db_name};
Expand All @@ -226,7 +226,7 @@ def ensure_sqlserver_logins_users(db_name)
OR spr.name = '#{LOGIN3}'
OR spr.name = 'LOGIN4';"

run_sql_query(query: query, server: hostname, expected_row_count: 3)
run_sql_query(query:, server: hostname, expected_row_count: 3)

puts "Create server role #{@role} with optional members_purge:"
pp = <<-MANIFEST
Expand Down Expand Up @@ -256,7 +256,7 @@ def ensure_sqlserver_logins_users(db_name)
OR spr.name = '#{LOGIN2}'
OR spr.name = '#{LOGIN3}';"

run_sql_query(query: query, server: hostname, expected_row_count: 1)
run_sql_query(query:, server: hostname, expected_row_count: 1)
end
end
end
2 changes: 1 addition & 1 deletion spec/acceptance/sqlserver_tsql_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
db_name = "DB#{SecureRandom.hex(4)}".upcase

# database user:
DB_LOGIN_USER = "loginuser#{SecureRandom.hex(2)}"
DB_LOGIN_USER = "loginuser#{SecureRandom.hex(2)}".freeze

describe 'sqlserver_tsql test' do
def ensure_sqlserver_database(db_name, _ensure_val = 'present')
Expand Down
Loading
Loading