dsa-check-statusfile: port to python3
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-running-kernel
index 80f45bf..467c219 100755 (executable)
@@ -57,12 +57,14 @@ get_avail() {
 
        # DSA uses kernel versions of the form 2.6.29.3-dsa-dl380-oldxeon, where
        # Debian uses versions of the form 2.6.29-2-amd64
-       if [ "${kervers#3}" != "$kervers" ]; then
-               metavers=$(echo $kervers | sed -r -e 's/^3\.[0-9]+(\.[0-9])?+-[A-Za-z0-9\.]+-(.*)/\2/')
-       elif [ "${kervers//dsa}" != "$kervers" ]; then
-               metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+([\.0-9]+?)-(.*)/2.\1-\3/')
+       if [ "${kervers#2}" != "$kervers" ]; then
+               if [ "${kervers//dsa}" != "$kervers" ]; then
+                       metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+([\.0-9]+?)-(.*)/2.\1-\3/')
+               else
+                       metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+-[A-Za-z0-9\.]+-(.*)/2.\1-\2/')
+               fi
        else
-               metavers=$(echo $kervers | sed -r -e 's/^2\.(4|6)\.[0-9]+-[A-Za-z0-9\.]+-(.*)/2.\1-\2/')
+               metavers=$(echo $kervers | sed -r -e 's/^[0-9]+\.[0-9]+(\.[0-9])?+-[A-Za-z0-9\.]+-(.*)/\2/')
        fi
 
        # Attempt to track back to a metapackage failed.  bail
@@ -111,11 +113,12 @@ get_avail() {
        fi
 
        local availvrs=$(apt-cache policy ${imagename} 2>/dev/null | grep '^  Candidate' | awk '{print $2}')
-       local kernelversion=$(apt-cache policy ${prefix}-image-${kervers} 2>/dev/null | grep '^  Installed:' | awk '{print $2}')
-
-       if [ "$availvrs" = "$kernelversion" ]; then
-               return 0
-       fi
+       local kernelversion
+       for kernelversion in $(apt-cache policy ${prefix}-image-${kervers} ${prefix}-image-${kervers}-unsigned 2>/dev/null | grep '^  Installed:' | awk '{print $2}' | grep -F -v '(none)' ); do
+               if [ "$availvrs" = "$kernelversion" ]; then
+                       return 0
+               fi
+       done
 
        echo "$kernelversion != $availvrs"
        return 1