mirror of https://github.com/minio/minio.git
112 lines
3.4 KiB
Bash
112 lines
3.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -x
|
||
|
|
||
|
## change working directory
|
||
|
cd .github/workflows/multipart/
|
||
|
|
||
|
docker-compose -f docker-compose-site1.yaml rm -s -f
|
||
|
docker-compose -f docker-compose-site2.yaml rm -s -f
|
||
|
for volume in $(docker volume ls -q | grep minio); do
|
||
|
docker volume rm ${volume}
|
||
|
done
|
||
|
|
||
|
if [ ! -f ./mc ]; then
|
||
|
wget --quiet -O mc https://dl.minio.io/client/mc/release/linux-amd64/mc &&
|
||
|
chmod +x mc
|
||
|
fi
|
||
|
|
||
|
(
|
||
|
cd /tmp
|
||
|
go install github.com/minio/minio/docs/debugging/s3-check-md5@latest
|
||
|
)
|
||
|
|
||
|
export RELEASE=RELEASE.2023-08-29T23-07-35Z
|
||
|
|
||
|
docker-compose -f docker-compose-site1.yaml up -d
|
||
|
docker-compose -f docker-compose-site2.yaml up -d
|
||
|
|
||
|
sleep 30
|
||
|
|
||
|
mc alias set site1 http://site1-nginx:9001 minioadmin minioadmin --api s3v4
|
||
|
mc alias set site2 http://site2-nginx:9002 minioadmin minioadmin --api s3v4
|
||
|
|
||
|
./mc ready site1/
|
||
|
./mc ready site2/
|
||
|
|
||
|
./mc admin replicate add site1 site2
|
||
|
./mc mb site1/testbucket/
|
||
|
./mc cp -r --quiet /usr/bin site1/testbucket/
|
||
|
|
||
|
sleep 5
|
||
|
|
||
|
s3-check-md5 -h
|
||
|
|
||
|
failed_count_site1=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
failed_count_site2=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
|
||
|
if [ $failed_count_site1 -ne 0 ]; then
|
||
|
echo "failed with multipart on site1 uploads"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ $failed_count_site2 -ne 0 ]; then
|
||
|
echo "failed with multipart on site2 uploads"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
./mc cp -r --quiet /usr/bin site1/testbucket/
|
||
|
|
||
|
sleep 5
|
||
|
|
||
|
failed_count_site1=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
failed_count_site2=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
|
||
|
## we do not need to fail here, since we are going to test
|
||
|
## upgrading to master, healing and being able to recover
|
||
|
## the last version.
|
||
|
if [ $failed_count_site1 -ne 0 ]; then
|
||
|
echo "failed with multipart on site1 uploads ${failed_count_site1}"
|
||
|
fi
|
||
|
|
||
|
if [ $failed_count_site2 -ne 0 ]; then
|
||
|
echo "failed with multipart on site2 uploads ${failed_count_site2}"
|
||
|
fi
|
||
|
|
||
|
export RELEASE=${1}
|
||
|
|
||
|
docker-compose -f docker-compose-site1.yaml up -d
|
||
|
docker-compose -f docker-compose-site2.yaml up -d
|
||
|
|
||
|
./mc ready site1/
|
||
|
./mc ready site2/
|
||
|
|
||
|
./mc admin heal -r --remove --json site1/ 2>&1 >/dev/null
|
||
|
./mc admin heal -r --remove --json site2/ 2>&1 >/dev/null
|
||
|
|
||
|
failed_count_site1=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
failed_count_site2=$(s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l)
|
||
|
|
||
|
if [ $failed_count_site1 -ne 0 ]; then
|
||
|
echo "failed with multipart on site1 uploads"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ $failed_count_site2 -ne 0 ]; then
|
||
|
echo "failed with multipart on site2 uploads"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
docker-compose -f docker-compose-site1.yaml rm -s -f
|
||
|
docker-compose -f docker-compose-site2.yaml rm -s -f
|
||
|
for volume in $(docker volume ls -q | grep minio); do
|
||
|
docker volume rm ${volume}
|
||
|
done
|
||
|
|
||
|
docker system prune -f || true
|
||
|
docker volume prune -f || true
|
||
|
docker volume rm $(docker volume ls -q -f dangling=true) || true
|
||
|
|
||
|
## change working directory
|
||
|
cd ../../../
|