#!/bin/bash

# Nagios Exit Codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3

POOL=$1

if [ -z "$POOL" ]; then
    echo "UNKNOWN - Usage: $0 <pool_name>"
    exit $STATE_UNKNOWN
fi

ZSTATUS=$(zpool list -H -o health "$POOL" 2>/dev/null)

if [ $? -ne 0 ]; then
    echo "CRITICAL - ZFS pool '$POOL' not found!"
    exit $STATE_CRITICAL
fi

if [ "$ZSTATUS" == "ONLINE" ]; then
    echo "OK - ZFS pool $POOL is ONLINE"
    exit $STATE_OK
elif [ "$ZSTATUS" == "DEGRADED" ]; then
    echo "WARNING - ZFS pool $POOL is DEGRADED"
    exit $STATE_WARNING
else
    echo "CRITICAL - ZFS pool $POOL is $ZSTATUS !"
    exit $STATE_CRITICAL
fi