diff options
Diffstat (limited to 'scripts/lib/wic/ksparser.py')
| -rw-r--r-- | scripts/lib/wic/ksparser.py | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/scripts/lib/wic/ksparser.py b/scripts/lib/wic/ksparser.py index a762d3b6cf..4ccd70dc55 100644 --- a/scripts/lib/wic/ksparser.py +++ b/scripts/lib/wic/ksparser.py | |||
| @@ -16,6 +16,7 @@ import os | |||
| 16 | import shlex | 16 | import shlex | 
| 17 | import logging | 17 | import logging | 
| 18 | import re | 18 | import re | 
| 19 | import uuid | ||
| 19 | 20 | ||
| 20 | from argparse import ArgumentParser, ArgumentError, ArgumentTypeError | 21 | from argparse import ArgumentParser, ArgumentError, ArgumentTypeError | 
| 21 | 22 | ||
| @@ -196,6 +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') | 
| 200 | bootloader.add_argument('--diskid') | ||
| 199 | bootloader.add_argument('--timeout', type=int) | 201 | bootloader.add_argument('--timeout', type=int) | 
| 200 | bootloader.add_argument('--source') | 202 | bootloader.add_argument('--source') | 
| 201 | 203 | ||
| @@ -296,6 +298,24 @@ class KickStart(): | |||
| 296 | if append_var: | 298 | if append_var: | 
| 297 | self.bootloader.append = ' '.join(filter(None, \ | 299 | self.bootloader.append = ' '.join(filter(None, \ | 
| 298 | (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 | |||
| 299 | else: | 319 | else: | 
| 300 | err = "%s:%d: more than one bootloader specified" \ | 320 | err = "%s:%d: more than one bootloader specified" \ | 
| 301 | % (confpath, lineno) | 321 | % (confpath, lineno) | 
