Change in vdsm[master]: Remove duplicate implementation of prefix2netmask
wudxw at linux.vnet.ibm.com
wudxw at linux.vnet.ibm.com
Thu Dec 6 07:16:19 UTC 2012
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 at 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 at linux.vnet.ibm.com>
More information about the vdsm-patches
mailing list