diff options
author | Marco Capitani <m.capitani@nextworks.it> | 2018-04-12 11:54:47 +0200 |
---|---|---|
committer | Marco Capitani <m.capitani@nextworks.it> | 2018-04-12 12:21:35 +0200 |
commit | 3be4baa7e19133f0c41188bb1c2ee6ae3a82d470 (patch) | |
tree | 989bc72464101511d8f69da80e8be77d04a21597 /rumba/prototypes/irati.py | |
parent | 441c9fcba86070840dcff757986a5d4e20ccbcaa (diff) | |
download | rumba-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.py | 18 |
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 |