summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic/ksparser.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/wic/ksparser.py')
-rw-r--r--scripts/lib/wic/ksparser.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py
index 48b5b09ddd..4ccd70dc55 100644
--- a/scripts/lib/wic/ksparser.py
+++ b/scripts/lib/wic/ksparser.py
@@ -16,6 +16,7 @@ import os
16import shlex 16import shlex
17import logging 17import logging
18import re 18import re
19import uuid
19 20
20from argparse import ArgumentParser, ArgumentError, ArgumentTypeError 21from argparse import ArgumentParser, ArgumentError, ArgumentTypeError
21 22
@@ -196,7 +197,7 @@ class KickStart():
196 bootloader.add_argument('--configfile') 197 bootloader.add_argument('--configfile')
197 bootloader.add_argument('--ptable', choices=('msdos', 'gpt', 'gpt-hybrid'), 198 bootloader.add_argument('--ptable', choices=('msdos', 'gpt', 'gpt-hybrid'),
198 default='msdos') 199 default='msdos')
199 bootloader.add_argument('--diskid', type=lambda x: int(x, 0)) 200 bootloader.add_argument('--diskid')
200 bootloader.add_argument('--timeout', type=int) 201 bootloader.add_argument('--timeout', type=int)
201 bootloader.add_argument('--source') 202 bootloader.add_argument('--source')
202 203
@@ -297,6 +298,24 @@ class KickStart():
297 if append_var: 298 if append_var:
298 self.bootloader.append = ' '.join(filter(None, \ 299 self.bootloader.append = ' '.join(filter(None, \
299 (self.bootloader.append, append_var))) 300 (self.bootloader.append, append_var)))
301 if parsed.diskid:
302 if parsed.ptable == "msdos":
303 try:
304 self.bootloader.diskid = int(parsed.diskid, 0)
305 except ValueError:
306 err = "with --ptbale msdos only 32bit integers " \
307 "are allowed for --diskid. %s could not " \
308 "be parsed" % self.ptable
309 raise KickStartError(err)
310 else:
311 try:
312 self.bootloader.diskid = uuid.UUID(parsed.diskid)
313 except ValueError:
314 err = "with --ptable %s only valid uuids are " \
315 "allowed for --diskid. %s could not be " \
316 "parsed" % (parsed.ptable, parsed.diskid)
317 raise KickStartError(err)
318
300 else: 319 else:
301 err = "%s:%d: more than one bootloader specified" \ 320 err = "%s:%d: more than one bootloader specified" \
302 % (confpath, lineno) 321 % (confpath, lineno)