Merge pull request #16994 from cybozu-go/ci-create-fake-disk-if-github-runner-does-not-have-extra-disk

test: create iscsi disk if extra disk does not exist
This commit is contained in:
Travis Nielsen
2026-02-02 10:27:10 -07:00
committed by GitHub
+27
View File
@@ -38,6 +38,21 @@ fi
# FUNCTIONS #
#############
function create_extra_disk() {
sudo apt install -y targetcli-fb open-iscsi
truncate -s 75G ~/iscsi-disk.img
sudo targetcli /backstores/fileio create disk1 ~/iscsi-disk.img 75G
local target_iqn=iqn.2026-02.target.local:disk1
sudo targetcli /iscsi create ${target_iqn}
sudo targetcli /iscsi/${target_iqn}/tpg1/luns create /backstores/fileio/disk1
local init_iqn=iqn.2026-02.initiator.local
echo "InitiatorName=${init_iqn}" | sudo tee /etc/iscsi/initiatorname.iscsi >/dev/null
sudo targetcli /iscsi/${target_iqn}/tpg1/acls create ${init_iqn}
sudo targetcli /iscsi/${target_iqn}/tpg1/acls/${init_iqn} create tpg_lun_or_backstore=lun0 mapped_lun=0
sudo iscsiadm -m discovery -t sendtargets -p 127.0.0.1
sudo iscsiadm -m node --login
}
function find_extra_block_dev() {
# shellcheck disable=SC2005 # redirect doesn't work with sudo, so use echo
echo "$(sudo lsblk)" >/dev/stderr # print lsblk output to stderr for debugging in case of future errors
@@ -49,6 +64,10 @@ function find_extra_block_dev() {
echo " == find_extra_block_dev(): boot_dev='$boot_dev'" >/dev/stderr # debug in case of future errors
# --nodeps ignores partitions
extra_dev="$(sudo lsblk --noheading --list --nodeps --output KNAME | egrep -v "($boot_dev|loop|nbd)" | head -1)"
if [ -z "$extra_dev" ]; then
create_extra_disk >/dev/stderr
extra_dev="$(sudo lsblk --noheading --list --nodeps --output KNAME | egrep -v "($boot_dev|loop|nbd)" | head -1)"
fi
echo " == find_extra_block_dev(): extra_dev='$extra_dev'" >/dev/stderr # debug in case of future errors
echo "$extra_dev" # output of function
}
@@ -116,6 +135,14 @@ function use_local_disk_for_integration_test() {
sudo apt purge snapd -y
sudo udevadm control --log-priority=debug
sudo swapoff --all --verbose
# Create an extra disk if doesn't exist.
: "$(block_dev)"
sudo lsblk
unset pipefail
mountpoint -q /mnt || return 0
set pipefail
sudo umount /mnt
sudo sed -i.bak '/\/mnt/d' /etc/fstab
# search for the device since it keeps changing between sda and sdb