Skip to content

Commit c8eff25

Browse files
committed
Make GPT default label type on all architectures
Exceptions are DASD drives on s390 and 32bit ARM. Everywhere else GPT will be default. Resolves: RHEL-52200
1 parent df3011e commit c8eff25

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

blivet/formats/disklabel.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,13 @@ def parted_device(self):
220220

221221
@classmethod
222222
def get_platform_label_types(cls):
223-
label_types = ["msdos", "gpt"]
223+
# always prefer gpt except for configurations below
224+
label_types = ["gpt", "msdos"]
224225
if arch.is_pmac():
225226
label_types = ["mac"]
226-
# always prefer gpt on aarch64, x86_64, and EFI plats except 32-bit ARM
227-
elif arch.is_aarch64() or arch.is_x86(bits=64) or (arch.is_efi() and not arch.is_arm()):
228-
label_types = ["gpt", "msdos"]
227+
# prefet msdos on 32-bit ARM
228+
elif arch.is_arm():
229+
label_types = ["msdos", "gpt"]
229230
elif arch.is_s390():
230231
label_types += ["dasd"]
231232

@@ -254,7 +255,7 @@ def _get_best_label_type(self):
254255
if arch.is_s390():
255256
if blockdev.s390.dasd_is_fba(self.device):
256257
# the device is FBA DASD
257-
return "msdos"
258+
return "gpt"
258259
elif self.parted_device.type == parted.DEVICE_DASD:
259260
# the device is DASD
260261
return "dasd"

tests/unit_tests/formats_tests/disklabel_test.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_platform_label_types(self, arch):
7171
arch.is_pmac.return_value = False
7272
arch.is_x86.return_value = False
7373

74-
self.assertEqual(disklabel_class.get_platform_label_types(), ["msdos", "gpt"])
74+
self.assertEqual(disklabel_class.get_platform_label_types(), ["gpt", "msdos"])
7575

7676
arch.is_pmac.return_value = True
7777
self.assertEqual(disklabel_class.get_platform_label_types(), ["mac"])
@@ -100,7 +100,7 @@ def test_platform_label_types(self, arch):
100100
arch.is_efi.return_value = False
101101

102102
arch.is_s390.return_value = True
103-
self.assertEqual(disklabel_class.get_platform_label_types(), ["msdos", "gpt", "dasd"])
103+
self.assertEqual(disklabel_class.get_platform_label_types(), ["gpt", "msdos", "dasd"])
104104
arch.is_s390.return_value = False
105105

106106
def test_label_type_size_check(self):
@@ -121,14 +121,14 @@ def test_label_type_size_check(self):
121121

122122
with patch.object(blivet.formats.disklabel.DiskLabel, "parted_device", new=PropertyMock(return_value=None)):
123123
# no parted device -> no passing size check
124-
self.assertEqual(dl._label_type_size_check("msdos"), False)
124+
self.assertEqual(dl._label_type_size_check("gpt"), False)
125125

126126
@patch("blivet.formats.disklabel.arch")
127127
def test_best_label_type(self, arch):
128128
"""
129129
1. is always in _disklabel_types
130130
2. is the default unless the device is too long for the default
131-
3. is msdos for fba dasd on S390
131+
3. is gpt for fba dasd on S390
132132
4. is dasd for non-fba dasd on S390
133133
"""
134134
dl = blivet.formats.disklabel.DiskLabel()
@@ -144,17 +144,17 @@ def test_best_label_type(self, arch):
144144
arch.is_x86.return_value = False
145145

146146
with patch.object(dl, '_label_type_size_check') as size_check:
147-
# size check passes for first type ("msdos")
147+
# size check passes for first type ("gpt")
148148
size_check.return_value = True
149-
self.assertEqual(dl._get_best_label_type(), "msdos")
149+
self.assertEqual(dl._get_best_label_type(), "gpt")
150150

151151
# size checks all fail -> label type is None
152152
size_check.return_value = False
153153
self.assertEqual(dl._get_best_label_type(), None)
154154

155-
# size check passes on second call -> label type is "gpt" (second in platform list)
155+
# size check passes on second call -> label type is "msdos" (second in platform list)
156156
size_check.side_effect = [False, True]
157-
self.assertEqual(dl._get_best_label_type(), "gpt")
157+
self.assertEqual(dl._get_best_label_type(), "msdos")
158158

159159
arch.is_pmac.return_value = True
160160
with patch.object(dl, '_label_type_size_check') as size_check:
@@ -175,10 +175,10 @@ def test_best_label_type(self, arch):
175175
size_check.return_value = True
176176
with patch("blivet.formats.disklabel.blockdev.s390") as _s390:
177177
_s390.dasd_is_fba.return_value = False
178-
self.assertEqual(dl._get_best_label_type(), "msdos")
178+
self.assertEqual(dl._get_best_label_type(), "gpt")
179179

180180
_s390.dasd_is_fba.return_value = True
181-
self.assertEqual(dl._get_best_label_type(), "msdos")
181+
self.assertEqual(dl._get_best_label_type(), "gpt")
182182

183183
_s390.dasd_is_fba.return_value = False
184184
dl._parted_device.type = parted.DEVICE_DASD

0 commit comments

Comments
 (0)