Skip to content

Commit

Permalink
tests: Add initial alternatives test
Browse files Browse the repository at this point in the history
This makes sure that the system is setup properly and that the migration
script will do the right thing on older systems.

See: coreos/fedora-coreos-tracker#1818
See: coreos/fedora-coreos-tracker#677
See: https://docs.fedoraproject.org/en-US/fedora-coreos/alternatives/
  • Loading branch information
travier committed Nov 18, 2024
1 parent faa28e6 commit 086b0fa
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions tests/kola/files/alternatives
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash
## kola:
## description: Verify that the alternatives config is properly migrated and test the migration

# See
# - https://github.com/coreos/fedora-coreos-tracker/issues/1818

set -xeuo pipefail

# shellcheck disable=SC1091
. "$KOLA_EXT_DATA/commonlib.sh"

if test -e "/var/lib/alternatives"; then
ls -al "/var/lib/alternatives"
fatal "Error: Found '/var/lib/alternatives' which should not exists"
fi
if ! test -d "/etc/alternatives"; then
fatal "Error: '/etc/alternatives' is missing"
fi
if ! test -d "/etc/alternatives-admindir"; then
fatal "Error: '/etc/alternatives-admindir' is missing"
fi

# To test the migration we will re-create the setup from an older FCOS node

# First, reset iptables to the legacy backend
alternatives --set iptables /usr/sbin/iptables-legacy
if [[ $(alternatives --display iptables | grep -c "link currently points to /usr/sbin/iptables-legacy") != "1" ]]; then
fatal "Could not set iptables to legacy backend for testing"
fi
if [[ $(iptables --version | grep -c "legacy") != "1" ]]; then
fatal "Could not set iptables to legacy backend for testing"
fi

# Then re-create the broken alternatives folder in /var
install -dm0755 /var/lib/alternatives

# Do the migration, explicitely using the new configuration directory to ignore
# the empty one in /var
alternatives --admindir /etc/alternatives-admindir --set iptables /usr/sbin/iptables-nft
if [[ $(alternatives --admindir /etc/alternatives-admindir --display iptables | grep -c "link currently points to /usr/sbin/iptables-nft") != "1" ]]; then
fatal "Could not set iptables to nft backend for migration"
fi
if [[ $(iptables --version | grep -c "nf_tables") != "1" ]]; then
fatal "Error: iptables not reset to nftables backend"
fi

0 comments on commit 086b0fa

Please sign in to comment.