Skip to content

Commit 0bd358f

Browse files
authored
Merge pull request #441 from kzys/no-env-vars
Make FICD_DM_POOL and NUMBER_OF_VMS optional
2 parents 588cafd + 6195819 commit 0bd358f

File tree

5 files changed

+50
-10
lines changed

5 files changed

+50
-10
lines changed

.buildkite/al2_cleanup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
source .buildkite/al2env.sh
33

44
sudo rm -rf $dir
5-
./tools/thinpool.sh remove $unique_id
5+
FICD_DM_VOLUME_GROUP=fcci-vg ./tools/thinpool.sh remove $unique_id

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
tools/image-builder/rootfs/
2+
tmp/

runtime/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ GOSUM := $(GOMOD:.mod=.sum)
2121
DOCKER_IMAGE_TAG?=latest
2222
GO_CACHE_VOLUME_NAME?=gocache
2323
FIRECRACKER_CONTAINERD_TEST_IMAGE?=localhost/firecracker-containerd-test
24+
FICD_DM_POOL?=fc-test-thinpool
2425

2526
REVISION=$(shell git rev-parse HEAD)
2627

runtime/service_integ_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,10 @@ func TestMultipleVMs_Isolated(t *testing.T) {
253253
require.NoError(t, err, "failed to get a namespace")
254254

255255
// numberOfVmsEnvName = NUMBER_OF_VMS ENV and is configurable from buildkite
256-
numberOfVms, err := strconv.Atoi(os.Getenv(numberOfVmsEnvName))
257-
require.NoError(t, err, "failed to get NUMBER_OF_VMS env")
258-
if numberOfVms == 0 {
259-
numberOfVms = defaultNumberOfVms
256+
numberOfVms := defaultNumberOfVms
257+
if str := os.Getenv(numberOfVmsEnvName); str != "" {
258+
numberOfVms, err = strconv.Atoi(str)
259+
require.NoError(t, err, "failed to get NUMBER_OF_VMS env")
260260
}
261261
t.Logf("TestMultipleVMs_Isolated: will run %d vm's", numberOfVms)
262262

tools/thinpool.sh

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
FICD_DM_VOLUME_GROUP="$FICD_DM_VOLUME_GROUP"
1717

18-
set -eu
18+
# The tmp/devmapper/ directory will be created on this project's
19+
# root directory.
20+
DIR=$(dirname $BASH_SOURCE)/../tmp/devmapper
21+
22+
set -euo pipefail
1923

2024
subcommand="$1"
2125
name="$2"
@@ -24,21 +28,55 @@ if [ -z "$name" ]; then
2428
exit 0
2529
fi
2630

31+
create_loopback_device() {
32+
local path=$1
33+
local size=$2
34+
35+
if [[ ! -f "$path" ]]; then
36+
touch "$path"
37+
truncate -s "$size" "$path"
38+
fi
39+
40+
local dev=$(sudo losetup --output NAME --noheadings --associated "$path")
41+
if [[ -z "$dev" ]]; then
42+
dev=$(sudo losetup --find --show $path)
43+
fi
44+
echo $dev
45+
}
46+
2747
if [[ -z "$FICD_DM_VOLUME_GROUP" ]]; then
2848
pool_create() {
29-
echo
49+
mkdir -p $DIR
50+
51+
local datadev=$(create_loopback_device "$DIR/data" '10G')
52+
local metadev=$(create_loopback_device "$DIR/metadata" '1G')
53+
54+
local sectorsize=512
55+
local datasize="$(sudo blockdev --getsize64 -q ${datadev})"
56+
local length_sectors=$(bc <<< "${datasize}/${sectorsize}")
57+
local thinp_table="0 ${length_sectors} thin-pool ${metadev} ${datadev} 128 32768 1 skip_block_zeroing"
58+
sudo dmsetup create "$name" --table "${thinp_table}"
3059
}
3160

3261
pool_remove() {
33-
echo
34-
}
62+
for snapshot in $(sudo dmsetup ls | awk "/^$name-snap-/ { print \$1 }"); do
63+
sudo dmsetup remove $snapshot
64+
done
3565

36-
pool_reset() {
3766
local dev_no=1
3867
while true; do
3968
sudo dmsetup message "$name" 0 "delete $dev_no" || break
4069
dev_no=$(($dev_no + 1))
4170
done
71+
72+
sudo dmsetup remove "$name"
73+
}
74+
75+
pool_reset() {
76+
if sudo dmsetup info "$name"; then
77+
pool_remove
78+
fi
79+
pool_create
4280
}
4381
else
4482
dm_device="/dev/mapper/$(echo ${FICD_DM_VOLUME_GROUP} | sed -e s/-/--/g)-$name"

0 commit comments

Comments
 (0)