#!/bin/bash

# 控制器编号（你可以按需修改）
CTL=0

echo "📦 获取所有 UGood 状态的硬盘..."

# 提取所有状态为 UGood 的 Enclosure:Slot 信息
mapfile -t DRIVE_LIST < <(
  /usr/sbin/storcli64 /c0 /eall /sall show | awk '$1 ~ /^[0-9]+:[0-9]/{ print $1 }'
)

#if [ ${#DRIVE_LIST[@]} -lt 3 ]; then
#  echo "❌ RAID5 至少需要 3 块 UGood 硬盘，当前只有 ${#DRIVE_LIST[@]} 块。"
#  exit 1
#fi

# 解析 enclosure ID（假设所有硬盘来自同一 Enclosure）
ENCLOSURE=$(echo "${DRIVE_LIST[0]}" | cut -d':' -f1)

# 提取 slot 列表，并排序
SLOTS=$(for d in "${DRIVE_LIST[@]}"; do echo $d | cut -d':' -f2; done | sort -n)

# 构建 slot 范围（支持连续范围，如 1-3,5）
build_slot_range() {
    local arr=($@)
    local range=""
    local start=${arr[0]}
    local end=$start

    for ((i=1; i<${#arr[@]}; i++)); do
        if [[ ${arr[i]} -eq $((end+1)) ]]; then
            end=${arr[i]}
        else
            if [[ $start -eq $end ]]; then
                range+="$start,"
            else
                range+="$start-$end,"
            fi
            start=${arr[i]}
            end=$start
        fi
    done

    # 最后一个范围
    if [[ $start -eq $end ]]; then
        range+="$start"
    else
        range+="$start-$end"
    fi

    echo "$range"
}

# 获取 slot 范围字符串
SLOT_RANGE=$(build_slot_range $SLOTS)

# 拼接最终 drives 参数
DRIVES="${ENCLOSURE}:${SLOT_RANGE}"

echo "✅ 准备使用硬盘：$DRIVES"

# 创建 RAID5 虚拟磁盘
echo "🚀 正在创建 RAID5..."
/usr/sbin/storcli64 /c$CTL add vd type=raid5 size=all names=VD1 drives=$DRIVES

# 查看结果
echo "📊 虚拟磁盘列表："
/usr/sbin/storcli64 /c$CTL /vall show

