diff options
Diffstat (limited to 'scripts/lib/mic/imager/direct.py')
| -rw-r--r-- | scripts/lib/mic/imager/direct.py | 42 |
1 files changed, 10 insertions, 32 deletions
diff --git a/scripts/lib/mic/imager/direct.py b/scripts/lib/mic/imager/direct.py index 2e6914b86d..b96740d0f4 100644 --- a/scripts/lib/mic/imager/direct.py +++ b/scripts/lib/mic/imager/direct.py | |||
| @@ -79,9 +79,10 @@ class DirectImageCreator(BaseImageCreator): | |||
| 79 | self.staging_data_dir = staging_data_dir | 79 | self.staging_data_dir = staging_data_dir |
| 80 | 80 | ||
| 81 | def __write_fstab(self, image_rootfs): | 81 | def __write_fstab(self, image_rootfs): |
| 82 | """overriden to generate fstab (temporarily) in rootfs. This | 82 | """overriden to generate fstab (temporarily) in rootfs. This is called |
| 83 | is called from mount_instroot, make sure it doesn't get called | 83 | from _create, make sure it doesn't get called from |
| 84 | from BaseImage.mount()""" | 84 | BaseImage.create() |
| 85 | """ | ||
| 85 | if image_rootfs is None: | 86 | if image_rootfs is None: |
| 86 | return None | 87 | return None |
| 87 | 88 | ||
| @@ -217,29 +218,15 @@ class DirectImageCreator(BaseImageCreator): | |||
| 217 | # | 218 | # |
| 218 | # Actual implemention | 219 | # Actual implemention |
| 219 | # | 220 | # |
| 220 | def _mount_instroot(self): | 221 | def _create(self): |
| 221 | """ | 222 | """ |
| 222 | For 'wic', we already have our build artifacts and don't want | 223 | For 'wic', we already have our build artifacts - we just create |
| 223 | to loop mount anything to install into, we just create | ||
| 224 | filesystems from the artifacts directly and combine them into | 224 | filesystems from the artifacts directly and combine them into |
| 225 | a partitioned image. | 225 | a partitioned image. |
| 226 | |||
| 227 | We still want to reuse as much of the basic mic machinery | ||
| 228 | though; despite the fact that we don't actually do loop or any | ||
| 229 | other kind of mounting we still want to do many of the same | ||
| 230 | things to prepare images, so we basically just adapt to the | ||
| 231 | basic framework and reinterpret what 'mounting' means in our | ||
| 232 | context. | ||
| 233 | |||
| 234 | _instroot would normally be something like | ||
| 235 | /var/tmp/wic/build/imgcreate-s_9AKQ/install_root, for | ||
| 236 | installing packages, etc. We don't currently need to do that, | ||
| 237 | so we simplify life by just using /var/tmp/wic/build as our | ||
| 238 | workdir. | ||
| 239 | """ | 226 | """ |
| 240 | parts = self._get_parts() | 227 | parts = self._get_parts() |
| 241 | 228 | ||
| 242 | self.__instimage = PartitionedMount(self._instroot) | 229 | self.__instimage = PartitionedMount() |
| 243 | 230 | ||
| 244 | for p in parts: | 231 | for p in parts: |
| 245 | # as a convenience, set source to the boot partition source | 232 | # as a convenience, set source to the boot partition source |
| @@ -250,20 +237,11 @@ class DirectImageCreator(BaseImageCreator): | |||
| 250 | for p in parts: | 237 | for p in parts: |
| 251 | # need to create the filesystems in order to get their | 238 | # need to create the filesystems in order to get their |
| 252 | # sizes before we can add them and do the layout. | 239 | # sizes before we can add them and do the layout. |
| 253 | # PartitionedMount.mount() actually calls __format_disks() | 240 | # PartitionedMount.create() actually calls __format_disks() |
| 254 | # to create the disk images and carve out the partitions, | 241 | # to create the disk images and carve out the partitions, |
| 255 | # then self.install() calls PartitionedMount.install() | 242 | # then self.install() calls PartitionedMount.install() |
| 256 | # which calls __install_partitition() for each partition | 243 | # which calls __install_partitition() for each partition |
| 257 | # to dd the fs into the partitions. It would be nice to | 244 | # to dd the fs into the partitions. |
| 258 | # be able to use e.g. ExtDiskMount etc to create the | ||
| 259 | # filesystems, since that's where existing e.g. mkfs code | ||
| 260 | # is, but those are only created after __format_disks() | ||
| 261 | # which needs the partition sizes so needs them created | ||
| 262 | # before its called. Well, the existing setup is geared | ||
| 263 | # to installing packages into mounted filesystems - maybe | ||
| 264 | # when/if we need to actually do package selection we | ||
| 265 | # should modify things to use those objects, but for now | ||
| 266 | # we can avoid that. | ||
| 267 | 245 | ||
| 268 | fstab = self.__write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) | 246 | fstab = self.__write_fstab(self.rootfs_dir.get("ROOTFS_DIR")) |
| 269 | 247 | ||
| @@ -294,7 +272,7 @@ class DirectImageCreator(BaseImageCreator): | |||
| 294 | self.__disks[disk_name] = disk_obj | 272 | self.__disks[disk_name] = disk_obj |
| 295 | self.__instimage.add_disk(disk_name, disk_obj) | 273 | self.__instimage.add_disk(disk_name, disk_obj) |
| 296 | 274 | ||
| 297 | self.__instimage.mount() | 275 | self.__instimage.create() |
| 298 | 276 | ||
| 299 | def install(self): | 277 | def install(self): |
| 300 | """ | 278 | """ |
