62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
||
|
||
# Vars {{{
|
||
debug="1"
|
||
|
||
## Colors {{{
|
||
c_redb='\033[1;31m'
|
||
c_magentab='\033[1;35m'
|
||
c_reset='\033[0m'
|
||
## }}}
|
||
|
||
osd_id_start="0"
|
||
osd_id_end=$(sudo ceph osd getmaxosd | cut -d" " -f3)
|
||
# }}}
|
||
|
||
# Functions
|
||
# Check if an OSD exists {{{
|
||
check_osd() {
|
||
_osd_id="${1}"
|
||
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG : check_osd func − OSD ID to check : ${_osd_id}."
|
||
|
||
sudo ceph osd find "${_osd_id}" > /dev/null 2>&1
|
||
return $?
|
||
}
|
||
# }}}
|
||
# Check if an OSD exists {{{
|
||
get_osd_host() {
|
||
_osd_id="${1}"
|
||
osd_id_host=""
|
||
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG : get_osd_host func − OSD ID to check : ${_osd_id}."
|
||
|
||
osd_id_host=$(sudo ceph osd find "${_osd_id}" | awk -F\" '$2 ~ /host/ {print $4}')
|
||
}
|
||
# }}}
|
||
|
||
osd_id="${osd_id_start}"
|
||
|
||
while [ "${osd_id}" -lt "${osd_id_end}" ]; do
|
||
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG : Check if OSD ${osd_id} exists."
|
||
|
||
if check_osd "${osd_id}"
|
||
then
|
||
get_osd_host "${osd_id}"
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG : OSD ${osd_id} exists on ${c_redb}${osd_id_host}${c_reset}."
|
||
else
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "DEBUG : ! OSD ${osd_id} does exists !"
|
||
printf '%b\n' "The next OSD ID should be ${c_redb}${osd_id}${c_reset}. If you plan to use var :"
|
||
printf '%b\n' "osd_id=\"${osd_id}\""
|
||
exit 0
|
||
fi
|
||
|
||
[ "${debug}" -eq "0" ] && printf "${c_magentab}%-6b${c_reset}\n" "-----------------------------------------------"
|
||
|
||
## Increment OSD ID
|
||
osd_id=$((osd_id+1))
|
||
done
|
||
|
||
exit 0
|