From 49d8be1a98db4724c290c8556bfa0968097ac246 Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Tue, 11 Nov 2014 15:42:07 +0000 Subject: Split create_local_system on various methods This way we can still use create_local_system to create a raw disk, but also reuse bits of it to be able e.g. to deploy to devices. --- morphlib/writeexts.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/morphlib/writeexts.py b/morphlib/writeexts.py index 31e7a0b6..3cdd0540 100644 --- a/morphlib/writeexts.py +++ b/morphlib/writeexts.py @@ -147,25 +147,37 @@ class WriteExtension(cliapp.Application): def create_local_system(self, temp_root, raw_disk): '''Create a raw system image locally.''' + + self.create_filesytem(raw_disk) + try: + self.format_btrfs(raw_disk) + self.create_system(temp_root, raw_disk) + except BaseException, e: + os.remove(raw_disk) + raise + + def create_filesytem(self, raw_disk): size = self.get_disk_size() if not size: raise cliapp.AppException('DISK_SIZE is not defined') self.create_raw_disk_image(raw_disk, size) + + def format_btrfs(self, raw_disk): try: self.mkfs_btrfs(raw_disk) - mp = self.mount(raw_disk) except BaseException: sys.stderr.write('Error creating disk image') - os.remove(raw_disk) raise + + def create_system(self, temp_root, raw_disk): try: + mp = self.mount(raw_disk) self.create_btrfs_system_layout( temp_root, mp, version_label='factory', disk_uuid=self.get_uuid(raw_disk)) except BaseException, e: sys.stderr.write('Error creating Btrfs system layout') self.unmount(mp) - os.remove(raw_disk) raise else: self.unmount(mp) -- cgit v1.2.1