#!/bin/bash

#
# Copyright (C) 2010 Karel Zak <kzak@redhat.com>
#
# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#

TS_TOPDIR="${0%/*}/../.."
TS_DESC="MD raid1 (last partition)"

. $TS_TOPDIR/functions.sh
ts_init "$*"

ts_check_test_command "$TS_CMD_FDISK"
ts_check_test_command "$TS_CMD_BLKID"

ts_skip_nonroot
ts_check_prog "mdadm"

# set global variable TS_DEVICE
ts_scsi_debug_init dev_size_mb=51 sector_size=512

ts_log "Create partitions"
$TS_CMD_FDISK ${TS_DEVICE} >> $TS_OUTPUT 2>&1 <<EOF
n
p
1

+25M
n
p
2


p
w
q
EOF

# replace generated ID with something stable
$TS_CMD_FDISK ${TS_DEVICE} &> /dev/null <<EOF
x
i
0x1
r
w
q
EOF

udevadm settle
MD_DEVNAME=md8
MD_DEVICE=/dev/${MD_DEVNAME}

ts_lock "md"

ts_log "Create RAID1 device"
mdadm -q -S ${MD_DEVICE} &> /dev/null
mdadm -q --create ${MD_DEVICE} --metadata=0.90 --chunk=64 --level=1 \
	    --raid-devices=2 ${TS_DEVICE}1 ${TS_DEVICE}2 >> $TS_OUTPUT 2>&1
udevadm settle

ts_log "Probe whole-disk"
$TS_CMD_BLKID -p -o udev ${TS_DEVICE} 2>&1 | sort >> $TS_OUTPUT

ts_log "Probe first RAID member"
$TS_CMD_BLKID -p -o udev ${TS_DEVICE}1 2>&1 | sort >> $TS_OUTPUT

ts_log "Probe second RAID member"
$TS_CMD_BLKID -p -o udev ${TS_DEVICE}2 2>&1 | sort >> $TS_OUTPUT

mdadm -q -S ${MD_DEVICE} >> $TS_OUTPUT 2>&1

udevadm settle
ts_unlock "md"

ts_fdisk_clean $TS_DEVICE
# substitue UUIDs and major/minor number before comparison
sed -i \
  -e         's/^\(ID_FS_UUID\)=.*/\1=__ts_uuid__/' \
  -e     's/^\(ID_FS_UUID_ENC\)=.*/\1=__ts_uuid_enc__/' \
  -e 's/^\(ID_PART_ENTRY_DISK\)=.*/\1=__ts_majorminor__/' \
  $TS_OUTPUT

ts_finalize
