Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
salt-formulas
mirror
Salt Formula
Commits
d00b04a5
Unverified
Commit
d00b04a5
authored
Oct 05, 2021
by
Imran Iqbal
Browse files
test(neon): remove pillar and tests for `v3000`
parent
72f7f48d
Changes
25
Hide whitespace changes
Inline
Side-by-side
test/integration/v3000-py2/README.md
deleted
100644 → 0
View file @
72f7f48d
# InSpec Profile: `v3000-py2`
This shows the implementation of the
`v3000-py2`
InSpec
[
profile
](
https://github.com/inspec/inspec/blob/master/docs/profiles.md
)
.
## Verify a profile
InSpec ships with built-in features to verify a profile structure.
```
bash
$
inspec check v3000-py2
Summary
-------
Location: v3000-py2
Profile: profile
Controls: 4
Timestamp: 2019-06-24T23:09:01+00:00
Valid:
true
Errors
------
Warnings
--------
```
## Execute a profile
To run all
**supported**
controls on a local machine use
`inspec exec /path/to/profile`
.
```
bash
$
inspec
exec
v3000-py2
..
Finished
in
0.0025 seconds
(
files took 0.12449 seconds to load
)
8 examples, 0 failures
```
## Execute a specific control from a profile
To run one control from the profile use
`inspec exec /path/to/profile --controls name`
.
```
bash
$
inspec
exec
v3000-py2
--controls
package
.
Finished
in
0.0025 seconds
(
files took 0.12449 seconds to load
)
1 examples, 0 failures
```
See an
[
example control here
](
https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb
)
.
test/integration/v3000-py2/controls/_mapdata.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
require
'yaml'
control
'salt._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
test/integration/v3000-py2/controls/pkgs_spec.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
pkgs
=
case
system
.
platform
[
:name
]
when
'arch'
%w[salt]
when
/bsd$/
%w[py38-salt-3002.6]
when
'windows'
[
'Salt Minion'
]
else
%w[salt-master salt-minion]
end
control
'salt packages'
do
title
'should be installed'
version
=
'3000'
pkgs
.
each
do
|
p
|
describe
package
(
p
)
do
it
{
should
be_installed
}
its
(
'version'
)
{
should
match
(
/^
#{
version
}
/
)
}
end
end
end
test/integration/v3000-py2/controls/service_spec.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
services
=
case
system
.
platform
[
:family
]
when
'bsd'
%w[salt_master salt_minion]
when
'windows'
%w[salt-minion]
else
%w[salt-master salt-minion]
end
control
'salt services'
do
title
'should be running'
services
.
each
do
|
p
|
describe
service
(
p
)
do
it
{
should
be_installed
}
it
{
should
be_enabled
}
it
{
should
be_running
}
end
end
end
test/integration/v3000-py2/files/_mapdata/ubuntu-18.yaml
deleted
100644 → 0
View file @
72f7f48d
# yamllint disable rule:indentation rule:line-length
# Ubuntu-18.04
---
values
:
formulas_settings
:
checkout_orig_branch
:
false
git_opts
:
default
:
basedir
:
/srv/formulas
baseurl
:
https://github.com/saltstack-formulas
options
:
output_loglevel
:
quiet
rev
:
master
update
:
false
list
:
{}
salt_settings
:
api_service
:
salt-api
api_service_details
:
enabled
:
true
state
:
running
clean_config_d_dir
:
true
cloud
:
template_sources
:
maps
:
salt://salt/files/cloud.maps.d
profiles
:
salt://salt/files/cloud.profiles.d
providers
:
salt://salt/files/cloud.providers.d
config_path
:
/etc/salt
gitfs
:
dulwich
:
install_from_source
:
true
gitpython
:
install_from_source
:
false
pygit2
:
git
:
install_from_package
:
null
require_state
:
false
install_from_source
:
false
libgit2
:
build_parent_dir
:
/usr/src/
download_hash
:
683d1164e361e2a0a8d52652840e2340
install_from_source
:
false
version
:
0.23.0
version
:
0.22.1
install_packages
:
true
key_url
:
https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000/SALTSTACK-GPG-KEY.pub
libgit2
:
libgit2-22
master
:
ext_pillar
:
-
cmd_yaml
:
cat /etc/salt/yaml
-
stack
:
-
/path/to/stack1.cfg
-
/path/to/stack2.cfg
-
reclass
:
inventory_base_uri
:
/etc/reclass
file_roots
:
base
:
-
/srv/salt
fileserver_backend
:
-
rootfs
gitfs_provider
:
gitpython
pillar_roots
:
base
:
-
/srv/pillar
master_config_use_TOFS
:
false
master_remove_config
:
false
master_service
:
salt-master
master_service_details
:
enabled
:
true
state
:
running
minion
:
file_roots
:
base
:
-
/srv/salt
fileserver_backend
:
-
rootfs
master
:
localhost
master_type
:
str
pillar_roots
:
base
:
-
/srv/pillar
minion_config_use_TOFS
:
false
minion_remove_config
:
false
minion_service
:
salt-minion
minion_service_details
:
enabled
:
true
state
:
running
parallel
:
true
pin_version
:
false
pkgrepo
:
deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64]
https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000 bionic main
pkgrepo_keyring
:
https://repo.saltproject.io/apt/ubuntu/18.04/amd64/3000/salt-archive-keyring.gpg
pkgrepo_keyring_hash
:
sha256=ea38e0cdbd8dc53e1af154a8d711a2a321a69f81188062dc5cde9d54df2b8c47
py_ver
:
'
'
pygit2
:
python-pygit2
pyinotify
:
python-pyinotify
python_dulwich
:
python-dulwich
python_git
:
python-git
release
:
'
3000'
restart_via_at
:
false
retry_options
:
attempts
:
2
interval
:
10
splay
:
10
until
:
true
rootgroup
:
root
rootuser
:
root
salt_api
:
salt-api
salt_cloud
:
salt-cloud
salt_master
:
salt-master
salt_master_macos_plist_hash
:
'
'
salt_minion
:
salt-minion
salt_minion_macos_plist_hash
:
'
'
salt_ssh
:
salt-ssh
salt_syndic
:
salt-syndic
ssh_roster
:
{}
syndic_service
:
salt-syndic
use_pip
:
false
version
:
'
'
test/integration/v3000-py2/inspec.yml
deleted
100644 → 0
View file @
72f7f48d
# -*- coding: utf-8 -*-
# vim: ft=yaml
---
name
:
v3000-py2
title
:
salt formula
maintainer
:
SaltStack Formulas
license
:
Apache-2.0
summary
:
Verify that Salt `v3000-py2` is setup and configured
depends
:
-
name
:
share
path
:
test/integration/share
supports
:
-
platform-name
:
debian
-
platform-name
:
ubuntu
-
platform-name
:
centos
-
platform-name
:
fedora
-
platform-name
:
opensuse
-
platform-name
:
suse
-
platform-name
:
freebsd
-
platform-name
:
openbsd
-
platform-name
:
amazon
-
platform-name
:
oracle
-
platform-name
:
arch
-
platform-name
:
gentoo
-
platform-name
:
almalinux
-
platform-name
:
rocky
-
platform
:
windows
test/integration/v3000-py3/README.md
deleted
100644 → 0
View file @
72f7f48d
# InSpec Profile: `v3000-py3`
This shows the implementation of the
`v3000-py3`
InSpec
[
profile
](
https://github.com/inspec/inspec/blob/master/docs/profiles.md
)
.
## Verify a profile
InSpec ships with built-in features to verify a profile structure.
```
bash
$
inspec check v3000-py3
Summary
-------
Location: v3000-py3
Profile: profile
Controls: 4
Timestamp: 2019-06-24T23:09:01+00:00
Valid:
true
Errors
------
Warnings
--------
```
## Execute a profile
To run all
**supported**
controls on a local machine use
`inspec exec /path/to/profile`
.
```
bash
$
inspec
exec
v3000-py3
..
Finished
in
0.0025 seconds
(
files took 0.12449 seconds to load
)
8 examples, 0 failures
```
## Execute a specific control from a profile
To run one control from the profile use
`inspec exec /path/to/profile --controls name`
.
```
bash
$
inspec
exec
v3000-py3
--controls
package
.
Finished
in
0.0025 seconds
(
files took 0.12449 seconds to load
)
1 examples, 0 failures
```
See an
[
example control here
](
https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb
)
.
test/integration/v3000-py3/controls/_mapdata.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
require
'yaml'
control
'salt._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
test/integration/v3000-py3/controls/pkgs_spec.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
pkgs
=
case
system
.
platform
[
:name
]
when
'arch'
%w[salt]
when
/bsd$/
%w[py38-salt-3002.6]
when
'windows'
[
'Salt Minion'
]
else
%w[salt-master salt-minion]
end
control
'salt packages'
do
title
'should be installed'
version
=
'3000'
pkgs
.
each
do
|
p
|
describe
package
(
p
)
do
it
{
should
be_installed
}
its
(
'version'
)
{
should
match
(
/^
#{
version
}
/
)
}
end
end
end
test/integration/v3000-py3/controls/service_spec.rb
deleted
100644 → 0
View file @
72f7f48d
# frozen_string_literal: true
services
=
case
system
.
platform
[
:family
]
when
'bsd'
%w[salt_master salt_minion]
when
'windows'
%w[salt-minion]
else
%w[salt-master salt-minion]
end
control
'salt services'
do
title
'should be running'
services
.
each
do
|
p
|
describe
service
(
p
)
do
it
{
should
be_installed
}
it
{
should
be_enabled
}
it
{
should
be_running
}
end
end
end
test/integration/v3000-py3/files/_mapdata/amazonlinux-2.yaml
deleted
100644 → 0
View file @
72f7f48d
# yamllint disable rule:indentation rule:line-length
# Amazon Linux-2
---
values
:
formulas_settings
:
checkout_orig_branch
:
false
git_opts
:
default
:
basedir
:
/srv/formulas
baseurl
:
https://github.com/saltstack-formulas
options
:
output_loglevel
:
quiet
rev
:
master
update
:
false
list
:
{}
salt_settings
:
api_service
:
salt-api
api_service_details
:
enabled
:
true
state
:
running
clean_config_d_dir
:
true
cloud
:
template_sources
:
maps
:
salt://salt/files/cloud.maps.d
profiles
:
salt://salt/files/cloud.profiles.d
providers
:
salt://salt/files/cloud.providers.d
config_path
:
/etc/salt
gitfs
:
dulwich
:
install_from_source
:
true
gitpython
:
install_from_source
:
false
pygit2
:
git
:
install_from_package
:
git
require_state
:
false
install_from_source
:
false
libgit2
:
build_parent_dir
:
/usr/src/
download_hash
:
683d1164e361e2a0a8d52652840e2340
install_from_source
:
true
version
:
0.23.0
version
:
0.23.0
install_packages
:
true
key_url
:
https://repo.saltproject.io/py3/amazon/2/$basearch/3000/SALTSTACK-GPG-KEY.pub
master
:
ext_pillar
:
-
cmd_yaml
:
cat /etc/salt/yaml
-
stack
:
-
/path/to/stack1.cfg
-
/path/to/stack2.cfg
-
reclass
:
inventory_base_uri
:
/etc/reclass
file_roots
:
base
:
-
/srv/salt
fileserver_backend
:
-
rootfs
gitfs_provider
:
pygit2
pillar_roots
:
base
:
-
/srv/pillar
master_config_use_TOFS
:
false
master_remove_config
:
false
master_service
:
salt-master
master_service_details
:
enabled
:
true
state
:
running
minion
:
file_roots
:
base
:
-
/srv/salt
fileserver_backend
:
-
rootfs
master
:
localhost
master_type
:
str
pillar_roots
:
base
:
-
/srv/pillar
minion_config_use_TOFS
:
false
minion_remove_config
:
false
minion_service
:
salt-minion
minion_service_details
:
enabled
:
true
state
:
running
parallel
:
true
pin_version
:
false
pkgrepo
:
https://repo.saltproject.io/py3/amazon/2/$basearch/3000
pkgrepo_humanname
:
SaltStack repo for Amazon Linux
2
pkgrepo_name
:
saltstack-amzn-repo
py_ver
:
py3
pygit2
:
python-pygit2
python_dulwich
:
python-dulwich
python_git
:
GitPython
release
:
'
3000'
restart_via_at
:
false
retry_options
:
attempts
:
2
interval
:
10
splay
:
10
until
:
true
rootgroup
:
root
rootuser
:
root
salt_api
:
salt-api
salt_cloud
:
salt-cloud
salt_master
:
salt-master
salt_master_macos_plist_hash
:
'
'
salt_minion
:
salt-minion
salt_minion_macos_plist_hash
:
'
'
salt_ssh
:
salt-ssh
salt_syndic
:
salt-syndic
ssh_roster
:
{}
syndic_service
:
salt-syndic
use_pip
:
false
version
:
'
'
test/integration/v3000-py3/files/_mapdata/centos-7.yaml
deleted
100644 → 0
View file @
72f7f48d
# yamllint disable rule:indentation rule:line-length
# CentOS Linux-7
---
values
:
formulas_settings
:
checkout_orig_branch
:
false
git_opts
:
default
:
basedir
:
/srv/formulas
baseurl
:
https://github.com/saltstack-formulas
options
:
output_loglevel
:
quiet
rev
:
master
update
:
false
list
:
{}
salt_settings
:
api_service
:
salt-api
api_service_details
:
enabled
:
true
state
:
running
clean_config_d_dir
:
true
cloud
:
template_sources
:
maps
:
salt://salt/files/cloud.maps.d
profiles
:
salt://salt/files/cloud.profiles.d
providers
:
salt://salt/files/cloud.providers.d
config_path
:
/etc/salt
gitfs
:
dulwich
:
install_from_source
:
true
gitpython
:
install_from_source
:
false
pygit2
:
git
:
install_from_package
:
git