mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
wic: add --fixed-size wks option
Added new option --fixed-size to wks. The option can be used to indicate the exact size of a partition. The option cannot be added together with --size, in which case an error will be raised. Other options that influence automatic partition size (--extra-space, --overhead-factor), if specifiec along with --fixed-size, will raise an error. If it partition data is larger than the amount of space specified with --fixed-size option wic will raise an error. (From OE-Core rev: fdd217ba874bd480e0180830fe2e6bd54dde19d9) Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
5903182484
commit
1988bae5bf
@@ -113,6 +113,9 @@ def systemidtype(arg):
|
||||
class KickStart():
|
||||
""""Kickstart parser implementation."""
|
||||
|
||||
DEFAULT_EXTRA_SPACE = 10*1024
|
||||
DEFAULT_OVERHEAD_FACTOR = 1.3
|
||||
|
||||
def __init__(self, confpath):
|
||||
|
||||
self.partitions = []
|
||||
@@ -127,16 +130,24 @@ class KickStart():
|
||||
part.add_argument('mountpoint', nargs='?')
|
||||
part.add_argument('--active', action='store_true')
|
||||
part.add_argument('--align', type=int)
|
||||
part.add_argument("--extra-space", type=sizetype, default=10*1024)
|
||||
part.add_argument("--extra-space", type=sizetype)
|
||||
part.add_argument('--fsoptions', dest='fsopts')
|
||||
part.add_argument('--fstype')
|
||||
part.add_argument('--label')
|
||||
part.add_argument('--no-table', action='store_true')
|
||||
part.add_argument('--ondisk', '--ondrive', dest='disk')
|
||||
part.add_argument("--overhead-factor", type=overheadtype, default=1.3)
|
||||
part.add_argument("--overhead-factor", type=overheadtype)
|
||||
part.add_argument('--part-type')
|
||||
part.add_argument('--rootfs-dir')
|
||||
part.add_argument('--size', type=sizetype, default=0)
|
||||
|
||||
# --size and --fixed-size cannot be specified together; options
|
||||
# ----extra-space and --overhead-factor should also raise a parser
|
||||
# --error, but since nesting mutually exclusive groups does not work,
|
||||
# ----extra-space/--overhead-factor are handled later
|
||||
sizeexcl = part.add_mutually_exclusive_group()
|
||||
sizeexcl.add_argument('--size', type=sizetype, default=0)
|
||||
sizeexcl.add_argument('--fixed-size', type=sizetype, default=0)
|
||||
|
||||
part.add_argument('--source')
|
||||
part.add_argument('--sourceparams')
|
||||
part.add_argument('--system-id', type=systemidtype)
|
||||
@@ -170,11 +181,33 @@ class KickStart():
|
||||
lineno += 1
|
||||
if line and line[0] != '#':
|
||||
try:
|
||||
parsed = parser.parse_args(shlex.split(line))
|
||||
line_args = shlex.split(line)
|
||||
parsed = parser.parse_args(line_args)
|
||||
except ArgumentError as err:
|
||||
raise KickStartError('%s:%d: %s' % \
|
||||
(confpath, lineno, err))
|
||||
if line.startswith('part'):
|
||||
# using ArgumentParser one cannot easily tell if option
|
||||
# was passed as argument, if said option has a default
|
||||
# value; --overhead-factor/--extra-space cannot be used
|
||||
# with --fixed-size, so at least detect when these were
|
||||
# passed with non-0 values ...
|
||||
if parsed.fixed_size:
|
||||
if parsed.overhead_factor or parsed.extra_space:
|
||||
err = "%s:%d: arguments --overhead-factor and --extra-space not "\
|
||||
"allowed with argument --fixed-size" \
|
||||
% (confpath, lineno)
|
||||
raise KickStartError(err)
|
||||
else:
|
||||
# ... and provide defaults if not using
|
||||
# --fixed-size iff given option was not used
|
||||
# (again, one cannot tell if option was passed but
|
||||
# with value equal to 0)
|
||||
if '--overhead-factor' not in line_args:
|
||||
parsed.overhead_factor = self.DEFAULT_OVERHEAD_FACTOR
|
||||
if '--extra-space' not in line_args:
|
||||
parsed.extra_space = self.DEFAULT_EXTRA_SPACE
|
||||
|
||||
self.partnum += 1
|
||||
self.partitions.append(Partition(parsed, self.partnum))
|
||||
elif line.startswith('include'):
|
||||
|
||||
Reference in New Issue
Block a user