#!/bin/bash

DRBDADM="/usr/sbin/drbdadm"
expected_cstate="Connected"
expected_dstate="UpToDate/UpToDate"
expected_role="Primary"

cstate=`$DRBDADM cstate r0`
if [ $? -ne 0 ]; then
  echo "Unable to get connection state!"
  exit 2
fi
invalid_cstates=`echo "$cstate" | grep -v "$expected_cstate" | wc -l`
if [ $invalid_cstates -ne 0 ]; then
  echo "Not all volumes are connected!"
  exit 2
fi

dstate=`$DRBDADM dstate r0`
if [ $? -ne 0 ]; then
  echo "Unable to get disk state!"
  exit 2
fi
invalid_dstates=`echo "$dstate" | grep -v "$expected_dstate" | wc -l`
if [ $invalid_dstates -ne 0 ]; then
  echo "Not all volumes have a sane disk state!"
  exit 2
fi

roles=`$DRBDADM role r0`
if [ $? -ne 0 ]; then
  echo "Unable to get node roles!"
  exit 2
fi
invalid_roles=`echo "$roles" | grep -v "$expected_roles" | wc -l`
if [ $invalid_roles -ne 0 ]; then
  echo "Not all volumes have a primary!"
  exit 2
fi

echo "drbd volumes ok"
exit 0

