Merge "Add docker templates for octavia services"
[apex-tripleo-heat-templates.git] / network / scripts / run-os-net-config.sh
index 5df67b7..864da24 100755 (executable)
@@ -10,7 +10,7 @@
 # a deployment input via input_values
 # $network_config : the json serialized os-net-config config to apply
 #
-set -ux
+set -eux
 
 function get_metadata_ip() {
 
@@ -98,8 +98,10 @@ EOF_CAT
             fi
         fi
     done
+    set +e
     os-net-config -c /etc/os-net-config/dhcp_all_interfaces.yaml -v --detailed-exit-codes --cleanup
     RETVAL=$?
+    set -e
     if [[ $RETVAL == 2 ]]; then
         ping_metadata_ip
     elif [[ $RETVAL != 0 ]]; then
@@ -108,16 +110,26 @@ EOF_CAT
 }
 
 if [ -n '$network_config' ]; then
-    trap configure_safe_defaults EXIT
+    if [ -z "${disable_configure_safe_defaults:-}" ]; then
+        trap configure_safe_defaults EXIT
+    fi
 
     mkdir -p /etc/os-net-config
     # Note these variables come from the calling heat SoftwareConfig
     echo '$network_config' > /etc/os-net-config/config.json
+
+    if [ "$(type -t network_config_hook)" = "function" ]; then
+        network_config_hook
+    fi
+
     sed -i "s/bridge_name/${bridge_name:-''}/" /etc/os-net-config/config.json
     sed -i "s/interface_name/${interface_name:-''}/" /etc/os-net-config/config.json
 
+    set +e
     os-net-config -c /etc/os-net-config/config.json -v --detailed-exit-codes
     RETVAL=$?
+    set -e
+
     if [[ $RETVAL == 2 ]]; then
         ping_metadata_ip