n = i + 1;
d = "/dev/" + get_partition_device(self.device, n)
- subprocess.run(['tune2fs', '-O', '^metadata_csum', d],
+ argv = ['tune2fs', '-O', '^metadata_csum', d]
+ logging.debug(" ".join(argv))
+ subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)
with tempfile.TemporaryDirectory() as mnt:
- proc = subprocess.run(['mount', '-t', 'ext4', d, mnt],
+ argv = ['mount', '-t', 'ext4', d, mnt]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)
if proc.returncode != 0:
for param, value in self.params:
with open(os.path.join(mnt, param), 'w') as f:
f.write(value + '\n')
- subprocess.run(['umount', d],
+ argv = ['umount', d]
+ logging.debug(" ".join(argv))
+ subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)
}
def device_size(device):
- proc = subprocess.run(["sfdisk", "-s", device],
- stdout=subprocess.PIPE)
+ argv = ["sfdisk", "-s", device]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
+ stdout=subprocess.PIPE)
size = int(proc.stdout.decode('utf-8').strip()) >> 10
logging.debug(f"{device} size {size}MiB")
return size
#TODO: unmount target devices
if support_delete:
- logging.debug("Removing old partitions")
- subprocess.run(['sfdisk', '--delete', Device])
+ logging.info("Removing old partitions")
+ argv = ['sfdisk', '--delete', Device]
+ logging.debug(" ".join(argv))
+ subprocess.run(argv)
else:
- logging.debug("Removing old partition table")
- subprocess.run(['dd', 'if=/dev/zero', 'of=' + Device,
- 'bs=512', 'count=32', 'conv=notrunc'])
+ logging.info("Removing old partition table")
+ argv = ['dd', 'if=/dev/zero', 'of=' + Device,
+ 'bs=512', 'count=32', 'conv=notrunc']
+ logging.debug(" ".join(argv))
+ subprocess.run(argv)
logging.debug("New partition table:\n" + str(target.label))
- proc = subprocess.run(['sfdisk', Device],
+ argv = ['sfdisk', Device]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdout=None,
stderr=None,
input=str(target.label).encode())
continue
logging.debug(f"Formatting {d} as {part['fstype']}")
if part['fstype'] == 'vfat':
- proc = subprocess.run(['mkfs.vfat', '-F', '16', '-n', part['name'], d],
+ argv = ['mkfs.vfat', '-F', '16', '-n', part['name'], d]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)
if proc.returncode != 0:
log.error(f"Failed to create FAT filesystem on {d}")
sys.exit(1)
elif part['fstype'] == 'ext4':
- proc = subprocess.run(['mkfs.ext4', '-q', '-L', part['name'], d],
+ argv = ['mkfs.ext4', '-q', '-L', part['name'], d]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)
if proc.returncode != 0:
logging.error(f"Failed to create '{Device}', the file alread exists")
sys.exit(1)
else:
- logging.debug(f"dd if=/dev/zero of={Device} conv=sparse bs=1M count={args.size}")
- rc = subprocess.run(["dd", "if=/dev/zero", f"of={Device}",
- "conv=sparse", "bs=1M", f"count={args.size}"])
+ argv = ["dd", "if=/dev/zero", f"of={Device}",
+ "conv=sparse", "bs=1M", f"count={args.size}"]
+ logging.debug(" ".join(argv))
+ rc = subprocess.run(argv)
if rc.returncode != 0:
logging.error("Failed to create the backing file")
sys.exit(1)
if os.path.isfile(Device):
global File
File = Device
- logging.debug(f"losetup --show --partscan --find {File}")
-
- proc = subprocess.run(["losetup", "--show", "--partscan",
- "--find", f"{File}"],
- stdout=subprocess.PIPE)
+ argv = ["losetup", "--show", "--partscan", "--find", f"{File}"]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
+ stdout=subprocess.PIPE)
Device = proc.stdout.decode('utf-8').strip()
if proc.returncode != 0:
logging.error(f"Failed to attach {File} to a loopback device")
return True
def get_partition_device(device, idx):
- proc = subprocess.run(['lsblk', device, '-o', 'TYPE,KNAME'],
+ argv = ['lsblk', device, '-o', 'TYPE,KNAME']
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdout=subprocess.PIPE)
for l in proc.stdout.decode('utf-8').splitlines():
match = re.search(f"^part\s+(.*[^0-9]{idx})", l)
logging.info(f"No partition defined for {name}, skipping.")
return
pdevice = "/dev/" + get_partition_device(Device, idx)
- proc_dd = subprocess.Popen(['dd', 'bs=4M',
- 'oflag=direct',
- 'iflag=fullblock',
- 'conv=nocreat',
- f"of={pdevice}"],
+ argv = ['dd', 'bs=4M',
+ 'oflag=direct',
+ 'iflag=fullblock',
+ 'conv=nocreat',
+ f"of={pdevice}"]
+ logging.debug(" ".join(argv))
+ proc_dd = subprocess.Popen(argv,
bufsize=(4 << 20),
stdin=subprocess.PIPE,
stdout=None, stderr=None)
group_size = hal_aligned_size + rootfs_aligned_size
super_size = metadata_aligned_size + 2 * group_size
- proc = subprocess.run(["lpmake", "-F",
- f"-o={super_path}",
- f"--device-size={super_size}",
- f"--metadata-size={metadata_size}",
- f"--metadata-slots={metadata_slots}",
- "-g", f"tizen_a:{group_size}",
- "-p", f"rootfs_a:none:{rootfs_aligned_size}:tizen_a",
- "-p", f"hal_a:none:{hal_aligned_size}:tizen_a",
- "-g", f"tizen_b:{group_size}",
- "-p", f"rootfs_b:none:{rootfs_aligned_size}:tizen_b",
- "-p", f"hal_b:none:{hal_aligned_size}:tizen_b",
- "-i", "rootfs_a={root_path}",
- "-i", "rootfs_b={root_path}",
- "-i", "hal_a={hal_path}",
- "-i", "hal_b={hal_path}"],
+ argv = ["lpmake", "-F",
+ f"-o={super_path}",
+ f"--device-size={super_size}",
+ f"--metadata-size={metadata_size}",
+ f"--metadata-slots={metadata_slots}",
+ "-g", f"tizen_a:{group_size}",
+ "-p", f"rootfs_a:none:{rootfs_aligned_size}:tizen_a",
+ "-p", f"hal_a:none:{hal_aligned_size}:tizen_a",
+ "-g", f"tizen_b:{group_size}",
+ "-p", f"rootfs_b:none:{rootfs_aligned_size}:tizen_b",
+ "-p", f"hal_b:none:{hal_aligned_size}:tizen_b",
+ "-i", f"rootfs_a={rootfs_path}",
+ "-i", f"rootfs_b={rootfs_path}",
+ "-i", f"hal_a={hal_path}",
+ "-i", f"hal_b={hal_path}"]
+ logging.debug(" ".join(argv))
+ proc = subprocess.run(argv,
stdin=subprocess.DEVNULL,
stdout=None, stderr=None)