Mark Wu has uploaded a new change for review.
Change subject: Remove duplicate implementation of prefix2netmask ......................................................................
Remove duplicate implementation of prefix2netmask
Change-Id: I113e26ced6dc8d6318ab8e23118fb2394a7257eb Signed-off-by: Mark Wu wudxw@linux.vnet.ibm.com --- M tests/netinfoTests.py M vdsm/configNetwork.py M vdsm/netinfo.py 3 files changed, 18 insertions(+), 25 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/59/9759/1
diff --git a/tests/netinfoTests.py b/tests/netinfoTests.py index 36b4872..ca00046 100644 --- a/tests/netinfoTests.py +++ b/tests/netinfoTests.py @@ -38,7 +38,7 @@ if line.startswith('#'): continue bitmask, address = [value.strip() for value in line.split()] - self.assertEqual(netinfo.bitmask_to_address(int(bitmask)), + self.assertEqual(netinfo.prefix2netmask(int(bitmask)), address)
def testSpeedInvalidNic(self): diff --git a/vdsm/configNetwork.py b/vdsm/configNetwork.py index 78fd3af..6272303 100755 --- a/vdsm/configNetwork.py +++ b/vdsm/configNetwork.py @@ -29,8 +29,6 @@ from xml.sax.saxutils import escape import glob import shutil -import socket -import struct
import libvirt import selinux @@ -867,21 +865,6 @@ _validateInterNetworkCompatibility(_netinfo, vlan, nic, bridged)
-def _prefix2netmask(prefix): - return socket.inet_ntoa( - struct.pack( - "!I", - int( - ( - ''.ljust(prefix, '1') + - ''.ljust(32 - prefix, '0') - ), - 2 - ) - ) - ) - - def addNetwork(network, vlan=None, bonding=None, nics=None, ipaddr=None, netmask=None, mtu=None, gateway=None, force=False, configWriter=None, bondingOptions=None, bridged=True, @@ -896,7 +879,7 @@ prefix = options.get('prefix') if prefix is not None: if netmask is None: - netmask = _prefix2netmask(int(prefix)) + netmask = netinfo.prefix2netmask(int(prefix)) del options['prefix'] else: raise ConfigNetworkError(ne.ERR_BAD_PARAMS, diff --git a/vdsm/netinfo.py b/vdsm/netinfo.py index 2750662..0e96b8b 100644 --- a/vdsm/netinfo.py +++ b/vdsm/netinfo.py @@ -24,6 +24,8 @@ import ethtool import shlex import logging +import socket +import struct from fnmatch import fnmatch from xml.dom import minidom from itertools import chain @@ -164,18 +166,26 @@ return addr
-def bitmask_to_address(bitmask): - binary = ~((1L << (32 - bitmask)) - 1) - return ".".join(map(lambda x: str(binary >> (x << 3) & 0xff), - [3, 2, 1, 0])) - +def prefix2netmask(prefix): + return socket.inet_ntoa( + struct.pack( + "!I", + int( + ( + ''.ljust(prefix, '1') + + ''.ljust(32 - prefix, '0') + ), + 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 bitmask_to_address(netmask) + return prefix2netmask(netmask)
def gethwaddr(dev):
-- To view, visit http://gerrit.ovirt.org/9759 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange Gerrit-Change-Id: I113e26ced6dc8d6318ab8e23118fb2394a7257eb Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Mark Wu wudxw@linux.vnet.ibm.com