Antoni Segura Puimedon has uploaded a new change for review.

Change subject: netinfo: remove deprecated getaddr and getnetmask
......................................................................

netinfo: remove deprecated getaddr and getnetmask

    In 5fa87504543719fdc827d2284738a7723b8a5973 we started using
    libnl to retrieve both ipv4 addresses and netmask and these
    methods fell into deprecation. It's time to get rid of this
    old ethtool using code.

Change-Id: I33f39bb63ef440efb3b9bf00aa39f17f37813938
Signed-off-by: Antoni S. Puimedon <[email protected]>
---
M lib/vdsm/netinfo.py
M vdsm/virt/vm.py
M vdsm_reg/deployUtil.py.in
3 files changed, 12 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/00/29600/1

diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index 489e6d6..a412425 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -43,7 +43,7 @@
 from .ipwrapper import IPRoute2Error
 from .ipwrapper import Route
 from .ipwrapper import routeGet
-from .ipwrapper import routeShowGateways, routeShowAllDefaultGateways
+from .ipwrapper import routeShowGateways
 from . import libvirtconnection
 from .netconfpersistence import RunningConfig
 from .utils import execCmd, memoized, CommandPath
@@ -327,14 +327,6 @@
     return 0
 
 
-def getaddr(dev):
-    dev_info_list = ethtool.get_interfaces_info(dev.encode('utf8'))
-    addr = dev_info_list[0].ipv4_address
-    if addr is None:
-        addr = ''
-    return addr
-
-
 def prefix2netmask(prefix):
     if not 0 <= prefix <= 32:
         raise ValueError('%s is not a valid prefix value. It must be between '
@@ -343,22 +335,15 @@
         struct.pack("!I", int('1' * prefix + '0' * (32 - prefix), 2)))
 
 
-def getnetmask(dev):
-    dev_info_list = ethtool.get_interfaces_info(dev.encode('utf8'))
-    netmask = dev_info_list[0].ipv4_netmask
-    if netmask == 0:
-        return ''
-    return prefix2netmask(netmask)
-
-
 def getDefaultGateway():
     output = routeShowGateways('main')
     return Route.fromText(output[0]) if output else None
 
 
-def getIpInfo(dev, ipaddrs):
-    ipv4addr = ''
-    ipv4netmask = ''
+def getIpInfo(dev, ipaddrs=None):
+    if ipaddrs is None:
+        ipaddrs = _getIpAddrs()
+    ipv4addr = ipv4netmask = ''
     ipv4addrs = []
     ipv6addrs = []
     for addr in ipaddrs[dev]:
@@ -820,8 +805,9 @@
 
 
 def getIpAddresses():
-    "Return a list of the host's IP addresses"
-    return filter(None, [getaddr(i) for i in ethtool.get_active_devices()])
+    "Return a list of the host's IPv4 addresses"
+    return [addr['address'] for addr in nl_addr.iter_addrs() if
+            addr['family'] == 'inet']
 
 
 def IPv4toMapped(ip):
diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 6e937fc..46c595c 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -5719,7 +5719,7 @@
     try:
         nets = netinfo.networks()
         device = nets[network].get('iface', network)
-        ip = netinfo.getaddr(device)
+        ip, _, _, _ = netinfo.getIpInfo(device)
     except (libvirt.libvirtError, KeyError, IndexError):
         ip = config.get('addresses', 'guests_gateway_ip')
         if ip == '':
diff --git a/vdsm_reg/deployUtil.py.in b/vdsm_reg/deployUtil.py.in
index ad91e54..a2cc89d 100644
--- a/vdsm_reg/deployUtil.py.in
+++ b/vdsm_reg/deployUtil.py.in
@@ -463,10 +463,10 @@
     strIface = _getMGTIface(vdcHostName)
 
     if strIface is not None:
-        strReturn = netinfo.getaddr(strIface)
+        ipv4addr, _, _, _ = netinfo.getIpInfo(strIface)
 
-    logging.debug("getMGTIP: Host MGT IP=" + strReturn)
-    return strReturn
+    logging.debug("getMGTIP: Host MGT IP=", ipv4addr)
+    return ipv4addr
 
 
 def preventDuplicate(bridgeName=None):


-- 
To view, visit http://gerrit.ovirt.org/29600
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I33f39bb63ef440efb3b9bf00aa39f17f37813938
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to