|
34 | 34 | import host_tools.network as net_tools |
35 | 35 | from framework import utils |
36 | 36 | from framework.defs import DEFAULT_BINARY_DIR, MAX_API_CALL_DURATION_MS |
| 37 | +from framework.guest import GuestDistro |
37 | 38 | from framework.http_api import Api |
38 | 39 | from framework.jailer import JailerContext |
39 | 40 | from framework.microvm_helpers import MicrovmHelpers |
@@ -221,6 +222,7 @@ def __init__( |
221 | 222 |
|
222 | 223 | self.kernel_file = None |
223 | 224 | self.rootfs_file = None |
| 225 | + self.distro = None |
224 | 226 | self.ssh_key = None |
225 | 227 | self.initrd_file = None |
226 | 228 | self.boot_args = None |
@@ -1062,6 +1064,7 @@ def make_snapshot( |
1062 | 1064 | snapshot_type=snapshot_type, |
1063 | 1065 | meta={ |
1064 | 1066 | "kernel_file": str(self.kernel_file), |
| 1067 | + "rootfs_file": str(self.rootfs_file) if self.rootfs_file else None, |
1065 | 1068 | "vcpus_count": self.vcpus_count, |
1066 | 1069 | }, |
1067 | 1070 | ) |
@@ -1125,6 +1128,9 @@ def restore_from_snapshot( |
1125 | 1128 | setattr(self, key, value) |
1126 | 1129 | # Adjust things just in case |
1127 | 1130 | self.kernel_file = Path(self.kernel_file) |
| 1131 | + if self.rootfs_file: |
| 1132 | + self.rootfs_file = Path(self.rootfs_file) |
| 1133 | + self.distro = GuestDistro(self.rootfs_file) |
1128 | 1134 |
|
1129 | 1135 | iface_overrides = [] |
1130 | 1136 | if rename_interfaces is not None: |
@@ -1306,6 +1312,7 @@ def build(self, kernel=None, rootfs=None, **kwargs): |
1306 | 1312 | rootfs_path = Path(vm.path) / rootfs.name |
1307 | 1313 | shutil.copyfile(rootfs, rootfs_path) |
1308 | 1314 | vm.rootfs_file = rootfs_path |
| 1315 | + vm.distro = GuestDistro(rootfs_path) |
1309 | 1316 | vm.ssh_key = ssh_key |
1310 | 1317 | return vm |
1311 | 1318 |
|
|
0 commit comments