[PATCH] Do not bypass name setters in the custom spoke. (#1138370)
David Lehman
dlehman at redhat.com
Tue Jan 6 20:21:51 UTC 2015
This way we get the validation provided by the setters.
---
pyanaconda/ui/gui/spokes/custom.py | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
index c626979..ff33a88 100644
--- a/pyanaconda/ui/gui/spokes/custom.py
+++ b/pyanaconda/ui/gui/spokes/custom.py
@@ -1220,14 +1220,20 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
#
if changed_name:
self.clear_errors()
- use_dev._name = name
- new_name = use_dev.name
- log.debug("changing name of %s to %s", old_name, new_name)
- if new_name in self._storage_playground.names:
- use_dev._name = old_name
- self.set_info(_("Specified name %s already in use.") % new_name)
+ try:
+ use_dev.name = name
+ except ValueError as e:
+ self._error = e
+ self.set_error(_("Invalid device name: %s") % name)
+ self.window.show_all()
else:
- updateSelectorFromDevice(selector, device)
+ new_name = use_dev.name
+ log.debug("changing name of %s to %s", old_name, new_name)
+ if new_name in self._storage_playground.names:
+ use_dev.name = old_name
+ self.set_info(_("Specified name %s already in use.") % new_name)
+ else:
+ updateSelectorFromDevice(selector, device)
self._populate_right_side(selector)
@@ -2114,10 +2120,18 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
self._storage_playground.devicetree.names.remove(container.name)
self._storage_playground.devicetree.names.append(self._device_container_name)
- # until there's a setter for btrfs volume name
- container._name = self._device_container_name
- if container.format.type == "btrfs":
- container.format.label = self._device_container_name
+ try:
+ container.name = self._device_container_name
+ except ValueError as e:
+ self._error = e
+ self.set_error(_("Invalid device name: %s") % self._device_container_name)
+ self.window.show_all()
+ self._device_container_name = container_name
+ self._on_update_settings_clicked(None)
+ return
+ else:
+ if container.format.type == "btrfs":
+ container.format.label = self._device_container_name
container_exists = getattr(container, "exists", False)
--
1.9.3
More information about the anaconda-patches
mailing list