Skip to content

Instantly share code, notes, and snippets.

@jtopjian
Last active August 29, 2015 13:58
Show Gist options
  • Select an option

  • Save jtopjian/9955731 to your computer and use it in GitHub Desktop.

Select an option

Save jtopjian/9955731 to your computer and use it in GitHub Desktop.
Simple script to test new OpenStack clouds
INSTANCES=1
IMAGE="3df92f29-eb96-46e8-98d0-46f0b46fb10e"
KEY="burn-in"
DRIVE="/dev/vdc"
echo "Launching instances"
for i in $(seq 1 $INSTANCES); do
echo -e "\n==== instance $i ===";
nova boot --poll --flavor 2 --image $IMAGE --key-name $KEY burn-$i
done
echo "Creating a volume for each instance"
for INSTANCE in $(nova list | grep burn | grep ACTIVE | awk '{print $2}'); do
V=""
VOL=$(nova volume-create 2 | grep "^| id" | awk '{print $4}')
echo "created $VOL"
while [ "$V" != "$VOL" ]; do
echo "waiting for $VOL..."
sleep 2
nova volume-show $VOL | grep "available" >/dev/null
if [ $? -eq 0 ]; then
V=$(nova volume-show $VOL | grep "^| id" | awk '{print $4}')
fi
done
COMMAND="nova volume-attach $INSTANCE $VOL auto"
echo $COMMAND
$COMMAND
done
echo "Sleeping for 30 seconds to let instances boot."
for i in $(seq 1 30); do
echo -n "."
sleep 1
done
echo ""
echo "Activating volumes in the instance"
for ADDRESS in $(nova list | grep burn | awk '{print $12}' | cut -d= -f2 | tr -d /,/); do
CMD="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${KEY}.pem ubuntu@$ADDRESS sudo mkfs.ext4 ${DRIVE}; sudo mount ${DRIVE} /mnt; sudo chmod 777 /mnt"
$CMD
sleep 2
done
if [ ! -f big-file.bin ]; then
echo "Creating a 1GB file"
dd if=/dev/urandom of=big-file.bin count=1024 bs=1M
fi
echo "Copying the file to each instance"
for ADDRESS in $(nova list | grep burn | awk '{print $12}' | cut -d= -f2 | tr -d /,/); do
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${KEY}.pem big-file.bin ubuntu@$ADDRESS:~/;
done
echo "Copying the file to each volume"
for ADDRESS in $(nova list | grep burn | awk '{print $12}' | cut -d= -f2 | tr -d /,/); do
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${KEY}.pem big-file.bin ubuntu@$ADDRESS:/mnt;
done
# --------- test done -- tear down ---------------
echo "Terminating instances"
for INSTANCE in $(nova list | grep burn | awk '{print $2}'); do
echo "Terminating ${INSTANCE}"
nova delete $INSTANCE
sleep 5
done
echo "Deleting volumes"
for VOLUME in $(nova volume-list | grep available | awk '{print $2}'); do
echo "Deleting ${VOLUME}"
nova volume-delete $VOLUME
sleep 5
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment