Skip to content

Commit 368da01

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Add disk dev name check function" into stable/stein
2 parents dabf34c + 6bc6469 commit 368da01

File tree

1 file changed

+20
-39
lines changed

1 file changed

+20
-39
lines changed

docker/ceph/ceph-osd/extend_start.sh

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ function wait_partition_appear {
3333
exit 1
3434
}
3535

36+
# Few storage device like loop or NVMe, wiil add "p" between disk & partition
37+
# name if disk layout is end with number. This function will fix to correct format.
38+
function part_name_checker {
39+
if [[ $1 =~ .*[0-9] ]]; then
40+
echo ${1}p${2}
41+
else
42+
echo ${1}${2}
43+
fi
44+
}
45+
3646
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
3747
# of the KOLLA_BOOTSTRAP variable being set, including empty.
3848
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
@@ -48,47 +58,26 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
4858
if [[ "${USE_EXTERNAL_JOURNAL}" == "False" ]]; then
4959
# Formatting disk for ceph
5060
if [[ "${OSD_STORETYPE}" == "bluestore" ]]; then
51-
if [[ "${OSD_BS_DEV}" =~ "/dev/loop" ]]; then
52-
sgdisk --zap-all -- "${OSD_BS_DEV}""p${OSD_BS_PARTNUM}"
53-
else
54-
sgdisk --zap-all -- "${OSD_BS_DEV}""${OSD_BS_PARTNUM}"
55-
fi
61+
sgdisk --zap-all -- "$(part_name_checker $OSD_BS_DEV $OSD_BS_PARTNUM)"
5662

5763
if [ -n "${OSD_BS_BLK_DEV}" ] && [ "${OSD_BS_DEV}" != "${OSD_BS_BLK_DEV}" ] && [ -n "${OSD_BS_BLK_PARTNUM}" ]; then
58-
if [[ "${OSD_BS_BLK_DEV}" =~ "/dev/loop" ]]; then
59-
sgdisk --zap-all -- "${OSD_BS_BLK_DEV}""p${OSD_BS_BLK_PARTNUM}"
60-
else
61-
sgdisk --zap-all -- "${OSD_BS_BLK_DEV}""${OSD_BS_BLK_PARTNUM}"
62-
fi
64+
sgdisk --zap-all -- "$(part_name_checker ${OSD_BS_BLK_DEV} ${OSD_BS_BLK_PARTNUM})"
6365
else
6466
sgdisk --zap-all -- "${OSD_BS_DEV}"
6567
sgdisk --new=1:0:+100M --mbrtogpt -- "${OSD_BS_DEV}"
6668
sgdisk --largest-new=2 --mbrtogpt -- "${OSD_BS_DEV}"
6769
partprobe_device "${OSD_BS_DEV}"
6870

69-
if [[ "${OSD_BS_DEV}" =~ "/dev/loop" ]]; then
70-
wait_partition_appear "${OSD_BS_DEV}"p2
71-
sgdisk --zap-all -- "${OSD_BS_DEV}"p2
72-
else
73-
wait_partition_appear "${OSD_BS_DEV}"2
74-
sgdisk --zap-all -- "${OSD_BS_DEV}"2
75-
fi
71+
wait_partition_appear "$(part_name_checker $OSD_BS_DEV 2)"
72+
sgdisk --zap-all -- "$(part_name_checker $OSD_BS_DEV 2)"
7673
fi
7774

7875
if [ -n "${OSD_BS_WAL_DEV}" ] && [ "${OSD_BS_BLK_DEV}" != "${OSD_BS_WAL_DEV}" ] && [ -n "${OSD_BS_WAL_PARTNUM}" ]; then
79-
if [[ "${OSD_BS_WAL_DEV}" =~ "/dev/loop" ]]; then
80-
sgdisk --zap-all -- "${OSD_BS_WAL_DEV}""p${OSD_BS_WAL_PARTNUM}"
81-
else
82-
sgdisk --zap-all -- "${OSD_BS_WAL_DEV}""${OSD_BS_WAL_PARTNUM}"
83-
fi
76+
sgdisk --zap-all -- "$(part_name_checker $OSD_BS_WAL_DEV $OSD_BS_WAL_PARTNUM)"
8477
fi
8578

8679
if [ -n "${OSD_BS_DB_DEV}" ] && [ "${OSD_BS_BLK_DEV}" != "${OSD_BS_DB_DEV}" ] && [ -n "${OSD_BS_DB_PARTNUM}" ]; then
87-
if [[ "${OSD_BS_DB_DEV}" =~ "/dev/loop" ]]; then
88-
sgdisk --zap-all -- "${OSD_BS_DB_DEV}""p${OSD_BS_DB_PARTNUM}"
89-
else
90-
sgdisk --zap-all -- "${OSD_BS_DB_DEV}""${OSD_BS_DB_PARTNUM}"
91-
fi
80+
sgdisk --zap-all -- "$(part_name_checker $OSD_BS_DB_DEV $OSD_BS_DB_PARTNUM)"
9281
fi
9382
else
9483
sgdisk --zap-all -- "${OSD_DEV}"
@@ -106,13 +95,8 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
10695
OSD_DIR="/var/lib/ceph/osd/ceph-${OSD_ID}"
10796
mkdir -p "${OSD_DIR}"
10897

109-
if [[ "${OSD_BS_DEV}" =~ "/dev/loop" ]]; then
110-
mkfs.xfs -f "${OSD_BS_DEV}""p${OSD_BS_PARTNUM}"
111-
mount "${OSD_BS_DEV}""p${OSD_BS_PARTNUM}" "${OSD_DIR}"
112-
else
113-
mkfs.xfs -f "${OSD_BS_DEV}""${OSD_BS_PARTNUM}"
114-
mount "${OSD_BS_DEV}""${OSD_BS_PARTNUM}" "${OSD_DIR}"
115-
fi
98+
mkfs.xfs -f "$(part_name_checker $OSD_BS_DEV $OSD_BS_PARTNUM)"
99+
mount "$(part_name_checker $OSD_BS_DEV $OSD_BS_PARTNUM)" "${OSD_DIR}"
116100

117101
# This will through an error about no key existing. That is normal. It then
118102
# creates the key in the next step.
@@ -158,11 +142,8 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
158142

159143
ceph auth add "osd.${OSD_ID}" osd 'allow *' mon 'allow profile osd' -i "${OSD_DIR}/keyring"
160144

161-
if [[ "${OSD_BS_DEV}" =~ "/dev/loop" ]]; then
162-
umount "${OSD_BS_DEV}""p${OSD_BS_PARTNUM}"
163-
else
164-
umount "${OSD_BS_DEV}""${OSD_BS_PARTNUM}"
165-
fi
145+
umount "$(part_name_checker $OSD_BS_DEV $OSD_BS_PARTNUM)"
146+
166147
else
167148
OSD_ID=$(ceph osd create)
168149
OSD_DIR="/var/lib/ceph/osd/ceph-${OSD_ID}"

0 commit comments

Comments
 (0)