diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4350b9e..5bf86ee 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -132,7 +132,8 @@ v3002-py3-centos-8-3002-2-py3: {extends: '.test_instance'} v3002-py3-centos-7-3002-2-py3: {extends: '.test_instance'} v3002-py3-fedora-33-3002-2-py3: {extends: '.test_instance'} # v3002-py3-fedora-32-3002-2-py3: {extends: '.test_instance'} -# v3002-py3-opensuse-leap-152-3002-2-py3: {extends: '.test_instance'} +v3002-py3-opensuse-leap-152-3002-2-py3: {extends: '.test_instance'} +v3002-py3-opensuse-tmbl-latest-3002-2-py3: {extends: '.test_instance'} v3002-py3-amazonlinux-2-3002-2-py3: {extends: '.test_instance'} v3002-py3-oraclelinux-8-3002-2-py3: {extends: '.test_instance'} v3002-py3-oraclelinux-7-3002-2-py3: {extends: '.test_instance'} @@ -148,6 +149,7 @@ v3001-py3-centos-8-3001-4-py3: {extends: '.test_instance'} # v3001-py3-fedora-33-3001-4-py3: {extends: '.test_instance'} v3001-py3-fedora-32-3001-4-py3: {extends: '.test_instance'} # v3001-py3-opensuse-leap-152-3001-4-py3: {extends: '.test_instance'} +# v3001-py3-opensuse-tmbl-latest-3001-4-py3: {extends: '.test_instance'} # v3001-py3-amazonlinux-2-3001-4-py3: {extends: '.test_instance'} v3001-py3-oraclelinux-8-3001-4-py3: {extends: '.test_instance'} # v3001-py3-oraclelinux-7-3001-4-py3: {extends: '.test_instance'} @@ -159,7 +161,7 @@ v3000-py3-ubuntu-1804-3000-6-py3: {extends: '.test_instance'} # v3000-py3-ubuntu-1604-3000-6-py3: {extends: '.test_instance'} # v3000-py3-centos-8-3000-6-py3: {extends: '.test_instance'} v3000-py3-centos-7-3000-6-py3: {extends: '.test_instance'} -v3000-py3-opensuse-leap-152-3000-6-py3: {extends: '.test_instance'} +# v3000-py3-opensuse-leap-152-3000-6-py3: {extends: '.test_instance'} # v3000-py3-amazonlinux-2-3000-6-py3: {extends: '.test_instance'} # v3000-py3-oraclelinux-8-3000-6-py3: {extends: '.test_instance'} v3000-py3-oraclelinux-7-3000-6-py3: {extends: '.test_instance'} diff --git a/.travis.yml b/.travis.yml index 9173308..6d08a3d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -92,7 +92,8 @@ jobs: - env: INSTANCE=v3002-py3-centos-7-3002-2-py3 - env: INSTANCE=v3002-py3-fedora-33-3002-2-py3 # - env: INSTANCE=v3002-py3-fedora-32-3002-2-py3 - # - env: INSTANCE=v3002-py3-opensuse-leap-152-3002-2-py3 + - env: INSTANCE=v3002-py3-opensuse-leap-152-3002-2-py3 + - env: INSTANCE=v3002-py3-opensuse-tmbl-latest-3002-2-py3 - env: INSTANCE=v3002-py3-amazonlinux-2-3002-2-py3 - env: INSTANCE=v3002-py3-oraclelinux-8-3002-2-py3 - env: INSTANCE=v3002-py3-oraclelinux-7-3002-2-py3 @@ -108,6 +109,7 @@ jobs: # - env: INSTANCE=v3001-py3-fedora-33-3001-4-py3 - env: INSTANCE=v3001-py3-fedora-32-3001-4-py3 # - env: INSTANCE=v3001-py3-opensuse-leap-152-3001-4-py3 + # - env: INSTANCE=v3001-py3-opensuse-tmbl-latest-3001-4-py3 # - env: INSTANCE=v3001-py3-amazonlinux-2-3001-4-py3 - env: INSTANCE=v3001-py3-oraclelinux-8-3001-4-py3 # - env: INSTANCE=v3001-py3-oraclelinux-7-3001-4-py3 @@ -119,7 +121,7 @@ jobs: # - env: INSTANCE=v3000-py3-ubuntu-1604-3000-6-py3 # - env: INSTANCE=v3000-py3-centos-8-3000-6-py3 - env: INSTANCE=v3000-py3-centos-7-3000-6-py3 - - env: INSTANCE=v3000-py3-opensuse-leap-152-3000-6-py3 + # - env: INSTANCE=v3000-py3-opensuse-leap-152-3000-6-py3 # - env: INSTANCE=v3000-py3-amazonlinux-2-3000-6-py3 # - env: INSTANCE=v3000-py3-oraclelinux-8-3000-6-py3 - env: INSTANCE=v3000-py3-oraclelinux-7-3000-6-py3 diff --git a/kitchen.yml b/kitchen.yml index f9dc2b5..25e6ded 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -79,6 +79,14 @@ platforms: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 + - name: opensuse-tmbl-latest-master-py3 + driver: + image: saltimages/salt-master-py3:opensuse-tumbleweed-latest + run_command: /usr/lib/systemd/systemd + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 - name: amazonlinux-2-master-py3 driver: image: saltimages/salt-master-py3:amazonlinux-2 @@ -129,6 +137,14 @@ platforms: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 + - name: opensuse-tmbl-latest-3002-2-py3 + driver: + image: saltimages/salt-3002.2-py3:opensuse-tumbleweed-latest + run_command: /usr/lib/systemd/systemd + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 - name: amazonlinux-2-3002-2-py3 driver: image: saltimages/salt-3002.2-py3:amazonlinux-2 @@ -186,6 +202,14 @@ platforms: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 + - name: opensuse-tmbl-latest-3001-4-py3 + driver: + image: saltimages/salt-3001.4-py3:opensuse-tumbleweed-latest + run_command: /usr/lib/systemd/systemd + # Workaround to avoid intermittent failures on `opensuse-tumbleweed`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 - name: amazonlinux-2-3001-4-py3 driver: image: saltimages/salt-3001.4-py3:amazonlinux-2 @@ -292,6 +316,7 @@ suites: - fedora-33-3002-2-py3 - fedora-32-3002-2-py3 - opensuse-leap-152-3002-2-py3 + - opensuse-tmbl-latest-3002-2-py3 - amazonlinux-2-3002-2-py3 - oraclelinux-8-3002-2-py3 - oraclelinux-7-3002-2-py3 @@ -329,6 +354,7 @@ suites: - fedora-33-3001-4-py3 - fedora-32-3001-4-py3 - opensuse-leap-152-3001-4-py3 + - opensuse-tmbl-latest-3001-4-py3 - amazonlinux-2-3001-4-py3 - oraclelinux-8-3001-4-py3 - oraclelinux-7-3001-4-py3 diff --git a/test/integration/share/README.md b/test/integration/share/README.md index 5bc510c..5c5785b 100644 --- a/test/integration/share/README.md +++ b/test/integration/share/README.md @@ -13,9 +13,10 @@ The `system` library provides easy access to system dependent information: - `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: + - `system.platform[:release]` tweak Arch, Amazon Linux, Gentoo, openSUSE 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`) + - `openSUSE` is resolved as `tumbleweed` if the `platform[:release]` is in date format - `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) diff --git a/test/integration/share/libraries/system.rb b/test/integration/share/libraries/system.rb index ef23499..ba08443 100644 --- a/test/integration/share/libraries/system.rb +++ b/test/integration/share/libraries/system.rb @@ -45,7 +45,7 @@ class SystemResource < Inspec.resource(1) end end - # rubocop:disable Metrics/MethodLength + # rubocop:disable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity def build_platform_release case inspec.platform[:name] when 'amazon' @@ -55,6 +55,10 @@ class SystemResource < Inspec.resource(1) 'base-latest' when 'gentoo' "#{inspec.platform[:release].split('.')[0]}-#{derive_gentoo_init_system}" + when 'opensuse' + # rubocop:disable Style/NumericLiterals,Layout/LineLength + inspec.platform[:release].to_i > 20210101 ? 'tumbleweed' : inspec.platform[:release] + # rubocop:enable Style/NumericLiterals,Layout/LineLength when 'windows_8.1_pro' '8.1' when 'windows_server_2019_datacenter' @@ -63,15 +67,10 @@ class SystemResource < Inspec.resource(1) inspec.platform[:release] end end - # rubocop:enable Metrics/MethodLength + # rubocop:enable Metrics/MethodLength,Metrics/AbcSize,Metrics/CyclomaticComplexity def derive_gentoo_init_system - case inspec.command('systemctl').exist? - when true - 'sysd' - else - 'sysv' - end + inspec.command('systemctl').exist? ? 'sysd' : 'sysv' end def build_platform_finger