Added IP_AVAIL key. Issue #50

This commit is contained in:
Serghey Rodin 2012-02-20 12:46:25 +02:00
commit 0bab5ef8f9
6 changed files with 82 additions and 70 deletions

View file

@ -165,6 +165,14 @@ if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
fi
# Filling user config
if [ "$user" != 'admin' ]; then
ip_avail=$($V_BIN/v_list_user_ips admin plain |grep -w shared|wc -l)
u_users=0
else
ip_avail=0
u_users=1
fi
echo "FNAME='$fname'
LNAME='$lname'
PACKAGE='$package'
@ -179,8 +187,9 @@ SUSPENDED_DNS='0'
SUSPENDED_MAIL='0'
SUSPENDED_DB='0'
SUSPENDED_CRON='0'
IP_AVAIL='$ip_avail'
IP_OWNED='0'
U_USERS='0'
U_USERS='$u_users'
U_DISK='0'
U_DISK_DIRS='0'
U_DISK_WEB='0'

View file

@ -90,6 +90,7 @@ SUSPENDED_DNS='$SUSPENDED_DNS'
SUSPENDED_MAIL='$SUSPENDED_MAIL'
SUSPENDED_DB='$SUSPENDED_DB'
SUSPENDED_CRON='$SUSPENDED_CRON'
IP_AVAIL='$IP_AVAIL'
IP_OWNED='$IP_OWNED'
U_USERS='$U_USERS'
U_DISK='$U_DISK'

View file

@ -91,7 +91,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_ALIASES $WEB_TPL
$DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES
$CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS
$RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_OWNED $U_USERS
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED $U_USERS
$U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
$U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
$U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $DATE'

View file

@ -21,46 +21,55 @@ source $V_FUNC/shared.func
json_list_user_ips() {
# Print top bracket
echo '{'
owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*)
shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\
grep "STATUS='shared'"|\
cut -f 1 -d - )
ip_list="$owned_ips\n$shared_ips"
fileds_count=$(echo "$fields" | wc -w)
# Starting main loop
for IP in $(echo -e "$ip_list" | sort -u); do
IP=$(basename $IP)
ip_data=$(cat $V_IPS/$IP)
# Assing key=value
eval $ip_data
# Closing bracket if there already was output
if [ -n "$data" ]; then
echo -e ' },'
fi
i=1
for field in $fields; do
eval value=$field
if [ $i -eq 1 ]; then
# Printing parrent
(( ++i))
echo -e "\t\"$value\": {"
else
# Printing child
if [ $i -lt $fileds_count ]; then
(( ++i))
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
else
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
data=1
fi
for IP in $(ls $V_IPS/); do
source $V_IPS/$IP
if [ "$OWNER" = "$user" ]; then
eval echo "$fields"
# Closing bracket if there already was output
if [ -n "$data" ]; then
echo -e ' },'
fi
done
i=1
for field in $fields; do
eval value=$field
if [ $i -eq 1 ]; then
# Printing parrent
(( ++i))
echo -e "\t\"$value\": {"
else
# Printing child
if [ $i -lt $fileds_count ]; then
(( ++i))
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
else
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
data=1
fi
fi
done
else
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
i=1
for field in $fields; do
eval value=$field
if [ $i -eq 1 ]; then
# Printing parrent
(( ++i))
echo -e "\t\"$value\": {"
else
# Printing child
if [ $i -lt $fileds_count ]; then
(( ++i))
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
else
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
data=1
fi
fi
done
fi
fi
done
# Closing bracket if there was output
@ -70,35 +79,20 @@ json_list_user_ips() {
# Printing bottom bracket
echo -e '}'
}
# Shell function
shell_list_user_ips() {
owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*)
shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\
grep "STATUS='shared'"|\
cut -f 1 -d - )
ip_list="$owned_ips\n$shared_ips"
if [ -z "$nohead" ]; then
# Print brief info
echo "${fields//$/}"
for a in $fields; do
echo -e "--------- \c"
done
echo
fi
# Starting main loop
for IP in $(echo -e "$ip_list" | sort -u); do
IP=$(basename $IP)
ip_data=$(cat $V_IPS/$IP)
# Assign key/value config
eval $ip_data
# Print result line
eval echo "$fields"
for IP in $(ls $V_IPS/); do
source $V_IPS/$IP
if [ "$OWNER" = "$user" ]; then
eval echo "$fields"
else
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
eval echo "$fields"
fi
fi
done
}

View file

@ -87,10 +87,10 @@ fields="$fields \$DNS_DOMAINS \$DNS_RECORDS \$MAIL_DOMAINS \$MAIL_ACCOUNTS"
fields="$fields \$DATABASES \$CRON_JOBS \$DISK_QUOTA \$BANDWIDTH \$NS \$SHELL"
fields="$fields \$BACKUPS \$CONTACT \$REPORTS \$RKEY \$SUSPENDED"
fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS"
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_OWNED"
fields="$fields \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB \$U_DISK_MAIL"
fields="$fields \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL"
fields="$fields \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS "
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_AVAIL"
fields="$fields \$IP_OWNED \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB"
fields="$fields \$U_DISK_MAIL \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS"
fields="$fields \$U_WEB_SSL \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS"
fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS"
fields="$fields \$DATE"

View file

@ -55,6 +55,7 @@ for user in $user_list; do
SUSPENDED_MAIL=0
SUSPENDED_DB=0
SUSPENDED_CRON=0
IP_AVAIL=0
IP_OWNED=0
U_USERS=0
DISK=0
@ -85,7 +86,6 @@ for user in $user_list; do
if [ "$user" = 'admin' ]; then
SUSPENDED_USERS=$(grep "SUSPENDED='yes'" $V_USERS/*/user.conf|wc -l)
U_USERS=$(ls $V_USERS/|wc -l)
U_USERS=$((U_USERS - 1))
fi
# Checking ip
@ -94,7 +94,14 @@ for user in $user_list; do
if [ "$OWNER" = "$user" ]; then
IP_OWNED=$((IP_OWNED + 1))
fi
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
IP_AVAIL=$((IP_AVAIL + IP_OWNED))
IP_AVAIL=$((IP_AVAIL + 1))
fi
done
if [ "$user" = 'admin' ]; then
IP_AVAIL=$(ls $V_IPS | wc -l)
fi
# Checking web system
for domain_str in $(cat $V_USERS/$user/web.conf) ;do
@ -159,6 +166,7 @@ for user in $user_list; do
update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL"
update_user_value "$user" '$SUSPENDED_DB' "$SUSPENDED_DB"
update_user_value "$user" '$SUSPENDED_CRON' "$SUSPENDED_CRON"
update_user_value "$user" '$IP_AVAIL' "$IP_AVAIL"
update_user_value "$user" '$IP_OWNED' "$IP_OWNED"
update_user_value "$user" '$U_USERS' "$U_USERS"
update_user_value "$user" '$U_DISK' "$U_DISK"