[PATCH 00/15] remove Network(): remove unused functions
Radek Vykydal
rvykydal at redhat.com
Thu Jul 19 10:29:48 UTC 2012
move some methods out of Network object
still keeping old ui working
---
pyanaconda/gui.py | 4 +-
pyanaconda/iw/network_gui.py | 3 +-
pyanaconda/kickstart.py | 13 ++-
pyanaconda/network.py | 210 +++++++++++++--------------------
pyanaconda/textw/netconfig_text.py | 4 +-
tests/pyanaconda_test/network_test.py | 107 ++++-------------
6 files changed, 123 insertions(+), 218 deletions(-)
diff --git a/pyanaconda/gui.py b/pyanaconda/gui.py
index d8360a9..308ee86 100755
--- a/pyanaconda/gui.py
+++ b/pyanaconda/gui.py
@@ -934,7 +934,7 @@ class InstallInterface(InstallInterfaceBase):
w = self.anaconda.intf.waitWindow(_("Wireless setup"),
_("Scanning access points for wireless devices"))
# get available wireless APs
- dev_all_ssids = self.anaconda.network.getSSIDs()
+ dev_all_ssids = network.getSSIDs()
w.pop()
# select wireless APs
dev_ssids = selectSSIDsDialog(dev_all_ssids) or dev_all_ssids
@@ -961,7 +961,7 @@ class InstallInterface(InstallInterfaceBase):
w = WaitWindow(_("Waiting for NetworkManager"),
_("Waiting for NetworkManager to activate "
"these devices: %s") % ",".join(waited_devs))
- failed_devs = self.anaconda.network.waitForDevicesActivation(waited_devs)
+ failed_devs = network.waitForDevicesActivation(waited_devs)
w.pop()
if just_setup:
diff --git a/pyanaconda/iw/network_gui.py b/pyanaconda/iw/network_gui.py
index 1521db0..f1c19c0 100644
--- a/pyanaconda/iw/network_gui.py
+++ b/pyanaconda/iw/network_gui.py
@@ -95,7 +95,8 @@ class NetworkWindow(InstallWindow):
custom_icon="error")
self.hostnameError()
- self.anaconda.network.setHostname(hostname)
+ self.anaconda.network.hostname = hostname
+ network.setHostname(hostname)
return None
def NMCEExited(pid, condition, anaconda):
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index 8a74713..8238c88 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -645,7 +645,8 @@ class NetworkData(commands.network.F16_NetworkData):
def execute(self):
if flags.imageInstall:
if self.hostname != "":
- self.anaconda.network.setHostname(self.hostname)
+ self.anaconda.network.hostname = self.hostname
+ network.setHostname(self.hostname)
# Only set hostname
return
@@ -654,7 +655,8 @@ class NetworkData(commands.network.F16_NetworkData):
# only set hostname
if self.essid:
if self.hostname != "":
- self.anaconda.network.setHostname(self.hostname)
+ self.anaconda.network.hostname = self.hostname
+ network.setHostname(self.hostname)
return
devices = self.anaconda.network.netdevices
@@ -706,7 +708,8 @@ class NetworkData(commands.network.F16_NetworkData):
break
if self.hostname != "":
- self.anaconda.network.setHostname(self.hostname)
+ self.anaconda.network.hostname = self.hostname
+ network.setHostname(self.hostname)
if not dev:
# Only set hostname
return
@@ -757,10 +760,10 @@ class NetworkData(commands.network.F16_NetworkData):
dev.set(("ETHTOOL_OPTS", self.ethtool))
if self.nameserver != "":
- self.anaconda.network.setDNS(self.nameserver, dev.iface)
+ dev.setDNS(self.nameserver)
if self.gateway != "":
- self.anaconda.network.setGateway(self.gateway, dev.iface)
+ dev.setGateway(self.gateway)
if self.nodefroute:
dev.set (("DEFROUTE", "no"))
diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 859c368..0a5ad61 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -362,6 +362,31 @@ class NetworkDevice(IfcfgFile):
return False
+ def setGateway(self, gw):
+ if ':' in gw:
+ self.set(('IPV6_DEFAULTGW', gw))
+ else:
+ self.set(('GATEWAY', gw))
+
+ def unsetDNS(self):
+ """Unset all DNS* ifcfg parameters."""
+ i = 1
+ while True:
+ if self.get("DNS%d" % i):
+ self.unset("DNS%d" %i)
+ else:
+ break
+ i += 1
+
+ def setDNS(self, ns):
+ dns = ns.split(',')
+ i = 1
+ for addr in dns:
+ addr = addr.strip()
+ dnslabel = "DNS%d" % (i,)
+ self.set((dnslabel, addr))
+ i += 1
+
class WirelessNetworkDevice(NetworkDevice):
"""
@@ -469,11 +494,6 @@ class Network:
self.ksdevice = dev
break
-
-
- def getDevice(self, device):
- return self.netdevices[device]
-
def getKSDevice(self):
if self.ksdevice is None:
return None
@@ -483,42 +503,6 @@ class Network:
except:
return None
- def setHostname(self, hn):
- self.hostname = hn
- if flags.imageInstall:
- log.info("image install -- not setting hostname")
- return
-
- log.info("setting installation environment hostname to %s" % hn)
- iutil.execWithRedirect("hostname", ["-v", hn ],
- stdout="/dev/tty5", stderr="/dev/tty5")
-
- def unsetDNS(self, devname):
- """Unset all DNS* ifcfg parameters."""
- i = 1
- dev = self.netdevices[devname]
- while True:
- if dev.get("DNS%d" % i):
- dev.unset("DNS%d" %i)
- else:
- break
- i += 1
-
- def setDNS(self, ns, device):
- dns = ns.split(',')
- i = 1
- for addr in dns:
- addr = addr.strip()
- dnslabel = "DNS%d" % (i,)
- self.netdevices[device].set((dnslabel, addr))
- i += 1
-
- def setGateway(self, gw, device):
- if ':' in gw:
- self.netdevices[device].set(('IPV6_DEFAULTGW', gw))
- else:
- self.netdevices[device].set(('GATEWAY', gw))
-
@property
def gateway(self):
"""GATEWAY - last device in list wins"""
@@ -537,29 +521,6 @@ class Network:
return dev.get('IPV6_DEFAULTGW')
return ""
- def lookupHostname(self):
- # can't look things up if they don't exist!
- if not self.hostname or self.hostname == "localhost.localdomain":
- return None
-
- if not hasActiveNetDev():
- log.warning("no network devices were available to look up host name")
- return None
-
- try:
- (family, socktype, proto, canonname, sockaddr) = \
- socket.getaddrinfo(self.hostname, None, socket.AF_INET)[0]
- (ip, port) = sockaddr
- except:
- try:
- (family, socktype, proto, canonname, sockaddr) = \
- socket.getaddrinfo(self.hostname, None, socket.AF_INET6)[0]
- (ip, port, flowinfo, scopeid) = sockaddr
- except:
- return None
-
- return ip
-
# Note that the file is written-out only if there is a value
# that has changed.
def writeIfcfgFiles(self):
@@ -595,10 +556,6 @@ class Network:
"NM_CONTROLLED=yes\n")
ifcfgfile.close()
-
- def getSSIDs(self):
- return getSSIDs()
-
def writeKS(self, f):
devNames = self.netdevices.keys()
devNames.sort()
@@ -611,16 +568,6 @@ class Network:
line = "%s" % kickstartNetworkData(dev, self.hostname)
f.write(line)
- def hasNameServers(self, hash):
- if hash.keys() == []:
- return False
-
- for key in hash.keys():
- if key.upper().startswith('DNS'):
- return True
-
- return False
-
def hasWirelessDev(self):
for dev in self.netdevices:
if isys.isWirelessDevice(dev):
@@ -768,60 +715,12 @@ class Network:
f.write("options ipv6 disable=1\n")
f.close()
- def waitForDevicesActivation(self, devices):
- waited_devs_props = {}
-
- bus = dbus.SystemBus()
- nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH)
- device_paths = nm.get_dbus_method("GetDevices")()
- for device_path in device_paths:
- device = bus.get_object(isys.NM_SERVICE, device_path)
- device_props_iface = dbus.Interface(device, isys.DBUS_PROPS_IFACE)
- iface = str(device_props_iface.Get(isys.NM_DEVICE_IFACE, "Interface"))
- if iface in devices:
- waited_devs_props[iface] = device_props_iface
-
- i = 0
- while True:
- for dev, device_props_iface in waited_devs_props.items():
- state = device_props_iface.Get(isys.NM_DEVICE_IFACE, "State")
- if state == isys.NM_DEVICE_STATE_ACTIVATED:
- waited_devs_props.pop(dev)
- if len(waited_devs_props) == 0 or i >= CONNECTION_TIMEOUT:
- break
- i += 1
- time.sleep(1)
-
- return waited_devs_props.keys()
-
- # write out current configuration state and wait for NetworkManager
- # to bring the device up, watch NM state and return to the caller
- # once we have a state
- def waitForConnection(self):
- bus = dbus.SystemBus()
- nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH)
- props = dbus.Interface(nm, isys.DBUS_PROPS_IFACE)
-
- i = 0
- while i < CONNECTION_TIMEOUT:
- state = props.Get(isys.NM_SERVICE, "State")
- if nmIsConnected(state):
- return True
- i += 1
- time.sleep(1)
-
- state = props.Get(isys.NM_SERVICE, "State")
- if nmIsConnected(state):
- return True
-
- return False
-
# write out current configuration state and wait for NetworkManager
# to bring the device up, watch NM state and return to the caller
# once we have a state
def bringUp(self):
self.write()
- if self.waitForConnection():
+ if waitForConnection():
resetResolver()
return True
else:
@@ -901,6 +800,55 @@ class Network:
return netargs
+def waitForDevicesActivation(devices):
+ waited_devs_props = {}
+
+ bus = dbus.SystemBus()
+ nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH)
+ device_paths = nm.get_dbus_method("GetDevices")()
+ for device_path in device_paths:
+ device = bus.get_object(isys.NM_SERVICE, device_path)
+ device_props_iface = dbus.Interface(device, isys.DBUS_PROPS_IFACE)
+ iface = str(device_props_iface.Get(isys.NM_DEVICE_IFACE, "Interface"))
+ if iface in devices:
+ waited_devs_props[iface] = device_props_iface
+
+ i = 0
+ while True:
+ for dev, device_props_iface in waited_devs_props.items():
+ state = device_props_iface.Get(isys.NM_DEVICE_IFACE, "State")
+ if state == isys.NM_DEVICE_STATE_ACTIVATED:
+ waited_devs_props.pop(dev)
+ if len(waited_devs_props) == 0 or i >= CONNECTION_TIMEOUT:
+ break
+ i += 1
+ time.sleep(1)
+
+ return waited_devs_props.keys()
+
+# write out current configuration state and wait for NetworkManager
+# to bring the device up, watch NM state and return to the caller
+# once we have a state
+def waitForConnection():
+ bus = dbus.SystemBus()
+ nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH)
+ props = dbus.Interface(nm, isys.DBUS_PROPS_IFACE)
+
+ i = 0
+ while i < CONNECTION_TIMEOUT:
+ state = props.Get(isys.NM_SERVICE, "State")
+ if nmIsConnected(state):
+ return True
+ i += 1
+ time.sleep(1)
+
+ state = props.Get(isys.NM_SERVICE, "State")
+ if nmIsConnected(state):
+ return True
+
+ return False
+
+
def kickstartNetworkData(ifcfg, hostname=None):
from pyanaconda.kickstart import NetworkData
@@ -1037,3 +985,11 @@ def resetResolver():
isys.resetResolv()
urlgrabber.grabber.reset_curl_obj()
+def setHostname(hn):
+ if flags.imageInstall:
+ log.info("image install -- not setting hostname")
+ return
+
+ log.info("setting installation environment hostname to %s" % hn)
+ iutil.execWithRedirect("hostname", ["-v", hn ],
+ stdout="/dev/tty5", stderr="/dev/tty5")
diff --git a/pyanaconda/textw/netconfig_text.py b/pyanaconda/textw/netconfig_text.py
index aabd7d5..ed1fff2 100644
--- a/pyanaconda/textw/netconfig_text.py
+++ b/pyanaconda/textw/netconfig_text.py
@@ -390,9 +390,9 @@ class NetworkConfiguratorText:
else:
dev.set(("IPV6INIT", "no"))
- self.anaconda.network.unsetDNS(devname)
+ self.netdevs[devname].unsetDNS()
if nameservers:
- self.anaconda.network.setDNS(nameservers, devname)
+ self.netdevs[devname].setDNS(nameservers)
dev.set(('ONBOOT', 'yes'))
diff --git a/tests/pyanaconda_test/network_test.py b/tests/pyanaconda_test/network_test.py
index 561ddab..7ad58cf 100644
--- a/tests/pyanaconda_test/network_test.py
+++ b/tests/pyanaconda_test/network_test.py
@@ -262,6 +262,28 @@ class NetworkTest(mock.TestCase):
self.assertEqual(nd.info, {'KEY': 'other_value'})
self.assertTrue(nd._dirty)
+ def networkdevice_set_gateway_test(self):
+ import pyanaconda.network
+ nd = pyanaconda.network.NetworkDevice(self.NETSCRIPTSDIR, self.DEVICE)
+ nd.setGateway('10.0.0.1')
+ self.assertEqual(nd.info, {'GATEWAY': '10.0.0.1'})
+ self.assertTrue(nd._dirty)
+
+ def networkdevice_set_gateway_ipv6_test(self):
+ import pyanaconda.network
+ nd = pyanaconda.network.NetworkDevice(self.NETSCRIPTSDIR, self.DEVICE)
+ nd.setGateway('fe80::5675:d0ff:feac:4d3f')
+ self.assertEqual(nd.info, {'IPV6_DEFAULTGW': 'fe80::5675:d0ff:feac:4d3f'})
+ self.assertTrue(nd._dirty)
+
+ def networkdevice_set_dns_test(self):
+ import pyanaconda.network
+ nd = pyanaconda.network.NetworkDevice(self.NETSCRIPTSDIR, self.DEVICE)
+ nd.setDNS('10.0.0.1, 10.0.0.2')
+ self.assertEqual(nd.info, {'DNS1': '10.0.0.1'})
+ self.assertEqual(nd.info, {'DNS2': '10.0.0.2'})
+ self.assertTrue(nd._dirty)
+
def networkdevice_keyfile_path_test(self):
import pyanaconda.network
nd = pyanaconda.network.NetworkDevice(self.NETSCRIPTSDIR, self.DEVICE)
@@ -294,14 +316,6 @@ class NetworkTest(mock.TestCase):
self.assertEqual(pyanaconda.network.shutil.move.call_args[0],
(TMP_FILE, '%s/keys-%s' % (TMP_DIR, self.DEVICE)))
- def network_get_device_test(self):
- import pyanaconda.network
-
- nw = pyanaconda.network.Network()
- nw.netdevices['dev'] = 'device'
- ret = nw.getDevice('dev')
- self.assertEqual(ret, 'device')
-
def network_get_ks_device_1_test(self):
import pyanaconda.network
nw = pyanaconda.network.Network()
@@ -324,57 +338,6 @@ class NetworkTest(mock.TestCase):
ret = nw.getKSDevice()
self.assertEqual(ret, 'device')
- def network_set_hostname_test(self):
- import pyanaconda.network
- pyanaconda.network.iutil.execWithRedirect = mock.Mock()
- nw = pyanaconda.network.Network()
- nw.setHostname('DESKTOP')
- self.assertEqual(nw.hostname, 'DESKTOP')
-
- def network_set_dns_test(self):
- import pyanaconda.network
- nw = pyanaconda.network.Network()
- nw.netdevices['dev'] = mock.Mock()
- nw.setDNS('10.0.0.1, 10.0.0.2', 'dev')
- self.assertEqual(nw.netdevices['dev'].method_calls,
- [('set', (('DNS1', '10.0.0.1'),), {}),
- ('set', (('DNS2', '10.0.0.2'),), {})]
- )
-
- def network_set_gateway_test(self):
- import pyanaconda.network
- nw = pyanaconda.network.Network()
- nw.netdevices['eth0'] = mock.Mock()
- nw.setGateway('10.0.0.1', 'eth0')
- self.assertEqual(pyanaconda.network.Network.netdevices['eth0'].method_calls,
- [('set', (('GATEWAY', '10.0.0.1'),), {})])
-
- def network_lookup_hostname_1_test(self):
- import pyanaconda.network
- nw = pyanaconda.network.Network()
- nw.hostname = None
- ret = nw.lookupHostname()
- self.assertEqual(ret, None)
-
- def network_lookup_hostname_2_test(self):
- import pyanaconda.network
- nw = pyanaconda.network.Network()
- nw.hostname = 'desktop'
- pyanaconda.network.hasActiveNetDev = mock.Mock(return_value=False)
- ret = nw.lookupHostname()
- self.assertEqual(ret, None)
-
- def network_lookup_hostname_3_test(self):
- import pyanaconda.network
- pyanaconda.network.socket.getaddrinfo.return_value = \
- [(0, 0, 0, 0, ('10.1.1.1', 0))]
-
- nw = pyanaconda.network.Network()
- nw.hostname = 'desktop'
- pyanaconda.network.hasActiveNetDev = mock.Mock(return_value=True)
- ret = nw.lookupHostname()
- self.assertEqual(ret, '10.1.1.1')
-
def network_write_ifcfg_files_test(self):
import pyanaconda.network
nw = pyanaconda.network.Network()
@@ -458,22 +421,6 @@ class NetworkTest(mock.TestCase):
self.assertEqual(self.fs[TMPFILE],
'network --device eth0 --bootproto dhcp --noipv6\n')
- def network_has_name_server_1_test(self):
- import pyanaconda.network
- hash = {'foo':'', 'bar':''}
-
- nw = pyanaconda.network.Network()
- ret = nw.hasNameServers(hash)
- self.assertFalse(ret)
-
- def network_has_name_server_2_test(self):
- import pyanaconda.network
- hash = {'foo':'', 'bar':'', 'dnsserver':''}
-
- nw = pyanaconda.network.Network()
- ret = nw.hasNameServers(hash)
- self.assertTrue(ret)
-
def network_has_wireless_dev_1_test(self):
import pyanaconda.network
pyanaconda.network.isys = mock.Mock()
@@ -556,8 +503,7 @@ class NetworkTest(mock.TestCase):
pyanaconda.network.dbus.Interface().Get.return_value = \
pyanaconda.network.isys.NM_STATE_CONNECTED_GLOBAL
- nw = pyanaconda.network.Network()
- ret = nw.waitForConnection()
+ ret = pyanaconda.network.waitForConnection()
self.assertTrue(ret)
def network_wait_for_connection_2_test(self):
@@ -568,19 +514,18 @@ class NetworkTest(mock.TestCase):
pyanaconda.network.isys.NM_STATE_CONNECTED = self.OK
pyanaconda.network.time.sleep = mock.Mock()
- nw = pyanaconda.network.Network()
- ret = nw.waitForConnection()
+ ret = pyanaconda.network.waitForConnection()
self.assertFalse(ret)
def network_bring_up_test(self):
import pyanaconda.network
pyanaconda.network.Network.write = mock.Mock()
- pyanaconda.network.Network.waitForConnection = mock.Mock()
+ pyanaconda.network.waitForConnection = mock.Mock()
nw = pyanaconda.network.Network()
nw.bringUp()
self.assertTrue(pyanaconda.network.Network.write.called)
- self.assertTrue(pyanaconda.network.Network.waitForConnection.called)
+ self.assertTrue(pyanaconda.network.waitForConnection.called)
def iface_for_host_ip_test(self):
import pyanaconda.network
--
1.7.4
More information about the anaconda-patches
mailing list