use of org.btrplace.model.view.network.Network in project scheduler by btrplace.
the class NetworkTest method staticRoutingTest.
/**
* Test the static routing implementation.
*/
@Test
public void staticRoutingTest() {
Model mo = new DefaultModel();
Network net = new Network(new StaticRouting());
Switch s = net.newSwitch(1000);
Node n1 = mo.newNode();
Node n2 = mo.newNode();
net.connect(2000, s, n1, n2);
Map<Link, Boolean> route = new LinkedHashMap<>();
route.put(net.getConnectedLinks(n1).get(0), true);
route.put(net.getConnectedLinks(n2).get(0), false);
((StaticRouting) net.getRouting()).setStaticRoute(new StaticRouting.NodesMap(n1, n2), route);
mo.attach(net);
Assert.assertTrue(net.getRouting().getPath(n1, n2).size() == 2);
Assert.assertTrue(net.getRouting().getPath(n1, n2).containsAll(net.getLinks()));
}
use of org.btrplace.model.view.network.Network in project scheduler by btrplace.
the class NetworkFuzzer method decorate.
@Override
public void decorate(ReconfigurationPlan p) {
Network net = new Network();
Mapping m = p.getOrigin().getMapping();
Switch s = net.newSwitch(1000 * (1 + rnd.nextInt(40)));
for (Node n : m.getAllNodes()) {
int bw = 1000 * (1 + rnd.nextInt(40));
net.connect(bw, s, n);
}
}
use of org.btrplace.model.view.network.Network in project scheduler by btrplace.
the class NetworkConverter method fromJSON.
@Override
public Network fromJSON(Model mo, JSONObject o) throws JSONConverterException {
checkKeys(o, IDENTIFIER, "switches", "links", "routing");
String id = requiredString(o, ModelViewConverter.IDENTIFIER);
if (!id.equals(getJSONId())) {
return null;
}
Network net = new Network();
switchesFromJSON(net, (JSONArray) o.get("switches"));
linksFromJSON(mo, net, (JSONArray) o.get("links"));
mo.attach(net);
net.setRouting(routingFromJSON(mo, (JSONObject) o.get("routing")));
mo.detach(net);
return net;
}
use of org.btrplace.model.view.network.Network in project scheduler by btrplace.
the class StaticRoutingConverter method fromJSON.
@Override
public StaticRouting fromJSON(Model mo, JSONObject o) throws JSONConverterException {
Network v = Network.get(mo);
TIntObjectMap<Link> idToLink = new TIntObjectHashMap<>();
for (Link l : v.getLinks()) {
idToLink.put(l.id(), l);
}
StaticRouting r = new StaticRouting();
checkKeys(o, ROUTES_LABEL);
JSONArray a = (JSONArray) o.get(ROUTES_LABEL);
for (Object ao : a) {
StaticRouting.NodesMap nm = nodesMapFromJSON(mo, (JSONObject) ((JSONObject) ao).get("nodes_map"));
Map<Link, Boolean> links = new LinkedHashMap<>();
JSONArray aoa = (JSONArray) ((JSONObject) ao).get("links");
for (Object aoao : aoa) {
links.put(idToLink.get(requiredInt((JSONObject) aoao, "link")), Boolean.valueOf(requiredString((JSONObject) aoao, "direction")));
}
r.setStaticRoute(nm, links);
}
return r;
}
use of org.btrplace.model.view.network.Network in project scheduler by btrplace.
the class NetworkConverterTest method switchesAndLinksTest.
@Test
public void switchesAndLinksTest() throws JSONConverterException {
Model mo = new DefaultModel();
Network net = new Network();
Switch s = net.newSwitch(1000);
Node n1 = mo.newNode();
Node n2 = mo.newNode();
mo.getMapping().addOnlineNode(n1);
mo.getMapping().addOnlineNode(n2);
net.connect(1000, s, n1, n2);
mo.attach(net);
ModelConverter mc = new ModelConverter();
JSONObject jo = mc.toJSON(mo);
System.err.println(jo);
Model mo2 = mc.fromJSON(jo);
Network net2 = Network.get(mo2);
Assert.assertTrue(net.getSwitches().equals(net2.getSwitches()));
Assert.assertTrue(net.getLinks().equals(net2.getLinks()));
Assert.assertTrue(net.getConnectedNodes().equals(net2.getConnectedNodes()));
}
Aggregations