cli: handle case when dhcp server is not active

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2025-01-31 13:56:40 +01:00
parent cb73ddf6bf
commit a5aba02ddd
2 changed files with 42 additions and 12 deletions
+39
View File
@@ -70,6 +70,7 @@ options:
-p Show plain output, no bells or whistles
commands:
dhcp Show DHCP server
port PORT Show port configuration and link information
ports Show ports available for bridging
vlans Show port groups in bridge
@@ -88,6 +89,41 @@ commands:
EOF
}
is_dhcp_running()
{
sysrepocfg -X -f json -m infix-dhcp-server | jq -r '
."infix-dhcp-server:dhcp-server".enabled as $global |
if ."infix-dhcp-server:dhcp-server".subnet? then
(."infix-dhcp-server:dhcp-server".subnet[] |
select(.enabled != false)) |
if $global != false and . then "true" else "false" end
else "false" end
' 2>/dev/null | grep -q true
}
dhcp()
{
if ! is_dhcp_running; then
echo "DHCP server not enabled."
exit 0
fi
case $1 in
detail)
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
jq -C .
;;
stat*)
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
/usr/libexec/statd/cli-pretty "show-dhcp-server" -s
;;
*)
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
/usr/libexec/statd/cli-pretty "show-dhcp-server"
;;
esac
}
# Usage 1: show port eth0
# Usage 2: show port
# Usage 3: show ports
@@ -295,6 +331,9 @@ case $cmd in
help)
usage
;;
dhcp | dhcp-server)
dhcp $*
;;
port*)
ports $*
;;
+3 -12
View File
@@ -303,24 +303,15 @@
</COMMAND>
<COMMAND name="dhcp-server" help="Show DHCP server status">
<ACTION sym="script">
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
/usr/libexec/statd/cli-pretty "show-dhcp-server"
</ACTION>
<ACTION sym="script" in="tty" out="tty" interrupt="true">show dhcp</ACTION>
<SWITCH name="optional" min="0">
<COMMAND name="statistics" help="Show DHCP server statistics">
<ACTION sym="script">
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
/usr/libexec/statd/cli-pretty "show-dhcp-server" -s
</ACTION>
<ACTION sym="script" in="tty" out="tty" interrupt="true">show dhcp stat</ACTION>
</COMMAND>
<COMMAND name="detailed" help="Detailed (full operational) output">
<ACTION sym="script">
sysrepocfg -f json -X -d operational -m infix-dhcp-server | \
jq -C .
</ACTION>
<ACTION sym="script" in="tty" out="tty" interrupt="true">show dhcp detail</ACTION>
</COMMAND>
</SWITCH>