Make tmpdir a method parameter of prepare()

Fixes pylint errors.
This commit is contained in:
Gábor Stefanik 2023-12-22 12:47:09 +01:00
parent b45e1f81ae
commit be1333ee8b
2 changed files with 21 additions and 21 deletions

View File

@ -14,6 +14,7 @@ import shutil
import tarfile import tarfile
import requests import requests
# pylint: disable=too-many-instance-attributes
class Generator(): class Generator():
""" """
Class responsible for generating the basic media to be consumed. Class responsible for generating the basic media to be consumed.
@ -22,25 +23,25 @@ class Generator():
git_dir = os.path.join(os.path.dirname(os.path.join(__file__)), '..') git_dir = os.path.join(os.path.dirname(os.path.join(__file__)), '..')
distfiles_dir = os.path.join(git_dir, 'distfiles') distfiles_dir = os.path.join(git_dir, 'distfiles')
# pylint: disable=too-many-arguments def __init__(self, arch, external_sources, early_preseed, repo_path):
def __init__(self, tmpdir, arch, external_sources,
early_preseed, repo_path):
self.arch = arch self.arch = arch
self.early_preseed = early_preseed self.early_preseed = early_preseed
self.external_sources = external_sources self.external_sources = external_sources
self.repo_path = repo_path self.repo_path = repo_path
self.tmpdir = tmpdir
self.tmp_dir = tmpdir.path
self.external_dir = os.path.join(self.tmp_dir, 'external')
self.source_manifest = self.get_source_manifest(not self.external_sources) self.source_manifest = self.get_source_manifest(not self.external_sources)
self.tmp_dir = None
self.external_dir = None
def prepare(self, using_kernel=False, kernel_bootstrap=False, target_size=0): def prepare(self, tmpdir, using_kernel=False, kernel_bootstrap=False, target_size=0):
""" """
Prepare basic media of live-bootstrap. Prepare basic media of live-bootstrap.
/steps -- contains steps to be built /steps -- contains steps to be built
/ -- contains seed to allow steps to be built, containing custom / -- contains seed to allow steps to be built, containing custom
scripts and stage0-posix scripts and stage0-posix
""" """
self.tmp_dir = tmpdir.path
self.external_dir = os.path.join(self.tmp_dir, 'external')
# We use ext3 here; ext4 actually has a variety of extensions that # We use ext3 here; ext4 actually has a variety of extensions that
# have been added with varying levels of recency # have been added with varying levels of recency
# Linux 4.9.10 does not support a bunch of them # Linux 4.9.10 does not support a bunch of them
@ -56,17 +57,17 @@ class Generator():
self.tmp_dir = init_path self.tmp_dir = init_path
if self.repo_path or self.external_sources: if self.repo_path or self.external_sources:
self.tmpdir.add_disk("external", filesystem="ext3") tmpdir.add_disk("external", filesystem="ext3")
self.tmpdir.mount_disk("external", "external") tmpdir.mount_disk("external", "external")
else: else:
self.external_dir = os.path.join(self.tmp_dir, 'external') self.external_dir = os.path.join(self.tmp_dir, 'external')
elif using_kernel: elif using_kernel:
self.tmp_dir = os.path.join(self.tmp_dir, 'disk') self.tmp_dir = os.path.join(self.tmp_dir, 'disk')
self.tmpdir.add_disk("disk", tmpdir.add_disk("disk",
filesystem="ext3", filesystem="ext3",
size=(target_size + "M") if target_size else "16G", size=(target_size + "M") if target_size else "16G",
bootable=True) bootable=True)
self.tmpdir.mount_disk("disk", "disk") tmpdir.mount_disk("disk", "disk")
self.external_dir = os.path.join(self.tmp_dir, 'external') self.external_dir = os.path.join(self.tmp_dir, 'external')
os.makedirs(self.external_dir, exist_ok=True) os.makedirs(self.external_dir, exist_ok=True)
@ -95,9 +96,9 @@ class Generator():
self.create_builder_hex0_disk_image(self.tmp_dir + '.img', target_size) self.create_builder_hex0_disk_image(self.tmp_dir + '.img', target_size)
if kernel_bootstrap and (self.external_sources or self.repo_path): if kernel_bootstrap and (self.external_sources or self.repo_path):
self.tmpdir.umount_disk('external') tmpdir.umount_disk('external')
elif using_kernel: elif using_kernel:
self.tmpdir.umount_disk('disk') tmpdir.umount_disk('disk')
def steps(self): def steps(self):
"""Copy in steps.""" """Copy in steps."""

