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