Skip to content

Instantly share code, notes, and snippets.

@dfarrell07
Last active December 20, 2015 09:19
Show Gist options
  • Save dfarrell07/6106997 to your computer and use it in GitHub Desktop.
Save dfarrell07/6106997 to your computer and use it in GitHub Desktop.
Script for setting up OpenStack test environment.
#!/usr/bin/env bash
# Create a new user and setup their test environment
# Author: Daniel Farrell
EX_USAGE=64
EX_NOPERM=77
EX_CONFIG=78
EX_OK=0
usage()
{
cat << EOF
Usage: $0 {username}
Script for creating a new user and setting up their test enviroment.
EOF
}
config()
{
cat << EOF
This software should be distributed as a tarball consisting of:
- setup.sh (this script)
- run_test.sh (for running tests)
- OpenStackTest (directory with JUnit tests)
- lib-jar (directory with required jars)
EOF
}
if [ $# -ne 1 ]
then
usage
exit $EX_USAGE
else
usr=$1
echo "Creating new user with username $usr."
fi
if [[ $EUID -ne 0 ]]
then
echo "Error: Run this script as root." >&2
exit $EX_NOPERM
fi
if [ ! -d ./OpenStackTest ]
then
echo "OpenStackTest directory not found." >&2
config
exit $EX_CONFIG
fi
if [ ! -d ./lib-jar ]
then
echo "lib-jar directory not found." >&2
config
exit $EX_CONFIG
fi
if [ ! -f ./run_test.sh ]
then
echo "run_test.sh script not found." >&2
config
exit $EX_CONFIG
fi
useradd $usr
echo "Set a password for your new user."
passwd $usr
cp -R OpenStackTest lib-jar /home/$usr
cp run_test.sh /home/$usr/OpenStackTest
chown -R $usr:$usr /home/$usr/lib-jar /home/$usr/OpenStackTest
sed -i 's/your_username/'"$usr"'/g' /home/$usr/OpenStackTest/nightly \
/home/$usr/OpenStackTest/regression
if [ ! -d /var/www/html/$usr ]
then
mkdir /var/www/html/$usr
fi
chown $usr:$usr /var/www/html/$usr
chmod 777 /var/www/html/$usr
echo
tput setaf 2
echo "Done. Try run_test.sh with CWD=/home/$usr/OpenStackTest as $usr."
tput sgr0
exit $EX_OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment