xpp: bugfix: waitfor_xpds twinstar, auto_assign_spans
authorOron Peled <oron.peled@xorcom.com>
Mon, 13 Jul 2015 16:09:42 +0000 (19:09 +0300)
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>
Sun, 19 Jul 2015 10:15:01 +0000 (13:15 +0300)
Exposed in twinstar setups where dahdi has auto_assign_spans=1:
* We start configuration with an empty /etc/dahdi/xpp_order
* If "XPP_HOTPLUG_DAHDI=yes", the astribank_hook removes
  the asterisk_is_starting semaphore too early.
* There's no point in waiting for non-existant or empty /etc/dahdi/xpp_order

Signed-off-by: Oron Peled <oron.peled@xorcom.com>
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

xpp/waitfor_xpds

index 876a0c8..41fce4c 100755 (executable)
@@ -89,6 +89,10 @@ waitfor_ab_initialization() {
        done
 }
 
+clean_lines() {
+       sed -e 's/#.*//' -e 'y/\t/ /' -e 's/^ *//' -e 's/ *$//' -e '$s/$/\n/' "$1"
+}
+
 # Any hardware?
 if ! dahdi_hardware="`which dahdi_hardware 2>/dev/null`"; then
        echo >&2 "$0: Missing dahdi_hardware"
@@ -150,13 +154,19 @@ cat /sys/bus/astribanks/devices/*/waitfor_xpds 2> /dev/null || :
 echo 1>&2 "Astribanks initializing spans"
 if [ "$XPP_HOTPLUG_DAHDI" = yes -a "$CALLED_FROM_ATRIBANK_HOOK" = '' -a \
                "$ASTERISK_SUPPORTS_DAHDI_HOTPLUG" != 'yes'  ]; then
-       if [ -f /etc/dahdi/xpp_order ]; then
-               # Now we can wait until the hotplug run would remove the semaphore
-               echo -n 1>&2 "Other DAHDI initializations... "
-               astribank_is_starting -v -w 1>&2
-       else
+       if [ ! -f /etc/dahdi/xpp_order ]; then
                echo 1>&2 "WARNING: No ASTERISK_SUPPORTS_DAHDI_HOTPLUG" \
                        " and no /etc/dahdi/xpp_order"
+       else
+               count=`clean_lines /etc/dahdi/xpp_order | wc -l`
+               if [ "$count" -le 0 ]; then
+                       echo 1>&2 "WARNING: No ASTERISK_SUPPORTS_DAHDI_HOTPLUG" \
+                               " and empty /etc/dahdi/xpp_order"
+               else
+                       # Now we can wait until the hotplug run would remove the semaphore
+                       echo -n 1>&2 "Other DAHDI initializations... "
+                       astribank_is_starting -v -w 1>&2
+               fi
        fi
 fi
 # All Astribanks initialized -- remove semaphore