#!/bin/bash # info: add database # options: USER DATABASE DBUSER DBPASS [TYPE] [HOST] [CHARSET] # # The function creates the database concatenating username and user_db. # Supported types of databases you can get using v-list-sys-config script. # If the host isn't stated and there are few hosts configured on the server, # then the host will be defined by one of three algorithms. "First" will choose # the first host in the list. "Random" will chose the host by a chance. # "Weight" will distribute new database through hosts evenly. Algorithm and # types of supported databases is designated in the main configuration file. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument definition user=$1 database="$user"_"$2" dbuser="$user"_"$3" password=$4; HIDE=4 type=${5-mysql} host=$6 charset=${7-UTF8} charset=$(echo "$charset" |tr '[:lower:]' '[:upper:]') # Includes source $VESTA/func/main.sh source $VESTA/func/db.sh source $VESTA/conf/vesta.conf #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '4' "$#" 'USER DATABASE DBUSER DBPASS [TYPE] [HOST] [CHARSET]' is_format_valid 'user' 'database' 'dbuser' 'charset' is_system_enabled "$DB_SYSTEM" 'DB_SYSTEM' is_type_valid "$DB_SYSTEM" "$type" is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_new 'db' 'DB' "$database" get_next_dbhost is_object_valid "../../../conf/$type" 'HOST' "$host" is_object_unsuspended "../../../conf/$type" 'DBHOST' "$host" #is_charset_valid is_package_full 'DATABASES' is_password_valid dbpass="$password" #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Switching on db type case $type in mysql) add_mysql_database ;; pgsql) add_pgsql_database ;; esac #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Generating timestamp time_n_date=$(date +'%T %F') time=$(echo "$time_n_date" |cut -f 1 -d \ ) date=$(echo "$time_n_date" |cut -f 2 -d \ ) # Adding db to db conf str="DB='$database' DBUSER='$dbuser' MD5='$md5' HOST='$host' TYPE='$type'" str="$str CHARSET='$charset' U_DISK='0' SUSPENDED='no' TIME='$time'" str="$str DATE='$date'" echo "$str" >> $USER_DATA/db.conf chmod 660 $USER_DATA/db.conf # Increasing counters increase_dbhost_values increase_user_value "$user" '$U_DATABASES' # Logging log_history "added $type database $database" log_event "$OK" "$ARGUMENTS" exit