Merge pull request #80 from myii/test/manage-map.jinja-verification

test(map): verify `map.jinja` dump using `_mapdata` state
This commit is contained in:
Imran Iqbal 2021-10-02 11:09:49 +01:00 committed by GitHub
commit aa0f1e0099
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 2445 additions and 0 deletions

View file

@ -528,6 +528,7 @@ suites:
provisioner:
dependencies:
- name: node
branch: test-kitchen
repo: git
source: https://github.com/saltstack-formulas/node-formula.git
state_top:
@ -807,6 +808,7 @@ suites:
state_top:
base:
'*':
- packages._mapdata
- packages.chocolatey
pillars:
top.sls:

View file

@ -0,0 +1,47 @@
# frozen_string_literal: true
require 'yaml'
control 'packages._mapdata' do
title '`map.jinja` should match the reference file'
### Method
# The steps below for each file appear convoluted but they are both required
# and similar in nature:
# 1. The earliest method was to simply compare the files textually but this often
# led to false positives due to inconsistencies (e.g. spacing, ordering)
# 2. The next method was to load the files back into YAML structures and then
# compare but InSpec provided block diffs this way, unusable by end users
# 3. The final step was to dump the YAML structures back into a string to use
# for the comparison; this both worked and provided human-friendly diffs
### Comparison file for the specific platform
### Static, adjusted as part of code contributions, as map data is changed
# Strip the `platform[:finger]` version number down to the "OS major release"
platform_finger = system.platform[:finger].split('.').first.to_s
# Use that to set the path to the file (relative to the InSpec suite directory)
mapdata_file_path = "_mapdata/#{platform_finger}.yaml"
# Load the mapdata from profile, into a YAML structure
# https://docs.chef.io/inspec/profiles/#profile-files
mapdata_file_yaml = YAML.load(inspec.profile.file(mapdata_file_path))
# Dump the YAML back into a string for comparison
mapdata_file_dump = YAML.dump(mapdata_file_yaml)
### Output file produced by running the `_mapdata` state
### Dynamic, generated during Kitchen's `converge` phase
# Derive the location of the dumped mapdata (differs for Windows)
output_dir = platform[:family] == 'windows' ? '/temp' : '/tmp'
# Use that to set the path to the file (absolute path, i.e. within the container)
output_file_path = "#{output_dir}/salt_mapdata_dump.yaml"
# Load the output into a YAML structure using InSpec's `yaml` resource
# https://github.com/inspec/inspec/blob/49b7d10/lib/inspec/resources/yaml.rb#L29
output_file_yaml = yaml(output_file_path).params
# Dump the YAML back into a string for comparison
output_file_dump = YAML.dump(output_file_yaml)
describe 'File content' do
it 'should match profile map data exactly' do
expect(output_file_dump).to eq(mapdata_file_dump)
end
end
end

View file

