Merge "added optical-2.py added oe-nonlinear-topo10"
diff --git a/apps/demo/src/main/java/org/onlab/onos/demo/DemoInstaller.java b/apps/demo/src/main/java/org/onlab/onos/demo/DemoInstaller.java
index ca2d6db..758f628 100644
--- a/apps/demo/src/main/java/org/onlab/onos/demo/DemoInstaller.java
+++ b/apps/demo/src/main/java/org/onlab/onos/demo/DemoInstaller.java
@@ -31,6 +31,7 @@
import org.onlab.onos.net.flow.TrafficSelector;
import org.onlab.onos.net.flow.TrafficTreatment;
import org.onlab.onos.net.host.HostService;
+import org.onlab.onos.net.intent.Constraint;
import org.onlab.onos.net.intent.HostToHostIntent;
import org.onlab.onos.net.intent.Intent;
import org.onlab.onos.net.intent.IntentService;
@@ -113,14 +114,14 @@
public void run() {
TrafficSelector selector = DefaultTrafficSelector.builder().build();
TrafficTreatment treatment = DefaultTrafficTreatment.builder().build();
-
+ List<Constraint> constraint = Lists.newArrayList();
List<Host> hosts = Lists.newArrayList(hostService.getHosts());
while (!hosts.isEmpty()) {
Host src = hosts.remove(0);
for (Host dst : hosts) {
HostToHostIntent intent = new HostToHostIntent(appId, src.id(), dst.id(),
selector, treatment,
- null);
+ constraint);
existingIntents.add(intent);
intentService.submit(intent);
}
diff --git a/core/net/src/test/java/org/onlab/onos/net/flow/FlowIdTest.java b/core/api/src/test/java/org/onlab/onos/net/flow/FlowIdTest.java
similarity index 100%
rename from core/net/src/test/java/org/onlab/onos/net/flow/FlowIdTest.java
rename to core/api/src/test/java/org/onlab/onos/net/flow/FlowIdTest.java
diff --git a/web/gui/src/main/webapp/topo2.js b/web/gui/src/main/webapp/topo2.js
index 8a3bc5d..4c09b4d 100644
--- a/web/gui/src/main/webapp/topo2.js
+++ b/web/gui/src/main/webapp/topo2.js
@@ -1348,8 +1348,6 @@
function preload(view, ctx, flags) {
var w = view.width(),
h = view.height(),
- idBg = view.uid('bg'),
- showBg = config.options.showBackground ? 'visible' : 'hidden',
fcfg = config.force,
fpad = fcfg.pad,
forceDim = [w - 2*fpad, h - 2*fpad];
@@ -1364,20 +1362,9 @@
// add blue glow filter to svg layer
d3u.appendGlow(svg);
- // load the background image
- bgImg = svg.append('svg:image')
- .attr({
- id: idBg,
- width: w,
- height: h,
- 'xlink:href': config.backgroundUrl
- })
- .style({
- visibility: showBg
- });
-
// group for the topology
topoG = svg.append('g')
+ .attr('id', 'topo-G')
.attr('transform', fcfg.translate());
// subgroups for links and nodes
@@ -1460,14 +1447,78 @@
view.setRadio(btnSet);
view.setKeys(keyDispatch);
- if (config.useLiveData) {
- webSock.connect();
+ // Load map data asynchronously; complete startup after that..
+ loadGeoJsonData();
+ }
+
+ // TODO: move these to config/state portion of script
+ var geoJsonUrl = 'geoUsa.json', // TODO: Paul
+ geoJson;
+
+ function loadGeoJsonData() {
+ d3.json(geoJsonUrl, function (err, data) {
+ if (err) {
+ // fall back to USA map background
+ loadStaticMap();
+ } else {
+ geoJson = data;
+ loadGeoMap();
+ }
+
+ // finally, connect to the server...
+ if (config.useLiveData) {
+ webSock.connect();
+ }
+ });
+ }
+
+ function showBg() {
+ return config.options.showBackground ? 'visible' : 'hidden';
+ }
+
+ function loadStaticMap() {
+ fnTrace('loadStaticMap', config.backgroundUrl);
+ var w = network.view.width(),
+ h = network.view.height();
+
+ // load the background image
+ bgImg = svg.insert('svg:image', '#topo-G')
+ .attr({
+ id: 'topo-bg',
+ width: w,
+ height: h,
+ 'xlink:href': config.backgroundUrl
+ })
+ .style({
+ visibility: showBg()
+ });
+ }
+
+ function loadGeoMap() {
+ fnTrace('loadGeoMap', geoJsonUrl);
+ var w = network.view.width(),
+ h = network.view.height();
+
+ // TODO: load map layer from GeoJSON stored in 'geoJson' var...
+ // bgImg = svg.insert('<svg-element-type>', '#topo-G') ...
+
+ // TODO: Paul
+ }
+
+ function resizeBg(view) {
+ if (geoJson) {
+ // TODO : resize GeoJSON map
+
+ // TODO: Paul
+
+ } else if (bgImg) {
+ setSize(bgImg, view);
}
}
function resize(view, ctx, flags) {
setSize(svg, view);
- setSize(bgImg, view);
+ resizeBg(view);
// TODO: hook to recompute layout, perhaps? work with zoom/pan code
// adjust force layout size