systematic use of context managers for dealing with files instead of open()/close...
[nepi.git] / examples / ccn_emu_live / dce.py
index 693293a..4b51b17 100644 (file)
@@ -1,13 +1,11 @@
 #!/usr/bin/env python
-
-###############################################################################
 #
 #    NEPI, a framework to manage network experiments
+#    Copyright (C) 2013 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
@@ -18,8 +16,8 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # Author: Alina Quereilhac <alina.quereilhac@inria.fr>
-#
-###############################################################################
+
+from __future__ import print_function
 
 from nepi.execution.ec import ExperimentController 
 from nepi.execution.runner import ExperimentRunner
@@ -38,13 +36,13 @@ repofile = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), "repoFile1.0.8.2")
 
 def get_simulator(ec):
-    simulator = ec.filter_resources("LinuxNS3Simulation")
+    simulator = ec.filter_resources("linux::ns3::Simulation")
 
     if not simulator:
-        node = ec.register_resource("LinuxNode")
+        node = ec.register_resource("linux::Node")
         ec.set(node, "hostname", "localhost")
 
-        simu = ec.register_resource("LinuxNS3Simulation")
+        simu = ec.register_resource("linux::ns3::Simulation")
         ec.set(simu, "enableDump", True)
         ec.set(simu, "StopTime", STOP_TIME)
         ec.register_connection(simu, node)
@@ -76,7 +74,7 @@ def add_dce_ccnd(ec, nid):
     host = ec.netgraph.node_annotation(nid, "host")
     
     # Add dce ccnd to the dce node
-    ccnd = ec.register_resource("ns3::LinuxDceCCND")
+    ccnd = ec.register_resource("linux::ns3::dce::CCND")
     ec.set (ccnd, "stackSize", 1<<20)
     ec.set (ccnd, "debug", 7)
     ec.set (ccnd, "capacity", 50000)
@@ -95,7 +93,7 @@ def add_dce_ccnr(ec, nid):
     host = ec.netgraph.node_annotation(nid, "host")
     
     # Add a CCN content repository to the dce node
-    ccnr = ec.register_resource("ns3::LinuxDceCCNR")
+    ccnr = ec.register_resource("linux::ns3::dce::CCNR")
     ec.set (ccnr, "repoFile1", repofile) 
     ec.set (ccnr, "stackSize", 1<<20)
     ec.set (ccnr, "StartTime", "2s")
@@ -106,7 +104,7 @@ def add_dce_ccncat(ec, nid):
     host = ec.netgraph.node_annotation(nid, "host")
    
     # Add a ccncat application to the dce host
-    ccncat = ec.register_resource("ns3::LinuxDceCCNCat")
+    ccncat = ec.register_resource("linux::ns3::dce::CCNCat")
     ec.set (ccncat, "contentName", content_name)
     ec.set (ccncat, "stackSize", 1<<20)
     ec.set (ccncat, "StartTime", "8s")
@@ -119,7 +117,7 @@ def add_dce_fib_entry(ec, nid1, nid2):
     ip2 = net[nid2]
 
     # Add FIB entry between peer hosts
-    ccndc = ec.register_resource("ns3::LinuxDceFIBEntry")
+    ccndc = ec.register_resource("linux::ns3::dce::FIBEntry")
     ec.set (ccndc, "protocol", "udp") 
     ec.set (ccndc, "uri", "ccnx:/") 
     ec.set (ccndc, "host", ip2)
@@ -170,10 +168,9 @@ def avg_interests(ec, run):
 
     # TODO: DUMP RESULTS TO FILE
     # TODO: DUMP GRAPH DELAYS!
-    f = open("/tmp/metric", "a+")
-    f.write("%.2f\n" % metric)
-    f.close()
-    print " METRIC", metric
+    with open("/tmp/metric", "a+") as f: 
+        f.write("%.2f\n" % metric)
+    print(" METRIC", metric)
 
     return metric
 
@@ -215,10 +212,10 @@ if __name__ == '__main__':
             add_node_callback = add_dce_node, 
             add_edge_callback = add_dce_edge)
     
-    print "Results stored at", ec.exp_dir
+    print("Results stored at", ec.exp_dir)
 
     #### Retrieve the consumer to wait for ot to finish
-    ccncat = ec.filter_resources("ns3::LinuxDceCCNCat")
+    ccncat = ec.filter_resources("linux::ns3::dce::CCNCat")
    
     #### Run experiment until metric convergences
     rnr = ExperimentRunner()