#!/bin/bash

$PCS resource create RES_NVMET_SUBSYS ocf:heartbeat:nvmet-subsystem nqn=$NQN_BASE:md op monitor interval=10s --group RES_NVMET_GROUP
$PCS constraint colocation add RES_NVMET_GROUP with MDADM_GROUP INFINITY
$PCS constraint order start MDADM_GROUP then start RES_NVMET_GROUP

namespace_id=1

while IFS= read -r md_line; do
    [ -z "$md_line" ] && continue
    md_dev=$(realpath "$(echo "$md_line" | awk '{print $2}')")
    dev_name=$(basename "$md_dev")

    /unas/sbin/dualcontroller/tool/nodes "mdadm --stop $md_dev"

    $PCS resource create RES_NVMET_NS_$dev_name ocf:heartbeat:nvmet-namespace nqn=$NQN_BASE:md namespace_id=$namespace_id backing_path=$md_dev uuid=$(uuidgen) op monitor interval=10s --group RES_NVMET_GROUP

    $PCS constraint order start RES_NVMET_NS_$dev_name then start RES_NVMET_PORT

    namespace_id=$((namespace_id + 1))
done < <(grep -E '^ARRAY' /unas/etc/dualcontroller/mdadm.conf)

$PCS resource create RES_NVMET_PORT ocf:heartbeat:nvmet-port port_id=1 type=tcp addr_fam=ipv4 svcid=4420 addr=$HEARTBEAT_IP nqns="$NQN_BASE:md" op monitor interval=10s
$PCS constraint colocation add RES_NVMET_PORT with MDADM_GROUP INFINITY
$PCS constraint order start RES_NVMET_GROUP then start RES_NVMET_PORT

$PCS resource create RES_NVME ocf:heartbeat:nvme-initiator nqn=$NQN_BASE:md addr=$HEARTBEAT_IP port=4420
$PCS resource clone RES_NVME meta clone-max=2 clone-node-max=1 notify=true interleave=true
$PCS constraint order RES_NVMET_PORT then RES_NVME-clone
$PCS constraint order RES_NVME-clone then lvmlockd-clone kind=Optional

