Whamcloud - gitweb
LU-9533 tests: fix get_lustre_version in obdfilter-survey 38/27338/2
authorGregoire Pichon <gregoire.pichon@bull.net>
Tue, 30 May 2017 22:07:56 +0000 (00:07 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 7 Jun 2017 20:30:47 +0000 (20:30 +0000)
Retrieve the lustre version using the same method as in
test-framework.sh so that it works for every versions
of Lustre.

Signed-off-by: Gregoire Pichon <gregoire.pichon@bull.net>
Change-Id: I1fb14961b4ef1d5f3365ba78590459c5e6a75aef
Reviewed-on: https://review.whamcloud.com/27338
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Justin Miller <jmiller@cray.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre-iokit/obdfilter-survey/obdfilter-survey

index 12a8382..8b43ce5 100755 (executable)
@@ -236,16 +236,27 @@ print_summary () {
        echo $minusn "$*"
 }
 
+# Return a numeric version code based on a version string.  The version
+# code is useful for comparison two version strings to see which is newer.
 version_code() {
        # split arguments like "2.3.61" into "2", "3", "61"
        eval set -- $(tr "[:punct:]" " " <<< $*)
        echo -n "$((($1 << 16) | ($2 << 8) | $3))"
 }
 
+# inspired from the lustre_build_version routine in test-framework.sh
 get_lustre_version() {
        local host=${1:-${unique_hosts[0]}}
-       remote_shell $host $lctl get_param -n version |
-               awk '/^lustre:/ {print $2}'
+       local ver
+
+       ver=$(remote_shell $host "$lctl get_param -n version 2>/dev/null ||
+                               $lctl lustre_build_version 2>/dev/null ||
+                               $lctl --version 2>/dev/null | cut -d' ' -f2")
+       local lver=$(egrep -i "lustre: |version: " <<<$ver | head -n 1)
+       [ -n "$lver" ] && ver="$lver"
+
+       sed -e 's/.*: //' -e 's/^v//' -e 's/-.*//' -e 's/_/./g' <<<$ver |
+               cut -d. -f1-4
 }
 
 # Check whether the record size (KBytes) exceeds the maximum bulk I/O RPC size