summaryrefslogtreecommitdiff
path: root/scripts/lib/wic
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/wic')
-rw-r--r--scripts/lib/wic/plugins/imager/direct.py83
1 files changed, 43 insertions, 40 deletions
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py
index 481d24d5ba..2e2d26ad7d 100644
--- a/scripts/lib/wic/plugins/imager/direct.py
+++ b/scripts/lib/wic/plugins/imager/direct.py
@@ -23,14 +23,16 @@
# AUTHORS
# Tom Zanussi <tom.zanussi (at] linux.intel.com>
#
+
+import logging
import os
import shutil
-import uuid
+import sys
import tempfile
+import uuid
from time import strftime
-from wic import msger
from wic.filemap import sparse_copy
from wic.ksparser import KickStart, KickStartError
from wic.plugin import pluginmgr
@@ -38,6 +40,8 @@ from wic.pluginbase import ImagerPlugin
from wic.utils.errors import ImageError
from wic.utils.misc import get_bitbake_var, exec_cmd, exec_native_cmd
+logger = logging.getLogger('wic')
+
class DirectPlugin(ImagerPlugin):
"""
Install a system into a file containing a partitioned disk image.
@@ -54,7 +58,8 @@ class DirectPlugin(ImagerPlugin):
try:
self.ks = KickStart(wks_file)
except KickStartError as err:
- msger.error(str(err))
+ logger.error(str(err))
+ sys.exit(1)
# parse possible 'rootfs=name' items
self.rootfs_dir = dict(rdir.split('=') for rdir in rootfs_dir.split(' '))
@@ -204,12 +209,12 @@ class DirectPlugin(ImagerPlugin):
full_path = self._image.path
# Generate .bmap
if self.bmap:
- msger.debug("Generating bmap file for %s" % disk_name)
+ logger.debug("Generating bmap file for %s", disk_name)
exec_native_cmd("bmaptool create %s -o %s.bmap" % (full_path, full_path),
self.native_sysroot)
# Compress the image
if self.compressor:
- msger.debug("Compressing disk %s with %s" % (disk_name, self.compressor))
+ logger.debug("Compressing disk %s with %s", disk_name, self.compressor)
exec_cmd("%s %s" % (self.compressor, full_path))
def print_info(self):
@@ -239,7 +244,7 @@ class DirectPlugin(ImagerPlugin):
msg += ' KERNEL_DIR: %s\n' % self.kernel_dir
msg += ' NATIVE_SYSROOT: %s\n' % self.native_sysroot
- msger.info(msg)
+ logger.info(msg)
@property
def rootdev(self):
@@ -342,7 +347,7 @@ class PartitionedImage():
partition on the disk. The 'ptable_format' parameter defines the
partition table format and may be "msdos". """
- msger.debug("Assigning %s partitions to disks" % self.ptable_format)
+ logger.debug("Assigning %s partitions to disks", self.ptable_format)
# Go through partitions in the order they are added in .ks file
for num in range(len(self.partitions)):
@@ -389,10 +394,10 @@ class PartitionedImage():
# to move forward to the next alignment point
align_sectors = (part.align * 1024 // self.sector_size) - align_sectors
- msger.debug("Realignment for %s%s with %s sectors, original"
- " offset %s, target alignment is %sK." %
- (part.disk, self.numpart, align_sectors,
- self.offset, part.align))
+ logger.debug("Realignment for %s%s with %s sectors, original"
+ " offset %s, target alignment is %sK.",
+ part.disk, self.numpart, align_sectors,
+ self.offset, part.align)
# increase the offset so we actually start the partition on right alignment
self.offset += align_sectors
@@ -413,11 +418,10 @@ class PartitionedImage():
part.type = 'logical'
part.num = self.realpart + 1
- msger.debug("Assigned %s to %s%d, sectors range %d-%d size %d "
- "sectors (%d bytes)." \
- % (part.mountpoint, part.disk, part.num,
- part.start, self.offset - 1,
- part.size_sec, part.size_sec * self.sector_size))
+ logger.debug("Assigned %s to %s%d, sectors range %d-%d size %d "
+ "sectors (%d bytes).", part.mountpoint, part.disk,
+ part.num, part.start, self.offset - 1, part.size_sec,
+ part.size_sec * self.sector_size)
# Once all the partitions have been layed out, we can calculate the
# minumim disk size
@@ -432,8 +436,8 @@ class PartitionedImage():
# Start is included to the size so we need to substract one from the end.
end = start + size - 1
- msger.debug("Added '%s' partition, sectors %d-%d, size %d sectors" %
- (parttype, start, end, size))
+ logger.debug("Added '%s' partition, sectors %d-%d, size %d sectors",
+ parttype, start, end, size)
cmd = "parted -s %s unit s mkpart %s" % (device, parttype)
if fstype:
@@ -443,20 +447,20 @@ class PartitionedImage():
return exec_native_cmd(cmd, self.native_sysroot)
def create(self):
- msger.debug("Creating sparse file %s" % self.path)
+ logger.debug("Creating sparse file %s", self.path)
with open(self.path, 'w') as sparse:
os.ftruncate(sparse.fileno(), self.min_size)
- msger.debug("Initializing partition table for %s" % self.path)
+ logger.debug("Initializing partition table for %s", self.path)
exec_native_cmd("parted -s %s mklabel %s" %
(self.path, self.ptable_format), self.native_sysroot)
- msger.debug("Set disk identifier %x" % self.identifier)
+ logger.debug("Set disk identifier %x", self.identifier)
with open(self.path, 'r+b') as img:
img.seek(0x1B8)
img.write(self.identifier.to_bytes(4, 'little'))
- msger.debug("Creating partitions")
+ logger.debug("Creating partitions")
for part in self.partitions:
if part.num == 0:
@@ -494,39 +498,39 @@ class PartitionedImage():
# even number of sectors.
if part.mountpoint == "/boot" and part.fstype in ["vfat", "msdos"] \
and part.size_sec % 2:
- msger.debug("Subtracting one sector from '%s' partition to " \
- "get even number of sectors for the partition" % \
- part.mountpoint)
+ logger.debug("Subtracting one sector from '%s' partition to "
+ "get even number of sectors for the partition",
+ part.mountpoint)
part.size_sec -= 1
self._create_partition(self.path, part.type,
parted_fs_type, part.start, part.size_sec)
if part.part_type:
- msger.debug("partition %d: set type UID to %s" % \
- (part.num, part.part_type))
+ logger.debug("partition %d: set type UID to %s",
+ part.num, part.part_type)
exec_native_cmd("sgdisk --typecode=%d:%s %s" % \
(part.num, part.part_type,
self.path), self.native_sysroot)
if part.uuid and self.ptable_format == "gpt":
- msger.debug("partition %d: set UUID to %s" % \
- (part.num, part.uuid))
+ logger.debug("partition %d: set UUID to %s",
+ part.num, part.uuid)
exec_native_cmd("sgdisk --partition-guid=%d:%s %s" % \
(part.num, part.uuid, self.path),
self.native_sysroot)
if part.label and self.ptable_format == "gpt":
- msger.debug("partition %d: set name to %s" % \
- (part.num, part.label))
+ logger.debug("partition %d: set name to %s",
+ part.num, part.label)
exec_native_cmd("parted -s %s name %d %s" % \
(self.path, part.num, part.label),
self.native_sysroot)
if part.active:
flag_name = "legacy_boot" if self.ptable_format == 'gpt' else "boot"
- msger.debug("Set '%s' flag for partition '%s' on disk '%s'" % \
- (flag_name, part.num, self.path))
+ logger.debug("Set '%s' flag for partition '%s' on disk '%s'",
+ flag_name, part.num, self.path)
exec_native_cmd("parted -s %s set %d %s on" % \
(self.path, part.num, flag_name),
self.native_sysroot)
@@ -540,8 +544,8 @@ class PartitionedImage():
# isn't necessary).
if parted_fs_type == "fat16":
if self.ptable_format == 'msdos':
- msger.debug("Disable 'lba' flag for partition '%s' on disk '%s'" % \
- (part.num, self.path))
+ logger.debug("Disable 'lba' flag for partition '%s' on disk '%s'",
+ part.num, self.path)
exec_native_cmd("parted -s %s set %d lba off" % \
(self.path, part.num),
self.native_sysroot)
@@ -552,7 +556,7 @@ class PartitionedImage():
os.remove(image)
def assemble(self):
- msger.debug("Installing partitions")
+ logger.debug("Installing partitions")
for part in self.partitions:
source = part.source_file
@@ -560,10 +564,9 @@ class PartitionedImage():
# install source_file contents into a partition
sparse_copy(source, self.path, part.start * self.sector_size)
- msger.debug("Installed %s in partition %d, sectors %d-%d, "
- "size %d sectors" % \
- (source, part.num, part.start,
- part.start + part.size_sec - 1, part.size_sec))
+ logger.debug("Installed %s in partition %d, sectors %d-%d, "
+ "size %d sectors", source, part.num, part.start,
+ part.start + part.size_sec - 1, part.size_sec)
partimage = self.path + '.p%d' % part.num
os.rename(source, partimage)