mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 21:46:58 +02:00
Used uuidgen
Refacted timeout section to be a loop Added output for progress Fixed indentation
This commit is contained in:
parent
f986ba2d03
commit
a191ff9973
@ -50,6 +50,7 @@ if ! ec2-describe-images -F image-id="$AMI" | grep -q "$AMI"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -n "Creating keys and security group... "
|
||||||
key_name="autotest-`date +%s`"
|
key_name="autotest-`date +%s`"
|
||||||
key_file="/tmp/$key_name"
|
key_file="/tmp/$key_name"
|
||||||
ec2-create-keypair $key_name | grep -v KEYPAIR > $key_file
|
ec2-create-keypair $key_name | grep -v KEYPAIR > $key_file
|
||||||
@ -60,14 +61,16 @@ sg=$(ec2-create-group $sg_name --description "$sg_name" | cut -f2)
|
|||||||
ec2-authorize "$sg_name" -P tcp -p 4001 > /dev/null
|
ec2-authorize "$sg_name" -P tcp -p 4001 > /dev/null
|
||||||
ec2-authorize "$sg_name" -P tcp -p 7001 > /dev/null
|
ec2-authorize "$sg_name" -P tcp -p 7001 > /dev/null
|
||||||
ec2-authorize "$sg_name" -P tcp -p 22 > /dev/null
|
ec2-authorize "$sg_name" -P tcp -p 22 > /dev/null
|
||||||
|
echo "OK ($key_name)"
|
||||||
|
|
||||||
# might be needed later for multi-zone tests
|
# might be needed later for multi-zone tests
|
||||||
zoneurl=http://instance-data/latest/meta-data/placement/availability-zone
|
zoneurl=http://instance-data/latest/meta-data/placement/availability-zone
|
||||||
zone=$(curl --fail -s $zoneurl)
|
zone=$(curl --fail -s $zoneurl)
|
||||||
region=$(echo $zone | sed 's/.$//')
|
region=$(echo $zone | sed 's/.$//')
|
||||||
|
|
||||||
token=$(dd if=/dev/urandom bs=8 count=1 2> /dev/null| sha1sum|cut -d' ' -f1)
|
token=$(uuidgen)
|
||||||
|
|
||||||
|
echo -n "Booting instances... "
|
||||||
instances=$(ec2-run-instances \
|
instances=$(ec2-run-instances \
|
||||||
--user-data "$token" \
|
--user-data "$token" \
|
||||||
--instance-type "t1.micro" \
|
--instance-type "t1.micro" \
|
||||||
@ -75,7 +78,6 @@ instances=$(ec2-run-instances \
|
|||||||
--group "$sg_name" \
|
--group "$sg_name" \
|
||||||
--key "$key_name" $AMI | \
|
--key "$key_name" $AMI | \
|
||||||
grep INSTANCE | cut -f2)
|
grep INSTANCE | cut -f2)
|
||||||
|
|
||||||
# little hack to create a describe instances command that only
|
# little hack to create a describe instances command that only
|
||||||
# pulls data for these instances
|
# pulls data for these instances
|
||||||
ec2_cmd=$(echo $instances | sed 's/ / --filter instance-id=/g')
|
ec2_cmd=$(echo $instances | sed 's/ / --filter instance-id=/g')
|
||||||
@ -88,26 +90,28 @@ declare -a ips=($($ec2_cmd | grep INSTANCE | cut -f4))
|
|||||||
|
|
||||||
# sleep until all the sockets we need come up
|
# sleep until all the sockets we need come up
|
||||||
for host in ${ips[@]}; do
|
for host in ${ips[@]}; do
|
||||||
timeout 30 perl -MIO::Socket::INET -e "
|
for port in 22 4001 7001; do
|
||||||
until(new IO::Socket::INET('$host:22')){sleep 1}"
|
timeout 30 perl -MIO::Socket::INET -e "
|
||||||
timeout 30 perl -MIO::Socket::INET -e "
|
until(new IO::Socket::INET('$host:$port')){sleep 1}"
|
||||||
until(new IO::Socket::INET('$host:4001')){sleep 1}"
|
done
|
||||||
timeout 30 perl -MIO::Socket::INET -e "
|
|
||||||
until(new IO::Socket::INET('$host:7001')){sleep 1}"
|
|
||||||
done
|
done
|
||||||
|
echo "OK ($instances)"
|
||||||
|
|
||||||
|
echo -n "Testing etcd... "
|
||||||
test_key="v1/keys/test"
|
test_key="v1/keys/test"
|
||||||
# XXX: the sleeps *should never* be required, this is a bug in etcd
|
# XXX: the sleep *should never* be required, this is a bug in etcd
|
||||||
sleep 1
|
sleep 1
|
||||||
curl --fail -s -L "${ips[0]}:4001/$test_key" -d value="$token" > /dev/null
|
curl --fail -s -L "${ips[0]}:4001/$test_key" -d value="$token" > /dev/null
|
||||||
sleep 1
|
sleep 1
|
||||||
for host in ${ips[@]}; do
|
for host in ${ips[@]}; do
|
||||||
if ! curl --fail -s -L "${host}:4001/$test_key" | grep -q $token; then
|
if ! curl --fail -s -L "${host}:4001/$test_key" | grep -q $token; then
|
||||||
echo "etcd bootstrap appears to have failed for $host" >&2
|
echo "etcd bootstrap appears to have failed for $host" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
echo "OK"
|
||||||
|
|
||||||
|
echo -n "Cleaning up environment... "
|
||||||
ec2-terminate-instances $instances > /dev/null
|
ec2-terminate-instances $instances > /dev/null
|
||||||
while ! $ec2_cmd | grep INSTANCE | grep -q terminated
|
while ! $ec2_cmd | grep INSTANCE | grep -q terminated
|
||||||
do sleep 10; done
|
do sleep 10; done
|
||||||
@ -115,3 +119,4 @@ while ! $ec2_cmd | grep INSTANCE | grep -q terminated
|
|||||||
ec2-delete-group $sg_name > /dev/null
|
ec2-delete-group $sg_name > /dev/null
|
||||||
ec2-delete-keypair $key_name > /dev/null
|
ec2-delete-keypair $key_name > /dev/null
|
||||||
rm $key_file
|
rm $key_file
|
||||||
|
echo "OK"
|
||||||
|
Loading…
Reference in New Issue
Block a user