[gnome-boxes/improve-storage-management-ux: 2/7] medias, vm-importer: Add InstallerMedia.skip_import property




commit e8db9b4a489935640aae41a9fdd67c2fad82e34d
Author: Felipe Borges <felipeborges gnome org>
Date:   Mon Dec 13 12:29:57 2021 +0100

    medias, vm-importer: Add InstallerMedia.skip_import property
    
    So an InstalledMedia can report skip_import == true when the source
    media is .qcow2 (our default/supported disk format). All other image/
    disk formats need conversion (import) to .qcow2.

 src/installed-media.vala | 3 +++
 src/installer-media.vala | 2 ++
 src/vm-importer.vala     | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/src/installed-media.vala b/src/installed-media.vala
index 49acf9a5..9ee1fa7b 100644
--- a/src/installed-media.vala
+++ b/src/installed-media.vala
@@ -54,6 +54,9 @@ public InstalledMedia (string path, bool known_qcow2 = false) throws GLib.Error
         if (!supported)
             throw new IOError.NOT_SUPPORTED (_("Unsupported disk image format."));
 
+        // FIXME with the proper implementation
+        skip_import = path.down ().has_suffix (".qcow2");
+
         device_file = path;
         from_image = true;
 
diff --git a/src/installer-media.vala b/src/installer-media.vala
index 080881c4..f991aee5 100644
--- a/src/installer-media.vala
+++ b/src/installer-media.vala
@@ -12,6 +12,8 @@
     public string mount_point;
     public bool from_image;
 
+    public bool skip_import { get; protected set; default = false; }
+
     public virtual Osinfo.DeviceList supported_devices {
         owned get {
             return (os != null)? os.get_all_devices (null) : new Osinfo.DeviceList ();
diff --git a/src/vm-importer.vala b/src/vm-importer.vala
index f61af3e9..66bffa74 100644
--- a/src/vm-importer.vala
+++ b/src/vm-importer.vala
@@ -20,7 +20,7 @@ public override void launch_vm (LibvirtMachine machine, int64 access_last_time =
         machine.vm_creator = this;
         machine.config.access_last_time = (access_last_time > 0)? access_last_time : get_real_time ();
 
-        if (clone || !source_media.device_file.has_suffix (".qcow2")) {
+        if (clone || !source_media.skip_import) {
             import_vm.begin (machine);
         } else {
             post_import_setup.begin (machine);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]