From 79257d555a867fa23e4ceda93d008bf07869b3e7 Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Tue, 23 Mar 2021 21:31:39 +0000 Subject: [PATCH] test: standardise use of `share` suite & `_mapdata` state [skip ci] * Automated using https://github.com/myii/ssf-formula/pull/302 --- .rubocop.yml | 2 +- Gemfile | 2 +- kitchen.yml | 9 +++++++++ packages/_mapdata/_mapdata.jinja | 13 +++++++++++++ packages/_mapdata/init.sls | 22 ++++++++++++++++++++++ test/integration/default/inspec.yml | 1 + test/integration/share/inspec.yml | 1 + test/integration/share/libraries/system.rb | 6 ++++-- 8 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 packages/_mapdata/_mapdata.jinja create mode 100644 packages/_mapdata/init.sls diff --git a/.rubocop.yml b/.rubocop.yml index 9367e99..2cceb73 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,7 +7,7 @@ Layout/LineLength: # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) Max: 88 Metrics/BlockLength: - ExcludedMethods: + IgnoredMethods: - control - describe # Increase from default of `25` diff --git a/Gemfile b/Gemfile index 15a77c3..c08ad6c 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' # Use the latest version of `inspec` prior to `4.23.4`, which introduces a # regression where the diff isn't displayed when comparing using `eq`. gem 'inspec', '~> 4.22.22' -# Install the `kitchen-docker` gem from GitHub because the latest version +# Install the `kitchen-docker` gem using `git` because the latest version # currently available (`2.10.0`) doesn't include a recent fix for Gentoo. # rubocop:disable Layout/LineLength gem 'kitchen-docker', git: 'https://gitlab.com/saltstack-formulas/infrastructure/kitchen-docker', branch: 'ssf' diff --git a/kitchen.yml b/kitchen.yml index a481286..b4bfae6 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -367,6 +367,7 @@ suites: state_top: base: '*': + - packages._mapdata - node - packages pillars: @@ -405,6 +406,7 @@ suites: state_top: base: '*': + - packages._mapdata - golang.package - packages pillars: @@ -429,6 +431,7 @@ suites: state_top: base: '*': + - packages._mapdata - packages pillars: top.sls: @@ -460,6 +463,7 @@ suites: state_top: base: '*': + - packages._mapdata - epel - packages pillars: @@ -492,6 +496,7 @@ suites: state_top: base: '*': + - packages._mapdata - epel - packages pillars: @@ -519,6 +524,7 @@ suites: state_top: base: '*': + - packages._mapdata - epel - packages pillars: @@ -544,6 +550,7 @@ suites: state_top: base: '*': + - packages._mapdata - packages pillars: top.sls: @@ -564,6 +571,7 @@ suites: state_top: base: '*': + - packages._mapdata - packages pillars: top.sls: @@ -589,6 +597,7 @@ suites: state_top: base: '*': + - packages._mapdata - packages pillars: top.sls: diff --git a/packages/_mapdata/_mapdata.jinja b/packages/_mapdata/_mapdata.jinja new file mode 100644 index 0000000..aa9649c --- /dev/null +++ b/packages/_mapdata/_mapdata.jinja @@ -0,0 +1,13 @@ +# yamllint disable rule:indentation rule:line-length +# {{ grains.get("osfinger", grains.os) }} +--- +{#- use salt.slsutil.serialize to avoid encoding errors on some platforms #} +{{ salt["slsutil.serialize"]( + "yaml", + map, + default_flow_style=False, + allow_unicode=True, + ) + | regex_replace("^\s+'$", "'", multiline=True) + | trim +}} diff --git a/packages/_mapdata/init.sls b/packages/_mapdata/init.sls new file mode 100644 index 0000000..13bb7dc --- /dev/null +++ b/packages/_mapdata/init.sls @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# vim: ft=sls +--- +{#- Get the `tplroot` from `tpldir` #} +{%- set tplroot = tpldir.split("/")[0] %} +{%- from tplroot ~ "/map.jinja" import packages with context %} + +{%- set _mapdata = { + "values": packages, + } %} +{%- do salt["log.debug"]("### MAP.JINJA DUMP ###\n" ~ _mapdata | yaml(False)) %} + +{%- set output_dir = "/temp" if grains.os_family == "Windows" else "/tmp" %} +{%- set output_file = output_dir ~ "/salt_mapdata_dump.yaml" %} + +{{ tplroot }}-mapdata-dump: + file.managed: + - name: {{ output_file }} + - source: salt://{{ tplroot }}/_mapdata/_mapdata.jinja + - template: jinja + - context: + map: {{ _mapdata | yaml }} diff --git a/test/integration/default/inspec.yml b/test/integration/default/inspec.yml index 311c17b..04a4d00 100644 --- a/test/integration/default/inspec.yml +++ b/test/integration/default/inspec.yml @@ -17,6 +17,7 @@ supports: - platform-name: opensuse - platform-name: suse - platform-name: freebsd + - platform-name: openbsd - platform-name: amazon - platform-name: oracle - platform-name: arch diff --git a/test/integration/share/inspec.yml b/test/integration/share/inspec.yml index 697417a..cf623a1 100644 --- a/test/integration/share/inspec.yml +++ b/test/integration/share/inspec.yml @@ -14,6 +14,7 @@ supports: - platform-name: opensuse - platform-name: suse - platform-name: freebsd + - platform-name: openbsd - platform-name: amazon - platform-name: oracle - platform-name: arch diff --git a/test/integration/share/libraries/system.rb b/test/integration/share/libraries/system.rb index ba08443..461dea4 100644 --- a/test/integration/share/libraries/system.rb +++ b/test/integration/share/libraries/system.rb @@ -38,8 +38,8 @@ class SystemResource < Inspec.resource(1) case inspec.platform[:name] when 'amazon', 'oracle' "#{inspec.platform[:name]}linux" - when 'windows_8.1_pro', 'windows_server_2019_datacenter' - 'windows' + when /^windows_/ + inspec.platform[:family] else inspec.platform[:name] end @@ -63,6 +63,8 @@ class SystemResource < Inspec.resource(1) '8.1' when 'windows_server_2019_datacenter' '2019-server' + when 'windows_server_2016_datacenter' + '2016-server' else inspec.platform[:release] end