-#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
address_data["Broadcast"] = broadcast
addresses_data.append(address_data)
- def add_route_data(self, guid, destination, netprefix, nexthop, metric):
+ def add_route_data(self, guid, destination, netprefix, nexthop, metric, device):
data = self.data[guid]
if not "routes" in data:
data["routes"] = list()
"Destination": destination,
"NetPrefix": netprefix,
"NextHop": nexthop,
- "Metric": metric
+ "Metric": metric,
+ "Device": device
})
routes_data.append(route_data)
data = self.data[guid]
if not "traces" in data:
return []
- return [trace_id for trace_id in data["traces"]]
+ return data["traces"]
def get_connection_data(self, guid):
data = self.data[guid]
return [(data["Destination"],
data["NetPrefix"],
data["NextHop"],
- data["Metric"]) \
+ data["Metric"],
+ data["Device"]) \
for data in routes_data]
class ExperimentParser(object):
def traces_to_data(self, data, guid, traces):
for trace in traces:
if trace.enabled:
- data.add_trace_data(guid, trace.trace_id)
+ data.add_trace_data(guid, trace.name)
def connections_to_data(self, data, guid, connectors):
for connector in connectors:
netprefix = route.get_attribute_value("NetPrefix")
nexthop = route.get_attribute_value("NextHop")
metric = route.get_attribute_value("Metric")
- data.add_route_data(guid, destination, netprefix, nexthop, metric)
+ device = route.get_attribute_value("Device")
+ data.add_route_data(guid, destination, netprefix, nexthop,
+ metric, device)
def from_data(self, experiment_description, data):
box_guids = list()
def testbed_from_data(self, experiment_description, guid, data):
from nepi.core.design import FactoriesProvider
(testbed_id, testbed_version) = data.get_testbed_data(guid)
- provider = FactoriesProvider(testbed_id, testbed_version)
+ provider = FactoriesProvider(testbed_id)
+ if provider.testbed_version != testbed_version:
+ raise RuntimeError("Bad testbed version on testbed %s. Asked for %s, got %s" % \
+ (testbed_id, testbed_version, provider.testbed_version))
experiment_description.add_testbed_description(provider, guid)
testbed_description = experiment_description.testbed_description(guid)
self.graphical_info_from_data(testbed_description, data)
addr.set_attribute_value("Broadcast", broadcast)
def routes_from_data(self, box, data):
- for (destination, netprefix, nexthop, metric) \
+ for (destination, netprefix, nexthop, metric, device) \
in data.get_route_data(box.guid):
addr = box.add_route()
addr.set_attribute_value("Destination", destination)
addr.set_attribute_value("NetPrefix", netprefix)
addr.set_attribute_value("NextHop", nexthop)
addr.set_attribute_value("Metric", metric)
+ addr.set_attribute_value("Device", device)
def connections_from_data(self, experiment_description, guids, data):
for guid in guids: