From 8e3508ac4d411486fde558256265cd81da958dd6 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 17 Jun 2012 22:38:25 +0000 Subject: [PATCH] Update the output of some hooks. --- functions.cli | 46 +++++++++++++++++--------- functions.dhclient | 10 ++++++ functions.logging | 4 +-- hooks/zones/bridge | 3 +- hooks/zones/bridge.configs/ipv4-dhcp | 16 +++++---- hooks/zones/bridge.configs/ipv4-static | 11 +++--- hooks/zones/bridge.ports/ethernet | 19 +++++------ hooks/zones/pppoe.ports/ethernet | 2 -- 8 files changed, 68 insertions(+), 43 deletions(-) diff --git a/functions.cli b/functions.cli index 579a263f..34bfd714 100644 --- a/functions.cli +++ b/functions.cli @@ -57,16 +57,29 @@ function cli_device_headline() { ;; esac - cli_headline 1 "${headline_prefix}:" - # Print the hook for all zones. if [ "${type}" = "zone" ]; then - cli_print_fmt1 1 "Hook" "$(zone_get_hook ${device})" + headline_prefix="${headline_prefix} ($(zone_get_hook ${device}))" fi + cli_headline 1 "${headline_prefix}" # Print the device status. - local status=$(device_get_status ${device}) - cli_print_fmt1 1 "Status" "${STATUS_COLOUR[${status}]}${STATUS_TEXT[${status}]}${COLOUR_NORMAL}" + local status + case "$(device_get_status ${device})" in + ${STATUS_UP}) + status=${MSG_DEVICE_STATUS_UP} + ;; + ${STATUS_DOWN}) + status=${MSG_DEVICE_STATUS_DOWN} + ;; + ${STATUS_NOCARRIER}) + status=${MSG_DEVICE_STATUS_NOCARRIER} + ;; + *) + status=${MSG_DEVICE_STATUS_UNKNOWN} + ;; + esac + cli_print_fmt1 1 "Status" "${status}" if device_is_up ${device}; then cli_print_fmt1 1 "MTU" "$(device_get_mtu ${device})" fi @@ -103,25 +116,26 @@ function cli_device_stats() { cli_space } -function cli_status_headline() { - echo "XXX THIS FUNCTION IS DEPRECATED" - - local zone=${1} +function cli_headline() { + local level=${1} + local format=${2} + shift 2 - local state="${COLOUR_DOWN}DOWN${COLOUR_NORMAL}" - zone_is_up ${zone} && state="${COLOUR_UP}UP${COLOUR_NORMAL}" + local ident=$(cli_ident ${level}) - echo -e "${zone} - ${state} - $(zone_get_hook ${zone})" + local out + printf -v out "${ident}${COLOUR_BOLD}${format}${COLOUR_NORMAL}\n" "$@" + printf "${out}" } -function cli_headline() { +function cli_statusline() { local level=${1} shift - local message="$@" - local ident=$(cli_ident ${level}) + local head=${1} + shift - printf "${ident}${COLOUR_BOLD}$@${COLOUR_NORMAL}\n" + cli_print $(( ${level} - 1 )) "%-12s %s" "${head}" "$@" } function cli_print() { diff --git a/functions.dhclient b/functions.dhclient index e20ad149..f8f4c12d 100644 --- a/functions.dhclient +++ b/functions.dhclient @@ -42,6 +42,16 @@ dhclient_stop() { service_stop "${service}@${interface}" } +dhclient_status() { + local interface=${1} + local proto=${2} + + local service=$(dhclient_proto2service ${proto}) + assert isset service + + service_status "${service}@${interface}" +} + dhclient_proto2service() { local proto=${1} assert isset proto diff --git a/functions.logging b/functions.logging index 6cb82781..e43f64b8 100644 --- a/functions.logging +++ b/functions.logging @@ -50,9 +50,9 @@ function log() { case "${level}" in DEBUG|INFO|WARNING|ERROR) - message="${COLOUR_LOG[${level}]}${message}${COLOUR_NORMAL}" + message="${CLR_LOG[${level}]}${message}${CLR_RESET_ALL}" ;; esac - echo -e "${message}" >&2 + printf "${message}\n" >&2 } diff --git a/hooks/zones/bridge b/hooks/zones/bridge index 19959247..e5cf9c78 100755 --- a/hooks/zones/bridge +++ b/hooks/zones/bridge @@ -198,10 +198,11 @@ function _status() { cli_headline 2 "Ports:" zone_ports_status ${zone} + cli_space cli_headline 2 "Configurations:" zone_configs_cmd status ${zone} - cli_space + exit ${EXIT_OK} } diff --git a/hooks/zones/bridge.configs/ipv4-dhcp b/hooks/zones/bridge.configs/ipv4-dhcp index eb9ad33c..903839b4 100755 --- a/hooks/zones/bridge.configs/ipv4-dhcp +++ b/hooks/zones/bridge.configs/ipv4-dhcp @@ -93,16 +93,18 @@ function _status() { config_read $(zone_dir ${zone})/configs/${config} - printf " %10s - " "${HOOK}" - if zone_has_ip ${zone} ${ADDRESS}/${PREFIX}; then - echo -ne "${COLOUR_UP} UP ${COLOUR_NORMAL}" + local status + if dhclient_status ${zone} ipv4; then + status="${MSG_HOOK_UP}" else - echo -ne "${COLOUR_DOWN}DOWN${COLOUR_NORMAL}" + status="${MSG_HOOK_DOWN}" fi - echo " - ${ADDRESS}/${PREFIX}" + cli_statusline 3 "${HOOK}" "${status}" - if [ -n "${GATEWAY}" ]; then - echo " Gateway: ${GATEWAY}" + cli_print_fmt1 3 "IPv4 address" "$(routing_db_get ${zone} ipv4 local-ip-address)" + local gateway=$(routing_db_get ${zone} ipv4 remote-ip-address) + if isset gateway; then + cli_print_fmt1 3 "Gateway" "${gateway}" fi exit ${EXIT_OK} diff --git a/hooks/zones/bridge.configs/ipv4-static b/hooks/zones/bridge.configs/ipv4-static index fb72bcb3..d6ea3534 100755 --- a/hooks/zones/bridge.configs/ipv4-static +++ b/hooks/zones/bridge.configs/ipv4-static @@ -119,16 +119,17 @@ function _status() { config_read $(zone_dir ${zone})/configs/${config} - printf " %10s - " "${HOOK}" + local status if zone_has_ip ${zone} ${ADDRESS}/${PREFIX}; then - echo -ne "${COLOUR_UP} UP ${COLOUR_NORMAL}" + status=${MSG_HOOK_UP} else - echo -ne "${COLOUR_DOWN}DOWN${COLOUR_NORMAL}" + status=${MSG_HOOK_DOWN} fi - echo " - ${ADDRESS}/${PREFIX}" + cli_statusline 3 "${HOOK}" "${status}" + cli_print_fmt1 3 "IPv4 address" "${ADDRESS}/${PREFIX}" if [ -n "${GATEWAY}" ]; then - echo " Gateway: ${GATEWAY}" + cli_print_fmt1 3 "Gateway" "${GATEWAY}" fi exit ${EXIT_OK} diff --git a/hooks/zones/bridge.ports/ethernet b/hooks/zones/bridge.ports/ethernet index dcb6f840..a25141ad 100755 --- a/hooks/zones/bridge.ports/ethernet +++ b/hooks/zones/bridge.ports/ethernet @@ -135,23 +135,22 @@ function _status() { local zone=${1} local port=${2} - printf " %-10s - " "${port}" + local status if ! device_is_up ${port}; then - echo -ne "${COLOUR_DOWN} DOWN ${COLOUR_NORMAL}" + status=${MSG_DEVICE_STATUS_UP} elif ! device_has_carrier ${port}; then - echo -ne "${COLOUR_DOWN}NO-CARRIER${COLOUR_NORMAL}" + status=${MSG_DEVICE_STATUS_NOCARRIER} elif [ -n "$(stp_bridge_get_protocol ${zone})" ]; then local state=$(stp_port_get_state ${zone} ${port}) - local colour="COLOUR_STP_${state}" - printf "${!colour}%10s${COLOUR_NORMAL}" ${state} + state="MSG_STP_${state}" + status="${!state}" - echo -n " - DSR: $(stp_port_get_designated_root ${zone} ${port})" - echo -n " - Cost: $(stp_port_get_cost ${zone} ${port})" + status="${status} - DSR: $(stp_port_get_designated_root ${zone} ${port})" + status="${status} - Cost: $(stp_port_get_cost ${zone} ${port})" else - echo -ne "${COLOUR_UP} UP ${COLOUR_NORMAL}" + status=${MSG_DEVICE_STATUS_UP} fi - - echo + cli_statusline 3 "${port}" "${status}" exit ${EXIT_OK} } diff --git a/hooks/zones/pppoe.ports/ethernet b/hooks/zones/pppoe.ports/ethernet index 67a781ff..46411a74 100644 --- a/hooks/zones/pppoe.ports/ethernet +++ b/hooks/zones/pppoe.ports/ethernet @@ -111,5 +111,3 @@ function _status() { exit ${EXIT_OK} } - -run $@ -- 2.39.5