the big merge
[nepi.git] / src / nepi / resources / ns3 / ns3netdevice.py
index e7c94cf..5c99cd1 100644 (file)
@@ -3,9 +3,8 @@
 #    Copyright (C) 2014 INRIA
 #
 #    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
+#    it under the terms of the GNU General Public License version 2 as
+#    published by the Free Software Foundation;
 #
 #    This program is distributed in the hope that it will be useful,
 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,7 +21,13 @@ from nepi.execution.resource import clsinit_copy
 from nepi.execution.trace import Trace
 from nepi.resources.ns3.ns3base import NS3Base
 
-import ipaddr
+import sys
+PY2 = sys.version_info[0] == 2
+
+if PY2:
+    import ipaddr
+else:
+    import ipaddress
 
 @clsinit_copy
 class NS3BaseNetDevice(NS3Base):
@@ -66,7 +71,7 @@ class NS3BaseNetDevice(NS3Base):
         if not nodes: 
             msg = "Device not connected to node"
             self.error(msg)
-            raise RuntimeError, msg
+            raise RuntimeError(msg)
 
         return nodes[0]
 
@@ -78,7 +83,7 @@ class NS3BaseNetDevice(NS3Base):
         if not channels: 
             msg = "Device not connected to channel"
             self.error(msg)
-            raise RuntimeError, msg
+            raise RuntimeError(msg)
 
         return channels[0]
 
@@ -90,7 +95,7 @@ class NS3BaseNetDevice(NS3Base):
         if not queue: 
             msg = "Device not connected to queue"
             self.error(msg)
-            raise RuntimeError, msg
+            raise RuntimeError(msg)
 
         return queue[0]
 
@@ -125,12 +130,7 @@ class NS3BaseNetDevice(NS3Base):
 
     @property
     def _rms_to_wait(self):
-        rms = set()
-        
-        node = self.node
-        rms.add(node)
-
-        rms.add(self.channel)
+        rms = set([self.node, self.channel])
         return rms
 
     def _configure_object(self):
@@ -156,7 +156,10 @@ class NS3BaseNetDevice(NS3Base):
         ip = self.get("ip")
         prefix = self.get("prefix")
 
-        i = ipaddr.IPAddress(ip)
+        if PY2:
+            i = ipaddr.IPAddress(ip)
+        else:
+            i = ipaddress.ip_address(ip)
         if i.version == 4:
             # IPv4
             ipv4 = self.node.ipv4