git://git.onelab.eu
/
nepi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use print() - import print_function - should be fine for both py2 and py3
[nepi.git]
/
src
/
nepi
/
util
/
parsers
/
xml_parser.py
diff --git
a/src/nepi/util/parsers/xml_parser.py
b/src/nepi/util/parsers/xml_parser.py
index
af57cf1
..
18b7a7d
100644
(file)
--- a/
src/nepi/util/parsers/xml_parser.py
+++ b/
src/nepi/util/parsers/xml_parser.py
@@
-3,9
+3,8
@@
# Copyright (C) 2013 INRIA
#
# This program is free software: you can redistribute it and/or modify
# 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
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-17,6
+16,8
@@
#
# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
#
# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
+from __future__ import print_function
+
from nepi.util.netgraph import NetGraph, TopologyType
from nepi.util.timefuncs import stformat, tsformat
from nepi.util.netgraph import NetGraph, TopologyType
from nepi.util.timefuncs import stformat, tsformat
@@
-82,7
+83,7
@@
class ECXMLParser(object):
try:
xml = doc.toprettyxml(indent=" ", encoding="UTF-8")
except:
try:
xml = doc.toprettyxml(indent=" ", encoding="UTF-8")
except:
- print
>>sys.stderr, "Oops: generating XML from %s" % (data,
)
+ print
("Oops: generating XML from %s" % (data,), file=sys.stderr
)
raise
return xml
raise
return xml
@@
-121,6
+122,7
@@
class ECXMLParser(object):
for nid in ec.netgraph.nodes():
ngnnode = doc.createElement("node")
ngnnode.setAttribute("nid", xmlencode(nid))
for nid in ec.netgraph.nodes():
ngnnode = doc.createElement("node")
ngnnode.setAttribute("nid", xmlencode(nid))
+ ngnnode.setAttribute("nid-type", from_type(nid))
ngnsnode.appendChild(ngnnode)
# Mark ources and targets
ngnsnode.appendChild(ngnnode)
# Mark ources and targets
@@
-152,7
+154,9
@@
class ECXMLParser(object):
for nid1, nid2 in ec.netgraph.edges():
ngenode = doc.createElement("edge")
ngenode.setAttribute("nid1", xmlencode(nid1))
for nid1, nid2 in ec.netgraph.edges():
ngenode = doc.createElement("edge")
ngenode.setAttribute("nid1", xmlencode(nid1))
+ ngenode.setAttribute("nid1-type", from_type(nid1))
ngenode.setAttribute("nid2", xmlencode(nid2))
ngenode.setAttribute("nid2", xmlencode(nid2))
+ ngenode.setAttribute("nid2-type", from_type(nid2))
ngesnode.appendChild(ngenode)
# Edge annotations
ngesnode.appendChild(ngenode)
# Edge annotations
@@
-267,12
+271,18
@@
class ECXMLParser(object):
os.environ["NEPI_NTHREADS"] = nthreads
# Deserialize netgraph
os.environ["NEPI_NTHREADS"] = nthreads
# Deserialize netgraph
+ topology = None
+ topo_type = None
+
netgraph = self._netgraph_from_xml(doc, ecnode)
netgraph = self._netgraph_from_xml(doc, ecnode)
- topo_type = netgraph.topo_type if netgraph else None
+
+ if netgraph:
+ topo_type = netgraph.topo_type
+ topology = netgraph.topology
# Instantiate EC
ec = ExperimentController(exp_id = exp_id, local_dir = local_dir,
# Instantiate EC
ec = ExperimentController(exp_id = exp_id, local_dir = local_dir,
- topology =
netgraph.
topology, topo_type = topo_type)
+ topology = topology, topo_type = topo_type)
connections = set()
connections = set()
@@
-305,6
+315,8
@@
class ECXMLParser(object):
ngnsnode = ngnsnode_list[0].getElementsByTagName("node")
for ngnnode in ngnsnode:
nid = xmldecode(ngnnode.getAttribute("nid"))
ngnsnode = ngnsnode_list[0].getElementsByTagName("node")
for ngnnode in ngnsnode:
nid = xmldecode(ngnnode.getAttribute("nid"))
+ tipe = xmldecode(ngnnode.getAttribute("nid-type"))
+ nid = to_type(tipe, nid)
netgraph.add_node(nid)
if ngnnode.hasAttribute("source"):
netgraph.add_node(nid)
if ngnnode.hasAttribute("source"):
@@
-334,7
+346,13
@@
class ECXMLParser(object):
ngesnode = ngesnode_list[0].getElementsByTagName("edge")
for ngenode in ngesnode:
nid1 = xmldecode(ngenode.getAttribute("nid1"))
ngesnode = ngesnode_list[0].getElementsByTagName("edge")
for ngenode in ngesnode:
nid1 = xmldecode(ngenode.getAttribute("nid1"))
+ tipe1 = xmldecode(ngenode.getAttribute("nid1-type"))
+ nid1 = to_type(tipe1, nid1)
+
nid2 = xmldecode(ngenode.getAttribute("nid2"))
nid2 = xmldecode(ngenode.getAttribute("nid2"))
+ tipe2 = xmldecode(ngenode.getAttribute("nid2-type"))
+ nid2 = to_type(tipe2, nid2)
+
netgraph.add_edge(nid1, nid2)
annosnode_list = ngenode.getElementsByTagName("edge-annotations")
netgraph.add_edge(nid1, nid2)
annosnode_list = ngenode.getElementsByTagName("edge-annotations")
@@
-345,8
+363,8
@@
class ECXMLParser(object):
if name == "net":
net = xmldecode(annonode.getAttribute("value"), eval) # dict
if name == "net":
net = xmldecode(annonode.getAttribute("value"), eval) # dict
- netgraph.annotate_edge_net(n
et[nid1], net[nid2], net["ip1"],
- net["
ip2"], net["
mask"], net["network"], net["prefix"])
+ netgraph.annotate_edge_net(n
id1, nid2, net[nid1], net[nid2],
+ net["mask"], net["network"], net["prefix"])
else:
value = xmldecode(annonode.getAttribute("value"))
tipe = xmldecode(annonode.getAttribute("type"))
else:
value = xmldecode(annonode.getAttribute("value"))
tipe = xmldecode(annonode.getAttribute("type"))