Whamcloud - gitweb
LU-8055 ldev: Add %H and %b to command sub
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 000be7a..c5d4ee3 100755 (executable)
@@ -6341,10 +6341,21 @@ run_test 91 "evict-by-nid support"
 generate_ldev_conf() {
        # generate an ldev.conf file
        local ldevconfpath=$1
+       local fstype=
+       local fsldevformat=""
        touch $ldevconfpath
-       printf "%s\t-\t%s-MGS0000\t%s\n" \
+
+       fstype=$(facet_fstype mgs)
+       if [ "$fstype" == "zfs" ]; then
+               fsldevformat="$fstype:"
+       else
+               fsldevformat=""
+       fi
+
+       printf "%s\t-\t%s-MGS0000\t%s%s\n" \
                $mgs_HOST \
                $FSNAME \
+               $fsldevformat \
                $(mgsdevname) > $ldevconfpath
 
        local mdsfo_host=$mdsfailover_HOST;
@@ -6353,11 +6364,19 @@ generate_ldev_conf() {
        fi
 
        for num in $(seq $MDSCOUNT); do
-               printf "%s\t%s\t%s-MDT%04d\t%s\n" \
+               fstype=$(facet_fstype mds$num)
+               if [ "$fstype" == "zfs" ]; then
+                       fsldevformat="$fstype:"
+               else
+                       fsldevformat=""
+               fi
+
+               printf "%s\t%s\t%s-MDT%04d\t%s%s\n" \
                        $mds_HOST \
                        $mdsfo_host \
                        $FSNAME \
                        $num \
+                       $fsldevformat \
                        $(mdsdevname $num) >> $ldevconfpath
        done
 
@@ -6367,11 +6386,19 @@ generate_ldev_conf() {
        fi
 
        for num in $(seq $OSTCOUNT); do
-               printf "%s\t%s\t%s-OST%04d\t%s\n" \
+               fstype=$(facet_fstype ost$num)
+               if [ "$fstype" == "zfs" ]; then
+                       fsldevformat="$fstype:"
+               else
+                       fsldevformat=""
+               fi
+
+               printf "%s\t%s\t%s-OST%04d\t%s%s\n" \
                        $ost_HOST \
                        $ostfo_host \
                        $FSNAME \
                        $num \
+                       $fsldevformat \
                        $(ostdevname $num) >> $ldevconfpath
        done
 
@@ -6613,6 +6640,58 @@ test_95() {
 }
 run_test 95 "ldev should only allow one label filter"
 
+test_96() {
+       if [ -z "$LDEV" ]; then
+               error "ldev is missing!"
+       fi
+
+       local LDEVCONFPATH=$TMP/ldev.conf
+       local NIDSPATH=$TMP/nids
+
+       generate_ldev_conf $LDEVCONFPATH
+       generate_nids $NIDSPATH
+
+       local LDEV_OUTPUT=$TMP/ldev-output.txt
+       $LDEV -c $LDEVCONFPATH -n $NIDSPATH -H $mgs_HOST \
+               echo %H-%b | \
+               awk '{print $2}' > $LDEV_OUTPUT
+
+       # ldev failed, error
+       if [ $? -ne 0 ]; then
+               rm $LDEVCONFPATH $NIDSPATH $LDEV_OUTPUT
+               error "ldev failed to execute!"
+       fi
+
+       # expected output
+       local EXPECTED_OUTPUT=$TMP/ldev-expected-output.txt
+
+       echo "$mgs_HOST-$(facet_fstype mgs)" > $EXPECTED_OUTPUT
+
+       if [ "$mgs_HOST" == "$mds_HOST" ]; then
+               for num in $(seq $MDSCOUNT); do
+                       echo "$mds_HOST-$(facet_fstype mds$num)" \
+                       >> $EXPECTED_OUTPUT
+               done
+       fi
+
+       if [ "$mgs_HOST" == "$ost_HOST" ]; then
+               for num in $(seq $OSTCOUNT); do
+                       echo "$ost_HOST-$(facet_fstype ost$num)" \
+                       >> $EXPECTED_OUTPUT
+               done
+       fi
+
+       compare_ldev_output $LDEV_OUTPUT $EXPECTED_OUTPUT
+
+       if [ $? -ne 0 ]; then
+               rm $LDEVCONFPATH $NIDSPATH $EXPECTED_OUTPUT $LDEV_OUTPUT
+               error "ldev failed to produce the correct output!"
+       fi
+
+       rm $LDEVCONFPATH $NIDSPATH $EXPECTED_OUTPUT $LDEV_OUTPUT
+}
+run_test 96 "ldev returns hostname and backend fs correctly in command sub"
+
 if ! combined_mgs_mds ; then
        stop mgs
 fi