aboutsummaryrefslogtreecommitdiff
path: root/rumba/prototypes/irati.py
diff options
context:
space:
mode:
authorMarco Capitani <m.capitani@nextworks.it>2018-04-12 11:54:47 +0200
committerMarco Capitani <m.capitani@nextworks.it>2018-04-12 12:21:35 +0200
commit3be4baa7e19133f0c41188bb1c2ee6ae3a82d470 (patch)
tree989bc72464101511d8f69da80e8be77d04a21597 /rumba/prototypes/irati.py
parent441c9fcba86070840dcff757986a5d4e20ccbcaa (diff)
downloadrumba-3be4baa7e19133f0c41188bb1c2ee6ae3a82d470.tar.gz
rumba-3be4baa7e19133f0c41188bb1c2ee6ae3a82d470.zip
model & irati: add QOS cubes
Fixes #45 Only implemented in IRATI, other prototypes warn and ignore.
Diffstat (limited to 'rumba/prototypes/irati.py')
-rw-r--r--rumba/prototypes/irati.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/rumba/prototypes/irati.py b/rumba/prototypes/irati.py
index 120a72e..37f7ae7 100644
--- a/rumba/prototypes/irati.py
+++ b/rumba/prototypes/irati.py
@@ -316,9 +316,25 @@ class Experiment(mod.Experiment):
ipcp2shim_map.update({ipcp.name: dif for ipcp in dif.ipcps})
elif isinstance(dif, mod.NormalDIF):
difconfs[dif.name] = dict()
+ # Generate base conf
+ dif_conf = copy.deepcopy(irati_templates.normal_dif_base)
+ # push qos_cubes
+ if len(dif.qos_cubes) != 0:
+ dif_conf["qosCubes"] = []
+ for cube in dif.qos_cubes:
+ dif_conf["qosCubes"].append(
+ irati_templates.generate_qos_cube(**cube)
+ )
+ # Add basic cubes
+ unreliable = copy.deepcopy(irati_templates.qos_cube_u_base)
+ unreliable["id"] = len(dif_conf["qosCubes"]) + 1
+ dif_conf["qosCubes"].append(unreliable)
+ reliable = copy.deepcopy(irati_templates.qos_cube_r_base)
+ reliable["id"] = len(dif_conf["qosCubes"]) + 1
+ dif_conf["qosCubes"].append(reliable)
for node in dif.members:
difconfs[dif.name][node.name] = copy.deepcopy(
- irati_templates.normal_dif_base
+ dif_conf
)
for node in self.nodes: # type: mod.Node