aboutsummaryrefslogtreecommitdiff
path: root/rumba/elements/topology.py
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2018-05-09 15:50:51 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2018-05-09 18:21:42 +0200
commit031cdc38878686d7ae5532f3968e2b4d428ab7cd (patch)
tree61d1b06e35bcc09efa1005e34be84ce62493406a /rumba/elements/topology.py
parent6a80c8db028872906d75665dbdb76e8f454fc7a7 (diff)
downloadrumba-031cdc38878686d7ae5532f3968e2b4d428ab7cd.tar.gz
rumba-031cdc38878686d7ae5532f3968e2b4d428ab7cd.zip
elements: Allow exporting to DMS YAML
This allows for exporting the experiment to a YAML format which is parsable by the DMS.
Diffstat (limited to 'rumba/elements/topology.py')
-rw-r--r--rumba/elements/topology.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/rumba/elements/topology.py b/rumba/elements/topology.py
index c47d541..46f24c2 100644
--- a/rumba/elements/topology.py
+++ b/rumba/elements/topology.py
@@ -654,6 +654,24 @@ class Node(object):
def __neq__(self, other):
return not self == other
+ def to_dms_yaml(self, buffer):
+ buffer.write("node: %s\n" % (self.name))
+ buffer.write("registrations:\n")
+
+ for dif in self.dif_registrations:
+ if isinstance(dif, NormalDIF):
+ buffer.write(" - %s:\n" % (dif.name))
+ for reg in self.dif_registrations[dif]:
+ tp = "normal"
+ nm = reg.name
+ if isinstance(reg, ShimEthDIF):
+ tp = "eth"
+ for member in reg.members:
+ if member.name is not self.name:
+ nm = member.name
+ buffer.write(" - %sdifid: %s, diftype: %s, "
+ "diftype_number: 1%s\n" % ("{", nm, tp, "}"))
+
def add_dif(self, dif):
"""
Adds a DIF to the list.