@ -0,0 +1,95 @@
# yamllint disable rule:indentation rule:line-length
# AlmaLinux-8
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages: []
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,96 @@
# yamllint disable rule:indentation rule:line-length
# Amazon Linux-2
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held: {}
required:
pkgs:
- git
- yum-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,94 @@
# yamllint disable rule:indentation rule:line-length
# Arch
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs: []
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
states: []
unwanted:
- avahi-daemon
wanted:
- ruby
- git
- less
- bc
- curl
- fail2ban
remote_pkgs: {}
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,95 @@
# yamllint disable rule:indentation rule:line-length
# CentOS Linux-7
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- yum-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages: []
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,96 @@
# yamllint disable rule:indentation rule:line-length
# CentOS Linux-8
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides:
- snap
packages: []
required:
pkgs: []
states: []
service:
- snapd
symlink: true
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,141 @@
# yamllint disable rule:indentation rule:line-length
# Debian-10
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted:
- /usr/local/boring_archive_software
wanted:
blockbox:
dest: /usr/local/src/
dl:
format: raw
hashsum: 1751f8e4f6b4cddd8c4843a0f4473274
source: https://raw.githubusercontent.com/openstack/cinder/master/contrib/block-box/docker-compose.yml
kubectl:
dest: /usr/local/bin
dl:
format: bin
source: https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/darwin/amd64/kubectl
phantomjs:
dest: /usr/local/src/
dl:
format: tar
hashsum: md5=1c947d57fce2f21ce0b43fe2ed7cd361
source: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
mode: '0700'
user: root
terminator:
dest: /usr/local/terminator/
dl:
format: tar
hashsum: md5=2eed999d7a41f2e18eaa511bbbf80f58
source: https://launchpad.net/terminator/gtk3/1.91/+download/terminator-1.91.tar.gz
options: --strip-components=1
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
dir: /home/kitchen/npms
group: kitchen
mode: '0755'
required:
pkgs: []
states:
- node.package.install
unwanted:
- gist
user: kitchen
wanted:
- '@low-systems/example@1.1.58'
- hello-world-npm
- sax
- coffee-script@1.0.1
pips:
config:
global:
default-timeout: 120
timeout: 120
required:
pkgs:
- libpython2.7-dev
- python-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- dxpy
- attrs
pkgs:
held:
- alien
- iotop
required:
pkgs:
- wget
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_amd64.deb
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted:
- bare
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,141 @@
# yamllint disable rule:indentation rule:line-length
# Debian-11
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted:
- /usr/local/boring_archive_software
wanted:
blockbox:
dest: /usr/local/src/
dl:
format: raw
hashsum: 1751f8e4f6b4cddd8c4843a0f4473274
source: https://raw.githubusercontent.com/openstack/cinder/master/contrib/block-box/docker-compose.yml
kubectl:
dest: /usr/local/bin
dl:
format: bin
source: https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/darwin/amd64/kubectl
phantomjs:
dest: /usr/local/src/
dl:
format: tar
hashsum: md5=1c947d57fce2f21ce0b43fe2ed7cd361
source: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
mode: '0700'
user: root
terminator:
dest: /usr/local/terminator/
dl:
format: tar
hashsum: md5=2eed999d7a41f2e18eaa511bbbf80f58
source: https://launchpad.net/terminator/gtk3/1.91/+download/terminator-1.91.tar.gz
options: --strip-components=1
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
dir: /home/kitchen/npms
group: kitchen
mode: '0755'
required:
pkgs: []
states:
- node.package.install
unwanted:
- gist
user: kitchen
wanted:
- '@low-systems/example@1.1.58'
- hello-world-npm
- sax
- coffee-script@1.0.1
pips:
config:
global:
default-timeout: 120
timeout: 120
required:
pkgs:
- libpython2.7-dev
- python-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- dxpy
- attrs
pkgs:
held:
- alien
- iotop
required:
pkgs:
- wget
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_amd64.deb
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted:
- bare
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,141 @@
# yamllint disable rule:indentation rule:line-length
# Debian-9
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted:
- /usr/local/boring_archive_software
wanted:
blockbox:
dest: /usr/local/src/
dl:
format: raw
hashsum: 1751f8e4f6b4cddd8c4843a0f4473274
source: https://raw.githubusercontent.com/openstack/cinder/master/contrib/block-box/docker-compose.yml
kubectl:
dest: /usr/local/bin
dl:
format: bin
source: https://storage.googleapis.com/kubernetes-release/release/v1.12.0/bin/darwin/amd64/kubectl
phantomjs:
dest: /usr/local/src/
dl:
format: tar
hashsum: md5=1c947d57fce2f21ce0b43fe2ed7cd361
source: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
mode: '0700'
user: root
terminator:
dest: /usr/local/terminator/
dl:
format: tar
hashsum: md5=2eed999d7a41f2e18eaa511bbbf80f58
source: https://launchpad.net/terminator/gtk3/1.91/+download/terminator-1.91.tar.gz
options: --strip-components=1
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
dir: /home/kitchen/npms
group: kitchen
mode: '0755'
required:
pkgs: []
states:
- node.package.install
unwanted:
- gist
user: kitchen
wanted:
- '@low-systems/example@1.1.58'
- hello-world-npm
- sax
- coffee-script@1.0.1
pips:
config:
global:
default-timeout: 120
timeout: 120
required:
pkgs:
- libpython2.7-dev
- python-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- dxpy
- attrs
pkgs:
held:
- alien
- iotop
required:
pkgs:
- wget
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_amd64.deb
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted:
- bare
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,98 @@
# yamllint disable rule:indentation rule:line-length
# Fedora-33
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held: {}
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides:
- snap
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: true
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,98 @@
# yamllint disable rule:indentation rule:line-length
# Fedora-34
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held: {}
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides:
- snap
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: true
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,94 @@
# yamllint disable rule:indentation rule:line-length
# Gentoo-2
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs: []
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted: []
pkgs:
held:
- app-arch/alien
- sys-process/iotop
required:
pkgs:
- dev-vcs/git
states: []
unwanted:
- net-dns/avahi
wanted:
- net-analyzer/netcat
- dev-lang/ruby
- dev-vcs/git
- sys-apps/less
- sys-devel/bc
- net-misc/curl
remote_pkgs: {}
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,94 @@
# yamllint disable rule:indentation rule:line-length
# Gentoo-2
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs: []
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted: []
pkgs:
held:
- app-arch/alien
- sys-process/iotop
required:
pkgs:
- dev-vcs/git
states: []
unwanted:
- net-dns/avahi
wanted:
- net-analyzer/netcat
- dev-lang/ruby
- dev-vcs/git
- sys-apps/less
- sys-devel/bc
- net-misc/curl
remote_pkgs: {}
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,90 @@
# yamllint disable rule:indentation rule:line-length
# Leap-15
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby-common
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- python3-pip
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs:
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs: {}
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,90 @@
# yamllint disable rule:indentation rule:line-length
# openSUSE Tumbleweed-20210620
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby-common
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- python3-pip
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs:
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs: {}
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,97 @@
# yamllint disable rule:indentation rule:line-length
# Oracle Linux Server-7
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- yum-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,98 @@
# yamllint disable rule:indentation rule:line-length
# Oracle Linux Server-8
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides:
- snap
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: true
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,95 @@
# yamllint disable rule:indentation rule:line-length
# Rocky Linux-8
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- rubygems
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
golang:
clean: []
goget: []
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs:
- gcc
- python3-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
- iotop
required:
pkgs:
- git
- python3-dnf-plugin-versionlock
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_x86_64.rpm
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages: []
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,128 @@
# yamllint disable rule:indentation rule:line-length
# Ubuntu-18.04
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted:
- /usr/local/boring_archive_software
wanted:
blockbox:
dest: /usr/local/src/
dl:
format: raw
hashsum: 1751f8e4f6b4cddd8c4843a0f4473274
source: https://raw.githubusercontent.com/openstack/cinder/master/contrib/block-box/docker-compose.yml
phantomjs:
dest: /usr/local/src/
dl:
format: tar
hashsum: md5=1c947d57fce2f21ce0b43fe2ed7cd361
source: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
mode: '0700'
user: root
terminator:
dest: /usr/local/terminator/
dl:
format: tar
hashsum: md5=2eed999d7a41f2e18eaa511bbbf80f58
source: https://launchpad.net/terminator/gtk3/1.91/+download/terminator-1.91.tar.gz
options: --strip-components=1
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean:
- github.com/golang/example/hello
- github.com/golang/example/outyet
goget:
- github.com/golang/example/hello
- github.com/golang/example/outyet
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config:
global:
default-timeout: 120
timeout: 120
required:
pkgs:
- libpython2.7-dev
- python-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
alien: 8.95
iotop: 0.6-2
required:
pkgs:
- wget
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_amd64.deb
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,128 @@
# yamllint disable rule:indentation rule:line-length
# Ubuntu-20.04
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted:
- /usr/local/boring_archive_software
wanted:
blockbox:
dest: /usr/local/src/
dl:
format: raw
hashsum: 1751f8e4f6b4cddd8c4843a0f4473274
source: https://raw.githubusercontent.com/openstack/cinder/master/contrib/block-box/docker-compose.yml
phantomjs:
dest: /usr/local/src/
dl:
format: tar
hashsum: md5=1c947d57fce2f21ce0b43fe2ed7cd361
source: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
mode: '0700'
user: root
terminator:
dest: /usr/local/terminator/
dl:
format: tar
hashsum: md5=2eed999d7a41f2e18eaa511bbbf80f58
source: https://launchpad.net/terminator/gtk3/1.91/+download/terminator-1.91.tar.gz
options: --strip-components=1
chocolatey:
required:
pkgs: []
states: []
unwanted: []
wanted: []
gems:
required:
pkgs:
- ruby
states: []
unwanted:
- diff-lcs
- kitchen-vagrant
- kwalify
wanted:
- progressbar
- minitest
golang:
clean:
- github.com/golang/example/hello
- github.com/golang/example/outyet
goget:
- github.com/golang/example/hello
- github.com/golang/example/outyet
kernel: linux
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config:
global:
default-timeout: 120
timeout: 120
required:
pkgs:
- libpython2.7-dev
- python-pip
states: []
unwanted:
- campbel
- reverse_geocode
- indy-crypto
wanted:
- attrs
pkgs:
held:
alien: 8.95
iotop: 0.6-2
required:
pkgs:
- wget
- git
states: []
unwanted:
- avahi-daemon
wanted:
- git
- less
- bc
- curl
- fail2ban
remote_pkgs:
zoom: https://zoom.us/client/latest/zoom_amd64.deb
retry_options:
attempts: 1
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: /tmp/saltstack-packages-formula-archives

