[PATCH 2/2] Network spoke: add sanity check for hostname setting (#856456)
Radek Vykydal
rvykydal at redhat.com
Tue Dec 18 14:14:57 UTC 2012
---
pyanaconda/ui/gui/spokes/network.py | 34 +++++++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py
index 45b0d5d..6cefb4a 100644
--- a/pyanaconda/ui/gui/spokes/network.py
+++ b/pyanaconda/ui/gui/spokes/network.py
@@ -41,7 +41,7 @@ from pyanaconda.ui.gui.categories.software import SoftwareCategory
from pyanaconda.ui.gui.hubs.summary import SummaryHub
from pyanaconda.ui.gui.utils import gtk_call_once
-from pyanaconda.network import NetworkDevice, netscriptsDir, kickstartNetworkData, getActiveNetDevs, logIfcfgFiles, update_hostname
+from pyanaconda.network import NetworkDevice, netscriptsDir, kickstartNetworkData, getActiveNetDevs, logIfcfgFiles, update_hostname, sanityCheckHostname
from gi.repository import GLib, GObject, Pango, Gio, NetworkManager, NMClient
import dbus
@@ -301,6 +301,8 @@ class NetworkControlBox(object):
self.on_edit_connection)
self.builder.get_object("button_wireless_options").connect("clicked",
self.on_edit_connection)
+ self.entry_hostname = self.builder.get_object("entry_hostname")
+
@property
def vbox(self):
@@ -951,11 +953,11 @@ class NetworkControlBox(object):
@property
def hostname(self):
- return self.builder.get_object("entry_hostname").get_text()
+ return self.entry_hostname.get_text()
@hostname.setter
def hostname(self, value):
- self.builder.get_object("entry_hostname").set_text(value)
+ self.entry_hostname.set_text(value)
class NetworkSpoke(NormalSpoke):
builderObjects = ["networkWindow", "liststore_wireless_network", "liststore_devices"]
@@ -1062,6 +1064,19 @@ class NetworkSpoke(NormalSpoke):
update_hostname(self.data)
self.network_control_box.hostname = self.data.network.hostname
+ def on_back_clicked(self, button):
+ hostname = self.network_control_box.hostname
+ (valid, error) = sanityCheckHostname(hostname)
+ if not valid:
+ self.clear_info()
+ msg = _("Hostname is not valid: %s") % error
+ self.set_warning(msg)
+ self.network_control_box.entry_hostname.grab_focus()
+ self.window.show_all()
+ else:
+ self.clear_info()
+ NormalSpoke.on_back_clicked(self, button)
+
class NetworkStandaloneSpoke(StandaloneSpoke):
builderObjects = ["networkStandaloneWindow", "networkControlBox_vbox", "liststore_wireless_network", "liststore_devices"]
mainWidgetName = "networkStandaloneWindow"
@@ -1119,6 +1134,19 @@ class NetworkStandaloneSpoke(StandaloneSpoke):
StandaloneSpoke.refresh(self)
self.network_control_box.refresh()
+ def _on_continue_clicked(self, cb):
+ hostname = self.network_control_box.hostname
+ (valid, error) = sanityCheckHostname(hostname)
+ if not valid:
+ self.clear_info()
+ msg = _("Hostname is not valid: %s") % error
+ self.set_warning(msg)
+ self.network_control_box.entry_hostname.grab_focus()
+ self.window.show_all()
+ else:
+ self.clear_info()
+ StandaloneSpoke._on_continue_clicked(self, cb)
+
def on_back_clicked(self, window):
self.window.hide()
Gtk.main_quit()
--
1.7.11.7
More information about the anaconda-patches
mailing list