File tree Expand file tree Collapse file tree 5 files changed +50
-10
lines changed Expand file tree Collapse file tree 5 files changed +50
-10
lines changed Original file line number Diff line number Diff line change 22source .buildkite/al2env.sh
33
44sudo rm -rf $dir
5- ./tools/thinpool.sh remove $unique_id
5+ FICD_DM_VOLUME_GROUP=fcci-vg ./tools/thinpool.sh remove $unique_id
Original file line number Diff line number Diff line change 11tools /image-builder /rootfs /
2+ tmp /
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ GOSUM := $(GOMOD:.mod=.sum)
2121DOCKER_IMAGE_TAG? =latest
2222GO_CACHE_VOLUME_NAME? =gocache
2323FIRECRACKER_CONTAINERD_TEST_IMAGE? =localhost/firecracker-containerd-test
24+ FICD_DM_POOL? =fc-test-thinpool
2425
2526REVISION =$(shell git rev-parse HEAD)
2627
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 1515
1616FICD_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
2024subcommand=" $1 "
2125name=" $2 "
@@ -24,21 +28,55 @@ if [ -z "$name" ]; then
2428 exit 0
2529fi
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+
2747if [[ -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 }
4381else
4482 dm_device=" /dev/mapper/$( echo ${FICD_DM_VOLUME_GROUP} | sed -e s/-/--/g) -$name "
You can’t perform that action at this time.
0 commit comments