Disable queue if used slots reach a percentage
This commit is contained in:
parent
8b7a32ccfb
commit
d9beee6e27
|
@ -59,6 +59,16 @@ debug_message() { # {{{
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
# }}}
|
# }}}
|
||||||
|
define_vars() { # {{{
|
||||||
|
|
||||||
|
## If sge_hostname wasn't defined
|
||||||
|
if [ -z "${sge_hostname}" ]; then
|
||||||
|
## Use local host for sge_hostname
|
||||||
|
sge_hostname="$(hostname -f)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
# }}}
|
||||||
is_apt_upgrade_absent() { # {{{
|
is_apt_upgrade_absent() { # {{{
|
||||||
|
|
||||||
## Count the number of upgradable packages and substract 1 for the header
|
## Count the number of upgradable packages and substract 1 for the header
|
||||||
|
@ -105,6 +115,41 @@ APT upgrade available for this system: ${RED}${local_apt_upgrade_number:=/dev/nu
|
||||||
|
|
||||||
return "${return_apt_upgrade_present}"
|
return "${return_apt_upgrade_present}"
|
||||||
|
|
||||||
|
}
|
||||||
|
# }}}
|
||||||
|
is_sge_slots_more_than_percentage() { # {{{
|
||||||
|
|
||||||
|
local_percentage="${1}"
|
||||||
|
|
||||||
|
## Get the number of total SGE slots
|
||||||
|
local_sge_slots=$(qhost -h "${sge_hostname:=/dev/null}" -q -xml \
|
||||||
|
| grep --max-count=1 -- "'slots'" \
|
||||||
|
| sed 's;.*<queuevalue.*>\(.*\)</queuevalue>;\1;')
|
||||||
|
|
||||||
|
## Get the expected percentage of total SGE slots
|
||||||
|
local_sge_slots_percentage=$(echo "${local_sge_slots}" \
|
||||||
|
| awk -v percentage="0.${local_percentage}" '{ print int($1 * percentage) }')
|
||||||
|
|
||||||
|
## Get the number of SGE used slots
|
||||||
|
local_sge_slots_used=$(qhost -h "${sge_hostname:=/dev/null}" -q -xml \
|
||||||
|
| grep --max-count=1 -- "'slots_used'" \
|
||||||
|
| sed 's;.*<queuevalue.*>\(.*\)</queuevalue>;\1;')
|
||||||
|
|
||||||
|
if [ "${local_sge_slots_used}" -ge "${local_sge_slots_percentage}" ]; then
|
||||||
|
## Used slots is greater or equal than expected percentage
|
||||||
|
return_sge_slots_percentage="0"
|
||||||
|
## Simple debug message to valid current variable
|
||||||
|
debug_message "is_sge_slots_more_than_percentage (${local_percentage}%) − \
|
||||||
|
Used slots has reached ${local_percentage}% of total slots: ${RED}${local_sge_slots_used:=/dev/null}${COLOR_DEBUG}/${local_sge_slots}."
|
||||||
|
else
|
||||||
|
return_sge_slots_percentage="1"
|
||||||
|
## Simple debug message to valid current variable
|
||||||
|
debug_message "is_sge_slots_more_than_percentage (${local_percentage}%) − \
|
||||||
|
Used slots did not reach ${local_percentage}% of total slots: ${RED}${local_sge_slots_used:=/dev/null}${COLOR_DEBUG}/${local_sge_slots}."
|
||||||
|
fi
|
||||||
|
|
||||||
|
return "${return_sge_slots_percentage}"
|
||||||
|
|
||||||
}
|
}
|
||||||
# }}}
|
# }}}
|
||||||
is_pending_job_empty() { # {{{
|
is_pending_job_empty() { # {{{
|
||||||
|
@ -133,6 +178,9 @@ Pending jobs for the compute cluster: ${RED}${local_pending_jobs:=/dev/null}${CO
|
||||||
# }}}
|
# }}}
|
||||||
main() { # {{{
|
main() { # {{{
|
||||||
|
|
||||||
|
## Define all vars
|
||||||
|
define_vars
|
||||||
|
|
||||||
sge_disable_host_queue_script="${PROGDIR}/sge.disable.host.queue.sh"
|
sge_disable_host_queue_script="${PROGDIR}/sge.disable.host.queue.sh"
|
||||||
|
|
||||||
## If NO APT package upgrade is available {{{
|
## If NO APT package upgrade is available {{{
|
||||||
|
@ -143,6 +191,17 @@ main() { # {{{
|
||||||
&& exit 0
|
&& exit 0
|
||||||
## }}}
|
## }}}
|
||||||
|
|
||||||
|
## If SGE used slots is more than 75% of total slots AND {{{
|
||||||
|
## APT package upgrade is available
|
||||||
|
### Create a temp file
|
||||||
|
### Disable SGE queue
|
||||||
|
is_sge_slots_more_than_percentage "75" \
|
||||||
|
&& is_apt_upgrade_present \
|
||||||
|
&& touch "${APT_TMP_FILE}" && echo "APT upgrade is available." >> "${APT_TMP_FILE}" \
|
||||||
|
&& sh "${sge_disable_host_queue_script}" \
|
||||||
|
&& exit 0
|
||||||
|
## }}}
|
||||||
|
|
||||||
## If pending job list is empty AND {{{
|
## If pending job list is empty AND {{{
|
||||||
## APT package upgrade is available
|
## APT package upgrade is available
|
||||||
### Create a temp file
|
### Create a temp file
|
||||||
|
|
Loading…
Reference in New Issue