test(map): standardise map.jinja verification

* Automated using https://github.com/myii/ssf-formula/pull/281
This commit is contained in:
Imran Iqbal
2020-12-22 00:43:11 +00:00
parent c2182efdfa
commit ac8921f11a
6 changed files with 52 additions and 47 deletions
+13 -30
View File
@@ -2,37 +2,20 @@
This shows the implementation of the `share` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md).
It's goal is to share the libraries between all profiles.
Its goal is to share the libraries between all profiles.
## Verify a profile
## Libraries
InSpec ships with built-in features to verify a profile structure.
### `system`
```bash
$ inspec check share
Summary
-------
Location: share
Profile: profile
Controls: 4
Timestamp: 2019-06-24T23:09:01+00:00
Valid: true
The `system` library provides easy access to system dependent information:
Errors
------
Warnings
--------
```
## Execute a profile
To run all **supported** controls on a local machine use `inspec exec /path/to/profile`.
```bash
$ inspec exec share
..
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
8 examples, 0 failures
```
- `system.platform`: based on `inspec.platform`, modify to values that are more consistent from a SaltStack perspective
- `system.platform[:family]` provide a family name for Arch and Gentoo
- `system.platform[:name]` append `linux` to both `amazon` and `oracle`; ensure Windows platforms are resolved as simply `windows`
- `system.platform[:release]` tweak Arch, Amazon Linux, Gentoo and Windows:
- `Arch` is always `base-latest`
- `Amazon Linux` release `2018` is resolved as `1`
- `Gentoo` release is trimmed to its major version number and then the init system is appended (i.e. `sysv` or `sysd`)
- `Windows` uses the widely-used release number (e.g. `8.1` or `2019-server`) in place of the actual system release version
- `system.platform[:finger]` is the concatenation of the name and the major release number (except for Ubuntu, which gives `ubuntu-20.04` for example)
+4 -1
View File
@@ -2,7 +2,7 @@
# vim: ft=yaml
---
name: share
title: sudoers formula
title: InSpec shared resources
maintainer: SaltStack Formulas
license: Apache-2.0
summary: shared resources
@@ -15,4 +15,7 @@ supports:
- platform-name: suse
- platform-name: freebsd
- platform-name: amazon
- platform-name: oracle
- platform-name: arch
- platform-name: gentoo
- platform: windows
+12 -4
View File
@@ -27,8 +27,8 @@ class SystemResource < Inspec.resource(1)
def build_platform_family
case inspec.platform[:name]
when 'arch'
'arch'
when 'arch', 'gentoo'
inspec.platform[:name]
else
inspec.platform[:family]
end
@@ -36,13 +36,16 @@ class SystemResource < Inspec.resource(1)
def build_platform_name
case inspec.platform[:name]
when 'amazon'
'amazonlinux'
when 'amazon', 'oracle'
"#{inspec.platform[:name]}linux"
when 'windows_8.1_pro', 'windows_server_2019_datacenter'
'windows'
else
inspec.platform[:name]
end
end
# rubocop:disable Metrics/MethodLength
def build_platform_release
case inspec.platform[:name]
when 'amazon'
@@ -52,10 +55,15 @@ class SystemResource < Inspec.resource(1)
'base-latest'
when 'gentoo'
"#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}"
when 'windows_8.1_pro'
'8.1'
when 'windows_server_2019_datacenter'
'2019-server'
else
inspec.platform[:release]
end
end
# rubocop:enable Metrics/MethodLength
def derive_gentoo_init_system
case inspec.command('systemctl').exist?