myvesta/test/test_actions.sh
2016-09-08 12:57:30 +01:00

341 lines
9.5 KiB
Bash
Executable File

#!/bin/bash
# Define some variables
source /etc/profile.d/vesta.sh
V_BIN="$VESTA/bin"
V_TEST="$VESTA/test"
# Define functions
random() {
MATRIX='0123456789'
LENGTH=$1
while [ ${n:=1} -le $LENGTH ]; do
rand="$rand${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$rand"
}
echo_result() {
echo -en "$1"
echo -en '\033[60G'
echo -n '['
if [ "$2" -ne 0 ]; then
echo -n 'FAILED'
echo -n ']'
echo -ne '\r\n'
echo ">>> $4"
echo ">>> RETURN VALUE $2"
cat $3
else
echo -n ' OK '
echo -n ']'
fi
echo -ne '\r\n'
}
# Create random username
user="testu_$(random 4)"
while [ ! -z "$(grep "^$user:" /etc/passwd)" ]; do
user="tmp_$(random 4)"
done
# Create random tmpfile
tmpfile=$(mktemp -p /tmp )
#----------------------------------------------------------#
# User #
#----------------------------------------------------------#
# Add user
cmd="v_add_user $user $user $user@vestacp.com default Super Test"
$cmd > $tmpfile 2>> $tmpfile
echo_result "USER: Adding new user $user" "$?" "$tmpfile" "$cmd"
# Change user password
cmd="v_change_user_password $user t3st_p4ssw0rd"
$cmd > $tmpfile 2>> $tmpfile
echo_result "USER: Changing password" "$?" "$tmpfile" "$cmd"
# Change user contact
cmd="v_change_user_contact $user tester@vestacp.com"
$cmd > $tmpfile 2>> $tmpfile
echo_result "USER: Changing email" "$?" "$tmpfile" "$cmd"
# Change system shell
cmd="v_change_user_shell $user bash"
$cmd > $tmpfile 2>> $tmpfile
echo_result "USER: Changing system shell to /bin/bash" "$?" "$tmpfile" "$cmd"
# Change name servers
cmd="v_change_user_ns $user ns0.com ns1.com ns2.com ns3.com"
$cmd > $tmpfile 2>> $tmpfile
echo_result "USER: Changing nameservers" "$?" "$tmpfile" "$cmd"
#----------------------------------------------------------#
# Cron #
#----------------------------------------------------------#
# Add cron job
cmd="v_add_cron_job $user 1 1 1 1 1 echo"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Adding cron job" "$?" "$tmpfile" "$cmd"
# Suspend cron job
cmd="v_suspend_cron_job $user 1"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Suspending cron job" "$?" "$tmpfile" "$cmd"
# Unsuspend cron job
cmd="v_unsuspend_cron_job $user 1"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Unsuspending cron job" "$?" "$tmpfile" "$cmd"
# Delete cron job
cmd="v_delete_cron_job $user 1"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Deleting cron job" "$?" "$tmpfile" "$cmd"
# Add cron job
cmd="v_add_cron_job $user 1 1 1 1 1 echo 1"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Adding cron job" "$?" "$tmpfile" "$cmd"
# Add cron job
cmd="v_add_cron_job $user 1 1 1 1 1 echo 1"
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "CRON: Duplicate cron job check" "$retval" "$tmpfile" "$cmd"
# Add second cron job
cmd="v_add_cron_job $user 2 2 2 2 2 echo 2"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Adding second cron job" "$?" "$tmpfile" "$cmd"
# Rebuild cron jobs
cmd="v_rebuild_cron_jobs $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "CRON: Rebuilding cron jobs" "$?" "$tmpfile" "$cmd"
#----------------------------------------------------------#
# IP #
#----------------------------------------------------------#
# List network interfaces
cmd="v_list_sys_interfaces plain"
interface=$($cmd 2> $tmpfile | head -n 1)
if [ -z "$interface" ]; then
echo_result "IP: Listing network interfaces" "1" "$tmpfile" "$cmd"
else
echo_result "IP: Listing network interfaces" "0" "$tmpfile" "$cmd"
fi
# Add ip address
cmd="v_add_sys_ip 198.18.0.123 255.255.255.255 $interface $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "IP: Adding ip 198.18.0.123" "$?" "$tmpfile" "$cmd"
# Add duplicate ip
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "IP: Duplicate ip address check" "$retval" "$tmpfile" "$cmd"
# Delete ip address
cmd="v_delete_sys_ip 198.18.0.123"
$cmd > $tmpfile 2>> $tmpfile
echo_result "IP: Deleting ip 198.18.0.123" "$?" "$tmpfile" "$cmd"
# Add ip address
cmd="v_add_sys_ip 198.18.0.125 255.255.255.255 $interface $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "IP: Adding ip 198.18.0.125" "$?" "$tmpfile" "$cmd"
#----------------------------------------------------------#
# WEB #
#----------------------------------------------------------#
# Add web domain
domain="test-$(random 4).vestacp.com"
cmd="v_add_web_domain $user $domain 198.18.0.125"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Adding domain $domain on 198.18.0.125" "$?" "$tmpfile" "$cmd"
# Add duplicate
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "WEB: Duplicate web domain check" "$retval" "$tmpfile" "$cmd"
# Add web domain alias
cmd="v_add_web_domain_alias $user $domain v3.$domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Adding alias v3.$domain" "$?" "$tmpfile" "$cmd"
# Alias duplicate
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "WEB: Duplicate web alias check" "$retval" "$tmpfile" "$cmd"
# Add web domain elog
cmd="v_add_web_domain_elog $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Enabling error logging support" "$?" "$tmpfile" "$cmd"
# Disabling cgi
cmd="v_delete_web_domain_cgi $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Disabling cgi support" "$?" "$tmpfile" "$cmd"
# Add web domain stats
cmd="v_add_web_domain_stats $user $domain webalizer"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Enabling webalizer" "$?" "$tmpfile" "$cmd"
# Add web domain stats
cmd="v_add_web_domain_stats_user $user $domain test m3g4p4ssw0rd"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Adding webalizer uzer" "$?" "$tmpfile" "$cmd"
# Add web domain nginx
cmd="v_add_web_domain_nginx $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Enabling nginx support" "$?" "$tmpfile" "$cmd"
# Suspend web domain
cmd="v_suspend_web_domain $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Suspending web domain" "$?" "$tmpfile" "$cmd"
# Unsuspend web domain
cmd="v_unsuspend_web_domain $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Unsuspending web domain" "$?" "$tmpfile" "$cmd"
# Add web domain ssl
cp $V_TEST/ssl/crt /tmp/$domain.crt
cp $V_TEST/ssl/key /tmp/$domain.key
cmd="v_add_web_domain_ssl $user $domain /tmp"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: Adding ssl support" "$?" "$tmpfile" "$cmd"
# Rebuild web domains
cmd="v_rebuild_web_domains $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "WEB: rebuilding web domains" "$?" "$tmpfile" "$cmd"
#----------------------------------------------------------#
# DNS #
#----------------------------------------------------------#
# Add dns domain
cmd="v_add_dns_domain $user $domain 198.18.0.125"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Adding dns domain $domain" "$?" "$tmpfile" "$cmd"
# Add duplicate
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "DNS: Duplicate domain check" "$retval" "$tmpfile" "$cmd"
# Add dns domain record
cmd="v_add_dns_domain_record $user $domain test A 198.18.0.125 20"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Adding dns domain record" "$?" "$tmpfile" "$cmd"
# Add duplicate
$cmd > $tmpfile 2>> $tmpfile
if [ "$?" -eq 4 ]; then
retval=0
else
retval=1
fi
echo_result "DNS: Duplicate record check" "$retval" "$tmpfile" "$cmd"
# Delete dns domain record
cmd="v_delete_dns_domain_record $user $domain 20"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Deleteing dns domain record" "$?" "$tmpfile" "$cmd"
# Change exp
cmd="v_change_dns_domain_exp $user $domain 2020-01-01"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Changing expiriation date" "$?" "$tmpfile" "$cmd"
# Change ip
cmd="v_change_dns_domain_ip $user $domain 127.0.0.1"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Changing domain ip" "$?" "$tmpfile" "$cmd"
# Suspend dns domain
cmd="v_suspend_dns_domain $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Suspending domain" "$?" "$tmpfile" "$cmd"
# Unuspend dns domain
cmd="v_unsuspend_dns_domain $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Unsuspending domain" "$?" "$tmpfile" "$cmd"
# Rebuild dns domain
cmd="v_rebuild_dns_domains $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "DNS: Rebuilding domain" "$?" "$tmpfile" "$cmd"
# Add mail domain
cmd="v_add_mail_domain $user $domain"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Adding mail domain $domain" "$?" "$tmpfile" "$cmd"
# Add mysql database
database=d$(random 4)
cmd="v_add_database $user $database $database dbp4ssw0rd mysql"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Adding mysql database $database" "$?" "$tmpfile" "$cmd"
# Add pgsql database
database=d$(random 4)
cmd="v_add_database $user $database $database dbp4ssw0rd pgsql"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Adding pgsql database $database" "$?" "$tmpfile" "$cmd"
# Rebuild user configs
cmd="v_rebuild_user $user yes"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Rebuilding user config" "$?" "$tmpfile" "$cmd"
# Delete user
cmd="v_delete_user $user"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Deleting user $user" "$?" "$tmpfile" "$cmd"
# Delete ip address
cmd="v_delete_sys_ip 198.18.0.125"
$cmd > $tmpfile 2>> $tmpfile
echo_result "Deleting ip 198.18.0.125" "$?" "$tmpfile" "$cmd"