[gnome-boxes] media-manager: Add create_installer_media_from_config
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] media-manager: Add create_installer_media_from_config
- Date: Mon, 26 Nov 2012 16:21:46 +0000 (UTC)
commit 57cbb09698b36404cded972b8175a1281ae42820
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Sat Nov 17 18:31:32 2012 +0200
media-manager: Add create_installer_media_from_config
Add a method for creation of InstallerMedia from domain config.
https://bugzilla.gnome.org/show_bug.cgi?id=688770
src/media-manager.vala | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/src/media-manager.vala b/src/media-manager.vala
index ea46a61..536d198 100644
--- a/src/media-manager.vala
+++ b/src/media-manager.vala
@@ -28,6 +28,40 @@ private class Boxes.MediaManager : Object {
return create_installer_media_from_media (media);
}
+ public async InstallerMedia create_installer_media_from_config (GVirConfig.Domain config) {
+ var path = VMConfigurator.get_source_media_path (config);
+ var label = config.title;
+
+ Os? os = null;
+ Media? os_media = null;
+
+ try {
+ var os_id = VMConfigurator.get_os_id (config);
+ if (os_id != null) {
+ os = yield os_db.get_os_by_id (os_id);
+
+ var media_id = VMConfigurator.get_os_media_id (config);
+ if (media_id != null)
+ os_media = os_db.get_media_by_id (os, media_id);
+ }
+ } catch (OSDatabaseError error) {
+ warning ("%s", error.message);
+ }
+
+ var architecture = (os_media != null) ? os_media.architecture : null;
+ var resources = os_db.get_resources_for_os (os, architecture);
+
+ var media = new InstallerMedia.from_iso_info (path, label, os, os_media, resources);
+
+ try {
+ media = create_installer_media_from_media (media);
+ } catch (GLib.Error error) {
+ debug ("%s", error.message); // We just failed to create more specific media instance, no biggie!
+ }
+
+ return media;
+ }
+
public async GLib.List<InstallerMedia> list_installer_medias () {
var list = new GLib.List<InstallerMedia> ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]