59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
WAIT_TIME_SECS=30
|
|
USERNAME="root"
|
|
PASSWORD="secret"
|
|
BASE_URL="http://localhost"
|
|
LIMIT=1000
|
|
|
|
while [ 1 ]; do
|
|
sleep "${WAIT_TIME_SECS}"
|
|
|
|
# ctl targets
|
|
CTL_TARGET_COUNT=$(ctladm portlist | grep iqn | wc -l | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
echo "ctl target count: ${CTL_TARGET_COUNT}"
|
|
|
|
# ctl extents
|
|
CTL_EXTENT_COUNT=$(ctladm devlist | tail -n +2 | wc -l | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
echo "ctl extent count: ${CTL_EXTENT_COUNT}"
|
|
|
|
# ctl luns
|
|
CTL_LUN_COUNT=$(ctladm lunlist | wc -l | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
echo "ctl lun count: ${CTL_LUN_COUNT}"
|
|
|
|
# db targets
|
|
DB_TARGET_COUNT=$(curl --user "${USERNAME}:${PASSWORD}" "${BASE_URL}/api/v2.0/iscsi/target?limit=${LIMIT}" 2>/dev/null | jq length)
|
|
echo "DB target count: ${DB_TARGET_COUNT}"
|
|
|
|
# db extents
|
|
DB_EXTENT_COUNT=$(curl --user "${USERNAME}:${PASSWORD}" "${BASE_URL}/api/v2.0/iscsi/extent?limit=${LIMIT}" 2>/dev/null | jq length)
|
|
echo "DB extent count: ${DB_EXTENT_COUNT}"
|
|
|
|
# db luns
|
|
DB_LUN_COUNT=$(curl --user "${USERNAME}:${PASSWORD}" "${BASE_URL}/api/v2.0/iscsi/targetextent?limit=${LIMIT}" 2>/dev/null | jq length)
|
|
echo "DB lun count: ${DB_LUN_COUNT}"
|
|
|
|
REGEN=0
|
|
|
|
if [[ ${CTL_TARGET_COUNT} -ne ${DB_TARGET_COUNT} ]]; then
|
|
REGEN=1
|
|
fi
|
|
|
|
if [[ ${CTL_EXTENT_COUNT} -ne ${DB_EXTENT_COUNT} ]]; then
|
|
REGEN=1
|
|
fi
|
|
|
|
if [[ ${CTL_LUN_COUNT} -ne ${DB_LUN_COUNT} ]]; then
|
|
REGEN=1
|
|
fi
|
|
|
|
if [[ ${REGEN} -eq 1 ]]; then
|
|
echo "regen ctld config"
|
|
midclt call etc.generate ctld &>/dev/null
|
|
|
|
echo "reload ctld service"
|
|
/etc/rc.d/ctld reload &>/dev/null
|
|
fi
|
|
|
|
done
|