summaryrefslogtreecommitdiff
path: root/virtManager/details.py
diff options
context:
space:
mode:
Diffstat (limited to 'virtManager/details.py')
-rw-r--r--virtManager/details.py52
1 files changed, 31 insertions, 21 deletions
diff --git a/virtManager/details.py b/virtManager/details.py
index 32d51d73..778c63aa 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -36,6 +36,7 @@ from virtManager.addhardware import vmmAddHardware
from virtManager.choosecd import vmmChooseCD
from virtManager.snapshots import vmmSnapshotPage
from virtManager.graphwidgets import Sparkline
+from virtManager.fsdetails import vmmFSDetails
from virtinst import VirtualRNGDevice
import virtinst
@@ -96,7 +97,9 @@ EDIT_WATCHDOG_ACTION,
EDIT_CONTROLLER_MODEL,
EDIT_TPM_TYPE,
-) = range(1, 42)
+
+EDIT_FS,
+) = range(1, 43)
# Columns in hw list model
@@ -551,6 +554,13 @@ class vmmDetails(vmmGObjectUI):
self.vm.connect("config-changed", self.refresh_vm_state)
self.vm.connect("resources-sampled", self.refresh_resources)
+ self.fsDetails = vmmFSDetails(self.vm)
+ self.fsDetails.set_initial_state()
+ fsAlignment = self.widget("fs-alignment")
+ fsAlignment.add(self.fsDetails.topwin)
+ self.fsDetails.connect("changed", lambda *x: self.enable_apply(x,
+ EDIT_FS))
+
self.populate_hw_list()
self.repopulate_boot_list()
@@ -582,6 +592,8 @@ class vmmDetails(vmmGObjectUI):
self.conn = None
self.addhwmenu = None
+ self.fsDetails.cleanup()
+
def show(self):
logging.debug("Showing VM details: %s", self.vm)
vis = self.is_visible()
@@ -589,6 +601,8 @@ class vmmDetails(vmmGObjectUI):
if vis:
return
+ self.fsDetails.topwin.show_all()
+
self.emit("details-opened")
self.refresh_vm_state()
@@ -1917,6 +1931,8 @@ class vmmDetails(vmmGObjectUI):
ret = self.config_smartcard_apply(key)
elif pagetype is HW_LIST_TYPE_CONTROLLER:
ret = self.config_controller_apply(key)
+ elif pagetype is HW_LIST_TYPE_FILESYSTEM:
+ ret = self.config_filesystem_apply(key)
else:
ret = False
except Exception, e:
@@ -2346,6 +2362,18 @@ class vmmDetails(vmmGObjectUI):
return self._change_config_helper(df, da, hf, ha)
+ # Filesystem options
+ def config_filesystem_apply(self, dev_id_info):
+ df, da, add_define, hf, ha, add_hotplug = self.make_apply_data()
+ ignore = add_hotplug
+
+ if self.edited(EDIT_FS):
+ self.fsDetails.validate_page_filesystem()
+ add_define(self.vm.define_filesystem, dev_id_info,
+ self.fsDetails.get_dev())
+
+ return self._change_config_helper(df, da, hf, ha)
+
# Device removal
def remove_device(self, dev_type, dev_id_info):
logging.debug("Removing device: %s %s", dev_type, dev_id_info)
@@ -3324,26 +3352,8 @@ class vmmDetails(vmmGObjectUI):
if not dev:
return
- self.widget("fs-type").set_text(dev.type)
-
- # mode can be irrelevant depending on the fs driver type
- # selected.
- if dev.mode:
- self.show_pair("fs-mode", True)
- self.widget("fs-mode").set_text(dev.mode)
- else:
- self.show_pair("fs-mode", False)
-
- self.widget("fs-driver").set_text(dev.driver or _("Default"))
-
- self.widget("fs-wrpolicy").set_text(dev.wrpolicy or _("Default"))
-
- self.widget("fs-source").set_text(dev.source or _("RAM"))
- self.widget("fs-target").set_text(dev.target)
- if dev.readonly:
- self.widget("fs-readonly").set_text("Yes")
- else:
- self.widget("fs-readonly").set_text("No")
+ self.fsDetails.set_dev(dev)
+ self.fsDetails.update_fs_rows()
def refresh_boot_page(self):
# Refresh autostart