View file

@ -0,0 +1,47 @@
# frozen_string_literal: true
require 'yaml'
control 'packages._mapdata' do
title '`map.jinja` should match the reference file'
### Method
# The steps below for each file appear convoluted but they are both required
# and similar in nature:
# 1. The earliest method was to simply compare the files textually but this often
# led to false positives due to inconsistencies (e.g. spacing, ordering)
# 2. The next method was to load the files back into YAML structures and then
# compare but InSpec provided block diffs this way, unusable by end users
# 3. The final step was to dump the YAML structures back into a string to use
# for the comparison; this both worked and provided human-friendly diffs
### Comparison file for the specific platform
### Static, adjusted as part of code contributions, as map data is changed
# Strip the `platform[:finger]` version number down to the "OS major release"
platform_finger = system.platform[:finger].split('.').first.to_s
# Use that to set the path to the file (relative to the InSpec suite directory)
mapdata_file_path = "_mapdata/#{platform_finger}.yaml"
# Load the mapdata from profile, into a YAML structure
# https://docs.chef.io/inspec/profiles/#profile-files
mapdata_file_yaml = YAML.load(inspec.profile.file(mapdata_file_path))
# Dump the YAML back into a string for comparison
mapdata_file_dump = YAML.dump(mapdata_file_yaml)
### Output file produced by running the `_mapdata` state
### Dynamic, generated during Kitchen's `converge` phase
# Derive the location of the dumped mapdata (differs for Windows)
output_dir = platform[:family] == 'windows' ? '/temp' : '/tmp'
# Use that to set the path to the file (absolute path, i.e. within the container)
output_file_path = "#{output_dir}/salt_mapdata_dump.yaml"
# Load the output into a YAML structure using InSpec's `yaml` resource
# https://github.com/inspec/inspec/blob/49b7d10/lib/inspec/resources/yaml.rb#L29
output_file_yaml = yaml(output_file_path).params
# Dump the YAML back into a string for comparison
output_file_dump = YAML.dump(output_file_yaml)
describe 'File content' do
it 'should match profile map data exactly' do
expect(output_file_dump).to eq(mapdata_file_dump)
end
end
end