View File

@ -162,8 +162,7 @@ def main():
if args.tmpfs: if args.tmpfs:
tmpdir.tmpfs(size=args.tmpfs_size) tmpdir.tmpfs(size=args.tmpfs_size)
generator = Generator(tmpdir=tmpdir, generator = Generator(arch=args.arch,
arch=args.arch,
external_sources=args.external_sources, external_sources=args.external_sources,
repo_path=args.repo, repo_path=args.repo,
early_preseed=args.early_preseed) early_preseed=args.early_preseed)
@ -181,7 +180,7 @@ print(shutil.which('chroot'))
chroot_binary = run_as_root('python3', '-c', find_chroot, chroot_binary = run_as_root('python3', '-c', find_chroot,
capture_output=True).stdout.decode().strip() capture_output=True).stdout.decode().strip()
generator.prepare(using_kernel=False) generator.prepare(tmpdir, using_kernel=False)
arch = stage0_arch_map.get(args.arch, args.arch) arch = stage0_arch_map.get(args.arch, args.arch)
init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed') init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed')
@ -189,7 +188,7 @@ print(shutil.which('chroot'))
elif args.bwrap: elif args.bwrap:
if not args.internal_ci or args.internal_ci == "pass1": if not args.internal_ci or args.internal_ci == "pass1":
generator.prepare(using_kernel=False) generator.prepare(tmpdir, using_kernel=False)
arch = stage0_arch_map.get(args.arch, args.arch) arch = stage0_arch_map.get(args.arch, args.arch)
init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed') init = os.path.join(os.sep, 'bootstrap-seeds', 'POSIX', arch, 'kaem-optional-seed')
@ -235,20 +234,20 @@ print(shutil.which('chroot'))
elif args.bare_metal: elif args.bare_metal:
if args.kernel: if args.kernel:
generator.prepare(using_kernel=True, target_size=size) generator.prepare(tmpdir, using_kernel=True, target_size=size)
image_path = os.path.join(args.tmpdir, os.path.relpath(generator.tmp_dir, args.tmpdir)) image_path = os.path.join(args.tmpdir, os.path.relpath(generator.tmp_dir, args.tmpdir))
print("Please:") print("Please:")
print(f" 1. Take {image_path}/initramfs and your kernel, boot using this.") print(f" 1. Take {image_path}/initramfs and your kernel, boot using this.")
print(f" 2. Take {image_path}/disk.img and put this on a writable storage medium.") print(f" 2. Take {image_path}/disk.img and put this on a writable storage medium.")
else: else:
generator.prepare(kernel_bootstrap=True, target_size=size) generator.prepare(tmpdir, kernel_bootstrap=True, target_size=size)
image_path = os.path.join(args.tmpdir, os.path.relpath(generator.tmp_dir, args.tmpdir)) image_path = os.path.join(args.tmpdir, os.path.relpath(generator.tmp_dir, args.tmpdir))
print("Please:") print("Please:")
print(f" 1. Take {image_path}.img and write it to a boot drive and then boot it.") print(f" 1. Take {image_path}.img and write it to a boot drive and then boot it.")
else: else:
if args.kernel: if args.kernel:
generator.prepare(using_kernel=True, target_size=size) generator.prepare(tmpdir, using_kernel=True, target_size=size)
run(args.qemu_cmd, run(args.qemu_cmd,
'-enable-kvm', '-enable-kvm',
@ -262,7 +261,7 @@ print(shutil.which('chroot'))
'-nographic', '-nographic',
'-append', 'console=ttyS0 root=/dev/sda1 rootfstype=ext3 init=/init rw') '-append', 'console=ttyS0 root=/dev/sda1 rootfstype=ext3 init=/init rw')
else: else:
generator.prepare(kernel_bootstrap=True, target_size=size) generator.prepare(tmpdir, kernel_bootstrap=True, target_size=size)
arg_list = [ arg_list = [
'-enable-kvm', '-enable-kvm',
'-m', str(args.qemu_ram) + 'M', '-m', str(args.qemu_ram) + 'M',