From 8707df4b3840a2edaea38cb5dd06cc7fb5bef9a3 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 23 Sep 2018 19:30:11 +0200 Subject: [PATCH] Cleanup code that deletes ports/zones This is used for network reset and it wasn't clear before if the command were successful Signed-off-by: Michael Tremer --- src/functions/functions.ports | 24 ++++++++++++++++++------ src/functions/functions.zone | 10 +++++++--- src/hooks/zones/bridge | 6 +++--- src/network | 4 ++-- 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/functions/functions.ports b/src/functions/functions.ports index ae619aba..f70adf63 100644 --- a/src/functions/functions.ports +++ b/src/functions/functions.ports @@ -19,8 +19,18 @@ # # ############################################################################### +ports_get_all() { + local port + for port in $(list_directory "${NETWORK_PORTS_DIR}"); do + if port_exists "${port}"; then + print "${port}" + fi + done +} + +# XXX TO BE REMOVED port_list() { - list_directory "${NETWORK_PORTS_DIR}" + ports_get_all "$@" } port_list_in_use() { @@ -95,10 +105,6 @@ port_settings_write() { settings_write "$(port_file "${port}")" ${args} } -ports_get_all() { - port_list -} - port_file() { local port="${1}" assert isset port @@ -188,7 +194,13 @@ port_destroy() { return ${EXIT_ERROR} fi - rm -rf "${NETWORK_PORTS_DIR}/${port}" + if ! rm -rf "${NETWORK_PORTS_DIR}/${port}"; then + log ERROR "Could not destroy port ${port}" + return ${EXIT_ERROR} + fi + + log INFO "Destroyed port ${port}" + return ${EXIT_OK} } port_create() { diff --git a/src/functions/functions.zone b/src/functions/functions.zone index 3483d4e7..b9d475f7 100644 --- a/src/functions/functions.zone +++ b/src/functions/functions.zone @@ -322,15 +322,19 @@ zone_destroy() { return ${EXIT_ERROR} fi - log INFO "Destroying zone ${zone}" - # Force the zone down. zone_is_active "${zone}" && zone_stop "${zone}" # Disable zone auto-start zone_disable "${zone}" - rm -rf "${NETWORK_ZONES_DIR}/${zone}" + if ! rm -rf "${NETWORK_ZONES_DIR}/${zone}"; then + log ERROR "Could not destroy zone ${zone}" + return ${EXIT_ERROR} + fi + + log INFO "Destroyed zone ${zone}" + return ${EXIT_OK} } zone_up() { diff --git a/src/hooks/zones/bridge b/src/hooks/zones/bridge index 92263741..38b2b5f8 100644 --- a/src/hooks/zones/bridge +++ b/src/hooks/zones/bridge @@ -329,6 +329,9 @@ hook_port_up() { # Read configuration values zone_port_settings_read "${zone}" "${port}" ${HOOK_PORT_SETTINGS} + # Make sure that the port is up + port_up "${port}" + # Attach the port to the bridge bridge_attach_device "${zone}" "${port}" @@ -341,9 +344,6 @@ hook_port_up() { stp_port_set_priority "${zone}" "${port}" "${PRIORITY}" fi - # Make sure that the port is up - port_up "${port}" - return ${EXIT_OK} } diff --git a/src/network b/src/network index 506b1e04..69d77d58 100644 --- a/src/network +++ b/src/network @@ -1209,12 +1209,12 @@ cli_reset() { done local zone - for zone in $(zones_get --all); do + for zone in $(zones_get_all); do zone_destroy "${zone}" done local port - for port in $(ports_get --all); do + for port in $(ports_get_all); do port_destroy "${port}" done -- 2.39.2