View file

@ -0,0 +1,85 @@
# yamllint disable rule:indentation rule:line-length
# Windows-10
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted:
- GoogleChrome
- hg
wanted:
Firefox:
package_args: "/l:en-GB"
jq:
force: true
version: '1.5'
notepadplusplus:
version: 7.8.8
gems:
required:
pkgs: []
states: []
unwanted: []
wanted: []
golang:
clean: []
goget: []
kernel: windows
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs: []
states: []
unwanted: []
wanted: []
remote_pkgs: {}
retry_options:
attempts: 3
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: "/tmp/saltstack-packages-formula-archives"

View file

@ -0,0 +1,85 @@
# yamllint disable rule:indentation rule:line-length
# Windows-2016Server
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted:
- GoogleChrome
- hg
wanted:
Firefox:
package_args: "/l:en-GB"
jq:
force: true
version: '1.5'
notepadplusplus:
version: 7.8.8
gems:
required:
pkgs: []
states: []
unwanted: []
wanted: []
golang:
clean: []
goget: []
kernel: windows
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs: []
states: []
unwanted: []
wanted: []
remote_pkgs: {}
retry_options:
attempts: 3
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: "/tmp/saltstack-packages-formula-archives"

View file

@ -0,0 +1,85 @@
# yamllint disable rule:indentation rule:line-length
# Windows-2019Server
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted:
- GoogleChrome
- hg
wanted:
Firefox:
package_args: "/l:en-GB"
jq:
force: true
version: '1.5'
notepadplusplus:
version: 7.8.8
gems:
required:
pkgs: []
states: []
unwanted: []
wanted: []
golang:
clean: []
goget: []
kernel: windows
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs: []
states: []
unwanted: []
wanted: []
remote_pkgs: {}
retry_options:
attempts: 3
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: "/tmp/saltstack-packages-formula-archives"

View file

@ -0,0 +1,85 @@
# yamllint disable rule:indentation rule:line-length
# Windows-8.1
---
values:
archives:
pkgs:
required:
- curl
- bzip2
- gzip
required:
archives: {}
types:
- tar
- zip
- rar
unwanted: []
wanted: {}
chocolatey:
required:
pkgs: []
states: []
unwanted:
- GoogleChrome
- hg
wanted:
Firefox:
package_args: "/l:en-GB"
jq:
force: true
version: '1.5'
notepadplusplus:
version: 7.8.8
gems:
required:
pkgs: []
states: []
unwanted: []
wanted: []
golang:
clean: []
goget: []
kernel: windows
npms:
required:
pkgs: []
states: []
unwanted: []
wanted: []
pips:
config: []
required:
pkgs: []
states: []
unwanted: []
wanted: []
pkgs:
held: {}
required:
pkgs: []
states: []
unwanted: []
wanted: []
remote_pkgs: {}
retry_options:
attempts: 3
interval: 60
splay: 10
until: true
rootuser: root
snaps:
classic: []
collides: []
packages:
- snapd
- fuse
required:
pkgs: []
states: []
service:
- snapd
symlink: false
unwanted: []
wanted: []
tmpdir: "/tmp/saltstack-packages-formula-archives"